2010年05月27日

『プログラミングRuby 1.9 言語編/ライブラリ編』

プログラミングRuby 1.9 −言語編− プログラミングRuby 1.9 −言語編−
まつもとゆきひろ, 田和 勝
オーム社 / ¥ 3,990
プログラミングRuby 1.9 −ライブラリ編− プログラミングRuby 1.9 −ライブラリ編−
まつもとゆきひろ, 田和 勝
オーム社 / ¥ 4,620

長かった……。Subversionリポジトリにr1が作られたのが2009年2月13日16:50:13。翻訳の田和さんが2009年5月から翻訳をコミットし始め、2010年1月から本格的に編集が始動。レビューア陣からの多数の指摘、監訳のまつもとゆきひろさんの判断を受けて、改善が重ねられた。 そして、r1071のタグをもって、世に出されることとなったのが本書である。

------------------------------------------------------------------------
r1071 | 2010-05-22 13:02:45 +0900 (土, 22  5月 2010) | 1 line

Tag r1070 as 1.0 (1st print).
------------------------------------------------------------------------

本書は、うさぎ本こと初版の『プログラミングRuby——達人プログラマーガイド』(ピアソンエデュケーション)、出版社を変えての改訂版となる『プログラミングRuby 第2版 言語編/ライブラリ編』(オーム社)を受け継ぎ、Rubyの入門者からアドバンスドなRubyハッカーまでをターゲットにした、王道Ruby本の改訂第3版だ。

本書は「第3版」ではなく、「1.9」というバージョンをその書名に刻み込むことをあえて選んでいる。Rubyプログラマにはご存じのとおり、Rubyは1.8から1.9へのバージョンアップに伴って大幅な変更が施され、(多くはないが)通用しなくなったもの、通用はするがより良い方法があるもの、そしてたくさんの新しい追加されたものがある。著者のDave Thomas、Chad Fowler、Andy Huntは、これらを丹念に調べ上げ、1.9のリファレンスとして通用する書籍を作り上げた。

それでも、これほどのボリューム(邦書は上下巻で950ページ超)ともなると、技術的な誤りや著者の思い込みが紛れ込む余地はあるし、バージョン1.9ではモアベターなプラクティスもある。 また、日本語翻訳版の本書のターゲットは、日本語を読み書きの言語とする読者であり、日本語として読んだときに滑らかに頭にインプットされることが何よりも重要と言えよう。

そこで登場するのが本書のレビューア陣である。L.Chinさんや卜部さん、笹田さんほか多数のRubyの最前線で活躍し情熱を持つ人々が集まり(本当に豪華だ!)、「Ruby 1.9対応を謳った、日本語で記述された良書」と呼べるにふさわしいものへと本書をブラッシュアップするために惜しみない力が注がれた。

そして、製作に当たったオーム社開発局の皆さんの尽力に言及しないわけにはいかないだろう。 これだけのボリュームの書籍の改訂出版に踏み切る勇気はもとより、途方に暮れそうな原書の原稿ソースファイル(TeX+超絶マクロ)から日本語TeX組版システムに乗せるのは大変な試練であったと思われる(自分なら途中で諦めて別フォーマットにしていただろう……)。その苦労の甲斐あって、本書でもオーム社おなじみのコミット&即組版&プレビューのイテレーションを実現し、1.9での新機能を示す「1.9」マーカーの配置、上下巻にわたる目次や索引・相互参照の処理等々のタグ+バッチ型ならではの利益を得ている。

Rubyの初心者には本書の言語編の最初から読んでいくことで、着実に知識が身に付いていくことだろう。中級者は言語編とライブラリ編にある1.9のマーカーを追いながら新機能にチャレンジしてみるのもよいだろう(特に文字列のエンコーディングや、高機能になった正規表現は必見)。上級者は本書をぱらぱらと斜め読みして、鋭くツッコミを入れるなり、新しいライブラリの開発のヒントの着想とするなりしてみていただきたい。

2010年05月22日

『ルンバ577』

iRobot Romba 自動掃除機 ルンバ 577 シルバー iRobot Romba 自動掃除機 ルンバ 577 シルバー

iRobot (アイロボット) / ¥ 69,500

いわゆる自動掃除器。いろいろな評判を聞いて検討の末、先月初めに購入した。 その振舞いから、家では「グレゴール・ザムザ」、略称「ザムザ君」と名付けられ、日々活躍している。 1ヶ月半の様子を見ての、ザムザ君のインプレッション。

日本向けのルンバとしては527、537、577とある。カラーは537が一番すっきりしているのだが、タイマー起動があるのは577だけ。 写真で言うと、上側の分厚い弧がクッション型バンパーで、内側の黒い弧は人が持ち上げるときのハンドル。大きさは直径34cmあり、実際に見るとそれなりにでかい。

吸塵能力は高い。腹で吸い込むと共に、触覚のような小さな回転ブラシで取り込むので、壁沿いもわりと綺麗にしてくれる。とはいえ、サイズ的にどうしても入れないところは取り残しはできてしまう。同じようなところをぐるぐる周ることはあるが、最終的には1時間ほどでひととおり全体をこなせるようだ。 とはいえ、完全ではない感じ。ひとところをひたすら何度もやったかと思えば、えらく淡白に終わらせてしまうところもあり。577には、ブロックまたは部屋区切りを指定するための発信機が2つ付属しており、これを使ってうまく誘導する必要がある。充電ステーションも一種の部屋区切りシステムのようで、思ったように誘導するのは困難だ。場合によっては物理的に区切って今日はここを、という使い方のほうがよいかもしれない。

