«前の日(10-03) 最新 次の日(10-05)» 追記

Matzにっき


2003年10月04日

_ [Ruby]Ruby温泉ミーティング

当日である。温泉なのである。

9時に出発して羽田組を出雲空港でピックアップ。Nobsun、ささださん、岩室さん。

そのまま一時会場の「ゆ〜ゆ」に移動。自宅に戻り、プロジェクターとスクリーンを会場まで運ぶ。 さらに電車組を旅館までピックアップ。

車組は会場に直接着いたので1時前に(3人を除いて)全員集合。会場で昼食。

一次会場は5時までだったのだが、特にテーマもなく、RHG読書会玉造編とか、 ささださんのプレゼンテーションとか、「へぇ〜ボタン」とか。 あと、私のスクリーン右上のアレはなにか、とかいう話も。

会場でバグレポートがあったので、その場で公開デバッグ。 (う)さんから、テストしましょう、との声あり。まったくだ。

5時からは旅館に移動。私はスクリーンを持って一時自宅に戻り、ついでにメールをフェッチ。 旅館は近い(徒歩4分)ので歩いていこうと思ったが、そういえばプロジェクターは欲しいって話だったな、 と思い、引き返す。結局プロジェクターは使わなかったのだが。

6時から夕食。ごちそうがたくさん。蟹を食べている間はみんな静かだ。 この季節に鍋は予想しなかった。

「みなさんはどういうご関係ですか」と仲居さん。悩んだ揚げ句、 「インターネットの出会いです」、おいおい、男性ばっかりの出会い系か。

食事中も、突発的に異常に濃い話が始まる。コールフレームをどこにどう置くかでVMの速度が..とか、 私のマシンでだけinstruction prefetchが有効なのは謎だ、とか。

食事後、大きくふたつの部屋に別れて活動。ぐだぐたと与太話をするグループと 剣を振るグループ。私は与太話組。

0時頃、高橋さんから「日本野鳥の会」じゃなくて「日本Rubyの会」の提案が。 おもしろい。やろうじゃないか。拍手。

結局帰るのは2時。旅館の玄関が空かず、おじさんを起こしてしまった。 ご迷惑をかけました。

参加者の皆さん、楽しめましたでしょうか。いわゆるカンファレンスみたいに、 きちんとしたプログラムにはなりませんでしたけど(高橋さんは頑張っていたけど)。 私は楽しかったです。

でも、あまり話せなかった人がいたのは残念だ。まあ、剣を振っていた人はともかく。 とくにsheepmanさんとか。羊堂本舗、いつも読んでます、ってここで書いてどうする。

でも、なにか忘れてるような....。

あーっ、温泉入ってないっ。


2004年10月04日

_ AC

ACといえばAnonymous Cowardだと思っていたのだが、 私の母校では違った意味を持つらしい。

たとえば、情報学類では、極端にコンピュータやネットワークなどに詳しいにもかかわらず、解析学や物理などの単位を落とすような人(そしてそういう人たちが集まってつくるグループ)が存在するが、彼らは間違い無く『ACの人たち』である。情報学類で3年次、4年次になって、「今年で解析学4回目だよ〜」などと言っている人はACに違いない。

<中略>

また、近年においては『AC』という用語の意味が拡大しており、ACというのは必ずしもAC入試で筑波大学に入学した者を指すのでなく、ACっぽいことをしている人やACのような考え方をしているような人のことをすべて包括して『AC』と呼ぶこともある。というか、自分の周囲では最近はほとんどそのような広い意味で物事を表現するすばらしい言葉として使用されているようである。

この定義においては、たとえば情報界においては、有名なすごいオンラインソフトを作っているような人たちは大抵ACと呼ばれる。プログラミングが人並み外れてできる奴もAC、一日中ロボットを作っているような人たちもAC、ネットワーク機器のアクセス・インジケータのLEDを見てニヤニヤしているような人ももちろんACである。つまり、ACとは素晴らしいのである。

うむ、大学にはかろうじて入ったものの、数学がだめだめで危うく道にはずれそうになった覚えがあり、 有名な「オンラインソフト*1」の作者でもある私は、ACなのだろうか。 自分はACだと名乗ってよいのだろうか。

