SmartCalendarモード移行一覧
年表示モード月モード週モード1日モードぜんぶ写真モード小スライドモード全画面スライドモード予定(文字入力)モードアプリケーション起動モードコメント記入モード
年表示モード-月をクリッククリックでポップアップするメニューで選択日を入力してEnterまたはクリックでポップアップするメニューで選択または写真をクリックCtrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行月をダブルクリックまたはロングクリック写真をクリックで別ウィンドウが開く写真をダブルクリック
月モード年をクリック-日をロングクリックまたは週をクリック日をクリックCtrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行日をダブルクリックまたはロングクリック写真をクリックで別ウィンドウが開く写真をダブルクリック
週モード年をクリック月をクリック-日をクリックCtrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行時刻をダブルクリックまたはロングクリック写真をクリックで別ウィンドウが開く写真をダブルクリック
1日モード年をクリック月をクリック曜日をクリック-Ctrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行時刻をダブルクリックまたはロングクリック写真をクリックで別ウィンドウが開く写真をダブルクリック
ぜんぶ写真モード年をクリック月をクリック曜日をクリック日をクリック-指定した時間で自動的に移行指定した時間で自動的に移行-写真をクリックで別ウィンドウが開く写真をダブルクリック
小スライドモードスライドを閉じると元のモードに戻るスライドを閉じると元のモードに戻るスライドを閉じると元のモードに戻るスライドを閉じると元のモードに戻るスライドを閉じると元のモードに戻る-指定した時間で自動的に移行-スライドを閉じると元のモードに戻るスライドを閉じると元のモードに戻る
全画面スライドモードマウス操作で小スライドモードに移行マウス操作で小スライドモードに移行マウス操作で小スライドモードに移行マウス操作で小スライドモードに移行マウス操作で小スライドモードに移行マウス操作で小スライドモードに移行--マウス操作で小スライドモードに移行マウス操作で小スライドモードに移行
予定(文字入力)モード年をクリック月をクリック曜日をクリック日をクリックCtrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行-写真をクリックで別ウィンドウが開く写真をダブルクリック
アプリケーション起動モードウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作ウィンドウを切り替えて操作-ウィンドウを切り替えて操作
コメント記入モード年をクリック月をクリック曜日をクリック日をクリックCtrl+左クリックまたはクリックでポップアップするメニューで選択指定した時間で自動的に移行指定した時間で自動的に移行-写真をクリックで別ウィンドウが開く-
【0】SmartCalendar/SmartWrite
●ステータス
本文書(TAD版)は、文章についての最終状態とし、公開されたhtml(本文書のhtml版)は本文書(TAD版)に、書式を追加したものである。
本文書は、2005/08/04に公開状態にされ、2005/08/07に修正されたSmartWrite/SmartCalendarのバージョン1.01の仕様書に、修正を加えたSmartWrite/SmartCalendarのバージョン1.21の仕様書である。
2005/08/21の主な追加点は、
【1-6-1】好きな写真/嫌いな写真【1-6-2】写りのよい/悪い写真【1-6-3】公開可能な写真/プライバシー写真である。
2005/08/26の主な追加点は、【1-9-2】使用済みである。
2005/08/27の主な追加点は、【1-12】スライドのログ機能である。

ドラフト版は、2005/06/15に公開状態となった。
本文書中で、検討中、または【拡張仕様】とされたものは、2005年度のSmartWrite/SmartCalendarには含まれず、来年度以降の検討課題とされたものである。

●仕様書について
この仕様書は基本仕様と拡張仕様からなり、基本仕様はかならず実装すること。拡張仕様は実装依存とする。拡張仕様と書いていないものはすべて基本仕様である。
仕様を参考にしてできたプログラムがSmartWrite/SmartCalendarであるかどうかは、別途チェックリストを作成しチェックすることで行ない、ソフトウェアがSmartWrite/SmartCalendarの名称を使うかどうかを妨げない。
ただし、チェック後仕様に満たない場合には、協議により改善を求め、また名称の変更を求めることもある。

なお、SmartWriteとSmartCalendarは、2004年度IPA未踏ソフトウェアに採択され、支援を受けた。

●SmartCalendar/SmartWriteの設計方針
ダイレクトオペレーションを最重要視する。
パネルなどはいっさい出さず、Smartでインテリジェントな動作を行う。
「〜〜できませんでした[確認]」のようなパネルは不要。
その代わりにアンドゥ機能を充実させる。
基本的にはすべての操作を完全に元の状態に戻るまでアンドゥできるようにする。そのために必要な操作のログを取る。
スクロールはしない。したがってスクロールバーは使用しない。
仕様、ソースはオープンにする。オープンだと紛失防止になるため。
仕様と実装を分離する。仕様に準拠したソフトが複数出てきてもかまわない。ただし実装が異なってもデータ形式は共通とする。
事実、SmartCalendar/SmartWrite2005では、Windows版、マッキントッシュ(Java版)、BTRON版が同時開発される予定である。
データ形式を共通化できない場合、便宜的に移行ツールを提供することを検討する。
【議論】SmartCalendarは、シェルであると位置づける。したがって、データは既存のデータを直接読み込むことができることになる。年-月-日の場合問題ないが、それ以外の形式の場合、どのような形で読むのか(読み飛ばすのか)が問題である。
回答としては、現時点では、年-月-日以外の場合、いわゆる一日ぜんぶ表示形式で読むことを想定している。

●写真の特定
写真をファイル名によらずに特定するために、SmartCalendarとSmartWriteは、すべてのファイルに一意となるIDを振る。IDは、日付+PC名+ユーザー名+連番+バージョン番号とし、32ビット以上とする。
具体的には、
<SmartID Ver=’1.00’>
2005_0509−55555−OEM−0011111−00111−misaki_kaoru−00000001−Ver0000
</SmartID>
とする。
SmartCalendarでコピーした場合、コピーバージョンを振る。Ver0000がオリジナル。コピーする度に+1インクリメントする。のちに日付でサーチすれば、オリジナルを探すことがしやすくなる。

●スライドショウ中の意識のダイレクトな反映
SmartCalendar/SmartWriteは、ユーザーの操作中の意識をナチュラルに反映できることを目的とする。
大量の写真を扱うとき、重要なことは、1枚ずつの写真をレタッチすることではなく、みたい写真を見たいようにみる(並べ換えたり、好きな写真だけを拡大する)機能である。複数のユーザーがいる場合、いっしょに見て楽しい写真を見る(プライバシーコントロール)ことも重要である。
そこで、SmartCalendarでは、よい写真/悪い写真(客観評価)、好きな写真/嫌いな写真(主観評価)、公開できる写真/プライベートな写真の3軸での評価を、新しい価値観として提案する。
このような機能を実現することで、ユーザーの直観性を反映することが可能になる。

写真を残す理由と削る理由を列挙すると、たとえば下記のようになる。

「残す理由=スライドショウ中に○」
露出アンダーの写真は比較的残す。
顔の写っている人物の手ブレは類似写真がなければ削除しない。
動きのある組写真は残す。
ヒントのあっている写真は残す。
構図がおもしろい写真は残す。
光がおもしろい写真は残す。
動きがおもしろい写真は残す。
色がおもしろい写真は残す。
2枚連続したものは交互に比較して決める。
人物ごとにマーキングする。
オブジェクトを撮影したものでほかにない写真は多少の手ブレでも残す。

「削る理由=スライドショウ中×」
風景の手ブレは削除する。
露出オーバーの写真は削る。
重複した写真は削除する。
表情が悪い写真は削る。

これらの、あるいはこれ以外の理由による写真の評価を積極的に支援する。

●キャプションをつけたい
写真を見たユーザーは説明を書きたいと感じるものである。書きたいと思った瞬間に文字を書け、その説明書きは、のちのちblogなどに応用できるようにすること。これによって、ユーザーの作業を軽減する。
スライドショウ中にJPEG/Exifへの文字編集が可能であること。

●能動的スライドショウ
従来の写真編集-レタッチという流れではなく、みたい写真を見たいようにみる、という形に特化する。すなわち、スライドショウの最中に、一時的にスライドの順番から除いてみる、というような操作が可能であること。
受動的スライドショウモードでは、音楽を流すことを検討する。

●紙をめざす
SmartCalendar/SmartWriteは紙をめざす。
紙の要件にはいろいろなものがあるが、SmartCalendar/SmartWrite2005では、スクロールバーを使わないことで紙的な表現を実現する。逆にいえばたとえば、紙のように破りとれるようなことは実現範囲とはしない。
SmartWriteは、書いたものを保存する(保存しないでは終わらない)ことで、紙的な使い勝手を実現する。

●SmartCalendar/SmartWriteのインストール
・インストールは、レジストリをできるだけ使わず、プログラムファイルをダブルクリックするだけで起動可能とする。
・インストールする場合、デフォルトのディレクトリは、
c:\Program Files\Smart\SmartWrite\
c:\Program Files\Smart\SmartCalendar\
とする。
共通のファイルは、
c:\Program Files\Smart\
に置く。共通のファイルとは、たとえば背景画面である。

【拡張仕様】インストール時に、フォルダ構造を検索し、ルートとなるフォルダを提案する。
検索方式は次の通り、
(1)c:\とe:\を検索し、2005、2005年などのフォルダ名があれば、その上をルートにする。その他の外部ディスクの検索はオプションとする。
(2)マイドキュメント/マイピクチャーズにあるフォルダの数がn個(たとえば10個)を超えており、最後に作ったフォルダの日付が1カ月以内であれば、そこをデフォルトにする。

【1】SmartCalendarのコンセプトと仕様
【1-0】SmartCalendarのコンセプト
●SmartCalendarの真の目的
SmartCalendarの真の目的は、ファイルを作成時にカレンダー型の日付の特定の日に固定することで、ファイルを移動する必要性をなくし、その結果、ファイル名で特定できるようにすることでリンク構造を構築する基盤とすることである。その結果、ファイル構造の上に柔軟なハイパーテキスト構造を構築することができる。
フォルダをカレンダー型の日付の特定の日に固定することで、「ファイルがなくなる」という問題を未然に解決することも可能であると考える。
※ BTRONの実身/仮身をWindowsに再現することが目標である。
第一段階のSmartCalendarのあと、応用範囲を空間的応用に拡張する。

空間\時制 記憶(過去) 展望(未来)
--------------------------------------
時間 SmartCalendar@WISS SmartCalendarExtended(Now)
空間 SmartAdress+Map(来年度以降)

さらに、プロジェクト/人に展開する。

空間\時制 記憶(過去) 展望(未来)
--------------------------------------
時間 SmartCalendar@WISS SmartCalendarExtended(Now)
プロジェクト SmartProject
人 SmartAdress/People/Relation

SmartNetwork
SmartPeople
SmartMail
SmartFolder

※ SmartCalendar@WISSは、WISS2004の会場でブレーンストーミング的に話をしていたSmartCalendarの初期のモチーフ。現仕様(未踏2004年版)は、そのコンセプトに較べて、大幅に拡張されているため、区別するためにここでは、SmartCalendarExtendedと位置づけている。

コミュニケーションへの応用次年度以降に開発検討します。協力会社募集中。

●SmartCalendarとは
SmartCalendarは、Exif(やJPEGなどのタグ情報)を扱え、写真と文字とを融合した軽快なシェルソフトである。
JPEGアプリケーションセグメント内(Exifセグメントより後)に記述する。

軽い70万枚×1枚/1MB、170枚/1日、5000枚/1月程度を瞬時に扱えることを目的とする。そのため、フォルダごとにサムネイルをつくってもよい。
この枚数を扱えることからもわかるとおり、毎日写真を撮る人をターゲットにする。それなりの量を撮るから必要になるのであって、年間に数枚程度しか写真を撮らないユーザーは、そもそもカレンダー型である必然性がないためである。