音は大きめ。手動掃除器ほどではないにせよ、何度もやってくるし、家具への衝突音も頻繁(ガラスなどは置かないほうがいい)。段差は5mmくらいのは越せる。1cmでも勢いがあるときなら乗り上げる。スタンドのようにナナメになっている構造物だとそのままがんばって登ることもある。スリッパやゴミ箱のような軽いものだと、押し切る。落下防止のために段差は一応判断するけれども、完全とは言えなくて、たまに玄関に落ちていることが。階段のある家では、念のためにブロックしていないとたいへんな惨事になるかもしれない。

天敵はラグやケーブル。フリンジのあるラグは当然絡んで動けなくなるし、なくても、押しつけて乗り上げてにっちもさっちもになることがある。ケーブルはプラスチックのケーブルカバーを取り付けてみたけれども、それを絡めて曲げちゃうほどのパワーがあるので厄介。ケーブルが絡むとブラシが折れることもあるようだ。また、オフィス用の椅子の足はちょうど高さ的に挟まりやすく、ここにハマると動けなくなる。

スケジュールは曜日ごとに何時に開始するかを設定可能。清掃状況にかかわらずだいたい1時間で切り上げてステーションに戻るようだ。 付属品としてリモコンがついているが、自動作業中に移動方向をちょっと変えたいというものではなく、完全に自分で操作するためのもの(押した途端に自動作業は終了する)。これは使えない…。

日々のメンテナンスは比較的容易。写真で言う下側がゴミ容器になっているので、これを外して、適当なハケで落とす。毎日やってもけっこう出てくる。一体どこからこのホコリは出てくるのやら…。なお、家ではザムザ君という名前なので「ほーれ、このクソ虫さん」(新訳版)などとぶつぶつ呟きながら作業すると雰囲気もばっちりである。今のところは車輪への絡み込みなどはないけれども、たまに見てあげないと危険かも。

正規で購入すると、1年での無料メンテサービスが付く。寿命・故障を前提にしているのか、交換部品の案内やサードバッテリを使用する際の諸注意といったものが妙に充実しているのがちょっとおもしろい。

床しか清掃できず、希望の場所をやらせるのにちょっとクセはあるけれども、実際使ってみると確かに便利。ザムザ君が作業しやすい環境を提供するために、床になるべく物やケーブルを置かないようになり、すっきりするという副次効果も。

2010年05月05日

『セキュリティの神話』

セキュリティの神話 セキュリティの神話
葛野 弘樹 (監訳), 夏目 大
オライリージャパン / ¥ 2,310

監訳の葛野さんとオライリー社から献本いただいた。ありがとうございます。

著者はアンチウイルス企業McAfeeでCTOを務めるJohn Viega氏。作中、オープンソースへのコミットメントの例にMailmanを挙げていたのでchangelogを見たところ、確かに1998年にいくつかのパッチをコントリビュートしていたようだ(ただそのMailmanといい、Eric Raymondのfetchmailといい、どうもこの手の例題に出される作品は「筋が悪い…」のが多い気がしなくもない)。

本書は、Viega氏の考えるセキュリティおよびコンピューティングを綴った45章からなるエッセイ集だ。扱う範囲は広く、技術的なものからソーシャルなものまで言及しているが、技術的な細部には立ち入りすぎないように配慮されている。とはいえ、マルウェアの解析やパターンシグネチャの仕組み、現在および今後発生し得る攻撃手段など、必要とあらば詳細にも踏み込んでおり、軽薄に終わることはない。

McAfeeを擁護するわけではないと言いつつも、「私がかかわってからはずっと良くなっている」と書いてしまうのはご愛嬌。2006年3月にExcelのシグネチャ誤検出をして削除をしてしまった経験からMcAfeeが懸命に改善に取り組んだというのも、つい2010年4月にWindows XP SP3を止めてしまったという騒動が記憶に新しく、苦笑せざるを得ない(難しいことだとは思うが)。 提案される内容とセンスがちょっと古臭い(「AntiVirus 2.0」とかなりすまし対策とか)のもズッコケるところだ。

同じ「神話」でも『人月の神話』(Frederick Brooks著)に比べると、内容はちょっと粗が目立ち、意見もあまり同意を得にくい面はある——特にオープンソース/フリーソフトウェア派には身構えそうな箇所も。ただ、情報セキュリティを考える上で、専門ではない人にもなるべく平易にしようという挑戦は感じるので、セキュリティやアンチウイルスにちょっと興味はあるけれども詳細はよく知らないという人には、悪くない本だと思う。

なお、Amazonの書評にもあるとおり、大きいのから小さいのまで誤殖はちょっと目立つな…という印象(これは版元に報告しておくつもり)。

2010年03月02日

『プログラミングClojure』

プログラミングClojure プログラミングClojure
川合史朗
オーム社 / ¥ 3,570

オーム社様から献本いただきました。ありがとうございます。

関数型言語の第一人者の川合史朗さんによる翻訳ということで、楽しみにしていた。