しかし、だ。

私は高校時代、プログラミング言語を自分で作りたいと願い、 オブジェクト指向を愛する変な高校生*2ではあったが、 実際にはただ本を読んで、夢想していただけでなんの成果もあげていなかった。

また、(主に数学のせいで)成績はふるわず推薦枠にもひっかからず、 まっとうに受験せざるをえなかった。筑波大を選んだのも実は情報系で数学の配点が当時もっとも低かったからだ*3

しかも、ACの原因は感電にあるそうではないか。

遅くとも13歳位までの間に誤ってまたは故意にコンセントなどに触って感電したことがある人は、AC になる。

そうでない人は、AC にならない。

自慢じゃないが、私は一度も感電したことはない。 子供のころから電気を恐れていたので。父親から「電流が小さければたいしたことはない。ほれ、やってみろ」と言われても、 決して信じなかったものだ。それに触れることは死を意味するっ。 「あることがらは死よりも恐ろしい」とウォーケンも語っていた。

電気恐い。無くては生きていけないけど。

ああ、ACこそ私にふさわしいラベルだと思ったのに。これもまた私の手の中からすり抜けていった。

*1  ところで「オンラインソフト」ってなんだろう? しかし、定義は何であれ「オンラインソフト大賞」で入選になったRubyはオンラインソフトに違いない

*2  80年代前半という時代を考えると「オブジェクト指向を愛する高校生」は、単に「変な」ではなく「異常」とか「尋常でない」とかいうほうが適切かも

*3  筑波大を選んだ理由はそれだけではない。科学万博もそのひとつだし、中田先生に教わりたかったというのもある

_ [Ruby](行ってないのに)RubyConf 2004レポート

10月1日から3日まで、バージニア州ワシントンDCエリア(ってどこ?)で、 Ruby Confernce 2004が開催された。

残念ながら私は出席できなかったのだが、 今年の会場は無線LANが使えたので、会場からのレポートが数多く提供された。 それらを基にして行ってないのにカンファレンスレポートをお送りする。

10月1日(金)

  • Teaching Ruby in a Corporate Environment (Jim Freeze)

    Jim Freezeは皆勤賞だなあ。大企業においてRubyを活用するというのを一貫してテーマにしている。 Rubyのような「新参者」をISO9000企業で活用するのはなかなか難しい。 その辺を模索しつつ毎年発表してくれている。 なお、偶然だが彼は私と同じ教会に通っている。

    しかし、「2**2**2**2**2がPerlでできるか?」というのは、 プログラミング経験者にはそれなりにインパクトがあるのか。 Bignumの実装は無駄じゃなかったということか。

  • Ruby as Maestro (Rich Kilmer)

    John Knightが発表するはずだったのだが、姿が見えないので急遽Rich Kilmerがプレゼンすることに。 彼はInfoEtherという会社を持っていて、DARPAから予算をもらってRubyで開発している。 厳密には開発のメインはJavaプログラムで、それらをコントロールするのにRubyを使っているのだそうだ。

    また、RubyをDSLとしても利用しているという。以下はちょっとした例。

    wait_for "SocietyQuiesced", 2.hours do
      do_action "StopCommunications"
      do_action "StopSociety"
    end

    「気の効いた一言」(Jim Weirichによる引用)

    "I loved Java at one time too. I just grew up."

    Richと彼の会社はrubyforgeのスポンサーである。

  • Using and Extending Ruwiki (Austin Ziegler)

    Ruwikiについて。個人的にはRuwikiを使った事はないのだけれど、 海外では結構人気のあるWikiクローンである。RCRchiveは改造版のRuwikiを使っている。 カスタマイズ(マークアップのカスタマイズ、マークアップエンジンの変更、ストレージバックエンドの変更など)が簡単らしい。

  • Tycho: A Proposed Ruby-based PIM (Hal Fulton)

    RubyによるPIM(Personal Information Manager)の実装。 Hal Fultonは『The Ruby Way』の作者。昨年のカンファレンスは彼の地元(テキサス)だったので、 ずいぶんお世話になった。

  • Hacking Ruby (Paul Brannon)

    Rubyをハックする。いろいろやってくれてるようだが、becomeだけは勘弁してください。

  • Alph (Rich Kilmer)

    今日2度目の登場のRichは今度はAlphを紹介する。 AlphはMacromedia Flashをフロントエンドとするユーザインタフェース。 Flashならではの美しい画面をRubyからコントロールできる。 昨年のカンファレンスで個人的にデモを見せてもらったが、 なかなか印象的であった。あれからずいぶん進んだのではないだろうか*1。 問題は新しいMacromediaのライセンスは無償でAlphのような形でレイアウトマネージャ(Flex)を利用することを禁止しているようで、 Richは別の方法を模索しているらしい。

