2009年06月12日 [長年日記]
_ [W-ZERO3][WM] Schedule Registerで仕事の登録。
…をしたいという声がどこかから聞こえてきたので、対応しようと思います。
が、予定と仕事って細かいところで登録内容が違うのね。。。 IAppointmentをITaskに変えるだけの簡単な仕事かと思ったら意外と重労働です。
とりあえず、今日のところは考えなきゃいけないこと、考えてみたいことを列挙しておこう。
- とりあえず、「/t」オプションがあれば仕事を登録ってことでいいかな。
- 「開始日時-終了日時」ではなく、「開始日-期限」となるはず。
- 開始日と期限はどちらも日単位の入力しかできない。
- 開始日も期限もどちらも省略できる。
- 優先度の指定をどうしようかな。 「+」「!」が高で、「-」「↓」が低とかにしとくか。 ハイフンは開始日と期限の区切り文字と混同しそうだなぁ。。。 というか、優先度の登録はサポートしなくてもよいかな。
- アラームの登録方法の違いの吸収方法を考えないと(予定→分指定、仕事→日時指定) 面倒なのでアラームは有り無ししか登録できないようにしようかな。 「/a:on」ならデフォルトのアラーム時刻が設定されて、 「/a:off」ならアラームなし、みたいに。 自分ではアラーム機能を使わないんで、どうしたいのかぜんぜん思いつかないんだよね。
あと、いきなり登録するんじゃなくて、Pocket Outlookの編集画面を開けるようにしてみたいなーとか思ってるんだけど、やり方がわからない。 だれかその辺のやり方がわかる人がいたら教えてぷりーず。
2009年06月06日 [長年日記]
_ [W-ZERO3][WM] Schedule Register Ver.0.02リリース。
日付として入力した半角数字を認識しないというどうしようもないバグを混入させてしまったので、慌てて修正版をリリース。 自分では全角文字でばかり入力していたので気付きませんでしたorz 同じミスをしないようにキチンとテストケースを書こうかなぁ…。
なんにせよ、2chで報告くれた人さんきゅーでした。
2009年06月05日 [長年日記]
_ [W-ZERO3][WM] Schedule Register Ver.0.01リリース。
まだ紹介ページを作ってないのでCAB直接のリンクになってしまってますが、 スケジュールを登録するだけの簡単なアプリを作成したので公開します。
これは、コマンドラインパラメータの内容からPocket Outlookの予定を作成するソフトで、他のソフトから呼び出して使うことを想定しています。
「05300900-1000○○の打ち合わせ@会議室A」 見たいなパラメータを受け取ると、
件名:○○の打ち合わせ 場所:会議室A 開始:5/30 9:00 終了:5/30 10:00 終日:いいえ
のような予定を作成します。
Offisnailさん作のOffisnail Spellと組み合わせて使うことを想定してます。 本来の用途はメール送信機能なのですが、この機能を使うことで他のプログラム(今回はSchedule Register)に入力値を引き渡すことができます。 これを利用して、入力したテキストから簡易的にスケジュールを作ってしまおうというものです。
前述のとおりまだ紹介ページがないので、入力できる形式についてReadMeから抜粋してここに載せておきます。
入力できること
入力は、「開始日時-終了日時件名@場所」の形式で行います。
開始日時は以下の形式をサポートします。
mmdd 月日 mmddhh 月日時 mmddhhmm 月日時分 yyyymmdd 年月日 yyyymmddhh 年月日時 yyyymmddhhmm 年月日時分
1日、5分など2桁でない場合は、頭にゼロを付けて2桁になるようにしてください。 時分の入力がない場合は、終日の予定とみなします。 年の入力がない場合、入力された月日の直近の未来日の年であると判断します。 例えば、現在が2009/05/20で、入力値が0620であれば2009年、 0205であれば2010年であると判断します。
終了日時は開始日時の入力によって、サポートする形式が以下のように変わります。
開始日時が年月日までの入力の場合 dd 日 mmdd 月日 yyyymmdd 年月日 開始日時に時間以降の入力がある場合 hh 時 hhmm 時分 mmddhh 月日時 mmddhhmm 月日時分 yyyymmddhh 年月日時 yyyymmddhhmm 年月日時分
終了日時に開始日時より小さな値が入力された場合、翌日、翌月、翌年であると判断します。 例えば、05302200-0300と入力された場合は、05/30 22:00~05/31 03:00であると判断します。
終了日時のみの入力(-0530のようなハイフンで始まる入力)はエラーとなります。 逆に終了日時の省略は可能です。 その場合、終日予定であれば開始日時と同じ日が、 終日予定でなければ開始日時の一時間後が、それぞれ補完されます。
数字以外の文字が入力されたところからが件名となります。 そのため、数字で始まる件名の登録ができません。
"@"(アットマーク)が入力されると、以降は場所となります。
"0"~"9"(数字)、"-"(ハイフン)、"@"(アットマーク)については、 全て全角文字も許容します。半角文字と混在していてもかまいません。
以降に、入力例をいくつか示します。 この例では、入力した日が2008/10/20であると仮定しています。
例1) 10281030-12報告会議@会議室A 件名:報告会議 場所:会議室A 開始:2008/10/28 10:30 終了:2008/10/28 12:00 終日:いいえ 例2) 0113CD発売 件名:CD発売 場所:(空) 開始:2009/01/13 終了:2009/01/13 終日:はい 例3) 1130-04社員旅行@韓国 件名:社員旅行 場所:韓国 開始:2008/11/30 終了:2008/12/04 終日:はい
2009年02月24日 [長年日記]
_ [TTBase] TTBase v.1.1.0リリース。
2008/7/22にv.1.0.17のα版がリリースされてから半年。 ようやく、α、βの文字を取り除いて正式版としてリリースしました。
本来なら、もうちょっと落ち着いてからリリースをすべきなんでしょうけど、いい加減ビルド番号でリソース管理するが面倒になっちゃったので断行しちゃいました。 本体に追加したい新機能があったので、一旦βの状態から脱しておきたい、ってのもあったし。 まだ潜在バグはありそうな気配なんですが、1.0.16以前からあったバグっぽいのでよいことにしてしまいました。
開発者都合でリリースしちゃってごめんなさいm(_ _)m
まぁ、言ってしまえば去年の夏、alpha2がリリースされてたころにちゃんと私の方でも検証していれば、その頃なら機能追加をしてくださったdrabornさんも居たでしょうしもっと早く正式版としてキチンとしたものをリリースできていたんでしょうけどね。。。 相変わらずいろいろ放置してしまってごめんなさいです。
とりあえず今後もTTBaseの中の人として活動は続けると思いますので、今後ともよろしゅうなのです。 …反応がものすごく遅い時があるかもしれませんが…。
_ [TTBase] TTBaseのCVSリポジトリ。
とりあえず、ずっと「release-1-0-17-alpha-1」ブランチで作業していたので、HEADにマージしてあります。 これで、ソースはHEAD一本に戻っている状態です。
今後のCVSの計画を忘れないようにメモ。
- 基本的には新機能の追加もHEADで作業する。
- 新機能追加中に、v.1.1.0のバグが発生して修正が必要になったら、その時点で「release-1-1-0」タグを起点にブランチを作成する。名前は…「release-1-1-x」とかでいいかなぁ。
- ブランチを作成するような状況になったら、HEADで作っていた新機能はv1.x.0としてリリースする。そうしないとタグの名前が訳分からないことになりそうなので。
2009年02月14日 [長年日記]
_ [TTBase] Init/Unload中のExecuteCommandの呼び出し。
昨日想定した通り、やっぱりInit/Unload中にExecuteCommandを実行すると以下の問題が発生してしまいました。
- TTBEvent_Init中に常駐型プラグインのコマンドをTTBPlugin_ExecuteCommand APIで実行しようとすると、プラグインのロード順によってはコマンドが実行されないことがある。
- TTBEvent_Unload中に常駐型プラグインのコマンドをTTBPlugin_ExecuteCommand APIで実行しようとすると、エラーが発生する場合がある。
どちらも、プラグインリストが不完全な状態でTTBPlugin_ExecuteCommand APIを呼び出すことで、発生していました。 なので、プラグインリストを完成させてから各プラグインのTTBEvent_Initを呼び出すように、先に各プラグインのTTBEvent_Unloadを呼び出してからプラグインを解放するように修正することで対処しました。
TTBEvent_Unload内ですでにアンロード済みの常駐型プラグインのコマンドを実行しようとすると、もう一度TTBEvent_Initされてプラグインがロードされてしまいますが、最終的にもう一度アンロードを試みるので、基本的にはリソース等がリークすることはないはずです。 ただ、昨日も書いた通り、プラグイン間のコマンドの呼び出しが循環してしまっている場合(プラグインAがプラグインBのコマンドを実行し、プラグインBがプラグインAのコマンドを実行し…という場合)はどうしようもないです。 これは本体側ではなんとも対処しようがなさそうなので、そのまま放置しておくことにしちゃいます。 実際問題、そんなコマンド間の呼び出しが起こってしまうことはなさそうですので。
なんにせよ、これで指摘された部分で本質的にまずそうなところは対処できたのでbeta2としてリリースをしようと思います。 とりあえず、ソースはCVSにコミット済みです。 …ってゆーか、そろそろexeのバージョン管理がビルド番号Onlyなのが辛くなってきたのでいい加減1.1.0としてリリースしてしまって、以降のバグ改修はリビジョン番号をあげることで対処していきたいところですが、そうもいかないだろうな…。
_ 通りすがり [Offisnail Spellで、twitter投稿したいとか、コマンドラインで●●したい。系がほしくなる、良アプリ..]
_ ori [要望を出してしまったようで申し訳ございません. アラームも優先度も私は使っていないので,仕様に関して良いアイデアは..]
_ Offisnail [ご無沙汰してます。 そのうちSpellに組み込もうと思ってたら、もう出来ちゃってますねw 新規編集画面は初期値付..]