Clojureは、Java VM上で動作する関数型言語だ。JavaをαとかHotJavaとかの時代に遊んでいた頃からすると、昨今のJVMの新たな展開には驚くべきものがある。

Lisp系関数型言語の一派だけあり、Clojureでもやはりカッコは多いものの、それでも少なくするような書式にはなっているらしい。標準で用意されている関数名/マクロ名は英語文法的といえばそうなのかもしれないが、覚えにくかったり用途を想像しづらい名前が多いように感じる。to-array、into-array、interpose、some、macroexpand-1、trampoline、……。

Javaと密接にかかわっているだけに、ClojureからJavaオブジェクトのメンバフィールド/メソッドを見たり、リフレクションを使ったり、Javaオブジェクトを作ってメソッドを呼び出したりといったことがごく簡単にできる。関数型言語でJavaを包んだという雰囲気だろうか。JVM上でならどこでも動くわけで、組み込みなどの用途も(関数型言語が好きなら)あり得るというわけか。

紙面はシンプルなレイアウト——というと聞こえはいいが、コード系に全部同じ等幅書体を使っているため、関数名なのか、任意値なのか、単なる文字列なのかが区別が付けずらい(前述のようにClojureの関数名はどうも覚えにくいため、余計にそう感じる)。 日本語本として読むからには頭のコンテキストスイッチの切り替えをそれほどしなくて済むよう、任意値のところは日本語になっていてほしい、せめてイタリックなどを使ったほうがよかったのではないかと思う。文章自体はこなれていて読みやすいだけに残念なところだ。

全体を読み通した感想としては、「Clojureってなんか不気味……」という形容しがたいもの。でも、柔軟性の高い言語な上に、必要に応じてライブラリの揃っているJavaコードを呼べるのは便利そうではある。何とも言えぬ不気味な感じは拭い切れないものの、『情熱プログラマー』にもあるように別世界の知識を得るために飛び込んで使ってみることも必要かと思う今日この頃(Do it now!)。

2010年02月26日

『情熱プログラマー —ソフトウェア開発者の幸せな生き方—』

でびあんぐるとして共同監訳した書が刊行されました。

本書は、Chad Fowlerの前著『My Job Went to India』(邦訳版も同名)の改訂版です。 前著ではオフショアによる職喪失の危機に対してプログラマはどのように生き残りを図れるかということに重点が置かれていましたが、今回の改訂ではタイトルも改め『Passionate Programmer(情熱プログラマー)』となり、よりポジティブに、プログラマ人生をどうやって充足したものに変えていくかを綴ったエッセイ集となりました。

前著と同じエッセイもいくつかありますが、一新された部分も多くあり、前版を読んだという読者でも十分に楽しめる内容になっていると信じます。今回の邦訳では、角谷さんやレオさんらの素晴しいレビューア陣の助力を得て、前版よりもさらに魅力的な文章へと磨かれています。

本書の内容は基本的にいわゆる"マッチョ"系で、「下を向いてるだけじゃだめだろ! さぁ、やろうぜ!」という、疲れきった心身だとちょっとこたえるくらいのアツさ、まさにカバーの「赤い葡萄畑」(ゴッホ)から感じるような熱気に満ちています。しかしながら、その本質は本書末尾のエッセイのタイトルでもある「楽しもう」ということであり、人生を自分で選択して楽しいものに変えていくためのプラクティスなのです。

本書の主な想定読者はプログラマですが、紹介されるプラクティスの大半は、どんな職業あるいはどんな人にも応用可能でしょう。「自分が一番の下手くそ」だと感じる最良のグループに参加する、心の師匠を持つ、本番の日のために日々練習する、自身の行動を毎日自問する、失敗し学習する、顧客やマネージャを彼らの分野での専門家と考えて学ぶ、昨日より今日はよくなろうと努める、楽しむ、……。すべてをこなそうとしなくても、Chadが勧める行動を1つ2つ始めていくことで、退屈でぼんやりしていた人生が少しずつ明確に見えてくると私は思います。私の行動原理には、『My Job Went to India』『情熱プログラマー』が少なからず影響しています。

2010年01月28日

『OpenCL入門 —マルチコアCPU・GPUのための並列プログラミング』

OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング - OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング -
株式会社フィックスターズ, 土山 了士, 中村 孝史, 飯塚 拓郎, 浅原 明広, 三木 聡
インプレスジャパン / ¥ 3,675

最近編集・DTPを担当した上記書籍が刊行されました。表紙も中身もクールなので、ぜひ手に取っていただきたいと思います。

既存のCPU/MPUの処理能力の向上が頭打ちになる中、昨今大きな注目を集めているのがGPGPUプログラミングです。GPUはCPUの補完的な機能として画像処理を専門に担当するプロセッサとして開発されましたが、高速性と高度な描画表現の要求に応えるべく進化の進んだ結果、単純ながら多数の演算装置を持つ超並列計算機としての性質を持つようになっています。 GPGPUプログラミングは、GPUをグラフィックではなく汎用目的として、フーリエ変換やデジタル画像・音声処理、各種のシミュレーション、クラスタリングといった並列計算に用いるものです(たとえばNVIDIAはグラフィック出力ではなく計算のみに特化したGPUも製造しています)。

