Javascriptを最適化したかったら読む本

ハイパフォーマンスJavaScriptはjavascriptの速度を上げてユーザービリティーを改善したい時に役立つ本。

ProductName ハイパフォーマンスJavaScript
Nicholas C. Zakas
オライリージャパン / 2940円 ( 2011-03-20 )


Javascriptで綺麗なコードを書きたいならJavaScriptパターンのほうが良いかも。

  • [[Scope]]というプロパティはEcma-262で定義されている
  • クロージャはそうでない関数と比較してメモリのオーバーヘッドが大きくなる
  • スタイルを変更している間はスタイル情報を取得しないほうがいい
  • for-inループはプロトタイプ上の検索処理が発生するので遅い
  • Duff's Deviceのjavascript実装
  • 3つ以上の不連続な値を条件とする場合はswitch文のほうがif文より速くなる
  • Javascriptの最小化(YUI Compressor)
  • プロファイラをうまく使おう

osxでHadoopのNameNodeが起動しない

macbookにHadoopを入れたのだけどきちんと起動してない。jpsで見てみるとNameNodeが起動していないことが原因のようだった。

ログを見てみると、設定ファイルに記述したlocalhostじゃなくてマシン名+".local"(hostnameで表示される文字列)で立ち上げようとしてた。理由は良くわからんがとりあえず設定ファイルをこちらの名前で書き直す。

さらに、パスワードなしsshアクセスできるように.ssh/authorized_keysに追加しておく。

ProductName Hadoop
Tom White
オライリージャパン / 4830円 ( 2010-01-25 )



これでうまくうごいたので、早速HadoopStreamingをやってみる。サンプルコードはHadoop Streaming - naoyaのはてなダイアリーから。

$ hadoop jar hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-streaming.jar \
-input log.txt -output log.out -mapper map.pl -reducer reduce.pl
...
11/04/21 05:21:24 INFO streaming.StreamJob:  map 100%  reduce 0%
11/04/21 05:21:33 INFO streaming.StreamJob:  map 100%  reduce 100%
11/04/21 05:21:36 INFO streaming.StreamJob: Job complete: job_201104202054_0004
11/04/21 05:21:36 INFO streaming.StreamJob: Output: log.out

OKっぽいのでアウトプットを見てみる

$ hadoop fs -cat log.out/part-00000
403 3
304 3786
206 2
400 11
313 14
200 49190
302 48
301 223
404 2476

あとは擬似分散環境じゃなくてちゃんとした分散環境を構築すればいいですね。

バーチャルで化合物つくると組み合わせ爆発おこしてその先のハンドリングに難儀するのでchemoinformaticsでもMapReduceうまく使えないかなと思っているわけです。

参考

種取りしたゴーヤの種が紛失して失意のうちに白ゴーヤにチェンジしようとしたら

スーパーの袋に無造作に投げ込んであったので多分知らずに捨ててしまったんだろう。

今年はちょっと違ったゴーヤでも探してみたところ、カックロールという苗をみつけた。

うーん、そそられるがちょっと高い。

結局白ゴーヤを種から育ててみるか

家族の合意を取ろうとしたら、オーソドックスなアバシも植えるべしとのこと。

うちのネットだとMAXで3苗だから二種類を種から育てるのは難しい。

結局エンチョーかカインズで苗を探すことにした。

昨日、偵察に行ったときにはナスとトマトの苗が大量に入荷してたので、ゴーヤもそろそろかなぁ。

食料自給は国家安全保障の問題なんだろうけど、だからといって補助金を肯定していいのか?という話

世界の農産物輸出は「隠れた」輸出補助金に満ち満ちている。

ブッシュ前大統領が発言したように

「食料自給は国家安全保障の問題であり、それが常に保証されているアメリカはありがたい」

というように「食料による他国のコントロール」という国家政策的な側面や経済学的な観点から食料について考えていく

ProductName 食料を読む(日経文庫)
鈴木 宣弘
日本経済新聞出版社 / 903円 ( 2010-05-15 )


筆者は、こういった点を踏まえて日本の補助金制度を肯定するような投げかけで閉めているが?EUの高くても自国の野菜を買う例にあったようにそういうマインドを醸成するほうがいいんじゃないかなぁ。個人的には弱者救済のための農業補助金は反対だなぁ。だったらベーシック・インカムでいいじゃんと思うね。

食料自給率の定義からいうと、家畜の飼料が分母に乗ってきているので畜産やめると食料自給率があがるというあたりは考慮すべきというか、食料自給率ベースの議論というのは意味ないと思っている。他国に食料コントロールされないという自衛的な面から考えておけばいいんじゃないのかなぁ。

  • そもそもバイオ燃料振興策は、穀物の過剰在庫の削減策
  • 耕作放棄地が増えるのはそこで生産しても採算がとれないから
  • 輸出市場間におけるダンピングは存在する(オーストラリア)
  • 農業の6次産業化

Drum&Bassarena: Evolution

人気曲のコンピ

ProductName Drum&Bassarena: Evolution
Various Artists
Pias / 2941円 ( 2011-04-04 )