SmartCalendarは、おおまかに、次の機能をもつ。
シェル機能(エクスプローラに代わるシェル機能)
能動的受動的の2種類のスライドショウ機能(テキストファイルもスライドする機能)
・検索機能(JPEGアプリケーションセグメント、Exifタグとテキストファイルを同時に検索できるgrep機能)
・JPEGアプリケーションセグメント、Exif編集機能(スライドショウの最中によい写真/悪い写真を評価しそれをコメント化する、コメントを書き込むなどの機能)
カレンダー機能(予定表機能)

SmartCalendarのモード遷移図はモード一覧図およびモード一覧表の通り。


●開発のポイント
高速で動作するように、キャッシュ、データベース、サムネイルなどを工夫する。
フォルダごとにサムネイルのキャッシュをつくってもよい
× コメントは、Exif、JPEG、NSK-TIFF、IPTCなどの形式で書き込む。汎用性と編集性のバランスを考える。
○ コメントは、JPEGのアプリケーションセグメントに書く。Exifも活用する。
アプリケーションセグメントの値は、FFE4とする。


●コメントタグ
× コメントは、Exif、JPEG、NSK-TIFF、IPTCなどの形式で書き込む。汎用性と編集性のバランスを考える。
× JPEGにあるアプリケーションセグメントというユーザーが自由に使えるデータ領域の仕様を使うことを検討する。たとえばAdobeのソフトはそこにキャプションやコピーライトなどのメタデータを保存している。
× ExifとAdobeのデータ、コメントの共存なども可能。
× テキストのコメント用の仕様もあり、それを利用することも可能。

Exifは、書き換えがいろいろとややこしいので、Exifを残しつつテキストデータやAdobe互換データ、またはオリジナルデータ形式で保存する(もちろんそれで正規の1つJPEGファイル)のがよいかもしれない。
最新のAdobeのデータ形式はXMLが採用されていて、国際標準などにあわせているのではないか?

コメントをXMLファイルにして、写真ファイルと別にもつという考え方もあるが、SmartWrite/SmartCalendarではこの方式はとらない。ファイルがファイラーでばらばらになってしまうので、扱いにくいためである。

○ コメントは、JPEGのアプリケーションセグメントに書く。Exifも活用する。
書式はXMLを意識する。

<SmartFormat Ver=’1.00’>
<SmartCalendarComments>
2005/02/15(火曜日)_22:20[タブ]書体[タブ]文字サイズ[タブ]○○○○●これはスマートカ●レンダー用の文字●数カウントのテン●プレートです。こ●れを使って五百文●字をカウントでき●ます。○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●ここまでで五百文●字です→
</SmartCalendarComments>
</SmartFormat>

【1-1】SmartCalendarのシェル機能(エクスプローラに代わるシェル機能)
●シェル機能
SmartCalendarは、ドラッグ&ドロップで他のフォルダ(FTP等)とやりとりができる(受けとることもできる/他のフォルダから移動してくることもできる)。
ゴミ箱に移動することで削除ができる。
メモを取ることや、ファイルを移動することで新規のファイルを作成でき、新規のフォルダを作成できる。
やりとりのログはExifのなかに書くこと【拡張仕様】。
任意のアプリケーションを起動できること。
扱うファイルを参照。
ウィンドウの左にツリー構造をペイン表示できること。
多重起動可能とし、SmartCalendar同士でもやりとりを可能とする。

これらはいずれもダイレクトオペレーションによって実現している。
すなわちユーザーは、単に写真を移動するだけ、単に文字を書くだけで、自動的にファイルが作成される。ファイルを作成するという意識さえ必要ない。
もちろんすべての操作は自動的に保存されているので、保存するという意識もない。いっぽう、コンピュータ的には、ファイルは年-月-日の構造のもとに作成され、管理される。

●フォルダ構造
ファイルの構造や管理方式には、古くはUNIX風(「bin」「boot」「dev」「etc」「home」「initrd」「lib」「lost+found」「misc」「mnt」「opt」「proc」「root」「sbin」「tmp」「usr」「var」)に始まり、Windows的な「My Documents」「My Pictures」など、いろいろなものが提案されている。

ファイルに対するエンドユーザーの典型的な問題は、保存したファイルが見つからないということに尽きる。最新のOSでは、検索機能を充実させることで解決を図ろうとしているが、SmartCalendarでは、別のアプローチをとる。すなわち、日付順の整理である。
整理にはいろいろな方法があり、たとえばこれまた典型的なのは、デスクトップにぶちまけておく、という方式である。この方式は整理できる数の最大数がデスクトップの広さに制約を受けるが、それでも昨今のディスプレイはそれなりに広く、ツインディスプレイなども使えるようになっている。とはいえ、「見えるところにあれば安心」ということは、逆にいえば「見えないところにあるからファイルがなくなったと思い不安」ということでもあり、見えるようにしてやれば解決する問題なのではないか、と考えた。
その方法が、一貫性のあるファイル構造(年−月−日)と、サムネイルによって表示し続けることである。

SmartCalendarでは、ファイル構造には、年−月−日を使用する。
年−月−日のファイル構造のメリットは、年を4桁の西暦で記述した場合、ぜったいに重複が起こらないということであり、「昨日」「今日」「明日」という相対的な構造をも、容易に扱えるようになることである。
現に、80万件の写真データを、年−月−日の構造で、無理なく整理できているという実例があり、その程度の有用性はあると考えられる。
デメリットとしては、テーマ単位、ひと単位での整理に不向きということであるが、テーマ単位、ひと単位での情報整理が「つねに整理し続けなければ破綻する」可能性をもっているのに対して、まだその可能性は少ないといえ、相対的には評価できると考える。
もっとも、年−月−日の構造は、万能というわけではない。テーマ単位、ひと単位等の構造を無視するわけではなく、SmartCalendarの発展形として、多様な分類をも許容するようにはしておく。

●サムネイル
従来のOSにもサムネイル表示が実装されるようになっている。しかし、サムネイルが充分なサイズをもたない場合、なにを表示しているのかわからず、かえって不満を抱くようになる。そこで、SmartCalendarでは、充分なサイズのサムネイル(180×135ピクセル程度を目標として設定)を使用し、見てわかることを重視した。

●ダイレクトオペレーション
SmartCalendarでは、ファイル(主として写真)をダイレクトに扱う。
他ウィンドウ等へもダイレクトにドラッグ&ドロップ可能とするため、SmartCalendar上では、ファイル名を表示する必要がない。
逆にいえば、通常ファイル名を必要とする場合というのは、ドラッグ&ドロップに対応していない非標準のデータ形式をもったアプリケーション同士で、メールに添付するのにファイル名を記述する必要があったり、ホームページにURLを記述するというような場合である。
SmartCalendarでは、扱うファイルは基本的にJPEGファイル、テキストファイルに限られ、汎用性が高く、また目的となる写真をダイレクトにドラッグ&ドロップして、フォルダ名の記述とすることができるので、ファイル名によってファイルを特定する必要がない。
つねに、サムネイルによって、中身を確認しながらファイル操作を自然な感覚で行うことができるのが、SmartCalendarの最大の特徴である。
参考:


●ドラッグ&ドロップ
SmartCalendarはドラッグ&ドロップを強く推奨する。
ドラッグ&ドロップは、SmartCalendarで表示したサムネイルを他の日付に移動したり、他のウィンドウに移動したりする場合に使用する。

SmartCalendarでは、ウィンドウ内のオブジェクトであるサムネイルは、つねに操作対象となるように設計されている。サムネイルは、移動し、コピーし、削除することができる。

(Ctrlキーを押しながらドラッグするとコピー)。

ドラッグ&ドロップによって、受動的に写真を見、それを能動的に活用する、という一連の動作が、シームレスに連動する。

※ ウィンドウズで実装する場合、コピー属性(移動属性不可)としておくと、ゴミ箱にドラッグすることができなくなるので注意。

●ドラッグ&ドロップの履歴【拡張仕様】
他にドラッグした写真は履歴をとり、検索可能にする。
他にドラッグしたということは、その写真を活用したということを意味すると考えることができるためである。
フォルダ単位で移動した場合にはフォルダ単位での移動の履歴を記録する。

※ ネットワークを介すると移動できなくなる可能性がある。調査し対応する。

ドラッグ&ドロップの参考ページ
http://www24.cds.ne.jp/~neg/pro/piyo1/devfil/wata.html
http://resume-next.hp.infoseek.co.jp/data/Win2.html
http://mineko.fc2web.com/box/my-room/link/techlink.html
http://search.acty-net.ne.jp/mfc_search/archive/2001-1/msg03506.html
http://www.bcap.co.jp/hanafusa/VBHLP/Sampleitiran.htm
http://santamartadotnet.hp.infoseek.co.jp/documents/dotnettips.html
http://www.woodensoldier.info/computer/CSharp.htm
http://ikejisoft.com/?C%A2%F4TIPS

●反映するフォルダ(ディレクトリ)構造
日付の構造は、iniファイルに設定したルートから、
root:\2005\200502\2005_0218\
すなわち年\月\日のみを許容する。
ただし、日付のなかにサブフォルダをおくことは許容する。

root:\2005\200502\2005_0218\ジンギスカン\
root:\2005\200502\2005_0218\仕様作成\

などとする。
サブフォルダの下にサブフォルダがあることもあるが、これへの対応は拡張仕様とする。

メインのディレクトリの設定は、iniファイルに、
DataDirectory=F:\
のように書く。

DataDirectory=L:\
DataDirectory=F:\
DataDirectory=D:\
のように複数列挙した場合、いちばん上から順番にアクセスする。
アクセスのタイミングは起動時、表示が変わったときなどとする。

日付のないフォルダ名は、カレンダーの日付の外に表示する【拡張仕様】。

●反映するフォルダ(ディレクトリ)構造【拡張仕様】
ルートを指定したとき、ルート以下のフォルダ構造をYMDの正規表現で設定可能にする。
具体的には、
disk:\%Y\%Y%M\%Y_%M%D%name\
というような設定をできる。
%Y=4桁で年 %y=2桁で年 %M=2桁で月 %m=1or2桁で月(1、2、3、4、5、6、7、8、9、10、11、12) %D=2桁で日 %d=1or2桁で日 %nameで文字列

disk:\%Y\%Y%M\%Y_%M%D%name\
と設定すると、
disk:\2005\200502\2005_0218\
disk:\2005\200502\2005_0218 ジンギスカン\
disk:\2005\200502\2005_0218 仕様作成\
などをひとつのフォルダとして許容する。

基本仕様としては、このような構造に対応しないこともあるため、便宜的なツールとして、年-月-日の構造を構築するスクリプトを提供する。
mkdirスクリプト

●表記の揺らぎの対応【拡張仕様】
年−月−日の記述の揺らぎにあらかじめ対応し、設定不要で表記の揺らぎに対応する。
同じ日のフォルダが複数存在することもある。

具体的には、

(1)年の下にいきなり日
1972
└─1972.3.18 文学

(2)年の下に年だけ
1973
└─1973 深緑の手帳

(3)年の下に「’」で日
1974
└─’74.06.01 ポーの一族1

(4)年表記がくり返し
1974
└─1974 手帳 東京 埼玉 千葉 1974

(5)異なる年
1979
└─SIGN BOOK 2002_12_24

(6)月表記が4桁
9607
└─’96.07.09 ジョジョの奇妙な冒険 48

