2003-08-05
_ 家サーバー死にかけ? (13:50)
今朝起きたらblogmapが死んでいた。見てみたら、DB(MySQL)へのアクセスが出来なくなっていた。myisamchkで修復しようとしてみてもread onlyエラーが出る。しょうがないんで、一度マシン自体を再起動しようとしてみたら、終了プロセスの途中で死んでしまった。ハードリセットしてみたところ、起動プロセスの途中でHDDのI/Oエラーが出まくってそのまま死亡。あかん、完全に死んだか。と思いきや、もう一度電源を完全に落としてから再び起動してみたら、何事もなく起動してすべてのプロセスがちゃんと動作し始めた。うーん、気色悪いなー。ひとまずいろいろとバックアップを取ってから、そのまま放置中。もう一度おかしくなったら新しいHDDを買ってきてセットアップし直そう。家サーバーも、動かしはじめてもう1年以上は経ったかな。
_ 大雨ハロー警報 (13:50)
ツーリングには明日行くことになったんで、もうちょっとバイクに慣れておこうと今日も遠出。久しぶりにバイク通勤シミュレーションでもしてみようと、渋谷へと向かってみた。
今日はフルフェイスの方のヘルメットをかぶってみたところ、しばらく走っているうちに前頭部がじりじりと熱くなっていった。ヘルメットの通風口の開け忘れ。手探りで後頭部の通風口を開けたところ、風が通って一気に温度が下がった。
相変わらず混んでいる17号、明治通りルートを通って渋谷まで1時間強。久しぶり過ぎてすり抜けをどの程度やっていいのか判断に迷う。そしてケツが痛い。かなり疲れたんでマンガ喫茶で休憩。ちょっとのつもりが3時間かけて、前途中まで読んだ「クロカン」の残りと、ちゃんと通して読んだことがなかった「シャカリキ」を全部読んでしまった。
マンガ喫茶を出ると、空がやけに暗かった。黒い雲が北側、帰り道の方向に広がっている。本当はもうちょっとうろうろしてから帰るつもりだったのだが、いやな予感がしたのでそのまま帰ることに。帰り道は246、環七、目白通り、環八、17号バイパスというルート。しかし、環八に入ったところで雨が落ち始め、すぐに雷を伴う大雨に変わった。
すぐにやむ夕立かと思って、いったん道ばたにバイクを止めて雨宿りしてみたんだけど、30分くらい経っても雨足が弱まる気配がない。しょうがないんで、一応持ってきていた雨具を身につけて出発。視界が悪すぎ。雨のバイクってこんなに視界が悪かったんだっけ? 結構ちゃんとした雨具なんで体は濡れないんだけど、靴がすぐぐしゃぐしゃになった。
なんとか家に帰り着いた頃には、なんだかぐったり疲れていた。さらに最初にちょっと雨に濡れたせいか、微妙に頭痛がする。こんなんで明日ちゃんと出かけられるのかな?
2004-08-05
_ 久々にCDを買った (00:05)
1年くらい前から、欲しい音楽が軒並みCCCDになっているんで、もう新しいCDを買うのはやめて、古いCDを中古屋とかで発掘しながら生きていこうと思っていたんだけど、たまたま見かけたスガシカオのアルバムがどっちもCD(+おまけDVD)だったんで買ってしまった。でもこれはたまたま。基本的にもう新しい音楽は買わないという方針は変えない。聴きたい音楽がCDなのかCCCDなのか気にして生きるのはうんざりだ。
_ HNSのデータのインポート (00:13)
hns2td(http://sugi.nemui.org/wiki/?c=v;p=Hns2TDiary)を使って古いHNSのデータをtDiaryにインポートしてみたんだけど、やめておけばよかったな。忠告として書かれていたとおり、インポート結果は微妙に中途半端(特にWikiスタイルを使っていると)だし、俺の場合はシステムに関する話題が結構多いから、データを載せているシステムが移行すると、エクスキューズなしではその辺の話題がなんか変な気がする。あと、中途半端にこうやってデータをまとめてしまうと、さらに古い未整形の日記データもインポートしたくなってしまう。さすがにそこまで手をかけていられないよなー。
_ 久しぶりに会社に来た (14:54)
どうも会社の椅子に座っていると調子が悪くなる気がするな。気のせいか?
_ EZチャンネルつまらんなー (15:09)
無料の間だけでもいくつか試してみようかと思ったんだけど、ダウンロード通知が、ムービーを見るまでしつこく表示されるのがうざいんで、やっぱり全部やめ。
1Mバイト超のムービーは、思ったよりもクオリティが高くて表現力があるし、それがパケット料金固定でダウンロードできるってのは、インフラとしては悪くないけれども、そこに載せるコンテンツは、日本の著作権でぎちぎちに縛られた業界では使いこなせないんじゃないか。
たぶんこのインフラを、2chのアップロード職人たちに解放したら、ものすごく楽しいコンテンツができると思う。っつーか今俺がW21Sで見て一番楽しかったのは、どこぞのアップローダーで拾った、久しぶりに見たおっぱい占いのムービーだよ。「そんなのびみょうすぎ〜♪ ちゃらららちゃらららら〜」。
ガラスの仮面ペリー来航Flash
3gpp化しようと思ったけど、QuickTime Proだと音声が入らないなー。それに限らず、QuickTime Proっていろいろ使えなさすぎだよ。スペックを見てできそうだと思ったことの半分くらいはできない。まあ半分できるだけでもそれなりに有用なんだけどさ。
_ 似た話題の日プラグイン (15:52)
Estraierの類似文書検索機能を使って、似た話題の日を表示するプラグインを作ってみた。でもRubyをよくわかっていないんで、日付を引数に呼ぶと結果HTMLを返すスクリプトをPHPで書いて、
add_body_enter_proc do |date|
$cmd = "/path/to/php/script/"
`#{$cmd} #{date.strftime('%Y-%m-%d')}`
end
というグレイトな内容なんでまだ公開しない。Rubyの勉強してRubyにポーティングできたら公開しますよ。でもtDiary+Estraierなんか使っている人ってほとんどいないだろうけど。
_ キーワードプラグインの設定 (16:16)
キーワードプラグインの検索先として、デフォルトでEstraier検索を呼び出すように変更。これで従来通りEstraierとかBracketName化するだけで、関連ドキュメント一覧をたどることができるようになるな。ただWikiLikeの場合は、検索される側でも同じキーワードをBracketName化しておかなければならなかったんだけど、こっちではEstraierの形態素解析依存になる。
ちなみにWikiLikeのときに、検索されるドキュメントの側でも意識してキーワード化しないと検索されないようにしていたのは、誤爆検索を回避する(たまたま同じ文字列を使っていても、そのドキュメントにおいてそのキーワードに特に意味がない場合は、キーワード化しないことによって検索されないようにする)ためだった。
けど、しばらく使ってみた感想として、
- ドキュメント作成時に、そのドキュメントのキーワードを指定するのは(いくらBracketName化するだけとはいえ)面倒くさい
- また、そのドキュメントにおいて意味があるキーワードかどうかを判断することも難しい
- はっきりいって、誤爆だろうがなんだろうがひとまず結果一覧に一通り表示して、人間がそれぞれに意味があるかどうかを判断した方が実用上は便利だ
なんて感じだったんで、結局ごくふつうの形態素解析による全文検索インデックスを使った検索機能でOKという結論になってしまった。
ただWikiLikeの機能を活かして、
- 明示的にBracketName化することによって、キーワードの重要度を上げることができる
- 明示的に検索インデックスから特定のキーワードを排除する書式を用意する
- 本文中に含まれないキーワードを検索インデックスに追加することができる(これはメタキーワードとかを使えば実現できそうだな)
あたりはサポートしたいな。
_ セクションごとの投稿時間 (2) (16:39)
(インポートしたりとかキャッシュを破棄したりとかした)古いデータがレンダリングされるときにも、見出しにレンダリング時点での時刻情報が付加されてしまうことを回避したバージョン。
when /^\![^!]/
@sections << WikiSection::new( section, author ) if section
- section = l
+ if (@date.strftime('%Y-%m-%d') == Time.now.strftime('%Y-%m-%d') &&
+ !l[/\([0-9]{2}:[0-9]{2}\)/]
+ section = l.chomp() + ' (' + Time.now.strftime('%H:%M') + ')' + "\n"
+ else
+ section = l
+ end
else
section = '' unless section
section << l
要は、当日の日記分以外の場合は、時刻を付与しないようにした。
_ 更新時にEstraierのインデックスを更新 (16:50)
インデックス更新スクリプトを用意しておいて、
add_update_proc do
if /^(append|replace)$/ =~ @mode then
$cmd = "/path/to/update/script >/dev/null &"
system($cmd)
end
end
とかやればいいのかな? @modeの判別の意味がよくわからないんで、サンプルそのまま。ソース読まずに勘で言うと、たぶん上記判別でプレビュー時には駆動しないようにしているに80ガバス。
_ 申し込みでこけてた (18:14)
先々週に申し込んだ追加サーバー。いつまで経ってもその後の連絡がこないんで問い合わせてみたら、最初は「ちゃんと申し込まれていて、現在入金待ちステータスです」と言っていたんだけど、「カード決済で入金待ちなんてあるのか」とつっこんだら、「調べてみたら決済でこけていたんで、もう一度申し込みし直してください」ということになった。前回はWebではOK画面が出たんだけどその後のメールとかはこなかったのが、今回はちゃんとOKメールも来たんで今度はちゃんと申し込めたっぽい。インフラ周りは悪くないと思うけど、それ以外のところももうちょいがんばれ、さくらインターネット。
_ デスクトップ検索ツール (20:03)
- デスクトップ検索ツールにYahoo!も参戦(http://www.itmedia.co.jp/news/articles/0408/05/news051.html)
- マイクロソフト、多数の文書フォーマットに対応する検索ツールを初披露(http://www.itmedia.co.jp/news/articles/0407/30/news033.html)
あれ、この市場ってそんなに熱かったのか。先を越されてモチベーションが下がる前に、作りかけで放置していたEstraierのWindowsクライアントをとっとと完成させておくべきかな。動作テスト用のプロトタイプはずいぶん前に完成したんだけど、Windows環境でOffice文書がうまく登録できなかったんで、そのまま放置しちゃったんだよな。
自分で作らなくても誰かが作ってくれればそれでいいんで、外部仕様だけ書いておくと、
- 基本はWindows用常駐ツール
- エクスプローラから、フォルダ・ファイル(パターンもあり)をEstraierの検索対象として登録することができる
- ツールは、Estraierの検索対象となったフォルダ・ファイルの更新状況を監視している
- フォルダ・ファイルに変更があった場合は、それらを次回インデックス更新対象として登録する
- System Idleとか指定時間起動とかで、適切にEstraierのインデックスに更新をかける
- インデックスは複数用意でき、どのフォルダがどのインデックスに対応するか等指定できる
- あとはポップアップ等で起動する、Estraierの検索クライアント機能。検索窓にキーワードを入力すると、指定されたインデックス(複数可能)に対して検索をかけ、その結果を表示する。関連文書検索等もそのまま使える。
といった感じ。VB.NET+SQLite(UTF-8コンパイル版)で作っているけれども、estxviewの吐くXMLをパースできて、WindowsのUIが作れるならば、作るのはそんなに難しくないと思う。
あとは、
- メールをプレーンテキストのままにファイルシステム上に保存するメールクライアント(fetchmailみたいなののWin32版ってあるのかな)
- ブラウザの履歴を録画(保存)することができるツール(録画ボタンを押すと、それ以降閲覧したページがすべてローカルに保存され、検索対象となる。録画停止で止まる)
あたりを用意すると、Web+メールに対してローカルで気軽に高度な全文検索ができるシステムが完成する。という予定。
ブラウザ履歴に関しては、IEのキャッシュから該当URLのファイルを取り出すサンプルは作ってみたんで、あとはどうやって録画状態中のURL履歴を保持するかだな。専用ブラウザを作れば簡単なんだけど、それはさすがに面倒だしな。80ポート宛のリクエストを監視するとか? さすがにそれもなー。
SQLiteの用途
これだけだとSQLiteを何に使っているかわからないんで補足。SQLiteは、全文検索ではない検索インデックスとして使う。要は、
- ファイル名
- 拡張子(ファイル種別)
- ファイル作成日時
- ファイル更新日時
- 該当ファイルごとのプロパティ
- たとえばHTMLファイルならば、URL、タイトルとか
- メールだったら、Subject、From、To、Dateとか
なんてあたり。Estraierを使って全文検索・類似文書検索などの曖昧度の高い検索を行い、SQLiteで基本的な検索やソートを行う感じ。
本当は検索ツールを別アプリにするのではなく、Explorerに埋め込んで表示できたりするとよりスマートなんだろうけど、どうもWindowsのShell周りって面倒くさそうなんで、あんまり手を出したくないんだよなー。
これだとWebとメール専用みたいだ
もちろんそんなことはなく、仕事用のフォルダとか資料用のフォルダとかを検索対象に入れておけば、そこもこのシステムから検索できるし、フォルダにファイルを追加したり更新したりすると、自動的にそのファイルも検索対象になる。どうせならば高林さん(http://namazu.org/~satoru/diary/)が作るらしい、ソースコード用検索システム(http://www.ipa.go.jp/jinzai/esp/2004mito1/gaiyou/2-23.html)の機能も取り込んで、ソース資産に対する検索も透過的にできるといいだろうなー。
_ trackback受信できてなかった (22:26)
単にインストールして関連プラグインを有効にしただけじゃだめなのね。tb.rbをWeb公開ディレクトリにコピーして、実行権限をつけてやる必要があるのか。
_ サイドバー (23:37)
自分でヘッダ・フッタに<div class="main"></div>とか<div class="sidebar"></div>とか書いて使うものなのね。てっきり、どれかのテーマを選ぶと自動的に有効になるんだと思っていたよ。
2005-08-05
_ サーバー死亡中 (08:02)
メインの新しい方のサーバーにディスク障害発生。現在状況確認中。データ自体は別サーバーにもあるんで生きているけど、新サーバーの方はドライブ交換になりそうな予感。ただサーバー屋が夏休み中なんで、応答が遅そうだ……。
_ 暫定サーバーに移動 (09:37)
主要な機能をもう一個のサーバーで稼働させました。が、DNS情報の伝搬まで時間がかかりそう。重そうな機能(主に検索系)をカットしているんで、これでなんとかメインサーバーの復旧までもたせられないかなー。
_ サーバー屋の夏休みはまだだった (09:48)
うまくいけば今日中に復旧するかなー。まだ連絡はつかないけど。でもサーバーが復旧(というかディスク交換)しても、DBの復旧(というかネットワークコピー)にうんざりするくらい時間が必要そうだなー。
_ バックアップデータを最新にしておきました (11:16)
MM/Memoのメモバックアップ用(RSS)データを、最新の状態に更新しておきました。現在稼働中のサーバーが見える方は、念のため手元にダウンロードしておいた方がいいと思います。現在1470.net関連のDBはバックアップなしで動作しているんで、現在稼働中のサーバーが死んだらデータが失われてしまいます。
_ くそー (11:21)
こんなんで今日もスポクラにいけなかった。
なんて文脈依存の記述は、blog形式で前後のエントリーが見えないシステムだと書けないんだよね。blog形式でも強制的に前後のエントリーの要約とか、前後数件分のタイトルを表示させたりすれば、それなりに文脈が見えるようになるかな。
_ hostsで指定する方法 (12:53)
だいぶDNS情報も行き渡ったみたいですが、まだ接続できない場合は、hostsファイルに、
202.181.96.63 1470.net
なんて書いておくと、暫定サーバーの方に接続できるようになります。緊急回避的な対処としてご利用ください。
_ jsコードをバックアップしてねー (13:07)
適当に埋めて動くようにしてみたけど、こんなんだったかなー。実は結構バックアップ漏れがあったりして。結構直接サーバーのファイルをいじっている部分もあったからなー。commit漏れがあったかもしれない。
_ やっぱりディスクが死んでいた (17:51)
ディスク交換&OS再インストールを依頼した。3営業日以内でハードウェア的には復活するらしいけど、中身も復活させるのには時間がかかりそうだなー。どうせなら、これを機にシステム設計からやり直しちゃおう。なんて全部作り直したりしたくなるのは負け犬のやることだ! でもblogmapなんてセカンドシステムどころかフォースシステムくらいゼロから作り直しているけどなー。
2006-08-05
_ MONO関連地味な改良
発売日カレンダーの表示を、Amazonの商品カテゴリー別に表示できるようにしました。2006年08月05日発売のMONO[Book]みたいな感じです。
あと、MONO検索の際のソートオーダーを、発売日が新しい順に変更しました(デフォルトは売れ筋順)。


_ smbd [)ノ tdiary+Estraierつかってます]
_ ishinao [smbdさんのほかにあと一人か二人しかいないような気が……。]