K2の言いたい放題

2000年8/9/10月



10月19日(木)  青版(7)外部エディタ起動  曇り

ひき続きまして青版情報です。

外部エディタ起動の機能が完成しました。 これは赤版にも載っている機能です。ほぼそのまま持ってきたんですが、 いくつかの不具合を直すことと、いくつかの機能アップを行いました。

一つは、外部エディタはオプション指定によるモードじゃなくて、 いつでも使えるようにしたこと。 外部エディタ起動中は、内部エディタはリードオンリーになりますが、 外部エディタを終了すると、元のように編集できるようになります。

元々赤版でも、各仕事の2つの文書が外部エディタで編集されていることを覚えていて、 常にエディタの検出を行っているのですが、 その辺の機能をブラッシュアップして内部エディタ・ 外部エディタの両刀使いに対応しました。

後は、外部エディタを起動している文書に対してもう一度外部エディタを起動すると、 その外部エディタを前面に出す機能もつけました。

青版では、テキストリンク機能という機能があって、 ファイルとして存在するテキストを、 あたかもTaskPrizeの中の文書のように扱う機能がありますが、 外部エディタを起動する文書がテキストリンクの場合は、 単に外部エディタでそのファイルを開き、 エディタの監視は行わないようにします。 その場合でも、もちろんファイルのタイムスタンプ監視は行っているので、 ファイルが更新されたら再読込できます。

赤版では、ちょっと再読込ルーチンにバグがあって、 内部エディタの方が何度も更新されてしまうのですが、 その辺のバグも取りました。


外部エディタと内部エディタの両刀使いができるようになったことと、 テキストリンク機能のおかげで、 よく見るテキストをTaskPrizeにテキストリンクし、見る場合は内部エディタ、 編集する場合は外部エディタなんていう使い分けもできるようになりました。

一つ一つの機能が、赤版に比べるとかなり洗練されているので、 使っていても気持ちいいです。 赤版にあったけど青版では削るという機能も若干あると思いますが、 基本的に機能としては上位互換という形を採っています。

10月12日(木)  青版(6)フィルタによる装飾  晴れ

日に日にすくすく育っている青版であります。


前に書いた、フィルタによるListViewへの装飾機能も、前回の日記から早々に完成し、 「今日の仕事」タブのフィルタに装飾用のフィルタを追加してみました。 一つは、期日が今日の仕事。これを背景を薄い青にしました。 一つは、期日が昨日以前の仕事。背景を薄赤にしてボールド。 一つは、期日が明日の仕事。背景を黄色。

これで、期限が来ている仕事が一目でわかり、なかなか楽しいです。 ただ、前に書きましたが、その仕事が選択されている場合、 色分けに関してはできなくなるので、ちょっといまいちです。 選択されているときも色指定をするということになると、 コーディングが一気にややこしくなるので、この程度にしておきます。


「今日の仕事」タブには、完了した仕事は表示しないことにしていたのですが、 完了してチェックを入れた仕事がたまってくるのが快感で、 精神衛生的にもいいだろうと思い、今日完了した仕事は表示するようにしました。 案の定、やはり、チェックマークのついた仕事が増えていくのはうれしい。

この辺の設定は、「今日の仕事」タブの設定をカスタマイズするといろいろと変えられるので、 ユーザーさんの好みでいろいろできます。


前回の日記から追加された機能としては、 仕事一覧と編集画面の全面切り替え方式をサポートしたことや、 カラムをクリックしたらソートする機能 (ソートに関しては、タブ設定に3段階のソートを割り当てられますが、 それとは別の機能です)などです。

表示を更新するタイミングを、タイマーを使って行ったりする工夫も入れました。 たとえば、 仕事の進度を変更するためにマウスで仕事の頭をクリックしたらチェック状態が変わりますが、 変わってから時間をおいて画面を更新するようにしています。 こうすると、そのタブ設定で、 チェックが入ると表示されなくなるようなフィルタが使われているとき、 一瞬チェックが入るのが見えてから、その仕事が消えてなくなります。

コーディングの方法としては、チェックが入ったらタイマーを一つ生成し、 タイマーハンドラの中で、自動的にタイマーが破棄されるようにしています。 広域変数としてタイマーを定義しているわけではないので、 お気楽にタイマーを使えますし、必要な時しかタイマーリソースを消費しないので、 WIN95系でも安心です。

この辺は、DelphiでのコーディングTipsとして、 ゆくゆく公開したいなと思っているのですが、 時間が取れなくてなかなか思うようにできません。


なお、日記をずっと読んでいる方はわかると思いますが、 青版はまだ公開されていません。作者の手元にあるだけです。 うちのページの隅々まで見ても、青版はありませんからお間違えのないように。

