二次審査合格者を集めて、自分の作品についてプレゼンしてもらった上で 最終審査をする会。
年齢のことも考えるとみな驚くほどプレゼンがうまい。 作品の完成度も高まっているし、 私の「二極分化仮説」を実証してくれているようだ。
が、応募作品全般の完成度が高まったせいで、 「勢いだけはあるが完成度は低い」作品が審査を突破する確率は下がったように 思う。良いことなのか、悪いことなのか、私には断言できないけど、 すこし寂しい気がする。
Paul Grahamエッセイ。 成功するために必要な原則は「本気になる」、「やめない」ことである、 ということ。
「あきらめないことは才能である」ことと、どこかでつながるような気がする。
『JavaScript the definitive guide』のDavid Flanaganによる Unicodeトリック。要するにconst_missingのテクニックを使って
Unicode::U00A9
とすることで、\u00A9(copyright sign)を得られるようにする、というもの。
gemsにもcharescという類似のものがある。こちらもconst_missingを使っているのだが、
"abcd#{U6789u789A}"
で
"abcd\u6789\u789A"
が表現できるというもの。こっちの方がコンパクトか。
司会はビショップにお願いした。
日曜学校は聖餐について。 毎週聞いている聖餐の祈りの言葉の意味を改めてふりかえる。 微妙な言葉の違いに意味が隠されている、とかいうような話。
おなか空いた。
Rubyのロゴ、といえばRuby公式ホームページにある 「ブリリアントカットのRuby」が知られているが、 これは「ホームページのロゴ」なんだか「言語のロゴ」なんだかはっきりしないし、 それとして定着しているわけではない。
今回、Rubyアソシエーションのロゴは 決めたけど、これはあくまでも「組織のロゴ」なので、 「言語のロゴ」として使ってもらっては困る。
まあ、決定権はおそらく私(たち)にあるので、 「ブリリアントカットのRuby」こそが「言語のロゴ」である と宣言してもよかったんだけど、 話題作りのためにもコンテストを開くことにした。
我と思わん人は 募集要項を 読んでから、どしどし応募していただきたい。
注意点
八田さんによるGPLv3日本語訳が出た。 今度こそ、ちゃんと読まないとなあ。
Erlangに「インスパイア」された、.NET上の並列支援ライブラリ。
でも、ちらっとドキュメント読んだ範囲では、あんまりErlangらしくなかったような。 が、この辺(従来言語でErlang風味を実現)には興味があるので、 もう少し調べてみたい。
決してTOP500に載ったりすることはないし、 LINPACKの実行に最適化されてたりもしないけれど、 世界でもっとも強力な「スーパーコンピュータ」がまさに存在している。
その名はStorm。ワームなどで乗っ取られたコンピュータで構成される ボットネットである。
こわい、こわい。
(EPNを含む)DRMが存在すると、ユーザは特定のPCやハードディスクに縛られてしまう。 それらが壊れるといっきにデータを失うことになる。 これは買い替え需要を減らす結果にもなり、結果として経済に悪い影響を与えかねない。
どうしてもDRMが必要だというのなら、やはりFairPlayやEPNのような方式にならざるを得ないだろう。この場合、一定期間を経ると暗号が解除される仕組みを組み込んで欲しい。5〜10年で暗号が自動的に解除されるのであれば、それまでの5〜10年間くらいは我慢できるかもしれない。
補償金とDRM、どちらか二択と言われれば、やっぱ補償金かなあ。 DRMは筋が悪すぎる。
法を尊重しない人なら、DRMを選択してクラックするんだろうけど。
取材を二件も受ける。 主に地域振興とかそういうテーマ。
確かに話題にはなってるんだけど、本当にお役に立ってるんだろうかと 不安にならないでもない。まあ、松江市の露出という意味ではそんなに悪くないか。
Rubyロゴコンテストについて。
笑っちゃうのはこのロゴ。