●日の表記例【拡張仕様】
1972.3.18 文学
’74.06.01 ポーの一族1
1976_0101
’77.05.10 ルパン三世 11
19770720オーロラの牙 3(松本 零士)
ベンジーの愛(1977.07.23)
1978_03ルパン三世 全→公開No.2
’78.11.25 増刊週刊少女コミック11月25日号
ルパン三世 名場面集 1978.5.8
SIGN BOOK 2002_12_24
映画ハ゜ンフレット ルパン3世 S53_12_16発行
ルハ゜ン三世 ファンクラフ゛ 創刊号 VOL_01 NO_01 S53_06_01発行
1979−1980第2学年家庭学習の記録
1979_04生徒家庭一覧 昭和54度
ロードショー特別編集 銀河鉄道999 1979.09.10
バラエティ10月号 特別増大号 昭和54年10月1日
文庫本 クラッシャージョウ 暗黒邪神教の洞窟 高千穂 遥 1979_03_30第2版発行
湖畔 S54 日光宿泊学習記念文集
知道 昭和54年
週刊少女コミック 1979年10月20日号 20
銀河鉄道999 GALAXY EXPRESS S54_09_25発行
コミック本 クィーン エメラルタ゛ス − 松本零士 S54_03_01第3刷発行
ルハ゜ン三世 ファンクラフ゛ 08月号 VOL_02 NO_08 S54_08_01発行 通巻16号
1980.3.10−4.13 第2学年家庭学習の記録
1980_0520 S55前期第1回生徒総会用資料
1980_0822ノートNO_005 英語
翔んだカップル ピンナップ集 少年マガジンデラックス−19800820
知道(S56.3.1)
知道 56(1981)
バラエティ1981−6月号
バラエティ S56_09月号
DrスランプSpecil 1981.09.30
狐と踊れ(1981.10.31)
バラエティ1981−12月号−19811201
1982 DATE BOOK
1982_04すくらんぶる★えっぐ(新連載)
19820525夏の空色 高橋亮子
ComicBox11 12 1982.11.1発行
さよならなんていえない(りぼん09月号)1982
バラエティ S57_06月号
優しい恋人たち2 leeway(32枚)1982.12.23−1983.1.11
原稿 1982−83
原稿その1 1981−1982
読書のーと 1982_10_25〜1984_09_09
ノートNo_023 切り貼り 1982
優しい恋人たち3 1983.01.12−04.21
さよならなんていえない(りぼん07月号)
三省堂 ぶっくれっと 1983・7 No・45
図書1983.8 1983.8.1発行
35TH GAKUEN Fes・ MITO 1st HIGH・ 24・25・september’83
僕だけの学苑祭1983.9.20〜9.25
図書1983.9 1983.9.1発行
1984l825バイオレンスジャック 2(永井 豪)
封筒−126 ぱふファミリー テスト資料 85_10_31
nonno59−12−5
ソルシ゛ャーホ゛ーイ(ちゃお昭和59年12月号)
SFイズム1985VOL.51 1985.1.5発行
文庫本 茶の本 岡倉覚三著 1985_01_10 第64刷発行
共作with Yuka&Yashiro85.3.25(Mon)
CUE March/April 1985 No.7
MEMORANDUM VOL2 85429〜
原稿箋_1 19850109−19850416
スカイホリデー沖縄ANA全日空昭和60年4月〜昭和61年3月
青春と読書85−4
1985年 昭和60年 ファオ文庫 解説目録 第11版
MEMORANDUM VOL4 85827→851116
コミック本 萩尾望都作品集12 メッシュ2 1985_09_20 初版発行
記憶の断章 読書ノート85.12.22.(sun)
青春と読書85−12
カ゛ラスのアスファルト(ちゃお85.12)
ハ゜ーティーがはじまる(りぼん12月号)
1985_波 Index
1985Done5
comic モーニンク゛ 1985 No_15
EXPO 85
MISS DJ リクエストハ゜レート゛ 1985
本の窓 ’85
読みつがれ 読みつぐ 岩波文庫85
花椿 MAY 1985 No.419
封筒−125 IZUMIより 86_03_22
Sold Out Apr ’86 issue 36
1986_0826−29 茶道部86 夏合宿
木島平スキーツアー 86_11_13−87_01_09
映画の記録 86.11.14(Fri)〜87.11.30
オリジナルリーフ作成 (デイリー他)87.1.10(Thu)〜
87年試験 87.01.26(mon)〜
1987.2.1未来2
追いコン−87.02.18(wed)−予定 87.01.24(sat)〜
コンサート87.06.22(MON)〜88.01.22(THU)
1987資料88.7.26(2)
MEMORANDUM VOL16 871030〜89131
列車時刻表 昭和62年7月18日〜8月16日 JR東日本 千葉
19871122−25京都TOUR
封筒−056 87大学祭 茶道部
優しい恋人たちKaoru in Summer第1部88.7.1
’88.08.05 UP8 1988年 190号
880805 引っ越し
19980319 今井美樹 19880710
NETWORKER Vol.25(1988.10.01)
格闘技通信 5月号増刊 3・26オリンピック速報号
ぶっくれっと 1992_September No_100 百号記念特別号
Do Book(H4.10.1)
REV SPEED 1992 NOVEMBER No.023
格闘技通信7・30増刊号(H5.7.30)
格闘技通信1995−0623
960203−6 HONG KONG
dos−v special 9609
dos−v special 199705
dos−v magazine 970615
PREMedia Part8 Oct_1997
TRONSHOW1997
edit−by−kaoru−19991008
浴室サウナ暖房乾燥機 平成12年2月8日
BEAT FREAK200004
DADi 10・2000
20010402 105_fuji
I−O DATA パソコン周辺機器カタログ 2002DECEMBER iplus
2003.11.15(土)−11.25(火)笹倉徹大工と家具展

19か20で始まる数字が8桁続くときは日。
8桁のなかに、区切り文字は「.」「_」「年」「月」「−」「 」「・」が使われる。
年は「19**」「’**」「昭和**」「S**」「H*」「H**」「20**」と記述される。単に2桁の数字のこともある。

●日でない数字や混在
ノートNO_008 家庭学習帳 5−2_NO1
ルハ゜ン三世 ファンクラフ゛ 04月号 VOL_03 NO_04 S55_04_01発行 通巻24号
19800523ノートNO_004 数学1980
エイリアン通り(第3回連載第12回)
’82.03.01 SF&FANTASY リュウ VOL.16
’82.07.01 SF & FANTASY リュウ VOL. 18
翔んだカッフ゜ル友の会 機関紙 NO_10
1983クラッシャージョウ制作期間2年半。動画枚数85000枚。・・・
ノートNo_022 1983
三省堂 ぶっくれっと 1983・9 No・46
優しい恋人たち3 1983
これから出る本198414 8月上期号
1984_10ニコリ・12
ヤングマガジンNo.6 3.18MAR,1985
テー・エス原稿箋23(1985.5下旬、1985.8.18)
Laser Vision Disc LINR UP VOL_04 1985_04発行
青春と読書85−501
三省堂 ぶっくれっと 1985・7 No・57
NEW DISC FALSH PIONEER S60_98 VOL_46
1985.11.10 KOJI KIKKAWA K2 AUTUMN ISSUE ’85 NO.2
有閑倶楽部(ぶーけジャンボコレクション総集編PART1)
ファイル入りメモ INFORMATION6 ゴルゴ13
蔵王SKITOUR’88 88.4.28
花椿 SEPTEMBER 1988 459
明朝体 135900994
ms−dos3.10
dos3.3B c
アシストカルク SS23NE11004746
直子の代筆 シリアル番号 510−890764
312−0320 Film0002
19900731 technote serial no. 129200540
dynabook J−3100SS 日本語MS−DOS V3.10 J−3100SS02Eモデル
19910623 refalo data 3398−9125 区民センター
920201 8マン
ぶっくれっと 1992_March No_97 春季増大号
TK−1 ソフトウエアキット M78−15−XX01443
月刊WindowsMagazine 1993 JANUARY−19930101−1
格闘技通信1993.12.19NO.102
マップインターナショナル’93.4〜9−NO.1
ホヒ゛ーシ゛ャハ゜ン ’93_04 仮面ライタ゛ー NO_287
ABCシ゛ャーナル1161994.9.15発行
GOODS INDEX 1994冬号 Vol_5
quick link II 940614002029
優しい恋人たち94.4.22 5.Kaoru in Summer 2部 新Kaoru in Summer
advantage WAADJ10N002967
prn−21 50400028
ザ・国際人 ver.1.0 11251091
1996−5−8 格闘技通信No.156
New Disc FLASH 5 Vol・174 1996・MAY
1996_0501あずみ04
960802 図解60分でわかるデジタルカメラ用図版
ユーザー登録カードLAK−CD021AX142708(1997.8.5)
chpt11
KRS PRIDE4 オフィシャル速報マカ゛シ゛ン 「10_11東京ト゛ーム決戦速報」
日経 WinPC 1999・7(0001から0215まで)
20000410 PCNAVI s−n95113235
2900−2999
コミック本 MAGIC 清水玲子 2000_10_15第7刷発行
v_16_130901
d2001_10_01
v22_2001_08
v_42_2001_10
No14_200110
通販 フリーダイヤル0120−247−414
AV REVIEW 2002.10.NO105
site=pcweb&SpaceDesc=pc−skyscr&size=148x800.files
AAMSZ=150x33(2).files
Tarzan 5.28.2003 No.396
s=biz&scd=bc&adsize=468x60&transactionID=1061827842.files

日を検索するロジックは次のようなものを検討し、実装段階で詳細を詰める。
(1)「No.」「NO」「」「Vol.」「Vol」「第」「回」「分」「chpt」「刷」(2)「×」などの文字と出てくるものは日付ではない。区切り文字は「.」「_」が使われる。
(3)4桁以上の数値の並びのうち、先頭の2桁が19、20でないものは日付ではない。
等。

●起動と多重起動
起動時には、終了した(月/週/日/一覧)モードで「今日」を表示する。
ただし、終了時のモードに多数(1万個)の写真がある場合で、起動がきわめて遅くなる場合、デフォルトのモード(月表示)で起動することを許容する。
終了時には、次回起動時を高速化するため、終了時の画面をクリップして、その日のフォルダにpng画像で保存する【拡張仕様】。
多重起動を可能にする。多重起動したときに、タイル型にウィンドウ管理をする(大画面で多重起動を可能にすれば、2カ月表示、3カ月表示も可能になる)【拡張仕様】。
多重起動を可能にするのは、異なるウィンドウ間でのドラッグ&ドロップを可能にするという理由もある。

●背景画面
SmartCalendarは、裏に好きな絵を貼れる【貼る絵は月ごとに変更できるようにし、それぞれの月(週/日)のフォルダに、back**.jpg(またはback*.bmp)というファイルをおく。月のフォルダのなかにback_week**.jpg/back_day**.jpgがあれば、週表示/日表示ではそれを流用する。これによって、毎日背景を変えることもできるし、1カ月単位で変えることもできるようになる。

背景は自動で薄く(淡く)表示できるようにし、標準では10%程度の薄い感じにする。設定のグラフバーで変更できるようにする。設定は設定した瞬間にリアルタイムに効果を確認できるようにする。

特定の日になったときだけ背景を変えることを可能とする。たとえば、5/14が誕生日で、2005/200505/back20050514.jpgがある場合、カレンダーを起動して日時が2005年5月14日だったら、その日だけその背景を表示する。
背景画面をアプリケーションのフォルダに置く場合、次の2種類を許容する。
(1)backで始まる画像ファイルを背景とする。デフォルトはback.jpg(bmp)、それがない場合、back*.jpg(png/bmp)を背景とする。
(2)back/フォルダがある場合、そこに置かれた画像ファイルを背景として扱う。この場合、ファイル名がbackである必要はない。
画像ファイルが複数あり、Exifファイルで、撮影時刻をもつ場合、その時刻になったら背景を自動的に変更する。

背景画面の優先順位は、日のフォルダ、月のフォルダ、アプリケーションのフォルダ年、できるだけ日/月ごとに異なる背景を楽しめるようにする。

右メニューから背景にする設定メニューを表示し、任意の写真を背景にできるようにする。その場合、ファイルはコピーして該当のフォルダに配置され、ファイル名はback_originalfilename.jpgとリネームする。
日のフォルダの内部に日のファイルを置く場合は、コピーせずにリネームする。【一貫性の点で要検討】
backファイルが画面より小さい場合、タイル表示または拡大表示をする。
タイル表示にするか拡大表示にするかは設定可能とする。
また、アルバム風の台紙を用意し、それを使用する。
台紙のファイルは、アプリケーションのフォルダ等に、album_back*.jpgなどとして配置する。


背景は、写真モチーフなどのマスクを用意し、重ね合わせて表示することで、より写真的なモチーフを大切にできるようにする。【拡張仕様】


