Ruby

2006年09月04日 月曜日

Dave Thomas, Andy Hunt / プログラミングRuby 第2版 言語編

Rubyに関しては良い言語だとは思うのだが、最新の安定版に対する書籍のリファレンスマニュアルにあたるような本が無くて若干不便だなと思っていた。ピッケル本として知られている本書であるが、第1版はRuby 1.6を元にしていて若干内容が古くなっており、改版中と言う話を聞いていたので、買い控えておりずっと待っていた。この本だけでRubyの勉強ができるし、後々この本しか見なくなるであろうと言う点で買っておいて良い本だと思う。私の書棚のRuby関係の本もまつもとさんの本とこの本以外は整理しちゃって良いかなと思う。(さすがに手狭なので。)
オブジェクト指向スクリプト言語 Ruby リファレンスマニュアルという便利な物があるではないかという人もいるだろうけれど、1画面でPCを使っているときはWindowが重なって見辛いこともあるし、付箋を貼ったり、メモを書き込み(僕はあまりしないが)ができたりという利点もあるので、それぞれ便利に使い分けていきたい物である。それにしても日本生まれの言語であるRubyであるが、日本語圏でこういう素晴らしい本が無いのはなぜだろう。市場性のなさか、優れたライターがいないからのか・・・

2006年06月16日 金曜日

Excel2007を評価中

体験って何だ・・・ というのは置いておいて、Excel2007 Betaをインストールしてみました。(正確にはOffice2007 Pro Betaだが)
Excel2007
メニューがなくなってリボンと言う奴になりました。最初は手惑いそうだけど操作自身は本質ではないし、まあ慣れれば気にはならないかも。マウスでオペレーションする方向になったような気はする。ちょっとしたことをするにもいちいち探索することが多いが、右クリックでうまく乗り切れそうではある。もうプルダウンメニューに飽きたし、IE7もそんな感じなので、Vistaではだいぶんかわるのだろう。とりあえずいろいろつっこみどころ満載のExcelで遊んでみよう。ざっくり使えるように設定の変更。

2006年04月02日 日曜日

向井 淳 / 入門Haskell - はじめて学ぶ関数型言語

Perl6-Pugsの登場以来(で正しいと思う)、純粋関数型言語のHaskellが熱いと言うことで、何か良い入門書はない物かと思っていたのだが、なんだか書店の棚を見ていると目にとまったので購入してみた。Haskellも入門書が出る時代になったということで、全く持って素晴らしい。
ただこの本はさらっと読んでみて、さらっとおしまいという感が強く、入門書として_何が何でもHaskell_という押しがないのは事実かも。なんだか説明がちっとも頭に入ってこない。熱意は感じるんだけど空回りしているかなと思うのである。あと入門書を読んでいつも思うのだけど、あとで説明するという言葉はのは書かない方がよいと思う。さらっと書いて知らんぷり(どうせそこでは本質的ではないのだから呪文としちゃうでも良い、たいてい書かなければ気が付かない)をして、あとで説明すればいいと思うのだが、「あとで説明する」と来るとイライラしてしまうのである。
とりあえずおもしろいので、ざくざく読んでいる。手も動かすべく処理系もインストールしたから、ぼちぼち手を付けてみよう。あと青木さんが「ふつうのHaskellプログラミング」を執筆中なので、こっちにも期待したいところ。

2006年02月15日 水曜日

広瀬 雄二 / 「Rubyプログラミング基礎講座

先日ジュンク堂で見つけていたのですが、そのときには買う本がいろいろあったので、今日購入。Rubyの入門書は何冊かあるけれど、どれもRubyのオブジェクトの解説や文法の解説によりがちで、実際に何か書いて実行して見ようと言う本が無かったように思う。たしかに「たのしいRuby」のような平易なものはあるのであるが、かったるいほど文法によりすぎで、この本の続きが欲しいと思うところで物足りない。Rubyに関しては和書も結構な量出ているが、決定版は「プログラミングRuby—達人プログラマーガイド」で良いのかしらと結論づけているわけだけども。
広瀬さんのこの本の場合は、Ruby入門書と言うよりは、Rubyを使ったプログラミングの入門書という感じで、後半は具体的に手を動かしてアルゴリズムの初歩を学べるように作ってある。オブジェクトの使い方・作り方に走りがちなRubyの本の中では、オブジェクト指向的な話題にはあまり触れられていない。プログラミングを学ぶという点ではオブジェクト指向は枝葉的なことで省いてしまって良いし、Rubyの長所は純オブジェクト指向言語であるのだが、実際の所オブジェクト指向をを気にしなくても良いという点にあるのだから。そんなわけで、教える立場としてよく考えて書かれているなと思った。さらに練習問題をこなしていけば、実際にコーディングすることにより動作を覚えていくことが可能かと思う。本を読んで頭で理解しても、手で動かせるようにはならないわけで、演習は重要だと思う。
そんなわけで、yamaさんのRuby学習日記に注目なのである。

