D-7 <altijd in beweging>

Day to day life of a Perl/Go/C/C++/whatever hacker. May include anything from tech, food, and family.

前の記事では事実関係のみを淡々と書いたけど、今度は少しエモい話。

前の記事
でも書いたけど、YAPC::Asia Tokyo 2015の成功の裏側にはたくさんのスタッフの協力があった。自分だけでやろうと思ったら物理的に手が足りないのは当然だが、他にも自分では全く思いつかなかったであろう様々な事柄があって、それらを皆の力で埋めていってもらった。

昨年までももちろんそうだったんだけど(あ、昨年は俺やってないわ)それにしても今年のスタッフは優秀だった気がする。もちろん反省点はいくつかあるけど、それはどちらかというと主催である自分が決めきれなかった、もしくは間違った判断をしてしまったディテールであり、それ以外の企画・運営は本当最高だった気がする。開催中にオンスケジュールな運営や内容について初めて来た海外勢にも褒められて鼻高々であった


(注:Caseyは前にも参加したことがある)



それにしてもどうしてこんなに自分が持っていないスキルを持った人がスタッフに来てくれるんだろう。自分はきっとまわりからみても明らかに何かが足りない人間なんだろうなー、見てられないから手を出してくれるのかなーなんて思っている。でなければこんなに偶然自分の足りないところを補ってくれる人間が現れるわけがない。卑屈になっているのではなく、本気でそれでよかったと思う。

正直自分は企画があまりできない。クリエイティブな人間ではないからだ。YAPC::Asia Tokyoの資金回り等を含めた運営がそれなりにできているのは例えば「2000人のカンファレンスを成立させる」「黒字を目指す」「スポンサーを取りつつも企業色を減らしエンジニアの祭典として成功させる」というような到達目標があるからであって、 真っ白なキャンバスを渡されたら多分固まってしまう。自分はDoerであってCreatorではないのでそこをカバーしてくれる人がいる。

これまでも様々なレベルにおいて数限りない人達に助けてもらった。

代表格としては今年はスタッフではないものの、これまでの数年間でイベント運営において誰を幸せにするべきか教えてくれた櫛井さんであり、今年で言えば企画立案を含め相当我が儘を聞いてくれたuzullaさんであるのだが、彼らだけに限らず、コアスタッフの面々は自分が持っていない様々な技能を持ってサポートしてくれた。

粘り強く僕のざっくり発注指示をこなしてくれたkobakenやkarupaneruraさん。受付まかせた!という無茶振りを見事なオペレーションでこなしてしまったRicoさんや鳴釜さん。これまでの経験を生かして自分からの指示など待たずに現場を取り仕切ったり、遊撃手としてあちこちに顔を出してくれたmonmonさん、toriiさん、trappleさん。当然門外漢の僕には何もできないネットワークまわりを僕の「1時間で国際会議場をセットアップしてね☆」という牙指令にも関わらず見事な仕事をしくれたCONBUの皆様。コアスタッフでもないのに部屋のリーダーをやってくれた色川さんや、自分の次に(ほぼ)YAPC皆勤賞の並川さんのような人達がいなければオペレーションは瓦解していたと思う。他にもムードメーカーであったり、縁の下の力持ちであったり、その貢献の形は違っていたものの、みんな僕ができなかったであろう事柄を見事に処理してくれました。本当にありがたい話です。

自分が出来ないことばかりなのに、それを補完してもらいつつこれまで6回主催してきたYAPC::Asia Tokyoを運営できている。それはひとえにスタッフに恵まれているからだ。なぜか自分に足りない部分を完璧に補ってくれる人達が回りに集まってきてくれた。

今年のYAPC::Asia Tokyo では自分が矢面に立っておりどうしても自分が目立ってきたが、本当のところは自分は穴だらけのバケツのようなもので、単体ではそのミッションを完遂することはできなかっただろう。もちろん助けは欲しかったが、あまり大きな声で「たすけて!」と言う前に助けが来て、あれよあれよという間に全てが回り始めてしまった。大変感謝してる。




この10ヶ月間、そして本番の3日間、自分が取りこぼしたり失敗したことは山ほどあったけど、90名のスタッフの助けによりなんとかYAPC::Asia Tokyo 2015という壮大なイベントを皆様にお届けすることができました。自分一人では1にしかできなかったはずのものをみんなの力で100とか1000に出来たことは大変誇りに思います。

myfinder-goes-to-seattle


本当にありがとうございました!もしまた何か将来イベントをやることがあれば、是非また一緒に仕事がしたいです。

