2008年8月19日 (火)

polipo の offline機能

Drikinさんの dolipoの解説記事 から参照されて、ちょっと access数が高くなっているうちに書いておきます。

polipoのちょっと便利な機能の一つにoffline browsing 機能があります。 networkが繋がってない状態でも、cacheに乗ってる情報を 返してある程度は browsing できるようにする機能です。

これは、たまに移動中とかネットが参照できない環境で、 documentとかを見たりするのに役に立ちます。 netで会場の地図が乗ってたけどわかんないとか、 飛行機の中で前見た技術資料が見たいとか。 そういうときに結構なヒット率を示してくれて役にたちます。

もちろん、後で offline環境で読もうと、 読むべきページを触りまくって prefetchするって使い方もできるはず (あまり大量だと cache outする可能性もあるけど)。

これを有効にするには、Polipo (or dolipo) を既に立ち上げてる場合は Polipoの config画面 から proxyOffline を Trueに設定すれば 利用できます。どうやら再起動するまで有効。

ただ、Safariで使うときに問題があります。 Proxyの設定が Portごとになっていて、本当に offline時 (全ての portが使えないとき) には Proxyの設定が効かない、 つまり Polipoにもつなぎにいってくれないみたい。 これ、何とかならないものでしょうか.. Safariの Proxy設定のデータモデルが悪いだけだと思うんだけど。

しかたがないので offline browsingのときだけ FireFoxを使ったりしてます。

ちなみに、この offline browsing機能、 WWWOFFLE 由来でしょう。 Polipo作者も長年利用してたらしいので。 自分も昔、電車の中で PCを使うことが多かった頃は愛用してました。

| | コメント (0) | トラックバック (0)

2008年8月 7日 (木)

class-dumpのわな

tar.bz2を持ってきて:
[22:35]marble:~/work<110> tar jxf ~/Desktop/class-dump-3.1.2.tar.bz2 
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Error exit delayed from previous errors
あれ?
[22:36]marble:~/work<112> file ~/Desktop/class-dump-3.1.2.tar.bz2
/Users/takesi/Desktop/class-dump-3.1.2.tar.bz2: bzip2 compressed data, block size = 900k
bzip2だよなあ.. とりあえず bunzipして中身を見るか:
[22:36]marble:~/work<114> bunzip2 ~/Desktop/class-dump-3.1.2.tar.bz2
[22:36]marble:~/work<115> file ~/Desktop/class-dump-3.1.2.tar 
/Users/takesi/Desktop/class-dump-3.1.2.tar: gzip compressed data, from Unix, max compression
げ、そういう落ちですか! それなら tar.gz.bz2 ってファイル名にしろよ!
[22:36]marble:~/work<116> tar xzf ~/Desktop/class-dump-3.1.2.tar 
[22:41]marble:~/work<118> lf class-dump-3.1.2/
class-dump-3.1.2:
README      class-dump* src/        
展開できました。自己適用してみると:
[22:42]marble:~/work<122> class-dump-3.1.2/class-dump class-dump-3.1.2/class-dump 
/*
 *     Generated by class-dump 3.1.2.
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard.
 */

struct _NSZone;

struct __CFUUID;
       :
なんかよく分からんけど覗けてます。へー。

| | コメント (0) | トラックバック (0)

2008年8月 5日 (火)

iZisyo更新中

好評をごくごく一部の方にいただいている iZisyoですが、 いろいろと改造 (および bugfix) してたりします。
  • 表示をまともにした (単語の意味ごとに改行し、 用例はちゃんと italicにした)
  • 一部の単語の発音を聞けるようにした。 単語を覚えるときは 発音も一緒に覚えないともったいないので。 WordVoxと同じフリーの音源を使っています。 たまに単語にスピーカーアイコンが出てくるのでそれをタップしてください。
  • 品詞を %n とかの手抜き表示じゃなくて、 italicで表示するようにした。 これをバグだと思ってた人が何人かいたので。
そんな所です。

あとの改造予定は:

  • 本文中の単語を tapしてさらに意味を引ける。
  • "-" とか記号が入った単語をまともに引ける。 記号を無視して alphabetを入力するようにしたいけど、 たまにある数字入りの単語はどうしよう。 流石にこれを無視するのは usability的にどうかねえ..
てなところです。

ちなみに ソース も公開して見たので、よろしければどうぞ。

| | コメント (0) | トラックバック (0)

2008年7月29日 (火)

今更 iPhoneで辞書を引けるよう iZisyoを作った

iZisyoなるものを 作りました。 iPhoneむけ英英辞典のなりそこねみたいな物です。 iPhone SDKもある時代にいまさら Web Applicationですかって感も ありますが、 NDAが嫌いなんだからしょうがないって言い訳しときます。

デザインがダサいのは仕様です。 使い方とかはまあわかると思いますが、 分からなかったらコメントかメールでもください。

