書籍「コードコンプリート 第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()すればよいらしい。ほう。

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

Mac OSX でDockerしたい(ただしParallelsに限る)

[EDIT 2014/5/11] うひゃ、この内容もう古いです...。Vagrant 1.6ではMac OSXから、もうちょっと簡単にDocker使えます。ここ参照 Docker-Based Development Environments

[EDIT 2016/2/11] 今はMacでDockerはDocker Machine | Docker Documentationを使うのが便利そうです。 GitHub - Parallels/docker-machine: Machine management for a container-centric world

Vagrant+Palallelsはこちらを参照でどうぞ。Installing Vagrant - Vagrant Parallels Provider Documentation

[EDIT 2018/2/10]
MacでDockerなら素直にDocker for Macですね。


[注)この内容は古いので上を参照ください]

Mac OSXでDocker使いたいときは、何らかのVMLinuxを動かして、その上でさらにDockerを使うことになります。 自分の場合VMとしてParallelsを使ってるので、それを使いたい(すでに有料のVMを利用してるのに、わざわざほかのVMを使うのは悲しい)。 あとParallels VMの実行はVagrantを使いたい。 んで、Dockerを動かすのが目的なので、Parallels VM上で動かすOSはboot2dockerでいい。

ということになる。

VagrantとParallelsの組み合わせで使いたいときここ参照

MacVagrantはインストール済みなら、あとはこんな感じ。

VagrantParallels用のプラグインを入れる。

# vagrant plugin install vagrant-parallels

作業用に任意のディレクトリを作ってそこにcdして、

# vagrant init yungsang/boot2docker
# vagrant up --provider=parallels
# vagrant ssh

できた。
便利な時代ですなあ。

Vagrant+Parallelsの利用は一部制限もあるのでこちらも参照(2014/5/3現在)。