持っている曲が結構かぶっているのだけど、Let Me Be Your FantasyのJ Majik & Wickaman RMXが欲しくて買ってしまった

コンパクトシティをぶった切る

富士市民だと4章読むのが面白いかな。

コンパクトシティをぶった切っているが、まぁそうだよなぁとおもった。特に富士市はコンパクトシティ構想が持ち上がっている割には、公共交通網が貧弱なので実際やったら失敗すんじゃないのって思う。

脱クルマとセットか、まずは公共交通網の整備が先だろうなぁ。一家に一台持てるかどうかっていうくらいの高い税金を自家用車にかけちゃって、その分を公共交通網の補助にまわすとかどうかな。

  • 同じ現象であっても市民目線には月に一度しかヒトが集まらないと映るが、提供者目線だと月に一度はヒトの集まる小さな成功と映る
  • 客も売り手も少すぎて困っている商店街はそもそも必要なのか?
  • 人優先空間
  • スローフードの本質は大切な人との交流
  • 「公言しやすい理想願望」と「現状不満や公言しづらい悩み」
  • ヒトより自動車が優先される都市は必ず衰退する
  • コンパクトシティが実は、居住者にとっては魅力のない施策であることを土建工学者が自らのライフスタイルで示している
  • 計画的に開発された土地というのは結局不自然な生活を強いられるものである

参考サイト

なぜ、うちのチャーハンはパラッとしないのか?

お料理Hacks

  • 玉ねぎを電子レンジで一分加熱して水分を飛ばしておけばあめ色にしやすい
  • 栗も上下に穴をあけて(10個あたり)電子レンジで一分
  • ナスを瓶で叩いてから炒めると火が通りやすい
  • キャベツを芯と並行に刻むと炒めた際に水っぽくなりにくい
  • ジャガイモを30分くらい水にさらすと澱粉が抜けてカリッとしたポテトフライになる

「「振動力発電」のすべて」を読んだ

後半は起業の話になっていてタイトルと関係ない。首都高速の試算が何度か出てくるが、大胆な仮定がどんだけ置かれているのかよくわからないので、試算の信ぴょう性が不明。サイエンティフィックに読んでいると非常に混乱する。他の発電(風力とか太陽光)との発電効率の比較や設置コストの比較を数字ベースでやってないので、フラストレーションがたまった。

ProductName 「振動力発電」のすべて
速水 浩平
日本実業出版社 / 1470円 ( 2008-12-11 )


錆止めのために微量の電気を流すというウンチクは面白かった。

少し発電効率まわりを考察しているサイトを探してみたがあんまりなかった。

macbookにHadoopを入れた

オライリーの本みながら0.21.0使うとはまるので、0.20.2を入れる。

conf/hadoop-env.shのJAVA_HOMEを設定

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

動作確認でバージョンを表示させてみる。

$ hadoop-0.20.2/bin/hadoop version
Hadoop 0.20.2
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707
Compiled by chrisdo on Fri Feb 19 08:07:34 UTC 2010

ちゃんと動いてれば.bashrcに追加

export HADOOP_INSTALL=/Users/kzfm/hadoop-0.20.2
export PATH=$HADOOP_INSTALL/bin:$PATH

あとはHadoop本の通りに擬似分散モードで動かす。ちなみにmacbookでsshアクセスできるようにするには「システム環境設定」→「共有」→「リモートログイン」で。

ProductName Hadoop
Tom White
オライリージャパン / 4830円 ( 2010-01-25 )


hdfsを起動させるときには

$ hadoop namenode -format
$ start-dfs.sh
$ start-mapred.sh

hdfsを停止させるときには

$ stop-mapred.sh 
$ stop-dfs.sh

Perl CPANモジュールガイドはPerl界のミシュランガイド

これを読めばPerlグルメまちがいなしですね。Perlの経験がある程度あれば、モジュールを組み合わせて素敵なコードを紡ぎ出すという新たな楽しみを見いだせるようになるでしょう。

ProductName Perl CPANモジュールガイド
冨田尚樹
ワークスコーポレーション / 2730円 ( 2011-04-08 )


個人的には表紙がCPANの世界観をとてもよく表現していて素敵だと思った。

一通り読んでみて、興味深かったモジュール群。

最近コマンドラインのツールを作ることが多いのでそういう作業を楽にするようなモジュールに偏っているかも。

モジュールガイドなので継続的にアップデートされると嬉しいですが、ここらへんは書籍の限界ですかね。

perl使いは是非手元に置いておくといいと思います。


せっかくなのでこの前書いたファイル監視スクリプトFilesys::Notify::Simpleを使って書きなおしてみた。

use Filesys::Notify::Simple;

my $watcher = Filesys::Notify::Simple->new(['.']);

while(1) {
  $watcher->wait(sub {
           for my $event (@_) {
             next unless $event->{path} =~ /\/([\w\d]+)\.rst$/;
             print "### ", $event->{path}, " ###\n";
             system("make html");
           }
         });
}

余談だが、Mac::FSEventsを内部的に使ったらmacbookではクラッシュしたのでpm-uninstallでアンインストールした。

簡単にuninstallできたり、更新できたりとcpanmのお手軽さは素晴らしいですね。