トップ «前の日記(2008-03-23) 最新 次の日記(2008-03-25)» 編集

日々の破片

著作一覧

2008-03-24

_ Ruby-1.9.0-1のMD5

5c38868ae7025be85585147dbe6b0fa3

(あとで、/data/asr/index.htmlを作って書いておくべきなんだろうかな?)

ちょっと不安になったので(このマシンがクラックされたとかそういうことではなく、逆に独立してパッケージが出回るようになった場合のことを気にしてるわけですが)、念のため、MD5を公開しておきます。

とは言え、Windowsにはそんな気の利いたコマンドはないので、お手元のRubyで、渡辺さんが公開されているmd5sum.rbスクリプトを実行してください(いや、まったくWindowsでこそRubyは役に立つ)。

追記:と思ったら、そんなに甘くはありませんでした。。スクリプトの先頭に、

ARGF.binmode

と挿入してから実行してください。

(渡辺さんのmd5sum.rbはARGFの利用方法の例になるように、解説も書かれているから参考になります。他にもいろいろ公開されているので、もしご存じでなければ一度は読まれると良いでしょう)

_ Erlang

オーム社さんからプログラミングErlangをいただいたのだが、ぱらぱらっと俯瞰するのとは別に、基本的な文法の章まで読み終わったので、書いておく。

プログラミングErlang(Joe Armstrong)

つまりは、関数型言語なので、これでなんとなくHaskellとOCamlとあわせて3種類について基本的な文法は知ったことになる(とは言え、ほとんど覚えてないし、使えるプログラムを書けるほど知っているわけでもない)。

参考までに、それぞれ以下の本を利用した。マイコムの目つきの悪い鳥シリーズが出てこないのは、後で読もうとしたためで、最初は薄い本からという方法論のせいだ(Erlangはそれとは異なるアプローチとなったが)。

Haskellはこの本の最初の数章。

Programming in Haskell(Hutton, Graham)

本の価値が厚さで決まるのならば、コストパフォーマンスは最悪の本だが、もちろんそんなことはないと思う。読みやすく、説明は簡潔。わかりやすい。

OCamlはこれ。

プログラミングの基礎 ((Computer Science Library))(浅井 健一)

これも薄い。が、中身はプログラミングそのものの入門にもなっていることと、経路選択プログラムを書くという目的が明確化されているところが良いと思う。

で、なんというか、結局、どれもこれも、タプルとパターンマッチングとリストなのか(というところまで読んだ)。たぶん、C++もJavaもRubyもC#もどれもこれもクラスとメソッドの仮想化なのか、みたいな感じだろうな。

で、プログラミングErlangは、上に掲げた他の2冊と比較するのはちょっとフェアではないのだが、書籍としてはより、読みたくなる点をついている。具体的には、章立てのロードマップが実に明確になっていることだ。というのは並行プログラミングをするのだ、そのためのErlangなのだ、ということを強く打ち出しているからだ。最初に挙げた薄いHaskellはその意味ではHaskellを学ぶためのHaskellだし、OCamlはプログラミングを学ぶためのOCamlなのだが、Erlangは目的設定がうれしくなるということだ。

どうも、僕は、分散オブジェクトと並列プログラミングの2つのキーワードに弱いようだ。つまり、並列プログラミングが好きだ。Javaでもutil.concurrentのアトミックな連中にはわくわくする。モニターを使った待ち合わせはうんざりだが、ロックフリーウェイトフリーは最高だ。ウェイトかロックかどちらを選ぶかと問われれば、フリーを選ぶ。

もちろん分散オブジェクトも好きだ。

dRubyによる分散・Webプログラミング(関 将俊)

(当然、これなのかな)

で、その点(つまりプログラミング言語のドメインの明確化)がプログラミングErlangという本の魅力だ。

でも、違うものの見方もあり得る。つまり、単にプログラミング言語としてのErlangについて、そのプログラムの書き方を知りたいという場合についてだ。その場合は、もしかしたらジョーアームストロング(アームジョーみたいな名前だな。アームジョーを知っているだろうか? 泉昌彦が語る子供のころのがっかりした記憶の物語だ。親戚のおばさんが、電話をしてくる。小学1年か2年のころのことだ。今度、本をプレゼントしてあげるわ。アームジョーという本よ。子供は期待でわくわくする。黒人奴隷のジョーが腕一方で解放を勝ち取る(ハックルベリフィンとか読んでいたりするわけだが)、それともすさまじいパンチ力の黒人ボクサー、ジョーの戦いの物語なんだろうか。夜も眠れない。すっかり想像の中の逞しい黒人ファイター、ジョーのとりこになる。さて、おばさんがやって来る。わたされた本の表紙には「ああ無情」と印刷されていた、という物語だ)の書き方は逆にうっとうしいかも知れない。その場合は、そのあたりをばっさり無視して言語の説明にしぼったアスキーの本のほうが向いているかも。

プログラミング言語Erlang入門(柏原 正三)

本日のツッコミ(全5件) [ツッコミを入れる]
_ なかむら(う) (2008-03-24 10:34)

artonさんの書かれているmd5sum自体は正しそうなんですが、渡辺さんとこのmd5sum.rbはバイナリモードのことを考慮してないので、Windows版Rubyでは正しい値を算出してくれない気がします。<br>WindowsのRubyはめんどくさいですね(笑)

_ arton (2008-03-24 10:41)

わを! WindowsのことをMacで書いていると、そういう罠が(確認したのですが、確認になっていなかった)<br>どうもありがとうございます。

_ arton (2008-03-24 10:46)

二番目のエントリーが無駄に長いので携帯からだと修正できない。<br>filereadメソッドのFile#openに第2引数"rb"を追加すること。

_ arton (2008-03-24 18:42)

やっと試せたら、そういう意味じゃなくて、そもそもARGFからの取り込みがだめってことなのか。

_ dan5 (2008-03-25 12:51)

> ARGF.binmode<br><br>なるほど。うまくいかなかったので、Linuxにコピーして確認してました(笑)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|

ジェズイットを見習え