日記を書きながら、「こんなん書いて、 読んでいる人にイメージが正確に伝わるんだろうか」と危惧してますが、 まぁおかまいなしに、気まぐれに書こう。

10月5日(木)  青版(5)仕事の自動複製  晴れ

前回の日記で、「仕事の自動生成」機能が欲しいと書きました。 で、あれから少ない開発時間を使って、やっと自動複製機能ができました。

時間がかかったのは、ほとんど、 ある日付からの相対時間を指定する方法の模索で費やされました。 たとえば、「2週間ごとの月曜日に書かないといけない業務報」 という仕事をTaskPrizeに載せ、これを2週間ごとの月曜日に複製するとか、 ある人の誕生日をTaskPrizeに載せこれを毎年複製するとか、 毎月10日と20日にやらなければならないこととかを複製するには、 かなり汎用的な相対日時の指定法を考えなければなりません。

どんな日付指定法があるかを考え、 ある日付からその指定された日付を求める方法をプログラミングするのに、 ほぼ2週間も費やしてしまいました。

あんまり長い未来とか過去(1年を目安として)は指定できませんが、 1年以内なら、曜日や日付などを指定することができます。 この指定方法を、仕事のプロパティの中の「自動複製」というページに載せ、 開始予定日と終了予定日を自動的に更新した新しい仕事を作成するような機能を搭載し、 仕事の自動複製機能としました。

自動複製を行うタイミングは、複製元仕事が完了したときだけですが、 これを使うと週報や忘れてはいけない日付などを設定しておくことができます。 これに併せて、前回書いた「今日の仕事」タブを使うと、 TaskPrizeでもかなり時間軸を意識した仕事の管理ができるようになります。


僕の仕事の中には、毎週月曜日の週報、2週に一度の業務報、 毎月10日と20日に出さなければならない勤務時間報告、 毎週金曜日に投入するデータなどがありますが、 これらはすべて今回作った自動複製機能で複製できます。

ここのところ「今日の仕事」タブばかり使っていますが、 はっきり言って、青版はよいです。便利です。 僕の仕事スタイルと似たような仕事の仕方をする人なら、 きっと気に入ってくれること間違いないと思います。 早く完成させたいと気がせきますが、まぁゆっくりやらせていただきます。 次は、フィルタに仕事の装飾機能(フォントを変えたり色を変えたりする)を搭載する予定です。

9月20日(水)  青版(4)今日の仕事  晴れ

フィルタ機能雛形がほとんど完成したこともあって、 この機能の恩恵を観察しています。

今日の仕事を表示するフィルタを作ってみました。 内容は、開始予定日が今日以前または未設定で、 まだ未完了の仕事というフィルタです。 このフィルタをかけてToDo用のフォルダを眺めてみると、 ゴミの情報がすべて削除され、 今やらないといけない仕事だけが見えてきて、無茶苦茶便利なことに気づきます。

