つれづれ日記 2015年5月

予定

毎日


2015年5月14日 (木曜日)

16:48:07 # Life Nodejsのpromise と for 文。 Promiseを書いているとFor文のループでPromiseをつなげてみようとか思う時がある。 しかし、for 文の変数のインスタンスはfunctionで一つなので、クロージャー実行時にみえるiの値はfor文が終わった時の値だったりする。 つまり

	  for (var i = 0; i < 10; ++i) { promise = promise.then(function() { dosomething(i); }); }
	

は以下と同じなのだ。

	  for (var i = 0; i < 10; ++i) { promise = promise.then(function() { dosomething(10); }); }
	

Javascriptはfunction() {} で変数のスコープが切れるという変な言語で、{}は単なる飾りだったりする。 だとするとmapのようにループの各回でfunction()を呼び出すという仕組みのほうがまだ直感的なのかもしれない。 ほんとうかなぁ。

	  [0,1,2,3,4,5,6,7,8,9].map(function(i) {promise = promise.then(function() { dosomething(i); });});
	  for (var i = 0; i < 10; ++i) { function(i) { promise = promise.then(function() { dosomething(i); }); }(i); }
	

2015年5月13日 (水曜日)

16:55:45 # Life 日記システムの一部のコードをElserv から Nodejsに移行。 Elispで書いていたコードをNodejsに引っ越してみた。 ずっとElserv使い続けるのもなぁと思っていてメンテナンスできない気がしていたのでNodejsにした。シンプルにかけて満足。生のNodejsを使っていてPromise以外のNPM使っていないので行数はむしろ大きくなった。 しかしvarが関数スコープというのにはまった。関数の中のどこでvarが宣言されていても関数の一番上で宣言されているかのような挙動になるんだぜ。誰得。

17:33:10 # Life AndroidのRenderScriptについて調べてたんだけどRenderScriptってCっぽいコードをコンパイルしてJavaから便利に使えるというフレームワークだと思ってたんだけど、Intrinsicsという手作業で最適化されたコードが使えるらしい。ドキュメント。ほとんどはIntrinsicsを使えば良い気がする。最初の印象と違った。

2015年5月10日 (日曜日)

17:28:14 # Life 過去12年分の健康診断の結果が出てきたので体重情報をCSVにしてRでグラフにしてみた。ずっと増加しているのはまだしも傾きが増加している点があってそれがどうも子供が生まれた時っぽい。年齢も代謝が落ちるといわれている年齢にかかっているところであり要因はどちらなのかよくわからず。 年齢別の男性の平均体重と標準偏差に対してノーマライズすればいいのかな。

2015年5月8日 (金曜日)

07:31:30 # Life Androidでaudio タグが動かないなぁとおもって調べていたらどうやら制限されているっぽい。 https://code.google.com/p/chromium/issues/detail?id=178297 時間を返せー。

2015年5月7日 (木曜日)

09:29:57 # Life 久しぶりにバックアップ用ディスクのセットアップ。 2TBのディスクにPVを作成、2TBのVGを作成、とりあえず1TBのLVを作成してExt4でフォーマットしてFsckのパラメータをチューニング、と。 USB3接続で結構な速度でるし。

2015年5月6日 (水曜日)

09:30:07 # Life メールサーバの設定。 たまにroot@「適当なドメイン名」あてのメールを送信したログを発見してぞっとする。 えっと、これなんで送信されてしまったんだっけ・・・。


Junichi Uekawa