GPGPUプログラミングでの問題は、プロセッサ、コンパイラ、組み込み環境の有無といった違いに応じてそれぞれプログラムコードを対応させなければならず、移植性が低く、学習しづらいことでした。そのための解決が「OpenCL」です。OpenCLは、C言語を拡張した並列プログラミング言語およびそのランタイムAPIをセットにした環境です。ほぼC言語と同じ感覚で、プロセッサの違いを意識することなくプログラムコードを記述でき、移植性と学習の容易さを提供してくれます。また、パフォーマンスを最大限に引き出すチューニングも可能です。OpenCL環境はLinux、Mac OS X、Windowsと主要な各種OS向けに提供されています。

本書は、この新しい技術基盤であるOpenCLを解説した日本初の書籍です。 著者陣は並列計算やCellプログラミングの分野で高い技術力を評価されているフィックスターズ社のメンバーで構成され、技術的内容にかけてはまず安心と言えます。 すでにバリバリとGPUプログラミングを使い込んでいる方には物足りないかもしれませんが、OpenCLの概要、並列化の概念、言語仕様と既存CコードのOpenCL化のテクニック、フーリエ変換、画像処理、市場シミュレーション、パフォーマンスチューニング、とOpenCLを始める基礎となる知識が盛り込まれており、入門として適しているでしょう。

2010年01月25日

『HTC Tattoo』

海外でのモバイル環境としてそろそろちゃんとSIMフリー端末がほしくなった。iPhoneでもJBすれば一応できるが、iPhoneのJB+SIM unlockはいつまでできるかはわからないし3.1でのunlockは副作用もあるのであまりやりたくない。それに、iPhone、あるいはGoogle Nexus Oneあたりは高額なので、ひったくりやスリの多い地域で持ち歩くのはちょっと躊躇する。 ほしい機能としては、SIMフリー、通話、Google Maps、メール、フルブラウザ、カメラ。TwitterやIRCができればなお良し、というところ。

ということで、Android 1.6塔載で小型、廉価となかなか条件の揃った「TC Tattoo」を購入してみた。

輸入業者は1ShopMobile.comで、US$での決済。本体が$309で送料$25の計$334。今はドル安なので、下手に欧州などで現地購入するよりも安い。クレジットカード決済もできるようだが日本のカードだとうまくいかないこともあるらしいので、Google checkout経由で申し込んだ(1/20午後)。Google checkoutだと運送保険が付けられないようなのだが、まぁ壊れるものでもあるまい、と。1/21夕にはEMSの追跡コード付きで発送連絡。香港から航空便、22日夜には税関を通過して、23日の午前には配達がきていた。早い! この日は東大のBSPに参加していたので、再配達をお願いし、無事に受け取り。


梱包はかなり厳重で、iPhoneっぽい元々の箱をぷちぷちで巻き、それをさらにビニール質の梱包袋でくるんでいる。もちろん中身はまったく平気。製品としてはイギリス仕様らしい。


ご開帳。本当にiPhoneみたいなセットである。本体にはすでに(やや厚めの)保護フィルムが貼られている。付属品は、micro SD 2G(内蔵)、充電/データ通信用のmini USBケーブル、USBプラグのあるACアダプタとそのコンセント(イギリスプラグをアダプタに取り付け、その上に日本/USのアタッチメントを取り付ける形。プラグを付けたら二度と取れなくなった気配…まぁいいんだけど)、ステレオイヤフォン。あとは保証書と薄いマニュアル。


iPhoneと比較。厚みは同じくらいで、縦横サイズは2回りくらい小さい。スペック表によると、106x55.2x14mm、113gらしい。コンパクトでなかなかいいね。iPhoneと違ってストラップを付ける場所もちゃんとある。


SIMは裏蓋、バッテリを外して挿入する。とりあえずアクティベーションのためにソフトバンクの黒SIMを刺してみた。microSDを入れるにも同様に取り外す必要がある。これはちょっと面倒だね。


起動。HTCロゴ→Vodafoneロゴ→Androidの「見てるヨー」アニメーション(かわいい!)→HTCロゴ(このときに爆音でジングルが鳴る。音量調整も不可。JBしたら消せるんだろうか…)となって、ようやく操作できるようになる。起動まではわりと時間かかる。1分くらい?

マニュアルによると本当はここで言語やSIMやメールの設定などがあるみたいなのだが、無意識にスキップしてしまったのか、そのままホーム画面になった(その後誤って完全リセットしたら、ちゃんと設定手続きが出てきた)。

入っている言語は英語のみ。ファームはAndroid 1.6、ベースバンドは13.29.55.3H_3.35.07.31、カーネルは2.6.29-gf922713、ソフトウェアバージョンは1.67.161.18。 通話は問題なくできる。クリアだし、コンパクトな分扱いやすい感じ。パケットは怖いので試していない。USBモデム化してテザリングすることもできるっぽい。Linuxで動くかどうかは不明だけど。 あれ、SDカードが認識されていない?