2005年12月31日 土曜日

今日で2005年もおしまい

毎年こんな見出しで大晦日の日記を書いているわけだが、ついこないだ2004年もおしまいとか言う記事を書いた記憶がと思ったら、2003年もおしまいとか2002年もおしまいとか言った記事を書いたのも最近のような気がするのは気のせいではない。今年は久しぶりに落ち着いた1年と思っていたのだが、4月から勤務地が変わったので、またまた人間関係もがらっと変化して、めまぐるしい変化があった1年だった。気が付くともう今年もおしまい。今年お世話になった方々はいっぱいいて名前を挙げきれないが、今年1年本当にありがとうございました。来年もよろしくお願いします。
大晦日と言うことで、行く年に思いをはせ、今年はどういう戦いの1年だったか、今年の戦術・戦略とその戦いの成果を主要な分野別にまとめておこう。(と、ほぼ毎年と同じ文章にしてみた。こういうのは毎年そろえておいたほうがよいもので、断じて_手抜きではない_。)

2005年の総括

はじめに概況

2005年の戦況がどのような物であったか述べていくことにしよう。今年は年頭にたてた重いとは全く別なところでばたばた対応させられた1年で気が付いてみると私生活では半分引きこもりっぽい1年となってしまった。全く持って何をやってきたんだかという1年であった。まぁぼちぼち今の生活に落ち着いてきた感はあるので、来年こそ前の会社の上司の言葉を借りて、本業もプライベートも_攻めと成果_にこだわっていこうと思う。

2005年11月24日 木曜日

続・なんでもかんでもExcel症候群

Unixな機械からテキストファイルを直接持ってくると、改行がWindowsと異なるので、Excelで扱うのがちょっとめんどくさい。FTPできるときは、ASCIIで持ってくればDOS/Windowsなテキストファイルになるのだけど、世の中FTPできなくて専用のクライアントを共用されることもあって涙が出てくることがもうしょっちゅうあって困る。で、そんな_だめだめクライアント_に泣く泣くつきあわなければならないのだが、この際_なんでもかんでもExcelにお任せ_なのだ。
これからはASCIIモード転送のことは忘れて、すべてBINARYモード転送にしてしまいましょう。DOS/Windowsの世界ではUnixで作成したテキストは何行あっても、_たった1行のテキストファイル_と見なせるから、これを全部1つの文字列に取り込んで、ばらす方向で考える。ソースを示す。

2005年11月22日 火曜日

なんでもかんでもExcel症候群

何でもかんでもPowerPoint症候群の弊害を日記で書いたのだが、それよりも世の中に広く広まっている病的な物と言えば、_なんでもかんでもExcel症候群_であろう。とにかく通常の表だけに飽きたらず、提出書類から報告書まで_何でもかんでもExcel_なのである。つまり「何でもかんでもExcel症候群」とはExcelだけですべての仕事が完結してしまう恐ろしい病気なのだ。
その病巣の由来を簡単に予想するとすれば、子供の頃に升目の入ったノートで漢字の書き取りをやらされ(つまりカーニングとかに無頓着になる)、読書感想文などの類は原稿用紙で書かされ、漢字は少ない文字数で情報量を詰め込めることからすっきりとした表が書きやすく、何でもかんでも_表にしないと気が済まない_という日本人の悲しい習性に由来する物であろうと思うのだ。
まぁUnixでEmacsしか使わないというのと似たような話ではあるのだが、典型的なEmacsユーザーが扱うのは汎用的なテキストファイルであり、Emacs LISPでがんがんプログラムを書く(設定ですらLISPを書かねばならないので、多少は誰でも書く物だ)人が多い用に思われる。Excelの場合は、XLS形式という特殊なフォーマット(最近のはXMLなのか?)を用い、適当なワークシート関数などを表層的に使いこなしている人が多く、Excelの基本技とも言えるピボットテーブルとかソルバーを使いこなしている人がどの程度いるかと問えば、結構怪しい物だ。
まぁ会社で働いているとこういう病的な世界と常に隣り合わせであり、いつも精神汚染を受けているのであるが、これを前向きに楽しむにはどうすればいいか? ということに焦点を絞り込んで生活しないとやってられないと言うことになるであろうか。
そんなわけでExcelをちゃんと使いこなすにはVBAで遊びまくればいいのであるが、テキストファイルとのつきあいもやめられない。Unixな環境に一度でも触れてしまうと、VBAのお気軽さを楽しんでいても感じる最大の問題点は_正規表現が使えない_と言うところがなやましい。これまで正規表現(とハッシュ)を使うためにVBAからだと駄目だと思い、Active PerlとかActive Rubyとか非VBAでCOMオブジェクトをさわれる言語を選択していたのであるが、書いたプログラムを使ってもらうのに_わざわざPerlだのRubyだのをインストールしてもらわねばならない_という痛い問題があった。Windowsで全然閉じていないのである。Mac OSXみたいにPerlとかRubyがインストールされていればこんなことは考えなくて良いのだが、PerlやRubyを使うのは_Windows的なやり方ではないのである_と言う結論に落ち着いた。
Windows的にどうすればいいのかと言う話なのだが、結局のところ現在のほぼすべてのオフィスにあるWindows環境で前提として良さそうな物は、Internet Explorer 6 SP2とExcelであろうと言うことになる。いろいろ調べているとIE5以降だと、WIndows Scripting Hostが使える。_まてよWSHにはたしか正規表現オブジェクトがあったぞ_と思い出して、さらにCOMで呼び出せるじゃんと言うことを思い出したので、一気にこの方面の悩みが解消した。要はWSHの正規表現オブジェクトをVBAのオブジェクトにしてしまえばいいのである。なんてこったい。こんなので数年悩んでたよ。とりあえず、あるディレクトリにある複数のファイルを選択して、そのすべてのファイルに、入力したパターンマッチをして置換を行うVBAプログラムを書いてみよう。