背景画面が縦長の画像ファイルの場合、あるいは縦横比が異なる場合、くり返し表示するか中央表示、または上部/下部に表示するかトリミングする。
デフォルトは中央表示。
上部に背景写真、下部にカレンダーとなると、紙のカレンダーに近い表現が可能である。

iniファイルで設定可能とする。
backcenter=0,1(0=中央表示、1=上部、2=下部)
backrepeat=0,1(0=しない、1=する)
backtrimming=0,1(0=しない、1=する)

背景画面のファイルが、日時をもっている場合、その日(2005/05/30なら0530、または30)と、時刻を利用し、背景が動的に変わるようにする。

●サムネイルの縦横計算
縦横の計算は次のようになる。
縦をH、横をWとする。

(1)サムネイルサイズに対して画像が縦長の場合
サムネイルサイズのW/Hは1より大きい
画像のW1/H1は1より小さい

この場合、ズーム比率はW1/Wとなる。



(2)サムネイルサイズに対して画像が横長の場合
サムネイルサイズのW/Hは1より大きい
画像のW1/H1は1より大きい

この場合、ズーム比率はH1/Hとなる。




【運用での対応について】
背景とする写真は、その日のなかでもっとも印象的な写真ということが考えられる。これはとくに問題にならない。
いっぽう、そのファイルは、スキャンした書籍の場合、表紙であることが考えられる。
表紙のファイル名をback.jpgとした場合、通常のファイルは0001.jpg(もっとも若い番号)から始まっていることを考えると、スライドをした場合に、表紙が最初に表示されない不具合が起こることが想定される。
解決方法としてはいろいろ考えられるが、表紙が0001.jpgであり、それを背景にしたい場合、運用上はリネームするのではなく、コピーすることを推奨する。メディアが大容量であるため、複数のファイルをもっても問題は少ない。同じファイルをふたつもつことは破損防止にもなる。そのファイルが「もっともよい写真」であるのであればなおさらである。


●扱うファイル
SmartCalendarは、Exif、bmp、png、JPEG、html、テキストファイル、フォルダを扱う。
RAWデータのJPEGサムネイルを読み込めるようにする(RAWデータのなかのサムネイルはJPEG形式で保存されている)。
その他のファイルは拡張機能として扱えるようにする。
× SUSIEプラグインへの対応を検討する。

Exif/JPEG、テキスト(html)以外のPDF、DOCファイル、扱えないファイルなどは、アイコンを表示する。

●移動/コピー時のシェル機能によるリネーム
ファイルをドラッグ&ドロップで移動/コピーする場合、移動先に同じファイル名のファイルが存在する可能性がある。この場合、通常はパネルを出して、「ファイルを上書きしますか」と確認するが、前述のように、SmartCalendarではファイル名によってファイルを特定しないので、ファイル名が重複した場合、自動でリネームする。
確認のパネルを出してもよい【拡張仕様】。

●リネームの履歴【拡張仕様】
リネームした履歴はJPEGのアプリケーションセグメントのなかに書く。Exifも活用する。この履歴を読むことで、元の状態に復元できるようにする。
<SmartCalendarRenameLog>
2005/02/20(日曜日)_10:55[タブまたはスペース]0050.jpg 0031.jpg
2005/02/20(日曜日)_10:45[タブまたはスペース]0003.jpg 0050.jpg
2005/02/20(日曜日)_10:41[タブまたはスペース]DSCF0345.JPG 0003.jpg
</SmartCalendarRenameLog>

※ リネーム履歴を書くことで、すべてのファイルを元の状態に変更できる可能性はあるが、実装できわめて遅くなることが予期されるため、拡張仕様とする。

●スライドショウ時のリネームによる順番変更【拡張仕様】
通常、エクスプローラ等でファイルを表示すると、ファイルはファイル名の順番に並ぶ。「オブジェクトを任意の順番に並べる」という操作は、実世界ではきわめてよく使われるメタファーである。ところが、コンピュータの内部では、ファイルはファイル名によって拘束されるため、オブジェクトを任意の順番に並べることがきわめて困難である。
SmartCalendarでは、この、オブジェクトを任意の順番に並べ、それがコンピュータ内部で一貫して使えるようにするということをサポートするため、並んだファイルを自動的にリネームして順番を変更する機能を提供する。
0001.jpg、0002.jpg、0003.jpgとサムネイルが並んでいる場合、0003.jpgを0001.jpgの位置に移動した場合、0001.jpg(旧0003.jpg)、0002.jpg(旧0001.jpg)、0003.jpg(旧0002.jpg)というようにファイルがリネームされる。これにより、操作した順番にファイルは並ぶことになる。

ファイル名をリネームすると、ファイル名によってファイルを特定することはきわめて困難であるため、ファイルを特定するためには、前述のIDを用いるか、または画像ファイルの内部をバイナリ探索することによって行う【拡張仕様】。

●シェル機能による移動【拡張仕様】
異なるフォルダである場合には、設定したルート以下のパスを記述する。
このログは、FTP時/メール時には削除する。

<SmartCalendarMoveLog>
2005/02/20(日曜日)_10:55[タブまたはスペース]0031.jpg disk:\Recycled
2005/02/20(日曜日)_10:50[タブまたはスペース]root\2005\200502\2005_0220\0050.jpg root\2005\200502\2005_0219\0050.jpg
2005/02/20(日曜日)_10:41[タブまたはスペース]DSCF0345.JPG 0003.jpg
</SmartCalendarMoveLog>
のようにする(じっさいには半角)。

参考 ゴミ箱のパスは、
FATの場合は 「C:\Recycled」
NTFSの場合は「C:\Recycler\<ユーザ毎のフォルダ>.....」
http://rewind.s53.xrea.com/text/log/eid5.html

移動先の日付にフォルダがなければ作成する。逆にそのフォルダが空になったら、フォルダを削除する。

●ムーブリネームログによるアンドゥ【拡張仕様】
リネームログはアンドゥのために使用する。SmartCalendarによるアンドゥは、ファイルの移動、リネームに限られる。したがって、巨大画像の編集のような巨大なログを必要とすることはないと予想される。実装テストで確認する。
ログは半角20文字×行数となる。100回移動したとすると、20×100=2000文字である。Exifタグの範囲に充分収まると予想される。しかしながら、Exifタグにはサイズの限界があることから、100回またはムーブログの文字列が2000文字に達したところで、いちばん古いものを該当する日のフォルダにMoveRenameLog.txtとして書き出す。つまり、SmartCalendarとしては、約100回までは移動を保証する。

SmartCalendar外での移動ログはもちろんとれない。
SmartCalendarからの移動のログまでは記録できないか。検討する。

【拡張仕様】どのように復元するかをGUIで明示する。
他のフォルダに移動した場合、移動先のフォルダの最後に追加する。DSCF030.JPGのようなファイル名の場合、追加したファイルはDSCZ0000.JPGとする。0000の数値は、追加する度に+1ずつインクリメントする。

●確認作業をともなわないエラー処理
フォルダ内のJPEGファイルが壊れているかどうか確認する機能をもつこと。壊れたファイルを処理するときには無視すること。たとえばスライドショウなどでは、読み飛ばして次のファイルに進むようにする。ユーザーが気がつかなければ必要ないので、ユーザーの確認を求めない。

【拡張仕様】壊れたかどうかのレポートは残しておくこと。そのフォルダのなかに、errorlog.txtを作る。

【1−2】SmartCalendarの表示モード一覧
SmartCalendarは月表示、週表示、日表示などの表示モードをもつ。それぞれをダイレクトオペレーションで変えられるようにする。
モード一覧と遷移は、次のようになる(暫定)。
モード一覧図およびモード一覧表



【1−3】1カ月表示

カレンダー機能
SmartCalendarは、カレンダー機能をもつ。月曜起こし。日曜起こしを設定できるようにする。ハッピーマンデーにも対応。月齢等はオプション?
カレンダーはフォルダ構造を反映する。すなわちフォルダは基本的に年−月−日の構造とし、年−月−日の構造のフォルダをカレンダー型に情報を表示する。

カレンダー内に写真(Exif/JPEG)と予定(テキスト)を表示する。

1カ月表示のデフォルトは月曜起こしとする。日曜起こし、あるいはその他の曜日を起点にすることは設定で可能とする。
日曜、土曜は、色分けをして明示的に区別可能にする。色は平日をグレー、土曜をブルー、日曜を赤というのが基本とする。
月表示は、月にサムネイルを表示する。

× サムネイルは、180×135ピクセルとする。必然的に7日×6週は、最低限(180×7+2×6)×(135×6+2×5)ピクセル(1,272×820ピクセル)必要である。したがって、ターゲットマシンは1280×1024ピクセル以上とする。

○ 800×600ピクセル以下のコンピュータに対応するため、ウィンドウはリサイズ可能とした。そのため、サムネイルサイズはウィンドウサイズに応じて可変とする。ターゲットマシンが1280×1024ピクセル以上の解像度をもつ場合、サムネイルは、180×135ピクセル以上となる。

月によって5週表示と6週表示を分けるようなことはせず、常に6週表示とする。月によって週の数が変わると、サイズの変化が起こり、気持ちを不安にさせるため、一貫性を重視する。
カレンダー状態では、縦長の写真は縦長に表示する。表示した左右は背景(あるいは重ねた写真を)表示する。
日を特定できないフォルダは、日の余った部分に表示する。

【拡張仕様】 写真が多いかどうかが直感的にわからない。パイル(重ね)表示にする。パイル表示にすることで、表示面積は拡大するが許容する。

パイル表示では順番が不明瞭になる。その場合、どのように順番をつけ、名前に反映するか? 順番の反映はある程度までとして、残りはスライドショウでと割り切るか。
【拡張仕様】 カレンダー状態で各日の写真をスライドショウする。この場合同じタイミングで表示を切り替えるとチラチラするので、ランダムにする。ランダムにした場合、切り替わった写真を瞬間的に拡大表示する手もある(Photoriumを参照)。また、スライドがチラチラしてうるさいという手もあり、たとえば週表示/日表示で予定していた時刻情報を活用する方法を検討する。すなわち、1時間単位で表示する写真がリアルタイムに変わっていくということ。現在が16時であれば、撮った写真のうち16時〜17時のものだけを表示する。カレンダーにも1日があり、だんだん明るくなり、暗くなる、というような感じ。ランダムにする間隔、同時に変更する日の数は、設定可能とする。

smartcalendar.iniファイルにて設定可能とする。
ChangeSecond=8

※読み込みは、for文を使って行い、フラグをたてることで随時中断/中止できるようにする。中断/中止がない場合、たとえば1万枚の写真を次々に読み込むことになり、他の月に移動しても移動先の月が表示されず、どんどん表示が遅くなる。
写真の評価は、
【1-6】1日表示に準拠する。すなわち、スライドショウといっても、写りの悪い写真やプライバシー写真は表示しない。これにより、好きな/写りのよい写真のみを気持ちよく見ることが可能になる。

●各日スライドショウの場合の設定パラメーター【拡張仕様】
(1)切り替えの秒数 ChangeSecond
(2)同時に切り替える個数 sametime_change_photo
(3)切り替えパターン change_pattern
1 ランダム
2 奇数/偶数
3 曜日
4 曜日+1(1週目は月曜日、2週目は火曜日、3週目は水曜日とずらして変化させる)
5 市松(市松模様のようにひとつおきに交互に動かす)
6 縦横(ランダムな1日から縦と横に切り替え範囲が広がる)
7 その他

※ この項目は追加できるようにする。
パターンはiniファイルとかで後から追加することを可能とする。
(4)日のフォルダのなかをランダムにするかしないかramdom_or_sequential
(5)ランダムの表示でサブフォルダは除外しシーケンシャル表示するramdom_except_subfolder
※ サブフォルダを除外するのは、サブフォルダはたとえばスキャン画像で、1冊の本などを格納していることが多く、本は、連続してみなければ頭が混乱してしまうので、除外した方がよいということ。