P.S. 八木さんによるYAPC::Asia Tokyo 2015 公式写真がアップされはじめています。 これを書いている時点ではまだ前夜祭のみですが、もう少々お待ちください!
P.P.S.  参加者の皆様!スタッフの皆様も!ブログを書きましたか?待ってますよ! 
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

YAPC::Asia Tokyo 2015が終わった。厳密にはこれからスタッフ打ち上げの調整、動画関連、支払い関連、ブログ関連、写真関連の仕事がまだあるけど、まぁともかく山場は過ぎた。

今回は最大の大きさにもかかわらずいわゆるコアスタッフの面々とこれまで何回もボランティアスタッフをやってくれていた方達が次々と起こる予測していない事態や、主催の自分がセッションでの出番やMC等でいない時に進めなければいけない様々な事柄の指示を出してくれててものすごく助かった。もちろん自分も自分が指示を出せないとわかっているときはその前に責任の委譲や指示だしをやっていたけど、それ以上に自律的に動いていてくれたのでものすごく助かった。今回のYAPCは完全にスタッフのみんなの能力の勝利だった。

エモい話や将来の話とかはまたいつかするとして、このエントリではとりあえず日記風な感じで昨年9月末からの大まかなな流れを書いてコアスタッフの人達と一緒にどんな10ヶ月を過ごしてきたかを軽く紹介したい。上に書いたように今回のYAPCは完全にスタッフのみんなの勝利だった。どうしても矢面に立つ俺が目立っちゃうけど、そういう人達と一緒にやったYAPC::Asia Tokyo 2015だったという事を伝えたい。

続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

kubernetesを使い始めている。かなり良いのだが、それまでの非kubernetesの世界で使っていたconsulとconsul-templateに依存する形で動的な設定変更をしていて、それが常々不満だった。もちろんロードバランスしちゃえばよいようなものはkubernetesのServiceにしてしまってそこにアクセスするようにしちゃえば手間いらずなんだけど、memcachedとかが意外にこのパターンにはまらんなーと思って困っていた。そこで ちょっと手の空いた時にTwitterで以下のようにつぶやいたところ


すぐに返事が返ってきた


お、それくさい!と思った物の、これどこにもドキュメントがないんだよね!そういうわけでとりあえず適当にクラスタを立ち上げてみて遊んでみようと思うのだが、あれこれどうやってGoogle Cloud Platform上で認証とかするんだ… 

ここから僕のyak shavingな旅が始まります。
 続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

注:すっごくくだらない話です

先週OSCON 2015というのに行ってたのです。イベントはポートランド(オレゴン州)で開催されていたのですが、土曜日の夜にシアトル経由で羽田に到着したのですね。

で、日本について早速携帯をオンにして10時間弱のフライトの間にポストされていた色々を見ていたらmyfinderさんが同じ頃に羽田空港にいて、これから同じシアトルに向かうというではありませんか

myfinder-goes-to-seattle

そのときはそれ以上思わなかったので「入れ違いですねー」ってコメントだけして僕は家路につきました。ところが次の日にもう一度myfinderさんのポストを見るとどうやら 僕が乗っていたのと同じデルタ航空だったようで、見覚えのある席がポストされてました

myfinder-delta

おや、航空会社まで一緒だったんですね

これじゃあ 僕が乗ってきたのと同じ飛行機に乗ってシアトルにmyfinderさんが行ったとしてもおかしくはないですねー!奇遇だ奇遇だ。

myfinder-still-joking


これで席まで同じだったら笑っちゃうよね!

myfinder-now-it-gets-interesting

あれ…? 

myfinder-evidence

ぶは!まじかよ!ってことはかなりの確率で同じ飛行機の同じ席に入れ違いで座ったのか!wwww すっごい偶然でびっくりです!
myfinderさんからの深い愛を感じます! 

その後myfinderさんが少しおかしくなりましたが、とても面白い奇跡でした。

myfinder-goes-a-bit-naners
 
おしまい。 





その後保存したいということだったのでブログにまとめました!

myfinder-save-this
 
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

序章

YAPC::Asia Tokyo 2015の準備で慌ただしくてしてるある日、俺は肉が焼きたかった。誰でも1年に1回くらい肉を焼きたい時があると思う(要検証)。ステーキ肉だ。焼きたい。

別に高級肉が焼きたいわけではない。そこそこおいしければ普通の肉でいいのだ。しかしスーパーで売ってる 牛ステーキとか、あれは肉の厚さが1cmもないことがほとんどだ。1cmの肉なんてステーキ肉ではない。それは紙だ。ステーキ肉は2cm以上からだ。願わくば3~4cmは欲しい。 牛肉は2cmを超えて初めてステーキ肉になるのだ。

