YAPC::Asia っていうお祭りのお話

YAPC::Asiaってイベント

 まあ、僕もここ数年参加してるんですけど、 YAPC::Asia ってイベントがあります。

YAPC::Asia Tokyo 2013

 元々は Perl というプログラミング言語をメインに取り扱うイベントだったんだけど、最近は言語の枠とか薄れてきてるみたいです。公式ページ見ても、「エンジニアのエンジニアによるエンジニアのためのお祭り」って書いてあって、 Perl って言語の名前、どこにもでてこないし。

 個人的には、エンジニアの方はもちろん、エンジニアになりたい方(含む学生)にもお勧めなイベントです。採択されてるトークとか見ても、仕事でシステム開発・運用してる方向けのものもたくさんありますし、 Perl 入学式っていうプログラミング初心者向けの企画もあります。プログラミング経験ない人でも興味さえあれば楽しめること間違いなし。

急にこんなこと言い出した理由

 このイベント、開催は9月なのだけど、今販売してるチケットが8/11(今日)までなのです。年に1回しかないイベントなのに「興味あるけどチケット入手できなかった」なんてつまらない理由で参加できないの、きわめてもったいないので興味ある人は即買いましょう。あと、興味あるけどどんなイベントか良くわからないしっていう人は僕に Twitter とか Skype とかで話しかけてくれればいいと思いますよ。

僕が興味あるコンテンツ

 とはいっても、これだけだと伝わるものも少ないと思うので、僕が個人的に興味あるコンテンツをいくつか抜粋して紹介しようと思います。

絶対に面白いに違いない

 前提知識そんなになくても楽しめそうだし、メンバー的にもどんな話が聞けるのかワクワクします。

 Lighting Talks 関係のもの。LTっていうと短い時間で勢いよくトークして去っていく感じのものですが、 YAPC の LT は安定の面白さ。爆笑間違いなしです。ちなみに僕は過去に YAPC で20分のトークをしたことはありますが、 LT の経験はありません。なんか LT の方が(求められる面白さの)ハードルが高い気がして……。

初心者向けな感じのもの

 このあたりは、はじめての Perl 〜 はじめての Web アプリ的な感じで求められる前提知識(or経験)もそんなに多くなさそうです。

バージョン管理とか

 Perl とは直接関係ありませんがバージョン管理、大事ですよね。あと個人的に Git は好きなのでぜひ聞きにいきたいです。

その他

 Perl の未来。次世代 Perl 。今後どうなっていくのか、興味あります。

 型の話とか聞かずにはいられません。

他にもいろいろあります

 見にいきたいトークは他にもいろいろありますし、懇親会とかBOFとか、もちろんキーノートも押さえておきたいですね。 YAPC動画配信がないですし、なにより現場の空気がとても良いので、ぜひともチケットをご購入の上、参加してみてほしいと思います。

スマートフォンでクレジットカードの決済ができる「Square」を使ってみた

 スマートフォンで決済できるクレジットカードサービス「Square」が日本で使えるようになったので導入してみた。

 イヤホンジャックを用いて、カードリーダーをスマートフォンに接続し、専用のアプリを用いて決済を行う。ためしに、イベントの参加費を商品として登録してみた。

 で、実際に決済画面に移動する。カード番号を手で入力することもできる。

 この画面で、カードをリーダーに通す(このサービスでは「スワイプする」と表現されている)と、承認画面に移り、承認が完了したら署名を行う画面へと移行する(下記写真は承認完了の瞬間。カード情報が表示されている部分は加工した)。


使ってみた感想

 事前にアカウント登録した際に、決済したお金を振り込むための口座の設定などを行っている。このあたりの設定は思いのほかあっさりしていた。カードリーダーとアプリも、最初に使ったときは少し戸惑ったものの、使い方はとても簡単だ。商品についても、事前に登録しておくこともできれば、その場で金額を入力して決済を行うこともできるため、レジとしての機能も十分である。

 今のところ、 VISA と Master Card にしか対応していないらしく、 JCB のカードは通してみても認識されなかった(エラーも出なかったのには少し戸惑った)。このあたりの情報はオンラインヘルプ等でも見れるので、事前に確認しておくべきでだった。

 個人でクレジットカードの決済サービスを使うシーンはあまり多くはないと思うが、使いどころさえ見つければとても便利なサービスだと思う。

