山田偽研

iCBM3 改造履歴

改造履歴

Ver.0.179b

  • エディタエンジン「Azuki」を最新版(v1.7.7)にリプレースしました.

Ver.0.178b

  • Opera 15のブックマーク&スピードダイヤル&訪問履歴の読み込みに対応しました.書き出しに関しては,まだ不明なパラメータがあるので実装できません.たぶん,Opera Linkとの同期が実現するまでは,ブックマーク(bookmarks.db)を読み込んでも,何の使い道もありません.
  • Opera 15は外部から複数URLを開くことを拒絶する仕様(?)なので,Firefoxと同じトリックを使って,無理やり複数URLを開くことができるようにしました.
  • エディタエンジン「Azuki」を最新版(v1.7.6)にリプレースしました.
  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.87.0)にリプレースしました.
  • リスト項目のツールチップにブラウザ訪問履歴のブラウザ種別を示すヘッダタイトル表示するのをやめました.
  • 「スクラップブックマーク\Feedのサンプル\CNN.co.jp」の書式仕様が変更されたことにより,「記事の全文取得」ができなくなったので,クリッピングパターンを修正しました.
  • Google Chromeはv28より,旧スタイルのメニュー表示が使えなくなったので,その起動オプション"--disable-new-menu-style"を削除しました.

Ver.0.177b2

  • 前回,全置換モードの検索オプション"w"の不具合を修正しましたが,今度は別の操作で不都合が生じたので,それぞれのコンシステンシーが保たれるようにバグフィックスを行いました.

Ver.0.177b

  • JSONライブラリー「LitJSON」を最新版(0.70)にリプレースしました.
  • 「テキストを置換」コマンドの全置換モード(オプション"w")は,定数文字列による置換しかできなかったのですが,パターンを記述した場合は,その部分のみを抜き出して置換を行うことができるようにしました.
  • %feedマクロのreplaceサブキーによる置換アルゴリズムを変更しました.更に,「テキストを置換」コマンドと同じ全置換モード(オプション"w")を適用できるようにしました.
  • 現行のウェブサイトのサムネイル画像表示サービス「Mozshot」が,最近レスポンスが悪く風前の灯状態なので,別サービス「HeartRails Capture」に乗り換えることにしました.
  • 「情報ボックス|ブラウザパネル」にFeed記事(HTML)などを表示するときのスタイル表記を変更しました.v0.174bで絶対座標表記に切り替えたのですが,floatによる配置の方が別パラメータを用意する必要がなく扱いやすいので,元のやり方に戻すことにしました.
  • v0.174bで導入した「置換のためのオプション"w"」に気を取られていたせいで,他の「検索オプション」がコンテキストメニューから挿入できなくなっていたバグを修正しました.
  • 表示履歴メニューに「Lunascape訪問履歴」と「Sleipnir3〜4訪問履歴」のアイコンが表示されないバグを修正しました.

Ver.0.176b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.86.0)にリプレースしました.
  • フォルダ項目編集時のマクロ入力支援メニューに"%display"を追加しました.
  • "]]>"を含む語句を初期設定(CDATAセクション)に書き込めない大ポカを修正しました.AREで既に認識&対処済みだったにも関わらず,他ソフトウェアに同等のケアをしていませんでした.お恥ずかしい.

Ver.0.175b

  • 前バーションよりURLデコード用に採用した"Uri.UnescapeDataString"メソッドは,UTF-8以外のエンコードを理解しないため,外部からアイテム登録するとき,いろんなブラウザから送られてくるエンコードされた文字列をデコードできない問題が生じます.なので,以前の"HttpUtility.UrlDecode"メソッドを使う方法にロールバックします.
  • IEからアイテム登録するとき,URLエンコードを含むアドレスが過剰にエンコードされすぎている場合があるので,念の為デコードを2回することにしました.
  • 情報ボックス|エディターパネルのenclosure型ハイライトパラメータの「エスケープ文字」と「オプション」の表記順を逆にしても認識するようにしました.
  • スクラップブックマークのGoogle Chromeに関する更新チェックパターンが変更になったので修正しました.Operaも同じサイトでチェックしてるので,念の為に同様の修正を行いました.

Ver.0.174b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.85.0)にリプレースしました.
  • HTML整形テンプレートに使用する環境変数の仕様を抜本的に見直しました.新仕様では対象となる要素に複数の整形関数を施すことができます.また,今までバラバラだった%feedマクロのXML要素に施す整形関数と同じ表記に統一しました.
  • 「テキストを置換」コマンドの検索オプションに"w"を追加しました.このオプションをセットした場合は,検索キーワードの有無に関係なく,対象テキストすべてを置換テキストに書き換えます.
  • 「テキストを置換」コマンドの置換テキストに上記の環境変数を記述できるようにしました.
  • 初期設定ファイル内のSleipnir 3に関する表記をSleipnir 4に変更しました.
  • プログラム中のSleipnir 3に関する表記をSleipnir 4もしくはSleipnirに変更しました.
  • 起動時に前回のスクロールを再現するのは,例えば新しいFeed記事が読み込まれると,スクロール位置が流れてしまうので逆に使いづらい場合があります.なので,起動時は以前と同様に選択項目に自動スクロールする仕様にロールバックします.
  • 活動Feedをリセットしても,情報ボックスのタイトルバーアイコンが休止Feedに遷移しないバグを修正しました.
  • 「テキストを置換」コマンドの検索オプション挿入用コンテキストメニューが正しく動作していないバグを修正しました.
  • 「ブラウザ訪問履歴」コマンドで列挙したアイテムを別フォルダに移動したとき,情報ボックスのアイコンが一般アイテムに遷移しない不具合を解消するため,履歴アイテムはコピーのみ可能という仕様に変更しました.これで,アイコンは期待通りの変化をします.
  • 情報ボックスの画像付きFeed記事のスタイルを変更しました.float配置によるテキスト回り込みをやめました.

Ver.0.173b

  • 表示履歴を辿る際にリストスクロール位置を厳密に再現するようにしました.
  • フォルダツリー/アイテムリストなどへのフォーカスのタイミングとアイテムの選択状態に呼応したツールバーボタン/コンテキストメニューの更新タイミングがワンテンポずれていたバグを修正しました.
  • 速報ニュースのツールチップ消去コマンドを別スレッド(更新チェッカー)から呼び出す際に,Invokeメソッドでラッピングしていなかったため,酷い時は自爆する可能性があるミスを修正しました.
  • Feedを未読化するときに,実体のないFeed記事のリストアイテムにアクセスしようとするバグを修正しました.
  • ツールバー&コンテキストメニューの訪問履歴コマンドの並びを「最近訪問した項目」を先頭にする配列に戻しました.
  • Operaのウェブサイトが最近頻繁にデザインを変更しているため,その都度に更新チェックキーワードを修正しなければならないのが非常に面倒です.そこで,Google Chromeと同じくSoftpediaの更新情報でチェックすることにしました.

Ver.0.172b

  • 情報ボックス/ブラウザパネルのレンダリングエンジンをInternet Explorer 10に対応させました.
  • 検索を行う時にマウスが検索コンボボックスではなくリスト上にあると,検索完了と同時にオートフォーカスを再開するため,エンターキー入力を拾うことになり,予期せずにリスト項目をブラウザ表示してしまう問題を解決しました.
  • 検索履歴に登録されたキーワードと同じ語句を違う検索方法で検索しようとしても,検索履歴に登録された方法を優先して検索しようとするバグを修正しました.
  • セパレータアイテムをドラッグ&ドロップで同一リスト内コピーすると[複製]というタイトルが付いてしまうバグを修正しました.
  • スクラップブックマークの「Sleipnir 3〜4」を更新チェックするキーワードパターンが変更になったので書き換えました.だけど,まもなくSleipnir4が公開されるはずなので,書き換ても意味ないのですが念の為.

Ver.0.171b

  • エディタエンジン「Azuki」を最新版(v1.7.5)にリプレースしました.
  • リスト選択イベントの処理をOnSelectedIndexChnagedからOnMouseUpとOnKeyUpを使う方法に移行しました.これにより不必要なイベントをスキップする手間が大幅に軽減されました.
  • ローカルアイテム検索の仕様を一部変更しました.
    • (1)上位フォルダで検索ヒットしても,下位への再帰探索を続行する
    • (2)フォルダ除外するオプションfで,Feedフォルダも除外する
  • FavTool.Displayをコールするとき,親ノード情報を参照しなくても良いようにしました.
  • コンテキストメニューに「接続中止」コマンドが表示されないバグを修正しました.
  • リスト上でメモアイテムを選択して,iCBM3を再起動すると,メモ以外にセパレータも誤って選択してしまうバグを修正しました.

Ver.0.170b

  • リスト項目を対象に絞り込み検索するオプションを追加しました.
  • スパゲティ状態になっていた検索に関わるイベントコールを整理しました.
  • 「オプション設定|ブラウザ」のタイトル&オプションの編集方法をTMNなどと同じテキストボックス形式に変更しました.
  • 「オプション設定|コピー」のタイトル&ひな形の編集方法を上記と同様の形式に変更しました.
  • 「オプション設定|ブックマーク,ブラウザ,コピー」の追加コマンドでの修飾キーを使った挿入操作の仕様を変更しました.
  • %loginマクロの編集ダイアログを廃止して,アイテム編集ダイアログや情報ボックス/エディタパネルにて直接編集することにしました.新方式ではコメント欄にユーザーIDとパスワードが平文で表示されるので一見危なっかしい印象がありますが,セキュリティ的には編集時以外暗号化されているのでご安心を.
  • 「次回チェック日時の変更」はダイアログによる方法を廃止して,情報ボックス|ミニタグクラウドに表示される専用デートタイムピッカーから設定できるようにしました.
  • ドラッグ&ドロップ操作がコピーの場合は元アイテムの選択状態を保持することにしました.
  • 終了時に空のフォルダツリーを選択していると,次回起動時に情報ボックス表示が「未選択」となってしまうバグを修正しました.

Ver.0.169b

  • エディタエンジン「Azuki」を最新版(v1.7.4)にリプレースしました.
  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.84.0)にリプレースしました.
  • ツリーのすべての開閉状態を起動時に再現するようにしました.
  • 新規作成ダイアログのターゲット選択用のツリーはメインウィンドウのフォルダツリーの開閉状態とシンクロするようにしました.
  • 複数のリスト選択状態を表示履歴に記憶するようにしました.また,起動時にも複数の選択状態を再現するようにしました.
  • フォルダやタグクラウドを開くと先頭のリストアイテムを選択するか否かをオプション設定から変更できるようにしました.個別に変更するには従来通り%selectマクロを宣言します.
  • 「フラット表示」コマンドを廃止して,「新着/フラット」と「未読/フラット」コマンドをツールバーボタンメニューのレギュラーメンバーに昇格させました.
  • ツールバーの「訪問履歴」スプリットボタンは,今まで代表アイコンが「全ブラウザ履歴」なのにも関わらず,動作は「最近訪問した項目」コマンドというチグハグな状態だったので,アイコンと動作を一致させて「全ブラウザ履歴」コマンドに統一しました.
  • 速報ニュースの項目が無くなったり表示禁止中の場合は,手動スクロールボタンを非表示にするようにしました.
  • ダブルクリックによるブラウザ表示を一時的に無効にするグローバルショートカットキーを導入しました.
  • 「ユーザー定義テンプレートによるコピー」コマンドのショートカットキーをTMNと同様に「数字パッド」キーも使えるようにしました.
  • 外観設定でコントロールごとの個別のフォント設定を省略した場合は,共通フォント設定の値をオーバーライドできる仕組みを導入しました.
  • %feedと%checkマクロのサブキー「preset」を「reset」に改名しました.更に,引数名も変更しました.
  • 外部ファイルに分けていた定義データを初期設定ファイルにマージして,オプション設定ダイアログから編集できるようにしました.
  • 設定パラメータが増えたのでオプション設定ダイアログのレイアウトを変更しました.
  • メインウィンドウのいくつかのボタン&メニューアイコンを変更しました.
  • はてなブックマーク人力検索はてなのアイコンが新しくなったので差し替えました.
  • ドラッグ&ドロップで項目を同じフォルダのツリーに移動しても,フォルダ末尾にスクロールしないバグを修正しました.
  • ドラッグ&ドロップでリスト項目を別の位置に移動/コピーした直後にボタン状態が更新されないバグを修正しました.

Ver.0.168b

  • エディタエンジン「Azuki」を最新版(v1.7.3)にリプレースしました.
  • 「情報ボックス/エディタの正規表現ハイライト」はTMNと同じように「Azuki」オリジナルのコードを使用することにしました.
  • 「情報ボックス/エディタ」においてクリッカブルURL機能を復活させました.
  • 「情報ボックス/エディタ」において検索語句を強調表示する機能を追加しました.
  • 「情報ボックス/エディタ」においてワードラップ切り替えボタンを追加しました.
  • 「レイアウト変更」コマンドにドロップダウンメニューで任意のレイアウトを直接指定する機能を追加しました.更に,Shift+F12キーで選択を逆順に辿る機能も追加しました.
  • 「別形式で保存」ダイアログの「入力項目」と「出力形式」の最大項目数を少し増やしました.Windows XPでドロップダウン項目が途中で途切れてしまうのを防ぐためのおまじないです.
  • TMNSQDNと同様に,通常表現の単語単位の検索において,ダブルクォート記号の認識に誤りがありました.これからは両端をダブルクォートで囲んだ単語でないかぎり単語単位の検索とはみなさないことにします.
  • 次回バージョンアップの布石として,ドラッグ&ドロップによって移動/コピーした後はディスティネーション側のツリーやリストアイテムを選択する仕様に変更します.

Ver.0.167b

  • エディタエンジン「Azuki」を最新版(v1.7.2)にリプレースしました.
  • フォルダツリー/タグクラウド,アイテムリスト,情報ボックスの表示レイアウトを様々に変更するコマンドを用意しました.
  • 別形式で保存コマンドのユーザーインターフェースを刷新しました.入出力に関するいろいろなオプションを設定することができます.
  • 更新チェックコマンドの「全項目」と「個別」の区別は,今まで修飾キーの有無で行なっていましたが,明示的に別々のメニューコマンドから実行することで区別するようにしました.
  • すべてのコマンドのショートカットキー割り当てを見直しました.更に,いくつかのコマンドに関してはメインウィンドウ内のどこにフォーカスがあっても動作します.
  • 外部のリンクアイテムを「アイテムリスト」や「フォルダツリー」へドラッグ&ドロップしても登録できるようにしました.
  • %feedと%checkマクロに既読判定用サブキー"read"を用意しました.Feed記事やチェックアイテムを訪問(読了)とするタイミングを設定します.
  • コメントに関する検索コマンドにおいて,Internet ExplorerやGoogle Chromeのブックマークはコメント要素がないのでスキップすることにしました.同様の理由から,「実行ファイル」&「メモ項目」の列挙はスクラップ&ゴミ箱のみで実行,反対に「特殊項目」の列挙はブラウザブックマークのみで実行することにしました.
  • 「更新チェック用キーワード編集ダイアログ」のキーワードハイライトを「Azuki」のハイライト機能ではなくマーキング機能を使って表現することにしました.
  • 次回バージョンアップで,「情報ボックスのエディタパネルの正規表現ハイライト」を「Azuki」オリジナルのクラスに移行する準備として,表示内容によって異なるハイライタに切り替えるアルゴリズムに変更しました.今のところ見た目はまったく変わりません.
  • バージョンアップの際に強制的に「外観設定」や「コンテキストメニュー」を差し替える「ステルスアップデート機能」を導入しました.
  • エラーログはデスクトップに作成することにしました.
  • 「フォルダ展開」関連コマンドは,「ツリー開閉」関連コマンドとコマンド名が似ていて紛らわしいので,「フラット表示」という総称に変更しました.
  • フォルダツリーの選択アイコンを「矢印」に変更しました.
  • デフォルトブラウザのボタンやメニューにチェックステートをセットするのをやめました.
  • 「分類タグ」や「中止」コマンドに関する化石化(使われずに埋没)していたソースを除去しました.
  • ツールバー上をアイテムがドラッグ通過するとスキン画像が剥げてしまうバグを修正しました.
  • コピーコマンドのメニュー有効条件に誤りがあったので修正しました.
  • 「情報ボックスの検索テキスト」や「更新チェック用キーワード編集ダイアログの検索テキスト」の検索オプション設定ドロップダウンメニューが機能していなかったバグを修正しました.
  • 登録ウィンドウの「Feedポケット」にFeedファイル自体のリンクをドロップしても,MIMEタイプがXMLでないと認識されなかった不具合を修正しました.

Ver.0.166b

  • エディタエンジン「Azuki」を最新版(v1.6.3)にリプレースしました.
  • セパレータをドラッグ&ドロップで移動しようとすると,自爆してしまうバグを修正しました.
  • シフトキーを押しながら検索コンボボックスを選択すると,"イミディエイトアクション"による検索動作を一時的にキャンセルするようにしました.

Ver.0.165b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.82.0)に差し替えました.
  • 前回導入した「Feedデータに誤表記があったときの自動修正機能」が正しく動作していることがわかったので,「エラーメッセージ」を表示するのをやめて「読み込み成功」とみなします.
  • SQDNと同様に,検索コンボボックスの選択を変更したら,すぐに検索実行する"イミディエイトアクション"を試験的に導入してみました.

Ver.0.164b

  • 最近,「はてなブックマークエントリー情報取得API」を使ったタグの自動取得をしくじるケースが増えてきたので抜本的な改革を施しました.
    • 動作を軽くするためにAPIはjsonlite形式に一本化
    • ブックマークを古い順に集計するためにJsonデータを末尾から読みこむ
    • タグ選定の方法(パラメータ)を見直し
    • はてブを禁止しているユーザーからはタグを取得しない
  • はてなブックマークエントリー情報取得API」のパラメータや「ブックマークエクスポート」に使うテンプレートファイル名などの定義は,初期設定ファイル(iCBM3.XML)ではなく定義ファイル(Definitions.XML)に別途記録することにしました.
  • ユーザーが手動で「はてなブックマークエントリー情報取得API」をコールしてタグを取得した場合,データベースファイルにダーティフラグがセットされないバグを修正しました.
  • 起動時,メインウィンドウのハンドルが確定する前に,それに対するイベントインボークが発生すると当然のことながら自爆します.今回,そのような事態になりうるデータと操作の組み合わせが見つかったので対処しました
  • 配信されたFeedデータにたった1文字の誤表記(例:エンティティ文字のミス)があるだけで,.NETのXMLライブラリーは読み込みを拒絶する非常にナーバスな設計です.そこで,原因が「エンティティ文字のミス」とわかっているのならば,自動修正を試みてデータをなんとかサルベージできないかと考えました.本機能は試験的導入なので,調子が悪ければあっさり放擲するかもしれません.
  • 前回,テキスト変換と置換に関するコマンドをひとつのダイアログにまとめたのですが,実用してみたところ「とんでもなく使いにくい」ことが判明したので,以前の状態に戻すことにしました.ただし,置換に関しては少し改良を加えて,現インターフェースを維持することにします.
  • 私信に寄せられたリクエストに応えて「HTML形式」のエクスポートを復活させました.ただし,CSSの維持管理が面倒な「拡張形式」は見送り,「簡易形式の」みの復活とします.
  • インターネット検索 Googleのアイコンが新しいデザインに変わったので差し替えました.

Ver.0.163b

  • 平文変換やコメントクリアや置換コマンドをひとつのダイアログにまとめました.また,フォルダを再起探索して変換するオプションも用意しました.更に,すべての変換コマンド実行後に文頭末をトリミングすることにしました.
  • Feed記事の移動を禁止しました.ただし,例外的に削除は可能とします.
  • ドラッグ&ドロップのゴーストイメージとマウスポインタの相対位置を少しアレンジしました.更に,相対位置があまりにも離れすぎている場合はドラッグ&ドロップをキャンセルすることにしました.
  • 重大なエラーをログファイルを記録したとき,その場で開いて確認することができるようにしました.
  • 検索ボックスのコンテキストメニューから検索オプションを挿入するとき,オブジェクトのキャスト対象を間違えていたため自爆するバグを修正しました.
  • 同じ日時の新着や未読記事が複数ある時に%selectマクロが正しく動作しないことがあるバグを修正しました.
  • ファイルではなくCGIリクエストとして受信するFeedリンクをiCBM3に登録しようとしてもリジェクトされてしまう不具合を修正しました.Content-TypeをXMLと判定すべきところをHTMLと判定していた大ポカです.あちゃー.
  • スプラッシュウィンドウのプロセスアイコンがタスクバーに表示されていた不手際を修正しました.

Ver.0.162b

  • %feedマクロignoreキーを複数設定できるようにしました.更に,ignoreキーの登録可能エレメントに"future"を追加しました.未来の更新日時の記事を無視します.
  • 複数定義可能なサブキー(例:%feedのexcludeなど)をマクロ入力支援メニューから追加したあとのキャレット位置が追加したサブキー位置にならない不具合や分かち書きしたマクロから既に入力済みのサブキーを見つけられない不具合を修正しました.
  • CapsLockしているときは複数項目のコピーを逆順に行うことにしました.
  • 気まぐれに「スプラッシュウィンドウ」を復活させました.
  • 「登録ウィンドウ」を枠なしウィンドウにしました.
  • 「登録ウィンドウ」を閉じるとき座標が保存されないバグを修正しました.
  • 「登録ウィンドウ」のフレーム色を外観設定ファイルからセットできるようにしました.
  • 初回起動時に「デフォルトフォルダ」から「ユーザー設定フォルダ」に「設定ファイル」をコピーする手続きがバラバラに定義されていたのでまとめました.
  • 「スクラップブックマーク\Feedのサンプル\CNN.co.jp」の書式仕様が変更になったため,「記事の全文取得」ができなくなったのでクリッピングパターン等を修正しました.
  • 「スクラップブックマーク\Feedのサンプル\教えて君.net」が宣伝ばかりで実のある記事がほとんどなくなってしまったので削除しました.

Ver.0.161b2

  • Sleipnir 3〜4の独自履歴コマンドのメニューにアイコンが表示されない場合がある不具合を修正しました.

Ver.0.161b

  • Sleipnir 3〜4がv3.5よりデフォルトレンダリングエンジンを「WebKit」に変更したため,IE履歴だけを参照するのは不充分なので独自履歴を読み込むことにしました.
  • 「速報ニュース」を手動スクロールするボタンを復活させました.今まで手動スクロールはマウスホイールだけで操作していましたが,マウスホイールのないノートPCではそれができないため,随分前に廃止したボタンによる操作も復活させたわけです.
  • 情報BOX/ブラウザモードが「IE9」になって挙動が怪しくなったCSS要素をいくつか調整しました.
  • 情報BOX/ブラウザモードのスタイルシートの記述を直書きから外部ファイル参照方式に切り替えました.
  • 接続ソケットのユーザーエージェント初期値が「IE7」のまま放置されていたので「IE9」に変更しました.
  • ほとんど使われないので「標準HTML形式」と「拡張HTML形式」によるエクスポートを廃止しました.
  • 文字列置換コマンドとコピーコマンドのメニュー実行条件を少し緩くしました.
  • 異なるコンピュータ間で更新チェッカー用データベースを共有するとき,片方だけに登録されているFeedが,もう一方でゾンビ状態(実体はないのに速報ニュースなどに表示される)になってしまう不具合を修正しました.

Ver.0.160b

  • TMNと同様にターゲットプラットフォームを「x86」に変更しました.
  • TMNと同様に「PDF表示ActiveXコンポーネント」の廃棄方法を修正しました.
  • TMNと同様に「IEと同等のパフォーマンスを実現する」スイッチを設けました.
  • 情報ボックス/ブラウザパネルのスタイルシート&HTMLテンプレートを改良しました.特に,IE9がインストールされている環境ではCSS3プロパティを使うことができます.
  • 情報ボックス/エディタパネルのコンテキストメニューに「すべてを選択」コマンドを追加しました.
  • アドレス要素(URL,Podcastなど)が取得できないFeed記事は読み込まない仕様に変更しました.

Ver.0.159b

  • Windowsをインストールした直後の場合,IE上でFeedが初回起動される前にiCBM3に読み込もうとすると自爆する問題を修正しました.
  • Twitter」に関する検索コマンドのファビコンを最新のものに差し替えました.
  • System.Data.SQLite」を開発最新版(1.0.81.0)に差し替えました.

Ver.0.158b

  • ドラッグ&ドロップ操作の際,項目のゴーストイメージを表示できるようにしました.表示の有効無効は外観設定ファイルから切り替えることができます.
  • ドラッグ&ドロップ操作の際,フォルダ上でマウスを静止して展開を促すシークエンスに無限ループとなる危険性を孕んだコードがあったので修正しました.
  • Sleipnir 3〜4 v3.0.16から導入された「ブックマーク全体の並び替え機能」に対応しました.
  • Sleipnir 2, Sleipnir 3〜4, Operaにおいて「ブックマーク全体の並び替え」が行われた場合はその旨をヘッダカラムに明示するようにしました.
  • Sleipnir 1Mozilla Firefox (SQLite, JSON)Google Chromeブックマークの第1階層フォルダはオリジナルとの整合性を保つため「整列禁止」することにしました.
  • 外観設定ファイル/スキンの単色ベタ塗りパラメータの保存書式が読み込み書式と異なっていたバグを修正しました.
  • 情報ボックスにFacebookの「いいね!」ボタンが表示できなくなっていたので修正しました.

Ver.0.157b

  • 情報BOX/エディタパネルの検索テキストボックスと情報BOX/ブラウザパネルのURLテキストボックスにおいて,日本語入力確定のエンターキーであるにも関わらず,検索やナビゲーションを先走って開始してしまうバグを修正しました.
  • CCBと同じくWindows7環境で「中止」コマンドと「Timeout」イベントが迅速に反映されるように工夫しました.
  • System.Data.SQLite」を開発最新版(1.0.80.0)に差し替えました.
  • スクラップブックマークの「山田偽研へのエイリアス」が旧書式のままで動作しなくなっていたので修正しました.

Ver.0.156b

  • TMNと同様にタイマー処理(シーケンサー)をなるべく省インスタンス化するようにコードを改良しました.その結果,ニュース表示中に割り込んで表示されるエラーメッセージ(ブレーク処理)の挙動が怪しかった問題などを解決できました.
  • %feedや%checkマクロの正規表現定義や分類タグの排除タグ定義に検索オプションを付加できるようにしました.地味なことですがかなり便利です.
  • 検索オプションに"n"(通常表現)を追加しました.
  • %checkマクロkeywordサブキー編集ダイアログのツールバーに「検索オプション挿入」コマンドを追加しました.
  • 画像ファイルを使わず「ベタ塗り背景色」をスキンとして設定できるようにしました.
  • 「IE Feeds」や「IEお気に入り(レジストリ)」に対してエイリアスを作成できないのは現行の仕様に問題があるためなので定義方法を変更しました.バージョンアップしてお使いの方は「従来のエイリアスアイテム」が使えなくなるので再度作成しなおしてください.また,「起動時の選択フォルダ」が一旦リセットされるのでご了承ください.
  • アイテムの作成や移動の条件を判定する場合,操作の仕方によってはヌルオブジェクトを参照して自爆してしまうバグが見つかったので修正しました.
  • 更新チェックなどインターネットへのアクセスを実行した後,コンテキストメニューのブラウザ表示コマンドが無効になってしまうバグを修正しました.
  • ブラウザコンテキストメニュー用のサンプルスクリプトのiCBM3へのファイルパスが一般的な場所になっていなかったので修正しました.

Ver.0.155b

  • Mozilla Firefox (JSON)形式ブックマークのエクスポートに対応しました.
  • JSON形式ブックマーク(Google ChromeMozilla Firefox (JSON)Sleipnir 3〜4)のエクスポートは雛形となるテンプレートを参照することにしました.
  • Mozilla Firefox (JSON)形式ブックマークのインポート(読み込み)で分類タグを取り込めるようになりました.
  • Lunascape形式ブックマークのインポート(読み込み)をXmlReaderからDOMに切替えました.
  • v0.116で廃止したLunascape独自履歴の列挙&検索コマンドを復活させました.LunascapeはTrident(IE)よりGeckoやWebkitなどのエンジンで利用されることが多く,そのような利用形態ではIE履歴を参照しても無意味なので復活させたわけです.ただし,バージョンごとに履歴ファイルの書式が微妙に異なりすべてに対応するのは面倒なので,Lunascape 6のみ読み込むことができます.
  • 「クローンを作成」コマンドを追加しました.例えば,時間とともに流れてしまうFeed記事をあとで読むため別フォルダに取置きするような用途に使うと便利でしょう.
  • エラーログの出力先を「初期設定フォルダ」に変更しました.従来の「プログラムフォルダ」の場合,Vista以降のUAC制限で出力できないことがあるための処置です.
  • エラーログを出力した時は利用者に注意を喚起するためにメッセージや音を出すことにしました.
  • 登録ウィンドウのサイズを小さくしました.
  • 新規ブックマーク追加の時にMozilla Firefoxの初期名称はバージョン番号でなく書式で違いを表すことにしました.
  • Google Chrome形式ブックマークのエクスポートで「空のフォルダ」を出力できないバグを修正しました.

Ver.0.154b

  • Sleipnir 3〜4形式ブックマークのエクスポートに対応しました.ただし,Sleipnir 3〜4形式ブックマークに関しては不明な点がまだまだいっぱい残っています.そのため,わからない事項に関して「決め打ち」をするか「ネグって」いますので,それが原因で不具合が生じるかもしれません.ま,iCBM3全体がそう言う「綱渡り設計」で成り立っているので,改めて述べるまでもないかもしれませんが,念の為ご承知おきください.
  • Sleipnir 3〜4形式ブックマークを読み込む際にシステムラベル"WORKTRAY"を無視せずタグとして取り込むことにしました.「同期出力」コマンド実行時の整合性を保つための処置です.
  • 「別形式で保存(エクスポート)」コマンド実行時の自動分類機能(特殊フォルダの所属をなるべく引き継ぐ)は,今までツールバー(ブックマークバー)とメニューの二種類のみでしたが,新たにFileforx3以降Sleipnir 3〜4の"未整理のブックマーク",Operaの"ゴミ箱"へも分類できるようにしました.更に,今までは特殊フォルダ直下の項目のみしか自動分類できませんでしたが,これからは深い階層の項目に対しても所属を調査して分類します.
  • Google Chrome形式ブックマークのエクスポートのコーディングスタイルをJsonData形式にに変更しました.
  • 各種エクスポートコマンドのメニューアイコンを廃止しました.
  • ツールチップに表示される"次回チェック日時"の単位表記が統一されていなかった不具合を修正しました.
  • 凡ミスでエラーログの記録が2系統になっていたので統一しました.
  • "オプション設定|表示|ホームポジション|現在値"ボタンが機能していなかったバグを修正しました.
  • 古くて使い物にならない検索エンジンの定義を修正しました.
  • System.Data.SQLite」を開発最新版(1.0.79.0)に差し替えました.

Ver.0.153b

  • 開発環境を「.NET Framework 3.5 SP1」にダウングレードしました.
  • System.Data.SQLite」を最新版(1.0.77.0)に差し替えました.
  • 今まで同期コマンドは保存と読み込みを別々に操作していましたが,これからは双方向同時に行うことにしました.これに伴い「同期フラグ」は「方向フラグ」という名前に変更します.
  • 定期的にブックマークと更新データベースと初期設定のバックアップを取る仕組みをシーケンサーに導入しました.
  • ツリーの開閉コマンド群をTMNと同じように充実させました.
  • リストのアイテムを選択してエンターキーを押すとブラウザで表示しますが,そのときiCBM3のウィンドウを最小化する仕様にしました.これ以外の操作でブラウザ表示したときは最小化しません.
  • 今まで,ブックマークとカップリングがない更新チェックのエントリーは,終了時にデータベースから削除することにしていました.しかし,Dropbox等を使って,複数のコンピュータ間で同期を取る場合に,この仕様では不都合が生じることがあります.例えば,片方の環境にエントリーがあるけれど,もう一方にそれがない場合を想定しましょう.今の仕様では,ない方で使用後にある方を起動すると,エントリーが消失するというトラブルが生じます.そこで,カップリングがないエントリーでもデータベースから消さないことにしました.しかし,いつまでも消さずにいるとゴミが溜まっていくことになるので,手動で「データベースを清掃する」コマンドを別途用意しました.
  • %selectマクロの引数に正の数を与えているにも関わらず,先頭の項目を選択してしまうバグを修正しました.
  • iCBM3終了時にリスト上でセパレータを選択していた場合,次回起動時にその選択を再現できない場合があるバグを修正しました.
  • 各種メニューを情報ボックスで編集した直後,メニューの有効/無効状態が更新されていなかったバグを修正しました.
  • スクラップブックマークの「Sleipnir 2」の更新チェック用キーワード&URLが変更されたので修正しました.
  • 今回,開発環境を変更したので,予期しないトラブルが発生するかもしれません.そこで,問題をトレースするために全体のログを記録することにしました.そのため,若干動作が遅くなるかもしれませんがご容赦を.

Ver.0.152b

  • System.Data.SQLite」を最新版(1.0.76.0)に差し替えました.
  • マクロ入力支援メニューを強化しました.
    • サブキーの選択肢が既定値の場合はメニューから選択できるように
    • コントロールキーを押しながら実行すると値を強制置換することに
  • %cycleマクロの時間引数をもっと詳細に記述できるようにしました.例えば「1d12h」と言うような表現ができます.
  • %newsマクロのexpireサブキーも%cycleマクロと同じ表記をできるようにしました.
  • %checkマクロのformatサブキーは無意味なので廃止しました.
  • %sendマクロにpermitサブキー(従来の引数)とmaxサブキー(フォルダごとの送出リミット)を追加しました.
  • %loginマクロ編集用のダイアログを開こうとすると,偶に自爆してしまう場合があるバグを修正しました.
  • Feedの更新チェックにおいて,XML関連のエラーが発生したときは再接続しないことにしました.今までこの仕様を導入していなかったせいで,更新チェック途中にXMLエラーが起こるとそれまでに読み込んだ新着記事をすべてリセットするという不調法が発生していました.
  • 通知ウィンドウのPodcast記事のアイコンが通常のFeed記事と同じになっていたバグを修正しました.
  • IE系ブラウザの訪問履歴列挙コマンドで,タイトルのないものをフィルタリングすることにしました.
  • IE系ブラウザの訪問履歴列挙コマンドで,httpsプロトコルの履歴を見落としていたバグ修正しました.

Ver.0.151b

  • 「%check」と「%feed」マクロに「preset」サブキーを追加しました.更新チェック前に読み込み済みのアイテムや記事を「既読」や「未読」状態に変換します.出来上がってから気がついたけど,あんまり使い道ないかな?
  • Feed記事に外部スタイルシートをインクルードするオプションとして,「%display」マクロに「css」サブキーを追加しました.今までは外観設定ファイル(Appearance.xml)の「CSS定義部」にウェブサイトごとの「独自スタイルシート」を書き足して使っていたのですが,今後独自設定が増えていったら収拾がつかなくなることは目に見えています.そこで「独自スタイルシート」をマクロから設定する方法に切り替えました.
  • 項目のアドレス(URL,Feed,実行ファイルのパス,エイリアスコマンド)が重複している項目を列挙するコマンド(DuplicateItems)を新設しました.
  • アドレスに関する整列コマンドにおいて,Feed項目はURLではなくFeedアドレスを対象にした整列を行うことにしました.
  • Feedの更新チェックを行ったときのアイテム整列規則(多重束縛条件整列)を若干修正しました.「新たに読み込まれた記事群」と「既存の記事群」の2つのパートで各々「更新日時」を対象にした整列を行うことにしました.
  • v0.147bの「通信ソケット完全非同期化」に伴う「クラスの抽象化」によって必要なくなった「FavType」列挙体項目を大掃除しました.
  • 「特殊項目」メニューにアイコンを表示するようにしました.
  • スクラップブックマークの「Firefox」の更新チェック用キーワードが変更されたので修正しました.というか,前回選んだ領域は明らかにキーワードとして相応しくなかったようです.
  • スクラップブックマークの「CNN.co.jp」の記事に外部スタイルシートを適用するため,新機能%displayマクロのcssサブキーを定義しました.

Ver.0.150b

  • Sleipnir 3〜4 RC3」から又々ブックマークの仕様が変更になったので対応しました.ついでに,「FenrirFS」の「ラベル」をタグとして読み込むことができるようにしています.ただし,「リボン」はイマイチ使い道がよくわからないので無視します.
  • Feedの更新チェックにおいて,同一URLの記事が複数含まれる場合の取り扱いを考慮していなかったため不都合が生じるバグ(例:http://info.fenrir.co.jp/rss/product.xml)を修正しました.
  • Feedの更新チェックにおいて,HTTPリクエストヘッダの"If-None-Match"や"If-Modified-Since"フラグは最新の記事をチェックするには非常に便利なオプションです.しかし,実際の更新チェックでは「日時的に最新ではない古い日時の記事が新着として挿入されるケース」もあったりします.そのような場合,上記のフラグ群はむしろ邪魔になります.なわけで廃止することにしました.
  • Feedの更新チェックにおいて,リストに該当Feedの記事を含む場合のリフレッシュ方法が,今まではなるべく小規模になるようにするため逆に複雑怪奇なコーディングをしていました.しかし,全項目をまるごとリフレッシュする方法を試してみたところ,それほど差がないことがわかったので(というか最近のマシンのスペックがかなり向上したためかもしれないが),非常にシンプルなコーディングの全リフレッシュ法に切り替えることにしました.
  • Feedの更新チェックにおいて,マクロのテンプレートで定義した要素が見つからなかった場合は{$hatena}を除いてヌルスペースを返すことにしました.(前はそうなってたはずなのに.いつの間にかできなくなっている.変だなぁ?)
  • Feedの更新チェックにおいて,
    %feed[comment=%tags\[{e&dc:subject|subject|category+\;}\]]
    というようなマクロのテンプレートを定義した場合,「要素ごとにエスケープしてから結合子で結合する」のが正しい動作なのですが,v0.149では「要素を結合子で結合してからエスケープする」という誤った動作になっていたので修正しました.
  • 起動時のリスト選択状態は今までインデックス(数字)で保存していましたが,ブックマーク同期をブラウザベンダー各社が提供するクラウドサービスで行っていると,例えば「片方では削除してしまった項目なのにインデックスしか情報を持っていないので異なる項目を選択しても間違っていることを認識できない」といった不都合が生じます.そこで,選択アイテムごとに独自のハッシュ値(MD5)を割り当てることで,上記のような不整合を防ぎユニークな選択が行われる工夫を施しました.
  • 情報ボックスのミニタグクラウドに"&"文字を表示できないバグを修正しました.
  • 更新チェックを開始したとき,速報ニュース上にコンテキストメニューやポップアップメッセージが表示されている場合は強制的にクローズする仕様にしました.
  • 速報ニュース上にマウスをホバリングしたときの挙動が,v0.147bでリファクタリングして以来どうも手に馴染まない感じがするので,v0.146bと同等の振る舞いをするようにロールバックしました.
  • タグマクロをクリアするコマンド(ClearTags)を追加しました.
  • スクラップブックマークの「Firefox」の更新チェック用キーワードが変更されたので修正しました.
  • スクラップブックマークの「CNN.co.jp」において,複数ページに渡る記事の「ページガイドリンク」を表示できるように全文取得用クリッピングエリアを変更しました.更に「CNN.co.jp」の「ページガイド」と同等の装飾を施すため外観設定(Appearance.xml)にスタイルシート情報を追加しました.

Ver.0.149b

  • 「オプション設定」の「更新チェッカー」に関する設定から「ソケット」関連の項目を独立させました.
  • 「ソケット」関連の設定項目に「再試行時の遅延時間」「ユーザーエージェント」「プロキシ」「既定エンコード」を追加しました.
  • 最近,「コールバックAPIによるはてなブックマークのタグ自動取得」でアクセスするサーバ(Json/Rss)が貧弱になったのか,制限をかけているためなのか理由はわかりませんが,多重接続すると非常に重くなる傾向があります.そこでサーバの負荷を軽減するため,今まで通り多重接続で行うか後でひとつずつ行うかをフラグから選択できるようにしました.
  • .NET の通信ソケットは非常に厳格でレスポンスの書式がちょっとでも規定から外れると「ServerResponseViolation」というエラーが発生します.しかし,それでは融通が効かなすぎるので,少し条件を緩めるおまじないを「iCBM3.exe.config」に施しました.
  • 「ソース表示ウィンドウ」のキーワードキャプチャを「Regex.Matches」メソッドを使って一気に行うアルゴリズムに変更しました.つい最近までこんな便利なコマンドの存在を知りませんでした.お恥ずかしい..
  • Feed記事のXML要素の探索方法をリファクタリングしました.今までは辞書オブジェクトからの探索でしたが,新しいやり方ではジェネリックリストのFindAllメソッドですべて賄うことにしました.
  • 「ソース表示ウィンドウ」にレスポンスが返ってこなかった場合,通信ソケットを強制終了させる手続きが働いていなかったバグを修正しました.
  • 各種インターネット接続コマンド実行中に「中止」を手動実行したとき,条件によっては自爆してしまうバグを修正しました.
  • はてなブックマークのタグ自動取得」や「Feed記事の全文取得」実行時にエラーが発生しても,「エラー項目列挙」コマンドからリストアップできないバグを修正しました.
  • 「Feed記事の全文取得」のコールバック実行中に「ソケット数&待機数」がきちんと表示できていなかったバグを修正しました.

Ver.0.148b

  • SQLiteライブラリー「System.Data.SQLite」をレガシー版(1.0.66.0)からデベロップ版(1.0.74.0)に置き換えることで,Mozilla Firefox 4以降の「places.sqlite」の読み書きに対応しました.
  • Mozilla Firefox 3以降のJsonタイプのブックマークファイルが存在しない」場合の処理を間違って「致命的なエラー」とみなした結果,やたら大げさなメッセージボックスが表示されてしまうバグを修正しました.
  • Mozilla Firefoxのブックマークの内部識別子は,今までFirefox2以前の"Firefox"とFirefox3以降の"Firefox3"と言う具合に命名してきました.しかし,今後バージョンアップが進んでいくと番号で分ける方法は本質的ではないと思われます.そこで,前者を"Firefox_Html",後者を"Firefox_SQLite",更にJson形式を"Firefox_Json"と呼んで区別することにしました.
  • 同様な理由からエクスポートコマンドのタイトルも"Firefox(HTML)"と"Firefox(SQLite)"に変更しました.
  • 今まで,ブックマークファイルの読み書き時に起こった致命的エラーは,デバッグを容易に行えるようにするために,別途用意したメッセージボックスに表示させていました.しかし,ユーザーサイドから見れば,それはかなり鬱陶しい仕様と思われます.そこで,そのようなエラーメッセージはエラーログファイルにこっそりと記録することにしました.
  • ただし,上記のエラー記録方法ですと「エクスポート」コマンド実行時にエラーが発生したことを認知できなくなるので,エラーログ記録と同時にメインウィンドウのステータスバーにも「エラーが発生したことだけ」を表示することにしました.
  • 更新チェック中に「ソケット数」と一緒に「キューリストの待機数」もステータスバーに表示することにしました.
  • 「数字キーによるアイコンのワンタッチ変更」をしたとき「編集フラグ」をセットし忘れていたため,変更が保存されない場合があるバグを修正しました.
  • オプション設定の「タグ」&「更新チェック」のテキストボックスのサイズを整えました.
  • Lunascapeの共有ブックマーク「Gaia」に関するパラメータは,初期設定内に新しく設けた「Constants」というブロックに保存することにしました.

Ver.0.147b

  • CCBと同じようにすべての通信ソケットを完全非同期化しました.
  • 非同期化に伴い,スレッドのプライオリティパラメータは必要なくなったので,初期設定から削除しました.
  • 「はてなタグの自動取得」や「ブログ記事の全文取得」は今まで親Feedの更新チェックが終わってから遅延実行していましたが,これからは更新チェック中に並行実行できるようにしました.
  • 今までは更新チェックとそれ以外のネット接続は別系統の土台(スレッドプール)で動作させていましたが,これからはすべて同じ土台(非同期化したのでスレッドプールではない)で動作させることにしました.クラスの抽象化とカプセル化を施すことで,同じ土台でも異なる処理系を見通しよく実装が行える仕組みを実現しています.
  • 「リンク抽出」コマンドのアルゴリズムを改良しました.今まではすべてのHTMLタグを列挙してリンクの解析を行っていましたが,新しいアルゴリズムでは正規表現を使って必要最小限のタグだけを判定すれば済むようになっています.
  • 「速報ニュース」に関するクラスをリファクタリングしました.長らく機能を書き足してきた結果ぐちゃぐちゃスパゲティ状態になってしまったソースコードをカプセル化することで見通しが随分改善されました.これにより,今まで澱のように溜まっていた細かいバグが解消されると良いのですが..例えば,なにかの操作を行ったあと,ニュースがリスタートできなくなるといった不具合がなくなることを期待しています.
  • %feedマクロのclipキー(Feed記事の全文取得コマンド)を複数定義できるようにしました.キャプチャしたい箇所が飛び飛びのブロックとして点在する場合や,出版日時や記事内容によってキャプチャパターンが変化するような場合に対応することができます.
  • %feedマクロに新しいサブキーiconを追加しました.文字通り,Feed記事のアイコンを事前に指定することが可能です.
  • 検索式に"!"を使って否定表現をした場合,内部処理にミスがあり,キーワードの先頭部分が欠けてしまうバグを修正しました.
  • 外観設定の色に関する表記をSQDNCCBと同じ方法に変更しました.
  • 起動時のスプラッシュウィンドウを廃止して,メインウィンドウをなるべく早めに表示できるよう工夫を施しました.(定期的に罹患する「スプラッシュウィンドウ不要症候群」が再発しました.気分によっては近い将来にスプラッシュウィンドウが復活するかもしれません.あいかわらず,行き当たりばったりですみませんです.ユーザーのみなさんの毎度のご寛容さに感謝します.)
  • Feedアイテムのテンプレート操作に関わる"Feed"クラスの内容を"Connect_CheckFeed"クラスに融合することにしました.
  • アイテムを選択した状態で「数字キー」を押すと,ワンタッチでアイコンを変更することができるようになりました.
  • Sleipnir 3〜4 RC test8から導入された「お気に入りメニュー」の項目がフォルダの外に登録されてしまう問題の「辻褄」を合わせる操作を追加しました.なぜ「辻褄」という表現をしたかと言うと,favorites.jsonの並びを見てみるとフォルダの外に溢れる状態が正しいのですが,Sleipnir3に読み込まれると何故かきちんと「お気に入りメニュー」フォルダに収まっているのです.つまり,favorites.jsonだけでは自己完結していないため,iCBM3も読み込みの際に「辻褄」を合わせる必要があるわけです.
  • Sleipnir 3〜4 のお気に入りで空のフォルダを読み飛ばしてしまう問題を解決しました.
  • スクラップブックマークの「Google Chrome の更新チェック」用キーワードパターンが変更されたので修正しました.
  • スクラップブックマークの「CNN.co.jp」のFeed記事アドレスの仕様が変更になったので修正しました.

Ver.0.146b

  • Sleipnir 3〜4のブックマークにおいてセパレータを考慮していなかったミスを修正しました.
  • %feedマクロignore文の更新日時判定条件を少し修正しました.これは試験的な修正ですので,具合が悪ければ元にもどすかもしれません.
  • 情報ボックス・ブラウザモードにてアイテムURLへ移動するときの訪問日時スタンプのシークエンスを改良しました.今まではナビゲート完了時でしたが,これからは開始前にスタンプすることにします.これにより,リダイレクトでリンクURLと表示URLが異なることになった場合に同一ページの操作であると判定できなかった問題を解消することができます.
  • Windows7でウィンドウを最小化状態から復帰するとき最前面にならない場合がある不具合を修正しました.
  • 最新のIE9にてJavaScriptが仕様変更されたせいで,コンテキストメニュー用スクリプト「iCBM3:ページ登録.html」に不具合が発生しました.具体的には,表示ページのURLを"external.menuArguments.location"から取得できない問題が発生します.これを解決するため,代替オブジェクト"external.menuArguments.document.URL"を参照する方法に書き換えました.(参考:internet explorer 9 - IE9: Get current url from command bar button - old method broken? - Stack Overflow)
  • デフォルト初期設定ファイルのFirefox 4ブックマーク定義において,プロファイル名が標準的な「default」になっていなかったミスを修正しました.

Ver.0.145b

  • エディタエンジン「Azuki」を最新版(v1.6.2)にリプレースしました.
  • Jsonデータのデシリアライズ方法を改良しました.Google ChromeのブックマークやFirefox 3以降のバックアップブックマーク,更にはてなブックマークのコールバックに関するコードを全面的に修正しています.
  • Firefox 3以降のバックアップブックマークをiCBM3に登録する場合,Jsonファイルを直接登録する以外に,バックアップブックマークファイルが格納されたフォルダを登録しておくと自動的に更新日時の一番新しいJsonファイルを読み込む仕組みを導入しました.
  • Sleipnir3β(test14)のブックマークの読み込みに対応しました.これ以前のバージョンで作成したブックマークを読み込むことはできません.また,仕様がコロコロと変わっているようなので突然使えなくなるかもしれません.その点を充分ご理解頂いた上でお使いください.
  • SleipnirSleipnir2Sleipnir3βの実行ファイルをiCBM3内部で区別しないことにしました.
  • %cycleマクロの引数を「7d(7日)」や「25m(25分)」のように単位付きで設定できるようにしました.
  • 「検索バー」や「情報ボックスのツールバー」,「タグクラウドパネルのツールバー」のように掴んで移動することのできないコントロールにはグリップを表示しないことにしました.
  • はてなブックマークのエントリーページの仕様が改悪されたので,タグ自動取得のためのコールバック処理が面倒になりました.対応していくのが嫌になったのでこの機能を廃止します.JsonやFeedによるコールバックは仕様変更されていないので従来通り問題なく使えます.
  • 「Feed/Podcastをコピー」コマンドが実装されていなかったというトンデモナイ不手際を修正しました.
  • スクラップブックマークのMozilla FirefoxLunascapeの更新チェックキーワードパターンが変更されたので修正しました.

Ver.0.144b

  • 検索バーから「コメントを前進検索」「コメントを後退検索」ボタンを削除して,情報ボックス・エディタパネルに移動しました.更に,エディタパネルに独自の検索テキストボックスを用意しました.つまり,検索バーから「情報ボックスに関する検索」機能を原則として排除することにしました.理由はいろいろありますが,検索バーとエディタパネルが離れていて使いづらかったというが最大の要因です.
  • 検索キーワードが空の状態で検索を行おうとすると,エラーメッセージを表示するようにしました.
  • エディタパネルでコンテキストメニューを使えるようにしました.今更ですが..
  • 置換ダイアログの検索文字列コンボボックスでも,検索バーと同様の「キーワード削除」や「検索オプション入力補助」のためのコンテキストメニューが利用できるようになりました.
  • 終了時の表示状態が「新着項目列挙」や「未読項目列挙」のような更新チェックエントリーに関わる操作だった場合,今までは様々な理由から次回起動時にそれを再現しませんでした.これからはなるべく再現するよう心がけています.この修正によって,「新着項目列挙」や「未読項目列挙」のエイリアスが作成できなかったとい不都合も同時に解消できました.
  • ルートフォルダへのエイリアスが正しく動作しなかったバグを修正しました.
  • 更新チェックでウェブサーバが返してくる更新日時の書式は統一されておらず多種多様です.今までiCBM3はすべての書式をが何がなんでも取得するんだと意気込んでパーサを作成してきましたが,もう限界です.疲れました.これからは方針転換して例外的な書式については,%checkや%feedマクロに新たに追加した「format」サブキーに個別定義をユーザーが作成することにしました.
  • 情報ボックス・ブラウザパネルにおいて「新規ウィンドウを開く」リンクはすべて握りつぶして元ウィンドウにリダイレクトする仕様でしたが,今回からは「ユーザー操作によってポップアップウィンドウを開く」場合はなるべく別ウィンドウで開くように工夫しました.
  • 表示履歴を辿るためのドロップダウンメニューを追加しました.TMN v0.33bの成果を応用して,イマドキのブラウザ風メニューに仕上げています.
  • 今まで表示履歴における「重複を認めない」条件は隣り合う履歴しか加味していませんでしたが,今回の改造から全履歴を対象にすることにしています.
  • 「進む」「戻る」ボタンと新たに追加された「表示履歴ドロップダウン」ボタンをまとめて「辿る」というボタン名で定義できるようにしました.メニューについても同等の定義を行う「GoBF」というコマンドタイプを用意しました.混乱を避けるため,従来どおりの別々の定義方法も残しておきます.
  • TMN v0.34bと同じアルゴリズムを使って,検索コンボボックスやブラウザアドレスボックスの自動幅調整を行うことにしました.
  • メニュー中のアンパサダ文字をキーボードニーモニックに展開しないような工夫をしています.
  • Operaのニュースフィードのフォルダ階層構造に対応しました.いつの間にやら階層構造で定義できるようになっていたんですね.というか,もしかして最初からそうだったんでしょうか?ま,今となってはどっちでも良いことですが..
  • SQDNのWiki風リンク表現で"["や"]"や"|"と言った記号をエスケープしたタイトル文字列を取得するための環境変数"%qt"を用意しました.
  • 新規作成コマンドで「挿入」を選んだときは,選択アイテムの後に作成する仕様に変更します.
  • レスポンスの悪いウェブページを情報ボックス・ブラウザパネルで表示中に「中止」ボタンを押しても,なかなか通常の待機状態に復帰しなくてイライラすることがよくあります.そこで,横着ですが「中止」ボタンを押したら,ツールバーだけはすぐに待機状態に復帰することにしました.これで,無駄な待ち時間を費やさずに次の操作に移ることができます.
  • 情報ボックス・ブラウザパネルのアドレスボックスに,はじめてマウスクリックしたときに限り,URLテキストを全選択することにしました.
  • 情報ボックス・ブラウザパネルのアドレスボックスがリフレッシュされるタイミングを少し前倒しにしました.
  • ブックマークやブラウザのファイルパスに"{...}"という大括弧で囲まれた文字列を含む場合,正しく読み込むことができないバグを修正しました.
  • Genericなコレクションの単純な検索は,なるべくforeachループをやめてFindとExistsコマンドに置き換えています.
  • エディタエンジン「Azuki」を最新版(v1.6.1)にリプレースしました.
  • Azuki」にも正式に「クリッカブルURL」をオフにするプロパティが用意されたので,そちらで機能を完全にオミットしました.

Ver.0.143b

  • SQDNTMNと同じように初期設定が異なれば多重起動を許す仕様にしました.ただし,異なるインスタンスにマウントされた同一ブックマークの同期までは考慮していませんので,その点はご留意のうえお使いください.
  • 上述の仕様変更に伴い,個々のインスタンスを識別できるようにメインウィンドウのタイトル,最小化したときのトレイアイコンのツールチップ,登録ウィンドウのタイトルに「初期設定名」を明記することにしました.
  • コマンドライン引数の書式を変更しました.これにより,従来はコマンドライン引数に「初期設定」と「アイテム登録」オプションを同時に記述することはできませんでしたが,これからはそれができます.つまり,起動時にも外部から「アイテム登録」が行えるようになるわけです.
  • ツールバーに登録するユーザースクリプトの仕様を変更しました.従来はスクリプトへ引数を渡すときは環境変数($URLFILEや$URLLIST)を経由していましたが,これからはブラウザアプリと同じく直接URL列を渡すことになります.
  • 上記の仕様変更に伴い,「登録ウィンドウをクリックしてユーザースクリプトを実行する機能」を廃止します.
  • 旧ユーザースクリプトが誤って実行されるのを防ぐため,"script"フォルダを"scripts"と改名します.そして,新仕様に対応したサンプルスクリプトをそちらに同梱しました.
  • "scripts"や"images"などのフォルダパスの判定をもっと厳密に行うようにしました.
  • テンプレートによる「アンカーコピー」コマンドは,今まで登録できる項目数が5に固定されていましたが,これからは任意の数の項目を登録できるようになります.この仕様変更に伴い,コマンドタイプ"CopyAnchor1〜5"は廃止され"CopyTemplate"が新設されます.
  • Feedやpodcastアドレスをコピーする「Feed/Podcastをコピー」コマンドを追加しました.
  • タグによるアイテム列挙の際,「更新日時」や「訪問日時」で強制ソートする仕様を廃止しました.
  • 「オプション設定|ブックマーク|ホームポジション」の設定を「表示」タブに移動しました.
  • 拡張ブラウザコントロールのAPI関連のコードを全面的に見直しました.
  • 前回の更新で,ブラウザコントロールのDocumentCompletedやNavigatedイベントハンドラーにおいて無駄処理を行わないように課した条件判定が一致しないため,ナビゲーションが完了しない(中止ボタンから更新ボタンに遷移しない)不具合が起こる可能性があります.原因はブラウザコントロール内のイベントハンドラー引数とプロパティでURLエンコードの仕様が微妙にズレているためでした.なんでやねん.信じられへん...ブツブツ.まぁ,文句ばかり言っていてもしかたないので,すごくプリミティブな解決法ですが両者をデコードしてから比較することにしました.
  • Windows7(もしかしたらVistaも)において外部(ブラウザのコンテキストメニューコマンドなど)からiCBM3をアクティベートしようとしても上手く動作しない場合がたまにあります.この現象を詳しく調べてみると,Windowsの仕様で元から最前面にあるアプリがそれを阻止していることがあるそうです.そこで,スレッドのアタッチ&デタッチによって,一時的にその仕様を解除することで解決しました.
  • 「オプション設定|ブラウザ|登録」のリスト最後尾を削除しようとすると自爆してしまうバグを修正しました.原因は単純なタイポだったのですが,こんな単純なミスが数年間見つからずに潜伏していたことにビックリです.
  • 情報ボックス・エディタパネルのシンタックスハイライトや部分更新チェック設定用ソース表示ウィンドウのキーワードハイライトの正規表現にエラーがあった場合のハンドリングが正常に動作していなかった不具合を修正しました.おかしいなぁ,この問題は随分前に修正したはずなのに,全然解決していなかったなんて.俺,そろそろ呆けてきたか??
  • 検索オプション「再帰探索を抑止する」は検索コマンド「子フォルダを展開」&「最近訪問した項目」の実行に対して,いろいろと論理的一貫性の矛盾をきたしてしまうのでこのオプションを廃止することにしました.
  • コンテキストメニューの「ブラウザ起動(OpenUrlWith)」にショートカットキーを定義すると「URL整形の修飾キー」と完全にバッティングしていることを今更ながらやっと気づきました.あぁ〜,当然そうだよなぁ...情けない.というわけで,ショートカットキーの割り当ては廃止しました.
  • Internet ExplorerとMozilla Firefox 3 のコンテキストメニューに登録するJavaScriptのサンプルを添付します.

Ver.0.142b

  • 「%selectマクロ」と「起動時に前回終了時のアイテム選択状態を再現する機能」がコンフリクションを起こしてしまい二重選択してしまうバグを修正しました.
  • ブラウザコントロールのDocumentCompletedやNavigatedイベントハンドラーについて重大な思い違いをしていたことが判明しました.今まで,上記のイベントハンドラーは1ページの表示につき1度しかコールされないものと思い込んでいたのですが,埋め込み要素があるようなウェブページについては何度もコールされるんですね.知らなかった!お恥ずかしい.このことにより致命的なエラーが起こることはありませんが,無駄にボタン状態を更新したりアドレスボックスに何度もURLをセットしていたわけで,そのような無駄処理を修正しました.
  • %feedマクロの整形関数にd(URLデコード)とc(URLエンコード)を追加しました.
  • 環境変数に %du(URLデコードしたURL)と %dp(URLデコードしたPodcastアドレス)を追加しました.
  • スクラップブックマークのOperaの更新チェックキーワードパターンが変更されたので修正しました.

Ver.0.141b

  • 一時期,はてなブックマークのタグを自動収集するためのコールバックAPIが,実時間のエントリーページのコメントやタグなどの内容を反映していない(たぶん,更新が延滞している)場合が多々ありました.現在は安定しているようですが,今後また同じようなことが起こるかもしれません.そこで,タグの自動収集を従来のコールバックAPI(Json)とエントリーページのFeed(Xml)による方法に加え,エントリーページそのもの(html)から取得する方法でも行えるようにしました.でも,はっきり言って激重です.前の2つの方法がどうしても使えないときの非常手段とお考えください.
  • Feed記事の全文取得コールバックを実装しました.%feedマクロのclipサブキーから利用できます.まぁ,世の中には「RSSフィードを全文配信で読む まるごとRSS」なんてサービスもあるので,わざわざiCBM3がこのような機能を用意する必要もないんですけどね.
  • 今まで,検索バー・検索オプションにおいて,例えば"f"を指定するとフォルダを「検索対象」にしたり,"e"を指定するとFeed記事を「対象から除外」したりと動作の方向に一貫性がありませんでした.そこで,なにも指定しないときはとにかくすべてのアイテムを検索対象にして,オプションを指定することで対象を絞るという方針にしました.この方針に従い,オプション"f"は「フォルダを対象から除外」という今までとは真逆の動作になります.ご注意ください.
  • 検索オプション"e"(Feed記事を対象から除外する)を"a"という文字に変更します.
  • 検索オプションから"v"(訪問日時で整列)と"m"(更新日時で整列)を廃止しました.はっきり言って,検索後の整列なんて自分でカラムクリックすれば済む話なので,わざわざ検索オプションにする必要はないですね.
  • 新たな検索オプション,"s"(改行も一般文字とみなす),"m"(各行で^と$を認識する),"b"(末尾から検索を実行する),"o"(実行ファイル・メモ・エイリアスを対象から除外する),"e"(再帰検索を抑止) を追加しました.
  • 今まで,検索対象のカテゴリーとして「フォルダ」と「Feed」を同等に扱かってきましたが,それはプログラミング上の都合であるだけでユーザーの趣向とは異なるものなのかもしれません.そこで,「Feed」は「一般アイテム」と同じ検索対象カテゴリーに属するとみなすことにしました.
  • ローカルアイテムに関しては以前から「複数キーワードを論理演算子で結合して検索」することができましたが,情報ボックスに表示されたコメントの検索に関してだけは「複数キーワード」に対応していませんでした.今回,SQDNTMNと同じアルゴリズムを採用することでそれを実現しました.
  • SQDNTMNと同様に検索オプションをコンテキストメニューからセットできるようにしました.
  • %selectマクロに新たな引数"-3"(最後尾を選択)を新設しました.
  • マクロ引数に記述される正規表現のオプションは今までIgnoreCase と Singlelineに固定されていましたが,記述されたパターンから最適なオプションを探す仕組みにしました.
  • ツールバーのアイコン参照方法を変更しました.
  • ブラウザパネルの「更新」と「中止」ボタンをひとつにまとめました.
  • エディタエンジン「Azuki」を最新版(v1.6.0)にリプレースしました.
    • 最新版の新機能「クリッカブルURL」は本ソフトウェアには必要ないので強制的にオミットしました.
    • 最新版の新機能「カップル括弧強調表示」のためのパラメータを外観設定ファイル(Appearance.XML)に追加しました.

Ver.0.140b

  • ブラウザパネルに表示する整形テンプレートの記述法に無駄が多いので仕様を変更しました.HTMLの大枠を決めるテンプレートは共通のものを使用し,ボディ部分だけ用途によって差し替える方式になります.また,テンプレートの入れ子構造を最大5階層まで許可することにしました.
  • ブラウザパネルに表示されるFeed記事やスナップショットは,今までは特定のアドレスを持たない(about:blank)仕様でしたが,これからは実体のあるローカルファイルとして扱うことにしました.その結果,今まで不明確だった「進む」「戻る」「起点」の動作がスムーズになることが期待されます.
  • ローカルアイテムの検索条件に,Feed記事を検索対象から除外するオプション"e",検索結果を訪問日時で整列するオプション"v",検索結果を更新日時で整列するオプション"m"を追加しました.
  • タグクラウドから特定のタグを選択して表示する場合,訪問日時で結果を整列することにしました.(この仕様は,隠しパラメータでいろいろと変更することも可能です.)
  • HTTP圧縮された通信に対応しました.と言うか,通常はContent-Encodingに何も指定しなければ無圧縮の内容が返信されるはずなのですが,とあるサイトが強制的にHTTP圧縮した内容しか返してくれないという難題に直面したため改造をしたわけです.なんでや.
  • %nc環境変数を作成する手順を修正しました.具体的には,マクロを取り除く→トリミング→平文/HTML変換の順に処理します.これにより,なるべくコンパクトな返り値が得られるはず(?)です.
  • 環境変数%pdを追加しました.更新日時が存在するアイテムにはそれを,存在しない場合は訪問日時をキャプションつきで返します.
  • 環境変数%xeと%xpを追加しました.前者は実行ファイル(iCBM3.exe)が存在するフォルダへのローカルリンク,後者は初期設定ファイル(iCBM3.XML)が存在するフォルダへのローカルリンクを返します.
  • ステータスバーに表示される速報ニュースのタイトルやブラウザパネルのステータスバー表示テキストに'&'文字が含まれる場合,ニーモニックとして表示されてしまう不具合を修正しました.(CCB v0.49bと同じ処置)
  • ブラウザパネルのスナップショット用整形テンプレートを以下のごとく改良しました.
    • リツィート数表示(Topsy
    • ブックマーク数表示のレイアウト変更
    • はてなやdeliciousなどのアイコンはローカルから取得する
  • Podcast再生用の埋め込みプレーヤーをパッケージに同梱することにしました.

Ver.0.139b

  • Jsonライブラリーを「LitJSON」にリプレースしました.本ソフトの要求としては一番プリミティブなパーサが必要なだけですので,今まで使っていた「Json.NET」はオーバースペックな仕様でした.ついでに,SQLiteライブラリーもコンパクトなものに置き換えたいのですが,なかなかコンパクトなライブラリが見つかりません.
  • 訪問日時スタンプのアルゴリズムを元にもどしました.つまり,一度訪問したFeed記事はブラウザ表示を行わない限り訪問日時をスタンプしなおさないという規則にもどります.
  • 更新チェックが開始されたら,ステータスバーのツールチップを強制的に閉じることにしました.
  • 前回,スプラッシュウィンドウを表示するか否かをフラグ化しましたが,表示されないときがあまりにも淋しく閑散としてしまうので,元どおり必ず表示する仕様にもどしました.
  • 他のアプリケーションがフルスクリーンモードの場合は,通知ウィンドウを表示しないオプションを新設しました.
  • %selectマクロを新設しました.フォルダを開く際,リストのどのアイテムを選択するかを指定することができます.ただし,既に選択がされている場合は,そちらの操作が優先されます.
  • 履歴列挙や検索結果などを表示する際,リストの先頭項目を自動的に選択するようにしました.ただし,先頭項目が未読のFeed記事の場合は,タイムスタンプを勝手に付けられるのを避けるため,選択を見送るようにしています.
  • アドレス(URL,XML,Podcast,Path)に関する置換コマンドを新設しました.ちなみに,当サイトの移転に伴いリンク切れになったFeed記事のURLを修正するためにこのコマンドを新設しました.たぶん,この用途以外にはまったく使い道がないでしょう.
  • 「未読列挙」などのモードでウィンドウを最小化している間に,自動更新チェックが行われ新着項目がみつかると,勝手にウィンドウの最小化を解除してしまうバグを修正しました.

Ver.0.138b

  • 今回から最新の.NET Framework 4でビルドしています.mc3もついでにリビルドしています.
  • はてなブックマークのタグを自動収集するためのコールバックを完全に別系統のスレッド(タイマー)で動作させる仕様にしました.今まで,中途半端に「更新チェック用スレッド」に相乗りしていたおかげで,いろいろとおかしなことが起きていたのかもしれません.あくまでも推測の域の話ですが・・
  • 通知ウィンドウを閉じるときは,できるだけアニメーションを行うようにしました.実は,とある人から面と向かって指摘されるまで,これを見直そうなんて全く思いも尽きませんでした.やっぱり,何でも生の声というのは重要です.
  • 更新チェック中にステータスバーの最新項目メニューの値がリアルタイムにインクリメントされる仕掛けを復活させました.随分前に廃止した機能を復活させました.これも上記同様に直接のサジェスチョンによるものです.
  • 更新チェック中にステータスバーの最新項目メニューのツールチップは表示しないようにしました.
  • 更新チェック終了時にリストの表示内容が「新着項目列挙」や「未読項目列挙」などだった場合は,最新の新着項目が表示されるようにリフレッシュするようにしました.
  • 最近のPCは性能も向上し,.NETもコードの最適化が施されるようになったためか,起動にさほど時間がかからなくなりました.そのため,スプラッシュウィンドウを表示する意味がない場合もあるようです.そこで,初期設定ファイルにフラグを設け必要な場合のみ表示する仕様にしました.
  • インターネット検索をブラウザボタンから実行できなかったバグを修正しました.

Ver.0.137b

  • 外観設定ファイル(Appearance.XML)の書式が変更されたり,パラメータの追加削除が行われると,今までは有無を言わさず新ファイルに置き換えていました.そのため,ユーザーが個別に設定したパラメータがすべて吹っ飛んでしまうという欠点がありました.そこで,外観設定についても初期設定(iCBM3.XML)と同じマージアルゴリズムを導入することにしました.これで,ユーザー設定パラメータをできる限り温存することができます.
  • メニュー設定ファイル(Menu_FolderTree.XMLなど)についても上述したような同じ不都合が存在するのですが,こちらは階層構造の定義なので簡単にマージするわけにはいきません.仕方がないので,これからは一切ファイルの置き換えをしないことにしました.
  • 設定ファイルを情報ボックス|エディタパネルで手動編集したときもバックアップファイル(*.BAK)を作成することにしました.
  • Ver.0.132bにて,検索バーのドロップダウンメニューへアイコン表示するのを廃止しましたが,なんだかやっぱり見た目が淋しいので,方針変更して復活させることにしました.
  • 検索履歴を削除する用途のコンテキストメニューを導入しました.
  • 検索履歴への登録は,キーワードが同じならば検索条件が異なっても同じとみなすことに(要するに以前と同じに)しました.
  • 上記機能を実現するために作成したカスタムコントロール(画像付きコンボボックス)は,フォント書体やサイズが変化しても,なるべくアイコンやテキストが中央に表示されるように工夫をしています.
  • 「タイトルを置換」「コメントを置換」コマンドも,「検索」コマンドと同様にキーワードと検索条件をまとめて記述する仕様にしました.
  • はてなブックマークのタグを自動収集するためのコールバックを,はてなAPI(JSON)からエントリーページのFeed(XML)を使用する方法に乗り換えることにしました.一般的には,XMLよりJSONのほうがデータサイズも小さく扱いやすいという認識でしょうが,iCBM3で採用しているJSONライブラリーは読み飛ばしやトランケーションができないので,ブックマーク数が多い場合は非常に処理が重くなってしまうという欠点があります.一方,ビルトインのXMLライブラリーにはそのようなことがないので処理の高速化が望めます.
  • 現在,はてなブックマークのタグを自動収集するためのコールバックに関わるパラメータ(hatena_api,hatena_min)は%feedマクロ内に記述しています.しかし,このやり方だと%feedマクロの処理ごとにパラメータを翻訳していることになるので効率的ではありません.そこで,これらのパラメータを廃止して改めて%feedマクロとは独立したパラメータとして扱うことにしました.
  • 検索バーで検索条件フラグをなにも指定しなかった場合,勝手に特定のフラグがセットされた状態になってしまうバグを修正しました.
  • 前回導入した新しい検索キーワード連結の演算子(||, &&, !)のせいで,旧演算子(OR, AND, NOT)が誤って解釈されるようになってしまったバグを修正しました.
  • Ver.0.136b差し替え版のリリースノートで述べた「FirefoxサイトのHTMLヘッダ書式が変更されたためエンコードを自動検出できない」問題を根本的に解決するため,自動検出ルーチンそのものを書き換えることにしました.しかしそれにしても,こんなMETAタグの書き方はFirefoxサイト以外見たことないんだけどなぁ..
  • エディタエンジン「Azuki」を最新版(v1.5.7)にリプレースしました.

Ver.0.136b

  • 更新チェックデータベース(updates.DB)を任意の場所に保存するオプションを用意しました.この仕様変更を見ただけでは「ナンノコッチャ」状態だと思いますが,Dropboxのような同期系オンラインストレージを使ってiCBM3の内容を同期するための非常に大切な布石です.詳しくは,付録8をご覧ください.
  • 検索バーの条件スイッチは,アイコンボタンを廃止して,キーワード内にパラメータとして記述する仕様に変更しました.これは使い勝手から言うと明らかに退化しているのですが,今後新たな検索条件が付け加えられたり,不必要な条件が削除されたとき,こちらのほうが簡単に対応できます.
  • 検索キーワードの結合演算子(AND,OR,NOT)をC言語式の記述(&&,||,!)もできるようにしました.
  • Safari5がリリースされたにもかかわらず,4以降のバイナリーフォーマットの読み込みが未だにできないため,3までのテキストフォーマットにしか対応していません.こんな状態で「Safariに対応しています」という看板を掲げているのは,はっきり言って有名無実なだけで紛らわしいので,一旦廃止することにしました.バイナリーフォーマットの読み込みがきちんと対応できるようになったら,改めて復活させようと思います.
  • 情報ボックス|タイトルバーのフォントを独立パラメータとして設定できるようにしました.また,タイトルバーが複数行になるときの最大高さも設定できるようにしました.
  • 情報ボックス|タイトルバーのテキストでアンパサンド文字 をアクセスキーの接頭文字として解釈するオプションがオンのままだったポカを修正しました.
  • ツールバー上のコンボボックス,テキストボックス,数値入力コントロールのフォントを独立パラメータとして設定できるようにしました.
  • ブックマーク入出力時のエラーメッセージを強化しました.
  • ブックマークのエクスポートが完了したらメッセージをステータスバーに表示することにしました.あれ〜,おかしいな?こんな初歩的なことを今までやってなかったなんて・・・
  • 「はてなブックマークからタグを取得中の記事」は通知ウィンドウで「接続中アイコン」を表示していましたが,それほど同時性を要求しないので「静的な記事アイコン」に統一することにしました.
  • 詳しい原因は不明ですが「タイマーによる自動更新チェック」を繰り返すと各チェックの間隔に齟齬が生じる場合があるようです.この不具合はWindows7を搭載しているニューマシンでのみ確認されたので,「タイマーシーケンスのかぶり」や「丸め誤差の差異」を疑って,周辺のコードを書き直してみました.1週間ほど新コードで動作チェックを続けていますが上記の不具合は発生しなくなったようです.
  • 通知ウィンドウを表示中にエラーが起きると,すべてを巻き込んで自爆してしまう仕様はエレガントではないので,通知ウィンドウ周辺のみの局所的爆破で済むようにリカバリーアルゴリズムを書き換えました.
  • IE|お気に入り内のフォルダはファイル名と表示名が異なる場合があります.それを制御しているのはシステム隠しファイル「desktop.ini」なのですが,私はその取り扱い方法を完全に間違えて理解していたようです.XPマシンではたまたま正しい値を取得できていましたが,Windows7で不整合を発見して間違いを確認しました.正しい方法によるリソースの読み込みを実装しなおしました.
  • エディタエンジン「Azuki」を最新版(v1.5.6)にリプレースしました.
  • Scrap.OPMLからSafariの更新チェックを削除しました.

Ver.0.135b

  • Windows 7では,.NET内蔵の方法でリスト整列を続けると整列方向アイコンの表示が乱れる(あらぬアイコンが表示されてしまう)バグが発生します.そこで,内蔵コマンドを諦め,WindowsAPIを使うことにしました.
  • Windows 7では,XPで問題なく綺麗だったレイアウトが崩れることが多々あります.各OSのテーマごとに設定されたデフォルトフォントの表示サイズが微妙に異なるため歪みが生じるのでしょう.そこで,テーマの雰囲気を壊してしまうのであまりやりたくないのですが,明示的にフォントを指定することでレイアウト崩れを防ぐことにしました.
  • Windows 7では,IEのお気に入りをレジストリから読み込もうとすると自爆します.いろいろ調整してみましたが一筋縄では解決しないようなので,当面はこの機能をオミットすることにします.
  • 「オプション設定」のブックマークやブラウザファイルパス簡略表記に"{ProgramFiles}"を追加しました.32bitOSでは"C:\Program Files"に,64bitOSでは"C:\Program Files (x86)"に展開されます.
  • 「登録ウィンドウ」はアクティブでないとき半透明になるオプションを用意しました.
  • 「ブラウザ訪問履歴コマンド」の表示条件を「ブックマークファイルの存否」としなければいけないところを「履歴ファイルの存否」としていたバグを修正しました.過去に同じミスをやっているにも関わらず,またやってもた..あぁぁ..
  • エディタエンジン「Azuki」を最新版(v1.5.5)にリプレースしました.

Ver.0.134b

  • 「更新チェック用スレッドプール」に関する不具合がまだ発生するケースがあるようなので,更にロールバックを行いv0.131b3と完全に同じ状態にまで戻しました.
  • ブックマークやブラウザのファイルパスの簡略表記法を変更しました.この仕様変更に伴いバージョンアップしてお使いの方はすべてのブックマーク&ブラウザがアンマウントされます.ご不便をおかけして申し訳ありませんが,手動でマウントしなおしてください.よろしく,お願いします.
  • ブックマーク識別タイプ「Opera10」を廃止して「Opera」に統合しました.
  • 「Opera10以前と以降」や「Firefox3以前と以降」の訪問履歴列挙コマンドをそれぞれひとつのコマンドに統合しました.
  • 「Opera10形式で保存」コマンドを廃止して「Opera形式で保存」コマンドに統合しました.
  • ツールバーの「新規項目を作成」「新規エイリアスを作成」「新規フォルダを挿入」「セパレータを挿入」コマンドをひとつのスプリットボタンに統合しました.
  • ツールバーの「選択項目を編集」「選択項目を変換」コマンドをひとつのスプリットボタンに統合しました.
  • Podcastアイテムの表示テンプレートで使う埋め込み形MP3プレーヤーを「Google Reader MP3 Player」から「EMFF (Easy Musicplayer For Flash)」に変更しました.
  • 今までFeed記事に訪問日時をスタンプするのは初回訪問時のみとしていましたが,この仕様だと頻繁に情報ボックスに表示される項目であるにも関わらず「最近訪問した項目」でリストアップされないという矛盾が生じてしまいます.そこで,訪問日時のスタンプは情報ボックスに表示されるたび毎回行うことにしました.
  • 検索バーの検索条件「フォルダ」の初期値はオフにしました.
  • %cycleマクロの引数がゼロ以下の値のとき,アイテムのツールチップに表示される「次回チェック時間」がとんでもないことになるバグを修正しました.
  • Podcastオブジェクトは偶にメディアのアドレスのみで記事URLが存在しない場合があります.このようなPodcast記事をiCBM3に取り込んで編集を行おうとすると,URLが存在しないので編集できないと言ってお節介なエラートラップに引っかかります.それでは都合が悪いので,Podcastアイテムに限りエラー判定条件を緩めることにしました.
  • エディタエンジン「Azuki」を最新版(1.5.4)にリプレースしました.
  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.66.0)にリプレースしました.
  • JSONライブラリー「Json.NET」を最新版(Json.NET 3.5 Release 7)にリプレースしました.
  • スクラップブックマークのOperaの更新チェックキーワードパターンが変更されたので修正しました.

Ver.0.133b

  • 前バージョンで「更新チェック用スレッドプール」のアルゴリズムを一新しましたが,動作が不安定になるケースがあるようです.現時点では根本的な原因の究明には至ってません.そこで,暫定的に「スレッドプール」を安定版v0.131b3のものにロールバックします.
  • 検索バーの検索方法メニューのコントロールをSplitButtonからDropDownButtonに変更しました.
  • 「アイテム編集」ダイアログから「次回チェック日時」部分を独立したコマンドにしました.複数のアイテムのチェック日時をまとめて調整することができます.

Ver.0.132b

  • 検索バーを全面的に書き換えました.
    • カスタムコントロールに飽きたので,標準的コントロールのみで構成することにしました.
    • いくつかの検索条件を廃止しました.
    • 日時入力でDateTimePickerを使うのは,結局のところ入力手順が増えるだけなので廃止しました.
    • エディタテキストの検索でも共通のキーワードや検索条件を利用できるようにしました.
  • Podcastアイテムを,埋め込み型MP3プレーヤー(Google Reader MP3 Player)で再生するためのテンプレートを用意しました.また,プレーヤーにPodcastアドレスを渡すための環境変数を新設しました.
  • ウェブページのスナップショット表示用にSearchPreview(旧GooglePreview)を使ったテンプレートを用意しました.ただし,この方法ではホスト名単位でしかスナップショットが得られないので,別ユーザーサイトでも同ホストに属している場合は同一画像になってしまうという欠点があります.そのため,旧来のMozshotを使ったテンプレートも残しています.
  • フォルダツリーやアイテムリストに対するマウスのオートフォーカス仕様を変更しました.変更点は多岐にわたりますが,最も大きな違いは,オートフォーカスに追従して情報ボックスの表示を切り替えないようにしたことです.旧来の仕様に慣れているユーザーの皆さんにとっては,勝手がかなり違ってくるので戸惑われるかもしれませんがご了解ください.ツールバーのボタンの状態は従来どおりオートフォーカスに追従します.
  • アイテムをロックする機能を廃止しました.正直言って,導入して以来1度も使ったことがなかったので,ばっさり切り捨てることにしました.
  • %cycleマクロ引数に実数を入力できるようにしました.時間より小さな単位の入力ができるようになります.
  • %feedマクロにmodifiedサブキーを新設しました.更新日時を取得する要素をユーザーが指定できるようになります.
  • 情報ボックスのパネル切り替え(エディタパネルとブラウザパネル)において,表示がなんだか痞える感じがするので,一般的なSuspendLayoutとResumeLayoutで囲む定石をやめました.
  • 情報ボックスのタイトルがデフォルトフォントサイズ換算で3行以上になった場合は,自動的にスクロールバーが表示されるようにしました.
  • 自動更新チェックタイマーの起動シーケンスを改良しました.従来のアルゴリズムではチェック開始時間に誤差が生じる場合がありましたが,新しいアルゴリズムではそれをほぼ解消できたと思います.
  • 前バージョンで,「はてなブックマークのAPIからのコールバック」に関わる処理を暫定的にメインのスレッドプールとは独立させていましたが,根本的な解決策を思いついたので元にもどします.
  • ブラウザ履歴アイテムは共通の「時計」アイコンで表示することにしました.また,情報ボックスには該当URLのスナップショット(SearchPreview)を表示するようにしました.
  • タグクラウドパネルの最小値と間隔値の設定コントロールを,DropDownMenuからNumericUpDownに変更しました.
  • ブックマーク読み込み時に更新チェック用データベースとアイテムとのバインドを効率的に行うため,チェックアイテムは必ず%checkマクロが宣言されていなければならない仕様にしました.部分チェックに関しては必然的に%checkマクロは宣言されているので問題ありませんが,全体チェックに関しては必ずしもマクロが宣言されているとは限らないので書き換えが必要になるかもしれません.
  • SQLiteコマンドのクエリー記述部分が,文法的に間違ってはいないが,見た目が凄く汚かったので整理しました.
  • すべてのDictionaryクラスの検査手段を,ContainsKeyからTryGetValueメソッドに書き換えました.
  • OPML形式のブックマークを出力する際,titleとtext属性は同じ内容なので両方保持するのは不経済なので,text属性だけにしました.
  • 親ブックマークの同期スイッチがオフなため編集不可状態のチェックアイテムやFeedは,原理上「次回チェック時間」も編集できないのですが,他のチェック時間と揃えることができないのは不便なので,例外的に編集できるようにしました.
  • Atom形式のFeedのCategory要素term属性から値を取得できなかったバグを修正しました.
  • エディタエンジン「Azuki」を最新版(v1.5.3)にリプレースしました.

Ver.0.131b3

  • b2で修正した「はてなブックマークのAPIからのコールバック」に関わる処理で未だ不具合が発生している模様です.そこで,この処理に関しては「更新チェックのスレッドプール」とは独立したスレッドで動作させる仕組みにしてみました.この方法だと不具合は起きないようです.でも,スレッドプールの中で走らせると何故問題が起きるんでしょう?謎です.
  • PodcastのFeedには,メディアアドレス(MP3)のみでウェブページアドレス(URL)を配信しないサイトが偶にあります.このような場合,過去の配信であるかをURLから判断することができないので,更新チェックのたびに過去記事を新着とみなしてしまう問題がおきます.そこで,%feedマクロのignoreキー引数に"podcast"(Podcastアドレス)を指定できるようにして問題を回避するようにしました.
  • はてなブックマークのAPIからのコールバックを使って手動でタグを再収集する際,ゴミ箱内のFeedからでも実行できてしまうバグを修正しました.

Ver.0.131b2

  • はてなブックマークのAPIからのコールバックからJSONデータを受け取るときに,近隣のFeed記事のタグが混線してきてしまうバグを修正しました.もしかしたら,まだ直ってないかも.ご注意ください.

Ver.0.131b

  • マクロを整理統合しました.特に,更新チェックとFeedに関わるマクロは大幅に変更されています.詳しくは「iCBM3 マニュアル」を参照してください.
  • マクロの整理統合に伴い,「マクロ命令解析部」の見直しも行いました.今までは記述されたすべてのマクロを配列に展開して命令を実行していましたが,新しい方法では必要最小限の展開しか行わない仕組みにしました.大幅なスピードアップが望めます.
  • Feed記事などをブラウザパネルに表示するときのHTMLテンプレートを,外観設定ファイルに複数登録することができるようになりました.各Feedアドレスごとに好みのテンプレートを使い分けることができます.さらには,Feed記事以外でもテンプレート整形してブラウザパネルに表示することができます.
  • マクロの整理統合に伴い,機能がダブるいくつかの環境変数を廃止しました.
  • エイリアスパスの書式を刷新しました.新しい書式はマクロと同じ記法になります.そのため,前バージョンの「ホームポジション」や「エイリアス」アイテムは使えなくなるので,手動で書き換える必要があります.
  • 初期設定のレイアウトに関わるパラメータをすべて外観設定ファイルに移動しました.また,いくつかのパラメータ名称や表記を変更しました.
  • ツールバーのボタンレイアウトの表記は,今まで「一文字」で表していましたが,非常に判りづらいので,「二文字以上の単語」で表現することにしました.
  • ツールバーやメニューなどのコマンドに関わるアイコンは,実行ファイルのリソースに収納することにしました.各種アイテムのアイコンは,今までどおり外部ファイルとして起動時に読み込まれます.
  • imageフォルダ内の画像ファイルを,種別ごとにフォルダ分けして配置することにしました.
  • 「更新チェック解除」・「次を検索」・「前を検索」コマンド,およびエラーアイテムのアイコンを変更しました.
  • Sleipnir3のサポートを廃止しました.いつまで経っても進展がなく「張子の虎」状態なので,正式版が出るまで待つことにしました.
  • XML形式の古い更新データベースのサポートを廃止しました.
  • ツールバーの「整列」ボタンを廃止しました.ただし,整列を「元に戻す」機能だけは有用なので,代替UI(リストのカラムヘッダを「シフトキー」を押しながらクリックする)で同機能が動作するように残しています.
  • ツールバーの「チェック結果を列挙」と「種別で列挙」ボタンのコマンド群をまとめて「項目を列挙」ボタンに統合しました.
  • ツールバーの「項目の列挙」「訪問履歴を表示」「選択項目を削除」「Podcast」「各種設定」ボタンをスプリットボタンに変更しました.これにより,ワンクリックで上記の既定コマンドを実行することができます.
  • 情報ボックスのタイトルに親フォルダ名を表示しないことにしました.
  • %dynamicマクロの廃止に伴い,このマクロを定義されたアイテムの文字色を変更するオプションを廃止しました.
  • Podcastを再生したら訪問日時をスタンプすることにしました.
  • 複数アイテム編集時はマクロメニューを無効にすることにしました.
  • 日時の表記を「年月日時分」に変更しました.
  • 初期設定ファイル(XML)の読み込み方法をXmlTextReaderからDOMによる方法に変更しました.
  • 「チェック日時の編集」コマンドを「アイテム編集ダイアログ」に統合しました.
  • 手動で更新チェックを行うときは,事前に「eTag」をクリアする仕様を変更しました.
  • 情報ボックス・ブラウザパネルのステータスバーは必要なときだけ出現する仕様なのですが,ブラウザ下部のリンクにマウスを重ねるとステータスバーがバタバタと現れたり隠れたりする「発振状態」に陥ってしまうことがあります.というわけで,変に凝らずに常時表示することにしました.
  • 情報ボックス・エディタパネルとソースウィンドウの装飾を,「TMN」と同じくらい細かく設定できるようにしました.また,ハイライトの初期化のアルゴリズムがまわりくどかったので改良しました.
  • オートフォーカスの仕様を少し修正します.ツリーやリストのアイテムが選択されていない場合は,フォーカスは移動するけど情報ボックスの表示はスイッチしないことにしました.
  • プログラムから%tagsマクロへタグを読み書きする際,ダメ文字のエスケープ・アンエスケープが不完全だったので修正しました.
  • 更新チェックに関わるマクロのパラメータを編集したら,自動的に再チェックを行うはずが,条件によっては上手く機能しない場合があるバグを修正しました.
  • 所定位置にある他ユーザーのSleipnir2ブックマークをマウントしようとすると拒絶されてしまうバグを修正しました.
  • 情報ボックス・ブラウザパネルでPDFを表示した後,アドオンがゾンビプロセスとしてメモリに残ってしまうバグを修正しました.
  • Firefox 3へURLを送ったときに,ブラウザウィンドウが最前面にはなるが,フォーカスされなかったバグを修正しました.
  • ツールバーのドッキング位置を次回起動時に覚えていなかったバグを修正しました.
  • 「タイトルを置換」「コメントを置換」コマンドで,実行回数(コンボボックスの履歴)が既定数を超えたとき自爆してしまうバグを修正しました.
  • 情報ボックス・エディタパネルのリンクテキスト機能は前回廃止したのにも関わらず,サポートルーチンがソースコードに残っていた不始末を修正しました.
  • はてなブックマークのAPIからのコールバックでJSONデータを受け取るときに時々エラーが発生することがあります.タイミングの問題なのか,解析方法に問題があるのか,原因は今のところわかりません.本バージョンでも,鼻薬をかがせる程度の小細工をしてみましたが,根本的な解決には至ってないようです.

Ver.0.130b

  • Lunascape6のブックマーク読み込みに対応しました.今回,Lunascapeブックマークの読み込み方法を抜本的に見直しました.今後,バージョンアップで新しい要素が追加されても,基本的にiCBM3側では修正をする必要なく対応していけるはずです.(希望的観測ですが..)
  • Lunascapeからドラッグ&ドロップされたデータは,今まで"Lunascape2CopyData"型で受け取っていましたが,IE等と同じ"FileGroupDescriptorW"や"FileGroupDescriptor"型で受け取ることにしました.ただし,Lunascapeから渡ってくるこれらのデータは,IEと異なり若干クセがあるので少し工夫が必要でした.
  • 情報ボックスのエディタパネルで,URLをリンクテキスト化するオプションを廃止しました.編集中に誤ってクリックするとURLを開いてしまうのが,とてつもなく鬱陶しいのでやめました.
  • 情報ボックスのエディタパネルなどのエディタエンジン「Azuki」を最新バージョン(1.5.0)に差し替えました.更に,1.5.0で新しく導入された機能を使って,以下のような変更を施しました.
    • 水平ルーラーと文末記号を表示することにしました.
    • 編集が行われた行を表すダートバーを表示することにしました.
    • 行間と上・左のマージンを調整しました.
  • スクラップブックマークでリンク切れや更新チェックのキーワード切れになった項目を修正しました.

Ver.0.129b

  • Opera10に対応しました.実のところ,10になってもブックマーク・履歴・ニュースFeedのフォーマットは殆ど変わっていません.ファイル名や配置が微妙に変更されただけです.
  • はてなブックマークの各エントリーに付けられたタグ情報を取得するAPIのJSONファイルのフォーマットが変更されて,%hatenatagsマクロがうまく動作しなくなったバグを修正しました.また,2009/8/24に「高速レスポンスAPI」も利用できるようになったので,ユーザーが用途に合わせて「通常版」と「高速版」を選択できるようにしました.
  • %hatenatagsマクロで取得したタグは,チェックした時点での集計で固定されてしまうので,その後に被ブックマーク数が増えた場合に必ずしもトレンドを反映しているとは言えません.そこで,これらの記事についてタグを再サンプリングする機能を設けました.
  • Feedアイテムに"%view[article]"のように引数付きで宣言すると,傘下の記事アイテムを情報ボックス・ブラウザパネルで表示するようにしました.
  • 情報ボックスのエディタパネルで編集をしている最中,オートフォーカス機能が働いていると,マウスカーソルが移動したとき別コントロールにフォーカスが奪われてしまうのが非常に鬱陶しいです.そこで,エディタパネルのテキストが編集されたら,オートフォーカスを一時的に禁止することにしました.ブラウザパネルについても同様に,ページ内リンクを踏んだ場合は,オートフォーカスを一時的に禁止することにしました.
  • 情報ボックスとタグクラウドのツールバーにもスキン画像を適用することにしました.
  • 情報ボックスに表示するパネルが何もないときの背景色をユーザーが設定できるようにしました.
  • 情報ボックスにエディタパネルやブラウザパネルをはめ込む際に,今まで後にサイズを調整していましたが,前に調整を行ってからはめ込むことにしました.
  • 情報ボックス・エディタパネルのライブラリーAzukiを最新バージョン(1.4.1)に置き換えました.
  • 情報ボックス・ブラウザパネルのステータスバーは,Google Chromeのように必要なときのみ表示するようにしました.ちょっと,バタバタして五月蝿いかな?
  • 「前回チェック日時を編集」コマンドを実行する際,フォルダを選択すると初期値が表示されなかったのですが,これでは使い勝手が悪いので現在日時をセットすることにしました.
  • 手動で更新チェックを実行する場合は,タイマーチェックの周期を乱さないようにするため,「前回チェック日時」をスタンプしないようにしました.
  • 「別形式で保存」する際,エイリアスアイテムを展開する機能がまったく働いていなかったバグを修正しました.原因は,基本アルゴリズムをかなりの手抜きやっつけ仕事で作成したため,ある機能の仕様変更をしたときに完全に無反応状態になったようです.お恥ずかしい.今回,根本から作成しなおしたついでに,エイリアス展開した中のエイリアスは展開しないというフェイルセーフ機能も盛り込みました.これは,エイリアスが無限チェーンとなるのを避けるためです.
  • ブックマークを読み込む際,重複するFeedが見つかった場合,後読みのFeedはエイリアスに置換されるのですが,その書式が古い形式のままだったため機能しなかったバグを修正しました.
  • IEのリンクバーの名称を調査するためレジストリを読み込むのですが,この操作が完結しない場合,今までは自爆するしかなかったのですが,強行突破することにしました.まぁ,IEのリンクバーを認識しなくなるという問題は残りますが,自爆するようにはマシでしょう.
  • IEのFeedを読み込む前にIEのバージョンチェックをするのですが,IEが所定の位置にないと自爆するというとんでもないバグがあったので修正しました.
  • Feed記事の内容をXML要素から読み込む際,「教えて君.net」ではcontent要素の中に複数の"<![CDATA[...]]>"タグを羅列するというちょっと変わった記法をしています.こんな書き方は文法的に許されるのでしょうか?..私の無知だけかもしれませんが..とにかく,iCBM3でも読み込めるようにしました.
  • 情報ボックス・エディタパネルのリンクテキストを認識するための正規表現でチルダー文字"~"を考慮していなかったミスを修正しました.
  • 「IE形式で保存」する際,フォルダ内に同名タイトル(インターネットショートカットファイル)が存在すると上書きしてしまうバグを修正しました.
  • 整形テンプレートの環境変数"%eu"と"%et"がうまく動作していなかったバグを修正しました.
  • ブラウザパネルではてなブックマークDeliciousの被ブックマーク数は,今まで画像として表示していましたが,レスポンスが悪かったりサービスが終了?してしまったりと散々な状態でした.そこで,JavaScriptのコールバックAPI(JSON)を使って文字列として表示することにしました.レスポンスも上々だと思います.

Ver.0.128b

  • .NET Frameworkのバージョンを3.5に引き上げてリビルドしました.
  • 初期設定のブックマークやブラウザのデフォルトパスをVista環境でも用意することにしました.これにより,ブックマークなどのパスをXPと同様に簡略パスで表記することができます.
  • 速報ニュースは全ての新着Feed記事とチェックアイテムを時系列に整列した順序で表示することにしました.更に,それらの整列は更新チェックが行われた直後に下拵えを済ませておきます.
  • メインウィンドウが最小化状態(システムトレーアイコン)から復活するとき,速報ニュースは必ず最初の記事やアイテムにリワインドされていましたが,最小化直前のニュースからリスタートするようにしました.
  • 通知ウィンドウの表示内容は,今までページをめくるたびに再構築していましたが,ウィンドウを開く瞬間に全て用意してしまうことにしました.その結果,今までと異なり,通知ウィンドウを閉じるまでは既に表示済みの項目であっても,通知ウィンドウに残る仕様となります.
  • マクロ引数内で文字'%'を使う場合はエスケープする必要がなくなりました.ただし,既に記述されたマクロの互換性を保つため,エスケープされていても正常に動作します.
  • 更新チェック日時の「丸め誤差補正」は,あんまり意味がないようなので廃止しました.
  • Firefox 3のブックマークを登録する際,所属するプロファイルフォルダ名称が取得できないと自爆してしまうバグを修正しました.
  • 情報ボックス・エディタパネルのリンクテキストをキャプチャするための正規表現で,'#'を考慮していなかったミスを修正しました.
  • スクラップブックマークのOperaの更新チェックURLが無効になったので,新しいアドレス&キーワードパターンに差し替えました.

Ver.0.127b

  • 起動シーケンスのマルチスレッド化を完全に廃止しました.その代わり,メインウィンドウのコンストラクタとLoadイベント実行間が非同期状態になるのを利用して,処理を振り分けることにしました.処理するべき項目の量は変わりませんが,マルチスレッドのときより,むしろ軽やかになったような気がします.あくまでも,「気がしますって」だけね..
  • 情報ボックス・エディタパネルでリンクテキスト(URL)をクリックしたら,ブラウザパネルに表示するようにしました.
  • 外観設定,各種コンテキストメニューの設定を情報ボックス・エディタパネルで行うようにしました.これに伴い,オプション設定ダイアログの該当項目を廃止しました.
  • タグクラウドのベースクラスを自作WebBrowserExから.NET通常のWebBrowserに変更しました.
  • 情報ボックス・ブラウザパネルのベースクラスWebBrowserExで使われないインターフェースを削除&ダイエットしました.
  • Feed記事を「情報ボックスに表示したら既読とみなす」スイッチは,記事が空の場合は無視する仕様にしました.
  • 登録ウィンドウの開閉は,今までインスタンスを残して単に表示・非表示を切り替えるだけでしたが,閉じるときはインスタンスも廃棄することにしました.
  • スプラッシュウィンドウの背景色を起動の都度ランダムに変更するようにしました.深い意味はありません.単なるお遊びです.
  • タグクラウドパネルの最小値・間隔値の初期値が,コンボボックスの選択肢の範囲外である場合,自爆してしまう不具合を解決しました.
  • マクロ入力支援メニューからfilterの項目を選択した場合,既にfilterマクロが記述されていると,それを削除&置換することになっています.しかし,filterマクロに関してはそれでは都合が悪い場合があります.そこで,既存の引数を残したまま,新しい引数を追加するようにしました.

Ver.0.126b2

  • 起動シークエンスのマルチスレッド化を一時的に廃止します.仕様変更に至った詳細は,掲示板をご覧ください.

Ver.0.126b

  • 情報ボックスの「ブラウザパネル」と「エディタパネル」の大改造を行いました.
    • ブラウザパネルにツールバーとステータスバーを設けて,通常のブラウザと同じようにナビゲーションを行うことができます.
    • Windows XP SP2以降の環境ならば,不用なポップアップウィンドウをブロックするフィルタオプションが利用できます.
    • ナビゲーション先を即時に外部ブラウザ表示に切り替えることができます.
    • ナビゲーション先を新規登録やリンク抽出することができます.
    • エディタパネルのエンジンを,「RichTextBox」コントロールから,フリーのエディタコントロール「Azuki」に変更しました.
    • エディタパネルにもツールバーを設けて,編集の手助けをします.
    • 編集テキストのUndo・Redo機能を追加しました.
    • 編集テキストの前進・後退検索機能を追加しました.
    • 「選択URLを開く」コマンドは,外部ブラウザではなく,ブラウザパネルに表示するようにしました.
    • エディタパネルのコンテキストメニューは廃止しました.
    • これらの仕様変更に伴い,外観設定の構成を変更しました.
  • リスト上部の「検索バー」でインターネット検索を行った場合,ブラウザパネルに結果を表示することにしました.もちろん,外部ブラウザで表示するモードも残してあります.
  • %keywordマクロ編集のためのHTMLソースビューワーのユーザーインターフェースを刷新して,操作パネルをToolStripに,ビューワーエンジンを「Azuki」に変更しました.
  • アイテム新規作成・編集ダイアログや情報ボックス・エディタパネルのマクロ入力支援メニューの仕様を改めました.
    • セットしようとしているマクロが既にコメント文中に存在する場合,サブメニューを持つマクロならば引数を新しいものに置換します.一方,サブメニューを持たないマクロならば宣言済みのマクロにキャレットを移動します.
    • セットしようとしているマクロがコメント文中に存在しない場合は,今までと同様に,コメント末尾にマクロを追加します.
    • 情報ボックス・エディタパネルでマクロ入力支援メニューを利用した場合は,一時的にオートフォーカスを無効にします.
  • アイテムの選択を伴うコマンド,具体的には「選択ブックマークの同期入力・出力」・「アイテムの新規作成・編集・変換・削除」・「別形式で保存(エクスポート)」・「前回チェック日時編集」を行う場合は,一時的にオートフォーカスを無効にします.
  • 「速報ニュース」と「通知ウィンドウ」でアイテムをクリックしたときは,今までデフォルトブラウザで表示する仕様でしたが,当該アイテムへ移動することにしました.
  • タグクラウドの操作パネルをToolStripに変更しました.
  • Podcastアイテムの「再生」と「ダウンロード」ボタンを,情報ボックス下部のミニタグクラウドに配置するのは場違いな感じが否めないのでやめることにしました.
  • スプラッシュウィンドウは,メインウィンドウ位置の中央に表示されるようにしました.
  • 例えば,同じフォルダ/アイテム構成をもつ同種のブックマークファイルをiCBM3に同時にマウントした場合,今まではどちらのブックマークファイルに属するのかを区別する手立てがないため,再起動時の前回終了時フォルダ選択などで矛盾が生じることがありました.今回,このような場合でもちゃんと区別がつくように,パスの内部表現を改めました.これにより,既に登録済みの一部の「エイリアスアイテム」は動作しなくなります.ご不便をおかけしますが,再度登録しなおしてください.
  • 再起動時に前回終了時リストアイテム選択は,オプション設定の「ブックマーク|ホームポジション|スタートアップ」オプションが有効な場合は動作すべきではないのでオミットしました.
  • 「前回チェック日時」や「%login・%wsseマクロ」の編集時,未入力エラーの場合にも関わらず,ウィンドウを閉じてしまうバグを修正しました.
  • 例えば,アイテムを複数選択した状態から未選択状態に遷移する際,選択状態の変化を拾う一般的な方法「SelectedIndexChanged」はご丁寧にも選択が1つ減る度にイベントを発行してくれます.これの何が問題がというと,情報ボックスの表示を全てのイベントで更新しようとする「チャタリング現象」が起こるわけです.そこで,この問題を解決するため,SelectedIndexChangedを捨てて,別のいくつかの方法を組み合わせて代用することにしました.
  • アイテムのコメントをHTMLから平文に変換する,或いはその逆のコマンドを実行する際,マクロが定義されていると都合が悪い場合があることを考慮に入れていませんでした.具体的には,マクロ引数にHTMLタグが含まれる場合などが考えられます.そこで,一度マクロを逃がして変換後に元にもどすことで問題を解消しました.

Ver.0.125b

  • IE8の「お気に入りバー」内のFeedやWebスライスアイテムの読み込み・書き出しに対応しました.ただし,読み込まれたWebスライスアイテムは,他ブラウザで表示しても意味が無いので,ブラウザ表示機能はオミットしています.
  • iCBM3に読み込まれたIEの「お気に入りバー」や「リンクバー」のタイトルは,今まで一律に「リンク」としていましたが,IEと同じ表示名にシンクロするようにしました.一応,Vista環境でも動作するはずですが,もしかしたら駄目かもしれないので,そのときはクレームしてください.
  • 起動時にユーザープロファイル(初期設定)を選択できるようになりました.用途に応じて,複数のユーザープロファイルを使い分けることができます.
  • %viewマクロを新設しました.このマクロを宣言したアイテムは,情報ボックスに簡易Webブラウザを表示します.ページ内リンクを辿ってブラウジングを行うこともできます.まぁ,ちゃんとしたブラウジングは外部ブラウザで行うほうが機能やセキュリティ的にも勝っていますが,ちょっとした情報を得るだけならば,外部ブラウザを立ち上げる必要も無いので便利だと思います.
  • 起動時に,前回終了時に選択していたツリーやタグだけでなくリストアイテムの選択も再現するようにしました.
  • Firefox 3のスマートブックマーク」と「IE8のWebスライス」アイテムの表示色を外観設定ファイルからセットできるようにしました.
  • アイテムの新規作成・編集ダイアログのサイズを記憶するようにしました.
  • ブックマークをエクスポートするとき,ツールバー項目とメニュー項目を振り分ける「自動分配機能」は,今まで「特殊フォルダ」を選択した時のみ機能していましたが,ブラウザブックマークを選択したときも掘り下げて分配を行うようなアルゴリズムに改良しました.ちょっと,お節介すぎるかな?
  • 「前回チェック日時を揃える」コマンドは,ダイアログ上で任意の日時をセットできるようにしました.
  • 前回更新に引き続き,起動時処理のスレッド分散をオプティマイズしています.
  • %snapshotや%viewマクロを情報ボックス上で編集した直後,情報ボックスタイトルをクリックしても,すぐに結果が反映されないバグを修正しました.
  • IE形式でブックマークを同期出力するとき,「リンク」フォルダ内のdesktop.iniファイルを削除してしまっていたバグを修正しました.
  • 情報ボックス(ブラウザモード)にiframeタグを含むHTML文書が正常に表示されない,具体的にはiframeの中身だけ別ブラウザで表示してしまうバグを修正しました.

Ver.0.124b

  • Feedやチェックアイテムの更新チェックの際,WSSE認証を利用できるようにしました.例えば,はてなブックマークのAtomAPIを介して,ブックマークの全ダンプを取得する場合などに利用できます.
  • 今まで,認証関連のユーザーIDとパスワードはマクロに平文で直接記録するというアナクロな仕様でしたが,暗号化して保存するようにしました.まぁ,見る人が見ればすぐに見破られる安直なもんですけど.
  • コマンド実行の成功・失敗を知らせるチャイム音を,ユーザーが任意の外部サウンドファイルに設定できるようにしました.
  • Internet ExplorerのFeedsを,IE8でも利用できるようにしました.
  • 上記の仕様変更に伴い,IE Feedsの内部識別名を"IE7Feed"から"IEFeed"に変更しました.
  • 起動時,膨大な量の処理がインフレ状態となり,スプラッシュウィンドウやメインウィンドウがすんなりと表示されないことがあるため,処理をスレッドに小分けしてみました.残念ながら,起動がこれで軽くなるわけではありません.
  • ブックマークの同期保存の際,更新チェックデータベースもついでに保存する仕様を復活させました.
  • 選択アイテムを別形式のブックマークにエクスポートする際,例えばFirefox形式のブックマークではブックマークタイトルが空になってしまうバグを修正しました.

Ver.0.123b

  • 更新チェッカーに個々のアイテムをバラバラにエントリーしていくと,チェックのタイミングが五月雨式にやってくることになり,非常に鬱陶しく感じることがあります.そこで,選択したアイテムの「最終チェック時間を揃える」コマンドを用意しました.このコマンドを実行すると,次回のチェックからは集中してチェックを行うようになります.
  • 「Podcastを再生」・「Podcastをダウンロード」コマンドを,ミニタグクラウドからワンクリックで実行できるようにしました.
  • 情報ボックス・ブラウザモードで表示する際,HTML整形テンプレートは,今まで%htmlマクロの引数で設定できましたが,共通するテンプレートをまとめて外観設定ファイルから指定できるようにしました.
  • 上記の仕様変更に伴い,情報ボックス・ブラウザモードCSS設定は,共通テンプレートに取り込まれます.
  • 拡張HTML形式のブックマークエクスポートの際,記事本文のHTML整形テンプレートを外観設定ファイルから指定できるようにしました.
  • 速報ニュースや通知ウィンドウのコンテキストメニューから「表示アイテムへ移動」コマンドを実行したときは,マウス移動によるオートフォーカスを一時的に無効にするようにしました.
  • 速報ニュースの「スクロール速度」調整のアルゴリズムを全面的に見直しました.今まで,値を変更しても可変レンジが小さかったためか,変化があまりなっかたのですが,新しい方法では顕著に速度が変化します.
  • 「Podcastをダウンロード」や「リンク抽出」などが完了したとき,ステータスバーに終了メッセージを表示するようにしました.
  • いくつかの静的クラスをインスタンス化しました.
  • 編集ダイアログで更新チェッカーのエントリーを解除したとき,タイマーの起動時間を更新していなかったバグを修正しました.
  • 表示履歴(進む・戻るボタン)のドロップダウンメニューにGoogle Chromeの訪問履歴のアイコンが表示されないバグを修正しました.
  • 動的に生成されるインターネット接続ソケット数が偶に設定上限値を越えてしまうバグと,少数の接続であるにも関わらず不必要なソケットを生成してしまうバグを修正しました.
  • オプション設定のブックマークやブラウザ登録リストの末尾項目を削除しようとすると自爆してしまうバグを修正しました.おかしいな,これだいぶ前に直したはずなんだけど..
  • Googleがまたファビコンを新調したようなので,iCBM3も便乗しました.それにしても,趣味ワル..
  • Lunascape5がそろそろリリースキャンディデート段階に突入しそうなので,iCBM3の初期設定にも正式登録することにしました.

Ver.0.122b

  • 情報ボックス下部に「ミニタグクラウド」を導入しました.今まで,情報ボックスがブラウザモードならば,「タグリンク」をクリックするワンアクションで関連タグへ移動することができましたが,テキストボックスモードの場合は,ツールバーの「分類」ボタンの「関連タグメニュー」を選択するという手間がかかる操作を必要としました.「ミニタグクラウド」の導入により,「ブラウザモード」・「テキストボックスモード」で共通のアクションで関連タグに移動することができます.更に,右クリックでコンテキストメニューを開くと,主要なソーシャルブックマークの関連タグを表示することも可能です.
  • 「ミニタグクラウド」の導入により,ツールバーの「分類」ボタンは機能が被るので廃止することにしました.
  • タグクラウドのコンテキストメニューの「タグを検索」コマンドは,あまり使い道がないようなので廃止しました.
  • タグクラウド上部の操作パネルの「整列条件」をメニュー形式に変更して,選択肢を増やしました.宣言数による整列も行うことができます.
  • タグクラウド上部の操作パネルに「タグクラウドを最新に」ボタンを追加しました.
  • 複数のタグを一つに束ねる「タグバインダー」機能を導入しました.この機能を使うと,例えば「science」「サイエンス」というタグを「科学」とまとめることができます.ソーシャルブックマークで定義された同じ意味だけどバラバラに宣言されたタグを統一する用途に活用すると便利です.
  • 起動時にスプラッシュウィンドウを表示するようにしました.
  • 速報ニュースのツールチップでは,マクロは表示されないように工夫しました.
  • 初期設定の中で,古代の遺跡のように埋もれていた「UserAgent」と「Proxy」パラメータですが,これらが必要になる局面はないと判断し,廃止することにしました.
  • 「オプション設定|レイアウト|ペイン|パネル幅を一定に保つ」スイッチは廃止して,常にパネル幅を一定に保つことにしました.理由は,諸般の事情です.
  • 「オプション設定|フォーマット|拡張HTML保存 / CSS」と「オプション設定|フォーマット|スナップショット」は,ダイアログの編集領域が小さくせせこましいので,外観設定ファイルに移動しメモ帳などのエディタでのびのびと編集できるようにしました.
  • 情報ボックス(ブラウザモード)の強調表示設定を廃止します.
  • HTMLテキストを平文変換する際,HTMLコメントの除去が正常に行われていなかったバグを修正しました.
  • 教えて君.net」のFeed記事の中で,記事リンクのURLが"<$MTEntryPermalink$>"という環境変数のまま残っている場合があります.これは仕様なのかバグなのかよくわからんのですが,とにかくiCBM3内での処理には不都合なので記事URLと置換することにしました.
  • 表示履歴を,例えば「関連タグ」から「所属フォルダ」へリスト上の選択を保ったまま辿る場合,原理的には情報ボックスの表示は変化しないはずなのに,一瞬だけ「所属フォルダ」の表示がフラッシュされてしまうという,言葉の説明だけではなんのこっちゃわからんバグを修正しました.
  • 編集ダイアログや情報ボックスで,%cycleマクロが編集されたとき,自動更新チェックタイマーの起動時間を修正していなかったバグを修正しました.
  • 更新チェッカーのエントリーを解除したとき,自動更新チェックタイマーの起動時間を修正していなかったバグを修正しました.
  • タグクラウドのコンテキストメニューの「タグを選択項目に追加」コマンドを実行したとき,タグクラウドのダーティーフラグをセットし忘れていた凡ミスを修正しました.
  • 速報ニュースのツールチップで,Feed記事の文字数制限が機能していなかったバグを修正しました.
  • Feed記事などのタイトルの前後にスペースや改行コードを含む場合の対処が不充分だったので修正しました.また,今後はFeedから記事を取り込む段階で,トリミングを施すことにしました.

Ver.0.121b

  • Firefox 3のJSON形式のブックマーク読み込みに対応しました.ただし,タグの読み込みは行いません.まぁ,places.sqliteが使えないときの非常時用とお考えください.
  • はてなブックマークの各エントリーに付けられたタグ情報を「はてなブックマークのAPI」を介して取得するための%hatenatagsマクロを新設しました.便利です.
  • 表示履歴(進む・戻るボタン)のアルゴリズムを全面的に見直しました.
    • Stackオブジェクトを使わずに,FIFOバッファを実現しました.
    • 過去の履歴と重複がある場合は削除してからPushするようにしました.
    • 履歴メニューに蓄積できる項目数の上限値を設定できるようにしました.
    • 同じフォルダ・内容を2回続けてPushしないようにしました.
    • 削除したフォルダが履歴メニューに残っていて,それをPopしようとしたとき,挙動が怪しくなる問題を解決しました.
  • Feed記事を情報ボックスに表示したら,既読とみなすか否かを設定するオプションを復活させました.
  • 更新チェックで新着が見つかった場合の判定条件が,「IsRecent」であるべきところを「IsNew」としてしまっていたバグを修正しました.
  • %hg環境変数を使ってタグのリンク化を行う際,タグ文字列に含まれるスペースを"+"とエンコードしていましたが,"%20"としないと各ソーシャルブックマーク側で認識しないようなので修正しました.
  • iCBM3に対応していないブックマークを読み込もうとすると自爆するバグを修正しました.
  • タイマーによる自動更新チェック開始のタイミングが,アイテムごとに微妙にずれることがあるらしいです.その結果,それが積もり積もってくると,ついさっきチェックを行ったばかりなのに,「いや,わしゃまだ食べとらん」とボケ老人のような駄々をこね,数分後にチェックをしようとする不具合が起きる可能性があります.そこで,ちょっとした呪いをかけて,そのような問題が発生しないようにしました.

Ver.0.120b

  • Feed記事の内容を,description要素(平文)から取得するか,content:encoded要素(HTML)から取得するかを明示的に指示する%contentマクロを新設しました.あなたがiCBM3のヘビーユーザーならば,「%htmlマクロがあるのに二重定義にならない?」と疑問をもたれるかもしれません.発端は,またしても新しいはてなブックマークです.リニューアル後のはてブはcontent:encoded要素に「はてブ数」や「ファビコン」などのリンクを挿入してくれます.しかし,過度のデコレーションはiCBM3側での整形を妨げることになります.そこで,記事本文は平文(description要素)で取得し,表示はiCBM3側で整形したHTMLで行うことにしました.そのため,%contentマクロの必要があったわけです.
  • Feed記事内のリンクが相対リンクだった場合のため,HTMLヘッダにベースURLを記述しておくことにしました.
  • ウィンドウリサイズ時に,フォルダツリーの表示がちらつかないように対策を施しました.残念ながら,タグクラウドに関しては手付かずです.もうちょっと研究が必要です.
  • HTML整形テンプレートの環境変数「%hg{{...}}」を適用する際,ターゲットアイテムに%tagsマクロが宣言されてない場合は,処理を放棄するのではなくヌルスペースに置換することにしました.
  • タグクラウドのタグをリストの選択アイテムに追加する際,既に選択アイテムに%tagsマクロが宣言されている場合は,そのマクロの引数の末尾に追加することにしました.
  • iCBM3を「長時間起動しない」或いは「頻繁に起動・終了を繰り返す」場合,更新チェックタイマーの実行間隔が狭まってきてしまう問題に対処するため,少し工夫をこらしました.詳細は長くなるので省略します.
  • タグクラウドのコンテキストメニューに,選択タグを含むエントリーをはてなブックマークDeliciouslivedoor クリップで検索してブラウザ表示するコマンドを復活させました.一度廃止しましたが,やっぱりあった方が便利です.
  • リニューアル後のはてなブックマークのFeedは必ずしも時系列に並んでいないため,記事を取りこぼすことがあったバグを修正しました.
  • 情報ボックスのブラウザ表示がまだ完了してない状態で,表示内のリンクやiCBM3の同名タグへのローカルリンクをクリックすると,遷移をしくじる事があります.そこで,ちょっとしたトリックを仕掛けブラウザコンポーネントを騙すことで,この不具合が起きないようにしました.
  • %cycleマクロの引数が負の場合,起動後2回目以降の更新チェックが行われなかったバグを修正しました.

Ver.0.119b

  • ホームポジションをスタートアップポジションとする「起動時に移動」オプションを新設しました.
  • 検索条件に「検索範囲を限定する」オプションを追加しました.表示しているフォルダ内のみを検索することができます.
  • %filterマクロのinclude,exclude文の指定要素に「tags」を追加しました.分類タグの内容からFeed記事を取得するか否かを決定することができます.
  • HTML整形テンプレートの環境変数に「%bu」を追しました.はてなブックマークなどにURLを渡す際に,文字"#"だけURLエンコードします.恥ずかしながら,この仕様をつい最近まで知りませんでした.
  • HTML整形テンプレートの環境変数に「%hg{{...}}」を追加しました.iCBM3の分類タグを,はてなブックマークなどへのHTMLリンクに整形します.
  • 情報ボックスにブラウザモードで表示する際,今まで分類タグは%tagsマクロの書式のまま出力していましたが,「iCBM3タグ:....」という書式に整形することにしました.
  • はてなブックマークがリニューアルされ,分類タグの記述はdc:subject要素が廃止され,独自要素のみで提供されるようになりました.%autotags[hatena]とマクロをセットすると,この仕様に対応してタグを取得します.
  • 「オプション設定|ブックマーク|登録|追加」や「オプション設定|ブラウザ|登録|追加」でコマンドを実行する際,リスト項目が選択されていたら,その位置に挿入することにしました.更に,コントロールキーを同時に押していると,元の項目と置換します.
  • 「オプション設定|ブックマーク|登録|追加」や「オプション設定|ブラウザ|登録|追加」でコマンドを実行する際,シフトキーを同時に押していると,既定のフォルダではなく直前の操作を行ったフォルダでファイル選択ダイアログを開きます.
  • エクスポートコマンドを実行する際,アイテムが全く選択されていない,もしくはコントロールキーを同時に押していると,全アイテムをエクスポートすることにしました.以前,「全出力」機能は廃止したのですが,やっぱりあった方が便利と思われるので復活させました.
  • エクスポートコマンドを実行する際,安全のため更新チェッカーのタイマーを一時ストップすることにしました.
  • Feed記事の自動既読タイマー機能を廃止しました.
  • 実行ファイルアイテムのアイコン取得は,タイマーコールバックを使わずにメインスレッド内で行うことにしました.
  • 部分更新チェックのキーワードを編集する「正規表現編集ダイアログ」を「キーワード編集ダイアログ」に改名しました.
  • キーワード編集ダイアログでマッチングしたキーワード群を前進・後退検索できるようにしました.
  • キーワード編集ダイアログの外観設定において,強調表示はキーワードマッチングしか使わないので,emphasisブロックは必要ないと判断し,マッチングカラーのみを指定する仕様に変更しました.
  • 編集ダイアログのテキスト入力欄をリッチテキストボックスから通常のテキストボックスに変更しました.編集ダイアログまでデコレーションするのは,やりすぎだと感じていたので,思い切って廃止しました.
  • 通知ウィンドウのアイテムをクリックするする際に,「コントロールキー」を押していると,オプション「自動的に閉じる」の値に関わらず,ウィンドウを閉じないことにしました.
  • 起動時のブックマーク読み込み・更新チェックタイマーの起動・速報ニュースのスタートと言った一連のシーケンスが「ピタゴラスイッチ」状態になっていたので大幅に簡略化しました.
  • オプション設定ダイアログを開いているときに,自動更新チェックの時間になった場合,今まではリジェクトしていましたが,ダイアログを開いている最中はタイマーをストップしてしまうことにしました.
  • 「休止Feed列挙」コマンドは,更新チェックデータベースをスキャンした方がずっと楽なのに,何故か全ブックマークをスキャンしていましたので,前者の方法に切り替えました.
  • Firefox 3Sleipnir3形式でエクスポートする際,フォルダを選択した場合は問題ないが,ブックマークを選択すると出力できないバグを修正しました.これはかなり致命的なバグでしたね.長い間気がつかずに放擲していて面目ないです.
  • Google Chrome形式でエクスポートする際,Google Chromeブックマークが登録されていないと「雛形ブックマークが見つかりません」とエラーメッセージが表示されコマンドを実行できません.しかし,Google ChromeブックマークはJSON形式のフォーマットに変更されたので,このトラップはもう必要ありません.削除しました.
  • 更新チェックで最新アイテムを取得した状態で,新規アイテム作成やブックマーク構成の変更を行うと,再度最新アイテムを通知ウィンドウで表示しようとするバグを修正しました.これはかなり恥ずかしいバグですね.山田は,通常「通知ウィンドウ機能」をオフにしているので,まったく気づかずにいました.いやはや..
  • テキストがHTMLであることを認識するための内部識別子<icbm3>を,HTML保存やブラウザ表示の際に取り除いていなかったミスを修正しました.
  • タグ名に"#"を含む場合,タグクラウドを選択しても目的のリストが表示できないバグを修正しました.
  • システムトレイアイコンを右クリックしたとき,コンテキストメニューが1クリックで表示されない不具合を修正しました.
  • 速報ニュース・通知ウィンドウ・情報ボックスのタイトルなどに無駄な改行が含まれると表示レイアウトが崩れてしまう問題を解決しました.
  • 「最新項目列挙」と「展開して最新列挙」を起動時の表示(前回の最後の表示)にすることができていたバグを修正しました.
  • はてなブックマークのFeed取得アドレスが変更されたので,スクラップブックマークを書き換えました.

Ver.0.118b

  • 情報ボックス(ブラウザモード)の改良をしました.
    • スタイルシートが利用できるようになりました.
    • Feed記事は取得時の内容のみ保存して,表示のときにデコレーションを施すことにしました.これにより,大幅なダイエットが見込める上に,過去記事でも表示スタイルを変更することが可能になります.
  • Feed記事を平文で取得するときなどに使用するConvertToPlainTextモジュールのアルゴリズムを全面的に見直しました.今までに比べ,かなりパフォーマンスは向上したと思われます.
  • Feed記事に含まれる無駄な連続改行を除去する機能は,今まで平文のみ有効でしたが,HTMLにも適用できるようにしました.
  • %filterマクロに「cut文」を追加しました.Feed記事中の不用部分を除去することができます.最近,Feed記事に読者動向を探るためと思われる隠しリンク(画像)が挿入されていることがありますが,正直言って鬱陶しい&無駄なスペースを食われるだけで意味がありません.cut文を使えば,このような隠しリンクをサクっと除去することができます.
  • %autotagsマクロの引数は,今までDeliciousのタグのデリミタ文字を指定するために利用していましたが,Deliciousが大改装したことにより不必要になりました.そこで,タグを取得する要素を指定する用途に変更します."category","subject","dc:subject"から選択します.複数指定することも可能です.引数を省略した場合は,全ての要素から取得します.
  • HTML整形テンプレートの環境変数に「%su」を追しました.%snapshotマクロの引数(URL)に平文で置換します.マクロに引数がない場合は,%puと同じ働きをします.今まで,この動作は内部で自動的に判断して行っていたのですが,明示的なパラメータを提供することにしました.
  • アイテムコメントをHTMLに変換するコマンドを追加しました.
  • 通知ウィンドウを不透明・半透明に切り替える仕様を廃止しました.常時不透明表示に統一します.
  • %sortマクロの引数のデリミタだけが"・"というのは,一貫性に欠けるので,他と合わせて"/"に変更しました.
  • 「最新項目」リストアップのアルゴリズムが,非常に回りくどいことになっていたのでカイゼンしました.もちろん,それは内部だけの話でアウトプットは全く変化しません.
  • Mozilla Firefox 3のブックマークに「ライブブックマーク(Feed)」が存在しない場合,moz_anno_attributesテーブルが欠番となることを考慮していなかったため,iCBM3が読み込みに失敗するバグを修正しました.
  • Safari for Windowsの訪問日時を1日ずれて取得していたバグを修正しました.
  • %filterマクロの引数でデリミタ(;=/)文字を通常文字として扱うためのエスケープ機能を導入し忘れていたミスを修正しました.用法は,マクロと同様にデリミタ文字の前に"\"を付加します.
  • Feed記事に自動既読タイマーで訪問日時をスタンプした場合,親のFeedフォルダの訪問日時が保存されないバグを修正しました.
  • 情報ボックスでコメントを編集して保存せずに,例えば「編集ダイアログ」を立ち上げると,「編集内容が失われるので注意してください」とマニュアルに記述していましたが,実は随分前に対策は講じられていて,編集内容はちゃんと引き継がれるようになっていました.マニュアルの該当部分を削除しました.

Ver.0.117b

  • Sleipnir3のブックマークの読み込み・書き込みに対応しました.ただし,Sleipnir3はαテスト段階なので,仕様がまだまだ固まっていないものと思われます.その点を留意の上,ご使用ください.
  • 更新チェック結果の列挙コマンドに「最新項目列挙」を追加しました.「新着項目列挙」では,最近の更新チェックでなくても,次のチェックが行われない限り「新着」とみなされるため,長い時間iCBM3を使い続けると鬱陶しいことになっていました.「最新項目列挙」は,一番最近の更新チェックで取得した「新着項目」のみをピックアップするので非常に便利です.
  • 上記の新仕様に伴い,「通知ウィンドウ」は「最新項目」のみ表示することにしました.
  • 「オプション設定|表示|一括表示|フォルダ・Feed」と「%launchマクロ」の設定項目に,「なし」と「最新」を追加しました.
  • 速報ニュースの表示条件を「表示項目」と「有効期限」の2つのパラメータを使って詳細に設定できるようにしました.また,「%newsマクロ」の引数もこれに伴い仕様変更しました.
  • 速報ニュースの「進む・戻るボタン」を廃止します.
  • アンカーコピーにタイトルを設定できるようにしました.タイトルはメニュー上で「(タイトル)をコピー」と表示されるので,わかりやすくなります.
  • 「別形式で保存」コマンドの「標準HTML形式で保存」と「拡張HTML形式で保存」は,装飾がゴテゴテしてユーザーが加工しにくい状況だったので,以下のように変更しました.
    • 標準HTMLは,<ul>と<li>タグのみでCSSを使わないシンプルなツリー表示にしました.コメントの出力は行いません.
    • 拡張HTMLは,CSSを使った表示ですが,テンプレートは固定フォーマットとしました.コメントはFeed記事のみ出力することができます.
    • 拡張HTMLのCSSは,「オプション設定|フォーマット|拡張HTML保存 / CSS」で編集することができます.この仕様変更により,「HtmlFormat.TXT」ファイルは必要なくなりました.
  • 「Podcastを再生コマンド」のアイコンは,QuickTimeのロゴでしたが,Podcastアイテムと同じアイコンを使用することにしました.
  • HTML整形の環境変数に"%rt{{正規表現}}"と"%rc{{正規表現}}"を追加しました.タイトルやコメントから正規表現にマッチする文字列をクリッピングして置換することができます.これに伴い,"%popup"環境変数は,"%rc{{%popup\[(.+?)\]}}"と記述することと等価なので廃止します.
  • %snapshot環境変数は,%snapshotマクロと名前が同じだと紛らわしいので,%ss環境変数と改名します.
  • HTML整形の環境変数"((省略可能領域))"を廃止します.
  • HTML整形の環境変数"\t"と"\n"が,タブや改行コードに置換されていなかったバグを修正しました.
  • 「%htmlマクロ」の中に記述された環境変数は,通常はエスケープしているので置換されないはずですが,勢い余って多重置換していたバグを修正しました.
  • Ver.0.113bでブラウザボタン&メニューの有効・無効状態を,アイテムの選択に従って変更していました.しかし,外部からリンクアイテムをブラウザボタンにドラッグ&ドロップする「リンクジャグラー」機能を利用するとき,ボタンが無効になっていては使い物になりません.というわけで,この仕様を廃止します.
  • 「オプション設定|ブックマーク|登録」でブックマークを削除したとき,条件によっては速報ニュースがリスタートされない場合があるバグを修正しました.
  • 「オプション設定|ブックマーク|登録」でブックマークを追加・削除したとき,「進む・戻る」ボタン(表示履歴)のドロップダウンメニューから前の履歴が完全にクリアされていなかったバグを修正しました.
  • 「オプション設定|表示|一括表示|フォルダ」の設定が,親から子フォルダへは継承されているのですが,子から孫へ継承されていなかったバグを修正しました.

Ver.0.116b

  • Google Chromeのブックマークが履歴などを収めたファイル(History)から独立して,JSON形式のファイル(Bookmarks)に記録されるようになったので対応しました.もちろん,読み込み・同期出力・エクスポートの全てに対応しています.
  • Internet Explorerのバージョンが7以外の場合は,「IE7 Feed」の読み込みを禁止する仕様に変更しました.これに伴い,IE7用とそれ以外用に分けていたパッケージを統一して配布することにしました.
  • 「%dynamic」マクロを新設しました.部分更新チェックを行うアイテムに,このマクロを定義しておくと「%keyword」マクロでキャプチャされた文字列をアイテムのタイトルとします.今まで,更新チェックの詳細は「%popup」マクロでも知ることができましたが,こちらのマクロを使えばリスト上でざっと眺めることができるので便利です.
  • 「%filter」マクロやオプション設定のフィルタステートメントには,今まで「Feed記事読み込み」と「フォルダ内アイテムの一括表示」の2つの機能を混在させて記述していました.ところが,作者から見ればプログラミングがしやすい反面,ユーザーからは無用な混乱を招いていたようです.そこで,この2つを分離して記述することにしました.「Feed記事読み込み」に関しては,今までの「%filter」マクロやオプション設定のフィルタステートメントを継承し,「フォルダ内アイテムの一括表示」に関しては新設した「%launch」マクロで設定することにしました.そのため,「%filter」に後者の設定を記述していた方は,書き換えが必要になります.ご了承ください.
  • 「%filter」マクロを,「%tags]マクロと同じように分かち書きできるようにしました.フィルターステートメントを分けて記述することができます.
  • .NETのWebBrowserコントロールに自前のBeforeNewWindowイベントを追加しました.(参考:Visual C# - Visual Studio User Group)今のところは,コンテキストメニューの「新しいウィンドウで開く」が動作するようになったぐらいですが,今後いろいろ発展するための布石です.
  • 更新チェックデータベースの書式をXMLからSQLiteに変更しました.ちょっとだけ,ダイエットに成功したようです.
  • iCBM3をシステムトレイに収納したときのアイコンのコンテキストメニューに,「登録ウィンドウを開閉」コマンドを追加しました.また,ステータスバーの「新着」ドロップダウンメニューから「通知ウィンドウを開閉」コマンドを削除しました.
  • 「Podcast記事」もアイコンが選べるようになりました.
  • 「新着アイテムメニュー」や「進む・戻るボタンのドロップダウンメニュー」のタイトル文字数を制限するオプションを追加しました.
  • エイリアスアイテムにも訪問日時をスタンプすることにしました.
  • メモアイテムの「タイマーによる訪問日時スタンプ」は廃止して,表示した瞬間に「訪問」とみなすことにしました.
  • Feed記事の「タイマーによる訪問日時スタンプ」は,今まで未読記事のみに適用していましたが,既読記事にも適用するようにしました.
  • 「検索結果の整列」オプションを廃止しました.
  • 「キーワード・方法・条件の全てが一致したら,過去の検索履歴を消去する」オプションを廃止しました.
  • 「Sleipnir2とLunascapeの独自履歴も検索・列挙の対象にする」オプションを廃止しました.これらの独自履歴がIEの履歴と重複するのが,どうにも我慢できなくなったので,切り捨てることにしました.
  • 「検索列挙後に全てのツリーを閉じる」オプションを廃止しました.
  • 検索・列挙コマンドを実行したら,左側のペインは必ず「フォルダツリータブ」にフォーカスしていましたが,前の状態を維持することにしました.
  • 初期設定ファイルの編成を大幅に整理統合しました.また,それに伴いオプション設定ダイアログの配置も大幅に変更されました.この結果,アップデートしてお使いの方は,一部のパラメータが強制的に初期化されます.ご了承ください.
  • 前々回,自動更新チェック間隔を「最後にチェックした日時からの経過時間」に変更しましたが,アルゴリズムがヘタレなせいで,1時間ほどの誤差が生じその誤差が積算されていくひどい状況でした.今回,アルゴリズムを見直し,最大10秒の誤差に収め誤差は積算しないように修正しました.
  • 更新チェックのエントリーを解除したとき,「最後にチェックをした日時」情報がクリアされていなかったバグを修正しました.
  • 「実行ファイル」アイテムはダブルクリック起動が常にできなければならないにも関わらず,「アイテムのダブルクリック抑止」オプションに依存していたバグを修正しました.
  • 情報ボックスでの編集内容が,リストやツリーの表示にすぐ反映されないケースが,まだあったバグを修正しました.
  • HTML整形テンプレートの中で使われる「%popup」環境変数は,多重展開(無限展開)を避けるため環境変数の直後に"["という文字以外が存在する場合のみ有効になる仕様でしたが,これだと「%popup」がテンプレートの文末で使われたとき無効になってしまいます.その不都合を修正しました.
  • Firefoxの更新チェックページのレイアウトが変更になった模様で,今までの「%keyword」マクロのパターンでは新着チェックができないので修正しました.
  • Feedに挿入される広告を除去するフィルタに「exclude=title/^PR:」というパターンを追加しました.

Ver.0.115b2

  • Mozilla Firefox 3Google Chromeブックマークの同期処理を正常に行うことができないバグを修正しました.
  • 外観設定と各種メニュー定義ファイルの仕様が変更されたときのファイル置き換え条件をもっと厳密にしました.「default」フォルダ内の既定ファイルとバージョンが一致しない場合は,容赦なくリプレースします.

Ver.0.115b

  • 更新チェッカーの自動チェック間隔は,起動からの経過時間ではなく,前回チェックした時間からの経過時間で制御することにしました.つまり,通常のRSSリーダーの振る舞いをするようにしました.これで,起動時に全てのエントリーのチェックを行うという馬鹿げた動作から開放されます.
  • 上記の仕様変更に伴い,更新チェッカーの「基本周期」と「%cycle」マクロの意味合いが変わります.場合によっては,マクロの書き換えが必要になるかもしれません.ご了承ください.また,ステータスバーのスケジュール表示は無意味になったので廃止しました.その代わり,エントリーされたアイテムのツールチップや編集ダイアログなどに「次回チェック日時」を表示することにしました.
  • 「オプション設定|更新チェック|Feed記事|放置された記事を強制的に既読とする時間」および「%expireマクロ」を廃止しました.上記の仕様変更のため,アイテムごとに更新チェックの時間がまちまちになり,期限切れの監視が統一されなくなったのが理由です.
  • エクスポートの際,今までは全てのアイテムを所定のフォルダ一箇所にまとめて出力していましたが,出自が別ブラウザのツールバー項目ならば,エクスポート先でもツールバーに収まるよう自動振り分けする仕組みを導入しました.
  • エクスポートの際,エイリアスアイテムは元のフォルダを解決して保存するようにしました.これ,結構便利です.
  • 同期フラグがオンのブックマークは,タイトル文字色を変更できるようにしました.
  • 今までローカルタイムと世界標準時との時差は設定ファイルに保存するようにしていましたが,iCBM3内部でタイムゾーンを計算して取得することにしました.そのため,このパラメータの保存は廃止します.
  • Mozilla FirefoxLunascapeなどのブックマーク読み込みで,Stackクラスを使わないアルゴリズムに変更しました.
  • ツールチップの表示アルゴリズムを変更しました.今まで,エラーメッセージが存在すると,他のポップアップなどの内容を覆い隠してしまう問題がありましたが,全ての情報が表示されるようになりました.
  • Lunascape4のブックマークからFeedを最初に読み込む際,iCBM3側の流儀では訪問日時が存在するはずないのに,訪問日時も読み込んでしまっていたミスを修正しました.
  • タグクラウドの要素上でマウスを停止したとき,背景色反転がされなくなっていたバグを修正しました.
  • ブラウザから登録ウィンドウにリンクをドラッグ&ドロップしたとき,新規作成ダイアログを閉じるまでは,ブラウザまでロックされてしまっていた不具合を解決しました.
  • 前回,SQLiteを使ったブックマークエクスポートで文字列引用符のエスケープの不具合を修正しましたが,むしろ修正しない方が正解でしたので,元に戻しました.
  • SleipnirSleipnir2のブックマークエクスポートで,エイリアスアイテムの存在がカウントされておらず不完全な出力をしてしまうことがあるバグを修正しました.
  • 検索キーワードの正規表現や部分更新チェックの「%keyword」マクロの正規表現に文法ミスがあった場合,iCBM3が自爆してしまうバグを修正しました.いや〜,こういう基本的なところの取り扱いが未だ不完全なまま手付かずになっていたなんて,お恥ずかしいかぎりです.
  • 外観設定ファイルを編集したとき,情報ボックスの強調表示などが更新されない不具合を修正しました.
  • アイテムを一括削除や移動したとき,情報ボックスに消されていく(移動していく)アイテムを一々フラッシュしていましたが,不恰好なので,これらのコマンド実行時はイベントをブロックすることにしました.

Ver.0.114b

  • Mozilla Firefox 3ブックマークのエクスポート・同期を行えるようにしました.
  • Mozilla Firefox 3ブックマークのエクスポート・同期を行う時の管理の都合上,スマートブックマークは「一般アイテム」として読み込むことにしました.ただし,iCBM3上からブラウザ表示したりすることはできないようにしてあります.
  • Mozilla Firefox 3の履歴表示条件を変更しました.moz_historyvisitsテーブルのvisit_typeが4,5,6以外の場合のみリストアップすることにしました.(参考資料:Firefox 3 Forensics - places.sqlite--historyvisits
  • 対象ブックマークのブラウザが実行中ならば,同期出力ができないようにしました.また,iCBM3終了時に同様な状況が起こった場合は,iCBM3の終了をキャンセルするようにしました.
  • スクリプトファイルの引数指定は,Perlの実行環境指定のようにファイルの第1行目に記述していましたが,「オプション設定|ブラウザ1|登録」の「起動オプション」に記述することにしました.また,引数に使える環境変数名も変更しました.
  • 「オプション設定|ブラウザ2|URL整形|通常のブラウザ表示では,日本語部分をURLエンコードして送る」スイッチは,考えてみるとエンコードしない局面が全く見当たらないため,常にそうすることにして廃止します.
  • Mozilla Firefox 3のバージョンアップに伴い,PlacesOrganizerの書式がまた微妙に変化したらしく,ブックマークが正しく読み込めない場合があるようです.そこで,PlacesOrganizerのクエリーを追っかけるのをやめ,実体要素だけを読み込むんで木構造を再構成することにしました.
  • SQLiteライブラリーに引用符付きのクエリーを送る際,文字列のエスケープが不完全であった問題を解決しました.
  • 前回の更新で,ブラウザコマンドのボタンやコンテキストメニューの状態をアイテムの選択によって変更するようにしましたが,アイテムが選択されてない場合,インターネット検索をブラウザボタンで行うことができません.更に,スクリプトファイルは,アイテムが選択されていなくても使う場合があるので不都合です.以上の問題を解決しました.

Ver.0.113b

  • Google Chromeブックマークのエクスポート・同期を行えるようにしました.
  • ブックマークのエクスポート(別形式で保存)コマンド(メニュー)のインターフェースを全面的に刷新しました.新しいメニューでは,一目で何を出力したいかがわかります.また,使用頻度から考えて,「全ブックマークをまとめてエクスポートする」機能は,希にしか使わないと思われるので廃止しました.
  • Safari形式のエクスポートは,新規にフォルダを作成するのではなく,ブックマークメニュー内に収めるようにしました.
  • ブックマークのエクスポートで,アイテムの「訪問日時」と「作成日時」も要素が存在するならば記録するようにしました.
  • 同期コマンドに関わる「オプション設定|ブックマーク|編集」グループの「スクラップに限定」や「終了時にブラウザブックマークへリストア」スイッチ群は,"わかりづらい&まわりくどい"と不評だったようなので廃止しました.代わりに,各ブックマークごとに「同期」フラグを設けました.このフラグがオンのブックマークは,アイテムの編集・移動・削除が可能となり,iCBM3終了時に編集内容がブックマークファイルに書き込まれます.また,ツールバーやコンテキストメニューの「同期」コマンドを使えば任意のタイミングで出力することもできます.フラグがオフの場合は,アイテムの編集などは禁止され,iCBM3終了時に書き込みも行いません.
  • Safariブックマークの「ブックマークバー」と「ブックマークメニュー」以外の第1層にあるフォルダ,Operaブックマークのツールバー表示項目,更にInternet Explorer・Sleipnir2Lunascapeの第1層より下位にある「リンク」フォルダは,「特殊アイテム」の括りには入れないことにしました.これらのアイテムは,各々のブラウザ内では特別扱いされておらず,編集や移動もできるので,「特殊アイテム」というカテゴリーに分類するのは矛盾すると思われるからです.
  • 今までツールバーからしか操作できなかった「ブラウザ表示」・「訪問履歴表示」関連のコマンドをコンテキストメニューに登録できるようになりました.
  • ブラウザ表示コマンドのボタンも,アイテムの選択状態によって有効・無効が切り替わるようになりました.
  • タグクラウドの上部にタグの表示条件を設定するパネルを設けました.条件を操作すると即時にタグクラウドの表示が更新されます.この機能が新設されたことで,オプション設定の条件設定は不用となったので廃止します.
  • タグクラウドの表示スタイルの設定はCSSにより行ったいましたが,他の外観設定項目と同様に項目ごとの設定に変更しました.これに伴い,外観設定ファイルの書式が変更されるので,外観が1度初期化されます.ご了承ください.
  • ツールバーを非表示にするオプションを追加しました.
  • 新規アイテム作成ダイアログと編集ダイアログのウィンドウサイズを可変にしました.
  • 新規アイテム作成ダイアログで,作成ターゲットを選択する「ミニフォルダツリー」は通常同期可能なブックマーク・フォルダのみを表示していましたが,全てのブックマーク・フォルダを表示することにして,作成不可なフォルダに関しては,「挿入」「追加」ボタンが無効になるインターフェースにしました.本質はなにも変わっていないのですが,見た目は賑やかになりました.それだけです.
  • 選択したアイテムのタイトルが異常に長い場合でも,情報ボックスのタイトルバーの高さを調整して複数行で表示するようにしました.更に,バーの高さがフレキシブルになったので,タイトルの後に親フォルダのパスなども表示することにしました.ちょっと,鬱陶しいかな.
  • 更新チェックは,今までソケットのストリームを読み込みながら,Feed記事の分解を行ったり,Webページのハッシュ値を計算していましたが,1度バッファに溜め込んでから分解や計算を行うことにしました.で,飛躍的な速度向上を期待したのですが,それほど変化は無いみたいです.残念.
  • 更新チェックがHTTP関連のエラーで失敗した場合,リトライできるようにしました.なんか,今更の機能ですが...
  • 更新チェックのソケットの優先度は,日常それほど調整する必要はないと思われるので,オプション設定項目から外しました.ただし,初期設定ファイルには隠しパラメータとして残しておきます.
  • HTML整形テンプレート用の環境変数に「%wt」を追加しました.ファイル名に使えない文字をスペースに置換したタイトルを出力します.
  • 一般アイテムをダブルクリックしたとき,通常はデフォルトブラウザで表示しますが,これを抑止することができるオプションを新設しました.何のために,こんなオプションをつけたのか訝しがられる方もいらっしゃるかと思いますが,要は私の変な癖を防止するためだけの機能です.お気になさらずに..
  • 検索条件パネルの開閉は,「キーワード」入力欄にフォーカスを得たら開き,失ったら閉じるという完全自動動作にしました.そのため,パネル開閉をマニュアルで行うためのボタンは,必要なくなったので廃止します.
  • 検索キーワードのブール演算子の優先度が逆になっていたので,修正しました.例えば,「X AND Y OR Z」という入力の場合,AND演算子を優先すべきなのにも関わらず,「X AND (Y OR Z)」と解釈していました.このバグは,導入当初からまったく省みられず,ご丁寧にマニュアルも逆規則で説明しているという徹底ぶりでした.まったくもって,情けない限りです.すんまへん.
  • 上記のブール代数則のバグを直したついでに,NOT演算子が式中のどこにでも使えるようになりました.
  • 「情報ボックス」の表示内容に前の選択アイテムの残像が残ってしまうことが偶に起こるバグを修正しました.
  • HTML形式のエクスポートで,アイテムのコメントに%popupマクロが記述されていると,HTML整形の環境変数%popupと勘違いして,コメントを勝手に書き換えてしまうバグを修正しました.
  • 同期出力コマンドのボタンやメニューが有効になる判定条件が曖昧だったバグを修正しました.
  • ツールバーのレイアウトを再構成したとき,ボタンやメニューの有効・無効状態がリセットされてしまうバグを修正しました.
  • いくつかのメニュー・オプションスイッチなどのキャプションやレイアウトを変更しました.
  • マニュアル内でアイテムのタイトルやURLなどの総称が,「カテゴリー」だったり「エレメント」だったりしてバラバラだったので,「エレメント」に統一しました.
  • Web検索のweblioのクエリー書式が変更されたので,修正しました.

Ver.0.112b

  • Safari形式のブックマークのエクスポートができるようになりました.
  • 「ドロップポケット」を独立したフローティングウィンドウに配置しました.コンパクトで,どこにでも移動可能で,常に最前面に表示されている仕様なので,以前に比べブラウザからのドラッグ&ドロップが容易になると期待されます.
  • 「ドロップポケット」の仕様変更に伴い,「検索バー」をツールバーからリスト上部のパネルに移動しました.更に,それだけではつまらないので,いくつかのインターフェースも改良しました.
    • 検索条件をドロップダウンメニューではなく,「方法・キーワード」入力欄下に表れる「検索条件パネル」から設定するようにしました.このパネルは,キーワードを入力しようとしたり,方法が変化したとき,自動的に開閉し,検索成功すると自動的に閉じる仕掛けになっているので,邪魔になりません.
    • 日時に関する検索は,カレンダーダイアログからの設定を廃止して,キーワード入力欄の2つの「デートタイムピッカー」によって入力することにしました.検索バーから,入力のためダイアログにマウスを移動する手間が省けたので,便利です.
    • 検索・列挙系コマンドの結果を表示すると,リストの背景色が通常の場合と違う色に変化します.これに伴い,外観設定ファイルの書式が変更されるので,外観が1度初期化されます.ご了承ください.
    • 「キーワード」入力欄にフォーカスを固定する条件を少し変更しました.今までは「マウスダウン」で即固定でしたが,「文字を入力する」まで固定しないことにしました.
    • 「方法・キーワード」入力欄の配色を変更しました.さすがに,Office2003風のコントロールは飽きました.また,「検索条件パネル」を手動開閉するボタンを新設しました.
  • 「情報ボックス」がブラウザコンポーネントの場合,状態に応じて「表示の更新」・「表示の中止」を行うボタンが出現するようにしました.
  • 「情報ボックス」がブラウザコンポーネントの場合,表示内容に%tagsマクロが含まれているならば,各タグ名をクリックすると関連タグのリストアップ表示にジャンプする機能を新設しました.
  • 「マクロ入力支援」メニューの%tagsマクロについて,既存のタグをメニューから選んでセットするやり方は,タグ数が増えてくると,異常に長いメニューから目当てのタグを見つけ出すのが至難の業となり,入力支援どころか邪魔をしている状況でした.そのため,廃止することにしました.そのの代替機能として,タグクラウドのコンテキストメニューに「タグを選択項目に追加」コマンドを新設しました.リストやツリーで項目を選択(複数可)した後,タグクラウドからタグを探して,このコマンドを実行すると言う手順は,メニュー形式よりかなり容易だと思われます.
  • タグクラウドのコンテキストメニューに登録された「Web検索系」のコマンドを廃止しました.その代わり,「タグを検索」コマンドを新設しました.このコマンドは,検索バーの現在の方法・条件に従って検索を行うというものです.
  • HTML整形テンプレートで使える環境変数に「%popup」を追加しました.この変数をテンプレート中で使用すると,%popupマクロの引数と置換されます.
  • 新規作成&編集ダイアログの表示レイアウト・文字色を変更しました.
  • 情報ボックスの選択テキストを検索しようとして,検索バーの現在の方法が「日時に関する検索」だった場合,キーワード書式が明らかに異なるため,矛盾を来たしひどい場合は自爆することさえあります.そこで,このようなシチュエーションの場合は,検索実行を拒否して,エラーメッセージを表示する仕様にしました.
  • 項目数が多いメニューは,通常適当な項目数で折り返すことになっています.しかし,項目がちょうど折り返し点で終了した場合でも,折り返しサブメニューを無意味に生成してしまうバグがあったので修正しました.

Ver.0.111b2

  • v0.111bで余計なことをしたばっかりに,IE系ブラウザの訪問履歴表示コマンドがツールバーの「履歴」ボタンに登録されなくなってしまったバグを修正しました.

Ver.0.111b

  • Google Chromeのブックマークと訪問履歴の読み込みに対応しました.
  • %newsマクロを新設しました.「オプション設定|シーケンサー|速報ニュース」の表示条件を,それぞれのチェックアイテム・Feed単位で設定するマクロです.
  • %newsマクロの新設に伴い,機能が包含されるので,%stealthマクロを廃止しました.
  • 通知ウィンドウが1ページのみの場合は,「進む」・「戻る」ボタンを表示しないことにしました.
  • Ver.0.98bで導入した「メニューの仕様が変更されたとき強制的に最新定義ファイルと差し替える」機能は,製作者サイドからするととても便利なのですが,ユーザーサイドからすると,せっかくカスタマイズしたメニューを無碍もなく消去されるので,あまり評判はよくないと思います.そこで,そのような不評を少しでも緩和するべく,古いメニューのバックアップを残す仕組みを導入しました.バックアップができたからと言って,結局は手作業で新仕様のメニューに書き換えることになるのですが...
  • Safariのブックマークのフォルダ階層が正しく読み込めないバグを修正しました.このバグは,かなり以前から巣食っていたようです.Safariにあまり注意を払っていなかったのがモロバレですね.すんまへんでした.
  • 初回起動時にだけ,存在しないブラウザの訪問履歴表示コマンドをツールバーの「履歴」ボタンに登録してしまうバグを修正しました.

Ver.0.110b

  • 新規アイテム作成時に,重複したURLやPATHが登録されていないか確認するオプションを新設しました.
  • ブラウザ個別の履歴検索を廃止しました.それに伴い,検索方法のメニュー定義で,ブラウザ履歴部分だけわざわざ自動生成する理由がなくなったので,検索メニューの定義ファイルに取り込むことにしました.これにより,ブラウザ履歴検索をメニューの自由な場所に持ってくることが可能になります.
  • ブラウザ履歴のタイトル検索とURL検索を独立したコマンドに分割しました.
  • 列挙コマンドのブラウザ個別履歴メニューの並びをフォルダツリーのブックマークの並びとシンクロするようにしました.
  • ブラウザ履歴を,例えばCCleanerのようなユーティリティを使って消去すると,履歴ファイルそのものまで削除してしまう場合があります.この状態でiCBM3を起動すると履歴ファイルが見つからないため,列挙コマンドに個別履歴コマンドを登録できません.というわけで,不本意ですが少し条件を緩めて,関連するブックマークが存在するだけでも,個別履歴コマンドを登録できるようにしました.
  • 検索方法が「アイテム/分類タグ」や「ブラウザ履歴に関する」場合,検索条件の「アイテムを検索」などの検索範囲に関する条件は必要ないので,表示しないことにしました.
  • 検索方法を切り替えたとき,検索条件をリセットする仕様にしました.検索条件を継承するオプションを設けたほうが良いか迷っていますが,まずはこのやり方で少し使い込んでみて様子を見てみましょう.
  • 通常検索モード(正規表現を使わない)において,検索キーワードにワイルドカード(例:山田*研)を使用できるようにしました.
  • 変換コマンドの「タイトルを置換」・「コメントを置換」コマンドのキーワードは,「検索文字列・置換文字列・置換条件」をワンセットとして履歴に保存するようにしました.また,検索文字列や置換文字列のコンボボックスを選択したら,対応するコンボボックスも自動的に選択が切り替わり,置換条件も変更されます.
  • リストアイテムの先頭カラムのツールチップ表示条件が曖昧だったので厳密にしました.アイコンの範囲から外れたら,たとえ同じアイテムであってもツールチップを消します.
  • 今までメモアイテムの自動既読化の反応時間は,Feed記事のそれに便乗していましたが,独立したパラメータとして設定することにしました.
  • フォルダツリーとリストアイテムのツールチップ表示の可否をオプション設定からセットできるようにしました. 
  • あるユーザーさんから,更新チェックの際にNameResolutionFailureエラーがかなりの頻度で発生するとのご指摘を頂きました.こちらでは,そのような状況が再現できないので全くお手上げ状態です.ですが,何もしないのも忍びないので,ソケットの接続と切断の間に少しディレイ(100msぐらい)を噛ませてみました.これで,少しでも事象に変化があれば,そこから糸口を見つけたいと思います.
  • 今まで,Firefox起動時にiCBM3から複数URLを送る場合,パイプ機能を使っていましたが,なんか「外部からの攻撃に対する脆弱性がなんちゃらかんちゃら..」ということで機能しなくなってしまいました.なわけで,他ブラウザと同様にスペース区切りでURLを送ることにしました.
  • Firefox3のプロファイルから,新ブックマーク(places.sqlite)を登録しているにも関わらず,旧ブックマーク(bookmarks.html)も登録しようとしてしまうバグを修正しました.正直,紛らわしいからbookmarks.htmlは必要ないと思うんだけどな〜〜!
  • 情報ボックス内のテキストを選択して,Web検索コマンド(コンテキストメニューなどから)を実行すると自爆してしまうバグを修正しました.このバグは,コマンドライン経由でブラウザのコンテキストメニューから同コマンドを実行しても起こっていたようです.
  • タグクラウドのコンテキストメニューからのWeb検索を行おうとすると自爆してしまうバグを修正しました.
  • アイテムを別フォルダに移動したり,削除やゴミ箱に捨てたり,あるいはリストアイテムの選択を解除しても,情報ボックスの表示内容が消えないバグを修正しました.
  • あるアイテムのコメントが空の状態で,情報ボックスにて編集を行い,別のアイテムを選択した場合,移動したアイテムのコメントも空ならば,先の編集内容が選択したアイテムにコピーされてしまうバグを修正しました.この摩訶不思議な現象は原因がなかなかわからず苦労しました.わかってしまえば,なんてことないというか,例によって私のポカだっただけですが..
  • ある条件(複雑なので省略)で同期コマンドの「ブックマークからリロード」を行うと,リストの内容が更新されず,例えばフォルダをダブルクリックしても下層フォルダを表示できないといった支障をきたすバグを修正しました.

  • スクラップブックマークに記述した「Firefoxの更新チェック」は,今の%keywordマクロの引数では,Firefox4(?)が公開されるまでバージョンアップを見逃してしまうことが判明したので修正しました.
  • ソーシャルブックマークDeliciousが大改装を行い,仕様もいろいろと変わったようなので,関連する項目の諸々を書き直しました.しかし,便利だったブックマーク数を表示するAPIが廃止されてしまいました.
    そんなときは,きっと誰かがどこかで何か作っているはず...ググってみましょう...
    ビンゴ!!! \(^O^)/
    Delicious2.0 の被ブックマーク数画像取得APIを作りました ::: creazy photograph
    すごく便利です.迷わず,このAPIを使わせてもらうことにしました.ありがとうございます.

Ver.0.109b3

  • Firefox 3正式版を新規インストールした場合,ブックマークを読み込むことが出来ないバグを修正しました.
  • Lunascape4のデフォルトブックマークの名称(初期値)を"標準.ld2"から"default.ld2"に変更しました.

Ver.0.109b2

  • Windows XPより古いOSでは,「IEのお気に入りをレジストリから読み込む」機能が誤った動作を行い,アプリを自爆させてしまうバグが見つかりました.残念ながら,すぐには対処できないので,Windows XPより古いOSでは,この機能は使えないようにブロックすることにしました.
  • 上記のバグを鑑みて,IEのお気に入りはレジストリから読み込むか,フォルダ探索で読み込むかを,初回起動時にOSの種類から判定する仕様にしました.2回目以降は,初回で決まった方式に固定されます.

Ver.0.109b

  • ツールバーの「アイテムを列挙」ボタン(メニュー)から,「実行ファイルを列挙」などの種別に関する列挙系コマンドを独立させて,「種別で列挙」ボタン(メニュー)を新設しました.更に,「エイリアスを列挙」コマンドを追加しました.
  • 表示履歴ボタン(進む・戻る)のドロップダウンメニューに,今まではフォルダのアイコンしか表示できませんでしたが,検索・列挙系のコマンドもアイコン表示できるようになりました.
  • %keywordマクロの編集時に,引数が空だった場合や新規に作成する場合,ヌル文字が強調表示であると勘違いして無意味にキャプチャを行い,時にはフリーズしたようになってしまう不具合を修正しました.
  • .NET FrameworkのRichTextBoxは,余計なお世話で"DualFont"モードというのがあり,英数字入力時に設定フォントとは異なるフォント(Arial)に勝手に変更されてしまうそうです.なんで,こんな理由のわからんモードがあるのか理解に苦しみますね.なわけで,そのオプションは強制的にオフにすることにしました.

  • スクラップブックマークのSafari for Windowsの更新チェックが,的外れな情報をキャプチャしていたようなので修正しました.
  • Firefox 3の正式リリースに伴い,ホームページのアドレスなどが一新されたので,スクラップブックマークの該当アドレスを差し替えました.

Ver.0.108b

  • 情報ボックスやソースウィンドウの強調表示設定を改良しました.複数の正規表現&配色を定義することができるようになりました.
  • 「子フォルダを展開」コマンドも,表示履歴に残すことができるように仕様変更しました.
  • フォルダツリーのフルパス表記の時のデリミタを,"/"から"\"に変更しました.フォルダ名に"/"が含まれるとき,うまく解釈できない不具合を防ぐための対処です.「そんなこと,今頃気づくなよ!!」と,自分で自分にツッコミ.
  • 「エイリアス」や「ホームポジション」に登録する「検索・列挙」コマンドのデリミタも,フォルダツリーのパス名と統一性をもたせるため,"//"から"\\"に変更しました.
  • オプション設定中に,更新チェックタイマーをストップする仕様は,オプション設定を行うたびに,タイマー起動時間がずれてしまう弊害が起こるので廃止することにしました.その代わり,オプション設定中に,更新チェック時間が来たら,リジェクトする仕様にしました.ホント,「排他処理」って大変ですね.銀行や証券のシステム屋さんって,改めてすごいな〜って感心します.ま,時々ポカもあるけど.
  • アイテムオブジェクトの全ての静的メソッドを別クラスへ移動することにしました.更に,ブックマークの読み書き関連のルーチンは独立クラスにしました.プラグイン方式への布石だったりして..
  • 検索履歴の内部表現を変更しました.各々の検索履歴に,検索エンジンや検索パラメータを保存しておくのではなく,別リストを参照する方式に切り替えました.
  • 「未読」コマンドを実行しても,自動既読タイマーがオンの場合,「既読」に強制的にもどってしまうバグを修正しました.前回,情報ボックスの更新イベントを統一したことで発生したバグでした.
  • 「新着アイテムを列挙」・「未読アイテムを列挙」・「展開して新着列挙」・「展開して未読列挙」・「エラーアイテムを列挙」の結果を表示中に,「新規エイリアスを作成」コマンドや「オプション設定|アイテム|ホームポジション」の「現在地」ボタンを実行しても,当該のコマンドが代入されないバグを修正しました.
  • 情報ボックスがHTML表示の時,ブラウザにURLを送ると,情報ボックスの内容を再表示(フリッカー)してしまうバグを修正しました.
  • カレンダダイアログで選択した期間が,白抜けしてしまうミスを修正しました.
  • 複数アイテムの編集でロックの設定ができないバグを修正しました.

  • SQLiteライブラリー(System.Data.SQLite)を最新バージョン(1.0.49.0)に差し替えました.
  • Googleがファビコンを新調したようなので,iCBM3も便乗しました.

Ver.0.107b

  • ウィンドウタイトルと情報ボックスの更新イベントが,各コントロールでバラバラの流儀のコールがされていたので,一本化しました.また,今まではオートフォーカスに連動して,アイテムが選択されていないコントロールであっても,情報ボックスの内容を更新していましたが,これからはアイテムが選択されるまで情報ボックスの内容を更新しないアルゴリズムに仕様変更してみました.文章で説明すると非常にわかりづらいなぁ...
  • 検索条件メニューの「検索履歴に保存」を廃止して,必ず履歴に保存する仕様に変更しました.前の検索がスイッチオフの検索で,新しい検索を行うと,誤ってオフのままに放置するミスが起こり易いと判断し,仕様変更しました.
  • 検索コンボボックスを選択して,キーワードを削除&検索実行すると,検索履歴を削除する仕掛けを追加しました.
  • 日時に関する検索は,開始日時の「0時0分0秒」から終了日時の「23時59分59秒」までを検索対象とすることにしました.
  • 起こり得る可能性は非常に低いのですが,オプション設定でブックマークを着脱した瞬間にタイマーによる更新チェックが開始されると,非常に困った状況に陥ります.そこで,オプション設定中は更新チェックタイマーを中断することにしました.
  • 検索コマンドを,エイリアスやホームポジションに設定する際に,検索条件が盛り込まれていなかったミスを修正しました.
  • 検索コマンドを,エイリアスやホームポジションから実行すると,必要もないのに検索履歴をリフレッシュしてしまうバグを修正しました.
  • タグをクラウドから選択して,アイテムリストを表示した状態から,新規エイリアス作成ダイアログを開くと,本来コマンド名はSearchTagByListでなくてはいけないのに,SearchTagByUserとなっていたバグを修正しました.
  • ひとつのアイテムに同一のタグが複数宣言されていたとき,タグを重複登録してしまうバグを修正しました.ま,これくらいは放っておいても実害はないかもしれないけど..
  • Firefox3のデバッグ用エラートラッキングコードが残ったままだったミスを修正しました.

Ver.0.106b

  • Firefox 3が,RC1にバージョンアップされて,案の定ブックマークの仕様が変更されたので対応しました.スマートブックマークに関して,新しい識別ID(anno_attribute_id=9)が加わったようです.ただ,厄介なことに既存のスマートブックマークには,新識別IDが付かない..どういう,こっちゃ..iCBM3のソースも新IDに対応しようと思ったのに.めんどくさ!(詳しくは「[技術メモ]Firefox3のブックマーク?」をご覧ください.)
  • 表示履歴ボタン(進む・戻る)に,ドロップダウンメニューを追加しました.今までは,履歴をひとつひとつしか移動できませんでしたが,任意の履歴にジャンプすることができます.
  • 検索のアルゴリズムを大幅に改造しました.改造の詳細は以下の通りです.
    • 「検索修飾子」による検索条件の設定を廃止して,検索テキストボックスの右端に配置された「ドロップダウンメニュー」から設定することに.
    • 検索条件の整理統合.今まで,無計画に増やしすぎていました.
    • キーワードは,"AND", "OR", "NOT" の演算子で結合して記述可能.
    • スペースでキーワードを区切った場合は,論理和(OR)条件とみなしていた定義を廃止.単語間にスペースがある場合は,全体をセンテンスとして検索することに.
    • 検索履歴から古い検索セットを消去する条件を,キーワードのみの一致にするか,キーワード・検索方法・検索条件の完全一致にするかを選択可能に.
    • 検索テキストコンボボックスは,今までキーインされるまでフォーカスを固定しなかったが,使い勝手を鑑みると,フォーカスが移った瞬間に固定してしまうことに.
  • 上述の通り,「検索修飾子」を廃止したので,「タイトルを置換」・「コメントを置換」コマンドも,検索文字列に修飾子を使えなくなりました.そのため,チェックボックスから検索条件を設定するようにしました.
  • フォルダツリーとアイテムリストのツールチップは,独自クラスで表示することにしました.改造の要点は以下の通りです.
    • モーダル表示(タイマーで消滅せず,マウスが静止している間は表示しつづけます.)にして,長いキャプションを読みやすく.
    • ただ,モーダル表示は,以前の経験から鬱陶しく感じるときもあるので,リストのアイコン部分に静止したときだけ,ツールチップを表示することに.
    • タイトル部分は太字,メッセージ部分は内容により表示色を変更(外観設定ファイルから設定可能です.)
  • 上記の独自ツールチップを使って,速報ニュースにツールチップを表示できるようにしました.Feed記事には要約文(平文)を,チェックアイテムは%popupマクロのメッセージを表示します.これで,某ブラウザの某プラグインの動作を完全に模倣したことになるわけです.ガハハ,!
  • IEのお気に入りをレジストリから読み込むオプションを追加しました.レジストリから読み込むことで,お気に入りメニューの並びを完全に再現できます.もしかしたら,Vistaでは上手く読み込めない可能性もあるので,従来どおりのフォルダからの読み込みオプションも残しています.
  • オプション設定の「ブックマーク|登録」の「追加」ボタンをクリックすると,コンテキストメニューが立ち上がり,追加方法を選択できるようにしました.今まで,修飾キーとのコンビネーションで追加方法を振り分けていましたが,これで使いやすくなったと思います.
  • 同上リストのカラムに「タイプ」を表示するようにしました.同じタイトルのブックマークが登録されていても,タイプが違うということを識別できます.
  • 各ブラウザのツールバーフォルダなどの「特殊アイテム」を列挙するコマンドを新設しました.
  • %authorマクロで取得した著者名は,記事本文に埋め込む出のはなく,タイトル末尾に付加することにしました.
  • たとえば,休止FeedのXML(Feedアドレス)を編集ダイアログで編集したときのような特殊ケースで,データベース編集フラグがセットされていなかったバグを修正しました.
  • カレンダーダイアログから検索を行おうとすると,カレンダーダイアログのインスタンスの消失と,リスト表示のアップデートイベントが,お互いに譲り合わないことにより,デッドロックを起こしてフリーズしていたバグを修正しました.おもしろいね〜!こんなことでもデッドロックになるんだ.「ダチョウ倶楽部」なら,こんな問題は起きないのかな.

Ver.0.105b2

  • 検索・列挙を表示している状態で,新規作成ダイアログから「フォルダ」や「Feed」アイテムを作成すると自爆してしまうという致命的なバグを修正しました.

Ver.0.105b

  • Firefox 3のタグの読み込みアルゴリズムを変更しました.前バージョンの方法は,まわりくどいことをやっていたようです.せっかく,データベースなんだから逆引きテクニックを使わない手はないですよね.詳しくは「[技術メモ]Firefox3のブックマーク?」をご覧ください.
  • 新規作成ダイアログに,作成ターゲットを選択する「フォルダツリー」を導入しました.ダイアログ表示後でも,任意の場所にアイテムを作成することができます.これに伴い,今までは新規アイテムが作成できる場所でしか,「新規作成」コマンドを実行できなかったのですが,どんな状態でもコマンドを実行できるようにしました
  • 新規作成ダイアログの「挿入」ボタンは,ターゲットがカレントフォルダの時だけ有効になるようにしました.
  • 新しいアイテムのカテゴリーとして,「エイリアス」を導入しました.これは,Windows流に言えば「フォルダへのショートカット」,unix流に言えば「シンボリックリンク」機能を持つアイテムです.後述するFeedの重複問題を解決するために導入しました...てのは表向きの理由で,ホントはFirefox 3の「スマートブックマーク」のマネをしてみました.
    「エイリアス」の新規作成や編集,OPMLファイルへのロード&セーブが行えます.更に,「新規エイリアスの作成」コマンドをツールバーとメニューに追加することができます.
  • 今まで,リストアイテムをツリーにドラッグ&ドロップする場合,アイテムはフォルダの末尾にしか移動orコピーできませんでしたが,ツリーの間にドロップしたらその位置に挿入することができるようになりました.これに伴い,ドラッグ時の枠線表示を,ツリーの親子関係が把握しやすい表示に変更しました.
  • 更新チェッカーへエントリーする時に,重複が見つかった場合,どの場所に重複エントリーが存在するかのメッセージを表示するようにしました.
  • ビジュアルスタイルがクラシックの場合,.NET 2.0はステータスバーにスキンが適用できない仕様であるにも関わらず,ドロップダウンボタンとリサイズグリップには表示されるというちぐはぐが発生します.そこで,スキン適用時にビジュアルスタイル情報を取得して,クラシックならばステータスバーには表示しないことにしました.
    まぁ,今世の中Vistaだし,.NETは3.5だし,こんな事に気をかける必要が果たしてあるのかどうだか..
  • オプション設定を行っている最中は,「速報ニュース」を中断することにしました.
  • 「オプション設定|ブックマーク」と「オプション設定|ブラウザ1」の登録リストのヘッダ・"名称"を,他所との整合性を鑑みて,"タイトル"に変更しました.
  • 同上の登録リストの操作ボタンの整理統合を行いました.
    • ボタンの順番を変更しました.
    • 「変更」ボタンを廃止しました.他のボタンの組み合わせで,同機能を実現できますし,正直まぎらわしいので,よろしくないと判断しました.
    • 「編集」ボタンを新設しました.ボタンをクリックするとダイアログが開き,ブックマークの場合,タイトル・アイコン・コメントの編集ができます.ブラウザの場合,タイトルと起動オプションの編集ができます.これに伴い,起動オプション編集用テキストボックスは必要なくなったので廃止しました.
    • 「追加」ボタンでブックマークリストにOPMLファイルを登録するとき,OPMLのヘッダ要素にタイトルが記述されている場合は,それを初期タイトルとして読み込むことにしました.
  • 「オプション設定|エクストラ」タブパネルを廃止して,「アイテム」と「タグ」の2つのパネルに分けました.また,スナップショットに関する設定は,「フォーマット」パネルに移動しました.
  • 異なるブックマークで同じアドレスのFeedが存在した場合,最初に読み込んだFeedのみを有効にして,その他は空の「休止Feed」として取り扱っていました.しかし,空の休止Feedは,存在しても何の役にも立ちません.そこで,上述した「エイリアス」として読み込むことにしました.エイリアスをダブルクリックすると,(最初に読み込んだ)Feedフォルダに移動します.便利です.
  • Feedアイテムは「コピー」を禁止することにしました.上記と同様に,同じアドレスの休止Feedを,わざわざ作成するのは馬鹿げていますから,このような仕様にしました.
  • 「ソースダイアログ」や「Feedのオートディスカバリーによる新規作成ダイアログ」の表示は,今まで「非同期Invoke」で実現していましたが,リソースの回収がスパゲティ状態になっていたので,単純にタイマーからコールすることにしました.結果的にソースコードは増えてしまいましたが..
  • WinAPIのEnumWindowsを,今風に「デリゲートと匿名メソッド」を使って書き換えました.コード量はコンパクトになったけど,逆に見づらくなったかも..
  • 「オプション設定|ブックマーク」で登録リストから,ブックマークを削除するとき,直前にタイトルなどが編集されていても,その内容が保存されなかったバグを修正しました.
  • 同上の登録リストでタイトルを編集したとき,ブックマークアイテム自身のタイトルは更新されるが,情報ボックスのタイトルや表示リストのツールチップなどの更新を行っていなかったバグを修正しました.
  • Feed記事を外部にコピーするとき,更新日時が消去されていない場合があるバグを修正しました.
  • 休止Feedを削除した直後に,同アドレスのFeedを登録しようとしても,「既に登録されている」旨のメッセージが表示され,登録できなかったバグを修正しました.
  • 「オプション設定|更新チェック」の「放置された記事を自動的に既読とする」設定で,変化があった場合はデータベース編集フラグがセットされるべきはずなのに,見過ごしていたバグを修正しました.
  • フォルダツリーの上下端にアイテムをドラッグしたとき,自動スクロール機能が働くが,ご丁寧にも深い階層のツリーが視界に収まるように横スクロールまでしてくれるバグ(と言うか.NETの変な仕様)を修正しました.

Ver.0.104b

  • Firefox 3のブックマーク読み込みに対応しました.タグもちゃんとiCBM3式に変換して読み込みます.残念ながら,書き出し(エクスポート)には対応していません.
  • 通常,Firefox 3を実行中は,ブックマークと訪問履歴を読み込むことができません.これは,Firefox 3が上記ファイル(places.sqlite)にオーナーロックを掛けてしまうためです.しかし,物凄く簡単な方法で,これを回避する方法を見つけました.理屈は簡単で,実行中ならば,上記ファイルのコピーを一時的に作成して,それを読み込んでやるだけです.ま,それほどの発見ではないですね.私的には,「なんで,こんな簡単なことに気がつかなかったんだ!」と声を張り上げてしまいましたが..
    てなわけで,Firefox3のブックマーク読み込みはもちろんのこと,旧Firefoxの履歴(history.dat)の読み込みにも適用しました.
    しかし,ブックマークがデカくなったら,どうなるんだろう.ちょっと,不安だけど,しゃ〜ないか.
  • Feed記事の「自動既読タイマー」を個別設定するマクロ%autoreadを新設しました.
  • ブラウザの起動オプションを設定できるようにしました.例えば,Firefoxを異なるプロファイルで起動する場合などに活用できます.
  • Firefoxのブックマークが,既定ディレクトリ傘下には存在するが,"default"とは異なるプロファイルである場合は,フルパスではなく簡略パスで表記することにしました.
  • オプション設定のブックマーク&ブラウザ1のファイル登録リストに,ヘッダカラムを表示するようにしました.
  • Unknownタイプのブラウザは,IEと同じように単独のURLしか送出しないことにしました
  • ブックマークファイルとブラウザ実行ファイルのファイルパスの内部管理方法を変更しました.
  • 外部スクリプトの引数型チェックは,iCBM3起動時ではなく,外部スクリプトを使用する直前に行うことにしました.使用直前にスクリプトを編集しても,これで対応することができます.
  • ツリー表示とタグクラウド表示の管理は,今まで別々に行っていましたが,ソースコード的に補修が面倒なので,ひとつのブロックにまとめて行うことにしました.
  • 外観変更の際は,一時的にメインウィンドウを不可視状態にすることにしました.
  • オプション設定ダイアログを開くときに,通知ウィンドウが開いていたら,強制的に閉じる仕様にしました.
  • 中止ボタンも,有効・無効が状態に応じて変化するようにしました.
  • 起動時に存在しないことが判っているブラウザは,「オプション設定|ブラウザ1|登録」のチェックを解除しておいたほうが,誤解を招きにくいだろうから,そうすることにしました.
  • ソースコード中に澱のように残っていた,Netscape8関連のコードを完全に削除しました.
  • 速報ニュースや通知ウィンドウのコンテキストメニューで,「表示アイテムへ移動」を実行した際,アイテムへは移動するが,情報ボックスの内容が更新されない場合があるバグを修正しました.
  • 「既読・未読」コマンドを実行したとき,ツリーのFeedアイテムの新着数・未読数表示が更新されない場合があるバグを修正しました.
  • 「既読・解除」コマンドを実行したとき,「自動既読化タイマー」を中止していなかったバグを修正しました.
  • 「オプション設定|ブラウザ1|登録」で,ブラウザ名称をインライン編集しても,ツールバーボタンのツールチップやコンテキストメニューの名称に直ぐには反映されないバグを修正しました.
  • 「オプション設定|レイアウト|外観」でアピアランスを変更したとき,リストアイテムは今見えているアイテムだけ更新すれば充分なのに,全てのアイテムをスキャンしていた無駄を解消しました.

Ver.0.103b

  • エクスポート機能が,殆ど機能していなかった不具合を修正しました.私は普段エクスポート機能を使う機会が滅多にないので,この体たらくに全然気づいていませんでした.お恥ずかしい...
    • SleipnirSleipnir2に関しては,ダミーに押し込むデータにミスがあり,まったく読み込むことができない代物になっていた不具合を修正しました.
    • SleipnirSleipnir2のブックマークのフォルダアイコン色情報が,出力されていなかった不具合を修正しました.
    • Mozilla Firefoxのブックマークのフォルダのコメントが,出力されていなかった不具合を修正しました.
  • 空の情報ボックスや新規作成ダイアログの空欄部分に文字入力しようとすると,自爆してしまう致命的なバグを修正しました.前回導入した「リアルタイムハイライト」機能が,新たな問題を引き起こしていたようです.
  • 「進む」・「戻る」コマンドで表示履歴を辿るとき,アイテムリストの項目数が多く,かつ項目が選択されているとき,表示がちらつく問題を解消するため,表示アルゴリズムを大幅に改良しました.以前と比べると,キビキビ表示されるようになったと思います.また,副次的な効果として,フォーカスがツリー・リスト・タグクラウドのどこに遷移するか,表示タイミングによって気まぐれだったのが,解消されました.
  • 一部の例外を除き,殆どのArrayList, Queue, Stack, Hashtableをジェネリックコレクションクラスに置き換えました.世の中,既に.NET Framework 3.5だというのに,この時代に乗り遅れてる感じがたまらんでしょ....
  • 「オプション設定|ブラウザ登録」の編集を行うと,オートフォーカスが禁止されてしまうバグを修正しました.
  • 「オプション設定|ブックマーク登録」にて,ブックマークを着脱したとき,タグクラウド編集フラグがセットされていなかったバグを修正しました.

Ver.0.102b

  • 情報ボックスのハイライト表示は,今まで最初だけ行われていましたが,文字入力時もリアルタイムにハイライトが表示されるようにしました.
  • 新規作成・編集ダイアログのコメント欄にも,情報ボックスと同じテキストハイライトを施しました.
  • Feedアイテムを選択して,ツールバーのブラウザボタンを中クリックをするとFeedのトップページを,右クリックするとFeedのXMLを,ブラウザ表示するようにしました.この機能は「URL整形」修飾キーと組み合わせて使うこともできるので,いろいろな用途に活用できます.この仕様変更に伴い,「CapsLock」によるトップページ表示機能は廃止します.
  • スクラップ,ブックマーク,フォルダ,Feed,一般アイテム,チェックアイテム,メモアイテム,Feed記事アイテムのアイコンをユーザーが自由に追加・削除することができるようにしました.定義できるアイコン数に制限はありません.
  • インターネット検索メニューと親メニューのアイコン指定方法を,共通化して,画像ファイル(*.gif,*.png,*.jpg,*.bmp)・アイコンファイル(*.ico)・iCBM3内に読み込まれた画像リソースのどれでも設定できるようにしました.
  • ブラウザとウェブ検索のアイコンは,今まではイメージリスト(配列)に蓄積していましたが,個々のインスタンスに保持するようにして,関連する部分のアルゴリズムを大幅に改造しました.
  • 実行ファイルアイテムは,iCBM3が用意したアイコンではなく,実行ファイル自身のアイコンを取得することにしました.蛇足ながら,非同期処理で行ってます.
  • 一般アイテムと記事アイテムを,別々のアイコンで表示することにしました.検索・列挙を行ったとき,一目で見分けが付くので便利です.
  • アイコン関連の仕様変更に伴い,外観設定ファイル(Appearance.XML)の該当部分を修正しました.
  • Sleipnir,Sleipnir2,Lunascapeのブックマーク内アイテムのアイコン番号は,iCBM3側で編集しない限り,元の値を保持するようにしました.今までは,iCBM3で都合の良いように「丸めた値」にしていましたが,これだとエクスポートする際にオリジナルを再現できないと言った不満があったわけです.
  • ブラウザアイコンの表示が汚いのが我慢ならなくなったので,.NETのライブラリーではなく,WinAPIをコールして取得することにしました.実は,.NET v1.1の頃はライブラリールーチンがなかったので,仕方なくこの方法を使っていたのですが,結局こちらのやり方が良かったようです.
  • ウィンドウタイトルに表示されるアイコンが,アンチエイリアシングされずに汚かったので,自前で平滑化した画像を用意して表示することにしました.エクスプローラーならば,自動でアンチエイリアスしてくれるのにな〜!ブツブツ..
  • Feedを更新チェックするときは,必ず全記事を更新日時順(降順)に整列していましたが,廃止することにします.これからはFeedのXMLに記述された順序で先頭に挿入されます.これにより,Feedによっては記事が更新日時順にスタックされないケースが起こる可能性があります.具体的には,はてなアンテナのような,新しい記事が追加されることがなく,既存の記事が更新されるような場合が想定されます.しかし,このようなデメリットがある反面,更新チェック動作が早くなり,記事再表示の際にリスト選択フォーカスが奪われる問題が解消されるなどのメリットの方が魅力なので,改造に踏み切りました.
  • 更新チェックで新着記事が見つかった場合に「タグクラウドを最新の状態にする」機能を廃止します.前回の改造で,タグクラウドの新着強調機能を廃止したので,この機能はそれほど必要なくなったためです.
  • Feedを更新チェックエントリーから削除して休止Feedにしたとき,今までは更新日時をクリアしていましたが,更新日時はそのまま残しておく仕様にしました.
  • 整列をしたとき,アイテムの選択状態を維持するようにしました.
  • 「未読・既読」コマンドと「訪問日時をスタンプする」と「アイテムの移動・コピー」機能のアルゴリズムを全面的に見直しました.複数記事を選択して上記コマンドを実行する際に,親Feedの状態をいちいちチェックしていた無駄が軽減されました.
  • ツリーを選択したら,すぐに下位フォルダを展開表示する仕様にしました.
  • 検索・列挙を実行すると,ツリーを全て閉じるオプションを新設しました.
  • ブラウザ訪問履歴の出自表示は,%popupマクロを使わず,独自の方法でポップアップを表示することにしました.また,種別ごとにアイコンを使い分けるようにしました.
  • コメントの平文変換の際,タグ<img>と文字"%"を別の文字列に置換するのをやめました.
  • del.icio.usのブックマーク数表示のHTMLを生成するために,整形テンプレートの環境変数に"%mu"を追加しました.URLのMD5ハッシュ値文字列を返す機能をもちます.
  • URLやHTML整形テンプレートの環境変数に"%snapshot"を追加しました.「エクストラ|アイテム|スナップショット」のテンプレートを整形テンプレートに埋め込む機能があります.%htmlマクロの引数などに利用すると便利でしょう.くれぐれも,スナップショット自身には利用しないようにしてください.酷い目にあいます.
  • Feed記事URLを,Feed配信会社のリダイレクトリンクではなく,パーマネントリンクに変更する%linkマクロを新設しました.
  • あまり使い道がないので,%otherマクロを廃止しました.
  • 検索タイプのメニューも他のメニューと同様に,iCBM3実行中にオプション設定から編集できるようにしました.
  • オプション設定ダイアログのパラメータレイアウトをいくつか変更しました.
  • オートフォーカスは,検索メニューやコンボボックスを操作しているときだけ抑制することにしました.今まで,神経質になりすぎて,いろんなところで抑制をしていましたが,逆に使い勝手が悪くなっていたようです.
  • ツールバーのブラウザアイコンのキャプションを廃止しました.数字を表示したところで,あまり意味がないですから.その代わり,デフォルトブラウザアイコンに影をつけることにしました.
  • ツールチップのエラーメッセージ前に,"<エラー>"という接頭語を追加することにしました.
  • Sleipnir2のブックマークのフォルダアイコン番号が正しく取得されてなかったバグを修正しました.
  • 「アンカー4をコピー」と「アンカー5をコピー」が,まったく機能していなかったバグを修正しました.該当機能への分岐を書き忘れていたという,まったくもってオマヌケな不始末でした.
  • アイテムをドラッグ&ドロップで別場所にコピーする直前に,情報ボックスがフラッシュされておらず,編集内容が失われてしまうバグを修正しました.
  • リストアイテムを自分自身が所属するフォルダツリーにコピーしたとき,タイトルに"[複製]”が追加されていなかったバグを修正しました.
  • アイテムをドラッグ&ドロップで自分自身が所属するフォルダにコピーや移動する際に,そのフォルダに%sortマクロが宣言されていた場合,整列をしていなかったバグを修正しました.
  • Safariブラウザからのドラッグ&ドロップを受け付けていなかった凡ミスを修正しました.ついでに,IEやFirefoxのドラッグデータはUnicodeタイプ(FileGroupDescriptorW)を標準とすることにしました.
  • Safariブックマークの"BookmarksBar"と"BookmarksMenu"フォルダを特別フォルダの属性にしていなかったため,保護されていなかったバグを修正しました.

Ver.0.101b

  • タグクラウドにフォーカスがあり,タグが選択された状態で,ブラウザボタンがクリックされた場合,そのタグに属するアイテム全て(%filterマクロに従う)をブラウザ表示するようにしました.
  • タグクラウドで新着項目を含むタグは「斜体太字」表示をしていましたが,リアルタイムで状態が変化するわけでもなく紛らわしいので,廃止することにしました.
  • RichTextBoxのコンテキストメニュー,「先頭に移動」と「末尾に移動」のショートカットキーは,Windowsのお作法に従って,"Cntl+Home"と"Cntl+End"にしました.
  • 情報ボックスのハイライトテキストは太字表示することにして,色も2色つけることができるようにしました.
  • %filterマクロに複数文を記述する際に,改行で区切るのは見栄えがブサイクなので,セミコロンで区切って1行で記述することもできるようにしました.
  • %inhibitマクロを廃止して,同機能を%filterマクロの文(新名称:ignore)として包含することにしました.更に,ignore文は引数を持つことができ,タイトルやURLが同一だった場合は,更新を無視することができます.
  • 複数アイテムを選択して編集ダイアログを開いたとき,マクロ入力支援メニューに%keywordマクロがあっても,編集すべきURLがないので意味がありません.削除しました.
  • セパレータにまでツールチップを表示していたバグを修正しました.
  • RichTextBoxに表示されたテキストは,改行コードが"CR+LF"でなく"LF"に強制的に変換されてしまう,.netの厄介な仕様にまったく気づいてませんでした.内部的にはそれでも整合性はとれるので,さほど問題は起こらないのですが,エクスポートのときに若干不都合が生じます.対症療法的ですが,RichTextBoxからの返り値を無理やり"CR+LF"に戻す仕様にしました.
  • 情報ボックスのハイライトテキストの後の普通のテキストのフォントが,設定とは関係なく,"MS UI Gothic"になっていたバグを修正しました.
  • マクロ入力支援メニューを使ってマクロを記述したとき,キャレットの位置がずれることがあったバグを修正しました.また,長いテキストの末尾にマクロを記述した際,そこにキャレットがスクロールしなかったバグを修正しました.
  • Feedアイコンの幾つかを新しいアイコンと差し替えました.
  • スクラップブックマーク内のCEEK.JP NEWSに%filterマクロを定義して,"地域・地方"と"中国・朝鮮"のカテゴリーに属する記事を排除してみました.

Ver.0.100b

後述の通り,今回の改造で%update%appearマクロを廃止して,新しく%keywordマクロを新設しました.その結果,今までこれらのマクロを使用されていた皆さんは,バージョンアップの際に移行作業が必要となります.ご不便をおかけして,申し訳ありません.

詳細は,"[技術メモ]%keywordマクロへの移行?"をご覧ください.
  • Safari for Windowsに対応しました.ブラウザ訪問履歴の読み込みもできます.ただ残念なことに,Safariブラウザへ複数URLを送出することはできません.ホントは,Firefoxと同じトリック(間隔を空けて1つずつURLを送る)が使えたりするのですが,そのタイミングが不定期で,かなりイラッとするので諦めました.
  • %htmlマクロを機能強化しました.引数に「整形HTMLタグ」を記述すると,その書式に従って情報ボックスに表示されます.例えば,記事アイテムの「はてブ数」や「スクリーンショット」などを挿入するなんて使い方ができます.
  • 更新チェックアイテムの%updateマクロと%appearマクロを廃止して,新たに%keywordマクロを新設しました.このマクロは,文字列のキャプチャを正規表現をで行うため,以前の「蟹ばさみ法」や「鮪釣り法」に比べ,より自由度の高い設定が可能となります.
  • 上述のマクロ廃止に伴い,「蟹味噌」や「鉄火巻」も「キーワードマクロ編集」ダイアログに刷新されます.廃止する今になって考えると,「蟹」だの「鮪」だのと,随分さぶいネーミングだったと後悔することしきりです.物事は一時のノリで決めちゃいけないと,常々肝に銘じているつもりでも,やっちゃうんだよな〜,これが.
    んで,新しいマクロは正規表現形式になったので,マッチングする全てのキャプチャ文字列をハイライト表示する仕様にしました.
  • 情報ボックス(テキストモード)をRichTextBoxコントロールにしました.マクロ宣言などをハイライト表示したり,URL文字列をクリックするとデフォルトブラウザで表示することができます.まだ,イマイチ洗練されておらず,入力した文字列をリアルタイムで認識して,ハイライト表示するようなことはできません.我慢してね.
  • 情報ボックスにブラウザモードで表示されるアイテムは,情報ボックス上のタイトルをクリックすると,テキストモードに表示を切り替えることができるようにしました.
  • アイテムの新規作成・編集ダイアログのテキスト入力部分も,情報ボックスと同様にRichTextBoxコントロールにしました.
  • オプション設定の「検索・列挙|検索前|検索対象とするアイテム」を廃止して,「デフォルト検索修飾子」というオプションを導入しました.
  • 検索修飾子の「更新日時で整列(-m)」と「訪問日時で整列(-v)」を廃止しました.オプション設定の「検索列挙|検索後|検索結果の整列規則」と機能が被り,二重定義になってしまうと,ややこしい事態が発生する可能性があるので廃止しました.
  • %autotagsマクロの仕様を変更しました.今までどおり,引数なしの時は,ひとつのXML要素にひとつのタグが割り当てられているとみなします.つまり,要素中にスペースがあってもひとつのタグとみなすことになります.一方,引数(例えばスペース)がある時は,それをデリミタとした複数のタグがひとつのXML要素に記述されているとみなします.要するに,はてなブックマーク形式とdel.icio.us形式の違いを明示的に区別できるようにしたわけです.
  • %autotagsマクロでピックアップする要素に<subject>を追加しました."THE CODE PROJECT"からタグを拾うための処置です.
  • タグクラウドに表示する「英字タグ」は小文字表記に統一しました.今まで通り,%tagsマクロ側は大文字・小文字が混在していても問題ありません.
  • ブラウザ訪問履歴コマンドでリストアップされたアイテムが,どのブラウザからの出自かを確認できるように,コメント欄にブラウザ名を明記した%popupマクロを挿入することにしました.
  • 更新チェックで使うソケットの優先度をオプション設定から設定できるようにしました.
  • ニュース&通知ウィンドウが一時的に中断してから再開するまでの遅延時間をオプション設定から設定できるようにしました.
  • ウィンドウリサイズしたとき,左(フォルダツリー&タグクラウド)と上(アイテムリスト)のペイン幅を比例して変化させるか一定に保つかをオプション設定から設定できるようにしました.
  • 今まで,「HTML形式でブックマークを保存」する際の「整形HTMLタグ」や「CSS」は,オプション設定の「フォーマット|アンカー&HTMLタグ」にて編集することができました.しかし,1行テキストボックスでは編集しづらいなどの理由から,オプション設定から独立した別ファイル(HtmlFormat.txt)にまとめることにしました.
    で,なんか「フォーマット」タブがスカスカになったので,意味なくコピー用アンカーを3つから5つに増やしてみました.意味ね〜!
  • 「アピアランス|編集|インターネットオプション」は,あまり使い道がないので廃止しました.
  • アイテムのツールチップは,今まで「検索列挙系」のコマンドを実行したときのみ,親フォルダのフルパスを記述していましたが,通常の表示でも親フォルダ名を表示することにしました.実はこれには裏の理由があります.Windowsのツールチップは,表示テキストに改行が見つかると,横長のテキストを適当なところで折り返し表示する仕組みなのですが,今までのやりかただと「検索列挙系」以外のコマンドでは,びろ〜んと長いツールチップが表示されてしまう欠点がありました.そこで,わざと改行付きテキストを送るトリックで,これを回避することにしたわけです.
  • 外観設定ファイル(Appearance.XML)に以下の項目を追加しました.
    • アイテムリストのグリッドライン描画スイッチ
    • 情報ボックスのハイライトテキスト色
    • 情報ブラウザのハイライトテキスト色
    • ソースウィンドウ(%keywordマクロ編集)の各種設定
  • ブラウザ個別の訪問履歴検索が,私の凡ミスで動作できなくなっていたバグを修正しました.凡ミスとは,内部の分岐を逆に記述していたという,ホント言うのも恥ずかしいミスでした.発端は,内部コマンド名が省略名称だったことによります.プログラミング人生の出発点がFORTRANだったおっさんは,長い変数名を使うのが,未だに何だかモッタイナイ感覚をひきづっております.そんなわけで,「ブラウザ個別の訪問履歴の検索列挙系」の内部コマンド名を変更しました.
  • 更新チェック終了時にソケットのメモリ開放が上手く行われていなかった不具合を修正しました.
  • 今まで,表示し終わったアイテムのListViewItemインスタンスは,次回表示に再利用するためメモリに保持していましたが,省メモリを優先させるため,その都度廃棄することにしました.
  • Mozilla Firefoxのホームページのレイアウトが変わったので,"scrap.OPML"の該当マクロの引数をそれに対応するように修正しました.

Ver.0.99b

  • v0.89bで導入してv0.91bで挫折したオートフォーカス機能に再挑戦しました.今回は同じ轍を二度踏まないために,以下の方針(束縛条件)で構築しました.
    • 検索ボックスのコントロールにはオートフォーカスしない.
    • フォーカスや選択が動いて欲しくない動作をしたときは,一時的にオートフォーカス機能を無効にする.
    • タブキーでフォーカスを移動するときは,オートフォーカス機能を無効にする.
    • オートフォーカスするまでに若干のディレイ時間を設ける.言い換えれば,すばやくコントロール上を移動したときはフォーカスを遷移しない.
  • 速報ニュースの「前」・「次」ボタンをクリックしたときは,スクロールせずニュースを即時表示することにしました.
  • 速報ニュース上で,マウスホイールをグルグル回転すると「前」・「次」ボタンと同じ動作をするようにしました.はい,お察しのとおり,Sleipnir2のプラグインの機能をパクリました.
  • Feedの新着記事が通知ウィンドウの最大記事数より多い場合,今までは溢れた記事は表示されませんでしたが,サブページに分けて全新着記事を表示できるようにしました.
  • 通知ウィンドウに表示される項目にエラーがあった場合,エラーメッセージも表示することにしました.
  • 通知ウィンドウも%stealthマクロに従うことにしました.
  • 右クリックでアイテムをドラッグしたときは,今まではコピー動作に固定されていましたが,WindowsExplolerと同じく,コンテキストメニューを表示して,コピーか移動を選ぶことができるようにしました.ただし,ロックされた項目や編集不可の項目に関しては,今までどおり有無を言わさずコピーが行われます.
  • オプション設定の項目がゴチャゴチャして見難くなってきたので,かなり大規模の整理統合をはかりました.カテゴリーが移動した項目もあります.
  • 外観設定と同様に,コンテキストメニュー設定ファイルの編集もiCBM3が実行中に行えるようにしました.ただし,検索バーのメニューに関しては,iCBM3側の事情で除外します.
  • インターネット設定ダイアログをiCBM3からコールできるようにしました.情報ボックスがブラウザモードの時,表示フォントを変更するのに利用できますが,IE本体にも影響を与えてしまうので,あまり得策ではありません.たぶん,次回には消える機能でしょう.
  • 検索コマンドで,対象となるアイテムの設定に矛盾があり,リストアップ結果がおかしなことになるバグがあったので,検索ロジックを見直すことにしました.オプション設定で,検索対象をアイテムのみ・フォルダのみ・アイテムとフォルダの両方から選択ができるようにしました.また,検索修飾子を使って一時的にオプション設定と異なる対象を設定することもできます.
  • 上述した新しい検索修飾子は以下の通りです.
    • -b アイテムとフォルダを検索
    • -e アイテムのみ検索 → 以前の「Feed記事を除外」は廃止
    • -f フォルダのみ検索
    • -u 検索履歴に残さない
  • 日時に関する検索に利用するカレンダーボタンを,今風に検索テキストコンボに埋め込んでみました.
  • 速報ニュースのスクロール幅は,今までは決めうちしていましたが,ちゃんと文字の実サイズを計測してセットすることにしました.
  • 情報ボックスの文字色が,外観設定を反映していなかったバグを修正しました.
  • タイマーを使ったFeed記事のオートリード機能で,記事が既読になっても,「未読」ボタンが有効にならないバグを修正しました.
  • 編集ダイアログで,アイテムの閲覧しか許可されていないにも関わらず,マクロボタンが有効であったバグを修正しました.
  • マクロボタンやカレンダーボタンをクリックした時,ボーダーに枠線が残るのがどうにもエレガントさに欠けるので,ラベルコントロールをボタン代わりにして問題を解決しました.
  • 検索コンボ&メニューの配置を逆にしてみました.別に,これといった意図はありません.
  • いくつかのアイコンを変更しました.これも,上記と同様に意図はありません.

Ver.0.98b2

  • チェックアイテムに自動ポップアップ(%popupマクロの拡張)が仕込んである場合,更新でポップアップの内容が書き換わっても,編集フラグをセットしていなかったので,内容が保存されないという致命的なバグを修正しました.かなり,長い間潜伏していたバグのようです.すんまへん.

Ver.0.98b

  • オプション設定の各所に散らばっていた外観に関する設定GUIを全て排除し,設定パラメータそのものも,初期設定ファイル(iCBM3.XML)から専用設定ファイル(Appearance.XML)に移行しました.値の編集はエディタ(メモ帳など)で行います.はっきり言って退化してます.その代わり,かなり細かい設定まで行えるようになりました.要するに,設定項目が増えてGUIを作るのが,めんどくさくなったってのが事の真相です.
  • ステータスバーにもスキンを適用できるようにしました.従来のようにスキンを被せない外観を選ぶこともできます.また,ボタンやドロップダウンボタンにアイコン画像を使うことにしました.
  • 検索コンボのボタン色にグラディエーションを復活させました.やっぱり,完全フラットな見た目は淋しかったです.従来は固定色でしたが,上記の設定ファイルからユーザーが好みの彩色をすることができます.
  • 更新チェック中にステータスバーに表示する情報は,接続数だけにしました.
  • 更新チェック後の新着通知は,メインウィンドウが最小化されている場合のみ表示するオプションを追加しました.また,手動で更新チェックを行った場合は,自動で新着通知を表示しないことにしました.
  • 更新チェック後に通知ウィンドウが立ち上がるまでの時間を,初期設定ファイルから設定可能にしました.
  • 通知ウィンドウの表示書式を変更しました.Feed記事ごとの更新日時を表示したり,アイテムや記事やリワインドボタンにアイコン画像を使うことにしました.
  • 通知ウィンドウの表示位置の設定(コンボボックス)の並びを変更しました.従来は,CSSみたいに時計回りの順でしたが,下の左右,上の左右という順番にしました.
  • 通知ウィンドウのアニメーション中のちらつきを抑えるため,表示関連の部分を全てWinAPIで書き換えました.
  • 更新チェック後に速報ニュースが再起動するまでの時間を,初期設定ファイルから設定可能にしました.
  • 更新チェックが開始するとき,通知ウィンドウが開いていたら,強制的に閉じる仕様にしました.
  • 手動で全エントリーの更新チェックを行った場合は,タイマー更新時間をシフト(後刻にずらす)することにしました.
  • 分類タグの列挙方法がリストビューだった頃,関連タグへジャンプしたり,表示履歴を辿ると,それにシンクロしてタグリストの選択が変化&選択タグが必ず視界に収まるようにリストをスクロールする仕組みを構築していました.しかし,タグクラウドになって,その仕掛けは継承されませんでした.実は,タグが記述されたHTMLエレメントを辿る方法が,原理上非同期な動作を要求されるので,手間取ってしまい前回は導入を見合わせたのでした.今回,やっと実現できたので公開します.
  • タグクラウドの列挙順を,昇順・降順から選択できるようにしました.
  • タグクラウドのコンテキストメニューがタグ名を取得するために,座標から該当HTMLタグを探して,その中のテキストを抽出するという,とんでもなく面倒な方法をとっていました.ActiveElementというプロパティを使えば,一発で問題解決するとは..なんてこった.
  • 「アイテム/分類タグ」検索において,検索修飾子や二重引用符による単語指定や正規表現によるマッチングが,尽く機能していなかったバグを修正しました.
  • 検索結果を整列する設定は,整列なし・タイトル・更新日時・訪問日時から選択できるようにしました.
  • 検索修飾子に,「更新日時による整列(m)」と「訪問日時による整列(v)」を追加しました.
  • 最近訪問したアイテムの列挙条件を決める時間範囲をオプション設定からセットできるようにしました.
  • メニュー設定ファイルの仕様が変更されたとき,今まではそれを自動で差し替える機能がありませんでした.ちょっとしたトリックを使って,自動差し替えが行える仕組みを導入しました.外観設定ファイル(Appearance.XML)も同じ仕組みが適用されます.
  • 編集ダイアログ上で,チェックアイテムの%appear,%updateマクロの引数が編集されたときは,編集後すぐに再チェックを行う仕様にしました.
  • Feed更新チェックの際,XMLの文法ミスでエラーが起こった場合,エラー情報をオミットしていたバグを修正しました.
  • 起動時に自動更新チェックが始まる前に,速報ニュースが一瞬だけ開始されてしまうバグを修正しました.
  • 起動時に自動更新チェックを行わない設定の場合,あるいは更新チェックのエントリーがひとつもない場合に,速報ニュースが開始されないバグを修正しました.
  • 今まで,更新チェック中はアプリを終了できない仕様でしたが,リンク抽出やFeed自動探索などが行われている場合も終了しないようにしました.
  • iCBM3は実行中様々なタイマーが動いているのですが,正直動作はするけどエレガントでないコーディングでした.今回,使わないリソースはなるべく早めに回収することを主眼に,全ての該当コードを書き直しました.
  • オプション設定の仕分けタブの「表示方法」という呼称を「シーケンサー」に変更しました.今までの呼び名は,どうも喉に刺さった魚の小骨のように違和感があったのですが,新しいのも何かしっくりこないな〜!

Ver.0.97b

  • タグ関連のコマンドやコントロールを大改造しました.長くなるので,小項目に分けて以下に記します.
    • タグの表示をリストからクラウド形式に変更しました.クラウドのフォントサイズは,(タグの多重度−閾値)/ステップ数で決まる仕組みにしました.
    • それに伴い,%clusterマクロを廃止しました.クラウド表示と長たらしいクラスターの親和性が著しく悪いからです.というのは,表向きの理由で,前々からクラスターはイマイチだなと思っていて,止め時を見計らっていたのが本音です.
    • ツールバーの「分類タグ」ドロップダウンボタンから,「タグを除去」と「クラスターを除去」コマンドを廃止しました.
    • アイテムの%tagsマクロからピックアップするタグ以外に,「デフォルトタグ」という概念を導入しました.よく使うタグなどを別に設定しておくと,ノルマルタグのクラウドとは別に,デフォルトタグだけのクラウドとして表示されるので使い勝手が良いと思われます.
    • クラウド表示から排除するタグを正規表現で指定するオプションを追加しました.ソーシャルブックマークの性質上,様々な人が様々な基準でつけるタグ名ですが,時には「なんじゃこりゃ」というタグがあります.そんなタグをクラウドに表示させないための工夫です.この機能と閾値を駆使すれば,クラウドに「ゴミタグ」を溜めないようにすることができるのではないでしょうか?
    • タグは大文字・小文字を区別しない仕様に変更しました.
    • コンテキストメニューに「タグをコピー」コマンドを新設しました.
  • %snapshotマクロを新設しました.このマクロを宣言したアイテムを選択すると,情報ボックスにウェブサイトのスナップショットを表示します.以前に,掲示板でスナップショット機能をリクエストされたときは,面倒だからと丁重にお断りしたのですが,時代は移り変わり,ウェブサービスで簡単にスナップショットを取得できるようになったので,導入してみました.ま,ウェブサービスなので,すぐに取得できない場合もありますが,そこらへんはご愛嬌ということで..
  • %excludeと%includeマクロを廃止しました.オプション設定の複数表示に関する設定も廃止しました.これらの代わりに,「フィルタステートメント」として一括記述できる仕組みにしました.フィルタステートメントは,オプション設定に記述するフィルタを基軸に,フォルダごとに記述する%filterマクロを組み合わせて使うことができます.従来は不可能だったincludeやexcludeの条件を複数組み合わせて記述できるので,より詳細な制御を行うことが可能です.
  • 上記のフィルタステートメントのincludeやexcludeの条件を,Feedアイテムの更新時にも適用するようにしました.これにより,Feedに挿入された広告などをリジェクトしたり,あるいは興味あるキーワードが含まれる記事のみを読み込むというような設定が可能になります.
  • Feed記事を情報ボックスに表示したら既読とみなすオートリード機能は,既に既読化した記事については反応しない仕様に変更しました.また,既読になるまで,適当なタイムラグ(メールソフトなどに見られるような)をつける機能も設けました.
  • ツールバーの「変換」ドロップダウンボタンの「タイトルを置換」と「コメントを置換」コマンドは,今まで正規表現パターンを指定するやり方しかできなかったのですが,正規表現を使うやり方は一般的ではないようなので,検索バーと同じ記法に変更しました.つまり,通常は検索文字列そのものを記し,正規表現を使いたいときは修飾子"r"を指定するというやり方です.また,英字の大文字・小文字の違いを無視する修飾子"i"を指定することもできるようにしました.
  • ツールバーの「変換」ドロップダウンボタンの「タイトルを置換」と「コメントを置換」の入力テキストを,コンボボックスに履歴として残すことにしました.
  • アイテムのツールチップは,検索・列挙関連のコマンドを実行した場合,「所属フォルダ名」を表示していましたが,「長いタイトル名」や「ポップアップ」や「エラーメッセージ」をブロックしてしまう弊害が起こります.そのような状況を改善するようにアルゴリズムを修正しました.しかし,新しい方式は多少やりすぎの帰来があって,本来ツールチップが必要ない項目にまで表示を行ってしまい,ちょっと鬱陶しいです.更なる改善の余地ありかな.
  • コンテキストメニューや検索タイプメニューの定義を各コントロール(パーツ)ごとに別ファイルで行うことにしました.その結果,ユーザー自身が定義していたメニューが,一旦リセットされますがご了承ください.前の定義ファイル(menu.XML)は消えずに残るので,エディタを使って移し変えることができます.
  • CCBと同じソケットのタイムアウト&KeepAlive設定を採用しました.
  • Atom1.0の新フォーマットへ対応しました.いつもAtomのチェックをしている眞鍋かをりのココだけの話のココログは,ず〜っとAtom0.3のままだったので不具合が起きていることにまったく気づきませんでした.また,RFCやANSIの規格外の日時フォーマットでも解釈できるものは,なるべく拾うように心がけました.これにより,該当サイトでFeed記事の更新日時が異常だった問題が解消されます.(駄目な場合もあります.)
  • 速報ニュースに表示するアイテムがなくなっても,ある条件が重なると終了せず,無限ループに陥ってしまうバグを修正しました.調べてみると随分前のバージョンから起こっていたようですね.実は,無限ループと言ってもスレッド内で起こっているので,ソフト自体は固まらず若干CPU使用率が上昇する程度だったのと,条件が変われば何事もなく動作し始めるので,今までまったく気づかずにいました.
  • ツールバーの「変換」ドロップダウンボタンの「平文変換」・「コメントクリア」・「タイトル置換」・「コメント置換」コマンドを行っても,内部編集フラグをセットしていなかったので,結果が保存されないという大失態を見過ごしていました.すんません.修正しました.
  • ネット接続関係のエラーメッセージに,デバッグ用のスタックトレース情報を残したまま表示していた不始末を修正しました.

Ver.0.96b

  • 速報ニュースに表れないようにする隠密マクロ %stealthを新設しました.あまり重要度の高くないアイテムが速報ニュースを占拠して,重要度の高いニュースの表示が後回しにされると言う経験はありませんか?私はあります.そんな問題を解決するために作成しました.
  • ツールバーの列挙ボタンに「休止Feed列挙」コマンドを追加しました.コンテキストメニューにも同機能を追加可能です.
  • ツールバーの変換ボタンに「コメントをクリア」コマンドを追加しました.コンテキストメニューにも同機能を追加可能です.
  • Lunascape 4.5 でブックマークの書式が大幅に変更されたので対応しました.まさか,エンコードまで変更してUTF-8にするなんて...
    新機能である「ソーシャルブックマークGaiaと連携した共有ブックマークアイテム」の読み込みも実現しています.ただし,iCBM3内で共有ブックマークアイテムは静的アイテムとして取り扱われます.つまり,Gaiaとの動的な同期はできません.Gaiaとの同期は,ブラウザLunascapeにお願いし,iCBM3側ではそのお零れを頂戴しようってな寸法です.余談ですが,Gaiaを使っていると,時々レスポンスが極端に悪くなる「沢尻エリカ様」状態になります.サーバーが貧弱なんでしょうかね?
  • OperaとSleipnir2のブックマークは,ブラウザ側の整列設定に従ってアイテムを読み込むことにしました.ただし,全体との整合性をとるため,整列状態を完全に再現できるわけではありません.また,未解決のバグのせいで整列規則が守られない場合もあります.詳しくは,「[技術メモ]ブックマークの自動整列?」をご覧ください.
  • 長らく育児放棄状態だった「外部スクリプト」を全面的に書き換えました.また,すっごくいい加減な癖に融通の利かない「引数」の仕様も,柔軟対応できるようにしました.過去のバージョンと互換性はないので,古いスクリプトは使えなくなります.
  • ドロップポケットをクリックすると,それぞれに対応した「ドロップコマンド」を引数とした任意のスクリプトを実行することにしました.例えば,スクリプトに「Sleipnirから登録.vbs」を設定すると,Sleipnirのアクティブタブから,Feedや表示ページを登録したり,リンク抽出を行うことができます.この改造に伴い,従来あった(まったく無意味だった)「オプション設定ダイアログを開く」機能は廃止します.
  • キーワード前に修飾子"-a"を付加すると,論理積(AND)条件で検索を行うことができます.
  • livedoor辞書検索が,複数辞書同時検索ができない仕様に改悪をしたためメニューから外しました.Reference.comの英英辞典検索とYahoo!辞書の全辞書検索を追加しました.
  • 検索コンボボックスの外観を,システムのテーマに連動した色合いのフラットスタイルにしました.Office2003の外観は,さすがに飽きました.また,検索キーワードコンボボックスに関しては,フォーカスの有無によっても外観が遷移するようになりました.
  • 暗色系のスキンを被せると,ツールバーのキャプションや情報ボックスのタイトルが黒色だと見づらくなるので,オプション設定から任意色を設定できるようにしました.
  • 更新日時・訪問日時の表示を「月日時分」だけに簡略化しました.内部表現は今までどおりの「年月日時分秒」を保持しているので,整列などに支障は起きません.
  • ブックマークを何らかの理由で読み込めなかった時,ステータスバーに「エラー件数」と表示していましたが,「エラー」という言葉は,何か問題が起きたまま解決されていない妙な不安を抱かせるので,「登録解除」という表現に変更しました.まぁ,私が気にしすぎてるだけかもしれませんが.
  • 「オプション設定|アイテム|終了時にブラウザブックマークもリストアする」スイッチがオンの時は,iCBM3側の内容が優先されると判断し,ブックマークからのリロードを禁止する仕様に変更しました.
  • 「オプション設定|ファイル登録|お気に入り/ブックマーク」で登録の解除や削除をするとき,スクラップやブックマークの編集内容が,ある条件下で(正直に言うと殆どの場合)保存されなかったバグを修正しました.かなり,深刻なバグを長期間放置していたようです.すんまへん.
  • マクロの二重定義を行うと自爆するバグを修正しました
  • 「リンク抽出」や「Feed自動検出」の際に,タイトル・URLがHTMLデコード・URLデコードされていなかったバグを修正しました.
  • 検索タイプのタイトルが表示幅より大きかった場合,無節操にはみ出したまま描画していたバグを修正しました.
  • Lunascape4,3,2以外の例えばLunascape Pocketなどのブラウザを登録しようとすると,ディレクトリ配置構造を勘違いして,無茶苦茶な「パス表記」になってしまうバグがあったので修正しました.また,Lunascape4,3,2のブックマークが所定の位置にない場合も,同様の症状が起こるので修正しました.
    ところで,修正をしたことによる副次的効果があります.Lunascapeが今後5,6,7,..とメジャーバージョンアップしていっても,初期設定ファイルの「簡略パス」を修正するだけで,iCBM3本体の変更は必要なくなりました.とは言っても,Lunascapeのバージョンアップでブックマークの書式自体が変更されたら,本体の改造をしなければならなくなるので,元の木阿弥ですがね.

Ver.0.95b

  • ブックマークをHTML形式でエクスポートする場合,今まではFeedはトップページへのリンクを出力するだけでしたが,新しくFeed記事も出力できる「拡張HTML形式」という選択肢を追加しました.また,記事(コメント)がHTMLで取り込まれているならば,そのフォーマットのまま出力することができるようにしました.こんな感じ
  • 選択アイテムのアンカータグをクリップボードにコピーしたり,ブックマークをHTML形式でエクスポートする時の,書式設定方法を抜本的に刷新しました.URLやタイトルやコメントの環境変数を用いたテンプレートでアンカーを記述することにより,非常に自由度の高い表現が可能となります.例えば,HTML形式だけでなく,Wikiのリンク表現なども記述することが可能です.更に,環境変数にはURLエンコードやHTMLエンコードを事前に施しておくか否かを選択できるので,HTMLに記述する場合やクエリー文字列として記述する場合に使い分けることができます.
  • 上述の如くアンカーの表現法が変更されたので,クリップボードへのコピーの名称をを,「タグ1としてコピー」から「アンカー1をコピー」などと変更,コマンド名も「CopyTag1」から「CopyAnchor1」と変更しました.更に,この系統のコマンドを2つから3つに増やしました.
  • 前バージョンで導入した,選択アイテムをブラウザに送るときのURL整形は,全ての修飾キーの組み合わせ(7個)に対応するようにしました.また,テンプレートを記述する環境変数は,上記のコピーやエクスポートと同じものが全て使えるようにしました.
  • 上記のURL整形送出の修飾キーに全ての組み合わせを割り当ててしまったので,Feedのトップページを表示するための修飾キー(Shift)が使えなくなりました.それ故,こちらにはCapsLockを割り当てることにしました.
  • URL整形をせず普通にアイテムをブラウザに送る際に,日本語部分が混じっているならば,URLエンコード(UTF-8)するか否かを,オプション設定で選択できるようにしました.
  • 修飾キーを用いたURL整形送出を,「速報ニュース」や「新着表示ウィンドウ」でも使えるようにしました.
  • "グループアイテム"は,使い勝手が悪く&私的には使い道があまり感じられなかったので,廃止しました.
  • HTML形式でエクスポートする際,HTMLヘッダに<meta http-equiv="Content-Style-Type" content="text/css">を挿入しました.別になくても問題ないんですけどね.
  • インターネット検索メニューに,Googleブック検索を追加しました.
  • Feed記事の更新日時が「2007-06-29T03:34:13Z」って感じの表現であった場合,GMT補正できていなかったバグを修正しました.
  • チェックアイテムの更新日時の「時差」を初期設定ファイルから設定できるようにしました.これにより,日本時間(GMT+9時間)以外も表示できるようになるので,海外でiCBM3を利用することができます.
  • 検索キーワードを""(ダブルクォテーション)で囲むとブロック単位で検索が行われる仕様なのですが,途中にスペースを含むとブロックが途切れてしまうバグがあったので修正しました.

Ver.0.94b

  • 情報ボックス(コメント)内のURLテキストを選択して,ブラウザボタンをクリックすると,該当サイトをブラウザ表示するようにしました.
  • 情報ボックス(コメント)内の任意テキストを選択して,新規導入したツールバーの「選択文字列を検索」ボタンをクリックすると,検索が行えるようにしました.
  • アイテムを選択してブラウザボタンをクリックするときに,コントロールやAltやシフトキーのような修飾キーを押していると,アイテムのURLを整形してブラウザに送り出すことができるようにしました.この機能により,例えば,はてなブックマークへの登録やコメント表示が,ワンアクションで行えるようになるわけです.
  • iCBM3の検索機能は,検索キーワードと検索対象をセットにして履歴に記憶する仕様です.しかし,正規表現スイッチの値は記憶されずに放置状態でした.そこで,正規表現や新たに追加した検索条件を,検索キーワード内にフラグとして記入することが出来るようにして,上記の問題を解消しました.これに伴い,「正規表現」スイッチと「オプション設定|エクストラ|ゴミ箱を検索対象から除外する」スイッチは,無用の長物となったので,廃止しました.
  • Feedやチェックアイテムの自動更新チェック間隔を%cycleマクロで個別に設定している場合,例えば起動時チェックで「新着」が見つかったまま読まずに放っておいても,そのアイテムのチェック周期が巡ってくるまで,ずーっと「新着」状態のままになります.「新着ウィンドウ」や「速報ニュース」を表示する際に,これらの「なんちゃって新着」は,本当の「新着」と混ざってしまい,始末に悪いと思うんです.わたし的には.そこで,このように読まれなかった新着アイテムは,基本周期ごとに「未読」に格下げすることにしました.どうでしょうか?
  • 上記の「ブラウザへのURL整形送出」のために,オプション設定のタブ構成を増やし,パラメータの並びを整理しました.
  • ツールバーボタンやコンテキストメニューの「URLを検索に転送」・「タイトルを検索に転送」コマンドは,あまり使い道を見出せないので廃止しました.
  • 蟹味噌&鉄火巻エディタは,ワードラップモードで表示するようにしました.なんで,今まで使いづらい「折り返し無し」を選んでいたんだろう?自分でも首をひねってしまう..
  • Feed記事のタイトルや作者要素などがHTML書式で記述されていた場合,要約文を平文変換しても,HTMLが残留してしまうバグを修正しました.
  • 休止Feedは,記事の更新日時は保持するが,親Feedの更新日時はマスキングする仕様です.(表示しても意味ないですから.)しかし,記事をブラウザで表示(訪問)すると,親Feedの更新日時が復活スタンプされてしまうバグを修正しました.

Ver.0.93b2

  • 使用環境によっては,ツリーやリストのフォントサイズを変更した場合,MS UI-Gothicフォントは汚くて読みづらいことがあるので,フォントファミリーをユーザーが選択できるようにしました.とは言っても,ビットマップフォントである限りは,あまり変わり映えはしませんけど..
  • ツリーやリストと同様に,「速報ニュース」や「新着通知」のフォントファミリーもユーザーが設定できるようにしました.ただし,こちらはあまり頻繁に変更する機会がないと思うので,オプション設定ダイアログからではなく,初期設定ファイルを直接編集して頂くことになります.(要するに手抜きです.
  • 情報ボックスのタイトルと左ペインのタブのフォントサイズは,ツリーやリストのそれとは独立させ,固定値にしました.
  • 通知ウィンドウの表示位置をデスクトップエッジから少し離しました.
  • フォントサイズを変更すると,ツリーアイテムの下端表示が切れてしまう不具合を修正しました.

Ver.0.93b

  • ツールバーとコンテキストメニューに,「ホームポジションへ移動」コマンドを追加しました.アイテムが増えてきて,それを小まめにフォルダ分類したとしても,日々の作業では意外に決まった定番フォルダにアクセスする機会が多いと思います.そこで,ブラウザのホームページと同じように,ワンクリックでそこに移動できるコマンドを設けました.ホームポジションには,フォルダツリーといった物理的位置はもちろんのこと,検索・列挙のようなコマンドを登録することもできます.
  • コマンドライン引数に"GOTO"コマンドを追加しました.iCBM3の外部から任意のフォルダへ移動するコマンドを送ることができます.
  • ツールバーとコンテキストメニューに,アイテムのタイトルやコメント文字列の変換加工を行うコマンド,「コメントを平文変換」・「タイトルを置換」・「コメントを置換」を新設しました.
  • HTML形式でエクスポートを行う際,スタイルシート(CSS)を使って書式設定が行えるようにしました.それに伴い,リンクタグ(アンカー)のテンプレートのパラメータの構成を変更しました.
  • HTML形式でエクスポートを行う際,アイテムのキャプション変数にコメント(%c)のほか,更新日時(%m)&訪問日時(%v)を記述できるようにしました.
  • HTML形式でエクスポートを行う際,アイテムのキャプション変数に展開されたコメントは,元がHTML形式であっても平文変換して出力することにしました.
  • HTML形式でエクスポートを行う際,リンクではありませんが,メモアイテムも出力できるようにしました.
  • ツリーとリストのフォントサイズと情報ボックスのフォントサイズを独立して設定できるようにしました.
  • オプション設定「ローカルアイテムの検索結果は訪問日時で整列する」スイッチがオフの場合,タイトルで整列するのはやめて,フォルダツリーの登録順に表示するようにしました.
  • 通知ウィンドウのチェックアイテムやFeedのタイトル横に更新日時を表示するようにしました.
  • リンク抽出の抽出元アドレスを記録する場合,メモアイテムを作成していましたが,結果を格納するフォルダのコメント欄に書き込むことにしました.
  • メモアイテムや実行ファイルについて,コピーコマンド(タイトル・コメント)が実行できなかったバグを修正しました.

Ver.0.92b

  • ツールバーの<コピー>ボタンとコンテキストメニューに,「URLを検索に転送」・「タイトルを検索に転送」コマンドを追加しました.アイテムのURLやタイトルに関して検索を行う際,今まではアイテムからコピーして検索ボックスにペーストを行うという二手順が必要でしたが,このコマンドを用いると一手順で完了させることができます.
  • インターネット検索メニューに,「はてなブックマークのURL絞込み検索」・「はてなブックマークのURLエントリー検索」・「livedoorクリップのタグ検索」を追加しました.
  • インターネット検索のクエリーエンコード表記を空文字にすると,エンコードせず送り出すようにしました.上記の「はてなブックマークのURLエントリー検索」では,URLをエンコードせずに送り出す必要があるため,このようなオプションを用意しました.
  • 通知ウィンドウの背景色(グラデーション)をオプション設定から設定できるようにしました.また,速報ニュースと共用だったフォントサイズを独立に設定できるようにしました.
  • 初期設定ファイルの色に関する表記を16進RGB形式に変更しました.
  • 「最近訪問したアイテム」コマンドにおいて,Feedは記事を展開してリストアップした方が便利なので,そうしました.

Ver.0.91b

  • いろいろと試行錯誤してきた「マウス連動型オートフォーカス機能」ですが,キーボードによるフォーカス移動とのコンフリクションや,ツールバーへマウスを移動する際に意図していない部分にフォーカを奪われてしまう弊害など,克服できないわけではないけど,更なる小細工を重ねると「ババァの厚化粧状態」になって身動きとれなくなる恐れがあるので廃止することにしました.
  • 「前回終了時の再現」において,Ver.0.90bでは「新着アイテム列挙」と「展開して新着列挙」は無意味なので無視をしていました.で,考えてみたら「未読アイテム列挙」・「展開して未読列挙」・「エラーアイテム列挙」も意味がない,もしくは有りえないので無視することにしました.
  • <オプション設定|表示方法|新着通知>の各種パラメータは,通知ウィンドウを手動で表示させることもあるので,条件によらずいつでも設定可能であるべきだと判断し,常時有効にしました.
  • 通知ウィンドウのコンテキストメニューを立ち上げたとき,ウィンドウが半透明になってしまうバグを修正しました.また,コンテキストメニューのキャンセルをウィンドウ外クリックで行った場合,ウィンドウが半透明にならず,アニメーション(紙芝居)のリスタートタイマーが起動されないバグを修正しました.
  • 追跡モードのリンク抽出において,<オプション設定|リンク抽出|追跡抽出|子リンクのみ>のスイッチがオフであっても,同じドメインのリンクしか追跡していなかったバグを修正しました.
  • ブラウザの履歴列挙・検索結果アイテムを別フォルダに移動する際に,編集不可を示すアイテム色をリセットしていなかったバグを修正しました.
  • カレンダーダイアログがタスクバーに表示されていたバグを修正しました.こんなヘマを今まで気づかずにいたなんて,はずかしいぃぃ..

Ver.0.90b

  • 今まで,前回終了時の再現は「フォルダーツリーの選択」のみでしたが,「検索や列挙によるリストアップ」も行えるようになりました.ただし,「新着アイテム列挙」と「展開して新着列挙」は,原理上起動直後(更新チェック前)にはありえないので無視します.
  • 前回導入した,マウス移動に連動してツリーやリストをフォーカスする「オートフォーカス機能」は,切り替わり条件が敏感すぎて他の操作の邪魔をする場合が多く見られたので,スペックを変更しました.具体的には,(1)ツリーやリストのアイテムが選択されていない場合はオートフォーカスを行わない,(2)項目タイトルのインライン編集時はオートフォーカスを受け付けない,(3)検索テキストコンボにはオートフォーカスしないことにしました.本当は,「フォーカスするまでに遅延時間を設ける」という仕様変更も考えたのですが,そうすると今度は操作のサクサク感が失われると判断して見送りました.
  • アイテムをコピーする際に,項目のロック状態を引き継ぐと,いろいろ不都合が起こるので解除することにしました.
  • ゴミ箱内アイテムは,今まで編集&移動不可という仕様でしたが,なにかと不自由な場面があったので,上記操作を解禁しました.ただし,更新チェックやアイテムのロックは,今までと同じく禁止しています.
  • Operaのツールバー登録アイテムは,「ツールバー」のような特定のフォルダに登録するのではなく,個々のアイテムにフラグが存在し,ブックマーク内の配置とは独立した配置ができます.しかし,iCBM3内ではこの特性が生かされず,他ブラウザのツールバーフォルダと同じように編集&移動不可としていました.そこで,今回改良を加え,編集&移動を行なってもツールバー項目としての登録情報が破壊されないよう工夫をしました.
  • 通知ウィンドウの表示位置が上側の場合,アニメーション方向をスクロールアップからダウンに変更しました.
  • 検索や列挙でリストアップされたアイテムを選択して更新チェックした場合,情報ボックスの内容が新しい内容に更新されないバグを修正しました.
  • ブックマークをFirefoxやHTML形式でエクスポートする際に,二重引用符を含むアドレスのエスケープが出来ていなかったバグを修正しました.
  • Feed Burnerが提供するFeedの仕様がなんだか変則的な記述に変更されたので,サマリーから要約文を取得できなくなってしまったバグ(?)を修正しました...が,Feed Burnerさん,こっそり仕様を元に戻したみたいです.なんだよ〜!意味ないじゃん.たぶん,苦情が相当あったんだな..
  • 「Feed記事を情報ボックスに表示したら,訪問&読了したとみなす」オプションがオンの状態で,「未読化」コマンドを実行しても,上記オプションが作用して未読化できない問題を解消するため,未読化を行ったアイテムは選択を解除することにしました.う〜ん,なんかエレガントじゃない..
  • Operaのブックマークのゴミ箱フォルダがツールバーに登録されている時,リストアやエクスポートするとツールバー登録情報を消失してしまうバグを修正しました.

Ver.0.89b

  • 通知ウィンドウや新着ニュースのコンテキストメニューに「表示アイテムへ移動」コマンドを追加しました.対象となるアイテムのツリー&リストへ移動します.
  • 情報ボックスでの編集は,別のアイテムに移動したとき自動的に反映(保存)される仕組みですが,情報ボックスのタイトルをクリックすると即時に反映される機能を設けました.
  • 「マウスの動きに連動して,直下のコントロールをフォーカスする」インターフェースを導入しました.コントロールをクリックしてフォーカスを得る動作が必要なくなり便利な反面,めまぐるしく情報ボックスの表示内容が変わるので慣れるまでは逆に使いづらいかもしれません.それため,このインターフェースを使うか否かをオプション設定で選択することもできます.
  • 通知ウィンドウの表示位置をデスクトップの四隅から選択できるようになりました.
  • 通知ウィンドウ外にマウスが出たら半透明にするようにしました.記事の文字を見やすくするため,最初の透明度より若干不透明に近い表示をしています.ま,一言で言えば,あのソフトのマネです.
  • 通知ウィンドウや速報ニュースのコンテキストメニューが開いている間は,ターゲットアイテム色をリセットしないことにしました.
  • 速報ニュース上にマウスがいる場合や,コンテキストメニューが開いている間は,ニュースを静止させ次のニュースに移動しないことにしました.

Ver.0.88b

  • %htmlマクロを新設しました.通常,Feed記事は平文に変換されて保存されますが,このマクロを親Feedアイテムに定義しておくと,HTMLのまま保存され,情報ボックスへの表示はブラウザコンポーネントで行われます.言うまでもなく,普通のRSSリーダーでは,こちらの方が普通の機能なんですけどね.iCBM3では,記事にも書き込みができるというコンセプトがあるので,記事の平文表示をデフォルトとしています.用途によって,使い分けてください.そうそう,ブラウザコンポーネントを搭載したことで,メモリ使用量がとんでもないことになっています...ありゃま〜.
  • 「Feed記事を情報ボックスに表示したら,訪問&読了したとみなす」オプションを追加しました.チェックアイテムの場合は,ブラウザで訪問しないと意味がないので,このオプションの対象には含みません.
  • 読まれずに放置されたFeed記事やチェックアイテムを,時限を設けて強制的に既読化するオプションを設けました.オプション設定から一括設定したり,%expireマクロを使ってアイテム個別に設定することができます.例えば,ニュースFeedのフォルダの底に澱のように溜まった未読記事を一気に掃除するときに役立ちます.また,テレビ番組のFeedに%expireマクロを定義しておけば,放送時間までは未読,放送時間を過ぎたら既読に自動的に切り替わります.
  • いくつかのインターネット検索エンジンを新たに追加しました.
  • チェックアイテムに%popupマクロが定義されている場合,通知ウィンドウにその内容を表示するようにしました.部分チェックでキャプチャされたテキストを知ることができるので非常に便利です.
  • 一部のFeedで未来の時間の記事が配信されることがあるのですが,そういう記事を受信してしまうと,その間の時間の更新記事が現仕様では受信できなくなってしまいます.そこで,仕様を少し緩めて,全ての記事をチェック対象にすることにしました.若干,記事を取り込む時の効率が悪くなってしまいますが我慢しましょう.
  • 新着通知ウィンドウにマウスが侵入するまでは半透明表示することにしました.はぃ,お察しの通り,あのソフトの真似です.
  • 検索・列挙を行ったときは,リストアイテムのツールチップに親フォルダのフルパス名を表示するようにしました.
  • メニュー定義ファイルの名前を"define.XML"から"menu.XML"に変更しました.バージョンアップしてお使いの方は,お手数ですが,ユーザーディレクトリ内の該当ファイルをご自分でリネームしておいてください.
  • Feed記事をフォルダ外に移動したとき,親Feedの最新の更新日時や訪問日時が補正されていなかったバグを修正しました.
  • メモアイテムを情報ボックスで編集すると更新日時が変更される仕組みなのですが,他の種別のアイテムの更新日時まで変更してしまっていたバグを修正しました.
  • 「オプション設定-ファイル登録」でブックマークを着脱した際に,まだアプリが不安定になることがあるようです.根本原因が掴めないのですが,一応の対処だけ施しました.

Ver.0.87b

  • 通知ウィンドウの表示方法&デザインを一新しました.今まで,新着数が多かった場合,ウィンドウに収まらないものは,表示を省略していました.新方式では,新着アイテムを一項目ずつスライドショーのように表示することで,全ての新着アイテムを網羅できるようにしました.スライドショーのシークエンスは,自動&手動を織り交ぜて操作できます.何だか,色合いが新しいLunascape4のポップアップに似ていますが,まぁインスパイアされたということで,お平らに..
  • いくつかのインターネット検索エンジンを新たに追加しました.
  • マルチユーザーモードで初期設定を通常のソフトのように「Application Data」フォルダに保存することができるようにしました.
  • Lunascape4が,Ver.4.1.0で久しぶりにブックマークの書式を変更したようなので対応しました.
  • ブックマークを読み込む際,今までは読み込めなかったブックマークは無言で登録から外していましたが,エラーが起こった旨をメッセージするようにしました.
  • ツールバーやメニューの「開始」コマンドを実行する際,コントロールキーを同時に押していると,アイテムの選択状態に関係なく,更新チェッカーにエントリーされた全項目の更新チェックを行うことにしました.
  • リスト上で「エンター」キーを押すと,ダブルクリックと同等の動作を行うことにしました.
  • カーソルやバックスペースキーによってツリーの移動&開閉を行ったとき,リストの表示がそれに正確に追従できていなかったバグを修正しました.
  • 「子フォルダを展開」コマンドが,度重なる仕様変更の煽りを受けて,まともに動作しなくなっていた不具合を解決しました.
  • インターネット検索の履歴は,起動時に対応する検索エンジンが登録されているかチェックを行うのですが,対応するエンジンが見つからなかった場合の対処がまずいと自爆する危険性があったので保全しました.
  • Lunascape4のフィードやティッカをブックマークとして登録してアプリを終了させると,次回起動時にそのパス名を記憶喪失してしまうバグを修正しました.

Ver.0.86b

  • 例えば,はてなブックマーク・最近人気のエントリーのFeedを自動タグ取得モードで取り込んだとき,あまりに種々雑多なタグが蓄積されていくので,分類を容易にするためのタグが混沌を引き起こすと言うディレンマに陥る場合があります.特に,マクロ入力支援メニューからタグマクロをセットする場合,長いメニューが何度も何度も折り返されて,もうホントにイライラします.そこで,同名のタグが定義されているアイテムの数に閾値を設け,それより多い場合のみタグリストに表示する仕様にしました.じゃぁ,閾値以下のタグが宣言されたアイテムはリストアップできなくなるのかというと,そんな事はありません.タグリストには表示されなくても,「分類」ボタンの「関連タグ」メニューから選択することが可能です.ゆくゆくは,タグ数の閾値だけではなく,共有ブックマーク数による選別もできると便利ですね.(希望的観測)
  • %otherマクロを新設しました.このマクロをFeedアイテムに定義すると,マクロ引数で指定されたXML要素を記事ごとに取得して,要約文(コメント)の前に挿入表示します.例えば,はてなRSSのようなオンライン型のRSSリーダーのFeedを取り込むと,登録されたFeedの記事がごちゃ混ぜになって送られてきます.%authorマクロを使えば,それぞれの著者名を知ることはできますが,Feedのタイトルの方がより判りやすいはずです.そんな場合,%other[ag:source]と定義するだけでタイトルを取得できます.
  • 「全実行ファイル列挙」や「全メモアイテム列挙」というコマンドを新設しました.これらのアイテムを何処に配置したのか忘れて,大騒ぎした私の苦い経験から新設したコマンドです.
  • 「別形式で保存」コマンドで「拡張OPML形式(iCBM3のスクラップ書式)」も選択肢に追加しました.
  • ボタンやメニューの有効・無効の変更は,複数選択されていた場合でも先頭のアイテムの状態から判定していましたが,それでは不都合がある場合があるので,全選択アイテムの状態から判断するようにしました.かなり,長い間手抜きをしていました.すんまへん.
  • 実行ファイルアイテムを起動したときやメモアイテムを閲覧したときにも「訪問日時」をスタンプするようにしました.
  • 編集不可アイテム・ポップアップマクロが宣言されているアイテム・ブックマーク(スクラップ&ゴミ箱も含む)の文字色も設定できるようにしました.また,ブックマークのタイトルは太字で強調表示することにしました.
  • 情報ボックスのタイトル色をアイテムの文字色に同期するようにしました.これにより,情報ボックスのテキストボックスの色を同期する仕様は廃止しました.
  • 「ゴミ箱を空にする」コマンドは,ゴミ箱内にアイテムが存在する場合のみ有効になるように変更しました.
  • 初期設定の読み込みに随分ムダが多かったので,なるべくオーバーライドがない読み込みを心がけるようにしました.
  • あまり使い道がないので,%rootcheckマクロを廃止しました.
  • クラスターの連結文字(デリミタ)を">"から"|"に変更しました.
  • ルートフォルダの名称を"ルート"と簡潔にしました.
  • マクロ入力支援メニューを実行した後,挿入されたマクロが確実に見えるように,キャレット位置までスクロールすることにしました.
  • 更新チェック以外のネット接続が行われているとき,別の接続を実行しようとすると「警告メッセージ」を表示することにしました.
  • タグのアイコンを変更しました.また,新着アイテムを含むタグリスト項目を太字で強調表示することにしました.
  • リストヘッダをクリックして整列を行う際,訪問日時と更新日時の初期整列方向を「降順」にしました.他のカテゴリーは従来通り「昇順」です.
  • Feed記事内のリンクの痕跡を平文に変換した後にも残すため,"<"と">"で囲むことにしました.そんなことせずに,クリッカブルリンクにしろと言われそうですが...
  • Feed記事を平文に変換する際に,「無駄な改行をなるべく減らす」スイッチを追加しました.アイドルなどの若いおねーちゃん系のブログのFeedを取り込むと,やたら改行が多くて読みづらい時がよくあるので導入しました.まぁ,そんな事せずにブラウザで読みゃ〜い〜んですけどね.画像も見れるし.
  • 「更新チェック終了時にデータベースを自動保存する」スイッチを,敢えてオフにするという用途が多分ないと思われるのでスイッチを廃止しました.
  • 上記2項目の仕様変更に伴い,「オプション設定-更新チェック」の「更新データベース」カテゴリーを廃止して,「Feed記事」というカテゴリーに整理統合しました.
  • Feed記事の最大文字数の設定が-1の場合,HTMLが平文に変換されないバグを修正しました.
  • Feed記事が平文とHTMLの混在書式の場合,改行の状態を上手く変換できないバグを修正しました.
  • アイテムのタイトルをインライン編集した場合,すぐには情報ボックスのタイトルに反映されないバグを修正しました.
  • 検索・列挙モードでアイテムのタイトルをインライン編集した場合だけ,編集フラグが立たず,そのアイテムを含むブックマークやスクラップファイルが保存されないバグを修正しました.
  • 情報ボックスでメモアイテムの内容を編集したときに,「更新日時」を変更していなかったバグを修正しました.
  • 編集不可アイテムを選択した状態から,例えば「ブラウザ訪問履歴表示」に切り替えても,情報ボックスには前のアイテムの表示が残ってしまうバグを修正しました.
  • ルートフォルダでは,リストの整列を行ってはならない仕様であるにも関わらず,「整列」ボタンからは実行でできるバグを修正しました.
  • ツリーアイテムにポップアップメッセージが表示されないバグを修正しました.
  • 左右ペインのフォントサイズを変更できるようにしたのに,左ペインのタブの文字サイズが連動していなかったバグを修正しました.
  • 分かち書きしたタグマクロが関連タグメニューに最初しか読み込まれていないバグを修正しました.

Ver.0.85b

  • %popupマクロが宣言されたアイテムを情報ボックスに表示したときは内容を編集できないという仕様なのですが,このようなアイテムでも編集したい場面はあるわけで不便でした.そこで,%popupマクロだけはポップアップメッセージ(ツールチップ)に表示する仕様に戻しました.以前,ポップアップメッセージは紆余曲折があって泣く泣く廃止した経緯がありますが,考えてみたらマクロ名からしてそちらに表示させた方がシックリきますね.因みに,今回は.NETのライブラリーを使用しているので,細かい設定は出来ませんが安定はしてます.
  • 今まで,「分類タグリスト」はユーザー作業の隙を狙って頻繁に「最新の状態」になるように更新を行っていました.しかし,アイテムの数やタグの宣言数が増えてくると,明らかにこの処理が律速要因となっていることが判りました.そこで,分類タグリストの更新は,それが参照される直前まで行わない仕組みにしました.多くのブックマークアイテムを登録されているならば,目に見えて効果がわかるはずです.
  • 今まで,ドラッグ&ドロップの可否判定はドロップ後に行っていましたが,ドラッグ中に事前判定する仕組みに変更しました.ドロップ出来ないターゲット上では,マウスカーソルが禁止マークになります.
  • 更新チェック終了から新着通知ウィンドウ表示までの間,ほんの少しディレイを咬ませました.
  • 「新着通知」の表示条件をメニューから選ぶ方法に変更しました.また,このメニューに「チャイム」の選択肢も統合したので,「チャイム」スイッチは廃止しました.
  • 「休止Feed」内の記事は,たとえ表示条件に合致していても「速報ニュース」には表示しない仕様に変更しました.
  • 「オプション設定-エクストラ」タブの項目を,更にカテゴリー分けして見やすくしました.
  • 「起動時はウィンドウを隠してシステムトレイに収納する」機能は,あまり使い道がないと思われるので廃止しました.
  • 「新着通知」ウィンドウに新着数を表示するようにしました.
  • 「速報ニュース」の表示条件に「全時間の未読アイテム」と「全時間の更新アイテム」という新たな選択肢を追加しました.
  • 「速報ニュース」の先頭に「更新日時を表示する」スイッチを追加しました.時間が表示されることで,よりニュースっぽく見えるようになりました.
  • 「速報ニュース」の表示フォントサイズを設定できるようにしました.また,この値は新着通知ウィンドウのフォントサイズとも連動させました.
  • 「オプション設定-エクストラ-検索・列挙」に「ローカルアイテムの検索結果は訪問日時で整列する」スイッチを追加しました.スイッチがオンの時は「訪問日時・降順」で,オフのときは「タイトル・昇順」で整列表示します.
  • 「オプション設定-アピアランス」に「メニューを折り返す項目数」を追加しました.メニュー項目数が膨大な場合,この設定数ごとに折り返して表示します.
  • フォーカスがツリーやリストから奪われても,直前のアイテム選択状態を覚えているようにしました.これにより,例えば情報ボックスで編集を行っていても,改めてアイテムを選択し直さずにツールバーのボタン操作が行えるようになるわけです.
  • 表示履歴(進む・戻る)にリストの選択状態も記憶するようにしました.直前の表示で長いリストの後半部分を選択していて,履歴で戻ったとき一々スクロールダウンする必要がなくなります.しかし..つっこまれる前に言っておきますが,現時点のアルゴリズムだと表示がちらつきます.これは,選択状態を再現するためリストを2回表示しているのが原因です.原因はわかっているけど,改善するにはフォルダ表示のシーケンスを大改造する必要があり,今のところはこれで我慢してください.
  • ブックマークフォルダを移動させようとすると,警告を表示するようにしました.
  • 前回の改造で,「訪問日時や更新日時の整列時はカテゴリー分けしない」という束縛を誤って崩してしまったバグを修正しました.
  • 「解除・既読・未読」の操作を行うと,編集されていた情報ボックスの内容が元に戻ってしまうバグを修正しました.
  • 「分類タグを除去」・「クラスターを除去」コマンドが,情報ボックスの自動保存機能とバッティングして,所望の動作をしていなかったバグを修正しました.
  • 情報ボックスで新たに「タグ」を追加しても,「分類」ボタンの「関連タグメニュー」へ直ぐに反映されなかったバグを修正しました.
  • %popupマクロに"["や"]"という文字がロードされると,次にマクロをデコードする際に境界を正しく判定できず,終端にゴミがどんどん蓄積されてしまう問題がありました.そこで安直ですが,"["や"]"という文字は"("や")"に置換して取り込むことにしました.
  • 外部からリストにリンクなどをドラッグ&ドロップしたときに,「Link」ポケットと同等の効果を得るべきはずが機能していなかったバグを修正しました.
  • 「リンクジャグラー」が偶にブラウザからのドラッグ&ドロップに反応しなくなるバグを修正しました.
  • 「ゴミ箱に捨てる」コマンドは実行できても,アイテムをドラッグ&ドロップでゴミ箱に移動することができなかったバグを修正しました.ただし,ゴミ箱内にあるフォルダに移動できない制限は仕様です.
  • 選択されたツリーアイテムの内容をクリップボードにコピーできなかったバグを修正しました.

Ver.0.84b

  • 今までインターネット接続に関する全てのスレッド(更新チェック・蟹味噌・鉄火巻・OPML読み込み・Feedの自動検出・リンク抽出・Podcastのダウンロード)は,同じマネージャーで一括管理していましたが,更新チェックとそれ以外のふたつに独立させることにしました.これにより,お互いが干渉しあうことがなくなります.具体的効果としては,更新チェックが動作している最中でも,他の操作を安定に実行することが可能となるわけです.尚,この仕様変更のため,「中止」ボタン&メニューは常時表示することにしました.
  • 外部からのアイテム登録(リンク・Feed・OPML・実行ファイル)は,全て「新規作成ダイアログ」を経由して行うことにしました.ダイアログを一度経由することで,「サクッと感」は失われますが,登録時に詳細なパラメータ(例えばマクロなど)を設定することが可能となります.尚,これに伴いFeed登録時専用の「Feed登録ダイアログ」は廃止されます.
  • 「新規作成ダイアログ」の「設定」ボタンを,「挿入」と「追加」のふたつに分割しました.前者はリストの選択位置に,後者はリストの末尾にアイテムを作成します.これに伴い,「オプション設定-エクストラ-アイテム登録・新規作成は挿入モードで行う」スイッチは廃止します.また,「編集ダイアログ」のボタン表示も用途にマッチした形に変更しました.
  • 上記の仕様変更に伴い,「新規フォルダ作成」&「セパレータ作成」コマンドは,必ず挿入モードで実行されます.
  • Feedの配信する記事数が「iCBM3側の最大保存記事数」の設定を越えていた場合は,とにかく全て取り込む仕様でしたが,他との整合性が保たれないので,iCBM3側の設定を優先して削ることにしました.その代わり,「最大保存記事数」の設定を0とすると,無制限に読み込む仕組みにしました.
  • Feed記事の要約文の文字数設定値を-1とすると,要約文全文を保存するようにしました.
  • 世の中に出回っているOPMLのフォーマットは実のところかなり曖昧なおかげで,iCBM3も読み込めないOPMLが多数ありました.(責任転嫁も甚だしいって言われるのは百も承知) で,そんな微妙な違いを何とか吸収して,大概のOPMLを読み込むことができるようにしました.とは言え,また失敗する場面に出くわすかもしれません.ま,その時はケ・セラ・セラです.
  • 外部からOPMLを登録する際,ブラウザリンクならば「Feed」ポケット,ローカルファイルならば「Link」ポケットにドロップする仕様でしたが,統一性に欠けるので,両者とも「Feed」ポケットにドロップするように変更しました.
  • アイテムをリストのアイテム間にドラッグ&ドロップしたとき,今までは「移動」のみ可能でしたが,「コピー」も行えるようになりました.
  • アイテムを自分の親フォルダ(ツリー)に移動・コピーしたとき,末尾に移動・コピーするようにしました.長いリストだった場合,リスト内でドラッグ&ドロップするよりも便利です.
  • 移動できないアイテムでも,コピー(右ボタン&ドラッグ)ならばできます.そこで,移動できないアイテムを左ボタン&ドラッグし始めると,強制的に「コピーモードに移行する」ことにしました.イラチの方には重宝する機能だと思います.
  • Ver.0.77bで行った「ゴミ箱内は表示履歴(進む・戻る)から除外する」という仕様変更は,正直使いづらいという結論に達しました.なわけで,元に戻します.(迷走してるな〜!
  • 今まで手抜きだった「ファイル選択ダイアログ」・「ファイル保存ダイアログ」を開いたときの初期フォルダを,なるべく目的に沿った場所になるように改めました.
  • 「リンク抽出」のオプションを抜本的に見直し整理統合しました.これに伴い,「オプション設定」の同タブの構成も大幅に変更されます.
  • 「リンク抽出」の結果は,必ずフォルダに収めて登録される仕様にしました.
  • 「リンク抽出」で得たアイテムには,なるべくリンクタグのキャプションをタイトルとして取得するようにしました.取得できなかった場合は,従来どおりファイル名をタイトルとします.
  • 「リンク抽出」の正規表現の定型パターンをドロップダウンメニューから選択することができるようにしました.
  • 「リンク抽出」の「リンク元のアドレスの列挙」は,アイテムとして列挙すると抽出されたアイテムと混ざって紛らわしいので,「メモアイテム」に纏めて記録することにしました.
  • ローカルディスクのHTMLファイルからもリンク抽出を行えるようにしました.
  • 「ローカルアイテム検索」や「分類タグリスト」の結果は,「訪問日時の新しい順」に整列表示することにしました.
  • 通知ウィンドウのタイトルを変更して大きなサイズにしました.
  • ステータスバーに表示される「テロップ」を「速報ニュース」という呼称に変更しました.まぁ,なんとなく気分の問題です.
  • 「速報ニュース」の表示条件をもっと細分化してみました.
  • 「速報ニュース」の表示がオフの時に,例えば「リンク抽出」などで「エラーメッセージ」が表示されると,何時までもステータスバーにエラーメッセージが居座り続ける場合があります.これは見苦しいので,「エラーメッセージ」は一定時間経過すると自動的に消失する仕掛けにしました.
  • 「アイテムの完全削除」や「更新チェッカーのエントリー解除」などの操作は,更新データベースの内容を削除することがあるので,それを参照する「速報ニュース」と干渉を起こす恐れがあります.iCBM3では,このような問題に対処するためsemaphore的コーディングをしているのですが,どうも希にそれが働かず自爆するケースが見受けられるようです.いろいろ調べてみましたが,まったく原因不明です.そこで,semaphoreを諦め,泥臭いですが確実な手法として,上記の操作を行う間は「速報ニュース」をストップしてしまうことにしました.はっきり言って,ニュースはちらつくし,かっこ悪いですけど,安定性のためですので我慢してください.
  • ある条件の元では,更新データベースに削除したはずの項目や取り外したブックマーク内のエントリー項目が「宿便状態」になるバグがあったので修正しました.
  • 休止していたFeedを再エントリーしたのに,たまたま新着がなくて編集フラグが立たず更新データベースが保存されないことにより,次回起動時に「休止状態」のままになってしまうバグを修正しました.
  • 編集できないアイテムを選択して「編集ダイアログ」を開いた場合,本来は「閲覧モード」になっているべきはずが,複数選択した時は「編集モード」で開いてしまうバグを修正しました.
  • 「マクロ入力支援」ボタンや「検索の正規表現」スイッチなどにフォーカスが移った場合に,ツールバーボタンの状態が変化しなかったバグを修正しました.
  • 「オプション設定ダイアログ」から戻ったときに,ツールバーボタンの状態があらぬ状態になってしまうバグを修正しました.
  • 「オプション設定-ファイル登録-お気に入り/ブックマーク」で追加登録されたOPMLの名称をインライン編集で変更したにも関わらず,読み込み時にそれが反映されないバグを修正しました.ただし,「名称未設定」のまま読み込みを行った場合は,従来どおりOPML内に記述されたタイトルを取得します.
  • 「オプション設定-ファイル登録-お気に入り/ブックマーク」で新規作成されるOPMLがユーザーフォルダに作成されないバグがありました.更に,ファイル名が固定名なのは扱いづらいなど,まったくもって使い物にならないので仕様を元に戻します.つまり,「ファイル保存ダイアログ」から任意の名称・場所に作成することができます.
  • 「リンク抽出」で"mailto:"や"javascript:"など処理できないアドレスを拾った場合,そこでエラーが発生し抽出を途中で断念していたヘタレなバグを修正しました.
  • アイテムを作成できない領域でも,右ボタンでアイテムをドラッグ&ドロップするとアイテムを作成(コピー)できてしまうバグを修正しました.
  • リンクジャグラーなどでドラッグ項目をブラウザボタン上で移動させたとき,ボタン背景色とドロップ許可カーソルの状態が,ちゃんと切り替わらない場合があったバグを修正しました.
  • ブックマークのリストアを実行する際に,同時に更新データベースの保存を行うのを怠っていたバグを修正しました.

Ver.0.83b

バージョンアップしてお使いの皆様へ

いくつかのコマンド(ツールバーボタンやコンテキストメニュー)を整理統合したため,関連するコントロールが一旦使えなくなります.マニュアルを参照して,お手数ですが代替コマンドに置き換えてください.

また,それに伴い初期設定の整理も行ったため,いくつかのパラメータが一旦再初期化されます.ご容赦ください.
  • 今まで纏まりのなかった「ブックマークの読み込み・書き出し」系のコマンドを整理統合しました.具体的には,「最新のブックマークを読み込む(最新ボタン)」や「シンクロ保存(保存ボタン)」コマンドを廃止し,「ブックマークを同期(同期ボタン)」というドロップダウンメニュー型のコマンドグループに統一しました.もちろん,コンテキストメニューも同様です.また,今まで同期は全部まとめて行うだけでしたが,一部のブックマークだけを対象にすることも可能になりました.
  • 「別形式のブックマークに変換して保存(保存ボタン)」コマンドは,「オプション設定-エクスポート-保存パラメータ-選択アイテム/フォルダのみ...」スイッチの値によって,対象を「全項目」なのか「選択項目のみ」なのか切り替えることができました.しかし,この切り替えのためだけに「オプション設定」ダイアログを開くのは面倒なので,「保存」ボタンのコマンドメニューから直接選択できるようにしました.それに伴い,上記のスイッチは廃止しました.
  • いくつかのコマンドの統廃合に伴い,初期設定の整理も行いました.また,「オプション設定」ダイアログ内のパラメータの配置・名称もいくつか変更されています.特に,「エクスポート-保存パラメータ-アプリケーション終了時にシンクロ保存を実行する」は,「エクストラ-終了時にブラウザブックマークへもリストアする」に移動・改名されたことにご注意ください.
  • Ver.0.81bに於いて,「オプション設定-エクストラ-アイテム登録・新規作成・編集はスクラップフォルダに限定する」スイッチがオンの場合は,ブラウザのブックマークアイテムは移動&削除できない仕様にしました.しかし,Lunascapeのブックマーク, OperaのニュースフィードやInternet Explorer 7のFeedは,スイッチの値に関係なく,内容を書き出す(同期出力する)ことができません.そこで,これらブックマークに関しては,スイッチの値に関係なく,登録・新規作成・編集・移動・削除できない仕様としました.また,旧Sleipnirのブックマークの第1階層は「ツールバー」と「お気に入り」フォルダ以外が存在してはならないので,この場所へアイテムを登録・新規作成できない仕様としました.
  • アイテムをHTML形式に変換して保存する際の<BODY>タグを「オプション設定」ダイアログから編集できるようにしました.
  • アイテムをHTML形式に変換して保存する際にコメント内の改行は,<BR>タグに変換して出力するようにしました.
  • ゴミ箱フォルダのリストア(同期出力)についても,バックアップファイルを作成することにしました.
  • ブックマークをリロード(同期入力)したときに,ダーティフラグ(編集済フラグ)がリセットされていなかったバグを修正しました.
  • ツリーとリストと情報ボックスのフォントサイズを「オプション設定」ダイアログから設定できるようにしました.

Ver.0.82b

  • 外部からFeedを登録する際に表示するダイアログで,Feedアイテムのタイトルをユーザーが設定できるようにしました.(従来どおりのタイトル自動取得モードも残しています.
  • 情報ボックスの「マクロ入力支援メニュー」のいくつかの項目にアイコン表示することにしました.
  • 情報ボックスの「マクロ入力支援メニュー」に「蟹味噌」や「鉄火巻」コマンドが実装されたので,ツールバーボタンやコンテキストメニューにある同機能を廃止しました.
  • 起動直後に,情報ボックスの「マクロ入力支援メニュー」のタグメニューに,最新のタグリストが読み込まれていなかったバグを修正しました.
  • 選択アイテムが「チェックアイテム」であるにも関わらず,情報ボックスの「マクロ入力支援メニュー」の構成が「一般アイテム」の状態になっていたバグを修正しました.
  • 編集ダイアログでアイテムのコメントを編集したとき,情報ボックスの自動更新機能のイベントとコリージョン(衝突)を起こしてしまい,編集したコメントが消失してしまうバグを修正しました.(これ,かなり重大なバグだったようです.陳謝..
  • 上記バグの修正とともに,悪さはしていないが「無駄に重複したイベントを発行していた」コードの見直しを行いました.

Ver.0.81b

  • 「オプション設定-エクストラ-アイテム登録・新規作成・編集はスクラップフォルダに限定する」スイッチがオンの場合は,ブラウザのブックマークアイテムは移動&削除できない仕様にしました.また,スクラップからブラウザブックマーク内への移動もリジェクトするようにしました.コピー機能(右クリックドラッグ)は,上記スイッチの状態に関係なく利用可能です.
  • ロックされたアイテムが移動・削除できなかった場合,今までより詳しいエラーメッセージを表示することにしました.
  • 情報ボックスに選択アイテムのコメントの内容を表示する仕様になったので,リストのコメントカラムは不要と判断し廃止しました.(この変更に伴い,一時的にリストカラム順と幅が初期化されます.ご容赦ください.)
  • 情報ボックスでも「マクロ入力支援」メニュー(葉っぱアイコン)が使えるようにしました.
  • 情報ボックスのタイトルバーにアイテムのアイコンを表示するようにしました.
  • 情報ボックスの編集の可否は,背景色ではなく文字色で識別するようにしました.
  • 更新チェック終了時に,エラーが起こった項目数も表示するようにしました.
  • Feedの新規登録は,更新チェックデータベースを参照して,既にエントリーされていないか確認をとって行っていますが,ゴミ箱内の休止Feedまで対象にするのは,厳格すぎると思われるのでチェック条件を緩めました.
  • Operaブックマーク形式のエクスポートやシンクロ保存の際に,パーソナルバーへの登録状態&順序も再現するようにしました.
  • Operaのゴミ箱フォルダは,IEの「リンク」フォルダなどと同様に削除・編集できない仕様にしました.
  • Operaのブックマークアイテムのコメント(説明)の改行コードは[0x0202]という特殊なコードを用いているので,iCBM3に読み込むときは[CRLF]にデコードし,反対にOpera形式でエクスポートするときは上記コードにエンコードするようにしました.(実は,こんな表現法を使っているなんて,つい最近まで知りませんでした.お恥ずかしい.)
  • 外部からアイテムを登録したときに,ツールバーのボタンやコンテキストメニューの状態が更新されていなかったバグを修正しました.
  • 情報ボックスにテキストペーストした際に,ダーティフラグ(編集されたことを示す)が立たず内容が更新されないバグを修正しました.
  • リストアイテムを選択した後に,そのアイテムの親フォルダのツリーを選択しても,情報ボックスの表示が変化しなかったバグを修正しました.
  • 前回の改造で,「スクラップ・ゴミ箱・ブックマークの本体もコメントの編集ができる」ようにしたのに,「マクロ入力支援」メニューが使えないままだったミスを修正しました.

Ver.0.80b

  • Internet Explorer 7のFeedを読み込むことができるようになりました.(iCBM3_*_WIN_IE7.zip)
  • アイテムのURL欄に複数のURLを記述することができる「グループアイテム」機能を新設しました.頻繁に訪れるサイト群をワンクリックでブラウザに送るような用途に活用できます.
  • コマンドライン引数から,ローカルアイテムの検索を実行するオプションを追加しました.応用例として,ブラウザ内選択テキストの検索を行ったり,あるブラウザから別ブラウザの履歴検索を行ったりすることが,コンテキストメニュー経由で行うことができます.
  • コマンドライン引数から,「リンクジャグラー」に指令を送るオプションを追加しました.今までは,リンクをiCBM3のブラウザボタンにドラッグ&ドロップする必要がありましたが,この機能を適用すれば,コンテキストメニューから実行可能となります.また,ドラッグ&ドロップでは不可能だった選択テキストのURLをリンクジャグラーに送ることも可能となります.
  • 情報ボックスの書き込みボタン(鉛筆アイコン)を廃止しました.書き込みは,別アイテムに移動するとき自動的に行われる仕様にしました.また,編集の可否は情報ボックスの背景色で理解できるようにしました.なんか,度々方針が変わってすんまへん.
  • スクラップ・ゴミ箱・ブックマークの本体もコメントの編集ができるようにしました.
  • 検索バーの「正規表現」スイッチは,インターネット検索モードのとき,用なしなので表示しないことにしました.
  • 「オプション設定-エクスポート-保存パラメータ-アプリケーション終了時にシンクロ保存する」オプションを使えるようにしました.まだ不完全(詳細はiCBM3 マニュアル参照)であることには変わりないのですが,塩漬けにしていても進歩はないと判断し,公開してユーザーの選択裁量にお任せすることにしました.あくまでも自己責任で.
  • 上記オプションおよび保存ボタンの「全ブックマークをシンクロ保存」コマンドは,「オプション設定-エクストラ-アイテム登録・新規作成・編集はスクラップフォルダに限定する」オプションがオフの場合に限り有効となるセーフティロック機能を設けました.
  • IEの「リンク」フォルダやFirefoxの「ブックマークツールバー」フォルダなどの特殊フォルダは,「オプション設定-エクストラ-アイテム登録・新規作成・編集はスクラップフォルダに限定する」オプションがたとえオフであっても,編集・移動・削除できないようにしました.
  • マルチバイト文字を含むURLの取り扱い方法を変更しました.今後は,Firefoxのブックマークを読み込むときだけUTF-8形式のデコードを行い,iCBM3の内部表現はデコードURLで統一することにしました.
  • ウィンドウを最大化した状態でアプリを終了すると,次回起動時に各ペインのスプリッターがとんでもない位置になってしまうバグを修正しました.
  • 「全てのツリーを開く」コマンドを実行すると,条件によっては「選択ツリー」がスクロールアウトされ見えなくなってしまう不具合を修正しました.
  • ゴミ箱アイテムのアイコン色が編集可能になっていたバグを修正しました.
  • 旧Sleipnirの古い形式(ID101以前)のブックマークが読み込めなかったバグを修正しました.

Ver.0.79b

  • 初期設定ファイル(iCBM3.XML)の書式を一部変更しました.その結果、「デフォルトブラウザ」などの設定が一旦初期化されます.ご容赦ください.
  • ツールバーの「履歴」ドロップダウンボタンに「最近訪問したアイテム」コマンドを追加しました.ツリーとリストのコンテキストメニューに同コマンドを登録することも可能です.このコマンドは、iCBM3に登録された全アイテムから、最近δ時間以内に訪問したアイテムを探してリストアップします.δの値は初期設定ファイルから変更可能です.
  • ツリーのコンテキストメニューに、新コマンド「全てのツリーを開く」と「選択ツリー以外を閉じる」コマンドを追加しました.
  • 検索バーの「検索」ボタンを廃止しました.これからは、「検索テキストコンボボックス」上で「エンターキー」を押すと検索開始します.
  • 検索バーの「検索テキストコンボボックス」は、ウィンドウのリサイズに連動して大きさが変わりますが、ウィンドウを最大化したときなど無意味に大きくなりすぎている気がします.そこで、リサイズ上限を設けることにしました.上限値は初期設定ファイルから変更可能です.
  • ローカルアイテム検索のアイコンをカテゴリー毎に色分けしました.また、情報ボックスのボタンと検索バーの「カレンダー」ボタンと編集ダイアログの「マクロ」ボタンをアイコン化しました.
  • 情報ボックスのタイトルの書式を変更しました.
  • Lunascapeの「ブックマーク」と「実行ファイル」の初期設定ファイル内での定義は、バージョンごとに「Lunascape3」のように識別子を設けていましたが、このやり方だとバージョンアップされるごとに識別子を増やしていかなければならないのでイタチゴッコです.更に、4の出来から想像するに、5が近々に表れそうですし..そこで、識別子を「Lunascape」と一本化して、パスの表記法で各々を区別することにしました.新書式への変換は自動で行われますので、ユーザーが設定しなおす必要はありません.
  • 更新チェックでエラーが起こった場合、情報ボックスにエラーメッセージが表示されると、コメントの編集ができなくなってしまうという、「アポロ13号の酸素タンク圧の急激な減少のアラート見逃し」と同じ類の問題を解消するため、エラーメッセージだけはポップアップ(ツールチップ)表示を復活させました.たびたび、方針が変わってしまってすんまへんです.
  • エラーメッセージのためのツールチップを復活させたことにより、副次的効果として、カラムからオーバーフローしてしまったタイトルをツールチップで表示することができるようになりました.
  • Feed記事の要約文をHTMLから平文に変換する際、<p>タグの扱いが不充分だった不具合を修正しました.
  • ローカルアイテム検索をした後、「検索テキストコンボボックス」に表示されるアイコンの対応関係が一部乱れていたバグを修正しました.
  • ツールバーの「分類」ボタンの「関連タグへ移動」コマンドの挙動がおかしかったバグを修正しました.(.NET 2.0の新コマンド「IndexOfKey」を使ってみたのですが、どうもこれが悪さをしていたみたいです.おとなしく逐次比較方式に戻しました.
  • 「オプション設定-ファイル登録-お気に入り/ブックマーク」において、「スクラップ」と「ゴミ箱」を選択したとき、「変更」ボタンが機能するのは論理的に変なので修正しました.
  • 「オプション設定-ファイル登録」において、リストが太字になっている部分のチェックの状態を変更できるのは論理的に変なので修正しました.
  • カレンダーダイアログで、日時選択したときのテキスト色が見づらかったので修正しました.
  • テロップの表示条件が変わったときに、その状態に遷移せず表示がストップしてしまうバグを修正しました.
  • 「蟹味噌」・「鉄火巻」エディタでソースを表示する際、%encodeマクロの宣言が無視されていたバグを修正しました.
  • インラインでアイテムのタイトルを変更したとき、情報ボックスのタイトルが連動して更新されていなかったバグを修正しました.
  • VS2005に開発環境を移行して以来、「アセンブリ情報・製品名」が非表示になっていたので修正しました.

Ver.0.78b

  • Feed記事の要約などを表示するポップアップ(バルーン)機能を廃止して、3ペイン式のウィンドウを新たに採用しました.更に、内容を編集することも可能になりました.
  • ポップアップの廃止に伴い、ツールバーとコンテキストメニューからポップアップ関連のコマンドを削除しました.
  • Feed記事の要約内の改行コードは今までLFのみでしたが、新しい3ペイン式の「情報ボックス」はCR・LFしか受け付けないので、そのように変更しました.
  • Lunascape4が正式に公開されたので対応しました.(あ〜、めんどくさ..
  • 「シンクロ保存」の際、ブラウザブックマークに対してもバックアップファイルを作成するようにしました.IEはフォルダなので対象とはしていません.また、Sleipnir2はバックアップを別フォルダに行うのが正式なお作法のようですが、そんなことお構いなしにブックマークと同じフォルダに作成します.
  • タグ分類されたアイテム中に新着項目を含む場合、タグリストのアイコンを色分けして表示することにしました.また、アイコンカラムをクリックすると、その色分けに応じて整列することができます.
  • 「RSS」に関連する表記を「Feed」に統一しました.ただし、編集ダイアログでFeed提供アドレスのことは「XML」と呼ぶことにします.(はい.ご想像の通り、IE7にインスパイアされました.こういうとき、片仮名語って便利ね.
  • 編集ダイアログにおいて、Feed記事の種別名を「記事アイテム」と表記することにしました.また、ブラウザブックマークの種別名を「ブックマーク」と表記することにしました.
  • オプション設定のタブ幅を狭めました.その結果、タブスクロールは必要なくなりました.
  • 一部のアイコン画像を変更しました.
  • メインウィンドウ以外のダイアログのフォントや背景色を、一部例外を除いてデフォルト値に戻しました.XPの表示テーマを変更したとき、独自デコレーションをしているとテーマの装飾から浮きまくるのを避けるためです.更に、副産物として驚異的にファイルサイズが小さくなりました.
  • IEのインターネット設定で「リンクに下線を表示する」設定をしていると、テロップ表示にも下線が付加されるバグを修正しました.いやはや、今まで自分はインターネット設定で「下線なし」としていたので全く気づいてませんでした.とあるサイトで、iCBM3をスクリーンショット付きで紹介されている方がいまして、それを見て思わず「あぁ〜!」と叫んでしまいました.名前を失念してしまい恐縮ですが、気づかせて頂きありがとさんでした.
  • ゴミ箱内アイテムをリスト上から更新チェック開始できてしまうバグを修正しました.
  • Feed記事はゴミ箱内アイテム以外ならば全ての場所で編集可能であるべきなのに、「オプション設定-エクストラ-スクラップに限定」スイッチの値によって、ブラウザブックマーク内Feed記事の編集が抑制されていたバグを修正しました.
  • Ver.0.77bの「なんちゃって非同期化」のコードを更に改良して、インターネット接続の「中止」がすぐに反映されるようにしました.それに伴い、オミットしていたステータスバーの「中止」メッセージを復活させました.

Ver.0.77b

  • Ver.0.75bで行ったスレッド回りのチューニングが悪影響して、インターネット接続ソケット数を増やすと、デッドロックに乗り上げてアプリが固まってしまうバグを修正しました.かなり、致命的なバグだったようです.被害を被った皆さん、すんまへんでした.
  • 分類タグを管理する配列をArrayListからHashtableに変更しました.見た目には何の変化もありませんが、内部的には大改造を行っています.
  • タグリストにカラムヘッダを付けて整列を実行できるようにしました.また、各タグに関連付けられているアイテム数も表示するようにしました.
  • スキン画像の表示方法を、「タイル状に配置する」と「領域に合わせて伸縮させる」から選ぶことができるようにしました.
  • フォルダツリー・タグリストの背景にも、スキン画像が表示されるようにしました.実は.NET 2.0仕様に変更して以来、この部分を塗りつぶす方法が謎だったのですが、やっとわかりました.(汗
  • ゴミ箱内のアイテムは、表示履歴操作(戻る・進むボタン)から除外するようにしました.例えば、ゴミ箱にフォルダを捨てた後スタックを戻るとき、今まではゴミフォルダもトレースしていたのですが、それがなくなります.
  • ネット接続中に無理やりアプリを終了させると、リソースが上手く開放できていない場合があるので、「接続中はアプリを終了できない」ように仕様を変更しました.う〜む、要するに問題先送りや〜ん..
  • RSSフォルダの訪問日時が、ある条件ではスタンプされていなかったバグを修正しました.

Ver.0.76b

.NET 2.0仕様に変更して以降、実行ファイルは32・64ビットマシン両方に対応するハイブリッドモードでビルドしていました.しかし、掲示板でLさんからご指摘頂いた様に、64ビットマシンでは不具合が発生します.そこで、今回のリリースからは32ビットモードでビルドすることにしました.これにより、64ビットマシンでもエミュレーティブではありますが実行可能となります.
  • ツールストリップをウィンドウの左右端にもドッキング可能にしました.また、ドッキング場所を保存して、次回起動時に再現できるようにしました.
  • リストの整列を、ツールバーの「整列」ボタンからも行えるようにしました.
  • マクロ「%sort」は今までカラム番号を引数にしていました.しかし、v0.75bよりカラムの入れ替えが保存されるようになったため、オリジナルのカラム番号とカテゴリーの対応関係が判らなくなってしまうかもしれません.そこで、「カテゴリー名・整列方向」の書式で引数を記述できるようにしました.既に、「%sort」マクロをご使用の方のために、従来のカラム番号での表記法も残しています.
  • リストの整列を行う前の並び順に戻す機能(アンドゥー)を追加しました.この機能は、掲示板にてMさんからご提案頂いた機能です.
  • アイテムのアンロックは、今までロックされたアイテムを選択しないと実行できませんでしたが、ロックされたアイテムを含むフォルダを選択しても実行可能になりました.これにより、一括アンロックを行うことができます.
  • IE系ブラウザの履歴列挙・検索は、今までローカルアイテムのアクセス記録も対象にしていました.しかし、ブラウザの訪問記録とは関係ないウィンドウズエクスプローラの作業記録まで表示され、非常に鬱陶しいと感じたので、一思いにローカルアクセスは対象外とすることにしました.
  • ドロップポケットの表示スタイルをフラットにしました.
  • 「ポップアップ表示」のボタンやメニューのオン・オフ状態の表示が初期化されていなかったバグを修正しました.
  • 検索タイプメニューをドロップダウンしたとき、コンボボタンの色がアクティブになっていなかったバグを修正しました.また、メニューのキャンセルをコンボボタン上で行うと、一度マウスが圏外に移動しない限り反応しなくなるバグを修正しました.
  • Ver.0.64bにて、手動で更新チェックを開始したときは通知ウィンドウを表示しないという仕様にしたのに、ゾンビの如く通知ウィンドウが表示される不具合を修正しました.前回のスレッド周りのチューニングの際に、誤って箍を緩めてしまったようです.

Ver.0.75b

  • .NET 2.0 から導入されたToolStrip・StatusStrip・ContextMenuStripを採用して、ユーザーインターフェースを一新しました.ただし、検索バーだけは従来のままにしています.実は、こちらもToolStrip仕様にしてみたのですが、なんだか見栄えがイマイチなので放置状態です.将来的に気に入ったものができたら、導入したいと思います.
  • CCBなどと同様に、整列方向アイコンの表示を.NET 2.0ビルトインコマンドだけで実現しました.
  • システムトレイアイコンをオリジナル(API使用)から.NET 2.0ビルトインコントロールに置き換えました.
  • テロップ表示を.NET 2.0の基本コンポーネントだけで行うようにしました.ん、言い方が難しいな..以前のバージョンも、.NETのコマンドだけで実現していたのですが、かなり裏技を駆使してましたという事です.
  • BEEP音をAPIコールではなく.NET 2.0ビルトインコマンドで再生するようにしました.
  • アイコンなどの画像を蓄積するImageListについて、.NET 1.1ではαチャンネルを持つ画像を上手く読み込めないという致命的なバグがあったので、APIアダプティブの奇妙なクラスを使って補完していましたが、.NET 2.0になってバグが修正されたようなのでそちらに移行しました.
  • ステータスバーの「新着コンテキストメニュー」を「ドロップダウンボタン」形式に変更しました.また、レイアウトの順番を変更してみました.
  • 左右ペインのスプリット幅を保存して、次回起動時に再現できるようにしました.(こんな基本的なことなのに、.NET 2.0でやっと実現できるなんて..
  • リストカラムを手動で入れ替えた状態を保存して、次回起動時に再現できるようにしました.(掲示板のMさんのご提案5とニュアンスは違いますが、今暫くはこれでご勘弁を..
  • ツールバーにToolStripを採用したおかげで、「オプション設定-アピアランス-ツールバー-ツールバーの折り返しを許可する」というオプションは必要なくなったので廃止しました.
  • ローカル検索でフォルダがヒットしたとき、フォルダの中身の検索には進まないようにしました.フォルダの中身にもヒット項目があった場合、冗長に検索結果が列挙されるのが、私的には鬱陶しく感じるので変更しました.しかし、この仕様は賛否両論を呼びそうなので、「前のやり方も残せ」と言う方がいらっしゃったら仰ってください.
  • .NET 2.0仕様にしたためか何なのかよくわからないのですが、インターネット接続のスレッドの動きが微妙にモッサリしているようなので、チューニングしてみました.具体的には、同期・非同期のデリゲートの使い分けの調整と、排他処理(lock)領域の最小化を行いました.まぁ、少しは改善されたかな?
  • 「中止」ボタンでインターネット接続を中断しようとすると、中止されるまでの間iCBM3全体が固まってしまう不具合を修正しました.

Ver.0.74b

  • .NET 2.0 仕様にバージョンアップしました.
  • .NET 2.0 で厳格になったマルチスレッドでのお作法から逸脱していたコードを全面的に書き直しました.
  • .NET 2.0 になって、IEの訪問履歴データベースにアクセスする際の日時構造体(FILETIME)がOBSOLETE扱いとなってしまいました.まだ、互換性は維持されているので使えることは使えるのですが、気持ち悪いので自前で宣言した構造体を使うことにしました.
  • 蟹味噌などを実行したとき、マクロ自動置換で"["や"]"を過剰にエスケープ処理していたバグを修正しました.前回、正規表現の整理統合を行ったときにテストのために記述したコードが、そのまま残っていたために起こったバグです.すんまへんでした.
  • 外部からOPMLをドロップしたとき、一番上位のフォルダがフォルダとして認識されていなかったバグを修正しました.
  • 外部からOPMLをドロップしたとき、RSSと同じように「選択ダイアログ」を表示するのは無意味なので、すぐに登録を行うようにしました.

Ver.0.73b

  • 以前から、「自動更新チェック」のパラメータ設定が複雑で判りづらいとご批判を頂いていたのですが、今回全面的に簡素化しました.時間の設定は「基本周期」と呼ばれるパラメータひとつに集約されています.
  • 上述のとおり「自動更新チェック」のパラメータを簡素化した代わり、「%cycle[個別周期]」というマクロを新設し、各アイテムごとの個別設定を行えるようにしました.
  • 更新チェックの際、認証が必要なサイトのユーザーIDとパスワードを設定するための、「%login」マクロを新設しました.
  • 「ツールバー-再生」ボタンを、ドロップダウン形式のメニューに拡張し、Podcastアイテムのダウンロードも行えるようにしました.
  • 更新チェック以外のインターネット接続を伴う作業が終了した場合でも、チャイムを鳴らすようにしました.
  • 更新チェック以外のインターネット接続を伴う作業が終了した場合でも、更新チェックの時と同じ「儀式ルーチン」を通るのは不経済なのでスキップするようにしました.
  • 「編集ダイアログ-マクロメニュー」の並びが、ものすごくテキトーなやっつけ仕事状態だったので、ちゃんとアルファベット順に整列させました.
  • Geckoエンジンを利用したブラウザは、今まで起動時に複数のURLを受け取れないとして、ブラウザへの送信に制限を設けていましたが、Geckoエンジン特有の裏技があることを発見したので、遅まきながら採用しました.この珍妙な裏技は、何故かアプリ実行中には適用できません.う〜ん、よくわからん設計思想だ.
  • Firefox・Netscape 8のブックマークアイテムのコメントが複数行に跨る場合に、最初の行しか読み込んでいなかったバグを修正しました.いや〜、長い間気がつきませんでした.お恥ずかしい.
  • 各クラスに散らばっていた正規表現パターンを整理統合しました.ほとんど、思いつきでプログラミングしているので、結構重複や無駄が多かったみたいです.

Ver.0.72b

  • 「オプション設定-ファイル登録」のブックマーク&ブラウザのパスのドライブ名を、アルファベットではなく"?"としておくと、iCBM3があるドライブ名に置換して読み込むようにしました.これにより、iCBM3と同じUSBメモリにインストールされた「ポータブルタイプのブラウザ」ファイルを、複数のコンピュータ上で読み込むことができます.
  • Lunascape3のようにお気に入りの切り替えができる場合でも、ポータブル化に対応できるようにしました.詳しくは、マニュアルの付録7を参照してください.
  • 「オプション設定-ファイル登録」において、ブックマークを手動で着脱する際に、テロップが動作状態のままだと、実体の無くなったアイテムを参照しようとして自爆してしまうことがあるので、着脱時は強制的にテロップを停止することにしました.
  • 前回から行っている「ポータブル化」の改造に伴い、ブックマーク&ブラウザのパス名を省略表記できるようになったので、初回起動時に読み込むブックマーク&ブラウザの定義をdefault/iCBM3.XMLに追い出すことにしました.
  • Lunascape2の対応を廃止しました.対象外といっても、ポータブル化の対応ができないだけで、通常の利用は今までどおり可能です.
  • 同じURLのRSS記事が更新された場合、訪問日時・アイコン色・アイテムロック情報がクリアされていたバグを修正しました.
  • 「オプション設定-ファイル登録」において、無効にしていたブックマークを有効に変更しても、ブックマークがリロードされないバグを修正しました.
  • 「オプション設定」で「ファイル登録」の操作を何もしていない場合でも、ダイアログを実行すると、登録リストの再構築をしていたバグを修正しました.
  • 更新チェッカーの自動チェック設定が全てオフになっている場合、テロップ表示が開始されないバグを修正しました.(この問題は随分前から潜んでいたようですね.今まで全然気づかずにいました.お恥ずかしい.
  • 「オプション設定-ファイル登録」において、ブックマークの並びを変更しただけの場合でも、「最新のブックマークを読み込みました」とメッセージが表示されるのはおかしいので、状況によってメッセージを切り替えることにしました.

Ver.0.71b

  • USBメモリでの可搬性を考慮して、インストール後にiCBM3のフォルダを移動しても動作できるようにしました.ただし、幾つかの束縛条件を満たす場合に限ります.詳しくは、マニュアルの付録7を参照してください.
  • 上記のポータブル化に伴い、「シングルユーザー」モードで起動できるようにしました.
  • 上記のポータブル化に伴い、「更新データベース」の保存先を固定したので、「オプション設定-更新チェッカー-更新データベース-保存先」変更コマンドを廃止しました.
  • 上記のポータブル化に伴い、「ユーザースクラップ」の作成場所は「初期設定フォルダ内」であることが望ましいので、「オプション設定-ファイル登録-ブックマーク/お気に入り-新規」ボタンによる新規スクラップ作成は、強制的に初期設定フォルダに行うようにしました.また、そのファイル名は重複のない名前を自動的にアサインするようにしました.
  • 「オプション設定-ファイル登録-ブックマーク/お気に入り」で、「追加」「変更」された項目のタイトルの初期値は、今までファイル名から拡張子を取り除いたものを採用していましたが、ブックマークの種類に即した名称をセットするようにしました.
  • Sleipnir2 v2.47で、やっとブックマークに「訪問日時」がスタンプされるようになったので、読み込むことにしました.
  • 「オプション設定-アピアランス-ツールバー」に「ツールバーの折り返しを許可する」スイッチを追加しました.ウィンドウリサイズに追従して、ツールバーボタンのレイアウトを折り返すか否かを、このスイッチによって決定します.
  • アイテム登録や新規作成の際、アイテムの種類によってアイコンの初期色を変更できるようにしました.今まで、フォルダ色を変更できないブラウザブックマークでは、アイテムとフォルダが同じ色となり見栄えがよくなかった問題を、これで解消できます.現在のところ、iCBM3.XMLの編集によってのみ変更可能です.(手抜き工事
  • ローカルアイテムの検索コマンドが、細分化されすぎ逆に使い勝手が悪くなってしまったので、フォルダ関連のコマンドを廃止してアイテム関連に統合しました.また、とにかく一気に検索を行うための「アイテム/全カテゴリー」コマンドを追加しました.
  • フォルダツリーの選択アイテムをダブルクリックすると、フォルダ内アイテム(フィルタ適用)を一括してデフォルトブラウザで表示するようにしました.
  • 更新チェックを開始できるかどうかの判定条件に、「オプション設定-エクストラ-アイテム登録・新規作成・編集はスクラップに...」スイッチの値が紛れ込んでいたバグを修正しました.

Ver.0.70b

  • リストのカラム整列は、フォルダやアイテムなどのカテゴリー別に行うようにしました.
  • 選択されたリストアイテムのみカラム整列を行う「部分整列」機能を追加しました.
  • 新着列挙、履歴表示、%sortマクロが宣言されたフォルダ表示の時、カラム整列が行われているにもかかわらず、整列方向アイコンが表示されていなかった不備を修正しました.
  • 通常、RSS記事の更新は、記事が投稿されたときだけなのですが、ブログやWiki側の設定によってはコメントやトラックバックがされたときにも起こります.贔屓のブロガーコメントも洩らさず熟読してるならば別ですが、私的には非常に鬱陶しいと感じます.そこで、%inhibitマクロをRSSフォルダにセットしておくと、同じURLの記事更新を禁止することができるようにしました.
  • メニュー定義のコマンド名が、例えば対になっているのに、片方は単数形、片方は複数形と、不揃いな表現になっていたので改めました.ただし、互換性を維持するために、古い表現も使用可能です.
  • ローカル/フォルダ検索を行う際、ブックマークやスクラップも検索対象になっていたバグを修正しました.
  • 「進む」「戻る」コマンドのスタックに、同じターゲットが続けてプッシュされないようにチェック機能を設けました.

Ver.0.69b

  • 前回導入した「ブックマークを同期保存せずにアプリを終了させようとした時に表示される警告ダイアログ」は、実際使い込んでみると事の外「鬱陶しい」ことこの上ありません.なわけで、「朝令暮改」で誠に恐縮ですが、廃止します.「同期保存忘れ」に関しては、ユーザーご自身でご注意ください.(なんか、無責任だな〜この発言...
  • 通知ウィンドウの表示時間・最大幅・列挙アイテム数などを、「オプション設定ダイアログ」から設定できるようにしました.
  • 遅まきながら、リストカラム整列時の方向を示すアイコンを表示するようにしました.例によって、.NETビルトインの機能は使えないので、API(SendMessage)をコールしています.もしかして、.NET2.0ではこんな事しなくても良いのかな?
  • 通知ウィンドウのクローズボタンをクリックしたとき、必ずiCBM3のメインウィンドウにフォーカスする仕様をやめました.例えば、ブラウザで作業中に、通知ウィンドウを閉じると意味なくiCBM3にフォーカスが奪われるのは、明らかにおかしな振る舞いだったので、仕様を変更したわけです.
  • 検索メニューに「RSS/アドレス」検索コマンドを追加しました.このコマンドは、RSSアイテムのアドレス(URL&RSS)についてキーワード検索を行います.
  • 「ツールバー・分類ボタン」の「分類タグ収集」コマンドを「タグリストを最新に」と改名しました.コマンドの内容は今までどおりです.
  • 起動時に、defaultフォルダ内の初期設定ファイルとアプリのバージョン番号が一致しているかどうかをチェックすることにしました.これにより、バージョンアップに伴い新しく増えた変数が確実に古いユーザー初期設定に引き継がれることが保障されます.
  • 更新チェックでRSS記事を取得する際に、重複するURL記事が来たときのチェックアルゴリズムを改良しました.今まで、かなり無駄にループをぶん回していたようです.
  • RSSフィードのフォーマットがAtomの場合、記事のURLを取り込むときに、link要素が複数あると関係ないlink要素まで読み込もうとしてエラーが発生していたバグを修正しました.
  • [XML]ドロップポケットから新規RSSを登録する際に、RSS選択ダイアログでキャンセルを選択したにも関わらず、登録に進んでしまうバグを修正しました.
  • 「ツールバー・分類ボタン」に「クラスター除去」コマンドの判定条件を誤っていたバグを修正しました.
  • RSSアイテムを新しく登録する際に、%autotagsマクロや%clusterマクロが定義されているとき、本当ならば記事取得後にタグのスキャンを行ってタグリストの更新がされなければならないのですが、非同期処理のタイミングミスで時々更新が行われないバグがあるようです.そこで、このような場合は無理やり同期処理的な振る舞いをさせるために、スレッドを一時的にロックする仕組みにしました.(う〜ん、エレガントじゃないな〜
  • %tagsマクロや%clusterマクロが定義されたアイテムを編集したとき、タグリストの更新はそのアイテムに関わる部分だけ行っていましたが、クラスター宣言は傘下のアイテムにも影響を与えるので、そのような対応では不充分です.そこで、非常にプリミティブですが、全アイテムをスキャンしなおしてタグリストを更新することにしました.(こういうCPUパワーに頼り切ったコードを、今まで散々貶してきたのに、やっちゃったな〜自分.はぁ〜ヤダヤダ...

Ver.0.68b

  • タグリストパネルでもコンテキストメニューが使えるようにしました.もちろん、他のメニューと同様にdefine.XMLからアイテムを自由に定義可能です.タグリストのメニューには、インターネット検索を登録することができます.選択タグ名を検索することで、例えば別のSBMでの登録状況を知るのに便利です.
  • 「ツールバー・分類ボタン」に「クラスター除去」コマンドを追加しました.
  • 「ツールバー・分類ボタン」のドロップダウンメニューに「関連タグへ移動」コマンドを追加しました.この機能は、選択アイテムに定義されたタグがメニューにリストアップされますので、ワンモーションで目的のタグリストに移動することができます.
  • 外部からRSSを登録する際、RSSリンクを[XML]ポケットにドロップすると、今までは即登録を行っていましたが、「RSS自動検出」を行ったときと同じく「RSS選択ダイアログ」を表示することにしました.これにより、RSS登録時に「自動タグ収集」などのオプションを事前にセットすることが可能となります.
  • 「RSS選択ダイアログ」で「クラスター名」もセットすることができるようにしました.
  • ポップアップメッセージの背景色をシステム定義色と同じにしました.ビジュアルスタイルを変更したとき、「緑色」のウィンドウだと見栄えが悪くなるとのクレームがあったのでそうしました.私的には「緑」好きなんだけどな〜
  • ブラウザのブックマークを編集したが「同期保存」せずにiCBM3を終了しようとした場合、「警告ダイアログ」を表示するようにしました.
  • タグリストパネルがフォーカスを奪ったとき、ボタンやメニューの有効無効状態が更新されていなかったバグを修正しました.
  • 「分類タグ除去」コマンドを実行したとき、タグリストの内容が更新されていなかったバグを修正しました.
  • タグリストを表示した後に、「検索」や「履歴列挙」などを行ったとき、タグリストが選択されたままというのは、見た目で誤解を与えるので選択を解除することにしました.

Ver.0.67b

  • マニュアルの内容が新しい記述と既に廃止した記述が混ざってごちゃごちゃになっていたので、全面的に書き直しました.また、アンカーを多用し相互参照しやすいように配慮してみました.
  • 今まで、お飾り程度の機能だった「分類タグ」関連コマンドを大幅に強化しました.まず、見た目の大きな変更として、ウィンドウ左ペインをタブ化して、従来の「ツリー」に加え「タグリスト」を新設しました.これに伴い、同じ動作をする、「ツールバーの分類ボタンのドロップダウンメニューからタグを選んで表示する機能」は廃止しました.
  • タグによる分類は、木構造の物理的配置による分類と異なり、意味による分類なので、異なるブラウザブックマークのアイテムやRSS記事などをカテゴライズする用途に便利です.しかし、タグが増えてくると、いざ目的のアイテムにアクセスしたいとき、どのタグにカテゴライズしたのか忘れてしまい、結局ツリーを辿ってアイテムを見つける破目に陥ることが予想されます.そのような難を避けるために、「タグのクラスター化」という概念を導入します.この概念は、言わば「タグ」と「木構造」の折衷で、タグが定義されたアイテムの上位フォルダに%cluster[クラスター名]というマクロを宣言することにより、フォルダ以下にあるアイテムに定義されたタグは、「クラスター化」され他のタグと混ざることはありません.こうすることにより、目的のアイテムを探すときに、まず「クラスタ名」でざっと当たりをつけ、「タグ」を探せば、より効率的なアクセスが行えると思います.(あ〜、説明長いね.
  • 検索バーからタグ検索を行えるようにしました.通常の検索と同様に、正規表現や複数キーワードをセットすることができるので、複数のタグにカテゴライズされたアイテムを一括検索することが可能です.
  • アイテムからの「タグの除去」は、今までタグマクロが定義されたアイテムを直接選択しないと行うことができませんでしたが、フォルダ以下のアイテムを再帰的に探索して、一括除去できるようにしました.
  • Podcastアイテムの再生は、今までアイテムをダブルクリックしたとき、ブラウザ表示と同時に行う仕様にしていました.しかし、やってみるとわかりますが、かなり鬱陶しいです.そんなわけで、独立したコマンドにしました.ツールバーボタンやリストのコンテキストメニューに仕込んで実行可能です.また、世の中にはPodcastなのに、MP3や動画ではなく画像をリンクしている風変わりな人がいます.それに対応するため、Podcastリンクが画像であった場合は、ブラウザで開くことにしました.
  • 新規作成や編集ダイアログのマクロ入力支援ボタンから、既に登録済みのタグを選んでセットするとき、タグの数が多くてメニューが折り返された場合、"%tags"という文字がうまくセットされなかったバグを修正しました.
  • 検索バーからインターネット検索を行う際、ブラウザボタンをクリックして任意ブラウザに結果を表示させようとしても、実行されないバグを修正しました.(ちなみに、このバグは「別件でテストを行っていたときのコードが残っていてコマンドを阻止していた」という原因によります.なんか、まだ見落としてるテストコードの残骸がいっぱいありそうです..
  • ポップアップメッセージを表示するクラスは、.NETビルトインの方法を使わず、WinAPIを直接コールしているのですが、非常に希にCreateWindowExを実行した際に上手くウィンドウハンドルが生成されず、その後のハンドルを使うメソッドでNullExceptionを吐いて自爆してしまうことがあります.(実は、私自身は一度もその状況に遭遇したことがないのですが、とあるユーザーの方からのご指摘を受けて、初めて知りました.)その問題を回避するための、「眼くらまし」を仕込みました.果たして、上手く動作するか否か、正直わかりません.

Ver.0.66b

  • v0.62bで導入した%excludeマクロと真逆の動作を行う%includeマクロを追加しました.つまり、マクロ引数の正規表現にマッチするフォルダ内アイテムのみブラウザに送る機能です.また、%exclude, %includeのマクロ引数に比較対照とするエレメント(タイトル・URL・コメント)を設定したり、除外した項目がRSS記事やチェックアイテムだった場合に「恣意的に読了した」と見なす設定を、オプションとして盛り込むことができるようにしました.
  • フォルダ内アイテムを指定カラムで整列して表示する%sortマクロを追加しました.よく訪問するページが並んだフォルダを、いつも訪問日時順に表示させたりすることができます.ただし残念ながら、この機能はフォルダを表示するときのみ実行されるだけで、たとえばアイテムタイトルをリネームしたり、更新チェックで更新日時が変わったときに、リアルタイムでアイテムがグニュグニュと移動するような芸当はできません.(やっぱ、そういうことができたほうがカッコ良いのかな〜?)
  • 実行ファイルアイテムにコマンドライン引数を渡すための、%argsマクロを追加しました.
  • ほとんどのブラウザは外部からURLを受け取ると、自分を最前面にもってくる仕様になっているみたいなのですが、実行中のOperaだけは何故か奥ゆかしくレイズアップしてきません.そこで、iCBM3からURLを送る時、実行中ブラウザのプロセスが存在するならば、ウィンドウを最前面にする信号を送ることにしました.
  • ブラウザのコンテキストメニュー等からiCBM3にアイテムを登録する際に、タイトルなしURLのみのデータが送られてきたら、「名称未設定」で登録するのではなく、ペーストコマンドと同様に「新規アイテム作成」ダイアログに送って編集ができるようにしました.
  • メインウィンドウのDeactivateイベントが発生したら、ポップアップウィンドウを閉じる仕様にしました.
  • 通知ウィンドウをクローズボタンで閉じたとき、iCBM3がデスクトップに表示されているのであれば、フォーカスをメインウィンドウに取り戻すようにしました.
  • 「展開して新着列挙」「展開して未読列挙」コマンドの結果が「更新日時順に整列」していなかったバグを修正しました.
  • 通知ウィンドウ上にマウスを翳したまま既定時間を過ぎると、マウスが離れても自動的にウィンドウが閉じないバグを修正しました.
  • %excludeマクロが階層構造を持つフォルダで別々に記述されていた場合、子マクロを無視して全ての階層で親マクロが継承されていたバグを修正しました.ちなみに、子フォルダにマクロがない場合、親マクロが継承されるのは正しい動作です.
  • iCBM3のアプリアイコンにローカルアイテム(実行ファイル・書類など)をドロップした場合、ある条件下では実行ファイルアイテムとして登録できない場合があったバグを修正しました.また、一部のファイルはロングパス表記できていなかったバグを修正しました.
  • オプション設定・ファイル登録・お気に入り/ブックマークにおいて、新規ボタンからスクラップフォルダを作成してもチェックマークがリセットされてしまい、メインウィンドウに登録できないバグを修正しました.(あちゃ〜、またまた基本的な機能の不具合を長い間見過ごしていました.すんまへんです.まぁ、クレームが無かったという事は誰にも気づかれなかったのかなということで、有耶無耶有耶無耶に..あかんがな.
  • オプション設定・エクストラ・ゴミ箱内アイテムは検索から除外するオプションが、分類タグの収集・列挙には働いていなかったバグを修正しました.
  • リストやツリーアイテムを選択して、ツールバーのブラウザボタンをクリックしたとき、何かの拍子でリストやツリーからフォーカスが奪われてしまうときがあり、その結果ボタンの有効・無効状態の遷移が乱れるバグを修正しました.フォーカスが一瞬だけ奪われる理由が、今のところさっぱりわからないので対症療法的な改良に止まっています.なわけで、まだまだ不具合が見つかるかもしれません.

Ver.0.65b

  • 通知ウィンドウのクローズボタンは、Windowsのビジュアルスタイルに依存した形態のボタンを表示していましたが、例えばStyleXPなどの拡張ツールを使ってLuna以外のテーマに変更すると、範囲内に上手く表示できない場合があります.そこで、ビジュアルスタイルに依存しない自前のイメージ(images/Close.gif)を使うことにしました.
  • アイテム新規作成・編集ダイアログの「蟹」・「タグ」ボタンを廃止して、総合的マクロ入力支援のための「マクロ」メニュー(ボタン)を導入しました.アイテムの種類によって、使用できるマクロを動的にメニューに再構成する仕組みなので便利です.
  • 部分更新チェックのマクロパラメータの設定は、%updateマクロのみHTMLソースを表示してインタラクティブに行うことができましたが、%appearマクロについてもできるようになりました.
  • これに伴い、その機能を実現するための、ツールバー:「鮪」ボタン、コンテキストメニュー:「鉄火巻を起動」メニューアイテムを新たに追加しました.
  • 通知ウィンドウが表示されているとき、メインウィンドウのツリーやリストをクリックすると通知ウィンドウを閉じるという仕様を廃止しました.その代わり、ツールバーの「通知」ボタンは、ウィンドウが閉じているときは開く動作、開いているときは閉じる動作と、トグル的動作するようにしました.
  • ポップアップウィンドウをツリーやリスト上で消すイベントタイミングを、MouseUpからMouseDownに変更しました.
  • アイテム編集後のPostAction処理は外部ルーチンに丸投げしていましたが、EditWindowクラスで完結するようにしました.
  • <USER>/define.XMLでメニュー定義のコマンド名が間違っていた場合、今までは以降のメニュー読み込みを全て放棄していました.しかし、それはあまりにも潔すぎるというか厳格すぎるので、そこだけスキップして読み込みを続けるようにしました.
  • 同様に、<USER>/iCBM3.XMLのブラウザやブックマークのタイプ指定が間違っていたときも、そこで初期設定の読み込みを放棄していましたが、間違い部分だけスキップできるようにしました.
  • 新規アイテム作成ダイアログから、チェックアイテムを作成しても、一般アイテムとして登録されてしまうバグを修正しました.あちゃ〜、いつから問題が起きていたのでしょう...あまりにも基本的な部分のバグを、長期間放置していたようで、お恥ずかしい限りです.

Ver.0.64b

  • 通知ウィンドウのRSSリンクは、今までフォルダ内記事一括表示しかできなかったが、個々別々の見出し記事もクリックして表示可能にしました.
  • ローカルアイテムの検索範囲に、ゴミ箱フォルダを加えるか否かを設定できるようにしました.
  • 手動で更新チェックを開始した(開始ボタン)場合、わざわざ新着情報を通知ウィンドウを表示しなくても、結果はリストやツリー上に見えているので、通知ウィンドウの表示はタイマーによる定期更新チェックのみ行うことに仕様を変更しました.ただし、v0.63bで新設した[通知]ボタンによる表示は、これとは無関係にいつでも実行可能です.
  • ステータスバーの[新着コンテキストメニュー]に、[通知ウィンドウを表示]コマンドを追加しました.
  • Lunascape3 v3.5以降の全アイコン、Sleipnir1のフォルダアイコン、Sleipnir2 v2.21 test7以降のフォルダアイコンのバリエーションを、iCBM3でなるべく再現するようにしました.ここで、「なるべく」という表現を用いたのは、各ブラウザのアイコンとiCBM3のアイコンの色・形・総数は当然のことながら異なるため、期待する結果が得られない場合が多々あると思われるからです.
  • リスト上の何もないところをダブルクリックすると、自爆してしまうバグを修正しました.
  • ローカルアイテム・フォルダ/タイトル検索で、キーワードを"ルート"などとすると、本来見えてはいけないルートフォルダをヒットしてしまうという非常にオマヌケなバグを修正しました.ぁ〜、こっ恥ずかしい..

Ver.0.63b

  • インターネット検索の結果は、通常デフォルトブラウザによって表示されます.しかし、場合によっては特定のブラウザで表示したくなるときがあるかもしれません.そこで、インターネット検索モードで、かつ入力フォーカスが検索キーワードのコンボボックスにある場合は、ツールバーのブラウザボタンをクリックすると任意ブラウザで表示することができるようにしました.
  • ツールバーに[ポップ]ボタンを新設しました.通常、ポップアップメッセージの表示・非表示の切り替えは、オプション設定ダイアログから行うのですが、一時的に非表示にしたい場合、このボタンを使えば一発で切り替えを行うことができます.
  • ツールバーに[通知]ボタンを新設しました.今まで、通知ウィンドウは閉じると次の定期更新チェックまではお目にかかることができませんでした.しかし、このボタンをクリックすると、いつでも通知ウィンドウを手動で再表示することが可能になります.「だから、それがどうした?」って言われそうですが..確かに、作者自身もコレと言った用途が思いつきません.
  • アイテムの新規作成・編集ダイアログの「色選択メニュー」を「アイコンメニュー」に刷新しました.指定アイテムの種類に対応した色付きアイコンが、ドロップダウンリストに表示されるようになります.
  • テロップをクリックしてブラウザ表示を行う時、すぐに既読化を反映して表示書体が変更されるようにしました.
  • テロップ上でマウスをホバリングさせると文字色が変化するようにしました.これで、やっと某ブラウザのティッカーと似たようなルック&フィールになりました.ま、それだけなんですけどね.
  • インターネット検索・英辞郎(英和・和英)のアイコンを、開発時の暫定アイコンのまま前回リリースしてしまったので、正式アイコンと差し替えました.
  • アイテムの削除や更新チェックアイテムの既読化により、表示履歴スタックに保持された内容(例えば新着列挙など)が空になった場合、それを再表示するときにだけはエラーメッセージを表示せず、黙って次のスタックへ移動するようにしました.
  • コントロールのフォーカス遷移をタブキーで行った場合、ツールバーボタンの有効・無効状態が上手く追随して変化しなかったバグを修正しました.更に、ツールバーボタンとメニューで、有効・無効状態の判定条件がアシンメトリになっているケースが幾つかあったので一致するようにしました.
  • 検索コンボボックスのメニュー選択をキャンセルするために、再度コンボボックス(表示部)をクリックすると、一度はメニューが消えるが、すぐに新メニューが表示されてしまう不具合を修正しました.
  • オプション設定・アピアランス・ツールバーの項目を編集すると、履歴ボタンの個別ブラウザの履歴列挙がメニューから抜け落ちてしまうバグを修正しました.
  • アイテムをコピー(右クリックドラッグ)するとき、アイコンやロック属性がアイテムのクローンコピーで反映されていなかったバグを修正しました.
  • RSS記事のPodcastアイテムをRSSフォルダの外に移動・コピーしたときは、他のアイテムとの整合性を保つために、一般アイテムに変身する仕様となっているのですが、アイコンが変化しなかったりだとか幾つかの不具合があったので修正しました.

Ver.0.62b

  • 検索関連のインターフェースを大改造しました.ビジュアルスタイルをフラット化し、検索方法のコンボボックスは、階層メニュー方式にしました.無駄にびろ〜んと長かったドロップダウンリストや、見栄えの悪いセパレータともおさらばです.スッキリ!
  • 検索方法に以下の機能を追加しました.「ローカルアイテム検索・アイテム/更新日時」「ローカルアイテム検索・アイテム/訪問日時」「ローカルアイテム検索・フォルダ/タイトル」「ローカルアイテム検索・フォルダ/コメント」「インターネット検索・Google(ニュース)」「インターネット検索・Delicious」「インターネット検索・Flickr」「インターネット検索・Microsoft(日本)」「インターネット検索・The Code Project」「インターネット検索・DOBON.NET」.最後の3つは、あまり一般的なニーズはないと思われますが、まぁ作者の趣味ということでご容赦を.
  • 上記の新しい機能からも判るとおり、アイテム検索とフォルダ検索を分けて行うようにしました.「あれっ、たしか以前も分けていた時期があったけど、それを一緒にしたんじゃなかったっけ?」と思い出したあなた.するどい、その通りです.思いつきで長期展望なんか立てずにソフトを作ってると、コロコロと方針が変わるんです.いやはや、お恥ずかしい.
  • Ver.0.60aで、検索キーワードと検索方法をセットにして履歴に記憶するようにしました.しかし、履歴ドロップダウンリストにはキーワードが表示されるだけで、選択するまでどういう検索を行ったのか見ただけではわかりませんでした.そこで、リストに検索方法アイコンとキーワードを列挙することにしました.なかなか、ソレっぽくてグッドです.
  • フォルダ内アイテムを一括表示する際、フォルダコメント欄に%exclude[正規表現]というマクロを記述しておくと、正規表現で定義されたパターンに合致するアイテムをブラウザ表示から除外できる機能を追加しました.最近、企業や団体が配信するRSSに広告リンクが挿入されるケースが増えてきました.この機能は、それらを排除するのに便利です.現在のところ、正規表現パターンが認識できるのはアイテムのタイトルのみですが、いろいろと研究して対応を増やしていきたいと思います.
  • ツリーペインとリストペインのコンテキストメニューおよび検索方法のコンボボックスを外部ファイル(<USER>/define.XML)から定義するようにしました.これで、ツールバーと同様に、メニューも自分好みの並びにカスタマイズ(階層化やセパレータの挿入も可)することができます.(例によって、GUIによる編集は後日ということで.だって、めんどくさいんだもん..)
  • 上記したように、検索方法のコンボボックスの定義をdefine.XMLで行うことにしたので、インターネット検索の定義もそちらに移動しました.この結果、default/search.XMLはお役御免となります.
  • 検索方法の定義を外部ファイル化したことに伴い、検索方法の順番が変わっても対応できるように、初期設定ファイルの検索キーワードの履歴タグの書式を改めました.
  • 表示履歴(進む・戻るボタン)にスタックされた検索コマンドが実行されると、既に検索履歴に登録されているにも関わらず、再度キーワードを履歴にプッシュしてしまっていた(その後の重複チェックで消されるので、実害はないのだけど)バグを修正しました.

Ver.0.61b2

  • メモファイル、実行ファイル、フォルダ(ブラウザ・スクラップ・ゴミ箱を含む)の編集を行うと、自爆してしまう重大なバグを修正しました.v0.61bで行った編集ダイアログの内部コマンドコードの仕様変更が原因でした.余計なことしなきゃ良かったかな..
  • アイテム/URL検索で、関係ないフォルダなどのアイテムも検索対象にひっかけてしまっていたバグを修正しました.
  • 通知ウィンドウのアニメーション速度は、やっぱり速すぎるので遅くしました.で、初期設定ファイルからパラメータ設定できるようにしました.(バージョンアップされる場合は、default/iCBM3.XMLを最新のものに入れ替えるのをお忘れなく.)

Ver.0.61b

  • スクリプト「Internet Explorerの表示ページを登録.vbs」・「Sleipnirの表示ページを登録.vbs」・「Lunascape3の表示ページを登録.vbs」を追加しました.また、「irvine.vbs」はファイル名から機能がすぐにわかるように「Irvineに選択URLを送る.vbs」にリネームしました.
  • 全履歴/訪問日時検索を行う際、訪問日時を手動入力する方法以外に、カレンダーからセットする方法を追加しました.検索ボタン横のカレンダーボタンをクリックすると、その機能を使うことができます.
  • フォルダを選択して中のアイテムをブラウザで一括表示する場合、1回に送る最大アイテム数を制限できるようにしました.ある方から、ブラクラ呼ばわりされていた汚名をこれで返上できるかな..
  • RSSアイテムをチェックする際、%author[]マクロを定義しておくことで、各記事の要約文の先頭に著者名を挿入するようにしました.不特定多数が書き込む掲示板やブログランキングのRSSを閲覧する時に便利です.
  • 一般アイテムの部分チェック(%updateマクロ)の要約を、%popupマクロによって自動取得する際に、要約文中に%と言う文字を含んでいるとマクロパーサー(正規表現パターン)が上手くマクロを切り出せないという問題があります.そこで、非常に不恰好ではあるが要約文中では、%を%(全角文字:今時はこういう言い方しないね)で置換することにしました.
  • オプション設定・エクストラ・「アイテム登録はスクラップフォルダに限定する」をオンにした場合、確かに外部からのアイテム登録はスクラップにしかできませんが、新規作成や編集はできてしまいます.これは、明らかに非対称な条件設定で合理性が保たれていません.そのため、更にストリクトなオプション「アイテム登録・新規作成・編集はスクラップフォルダに限定する」に変更しました.
  • RSS内記事のアイコンは、今まで緑色固定にしてきましたが、これも変更できるようにしました.別に技術的に難しいわけでもなく、他の整合性も考える必要がないのに、なんで最初に仕様を考えたときは不可にしたんだろう..
  • テロップ表示部と通知ウィンドウアイテム上で表示されるコンテキストメニューには、ブラウザのみを列挙するようにしました.つまり、スクリプトは排除することにしました.必要ないもんね.
  • 通知ウィンドウのアニメーション速度をスピードアップしました.ちょっと、やりすぎかな?
  • 通知ウィンドウがアニメーション動作中は、アイテムへのマウスクリックなどのイベントを受け付けないようにしました.
  • ポップアップウィンドウが消えるタイミングが、通常のアプリのツールチップと異なるため何だかしっくりこないので、なるべく通常と同じような振る舞いをするようにしました.具体的には、アイテムをクリックしたら直ぐに消える等の動作を追加しました.
  • アイテムロック属性は、アイテム削除不可だけでなく移動も不可と仕様を改めました.
  • 蟹味噌エディタのウィンドウスタイルを、ツールウィンドウスタイルに変更しました.
  • ツリーとリストのコンテキストメニューアイテム「セパレータを挿入」は、オプションによって挿入や末尾追加と動作が異なるので、「セパレータを作成」に改名しました.
  • オプション設定・ファイル登録のボタン群は、リストの選択状態によって動的に有効・無効状態を変更するようにしました.
  • ツールバーボタンに登録されたスクリプトファイルのツールチップは、ファイル名(拡張子を除く)をそのまま表示することにしました.そのため、上記で触れたように、新しいスクリプトは機能がすくわかるファイル名になっています.
  • ツールバーボタンがドロップダウンスタイルである場合、無効状態になってもドロップダウンアローは色付きのままだったバグを修正しました.
  • RSS内記事が削除されたり、他のフォルダに移動した場合、連動して親のRSSフォルダのステータス変更がされなかったバグを修正しました.また、RSS内記事が別フォルダへ移動した場合は、記事だった痕跡を完全に消すために、更新日時などもリセットすることにしました.
  • アイテム編集ダイアログの内部コマンドコードを、v0.60aで行った主要コマンドコードの改良と同様に一新しました.
  • またまた、気まぐれにいくつかのアイコンを変更しました.

Ver.0.60a

  • 初期設定データの既定値をアプリ外部に追い出し、初回起動時や新パラメータが増えたときはdefaultフォルダ内のファイルから読み込むようにしました.(過去バージョンからバージョンアップされる方は、備考2006/05/07を事前によくお読みください.)
  • ツールバーなどのアイコン画像も全てアプリ外部に追い出し、imagesフォルダから読み込むようにしました.アイコン画像は、他のWindowsアプリと少々異なり、個々のアイコンが透過GIFで定義されています.これで、スキン背景画像とともにボタンアイコンもユーザーサイドで自由に変更することができますね.(過去バージョンからバージョンアップされる方は、備考2006/05/07を事前によくお読みください.)
  • 通知ウィンドウのコードを全面的に書き直しました.これにより、以下の機能が付け加わります.(1)RSSの新着はいくつかの記事タイトルも見出し表示するようにしました.(2)アイテムは個々にクリック可能となり、クリックすると直接デフォルトブラウザで表示することができます.また、アイテム上でコンテキストメニューを立ち上げて、任意のブラウザを選択して表示することも可能です.(3)通知ウィンドウを時間経過やイベントにより自動的に閉じるか、クローズボタンを手動でクリックするまで閉じないかを選択できるようにしました.(4)手動でウィンドウを閉じるときも、アニメーションしながら閉じるようにしました.(5)通知ウィンドウの最大表示幅・最大表示行数を設定できるようにしました.
  • 検索履歴メニューは、キーワードとともに検索タイプも記憶するようにしました.検索履歴メニューを変更すると、それに連動して隣の検索タイプメニューが変更されます.コレ、便利です.
  • 一般アイテムの更新チェックを%updateマクロによる部分チェックで行う場合、同時に%popupマクロを定義しておくと、部分チェックを行ったHTMLソースから要約文を作成し、それをポップアップメッセージとして表示することができるようにしました.私的には今回の目玉機能だと思うですが、この説明だけだとわかりづらいですね.default/scrap.OPMLに使用例がありますので、まずはそちらをお試しください.
  • ポップアップメッセージに表示する要約文の書式がHTMLである場合、平文への変換方法がイマイチだったので、アルゴリズムを見直しました.表や箇条書き部分の取り扱いを重点的に改良しています.まだまだ満足できるレベルではありませんが、以前よりは良くなったかな?
  • テロップの書式をリスト項目とシンクロさせることで、記事が新着・未読・既読のどの状態か判別できるようにしました.また、エラーメッセージなどは色違いで表示することにしました.
  • 外部からRSSやOPMLを登録する条件を厳しくしました.今まで、同一アドレスの有効なRSSが存在した場合、休止状態で登録できる仕様になっていました.更に、元が休止状態であれば、有効状態で登録できました.しかし、いづれにせよ、同一アドレスが重複登録されるというのはエレガントではありません.そこで、新仕様では同一アドレスの登録は有無を言わせず叩き落すことにしました.
  • 保存ボタンのシンクロ保存機能は、全ブックマークを対象にする方法とスクラップブックマークのみを対象にする方法の2種類のバリエーションから選択可能になりました.
  • ブラウザなどからリンクを登録する際に、リストの位置に挿入登録するか末尾に追加登録するかを選択するオプションを追加しました.
  • 起動時にウィンドウを隠してシステムトレイに収納することができるオプションを追加しました.
  • フォルダをリスト項目の間(特にフォルダとフォルダの間)に挿入登録する際、ツリー側では順番が再構成されず末尾に登録されてしまうバグを修正しました.
  • ポップアップメッセージ表示のディレイタイマーが、ある条件ではスクラムを組んでしまい、再スタートされずポップアップメッセージがいつまで経っても表示されなくなるバグを修正しました.
  • 休止状態のRSS内記事を、未読状態に変更できてしまうのは変なのでオミットしました.
  • メニューアイテムのショートカットキーが、時々反応しなくなるバグを修正しました.
  • コマンドコードの内部表現や返り値の仕様を大幅に変更しました.コマンドパラメータをobject型で記述する(ボックス化)ことで、整数や文字列型のパラメータを分けずにひとつの変数に混在させ、シームレスにアクセスできるという、いかにもC#らしいプログラミングを行っています.ボックス化のご利益とは、こういうことだったのかと遅まきながらわかったです.

Ver.0.59b

  • オプション設定の項目がゴチャゴチャに散らかってしまったので、それぞれの項目のカテゴリーを再構築しました.これに伴い、初期設定ファイルのクラス定義も全面的に見直しました.その結果、古い初期設定ファイルを読み込むと、主要なパラメータはOKなのですが、一部のパラメータが継承されません.ご了承ください.
  • ポップアップメッセージ(バルーンウィンドウ)の挙動が時々おかしくなる(例えば表示時間が設定通りにならない等)ことがあります.そこで、今まで採用していたバルーンウィンドウクラスを破棄して、新たなクラスに書き直しました.これにより、表示時間を永久的にするなど、新たな設定が行えるようになりました.
  • テロップ表示条件に、「今日の更新アイテムのみ」と「6時間以内の更新アイテムのみ」を追加しました.また、テロップの「移動時間」も設定できるようになりました.
  • 今まで、初期設定ファイルを編集する必要があった「ツールバーのレイアウト」を、オプション設定から行えるようにしました.設定のためのGUIのアイデアが、結局良いものが思いつかなかったので、以前と同様に文字による方法です.
  • ウィンドウをリサイズしたとき、ツールバーを多段表示して、全てのボタンがウィンドウに収まるようにしました.
  • ブラウザなどの外部からのアイテム登録は、スクラップフォルダに限定するか否かを設定できるようにしました.
  • Ver.0.57bにて、Sleipnir2とLunascapeの独自履歴はIE履歴と内容が被るので、メニューから排除していましたが、それらを復活させるか否かを設定できるようにしました.
  • 新着アイテムが確認されたとき、画面右下にニュルニュルと現れるウィンドウを「告知ウィンドウ」とVer.0.58bまでは呼んでいましたが、日本語的に変ですよね.「告知」って、「がん患者の余命宣告」みたいで、縁起でもないし..なわけで、これからは「通知ウィンドウ」と呼ぶことにしました.
  • 「通知ウィンドウ」が表示されたとき、これを閉じるには、「クローズボタン」か「新着列挙部分」をクリックする必要がありました.これって、マウスが離れていると、意外に面倒ですよね.そこで、メインウィンドウ内の適当なところをクリックしても、「通知ウィンドウ」を閉じることができるようにしました.
  • Google Local(Map)が、ここのところバタバタと仕様を変更しているようなので、検索メニューのエントリーから外しました.
  • Ver.0.57bで、メニュー項目の有効・無効を動的に変更するようにしましたが、アイコンを状態に応じて変更させるのを、すっかり忘れていたので修正しました.
  • またまた、気まぐれで幾つかのアイコンを変更しました.
  • RSSアイコンも色の変更ができるようになりました.
  • IEのコンテキストメニューなどからアイテムを登録する際に、iCBM3のウィンドウを最前面にできない場合があるバグを修正しました.
  • RSSのオートディスカバリー機能で、たまにRSSとは違うリンクを余分に拾ってしまうバグを修正しました.

Ver.0.58b

  • システムトレイ収納時に新着が確認されたら、今まではバルーンメッセージで列挙表示していましたが、趣を一新してMSNメッセンジャー風の告知ウィンドウに表示することにしました.また、これに伴い、新着告知はトレイ収納の如何に関わらず行うことにしました.(ちょっと、鬱陶しいかな...
  • メニューのアイコン背景をグラディエントカラーでペイントするようにしました.(面倒だろうと思い込んでいたけど、勾配ブラシを定義してしまえば、意外にカンタンにできちゃうのね.
  • ツールバーと検索バーの境界を3Dからフラットで描くようにしました.
  • Ver.0.56bでブラウザブックマーク内アイテムの編集を解禁しましたが、アイコンカラーとロック(属性)はiCBM3特有のオプションなので、編集しても保存はされません.そこで、これらのコントロールは、ブックマーク内アイテムの編集時は変更不可にしました.
  • オプション設定・インターフェース・スキン画像を皮無しにして一旦アプリを終了、その後再起動するとデフォルトのスキン画像に戻ってしまうバグを修正しました.
  • 蟹味噌エディタでソースを表示させる時、%url[]マクロが定義されていても、アイテムのURLにアクセスしてしまうバグを修正しました.(アイテムの更新チェックでは、%url[]をちゃんと認識しています.バグは蟹味噌のみで起こってました.
  • いくつかのクラスを整理統合し、名前空間の統一を図りました.

Ver.0.57b

  • 遅まきながら、ツールバーボタンとコンテキストメニュー項目の有効・無効を、アイテムの状態やネット接続状態に応じて、動的に変更するようにしました.
  • ツールバーボタンが無効になったときの見栄えを考慮して、いくつかのボタンアイコンを変更しました.
  • ロック(施錠)属性を、フォルダにも適用できるようにしました.これに伴い、ツリーペインのコンテキストメニューにもロック関連のメニュー項目を追加しました.
  • Sleipnir2とLunascapeの独自履歴はIE系ブラウザ履歴と重複して鬱陶しい(完全重複なら許せるが、時間がズレルのが追い討ちをかけてイヤラシイ)ので、通常はこれらの履歴表示・検索はメニューから排除することにしました.今までどおり、メニューに登録したい場合は、初期設定ファイルの隠しフラグをオンにすることで復元することもできます.
  • アイテムやフォルダに、タイトル以外の副次的な情報を表示させるために、%popup[]というマクロを新設しました.アイテム上でマウスを静止させると、マクロで定義したメッセージがポップアップウィンドウに表示されます.特定のアイテムを他アイテムと差別化したいときに便利ではないでしょうか.
  • 全てのブックマークアイテムの編集を解禁したにも関わらず、ドラッグ&ドロップによるアイテムの登録は、スクラップフォルダ傘下に限定したままになっていたバグを修正しました.
  • Unknown属性のフォルダにアイテムを作成できてしまうバグを修正しました.
  • 進む・戻るコマンドのスタックに、ルートフォルダが記憶されないバグを修正しました.
  • 進む・戻るコマンドのスタックをポップする場合、例えば列挙コマンドで登録したときと状況が変化し、何も表示すべきアイテムがなくなった場合は、今までそこでコマンドを終了してましたが、これからは自動的に次のポップに進むようにしました.(文章にすると、ナンノコッチャだな..
  • RSS記事の要約をポップアップウィンドウで表示した直後、マウスを急に移動させて、進む・戻るコマンドを実行した場合、一瞬ポップアップウィンドウの残像が残ってしまうバグを修正しました.(今のところ、功を奏しているみたいだけど、また再発するかも..
  • 休止RSSを更新チェックに再エントリーするとして、その際何らかの理由から接続がエラーになった場合、ダーティフラグがセットされずデータベースへ書き込みがなされないバグを修正しました.
  • RSSの最大保存記事数制限機能により古い記事を削る際、ロックされたRSS記事は消そうとするがでも消せないというジレンマが発生して、無限ループに陥ってしまっていたバグを修正しました.(あいたたたた!これ、ションベンちびりそうなぐらい致命的なバグでした...被害を被った方、すんまへんです.

Ver.0.56b

  • 今まで、ツールバー上のブラウザボタンはその他のボタンと異なり、任意の位置に配置することができませんでしたが、ブラウザボタンの特性を抽象化(複数のボタンを個別指定するのではなく、ブラウザボタン群という一塊で指定)することで好みの配置ができるようになりました.
  • ブラウザブックマーク内アイテムは、スクラップフォルダ内アイテムと異なり、今まで編集不可としてきましたが解禁します.これで、iCBM3で編集した内容を、各ブラウザのブックマークに反映することができます(シンクロ保存コマンド).ただし、今のところ様々な制約があります.(1) Lunascapeのブックマークは保存できません.(2) Sleipnir1&2の各アイテムごとの個別設定は保存されません.(3) アイテムの訪問履歴やfaviconデータなども保存されません.以上のことから、現時点ではシンクロ保存コマンドは、自動ではなく手動操作のみ行うよう限定しています.
  • 上記のシンクロ保存コマンドを実現するに当たり、各種ブックマーク形式の保存コマンドの仕様を若干変更しました.(1) IE形式の保存では、一度お気に入りフォルダ内のアイテムを全てクリンナップしてから書き込むようにしました.(2) Sleipnir1の「リンクバー」フォルダをの位置を、今までは他ブラウザと同じになるようアレンジしていたが、Sleipnir1のブックマークファイルのフォーマットどおりに配置するようにしました.(3) Firefoxの「ブックマークツールバー」フォルダのタイトルがリネームされても、キチンとツールバーに登録されるように認識痕をつけました.
  • ブラウザからのドラッグ&ドロップでRSS登録をしようとして、それが失敗した場合、更新データベースにゾンビの如く、エントリーが残ってしまうバグを修正しました.
  • 蟹味噌エディタダイアログを、ソース取得前に閉じると、自爆してしまうバグを修正しました.
  • システムトレイ収納中は、無駄なCPUタイムを消費させないためテロップ表示を停止させているのですが、定時更新チェックが終了すると収納状態の如何に関わらず、テロップをリスタートさせてしまうバグを修正しました.
  • 履歴列挙や履歴検索の結果リストから、更新チェックを開始できてしまうバグを修正しました.
  • RSSの最大保存記事数の制限で削った記事の中に新着があり、他記事は新着ではなかった場合、新着数がゼロであるにも関わらず、新着表示(太字斜体)してしまうバグを修正しました.具体的には、ダブルチェックを行うことにしました.いや〜、この変更で、更新チェックが目に見えてスピードダウンしてます...
  • 掲示板で指摘された「起動時の不具合」の理由を探るため、主な初期化ブロックで例外キャッチを仕込みました.作者サイドでは一度も起動時に問題が起こったことがなく、皆目見当がつかないので、このように非常にプリミティブな方法で対処してます.問題が起きたときは、ぐじゃぐじゃぐじゃとメッセージが表示されますが、ご容赦を.

Ver.0.55b

  • アイテムを削除不可能にするロック機能を追加しました.また、RSSフォルダ内の記事にロックを適用すると、記事が最大保存数の末尾に来ても流れてしまわないようになっています.
  • アイテムのロック状態を変更するには、編集ダイアログからセットするやり方と、コンテキストメニュー・ツールバーボタンから一括セットする方法を用意しました.
  • [新着列挙]などの列挙コマンドの結果を[戻る][進む]コマンドで再表示させる場合、今まで本体のリストとは独立したストレージを使っていましたが、これだと既読にしたアイテムがいつまでも残っていたりと、最新の状態が反映されているわけではなく不細工です.そこで、これらの列挙系コマンドを再表示させる場合は、毎回最新の状態が反映されるように、列挙情報を取得しなおすようにしました.
  • RSS記事の要約などをポップアップ表示する機能は、場合によっては五月蝿いと感じるときもあるので、スイッチによってオン/オフできるようにしました.
  • [列挙]や[分類]コマンドによって表示されたアイテム上に、マウスを翳すと「親ディレクトリ」をポップアップ表示する仕様は、鬱陶しいので廃止しました.
  • オプション設定・更新チェッカー・更新データベースの、[随時、更新日時順に整列する]と[終了時、未参照のアイテムを消去する]スイッチは、ユーザーサイドで変更する機会は殆どないと考え、廃止しました.一方、新たに[更新チェック終了時に、データベースを自動保存する]というスイッチを設けました.
  • オプション設定・ブラウザ登録リストで、デフォルトブラウザのチェックボックスを無効にできてしまうバグを修正しました.
  • 検索バーの検索履歴が、最大保存数を超えた場合は末尾テキストを削除するはずが、末尾のひとつ前を消してしまっていたバグを修正しました.
  • %autotags[]マクロでRSSから分類タグを取得する際、拾ったタグマクロの前に余分な改行が入ってしまうバグを修正しました.
  • RSS記事を移動や削除した時、更新データベースのダーティフラグがセットされていなかったバグを修正しました.
  • 検索を行ってゴミ箱内RSSがヒットした場合、そこから更新チェックに再エントリーできてしまうバグを修正しました.

Ver.0.54b

  • Lunascape Ver.3.54になり、またまたブックマークの書式が変更されたので、対応しました.過去バージョンのブックマークも自動認識するようになっています.(それにしても、「今頃になってRSSの時系列ソートフラグなんか入れやがって!」と少し毒づいてみました.
  • ソーシャルブックマークやブログのRSSから、タグやカテゴリーキーワードをiCBM3の分類タグとして自動取得するマクロ(%autotags[])を追加しました.(はりきって作ってみたものの、正直あまり使い道はないかもしれません.タグやカテゴリーってのは、自分だけで管理してるならば便利かもしれませんが、人様がやった分類なんて、数が増えてくると結局は更に深いカオスが待っているだけのような気がします.
  • 分類ボタンのタグメニューの項目数が増えたときに表示を見やすくするため、一定の項目数ごとにメニューを折り返すようにしました.
  • ブラウザからドラッグ&ドロップでRSSリンクを登録する際に、タグの自動取得を行うかどうかを設定できるようにしました.
  • ブラウザからドラッグ&ドロップでリンクなどを登録する際に、リスト上のアイテムが選択されていたら、その位置に挿入するようにしました.
  • 今までブックマーク検索は、タイトルもコメントもURLも同時に検索していましたが、ヒット件数が増えてくると逆に使いづらいので、それぞれに細分化しました.
  • ダブルクォーテーションで単語を囲むと、通常モードでは単語単位の検索と見なすようにしました.
  • ダブルクリックでアイテムを表示するブラウザ(デフォルトブラウザ)の設定を、個別指定するマクロ(%browser[ブラウザ名])を追加しました.
  • RSS記事の要約文は、description要素以外にcontent要素があったら、一般的に後者の方が詳細なので、そちらから優先して取得するようにしました.
  • RSSフォルダのタイトルに、未読数を表示するだけではやっぱり片手落ちなので、新着数も併記することにしました.
  • OPMLファイルのヘッダ要素に、更新日時と作成者を保存するようにしました.
  • ポップアップメッセージの文字色が、Windowsのビジュアルスタイルによって勝手に変更されてしまうバグを修正しました.
  • ポップアップメッセージが表示される領域に侵入したときの、判定条件が甘かったので、修正しました.
  • 検索結果を表示した状態でアプリを終了すると、次回はルートフォルダを選択して起動するというのは不恰好なので、検索を行う直前に選択していたフォルダを記憶するようにしました.
  • 検索でリストアップされたアイテムの中の任意のひとつを選択して、「親ディレクトリ」へ移動を行った際、ステータスバーのリスト項目数の選択数が0になってしまうバグを修正しました.
  • 更新データベースのエントリー着脱方法が、非効率的だったので改善しました.
  • 引数のないマクロ命令を、時にうまく解読できない場合があるバグを修正しました.
  • 更新データベースのダーティフラグ(内容に変更があったかを判定するフラグ)が、うまくセットされない場合があるバグを修正しました.
  • 履歴表示や新着列挙などを行ったリスト上で、アイテムを移動・削除したとき、親フォルダが行方不明になって自爆してしまうことがあるバグを修正しました.

Ver.0.53b2

  • 起動時にiCBM3は、ブラウザ個別の履歴検索が、できるかどうかを判定します.その判定は各ブラウザの履歴ファイルの存否をチェックするのですが、履歴ファイルの在処は、ブックマークのパスから辿る仕組みになっています.ところが、何らかの理由でブックマークのパスが空だった場合、履歴ファイルへのパスを辿ることができず、自爆してしまいます.対症療法的ですが、問題を回避する修正をおこないました.

Ver.0.53b

  • RSS記事の要約文などを表示するポップアップウィンドウをバルーン形式にしました.これに伴い、書式を少し変更しました.(今まで、.NETビルトインのツールチップウィンドウで、改行の禁則処理を施すために四苦八苦していましたが、何のことはないAPIを使ったバルーンならば、勝手に処理してくれるのですね.あははははは..とりあえず、笑っとけ.
  • RSSの最大保存記事数・記事の要約文の最大文字数を、それぞれ%article[], %summary[]というマクロを使って、個別設定できるようにしました.
  • アプリ終了時のスクラップやゴミ箱フォルダや更新データベースの内容の保存は、起動時と内容の違いがないならば行わないようにしました.闇雲にバックアップを行わなくなるので、BAKファイルの寿命が少しだけ改善されます.
  • [列挙]ボタンのメニューコマンドに、[展開して新着列挙]・[展開して未読列挙]を追加しました.ニュースソースに関係なく時系列に記事をリストアップすることができます.
  • [貼付]ボタンを追加しました.これに伴い、従来の同機能のインターフェースを少し変更し、貼り付けすると[新規アイテム作成ダイアログ]が表示されるようにしました.
  • エラーアイテムとポッドキャストアイテムのアイコンを変更しました.移り気な性格なもんで、なかなか定着しなくて、すんまへんです.
  • 蟹味噌エディタ(HTMLソース表示)のウィンドウサイズを変更可能にしました.
  • ブックマークやブラウザの登録方法を変更しました.具体的には、ファイル(フォルダ)が存在しない場合は、チェックマークを強制的に外します.要するに、空のフォルダやボタンをツリーやツールバーに表示させないという仕組みにしたわけです.更に、ツールバーレイアウトの定義に想定外のボタン記号が含まれていた場合、自動的に排除するようにしました.
  • 今まで、ウィンドウサイズを広げると、テロップが表示フィールドの中央に突如現れてスクロールを始めるという、不恰好な状態でした.今回、ウィンドウサイズを変更しても、テロップは必ず表示フィールドの右端から流し込まれるようにしました.
  • RSS記事の要約文が、配信(サーバ)側で更新されると、クライアント(iCBM3)側で保存していた[分類タグなどのマクロ]が消えてしまうバグを修正しました.
  • 初回起動時、Sleipnir2のブックマークのアイコン色がSleipnirと同系統になっていなかったミスを修正しました.
  • BulknewsSleipnir オンラインデータベースのように、更新日時情報をもたないRSSにアクセスすると、既に読み込み済みの記事でも、毎度毎度(新着)と見なしてしまうバグを修正しました.
  • 正規表現モードでない通常の検索を行うときまで、正規表現のメタキャラクタを解釈してしまっていたバグを修正しました.
  • 正規表現モードの検索の際、マッチングに無駄なインスタンスを消費していたのでスリム化を図りました.
  • 蟹味噌エディタで、蟹ばさみマクロ用キーワードをピックアップする際、キーワードの前後に誤って改行コードを引っ掛けないように、セット前にトリミングするようにしました.
  • 蟹味噌エディタで、、蟹ばさみマクロ用キーワードが変更されたとき、ソースの再描画(非選択部分)が黒色にならないバグを修正しました.
  • リンク抽出の際、一連の処理の流れの途中(例えば追跡抽出の途中)にエラーが起こると、うまく抽出できた結果まで全て放り投げたうえに、失神(西川君!)してしまうバグを修正しました.(なんか、文章にすると凄い事が起きてるように見えるね.)
  • ある条件(説明省略・たぶん滅多には起こらないはず)に合致すると、ゴミ箱内で眠っていたはずのRSSやチェックアイテムが、生き返ってゾンビ化してしまうバグを修正しました.
  • それにしても、汚いソースコードだ..なんとか、しなければ..

Ver.0.52b

  • タグキーワードを使った分類表示機能をツールバーボタンに追加しました.要するに、ソーシャルブックマークのアレ(フォークソノミーとか言うんだって..よくわかんないです私.)と同じような使用感です.(正直、インターフェースはマダマダですけど..)タグキーワードはアイテムのコメント欄に記入するマクロとして定義されるので、iCBM3では編集できないブラウザブックマークのアイテムにもタグを記述することができます.日々の巡回コースや、異なるブラウザの同じカテゴリのブックマークをまとめるような用途に便利だと思われます.
  • RSSフォルダ内の記事は、今まで編集不可としてきました.しかし、上記のタグ分類の利用価値が最も高いのはRSS内記事であると思われるので、仕様を変更しコメント欄のみ編集可能としました.
  • OPMLの標準仕様では、フォルダにコメントを記入できないのですが、上記と同様の理由からコメントを保存できるようにしました.(どんどん、オレ流OPMLになってしまい、たぶん他のアプリではインポートできないようになってしまいましたが、まぁ我慢してちょ.
  • 検索オプションに「正規表現によるパターンマッチング」を追加しました.また、今まで英字の検索ワードはストリクトに綴りが一致しないとヒットしませんでしたが、Igonore Case(大文字小文字の違いを無視する)を標準としました.
  • Web検索項目に「はてなブックマーク(タグ)」と「ウィキペディア」検索を追加しました.
  • ローカル検索の「フォルダ検索」は、独立した存在意義がいまひとつ希薄なので廃止し、ブックマーク検索に併合しました.
  • オプション設定のブラウザ登録リストも、お気に入り登録リスト同様にチェックボックスを使うことができるようにしました.所望のブラウザ登録を一時的に解除することができます.
  • RSSフォルダのタイトルに未読記事数を表示するようにしました.
  • ドロップダウンメニュー形式のツールバーボタンに、ボタン幅をむやみに消費しない自前のアロー(▼)を描画するようにしました.
  • 初期設定ファイルのcolumns,FavoriteInfo,BrowserInfoタグの書式を変更しました.
  • アイテム編集ダイアログの入力フィールドのフォントを変更しました.
  • 初回起動時は、ウィンドウサイズをツールバーの幅に合わせるようにしました.
  • オプション設定のブラウザ登録リストから、デフォルトに指定したブラウザを削除できてしまうバグを修正しました.
  • オプション設定のブラウザ登録リストを編集すると、ステータスバーのテロップ位置のコンテキストメニューにブラウザを二重登録してしまうバグを修正しました.
  • オプション設定のブラウザ登録リストに、存在しないアプリが登録されているとそれ以後のアイコン表示がズレて変になってしまうバグを修正しました.
  • 検索メニューで、ブラウザ・アプリやWeb検索アイコンが見つからなかった場合、代替アイコンが表示されないバグを修正しました.
  • ブックマーク検索で、メモアイテムや実行ファイルアイテムが検索対象から漏れていたバグを修正しました.
  • 蟹味噌エディタで、蟹バサミキーワードによる色違いソース表示が、ある条件では動作しないバグを修正しました.(いやぁ、.NETのRichTextBoxのFindメソッドを信じた俺がバカだった.こんな不具合があるなんて..
  • RSSの自動検出の際、XML以外のリンク(例えば、はてなRSSのモバイル用RSS)をひっかけて、エラーとなってしまうバグを修正しました.
  • HTMLソースからエンコード宣言を検出する際、仕様にないエンコード(例えば、MovableTypeの"<$MTPublishCharset$>")に出くわした場合は、デフォルトエンコードでとりあえず凌ぐようにしました.
  • 既に取り込み済みRSS記事で、要約文の内容だけが変更された場合に対応できていなかったバグを修正しました.

Ver.0.51b

  • 検索メニューに[全履歴検索(訪問期間)]コマンドを新たに追加しました.この機能は、訪問した日時を例えば 2005/12/20 - 2006/01/10 という具合に期間で指定し検索するものです.URLやタイトルを覚えてなくても、いつ頃訪問したという情報だけから、所望のページを見つけ出すのに役立つと思われます.
  • 検索メニューの配列を変更しました.また、ローカル検索と履歴検索のアイコンを独立させました.
  • ツールバー・列挙ボタン(メニュー)に[全エントリー列挙]コマンドを追加しました.
  • [セパレータを挿入]コマンドも、ツールバーボタンとして登録できるようにしました.
  • ツリーにもリストにもフォーカスがないとき、仕様では全エントリーの更新チェック開始をすることになっているのですが、それが実行できなくなっていたバグを修正しました.
  • 同一フォルダ下にある複数のブラウザブックマークを登録した場合、履歴を重複して読み込んでしまうバグを修正しました.
  • RSSアドレスが諸事情で移動した時、サーバからのレスポンスコード301で自動追尾する仕組みを既に確立していましたが、302で同様の処理をしていなかったバグを修正しました.(ロイターニュースのRSSを見て、やっとこのバグに気が付きました.お恥ずかしい.)
  • 上記の様なリダイレクションが起こったとき、次回アクセスでは直接読み込めるように、RSSを新アドレスに置き換えるという仕様をとっていましたが、これだとブラウザブックマークのRSSアドレスは元のままで、更新データベースのRSSアドレスだけが新アドレスになるという不都合が生じることに、(今更ですが..)気が付きました.スクラップブックマークのRSSアドレスは、データベースと同期して変更されるので問題ないのですが、全体の整合性を鑑みて、この仕様はとりやめます.
  • いくつかの初期化プロセスを、後回しにして起動時の負荷を減らしました.(目に見える違いは、あまりないですけど.)

Ver.0.50b2

  • 新しいLunascape v3.5形式のブックマークから、RSSアイテムを読み込む際に自爆してしまうバグを修正しました.従来のv3.1までのバージョンとの互換性チェックでミスをしていました.

Ver.0.50b

  • LunascapeがVer.3.5にバージョンアップされ、従来のブックマークからフォーマットを仕様変更しやがった(おっと、下品な言葉遣いをしてしまいました.ごめんなさい.)ようなので、対応しました.Ver.3.1までの従来書式も自動識別して対応します.
  • ツールバーのボタンレイアウトを自由に編集できるようにしました.また、ボタン下のキャプションのオン・オフも設定できるようにしました.今のところ、変更は初期設定ファイル内の該当タグを編集することで実現します.私的には、わざわざGUIにしなくても、こっちの方が直感的でわかりやすいインターフェースのような気がします.まぁ、好みの問題なんでしょうがね.
  • ツールバーボタンのレイアウトを自由化したことで、[保存]や[コピー]のようなドロップダウンメニューが組み合わさったハイブリッドボタンは、配置がややこしいことになるので、ドロップダウンメニュー機能のみのシングレットボタンに統一することにしました.
  • ツールバーの[削除]ボタンをドロップダウンメニュー化しました.今までの、ゴミ箱に移動する機能のほかに、完全削除やゴミ箱を空にする機能を列挙しています.
  • 新着リストアップや履歴表示の機能を、検索メニューからツールバーボタン[列挙]・[履歴]に移転しました.もちろん、これらのボタンも自由レイアウト可能です.これで、無駄に長かった検索メニューをスッキリさせることができました.(実は、新しい検索コマンドを追加するための布石だったりします.)
  • RSS記事の要約文をポップアップ表示する際、行末の括弧についての禁則処理が不充分だった問題を解決しました.また、行頭にスペースが来ないような工夫も施しました.
  • Podcastアイテムをダブルクリックした場合、今まではメディアファイルを対応プレーヤーで再生するだけでしたが、記事リンクについても、同時にデフォルトブラウザで表示するようにしました.

Ver.0.49b

  • 「RSSアイコンの統一化」とかいう動きがあるようなので、私も迎合してFeed Iconsのアイコンに変更しました.
  • ブラウザボタンに、IrvineへURLリストを送るためのスクリプト(Irvine.API経由)を登録できるようにしました.これにより、エクスポート機能のURLリスト形式の保存は意味がなくなったので廃止しました.
  • ブログなどからRSSリンクを自動的に見つけ出すオートディスカバー機能について、HTML内をしつこく探すアルゴリズムにしました.具体的には、ヘッダ内でlinkタグが見つからなかった場合は、bodyタグまで探索し、それらしきリンクをリストアップする仕様です.今のところ、この機能が必要なケースはlivedoorのWikiぐらいしかありませんが..
  • RSSオートディスカバーで候補が複数見つかった場合に、今まではURLを表示していましたが、タイトルが取得できる場合は、タイトルから選択できるようにしました.
  • 検索メニューで、ブラウザ履歴・検索のアイコンが取得できなかった(ブラウザ登録リストにアプリが登録されていないため)場合、アイコン部が空白になるのは格好が悪いので、代替アイコンを表示するようにしました.
  • 一般アイテムの蟹バサミ更新チェックで、XHTML文書のエンコード宣言が上手く取得できなかったバグを修正しました.また、エンコード宣言がシングルクォートで囲まれている場合についても対応できるようにしました.シングルクォートを使っているページは、私の知る限りヤフーブログぐらいなのですが..(他のタグは普通にダブルクォートなのに、なんでやねん..)
  • リンク抽出の「許可キーワード」とリンク追跡の「追跡拡張子」を、正規表現で設定するようにしました.これにより、更に複雑なパターンにも対応できるものと思われます.
  • 今まで、検索結果のリスト上からは更新チェックを開始できない仕様にしていましたが、場合によっては再チェックが必要な場合もあるので、制限を解除しました.
  • リストやツリーの項目を何も選択しない状態で、ブラウザボタンをクリックすると「不正なパラメータ」と表示されブラウザが起動できないバグを修正しました.
  • テロップの表示条件を変更したときに、たまに希望する動作に切り替わらないバグを修正しました.

Ver.0.48b

  • 飛び地に配置していた「進む・戻る」ボタンを、ようやくツールバーに収納しました.
  • 検索メニューの各ブラウザ履歴・検索項目については、ブラウザアイコンを表示するようにしました.また、Web検索については、faviconファイルを参照するようにしました.
  • 上記したとおりfaviconファイル参照などを行うことにしたため、画像を蓄えておく専用フォルダ"images"を新設しました.これに伴い、スキン画像のデフォルト位置もこのフォルダ内となります.
  • メニューアイテムについても、αチャネルをもつ32ビットアイコンを綺麗に表示できるようにしました.とにかく、.NET 1.1 のImageListのバグを回避するために、やたら面倒なことをしています.
  • 新着アイテム列挙などを行ったとき、各アイテムのポップアップメッセージを、親フォルダ名から親フォルダのフルパス名に変更しました.
  • RSS記事のポップアップメッセージ(要約)のワードラップに、簡単な禁則処理を施しました.いまのところ、英文や句読点では上手く動作しているようですが、括弧付き語句についてはイマイチです...ガンバレ自分.
  • ルートフォルダが表示履歴に記録されない(酷いときは自爆)バグを修正しました.

Ver.0.47b

  • オプション設定のブラウザ登録リストの仕様を一新しました.アイコンを表示、ブラウザ名の表示・編集が行えます.また、登録数を固定値から不定数にしました.そのため、"予備登録"という意味のない空白は必要なくなります.これに伴い、編集ボタンもブックマーク登録リストと同じ機能を持つことになります.
  • オプション設定のブックマーク登録リストの各アイテムにアイコンを表示するようにしました.
  • 上記したとおり、ブラウザ登録リストの仕様を一新した結果、ツールバーのブラウザボタンのレイアウトも変わり、全ての登録ブラウザボタンが表示されます.また、意味のない空白ボタンもなくなります.あ〜、こっちの方が便利だ.なんで、最初からこうしなかったんだ、自分..
  • Podcastアイテムの再生は、今までブラウザ登録リストの末尾に登録されたWMPを使って行っていました.しかし、これだとリストの編集の邪魔になったり、QTメディアの再生ができなかったりするので不便です.そこで、レジストリから拡張子に関連付けられたプレーヤーを取得して再生することにしました.これに伴い、ブラウザ登録リストの末尾からWMPを抹消します.
  • テロップは、通常左クリックするとデフォルトブラウザで表示する仕掛けになっていますが、右クリックすると全登録ブラウザのコンテキストメニューが表れ、任意のブラウザで表示することができるようにしました.
  • フォルダ内アイテムの一括表示をすることができるようにしました.ただし、通常のブラウザの同様な機能とは異なり、フォルダ内の新着アイテムのみピックアップして表示します.大概の場合、フォルダ内のアイテムを丸ごとブラウザに投げても、エライコッチャになるだけだと思われるので..
  • 概要の説明で、Netscape8.0が使えると謳っておきながら、デフォルト設定にプリセットもしない継子扱いをしてきました.今回から、初回起動時のアイテムに加えています.とは、言っても自分は多分使わないけど...
  • Netscape8.0のプリセットに伴い、Netscape8.0の履歴表示・検索も行えるようにしました.
  • 同一種類の複数のブックマークを登録した場合(例えば、アクセス権のある他ユーザーのブックマークを使用する場合)、今までは同一種の中のひとつのみ(正確に言うとブックマーク登録順が若い番号の方だけ)、履歴表示・検索を実行しましたが、これからは登録された全てのプロファイルにアクセスすることができるようになりました.
  • ツリー&リストのタイトルのインライン編集は、今までもF2キーで行うことができましたが、コンテキストメニュー項目として明示的に表記するようにしました.
  • .NETのイメージリストのバグのせいで、αチャネルをもつ32ビットブラウザアイコンが綺麗にツールバーに表示されない問題について、回避方法がわかったのでやってみました.あ〜、めんどくさ..新しい.NET2.0では、直ってるのかな〜?
  • テロップに表示されたPodcastアイテムをクリックすると、プレーヤーで再生せずにデフォルトブラウザを開いてしまうバグを修正しました.
  • アイテムをドラッグして移動・コピーで、訪問日時データをクローンコピーするのを忘れていたバグを修正しました.
  • 「実行ファイルアイテム」を編集する際、PATHフィールドにローカルファイルをドラッグ&ドロップできないバグを修正しました.
  • オプション設定で、ブックマーク登録リストの軽い編集(ブックマークの再読み込みなどを行わない移動やリネームのみ)を行った場合、テロップの表示が停止したままになってしまうバグを修正しました.

Ver.0.46b

  • スクラップフォルダとブラウザブックマークフォルダのアイコン色の変更も行えるようにしました.
  • テロップ表示のリワインド・フォワード機能を追加しました.「あ、今のテロップ..消えちゃった.」という場合に、手動で巻き戻し表示したりできます.
  • テロップ表示はクリッカブルであることを示すため、テロップが生きている時にマウスを翳すと「指差しアイコン」になるようにしました.ホントは、文字色を変えたりした方が分かり易いのは重々承知してるんだけど、実は.NETでステータスバーに他の属性を持たせるのってメンドーなんです.ま、我慢してください.
  • お遊びで、テロップのスクロール速度を加速度的にしました.そのおかげで、スクロール中の視認度は著しく損なわれています.ま、しゃ〜ないね.
  • スクラップフォルダとゴミ箱フォルダ内のアイテムの訪問日時データを、読み込み・保存できるようにしました.
  • Firefox, Lunascape, Operaのブックマークアイテムの訪問日時を読み込むようにしました.Sleipnirに関しては、書式は判っているのですが、ブックマークファイル中にデータがなかったり妙な値になっていたりするので、今のところ放置です.IEに関しては、キャッシュデータベースを検索するのがメンドーなので、こちらもペンディングしています.
  • リストカラムに新たに「訪問日時」というカテゴリーを新設して表示するようにしました.それに伴い、今までのポップアップによる訪問日時表示は廃止しました.新しい方法だと、訪問日時順に整列なんてこともできるので、便利だと思います.
  • 検索バーから履歴表示・検索を行うと、今までは意味と内容が合致していない「更新日時カラム」に訪問日時を表示していましたが、「訪問日時カラム」が新設されたのでそちらに表示するようにしました.結果の整列規則も、もちろんそれに従うように変更しました.
  • RSS記事の更新日時は、今までRSSに記述されたローカルタイムをそのまま表示していました.しかし、例えば複数のRSSからニュースを取得して時系列に列挙すると、辻褄が合わなくなる場合があるので、「なるべく」JST換算で記録・表示するようにしました.ここで、「なるべく」という言葉を使ったのは、世の中のRSSには様々な日時表記の方法があって統一されていないため、それらを全て網羅する構文解析は、とても私の技量では無理だからです.それにしても、何でRSSの仕様を決めたとき、日時表記をフィックスしなかったんだろ!
  • テロップをクリックしてブラウザ表示したとき、アイテムデータに訪問日時がスタンプされないバグを修正しました.
  • 複数アイテムを同一リスト内でドラッグ移動させたとき、並び順が逆順になってしまうバグを修正しました.うぁ、まだこんなバグが残ってたんだ..
  • 検索結果をカラム整列しようとすると、自爆テロを起こしてしまうバグを修正しました.あらららら..
  • ツリー表示関連&表示スタック関連の様々なバグ修正を行いました.詳細を書いてると、ちょっとした放心状態になるので、省略します.
  • Lunascapeのブックマーク読み込みと履歴ファイル読み込みで、共通化できる部分を同一メソッドにまとめました.

Ver.0.45b

  • ブラウザで表示したアイテムは、訪問日時をポップアップ表示するようにしました.現時点では、訪問日時の保存はできません.アプリを終了させると、忘れてしまいます.また、ブラウザのブックマークの訪問履歴を取り込むこともできません.これらについては、追々対応していく予定です.
  • 未読アイテムのテロップ表示も行えるようにしました.また、テロップステートメントの静止時間を設定できるようにしました.
  • ローカル検索コマンドに、「フォルダ検索」モードを追加しました.「新着列挙」とかで「RSSフォルダ」を拾うことができるのに、何故フォルダを検索できないの..というご指摘があったので追加した機能です.確かに..仰るとおりでした.
  • 戒名のように無駄に長かったコンテキストメニューを、階層化してコンパクトな表示にしました.
  • ゴチャゴチャしていたオプション設定のレイアウトを整理しました.結果、カテゴリーと機能に若干の不一致がある項目がありますが、まぁ大目にみてちょ.また、NumericUpDownコントロールを数値入力欄に使うことにしました.このコントロール、Mac時代も含めて、生まれて初めて使います.ケッコウ、便利やん.なんで、毛嫌いしてたんだろ..自分.
  • 表示関連のメソッドを、ツリーやリストのクラスから独立させました.
  • RSSフォルダをフォルダごとまとめて既読にすると、表示履歴スタック(すすむ・もどるボタンの内部データのこと)に同じフォルダを二重プッシュしてしまうバグを修正しました.
  • オプション設定から、テロップ表示をオフにしたとき、テロップのスクロールは停止するけど、ステータスバーに表示が残ってしまうバグを修正しました.
  • ステータスバーのコンテキストメニューで、アイテムのアイコン色が色設定の値を反映していなかったバグを修正しました.

Ver.0.44b

  • ネット接続やアイテム操作でエラーが起こったとき、テロップがステータスバーのイベントキューを占拠してしまい、エラーメッセージが表示されないバグを修正しました.技術的には、テロップのタイマーコールバックが完全に停止するまで、全てのプロセスを失神させるという荒業を使って、確実にエラーメッセージを表示させています.大丈夫か?そんなことして..
  • アイテム、フォルダ、実行ファイル、メモのアイコン色を変更できるようにしました.新規アイテム作成ダイアログ・アイテム編集ダイアログから設定することができます.また、リスト上で複数のアイテムを選択して、編集ダイアログを起動したときは、まとめて色変更できるようにしました.
  • フォルダ色が変更できるようになったのに伴い、RSSのアイコンを赤色フォルダから専用アイコンに切り替えました.なんか、ダサいな〜! くれぐれも、「ティッシュケース」とか言わないように.
  • スクラップ・ゴミ箱・ブラウザアイテムを編集ダイアログで開いたとき、コメント入力フィールドはあっても意味がないので、表示しないようにしました.
  • iCBM3は、スクラップやゴミ箱ファイルの記述に、正規のOPML要素・属性以外のオリジナル要素を使っています.しかし、他ソフトとの互換性を考えると、これは好ましくありません.そこで、エクスポートだけは、これらのオリジナル要素をカットするようにしました.
  • メモアイテムの内容を、RSS記事と同様に、マウスをホバリングするとツールチップで表示するようにしました.

Ver.0.43b

  • アイテムドラッグの時の囲い線の色も、背景色の補色へ自動変更するようにしました.
  • 新規アイテム作成と新規フォルダ作成を、リストを選択した状態で行うと、その場所に挿入追加するようにしました.選択されていない場合は、従来どおり最後尾に追加されます.
  • システムトレイ収納中、更新チェックが行われている状態で、トレイからウィンドウを復活させると、テロップ表示をリスタートさせてしまい、更新チェックに関するメッセージとバッティングしてしまうバグを修正しました.
  • アイテムを選択したまま文字色等を変更すると、その部分の背景色がおかしくなります.(.NETのバグ?)なわけで、対症療法的ですが、色変更の際は、選択を全て解除することにしました.
  • ツリーアイテムのタイトルをインライン編集したとき、対応するリストアイテムのタイトル要素が連動して変更されないバグを修正しました.同様に、オプション設定・ブラウザ・お気に入り/ブックマークにおいて、ブックマークのタイトルをインライン編集したとき、対応するツリー&リストアイテムのタイトルが連動して変更されないバグを修正しました.
  • ウィンドウタイトルの変更方法が、あまりにも投げやりな方法だったので改良しました.
  • オプション設定・ブラウザ・お気に入り/ブックマークにおいて、ブックマークのタイトルのインライン編集しかしなかった場合でも、今までは全ブックマークのリコンストラクションを行っていました.しかし、大げさすぎるので、上記の条件のみならば小手先のメソッドで対応することにしました.
  • オプション設定・ブラウザ・お気に入り/ブックマークにおいて、チェックが有効になっていないスクラップフォルダまでアプリ終了時に保存(空のファイル!)していたバグを修正しました.これ、かなり重大なバグですね.今まで、気づかなかったとは大失態です.ごめんちゃい.

Ver.0.42b

  • 新着アイテム(記事)をステータスバーにテロップ表示する機能を追加しました.え〜、ご想像のとおり、あのソフトのアレをパクリました.
  • オプション設定・インターフェース・外観で、セパレータ色と文字色の設定もできるようにしました.これで、ツリーやリストの背景色が明度の低いものになっても対応できます.また、コピーしたときの文字色については、背景色の補色となるような色を自動的に選択するようにしました.
  • フォルダやRSSは、タイトルとコメントだけはクリップボードへのコピーを行えるようにしました.
  • 前回のバージョンアップで、「リストアイテムの選択状態を記憶」するようにしましたが、これによりRSSやチェックアイテムをゴミ箱に捨てても、更新チェックエントリーから解除されないというバグを新たにつくってしまいました.修正と同時に、「選択状態の記憶」機能は鬱陶しいだけなので廃止しました.
  • 休止したRSSを再度更新チェックエントリーした時、新しい記事がアップされていないと、RSSフォルダの更新日時が、"-"のままで復元されないバグを修正しました.
  • IE形式でブックマークを保存する際に、フルパス換算(フォルダ名&タイトルを含む)で255文字を越える場合は、リジェクトするようにしました.
  • IEとOperaとSleipnir1形式でブックマークを保存する際に、URL成分を持たないRSSアイテムを出力しても意味がないので、リジェクトするようにしました.
  • 前回に引き続き、もろもろのコードの最適化を行いました.機能が増えてるのに、サイズが小さくなっていってるのは、これが理由です.

Ver.0.41b

  • USBメモリディスクなどを介して異なるマシン間で更新データベースを共有することができるように、データベースの保存場所を変更できるようにしました.(フォルダの共有に関しては掲示板のNo.360を参照してください.)
  • RSS記事の要約文などを表示する「ポップアップメッセージ」の出現時間・表示時間を、オプション設定から変更できるようにしました.
  • RSS記事の要約文のポップアップメッセージにおける、自動改行挿入のアルゴリズムを見直し、なるべく原文のフォーマットに近い状態で表示するように心がけました.(しました..とまでは言えない微妙なところ.)
  • Web検索に、「Google(ローカル)」を追加しました.
  • 検索条件メニューのWeb検索関連のアイコンを変更しました.
  • もどる・すすむボタン等でフォルダを移動しても、リストアイテムの選択状態を記憶しているようにしました.
  • RSSの更新チェックの際、Etagを返さないが、ルート要素の更新日時が記事のそれと同期している場合は、その条件により先に進むかどうかを判断すれば、無駄なアクセスを軽減することができます.(実は、当サイトのRSSが、このシチュエーションに該当します.)なわけで、"%rootcheck[]"というマクロを使って、この判定条件を使うことができるようにしました.
  • RSSやチェックアイテムの更新チェック解除をしても、Etag属性のクリアをしていなかったので、再度チェックエントリーをしようとしても、「更新なし」とみなしてしまうバグを修正しました.
  • 新規アイテム作成ダイアログで、キャプションがRSSであるべきものが、ENC(Podcastアドレス)になっていたバグを修正しました.
  • もろもろのコードの最適化を行いました.それにしても、メモリの使用量が半端ではありません.これじゃ、ユーティリティソフトとは呼べな域に達してます.

Ver.0.40b

  • PodcastのRSS-2.0に対応しました.基本的な仕様は、通常のRSSと同じですが、中のPodcastアイテムをダブルクリックするとWindows Media Playerなどで再生することができます.まぁ、iTunesを使ってるならば、じぇんじぇん意味のない機能ですけど.
  • 検索バーの条件メニューにアイコン表示するようにしました.また、ブラウザ固有の履歴メニューは、インストールされているブラウザについてだけ表示するようにしました.
  • 検索コマンドの[新着アイテム列挙]・[未読アイテム列挙]は、RSSフォルダ内のアイテムは展開表示していました.しかし、記事の親子関係がわかりずらかったり、異なるRSS間で記事がごっちゃになってしまったりするデメリットの方が多いようなので、RSSはフォルダのまま列挙するようにしました.
  • 検索コマンドに[エラーアイテム列挙]を追加しました.更新チェック中に通信障害が発生し、エラーになったアイテムを列挙します.
  • 検索コマンドが、検索に関わる項目に切り替わった時は、フォーカスをキーワード入力フィールドに移すようにしました.
  • Sleipnir2形式のエクスポートで、RSSアイテムはわざとSleipnir1同様に一般アイテムとして出力していましたが、条件が整ったので、きちんと明示的に出力するようにしました.
  • Sleipnir2は、RSSアイテムの判断をど〜も拡張子で行っているらしく".xml"と".rdf"はインプリシットに理解するのですが、それ以外は".feed"という拡張子を無理やりくっつけて内部的にRSSであると判断させているようです.なわけで、「なんだかなぁ〜」な仕様ですが対応しました.エクスポートについても、Sleipnirが理解できない恐れがあるような場合は、".feed"という拡張子を付加するようにしました.
  • Sleipnir2・Lunascape2(3)・Operaのブックマーク内のRSSアイテムは、トップページアドレス(URL)を保存しない仕様なので、iCBM3が最初に読み込む際にRSS内に記録されているURLを取り込むようにしました.
  • 一般アイテムの更新チェックが全体チェックモードである場合に、HTTPレスポンスが前回と異なるEtag属性を返してくるならば、内容をダウンロードすることなく無条件に更新されたとみなすことにしました.これによって、一般アイテムの更新チェックの大部分がかなりスピードアップされるはずです.
  • 更新チェックの際に、HTMLのcharset属性からエンコード情報を取り出すとき、"charset="という文字列を判定基準にしていたが、これだと他にこの文字列を使われると誤認してしまうという甘甘な条件なので、もうすこし厳格な条件にしてみました.
  • 更新チェック中にステータスバーに接続サイト名を表示しても、それっぽくはあるが、実用面で何の得にもならないので廃止しました.これからは、接続待ち行列の数と生存スレッド数のみ表示することにします.
  • ステータスバーのコンテキストメニューにもアイコンを表示するようにしました.

Ver.0.39b

  • Sleipnir2が正式公開されたので、Sleipnir2形式のエクスポート機能を追加しました.しかし、上記の備考でも触れたとおり、更なるフォーマット変更がありそうな気がします.なわけで、この機能は暫定的なものとお考えください.
  • コンテキストメニューにアイコンを表示するようにしました.説明すると長くなるのでやめますが、実を言うとアイコンメニューにしたおかげで、リソースの消費が減っています.不思議でしょ.
  • ブラウザのアドレスバーアイコンをドラッグ&ドロップして、RSSを自動検出登録する際に、候補が複数ある場合は、ダイアログを表示してRSSアドレスを選択できるようにしました.まあ、選択したところで、記事の内容は同じなので、あまり意味のない機能ですが、世の中のソフトはみんなそういう機能をつけてるみたいなので、世間に迎合してみました.
  • RSS記事の要約文は、アイテムのコメント欄から見ると、横長で尻切れで見難いので、アイテムにマウスカーソルを合わせるとツールチップで表示するようにしました.こちらは、適当な長さで改行を自動挿入する仕組みにしたので、読みやすいと思われます.
  • RSS記事の要約文にHTMLタグを含んでいる場合は、保存前に除去するようにしました.また、要約文をツールチップで表示する新機能に合わせるため、余分な空白・改行も事前に除去するようにしました.
  • Sleipnir1形式の部分エクスポートで、トップレベルのフォルダ名が「お気に入り」にならないのは安生よくないので、修正しました.
  • 前バージョンで、更新チェックマクロのプリプロセッサーの仕様を変更したおかげで、蟹味噌エディターが起動できなくなっていたバグを修正しました.
  • 前バージョンで、更新データベースのRSS記事の最大保存数による切捨て作業は、アプリ終了時に行うように変更しました.しかし、長時間iCBM3を利用し続けるとメモリを圧迫する破目にもなりますし、その他のデータ参照機能との整合性も取れなくなることがわかったので、元の方法(更新チェックのたびに切り捨て)に戻すことにします.ジタバタして、すんません.
  • RSSのフォーマットがAtom0.3の場合、更新日時の取得は、今までmodified要素から行っていましたが、issued要素からに変更します.ど〜も、こちらの方が現実に即しているような気がするもんで..いい加減だな、自分.やっぱ、RSSの仕様を一度もちゃんと読んだことがないのは拙いかな?
  • 更新チェックマクロの%encode命令で、第2引数を指定しなかったとき、コンテンツの終端からはみ出した位置までキャプチャしようとして、エラーを引き起こしてしまっていたバグを修正しました.
  • オプション設定ダイアログ・[要約文最大文字数]入力フィールドに、数値以外の入力を抑制する、イベントハンドラーをフッキングするのを忘れていたバグを修正しました.

Ver.0.38b

  • RSS内の各記事アイテムのコメント欄に、内容の要約文を表示するようにしました.要約文の長さは、オプション設定により調整することも可能です.
  • Sleipnir, Sleipnir2(まだエディタが公開されていないので意味ないが..), Firefox, Operaブックマークのセパレータ(仕切り線)読み込みに対応しました.
  • iCBM3のスクラップフォルダ(OPMLファイル)も、セパレータの読み書きができるようにしました.
  • 別ブックマーク形式の保存についても、セパレータを出力することができます.
  • セパレータも他のアイテムと同様に編集・削除することができます.更に、コンテキストメニューを使って、任意の位置に「新しいセパレータ」を挿入するコマンドを追加しました.
  • 更新チェッカーのマクロを解析するプリプロセッサーの正規表現パターンマッチングが、イマイチ小汚かったので改めて書き直しました.機能的には変化ありません.
  • RSS記事の最大保存数による切捨て作業は、今まで更新チェックのたびに行ってきましたが、方針変更してアプリ終了時に行うようにしました.このため、起動中は無制限に新着記事を蓄積していくことになります.
  • 更新データベースの未参照アイテムの消去は、今まで手動操作により行っていましたが、なんかイマイチなので、[終了時、未参照アイテムを削除する]というフラグを設けて、アプリ終了時に自動的に行うようにしました.
  • いろいろとパラメータが増えて、初期設定ファイルがゴチャゴチャしてきたので、フォーマットを一部整理統合しました.
  • 余計なことすんじゃなかったシリーズ第n弾.Ver.0.37bで「選択アイテムのみのエクスポート」の改造をしたために、「IE形式の保存」を行うと自爆するバグを作っていました.IE形式の保存なんて、あまり必要ない機能なので、明らかに見過ごしてました.ごめんちゃいです.

Ver.0.37b3

  • Sleipnir2・β5/test24以降の新ブックマークへの対応に、やっぱりミスがありました.修正しました...もう、あきまへん.寝ます.

Ver.0.37b2

  • Sleipnir2のブックマークのフォーマットが、β5/test24で久しぶりに変更になったので暫定的に対応しました(まだ、不完全かも).一応、test23までのフォーマットも読み込むことができるようにしてありますが、まぁ必要ないでしょう.あ〜、ねむ〜!

Ver.0.37b

  • ブラウザで表示中ページのアドレスバーアイコンやリンクを、ツールバーのブラウザボタンにドラッグ&ドロップすると、別ブラウザで表示する「リンクジャグラー」機能を追加しました.正直、ブラウザのコンテキストメニューやスクリプトを使った方が便利なような気がしますが、ま〜そこそこ便利です.
  • 別ブックマーク形式でのエクスポートは、全アイテムを対象とするのか選択アイテムのみを対象とするのか選択できるようにしました.
  • ステータスバーのコンテキストメニューの新着項目が多い場合、表示がちらつく問題を解消しました.
  • .NETのXMLパーサーは、ちょっとでも不正な文字が含まれると以降の内容を読みに行かないという、非常に融通が利かない仕様になってます.そんなわけで、今までは上記のエラーが出たときは全ての内容を破棄していましたが、せめて正常に読めた部分だけはサルベージして利用できるようにしました.
  • RSSのアクセスに失敗した場合でも、HTTPレスポンスのETag属性を更新してしまっていたバグを修正しました.
  • リストやツリーのドラッグ軌跡を終えたとき、エンクロージャー領域をリセットし忘れていたバグを修正しました.

Ver.0.36b2

  • 空のフォルダに新規アイテムを作成しようとすると、意味なくリストをスクロールしようとして自爆してしまうバグを修正しました.あ〜、やっぱVer.0.35bで余計な事すんじゃなかった..

Ver.0.36b

  • スクラップフォルダ内の項目を編集した後に、ある条件(複雑なので略)で最新ボタンを押すと、編集前(起動前)の状態に戻ってしまい、編集結果が消え去ってしまうバグを修正しました.これ、かなり重大なバグでしたね.運悪く、被害に見舞われたみなさん、ごめんなさい.私からは、「ガンバレ!」の一言をお送りしておきます..
  • ブラウザに複数URLを一括して表示する方法を全面的に変更しました.各ブラウザの複数URLの受信方法は、マニュアルに示すとおり、バラバラで一貫性がありません.そこで、特定のブラウザに関しては、縛りをかけて、単一URLしか表示できないようにしました.
  • オプション設定・更新チェッカーのタブに、[更新データベースを更新日時順に整列]・[更新データベースの未使用アイテム消去]のオプション&コマンドを追加しました.見た目的には、すごーく地味な変化しか起こらないハウスキーピング関連のスイッチなので、わざわざダイアログオプションにするほどでもなかったかな〜と思ったりしてます...
  • ブラウザからRSSリンクを[XMLポケット]にドロップして新規登録するとき、うまくスクロールしてアイテムが見えるようにできていなかったバグを修正しました.

Ver.0.35b

  • いくつかのクラスを整理統合して、静的モジュール化しました.これで、少しは省メモリーできるかと思いきや、余計にメモリを消費してしまいました..とほほ.
  • HTMLリンクからRSSを自動検出する機能で、RSSリンクが複数ある場合、今までは先頭を登録するようにしていたのですが、最後のリンクを登録するようにしました.ま、どれでも最終的内容は同じなのですが、MTエンジンだと先頭にあるATOM形式は何かと評判がよくないようなので....気分的問題だけです.
  • サイト移転などで、RSSリンクがリダイレクションされる場合、新アドレスに置換して自動追尾できるようにしました.
  • 更新データベース(updates.XML)へのアクセス方法を全面的に改良しました.見た目は殆ど変化ありませんが、実はコードの20%近くを書き直しています.チェッカーへの同一アドレスがエントリーされるのを防いだり、一度エントリーから消してしまった項目の復活が可能になりました.
  • アイテムの新規作成・編集ダイアログで、URLやRSSが未入力だったら、注意を促すメッセージを表示するようにしました.更に、また少しだけ、レイアウトを変更しました.
  • アイテムを右クリックでドラッグしてコピーをする場合、そのアイテムが更新チェッカーに登録されていたら、コピー結果の項目はチェッカーのエントリーから解除されるようにしました.(更新データベースの新仕様との整合性を保つため)
  • ツリービューからRSSアイテムを編集する場合、種別メニューでチェッカーのエントリー状態を変更しても、その動作をしないバグを修正しました.
  • ステータスバーのコンテキストメニューに、新着・未読アイテムを表示する(検索メニューと同じ機能)コマンドを追加しました.
  • ブラウザリンクなどをドラッグ&ドロップでiCBM3に登録する場合、リスト項目が多くてはみ出してしまう場合でも、最後尾にスクロールしてドロップ結果が必ず見えるようにしました.
  • ステータスバーのコンテキストメニューから新着アイテムを選択した場合、どんな状態でもアイテムが必ず選択されて見えるようにしました.以前のバージョンまでは、ある条件によってはスクロールしない場合があったり、不十分な対応でしたが、今度はどんな場合にも対応しています.
  • ツールバーやリストアイテムのいくつかのアイコンをリニューアルしました.一般アイテムとチェックアイテムが、同じ形状のアイコンで色違いなだけで区別しにくいとの指摘や、いくつかのツールバーアイコンが、スキンの色によっては白抜けしてしまうと言ったご意見を参考に改良しました.

Ver.0.34b2

  • サイト移転に伴い、スクラップフォルダ内のプリセットRSSを新サイトのアドレスに変更しました.
  • Lunascape3が正式バージョンとして公開され、デフォルトパスが変更になったので修正しました.

Ver.0.34b

  • v0.33で、起動時更新チェックのディレイなんて余計な機能をつけたおかげで、[最新]ボタンをクリックしてもブックマークをリロードしないという、とんでもないバグをつくってしまいました.このソフトの根幹に関わる部分で、大失態です.ごめんちゃいです.修正しました.
  • 更新チェッカーがHTTPレスポンスヘッダから更新日時を取得する際に、想定外の日時フォーマットを受け取った場合、応急処置(今日現在の日時を返す)をせずに例外をスローしてしまうバグを修正しました.また、今後いろんなフォーマットにユーザーサイドからも対処できるように、初期設定ファイルに日時フォーマットのバリエーションを記述できるようにしました.
  • 自分的には必要ないと思っていたのですが、意外に要望が多いようなので、シブシブながら「IEお気に入り形式」のエクスポートもできるようにしました.私的には「IEお気に入り形式」って、使いづらいし、タイトルをファイル名にするなんて制約多いし、過去の遺物だと思うのですが..
  • 各種形式のブックマークのエクスポートで、「実行ファイル」と「メモファイル」は出力しても意味がないので、スキップするようにしました.
  • 履歴ファイルをブックマークの相対パスから取得する場合に、非常にまわりくどいやり方をしていましたが、.NETビルトインのUriクラスを使うと非常にエレガントに記述できることを発見.全面的に書き換えました.たぶん、まだまだ自分の知らないクラスとか使えば、もうちょっとコザッパリしたコードになるんだろうな〜!

Ver.0.33b

Sleipnir2とLunascape3が正式公開になるまでα状態でいるつもりだったけど、飽きたのでβに昇格しちゃいます.

  • 任意のRSSを更新チェッカーのエントリーから解除できるようにしました.ところで、こんな機能って意味ないように思われるかもしれません.しかし、意外に便利です.あるブラウザのインストール直後のブックマークには、たぶん読まないだろうと思われるRSSがゾロゾロとプリセットされています.それらを起動のたびにチェックするのは非常に無駄なことです.そこで、この機能を使えば、ブックマークの構造を壊すことなく、更新チェックのみオミットしてしまえるわけです.
    まぁ、必要ないのだったら、さくっとブックマークから消してしまえば、良いのですけどね...おほほ.
  • 編集ダイアログからでも、更新チェッカーエントリーのオン・オフを操作できるようにしました.
  • 編集ダイアログで、ブラウザやスクラップブックやゴミ箱を編集する場合、種別が「フォルダ」と表示されるのは変なので、きちんと種別が表示されるようにしました.
  • 起動時に更新チェックを行うかどうかを、設定できるようにしました.また、起動時の更新チェックまでの遅延時間も設定できるようにしました.
  • 上記の機能追加を機に、自動更新タイマー関連のアルゴリズムを「リファクタリング」しました.(あひゃひゃひゃひゃ..小恥ずかしい..流行言葉を使ってみたかっただけです.要するにアルゴリズムを「見直した」だけです.
  • v0.32a8で、Firefoxに対してローカルリンクをURLエンコードして送る機能は、考えてみたらSleipnir2やLunascape2(3)がGeckoエンジンを使用しているときも必要であることに気がつきました.しかし、レンダリングエンジンが何かを外部から知る方法がわかりません.そこで、これらのブラウザに関しては、ツールバーをクリックするときに、通常は日本語を含むアドレスをそのまま送り、[コントロールキー]を同時に押したら、エンコードアドレスを送るようにしました.
  • IEのコンテキストメニューから送られる、ローカルリンクアドレスは、これまた独特な形式(file://のあとに、何故か\コード区切りのパス名が続く)なんですね.こういう仕様なのか、WSHが原因なのか、IE Context Launcherが悪さをしているのかわかりませんが、いづれにせよローカルリンク恐るべしです.なわけで、対応するようにしました.
  • 一般アイテムの更新チェッカーのマクロコマンドに、[%url]を追加しました.更新チェックページと表示ページが異なる場合に、このマクロを使うことで[チェックURL]を別登録することができます.
  • 初回起動時にプリセットされるブックマークとブラウザの構成を変更しました.また、存在しないブックマークやブラウザは、登録しない/無効にするようにしました.
  • ツリーやリストがフォーカスを失っているときに、ブラウザを起動できない不具合を修正しました.

Ver.0.32a9

  • スキン画像とツリー&リスト背景色を、オプション設定ダイアログからセットできるようにしました.
  • Sleipnir2とLunascape2(3)独自の履歴ファイルの表示&検索にも対応しました.これで、レンダリングエンジンがGeckoの時に、訪問した履歴も表示&検索することができます.
  • アイテム新規作成&編集ダイアログの[種別]メニューに、テキストとともにアイコンも表示させることにしました.それにしても、.NETのコンボボックスって、イメージを表示することを、まるで想定してないのね..かなり、回りくどいことしてます.また、アイテムの親フォルダ名も表示するようにしました. 
  • アイテムのドラッグ&ドロップの際、ツリー(フォルダ)上でマウスカーソルをホバリングさせた時、今まではすぐにフォルダを展開表示していましたが、ディレイをかませて1秒以上ホバリングすると展開するようにしました.これで、多重階層が激しいツリーを通過するとき、じゅうたん爆撃のように、意味なくフォルダを展開しまくるのを、少しは防げるかな.
  • リンク抽出の追跡オプションは、今まで追跡階層の値によって有効Plugin not found.=2)・無効(1)の区別をしていましたが、マウスから手を放すのがわずらわしい&UIがエレガントではないので、独立したスイッチを設けることにしました.
  • 検索メニューで、新着アイテム表示・未読アイテム表示・各種履歴表示の際は、検索キーワードを入力する必要がないので、入力欄を無効にすることにしました.
  • RSS内のRFC822形式の日時表記に誤りがあった場合、更新日時をiCBM3の内部表現に変換できない問題を解決しました.これ、実はiCBM3側には何のバグや誤りもないのです.とあるブログが、曜日と日付の矛盾する日時を送ってくることがあり、この問題に気がつきました.盲点というか、意外に人間っぽい感じがして「N正三郎氏」のことを見る目が変わりましたとさ..
  • 上記の問題を機に、DateTimeパーサを、全て一から書き直しました.ある程度、ルーズな仕様にも対応するように..うふふ.
  • 一般アイテムの更新チェッカーの[%encodeマクロ]で、正規表現にミスがあり、うまくパラメータを取り出せないバグを修正しました.
  • 蟹味噌エディタ起動時に、[%encodeマクロ]が反映されていなかったバグを修正しました.
  • Sleipnir2ブックマークの読み込み方法を少し変更してみました.まったくもって、お間抜けですが、ダイナミックフォルダ(RSS)は、拡張子で判定しています.正式版が出たら、また変わるかもしれません.
  • RSSフォルダ自体を選択して、ブラウザで表示する機能が働かなくなってしまっていたバグを修正しました.
  • FirefoxとOperaについて、コンテキストメニューの導入方法の解説を追加しました.Operaに関しては、まだ研究途上なので、機能的に物足りないですが、ご容赦を.

Ver.0.32a8

  • Firefoxブックマーク形式のエクスポートができなくなっていたバグを修正しました.(選択肢が増えると、必ずこういうバグを作ってしまうんです.私...)
  • v0.32a4で行った、ローカルリンク(file:///...)のブラウザ別の取り扱いが不十分だったようで、再度修正しました.FirefoxにはURLエンコードしたアドレスを、その他のブラウザには日本語混じりのヘンテコアドレスを送ります.
  • 他形式のブックマークのエクスポートに関しても、ローカルリンクの取り扱いを厳密にしました.Firefox等のHTML形式ならばURLエンコードしたアドレスを、その他の形式では日本語混じりのヘンテコアドレスを出力します.

Ver.0.32a7

  • コマンドライン引数から、アイテムやRSS登録・リンク抽出を行う機能を追加ました.これにより、WSHスクリプト(HTA)を仲介して、IEコンテキストメニューからiCBM3をコールすることができます.詳しくは、添付テキストを参照してください.
  • ローカルディスク上の実行ファイル・書類ファイルを登録することができる「簡易アプリケーションランチャー」機能を追加しました.
  • テキストメモを登録することができる機能を追加しました.
  • 新規アイテム作成ダイアログから直接、更新チェッカーに登録できるような仕組みを導入しました.
  • 上記のように、新しいカテゴリーのアイテムが増えたので、「新規アイテム作成ダイアログ」と「アイテム編集ダイアログ」のインターフェースを大幅に改造しました.
  • 検索ワードメニューで、最近検索を行ったワードがメニューの先頭に来るようにしました.
  • 表示履歴の挙動(前進・後退ボタン)がおかしかったので、アルゴリズムを全面的に見直しました.やっぱり、前進・後退の操作を、ひとつの配列に保持するのは無理っぽかったようです.おとなしく、前進・後退それぞれにスタックを割り当てることにしました.
  • 新規アイテム作成の際に、「蟹味噌エディタ」が起動できないバグを修正しました.
  • エラーアイテムを「アイテム編集ダイアログ」で開くことができてしまうバグを修正しました.
  • Sleipnir2 β2 (2005/08/02 12:28:43)で、やっとインストーラが使えるようになり、ファイルのデフォルト位置が定まったので、 v0.32a2以来オミットしていた「初回起動時にSleipnir2のブックマークを読み込む設定」を復活させました.

Ver.0.32a6

  • Sleipnir2β test2のブックマークファイル"Favorite.ffv"のフォーマットに対応しました.(ホントに方針がコロコロ変わるな〜!) いずれにせよ、このフォーマットも正式版では、変更になるみたいなので、あまり意味のない対応ですが..

Ver.0.32a5

  • マルチユーザーに対応しました.アプリと同じ場所の"users"という名前のフォルダの下に各ユーザーディレクトリが作成され、そこに初期設定などが保存されます.今までの設定を引き継ぎたい場合は、上記のフォルダに設定を移動してください.
  • アイテムをドラッグ移動している際、リストやツリーの端に来た場合、自動的にスクロールされるようにしました.今まで、上手いアルゴリズムが思いつかなくて、放置していた機能ですが、タイマーを使ったら数行でできてしまいました.今まで、ナニを回りくどいこと考えていたんだろう.ま、いつものことですけど.
  • ブラウザ履歴や検索結果のアイテムを他のフォルダに移動しようとすると、表示がおかしなことになってしまうバグを修正しました.う〜ん、ドラッグ&ドロップ関係にまだバグがあったか..
  • ツリーを別ツリーに移動したとき、本来は親フォルダにフォーカスを移すはずが、そうなっていなかったバグを修正しました.
  • アプリを二重起動しようとしたとき、既に起動されているアプリがノーマル状態ならば、そのアプリを最前面する動作が正常に行われるのだが、既に起動されているアプリがトレイアイコン収納状態だと、アプリを最前面にできないバグを修正しました.
    ちょっと弁解...これの原因って、もしかしたら.NET自体のバグかなって疑っています.トレイアイコン収納時だと、プロセスは拾えるんだけど、ウィンドウハンドルがヌルポインターなんですよ.おかしいでしょ..だから、修正バージョンでは、.NETオリジナルコードは使わないで、すべてWinAPIで記述してます.なんでやねん.
  • 表示中リストだけのURLを保存する機能を追加しました.

Ver.0.32a4

  • ブラウザ履歴表示したリストのアイテムを選択して、ツールバーの[編集]・[解除]・[既読]ボタンをクリックすると、ヌルオブジェクト参照となり、アプリが落ちてしまうバグを修正しました.
  • ローカルリンク(le:///...)からもリンク抽出を行えるようにしました.
  • IEとFirefoxの履歴に、今まではオミットしていたが、ローカルリンクも表示するようにしました.
  • 日本語などを含むローカルリンクは、FirefoxではURLエンコードされて表記されるのに対し、IE系ブラウザでは日本語はそのままだが、空白文字だけは%20に変換される妙なエンコードがされます.しからば、Firefoxは上記の両方のケースのURLを解釈できるのですが、厄介なことに、IE系ブラウザでは後者の「日本語混じりの妙なURL」しか理解できないのです.そこで、この齟齬を解消するために、iCBM3からブラウザに送り出すローカルリンクのURLは、全て後者のフォーマットに統一することにしました.あ〜、めんどくさ..
  • インターネットショートカットファイルの読み込みを、Shift-JISエンコードですべきところを、UTF-8で行っていたバグを修正しました.うひゃ〜!とんでもない、大ポカです.ローカルリンク関連のプログラミングに着手して、初めて気がつきました.いや〜、お恥ずかしい....
  • 今まで、アドレスバーからのドラッグされるデータの型が、Lunascape2だけ判らなかったので、これを使う処理(ドロップポケットへのドロップなど)は機能していませんでしたが、ようやくデータの正体がわかったので実装します.まさか、ブックマークと同じフォーマットのテキストデータ(正確にはXML)がメモリにプッシュされていたなんて..
  • [オプション設定]のブックマーク登録リストから、登録ブックマークを削除した場合、メインウィンドウのツリーの表示からも削除されるべきなのに、削除されないバグを修正しました.
  • リンク抽出の許可キーワードの終端が';'(セミコロン)である場合は、キーワードを無視して、全て許可してしまうバグを修正しました.
  • Sleipnir2のブックマークの保存場所が、"Application Data"ディレクトリから、アプリと同じフォルダの"settings"ディレクトリに変更されたおかげで、現状(βバージョン)ではインストーラによるアプリの定位置が定まらないため、ブックマークも保存場所を決め打ちすることができません.そのため、初回起動時にはSleipnir2のブックマークは登録しないことにしました.Sleipnir2のブックマークを読み込ませるためには、手動で登録してください.なんか、方針がコロコロ変わるな〜!

Ver.0.32a3

  • ブラウザ履歴のアイテムをブラウザで表示しようとすると、ヌルオブジェクト参照となるバグを修正しました.あちゃ〜!まだ、こんな基本的な操作でバグが残ってたのですね.みっともない..
  • 検索を行った後の、ウィンドウタイトルはどのような場合でも検索キーワードを表示していたが、あまり適切ではないので、それぞれの条件に似合ったタイトルを表示するようにしました.
  • 検索条件メニューの「仕切り線文字列」には、何も処理を割り当てていませんでしたが、そっけないので小細工しました.[━ 履歴表示 ━]は、全てのブラウザ履歴をまとめて表示します.[━ ローカル検索 ━]は、ブラウザ履歴とブックマークの検索をまとめて行います.
  • 検索結果や子フォルダ展開のアイテムを選択して、ツールバーの[親へ]ボタンをクリックしたときは、通常と異なり、本当の親ディレクトリに移動するようにしました.
  • 通常のブラウザのように、表示履歴を記憶して、その履歴を[戻る][進む]機能を追加しました.新しい機能を追加したので、また新たなバグの温床となるかな?ホント、もぐらたたきだ.

Ver.0.32a2

  • Opera形式のブックマークをエクスポートする機能を追加しました.前回のリリースで、TODOリストに掲げておいたのに、すっかり忘れていました.
  • 検索バーのインターフェースが、ごちゃごちゃしてきたので、キーワードと検索条件を2メニューに分けた形式にしました.実は、こっちの方がユーザーが行うべき手数は、増えてたりするのですが..ま、気にしない気にしない.ついでに、WEB検索機能も追加しました.使用されるとわかると思いますが、はっきり言って無駄で余計な機能です.根が貧乏性だから、隙間があると何か埋めたくなるんですよね.
  • 更新チェッカーなどインターネット接続中に、リストに検索結果などを表示すると、ある条件でリストがヌルオブジェクト参照をしてしまうバグを修正しました.実は、原因がイマイチよくわからないので、まるごとtry-catchしているだけです.
  • Sleipnir2のブックマークは、最初の起動では読み込まない設定にしました.まだ、フォーマット解析が不完全なので、もし問題が起こった場合に、突然アプリが飛んでしまわないようにするためです.勇気のある方は、オプション設定でSleipnir2ブックマークを有効にして試してみてください. 

Ver.0.32a

  • Sleipnir2(Favorite.ffv)とOpera(profile/opera6.adr, mail/index.ini)のブックマーク&ニュースフィード読み込みに対応しました.Sleipnir2に関しては、まだフォーマットを完全に解析しきれていないので、不具合があるものと思われます.そのため、今回の公開はαバージョンとしています.しかし、上にも書いたようにSleipnir2βが出るまでは使い道ないです.でもって、たぶん、その時は仕様変更されてるだろうし...悲.
  • Operaブックマークとともに、Operaの履歴検索にも対応しました.
  • FirefoxとOperaの履歴ファイルのパスは、ブックマークファイルのパスから自動的に推定するようにしました.そのため、オプション設定で履歴ファイルのパスを手動入力する必要がなくなりました.
  • ツールバーのブラウザボタンに登録できるアプリ数は4つまでと変わらないのですが、オプション設定で編集できるリスト項目は8つに増やしました.この説明だけだと、なんのこっちゃ、わかりませんね..まぁ、使っていただければわかると思います. 
  • エラーが発生した後に、次の動作に移行しても、いつまでもエラーメッセージが残っているのは不細工なので、アイドル状態のメッセージを適宜表示するようにしました.(おかしいな〜.以前に、この問題は解決したはずなんだけどな〜!)
  • Firefox/Netscapeのブックマークではない通常のHTMLファイルを、誤ってブックマークとして登録してしまった場合は、ファイル読み込みを行わないようにチェックを設けました.
  • オプション設定・ブラウザタブの[変更]ボタンをクリックしたとき、ダイアログに表示する初期フォルダは、変更前のパスにしました.
  • システムトレイ収納時に、新着バルーンメッセージを表示するかどうかを、ユーザーが設定することができるようにしました.
  • スキン画像を外部ファイル参照する形式で復活させました.
  • アイテムをマウス右ボタンでドラッグ&ドロップした場合は、ターゲットにコピーするようにしました.ターゲットに重複項目がないかどうかのチェックをしようと思ったのですが、同名・同URLでもフラグが異なる場合など判定条件が面倒なので、完全なるクローンコピーをしています.(ごめんちゃい.手抜きしました.) この機能は、Rさんにご提案いただきました.ありがとうございます.

Ver.0.31b

  • ブックマーク(お気に入り)の登録方法を全面的に改良しました.1ブラウザ1ブックマークという縛りをなくして、任意の数のブックマークを任意の順番に登録できるようにしました.これで、新形式のフォーマットに対応するのも楽になりました.さあ、ドンと来い、超常現象!
  • 同様に、ブラウザの登録方法も変更しました.上記紹介に掲げたブラウザに限らず、「コマンドライン引数にURLをセットできるブラウザ(たぶん、全てのブラウザがOKだと思う)」ならば、なんでも登録(4つまで)できます.このように、ブラウザの登録方法を変更したので、ツールバーのブラウザのアイコンは、アプリケーションから動的に取得することにしました.ところが、困ったことに、取得したアイコン画像が「すごく汚い」のです.特にIEのアイコンは最悪です.どうも、「色使いにアルファチャンネルを使ってると、どーたらこーたら..」ということらしいのですが、私にはよくわかりません.なわけで、旧バージョンよりも、ボタン画像が汚くなりますが、我慢してください.
  • 一般アイテムの更新チェック周期をゼロとすると、起動時のみチェックを行い、以後タイマーによる自動更新チェックは行わない設定を追加しました.
  • 次回更新時間表示で、次に一般アイテムの更新が行われるかどうかわかるように、目印を表示するようにしました.
  • 新着コンテキストメニューからアイテムを選択する際に、アイテムがリストの後方にあり、フォルダを選択しただけでは見つけられないアイテムに関しては、リストをスクロール表示するようにしました.
  • 蟹味噌エディタを、コンテキストメニューからも起動できるようにしました.
  • 各種ダイアログのパネル面を美白して、レイアウトも見栄えするようにしました.今まで、手抜きをして、かなりいい加減だったと反省.

Ver.0.30b

  • 一般アイテムの更新チェッカーのオプション・[蟹ばさみキーワード]用のエディタ(蟹ミソ)を導入しました.要するに、HTMLソースを見ながらキーワードをセットできるユーティリティです.
  • 一般アイテムの更新チェッカーのオプションに[鮪キーワード]というものを追加しました.このオプションは、指定したキーワードがHTML内に出現したら、シグナルを発します.例えば、オンラインソフトウェア紹介サイトで、指定したソフトのバージョンアップがあったら、更新を知らせるなどの用途に使えます.鮪キーワードは、キーワードの存否だけでなく、前後の文字列もチェックの対象にすることができるので、単にキーワードの存否だけでは判断できないケースにも対応します.
  • 一般アイテムの各種キーワードによる更新チェックの際に、METAタグのcharset属性が宣言されていないHTMLドキュメントのエンコードを、外部から指定できるオプションを追加しました.
  • Sleipnir形式のお気に入りファイル(*.SFV)が、エクスポートできるようになりました.
  • 一般アイテムの更新チェッカーで、新着でもないのに更新日時が変動してしまう場合があるバグを修正しました.
  • 新着記事がないのに、RSSフォルダは新着フラグ(斜体太字)がオンになってしまうバグ(特に朝日新聞)を修正しました.
  • Firefoxのブックマークファイル内の各項目のタイトルとコメントにHTMLエンコードした文字を使用した場合、HTMLエクスポートや一般アイテムの更新チェッカーのキーワードの解読が正しく行われないバグを修正しました.
  • CCBと同様に、ネット関連のエラーメッセージを、.NETが提供するものから、慣れ親しんだHTTPエラーコード表記に変更しました.
  • インターネットに接続中のステータスバーメッセージは、接続中のソケットの数でなく、接続待ち行列にキューイングされている数を表示することにしました.ソケットの数なんかより、こっちの方が「大阪の歩行者信号」的で、ストレスが溜まりにくいと思います.また、接続を開始したURLやサイトのタイトルも表示するようにしました.

Ver.0.29b4

連日のジタバタしたバージョンアップですんまへんです.

  • RSSの更新日時が古い状態でレイズしてくる記事を取りこぼすバグを修正しました.とあるサイトが「2050年とか無茶苦茶な更新日時のRSS」を発行しているおかげで、このバグの存在を発見しました.ぬはは.
  • 未読リストを検索して、それらのアイテムを既読状態にすると、アプリが落ちてしまうバグを修正しました.こんな細かいバグを良く見つけてくれるもんです.K氏に感謝.

Ver.0.29b3

  • 前日の蟹バサミチェック関連で、charset属性を大文字・小文字区別して認識していたバグを修正しました.また、古代の遺産Netscape2.0時代のx-sjisエンコードにも対応できるようにしました.
  • リスト表示のアルゴリズムをCCBやCRCRCと同じにして、スピードアップを計りました.それでも、やっぱり.NETのリスト関連の処理は鈍いです..
  • アイテム編集ダイアログに、謎の[蟹]ボタンを追加しました.次回のバージョンアップへの布石です.

Ver.0.29b2

  • 一般アイテムの蟹バサミキーワードによる更新チェックの際に、ターゲットがXHTMLだった場合、METAタグのcharset属性からエンコード情報を上手く取り出せないバグを修正しました.

Ver.0.29b

  • 更新チェッカーで、更新が確認された項目は「読了(ブラウザでアクセス)」するまでは、太字表示を持続するようにしました.この設定は、アプリを終了しても保存されます.(これで、やっと通常のメールソフトやRSSリーダの操作感と同じインターフェースになりました.) もちろん、お約束の「既読ボタン」もついてます.
  • 更新アイテムのカテゴリーが増えたので、検索バーの特殊条件検索も「新着アイテム表示」と「未読アイテム表示」に分けることにしました.
  • RSSの保存記事数を設定できるようにしました.今までは、RSSのフィード側の指定に任せていましたが、ちょっとほかっておくと、すぐに記事が流れてしまう不満もこれで解消です.
  • 「朝日新聞」などのRSSは、同一の記事に何度も加筆修正が加えられるという性質から、記事が時系列には整列していません.それを解消するために、ダウンロード時にiCBM3内部で、記事を時系列に整列しなおしてから表示するようにしました.
  • 一般アイテムが更新チェッカーにエントリーされた場合は、色違いのアイコンを表示するようにしました.
  • ツールバーのボタンが混雑してきたので、コピー関連のボタンは、ドロップダウンメニューに収納しました.また、ワンクリックした際のデフォルト動作は、オプション設定で予めセットしておけるようにしました.
  • Ver.0.27bの改良で、「最新ボタン」を押した際はRSSのダウンロードを行わないという仕様にしましたが、これだとFirefoxのライブブックマークやLunascape22のダイナミックブックマークが空っぽのままになってしまいます.私は、ナニを血迷ってあんな仕様にしたのでしょうか.元に戻しました.ただ、今までどおりにするのは芸がないので、ダウンロードが必要な部分だけ行うということにしました.(う〜ん、またこの小細工でバグが新たに生まれた予感がする...

Ver.0.28b

  • 一般アイテムのタイマーによる自動更新チェックも行えるようにしました.チェックは全てのアイテムを行うわけではなく、エントリーされた項目のみ行います.
  • リンク抽出コマンドに「リンク追跡」オプションを追加しました.また、抽出タグのラインナップに「<BODY BACKGROUND="...">」・「<TABLE BACKGROUND="...">」を追加しました.
  • エラーメッセージの表示方法を一新しました.新方式では、エラーの起こったアイテムにマウスを合わせると、ツールチップ風のポップアップがエラーの詳細を表示します.これで、RSSフォルダの中にエラーメッセージが表示されたりだとか、ステータスバーに一瞬だけ表示されたりするブサイクなインターフェースから解消されます.あ〜、最初からこうしときゃ良かった...
  • 更新チェックの結果、新着アイテムが見つかった場合にチャイムを鳴らすオプションを追加しました.
  • 一般アイテムの更新チェックの「蟹バサミキーワード」の表記で、開始・終了キーワードのうち、片方を省略して記述することができるようにしました.これにより、開始キーワードからHTML末尾までのような指定をすることもできます.
  • オプション設定で、数値入力すべき入力欄は、数値しか入力できないように、小細工を施しました.
  • 更新チェッカーを実行中は、ステータスバーのコンテキストメニューの誤動作を防ぐため、メニューを表示させないようにしました.
  • 新規フォルダ作成したら、すぐにタイトルのインライン編集へ移行するようにしました.
  • ツリー・リストアイテムの移動・削除にまつわる様々なバグの修正を行いました.まだまだ、いっぱいバグってたようです.これで、少しはましになったかな?
  • リンクポケットに間違ったアイテムをドロップした場合、例えばXMLポケットにRSS以外のリンクをドロップしたとか、抽出ポケットにHTMLではないものをドロップしたような場合、きちんとエラーハンドリングできるようにしました.
  • 検索を行ったあとに、検索でヒットしたアイテムのオリジナルフォルダに戻って、アイテムを編集しようとしても、編集できないバグを修正しました.
  • Firefoxのブックマーク内に、例えばjavascriptのブックマークレットのようなHTMLタグを生で記述するURLが存在した場合、そのアイテムのタイトルを上手く切り出せないバグを修正しました.

Ver.0.27b

  • 検索をモーダルダイアログ表示から、検索バーもどきの表示に変更しました.見た目だけね.
  • ブラウザからのドラッグ&ドロップによるアイテム登録の際、内容の識別を「修飾キー」で行う方法は、非常にめんどくさいし間違いが発生しやすいので、インターフェースを一新しました.「ドロップポケット」と呼ばれる、内容別に設けられたコントロールにドロップすることで、作業が明示化されます.(実は、プログラム的にも、すっきりしたので一挙両得です.)
  • ブログなどでRSSリンクがどこにあるか見つからない場合、表示ページのアドレスバーアイコンを上記の「XMLポケット」にドロップすると、自動的にRSSリンクを見つけて登録する「オートディスカバリー」機能を導入しました.(ま、例によって、普通のRSSリーダーには当たり前についている機能なわけで..
  • リストアイテム(フォルダを除く)を、「ドロップポケット」にドラッグ&ドロップすることができるようにしました.一見、なんのこっちゃという機能ですが、例えば、リンク抽出した結果の中から、更に深い階層のリンクを抽出するような用途に使うと便利です.
  • 複合検索の区切文字を、カンマ以外に、全半角スペースも使えるようにしました.
  • 検索バーに過去の検索履歴を5つまで残すことができるようにしました.
  • 「最新のブックマークを読み込む」際、RSSのダウンロードは行わないことにしました.考えてみたら、Ver.0.24bでupdate.XMLというデータベースを参照する仕組みにしたので、ブックマークを読み込むたびにRSSのダウンロードはしなくてもよくなってことに気づいてませんでした.あ〜、はずかし.
  • アイテム編集の際、編集できない項目については、今までエラー表示を行うだけだったが、アイテムの閲覧のみは行えるようにしました.
  • Ver.0.26bにおいて、「エラーメッセージが重複表示されないようにする小細工」をおこなったために、リンク抽出やRSS登録で表示されるべきエラーメッセージが表示されなくなってしまっていたバグを修正しました.
  • 検索を行った後、通常のフォルダ表示に移行するとき、一瞬関係のないフォルダが表示されてから切り替わるというバグを修正しました.(これ、どー考えても自分に非はないように思えます..NETのバグなのかな?
  • RSSフォルダをゴミ箱に捨てたとき、そのRSSが新着だった場合、ステータスバーの新着数が変更されないバグを修正しました.
  • リンク抽出オプションに、「結果はフォルダに収める」を指定したにも関わらず、RSSと判定されたアイテムがフォルダ外に登録されてしまうバグを修正しました.
  • ツリービュー内のアイテムを、ドラッグ&ドロップで別ツリーに移動する際に、移動元フォルダのリストビューの表示に移動したはずのアイテムの残骸が残ってしまうバグを修正しました.
  • バージョンアップなどで、初期設定ファイルのフォーマットを変更したとき、XMLファイルがクローズされなくて、アプリ終了時に初期設定の保存に失敗してしまうバグを修正しました.

Ver.0.26b

  • Firefoxの履歴表示にも対応しました.ただし、厄介なことにFirefox起動中は、Firefox自身が履歴ファイルをくわえこんで放さないので、iCBM3による履歴表示はできません.困ったもんです.
  • Firefoxの履歴ファイル(history.dat)を参照するため、オプション設定ダイアログにパラメータを追加&レイアウトを変更しました.
  • 履歴表示の際、ローカルファイルのリンクや対人利用には関係ない履歴は、表示しても意味がないのでスキップすることにしました.
  • RSS更新チェッカー実行時に何らかの理由でエラーが発生したものの、次の更新チェックの際は正常に終了した場合、通常はエラーメッセージが消えるはずなのですが、2回目のチェックでRSSの内容に変化がなかった場合は、Ver.0.24bで導入したIf-Modified-SinceとIf-No-Matchパラメータにより、RSSの内容をリロードしない仕様にしたので、エラーメッセージが残ってしまうバグを修正しました.文章長〜い〜、何言ってんだかわかんな〜い..ま、要するに前のエラーメッセージが確実に消去されるようにしましたってことです.
  • オプション設定ダイアログで、同時接続数のパラメータを変更しても、実行に反映されないバグを修正しました.
  • いろいろ試してきた、ツールバーのスキン画像ですが、どれもイマイチなのでなしにしました.あ〜、すっきり!

Ver.0.25b

  • IE系ブラウザの履歴表示ができるようになりました.時系列で表示されるので、ブラウザの履歴より便利な場合があるかも.Firefoxの履歴表示は、次回以降へ持ち越しにさせていただきます.履歴ファイル(history.dat)のフォーマットを現在解析中で、半分ぐらい理解できたところです.それにしても、このファイル構造の元となっているデータベースmorkって、如何にも前時代的な匂いがぷんぷんします.エディタで内容をご覧になるとわかると思いますが、80桁で折り返されるテキスト、鍵テーブルとテキストを分離して書く仕様などなど..紙テープやパンチカードを使っていた頃を思い出させてくれます.
  • 「検索」や「子フォルダ展開表示」の際のウィンドウタイトルは、その操作の条件を明記することにしました.

Ver.0.24b

  • RSS以外に一般アイテムについても、更新チェックが行えるようになりました.ターゲットアイテムの内容全体、もしくはキーワードで囲まれた一部分の内容の、MD5ハッシュ値を計算&比較して、更新の有無をチェックします.日本語はもちろんのこと、簡体・繁体中国語エンコードにも対応してます..ホントか?
  • ステータスバーにコンテキストメニューを新設しました.複雑に入り組んだツリーを辿らなくても、メニューから一発で更新RSSフォルダに移動することが出来ます.また、タスクトレイ収納時にも、同様の機能が使えます.意外に便利です.
  • HTTPリクエストヘッダに、新たにIf-Modified-SinceとIf-No-Matchのパラメータを追加しました.このパラメータに対応しているサーバでは、更新されていない場合、XML本体を無駄にダウンロードしなくなるので、2回目以降の更新チェックでは通信量を格段に減らすことができます.対応していないサーバについては従来どおりです.
  • 同時最大接続数をユーザーが設定できるようにしました.これで、RSS自動更新時にiCBM3がソケット資源を食い潰すようなことは起こらないはずです.RSS項目を数十個登録されているユーザさんから、ご指摘を頂くまでまったく考慮してませんでした.面目ないです.
  • 一般アイテムの更新チェック機能導入、RSSのHTTPリクエストヘッダ追加に伴い、「feederinfo.XML」を廃止しました.新たに、「update.XML」というRSSと一般アイテムの更新情報を記録するファイルを新設しました.update.XMLでは、更新情報とともにRSSの記事本体も保存するようにしました.これにより、2回目以降の起動&RSSのダウンロードが、びっくりするぐらい非常にスピーディになりました...って自慢げに書いたけど、通常のRSSリーダならば当たり前の仕様なわけで、あはははははは.(とりあえず、笑っとけ.
  • リストビュー&ツリービューの項目をドラッグするとき、通過アイテムの視覚効果(反転表示など)は正直やっつけ仕事のいい加減なものだったので、あらためて専用クラス化して作り直しました.見た目は、むしろ貧弱になりましたが、視覚効果的には、こちらの方がわかりやすいと思います.
  • スクラップ・ゴミ箱フォルダを編集ダイアログで編集するとき、意味なくURLとRSS入力欄が有効になっているバグを修正しました.
  • タイトルのインライン編集の際に、コントロール+Cなどのショートカットキー信号がコンテキストメニューに横取りされてしまうバグを修正しました.(技術的には、編集のときだけ一時的にメニュー項目を無効にすることで対処したのですが、こういうのって普通はOS側でやってくれるもんとちゃうのかな〜?ブツブツ・・・)
  • リンク抽出の際に中止ボタンが働かないバグを修正しました.
  • 起動時に、RSS項目をサーチする際、SleipnirとIEのフォルダをスキャンしても意味がないので、キックするようにしました.
  • ゴミ箱に捨てられたRSS項目は、自動更新から除外することにしました.ゴミ箱の中でグニョグニョ動いてるってのは、やっぱおかしいですよね.
  • ツールバー・「更新」ボタンは、RSSや一般アイテムの更新チェッカー機能と名前が紛らわしいので、「最新」と改名しました.

Ver.0.23b

  • ブラウザからドラッグ&ドロップされたリンクの内容を解析して、リンク抽出を行う機能を追加しました.抽出条件として、ピックアップTagの選別、許可キーワードによるフィルタリングなどのパラメータを設定することも可能です.
  • Ver.0.21bで変更した削除コマンド(ゴミ箱へ移動)が、かなり不評だったようなので、ツールバーからはゴミ箱へ移動、コンテキストメニュー/DELキーからは完全削除と、用途によって使い分けができるようにしました.
  • HTML・OPMLファイルを保存する際に、ゴミ箱の内容まで書き出すのは変なので、除外するようにしました.
  • 試験的に、保存コマンドのオプションとして、Firefoxのブックマークフォーマットによるエクスポート機能を追加しました.Sleipnir・Lunascape2のフォーマットについては、研究中です.かなり、めんどくさそう.「IEは?」という声が聞こえてきそうですが、こちらは完全にフォーマットを理解しているものの、なんか今更という感じがして、気乗りしてません..
  • RSSダウンロード中のアイコンのリアルタイム表示は、今までツリービューだけでしたが、リストビューでも表示されるようにしました.(非同期処理って、ひとつのオブジェクトに対してだと簡単なのですが、ふたつ以上になると面倒なので手抜きしてました.)
  • RSSダウンロードに失敗した項目については、RSSフォルダアイコンにX印を付加することにしました.

Ver.0.22b

  • タスクトレイ収納時に、RSSの自動更新があった場合、バルーンポップアップを使って更新されたRSSサイトを表示するようにしました.(正直に白状します.RSS-Readerソフトによくある機能を真似しました.
  • ツールバーやコンテキストメニューのRSS更新開始・中止コマンドについて、選択項目用と全項目用に分かれているのは煩雑で使いにくかったので、リスト・ツリー項目の選択状態を自動判別することで統一コマンドにしました.
  • ブラウザからのドラッグ&ドロップで、RSS・OPMLリンクを登録する際、拡張子による識別だけでは誤認しやすかったので、RSSとOPMLのXMLパーサを一元化して、内容を読み込む際に自動識別するようにしました.更に、RSSともOPMLとも識別できないリンクが、むやみにリストに登録されないように工夫しました.
  • ダウンロードソケットのHTTPリクエストヘッダに、新たにConnection=Close、リダイレクション禁止、UserAgentの項目を追加しました.
  • ダウンロードスレッドの例外処理ブロックの構造化の方法を見直し、無駄なコードを除去しました.
  • ツリービュー側のインターフェースが、リストビューに比べ明らかに手抜きだったので強化しました.リストビューと同様に、項目の編集・削除・ブラウザ表示、更にドラッグ&ドロップによる移動も可能になりました.

Ver.0.21b

  • ゴミ箱フォルダを新設しました.これからは、アイテムの削除は一度ゴミ箱フォルダに蓄積される仕組みになります.誤って、アイテムを削除したときに、救済できるので便利かも.でも、操作性は不便になってます.不条理だ!
  • 終了時に、スクラップフォルダのOPMLファイルのバックアップファイルを作成するようにしました.
  • RSSフォルダを移動すると、自動更新エントリーから除外されてしまうバグを修正しました.それに伴い、自作スレッドプール(JobManagerクラス)のアルゴリズムを見直し、バックグラウンドジョブの管理方法を改良しました.
  • RSSの記述にCDATAセクションがある場合、要素の読み込みに失敗することがあるバグを修正しました.
  • アイテムを追加するようなコマンド(新規アイテム・新規フォルダ・ブラウザーからのドラッグ&ドロップ)で、アイテム総数表示が更新されないバグを修正しました.

Ver.0.20b

  • 今までローカルファイルのOPMLの登録しか出来ませんでしたが、WEB上のOPMLをダウンロードしての登録も可能にしました.もちろん、OPMLに含まれるRSSも自動的にダウンロードします.(前々からTODOプランにはあったのですが、プログラミング的に結構メンドウだったので、今まで延び延びになってました.)
  • 初期設定ファイルを、今風にXML形式で読み書きすることにしました.(たぶん、手馴れた人なら、こういうところシリアライザを使うんでしょうけど、私はひねくれ者なので使いません.バージョン管理とか面倒くさそうだし.)
  • できない操作をしたときにメッセージとともに、BEEP音を再生するようにしました.
  • 不正な文字列を含むURLを含む項目をブラウザで表示しようとすると、エラーが発生してアプリが落ちてしまうバグを修正しました.
  • RSSフォルダが並んだ項目の間に、項目をドラッグ&ドロップで移動できないバグを修正しました.
  • スクラップフォルダ名をリネームできないバグを修正しました.っていうか、本当はリネームするということを想定していませんでした.
  • ツリーペインでアイテムを編集してリネームした結果が、すぐにウィンドウタイトルのフルパス名に反映されなかったバグを修正しました.
  • Sleipnirのデフォルトパス名が間違っていたバグを修正しました.こんな根本的なミスを今まで気が付かなかったなんて、お恥ずかしい..
  • アイテムの移動・編集が出来ない場所の規則が曖昧だったので、厳格に従うようにしました.要するに、移動はどこでもOKだが、編集はスクラップフォルダ内のアイテム(RSSフォルダ内のアイテムを除く)に限定ということにしました.

Ver.0.19b

  • タイマーリスタートによるRSSの自動更新が二回目以降行われないバグを修正しました.(.NETのタイマークラス、引数多すぎ!)
  • 非同期デリゲートによるイベントハンドリングのお作法がデタラメだったみたいなので、修正しました.(それでも、ちゃんと動いていたんだけどな〜!どういうこと?)
  • リストアイテムのアイコンイメージの一部に透明処理されていないものがあったので修正しました.
  • 新規アイテムを手動で作成するコマンドを新設しました.登録はブラウザからのドロップだけで充分だと思っていたのは、あさはかでした.結構、こういうマニュアルコマンドも必要なのね.
  • クリップボードのURLテキストを直接スクラップフォルダに登録するコマンドを新設しました.
  • スクラップフォルダの内容は、今までアプリ終了時のみに保存される仕様でしたが、手動で保存するコマンドも新設しました.何か作業をやるたび、コントロール+Sを実行する癖のある皆さんのために..

Ver.0.18b

  • 「スクラップ・ブックマーク」と言う独自ブックマークフォルダを導入しました.こちらのアイテムは、ブラウザとは独立しているので、自由に移動・削除・編集ができます.

Ver.0.17b

  • スケジュールタイマーによる自動更新機能を導入しました.(とは言っても、通常のRSSリーダーに比べると明らかに見劣りします.)
  • Lunascape2のお気に入りも取り込めるようにしました.
  • RSSのほかにAtomにも対応しました.また、これを機にXMLパーサを全面的に書き換えました.
  • ダウンロード用のスレッドとスレッドプールマネージャー(自作)をタイマールーチンから独立させました.(Ver.0.15bの頃、時々落ちるという現象はこれが原因だったみたいです.)

Ver.0.16b

  • もろもろのバグ修正をしました.膨大なので詳細は省略します.かなり、いい加減だったな〜と反省.

Ver.0.15b2

  • RSSダウンロードが糞詰まりになったとき、スレッドを廃棄する手順で、Joinする(ちゃんと終わるのを待ってやる)のを忘れていたバグを修正しました.REALbasicだと、こういう部分はブチッとCloseにしてしまうんだけど、やっぱVS.NETはお上品だ〜ね〜(嫌味).

Ver.0.15b

  • 公開バージョン.