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.

「あ〜、インタプリタ言語飽きた。コンパイルしてぇ」と思っていたところ見つけたGo。あれから4年ほど経ちます。

gophercolor


当初 「mattn さんという超絶変態ハッカーが使ってるなぁ」くらいの印象でした。そして触り始めてからも「なんだこれ、オブジェクトじゃないの…?」「interface {}って… え、あとから自動的に紐尽くの…?」「なにこれ、ポインタレシーバーとby valueレシーバーで意味違うの…?」などなど色々と自ら真っ先に罠にかかり、穴にはまりまくって「この言語大丈夫か」と皆さんもそう思っていたかもしれませんし、僕もそう思っていたことがありました。

その後、自分が罠にはまるごとにあちこちで発表したりもし、pecoという思いがけないヒットを書いてしまったり、とにかく大量のGoコードを書き続けていくうちに…

Go言語は僕にとって既に無くてはならない存在になってしまいました。だって、コード書きやすいし、速いし、良いことづくめなんだもの。

そんなところで「本書くんだけど参加しない?」というお声がかかったのでめいっぱい手を上げて1章書かせてもらいました。それがこのほど予約開始になりました。(書影がまだないのが残念…)


Perlを10何年書いてからのGoで、なるほど、これは… という点は何個かあったのでどれをネタにしようか迷ったのですが、今回僕は"reflect"という黒魔術を採り上げさせてもらいました。

reflect芸人


やはりPerlと来たら黒魔術でしょう。Goでは基本必要のないツールですが、必要になったらこれ以外方法がない、というreflect。いくつかのライブラリを書く際にはまりまくったその結果を共有させてもらったので、是非皆さんには僕のテツを踏まないでいただきたいと思います。

P.S. 今回以下のようなものも描かせてもらいました。どこで使われるかな?



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

buildersconの #1 開催の目処が少しずつ立ってきた。問題が起きなければ多分12月に一回小さめのカンファレンスを開催する予定。ゲストをこれまでのYAPC系統では見られなかったタイプの人にして、一般公募はこれまでどうようの人達に向けた感じにしたいと漠然と考えている。

DSC_0652


… というわけで、buildersconのチームと話してたら肉が焼きたくなった。特に理由はない。恒例の病気みたいなものです。去年も発作的に肉を焼きました続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック

moznion.hatenadiary.com


別にDocker使ったっていいんだけど、こっちでもできますよ、ってことで、Dockerもシェルスクリプトも使わない方法の説明。元記事を読んでわかるのは:

1. makeを使ってる
2. GOOS/GOARCHを設定してクロスコンパイルしている(gox等を使っていない)
3. Dockerであげた同一イメージ上で全てのクロスコンパイル結果を吐いている

ということなので、であれば別にローカルの環境でクロスコンパイルしても何の差もなさそう。別の環境をたててクロスコンパイルしたい場合もあるが、それは例えば cgoを使っている os.User 関連のコードをコンパイルするとか、そういう時だしその場合はそれぞれのプラットフォームごとに別のホスト上でコンパイルする必要がある。それをする必要がないなら go 1.5 以降であればもうGOOS/GOARCHを設定するだけで充分。

makeはプラットフォームごとの出力を作るなんてお手の物で、pecoではMakefile内でまず以下のように明示的に現環境でのGOOS/GOARCHを定義して、

peco-make-vars


必要な変数を与えてやれば適当なプラットフォーム用のバイナリを吐いてくれるルールを作ってる

peco-build-rule-main

このルールだけであとはこれを対象GOOS/GOARCHに対して実行するだけ。手動で実行したかったら "make build GOOS=darwin GOARCH=amd64"とかするだけ。でももちろんそんなことを手動で実行したくなりので、それを内包したルールを何個か作る。

以下ではループを使ってもいいんだけど、僕の「なんかまちがったのを設定した場合エラーになってほしい」というこだわりから全て別ルールにしてる

peco-build-rules


あとはこれを依存対象としたルールを作れば勝手に全部ビルドされる。以下の場合は"make all"とすれば全てのバイナリが作成される。もちろん一個だけ実行したい場合は"make build-darwin-amd64"とかを実行してもいい

peco-build-all