参考にしたリンク

10月2日(土)

  • Narf: revisiting a 2 year old (Patrick May)

    NarfはRuby標準添付のcgi.rbの置き換えを狙うもの。 Narfについての発表は2度目で今回はここ数年の変化について紹介。 興味深いのは彼が紹介したWikiへのいたずらを防止する仕組み。 悪質なIPアドレスからのアクセスは「コピー」にリダイレクトされ、 いたずらやスパムなどの変更は他には見えない。コピーは1日1回リセットされる、というもの。 ワンクリックでスパムをキャンセル、もうワンクリックでIPアドレスを登録、で安心だそうだ。

  • ruby-doc.org: Now and the Future (James Britt)

    Rubyのドキュメントを集めたruby-doc.orgについて。 特に集められたドキュメントのカテゴリ分けなどについて。

  • Ruby on Rails - Origin, Driver, Destination (David Heinemeier Hansson)

    最近売り出し中のWebアプリケーションフレームワークRuby on Railsについて。 「David Heinemeier Hanssonはマーケティングがうまい」というのは、 私の周辺の一致した見解である。見習いたいものだ。 Rubyのすばらしさを発見したDavid(元PHPプログラマ)は、 それを大衆に広めるためのツールとしてRailsを開発した、らしい。

  • The Many Facets of RubyGems (Jim Weirich)

    確かJimは昨年はいなかったよな。Florida, Seattleには出席してたはず。 Ruby向けパッケージングシステムRubyGemsについて紹介。 Ruby Conference 2001でアイディアが提示されたRubyGemsは、 カンファレンスの度毎に進歩している。

    そのうち標準になる、かもしれない。

  • YARV: Yet Another Ruby VM (SASADA Koichi)

    本人は非常に心配していたようだが、実はRubyConf 2004で一番評価が高いプレゼンのような気がする。 よく頑張りました。

    YARVはRubyを対象としたVM(virtual machine)で、以下の特徴を持つ。

    • スタックマシン
    • バイトコードではなく、ワードコードマシン
    • C拡張ライブラリとして実装されている
    • 現在のRubyの機能を利用している(GC、パーザなど)
    • 構文木からワードコードを生成する

    YARVが成功した暁にはRiteの実装(のベース)として採用されることが決まっている。 ながらく話だけだったRiteに動きがあったのは喜ばしいことだ。 ベンチマークも紹介され、それなりに速くなってる(というか、今のRubyが遅いんだけど)ことが示された。

  • "Test::Unit".downcase.sub(/::/,"/") (Nathaniel Talbott)

    Test::Unitの作者であるNathaniel Talbottが「よりRubyっぽい」テストスイートについて語る。 「標準添付されると変化させにくいよね」。まったくだ。 「test/unit2」として開発中だとか。

  • RubyZine (Shashank Date)

    飛び入りの発表。Bill Venners(artima.comの中の人)が音頭をとって、 Rubyに関するWebzineを発行することに決めた、とのこと。 個人的には「『るびま』と記事交換ができればよいね」という話をすでにしている。

  • Objective-C: A Retrospective (Brad Cox)

    Objective-Cの設計者であるBrad Coxによるプレゼンテーション。聞きたかった。 Objective-Cや彼の著作『オブジェクト指向のプログラミング』から学んだこともたくさんあったから。

    ところで、彼の話の後半は、彼の最近の活動であるDRM(Digital Rights Management)関係の話だったようだ。 RubyConf出席者にはちょっと面白くなかった、かも。

参考にしたリンク