●オートモード
【検討】 1カ月を見たときに、次々写真を入れ換えると、多い日は楽しいが、少ない日はあまり写真が変わらず、いつも同じ写真になっていて飽きる。どうしたものか。
【結論】1カ月の写真をスライドショウし終わったら、自動的に(あるいは手動で)他の月や1日の表示に切り替える。背景を変えるなどの方法で、目先が変わるので、当面は飽きないと思われる。本質的に環境ソフトは「飽き」てしまうことに対応する必要があるが、どうやって飽きないようにするかは、継続して検討する必要があり、今回のSmartCalendarだけでは結論が出ない。
そこで今回は、オートモードをもうける。オートモードでは、その月の全写真を表示し終えると、自動的に、ランダムに別の月にジャンプし、スライドショウを継続する。

●800×600ピクセルでの1カ月表示(1024×768ピクセルもこれに準拠)
ターゲットマシンが800×600ピクセル、または1024×768ピクセルの場合は、サムネイルを縮小して表示する。
カレンダーであるということを考えると、画面が小さい場合でも、リサイズ可能にしたり、スクロールバーを使うことは避ける。そのため、サムネイルを小さくする。
× 画面サイズを調べて、800×600ピクセルの場合、自動的に776×500にする。サムネイルは110×82.5ピクセルにする。
× 1024×768ピクセルの場合は、サムネイルを自動的に140×105ピクセルにして、ウィンドウサイズを986×635ピクセルにする。
○ ウィンドウサイズを調べて、ウィンドウサイズに合わせて無段階で可変とする。

●サムネイルの拡大表示仕様【拡張仕様】
サムネイルを小さくした場合、写真の魅力はなくなるので、最初に180×135ピクセルで表示したあと、ゆっくりと110×82.5ピクセルに縮小するように、アニメーション効果とする。このあたりは、Photorium的な効果を参照する。http://sappari.org/hiki/hiki.cgi?Photoriumからダウンロード可能である。重ね合わせは、http://luvtechno.net/photos/ieten/を参照。


はサムネイルが小さく魅力を著しく失わせるため、次のモードをもうける。


写真をのぞいたものは下記の通り。


表示は次のように遷移する。

サムネイルにポインタをのせるとポップアップする。写真のない日はポップアップしない。ポップアップした状態で、ロスレス回転、写真の評価、ページスクロール(早送り/早戻し)を行うことができる。


【1−3−1】2枚表示【拡張仕様】
スキャンした書籍を想定して、フォルダ(サブフォルダ)単位で、縦長の写真が2枚連続する場合、2枚を1日にレイアウトして表示する。フォルダ単位で確定する。
標準でのレイアウトは、番号の若いファイルを右(右綴じ左開きの縦書きを想定)とするが、フォルダ中にbook.iniファイルがある場合、または、表紙ファイル(ファイル名のもっともわかいファイル)中のJPEGのアプリケーションセグメント(またはExif)に記述がある場合、その設定にしたがう。書式はどちらも同じとする。