とりあえずアクティベーションは終わったのでSIM戻すか、と思ったところでたいへんな事態。裏蓋がまったく開かない。最初のときにはすぐに開いたのに、「Androidマークを押しながら上にスライドして開けろ」というマニュアルのとおりにやってはみたものの、がっちり噛んでいてらちがあかない…。しょうがないので手持ちの精密ドライバで無理矢理隙間を作って開いたけれども、早速傷物にしてしまったヨ。ちなみにTattooは「着せ替えケータイ」っぽい売り方をしているようで、今回傷物にした部分も含めてケース全部交換して好きなものにできるようだ。検索するとカラフルなのがいっぱい売られている。日本では買えないけど。 SIMは外し、SDカードを刺し直し。開けるために力をかけた際に完全リセットがかかってしまい(メニューと電源ボタンを長押しでこうなるようなのだが、上から押しつければそりゃ両方押されるよな…)、前述の設定手続きが出てきてた。さっきいろいろ設定したものが全部消えててちょっと泣ける。SDは認識された。


デフォルトではいろいろ不足なので、Androidマーケットで無料アプリ(有料はdocomo SIMかJBしないとだめっぽい)をいくつかインストール。 端末自体は英語モードではあるけれども、フォントはUnicodeのものが用意されている(ちょっと中国語っぽいが)ので、Android共通として適当なツールさえ入れれば日本語の使用はほぼ問題ない。 日本語入力として比較のためにsimejiとopenwnnの両方。リーダの性能を見るためにVTextViewer。メッセージロケールを追加するmore locale2。そのほかにToggle Settings、AK Notepad、ES Task Manager、AndChat、Google Newsなど。 Twitterのクライアントはデフォルトでpeepというのが入っていた。それほどは悪くない感じ。メールもデフォルトのMailでとりあえずIMAP+SMTP Authの設定ができた。

