LL Future見てきました

昨日(8/30)、LL FutureというLL言語系のイベントを見てきました。
場所はなかのZERO大ホール。

近況

本当は午前中からいければよかったのですが、ネットワーク回線の故障に関する問い合わせのためあちこちしていて行けませんでした。
発端は木曜日の夜。雷で機器がどうこうしたのか回線は繋がるもののDNSがひけない状態が続いていたのだけど、金曜日はまだ八王子一帯の問題と思って放置。しかしニュースを見ると記事になっていないのでどうも違うらしいと気づき、金曜日の夜にはとうとう電話も繋がらなくなったためNTTに調査を依頼しようと決める。しかし結構な深酒により土曜の朝起きてから行動開始。固定電話が使えないのでケータイから113にかけるも通話中のような感じで繋がらず、仕方なしNTT八王子の窓口に持ち込もうとするも八王子の元横山ビルは顧客窓口閉鎖。仕方なし、公衆電話からかけようとすると公衆電話からは通話できませんとくる。で、何度も何度もケータイから電話をかけたところ、11時半ごろにようやくつながる。が、光でんわ対応者から折り返し連絡を入れるということで足止め。しかし14時半になっても連絡がこないので、後を嫁に託して中野に向けて家を出た。という具合でした。

というわけで、朝のラリーの基調講演どころか、まつもとさんのお話も含め、大幅に聞けなかった。なんというか、泣けます。
# そういえば、HP tx2505を買って(ってこれ、/.Jにしか書いてなかった)設定やインストールに勤しんでいることとの合併症で、未読ログがたまってしまっている。困った

ともかく、そんなこんなで中野に着いて、即なかのサンプラザへ。
はい。なかのZEROとなかのサンプラザを勘違いしてました。orz
ゴスロリやメイド系のきらびやかなコスプレのお姉ちゃん達を遠めに見つつ彷徨い、30分ロスしてから間違いに気づいて なかのZEROへ。
到着すると LLでアート が終了間際。
まだ見るところがのこっていて、安心しました。
逃した部分はニコニコで見るとしましょう。
cojiさんにエール送ります。

君ならどう書く?

少しして、キミならどう書く? - LL Golfのセッション開始。
今回はパネラーが全員20代とあって…ああ、20代ですか…若いなぁ…orz
ネタはHole 1、Hole 2、Hole 3、Hole 7、Hole 8。
Hole 4・5・6は使われませんでした。Hole 4は頑張っただけに残念。Hole 6は言語の機能を使って卑怯臭く10バイト割ったから面白みもなかったのか、笑いを取らなかったのがいけなかったのか…。

Hole 1。お題をネタにして、基本的にgolfはアイディアと道具の使い方で刻んでいくといいという話を、ruby多重代入用配列展開指示子(とでも言うのかな)を使ったテクニックの小ネタを挟みつつ、説明。

Hole 2。pythonのtitleという関数(?)はなんのためにあるのかという話が中心。LLがLlになってしまって使えないという話は、表現的には面白かった。
# 何の役に立つのかというのは、Golfだけに気にしてはならないのだ

Hole 3。
golf用rubyであるgorubyruby1.9に標準添付されるという話に驚き。perlは日付オブジェクトと数値を正規表現演算子で比較できるとか、なかなか変態的なテクニックを聞かされ、これぞgolfといった趣。

  1. 1は-~で置き換えられるよねとか、なかなか気づきません。それ。

Hole 7。
事前にdisられていたて、他の方法での修正版を作ってはいたけど書き込めなかったので紹介されないだろうなぁと思ったところ、私の書いたやつが会場でも盛大にdisられて(オーバーフロー賞)orzになった。
いや、一応

n=$*[0].to_f;k=0;b=1024;n/=b while(k+=1)<5&&n>b;puts (k<1?"%d":"%.1f")%n+" kMGTP"[k,1]

という#7339を改良した奴(86bbyte)や、

/^(.+?)((...){0,4})$/=~$*[0];l=$2.size;puts $1+(l>0?"."+$2[0,1]:"")+" kMGT"[l/3,1]

という正規表現ベースで操作する奴(82byte)も考えてはあったのですが…ごめんなさい。byte数的にもイマイチでした。
よっぽどネタとして使いたくなかったコードだったと見え、ひたすら「要件を満たしてない」と言っていた浜地さんが印象的でした。
まぁ…言い訳ついでに書いておくと、セッションでは言及なかったわけですが、ここのレスにある.の問題と引用符、丸めのそれぞれについて、意図的でした。
.は文字数だけで操作する時の利点は小数点を考慮しないところにあるので、当然というところ。引用符の扱いは多めに見てくれるだろうと考えたというところ。オーバーフローは言語によって大きな数値は扱えないものもあるし、問題ないかなという判断。まぁ、たぶんその、意図的にお題のコードからはずしているのを気づいたからこその言い方だったのだろうなぁというだけに、来年からは意図的に解釈をねじりませんと書いておきます。
つっこみで言われていた正規表現マッチの戻り。その使い方は思いつかなかったので面白かったです。

Hole 8。
$/を改行文字として使うところで大笑いしました。

古い言語、新しい言語

さて、ここから駆け足。
次のセッションでは、言語の未来についての話をしていました。
メモを取ろうとしたのですが、Noteのバッテリの残りが少ないことに気づき、最後のLT用にパワーを持たせるため、いったんNoteはスリープ。
しかし、メモ帳を忘れていたため、内容を記録しておくことができなくてorzな状態でした。
さて、記憶に残っているところで興味深かったのは、まず私がLLVMについて勘違いしていたことに気づいたこと。言語のVM共通基盤とかではなくて、全体最適化のためのツール群みたいな位置づけなのですかね。
またShibuya.abcなるものがあることを知り、そっち方面のバイナリをいじっている身としては興味深くありました。
JS上のRubyやJS上のPythonなど、存在は知っていたけど使った事がなかったものの詳しい話も聞けてほくほく。
すこし進行がグダってたけど、そこは問題なしでした。

LightningTalk

最後、LightningTalk。
Noteをあけて記録。

Client Database Storageという発表。
HTMLがあれば保存できるとか…どこに保存しているのだろう。
あとで調査してみよう。


authorNariさんがNarioについて発表。
ネタの作り方がいい。うらやましい才能。
GCのベンチとしてとか、rubyのデモアプリとしての将来など、Rubyの未来に大きく貢献しそうな内容もあり、ああLL Futureだったんだと再確認。

Yoshioriさんの発表。
Pitについて。パスワードなどの簡易編集ツール。
便利そうな感じ。これも調べてみよう。

yharaさんの発表。
Unbabel。ActiveScriptingみたいな物。
昔COM経由でVBRubyをAcriveScriptで接続してプログラム組んだ事あったけど、便利だった記憶があるし…。
なるほど、よさそう。

他にも知らないネタもいっぱいあったし、勉強になったけど、まとめるのはまた後日ということで。

後日談

さて、話は戻って我が家。留守電で訪問対応日の連絡が16時ごろにきていた。
移動中で気づかなかったのではあるけど…その対応するって期日が9/1。
月曜日なんていないんですけど…どうしよう。