こちらからは以上です
    このエントリーをはてなブックマークに追加 mixiチェック

日本で家庭のクリスマスディナーと言えばチキンとクリスマスケーキですよね。

別にところ変われば… だと思っているのでこの風習がどうのこうの言うつもりはありませんが、これだけ美味しい物が溢れてる国でチキンとクリスマスケーキっていうのがおもしろいなーとは思っていました。一応マーケティングの結果だ、という知識はあるのですが、それにしても良く定着したな、と。

というわけでさる12/25日のことですよ。別に我が家でもチキンででよかったんですよ。鶏肉は子供も食べやすいですしね。でも俺はラム肉食べたかったんですよ。ラムチョップは焼くのに時間がかかるんでモモステーキ。

DSC00968

で、この肉を買いに行く途中でふと気になったのです:「そういや、アメリカでは七面鳥を食べるのが定番みたいになってるけど、世界の他の国ではどうなんだろ?」と。そもそも24日に食べるのか25日に食べるのか?だって24日はミサに行く日な気もするし、そんなところに行ってたら時間のかかるディナーなんてできないだろ… などなど、疑問がわいてきました。

とりあえず一回「Christmas Dinner」で検索してみたら… 一発でそれっぽいのがでてきましたよ。すごいな、インターネット。

この中で面白かったのはいわゆる東ヨーロッパ圏で川が近いところではクリスマスに鯉を食べる習慣がある模様。鯉って実はほとんど食べたことないんだけど、ナマズと同じでちゃんと下ごしらえをしないと泥臭いんじゃないかなー、その辺りをちゃんとやるのかなー?とか考えてしまった。

それと数えてはいないけど、読んでいた限り圧倒的にアヒル、カモ、キジなどを含む鳥類をクリスマスに食べる習慣の地域が多い感じ。前述の鯉を含む魚系もボチボチあった。豚肉もぼちぼち。圧倒的にない!と感じたのは牛肉。どこでも「ヘイ、俺のカントリーではクリスマスにTボーンステーキを食うぜ!」という感じの記述はなかった。これはやっぱりクリスマスが元々宗教的な風習だからかな?と妄想。やはりキリスト聖誕祭に血が滴るステーキを食べるというのは無しなのかもな。

とかいいつつ僕は前述の血の滴るラムステーキですよ。やはりミディアムレアで、脂身にボチボチ火が通って溶け出すタイミングがベストですね。ちなみに以前僕は「厚さ2cm以下のステーキはステーキじゃなくて紙だ」と書きましたが、今回の肉も残念ながらカテゴリー的には紙の部類です。もう少しなんですけどねー。ジンギスカンは好きだけど、あの薄さだと肉を食べた気がしないので今回はちゃんとステーキカットにしました。

DSC00971

話は戻るけど、クリスマスディナーを家族で囲む日も意外と統一性がなくてなかなかおもしろかった。あの記事だけを信じるならイギリス系のところは25日が多いのかな(適当)

もうひとつ驚いたのは七面鳥を食べる習慣が16世紀からあったということ。そんな昔から七面鳥食べてるのかーー!!ガチョウもよく食べていたということで、そちらは庶民向けの共同購入システムもあったとか。ガチョウの丸焼きとかなのだろうか。食べてみたい。

DSC00972


素人ですけど、肉の焼き方って基本気合いと思い切りだと思うんだよね。強めの火でないと良い感じの焼き目がつかないじゃないですか。あとは火加減やらオーブンやらで調節する感じ。味付けは塩胡椒だけだぞ!うちは子供の誕生日が近いこともあってクリスマスケーキも食べず、ラムステーキとサラダ、カボチャの煮物、トマトやブロッコリーなどを食べて終わりでした。

あっというまに食べちゃったので飾り付けする前に撮った写真しかないので見かけがしょぼいですが、結果こんな感じでした。うまかったぁ。この後むっちゃくちゃ食べた。

DSC00975

というわけで世界でももっとクリスマスにラム肉を食べればいいのに!ちなみに今日も別件でイタリアンレストランでラムチョップ食べてしまった。いかんいかん…
    このエントリーをはてなブックマークに追加 mixiチェック

