2010年 09月 06日



金曜日、帰宅後に御苑を歩いていたら気持ちよかったので、そのまま夜の嵐山へ。野々宮神社あたりまでいったがそれ以降は明りが全くないので戻り、桂川を下り、松尾大社、月読神社を通って自宅へ。思うところあって夜の嵐山には前々から行きたいと思っていたのだけど、タイミングがつかめず行けてなかったので、行けてよかった。いくつか撮影したいポイントがあったが、全く機材を持っていかなかった (カメラさえ) ので何もしていない。

土曜日、行ったことない神社に行こうと思い、賀茂波爾神社へ。こじんまりとした神社だった。深泥池にも行ったけど特に何もなかった。

日曜日、最近ちゃんと写真を撮れてないので、目的地をあまり定めずぶらぶら歩くことにした。とはいえある程度どこ歩くかとかがないと歩けないので、哲学の道を歩いてきた。残暑厳しい中、人が少なかったのでゆっくり歩けた。大豊神社に行ったことがないので行ってみたりした。なんとなく静かな休日だった。歩いていくにはちょっと遠い。

四葉のヤサカタクシーを初めてみかけた。思いのほか普通に嬉しい気分になった。

いつ見た夢か忘れてしまった。

誰かの結婚式だった。誰かというのは、顔も知らないが知り合いの女の子 (矛盾するが、夢なので) で、相手は全く知らん男だった。その子は大変素敵な女の子なので、くそー相手が羨ましいと思いつつ、幸せになって良かったなあと思う夢だった。

情熱大陸で探検昆虫学者・西田賢司というのがやっていて、とにかく、まさに情熱というものがあってカッコよかった。全然違う世界を見ているであろう眼をしつつ、落ち着いて話すので、悟りを開いている人みたいだった。

おかえりピアニカ (Cue comics) - 衿沢世衣子

衿沢世衣子

3.0 / 5.0

静かで意味不明で面白かった。

THE 世界遺産でクエバ・デ・ラス・マノスが取り上げられていて面白かった。

9000年ほど前から2000年前ぐらいまでの間に描かれた洞窟壁画の話で、特に手形がたくさん描かれていて、それだけで圧巻なのだけれど、それほど前から、長い年月をかけてずっと描かれ続けたというのが信じられない感じがした。それに、手形の壁画というのは、ここに限らず世界にあるというのも驚きだった。

手形を残したのは狩猟民族だった彼らにとって手が重要な象徴だったからという話がされていて、逆にいえば現代人は後生に手形を残したいと思うほどには手が重要な象徴ではなくなってるということだけれど、では現代人にとって最も重要な象徴って何なのだろうと思った。ほんの少し前までは日本人には稲作がものすごく重要であったから、稲作関係ものは象徴的で、風習的にはちゃんと今もたくさん残っている (全国の稲荷社とか新嘗祭とか) けれども、それも今飽食の時代がやってきて、もはやそこまで重要視されているようには思えない。発達・発展するにつれてそういうものはいらなくなるのだろうか?

2010年 09月 05日

gerry++

2010年 09月 03日

2010年 09月 02日

2010年 09月 01日

Chemr-js

Chemr という .chm を読む Mac 向けのツールを作っていたのですが、環境の変化か何かで動かなくなってしまい、いろいろやってみたけどどうやっても直らなかったので代替を考えて実装しなおしました。

やはり、普段使ってるフィールドの技術でつくるのが最もメンテナンスしやすいと思い、ブラウザ+Greasemonkey で実現することにしました。実際のところ、僕が欲しいのは .chm を読むツールではなく、適切にインデックスが貼られたドキュメントをインクリメンタルサーチして統一した操作方法で読めるツールなので、別に .chm じゃなくても良いのです。高級なリファレンスツールやら拡張やらを使用していらっしゃるかたには必要ないかと思いますが個人的には便利に使えるようになったので紹介したいと思います。

使いかた

対応サイトにアクセスすると検索ボックスがでてくる

C-l (Cmd-L) で検索エリアにフォーカス、C-n で次を選択、C-p で前を選択、tab で最上位にある候補を補完、C-u でクリア、C-w でワード削除などとなっています。検索ボックスが邪魔なら ESC で消せる。C-l したらもっかいでてくる。

スペースは正規表現の .* みたいにふるまいます。pla midd とかで Plack::Middleware がマッチ

各種サイトにアクセスしたときにそのサイトをクロールしてインデックスをつくります。サイトによっては時間かかりますが大抵すぐおわります。 (Android のドキュメントとかは2000ページ近くクロールするので40分ぐらいかかりますし、静的ファイル相手とはいえ普通にDOSってる感があるので逮捕されても僕は責任とれません)

対応サイト

とかにいくと勝手にサーチウィンドウがでます。Android のサイトはこわいのでリンクはりません。

工夫した点

キーイベント

iframe を使っているのですが、iframe 内部にフォーカスがあるとショートカットキーが効かなくなってうざいので少々頑張っています。具体的には、iframe 内部の場合、親ウィンドウにキーイベントを伝播 (postMessage) するようにしてあります。postMessage なのは iframe 内のリンク遷移で外部ドメインにいってしまってもいいようにです。

高速な検索

mala さんが昔つくっていた http://la.ma.la/blog/diary_200604021538.htm のコードを参考にしつつ、一定数ヒットしたものを適当に好みでスコアリングして表示しています。URL のデータを追加したりしてるのでほんのすこし工夫してます。

html 入れ替え

サイトによってサーチウィンドウのフォントが変わったりして嫌だったので document.replaceChild(html, document.documentElement) という荒技をしてます。

対応サイトにアクセスしたとき、ロードしたページは iframe の中でロードされなおされ、本来読まれたページは chemr.user.js が乗っ取ります。ページ内のリンクは iframe の中なので、クリックしてもいちいち index を読みなおすこともなく快適です。

独立したアプリケーションのように

レポジトリに createapp.rb というのが入っていて、これをうまく使うと普段使いのブラウザとは別に、リファレンスひき専用のブラウザをつくれて便利です。特に Mac の場合、Cmd-Tab でアプリ間しか移動できないので必須です。

手順としては

  • 既存の Firefox プロファイルに加え "chemr" という名前のプロファイルをつくる。
  • createapp.rb を実行する ( /Application/Firefox.app と chemr というプロファイルが必要です)
  • /Application/Chemr.app ができるのでこれを起動
  • 普通の Firefox と同じように Greasemonkey (ほか好みで Stylish など) をインストール
  • about:config で dom.storage.default_quota を大きく (しなくてもいいけど、100MB ぐらいにしとけば十分)
  • chemr.user.js をインストール
  • アドレスバーを消すとか、セッション復帰を有効にしたりする

です。非常に便利です。普段 Firefox を使わない方なら createapp.rb 使わず、普通に一個 profile 潰してもいいと思います。