10月3日(日)

  • RubyX (John Knight)

    初日に発表するはず(だったが遅れて間に合わなかった)John Knightが15分だけ発表。 RubyXはあらゆるスクリプトがRubyで書かれたLinuxディストリビューションである。 興味深い試みだ。が、なにもそこまで、という気もしないでもない。

  • Ruby on Windows (Dan Berger)

    RubyはWindowsにおいて弱い(私のせいだ)。 その点を改善するためのwin32utilプロジェクトについて。 win32utilを使えば、Windowsサービスを検索する、操作する、登録することが可能になり、 Windowsスクリプティングが容易になる、らしい。 もうちょっとWindowsプログラミングについて知っていたらもっと役立てるんだけどな。

  • How Dynamic Can You Get? (Jamis Buck)

    BYU(Brigham Young University 個人的に知り合いが一杯行ってる大学)のJamis Buckによる Dependency Injection (またはInvesion of Control)の紹介。 Ruby用IoCコンテナCoplandを題材にしていたらしい。

    私自身がIoCを十分に理解しているとはいえないので、これ以上のコメントは難しい。 発表したJamis自身も「IoCが十分に伝わらなくて残念だ」と自分のBlogに書いている。

  • Code generation with Ruby in a heterogenous network application (Gorden James Miller)

    「Rubyはコード生成ツールとして非常に有効だ」という話。 目には見えなくてもRubyはあちこちで活躍しています。

参考にしたリンク

まとめ

全体に良い印象をあちこちで目にしたので、今年のカンファレンスも成功だったのではないだろうか。 普段ネットでやりとりしている人でも、たまに直接会うと新しい知見があったり、 いろんな人の意見を聞くと新しいアイディアが沸いたりする。 カンファレンスってのはそういう意味で有意義だと思う。

来年は行きたいなあ。10月の前半は外してくれるといいんだがなあ。

*1  彼は同じテーマでOSCONでも発表している


2005年10月04日

_ PCからiPodへのコピーをできなくすれば問題は解決する--法制小委第8回審議

JASRAC関係者は「配信事業者がJASRACに支払っているのはあくまでPCへダウンロードするまでの利用料」との主張を貫いており、同関係者からは「極端な話だが、PCを通じた音楽のコピーをできないようにすれば(iPod課金に関する問題は)解決する」といった発言もなされた。

えーと、つまりJASRAC的見地からは、たとえお金を払って楽曲をダウンロードしても、 iPodなどのプレイヤーにコピーする権利を許した覚えはないということのようですよ。 「極端な話」と前置きしていても、きっと本気なんだろうなあ。

そこまで近視眼的に制限して、音楽という文化が発展するんだろうか。

いや、権利を蔑ろにするつもりはないけれども、 権利ばかり主張して(特に著作隣接権者が)いては将来的にジリ貧になりそうに思えるのだが。

_ [OSS] Perl.com: The State of the Onion 9

今年のOSCONでのLarry Wallのプレゼンテーション。

しかし、Larryってば直接話すとめちゃめちゃシャイな人なのに、 どうしてこんなにぶっとんだ(注: 褒め言葉)プレゼンができるんだろう。 やはり彼は私のヒーローだ。

ああいう人に私はなりたい。


2006年10月04日

_ 即興トーク

Martin Fowlerのプレゼン。しかし、英語苦手な人の立場からいうと、 この即興トークは正直勘弁して欲しい。スライドがないんで視覚情報による補足が少なく、 聞き取るのが大変。たぶん、英語がよく分かる人なら、表情とか身振り手振りとか からノンバーバルな情報を引き出せるんだろうけど。

RailsConfではPaul (Graham)もこれをやったもんだから、泣いてた日本人続出という噂だったし。

とはいえ、私の良くやる「スライド駆動」が本当によいかというと、 これもなかなか難しい。正直、英語で満足できるプレゼンできたことはないのだが(日本語でもかなり怪しい)、スライド駆動を活用することでなんとか「最低レベル」は維持できるようになってきた。もうちょっと上を目指したいものだが。

_ [OSS] ソフトエイジェンシー、MySQL 開発者が直接サポートするサービスを開始

昨日に引き続き、オープンソースソフトウェアとビジネス(情報システム部門)を どうつなげるかという話題になると思う。