Go Advent Calendar 2015go-libxml2/go-xmlsecを書いた時にぶつかった壁とかについて色々書いてみたのです。で、反応も気になるのではてブを見てたんですね。そしたら全然はてブが増えない… あれー?と思っていたら

medium-hatebu-hoopla

あ!これ… URLが全部違う!!!なんか最後に妙なハッシュがついてる!

ググったらやっぱりmediumはトラッキングのためにこれを自動的につけてるらしい。まぁそれはわかるんだけどさ… HTMLを見ると中にはちゃんとcanonical URLも書いてあるのに、なんではてブはそっちを使わないんだ?すごいがっかりだよ!

というわけで、反応を是非是非知りたいので、もしよろしければ このURLではてブ登録してください… → https://medium.com/@lestrrat/7bcdfd35689d
 
よろしくお願いいたします!



ちなみになんでこっちに書かないかというと、livedoorBlogは「ちゃんと」書きたい時は良いんだけど、気軽にさくっとコード付きのブログ書く時にコード貼り付けるのが面倒とかあるんだよね…
    このエントリーをはてなブックマークに追加 mixiチェック

初めてISUCONに参加してきた。ちなみに初めて櫛井さんが主催するイベントに参加してみた。

チームメイト達は何回も素振りという名の練習をしていたのだけど、こちらは家族サービスで鴨川シーワールドに行ってたりして一回練習しただけ。GCPは普段から慣れ親しんでるのでその辺りもあって余裕ぶちかましてましたね!

当日は朝からdotsに陣取り、自分は黙々とコード書いてた。最後に会心の一撃で1400点台から6000点にあげた以外は特にすごい事はできなかったなぁ。トップページが重いのはわかってたけど「その前にやることあるだろ」精神で他のところチューニングし始めたの、時間配分的には間違ってたね。

実装はPerlでデータセットを先にmmapファイルに展開する方式でがんばってやってみました。最終的に会心の一撃はSQLをチューンするより「リクエストごとにKVS的にデータをがっともってきてオンメモリ展開した上でSQLの結果をPerlでフィルタするほうが効果がある」という面白い感じだった。絶対仕事だったら書かないコード書いたぜ…

基本1台のサーバーでデータをシェアすることを考えるとGoで書けばもう少し楽だった気もした。node.jsもだけど、これらの実装がなかったり不完全な形で提供されていたのは楽なプラットフォームを最初から潰しておいたのではないか?という邪推が働いたりもした(多分手が足りなかっただけと思うけど!)

反省点としては実装云々より、やっぱり勝ちを狙いにいくなら鬼の司令塔(fujiwara氏とかkazeburo氏的な)人が一人いるほうがよさそうだなー。「どう実装するか」より、「ここを集中的に、こういう方式を避けつつ調整しましょう」と断定してくれる人がいると時間制限のある作業には良い。ちなみに最後の会心の一撃もuzullaさんが残り1時間半くらいでそういう感じの事言ってくれて「なるほど!言われてみればそうだ」という事で実装したら結果が出たという感じだった。

また参加するとしたら とにかく8時間とか1台とかの制限がきついので、二泊三日で500台くらいのサーバーかコンテナを使う大会だったらもっといいな(やー、むちゃくちゃ言う参加者がいるし、イベントの主催って大変だなー!w)

というわけで初参加、楽しかったです。
    このエントリーをはてなブックマークに追加 mixiチェック

大分迷ってしまったのでメモ。
 
type Foo interface { ... }
type Bar struct {...} // implements Foo
type Quux struct {
    A int
    B string
    C Foo
}

これをjson.Unmarshalでデコードしようと思うとするとQuux.Cをデコードするところで「どうやってGo Valueにするのかわからん!」ってGoに文句言われた。ちなみにgo 1.5
続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック

今回YAPC::EUに行き、実に24年ぶりに スペインの地を踏んだ。スペイン最高だった。ありがとう、HDE Inc!

で、今回流れで自分はスペイン語わかっている人w という形で参加してきたのだけど、そのあたりについて思う事をつらつらと書いてみたい。イベントレポート的なのはこちらからどうぞ

DSC_0073


