« 2011年9月 | トップページ | 2011年11月 »

2011年10月19日 (水)

[Ruby] Ruby version 2.0.0

trunk が 2.0.0dev になった。


$ ruby -v
ruby 2.0.0dev (2011-10-19 trunk 33483) [i686-linux]

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

2011年10月17日 (月)

[本] SFあり、謀略あり、冒険あり、サスペンスありの骨太のジャンルミックス小説を読んだ。

ジェノサイド (高野和明)


ジャンルミックス小説とでも言えばいいのだろうか。SFあり、謀略あり、冒険あり、サスペンスありの骨太の小説。


小説の中盤までで、SF的な最大の謎が明かされてしまう。えっ、もうここでその謎を明かしてしまうのか、中身濃いなあと思って、圧倒されてしまったのだが、そこから先がちょっと物足りなかった。


その後は、主人公達が、絶対絶命の窮地からどのように脱出するかが描かれる。圧倒的な戦力の差がありながら、いかに敵の攻撃を避けて安全な場所まで脱出するか、そこが知恵の見せどころなんだけど、そこで失速してしまう。なるほど上手い手を考えたなとこちらが感心できるような作戦ではなかったことが残念だった。


作戦にはSF的能力が使われていて、感心する前に、これだったら、ある意味、何でもアリになってしまうんじゃないかと思ってしまった。やっぱりSFは自分の肌には合わないのかなあ。


読後感も悪くないし、面白いことは面白かったんだけど、評判が高くて期待しすぎた分、辛めの評価になってしまった。

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

2011年10月15日 (土)

[本] 特撮ラブコメの王道を突き進むSF小説を一気読みした

MM9 -invasion- (山本弘)


夜、寝る前に読み始めてしまったのが運のツキ。続きが気になって仕方なく、寝るのを惜しんで一気読みしてしまった。
SFの王道かどうかわからないけど、間違いなく特撮ラブコメ(そんなジャンルがあるのかどうか知らないが)の王道を突き進んでいるSF小説。


同じ著者の書いた『MM9』の続編。(実は、前作を読んでいないので、よく知らないんだけど)前作は、連作短編形式のSFだったみたいだが、今回は長編SF小説。前回から数年後の世界っぽい。


舞台は、現代の日本なのだが、現実と違うのは怪獣が普通に現れる世界であるということ。そして、怪獣が出現することは、極秘事項でも何でもなく周知の事実であること。怪獣対策を専門とする組織が日本の政府の中にも存在していて、それが気象庁特異生物対策本部、通称「気特対」であること。


その「気特対」が保護している怪獣が少女の姿をしたヒメ。ヒメに憑依するオチャメな宇宙生命体。ヒメ(宇宙生命体)と唯一交信ができる人間の少年。突如現れる宇宙怪獣。怪獣を向かえ討つヒメ。


「気特対」とか、宇宙生命体の設定とか、怪獣の設定とかうまいこと考えられている。前半の少年とヒメ(宇宙生命体)との交流やちぐはぐな会話がベタベタのラブコメそのもので楽しいし、後半、子供の頃に見たあの特撮の王道を突き進む。面白い。


そしてこのエピローグ。続編が気になる。


多分、前作から読んだ方がシリーズ物としてより楽しめるんじゃないかと思う。恐らく本作の初っ端で前作の核心に触れるネタバレをしているんじゃないかと想像。

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

2011年10月 9日 (日)

[Ruby] Rails 3.1.1 で CoffeeScript から変換される JavaScript の結果を知りたくていろいろやってみた

Rails 3.1.1(3.1.0) では、CoffeeScript が使える。 ふと、CoffeeScript のファイルを編集中に、そのスクリプトがどんな JavaScript に変換されるのか知りたくなった。

Vim 使いの私は、てっとり早く vim-coffee-scriptCoffeeScript をインストールして、vim で

:CoffeeCompile

として確認してしまった。