データはWordNet 3.0 を使ってます。 英語辞典としては力不足だけど、類義語とかがすぐでてくる (というか overviewから外す方法が分からない) ので、 英語を学習する意欲のある人にはいいんじゃないんでしょうか。

WordNetは他にも反意語とか頻度とかいろいろデータがあるので、 そういうのも表示できるとうれしい気もします。 ここら辺は反響があったりしたらやります。 なくても自己満足でやるかもしれません。

では。

| | コメント (0) | トラックバック (1)

2008年7月26日 (土)

JavaScriptの with文で prototype.jsの bindを省けたが

ちょこっと AJAXっぽいものを書いて遊んでいる。 なおきさんのjKeyboardを元にいじってるんだけど。

そのなかに bind methodの実装がある。 prototype.jsから持ってきた物らしいんだけど気持ち悪い:

Function.prototype.bind = function() {
  var __method = this, args = $A(arguments), object = args.shift();
  return function() {
    return __method.apply(object, args.concat($A(arguments)));
  }
}
JavaScriptの thisは呼び出されるときまでなんになるか決まらないので、それを bindして closureのようにしてしまうためのものだ。

例えば、今の thisの barを 100ms 後に変更したくて次のように書いてはいけない:

   setTimeout(function() {this.bar = "foo"}, 100);
なぜなら function のなかの this 擬変数は、 今の contextの thisとは別物だから。 そのとき thisが何を指してるなんて不定なのだ。shit!

でも、bind methodを使うとそれが解決できる。 下のように書けば、無名関数を実行する時の thisが今の thisを同じ objectであることを保証できる:

   setTimeout((function() {this.bar = "foo"}).bind(this), 100);
でもそもそも、関数を渡すようなインタフェースになっているというのが OOPLとしてだめじゃん。 ちゃんとしたインタフェースを持った objectを渡すのが OOPLとしての王道だろ。 それを関数を渡すようなことしてるから、schemeの真似したくなって、 でも thisは static scopeに収まらないものだからこんな汚い事してる。

まったく、JavaScriptは腐った言語だ。

でも with文を使ってこれを回避できることに気がついた。

   with(this) {
     setTimeout((function() {bar = "foo"}), 100);
   }
こう書けば、 今ある thisが scope object (って呼び方でいいんだっけ) に なって、barはその member (さらにいえば associationの要素) として 解決されることになる。

static scopeのはずなのに参照すべき environmentを動的に with文で 変えてしまうというかなり変態な技だ。 こんなのができるのは JavaScriptぐらいなのではないか。

ちなみに Safari 3.0 と Firefox 3.0 で動くの確認しました。

まあ、でも geekの多い JavaScript界隈ではこんなのとうに知られているに 違いない。 それでも使われてないのは理由があるのだろうか?

とおもったらwith文は非推奨かもという議論を見つけた。 まあ、スコープを柔軟過ぎるぐらいに変更できる機能だから、 最適化が難しくなるのもむべなるかな。 まあ、とりあえず bind よりは遅くないだろうから使っておこう。

追記: ぐぐったら 既知の技法のようでした。車輪の再発見をしてしまった。

| | コメント (0) | トラックバック (0)

2008年4月 9日 (水)

Twitterで開催中のエクトリーム聖火リレーをヲチする

オリンピックの新種目、 エクストリーム聖火リレーが San Franciscoにやってくるらしい。 今日 4/9 (Wed), PDT 13:00 に始まるとか。せっかくなので見てみたいのだが、さすがに仕事でいけない。

で、twitterで sftorchさんを follow して見ています。

sftorchさんは twitterの aggregaterというか。 いろんなスネーク実況担当者が sftorchさんに messageを送るとそれをみんなに届けてくれる.. という仕組みではないみたい。 sftorchさんが followしてるひとの statusを broadcastする しくみなのか? まあ、よく分かりませんが、 San Franciscoの現状が 伝わってきて楽しいです。

PDT 11時現在だと:

rockbandit: plane overhead with message: Tibet will always be a part of China (チベットは中国の一部でありつづける、というメッセージつき飛行機が飛んでる)
joshwolf: Trains are all fucked (電車はもうだめだ)
rockbandit: police on jetskis, lots of noise: whistles, drums, horns, chanting (ポリがジェットスキーにていて、街は騒音だらけ。笛、ドラム、警笛、シュプレヒコール。)

実況写真みたいなあ、とつぶやいたら 親切にも Flickrに あげたよ と。 おれのつぶやき見えてるはずないんだけどなあ。ちなみにhttp://flickr.com/photos/rockbanditにあります。

ustreamとかでもやってるのかもしれないけど、仕事中に眺めるには logをたどれる文字情報の方がいいです。 写真も同時に組み合わせて見られるといいけど、それはむずかしいかな。

いずれにしても仕事中も色々楽しめそうです。 っていうか仕事しろ >> 俺

| | コメント (0) | トラックバック (0)

2008年4月 3日 (木)

