ブログを書くまでがYAPCということで、もう一週間以上前のことになるのだけど、そのときのことを書く。(月火と京都出張だったり、今週はなにかとイベントがあって遅れたのじゃ…)
YAPCはYet Another Perl Conferenceの略で、一般社団法人 JPAが主催する、Perlを軸としたITに関わる全ての人のためのカンファレンスです。
です。
トーク
オープニングからずっとA会場に居る、ランチセッション後はずっとB会場に居るという感じでトークを観覧した。いったりきたりすると席の確保が面倒なのでわりとこうなりがち。
見た中からいくつか良かったトークについて書く。
分散ユニークID採番機katsubushiとWebアプリケーションへの応用例
個人的に今回のベストトーク。Golangで書かれた分散ユニークID採番機katsubushiが生まれた経緯とその仕様紹介、単純にレコードのidとして使う以外の応用例などの紹介。
単一のリクエストにidを発行して引き回して各種ログに記録するというのが良かったなと思った。スライドにもあったけど非同期のジョブが落ちた時の調査は割と困難で、どのリクエスト起因なのかなどが分かるのは良さそう。(今ならこれだけであればkatsubushiを使う必要はなくて、Nginxの$request_idを引き回すで良さそうという話もありそう。)
Web application good error messages and bad error messages
良いエラーメッセージとは、悪いエラーメッセージとは、というトーク。アプリケーションを作る上で、例外を吐く時のメッセージとか、何らかの問題が発生したときにユーザ向けにその旨を伝えるためのメッセージを書くことは避けられないわけだけれど、きちんと意識しないとふんわりとしがちで、そのメッセージが実際にどのように役に立つのかなどを考えずにいると、中身がなかったり不十分だったりする文字列が並ぶことがある。
トークでは、エラーメッセージについて次元という分類でレベルを整理されてたのが良かったなと思った。
最近実際に、1年くらい前に書いたエラーメッセージが情報量が少なくて何を言っているのか全く意味がわからんぞということがあり、共感があってよかった。
個人的な意見なのだけれど、エラーメッセージを中途半端に高次元にする必要はないと思っている。ここでいう中途半端な高次元というのは、対処方法や解決手段が提案されているということ。
これは心理的な問題で、素人PCユーザ気質が抜けないので、対処の手段が分かってるならそうしろや、という気持ちになってしまいどうにもストレスが溜まる。例えば、gitのサブコマンドをtypoしたときに出るDid you mean this?
みたいなのが出るのが苦手だ。
そこまでわかっているなら修正しますか?と聞いてきて、1クリックで修正したコマンドが発行できるとうれしい。発表中にはなかったけど、これが一番の高次元であるといえるのではないか。(もちろん、これがエラーメッセージの範疇に入るのかという話題もありそう。)
例えば、僕のシェルとかはそうなっている。
[wadamasayoshi@sibelius] $ vmi hoge.txt vim is correct? [n,y,a,e]:
とはいいつつもちろんそこまで高次元にするコストが払える場面が少ないことも理解しており、かつ簡潔に何が起きているか分かるだけというよりかは解決手段まで提示されているほうが良いので、3次元的なエラーメッセージを記述する程度にとどまることは十分に頷ける。
新時代のテストフレームワークTest2
弊社akiymさんのトーク。Perlのテストフレームワーク、Test2の紹介とハマりどころの説明。先日、とあるツールをcpanmでいれたところ勝手にTest2がインストールされて手元のテスト環境が完膚無きまでに破壊されてしまうという現象が起こっていて、トークを聞いたところ「あぁ、これ見たことあるやつだ……」というのが2,3回くらいあって面白かった。Test2便利そうだったので使いたい。
Test::Deep的な記述ができるakiymさん謹製のモジュールTest2::DeepLike
がかなり強力そうで、これぞ顧客の求めていたものなのでは…と思った。
その他
飛行機
飛行機あまり乗ったことがなくて、沖縄に修学旅行で行ったのが最初で最後だったので、一人で乗るのは初めてだった。当日家を出る1時間くらいまでなんの準備もしておらず、準備を始めてから国内線の機内持ち込みが可能なものを調べたりとか手荷物の数に制限があることとかを知ったりして、とにかく大慌てで準備した。今度はもう大丈夫だと思う。
あと、高校生のときに気胸やったんですが、さすがにもう大丈夫でした。
宿
飛行機と2泊の宿併せてパックでとって3.2万くらいで、正直もう少し金積んでおけばよかったかなという気分。
本当は博多駅近くの宿を取りたかったのだけど、既に埋まっていて大濠公園という駅(博多から数駅)の宿になった、という話を同僚のid:papixさんにお話したところ「人権はある宿ですよ」という含みのあるコメントを頂いたので、実際に行ってみたところ、0.8人権程度であった。
微妙な香りがしたり、風呂が異常に狭かったり、操作可能な空調がなかったり、物理鍵&オートロックなしだったりというのが耐えられるのであれば良いと思う。。。まあ安いので今回はよしということで。
ご飯
ご飯の方は期待通り美味しかったです。ラーメンだけ食べ損ねた。
前夜祭チケット取れなかった組で寿司食べに行ったり、そのあと前夜祭組と合流してラーソーメン食べたり。YAPC翌日は駅でお土産かったり近くの飲み屋でいろいろ飲んだりした。
ロッカー
よし帰るぞということになって、衣服とか預けてたロッカーまで戻ったら鍵番号が書いてあるレシートを紛失した。最近、物理鍵ではなくて、預けた時に出てくるレシートの鍵番号または交通系電子マネーで解錠するタイプのロッカーがあるけど、預けたところは電子マネーが使えなくて、仕方なく番号入力するタイプで預けた。
が、見事にそのレシートを紛失した。係員の人に電話して20分ほど待ったところ、中身の確認とサイン+電話番号で荷物を回収できた。気をつけましょう。
次回
来年2018年3月3日に沖縄の恩納村ということで、楽しみですね。今度は是非ともトークしたいと思うのだけど、倍率高いんだろうなー。