2005年10月22日 土曜日

今日は撮影に出かける

今日はあいにくの空模様だったのだけれど、ののさんより「蕎麦を食べつつ撮影してみませんか?」という蕎麦好き僕にとって嬉しい撮影会に誘われたので、行って来ました。今日のモデルはシホさんです。肌寒い中がんばっていただいたおかげもあって、気が付いたらメディアをほぼ使い切っていました。これまでこんな勢いで撮影したのは無いかもしれない。
今回の撮影ではポートレートを取り始めた頃のような初心に返った撮影をしてみたんですが、最近こういう撮影を忘れていたなあと楽しさを再発見しました。素敵な表情をくれたシホさんに感謝です。楽しい一日でした。よく考えたらシホさんと長時間話をするのは今日が初めてっぽい。
シホさん その1シホさん その2
今日の昼ご飯は深大寺でお蕎麦をいただいたのですが・・・ 田舎蕎麦を頼んだのに細打ち麺の方がきてしまったじゃないですか!まったく、もぅ。 まぁ食べてみたところ蕎麦の香りはこっちの方が強く感じたので、_結果オーライ_ということで良しとしよう。ここは良い感じのお寺さんなんですが、駅から遠いので1年に1回くらいしか行けません…
いつも撮影に誘ってくださるののさん、TOSIさん、肌寒い中がんばってくれたシホさん、今日は1日どうもありがとうございました。

2005年08月27日 土曜日

Lightweight Language Day (and Night)