でも、Rails 3.1.1(3.1.0) は、CoffeeScript 本体(というか coffee コマンド)を使ってコンパイルしてないんだよな。 そこで、Rails 3.1.1 を調べてみたところ、Ruby CoffeeScript というのが見つかった。これを使えばコンパイルできるみたいだ。

コンパイルだけする mycoffee を作って確認してみた。mycoffee コマンドは3行だけ。

$ cat mycoffee
#!/usr/local/bin/ruby
require 'coffee-script'
print CoffeeScript.compile File.read(ARGV.shift)

今回コンパイルしてみるCoffeeScriptの中身はこんなの。

$ cat depot/app/assets/javascripts/carts.js.coffee
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
#
$ ->
  if $('#cart tr').not('.total_line').length is 0
      $('#cart').css('display', 'none')

では、実行してみる。

$ ./mycoffee depot/app/assets/javascripts/carts.js.coffee
(function() {
  $(function() {
    if ($('#cart tr').not('.total_line').length === 0) {
      return $('#cart').css('display', 'none');
    }
  });
}).call(this);

CoffeeScript本家でもコンパイルしてみる。

$ coffee -p work/rails/depot/app/assets/javascripts/carts.js.coffee 
(function() {
 
  $(function() {
    if ($('#cart tr').not('.total_line').length === 0) {
      return $('#cart').css('display', 'none');
    }
  });
 
}).call(this);

ということで空行が入る以外は同じ。

ちなみに、Rails 3.1.1 のCoffeeScriptのバージョンは、

CoffeeScript.version 

で確認できる。 また、利用しているCoffeeScriptコンパイラのソースのパスは、

CoffeeScript::Source.path 

で確認できる。

ちなみに、CoffeeScriptコンパイラを指定したい場合は、COFFEESCRIPT_SOURCE_PATH 環境変数で CoffeeScriptコンパイラのソース(恐らくJavaScriptが前提だと思われる)のパスを指定すればいいっぽい(未確認)。

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

2011年10月 6日 (木)

[Soft] Ubuntu 10.04 に VirtualBox 4.1.4 をインストールした

VirtualBox を起動したら、新しいバージョンが出たよと言われたので、インストール。
しようとしたら、VirtualBox 4.0 と conflict しているよとエラーメッセージ。
ということで、VirtualBox 4.0をアンインストール。


$ sudo aptitude remove virtualbox-4.0

改めてVirtualBox 4.1.4をダウンロード。勝手にパッケージマネージャが立ち上がるのでそのままインストール。
おもむろにVirtualBoxを起動したら、USB 2.0 を無効にするか、extension pack をインストールしろと警告が出たので、
extension pack をダウンロード。
そのあと、extension pack をインストール。


$ virtualbox Oracle_VM_VirtualBox_Extension_Pack-4.1.4-74291.vbox-extpack

ということで、バージョンアップは終了。ゲスト OS の Windows7 が起動することを確認した。

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

2011年10月 5日 (水)

[Soft] CoffeeScript の本を読むためにCygwinにCoffeeScriptをインストールした。

ちょっとずつちびちびと読んでいたRubyベストプラクティスも読み終えたので、
次にちびちびと読む本を何にしようかと考えていたのだが、


Rails3.1から標準になったjQueryの入門書もこの前読んだということもあり、やはり、ここは、これまた、 Rails3.1で標準になったCoffeeScriptしかないだろうということで、ちびちびとCoffeeScriptを読むことにした。


この本では、処理系として、
Node.js
CoffeeScriptをインストールするように解説している。
Windows 環境では、Cygwinにインストールしろと書いてあるので、試してみた。


本に書いてある方法でダウンロードしたNode.jsのソースはコンパイルできなかった(私のCygwinの環境が悪いためかも知れない)ので、
本家のダウンロードのページ
から、node-v0.4.12.tar.gz をダウンロードしてインストールした。