サービスの詳細は書いていないけれども、

MySQL 開発者から直接、MySQL の使用方法や設定方法、パフォーマンスチューニングなどのサポートを受けられる。ただし、英語でのサービスとなる。

また、サービス購入者には、認定ソフトウェアを非 GPL ライセンスで、最適化された MySQL バイナリで提供する。

さらに、ユーザーに対して、このサービスの使用方法の講習を無料で実施する。

価格は、年間1サーバーで7万4,970円から。

は顧客からどう受け入れられるだろう。将来、もしRubyのユーザ層がMySQlなみに厚くなったとして(獲らぬ狸)、同様のサービスを提供するならばその適正なサービス内容と価格はいくらくらいになるだろう?

_ [OSS] Seasarは鶏か卵か? - ひが氏、キャズム越え柔道ストラテジ語る

あまり、Seasarの周辺の動きに詳しくないんだけど、 Seasarって海外ではどう受け止められているんだろう。Java界には疎いからなあ。

Rubyと違い、お金の臭いのする分野で広く受け入れられるのは大変なことだと思う。 陰ながら応援している。

_ 『現代という時代は、どのようなプログラミングを求めているのか?

世の中はどんどん複雑になっており、 それに対応するためには動的言語が良いという話。

もしかしたら、シンプルかつ柔軟性のある計算モデルが必要とされているのかもしれない。 現在よく見かける計算モデルは

  • 構造化プログラミングはないよりもマシ(というか、必須)だが「シンプルかつ柔軟性のある計算モデル」とは言えない
  • オブジェクト指向は柔軟性はあるがお世辞にもシンプルとは言えない

とすると

  • APLの行列ベースは? 制約強すぎ?
  • Prologの述語論理は? どうもうまく行かなかったみたい(第五世代コンピュータ)
  • GoogleのMapReduceとか? 分野を限定すれば有効かも
  • 関数型? 人間とのギャップが克服できるか
  • 実はExcelの表モデル最強...とか

2007年10月04日

_ [Ruby] Skype開発ミーティング

スポンサーが居なければ、そうそう毎週東京に出かけるわけにもいかないので(というか、できるものなら出かけたくない)、Skypeを使って開発ミーティングをしてみる。

ネットの品質が悪いのか結構ノイズが乗る。 test callではきれいに聞こえるんだけどなあ。 あと、私のPCの内蔵マイクではキーボードを打つ音を拾って うるさいそうなので、社内にあったマイク付きヘッドセットをつないだら ずいぶん改善されたそうだ。

今度自分用に買ってこよう。

で、「#`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳 - 開発スプリント」には、 Skypeを使った開発スプリントの注意点として「一番やってはいけないのは、ずーっと Skype を繋げっぱなしにしておくこと」とあるが、 今回われわれはあまり問題を感じなかった(私だけ?)。

これは我々が「喋りながらコーディングする不思議な人々」だったせいだろう(私だけ?)。 実際、議論してる最中にコミットしてたりするし。

今回の「ふりかえり」は

  • Skypeはネット回線品質に依存する(回線をケチるなと言うこと?)
  • ヘッドセットも用意しよう。ささだくんのところでは会議用スピーカ(マイク付き)を用意したそうだ
  • Skypeの会話は記録に残らない。この点はIRCやLingrの方がよい。
  • Wikiなどに議事録をまとめながら作業するとよい
  • ミーティングの最初でアジェンダを作る。各論に入らない

くらいだろうか。

_ [言語] p-nand-q.com : humor : obfuscating python

Pythonはひとつの書き方が強制されるので、結果として読みやすい、 とよく言われるが、難読プログラムを書くのが不可能というわけではない。 というか、禁止することが不可能なんで、 別に当たり前のことなんだけど。

以下のFibonacci数計算とか素敵

fibonacci = lambda x:map(lambda o:(map(lambda c:map(lambda l:
o.__setslice__(l[0],l[1],l[2]),([o[2]+3,o[2]+4,[o[0]]],[0,3,[o[1],
reduce(lambda x,o:x+o,o[:2]),o[2]+1]])),range(x)),o)[1],[[1,1,0]+
range(x)])[0][3:]

