Language)をテーマにした“LLイベント”が、今年もまた、2009年8月29日に東京・中野で開催された。Perl、Ruby、Python、PHP、JavaScriptといったメジャーなものから、Lua、Gauche、Rといった比較的マイナーなものまで、LLに関する発表やパネルトークを行うイベントだ。内容は、まじめな討論や高度なプログラミングの議論、ジョークネタまでと幅広い。Ring」と題して会場にプロレスのリングを設置、プログラミング言語対決をしてみたりと、例年、趣向を凝らせたプログラムが見物だ。7回目となる今年は「LLTV」と題し、有名テレビ番組のパロディーで構成されていた。番組タイトルと内容は、以下の通り。いわゆるライトニングトークLLTVの番組表いずれも、テーマソングや効果音などは本物の番組と同じものを使っていたほか、幕間の番組表の表示やNHK風のアナログ時計の表示なども“テレビ放送風”という雰囲気を醸し出していた。プロジェクタ設定のトラブル時には、放送事故のときに表示される「そのままお待ちください」という画面まで大写しにされる手の込みようだ。この記事では、匠の技の数々が、会場からどよめきと笑いを誘った夕方の番組、「大改善!!劇的ビフォーアフター」を前編、中編、後編の3つに分けてレポートしたい。今年のLLイベントの基調は、テレビ番組。すべてのプログラムが何らかの有名番組のパロディーとなっていた討論会、まじめな発表のほか、IT漫談まで盛りだくさんの内容RubyのfortuneコマンドをラップするDSL「大改善!!劇的ビフォーアフター」は、言わずと知れたテレビ朝日系列のヒット番組、「大改造!!劇的ビフォーアフター」(「改善」「改造」と1字違い)をパロディー化したオムニバス形式の発表だった。2つがネタ系、2つが“まじめにスゴイ”という内容だ。ネタ系の1つ目はRubyを使ってfortuneコマンドを“増築”するというテーマ。発表したのは、日本UNIXユーザ会、日本Rubyの会に所属する高野光弘氏。fortuneコマンドは、多くのUNIXに標準インストールされているコマンドで、実行すると警句や箴言のような短文を表示する。Language)として実装。オリジナルのfortuneコマンドの出力をWebサービスを使って翻訳したり、Twitterへ投稿したりといったことを容易に行えることを示してみせた。DSL設計の典型的なやり方の1つとして、動作を制御する各種オプションをハッシュとして受け取る仕様を紹介。この仕組みで、対応言語(Webサービスへ受け渡す文字列)の追加や、実行時の言語指定が柔軟に行える様子をデモンストレーションしてみせた。:korean)」というように指定できる。重訳すると、「税金の目(雪)があなたにいます」など、オリジナルがまったく想像できない哲学的(もしくは単にナンセンス)なテキストが出てくるなど、高野氏はジョークを交えて会場の笑いを取っていた。「働くと負け」というセンテンスを一気に多言語に翻訳して標準出力に表示したり、「ふざけるな」という言葉の翻訳が「なんと5カ国語で同じだと分かる」(高野氏)など、実例がユーモアに溢れていた。1.9の多言語化のありがたさを示してみるフリをしつつ、「単にヒウィッヒヒーと言いたかっただけでは」という疑念で会場を沸かせるなど、最初から最後までユーモアのある楽しい発表だった。1.9系ならシンボルにマルチバイトも利用できるブラウザから飛び出すSL機関車!teramako氏2つ目の匠の技は改築でも増築でもなく、むしろ、新興住宅街に古風でデコラティブな建物を作ってしまったというような楽しいハック。発表したのは、Vimperator使いのteramako氏。Vimperatorは、Firefoxのプラグインで、Vimのような操作でブラウザを扱える。「:ls」とすれば、現在開いているタブの一覧が表示され、「j、k」で選択、タブの切り替えが行えるといった具合で、コマンド数は100を超えるという。teramako氏は、このVimperatorにslコマンドを実装した。slコマンドとは、UNIX系OSのジョークソフトだ。頻繁に入力する「ls」を「sl」と間違って入力することがある。舌打ちをしながら打ち直す。ところがslコマンドのインストールされた端末では、いきなりアスキーアートで描かれたD51機関車が画面をトロトロと走り出す。知らずにslを起動した人は驚くし、たとえ知っていたとしても、イラッとする。思考の流れが数秒ほど遮られて呆然と機関車を眺める間に、名状しがたい悔恨とslコマンド作者への怨嗟の念に駆られつつ、そのユーモアのセンスに心和むというソフトだ。slコマンドの実行例。lsと打つつもりで間違えると、いきなり機関車が端末を駆け抜けて驚く、というジョークソフトteramako氏は、この機関車アニメーションを、Firefox上のVimperatorで実現。銀河鉄道999のように空に駆け上る機関車や、ボディにロゴを描いた機関車などと表現はエスカレートしていき、ついにウィンドウ装飾なしのポップアップを行うFirefoxの機能を使って全画面表示する派手なデモンストレーションとなっていった。数十個のカラフルな流星が画面上を川のように流れる中、最新技術に不似合いなアスキーアートの機関車が走り抜けるという力一杯のジョークに会場から拍手がわき起こった。ブラウザで実行しているとは思えない、派手なslコマンド(?)の実装。カラフルな流星とともに画面いっぱいに広がる機関車Vimperatorにはlsコマンドの上位互換ともいえる強力なbufferコマンドがあるため「そもそもVimperatorでlsコマンドを打とうというやつはいない」(teramako氏)という。このように、slコマンドをブラウザで実現するというテーマは徹底したジョークだが、teramako氏は発表の随所で技術詳細に触れていたのが興味深い。Canvasが意外に重たく、オブジェクト数が増えると処理落ちすることや、X上のFirefoxではCSSのアルファチャネルを使った半透明化にバグがあることなどにも触れていた。Canvasを使ったアニメーション作成方法の基本に触れつつ、「タイムライン制御が簡単になるライブラリやフレームワークがほしい」(teramako氏)と、Canvasを使ったアニメーションが、まだツール不足で難しいことも指摘していた。Artsの川合史朗氏)を入れることでlsのソースコードを半分に“リフォーム”したという発表を、後編では、サイロ化して連携利用が難しかった多数の業務システムを、bashスクリプトとフラットテキスト、多段パイプ処理の組み合わせというUNIX的アプローチで劇的にリフォームしてしまったUSP研究所の當仲寛哲氏の発表をレポートする。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。(2017/7/6)日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。Excel」で使えるVBAを紹介する。電話サポートの保留音、世界の主流はクラシック——Genesys調査13カ国で実施した電話サポートの保留音に関する調査結果です。「フードロス」「廃プラスチック」に高い関心——CCC調査エコ・環境問題への関心や関連トピックスへの認知度などを調査しています。