期待していた機能は全部あり、すばらしい。小さく軽いので、日本で出しても売れそう。 あまり速いプロセッサではないので、動作としてはキビキビよりももっさり感はある。画面は小さい(2.8" TFT-LCD)が、可読性には問題ない。このQVGA(240x320)だとアプリによっては対応していないみたいね。バッテリは3時間ほど遊んで半分くらい消費。G1同様に毎日充電すれば困らない程度かな。

デフォルトの入力(英語)もなかなか使いやすい。タイプ時に振動でお知らせするのだけど、その振動は、Wiiのコントローラで画面外に出したときのような「もこっ」とした感触がある。アルファベットは入れやすいけど、数字の入力にはちょっとまだるっこしいかも。とはいえ、何も見ずに使ってみただけなので、用意されているチュートリアルをちゃんと実践すればいいのかな、とは思う。simejiとWnnはどちらもそれほどは違いはない。画面が小さいぶん、ちょっと打ちにくく、ミスタイプしやすい。フリックより携帯打ちモードのほうがいい気もする。画面の上のほうの感度がやや低いので、Notificationなどはメニューからいったほうがよさそう。ダブルタッチは対応してないみたい。

Wifiは11b/g。まぁ使用用途的にも特にこれで困らない。Bluetooth 2.0はそのうちヘッドセットがちゃんと動くか試したいところ。オーディオフォーマットはMP3やAAC、WMA9などの主だったもの、ビデオはMPEG4、H263、H264、WMV9に対応。SDに普通にベタでファイルを置くだけで、iTunesみたいな管理はしてくれない。Flashも未対応。

FMラジオが付いているけれども、90MHz-110MHz帯なので、日本の放送はほぼ入らない。ハックして使えるといいんだけど、ハードウェア的なものっぽいよな。コンパスや加速度センサもあるみたいだけどいまいちどうなるのか不明。


カメラはいまいちというか、「いまに」くらい。解像度は高いが暗くて感度も低いためぶれやすく、W53Sあたりとあまり変わらない。さっと撮るにはiPhoneのほうがいいね。

iPhoneから乗り換える!という類のものではないけれども、海外旅行に持っていって現地プリペイドSIMを刺すという使い方ならベストに近いものじゃないかと思う。rootもすでに取れる雰囲気らしいが、元に戻せる保証がないので今のところは手を出さず。中国フォントもそれほど気にはならないし。


裏蓋を開けるのに精密だと傷だらけにするわりになかなか開かないので、ホームセンターでコーキングヘラを買ってきた。100円ショップも見たんだけど、ケーキナイフ・もんじゃヘラ・スクレーパーあたりでは薄さが不足してだめっぽい。少々でかいがこのコーキングヘラを使えばぱちぱちと開けられるようになった。これで勝てる。ステンで外観は刃物っぽいので、機内持ち込みは駄目だろうな…。

2009年11月26日

『The R Tips 第2版』

データ解析ソフトウェア「GNU R」の解説書。Rは数値統計解析用のフリーな言語環境で、マルチプラットフォームで動作し、大きなデータ集合の高度な演算のほか、グラフィカルライブラリと連携してグラフ描画などもできる。機能拡張のための「パッケージ」も各種開発されており、CRANライブラリからダウンロードできる。

もともとは2005年に九天社から発行されていたものだけれども、この出版社が倒産してしまったため、原稿を引き上げて加筆修正し、改訂という形でオーム社から新たに発行された。 私は編集・組版として制作をお手伝いさせていただいている。 旧版からそれほど大規模な変化があるわけではないが、読みやすさはだいぶ上がっているのではないかと思う。裏側では、今回数式にTeX2imgを使ってみたり、Windowsメタフォーマットの図版の加工にいくつかスクリプトを用意したりといったチャレンジもしてみた。

著者はWindows、私はDebian GNU/Linux((r-baseメタパッケージでひととおり配備される)という環境で検証作業を進めたが、本書掲載の例を実行するだけでも、Rの強力さと構文の簡潔さには驚くものがある。たとえばこんな感じ。

# グラフの出力例
> curve(sin(x^2) * exp(-x^2), -pi, pi)}
> curve(sin(x^2) * exp(-x^2), -pi, pi, n=20)

CRANからの追加機能のインストールも簡単だが、Debianの場合はdebパッケージとしても揃っていて今もunstableではどんどん追加されており、実にお手軽。 東京エリアDebian勉強会でもR(など)入門のセッションが開かれるなど、今なにやら統計解析が熱い雰囲気である。

2009年10月30日

SENHEISER BluetoothステレオヘッドフォンMM 200

Sennheiser Communications Bluetoothステレオヘッドフォン MM 200 Sennheiser Communications Bluetoothステレオヘッドフォン MM 200

ゼンハイザーコミュニケーションズ / ¥ 21,840

iPhone用に購入して使用している。ペアリングなどの設定は至極簡単。曲再生の音質もこのクラスで悪くないほうだと思う。電話がかかってくると(本体の呼び出し音のほかに)ピピピっという音が鳴り、ヘッドフォンの再生ボタンを押せば通話できる。マイク音質も相手方で問題ない模様。iPhone OSの制限上、可能な操作は再生/一時停止、ボリューム調整のみ。巻き戻し/早送りができないのはちょっと痛いが、気になるなら「VMCSettings」あたりを調べるといいと思う(お勧めではないし本質的な解決ではないが……)。有線のときと違ってiPhoneまわりがごちゃごちゃしないのは嬉しい。インナーに付けるパッドは大きさの異なる3種類が用意されている。充電はUSBケーブルで、ACアダプタも使える。1日2時間程度の使用でバッテリ警告が出る前に充電してしまっているので、本当にどの程度持つのかは調べていない。

とはいえ、欠点もいくつかある。最大の問題は音量。iPhoneはBluetoothにはLINE OUTで音を出すため本体のボリューム設定は効かないのだが、ヘッドフォン側で調整可能な最低音量がかなり大きく、音源によっては辛い。代理店に問い合わせをしてはみたものの、ファームウェアへの要望として上げてはくれたそうだが対応される見込みがあるかはなんとも言えないとのことだ。音源を全部音量下げた形で作り直すか、iPhone/iPodのイコライザで少しでも音が丸くなるものを選択することになってしまう。今のところイコライザの「Small Speaker」でしのいでいるが、後ろからくる車や自転車の音を聞き逃すことがあるのでちょっと危ないかもしれない。

もう1つの問題はラグで、これは無線のためにしょうがないのだが、曲再生・停止に0.3秒くらいの遅れがあるのはよいとして、通話でもこの微妙な遅れが発生しているようで、衛星中継のような会話の噛み合わせズレが起きることがある。こちらはそういうものだという意識であれば済む話なので、音量に比べれば大きな問題ではないかな。

日頃から音漏れするくらいの音量に慣れている方なら、まったく抵抗のない製品だと思う。

2009年09月19日

『Xen徹底入門 第2版』

Xen徹底入門 第2版 (CD-ROM付) Xen徹底入門 第2版 (CD-ROM付)
宮本 久仁男, 平 初, 長谷川 猛, 津村 彰
翔泳社 / ¥ 3,654

前版に引き続き、制作のお手伝いをさせていただきました。 前版ではごく数章のみのヘルプだったため、最終的な成果物の品質に関して非常に忸怩たる思いがありました。 そこで今回の改訂にあたっては、いくつかの章の編集担当のほか、(終盤になってではありますが)文章全体の修正にかかわらせてもらいました。時間的・職分的な事情のために実現できなかった心残りはいくつかありますが(内容構成に冗長・淡白なところがあったり、似た内容が別々の章で繰り返されているなど)、前版よりもずっと本として読みやすくなっているのではないかと思います。

本書は、Linuxでの仮想化機構の雄である「Xen」を全般にわたって解説したものです。 プラットフォームとしてCentOS、Debian GNU/Linux、それにopenSUSEを用いて、 Xenの特徴である準仮想化、完全仮想化、マイグレーションといった機能を詳細に説明するほか、 LVMやNFSブート、iSCSI、VNETといった周辺技術についての踏み込んだ紹介、 各ドメインのセキュアな運用方法、と「徹底」と名乗るだけのボリュームを誇っています。 最終章にはXenの商用製品Citrix XenServerのガイドもあります。

Xenでの仮想化環境を計画あるいは運用されているという方には必携でしょう。

2009年06月15日

『iPhoneアプリケーションプログラミング』

iPhoneアプリケーションプログラミング iPhoneアプリケーションプログラミング
新居 雅行
技術評論社 / ¥ 3,360

iPhone自体は所有していないのですが、組版のお仕事で本書にかかわりました。

iPhone本はいろいろ登場してきていますが、本書はそういった中でも、著者がプロフェッショナルな書き手兼元Appleという点で、とてもわかりやすい書籍だと思います。 著者のこだわりの1つとして、本書を購入した方にはブラウザ版のドキュメントも入手できます(カバーにクーポンが付いています)。

組版においても本書ではいくつかのチャレンジをしてみました。XMLによる機械組版はいつもどおりですが、これまでのReVIEW経由ではなく、著者がXHTMLで記述〜XSLTでXML変換までを担当し、これをAdobe InDesign向けにこちらで修正を加えて、データ投入するようにしています。ファイルのやり取りはすべてSubversion上で行いました。マスターデータをXHTMLとする、という約束事ができているので、初校〜入稿のプロセスもスムーズに進んだと思います。また、コラムや側注の処理などにも改善を施しました。InDesign+XMLから独立テキストフレームを扱うのはまだまだ課題が多いですが、たとえば側注に独立テキストフレーム+アンカーを使うようなスクリプトを作ったので、今後活用できそうです。

表紙もモノトーンのクール系でなかなか良い感じですね。

2009年04月21日

『DEBUG HACKS』

Debug Hacks -デバッグを極めるテクニック&ツール Debug Hacks -デバッグを極めるテクニック&ツール
吉岡 弘隆, 大和 一洋, 大岩 尚宏, 安部 東洋, 吉田 俊輔
オライリージャパン / ¥ 3,360

takesakoさんがすでにレビューを書かれているけど、私のところにも献本いただいたので(ありがとうございます!)、ひととおり読んでみた。

オライリーのHACKSシリーズは、「単発だとブログのネタかWeb記事くらいにしか商業的にできないよねぇ」というちょっとニッチな小ネタ話題をある大まかなテーマで網羅的に収集している。「基礎知識から徐々にステップアップして…」といった構成のがっちりした書籍に比べると情報が散在してわかりにくいという欠点はあるけれども、「〜をしたい」という目的ドリブンな読み方・調べ方には便利だし、著者が身軽かつ楽しく自分が好きなものを書けるという利点があると思う(ただ、本書については発行スピードが最優先だったのか、日本語の品質にちょっと首をかしげるところも散見されるが)。

本書はその名のとおりコードの「デバッグ」がテーマだ。本書の「はじめに」でも述べられているように、プログラミングの入門書はあっても、デバッグの入門書というのはこれまで存在しなかったジャンルだ(テスト手法やコードレビュー手法などは人気だが)。本書ではフリーソフトウェアにおけるデバッグツールの代表格のgdbの使用方法を詳細に説明するほか、x86/x86-64のアーキテクチャおよびアセンブリの知識、valgrind等のツールの使用方法などを紹介する。gdbについて実践的に記述された書物というのはそれだけでも貴重だ。

ページの多くを割いて説明しているのが、LinuxカーネルおよびGNU/Linuxユーザランドアプリケーションのデバッグだ。吉岡氏を始めとする著者陣はすべてMiracleLinuxの社員で構成され、特にカーネルのデバッグについては序文を寄稿されているMatz(まつもとゆきひろ)氏が言うように「歴戦のプログラマが経験から獲得したバグの見つけ方・直し方が満載」である。Oopsの解析、クラッシュダンプ、ロックやセマフォの解決、OOM Killer、プロファイリングなど、著者陣の血から得られたLinuxカーネルのデバッグハックが数多く盛り込まれており、価値が高い。「Linus gitリポジトリを追いかけたらもう直ってました!」というオチが多いのは涙を禁じ得ない(古いカーネルを保守し続けるという業)。

GNU/Linuxについて深く記述されているということは、逆に言えば、MacOS XやWindowsといったほかのOSのプログラマにとっては、本書をデバッグの参考書として使うにはだいぶ物足りないものに感じるだろうということだ。本書が『BINARY HACKS』に「インスパイヤ」されて生み出されたように、『DEBUG HACKS MacOS X編』『DEBUG HACKS Windows編』といった書籍が登場することを期待しよう。

GNU/Linuxにかかわっている職業プログラマおよび趣味プログラマには、持っておいて損はない1冊だ。

2009年01月16日

SONY『VAIO TypeZ』オーナーメイドモデル

いろいろとストレスぎみだったので、散財。まぁLet's Y2もだいぶくたびれてきたし。軽くて画面広くてSATA SSD積めるもの。Let'sの後継はアサッテのものしかないし、LenovoはもうThinkPadではなくなるし、NECもSharpもケチくさいものしか出さないし、DELLの軽いのは出てくるのがいつかわからんし、HPは重量について考えるつもりはないらしいし……ということで、選択肢が絞られた中でエッジなのはこのVAIO TypeZくらいかなぁという判断。競合のThinkPad x200sは、最近のLenovoのあまり良くない噂と画面がZの1600x900というスケールにはさすがに見劣りということで脱落した。

TypePには目もくれず予約注文サイトでなんとか注文したわけだが、20日の到着予定が早まって本日到着。

P9600 2.66GHz、Vista Home Premium、スティックACアダプタ、標準バッテリ、HDD 250G/5400 rpm、1600x900液晶、DVDスーパーマルチ、指紋/TPM塔載、日本語キーボード、ラインストームカバーという構成。

HDDはIntel SSDに交換前提とした。BDはせっかくHDMIが付いてるので悩んだが+5万はやっぱり高いよ。そのうちプレイヤーが安く出るだろうからそれ待ち。指紋はLinuxではまだ利用できないらしいけど、それほど高くないので付けてみた。でかいと評判の標準アダプタの代わりにスティックにしてみたものの、これもかなり大きい。ヌンチャクみたいだ。ラインストームは黒塗装の木目っぽい感じかな。

バッテリを付けずに持つと本当に軽い。バッテリを付けるとY2と変わらなくなってしまう(1.4kg)のは残念だが、劇的なエネルギー革命がないとこれは難しいだろうなぁ。

1600x900の画面はかなり広いのだが、タッチパッドがあまりよくないので動きはちょっとやりづらい。Bluetoothが付いているのでそれで接続するマウスを探したほうがいいかもしれない。ちょっと奇妙なボタンキーボードはしばらく使ったら慣れてはきた。

まずはリカバリDVD2枚をDVD-Rに焼く。1枚目を焼き終えたところでWindows Updateダイアログに食われて間違えてリブートしてしまったが、ちゃんとリカバリ作成ツールは覚えていてくれて2枚目から再開することができた。よくできてる。

64ビットVistaといっても、当然ながら見た目も操作感も変わらない。タスクマネージャで見ると32ビット動作をしているプログラムはかなり少なめ。こう簡単にDebianでもbiarchできるといいんだけどなぁ。

しばしVistaを使ってはみたが、ここから何をしたらいいのか途方に暮れる。とりあえず上海をやってみたがすぐ飽きた。 DebianインストールはSSDに変えてからと思ってたけれども、Debianも入れてしまうか。

BIOSアップデートツールに27GBも必要なのは困るのう。

『Mtron SSD 1.8" ZIF 32GB』

Amazon経由だと妙に高いけど、別のところ経由でヒットラインからもっと安く買えた。

旅行などで持ち歩くためのモバイルPCのLoox U50X/Vの1.8" HDD(ZIF PATA)が遅いわ熱がこもるわでロクなことがなかったので最近はHDDを外してUSBメモリを使っていたのだけど、容量もあまり大きくない上に1つしかない貴重なUSBポートを塞いでおまけに邪魔なので、とうとうSSDに交換することにした。

1.8"でZIF接続なSSDはグリーンハウスのが安いのだが、これはコネクタの都合でLooxには接続できない。ということで動作報告のあるこちらのMtron SSDにしてみた。16GBのほうがだいぶ安いけど、せっかくなので32GB。

Loox自体の交換は簡単で、裏板を外して差し替えるだけ。HDD用のセロファンカバーと足を付けるとうまく戻せないが、SSDはプラスチックケースに入ってるので接触する心配はないと判断し、カバーと足はつけないことにした。

BIOSからはPATAのhdaとして普通に見える。32GBだともともとのVistaを入れたらいっぱいになってしまうし、このマシンでVistaを起動したのはたぶん5回以内なので、全部Debianに設定。ハイバネート領域用にスワップは確保するが、メモリ1Gあることだし、fstabでの自動マウントからは外す。パーティションはext3として、relatimeをオプションに指定した。

体感はかなりイイ。元のディスクはCached reads: 464.91MB/s Buffered disk read: 15.21MB/sという速度だったのに対し、Cached reads: 467.31MB/s Buffered disk read: 74.28MB/sと、速度が向上している。OSやアプリケーションの起動は確実に速くなった。ときどき一瞬止まるような動きをすることはあるが、これは前でもなっていたし、むしろCPUやI/Oコントローラの部分の影響があるように思う。熱くなることもないし、音も本体のファンだけになってかなり静か。あと、ほんのわずかではあるが軽くなった。

さっそく、押し詰まった業務状況を打破すべくPDFを開いて監修作業をするという素敵な通勤ライフを満喫している(とほほ……)。

2009年01月12日

『zsh最強シェル入門』

zsh最強シェル入門 zsh最強シェル入門
中島 能和
翔泳社 / ¥ 2,520

私を含め多数の開発者が愛用しているUNIX用高機能シェルのzsh。そのわりと唯一的な入門書として出版されたのが本書だ。ちなみに著者の中島能和さんはOpenVZ徹底入門を終えてすぐに本書の脱稿をこなすというパワフルな執筆能力をお持ちで、つくづくうらやましい。

入門と名のつくとおり本書はzshの超絶変態な使い方にはそれほど立ち入らず、「シェル」の入門書として、基本的な使い方から内部コマンド、プロセス管理、zshならではのシェルスクリプト、zshと連携して使うのに便利なscreenコマンドの紹介といったトピックで構成され、丁寧かつコンパクトに説明されている。

プロフェッショナルなzsh使いには物足りないかもしれないが、zshというなんかすごいシェルがあるらしいので使ってみたい!という入門者向けにはハンディなリファレンスとして役立つだろう。

ときに本書はReVIEW+InDesignによる編集組版の第三弾。OpenVZ本のご紹介のときにも述べたように、今回はキートップのフォント処理、線引き吹き出しの処理を実現し、繰り返し作業の軽減を図った。編集は米国遊行中の朝晩にこなすというなかなか無茶な進行ではあったけど、ノウハウがたまってきたおかげで無理なくスケジュールに乗せられたと思う。現在進行中の第四弾はさらに改良を進めており、同僚もこのツールを使い始めたので一気に(ごくごく内部で)ブレークする気配。