print fibonacci(20)

このBrainF*ck interpreterとかもなかなかだが、ちょっと不自然な難読化かもしれない。

import sys

z,x,y= "}{|}A|k{|kA|}=BE1)|BF}))|$}:~pI~/;@Go{H%{&A?|if }:~pJ"\
       "IJ-1~#>=0:GoAG@HG;o{G;%-I&{?|m,kJ,j=C?;/@~o{~D:Gl[c]("\
       ")?","G$p:%~;%~;el!]':p%break~;![':p%#<len(j):~%\n\t\t"\
       "%if c=='%while o%\n%m[k]%+=1%\t%if not %c=j[o]%-=1%sy"\
       "s.std%[0]*64000,0,0,open(sys.argv[1]).read()%if l.has"\
       "_key(c)%in.read(%out.write(chr(%=1%,o".split('%'),"HG"\
       "&%/~!#?}{;$@ABCDEFIJ"

for i in range(len(x)):z=z.replace(y[i],x[i])
z=z.split('|')
for o in range(9):
    exec("def %c():\n\tglobal k,m,o,j\n\t%s\n"%(chr(97+o),z[o]))
l={'>':c,'<':d,'-': b,'+':a,',':e,'.':f,'[':g,']':h}
i()

_ [言語] Otaku, Cedric's weblog: Erlang: the verdict

Erlangを勉強してみたけど、個別の機能は理解できるが 全体として何がうれしいのかいまいちピンとこない、という話。 実は、私も似たような感じを受けている。

Erlangを見た時の反応はかなり人それぞれで

  • これはすばらしい。「次の言語」はこれだっ
  • 関数型言語ワケわかんね

という両極端の間のどこかに収まる。

私自身は、関数型言語に苦手意識があるという背景を置いといても

  • ある種のタスクで優れた性能を出しているのは認める
  • 副作用がないのは並列プログラミングに向いているようだ
  • が、Erlangって明示的なプロセス通信のせいでいまいち「宣言的」ではないような
  • 信頼性(five nines)とかも、わかったようなわからないような
  • しかも、実際に自分で使ってみると、エラーが致命的にわからない

という理由もあって、私自身がErlangにハマることはなさそう。

が、Erlangが「素敵な言語」であることには間違いないので、 もうちょっと勉強しておきたい気はする。

『Programming Erlang』でも読むか。

_ Rails on Git: How much hype fits in 9MB? | Sanity, Inc.

RailsのSubversionレポジトリの7500以上のコミットが Gitに格納すると9Mバイトに収まる、という話。

圧縮してると言うのは聞いてたけど、そこまでとは。

あー、でも手元のRubyのgitレポジトリは272Mあるなあ。 なにか明示的に圧縮しないといけないのかな?

まあ、RailsよりもRubyの方が歴史、コミット量とも圧倒的に多いのではあるけれど。

_ [Ruby] Life is beautiful: 教えながら学ぶRuby:イテレータに片思い

まさか、「Life is beautiful」でRubyがとりあげられることがあるとは。 バブルって恐ろしい(笑)

特にイテレータが気に入っていただいたようで、ありがたいことである。 で、書籍『オブジェクト指向スクリプト言語Ruby』の中でイテレータの扱いが いまいちであることにご不満のようである。

まあ、あれはもう8年も前の本で、イテレータ(というかブロック)に 関する知見がまださほど蓄積されていなかった、ということで勘弁していただきたい。 Rubyも(私も)発展途上なので。

っていうか、イテレータは1.9での「Enumerator標準添付」+「ブロックなしメソッドがEnumeratorを返す」新機能で、また新しい境地に突入するのではないかと思う。

2.0でLazyArrayが登場したら、もっと変化するよ、きっと。


2009年10月04日

_ ロンドン地下鉄

旅行者用豆知識

ロンドンの地下鉄はOysterというプリペイドカードがないと、 どの区間も4ポンドなので、1日に2度以上乗るのなら、 乗り放題のワンデイトラベルカード(5.60ポンド)がおすすめ。

駅でチケット同様普通に買えます。

ちなみにカードでOK。今回も現金は一度も使わなかった。


«前の日(10-03) 最新 次の日(10-05)» 追記