book.ini またはJPEGのアプリケーションセグメント(またはExif)
<SmartCalendarBook>
PageRight2Left=0(デフォルトは0。1で(左綴じ右開きの横書き)
</SmartCalendarBook>

【1−3−2】サブフォルダと重複フォルダの扱い
1日のなかに複数のサブフォルダがある場合、または1日を示すフォルダが複数ある場合は、順番に表示する。フォルダを表示する場合は、フォルダのマークをサムネイルにオーバーレイして表示する。フォルダをクリックしたら、フォルダを開く。

●サブフォルダ=グループ
SmartCalendarは、写真をグループ化と評価によって分類できる。グループ化とは、サブフォルダによって行うものである。グループのなかのベストショットは、代表写真となる。
※ グループ化するためには、ぜんぶ表示モードで複数の写真を選択可能である必要がある。

【1−3−3】月表示のコントローラー
月表示の場合、翌月へのボタンなどは、7日6週の開いた空間を使って表示する。デフォルトは下側右から5つまでとする。スペースを最大限有効活用する。
コントローラーは移動可能なパネル(パレット)として表示する【拡張仕様】。


検索用の枠[ ]を用意する。
【基本仕様】検索文字列を入れ、検索ボタンを押すと、文字列を検索する。
【拡張仕様】検索文字列を入れると、1文字いれるたびにインクリメンタル検索する。インクリメンタル検索するために、入力可能文字列はひらがな/英数字とする。
月モードでは、Ctrl+← →キーで翌月、前月を表示する。← →キーで日を移動する。Alt+Ctrl+← →キーで前年の同月、翌年の同月を表示する。
サムネイルへのボタンを表示する。
プライバシーコントロールを設定可能とする。

コントローラーは、ゲーム用コントローラーにも対応する【拡張仕様】。
コントローラーは、PowerMateにも対応する【拡張仕様】。


●ボタンの種類( )内はPCのキーボードのショートカット、[ ]内は
ゲームのコントローラー(暫定)
・翌月、前月(Ctrl+← →)[← →]
・前年の同月、翌年の同月(Alt+Ctrl+← →)[L R]
・月表示(Ctrl+M)[□]
・週表示(Ctrl+W)[×]
・今日表示(Ctrl+D)[○]
・今日の全写真表示(Ctrl+Shift+A)/(Ctrl+H)[△]
・ToDo表示(Ctrl+T)
・スライドショウ開始(Ctrl+S)[Start]
・設定(Ctrl+U)[L+R]

月表示をしている場合、月表示へのボタンはグレー表示する。

【1-4】年表示機能【拡張機能】
イベント/プロジェクト単位で見たいという要望に対応する。日-週-月の上に年モードをもうける。年間でフォルダのある日だけを表示するモードが、すなわちイベント単位になる。これは、当初の想定外ではあり、実装の重要度はやや落ちる。というのは、写真を撮るのが少ない人にとっては、エクスプローラの単なるフォルダ表示と変わらないように感じられるため。
http://www.patrickbaudisch.com/projects/timequilt/index.htmlを参照するが、Time Quiltはユーザーのオペレーションが多すぎて、1,000枚を超える写真を扱うのには不適切。比較すると、SmartCalendar(M)は、少なくともすでに3,781枚をやすやすと扱えており、しかもユーザーは完全に受動的でノーオペレーションでよい。気が向いたときに使えるので、最適である。Time Quiltは、横に倒れた写真を直す機能ももっていない。この点でも、SmartCalendarはきわめて実践的である。イベントの数を写真の枚数だけで得ることができるか?】

年、月はポップアップするメニューからジャンプできる。


【1-5】1週間表示【拡張機能】
1週間表示のデフォルトは月曜起こしとする。日曜起こし、あるいはその他の曜日を起点にすることは設定で可能とする。
1週間の時刻は、デフォルトでは、9時から16時までを表示する。最上位は8時以前、最下段は、17時以降とする。
はみ出した領域はスクロール可能とせず、はみ出した領域に表示するべき写真/文字は、最上位または最下段につめて(重ねて)表示する。
1時間あたりの幅は、縦67ピクセルとする。
設定で、表示開始時刻と終了時刻を設定可能とし、設定した時刻で表示面積を均等割りする。
当然、ここにサムネイル180×135ピクセルで表示した場合重複するが、重複は許容する。最上位になる写真は、タグづけしたタグの○の多い順番か、またはスライドした場合、新規に表示したものになる。
表示しきれない場合は、順次スライドする。

週モードでは、Ctrl+← →キーで翌週、前週を表示する。← →キーで日を移動する。Alt+Ctrl+← →キーで前年の同週、翌年の同週を表示する。
その他のボタン/ショートカットは、月表示に準じる。
週表示をしている場合、週表示へのボタンはグレー表示する。

【1-6】1日表示

1日表示では、縦に時刻、横軸を分とする。
縦軸の時刻は、デフォルトでは、9時から16時までを表示する。最上位は8時以前、最下段は、17時以降とする。時刻は、ユーザーが設定可能とする。
横軸は60分を均等割りし、該当する時刻に写真をサムネイル180×135ピクセルで表示する。【じっさいには相対サイズ】。 表示する場合、
【1-9】写真の評価を、サイズに反映させる。

1日の写真のサムネイルの表示は、
http://namazu.org/~satoru/zphoto/sample/
の次々出てくる初期の並べ方はかっこいいので参考にする。

日モードでは、Ctrl+← →キーで翌日、前日を表示する。← →キーで日を移動する。Alt+Ctrl+← →キーで前年の同日、翌年の同日を表示する。
その他のボタン/ショートカットは、月表示に準じる。
日表示をしている場合、日表示へのボタンはグレー表示する。

【1-6-1】好きな写真/嫌いな写真([ハート(または☆)]/[破れたハート(または★)]
タグの[ハート(または☆)]の多い写真は大きく、
[破れたハート(または★)]の多い写真は小さく表示する。
[ハート(☆)]と[破れたハート(★)]はそれぞれ+-256をレベルわけして、5個までをカウントし、それぞれのサイズは次の通りとする。

☆☆☆☆☆ 320×240ピクセル(+248〜)
☆☆☆☆- 280×210ピクセル(+240〜)
☆☆☆-- 240×180ピクセル(+224〜)
☆☆--- 220×165ピクセル(+192〜)
☆---- 200×150ピクセル(+128〜)
----- 180×135ピクセル(0)
★---- 140×105ピクセル
★★--- 120×90ピクセル
★★★-- 100×75ピクセル
★★★★- 80×60ピクセル
★★★★★ 40×30ピクセル

【補足】
星の数は、数字をわかりやすくビジュアルで表現したものであり、評価のボタン(
ゲームのコントローラーを想定)を押した回数でもある。
☆が混在している場合は、数字の累計を☆として扱う。
すなわち、☆1回が128で、★が-64だから、
☆☆★となると、+128+64-32=160となり、
値としては☆ひとつと同じ状態になる。

http://www28.tok2.com/home/misakikaoru/2005/200508WORK/estimate_plan.png

【1-6-2】写りのよい/悪い写真(○×)
写りが悪いと評価された写真は、一覧表示からは除外される。
代わりに、画面上にボリューム状のレベルスライダーを表示し、スライダーを移動することで、よい写真だけをレベルで選ぶことができる。
よい/悪いスライダーつきサンプル
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/20050821061528.jpg
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/volume.png
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/knob.png

【1-6-3】公開可能な写真/プライバシー写真(□△)
privacyは、[privacy]のようなボタン(またはボリュームスライダー)をつけ表示を遷移する。
通常モードでは、全写真を表示するが、[privacy]ボタンを押すと、公開可能な写真のみを表示する。
公開可能=□、プライバシー=△とする。
プライベートボタン
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/private_on.png
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/private_off.png

【1-6-4】1時間表示【拡張仕様】
1時間内の写真をぜんぶ表示する。
表示の背景は時計とし、Exif撮影時刻を使って時刻のあたりに不定形に表示する。
短針を動かすことで、リアルタイムに表示できる写真の範囲を増減できる。
表示する写真のサイズは、
評価を反映する。


【1−7】一覧表示(ぜんぶ表示)
一覧表示は、1日の写真をぜんぶ一度に見るために使用する。
写真の評価は、
【1-6】1日表示に準拠する。すなわち、ぜんぶの写真といっても、写りの悪い写真やプライバシー写真は表示しない。これにより、好きな/写りのよい写真のみを気持ちよく見ることが可能になる。
http://www.fosl.co.jp/miyoue/images/all1.jpg
http://www.fosl.co.jp/miyoue/images/all3.jpg
などを参照。

じっさいに重ね合わせて1600枚を表示すると、次のようになる。

重ね合わせの実験例。




一覧表示では、写真はサムネイルをもって移動できる。
移動状態は記録され反映される。

一覧表示では、似た写真を提案することを検討する。
似た写真とは、
(1)カメラモデルが同一
(2)撮影時刻が近似
(3)シャッタースピード/絞り値が近似
(4)ホワイトバランスが近似
という一連の写真を呼ぶ。

ぜんぶ写真を傾き表示する場合、傾きは+-25度以内とする。

http://www28.tok2.com/home/misakikaoru/2005/200508WORK/all_on.png
http://www28.tok2.com/home/misakikaoru/2005/200508WORK/all_off.png
●photolayout.xml【拡張仕様】
一覧表示を選択すると、1日のフォルダのなかに、一覧表示の状態を保存するためのテキストファイルを作成する。テキストファイルの書式は次の通りとする。複数のレイアウトを許容し、タブによって切り替える。
テキスト作成のタイミングは、ユーザーが能動的に写真を動かした直後とする。単に写真を見ているだけではファイルは作成しない。

photolayout.xml
<SmartCalendarPhotoLayouts count=2>
<SmartCalendarPhotoLayout zoom=1.2 name=”” >
<file filename=”DSCF0001.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=3 slidenumber=1 isbackground=1 mark=1 />
<file filename=”DSCF0002.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=2 slidenumber=2 mark=1 />
<file filename=”DSCF0003.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=1 slidenumber=3 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
</SmartCalendarPhotoLayout>
<SmartCalendarPhotoLayout zoom=1.2 name=””>
<file filename=”DSCF0001.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=3 slidenumber=1 />
<file filename=”DSCF0002.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=2 slidenumber=2 />
<file filename=”DSCF0003.JPG” zoom=1.2 x=0.2 y=0.2 depthorder=1 slidenumber=3 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
<file filename=”” zoom=1.2 x=0.2 y=0.2 />
</SmartCalendarPhotoLayout>
</SmartCalendarPhotoLayouts>

ウィンドウの中心を原点としたファイルの位置とファイル名
ズームは%で表示する。1.2=120%表示。

その日の写真を一覧で見る場合、タグの○×を反映したサイズで写真を表示する。ただし、ウィンドウ内に写真を表示しきれない場合、大きな写真を180×135ピクセルにする。それでも表示しきれない場合、重ね合わせて表示する。×のついていない写真を180×135ピクセル以下にはしない。

一覧表示では複数のファイルを選択することが可能である。
選択したファイルは一時的にチラツキ枠で囲まれてマーキングされる。

マーキングされたデータはmarkタグが1となる。markタグは省略可能で、ない場合は0となる。
depthorderは、ぜんぶ表示での重なり具合を示す。一番奥から若い数字となり、最大の数字がいちばん前面となる。数字が存在しない場合、最前面に追加される。
slidenumberは、順番にスライドする場合の順番を示す。スライド番号が存在しない場合、スライドのいちばん最後に追加される。
isbackgroundは、バックグラウンドに流用した履歴を示す。省略可能で、1で背景になったことを示す。

●一覧表示によるより分けコメント機能
一覧表示に、○×△□Like hateのアイコンを表示した領域を表示し、そこにサムネイルをドラッグすることで、タグづけを行うことができる。


●一覧表示による一括タグづけコメント機能【拡張機能】
一覧表示は写真を選り分けるために使用する。
左右により分け、中央に縦にジェスチャーで線を引くと、右側にあった写真のタグには、○をひとつ追加する。左側にあった写真には×をひとつ追加する。これによって、それぞれ表示サイズが変化する。

上下に分け中央に横にジェスチャーで線を引くと、上側にあった写真のタグには、公開可能とする。下側にあった写真はプライバシーとする。

【1−8】スライドショウ機能(テキストファイルもスライドする機能)【拡張仕様】

時間経過またはメニュー操作(命令+S)をすることで、スライドショウモードに移行する。スライドショウの対象とするファイルは、現在表示しているモード以下のフォルダとする。たとえば1日表示をしている場合には、その日の写真を表示する。
表示はくり返し行うループ方式と、一定時間が経過したら、別のカテゴリー写真を表示する方式とを設定可能とする。別のカテゴリーは、1年前の同じ月/週/日、GPSタグによる検索、予定タグを検索して同じコメントが入っている場合などが考えられる。

2ページ単位の見開きシーケンシャルめくりモード(cfマンガミーヤ)と、
ランダムモード(cfPhotorium)、
画面の一部でスライドするモードを実装する(サイズは要検討。サムネイルよりは大きくしたいので、たとえば240×180、360×270ピクセルなど)。
スライドショウの最中にロスレス回転ができる。
http://dobon.net/vb/bbs/log3-6/3371.html参照。

スライドショウの最中に、Exif情報を表示できること
Exifタグにより選択範囲を狭めてスライドショウできる。たとえば、
・コメントが入っている写真のみ表示する
・GPSタグがある場合、GPSタグにより、自宅付近の写真は表示しない
・同じひとを探して表示する
・マクロ写真のみ表示する
などの作業を行えるようにする。

スライドショウモードでは、マーキング、入れ換えなどの編集を行うことができる。マーキングとコメントとを区別するため、マーキング操作は特殊キー、コメントは文字キーとする。文字キーを打鍵した場合、モードレスでダイレクトに文字を書き込む。SmartWriteのモードレス動作を参照のこと。

スライドショウはデフォルトでは2秒に1枚の写真をめくる。縦長の場合、4秒で2枚とする。めくる速度は設定可能とする。

SmartCalendarから呼び出すスライドショウのイメージ。
悪い例×
採用例○
スライドショウの解像度は、1600×1200ピクセルの場合、240×180ピクセルとする。

6枚程度を表示できることを目標にする。

すなわち、
1280×1024の場合、200×150ピクセル
1024×768の場合、180×135ピクセル
800×600の場合、135×100ピクセル
とする。


編集操作のキーの割り当ては検討中。必要なキー操作は下記の通り。
○□△×の4キーで評価
上下左右 早送り、巻き戻し、次、前
文字キー コメント入力
DEL 削除。該当する写真をゴミ箱に入れる。
Ctrl+X カット。トレーに入れつつかつ画面内では、マークアウト処理をする
Ctrl+V 貼りつけ。画面内ではいまフォーカスされている写真の手前に入れる。その結果フォーカス以降の写真のファイル名は自動的に+1インクリメントされ変更される。
Ctrl+R ロスレス右回転。Rはrightから。
Ctrl+L ロスレス右回転。Lはleftから。
Ctrl+I Exif表示。Iはinformation。

画面の最大サイズよりも縦の長さの長いテキストファイルは、順番にページスクロールする要領でスライドショウする。

●マーキング



スライドショウの最中に、気に入った写真をマーキングし、後でマーキングした写真を集めることができる。たとえば1(×)と0(○)【あるいは上下か? 遷移と重ならないキーに設定できるようにするか検討する】をスライドの最中に押すと、×と○をExifコメントタグのなかに書き込む。×が増えるとだんだんスライドに出てくる頻度が減り、○が増えるとスライドに出てくる頻度が増す。
【マーキングはプライバシー/公開可の軸もあわせて評価とし、プライバシーの写真はP、公開可能な写真はOを押すことでタグを記録する。これに関しては、たとえばUSB接続のゲームパッドに対応することを考える。○×△□の4キーで評価をし、上下左右で、遷移を切り替えるなど。USB接続のゲームパッドを使って調査する。】
マーキングとはカット&ペーストのこととする。
マーキングアウト(カット)したファイルは、その日のフォルダのなかにmarkoutというフォルダを作って入れる。

スライドショウの最中に、気に入った写真をダイレクトにFTPできる。

【1−9】写真の評価(JPEGアプリケーションセグメント編集機能)
【1-9-1】評価 スライドショウの最中、およびすべて表示のモードなどで、よい写真/悪い写真を評価しそれをコメント化する、コメントを書き込むなどの機能をもつ。
写真は3通りの評価軸で評価し、コメントタグのなかに書き込む。
評価は、
【1-6】1日表示および【1-7】一覧表示(ぜんぶ表示)の表示に反映する。

【1-9-2】使用済み 写真やメモには、いちど利用すれば、役目は終了し、二度と使わない、ということがありうる。そこで、使ったかどうか(使い終わったかどうか)を記述する。これをFinishタグと呼ぶ。Finishの値は、0(未使用)か、1〜(使用済み)とする。数字は使用回数をカウント可能とする。


3通りの評価とは下記の通り。
・好き/嫌い
・写りのよい/悪い
・公開可能/プライバシー
これに、使用済みタグをあわせて、次のように記述する。

<estimations>
   <estimation type=’like’ value=’128’ last=’128’>
       <log date=’2005/08/19’ value=’128’/> <Log date=’2005/01/01’ value=’−234’ day=”Thu” />
<Log date=’2005/01/01’ value=’−234’ day=”Sun” />
<Log date=’2005/01/01’ value=’−234’ day=”Thu” />
<Log date=’2005/01/01’ value=’−234’ day=”Thu” />
<Log date=’2005/01/01’ value=’−234’ day=”Sat” />
</estimation>
<estimation type=’good’ value=’−245’ last=’−245’>
<Log date=’2005/01/01’ value=’−234’ day=”Thu” />
</estimation>
<estimation type=’privacy’ value=’−245’ last=’−245’>
<Log date=’2005/01/01’ value=’−234’ day=”Thu” />
</estimation>
   <estimation type=’finish’ value=’1’ last=’1’>        <Log date=’2005/08/28’ value=’1’ day=”Fri” />    </estimation> </estimations>

【1-9-3】コントローラーでの評価 ゲームのコントローラーを使って評価する場合、次のような操作を行う。

○×の連打(またはRL)=好き/嫌い
マイナスは嫌いな写真。プラスの多いほど表示が大きく、スライドも頻繁になる。写真を見たときに、○ボタンまたは×ボタンを連打することでタグに記録する。時刻も記述し、変化をグラフ化できるようにする。RLの場合はRで+、Lで−とする。

○×の単独打鍵=写りのよい/悪い
マイナスは写りの悪い写真。プラスの多いほど表示が大きく、スライドも頻繁になる。写真を見たときに、○ボタンまたは×ボタンを押すことでタグに記録する。1回の操作で、128増減する。2回目はその1/2ずつ増減する(1回目−128、2回目−128+64、3回目−128+64+32)。これは第一印象を強く扱うため。連打した場合は、写りのよしあしをカウントしない。

□△の単独打鍵=公開可能/プライバシー
マイナスはプライバシー写真、+写真のみ公開可能(FTPなどで転送可能)
プライバシーボタンを押すことで、レベル・コントロールできる。写真を見たときに、□ボタン(公開可能)または△ボタン(プライバシー写真、公開不可)を押すことでタグに記録する。

プライバシー写真、写りの悪い写真、嫌いな写真は、CPUの空き時間にそれぞれサブフォルダを作り保存する。フォルダは隠蔽属性をつけ、他のブラウザ等でも容易に見えないようにする。
逆に、もっとも評価の高い写真は、自動的にコピーしてback_today.jpgというファイル名にし、背景画面として表示できるようにする。

プライバシーはグループコントロールも必要である。

【1−10】写真/画像の種類【検討中】
写真/画像には、
人物(友人、家族、恋人、アイドル、俳優)/それぞれの名前
風景
ノート
書籍
などがある。
それぞれを区別できるタグをつける。
つけることを支援する。

book, friend, friendofjuniorschool, friendofelementaryschool,
friendofhighschool, friendofuniversity, family, friendofcolleague,
lover, loverbroken, unrequitedlover, idol, actor, actress, hero, heroine,
note, sight, sun, sunset, star, moonなど。

ダブリン・コアを参照するが、ダブリン・コアだけでも精緻さを確保するには足りず、精緻にしてどこまで役にたつかを考えると、インターフェースとのバランスが重要である。
たとえばダブリン・コアには、日付の詳細分類として、

date
created 作成日
valid 有効期日もしくは期間
available 利用可能日もしくは期間
issued 正式発行日
modified 更新日
dateAccepted* (論文やジャーナル記事などの)受理日
dateCopyrighted* 著作権日
dateSubmitted* (論文やジャーナル記事などの)提出日

が規定されるが、
1996年2月に買った
1980年5月に初版の本を
2000年12月に読み、
2003年1月にスキャンして、
2005年5月にスライドで見た場合の日付
というようなことがSmartCalendarでは考えられるが、
これらの日付(=購入日、閲覧日)は考慮されない。

<SmartCalendarPhotoClassification>
<contents=”book”>
<title=”ぼくたちの空色”>
<auther=”渡辺多恵子”>
</SmartCalendarPhotoClassification>

参照
http://www.kanzaki.com/docs/sw/dublin-core.html

【1−11】表示から除外するファイル【拡張仕様】
画像ファイル中には、ホームページからダウンロードしたファイルなどが含まれる。これらには、ロゴ、ボタン、罫線、バナーなどが含まれるが、こうした小さな画像は、スライドショウ中に出てくると種類が異なり邪魔に見える。
そこで、こうした画像を取り除いて表示する機能を実現する。
具体的には、縦または横のピクセルがnピクセル以下の場合、表示しないように設定する。
デフォルトは150ピクセルとし、縦または横の短い側が150ピクセル以下の画像は表示しない。
または、縦+横の合計が150ピクセルに満たないものは表示しない。
設定はiniファイルで行えることとする。
concealmimumsizeHorL=150
concealmimumsizeHplusL=150

【1-12】スライドのログ機能【拡張仕様】
どれを見たのか再生ログをとる。再生ログはスライドを見たその日のフォルダ(2005/200502/2005_0209/)にlog開始時刻.txtとして保存。

2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\DSCF0235.jpg
2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\DSCF0238.jpg
2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\music.wma
のように書く。
【1-1】の
移動ログリネームログ、および【0】SmartCalendar/SmartWriteの「●写真の特定」SmartIDを参照。
SmartIDを用いた場合、ログは、

2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\2005_0222-55555-OEM-0011111-00111-misaki_kaoru-00000235-Ver0000
2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\2005_0222-55555-OEM-0011111-00111-misaki_kaoru-00000238-Ver0000
2005/02/22(火曜日)_13:57 disk:\root\2005\200502\2005_0222\2005_0222-55555-OEM-0011111-00111-misaki_kaoru-00050000-Ver0000

となる。

2ページ単位では、縦書き横書き(右綴じ左綴じ)対応する。縦長の場合2ページ単位にする。
見開き時に、白紙ページを挿入して順番を整える機能。
×白紙ページは1×1ピクセルのJPEGファイルとするか、またはログファイル中に書き込む
○ スライドショウ中に順番の入れ換えを可能にすることで実現する。スライド中に、ファイルをホールドすると、一覧が出てくる。左右にスクロールしてドラッグ先を決め、手を離すとそこに入れ換えられ、ファイル名が変更される。
高速なページめくり。
スライドショウは、テキスト/htmlファイルも表示する。
テキストファイルはページめくりして全ページを表示する。

【1-13】検索機能(Exifタグとテキストファイルを同時に検索できるgrep機能)
ツールバーに枠をつけ、履歴によってインクリメンタルサーチする。
インクリメンタルサーチに関しては、
http://nais.to/~yto/clogを参照。Ajaxでインクリメンタルにヒット数を表示。

現在開いているフォルダ、現在開いているフォルダの上の階層(月)、そのうえ(年)の順で検索する。
・検索順は、該当月、その前後、さらにその前後というように増やす。たとえば7月を開いていたら、次は8月、次に6月、次に9月、5月、というように広げていく。単純に1月から順番に検索するよりも、「このころ」という記憶を有効活用できる。


【1-14】カレンダー機能(予定入力表示機能)

・スケジュールの表記(データ形式)
予定はiCal方式とSmartCalendar方式(テキスト形式で標準と簡易の2種類)を選択可能とする。
月表示、週表示、日表示をダイレクトオペレーションで変えられるようにする。
週の設定は月のフォルダに入れておく。
週表示は横軸に曜日、縦軸に時刻をとる。時刻は設定可能とする。標準ではたとえば9時から24時。

予定は、カレンダー上でダイレクトに入力可能とし、パネルなどは出さない。入力可能になったときに、該当する1日フォルダにsmartcalendar.xmlを作成する。
フォルダ内に存在するsmartcalendar.xmlを予定として表示。
smartcalendar.xml内部で、planは最上部に書く。

●スケジュール表記(詳細)
設定でiCal方式とSmartCalendar方式とを設定で選べるようにする。
共通として、SmartCalendar.icsという下記の内容のファイルを、
アプリケーションのフォルダに作る。
http://www.asahi-net.or.jp/~CI5M-NMR/iCal/ref.htmlを参照。

SmartCalendar.ics
BEGIN:VCALENDAR
PRODID:-//(ユーザー名)//Manually//EN
METHOD:PUBLISH
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Japan
BEGIN:STANDARD
DTSTART:19390101T000000
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
TZNAME:JST
END:STANDARD
END:VTIMEZONE


●iCalendar準拠を設定した場合
1日ごとのフォルダのplan_ical.txtを作り、
BEGIN:VEVENT
UID:
DTSTAMP:20050111T120000
SUMMARY:打ち合わせ
LOCATION:パレスサイドビル
DESCRIPTION:PCWeb打ち合わせ
DTSTART;TZID=Japan:20050113T1300
DTEND;TZID=Japan:
RRULE:FREQ=;INTERVAL=;BYMONTH=;BYMONTHDAY=
CATEGORIES:打ち合わせ
TRANSP:TRANSPARENT
PRIORITY:0
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR
と書く。

参考
http://www.geocities.jp/schedulelayer/index_jp.html
http://www.kanzaki.com/docs/sw/rdf-calendar.html
iCalendar()
http://www.asahi-net.or.jp/~CI5M-NMR/iCal/
ファイルの位置は、デフォルトでは
(ユーザーのホームディレクトリ)/Library/Calendars/***.ics
となる。(***)はカレンダーの名前

●SmartCalendar方式を設定した場合
1日ごとのフォルダのplan.txtを作り、
<SmartCalendarPlans>
<Plan priority=A−Z start=”13:00” end=”15:00” day=”thu” title=”PCWeb打ち合わせ@パレスサイドビル。” />
<Plan priority=A−Z start=”16:00” end=”17:00” day=”thu” title=”虎ノ門接骨院。” />
<Plan priority=A−Z start=”18:00” end=”20:00” day=”thu” title=”日刊ゲンダイ打ち合わせ。” />
</SmartCalendarPlans>
<SmartCalendarPlansToDoLog>
<ToDo priority=A−Z expires=”2005/2/2 11:11” title=”” day=”Thu” />
<ToDo priority=A−Z expires=”2005/2/2 11:11” title=”” day=”Thu” />
</SmartCalendarPlansToDoLog>
<SmartCalendarPlans>

を書く。

iCal方式からどれを抜き出すかは、設定可能とし、
標準では、

DTSTARTを/区切りにして表記
(曜日)
DTSTARTの時刻を:区切りにして表記(秒はのぞく)

DTENDを/区切りにして表記
(曜日) ※DTSTARTとDTENDが存在し曜日が異なる場合のみ表記
DTENDの時刻を:区切りにして表記(秒はのぞく)
SUMMARY ※DESECRIPTIONに同じ文字列があった場合は略。
DESECRIPTION

LACATION

のみをタブ区切りにして表記する。

●予定から写真への情報の転記
起動後1時間おきに、ユーザーからのキー入力を監視し、キー入力がないとき(=ユーザーが操作していないとき)を見計らって、写真と予定のマッチングと転記を行う。
plan.txtに書いた時刻と、Exif内に同じ撮影時刻をもつ写真があったら、その写真のExifのなかに予定の文字列を書き込む。

たとえば、

<SmartCalendarPlans>
<Plan priority=A−Z start=”13:00” end=”15:00” day=”thu” title=”PCWeb打ち合わせ@パレスサイドビル。” />
<Plan priority=A−Z start=”16:00” end=”17:00” day=”thu” title=”虎ノ門接骨院。” />
<Plan priority=A−Z start=”18:00” end=”20:00” day=”thu” title=”日刊ゲンダイ打ち合わせ。” />
</SmartCalendarPlans>
<SmartCalendarPlansToDoLog>
<ToDo priority=A−Z expires=”2005/2/2 11:11” title=”” day=”Thu” />
<ToDo priority=A−Z expires=”2005/2/2 11:11” title=”” day=”Thu” />
</SmartCalendarPlansToDoLog>
<SmartCalendarPlans>

と2005/200501/2005_0113/plan.txt
に書いてあるとし、

その日の写真が保管されたとき、その写真の時刻が14時であれば、
Exif内に「
<SmartCalendarFromPlans>
PCWeb打ち合わせ@パレスサイドビル。
</SmartCalendarFromPlans>
」という文字列を書き込む。
これにより、予定を書けば、その書いた文字列がすぐに検索文字列として使えることになり、入力の手間が大幅に軽減される。

【1−15】ToDo機能(カレンダー機能)【拡張機能】
1週間、1日表示では、ToDoリストを同時に表示できるようにする。
1週間では、時刻表示のしたにToDoリストを表示する。
ToDoの表示は、Ctrl+Tでトグルで行う。1日でToDoを表示していた場合、週表示でも表示を引き継ぐ。
ToDoリストは、月のフォルダ(たとえば2005/200501/)のなかに、ひとつファイルを置く。ファイル名はsmartcalendar.xmlとする。
ファイルは、テキストファイルとし、

<SmartCalendarToDo>
□[タブ]優先順位[タブ]締め切り日[タブ]項目名
</SmartCalendarToDo>

<SmartCalendarToDo>
<ToDo priority=A−Z expires=”2005/2/2 11:11” finished=”2005/2/2 11:11” title=”” day=”Thu”>
<ToDo priority=A−Z expires=”2005/2/2 11:11” finished=”2005/2/2 11:11” title=”” day=”Thu”>
<ToDo priority=A−Z expires=”2005/2/2 11:11” finished=”2005/2/2 11:11” title=”” day=”Thu”>
<ToDo priority=A−Z expires=”2005/2/2 11:11” finished=”2005/2/2 11:11” title=”” day=”Thu”>
</SmartCalendarToDo>

と記述する。優先順位はABC〜Zまで1文字で記述する。優先順位の設定はクリックの回数で設定可能とする。
finished=はフィニッシュのチェックで、クリックすることでチェックをトグルでオン/オフできる。0が終了、1がまだ。
クリック済みのToDoは、設定した時刻に、クリックした日時のフォルダの該当する日付のplan.txtファイル内に文字列を移動する。時刻はデフォルトでは24時とし、設定可能とする。
移動後の文字列は、
終了日時[タブ]優先順位[タブ]締め切り日[タブ]項目名
となる。
終了時刻付近に写真が保存された場合、項目名をExifタグに書き込む。
月が変わって、最初に起動したときに、前月のtodo.txtをコピーしてくる。

●1日表示のToDo
1日表示では、右3/7を使ってToDoを表示する。サイズは手動で変更可能とする。変更した状況は保存する。
ToDoの表示は、Ctrl+Tでトグルで行う。週でToDoを表示していた場合、1日表示でも表示を引き継ぐ。

【1−16】FTP時にコメントを展開するコミュニケーション機能【拡張仕様】
※ いわゆるアップローダー機能

一度入力した文字列は徹底的に再利用する。
コメントは、FTP時にhtmlファイルに展開し、サムネイルを作成し、写真をくるむ。
キャプションは、Exifタグを利用する
FTPに転送時、ファイル名は転送先の命名規則に従い、大文字小文字を分離表記すること。Windowsの命名規則のままホームページを作ると、大量に404エラーを発生する可能性あり。

たとえばコメントに、「ねこのパセリです」とあったら、


<html>
<META name=”GENERATOR” content=”SmartCelendar”>
<head>
<title> ねこのパセリです </title>
</head>
<BODY>
<A href=”file.jpg”> <IMG SRC=”thumbnail_file.jpg” width=”180” height=”135” alt=”ねこのパセリです”> ねこのパセリです </A>
</BODY>
</html>


のようにする。
写真をあげたいと思うのは自然な行為で、それをサポートする。
これを第一次のコミュニケーション機能と位置づける。

※ 1日表示、一日の全写真表示モードで複数の写真を同時にドラッグした場合、複数のファイルへのindex.htmlを作成する。ファイルは次のようになる。

<html>
<META name=”GENERATOR” content=”SmartCelendar”>
<head>
<title> その日の日付 </title>
</head>
<BODY>
<A href=”file1.jpg”> <IMG SRC=”thumbnail_file1.jpg” width=”180” height=”135” alt=”ねこのパセリです”> ねこのパセリです1 </A>
<A href=”file2.jpg”> <IMG SRC=”thumbnail_file2.jpg” width=”180” height=”135” alt=”ねこのパセリです”> ねこのパセリです2 </A>
</BODY>
</html>



ドラッグ&ドロップで対応するためには、
(1)ドラッグを開始したら、コメントからhtmlファイルを作り保存する。
(2)ドラッグ先に、写真のほかにhtmlをカット&ペーストする。
という方法をとる。もしドラッグ先が同じディスク内ならペーストしたhtmlを削除する。


●第二次のコミュニケーション機能【次年度以降の検討】
第二次のコミュニケーション機能
qwikWeb、またはPOSTCARDVIEWER(PostCardViewer)などのシェルとして使うことを検討する。2006年以降に、スポンサーがつけば開発予定。

【1−17】印刷【拡張機能】
印刷機能は3種類の印刷方法を提供する。
・現在の画面の状態を印刷する。
・選択した写真を印刷する機能。
・DPOFに印刷を設定する機能。
2006年以降に、スポンサーがつけば開発予定。

【1−18】メール機能(検討中)
写っている人にメールする機能
SmartCalendarからは随時必要な写真をドラッグ&ドロップできるので、最低限写真をメールすることは可能だが、「SmartMail(仮称):1メール1ファイルで日付順のフォルダに保存するメーラー」と連携できるようになれば、メール添付時に、送信先にあわせてリサイズする、というような連携が可能となる。
2006年以降に、スポンサーがつけば開発予定。

【1−19】メニュー構造とキーボードショートカット
メニュー構造の方針。ふたつの方針を立てる。すなわち、Windowsユーザーにとって違和感がないこと。もうひとつはできるだけ直感的なダイレクトオペレーションをサポートすること。
違和感をなくすために、標準のメニューはできるだけWindows標準の配置であることが望ましい。たとえば編集にアンドゥがないなどということは避ける。詳細メニューは検討中。

× ウィンドウメニューと右メニューを実装する。( )はショートカット
○ ダイレクトオペレーションを重視し、メニューは独自とする。

(1)ウィンドウメニュー
ファイル
今日のフォルダを新規作成(Ctrl+N)【*ファイルをドラッグする/またはその月になったタイミングで自動作成するので不要か?】
開く(Enter, Ctrl+O)
送る
予定をメールする【*今日から一カ月分の予定を設定しておいた携帯電話にメールする】
印刷設定(Ctrl+Shift+P)
印刷(Ctrl+P)
終了(Ctrl+E)
編集
リドゥ
アンドゥ(Ctrl+Z)
切り取り(Ctrl+X)
コピー(Ctrl+C)
貼り付け(Ctrl+V)
削除(Delete)
ロスレス右回転(Ctrl+R)
検索/置換(Ctrl+F)/(Ctrl+G)
すべて選択(Ctrl+A)
表示
月表示(Ctrl+M)
週表示(Ctrl+W)
今日表示(Ctrl+D)
今日の全写真表示(Ctrl+Shift+A)/(Ctrl+H)
ToDo表示(Ctrl+T)
スライドショウ開始(Ctrl+S)
並び順(名前、日付、昇順/降順)
フォルダ(ファイルのツリーを左側にペイン表示)
最新の情報に更新(F5)(Ctrl+N)
設定(Ctrl+U)
スライドショウ設定(音楽設定)
FTP設定
メール設定
カレンダー設定
この写真を背景にする(Ctrl+B)
ログ記録(有無)
(2)右メニュー
右メニューの構成は、ウィンドウメニューと基本的に同じにする。

使用していない文字はJKO。

【1−20】設定
設定はアプリケーションのフォルダに、iniファイルを作成し、iniファイルで行う。
BacgroundImage=back.jpg
DataDirectory=E:
DayFontFace=MSP ゴシック
DayFontHeight=20
ButtonFontFace=MSP ゴシック
ButtonFontHeight=24
WindowRect=84,565,792,1150
ShowLoading=0
ChangeSecond=8
ThumbnailMaxSize=120
RenameFileWhenMove=0
RenameFileWhenCopy=0
LogView=0
OutputToLogFile=0

【1−21】flash−DPExの通信コマンド 仕様書 2005/6/12 ドラフト第1版

通信方法について
通信は、SWFと同じURLパスに存在する仮想的はスプリクト対してPOSTでダイレクトにXMLを送信。レスポンスもXML。
DPExからのイベントについてはsetvariableにより行う。
SetVariableはイベントに最低限必要な情報のみで実際のデータはXMLにより行う。

【SetVariable】DPExにおいてフォルダが変更された場合のイベント
setfolder=”¥¥misaki_kaoru¥d¥2005¥200501”
DPExはFlashにフルパスのフォルダ名を通知する。
要求に応答できる場合、flashはgetfolderlistによりそのフォルダな内容一覧を
要求する。

【POST−XML】そのフォルダの内容一覧
スプリクト名 : getfolderlist
送信XML
<getfolderlist foldername=”¥¥misaki_kaoru¥d¥2005¥200501”>

受信XML
<folderlist folder=”¥¥misaki_kaoru¥d¥2005¥200501” rootfolder=”¥¥misaki_kaoru¥d¥” mode=”month” year=”2005” month=”1”>
<item folder=”2005_0105” name=”xxxx.jpg” type=”image” id=0>
<item folder=”2005_0105” name=”xxxx.jpg” type=”image” id=1>
<item folder=”2005_0115” name=”xxxx.jpg” type=”image” id=2>
<item folder=”2005_0118” name=”xxxx.exe” type=”other” id=3>
<item folder=”2005_0121” name=”xxxx.jpg” type=”image” id=4>
<item name=”テスト” type=”folder” id=5>
<item folder=”2005_0121” name=”セレクト写真” type=”folder” id=6>
</folderlist>

解説
folderlistタグ
folder…要求されたフォルダ(復唱)
rootfolder…要求されたフォルダのルート (存在しない場合は空白)
mode…そのフォルダの表示モード
年フォルダ・月フォルダ・日フォルダ
日の下のサブフォルダ・その他
→year,month,day,daysub,other
year…そのフォルダの年
month…そのフォルダの月
day…そのフォルダの日
folderlistタグのitem
folder…サブフォルダ名(folderlistのfolder+nameでフルパスとなる)
name…ファイル名(folderlistのfolder+folder+nameでフルパスとなる)
type…ファイルの種類(画像・その他・フォルダ→image,other,folder)

【SetVariable】サムネイルの作成が完了したイベント
makethumbnail=3
DPExはサムネイルの作成が完了したことを通知する。


【GET−XML】指定したファイルのサムネイルを作成
スプリクト名 : getthumbnail?id=番号
送信XML
<getthumbnail id=”3”>

受信ファイル
画像(JPEG形式)



それ以外のファイルに対する操作 すべてIDと処理内容を渡すだけ
loadxml … smartcalendarのXMLを取得
savexml … smartcalendarのXMLを保存
loadmetadata … Exif情報などを取得
rotateimage … 画像を回転する
getnearimage

<result success=”0” reason=””>

フォルダに対する処理
loadfolderxml
savefolderxml
photolayout.xml

【1−22】SmartCalendar for BTRON
アプリケーションIDは次の通りとする。
0x8100 0x0000 0x8049 SmartCalendar

SmartCalendarは、本来BTRONのμPIMに画像を貼りたい、
というあたりがそもそものモチーフのひとつであった。
したがって、SmartCalendar for BTRONは、
C/C++によって、カレンダーソフトを作成し、
そこに開いた仮身で画像(写真)を貼れることを第一目標とする。

第二に、写真は開いた仮身で貼ることとする。
したがって、SmartCalendarのために、サムネイルを扱えるExifエディタが必要である。

第三に、SmartCalendarは、ドラッグ&ドロップのダイレクトオペレーションで、他のウィンドウとデータのやりとりができるのが最大の特徴である。
とくに、インターネットとデータをやりとりする場合、自動的にExifタグからhtmlを吐き出す機能が必要とされる。したがって、FTP機能が必要である。
また、デジタルカメラから写真を取り込む際にも、FTP(ファイル変換)機能が必要である。

第四に、コメントタグを活用するため、既存の明智君を改良し、Exifタグを検索可能とする。

最後に、SmartCalendarは、スライドショウ機能をもつ。ランダム型と順次型(二ページ表示型)である。スライド中にExifエディットする機能も併せ持つ。

以上4つが到達目標となる。
このうち、最優先は、(1)のカレンダー機能である。
カレンダーは、TAD主レコードに、文章と仮身とを混在して書き込み、
年間、月間、週間、1日、1日の全写真の5モードで表示を可能にする。
月間週間1日のモードに関しては、μPIMを参考にする。

実身の構造は、
日記−予定−★2005年02月13日(日)(今日)
−2005−2005/02−★2005年02月13日(日)
−ToDo
のようなものであり、
今日以降の部分には、予定に書いた実身のデータを、
今日以前には、それぞれの実身に応じた実身を表示する。
ToDoは月間表示のなかに表示する。

実身はほぼ2005−2005/02−★2005年02月13日(日)の3階層構造をもつが、
旅行中などで複数日をひとまとめにした場合があり、
日の表記もやや揺らぎがある。この揺らぎを吸収すること。
表記の揺らぎは下記の通り。

[/SYS/USR/info/バックアップ/編集カルテ/out]% ls −l
★2004/0412−24タイ・ウィーン
★2004/11/30−12/3WISS
★2004年02月19日−25日タイ
★2004年07月30日−8月4日タイ
★2004年09月08日−10日京都奈良
★2004年11月11日−13日@屋久島
★2004年11月16−17日諏訪
★2004年12月05−06日@水戸
★2004年12月22−24日@博多


デイリーの実身は、超リンク!によって作成する。
そのため、超リンク!を改良すること。
※ ヘッダ、本文、フッタに分けて、本文のみ削除しながら新規に作成する。

文章中の表記は、
時刻[タブ]ことがら
または、
時刻−[タブ]ことがら
とする。時刻が開始時刻と終了時刻をもつ場合、
開始時刻−終了時刻[タブ]ことがら
とする。
終了時刻のみの場合、
−時刻[タブ]ことがら
とする。

開始時刻と終了時刻の日時が異なる場合、
開始日時の実身に開始時刻−[タブ]ことがら
と記述し、
終了日時の実身に−終了時刻[タブ]ことがら
と記述する。

ただし、月単位で実身を作ることも視野に入れる。

取り込んだ写真の仮身は、1分単位で写真の日時のか所にはりつける。

●写真のデータ形式
写真のデータ形式は6番レコードにExifを入れた画像ビュア互換形式とする。
ただし、31番レコードなども許容する。
1番レコードには、文章を書けることとする。

写真へのキャプションは、Exifコメントタグ及び、1番レコードに文章として記述できる。通常はコメントタグを用いる。

写真データをFTPした場合、キャプションは、Exifタグと一番レコードの文章を用いて自動的に展開する。

たとえばコメントに、「ねこのパセリです」とあり、1番レコードに、「パセリの好きなものは座布団です」とあったら、

<html>
<META name=”GENERATOR” content=”SmartCelendar”>
<head>
<title> ねこのパセリです </title>
</head>
<BODY>
<A href=”file.jpg”> <IMG SRC=”thumbnail_file.jpg” width=”180” height=”135” alt=”ねこのパセリです”> ねこのパセリです </A>
パセリの好きなものは座布団です<BR>
</BODY>
</html>

のように自動的に展開する。

スライドショウに関しては、引き続き検討する。

[PR]
≪占い奇跡の恋愛術≫初回無料:幸せな結婚へ導きます。本格結婚鑑定