おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

オープンソースカンファレンス Tokyo 2009/Fall

あーオイラのコミュニティデビューから1年経つのだなあ。
初コミュニティイベントが OSC Tokyo 2008/Fall だったので。

いつもながら事務局&スタッフのみなさん、セミナーで面白い話を聞かせていただいた皆様、ブースでお世話になった方々、いきなり乱入した宴会でオイラが面白いと思う話を一方的に聞かされた不幸なみなさんに感謝感激。

Session 1. 仮想化友の会「濃いバナ」

むちゃんこ難しいかと思ってたら、仮想化初心者のオイラでもついていけてなおかつ面白かった。
特に平さんの libvirt 話。Pythonlibvirt 叩いて仮想マシンを外からいろいろコントロール。UPS 対応の一括シャットダウンなんてけっこう実用的じゃないかな? 思わず libvirt の部分だけ読みたくて買ってしまいました。まだページ開いてもいないけど (^^;)。

Xen徹底入門 第2版 (CD-ROM付)

Xen徹底入門 第2版 (CD-ROM付)

宮本さんの vnet 話は openSolaris の Crossbow の方が面白いかなーなどと素人のくせに暴言を。でも Xen ってそういう experimental implementation がけっこうあって、ディストロがパッケージしたのはそういうの omit されてるから、自前ビルド面白いよ、ってのは印象的でした。

Session 2. OSS推進評議会OSS 入門」&TurboLinux さん「Moblin 最新動向」

暴言を吐くと前半は時間の無駄。OSC でやる話ではない。オープンソースなんてわかんない、っていうスーツ族が集まるカンファレンスでやる話でしょ。まぁ聞きたかったのは後半なので期待もしてなかったけど。

後半もまあ Moblin もディストロの一つだし、チェックしとくかぐらいの気持ちで参加したのだけど、実は Clutter についてのバリバリの技術セッションで仰け反った。「すげー面白かったからぜひサンプルとプレゼン資料をどこかに上げてくれ」ってスピーカーさんにお願いしちゃったよ。あとでブースにも行って名刺交換もしてきた。まさかここで Clutter の話を拾えるとは。

Session 3. Ubuntu Japanese Team 「こあらたん話」

相変わらず吉田さんの話は面白くてかつ技術的にも(裏事情的にも)深いよなー。
まあとりあえず霊的なコアラ大活躍。

Session 4. 捨てました。ブース見てた。

ブースについては別途参照。

Session 5. 勉強会勉強会「はじめての勉強会ラジオ」

  • 投稿が身内からしか集まらなかったらしい (^^;)
  • オイラも「初めての勉強会体験送ってください!」と言われたので送ったら読み上げられた。3ページ分書いて3行だけ (^^;)
    • 空気読まずに3ページ送る奴もひどいが、そのなかから3行抽出したのも素晴らしい。しかも一番オイラが拾って欲しかったところなのよそこ。
    • 「いやあの一言はマジで感動しました!」と言われたけど、でも勉強会っていうかコミュニティイベントって、知識もそうだけど知り合いを作りにいくものじゃない? それは common sense だと思うけど、それを私流に表現しただけなんすよね。
  • 投稿+ゲストって構成はいいと思う。いろんな人の話を聞きたいって希望は投稿で、深堀りして聞きたいって希望はゲストから、というのがいいと思うんだ。
    • となると投稿がもっと盛り上がると楽しいんだけどな。メールだと誰だか分かっちゃって恥ずかしいからかな?

でもまあ、深夜のラジオっぽいグダグダ感って本人たちは言ってましたが、グダグダというか緩い感じで面白かったっすよ。

ブース雑感

今回、ブース配置は「似たようなブースを同じ部屋の似たような位置に配置する」というポリシーだったようで、ごった返す部屋と割と空きぎみの部屋ができていたようで、よかったのかどうか。

  • 今回は Debian でキーサインパーティするといってたので Fingerprint 付きの名刺を持っていったけど二人としかやらなかった。あ、でもまだ sign すませてません。ごめんなさい。
    • ここで tlug の人とあって名刺交換して「tlug も一度は行きたいんですけどねー」といったのだがやっぱり敷居が高いのう。tlug。
  • Ubuntu ブースはいつもの感じ(適当だ)なので挨拶のみ。リリース直後 & Japanese Remix 作業中なのでなんとなくお疲れぎみでしたし。
  • Damian (小江戸の島田くんがやってるオールドPC向けLinux ディストロ。世界進出にあたってこの名前はどーなんだろ ^^;) ブースではちょこっと話しただけですね。まあいつも会ってるし。
  • openSUSE のブースもちょっと挨拶しただけ。なんか tweet されてた見たいだけど現場にいたわけじゃないのでねぇ。
  • CMS の部屋は軽くスルー。
  • Android の会さんは出てなかったみたいだなー。残念。
  • J2 のブースでゆりこさめに挨拶してたら koyhoge さんにばったり。ご無沙汰してますー。
  • openSolaris のブースでは原口さんが Night Seminar でやってたデモをまんま持ち込んでたので、システム運用系をやってる知り合いに「ほらこれこれ面白いよ」といって紹介したりした。
  • さっき Moblin のセッションでお話ししてた人と名刺交換。Clutter の Python バインディングとかについてお話ししてきた。