そんなおり、俺のタイムラインに以前より懇意にしているThe Meat Guyのポストが流れてきた。

mrb133aheaderjapanese
画像:The Meat Guy


え、なにこれ… いやだ… カッコいい…。焼きたい!俺はこれを焼きたい!他の肉も一緒に焼きたい!

ということで「日本なのになぜかアメリカンな肉を買える」ことで俺の中で有名なMeatguyで巨大肉とステーキ肉を大量に買って、YAPC::Asia Tokyo 2015スタッフやその回りの人を集めてBBQを開催することになった。俺の目的は肉を買うことであり、焼くことだ。みんなには厚みのある肉を堪能してもらう! BBQを敢行したのはYAPC::Asia Tokyo 2015の苛烈なトーク審査プロセスが嫌になったからでは決して無い。

会場

会場はuzullaさんに任せてしまった。忙しいのに大変申し訳ない。ちなみにこれをやっている間、同時銅鑼パーソン総選挙も炎上中でした。余計に申し訳ない。

そしたらいつのまにかBBQパークという椅子やらテーブルやらの準備や、後の掃除、しまいには火おこしまでしてくれるサービスを見つけてきて、用意してくれたのでおじさん達は大変助かることになりました。ちなみにこの手のサービスが存在することは遠い昔にNHKの朝の番組で見たことはあったのだが、今回実際に体験してみてすげぇ!と思いました。

肉肉肉

というわけで会場も決まったので肉を買います。前にも書いたように薄っぺらい肉なんていりません。厚い肉だけが正義です

まずは先ほどのトマホーク。大きさはだいたい2.5kg。骨も含めてだけど、2.5kgの肉の塊。これ、正直自分でもどうやって調理できるのか(果たしてグリルの上に載る大きさなのか?等)不安だったけど、最悪まわりを焼いて、後から小さくしたものを焼いていけば食える!と踏んだ。これはもうやるしかないだろう。ってか、やるぞ!ということで購入。

mrb133collage1
画像:The Meat Guy


もう見た目がやばすぎる。

次にリブロースステーキ。こちらは日本人は噛みごたえのある肉より軟らかい肉のほうが好きそう… と思って購入。個人的にはもう少し脂身の少ない肉のほうが好き(もちろんリブロースもうまいんだけど、ここは好みの問題)。

mrb109header
画像:The Meat Guy


そして個人的にメインイベント、サーロイン。説明にも「超厚切り」って書いてある。いいぞ!そのいきだ!サーロインは基本赤身で、まわりに脂身がついている。これが最高だ。シュラスコのピカーニャもそういう肉だ。これで食べる人が赤身と脂身のバランスを取ることができるのだ。霜降りとかいらん。赤身+脂身が最高だ!

mrb400headerja
画像:The Meat Guy

そんなわけで以上の肉を参加者の数から逆算して5.6kg 分ほど購入した。俺はこれを一人で… 全部焼く!

来た、焼いた、食った

YAPC::Asia Tokyo 2015シャツを着ている大人が半分くらいのおもしろい集団の中、俺はひたすら焼いた。ちなみに自分は焼いてばかりで全く写真が撮れていないのでこちらの写真、全てuzullaさん提供です。ありがとうございます!

で、着いたらもう会場が設営されてるわけですよ。BBQパークの方が全部一人でてきぱきやっててくれてる。包丁やまな板のようなアイテムから椅子、テーブル、コンロ等全て用意してくれてるのです。すげぇな、このサービス… というわけで僕の仕事は焼くことだけです!



でかい。このトマホークも含め全ての肉が冷凍で配送されてくるので前持って解凍しておかないといけない。かなり慎重に解凍処理を行ったつもりだったんだけどそれでも結構ドリップが出たので大丈夫かなーと思っていたけど、結果的には特に問題なかった。元がすごく良い肉だったのか、自分の解凍処理がうまくいったのかよくわからない。



案の定載らない。結局ぐるぐる回しながらゆっくり焼くことにした。



サーロイン。超うまかった。噛みごたえ、旨味、全てに置いて最高だった。本当にうまかった。次に自分用にもしこの手の肉を買うことがあったら間違いなくこのサーロインを買う。(Meatguyさん、アフィリエイト手数料的なものをそろそろもらってもいいんですよ?w)