$ tar zxvf node-v0.4.12.tar.gz
$ cd node-v0.4.12
$ ./configure
$ make
$ make install
$ node -v
v0.4.12

この後、npmをインストールするように本には書いてあったのだが、多分、自分の環境のせいだと思うのだが、うまくインストールができない。


ていうか、npmのgithubを見ると、cygwinのインストールの項に


Installing on Cygwin
Don't.
It's not supported, and terrible. Use the windows native approach, or use
a Linux or Solaris virtual machine in VMWare or VirtualBox.

Cygwin は Don't なのかっ。 しかも terrible って...。


npm はインストールできなくても、
CoffeeScriptをインストールできれば、まあ、本を読む分には困らないだろう。
そこで、Googleで調べてみたのだが、npmを先にインストールする方法しか見つからない...。


これは無理かと思って、一瞬諦めかけたんだけど、本家のCoffeeScriptのページを読むと
ちゃんとnpmを使わない方法が書いてあるではないか。


ということで、githubから1.1.2をダウンロードして普通に


$ tar zxvf jashkenas-coffee-script-1.1.2-0-g1a652a9.tar.gz
$ cd jashkenas-coffee-script-1a652a9
$ bin/cake install
$ coffee -v
CoffeeScript version 1.1.2

ということでめでたくインストールできたっぽい。
CoffeeScriptを適当に試しながら本を読むのが目的なので、うまく動かないものは無視すればいいので、とりあえず、これでOK。


ところで、CoffeScriptのページには


If installing on Windows, your best bet is probably to run Node.js under Cygwin.

と書いてあるんですけど...。


npm にとっては、Cygwin は、Don't で terrible なのに、(npm を使ってインストールする) CoffeeScript にとっては
Node.js under Cygwin が best bet って一体...。


まあ、CoffeeScript は、Node.js under Windows は best bet じゃないかも知れないが、Don't でも terribleでもなく、それなりに大丈夫ってことなのかな。

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

2011年10月 4日 (火)

[本] Rails以後の Ruby について狭く深く解説したとんがった本をようやく読み終わった

Rubyベストプラクティス(Gregory Brown)


いわゆる「Rails以後」の Ruby について狭く深く解説したとんがった本。幅広い話題を扱っている訳ではないけど、その分だけ、特定の話題に関して深く解説している。本文だけではなく付録も読み応えあり。


この本は、Rubyを広く浅く解説した本ではない。プログラミングの解説本といえば、普通は、hello world を出力する単純なプログラムの解説から始めるというのが定番である。ところがこの本は違う。いきなりRubyでTDD(テスト駆動開発)の解説から入る。 Rubyでプログラムを書けるようになった人が、よりよいプログラムを書くためにTDDで開発していくにはどうすればいいか、その勘所の解説から本書は始まっている。


題材として扱っているプログラムもTDDの解説のために用意したものではない。実際に公開されているオープンソース Prawnのコードを題材にしている。その分コードは必ずしもわかりやすいとはいえないのだが、その分より実践的なものになっていて絵空事ではない説得力がある。


この他、APIの設計方法、メタプログラミング、関数プログラミング、デバッグの方法、多言語化、RakeやRDocやRubyGemsの解説など、「Rails以後」のRubyには欠かすことのできない解説が目白押し。


付録も読み応えがある。わりと私は付録とかは読み流してしまうか飛ばしてしまうことが多いのだけど、本書は、きっちりと読んでしまった。特にRuby 1.9に標準添付されているライブラリの解説などは参考になった。


他の本でRubyを勉強した人がもっとRubyのことを深く知りたいと思ったときにぴったりの1冊。


コードにあるアンチパターンを追跡していくと、オブジェクト指向システムにおける
ハイレベルな設計の欠点か、基本となる機能を賢く実装しようとして失敗したかのど
ちらかになることが多い。

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

« 2011年9月 | トップページ | 2011年11月 »