RFC4627としてJSONが定義されたという話(の日本語訳)。
JSONも結構便利だよね。誰かができの良さそうなJSONライブラリを書いてくれたら 標準添付するのがいいんじゃないかなあ。
最近、第二版が出た「The Ruby Way」の著者、Hal Fultonへのインタビュー。
HalへRubyを紹介したのがConrad Schneikerだとは知らなかった。 彼はcomp.lang.ruby設立の立役者であり、 Ruby界に「Principle of Least Surprise」という標語を導入した人でもある(確か)。
きっと松江市長は「オープンソースラボ」にこういうのを期待しているんではなかろうか。 くわばら、くわばら。
とはいうものの、なんらかの形で「良循環」で実現させてみたいものだ。 最大の障壁は地域格差と、それによる(プログラマ)人口密度の低さのような気がする。
日本語訳。
JoelがRubyに関して触れてくれるのはありがたいことだと思う。 それにJoelの結論に対して反対しているというわけでもない。
that's not a safe choice for at least another year or six.
(RoRは)少なくとも後何年かは安全な選択とは言えない
彼はビジネスマンだし、彼自らが Ruby on Railsを選択することによる「リスク」を勧めるのはどうかと思う。
ただし、そこから先はいただけない。
1) it displays a stunning antipathy towards Unicode and, 2) it's known to be slow, so if you become The Next MySpace, you'll be buying 5 times as many boxes as the .NET guy down the hall.
1) RubyはひどくUnicodeを嫌っているし、 2) 遅いことで知られている。次のMySpace(SNS)になろうとしたら、.NETで実装するより5倍の台数マシンを買わなくちゃいけなくなる。
いずれも事実ではない。
確かにJava、PythonやPerlなどUnicode中心のやり方とは異なっているけど、 別にUnicodeを嫌っているわけじゃないし、 Webアプリケーションのボトルネックは、主にネットワークやデータベースで 言語にはない(じゃなきゃ、誰がPHPを使う?)。 むしろ、大きなサイトの話を聞くと、 「マシンは買えばすむが生産性は金だけでは解決できない」という傾向があるようだ。
(追記)
Joel自身はVBScriptをベースにしたWasabiという言語を使っているそうだ。矛盾じゃないか、という指摘があちこちから上がっているが、 他人にリスクを勧めるのと自分でリスクをとるのとは別問題だと思う。
彼自身は「職を危うくする」危険はないわけだし。
Symbian OSで動くRuby。実際には確かめてないんで完成度とかはわからない。
正直、当初UNIX系のことしか考えずに実装されたRubyが、 Symbianで動くとは驚きである。PDAということならZaurusで動くわけだけど。
そのうちPalmとかでも動くようになるかもしれない。 Palmの絶滅とどっちが早いか。
実際の受賞候補者のプレゼンテーションとそれを受けた最終審査。
詳細は(まだ)書けないが、印象に残ったことを
ま、それでも、それなりの結果を出せたのではないか、と思う。
SmalltalkにならってSymbolをStringのサブクラスにしてみた。 東京からの帰りの飛行機の中で実装できちゃった。
どのくらい影響があるのかなあ。
(追記)
ある程度予想していたが、結構広いようだ。 さて、これもどうするかな。
金曜あたりにnil.to_sが"nil"を返すようにしたんだけど、 その影響は意外に大きいようだ。
で、ruby-devでいろいろ議論が持ち上がっている。 実際にはこの変更に固執するつもりはないんだが、 議論の結果
などについて考察が進めばよいと思っている。
しかし、言語のあるべき姿について頭をつきあわせて考えるのは楽しいな。
私の愚痴に対して、 mputさんが突っ込んでおられる。
mputさんのところはコメントできないようなので、こちらで書くことにする。
さて、私の読んだところ、mputさんの主張は以下のようなものだと考える。
合ってるかな?
で、私自身はこれに対して極端に反対しているわけではない。 さすがの私だって「リリースが遅れると社会的信用が目減りする」ことは解っているし、 リリースがちゃんと行われているプロジェクトの方がきちんと運営されている印象を与えることだって知っている。
ただし、(大方の人には意外かもしれないが)私はリリースの技術的動機がなくなったとか、 減ったとか全然思っていない。ほとんどの人はCVSリポジトリを直接アクセスしたり、 スナップショットをコンパイルして使ったりなんてしない。 リリースされていないバージョンは98%の人にとって存在しないのと同じなのだ。
そうすると、天秤が発生する。 つまり、リリースが遅れることによる社会的信用の目減りと リリースにバグが含まれていることによる社会的信用の目減りだ。
「期日通りのリリース」を選ぶか「期日は遅れるがいくつかバグが少ないリリース」を選ぶか、だ。 期日通りのリリースには社会的信用を勝ちえるというメリットがある。 一方、バグにはその存在自身に社会的信用を失わせる働きがある。
もちろん「期日通りにバグのないリリース」がもっとも良いのだが、 なかなかそれは実現しない。かならずどちらかを選ばなければならないとしたら?
私自身は後者の方がより重要だと思う。
しばらく経ってしまえば1.8.0がいつリリースされたかなんて誰も気にしない(覚えてる?)。 だけど、1.8.0に含まれてたバグに突き当たった人の何人かは それ以降Rubyの品質を信じられないだろうし、「だから、もう使わない」って人もいるだろう。 そしたら「期日通りのリリースによる社会的信用」なんて簡単に吹っ飛んでしまう。
さらに今回のリリースについては、以下のような条件もあった。
さらにさらに言えば、リリースってのは(特にRubyのように複数のメンテナがいて、中には反応の悪い人もいる場合には)異常に面倒な上に、実際の作業者(この場合は私だ)にはなんにもいいことないんだよなあ。バグが残ってても、遅れても、文句言われて。開発じゃないからつまんないし。細々とした作業ばかり多くて、気は使うし。
受益者負担? なにそれ?
ま、イシュートラッキングの品質が低くて、 ずっとほったらかしになってた問題もあったのは事実なので、 誰かも指摘しているように、そろそろ誰かが「仕事として」そゆことをやることが 求められるようになってるのかもしれない。
私自身もいろいろ画策してるんだけど、なかなか実現しない。 先立つモノが必要なんだよなあ。
(追記1)
上記の文章を読んで「バグの根絶は現実的じゃないんだから、いつまでたっても出せないじゃないか」という批判は当たらない。
私が言っているのは、すでに分かっているいくつかのバグを放置するかどうかだから。 まだ見つかってもいないバグも含めて全て直してからリリースする、なんて 非現実的な話じゃない。
(追記2)
MoonwolfさんからTrackbackがふたつ。 でもなんかおかしいよ(Trackback内容とリンク先が対応していない)。
そのいち。
Devlog:[Ruby] 1.8.0に対してAppleの連中が全然本気じゃなかったのはBefore Railsだったからでしょ
After Railsだったら、プレッシャーかけてきたと思いますよ。
えーと、いつから「After Rails」なんでしょうか。 ごく最近だった直前のOSXのリリースでもAppleからなんのコンタクトはありませんでしたが。 まあ、コンタクトがあったら1.8.5がそれに間に合うように出せたかというと かなり疑問ですけど。
そのに。
Devlog:[Ruby] Ruby1.8.xのリリースエンジニアリング引き受けます
そろそろ誰かが「仕事として」そゆことをやることが 求められるようになってるのかもしれない。 Matzさんが言ったので、立候補してみる。 報酬はPayPalでよろ。
えーと、DevlogでPaypal経由の寄付を集めていらっしゃるようですが、 それってMoonwolfさんが自分でお金を集めて自分でリリースエンジニアリングの仕事をする ということですか?
(追記3)
otsuneさんのブックマークのコメント
気持ちは分かるが、Matzさん。あなた当事者だから! 「先立つモノが」と愚痴る立場じゃない。まぁパフォーマンスかもしれないけど
よくわからない。私がRuby開発の当事者なのは確かだけど、それだと「先立つモノが」と愚痴ってはいけないのかな。好きでオープンソースを始めたのだが、自分のソフトウェアが世界中に使われるようになったのだから、責任がある。どんなにイヤなことでも我慢して粛々とやるか、それが我慢できいないなら自費持ち出しで人を雇え、と?
(ちょっと怒ってる)
あと、mputさんは、 「Ruby 1.8.0 のリリース」について皮肉られているけど、私はアレで良かったと思う。
そもそもAppleの連中は1.8.0を10.3に含めることに全然本気じゃなかったと思う。 「入れたい」という話は間接的に聞いただけでAppleから直接連絡はなかったし、 だから10.3のためのスケジュールについても「8月のはじめ頃」としか聞いてなかった。 で、8月4日にリリースして、蓋を開けたら入ってなかった、と。
もっと早く出せなかったのは、別に怠けていたからじゃなくて、 その間ずっとバグを直していたからなのだから、仮に正確なスケジュールを聞いていて、 「スケジュールに間に合わせるためにここでリリース」のようなことをした日には バグが一杯残ってて、 Macユーザの間で「Rubyは使えねー」という評価が定着してしまってた可能性が高い。 *1
そしたら、Macユーザの、あるいはAppleのRubyの評価は今よりも低くて、 今日のRubyCocoa標準添付とかいう話にはなってなかったんじゃないかなあ。 単なる憶測だけど。
それに、たとえ間に合ってたとしても、 Appleとしてもメジャーバージョンアップ直後のソフトウェアを取り込むのには 勇気が要ったと思うなあ。
*1 実際には「Ruby古いぞー」という評価があったわけだが、それはそれとして
が、松江駅前テルサ(要するにオープンソースラボ)で開催された。
80名近くの出席があり、なかなか盛況だったそうだ。 あの場所に80人詰め込むのは大変だったのではないだろうか。
私は教会があるので一回休み。
その代わりビデオメッセージで登場。なんだか偉そうだな。 しかし、これの収録はとてつもなく恥ずかしかった。 やっぱ、ビデオとかだめだ。
教会の集会終了後、近所の(独身の)仲間を自宅に連れて帰る。
来週、帰省して家族旅行に出かけるのだが、 宿の手配を楽天トラベルでしたい、とのこと。
が、息子と遊んでもらったり、 夕食を食べたり、本来の目的はすっかりほったらかし。 楽しい時間を過ごした。
いや、ちゃんと良さそうな宿を予約したよ、後で。
「軽量言語(LL)」っていうけど、「アジャイル言語」の方がよくね、という話(か?)
アジャイル宣言を言語に適用すると
だそうだ。 うむ、確かに。
最近のnil.to_sの挙動変化に関連して、Smalltalkではどうなってるか、という話。
いやあ、Smalltalkは概論しか知らないから為になるなあ。
そういえば、PythonのNoneは、
から、「なんでもない」を積極的に実践してるなあ。 ある意味、素晴らしい。
(株)ネットワーク応用通信研究所によるRuby on Railsトレーニングプログラム(有料)、 その三回目。
米子の第一便で東京へ移動。朝が早いよ。
で、毎回のことだが、初日の午前中は私による「RubyとRuby on Railsの概要」。 今回は今までよりもirbを使ってコードを動かす例題が少し多かった。 いや、でも、私が動かすんでなくて、受講者に自ら動かしてもらった方が良かったか。
次回は、スライドをちょっと手直しして、手を動かす時間を加えようか。
午後はゆぞさんによる実践コース。ただ座学で聞くだけでなく、 TA付きで自分でプログラムを組むから(初心者には向かないが)、 学習効果は高いのではないかと思う。
これがこのまま3日目まで続く。 見ていると、前回、前々回よりもスムーズに教えられているようだ。 講師が慣れてきたのか、受講生が優秀なのか。前者...だといいなあ。
その後、懇親会。 懇親会を行うととたんにコミュニケーションがスムーズになる。 過去の経験からも二日目以降の方が質問が活発に出たりする。 学習効果を考えるなら、できるもんなら講習会前日の夜とかに懇親会をしたいよ。
私のThinkpadはHDDが40Gしかない*1ので、そろそろディスク容量がきつくなってきた。
で、せっかく秋葉原にいるんだからということで、パーツショップに寄って 日立Travelstar 160GB HTS541616J9AT0を購入。ついでに2.5" HDDケースも。
*1 HDD 40G「しかない」とは時代も変わったものだ。320KB(!)が無限に広く感じられたのに
講習会終了後、打ち合わせ。しばらく顔を見ていなかった人に再会。 意外な形で頑張っておられた。知らなかった。
RFC2822はメールのフォーマット、RFC3339はISO 8601 形式の RFC 版。 どちらも日付・時刻表現のフォーマットを含む。
Rubyが現在のTime#to_sで用いているフォーマットはdate(1)のものだが、 タイムゾーンの表現など考えるといろいろ悩ましい。 RFC2822のものも、RFC3339のものもイマイチ気に入らない。
私が欲しいのはごく普通の
2006-09-05 01:12:35 +0900
というものなんだが、このような形式の規格はないようだ。 まあ、規格なんてどうでもいいから押し切っちゃうってのも手だな。
そうしようかなあ。
今まで見た中で一番詳しいLL Ringのレポートが英語なのはどういうわけだろう。
SRA OSSが山本くんを雇用してSylpheedの開発をホストするという話。
ちょっと意外。いろんな背景を考えてしまうが、 オープンソース開発者が安定的な雇用を得て開発に専念できることや、 企業がオープンソースプロジェクトを積極的に支援することは素晴らしいことだと思う。
RubyForgeにライブラリを公開したことがプレスリリースになるような日が来るとは。
40GBから160GBへ引っ越し。 何度か引っかかったので将来のためにメモ。
以下の手順で引っ越した。
160GB HDDをケースに入れ、USBで接続
以後、/dev/sdaとして見える。
fdiskでパーティション分け。
今回は末尾に2GBほどswapを用意し、残りは1パーティションに。
ファイルシステムを作る
当初XFSを使おうと思ったが、なぜかうまくいかなかったので*1、従来通りext3 fsを使う。
sudo mke2fs /dev/sda1
ファイルシステムをコピー。
新しいディスクをマウントし、現在のディスクの内容をコピーする。
sudo rsync -aP -H -E -S -x / /mnt
無限再帰にならないため -x オプションが必要。/devは別にコピーする。
sudo rsync -aP -H -E -S /dev /mnt
シングルユーザモードで実行するのが望ましい。 理想はKnoppixなど立ち上げて両方をデバイスとしてコピーすることか。
私は今回動かしたままコピーしたけど(なんて冒険)。 不整合が起きるだろうファイルは引っ越し後に再コピーした。
grubをMBRにインストール
難しいことは何もない(はず)
% sudo grub Probing devices to guess BIOS drives. This may take a long time. grub> root (hd1,0) grub> setup (hd1) grub> quit
HDDの入れ換え
Thinkpadなら簡単♪
reboot
みごとリブートすればめでたくHDDが160GBに。
と、書くとスムーズに行ったように思えるだろうが、 実際は慣れていないのでさんざん失敗した。
以下に失敗の履歴とその対処を書く。
/devのコピーを失敗
/devをコピーするために
sudo rsync -aP -H -E -S /dev /mnt/dev
というコマンドを使った。これでは/dev/devというディレクトリができてしまう。
grubのインストールの失敗
grubではディスク番号とパーティション番号が0始まり。 デバイスファイルでは1始まりなのに注意。
*1 後で思えば/devのコピーに失敗していたかも
とうとうビデオ公開っ。でも、時間がかかるのでとても全部は見れない。 Language Updateの範囲でのお勧めはOCamlか。
参加できなかった部分のビデオはなんとか時間を取って見ることにしよう。
SunがJRubyのメイン開発者であるCharles NutterとThomas Eneboを正式に雇った、という話。
とうとう来たよ。そういう時代が。
彼らのブログ
立役者(らしい)Tim Brayのブログ
もう11月かよっ。テーマは「理系・文系」。でも、書きおわらなかった。 正確には書きすぎたので削らなくちゃ。
日経Linuxの方は「HTTP+CGI」。こちらは半分ほど書けた。
Dave Thomasから「yacc捨てたいって言ってたよね、こんなのどう?」と紹介されたもの。
大変面白そうだけど、背景となる理論が理解できてない。
Cを対象にするコンパイラ・コンパイラがあれば理論なんて分かってなくても使えるけど、 どうもHaskell, Java, Tcl対象のものしかないみたい。 「自分で作る」ってのは避けたいしなあ。
教会に集合し、何人かの仲間と一緒に新見まで移動。 今回は運転してもらえるのでだいぶ楽をした。
新見ではいろいろな話を聞けて大変ためになった。 夜更かしが多い生活をしているので、こういうずっと話を聞くタイプの集会では 居眠りをしてしまうことがあるのだけど(自制心のなさよ)、 今回は一生懸命メモをとったので、(ほんの一瞬を除き)集中力を維持できた。 メモ重要。後で思い返せて役に立つしね。
印象に残ったこと
で、うちに帰った風呂の中でRubyのことをぼーっと考えていたのだが、 もしかするとM17N化しても文字列のデフォルトはbinaryのままでいいんじゃないだろうか。 大抵の文字列処理は正規表現を使えば可能なのは分かってるんだし。
今、(1.9に)存在しなくて、M17Nに絶対欲しい機能はなんだろう。
文字単位の文字列処理
欲しいこともあるだろう。いつも必要かどうかは分からないけど。
文字、文字クラスの名称による指定
「\p{KATAKANA LETTER MA}」とか。これは欲しいと思う気持ちは分かる。 なにが書いてあるかわからない「\343\203\236」という表現よりはずっと良いから。
他にあるのかな。
あと、アプリケーションデフォルトが分からないライブラリをどうやって構築すべきかは きちんとした方針を用意しないと使えないM17Nになってしまうだろうな。
今回は2年に一度の衛星放送によるステーク大会。 朝から米子に移動。
山陰側だけでも集まると結構な人数になる。 会場はほぼいっぱい。
直前にプロジェクターのランプが切れたとかで(不運な)、 急遽家庭用プロジェクターで投影することに。 そこまで大画面にすることを想定していないのか、かなり暗い。 私たちの席はかなり後ろの方だったので、人の顔がよく見えない。 なんか近視の人が見てる世界のようだった。 ということは、普段の世界に近いということか、私の場合。
日本向けということで、 日本の文化や歴史に配慮したお話が多かった。 考えてみればアジアの中でも少々特殊だよな。
ただ、予定よりもはるかに短い時間で終ってしまったのにはびっくりした。 2時間あると思ってたよ。はっきりした原因は分からないけど、 なんかトラブルでもあったのかな。
まあ、短くはあったけど充実した内容であったし、 かえって時間に余裕ができたので、それはそれで良かったけど。
今回もメモをとった。後で見返してみないとな。
というわけで、近くにいない妹と弟、それと頭痛で体調不良という妹婿を除いて 一族が実家に集合。えーと、ひい、ふう、...15人か。
一緒にお昼ご飯。子供は運動会並みに駆け回る。 実家は古い家だし、階段が急(75°くらいありそう)なので、 見てる方は心配なのだが、あいつら恐怖心というものがないのか。
もっとも考えてみれば、自分が子供のときはもっと危ないことしてたよなあ。 良くケガしなかったものだ。
いや、してたか。たまに打ち身とか捻挫とか。 親も気が気でなかったことだろう。
今になって分かる親の気持ち。
ハードウェアが不調であった beryllium.ruby-lang.org のリプレースも完了し、 とうとうwww.ruby-lang.orgがリニューアルされた。
なんかすごいかっこいいぞ。 ずっと昔の手でHTMLを組んでた頃のものと比べると雲泥の差だ。 tDiaryも良かったけど、エントリのURLが日付(のような数字列)になっちゃうのが CMS的でなかった。まあ、tDiaryとしたら目的外の流用なわけで、 「そんなこと言われると困っちゃう」といったところだったろう。
いずれにしてもそのような点についても解消された。
今回はRuby on Railsで実装されたCMS、 Radiantを使っている。
英語版の方が情報が多いので、 時間に余裕があって、英語が苦手でない人は そちらも参照していただきたい。
リニューアルに関った多くの人々に感謝したい。 特に前田くんとリーダーを引き受けてくれたJohn W. Longに。
あ、そうそう。韓国語版とかも計画中。
携帯電話の限られた資源の中で効率的に復元できるということらしい。 あと、復元と同時にバリデーションもできるとか。
でも、今なら携帯でもzip解凍ルーチン積んでるだろうし、 そんなにうれしいのかなあ。
戸松さんのブログ。動的言語支援用にJVMに最近追加される決まったinvokedynamicは要らない、という話。
Pnutsがやっているようにちゃんとメソッドキャッシュを使えば(遅い)リフレクションを使って メソッド呼び出しをすることはほとんどないから性能には関係ない。 しかも、(Pnutsには)invokedynamicを使ったのでは呼び出せないケースもある、 ということのようだ。
まあ、確かにIronPythonも同様の技術でCLR上で速度を出したんだものなあ。 JRubyの連中がいろいろな成果をあげて、Sun本体に動的言語実装のテクニックを蓄積してほしいものだ。
というか、戸松さん自身がSunなのに、どうして伝わってないのかな。 「サン・マイクロシステムズ」と「Sun Microsystems」では違うということなのだろうか。
Curlの開発環境がとうとう無償になった、という話。
これを「イヤな流れ」ととるか、「起死回生の一手」ととるか。
Curl頑張れーっ。
先日も書いた通り、今回のテーマは「HTTP+CGI」。
過去にも何度も書いたことのあるテーマなので、 難しさはそれほどでもない。ただ、まったく同じ文章になってしまいがちなのが 難点だ。さすがにおんなじ文章じゃ、読者に申し訳ない。
あと、生のHTTPやCGIは技術として古いので、 文章が古臭い印象があるのも否めない。 同じく古い技術でも、全然古さを感じさせないものもあるのにな。 たとえば、高階関数とか型とか。
やっぱ、数学にルーツがあるものは強いか。
Quiltはスタック型のパッチマネージャである。
たとえば中央リポジトリにあるソースコードをローカルにコピーして、 手元で変更を行うとする。それらの変更を塊ごとにパッチとして管理し、 積み重ねておくことができる。
「この変更はやっぱりやめた」という時はパッチをポップすればよい。 また気が変わったらあらためてプッシュする。
中央リポジトリの状態に合わせるためには、以下の手順を行えばよい。
これで、ネットワークが切り離されても、 作業単位ごとに変更を管理できる。以前考えていたネットワーク独立型開発にもぴったり(元々その目的で開発された)。
ところがQuiltにも欠点がある。 それはこれから編集するファイルをあらかじめ宣言する(quilt add)必要がある点だ。 Quiltは非常に原始的な(全部shで書いてある)システムで、基本的な原理は オリジナルを別の場所にとっておいて、必要に応じてdiffをとるだけだ。 また、パッチを作る時にもあらかじめ「これからパッチを作る」と 宣言(quilt new)しなければならない。
いずれにしても「あらかじめ」というのがキーワードである。 私のような頭よりも手が先に動くことがあるタイプにはあまり向かない。 そもそもバージョン管理システムそのものが「あ、まずかった」と思った時に巻き戻せる ことを目的としているので、このような「あらかじめ」を要求するのは望ましくない。
そこでちょっと調べてみるとEmacsのQuiltサポート(quilt.el)というものがある。 これはQuiltが管理するディレクトリでは、それを検出してファイルを自動的にread onlyにしてくれるものだ。quilt addしないと編集できないから、ついうっかり失敗ということがない。
これなら使えるかな...、と思ったが
うーん、もうちょっと考えてみよう。 GITの上にQuilt相当を実現するStGITというのもあるらしいから、それも調べてみないとな。
先日のサイトリニューアルの件が日経ITProに掲載された。
正直、「こんなことまでとりあげられるの!?」という感じだが、 それだけRubyが旬ということなのだろう。
できることならば、ブームは去っても「そういえばそんなのあったよね」などと 言われてしまうようなことがないようにしたいものだ。
quilt.elの件でEmacs Lispを調べている時に見つけたEmacs Lispライブラリ。
mwheelはマウスホイールのサポートを行うライブラリ。
大抵のマウスはスクロールホイールの上下をそれぞれボタン4とボタン5に割り当ててくれるから .emacsの中に以下のように書いておくと、ホイールでスクロールができる。
(define-key global-map [mouse-4] 'scroll-down) (define-key global-map [mouse-5] 'scroll-up)
しかし、これでは現在のマウスカーソルの位置は意識してくれないから、 ウィンドウを分割している時に現在のテキストカーソルがあるウィンドウで スクロールが発生することになる。 (特にWindowsでは)ホイールは現在マウスカーソルが入っているウィンドウをスクロールしてくれる ことが多いので、これはあんまり嬉しくない。
そんな時にはmwheel.el。.emacsに以下のように書くだけ(Debianではパスの設定やrequireは要らない)。
(mwheel-install) (setq mouse-wheel-follow-mouse t)
これで他のGUIアプリケーション同様、現在マウスカーソルがあるウィンドウをスクロールしてくれる。
あと、マウスカーソルとテキストカーソルが近すぎるとなんか邪魔な気がするのは 私だけではないはずだ。そんな時にはmouse-avoidance.el。
(if (display-mouse-p) (mouse-avoidance-mode 'exile))
これを.emacsに付けておくだけで、マウスカーソルとテキストカーソルが近くなりすぎると マウスカーソルの方がよけてくれる。よけ方には何種類かあって
個人的にはexileが好みだが、animateも面白い。
Joel Spolsky、ふたたびRuby(のパフォーマンス)について語る。 結局は「だって遅いじゃん、コンパイルできないし、動的だし」という話。
このことの受け止め方はそれぞれだと思う。
たとえば、SeasideのAvi Bryantは「HREF Considered Harmful: Ruby and Strongtalk」において、
と反応している。ま、それは言える。LispもSmalltalkも長年の投資で それなりに高速化されている。場合によっては、通常コンパイル型言語と呼ばれることの多い 静的型言語よりも高速なケースもあるくらいだ。
DHHも反応している。「Outsourcing the performance-intensive functions (Loud Thinking)」で、
といった感じか。ごもっとも。私の以前の反応とも対応している。
まあ、Webサービス(ASP)的なBasecampと 結局ユーザサイドにインストールされるJoelのところのFogBugzでは 前提が違うのかもしれない。
また、ウサギ(C#)とカメ(Ruby)にたとえたブログエントリもあって面白かった。
さて、私自身は大規模なシステムやたくさんのユーザがいるシステムをRubyで組んだことはないので (我が社には何人もいるけど)、エンタープライズなRubyについて語っても説得力はないのだが、 この件で感じたのは、JoelがRubyについて少なくとも検討するだけは真面目に考えた、という事実だ。
つまり、(ソフトウェア開発に関して私と趣味・趣向・思想が全く異なる)Joelでさえ、 検討に値するほどRubyがメジャーになったということだ。 だって、ここに名前が出る言語っていったら他にはC#, Java, PHP, Pythonくらいなもんだよ。
思えば遠くに来たもんだ。ここまで来れたことを考えたら、 Joelが実際にRubyを使おうが使うまいがそんなことは小さいことに思える。
ベンチャー企業「ウェブツーポイントオー」がRubyを選んだ理由。 簡単に言うと「とんがった個人が利用してばりばり生産性をあげちゃったから」。
ま、Rubyが採用される、あるいは強みを発揮できるケースってのは 結局そんなものかもしれない。
しかし、Rubyが広まるにつれ今度は「ほんとはJavaで開発したいのに、業務命令でしぶしぶRuby案件を開発する」なんて人も数多く出てくるんだろうなあ。なんか現在なら代わって欲しい人が続出しそうなシチュエーションだけど。
結局、Javaにクロージャを入れることになったGoslingのひとこと。
I have somewhat mixed feelings about closures: they are pretty complicated. But they're an instance of what I think of as the Black Hole Theory of Design. I have a really strong memory from years ago of Guy Steele saying roughly "Lisp is a Black Hole: if you try to design something that's not Lisp, but like Lisp, you'll find that the gravitational forces on the design will suck it into the Black Hole, and it will become Lisp". [Guy doesn't actually remember making this remark, but he does say it sounds like the kind of flip comment he would make; I could also be totally mis-remembering who said it, but I haven't found any quote like it through Google].
Guy Steel曰く「Lispはブラックホールだ。「Lispに似た(でもLispではない)なにか」を作ろうとすると、重力につかまってブラックホールに落ちてしまう。そしてそれはLispになる。
うーん、確かに。Rubyだって見る人が見ればLispだろうしな(だがマクロは拒否する)。
ITProの記事。MSN毎日インタラクティブでも紹介されている。 U-20プログラミングコンテンスト 優秀作品決まる
ITProの記事のタイトルにもなっている団体の部最優秀作品「ぽたり de アート」は、 昨年の最優秀作品「AKI黒板」に似過ぎているという意見もあったが、 「こだわりが面白い」ということで採用。
これで「U-20は黒板系が狙い目」という風説が流れなければよいが。
個人の部最優秀賞は「プログラミング言語Spinel」。 昨年の「Frontier」の続編だが、スクラッチから書き直している(ソースを見たら本当に書き直していた)。わずかの期間に次の言語を作り出したパワーを評価した。 また、Frontierと比較してSpinelはより「普通のプログラミング言語」に近づいている。 粗削りなところが減って(残ってるけど)、「言語デザイナーとして経験を積んだな」ということを 感じさせる。でも、実用するにはGCとかが欲しいなあ。
あと、「Atomoo」の作者はうちの長女と同い年である。 こうもちがうものか。いや、長女にはプログラミングとか教えてないけど。 最終審査会での彼のプレゼンは(年齢を考慮すると)驚異的であった。
ふたたび開発環境を提供しはじめたボーランドを応援する記事。
それだけといえばそれだけなんだけど、
Intersimone氏は,今後ボーランドの開発ツール部門がよりプログラマ指向になること,プログラミングする人の数を増やすことが世の中にとっても同社にとっても重要であることを繰り返し強調した。氏の考えには,「初心者に使いやすい開発環境を安価に提供する」という,かつてのTurboシリーズの理念がそのまま受け継がれている。ここ数年間,プログラマの人口を増やせないかと考えてきた記者は,大変心強く感じたものである。
ただ残念なことに,インタビューの席上ではマイクロソフトのツール群に対して明確なアドバンテージを打ち出せるような方策は聞けなかった。ターゲットとなるプラットフォームをIntel Macや家庭用ゲーム機に広げてみたらどうか,最近流行のスクリプト言語,動的言語を扱ったらどうか,などいろいろ話を振ってみたものの,「Turbo製品群は第一弾に過ぎない,今後期待してほしい」というだけで,明確な回答は引き出せなかった。記者はTurbo Rubyでも出せば結構ヒットするのでは,とも思うのだが。
た、「Turbo Ruby」?
Debianのアップデートを行い2.4.0-5にしたとたんにフォントが汚くなった。 小さめのフォント(16ポイント以下)に対してビットマップを使うようになったらしい。 しかし、個人的な好みとしては8ポイントくらいまではアンチエイリアスが使いたいんだけど。
たぶん、/etc/fonts/conf.d/のどれかのファイルをいじれば良いのだと思うんだけど、 この大量のXMLファイルのどこに必要な情報があるのかわからない。
だからXMLは嫌いだ(八つ当たり)。
ある言語で頻繁に使われるデザインパターンは、他の言語ではパターンでさえない。 よって「デザインパターンは言語の弱さを示すサインである」という話。
確かにブロックを持つRubyではVisitorパターンや、Iteratorパターンは もはやパターンとは呼べないレベルだし、Observer、SingletonやDelegatorは ライブラリで対応できちゃう。
ということは、デザインパターンが頻出する言語は、「弱い言語」である、 ということであり。言語設計者はデザインパターンが頻出しない言語を目指すべき、ということ?
そうなのかも。とはいえ、「マクロが解答」というのも癪な話である。
Pythonを高速化する細々としたテクニック。 多くはRubyにも適用可能だ。
Hampton Catlinによって開発された新しいテンプレート言語。 「HTML Abstraction Markup Language」なのだそうだ。
!!!
%html
%head
%title Client Admin Site
%meta{"http-equiv"=>"Content-Type",
:content=>"text/html; charset=utf-8"}/
= stylesheet_link_tag 'tabbed'
= javascript_include_tag 'tabbed'
%body
#application
#header
.container
.statusbar
.logo
%strong Admin Interface
.menu= link_to 'logout',
:controller => 'account', :action => 'logout'
%br{:style=>"clear:both;"}/
.tabs
%ul.navigation
%li= link_to 'Member Approval', member_admin_url
%li= link_to 'User Management', user_admin_url,
:class => 'selected'
%li= link_to 'Pages', page_admin_url
%li= link_to 'Reports', reports_url
%li= link_to 'Help', '/'
#page
#content
//These will only render if there is
a non-false value returned from the helper
#errors= print_flash(:error)
#notice= print_flash(:notice)
= @content_for_layout
#sidebar= @content_for_sidebar || false
%hr/
#footer
%p= "Copyright Hampton Catlin 2006"
えーと、慣れたら使いやすい....のかもしれない...多分。
テレビで放映していたものを子供たちに見せた。
映画は自分たちで楽しむばかりであまり子供には見せてなかったんだけど(ポケモンかアニメにしか興味を示さないし)、 なんか、みんながみんな気が狂ったように笑うんだけど。
他の人(悪党)が痛い目にあうのがそんなに面白いのかしら。
確かに可笑しいけど。
というわけで、この種のものがウケると分かったので、 他にも見せてみようかしら?
中学校の運動会が台風で中止になったので、 妻がかねてから行きたいと言っていたフリーマーケットに参加。
環境関連のイベント(名前忘れちゃった)の一部だったのだが、 私としてはフリーマーケットよりも環境関連発表の方が面白かった。 知り合いや取引先が出展してたりして、ちょっと気恥ずかしかったけど。
MYCOMジャーナルでRadiantが取り上げられている。 キャッチアップが速い。
最近、MYCOMにイイ感じの記事が増えているような気がする。 いや、Rubyが取り上げられたから言うわけじゃないけど。
教会ではいろいろな方の貴重な話が聞けたが、 そこに交じって私も話す必要があった。
その時にはかならずしも十分に伝えられたとは思えないのだが、 伝えたかったことを(宗教色を薄めて)再度まとめてみる。
バーバルコミュニケーションとは言葉によるコミュニケーションである。 話すとか書くとか、そんなの。対するノンバーバルコミュニケーションは、 言葉によらないコミュニケーションね。
「子供は親の背中を見て育つ」とか「男は背中で語る」とかいうのは
ノンバーバルコミュニケーションである。なんかカッコいいけど、
実際にはノンバーバルコミュニケーションはえらく効率が悪い。
業界的な表現をすると大域幅帯域幅が狭い。
ノンバーバルコミュニケーションでは、伝えたいことが そもそも伝わらないことも多いし、たとえなんらかの情報が伝わったとしても 本人が意図している通りに伝わることはまれで、むしろ大幅にノイズが入っていると 考える方が自然だ。コミュニケーションに、そういう品質の低いチャネルを使っていると、 誤解、行き違い、不満などは頻発する。
幸せな生活のためには伝えたいことはちゃんと言葉にして伝えよう。 ここでの原則は「言わないことは伝わらない」である。
では、ノンバーバルコミュニケーションは役に立たないか、というと全然そんなことはない。
帯域幅が狭いということは伝送できる情報が少ないということだが、 それそのものはチャネルの性質で問題ではない。 問題はノンバーバルコミュニケーションでバーバルコミュニケーションと同等の情報量を伝達しようというところにあるのだ。それは無理な相談である。
私の知人の調べによると、両親との折り合いが悪い子供の大半が持つ不満は 親の言ってること(バーバル)と実際の態度(ノンバーバル)が食い違っていることなのだそうだ。 別に知人はまじめに統計をとったわけではないが、話半分としても共感できる。
人間は嘘をつく。言葉で嘘をつくのは非常に簡単だ。 悪意のある嘘以外にも「建前と本音」のような嘘もある。
一方、言葉を使わない嘘は、不可能ではないものの、言葉の嘘よりもずっと難しい。 そのせいか、言動不一致があると、態度によって示されるものの方が受け入れるものらしい。 ああ、本当はそう思ってるんだな、と。
ノンバーバルコミュニケーションは少ない情報しか伝えることができないが、 伝わる少ない情報には大変大きな意味がある。 つまり、伝わった情報はバーバルコミュニケーションによる情報よりも「重い」と言える。
ここでの原則は「言行一致重要」である。
「言葉で伝え、態度で追認する」。子育てにあっても、人に接するにあたっても そういう生き方で望みたいものだ(まだ、できてないけど)。
娘の学校の先生が授業中「The Fly」に言及したらしい。 どんな文脈だったのか興味があるのだが、 それはともかく「見たい」というので借りてくる。
ついでに「ホームアローン」も借りようと思ったが、 それは貸し出し中。同じことを考える人は多かったらしい。
で、みんなで(恐いのが嫌いな次女は遠慮した)鑑賞。 ....、さすがクローネンバーグ。趣味の悪さは一級品である。
先日来の問題は要するに今までよりも積極的に埋め込みビットマップフォントを使うようになった ということらしい。で、ビットマップフォントとアウトラインフォントでウェイトが ずいぶん違うのが気持ち悪い(ボールド好き)。
などとぐちぐち言っていたが、どのXMLファイルを設定したらよいのか途方に暮れていたら、 武藤さんのところに ヒント(というか解答そのもの)が。
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font" > <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> </match> </fontconfig>
こいつを.fonts.confに入れて元通り(ちょっと違うような気もするけど)。
先日断念したQuiltをGITをバックエンドとして実装したもの。 これはいい。Quiltではできなかった以下のことができる
これを使えば、ネットにつながらない時でも自由にハックして、 その結果を(パッチセットごとに名前を付けて)保存できる。 また、ネットにつながった時に、upstreamとマージして、 パッチセットごとにコミットできる。
StGITの導入方法は以下の通り。
ローカルで編集する場合には(個別の修正ごとに)
upstreamからマージするためには
upstreamにコミットするためには
で、これだとちょっと手順が繁雑なので以下の三つのシェルスクリプトを作った。
各スクリプトの実装は宿題とする...なんてね。反響が大きければ公開しよう。 それぞれ小さなスクリプト(stgnew4行、stgpull13行、stgpush28行)だけどね。
で、StGITのおかげでRubyをハックしたい気持ちが増大した。
で、今回はStringのサブクラスとなったSymbolについて。 いろいろな選択肢があり得たのだが、さんざん考えた結果、
とした。 全体にSqueakの動作に近づいたことになるのかなあ。
出た。今回は「言語探訪」は代打にお願いした。 まあ、私じゃ「なでしこ」はじゅうぶん紹介できかったと思うから、 かえって良かったんじゃないかな。
もう2年にもなるそうだ。 それもこれも笹田くんのおかげである。
外部からYAMLファイルで指定したsignature validationを行うライブラリ。
ruby-talkでは「Signature ValidationはDuck Typingではない」という論争が 起きたりもしたが、まあ、沈静化したらしい。火消しに走った甲斐があった、というものだ。
Tim O'Reillyによる講演。要するに従来のオープンソースという枠組みでは 自由を担保できないタイプのアプリケーション(具体的にはWebアプリケーション)がある、 という話。GPLv3の主要なテーマの一つである。しかし、Opensource 2.0とは 陳腐なキーワードだなあ。
先日、メールによる取材で「オープンソース2.0」というキーワードを かかげたものがあり、「それって何よ」ってツッコんだら、 そのキーワードは引っ込んでしまったという経験があった。
その矢先にこれだものなあ。
yomoyomoさんから「前から使ってたの知らないの」との指摘。
そういえば、以前に読んだような気もしないでもない。 不明を恥じる。 まあ、あんまり記憶力に自信がある方じゃないんで。
ただし、
ということは明記しておきたい。
おめでとう。いやあ、開発方面にも人材豊富な感じがしてうらやましい限りである。
Python 2.5リリースを記念して、Ruby 1.9にもString#partitionとrpartitionを追加した。 「リスペクト」である。
Open Source Development Labs(OSDL)のリーダーは米国時間9月20日、現行のGNU General Public License(GPL)の適用対象ソフトウェアが、現在策定中である次版のライセンスの適用対象ソフトウェアとどう関係することになるのかについて、 Free Software Foundation(FSF)は早急に説明する必要があると述べた。
しかしCohen氏とは異なる判断をしているMoglen氏は、この問題を明確にすることは当面ないだろうと示唆した。
Moglen氏はCNET News.comに対して、「GPLv3の最終的な条項が明らかにならないうちに、GPLv2の適用対象コードとGPLv3の適用対象コードとの関係についてコメントすることは、時期尚早であるというのが私の意見だ」と述べている。
OSDLの気持ちも分かるが、ここではFSF側の方が筋が通ってると思う。 このほかにもGPLv3に対して批判的な意見はたくさん耳にするが、 個人的にはv2とv3に互換性がなさそうな点が非常に気になる。
「any later version」オプションは大きな非互換性を仮定していないと思うのだけど。
OpenPNEにナレッジ・マネジメント機能を追加した商用SNS。
ライセンスに従っているのなら(サボってOpenPNEのライセンスを確認してないんだけど)、 別になんの問題もないのだが、興味深いのはその値付け。
各メンバーがそれぞれナレッジ収集・整理できる「ナレッジポケット」は初期費用110万円、年間保守費用24万円。管理者のみがナレッジを吸い上げて収集・管理する「ナッレジキャッチャー」は初期費用60万円、年間保守費用12万円。専用サーバのハウジングで月額10万円。
そうかあ。それだけ値段が付くものなのか。まあ、「ナレッジ機能」とやらのデキによるのだろうが。
以前からStringが行ごとに繰り返すeachをベースにしたEnumerableであるのは 使い出がない、と感じていたのだが、この度、思い切ってStringにEnumerableをインクルードするのを 止めてみた(1.9)。
とりあえず、手元にあるコードの範囲内ではStringにあるEnumerableのメソッドは使っていなかったみたい。なんのトラブルもなかった。もし、問題が起きたら、文字列を行ごとの配列に分解するlinesメソッドを新設したので、それをはさんでもらいたい。
string.max → string.lines.max
えーと、権利者が飯のタネに対してより強い保護を求める気持ちは 分からないでもない。
が、しかし、今、進めようとしているやり方には賛成できない
ということで、延ばしたい人は一定の条件(期限付き更新による登録とか)で、 好きなだけ延ばすことができて(上限を設けるかどうかはよくわからない。要らないような気がする)、 デフォルトではもっと短い期間でパブリックドメインになる「二階建方式」とか採用できると、
なんてなことになると思うんだけど。権利者団体は「ネットに理解を示したフリ」をするより、 こっちを推してほしいなあ。
えーと、正直ついていけてません。すげー。
先日、情報処理学会誌に書いた記事に対するコメント。
平易で淡々とした文章の中にも、成功者の自信が自然と感じられ、読んでいて心地よいです。
とほめていただけているようだ。 が、これが本当に「成功の秘訣」を述べているとか、 その「秘訣」に従えば他のソフトウェアも成功できるのかとか については正直、自身のないところだ。
「若い女性」が音頭をとって、ピクニック。 おなじみ森林公園へ。参加人数は前回のバーベキューよりは少なかったが(やはり食べ物関係は出席が良い)、けっこう楽しんだ。
Yahoo! Ruby Developer Community。
なんと。まだ中身はほとんどないみたいだけど、 ちゃんと取り扱ってもらえてるのがありがたい。
やっとPHPやPythonに追いついてきたってことかなあ。
gdbを使ってRubyの中身を見る、というような話。
実際にRubyのデバッグが主な「仕事」である私は日々こんなことをしてるわけだ。 生きたプロセスの中身を見るという点では、よしおかさんのこのエントリも参考になる。
今日は1歳半から3歳までの子供のクラスの代理教師をする予定だったのだが、 ちょっとしたうっかりがあってやらなくても済んだ。
自分の娘を教えるのはちょっと抵抗があったし、 なにぶんまだ言葉もなかなか通じない赤ちゃんにどうしたもんだかと 少々悩んでいたので、ありがたいのだが、 自分のミスで楽になるというのはいかがなものよ。
神権会ではレッスンを行う。こっちは逃げられない。
テーマは「選択の自由」。 私たちは日々選択を積み重ね、 その結果を引き受けるわけだが、 自ら進んで選択を行うことができる権利が 人生においていかに大切か、ということについて。
kosakiさんが、YLUGのカーネル読書会でglibc mallocについて語られたらしい。 スライド[PPT]はさっそく眺めてみた。dlmallocってこんないろいろ工夫してたのね。 Rubyのメモリ管理も以前にいろいろ試してみたのだが、 結局小さなchunkはmallocですなおに管理するのが一番高速という結果が出たのは これらの工夫が原因なんだろうか。 でも、sweepで一気に解放するから、プレゼンの中で「苦手なパターン」と されているケースのような気がするんだけど。
Googleビデオも公開されているので、ぜひチェックしたい。 ビデオは時間がかかるのが難点なんだが。
私は今まで知らなかったんだけど『ObjectView』という雑誌があって、それのPDF版を(少し遅れて?)公開しているのだそうだ。
で、その第9号[PDF 2.2M]が Ruby特集なのだそうだ。
我らがレベッカたんも登場している(Rubyのことじゃないけど)。
やっぱ、Alanって視点が人と違うよな。
我々が(私が)、今、目の前にあるツールをどう良くして、 自分がどう楽をするかってことを考えてる時に、 数百年後のことを考えている。
"Reinventing Computing"という彼の講演からの抜粋[英語]も興味深い。
ああ、そうか、VCPがCVSへのuploadをサポートしていない時点であきらめてしまったけど、 uploadだけcvs ciを使うという手があったよな。
考えてみれば、StGITを使った今の運用だって、そうしてるんだものな。
現在、私が利用しているStGITと上記のsvk+CVS連携の比較は以下の通り。
ま、結局、svkの操作とStGITの(というかQuiltの)操作のどちらが好みかということだろう。 先にも書いたが、私はStGIT派である。
最近、Eric Mahurinが一年以上前に送ってくれていたパッチをベースに Array#shiftと#unshiftのパフォーマンスを改善したのだが、 彼がさらに改善できるというパッチを送ってくれた。
だが、このパッチかなり規模が大きいうえに、 ベースになった時点と現在とでarray.cが相当変化しているので 取り込むのが大変。
一通りのマージはすぐに済んだのだけど、 実行するとSEGVするのだよ。どこにバグがあるのやら。 実際にコミットされるまでにはずいぶんかかりそう。
しばらくはstgのパッチスタックに積んだままかな。
Linux開発者にえらい不人気なGPLv3の話。
しかし、Afferlo GPLもどきの条項を含むとかいう噂とか、 DRMや特許についてえらいドラスティックな条文を含んでいたドラフト1と 比較すると、現在のGPLv3ドラフトはだいぶおとなしい気がするのだが、 それでも「危険」なんだろうか。
どっちかっていうとLinusとFSFの(やや感情的な)対立に 他の開発者が同調しているだけのような気がするんだけど。
ま、私自身もGPLv3を読み込んでないんで、 偉そうなことは言えないんだけど。
オープンソース開発の動機について。
良く聞かれるんだけど、私の動機ってなんだろうなあ。 Rubyやcmailを公開した理由ってのは「公開しないことを考えもしなかった」って 消極的な理由だし。
現在、オープンソース開発者であることから受けるメリットは 数多くあるのだが(飯のタネだし)、それが動機かと問われると違うような気もする。
経済的利益も、名誉も、技術的好奇心の充足も、 違うとは言わないけれど、それだけでないなにかがあるような。
やっぱ、愛か?
うーむ。
夏休み3日目。妻は息子の小学校の給食試食会なのだそうだ。 私が小学生のころと違って、 なかなか魅力的なメニューが提供されることが多い最近の給食の試食というのは 面白そうではあるのだが、 生徒一人あたり親一人ぶんしか提供されないとのことなので、 私は末娘とお出かけすることに。
日中、1才児とふたりだけで出かけたことはあまりなかったので、 ちょっとどうなることかと思ったが、 思ったよりも聞き分けが良く(最近は反抗期なのだ。口癖は「ヤダ」と「自分でやるッ」)、 かなり楽しい時間が過ごせた。
長女の誕生日。ずいぶん大きくなりました。
「小学生の頃、こんなことを考えてました」という話。 まあ、小学生でもいろいろ考えるよね。
私は右目で見るのと左目で見るので色味が少しだけ違っている。 右目で見た方がやや黄色みがかっているのだが、 これをもって「一人の人でも見え方が違うのに、他人はいったいどう見えてるんだろう」と 深く考え込んだことがある。結論はいまだに出ていない。
小学生の哲学で思い出した。 そういえば、小学生の頃、人間の(正確には、自分の)心は三階層になっていると思った。
つまり、
の三層だ。考えている時には言語(日本語)を使うわけだが、 頭の中で日本語をつむぎながら、次に何を話すか考えている。 これは言語よりももうちょっと構造化されていない概念のリンクのようなものだ。 これが第二層。
これらが連携しているから、アイディアを練りながら文章が書ける。 概念のリンクからより表層に近づき文章になる。
が、よくよく自分の心を観察すると、第二層の概念の引き金となる もっと下の層が感じられる。これはあんまり制御されないし、 心の奥のほうから第二層にどんどん概念を突っ込む感じ。
結局、人間の発言とか、作文とかは、一番奥の第三層から出てきたものを 第二層でリンクしたり、フィルタリングしたりして、 第一層で言語化したものなんだ、と一人納得していた10歳くらいの私。
あの頃は「心」に興味があって、心理学者とか精神科医にでもなろうと思っていた。 ま、いろいろ挫折して今に至るわけだが、 いまだに人の心は扱っているような気がする。だいぶ違う形だけど。
最近は自分の机がある本社ではなく、 駅前の「オープンソースラボ」にいることが多いのだが、 今日は(珍しく)お客さんがあった。
プログラミングを学んでそっち方面の仕事に転職したい(CとPerlは読み書きできる)、 けど、まだ勉強が足りないような気がして、とのことだった。
正直、私自身はあまり勉強しようとしてプログラミングを学んだことはないので、 そういうニーズにどう答えたもんだか、と思う。 私は別にそれを仕事にしようとしたわけではなく、 プログラミングそのものが面白いことだと思って、 それを実行してきただけだ。
プログラミング入門書とか見るとなんかすごい違和感があるのはその辺かもしれない。 「プログラミングを学ぶ」ということへの動機づけがよく分からないからだろうか。 「それを仕事にしたいから、採用されるだけのスキルを身につける」というのが 動機なのか。うーむ。
とりあえず、
とアドバイスしておいた。
もしかして、これって「オープンソースラボ」開設以来、 もっとも設立目的にかなった時間だったんではないだろうか。
大新聞社の記者の方がわざわざ島根までいらっしゃって 取材してくださる。Rubyやらオープンソースやら物作りやらをテーマに 3時間も話し込んでしまった。大変、楽しい時間ではあったが、 それを限られた紙面で一般読者にどう伝えるか頭を抱えていらっしゃった。
その辺が新聞記者のつらいところである、たぶん。
「IT化」というのは経営(判断)の自動化でもあるので、 あくまでも「経営の具体化」であって、 あたかも機械を導入するかのように「投資」するという考え方は間違っている、 という話。
確かに、経営陣の持つ「道具を導入する」というイメージと 実際の「仕事そのものを計算機が実行できる程度に明確化・具体化・自動化する」という プロセスとのギャップによって多くの「IT化プロジェクト」の「悲劇」が生まれているような 気がする。
できれば、そういう分野からは離れてくらしたいなあ。 あくまで道具の開発で終始できれば、それはそれで幸せかも。
企業によって支援される「コマーシャルオープンソース」というのは 実際にアリだと思うし、今後ますます重要になっていくとは思う。 私自身もオープンソース企業に雇用されている身だ。否定できるはずもない。
が、だからといってそうでないものを「草の根」と呼んだり、 「コマーシャルオープソースに..草の根オープンソースは太刀打ちできない」 というような捉え方には賛成できない。
リンク先エントリの内容には、 「お金が全て」のような気持ちが透けてみえるし、 従来のビジネスモデルに慣れきった人々からのウケは良くても、 多くの開発者が情熱を傾けている本質への理解が感じられない。 それなしには、たとえ「コマーシャルオープンソース」でも 成立するのは難しいだろう本質なのに。
『ソース公開しているのは(あくまでも)「チラリズム」である』というのは、 オジサンにも理解しやすいオープンソース論だが、 その程度のオープンソース論で、本当にオープンソースビジネスをやっていけるんだろうかと 人ごとながら心配になる。
まあ、この人はSugarCRMの日本代理店の中の人ということなので、 自分とこの商品がオープンソースだろうがなんだろうが、海外から持ってきた ソフトウェア商材を売るというビジネスモデルには変わりない(から、オープンソースの「本質」とか関係ない)ってことなのかもしれない。
朝6時に自宅を出発して大阪へ。XP祭り関西に出席するためだ。 しかし、大阪は遠い。東京よりずっと遠い。
で、スピーカー特権で特等席で話が聞けた。 もっとも今日はRubyのハックで気にかかっているもの(array rfree patch)に かかりきりだったので、あまり一生懸命は聞けなかった。
昼休憩にビデオチェックを行ったら、私のPCのビデオ出力がプロジェクターに映らず、 「また呪いかっ」と危惧したのだが、結構入力に厳しいプロジェクターだったようで、 リフレッシュレートを60Hz固定にしたら出力された。焦った。
昼食は「千房」でお好み焼き。他のスピーカーも来てた。 なんか昼間っからビール飲んでる人もいるし。
で、本番。今回のタイトルは「The State of the Dominion」。 日本Rubyカンファレンスのときのものと同じだが、 すこし書き足してある(スライド)。
どのくらい通じたかわからなかったけど、 Rubyイベントのものをそのまま持ってきても あまり違和感がないくらい「アウェイ感」は減少したのは感じられた。
休憩時間に平鍋さんと、 機械猫さんが提唱した「アジャイルの価値」と言語の関係について話をする。 私が感じた以上に平鍋さんは感銘を受けたみたいで、 英語のブログまで書いていらっしゃる。
英語圏での反応や如何に。
松江からの距離を考える時に、 物理的な距離なら大阪が近い。半分以下か。
しかし、時間的な距離だと東京の方が近い。 飛行機を使うから。移動時間が全然違う(大阪行き飛行機もあるけど)。
東京の方が交通費が4倍以上するから、 経済的距離は東京は4倍遠いことになる
心理的距離は、それら全部を総合したもの+αということになるだろうが、 それでも大阪は遠い気がする。
東京一極集中の弊害か。島根は関西文化圏ではないからか。
私、大阪生まれなんだけどなあ。
昼休み、XP祭りスタッフの某氏と某氏と一緒にお好み焼きをパクつきながら、 子育てについて語る。
「私、中学生の娘がいるんです」「どっひゃーっ」(童顔なので)
「将来、子供に嫌われたらどうしようと。まだ、子供いないんですけど」(気が早すぎ)
とか。大変楽しかった。
Plone使ってるんだ。「美しい日本」にこだわりのある安倍氏なら、 日本製言語たるRubyを使うべきではないのか。...なんて、ね。
あ、でも、ZopeもRailsも結局日本製じゃないしな。