今年もLightweight Languageの年に一度のお祭りであるLightweight Language Day (and Night)に参加してきました。チケットの発売に気がつかなかったので、何とか買えた昼間の部のみ参加。
今年の僕が感じた目玉のひとつ目は、GNU awk(gawk)のXML拡張であるxmlgawkであろうか。僕がgawkやnawkを使っていたのは学部の4年目のころで、あのころは日本語化パッチを当てたjgawkをメインに使っていた。(今にして思うとperlのプログラムも結構書いたけどawkほど使ってないな。) 気がつけば国際化されて、キーワードが増えてXML文書をSAXっぽく扱えるようだ。この拡張はgawkの先端開発版という位置づけで、コンパイルオプションで無効にできるそうだ。awkは行指向ツールとしてはperlやrubyより使いやすいところはあるので、まだ開発が行われていて進化が続いているのかと言う驚きとともに、昔師匠のawkの技でうんざりしてしまいやめてしまったawkであるが、再び遊んでみたいなあと思ったのである。(僕の師匠(指導教官ともいう)はawkとかPostScriptのプログラムをサクサクと・・・)
二つ目は全然追いかけてもいなかったけどPerl6周辺の話。昨年のLLでは北京オリンピック頃と言っていたPerl6であるが、この1年でPerl6のHaskellによる実装(Pugs)を行ったという天才が登場して、突如として開発が加速しているようだ。それにしても1ヶ月でHaskellを覚えて、Perl6の仕様を具現化してしまうとは。若い天才的な人物の登場というのはなかなかエキサイティングなことだったのだと思う。小飼さんのPerl6のデモを見ていたのだけれど、Perl5との互換性を捨てているせいか、言語自身がリファインされて、どことなくrubyに近づいているような・・・ 似たような機能を影響しながら追加していくと、結局PerlとRubyとPythonを足して3で割ったような言語ができるのだろうか? もうちょっとPerlの良いところであり悪いところでもある毒々しさを残して置いて欲しいのだけれど。
他の言語に関しては特に進展があったわけではないのでここで述べる必要もないと思う。ざっと10個の言語プレゼンを聞いたのであるが、聞いた結論としてLightweight Languageとは何だろうかと思ってしまう。個人的なLightweightであることの定義付けであるが、まず最初に軽い記述で高度な処理ができること、次にたいていの人にとって理解しやすい概念のみでプログラム可能であることかなと思う。そういう点でエヴァンジェリストの方々には大変申し訳ないが、monadsとか、Curry化とか、継続とかが一般に理解されるようになるとはとうてい思えない。(一応分かりやすいと思う解説へのリンクは貼った。) むろん関数型プログラミングの威力は理解できるのだが、果たしてLightweightなのか? 誰しも知っていて当たり前なのか? と言うあたりが僕は知りたい。(Scheme的にはSICPを読めと言う話だと思うのだが、みんなしなければならないもんでも無かろう。) ちなみに僕自身はLightweightに関係なく関数型な言語の1つはプログラマを志す人は教養レベルでも良いからやっておくべきだと思ってはいる。第一、面白いし。
フレームワーク対決については、Kahuaは昨年のLLで面白いツールだと思っていろいろ調べていたので、面白くデモを拝見したのだが、もう少しうまく説明できればなという場面が多かったかも。Ruby on Railsについては、一度デモを見ておきたいと思っていたので、今回のプレゼンは参考になった。みんなが凄いというだけあるな。うちのサーバにインストールというのはバックエンドDBをインストールしたくないので保留としても、試験動作環境のDebianマシンには入れてみてもいいかも。ちょっと検討してみよう。Sledgeについては今更Perl Baseなシステムを持ちたくない(我が家の環境でPerl依存なものはもうほとんどない)ので、意見は保留。
「君ならどう書く」というセッションは、漢数字を扱う電卓ということで、面白く眺めさせてもらった。今回の漢数字の定義自身が、一般的ではない(世間的には無量大数まで万進のはず。今回はどの桁か忘れたけど万万進に切り替わる)こともあり、パースをどうするかというところが面白かった。(万万進の場合は人間が聞いてもよくわからなくなるので、少なくとも国内では廃れている。) 桁数が多くなれば誰しもがやるように、下の桁から勘定すればいいのよね。今回は個人的にはプログラム可能な電卓を作りこんでいたPythonのチームが秀逸であったと思う。
あと自由演技のsfの小林さんなのだが、科学技術計算という論点では特に行列計算ができる計算機という位置づけだったかと思う。この手の計算は特に実験系の人は常に悩ましいと思うのだが、測定器が吐き出すテキストデータをなんとかパースして、どう配列に取り込むかという点でいつも悩むところがあるが、このプログラムの場合データを表のようなものに落としこんでテキストファイルとして、テキストファイル自身が行列やベクトルをあらわして、ファイル名を記号として使えるような計算に特化したシェルのようなものという風に読めたのであるが、あの場で量子力学の固有値計算をするのはどうかと思う。説明によっては面白いと思うのだけど。ちなみに僕はあの規模の計算は普通にCで書くべきだと思う。いろいろ悩ましいけど。

2005年05月16日 月曜日

いろいろうまく伝わらないことはあるものだ

文字だけで表現というのは難しい。特にこういう日記とかBlogとかだけだと。いろいろな背景があって理解できる文章と、背景が無く読んだ文章は、同じ文章でも意味が異なって取られることがあると言うことだ。なんだか今日読んだ論争は、_小飼さんと三浦さんと面識がない_と言うあたりで、ひどく空回りのような気がする。
そもそも引用時に「人材育成とか、日本発のOSSとか、」が抜け落ちちゃっているが、そう言っている人は誰だろう? この辺に解く鍵があると思うのだけど。今回の意見はこの主語に相当する存在に対してであろうに… それも三浦さんの動きを見ていれば薄々分かる話だと思うのだけど、知らない人は知り得ない。あともとの三浦さんの意見には、おそらく凄く広範囲にいっぱい種をまいて、水をまいてみたけど、周りに生えているものが全部養分を吸ってしまって全然育たないのかもしれないという一抹の不安みたいなものと、そういうところを打開したいという想いと、やれOSSだとか時流に遅れまくって今頃言っている世界とのギャップなどもあって、ふと出てしまったものだろうかと思うのである。そのような不安は別にOSSに限った話ではない。日本に住んでいれば至る所にかいま見えるのだが…(今日の所得税納税ランキングでも明らかであろう。)
今回の一連の議論でおそらく両者に面識があるであろうMatzさんの意見が僕には本質を突いている気がするのだけども。