赤版では、絞り込み機能は着手状態だけでしかできなかったので、 後は仕事の順番を変えたりして、上位の仕事を見るようにしていました。 この場合、仕事アイテムのメンテナンスをしっかりやらないとすぐに混乱してきます。 また、未着手だけど今やらないでもいい仕事も同時に見えるので、 目に入る仕事が多くなり、いやな感じです(^^;

そういう弊害があるので、ある日にやらないといけない仕事だけど、 まだ今やらないでもいいような仕事は、 なんとなくTaskPrizeに入れておくのをためらったりします。


青版で「今日の仕事」というフィルタを使うと、 この辺のジレンマが一気に解決します。 特に特定の日にやる仕事(たとえば2週に一度の週報つけとか、 10日と20日に出さないといけない勤怠報告とか)を、どんどん追加しておいても、 その日以降にならないとその仕事は見えません。

あくまでの僕の感想ですが、これが涙がちょちょぎれるほど便利なんです。 ここまで仕事の見通しがよくなるとは、実装するまで正直思いませんでした。


機能実装が進むと、新たに搭載する機能がいろいろと見えてきます。


ここをお読みのみなさんにおかれましては、 きっとやきもきしていること請け合いでしょう。お察しします(^^; でもね、楽しんで作ることが、僕の動機付けでは一番大切。 ここに開発状況を漏らすわがままをお許しください(^^;

β公開するまでには、まだまだやることが山のようにあるのです……

エディットコンポの物色とエディタ開発から考えると、 開発期間はそろそろ1年を越えるんだなぁと、 改めて時間がかかっていることを思い知らされます。 青版は僕のソフトウェア開発歴の集大成としたいと思いますので、 焦らずに待ってくださいね。

9月18日(月)  青版(3)フィルタ  晴れ

引き続き、TaskPrizeをちまちまやってます。

ここに「フィルタ」のことを書くのは初めてだと思うけど、 構想自体はかなり前からあります。 赤版で表示する仕事を絞り込む機能は、タブを使った進捗度管理のみだったのですが、 この機能はいまいち洗練されていません。 たとえば、要望が多かったのは、 未着手と着手中の両方の仕事を表示できるモードが欲しいなんてのがあるのですが、 赤版では全くカスタマイズできません。

この部分が弱いのは前から意識していました。 また、下位のフォルダの仕事も一緒に表示したいという要求もかなりありました。

この辺を一手にコントロールしてしまおうというのが「フィルタ」構想です。 フィルタを選択すると、表示する仕事を選抜し、その中でフィルタ処理をして、 表示することになった仕事だけを表示する機能です。 はじめは、このフィルタを、フォルダと同レベルに実装して、 ツリー表示枠側で選べるようにしようかとも構想しましたが、 最終的には現状のタブに実装することにしました。

フィルタは、実際にはフィルタ群です。 複数のフィルタをまとめて一つのタブに割り付けます。 一つ一つのフィルタは、進捗度でこれとこれとこれにマッチするとか、 開始日時がこの範囲にマッチするとか、色々な設定ができます。 フィルタにマッチした仕事は、 「表示する」「表示しない」「次のフィルタに送る」という3つの設定ができ、 「次のフィルタに送る」場合は、設定された次のフィルタに処理を任せます。

この辺の仕様を考えるのに苦労しました。あまり複雑にすると、 作者でさえこんがらがって、 フィルタの設定の概念がよくわからなくなるという事態に陥ってしまうということもありました。 結局、仕様が固まったのがこの週末。 最終的には、かなり幅の広いカスタマイズができるが、 フィルタ設定の概念をつかむのがちょっと難しいというレベルに落ち着きました。

これだけだと、たぶん使い込むのが大変になるので、 考えられる代表的なフィルタの設定は、内部で持って、 選択するだけで適切なフィルタ設定ができるようにします。 たとえば、「先週の仕事」や、「まだ終わっていない仕事」とかなどは簡単に設定できるようになると思います。 これを、タブ表示幅の許す限り、いくつでもタブに割り当てられます。

設定は、基本的にはTaskPrize自身が持ちますが、 フォルダに独自のフィルタを持たせることも可能です。 たとえば、特定のプロジェクトでは、 特定のフィルタ設定を使用したいなんていう要求には、 プロジェクトにフィルタ設定を埋め込むことで対応できます。


今日、早速、「先週の仕事」というタブを作って、週報を書くのに便利なようにしました。 前の週の月曜日から日曜日までに完了した仕事と、 まだ完了していない仕事だけを一覧にするフィルタです。 ふむふむ便利と、一人悦に入っております(^^;

9月11日(月)  青版(2)ファイルリンク 

新TaskPrize(青版)のファイルリンク機能がほぼ完成しました。 前回書いたとおり、ドラッグアンドドロップによるファイル操作は、 考えられることはほぼ一通りできるようになりました。

TaskPrizeは、リンクとしてファイルを持ちますが、 そのファイルを別の場所にコピーすることも、ドラッグアンドドロップや、 CTRL+C,Vなどを使ってできます。 TaskPrize上にあるファイルリンクをドラッグして、 デスクトップにドロップすれば、ファイルコピーができます。 SHIFT+CTRLを押しながらドロップすれば、ショートカットが作成できます。

TaskPrizeにファイルリンクを作成するには、 エクスプローラやデスクトップから、ファイルをドラッグアンドドロップして、 TaskPrize上のいろんな場所にドロップするだけ。 ファイルリンクの削除も、順番の変更も、 仕事のプロパティを開かずにできるようになります。 URLリンクも実現していますので、 インターネットエクスプローラから直接ドラッグアンドドロップで、 TaskPrize上にファイルリンクを作成できます。逆もしかり、 URLのファイルリンクをIEにドロップすれば、そのURLが表示されます。

もちろんダブルクリックやENTERキーを押すことで実行できます。 これに加えて、右クリックメニューに「送る」を出せるようにしました。 これで、ファイルリンクされているファイルを、 いろんな実行ファイルに食わせることができるようになります。

ファイルリンクの表示の仕方ですが、青版では小さいアイコンで表示されます。 リンクの表示場所はフォームの右端ですので、横幅がとりにくいのですが、 この辺の操作性は、ちょっとして工夫をしたことで、 だいぶ使いやすくできたと思います。 これで、10個くらいのファイルリンクは簡単に表示することができるようになります。

これだけファイルリンクを進化させると、用途は非常に幅広くなります。 赤版TaskPrizeでもいろいろとできますが、さらに使いやすくなること請け合いです。 前回書いた、仕事表示ペインのファイルリンクが、これまた便利。


といろいろ書いても、お目見えする時期が早くなるというわけではないので、 まぁ、想像して楽しんでください(^^;

8月31日(木)  青版(1)  晴れ

青版についての情報を、定期的に流しましょう。 いや、流せればよいなにしておきます(笑)。 相変わらずやることは多いし、かなりばて気味で、 開発速度は非常にのろいですが、 実使用に入ったこともあって、少しずつですが進んでいます。

現在、ファイルリンク関連のコーディングを行っています。 青版では、 プリンを作るときに初めて使ったOLEドラッグアンドドロップの技術を、 ふんだんに使っています。 たとえば、仕事表示ペインにファイルをエクスプローラからドラッグしたときに、 ドラッグした先の仕事にファイルをリンクしたり、 右ドラッグして離したときには、メニューを出して、 そのファイルをどうやってリンクするかを選択できるようにしています。 これらは、OLE D&Dの技術を使うことでできるようになりました。 また、リンクしたファイルが、どこかの表示ペインに表示されますが、 これをドラッグして、 エクスプローラのファイルにドロップしたりすることもできるようになります。

今回は、仕事表示ペインにも、右横に窓が出て、 リンクファイルを表示できるようにするつもりです。 ここには、現在開いているフォルダにリンクされているファイルや、 プロジェクト自身にリンクされているファイルを表示できるようにするつもりです。 こうすることによって、プロジェクト全体で使うファイルやプログラムを、 いつも表示しておくことが可能になります。 赤版では、リンクした仕事を選択しないと、 そのリンクファイルを表示することができなかったので、 ちょっと不便なことがありました。

このように、前回紹介したファイラアイテムと共に、青版では、 ファイルリンクの機能が大幅に強化される予定です。 赤版でも、ファイルリンク機能は、TaskPrizeの大きな特徴の一つでしたが、 さらに使えるようになると思います。

8月24日(木)  新しいTaskPrize  晴れ

8月一発目の日記は、8月終わりに書くというなんともな感じですが……

相変わらず、公私ともに忙しいのですが、 TaskPrizeの新版もちょろちょろやっています。 K2Editorのエディットコンポを搭載したTaskPrizeを早めに出したかったのですが、 現在のTaskPrizeでそのまま対応することが難しいので、 新しいTaskPrizeを作っています。

実は、僕のパソコンでは、新TaskPrizeは先週くらいから実使用状態になりました。 仕事のToDo管理だけなら、ほぼ使えるレベルまで来たので、 みなさんよりお先に、新しいTaskPrizeを使っています。 アイコンが青いので、青版としておきます。

青版では、仕事と同レベルのオブジェクトとして、 「ファイラ」というのが追加されています。これは、 設定したフォルダをTaskPrizeのファイラコンポーネントで開く機能です。 このファイラコンポーネントは、ほぼエクスプローラコンパチで、 ファイルのドラッグアンドドロップも、コピーペーストも、 プロパティも、「送る」も、「新規作成」も搭載されています。

赤版(現行のTaskPrize)でも、フォルダをリンクすることができますし、 それをダブルクリックすればエクスプローラが開きます。 やれることはほぼ同じなのですが、 実際に使ってみると、青版のファイラでフォルダを開く方が、 直接的に感じます。TaskPrize上にファイラアイテムをいっぱい作って、 よく使うフォルダを開くことができるようにしておくと、 結構便利です。

青版でファイラを追加した本当の理由は、 ファイル一覧を表示するとき、表示するファイルを、 あらかじめ設定した設定によって選別できるようにすることでした。 これによって、たとえば複数のファイルタイプのファイルが混在するフォルダを見るときに、 *.pasというソースファイルだけを見るとか、 そういう用途に使いたかったのです。

よく使うファイルを、TaskPrize上にリンクとして置いておくのも一つの方法ですが、 逆にそのファイルを、上位のフォルダの中をブラウズするという方法を使って、 こちらから迎えに行くというアプローチ方法です。

ただ、弱点としては、フォルダの中にファイルが多いと、 エクスプローラよりは表示するのが確実に遅くなるということです。 1700個強ファイルがあるフォルダをブラウズするには、実測で15秒かかりました。 エクスプローラでは2秒くらいですから、 ファイルの個数が多くなると、ちょっと使い物にはなりません。


さて青版のリリース時期ですが、 あまり開発に時間を割けないので、来年以降だと思っておいてください。 ゆっくりと完成度の高いものに仕上げたいと思っています。 もしかすると、僕が作る最後の巨大アプリケーションかもしれませんから、 いいものを作りたいですね。