Chrome key 0.2.0

http://shinh.skr.jp/chrome/chromekey.crx

  • App engine 側に GET でデータを送っていたのを POST にしたので送るコードのサイズ制限が消えたんでないかと思います。
  • cookie のかわりに localStorage 使うようにしたので、保存するコードのサイズ制限が消えたんでないかと思います。
  • backgroundEval という API を加えたので、 tab の移動とかできるようになりました。
  • あと細かいもろもろ。

safiiさんに hah を作っていただいたのとnihaさんが tab 移動とか実装してくださってたあたりの反応という感じです。 nihaさんは toolstripEval を backgroundEval に変えたので注意してください。

あと cookie 使ってたバージョンを使ってた場合、ローカルに置いてあった設定は全部消えるはずです。アップデートする前にサーバーに設定を置いておくことをおすすめします。

一応 cookie 使ってるバージョンを放置しておいたので、 localStorage 無いバージョンの chrome とか使ってるかたは適当にどうぞ。

http://shinh.skr.jp/chrome/chromekey_cookie.crx

Chrome Key Config

一通り自分で便利なようになった気がしたのでリリースします。

http://shinh.skr.jp/chrome/chromekey.crx

Chrome のキー入力を自在に JS 書いてカスタマイズできますよーという物体です。上記を --enable-extensions をつけて起動した extension が使えるバージョンの chrome (3.0.* と 4.0.* でしかチェックしてません) でリンクをクリックしてやると、下に CK というボタンができます。それをクリックしたらひどい UI の設定画面が出てくるので、それを適当にいじってやってください。

この手の設定って各ブラウザで sync するのが大変めんどくさいと思うので、 App Engine 使ってサーバ上に設定を残せるようにしてあります。下の方の Login をクリックしてログインして、 Upload all とかすると保存できます。後は単品で download したりまとめて Download all とかして下さい。

それとアップロードされた設定は全員から見えるようになってます。適当にもし他の人が設定上げてくれたらそれ使えていいなーという目論み。 extension 上で動く以上かなりのことができちゃうので、他人の設定を使う場合は気をつけてください。たぶんそんなにユーザいないと思われるのでまぁきっと大丈夫。あと XSS とかあったらごめんなさい。正直 XSS free なコードって書ける気がしない。

keymap は下記のものを使わせていただきました。

http://d.hatena.ne.jp/Griever/20090407/1239108167

ライセンスは New BSD とかで。 UI 直してくれたり便利なキー設定をアップロードしてくださると嬉しいです。

TODO:

  • local storage が実装されたらすみやかに cookie をやめる
  • hint a hint が欲しい
  • clipboard は flash 経由とかでアクセスできるんだよねたぶん
  • vimperator の適当に次のページに行ったり前のページに戻るアレ
  • keymap は linux とかだと明らかに一致してないなー

planner.html

なんか timezone をまたいで行動する時に、結構困るのが時差で何が何やらわからんくなりがちなことです。例えば日本時間19時まで用事があるんだけどほげほげ時の TopCoder SRM には間に合うのだろうか…とか、まぁそういうヤツ。毎度毎度 timezone 変換を自力でやってると結構計算間違えるし、飛行機とかだと出発は日本時間で到着は現地時間で与えられたりして結構混乱します。

というような時にどっちか入力したらもう一方が出るようなものがあると便利かなぁと書いてみました。

http://shinh.skr.jp/dat_dir/planner.html#tz0=9&tz1=0&time0_0=&time1_0=&plan_0=

書いた予定は URL に勝手に保存されていくので、 URL をコピーすれば予定の保存完了です。例えば以下のように手軽に保存できます(予定は適当なもので実際のものじゃないです)

http://shinh.skr.jp/dat_dir/planner.html#tz0=9&tz1=-8&time0_0=2009-11-11%2011%3A15%3A00&time1_0=2009-11-10%2018%3A15%3A00&plan_0=Departure&time0_1=2009-11-12%2001%3A00%3A00&time1_1=2009-11-11%2008%3A00%3A00&plan_1=Arrival&time0_2=2009-11-12%2008%3A00%3A00&time1_2=2009-11-11%2015%3A00%3A00&plan_2=%u306A%u306B%u304B%u304C%u306F%u3058%u307E%u308B&time0_3=2009-11-12%2012%3A00%3A00&time1_3=2009-11-11%2019%3A00%3A00&plan_3=%u306A%u306B%u304B%u304C%u304A%u308F%u308B&time0_4=&time1_4=&plan_4=

あとは timezone を3つ以上指定したい時があるかなーと思うのですが、まぁ自分がそういう状況になるまではいいかと TODO です。なんか要望とかあればコメントしていただければなんかするかもです。

URL の # の後に情報を保存する方法があることはいくらか前に教えてもらったことがあったのですが、最近 plexode というサイトを教えてもらって、その便利さに感動したのでちょっとマネしてみたのでした。

HTML一個なので適当にダウンロードしておけばローカルでも動きます。ライセンスは修正 BSD ということでどうぞ。

sdlboot

随分前に作った sdlboot なんですが、一応配布場所みたいなのを作っておきました。

http://shinh.skr.jp/osxbin/sdlboot.html

今のところたしかチェックしたということで覚えているのは、 Ruby, Mono, D, Ypsilon なのだけど、他にもあったような…

もし他の言語でも動いたよみたいなのがあれば教えてください。

む、 Gauche + c-wrapper + SDL は自前でなんかこういうことやってるんだな。

En Google Chrome extension

そろそろマジメにサブブラウザを Chrome にしようと思ったので、 En GoogleChrome extension 版を作りました。 user script でも動くんだけど、 extension の方がワンクリックでインストールできてラクなので。

http://shinh.skr.jp/chrome/engoogle.crx

3.0 系、つまり dev-channel の Chrome を --enable-extensions オプションつきで起動して、上記 URL をクリックして OK と押せばインストールできるかと思います。ソースコードはこのへん。

http://shinh.skr.jp/chrome/engoogle.tgz

ついでにキーボードで変更できるようになっていて欲しかったので、キーコンフィグとかもつけておきました。インストールしたら左下に現われる EG とか書いてあるボタンをクリックして下さい。

なんかリリースされてる Linux chrome は extension 動かないぽかったです。 MacOSXTiger では動かんと言われました。

キーコンフィグの保存の部分が多少 hacky なので GM_getValue と GM_setValue がサポートされた(つまり local storage が実装された)暁にはそっちに変えようと思います。現状では設定の画面で cookie に保存しておいて、右下のボタン出してる html と js が extension の通信を使って設定を拾ってきてます。

colordiff.py

colordiff がイマイチだという niha さんの話を見て、rietveld みたいな感じで色つけてくれる diff 欲しいよねえ的なことを書きました。そしたらなんか、突然ふってわいた記憶によると、微妙に書きかけた記憶があるなぁ…と思い、作業用ディレクトリを見たら colordiff というディレクトリがあって、完成しかけみたいな状態で放置プレイされてました。

というわけで置いておきます。

http://shinh.skr.jp/koneta/#colordiff

適当にパス通ったとこに置けば、

diff -u hoge fuga | colordiff.py

とかでいいはずです。スクリーンショット:

なんか微妙に色のつけかたがダメな部分があるけど、まぁ実用上問題はないんじゃないかな…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h