本当は書かれる予定のなかったイベントレポート

概要

 今となっては知らぬ仲ではない吉村麻之氏主催のイベント「山手線全域ドロケイツアー」のレポート記事である。

 実のところ、この記事が書かれる予定はなかった。僕が基本的にこういうものを記さない人間だからだ。今回この記事を書くことになった理由はひとつ。「主催の吉村氏のレポートに僕の名前が出ている」からだ(ちなみに、最初にレポートをあげたらび助氏の記事にも僕の名前がでている)。
(追記:今まで気づいていなかったが吉村氏主催のイベントシリーズにおいて、僕が参加しているものは全て氏本人のレポートに僕の名前が出ていた。なぜか。)

 さて、本来ならばレポートというものはその場にいた人間が感じた空気であったり、臨場感であったりを表現するものだと思うが、そういうものは他に書く人がいるだろう(僕が普段こういうものを記さない理由でもある)から、ここではできるだけ主観性を排除し事実のみを記すことにしたい(ただし人間の記憶など、ましてや僕の記憶など、信用にたるものではないということを付記しておく)。また、記録の他に今回採用されたルールについての考察も少しだけ記すことにする。

参加登録の話

 らび助氏のレポートでは、

今回は応募が始まったと同時に即応募、
もしかして一番ノリかなうずうずとかしてたら、
文字通り『神』速のrisouさんに抜かされていました(何

http://rabisukeryokan999.blog53.fc2.com/blog-entry-109.html

と書かれているが、こちらも一番を狙っていたがためにこうなった。登録開始後すぐに登録することで、「興味あるけど……」という層を刺激することが目的だったので、次回はらび助氏に一番に登録していただきたい。

 また、一人での参加を考えたが「もしかしたら僕と一緒なら参加しようって人もいるかも」と思い募集したところ、一人では参加条件を満たせないきり氏が声をかけてくれたので、あとは能力を補完する目的でjohnny氏を含め、3人での登録となった。

前日までの準備

 きり氏の宿泊場所でもある自宅の掃除などをしつつ、登録直後から考えていたことは「逃げる側になった時に、どう逃げるか」である。このゲーム、チーム全体で見れば「チーム内での指示」が明確にできない以上逃げる側が有利だが、個人レベルで見れば最初からずっと狙われ続けた人間が逃げ切るには時間が長い。僕はずっと自分が狙われ続ける可能性を考えていて、その際に3時間を逃げ切る方法についてはいくつかの案を出し、イベント前々日にはきり氏と作戦の相談をしておいた。ちなみに追う側になった時のことは考えなかった。

 結局、作戦としては「公園を有効活用する」「複数の駅に同程度にアクセスしやすい場所をベースに動く」というもので、具体的には新宿の北東と南東のどちらかにいく作戦であった。

第一戦

 当日は、上野駅近くに集合してチーム分け等を行い、その後午前と午後で計二戦を行った。第一戦は逃げる側、第二戦は追う側だった。

 第一戦においては、吉村氏のレポートにも詳細に書かれているが、僕たちは吉村氏に終われ続けることになった。逃げる側の視点でのレポートを記そう(この記事の一番の目的である)。この項の内容は吉村氏のレポートとあわせて読むと面白いだろう。

 蛇足だが、吉村氏のレポートに、

司令塔(と勝手に想定している)のrisouさん

http://mukiryokukan2.sakura.ne.jp/YET_7th_DoroKei/report/01.htm

と書かれているが、そもそも逃げる側に司令も統率もなかった(皆散らばろうね、くらいの話しかなかった)。

 最初、僕たちは作戦通り新宿御苑に向かった。ちょうど新宿で降りた直後に開始30分が経過し追う側が動きだした。その動きを定期的に確認しつつ、風が強いながらも悪くない天気のもと、新宿御苑まで歩いた。

 この時点で敵のうちこちらを狙っていそうなのは新宿、千駄ヶ谷あたりにいる数組であった。ひとまずは四ツ谷方面に逃げることを想定して新宿御苑から北上。途中で東に折れる予定だった。

 が、位置情報を確認しながら歩いていると、吉村氏が四ツ谷駅あたりで止まっていることに気づいた。四ツ谷で降りた可能性がある。その場合、最も近くにいるターゲットの一人である僕たちは狙われていると考えた方が良いだろう。

 さて、東、西、南には敵がいる。三方を囲まれる形になったが北に逃げれば問題ない。という考えとは別に、思考の中には「開始前に配られた封筒」があった。これは開始後1時間30分の時点で開封することが指示されていて、おそらく中には「こなすべきミッション」が記されているのだろうと予想された。過去の傾向などから考えてミッションの内容は「指定された場所の写真を撮影してネットにあげる」である可能性が高かった。つまり、逃げながらも「指定された場所」にアクセスしやすい位置どりをしなければならなかった。この時点で明確に僕たちを狙っているのは東の吉村氏だけだったので、とりあえずは北ではなく西、新宿方面に逃げることにした。

 そして、開始から1時間30分が経過。封筒を開けるとそこには予想通りの指令があった。

一時間以内に、"東京駅、水道橋駅、四谷駅、千駄ヶ谷駅新宿駅"いずれかの"JRの自動改札機"を携帯電話で撮影し、ツイートで報告せよ。

http://mukiryokukan2.sakura.ne.jp/YET_7th_DoroKei/report/01.htm

 この内容に対して最初に考えたのは「東京駅、新宿駅は追う側が多く集まるだろう」ということ。そこでまずは千駄ヶ谷駅を目標とし、進行方向を南へと変えた。当然この時も吉村氏はこちらに迫っており、追いつかれないように移動する必要があった。南に移動しながら追跡してくる吉村氏の位置を確認。同時に目標地点たる千駄ヶ谷駅周辺に誰がいるかも確認していた。

 Uターンする形で新宿御苑の北東の端まで戻ってきたあたりで、千駄ヶ谷駅に張っているであろう敵の存在が無視できなくなった。北からは吉村氏が迫り、南は千駄ヶ谷駅で敵が待ち受け、西を見れば新宿御苑の西の端あたりにこちらに向かってくる敵影があり。そしてあいにく、東に進む道はなかった。とりあえずは改札撮影のため千駄ヶ谷駅に近づこうと、僕たちは一縷の望みを託して新宿御苑に飛び込んだ。

 が、ここで入ったのは新宿御苑の駐車場。北から入り、南に出口があれば……と思ったが、どうやら入ったところ以外に出入り口はない様子。さすがにフェンスを飛び越えるのはアンフェアだろう(僕一人ならやったかもしれないが)。これは詰んだか……と思いながら駐車場を一周して元の場所に戻る。吉村氏がかなり近い。

 この時点で写真撮影はかなり諦めており、「一人でも多くの敵をひきつけて捕まる」ことを目標として、新宿御苑の北の端を東西に走る遊歩道(無料エリア)に入った。まっすぐ西に進む道。この先には新宿駅から来る敵がいる。己が挟撃される様を位置情報で確認しながら歩いていたら、追ってきていたはずの吉村氏が新宿御苑に入らずそのまま南下して千駄ヶ谷駅に向かっていることに気づいた。理由はわからないが、この状況なら北に逃げられる。僕たちは遊歩道の真ん中あたりで新宿御苑を出てそのまま北に直進した。

 吉村氏のレポートによるとこの時、

住宅街バリアにより新宿御苑に全く入れない。

http://mukiryokukan2.sakura.ne.jp/YET_7th_DoroKei/report/01.htm

という面白い状況になっていたらしく、ここで吉村氏が南下したおかげで僕たちは助かったといえる。

 その後、北上して追っ手との距離がある程度開いた時点で、僕たちは次の行動指針を決めることになった。逃げるためにはこのまま北上しなければならず、しかし写真撮影を諦めないのであれば新宿駅に向かうしかなかった。他の駅に向かうには制限時間が近づきすぎていたのだ。歩を緩めることなく状況を整理し、途中で西に折れて新宿駅に北東から接近する計画へと移行した。

 新宿駅は改札が多い。山手線の内側からアクセスできる改札は限られているがそれでも複数ある。どの改札を狙うか、どのルートで接近するか、きり氏が頭の中にある地図を元にプランを提示してくれる。関東在住の僕より地理に明るい。写真撮影ミッションに残された時間は20分程度。プランどおりのルートで移動すると新宿駅への到着はギリギリになる。

 新宿駅が見えてきた頃、駅周辺には既に5,6チームの敵が張っていた。千駄ヶ谷から電車で移動したであろう吉村氏もいる。「俺に固執するその攻め方、それが敗因だな」と思いつつ、可能な限り人混みに紛れるよう歩を進めた。

 ここが勝負どころだ。できる限りの手を打とう。

 相手はこちらがスーツの上に黒のロングコートを着ていることを知っている。ならば、コートを脱ごう。さらにジャケットも脱ぎ、上半身は白のワイシャツに水色のネクタイ。これだけでもかなり印象を変えることができただろう。そして東口の改札に接近する。もちろん、衣装をごまかそうがサングラスをかけた男が改札にスマートフォンを向けて写真を撮ろうという姿は目につきやすい。ここできり氏にスマートフォンを託す。操作方法を教え、数歩先を行ってもらう。改札が視認できる位置についたら、こちらはそれ以上動かずスーツでもなくサングラスもかけていないきり氏に改札の写真を撮ってもらう。撮影が終わると同時に踵を返し、山手線の線路に沿うように新宿駅を脱出した。
 移動しながら写真をツイート。制限時間まで3分を残してミッションを達成した。この時点で勝利を確信し、僕たちはゆっくりと駅から離れるように北へと歩を進めた。足への疲労もありできれば電車に乗ろうと新大久保駅を目指したが、敵の何人かが電車で新大久保駅に向かう様子を見て東に方向転換。そのままゲーム終了時間までゆっくりと北東に進んだ。

休憩

 第一戦を逃げ切った僕たちは、タクシーで四ツ谷駅に向かい、そこから電車で合流地点の上野へと向かった。第二戦の開始時間を確認し、昼食をとる。

第二戦

 第二戦は追う側だった。こちらは対象となる逃げる側のレポートもないので、自チームの動きではなくチーム全体が実際に展開した戦術について主に記すことにする。

 追う側は逃げる側の開始から30分の間スタート地点で待機することになっている。この時間にどう動くかを皆で協議した。

 自分が逃げた体験からも、闇雲に追いかけることの無謀さはわかっていた。僕はいろいろ考慮してひとつの作戦を提案した。ゲリラ戦術だ。全体をいくつかのチームにわけ、チームごとに目標を囲うことで効率的に捕まえる作戦である。

 追う側は18チームからなる集団だったので、それを4、5チームごとに4つにわけた。最初のターゲットは高町ぐずり、ひなたもみじチーム、杜若シズチーム、ロキルスの4チーム10人となった。高町氏(この表現、すごい違和感である)については、「捕まえたい」というファンの要望を受け入れた結果だ。同様にロキルス君についても、「ラスボスに挑みたい」という要望に応えた。ただ、僕はこの作戦で彼を捕まえるのは難しいと思っていたので、「ロキルス君を捕まえるなら4チームでは足りない。最低でも8チームは必要だ」と伝え、それだけの人数を対ロキルスに回すと、他の敵を捕まえられないから頑張ってね、ということも伝えた。残りの2チームをターゲットとした理由は至極簡単で、人数が多かったからだ。人数が多い方が動きが遅いだろう、というだけの判断である。

 実際、皆この戦術に忠実に動いてくれたので、前半(1時間30分)の確保人数だけ見れば、第一戦より多い。吉村氏が主催であるにもかかわらずスルーされたのも、この戦術があったことが大きいだろう。

 ただし、この作戦には大きな問題があった。それは、「ゲリラ戦術は、個々のチームの判断への依存が大きくなる」ことだ。この戦術を採択したことが、後半の1時間30分で戦果が振るわなかった要因の一つだろう。また、ルールとして「人に指図してはいけない」というものがあったことも大きい。このルールは各自の判断を尊重する目的なので、ある程度僕が他チームに指示しても良かったのかもしれないが、こういうイベントで「自ら考える」ことを経験しないのはもったいない、と僕自身が考えていることもあり、僕からは指示を出さないようにした。僕からアドバイスできたのは以下の一言のみである。

 ゲリラ戦術が後半有効に機能しなかったことは、その時間帯の Twitter のログをみればわかる。初期ターゲットを確保したあと、 Twitter で指示を仰ぐ人は少なくなかった。これが僕が先のツイートをした理由でもある。追うチームにも逃げるチームにもリーダーはいないのだ。「各自で考えよ! 君が指示を仰ぐべき上官・指揮官はいない!」とかツイートすべきだったかもしれない。結果的には「残り1時間になったら主催の吉村氏の確保にまわる」というもう一つの作戦のおかげでその後もそれなりに動けたようではあったが。

 また、逃げる側もアローフォーメーションという作戦を考えていたようだ。立案者の吉村氏は「戦略的効果はない」と言っているが、実はこの作戦は2つの点で有効に作用していた。

 一つは、参加者の中でも知名度の高い吉村氏、高町氏の両氏を孤立させたことだ。吉村氏の単騎北上は効果を発揮しなかったが、初期ターゲットの一人として高町氏を選んでいたこちら側にとって、高町氏一人が南下し、他のほとんどの敵が新宿へ向かった事実は大きな影響を与えた。目論見どおり早い段階で高町氏を確保することには成功しているが、その後山手線内の北側に敵のほとんどがいるにもかかわらず、こちらの1/4は山手線の南端にいるという状況になり、他の敵へのアプローチに時間がかかってしまったのだ。また、開始1時間30分の時点で開封されるミッションが「1時間後の時点で総武線より北にいなければならない」というものだったことも影響している。

 もう一つは、ほとんどが新宿で降り、そこから北東方向へ移動したこと。これによって、1チームを捕まえてから他のチームを捕まえようとしたとき、こちら側のチームの多くは新宿の北東あたりにいるのにたいし、敵の多くがさらに北東(上野寄り)に位置することになってしまった。結果として思うように囲むことができず、後半の確保数が予定より少なくなってしまった。

 ちなみに僕がラスボスと称したロキルス君は、最初4チームに追われ、その後追っ手が8チームくらいまで増えたが捕らえられなかった。これはもうさすがという他ない。「自分が詳しい土地を戦場に選んだこと」ももちろんだが、「あの数に囲まれても余裕を保てる胆力」もすごい。が、まあこれは予想通りではある。彼を捕らえようと思えば、8チームだけではなく、僕のような人間のリアルタイムな指揮が必要だったに違いない。ついでに(最終的に8チームも動員した)ロキルス君が戦場に選んだのが渋谷周辺だったことも、敵にとっては良い結果へとつながったといえるだろう。

 まあそんなわけで第二戦では思うように確保できなかった。

あるはずのない次があるなら

次回の開催も簡単に検討は出来そう。

http://mukiryokukan2.sakura.ne.jp/YET_7th_DoroKei/report/02.htm

 本当に次回開催があるとは一切思っていないが、もしやるならルール検討にかかわらせてほしいですね。でなければ、今度は自チームの指揮をとってしまうかもしれない。

最近の記録

 ちょうど新しい Mac 環境が手に入ったこともあり、ひとまずやったことを一部記録しておく。

homebrew をインストール

 前は macports 使ってたけど、 homebrew 便利ですね。とはいっても、現時点でインストールしたのは git と zsh だけですけどね。

Emacs24 をインストール

 Mac に Emacs24 をインストールした。インストールは難しくなくて、問題は el とか。とりあえず自分の init.el を入れて起動してみる。なぜか (display-battery-mode t) でエラーがでる。原因はわからないし、なくても困らないので一旦コメントアウト

el-get をインストール

 いつか入れようと思っていた el-get をインストール。 el-get からインストール可能なものを順番に入れていく。 ctags だけ、参照先が mercurialリポジトリだったようで、インストールして (el-get 'sync) すると、

The command named 'hg' can not be found withexecutable-find'`

 というエラーが出る。まあ、 hg 入ってないからね……。というわけで、これは一旦アンインストール。

zsh の設定

 zsh は homebrew で入れたので、 .zshrc を入れて終わり……のはずだったんだけど、ついでなのでこの機会に git のブランチ情報等をプロンプトの右端に表示するように .zshrc に追記。

 こういう機会でもないと、一度慣れてしまった環境を変えることはなかなかないなあ。

Yokohama.pm #9 で話したこと

 先日、約1年ぶりに開催された Yokohama.pm に参加してきました。

Yokohama.pm #9 を開催します - Yokohama Perl Mongers

 運営の皆様、懇親会で話をさせていただいた方々に感謝を。

話したかったこと

 今回、思うところあって久しぶりに Perl6 の話をさせていただきました。思うところというのは、簡単に言えば『先日の YAPC での Larry Wallトーク、どれくらいの人が内容を理解できたんだろう』ということです。トークの内容は Perl5 で書かれた strand sort のコードを Perl6 のコードに変えていくというもの。当然、説明は英語で行われ、英語の聞き取りが満足にできない僕なんかは、プロジェクタに表示されるコードは読めるけど何を言っているのか半分もわからない体たらくでした。

『興味はあるけど、英語がわからない』という方はそれなりにいると思います。その内容がおそらく多くの人にとって馴染みのないであろう Perl6 であれば、せっかくのトークを十分に楽しめなかった人もいるんじゃないかな、と僕は考えました。そういう人たちも、日本語での解説があれば楽しめるはず。僕自身、英語は苦手とするところですが、幸いにも YAPC でのトークは、 Youtube に動画が上がっているので、それを何度も見返しました。

Larry Wall - What Does Your Code Smell Like? - YouTube

話したこと

 当日、 Mini DVI-VGAアダプタを忘れてしまって、「誰にも借りれなかったらどうしよう」と考えた末、 Windows を入れたノートブックも持っていくことにしました。アダプタがなかったら、「こんなこともあろうかと」と言ってドヤ顔でそちらを使う予定でしたが、実際に行ってみると、さも当然のようにアダプタが2つ置いてあって「さすがや……! わいの仕込みはいらんかったんや!」と唸る結果に。

 また、トークの方は長びいてしまって運営の方々に迷惑をかけてしまいました。申し訳ないです。あと、最後 MacBook のバッテリが足りなくなってしまい、予期しない形で kan さんメソッドの力を借りてしまいました。

 kan さんメソッドのおかげで、笑いがとれて良かった!(結果オーライ)

 以下が当日使用したスライドです。

"What Does Your Code Smell Like?"で学ぶPerl6

伝えたかったこと

 懇親会に向かう途中に [twitter:@yusukebe] さんとも話したことですが、今回のトークは Perl6 のユーザを増やそう、という意図でのものではありません。今 Perl6 にかかわっている人たちがいて、それは Perl5 ユーザにとっても全くの無関係ではないんですよ、ということを知ってもらいたかったのです。

 伝わったかどうかはわかりませんが、僕のトークを時間の無駄と思わず聞いてくれた人がいたなら嬉しい限りです。

2012年もYAPCお疲れ様でした

 自分なりに記録を残しておきます。『ブログに書くまでがYAPC』だからね。

自分のトーク

 前夜祭の最初に20分枠をいただいて、PerlExcelを操作する初歩的な方法についてトークしてきました。資料と動画は、YAPCサイト内の以下のページから見れます。

Officeで使うPerl Excel編

 今回、トーク申し込みのページには、以下のように書いてありました。

今年は以下のような内容のトークを重点的に募集していますが、特に制限はありませんので、ご自由な内容で応募いただいて結構です

 自分はこの中の『Perl初心者向けのチュートリアル』『Windowsで扱うPerl』に合う内容として上記のトークを行いました。

 内容については、「簡単すぎたかも」と思いつつ、ほんの数人ですが「良かった」と言ってくれた方がいたので自分としては満足です。

LT

 トークに関してはまだ見たいものが全部見れていない(時間を見つけて少しずつ動画で見ています)ので、ここではLTで特に自分にとって面白かったものについてちょっと書いておきます。

perldoc.jpが10周年

 Perlに関するドキュメントの多くが日本語に翻訳されているという報告のLT。日本語での情報量も多いし、Perl興味あるという人には普通にオススメですね。

Perlでおねえさんを救った話

 おねえさんはどうでもいいんだけど(失礼)、あのアルゴリズムがとっても興味深かったのです。

「ほとんど同じ」画像ファイルを簡単に整理するために

 同じ内容でサイズなどが違う画像を抽出して、片方だけ残すことができるという便利なツールの話。面白かったけど、そもそもそういう画像がローカルにあるという状況が自分にはなさそう……。

みんな大好きサスペンダー

 笑いとれててLTとしてはとても良かったです。特にあの画像が表示された瞬間のご本人様の反応が最高でした(動画見ていただければ)。

Perl 1+1 耐久テスト

 LTはもちろんのこと、目のつけどころがすごいと思いました。ちなみにPerl6でやるとものすごい長い時間待たされるらしいので、(いないと思うけど)試される方は注意しましょう。

LTthon

 今回、3つのトーク会場の他に前夜祭、懇親会の会場となった場所でLTし続けるというLTthonなるイベントが開催されていました。自分はこちらはほとんど見れませんでしたが、何やら面白そうなLTがたくさんあったようなので、動画とかあれば見たいですね。

その他

 今回は懇親会、後夜祭(非公式)も含めれば、十数人の方と色々話ができてトーク、LT以外も楽しめました。ランチくじは試せませんでしたが、ちょっと面白そうでしたし、YAPC何回行っても毎回面白いイベントなので来年も是非やってほしいですね。

 自分としてはボランティアスタッフも一度やってみたいのだけど、出張とかあると難しいのでこればかりはなんとも言えません。でも、来年もあれば自分なりの方法で参加したいと思います。

ZNCでISO-2022-JPなサーバの日本語チャンネルを登録する方法

注意

この方法はイケてないです。
きっと正しいやり方が他にあると思ってるんですけど、ちょっと見た感じでは見当たらなかったので、知ってる方がいたら教えてくれると嬉しいです。

ZNCについて

ZNC

上記リンクを見ていただくのが早いですね。
IRC bouncerの一つで、これをサーバで走らせておくことで、チャンネルに常駐してログをとったりできるわけです。

問題になったパターン

今回問題になったのは、IRCNet-JPなどの文字コードISO-2022-JPのネットワークでチャンネル名が日本語の場合。
ZNCではznc.confにjoinするチャンネル名の一覧が記載されますが、ここに日本語チャンネル名をそのまま書くと文字化けします。
ZNCはUTF-8でチャンネル名を解釈しているので、文字化けするのは当然ですが、ではどうやって日本語名のチャンネルにjoinするか、という問題が出てきます。

対応方法

以下のコマンドとモジュールを組み合わせて対応しました。

Enablechan

これはIRCクライアントからZNCに新たなチャンネルへjoinしてもらうためのコマンドです。
これを使うことで文字化けせずに正しく日本語名のチャンネルにjoinできます。
(もちろんIRCクライアント側での文字コードの設定が正しいことが前提です)

SaveConfig

SaveConfigは、IRCクライアント側での設定をznc.confに反映させるためのコマンドです。
Enablechanで目的のチャンネルにjoinしてSaveConfigすることで、znc.confに反映させよう、という目論みです。

が、この方法では上手くいきません。
なぜなら、SaveConfigがチャンネル情報をznc.confに反映させないからです。

chansaver

そこで、chansaverというモジュールを導入します。
これを使えばチャンネル情報がznc.confに反映されます。

まとめ

つまり、chansaver→Enablechan→SaveConfigでznc.confに目的のチャンネルを追加することができるのです。
もちろん、その結果として、znc.confには文字化けしたチャンネル名が記録されてしまいますが、この状態でZNCを再起動しても、問題なくそのチャンネルにjoinできます。

たとえばtiarraでは接続するサーバごとに文字コードを設定できたので、ZNCでも同様の設定ができればなあ、と思うのですがそれっぽいのが見当たらず……。

charsetモジュールが解決してくれそうな気がしましたが、試しに使ってみても上手く文字化けが解消されませんでした。使い方が悪いのかな……。