印象に残ってるのはこんなもんかな。忘れてたらすんません。

Session 6. LT & じゃんけん大会

いつものようにダラダラメモった内容をダラダラ書きます。

松江オープンソース活用ビジネスプランコンテスト2009のお知らせ by しまねOSS評議会 野田哲夫さん
  • いつもオープンソース系の大きなイベントに来ている島根大学/しまねOSS評議会の野田先生。
    • こないだ RubyWorld Conference @ 松江に竹内さんを引っ張りだしたのも野田さんらしい (詳しくは Shibuya.lisp TT のエントリで書くけど、「一緒にサッカー観戦してたらいつの間にか行くことになってた」だそうで)。
  • おかげさまで Ruby City Matz江は定着した
  • IPAやらどこやらでいろんな賞を島根/松江は受賞した
  • 還元しよう!
    • ということでこのイベント
    • 去年から始まって今年で二回め
    • 去年のジュニア部門のグランプリは女子高生!
    • 受賞者は旅費負担で島根で表彰式
    • みんなも島根に JK を見にきましょう! *1
Japanese Linux Hackers - who wrote 2.6.32 - by たかはしさん
  • 確か去年の OSC でも同じ内容のプレゼンしてましたね。
  • LKML に投稿されたパッチから日本人コントリビュータの動向を探る。
    • メールアドレスとかドメイン名で検索してるらしいけど最近 gmail の人増えてるから誤差が大きいかも……とちょっと思った。
  • 全世界で日本人4%
    • もうちょっと頑張って欲しいよね。
  • Novell (SUSE) 所属の日本人が一人で 2317patch ってなんかおかしいような。Novell-J の人がちょろっと投げて、後は岩井さんのがカウントされてるとか……。
タイル型ウィンドウマネージャの薦め by Matsuu さん
JasperServer / JasperServer ユーザー会のお知らせ by 佐伯さん
  • JasperServer は JasperSoft 開発の OSS
  • Web コンテンツサーバ
  • BI 指向
    • BI っていうのはビジネスインテリジェンスの意味で……とか私が説明するのもめんどいのでこの記事でも読んでて。
  • 関連商品
    • Jasper Report - 結果を PDF や Excel にエクスポートする Java 用共有ライブラリ
GSoC に参加してみた by 太田@慶応さん
  • Google Summer of Code 2008, 2009 に参加してみた
  • 2008 年は玄箱 + 電光掲示板 + ゲームコントローラ
    • 電光掲示板キットの制約がめんどくさかった
      • H8 マイコン搭載だったけど、限られたことしかできない
    • お金の振込が向こうのカードで来るのだけど、日本での払い出しには向こうの銀行に電話しなきゃいけなくてドキバク
  • 2009 年は同じく電光掲示板を PC から処理した

ちょっと感想だけど、GSoC ってこんな「どのコミュニティが出したとも思えない課題」もやるんだ……。

Mozilla プロジェクトの新しい問題報告センタープロジェクト by Mr.X さん
  • 基本は Mozilla JP Party 10 での内容と同じですよね。
  • どうも日本からのバグレポートは上がりにくい
    • 本家 Bugzilla は英語だから敷居たかいし
    • 日本の Bugzilla-ja はスクリーニングするヒューマンリソースが足りないので気軽に投稿できない
  • そこで新しい組織 Mozilla Communies' Network in Japan
    • Mozilla を応援するコミュニティを応援する組織
    • ここで新しい BTS を立ち上げてます!
OOo 日本語化プロジェクトに参加する by OOo 日本語化プロジェクトリーダー 中田さん
  • 世界最高水準の OSS*2 に参加することで自分を高めよう!
  • 翻訳に一番必要なのは「日本語に対する愛!」

……手元にこれしか残ってないところを見るとそろそろつかれてきたと思われます。