たしかに Amazon MP3のすごさを知らせるべき

たしかに、iTunes Storeなんか使う気がなくなります。 Amazon MP3は いいサービスだと思います。 感動して叫びたくなったんだけど、宮川さんが書いてたので、 便乗させてもらいます。

DRM Freeなのは、まだそんなに利益を享受してませんが、 かなり気もちいいものです。 それがいやでいままで iTunes Storeは避けてたし。

あと実は値段もやややすい。

例えば Nirvanaの In Uteroなんか、$6で買えるのです。 対して、iTunes Storeだと $10です。DRMつきでおまけに高い。 Jobsなんかに $4もお布施を払う気にはなれません

これで久々におれも音楽を買うようになりました。 宮川さんのように月に3、4枚も買ったりはしませんが。

あとは日本でサービスできるようになればいいですが.. iTunes Storeみたいに Gift Card買えば何とかなったりしないんですかね。

| | コメント (0) | トラックバック (0)

2008年3月13日 (木)

Safariの Scrollbarが表示されないバグ

Safari 3.0.4 で、scrollbar が表示されなくなることが あって困ってた。 こうなると、矢印キーやスペースバーでもスクロールしない。 Trackpadの double touchではできるんだけど。

で、再現法が分かりました。

  1. History Menuより"Show All History"を選ぶ
  2. その中から適当なページを選ぶ
  3. スクロールバーがありません
  4. リンクをたどってもバックしてもないまま
これを見ている皆様のところでは再現しますでしょうか?

黙ってソースを出せよ、ハゲ > Apple (いや、多分俺じゃ直せないけど)

と、おもったけど GreaseKit か oAutoPagerizeの バグである可能性もあるなあ。 oAutoPagerizeを offにしても起こるみたいなんで、 多分関係ないとはおもうけど。

さて、Appleの bugの投稿フォームとかどこなんだろ。 調べてみむ。

| | コメント (0) | トラックバック (0)

2008年3月 8日 (土)

iPhoneの勝手アプリの楽しさはさすがだ.

結局脱獄させました。 SDKつかっても実機で動くものはすぐには作れないということなので。 やはり、自分の手のひらの上で動く快感には勝てないっす。

ZiPhone 2.5で あっさりとできました。

Installer.app も入っていて、すぐにいろいろ突っ込めるし。 とりあえず Back Gammonと weDict、神田さんおすすめの Cobuild English dictionaryをいれた。

Cobuildは、download中に sleepしちゃったりして ちょっとおかしなことになったけど、それ以外はサクサクと。 簡単なもんだ。

勝手アプリでありながらこれだけ使い勝手の良いものを 作れちゃう iPhoneはすごいなあ。

今まで、この環境を入れてなかった自分はバカだと思った。 脱獄してない iPhoneなんて、iPhoneの進化の 1%ぐらいしか 使ってなかったんじゃないだろうか。

つぎは sshあたりいれてみよう。使い物になるか分からんけど。

| | コメント (0) | トラックバック (0)

2008年3月 6日 (木)

iPhone SDK発表?

Engadgetの press conferenceの liveを 見ていたら、ついに iPhone SDKが出たみたい。 Appleの Developer connectionにも iPhone Developer Programのページができています。

iPhone SDKはタダで配ってるようです。 これでプログラムを作ってタダで配れるんでしょうか? 署名とかしてもらうために Developer Programに入る必要ないのかしらん。 ちなみに Developer Programは、今のところ 限られた数のアメリカの developrしか入れないようです。 アメリカに住んでてよかったとちょっと思いました。

しかし、SDKを Downloadしようとしても serverがアップアップなのか、 login画面から先にちっとも進みません。 ということで、そっちは Nさんに任せて、 Engadgetの liveから読み取れることでもまとめます。

  • iPhoneのソフトウェアは 4層、 Core OS, Core serviecs, media, Cocoa Touch からなる
  • Xcode、interface builder、remote debugger、iphone simulatorが 開発環境として提供される
  • いろんな会社がもう softwereを作っている。 SEGAは Super Monkey Ballを移植したらしい。
  • iPhone firmware 2.0で AppStoreが追加される ここを経由して自作 applicationの配布ができる。
  • 自作 applicationの updateも自動的に伝わるらしい。
  • revenue shareは 70%が developer、30%が Apple。
  • free softwareはタダで配れる!
  • β version は今日配られる (dagezi: iphone firmwareも?)
  • 2.0がでるのは数ヶ月後。
うーん、いろいろ書いたものの SDKを入手できてないので良く分かりません。 これから再挑戦してみます。 分かったら updateするかも。
2008-03-06 (Thu) 14:43:35 追記: engdget jpの公式のページもありますね。 さらに Appleから 発表の Stream Video も公開されてる。 こんなのでコンテンツになるのは Appleならではだなあ。

| | コメント (0) | トラックバック (0)

«Foneraの WLAN access pointが怪しい