Node.jsの フレームワーク ExpressJSが4.0になって、結構変わった。

うう、いつのまに結構変わってますな。自分のアプリもloggerを使っていたのですが、モジュールmorganに分割されたので、使うにはpackage.jsonにmorganを追加と、コードにrequire('morgan')してごにょごにょ...。
こちらご覧くださいませ。わかりやすく書いてあります。
ExpressJS 4.0: New Features and Upgrading from 3.0 ― Scotch
まあ、モジュール化して切り出して、それらを使うときのコードもきれいに書ける方向のようです。
でも自分では、staticなhtml/jsをHTTPサーバとしてホストするのにしかExpressJS使ってないのですが。

書籍「コードコンプリート 第2版」がKindle本になってたので大人買いした

書籍「コードコンプリート 第2版」(上)(下)がKindle本になってた。しかもちゃんとリフローできるぞ。小さいKindle Paperwhiteでも読みやすい。
つい大人買いした。
2005年(初版は1994年!!)の本など、ソフトウエアの世界では古典すぎといえるわけだが、この本には、今でも色あせてない内容がある。
が、10年も前に紙の本を買って既に持っているのに、もう一度Kindleで全部読み直すことは無い気がしてならない。
Kindleのこやしになるだろう。うん、これぞ大人買いだ。 

Code Complete 第2版 上 完全なプログラミングを目指して
Code Complete 第2版 下 完全なプログラミングを目指して

このフォント プログラミングにいいらしい Ricty

Mac環境のエディタは、もうMac主になって何年もたつのに、いまだふらふらしている。最近はATOMを試している。

で、エディタと直接関係ないけど、コードを書くには最近Rictyフォントが評判なようだ。 MacならRictyフォントを入れるBrewもあって、ああ感謝。BrewRictyフォントのインストールはこちら

今さら知ったこと Rubyで文字列を改行で分割して改行コードも除く each_line.map(&:chomp)

まずはこちらを

"文字列を\n改行で\n分割".each_line.map(&:chomp)

なぬ?map(&:chomp)と書けるのか。自分のRuby力がへなちょこでトホホ。
意味の理解はこちら参考にさせていただきました。

すっかり存在を忘れていたこと CancellationToken.Register(Action)

TaskをキャンセルするのにつかうCancellationTokenですが、キャンセルされたとき呼ばれるdelegateを登録しておくことができるんですよね。そういえば.NETにTaskが追加された頃になんかで見たことあったかもしれないけど忘れていました。

var cts = new CancellationTokenSource();
var token = cts.Token;
token.Register(() => Console.WriteLine("キャンセルされたよ"));

cts.Cancel();

んで、CancellationToken.Register(Action)は戻りCancellationTokenRegistrationってのがある。なんじゃこれ。 どうやらRegister()したのをUnregister的なことしたいといきCancellationTokenRegistration.Dispose()すればよいらしい。ほう。

使うときは読み直そう。マネージ スレッドのキャンセル