まあ、実際。世間的にはRailsあってのRubyとみなされていることが多いと思うので、 そうでないことを明示的に示すメッセージを発信することにはなると思う。
我々としてもRailsの知名度を利用していないとは言えないので、 あんまり突き放すのも誠実な態度ではないか。悩ましいところである。
ま、とはいえ、だからといってこのロゴを採用したりはしないけど(エントリされてないし)。
Cを誉め称える記事、のように見えるが、 実際には言ってることと実際が全然違う、という記事。
ほめごろし?
まあ、こういう抽象化が必要なケースでは Lispにかなう言語はなかなかないよなあ。
Cのアンチ・イディオム4つ。
mallocの戻り値をチェックする
failmallocの件とは正反対だが、たしかに多くのプログラムでは どうしようもないというのも事実だ。でも、例外が使えるなら raiseした方が良いと思う。
void*をキャストする
キャストを強制されるC++と違ってCのvoid*はそのまま代入できる。 こっちの方が良い(と著者は思っている)。
小さな構造体を参照渡しする
もうオーバーヘッドは問題ない。どんどん使おう。
mallocのsize指定
sizeofの引数に型を指定すると変更箇所が増える。 式そのものを書くと型が変わっても対応できる。
賛成できるようなできないような。
マイクロベンチマークの使い方。
マイクロベンチマークっていうのは 実際のアプリでないベンチマーク向けのプログラムによって 性能を測定すること。
言語処理系(インタプリタとかバーチャルマシンとか)の性能を測定すること になるが、実際のアプリケーションではむしろライブラリの性能の影響の方が大きい。 ので、大抵の場合、マイクロベンチマークは不適切に用いられている。
まあ、世間の誤解ってのはなかなか解けないよね。
なら、それを逆に利用してしまおう。
今回、YARVでマイクロベンチマーク性能を改善することで 実は世間の「マイクロベンチマーク信仰」を逆手にとって マーケティング効果があがることを 期待している。
PythonのORMである、SQLAlchemyとElixirではSQLAlchemyを使うべきだ、という話
SQLAlchemyの例:
from sqlalchemy import Column, ForeignKey, MetaData, Table, types
from sqlalchemy.orm import mapper, relation
metadata = MetaData()
person_table = Table('person', metadata,
Column('id', types.Integer, primary_key=True),
Column('name', types.String, nullable=False),
Column('age', types.String)
)
group_table = Table('group', metadata,
Column('id', types.Integer, primary_key=True),
Column('name', types.String, nullable=False)
)
persongroups_table = Table('person_groups', metadata,
Column('person_id', types.Integer, ForeignKey('person.id', ondelete='CASCADE'), primary_key=True),
Column('group_id', types.Integer, ForeignKey('group.id', ondelete='RESTRICT'), primary_key=True),
)
class Person(object):
pass
class Group(object):
pass
mapper(Person, person_table, properties=dict(
groups=relation(Group, backref='people', lazy=False)
))
mapper(Group, group_table)
Elixirの例:
from elixir import *
class Person(Entity):
has_field('name', String)
has_and_belongs_to_many('groups', of_kind='Group')
class Group(Entity):
has_field('name', String)
has_and_belongs_to_many('people', of_kind='Person')
Elixirの方がだいぶActiveRecordっぽい。ひとめ見ると誰の目にも Elixirの方が魅力的に見えるが
というようなことを考えると(うへー、またExplicit Better Than Implicitだよ)、 やはりSQLAlchemyの方が良い(と著者は考える)。
Leaky Abstractionの弊害については理解できないでもないけど、 ここまで表現の優劣が出るのに採用しないってのは、 それがPython的ってもんなのかねぇ。
RubyConf 2007の暫定プログラムが決まった。
今年からはマルチトラックということだ。 RubyConfの成長曲線を考えるとある意味必然なんだが、 今までのRubyConfらしさを失ってしまいそうで、 少し残念な気がする。いや、変化も当然なので、文句を言っているわけではないけど、さ。
2日目の午前中のセッションがIronRuby, JRuby, Rubiniusと来てるんで、 YARVもなにか言うべきではないのだろうか。
同じ日に予定されている私のキーノートの時間をあげようか? > ささだくん
あんまり普段から(車の中以外で)音楽を聴く習慣がない私には iPodとか欲しいと強く思うことはないんだけど、 「電話抜きiPhone」であるところのiPod touchは PDAとして欲しい気がする。
あー、でもなあ。iPhoneと同じということは(ハックしないと)野良アプリは 動かないってことだよね。PDAとして使うには向かないかなあ。 PDAじゃないもんなあ。
そんな私はいまだにVisor Edgeを使っている。 先日壊れて予備機に移行したので、 新しい予備機を購入しなくちゃ。
ヤフーオークションに出てるかなあ。
RailsからDjangoに移行したらCPUやメモリの使用量が激減した、という話。
しかし、コメントでは「(別の)アプリを書き換えたらRailsのままでも使用量が激減した」という 話もあるから、いつもそうなるという保証があるわけではない。
MicrosoftがSilverlightのLinux版であるMoonlight(Monoで動く)を 提供するという話に関するTim O'Reillyのコメント。
Microsoftがオープンソースの信奉者になったとはとても思えないが、 その重要性を理解し、場合によっては協力しようと考えていることは 素直に認めてもよいのではないか。たとえ、その裏に利用しようという魂胆があるにしても。
ま、オープンソースを利用しようとしているのは 我々も同じことなのだから。
この考えを発展させると、 任意の(Rubyの)オブジェクトをトラバースして オブジェクトを求めるXPathならぬRubyPathを作ることも可能だと 思うのだが、そんなのにニーズはあるのだろうか。
Enumerable#selectとかの代わりができて、 参照階層が深くてもいきなり取り出すことができるのだが、 それがどれだけ嬉しいかどうか、だな。
というわけで、イベント本番。 ホテルをチェックアウトしてそのまま地下の会場に降りるだけなので楽ちん。
最初のプログラムは脳科学者の茂木さんと平鍋さんの対談 であったのだが、平鍋さんがいきなり遅刻する。 台風の影響だそうだ。が、遅れは10分くらいでたいした影響は無かった。 動揺せず「アジャイルで行きましょう」としゃべりでカバーする茂木さん、かっこいい。
で、アジャイルっぽい話についていろいろ。 茂木さんが(ITにはそれなりに詳しくても)開発のことは ご存じないのを、想像力で上手に補完しているところが 面白かった。
その後、講師控え室で、 茂木さんや、(TRONの)坂村先生と名刺交換。 また、名刺ジャンケンに強そうなのをゲットした。
茂木さんと平鍋さんとで写真も撮影。 茂木さんくらい(テレビにも出てて)有名な人と一緒の写真だと 身近な人にも自慢できる。
業界の有名人とかだと、 本当はどんなにすごい人でも、私の家族とかピンとこないものね。 以前、アラン・ケイととった写真を見せて この人がどんなにすごい人か解説してもポカンとしていたものなあ。
ああ、私ってば、なんてミーハー。
で、午後は私の講演。
実はタイトルは先方の希望。 まあ、文句を言わずに承諾したので向こうが悪いというわけではない。
が、「Web2.0」も「エンタープライズ」も イメージ先行で明確な定義がない、どっちかっていうとマーケティング向け用語である。 そこを逆手に取ったプレゼンの流れとした。
内容についてはITProの記事「【XDev】「とりあえず作って,後から作り直せ」,Rubyのまつもと氏が語るエンタープライズ開発」に詳しいのでそちらに譲る。
結構乱暴な論旨だし、反発を感じる人もいそうな気がするけど(「お前なんかに何が分かる」とか、「客がそんなの受け入れてくれたら苦労は無いよ」とか)、 そこはそれ、現状に妥協して変化しない理由を探せば、いつもいくらだって見つかるわけで、 だから変化しなくても良いというわけにはいかないだろう、ということで。
その後、併催のITPro Challengeに顔を出す。
70人ほどの箱なんだそうだが、この3倍の箱を用意すべきであった、と思う。 もちろん、主催者側の諸般の事情も承知しているわけだが。
全般に面白かった。感想は他の人に任せるが、 「みんな若いなー」という年寄りじみた感想を受けたということだけは 特筆しておこう。やっぱ、世代が違うんだよねえ。
飛行機の時間の関係で戀塚さんの話以降は聞けなかったのが残念だ。
ScalaとGroovyでRay Tracingプログラムを動かして、 その速度差はやはり動的型言語であるGroovyと(型推論付き)静的型言語であるScalaの 違いであると言う結論。
しかし、実際にプログラムを見ると、Groovy版も型指定してるんだよね。
となると、動的型、静的型の違いと結論づけるのはちょっと早すぎるかも。 どっちかっっていうと処理系の作りとか、そういうところに関係してそう。 あと、多用している浮動小数点数をどのようにwrapしてるかとか。
コメントを見るとGroovy版の遅い理由は以下のものが考えられるようだ。
最後のはあんまりという気もするが、まあ、単純にそこまで手が届いてないのだろう。
ところで、Rubyも浮動小数点数は即値ではなく、オブジェクトとして 取り扱っているのでGroovyと同じ問題がある(が、Groovyよりはずっと速いみたい)。 最近はメモリも安くなっているし、VALUEがdoubleを中に含むことができる 96bit(packed)とか128bitとかの言語処理系を作ったら、 性能特性はどう変化するだろうか。
RubyConf 2007の登録が開始された。 参加希望者はそろそろ活動を開始しないと、 ホテルの手配とか面倒なことになるかもしれない。
私は例年、主催者側にお願いしてて、楽ばかりしてるけど。
その名はExcel、という話。
が、表計算がうまくはまるような局面では その分野に特化した「言語」の方が生産性的に有利であるのは 間違いないことだから、そのこと自体はさほど驚くことではない。
問題は
であろう。特に後者に関心がある。
Excelが(特定分野で)生産性が高いのであれば、 適切なクラスライブラリを提供することで Ruby(あるいは別の言語)も同等の生産性を提供できるのかどうか。 もしそうであれば、その「適切なクラスライブラリ」とはどのようなものか。
あるいは、Excelは「言語」として特異であって、 汎用の言語に機能を追加したくらいでは、その生産性を実現することは 困難なのか。
Xtalにおいて、selectなどがPseudoArrayなるArrayのように振る舞うオブジェクト(その実態はイテレータの上に構築された擬似配列)を返すようになったという話。
Rubyでも同種のことがやりたい(から、LL魂のスライドでもそう書いた)のだが、 なかなか実現できないでいるところを、あっさり実装してしまう このスピード感が素晴らしい。
ちゅーか、なにか、年取って開発のスピードが落ちたということか。 そうか、そうなのかっ!?
昨日のイベントで裏番組だった未踏発表会のレポート。 5倍とか書いちゃってるよ。 嘘ではない、嘘ではないんだけど。
これがどう出るかは、未知数である。
確かに(マイクロ)ベンチマークを行えば平均5倍速くなるので、 「これは素晴らしい技術だ」と思ってもらえるのか(その場合の賞賛は、ささだくんに行くべき)、 あるいは、実際にアプリを動かしても、実際の速度差は アプリの構成(特にアルゴリズムの選択)やライブラリ実装に依存する以上、 体感5倍は出ないわけだから、「なんだ、言うほど変わらないじゃないか」と 思われちゃうのか。
なんとなく、世の中の流れ的には前者の方が多いような気がするんだけど。
ポール・グレアム最新エッセイ。 出身大学と成功には全然関係がない、という話。
裏を返せば、このようなエッセイが書かれるくらい、 アメリカでも出身学校による先入観ってあるんだね、やっぱり。 もちろん日本でも顕著なんだけど。
今日は家族を連れて新見へ。
かねて予告されていた通り、ステーク会長会が再組織された。 新しく召された人は予想外ではあったが、納得のいくものであった。
語られることのない背景や彼らの決意を考えると 感慨深いものがある。 顧問のひとりは、私が子供のときから良く知っている人で、 なんだか時代の流れを感じたり。
親戚と若干の交流。
あと、配車で少しだけトラブルがあった。 担当としてはドキドキしたが、結局なんとかなったみたい。
「フィンランド生まれのLinuxは、我々アメリカ人から技術的優位性を奪うためのヨーロッパからの脅威だ」という話。
最後まで読んでも「冗談だ」とは書いてない上に、 他の(非技術系)エントリもずっと同じような調子(噛みついて、馬鹿にして、侮辱する)なので、 もしかしたら本気なのかもしれない。
だとすると、アメリカ大衆の底力(っていうんだろうか)を垣間見たような気がする。 ダグラス・アダムズも言っていた。
真のバカでも使えるものを設計しようとして人々がよくやるミスは、真のバカのバカさ加減を過小評価することだ。
そういえばアダムズもヨーロッパ(イギリス人)だ。
大変面白い。
問題は担当スタッフが鋭意作成中であるが、 これも参考にできるかも(笑)。
とはいえ、実際の問題はもう少しストレートで優しいものになる予定。
今回はでかいビデオカメラが持ち込まれて実際の撮影である。
しかし、ほんの5,6分の番組のためにいろいろいっぱい撮るもんである。 そういえば、以前『クローズアップ現代』に未踏の件で数分映った時も おおかたまる半日かけて撮影したなあ。
一番感動したのはディレクターの人が持ってきた、 私が中学時代に使っていたシャープ PC-1210*1を持ってきたこと。 父親に借りたんだそうだ。まだ、保管してたのね。
二十数年ぶりの再会か。 電池と液晶がだめになってて、使い物にはならなかったけど、 とても懐かしかった。
*1 実際にはメモリ拡張されててPC-1211相当
まあ、知らず知らずのうちに自分(作った人)の視点で商売しちゃうというのは しばしばあることだ。
面白かったのはここ。 Rubyが「とがった技術」の代表としてのイメージが(OSS業界の外でも)定着してる ということを示して面白い。
「長島さん、このソフトは最新のソリューションを盛り込みました。言語も今流行りのRubyを採用し、オブジェクト指向で・・・。このライブラリが・・・。さらにこの通信で・・・・・・」
「なるほど、なるほど。分かりました。それで、どれくらい販売されているんですか?」
「それが全く売れないんです。こんな良いソフトウエアなのに、どうしてでしょうか」
でも、そんなの関係ねぇ。
パネルディスカッションで印象的だったのは、楽天の森氏も、CTCの小島氏も“Rubyの楽しさ”を強調したことだ。小島氏は言う。「Rubyを使うようになってから、プログラマが幸せそうに働いているんですよ。このインパクトは大きい。朝から黙々とキーボードを叩いている姿は、今日も会社に行くの嫌だなと思うのとは大きな違いです」。森氏も異口同音だ。「エンジニアが楽しそうで仕事が活発になった。Rubyが広がることで日本が元気になればいい」。
うーん、「楽しそう」なんて要素が業務向けの話でできるようになったというのは、 日本のIT業界も変わったと言うべきか。
もし、本当に変わったとして、もし、Rubyがその変化のきっかけになったのだとしたら、 それが本当に事実なら、作者としてこれより嬉しいことはない。
どんな賞よりも嬉しいかも。
Google SparseHashのベースになっているSparsetableのデータ構造。
Rubyのコードを見て、やっと仕組みが理解できた(遅い?)。 大変巧妙にできている。
こういうアルゴリズムやデータ構造を考え出すことができる人ってすごいなあ。
朝から東京へ移動。 MySQL Users Conferenceへ。
私はMySQLを尊敬してはいるが実際に使ったことはないので、 この話が来た時に断ろうと思ったのだけど、 ちょっと断れないコネクションで依頼されてしまった。
が、MySQLの「素晴らしさ」については、 きっと会場のユーザの方々の方がよくご存じなので、 しょうがない「オープンソース」の話をすることにした。
スウェーデン大使とか企業のえらいさんの挨拶が続いて 私の番が来た時にはセッション終了予定時刻まであと5分であった。 スタッフに「5分でいいですか?」と聞いたら、 「予定通り20分は話してください」とのこと。がっくり。
しかも、「堅い話が続いたので場を盛り上げてください」とのこと。 えー、そんなこと言われても。プレッシャー。
ま、何を言われてもできることしかできないわけで。 いつものようにユルいプレゼンを。それなりにウケた、のかな/
しかし、会場の同時通訳には素晴らしいものがあった。 実はプレゼンしながらイヤホンも付けて英語通訳も聞いていたのだが、 正直、訳すのが難しい部分も ちゃんと翻訳していた。通訳を聞いている人が(やや遅れて)ちゃんと冗談に反応するところが感動。
あと、DHHの名前はやっぱり発音しにくそうだった。
で、出番はこれで終わりではない。
私の所属するネットワーク応用通信研究所と スマートスタイルが NaClとスマートスタイル、「Ruby + MySQL」のソリューション事業で協業するということで、 いろいろと発表。
Rubyに強いNaClとMySQLに強いスマートスタイルで補完関係を構築しようということ。
先日のITpro Challengeで私が帰ってから行われたLTのひとつ。
チケット駆動開発というのは、増井さんのところでも語られていた。 やっぱ、記録という観点からも、意思疎通という観点からもこういうの 必要かもしれないなあ。
Ruby開発でも導入するかなあ。 なんども挑戦しては失敗してるんだけど。
今日だけで二件も取材を受ける。なんだか有名人になったみたい。
Pythonの文法を自由に再定義できるようにした新言語。 またはPythonバイトコードを吐くマクロ処理系。
が、1分で分かる紹介を 読んでもあんまりうれしい気がしないのはなぜだろう。
APLの後継であるJの機能をSchemeで提供するという試み。
Jの配列演算ははまれば非常に生産性が高いのだが、 なにぶん演算子が難しい。JはASCIIで表現できるので オリジナルAPLよりはマシなのかもしれないが、 それでもまだつらい。
Redickについては、ユーザガイドを 読む限りでは(少なくともAPIは)見て覚えられるようなもののようだ。 そのぶん、簡潔さは失っているんだけど、write-only languageになるよりは 良いことなんじゃないだろうか。
SchemeでできるということはRubyでもできるということだよね。 誰か挑戦してみないかなあ。
GTD(Getting Thing Done)を実践するためのツール。
世の中にはGTDといいつつ単なるToDo管理ツールでしかないものは 数多くあるのだが、こちらは
という「ちゃんとした」GTDの手順にのっとっている。
私自身はGTDを身に付けてないので使いこなす自信は無いが、 自分の生産性をあげるためには有効なツールのような気がする。
actionboxはエントリ作成に重心が置かれていて、 その点は優秀なので、今後はタスクを眺めて「次のアクション」を見つける機能や、 リマインダ機能が充実するとよいんだろうな。 あまりそっちに重点を置きすぎると世にあるToDoツールとの差別化が難しくなるかもしれないけど。
ついつい後回しになっていたModelingForumのスライド作成。 前日だっていうのに大丈夫か(だって忙しかったんだもん)。
「モデリング」なんてやったことないので、 かなり場違いな感じがするが、 「なにを話しても構いません」と言われたので、 開き直って全然関係ない話をしようと思う。
最近、エンタープライズとかビジネスそういう話ばかりなので、 いっそ思いっきり「言語おたく」全開の話をしよう。
Guido van Rossumが「GIL (global interpreter lock)を取り除いてくれ」という公開メールに 対して「言うほど簡単じゃないんだよ。以前やってみた時には大幅に遅くなったし」と 返事した、という話。
それはYARVでも同じこと。1.9になってもlockが無くなる予定はない。 理由もほぼ同じで、
という状況でそう簡単にGILを消去できるとは思えない。 Guidoじゃないけど「じゃあ、まず自分でやってみて」と言いたい気持ちは分かる。
一方、JVM上のPythonであるJythonにはGILは存在しなくて、 「同一マシン上であればParallel Pythonよりも高速」だったりするわけだが、 これはJavaの場合、基本的ライブラリがthread safeであると確信できることが大きいんだろう。
あと、JVMの実装が優れているというのもあるだろうけど。
ここでJythonでできてるんだからCPythonでもできるだろうというとは 短絡的すぎる。
ささだくんインタビュー。
そういえば、ささだくんってこれまであんまり自分のこと語ってないよね。 私なんかあちこちで自分のこと吹聴しまくってて 個人情報漏れまくりなのに。
大変面白かった。
構文木を参照することでSQLを生成するライブラリAmbitiousの続報。 高速化、個別DBMS対応(MySQLとPostgreSQL)、gitによるリポジトリ公開など。
引き続き注目していきたい。あと、1.9でこれらがどうなるかについては 我々が考察せねばなるまい。構文木ってなくなっちゃうよねぇ。
韓国では「韓国人は英語が苦手だからオープンソース利用が進まない」と言われているが、 韓国人よりもさらに英語が苦手な日本では結構進んでいるのではないか、という話。
でも、韓国で「オープンソース利用が進んでいない」という印象はあまりないんだけど、 韓国内にいる人はそう思うのかな。少し前まではWindows全盛という話は聞いていて 政府や大企業のサイトがActiveX使いまくり(なのでWindows以外ではネットバンキングも 政府サイトアクセスもできない)という状況だったそうだけど、 今ではずいぶん改善されているんで無かったかな。
各郵便局に配置されているという公衆端末はLinuxらしいし。
しかし、そんなことよりなにより印象に残ったのはここ。
日本だって英語が苦手な人が多いのに、韓国のマスコミの報道によると5000人以上のOSS開発者がいるという。韓国では100人にも満たない。
確かに韓国発のオープンソースソフトウェアについて聞いたことはないが、 それは言語の壁に遮られているせいだと思ってた。
国全部で100人以下? マジで?
どういうことだろう? 確か韓国って3千万人くらい人口があるんだよね。
利用が進むのは勝手だが、利用ばかりで開発に回る人が少ないのは あんまり望ましいことではないなあ。
先日も書いた通り、「好きに話してください」と依頼されたので好きに話してきた。 タイトルも「Rubyからのメッセージ」。 要するに「言語おたく」全開の話(ほんとはちょっとセーブしてるけど)。
モデリングな人々置いてきぼりのような気がしないでもないが、 そこはそれ。メッセージをから意味を読み取るのはレシーバの責務ということで。
責務と言えば、前日のキーノートは 「Responsibility Driven Approach」のRebbecca Wirfs-Brockだったのだそうだ。 彼女のファンとしては惜しいことをした。
これすごい。
物体は軽くすれば強度は弱まり、強度を強めれば重くなることが多い。この「物体の重さ」と「強度」の項目もマトリックスの縦と横に入っており、その交差する部分には「非機械的なシステムで機械的なシステムを交換する」「高価で耐久性のある物の代わりに、経済的で寿命の短い物を使う」「機械的振動」「複合的な物質」といった4つの技術的ブレークスルーが書かれている。このブレークスルーをヒントにすると、いいアイデアが産まれる──というわけだ。
うむ、これに従うだけで技術的ブレークスルーを実現できる(可能性が高い)、 というわけだ。
しかし、このような技術的ブレークスルーって ソフトウェアにもありそう。こういうのをきちんと蓄積していくことで ソフトウェア開発の進歩が速められるかも。
たとえば、メモリと速度がトレードオフの関係になっていることから、
とか。うーん、いまいちだが、まずはとっかかりとして。
締めつけることしか考えてない近視眼的な権利団体の連中に読ませてやりたい。 いや、読んでも信じないんだろうけど。
私は(もともとそんなにこだわってないし)新しい音楽とテレビには そろそろ見切りをつけはじめている。 だって生活必需品じゃないんだもの。
うわぁ、UTF-8で絵文字かぁ。 ケータイの世界はなにが起きるか分からないなぁ。
なんとなく「イヤな臭い」がする。 きっと将来苦労するんじゃないだろうか。
akrさんのLinux Conferenceでの発表スライド。 如何に1.9で(akrさん主導で)ダイエットが行われたか、の記録。
akrさんのおかげで、1.9では以下のようなメモリ削減が行われた。
私自身のダイエットもこれくらい進んでほしいものだ。
スライド前半のRubyのオブジェクト構成の説明も (Rubyの中身に興味がある人には)有益な解説だろう。
Twitterのスケーラビリティに関する情報まとめ。
Twitterの瞬間最大11,000アクセスというのはおおげさに伝えられているが、 平均毎秒600アクセスというのも興味深い情報。 これは楽天の個別サービスのアクセスよりも多い。
また、それを実現したテクニックなどについてもまとめられている。
「STIC is the vendor neutral Smalltalk lobby organization」なのだそうだ。 今まで無かったのが不思議なくらい。
2008年6月18-21日にSmalltalk Solution 2008というカンファレンスも開催するそうだ。
Rubyアソシエーションもちゃんと仕事しなくちゃなあ。 やりたいことは沢山だが、できることは限られている。
とりあえずロゴコンテストの応募は沢山集まってるけど。
Scalaのstructural conformanceについて
def test(f: { def getName(): String }) { println(f.getName) }
と書けば、testメソッドはgetNameというメソッドを持つ任意のオブジェクトを (DuckTyping的に)引数にとりつつ、静的な型チェックも行える、という話。
もう一歩進んで
def test(f) { println(f.getName) }
だけで、
とかまで推論できるとかなりうれしいのだが、 いくら型推論言語でもシステム全体をそれで通すわけには行かないだろうなあ。
C#における並列パフォーマンス実現機能。 C#から離れて純粋にAPIとして見ても興味深い。
都合でお休みになった人の代わりに 聖餐会でのお話が当たる。
時間配分が予想通りに行かなくて 持ち時間が予想の倍くらいになってしまい どきどきした。
あんまり緊張したんで前に話した妻のお話も あんまり覚えていないなあ。
日曜学校は安息日について。
「創造の7日目が安息日のはずなのに、 現代のクリスチャンは週の最初の日である日曜日を安息日としているのはなぜか」 とかいうような話も含めて。
という講演をすることになった。 名古屋は久しぶり。
場所は前の職場のすぐ近くである白川公園。
っていうか、名古屋の地下鉄にはこの講座のポスターが貼ってあるのだとか。 すっげー。
まるで有名人みたい。
松江市のRuby City MATSUEプロジェクトが日経地域情報化大賞を受賞した、という話。
今回受賞したのは松江市で私は間接的な役割しか果たしていない。
とはいうものの、松江市にそのようなアクションをとらせるきっかけくらいには なっているわけで、そのことについては素直に喜びたい。
Ruby City MATSUEプロジェクトの成果がこれまでどのくらい上がっていて、 今後どうなるかということを正確に述べるのは難しいけれど、 「松江市の広報」という観点からは大成功ではないかと思う。
GPLライセンスで、かつコードが複雑になってしまったGCCに代わって 懐かしのPCC (Portable C Compiler) がOpenBSDに取り込まれた、という話。
もちろん、PCCと言っても古いままじゃなくて、 ANSI styleにも対応しているし、 C99対応も進んでいる。 理論上はPDP11でもコンパイルできるはず。
やるな。
「Rubyの講師になりたい人への講座」。
なんだかメタな話だが、ユーザを増やすためには教えることができる人が 増えなければだめだろう、ということでの試み。
三鷹ICT事業者協会が主催した上で、 RA認定資格まで取れる、と。
もっとも当面手に入る認定資格は、「講師」にはちょっと物足りないレベルだろうけど。
なんだかまた表彰していただけるそうです。 しかも、今度は経済産業大臣に。..って今誰だっけ*1?
誉めていただけるのはありがたいことだし、 「なにやってるか分からない人」という周囲からの評価を改善するのに役立つから 今回もありがたくお受けしようと思うのだけど、 なんだか世間での評価と私の実態が乖離しているような気がするなあ。
他にもたくさんの人や企業が受賞する。登くんのところとか。
で、この表彰を受ける同じ日、同じ会場でU-20の表彰も行われる。 で、私も(若者に向けて)話すことになっている。
テーマは「プログラマの内なる衝動」。
ところで、表記の記事では「私が年齢を詐称して応募しても入賞できないかもしれない」と の私の発言が引用されている。確かにそう言ったのだが、 正直、「できないかもしれない」ではなくて「間違いなくできない」だろう。 自信がある。ネガティブに自信を持ってどうする、という気もするが。
マイクロソフトのイベント。 なぜか招待されている。
ITProでレポートされている。このレポートには「研究テーマとして研究」というよくわからないフレーズがあるが、 私が発言したものではない、念のため。
しかし、日本で一番マイクロソフト製品を使っていないエンジニアであろう 私に講演を依頼するとは、マイクロソフトもなにを考えているのだろうか、 と思ったのだが、これはこれで面白い企画だろうと思って参加した。
内容的には「Rubyとエンタープライズ」とかいうような ここの所よくしゃべっている内容だけに新規性は無かったと思う。 その辺を期待した人には申し訳ない。 むしろ、ModelingForumの方が新しい内容があったかも。
個人的に良かったのは、講演前に控え室で、次のセッションの話者である (DLRの責任者でJohn Lamのボスである)Mahesh Prakriyaと話ができたこと。 個人的にデモまでしてくれた。
些細なことではあるが
C#やPythonの文字列はimmutableだし、逆にRubyの文字列はmutableだけど DLRではその辺どうするの>
と聞いてみた。答えは
まだ決まってない。IronRubyはまだとりあえず動くレベルで決まってないことは多い。 おそらくはmutableな文字列とimmutableな文字列の両方を用意するんじゃないだろうか
とのこと。
その他、いろいろな話(IronRubyやDRLのゴールとか、マイクロソフトで働くこととか)を 聞いたのだが、たぶんなんでもかんでもブログに書いてはいけないのだと思う。
とても楽しかった。
というわけで、世間で噂(?)の認定試験の詳細がとうとう発表になった。 問題はまだ完成してないけど。
Ruby認定制度とは
Rubyベースのシステムを設計、開発、運用するエンジニア、Rubyでシステム提案を行うコンサルタント、Rubyを教える講師などを対象とした認定試験制度です。
認定者は、Ruby技術者としての技術力を公正に評価され、高い水準のRubyによるシステム開発能力を持つことを認定されます。 この認定によりRubyベースでシステム開発を行ううえで必要な基礎的な知識と応用力をもつことをアピールすることができます。 試験の合格者は、Rubyアソシエーションにより『Ruby Association Certified Ruby Programmer』として認定されます。
試験の目的
- Rubyの学習・教育において、到達目標となるような技術レベルの基準を示す
- Ruby技術者が技術力を確認し、他者にアピールする基準を示す
- 企業などのRuby技術者の採用(雇用及び開発委託)に際しての判断の基準を示す
認定試験の概要
Ruby技術者認定試験は、Rubyアソシエーションにより委託されたCTCが、受験者のRuby技術者としての技術力を公正に評価するために実施します。開発業務においてRubyを使用するための幅広い技術力を計ることができます。
Ruby Association Certified Ruby Programmer認定資格は、今後複数レベルのスキルに対応して認定することを想定しています。
認定試験合格者には、Rubyアソシエーションが発行する認定証が交付されます。
試験実施要項
- 試験時間 : 90分 14:00−15:30予定(13:00受付開始)
- 試験内容 : 第1回〜第3回(ペーパー試験)、選択式、出題数50問
- 費 用 : ¥15,750
- 第1回試験: 2007年10月27日(土) 松江会場:テルサ松江
〒690-0003 松江市朝日町478-18(JR松江駅前)
※募集期間:2007年9月20日(木)9:00〜10月19日(金)12:00申込締切- 第2回試験: 2007年12月1日(土)東京・松江の2会場で開催(予定)
- 第3回試験: 2008年1月19日(土)東京・松江の2会場で開催(予定)
- 申し込み : 次のホームページよりお申し込みください。 http://www.school.ctc-g.co.jp/ruby/rubycertify
あ、そうそう。第1回の試験は松江会場でしか行われません。 また、初回を記念して、Rubyアソシエーション理事長から舞台挨拶があります。
MySQL Users Conference会場でThinkITのインタビューを受けた時のもの。
っていうか、ビデオメッセージとかめちゃ恥ずかしいんですけど。 自分がしゃべってるのを聞くと落ち込む。こんな甲高い変な口調でしゃべってるんだねえ。 ああ、やだやだ。
私は著作権は大事だと思っている。ので、 通常のケースなら、自分の文章が無断で利用されることに対して裁判を起こす人の気持ちは分からないでもない。ただ、このケースには賛同できない。
絵本の文章をホームページや本に無断で掲載されたとして、奈良市在住の作家、寮美千子さんが18日、岩井国臣・元参議院議員に、侵害行為の差し止めと75万円の損害賠償などを求める訴えを東京地裁に起こした。
しかし、この「絵本の文章」は彼女のオリジナルではない。
訴状によると、絵本は1995年に出版した「父は空 母は大地」で、先祖伝来の土地を追われることになった米先住民の首長が1854年に行ったとされる演説を寮さんが翻訳、再構成した。
さて、オリジナルの著作者は(実際には確定ではないらしいが)先住民の首長であり、 1854年の演説と言うことは、この首長さんが相当長生きでも著作権は切れていると考えてよいだろう。
では、この「無断掲載」は寮さんの著作権を侵害したことになるか。
とはいえ、パブリックドメインの文章を翻訳・出版しておいて、他人に損害賠償を求めると言うのは、どうにも納得が行かない
追記(2009-09-30)
コメントでusagitoさんから情報をいただいた。 無断使用に対する著作者人格権に基づいた謝罪要求に相当する提訴であると理解しました。 「謝れ」と裁判で要求するのは現実的じゃありませんからね。
私が今回納得できなかったのは「パブリックドメインからの二次創作物の財産権に基づいた損害賠償」なので、上記の「賛同できない」、「納得できない」は取り下げます。
というイベントで講演することになった。10月16日。 よしおかさんの頼みを断れなかったからだ。 人脈というのはこのように活用するのね。
しかし、せっかくの機会なのでもうビジネスの話は忘れて 技術っぽい話をすることにした。 ベースはModelingForumの時の話なんだけど、 より技術っぽい話(って言っても、私のことだから知れてるけど)にフォーカスしようと思う。
参加は無料。けど120人が定員だな。あまり多くはない。
この記事で解説されているようなものを「言語」とは呼ばないと思う、普通。 なんか、CPUインストラクションセットを言語と呼んでるような感覚。
でも、アプローチとしては面白い。 「言語」はこの技術を如何に抽象化し、隠蔽したまま、活用するか、 というところが腕の見せ所になる。
Moonwolfさんのところ。
定番の郵便番号データをパースして行数をカウントするプログラムだと、FasterCSV比で19倍。LightCSV比で12倍の速さ。
というからたいしたもんだ。しかし、それでも「Pythonのcsvモジュールに比べると60%の速度」なのだそうで、「Pythonのcsvモジュールは化物か」という気分だ。
いや、専用にC extensionを書き下ろしてるからなんだけど。
先週のMySQL Users Conferenceでもらった資料を眺めているのだが、 PHPの性能を大幅に改善する技術としてFastCGIが紹介されている。 いや、そりゃ、FastCGIは有効な技術であるのは分かるし、 Rubyでもproduction codeではずいぶん利用されている。
が、そんなに新しい技術というわけでもないし、 2007年にマーケット色たっぷりにパンフレットを作って紹介する ようなものではないような。
PHPの(あるいはZend+Microsoftの)マーケティングは 日々耳にするWeb技術のトレンドからずいぶん「遅れた」ところを ターゲットにしているように思えるんだけど、 それっていうのは「PHPの現実」を意味してるんだろうか。
やっぱ、あのバイタリティにはかなわないよなあ。
なんだかひとつふたつ上の世代の業績とかを見てると 「とてもあの人たちにはかなわない」という気にさせられる。 もちろん時間をかけて積み上げてきたものがあるというのも事実だが、 それだけじゃない差を感じる。
うーむ。
あとRubyは型無し(Untyped)な言語で良いような気がする。
ふむ。Rubyにおいて個々のオブジェクトが持っている「アノ情報」のことは型とは呼ばない ということなんだね。それはそれでかなり抵抗があるんだけど、なんでだろう?
型というのはあくまでも式に付属するものであるという観点から考えると いっそ「型無し」と呼んでしまって安全とみなす方が自然なのかな。
RubyでもChangeLogエントリは英語で書くようになってひさしいが、 英語が苦手な日本人としては悩ましい場合もないわけでない。
このテンプレは結構参考になるかも。ま、RubyのChangeLog自身が テンプレであると言えないこともないのだが。
Erlangの組み込みデータベースであるMnesiaについて。 パタンマッチのあるDBMのようなものか。
が、APIを見る限りでは普通のデータベースに見えるので、 Erlangならでは高速性とか分散とかの仕組みは見えない。 やっぱ、中身を見ないとダメかなあ。
Rubiniusが開発スプリントを行ったという話。 開発も順調に進んでいるようで素晴らしい。 あと、SunはJRubyだけでなく、Rubiniusや本家Rubyの開発も支援してる、 ということも忘れちゃいけない(ブログエントリ的にはそっちの方が重要)。
で、本家もスプリントを行いたいのだが、 地理的分散も大きいし、 どうしたもんだか。
そこで、SkypeやIRCを利用して、仮想的に集まることを 考えているのだが、なにぶん経験がないので うまくいく確信がない。
似たような経験のある人で、「こうした方がよい」とか 「このツールが役に立つ」とかいうような情報があれば 歓迎する。
とりあえず、通常の開発環境以外には Skype+RememberTheMilkでやろうと思ってるんだけど。
Trac(やRedMine)を用意して、そこに全部チケット突っ込むという手もあるけど、 どうなんだろうね。
「メンテは趣味ではできない」という断言は早急すぎないか、 可能性の芽を摘まないか、という懸念。
など、メンテナンスには困難な側面があるのは事実だろうけど、 それなりに楽しい側面もあると思うよ。 私、実はメンテ、嫌いじゃないもの。
私の場合は、好き嫌いではなく、粗忽者すぎてトラブルを頻発させるから 「降ろされた」という感じかな。
OSSプロジェクトはちゃんとメンテできる人を三顧の礼で探すべきだ。
Tim BrayによるErlang探訪。
Erlangに1,167,948行のログファイルを食わせて、 「ongoing(彼のブログ)」へのアクセス105,099行を抽出してみたら、 MacBookで56.44CPU秒かかった。
どうもI/Oが遅そうなのでスキャン部分は全部外して、 単にファイルを読み込んでみたら34.165 CPU秒かかった。
一方、同じ処理をRubyにやらせたら、3.036 CPU秒しかかからなかった。
分散がうまくはまればErlangは驚異的な性能を発揮するが、 (スクリプト言語としては基本的な)ファイルI/Oや正規表現マッチなどは 驚異的に遅いということを認識する必要がある。 まだ、汎用言語になるには改善が必要かも。
ErlangのVMであるBEAMの実装についての解説。
個人的に一番興味深かったのは GCがプロセス単位であること。 アルゴリズムはシンプルなマークスイープだけど、 ひとつのプロセスがカバーするオブジェクト数は限定的なので、 停止時間が短くてすむのが特徴。
TIOBE Index同様Googleの出現数を使って「Suckな言語」を探す試み。
| Rank | Language | Query | Hits |
|---|---|---|---|
| 1 | Perl | perl sucks | 58,900 |
| 2 | C | c sucks | 49,600 |
| 3 | C++ | c++ sucks | 39,900 |
| 4 | Java | java sucks | 27,900 |
| 5 | Lisp | Lisp sucks | 19,100 |
| 6 | JavaScript | JS sucks | 13,400 |
| 7 | Visual Basic | VB sucks | 8,000 |
| 8 | PHP | php sucks | 3,000 |
| 9 | Python | python sucks | 2,000 |
| 10 | Ruby | ruby sucks | 500 |
Rubyってば、ダントツである。こういうタイプの調査に滅法強いんだよね。
さらに、「Hackな言語」についても調査し、 「Hack比/Suck比」を計算してみる。
| Language | Total Files | Hacks | Sucks |
|---|---|---|---|
| C | 4,530,000 | 224,000 | 11,300 |
| C++ | 847,000 | 2,700 | 3,000 |
| C# | 120,000 | 2,000 | 50 |
| Fortran | 115,000 | 400 | 20 |
| Java | 830,000 | 10,400 | 500 |
| JavaScript | 22,700 | 600 | 100 |
| Lisp | 36,000 | 600 | 100 |
| Perl | 208,000 | 14,200 | 400 |
| PHP | 580,000 | 14,200 | 300 |
| Python | 326,000 | 400 | 300 |
| Ruby | 15,600 | 2,000 | 50 |
| Shell | 80,600 | 4,000 | 50 |
| Visual Basic | 29,900 | 400 | 50 |
RubyはHackな言語であることが認定された。
最近ではなんらかの形で教える(情報発信する)機会ばかりで、 勉強会とか講習会のようにいかにも「学びます」という感じのことは ほとんどなくなっていたのだが、諸般の事情から講習会に参加することになった。
内容は「いかにすぐれた認定試験を行うか」というもの。
生涯において認定試験というものをあまり高く評価してこなかったので、 まさかこんなことを学ぶことになるとは予想もしていなかった。 しかし、いざ学んでみるとこれが非常に面白い。 さりげなく眺めていた「試験」がこれほど奥が深いとは。
などについて、理論的背景と共にしっかり学んできた。 こんな講習会を受けられる機会は滅多に無いだろう。 なんか久しぶりに「私の知らない世界」を見た気分だ。
コミケでは(じゃっかんグレー気味に)二次創作が黙認されていて、 それがマンガにおける裾野の広さに繋がっている。 しかし、アニメではより権利関係に厳しくそのような伝統はこれまでなかった。 それを緩めることで、もっと良いものが出てくるのではないか、という話。
まあ、こういう「損して得とれ」のような発想が権利者から出てくるというのは 良いことだと思う。ほんとは音楽業界(アーチストや作曲家よりもレコード会社)に こういう発想が必要なんだと思うけどね。 でないと、長期的に見て音楽は壊滅的なダメージを受ける可能性がある。
あまり音楽に依存していない私には関係ない話ではあるが。 そうなって欲しくない人はそれなりにいるんじゃないかな。
Rubinius頑張ってるって話。
拡張ライブラリがそのまま使えるというのは驚異だ。
Ruby/RSpec/Railsに、「デファクトを受け入れる」という姿勢は希薄だ。いや、無い訳じゃない。Lispを差し置いてRubyなんかが目立ってしまったのはデファクトスタンダードなALGOL風記法によるところも大きいだろう。ただ、今あるものを粛々と受け入れる姿勢はない。いまあるものの本質を理解して、それに反するものは本家本元であろうと容赦なく批判し、本家もそれを受け入れていく。それがRuby wayである。
そんな感じ。私のカリスマ性が低いことの結果かも。
現在の「Railsバブル」にはちょっと危機感を持ってる。 確かにRails(とRuby)は最近たいへん評判が良くて、 あちこちで注目されている。 中には実体以上に期待されているところがある。
が、バブルはいつまでも続かない。
そのうち、Railsと比較して生産性において遜色ない(おそらくはRuby以外の言語ベースの) フレームワークが登場し、相対的にRailsの注目度は下がるだろう。 また、Railsをそれが向いていない領域にまで適用して、 「Rails使えねーっ」と叫ぶ人も登場するだろう(もう出てるか)。
そうなっても、良いものは良い、悪いところは(できる範囲で)直す、 という態度で淡々と進みたい。それがRuby Wayだと思う。
この時期になるもまだ詳細が未確定で、 ショーストッパーになりかねないM17N開発を加速するべく 開発会議を開催した。
ほんとは松江でとか思ってたんだけど、 結局秋葉原ダイビルで。
参加者は、私、ささださん、akrさん、なかださん、mputさん、 Martinさん、青学の学生さん。
で、最初の議論は、最近主流っぽいUCS(Universal Character Set)モデルを 採用するか、日本の伝統的文字列処理の延長線上で(ある意味、茨の道)なんとかするか という話。結局、後者で頑張ることに。
で、伝統を尊重して
エンコーディング情報を使うメソッドは
となる
これは議論していないんだけど、JRubyなどでこれをどう実現するかと考えると
とすればいいんじゃないかな。
追記
成瀬さんからコメントをいただいた。
すでに世界がUTF-8で統一されつつある今、UCSでもCSIでもそう変わらなかったりはするかもしれませんね。
UTF-8はともかくUnicode系では統一されつつありますね。
> (optional)ASCIIの範囲内しか含まない文字列のエンコーディングはASCIIになる
これを optional にするのは危険な気がするのですが、互換性とか大丈夫ですか。
あ、ここでのoptionalというのは「現状の実装ではASCIIにしてる」が、最終的には分からないと言う意味です。1.8との互換性の問題はないでしょう。JRuby的には難しそうなので、なくした方が良いかもしれません。
> 二つのエンコーディングが等しい時→そのエンコーディングに基づき処理
> 二つの文字列内容がASCIIのみの時→ASCIIエンコーディングで処理
> それ以外→エラー「一方のみASCIIのとき→もう一方エンコーディングで処理」ですよね?
そうですね。
> primary encoding(仮称)
まずこの「primary encoding」が指す対象が何かを決めた方が決めた方がいいように思います。
上でも書きましたように「明示しない時の入力のエンコーディング」です。 それ以上でもそれ以下でもありません。
スクリプトのエンコーディングはmagic comment(pragmaという言葉は使わないことにしました)で 決まりますが、primary encodingとは関係ありません。
なお、[0x82, 0xA0].pack('C*') は BINARY でしょうか。
packの結果はBINARY(ASCII)です。前にもどこかで書きましたが、 実用上の観点からASCIIエンコーディングとbinaryは区別しません(が、8bit目が立っているASCIIエンコーディング文字列は7bitの特別扱いを受けません)。
> primary encoding(仮称)はUTF-16で固定。UCSモデル
ここでいう「primary encoding」は何に関わるのでしょう。String#encodigが常にUTF-16になるという趣旨だと解釈します。
それは違うのでは。primary encodingはあくまでもデフォルトですから、 明示的に指定すればString#encodingは変化するでしょう。 実装としては、おそらくはバイナリのままエンコーディングタグがつくのだと思います。
ので、ここ以降の考察はちょっとズレちゃってるかも。
CにPythonのインデントによるブロック指定を導入する、という話。
しかし、考えてみれば、Cってのは
と、Pythonでよく見かけるインデントによるブロックの弊害の原因がほとんどない言語 ではないだろうか。
もしかして、これって理想の組み合わせ?
せっかく東京に引っ越したということで、今年の東京ゲームショウに行ってみました。 ...
家に帰って、Xtalのコンパイラに定数伝播、定数畳み込みの機能を実装しつつ寝ました。
ゲームショウに行ったというエントリなのに、 Xtalコンパイラをいじった話が登場しちゃう。 ほんとに言語実装が好きなんだなあ。
共感しちゃう。
それはそれとして、Xtalは最近導入された言語仕様が、独自性が強すぎてちょっと不安なんだけど(first_stepとかblock_catchとか)。 言語デザイナーってのは頑張って独自性・新規性を追求しすぎちゃうと ユーザが離れちゃうし、なにも独自性がないと関心を持ってもらえないし、 難しいバランスが要求される責任だよね。
以前、日経Linuxに書いた記事がWebに公開されている。
1年以上前の記事だが、 パフォーマンスチューニングについてまとめた文章のうちではそれなりではないだろうか。 「ちゃんと測定しろ」とか「パレートの法則」とか。
自画自賛だけど。
へぇ、と感心させられるが、 実際にこのサービス(Comodo VPSパック(仮称))のページを見ると、確かにRubyとRailsはインストールされているが、 同時にPerl, PHP, Pythonもインストールされているわけで(PythonなんてDjango, TurboGear, Pylonsと全部入り)、特にRailsを強調するようなものではない。
おそらくは開発元もことさらにRailsを強調する意図は無いんじゃないかな。 ページを見た感じから言っても。
それでも、「各種フレームワークが即使える」ではなく「Railsが即使える」と 報道されちゃうのがバブルというものなのだろう。
くわばらくわばら。
LPIが日本で大人気、というのは以前から聞いていたのだが、 まさか受験者数の半数以上が日本人だとは思わなかった。
やっぱ試験好きな国民なのかしらね。
ということは、我々の試験も少なくとも国内では成功の芽があるということなのかもしれない。
もともと、「試験が欲しい」という企業からのニーズに応える形で 始まった企画だしね。私たちが率先して試験して荒稼ぎしたいと考えてるわけではない。
10月27日(土)に予定されている第一回の試験だが、 まだ受付に余裕があるようだ。とはいっても当初の予定は越えていて、 急遽教室を追加して、の話だけど。
この日は私も、舞台挨拶ならぬ、試験会場挨拶することになっている。 松江会場ならではの特典か。
Ruby Shoesはwhy the lucky stiffの新プロダクト。
こういう「変なもの」を作らせたらwhyの右に出るものはいない。 でも、次々作り出してて継続的にメンテできてるのかな。
まあ、それはともかく、Shoesを使うと簡単にアニメーション付きのGUIが 実現できる。HyperCardに影響を受けてる(というほど似てないと思うけど) せいか、簡単、手軽に、実現するという姿勢は興味深い。
それと、従来のコンポーネントベースのGUIとはかなり違っている このモデルは見ておいてもいいんじゃないかな。
とても楽しそう。
オレゴンは昔からオープンソースに力を入れてる。 OSCONも毎年ポートランドで開かれてるし、 Linusも住んでいる(んだよね)。
そういう意味では島根のロールモデルになりえる地域だと思う。 国の違いはかなり大きいけれども。
人間は複数の選択肢から最適のものを選び出すことは あまり得意ではないが、二つのものからよさそうなものを選ぶのには 苦労しない点を利用して、二択の連結で複数選択をする、というアイディアがAHP。
それをLL(Perl, Python, PHP, Ruby)の選択に応用したものが Lightweight Language AHP。
ちなみに私の結果。。 Rubyの圧勝である。当たり前か。
ささだくんによる1.9.1の紹介。
いろいろ迷惑かけてます。
でも、12月には、(信頼性はともかく(ぉぃ))なにか出せるように 努力します。まずは、M17Nの仕様を確定しないとな。
Ruby用メモリーリーク検出ツール。
いくらGCがあるとはいえ、「死んだ(もう使わない)オブジェクト」が 生き残ってしまうことはしばしばある(たとえば配列に追加しちゃったり、クロージャから参照されてたり)ので、 こういうツールが役に立つこともあるかもしれない。
JRuby開発チームが、RailsConf EUやらJAOOやらに出席しながら がしがし開発している。とうとうAOTコンパイラを完成したようだ。
そのうちMRI(1.8)レベルでは、JRubyに追い抜かれそうだ。
高レベルアセンブラによって記述されたSmalltalk VM。 Windows、Mac OSX、Linux上で動作し、ランタイムの大きさは30Kb(最小構成)、 しかも、.NETと連携さえできる。既存のSmalltalk処理系(Cincom?)との互換性もある。
宣伝文句だけからは、いいことだらけで、 技術的にも非常に面白いが、これは商用でソースコードは公開されていない。 公開されていても3万行のマクロアセンブラを読む気になるかというと かなり勇気が必要だが。
Googleはそのパワーの源泉でもあるGoogle File Systemのソースコードを公開していない。 まあ、ある意味しょうがないとは思うのだが、なんだか残念な気もする。
と思っていたところへKosmixがGFS相当のグローバルファイルシステム KFSを公開したとうニュース。
すぐに使えるかどうかはともかく、注目していくべき技術であろう。
出た。紹介が遅くなった(このエントリを書いたのは2007-10-16)。 タイミングずれすぎ。
今回の言語探訪のテーマはProlog。 そろそろネタ切れ感が。
集会。ステーク大会の交通費の調整がまた終わらない。 お金が絡むとめんどい。
夜、HTに。一ヶ月ぶり。 前回も思ったが、もうちょっと準備しないと 時間を取ってもらうのが悪いかもしれない。 今後、改善に努力しよう。
高校生活の話になって、松江北、松江南、米子東(ただし20年以上前)の 違いが話題になった。高校ごとに相当カラーが違うのね。