あ、ちなみに全て当然のごとく味付けは塩のみです。一応なぜか手元にあったボリビア産の塩を持って行きました(親からのお土産)。赤身の肉は塩で食うのが一番うまい!



あっちでジクジク焼いている間にこっちでちゃっちゃと焼く。この間も結構こまめに炭の移動してました


ねぎはねぎぱねるらさんの提供。いやー、俺楽しそうな顔してるなー。肉焼くのって超楽しいよ!


うおおお、肉だ肉だー! この後、本当に最後の肉になるまでは肉を出すそばから全て売り切れてました。みんな食べてくれてすげぇ嬉しい!


さて、そろそろトマホークがいい色になってきたので、ばらします。これ以上やっても焦がしちゃうだけなので小さくして良いところまで焼いてから提供。まずは骨からばらす。


で、小さく食べやすい感じに切っていくよ!


あとはおいしくなるまで焼くよ!


このトマホーク、結果から言うと大変おいしいんだけど脂身が結構多くて30代後半のおっさんが中心の今回の面子で食べるのはそれなりに苦労した気がする(全部売れたけど)。脂身自体は全然くどさがなくて食べやすかったけど、単純に圧倒的な脂の量だった… 参加者の奥さんが持ってきてくれた大葉とかで包みながら食べたらすごくうまかった!


というわけで5.6kgの肉がなくなるまでずっと焼いていました。あー、楽しかったしうまかった。またやりたい。




このあと子供の昼寝スケジュールとかもあったので早々に我が家は引き上げたのですが、それもBBQパークさんのおかげで後腐れなく引き上げることができました。他の人に片付けさせると心苦しい事この上ないのですが、この日はBBQパークさんが後片付けを全てやってくれるという安心感があったのでさくっと引き上げることができました。大人はお金で解決だね!次回BBQすることあったらまた絶対このサービス使うわ。


というわけで梅雨シーズンの中、奇跡的に晴れた一日で超美味しい肉を堪能してきました。この調子でYAPC::Asia Tokyo 2015も成功してほしい!こちらからは以上です。

最後にもう一枚トマホークの焼けてる写真を置いておきますね! みなさんもHappy BBQ!





    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ちょうど本業のほうでDBへのアクセスが遅い?んだかなんだかでREST APIがタイムアウトしている事象に出会っていたのでよっしゃとgo-sql-proxyを使おうと思ったのだけど、まずこのままだと実行時間とかが計測できない… ということに気づいて色々考えた結果PRを送る事にした。送ったら光速でマージされた。

今度から NewTraceProxyでプロキシを作れば Open/Exec/Queryに関しては所要時間が出力されるようになります。mysqlなら以下のような感じ:

driverName := "mysql"
if traceEnabled {
    driverName = "mysql-trace"
    sql.Register(driverName, proxy.NewTraceProxy(&mysql.MySQLDriver{}, logger))
}
db, err := sql.Open(driverName, dsn)
...

出力はこんな感じ:

tracer_test.go:27: Open (54.116µs)
tracer_test.go:27: Exec: CREATE TABLE t1 (id INTEGER PRIMARY KEY); args = [] (44.535µs)
tracer_test.go:41: Query: SELECT id FROM t1 WHERE id = ?; args = [1] (1.828µs)

わーい、これでボトルネック探すの捗るぞー!… と思っていたら、元々のNewTraceProxyのシグネチャが

func NewTraceProxy(d driver.Driver, o Outputter) *Proxy

で、これだと自前のloggerを受け付けてくれない!
type MyLogger struct { *log.Logger }
とかでも駄目だ!ということでインターフェースを定義してOutputメソッドを実装してればなんでもいいようにしておいたPRを送って取り込んでもらった。これで使えるようになった。YATTA!(けど、デプロイはこれからなのでまだなにか後で追加するかも…)

どちらのPRも光速でマージしてもらって大分たすかった。ありがとうございます。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

最近カンファレンス運営についてのノウハウをちょっとずつアウトプットしていたりします

今回は Web+DB Press #85 でもその一部が掲載されていたものなのですが、YAPC::Asia Tokyo, RubyKaigi, PyCon JP, JANOGという技術カンファレンスの運営陣を集めた座談会の完全版をKindleで出しました。(表紙画像についてはすみません、素人なもんで… もうちょっとがんばって直してみます)

カンファレンスに参加してるだけでは見えてこない運営側の心配、希望、楽しさなどについて読めるかなり貴重な資料だと思います。是非お手にとっていただければと思います!