前提条件として自分はポルトガル語は最初ネイティブとして喋れていたが、小学校低学年で一度全てを忘れ、そのあとは中学校くらいでアメリカンスクールに行きながら第2外国語としてポルトガル語を学ばせられつつ高校卒業までその調子だった。つまりポルトガル語はまぁぼちぼち喋れるし、多分生活はできるけどそこまで喋れない、という感じ。

そういう状態で今回スペインに行き、せっかくなので可能な限りスペイン語を喋って見ようと試みてみた。さらにいえば
、最終的に英語に戻ってしまうとしても、とりあえずは現地語でコミュニケーションを試みているという事は相手の懐に入るのによい方法だと思っているので頑張ってみた次第。日本で海外の人に「ありがとう!」って言われると「サンキュー!」より若干だけどいいと思うのです。それと同じでとにかくスペイン語でやれるだけやってみた

DSC_0086


で、結果的にはだいたいコミュニケーションはとれてたと思う。もちろん行った先がグラナダという観光都市だったので向こうが外国人に慣れていた事もあるとは思う。

日本から来ていた他の参加者達には「ボチボチわかるよー」と言っていたわけですが… もちろん言われている事もだいたいわかるし、まぁ一通り伝えたい事は伝えられる。だけど、これは「意思疎通ができる」という意味であって、「ちゃんと喋れる」というのとは違う。ポルトガル語を理解している身からするとスペイン語は日本の標準語とズーズー弁くらいの差なんだけど、別にポルトガル語でさえ現時点ではネイティブレベルでは喋れないし。

というわけでポルトガル語がネイティブレベルじゃないのでかなりあやふやなのに、それをさらにスペイン語に変換するという作業をしながら話すわけなので決してみなさんの思ってるレベルで会話できてるわけじゃないんですよね。だいたいこの辺だろ、という言葉(動詞だったら原型)をひねり出して、適当に活用したりスペイン語っぽい発音で言うと相手が反応をくれるからあとはそれに対応する、ということをしてるだけ。相手が理解してくれたら理解した顔してくれるし、分からなければ「むむ〜?」という対応が来るからその場合はもう一回同じことを繰り返したり何か関連しそうな言葉をひっぱりだしてきてもう一回トライしている、というのが真相です。

でも仕事をするとか、哲学の議論をするとか言うレベルでなければ こんなもんでいいんですよ。買い物やレストランのオーダーだったら「どれが欲しい」「個数」「値段」がわかればいいだけだし。あとは堂々としてればなんとかなる。

ちなみに最後の最後に午前5時台に乗ったタクシーにパスポートを忘れるという大失態を犯しましたが、そのあと来たタクシーの運転手さんに「今285番のタクシーに忘れ物したから呼び出してくれ!」ってブロークンスパニッシュで訴えたら呼び出してくれて10分後くらいに運転手さんが戻ってきてくれてことなきを得た。戻ってきた運転手さんには"Eu te amo!"とポルトガル語(ははは)で喜びを伝えたがわかっていただけました。やばい事態でブロークンな言葉しか喋れなくとも意外となんとかなります。

とりあえず欧米文化圏でぼちぼち意思疎通できるようになるにはとにかく「二つ」言葉を覚えると良いと思いますよ。ラテン語系の言葉とゲルマン系の言葉知ってると最強だと思う。どこ行ってもなんとなく生きていけるはず。

DSC_0057


おまけ:ちなみに今回日本からのみなさんと夕飯を食べていてひとつだけ不満だったのはおいしいご飯のあとデザートとコーヒーを最後に嗜むという文化が日本に存在しなかった という点であったw や、日本だったら俺もそうなんだけど、スペインだからなーーーーー! 

とは言え、みなさんを付き合わせるのもあれなので、みんなが↓お土産店を見ている間にこの店の向かいにあるCafeteria Lisbonという店に一人でさっと入り、さっとエスプレッソを頼み(そして砂糖をたっぷり入れ)、さっと飲んで帰ってきたので最終的には満足した。

DSC_0082


 また近いうちにイベリア半島に行きたいなぁ。やっぱり自分のルーツの何分の一かはあそこにある。
    このエントリーをはてなブックマークに追加 mixiチェック

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

前の記事
でも書いたけど、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チェック

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

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

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

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

このページのトップヘ