国産 LMS "milka" 開発宣言 by Moodle研究会(仮)代表 不破さん
  • LMS = Learning Management System
  • 代表的なのが Moodle
    • 比較的教材を作るのは簡単
    • 内部表現が utf-8 なので日本語でも大丈夫
    • でもいいことばかりじゃない
      • 教育で使おうとすると日本の教育現場にあってない
      • 暗記物にはよいが、数学などの教育には向かない
  • 日本の小中高にあった国産 LMS の必要性を痛感
    • ならばつくろう!
    • 名前は "milka"
    • 数学ガール」から取りました。数学も視野に入れたいため。
      • tweet したら @hyuki さんから応援 tweet 貰ってビビった。頑張る。
1日〜1週間でOSSに貢献する話 by Ruby温泉 渋川さん
  • 一言で言えば「翻訳」
  • 面白いものを見つけた
    • でもドキュメントは英語
    • ものすごい分量じゃないし翻訳しちゃおうか?
    • でも一人より複数
    • 呼びかけに応じてくれた人と skype で相談しながら翻訳
      • 分からないところを相談できたりするので超いい
      • しかも距離が離れてても翻訳できる
  • 遠隔多人数翻訳オススメ
組み込みOSを自分で作ってみよう by KOZOS さん
  • 組み込みに興味あり
  • でもいくつかの壁が
    • 市販の組み込みキットは非常に高い*3
    • キットは買えたにしても専用開発ソフトが高かったり
    • そもそも Embedded Linux とか iTRON とか自力でソース読むには辛すぎる
  • じゃあ作っちゃえ!
    • KOZOS/H8
    • 秋月で売ってる H8 ボード向け (5000円でお買い得)
    • ソースコードはちっちゃい
    • 組み込みに興味がある向き Check it out!
じゃんけん大会

MS 提供の MSDN (かなあれ?) の高い奴。Windows 7 入り。と、HP 提供の ML115。前者はじゃんけん参加すらしなかったけど後者はけっこうマジで参戦したのに……しくしく。

懇親会?

つか、一人で取り残されて「誰か拾ってー」といったら metacon な飲み会に拾って貰った。openSolaris からも声がかかったんだけどタイミングが一歩遅かった。ごめんなさい。

とりあえずいろんな話をしたけどあんまり覚えていない。最終的には人間関係じゃないと僕って動けないんだよねーとか、コミュニティに人を引っ張り出すのってどうすればいいのかなー、俺みたいに面白そうだからって参加したらそれが勉強会と言われる物だった、って人間じゃわかんないしー、とか、俺もうプログラマ引退したから、プログラミングは趣味だから。その方がいろいろ幸せだから。とか話した気がする。

会場移って小江戸に合流。すでに出来上がったS君(仮名)に絡まれるっていうかなんかやたら激賞される。オイラ褒められるようなこと別にしてないしS君の方が実行力もバイタリティもあるしすごいと思うんだけどな、といったら相互に褒め合い合戦になってしまった。まあいいんだが気恥ずかしい。でもS君、できれば終電には乗って帰ろうな。

んでオイラは京急にのってなんとなく青物横丁まで行って(歩きたい気分だったの)てくてく歩いて帰りました。


つーことで、楽しかったですね!
またどこかのコミュニティで会いましょう。

*1:いや、島根じゃなくても見られるって (^^;)

*2:異論はあるけど、まあ、英語の most は幅が広いからね……。

*3:Gainer とか Arduino みたいな「最初から学習用」と決まってる奴は別としてね。

手続き型を卒業するための言語は?

という質問を今日飲みから飲みへの移動の最中ぽろっと聞かれました。

あたしゃ一介のプログラミング言語好きなので (マニアの域には全然達していません。変態的趣味ではあるけど) まじめに答えは期待してないと思いますが不真面目に答えます。
2009.10.31 追記:アフィリエイトやってんじゃないかと思うぐらいバカバカ本のリンク張ってみました。

そもそも

なんで手続き型を卒業しなきゃいけないの?
ぶっちゃけプログラマという職業でご飯を食べていくのに、言語の潮流が手続き型でなくなる可能性は今後最低10年はないと思っていいでしょう。予想はずれたら飲み代一回ぐらいは奢ります (笑)。

ただ世界を広げるという意味では、今仕事で使っている言語とはぜんぜん違う世界に触れることは大事かもしれません。という視点で。

必須条件

変数再代入禁止。
なんでこれを禁止したいかというと、「こいつがあると手続き的にかけちゃう」から。手続き的に書いちゃうなら手続き型を使えばいいわけで、そうじゃない書き方を強制されないと意味がないでしょう。