こちらの売り上げのほうはJPAの運営費やYAPC::Asia Tokyo 2015に使われたりします。よろしくお願いいたします。また雑誌掲載時も今回も編集を手伝っていただいた工藤春奈さんには心からお礼を申し上げたいと思います。日本語が(一部)不自由な筆者では手の届かないかゆい部分の校正をガツガツやってもらえました!


    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

もうかれこれ1ヶ月ほど Packer 0.7.5 で Docker 1.4+ を使ってる状態からdocker builderを使っても永遠に処理が終わらず、終わったと思ったらなんかdockerのエラーで止まるということが続いていた。

tl;dr;としては「多分次のバージョンのPackerで直る」「今はパッチを当ててソースからコンパイルしろ」なんだけど、まずデバッグも含め経緯を。

packerには-verboseみたいなのがなくて、まず状況が把握できなかった。これはPACKER_LOG=1 環境変数を指定することで詳細ログを表示できる。これで以下のようなエラーが出てたら多分このバグ→ #1752

2014/12/25 12:21:32 packer-provisioner-shell: 2014/12/25 12:21:32 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1

で、いろいろ見てるとどうもこの変更で直るくさい。2014年12月(0.7.5の出た9日後)にPRが出てるんだけど、その後修正版PRがやっと出たのが2015年3月… そして2015年4月22日時点でまだマージされてない。

というわけでまだ修正版は存在しないんだけど、docker execを使ったバージョンの野良ビルドを作った人がいる。一応このバイナリは信用できると思うんだけど、野良ビルドだからこれを使う場合はみなさま自己責任でお願いします。

と、ここまでわかったが、PackerがOS X上のboot2dockerとではうまく動かないのはこの修正でも変わらないのでこちらの「Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる」のVagrantによる手法でさらにyak shavingを続ける。上記の記事に書いてあるVagrantfileのpackerをダウンロードする部分を以下のように変更…

Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.provision :docker do |d|
        d.pull_images "ubuntu"
    end

    config.vm.provision :shell, :inline => <<-PREPARE
apt-get -y update
apt-get install -y wget unzip curl

mkdir /home/vagrant/packer
cd /home/vagrant/packer
wget https://github.com/stefancocora/packer-issue1752-fix/archive/master.zip
unzip master.zip
mv packer-issue1752-fix-master/packer/* .
rm -rf master.zip packer-issue1752-fix-master
echo "export PATH=$PATH:/home/vagrant/packer" > /home/vagrant/.bashrc
PREPARE

end

で、これを使ってvagrant up, vagrant ssh, packer build ... すると、やっと!やっと!Packerを使いつつDockerイメージを作れる。

なんかここまでしてPackerからDockerを使う必要があるのかという噂もあるけど、AMIなりGCPイメージなりを作るとAWSないしGCPないしと通信しなくちゃいけないし、いろいろ試してる間は自分の環境だけで終わらせたかった。PackerにはVirtualBoxとかのイメージを作る機能もあるけどその場合はベースとなるイメージを用意しなくてはいけない。でもそれをgitレポジトリにコミットしたくないのでどうしてもDockerを使いたかった、というのがここまでがんばってみた理由です。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ここ1ヶ月くらいうちの長男がはまっているのが「ぼくのトイレ」「ぼくのおふろ」という絵本。





「でもいつもまいにちまいにちおんなじトイレ」「たまにはちがうのでしてみたい」というところから奇想天外なトイレが何個もでてくる。最後のほうは「ウォーリーを探せ」っぽくなる。最初に一回読んだ時はそれらのトイレに目が行くが、何回も読み聞かせをしていると今度はページ上あちこちにでてくる小さなキャラを探しながら読むようになれる。お風呂やトイレというテーマが身近なせいか、長男はこれを何回も何回も何回も何回も(以下略)読んでくれとせがんできて、どこに何があるか全部覚えていた。

まぁとは言え同じ本なのでそろそろ飽きてきたかなー、というくらいに偶然クレヨンハウスに行ったら今度は同著者から新作が出てたのに気づいた。 「ぶららんこ」と「すーべりだい」。




ウォーリーを探せ的な部分はないものの、ノリはわりと一緒。最初は普通のブランコだったのになぜか座る部分がふたつになり「ぶららんこ」に、次はみっつになり「ぶらららんこ」に… そして… みたいな。

今回もかなり気に入っているみたい。一気に買うと一気に消費してしまうので「すーべりだい」のほうは今回は購入を見送った。本屋で一回立ち読みしてみて、このタイプの絵と話がいけそうならおすすめの作品です。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このページのトップヘ