高階関数とかを必須にしないのは、Ruby とか手続き型言語に普通に入ってるからです。


そんなわけで偏見に充ち満ちたセレクション。

セレクト1. Haskell

やっぱこれじゃないですか?
破壊代入できないし。
遅延評価もえーだし。
Real World Haskell 出たばっかりだし。あれが重いならふつける本でもいいわけだし。良書があることは学ぶべき言語を決める理由の一つになり得ます。

Real World Haskell―実戦で学ぶ関数型言語プログラミング

Real World Haskell―実戦で学ぶ関数型言語プログラミング

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

セレクト2. Erlang

言語としての成立は古いけど今でも cutting edge に面白い言語だと思う。関数型、並列、Prolog にちょっと似たユニフィケーション (パターンマッチング) 機構などなど。
本としては飛行機本でよろしいんじゃないでしょうか。

プログラミングErlang

プログラミングErlang

セレクト3. Prolog

半ば冗談半ば本気。者ども、ループすら書けなくて愕然とするがよい。うわははは。知識とルールベースを書いてくと解決できちゃうのはちょっと驚き。逆計算ができるのもステキ*1。これは関数型もそうだけど、エントリポイントが決まってないのも素敵すぎる。
でもなー、事実を書く順番で無限ループに嵌ったり、カットで枝を切りまくらないとパフォーマンスが苦しかったりするところに言語として成立させるための妥協が見えちゃうんですよねぇ。
問題は「過去の言語」と見られているせいで入門書のたぐいが払底していることですかね。今手に入る中ではこいつかなぁ。

Prologへの入門 (PrologとAI)

Prologへの入門 (PrologとAI)

洋書だとコイツ必読ってことで注文してるんですがまだ届いてませんので評価保留。
The Craft of Prolog (Logic Programming)

The Craft of Prolog (Logic Programming)

セレクト4. Scheme

破壊代入できるじゃねーか! と怒られそうですが、continuation だけですべてが許せます。読んでないけどとりあえず評判がいいのはオライリーさんの Gauche 本ですかね。岩波から出てた湯浅先生の Scheme 入門は気軽に読める点がいいと思います。手に入ればぜひ。

プログラミングGauche

プログラミングGauche

Scheme入門 (岩波コンピュータサイエンス)

Scheme入門 (岩波コンピュータサイエンス)

SICPScheme で書かれていますが、繰り返すようにあの本において Scheme は手段であって目的じゃないし、言語を学ぶために読むのはちとタフなので、私はこの点では進めません。
計算機プログラムの構造と解釈

計算機プログラムの構造と解釈

セレクトX. Scala

今ちょっと流行ってるし、TwitterRails から乗り換えたとか言ってるし、ホットな言語ではあるんだけど、オイラが言語仕様みたことないんで保留。

ところで

「新しい世界」を見たいのだったら、手続き型から離れるのではなく、[普通のプログラミング環境から離れたい」んではないのかしら?

おいらまだ勉強始めたばかりなのでなんともいえないけど、Smalltalk の世界、しかも言語としての Smalltalk じゃなくて環境としての Smalltalk、とかもすげー世界が広がると思う。あーこれがアジャイル開発の原点なのかって。
気軽に読めてけっこうしっかり書かれている(でもちょっと古い)のが

Squeakプログラミング入門―オブジェクトランドへの招待

Squeakプログラミング入門―オブジェクトランドへの招待

  • 作者: ジーン・コリエネック,菅原一孔,鈴木元,阿部和広
  • 出版社/メーカー: エスアイビーアクセス
  • 発売日: 2004/04
  • メディア: 単行本
  • 購入: 2人 クリック: 20回
  • この商品を含むブログ (12件) を見る
しっかり学びたいのであれば
自由自在Squeakプログラミング

自由自在Squeakプログラミング

SMALLTALKで学ぶ オブジェクト指向プログラミングの本質

SMALLTALKで学ぶ オブジェクト指向プログラミングの本質

ですかね。

あとそのつながりで、「コードを書かない教育用プログラミング環境」SCRATCH なんかも刺激になると思う。一見おもちゃぽいけど、普通に複数オブジェクトが非同期で動く並列プログラミングができちゃうところはプログラマはもっと注目していいと思う。
SCRATCH については和書は一冊しか出ていないので迷いようはないですね。

スクラッチアイデアブック―ゼロから学ぶスクラッチプログラミング

スクラッチアイデアブック―ゼロから学ぶスクラッチプログラミング


長々と与太話失礼しました。

*1:ただし逆計算を許す述語はトロイのでカットで切っちゃうのが普通ですが