tagomorisのメモ置き場 RSSフィード

2014-09-22

gcp ja night 28いってきた&しゃべってきた

gcp ja night #28 - connpass

BigQueryの話などがあるということで、自分もお誘いを受けたので適当にしゃべってきた。BigQueryそのものは前のほうで naoya_ito という人がやるらしかったので、Fluentdの話でもしようかなと。

結果的に streaming inserts api の制約についての話などがそこそこ新鮮な人もいたようだった。

聞いた話とかもいろいろ面白かったけど、さすがに人が多過ぎてどういう人が来ているのか把握するのも困難、というのと、BigQueryまわりとDockerまわりの人が混ざってたのかなーという印象。

個人的にはもうちょっと話題を絞った勉強会のほうが好みだな。

なんにしろ @kazunori_279 さん、いつもいつもお疲れさまでした。楽しかったです!

RubyKaigi 2014いってきた&LTやってきた

RubyKaigi 2014参加してきた。ここのところ続きに続いたカンファレンス・イベント参加もとりあえずこれでひと段落。

RubyKaigi 2014, 18-20 september

正直にいって疲れが限界に近かったので、あんまり気合いを入れてtalkを聞いたり人と話したり……ということにはならず、おおむねぐったりしてた。ソファあたりとかホールの後ろのほうの席とかで。それでもこれまでなんとなく意識してたけど話したことはなかった人、みたいな人とは数人話したし、まあよかったんじゃないかな。と思う。たぶん。

1日目のパーティーの後に飲みにいったらなんとなくLaurentといっしょになったのでうだうだ英語で話してたのは個人的には超面白かった。世界のあちこちに行ってる人の話はいいなあ。というか、そういう人が大量にやってきてくれるRubyKaigiはすごいな。

Talkの内容はもう @tmm1 のクロージングキーノートが圧巻で、パフォ厨かくあるべしというか、スゲーな、という。あの話、改善したって話もすごいんだけど、*1各種の数値をちゃんととること、それをきちんと可視化してることも本当にすごいと思う。

あと今年は全体的に「Rails以外」にすごい力が入ってるなーというか、HTMとSTMの話が続いたあたりとか、スケジュール構成がすばらしすぎたと思う。なんなんですかねいいぞもっとやれ。*2

なおRails関連セッションはまったく見てないのでよくわからない……。

LTやってきた

YAPC期間中の疲れてぐったりしてる時に「さあLTを応募するんだ!」的なtweetを見掛けて、その衝動のままについうっかり応募したら通ってしまった。ので、やってきた。

話は単純で、v0.x.y なバージョンってなんとなく逃げな気がするからちゃんと v1 以上のバージョン番号つけようぜ! という話でした。Norikra v1を出したあとに考えたことがだいたい詰まってます。

Fluentd はまだAPIを壊す(というかデフォルト動作を変える)余地があるので v0 だし、自分の Fluentd plugin も基本的には Fluentd v1 が出てからあわせて上げようと思っている、ので、そこについてはいいんだけど……実際には自分の他のプロダクトもまだ v0 のままのものが大半で、よくないなーとは思っている。

いくつかは上げるための準備をやろうってことで、RubyKaigi中からぽちぽち始めてた。そのうち出します。

LTそのものは、コードをごりごり書いてる方々からポジティブな評判をいただけたので、ちょっと嬉しかった。しかしUstreamで見直すと英語がもう本当にボロボロだし、かなしい。もうちょっと発音をマトモにする練習しないとかなあ。

さて

次は2ヶ月先の Rubyconf2014 にproposalが 通った ので、初のアメリカ行きになりそう。それまではちょっと発表とかは置いておいてちゃんとコード書く期間にするつもり。

ああ、でもISUCONあるなー。がんばる。

*1:当人にとってはたぶん当たり前すぎて省略した

*2:RubyKaigi 2015はいまのところちょっと待ってねという状況らしいけど。

2014-09-16

HadoopCon 2014 Taiwanいってきた&しゃべってきた

先日お知らせした通り、HadoopCon 2014 Taiwanで発表の機会をもらったので、行って発表してきた。旅費はゲストとして主催者から出してもらうような話もいただいたけど、手続等いろいろ考えて、今回も勤務先であるLINE株式会社に出してもらいました。

f:id:tagomoris:20140916172304j:image

基調講演ではLambda Architectureの話をしてほしいとのことだったので、最近Hadoop Conf Japanでちょっと触れて考えがまとまりつつあったあたりをざーっとやってNorikraに繋げるような感じで話した。

Tech talkのほうでも発表した。そっちは完全にNorikraの紹介。海外で発表したのはこれが初めてのはず。ユーザが増えるといいなあ。

「あれ何人で作ったの?」「ひとり。自分だけ」「ひとり!? マジで???」みたいな会話をしたので、だいぶグレートなソフトウェアを作ったんだよ! という感じが多少なりと伝わってたんじゃないかなあ、とは思う……。

どちらのセッションも大事な点についての質問がちゃんと出たので、話は伝わってた、と期待してる。特にキーノートの方はだいぶ普段(特に英語で)話し慣れない話題について触れていたので練習も含めてかなり苦労したけど、なんとか終わったので良かった良かった、というところ。40分の時間制限のセッションで、前夜の練習ではちょうどくらいだったのに、終わってみたら10分余ってたときはマジかよと思った。英語での発表の経験をもっと積まないとなあ。

カンファレンスの感想

f:id:tagomoris:20140916172305j:image

話した疲れもあってあまりtalkは聞けなかったけど、それでもというかその代わりにというか、色々な人と話した。台北の開発者コミュニティの話、向こうでのカンファレンスの空気、HareDBのマスコットのうさぎが可愛い話、日本のアニメやドラマがその週のうちにTVで放映されるらしい話、あれやこれや。

f:id:tagomoris:20140916172306j:image

技術の話もそうでない話もいろいろだったけど、結局どこでもその場所で働いてる人がいて、その人達にとって必要なソフトウェアを作っていて、お互いに何をやっているかを知れれば自分が作らなくてもよかったものもあったかもなあ、などなどなど、あれこれ考えることもあった。

そういうことを考えながらあれこれ話してたんだけど、もちろん流暢な英語を話せるわけじゃなくて、英語と日本語と中国語を駆使しながら、なんとかかんとか話す*1ことになる。

でも自分が何かを言おうとしていれば相手はちゃんと聞いてくれるし、相手が何か言っていることが理解できなければ聞き返す。そういう当たり前のことをやっていると、ああ、普通にコミュニケーションってこういうものなのかな、とか思えてきていた。

観光

アジア1高いという台北101を見て上の方にあるレストラン(86階!)で中華料理食べたりとか、蒋介石を記念した公園と記念ホールを見たりとか、台北の伝統的朝食なのを食べたり、龍山寺を見たり、夜市に行ったり。特に2日目3日目は地元の人に連れて回ってもらい、あれこれ行った。自分達だけだと絶対行かない感じだったぞあれ。

f:id:tagomoris:20140916172307j:image

ちょうどいい天気で、外にいれば風があって暑過ぎず、あちこち見た。海外旅行経験が非常に乏しい自分だけど、こういうの見てると、国内だけじゃなくて海外に行くのもいいなあと思えた。

f:id:tagomoris:20140916172308j:image

そして、うまいものを食べた。

f:id:tagomoris:20140916172309j:image

食べた。

f:id:tagomoris:20140916172310j:image

それはもう食べた。

f:id:tagomoris:20140916172311j:image

正直に言って食事の回数よりも胃袋の事情の方が厳しかったので、もっと食事の回数を増やすために長期滞在しなければならないと思う。2泊で帰っちゃったんだけど、もう1泊くらいしてくればよかった。無念。

まとめると

本当にすばらしかった。台湾で歓迎してくれた人々には感謝の言葉しかない。

勤務先のLINE株式会社にも、当然旅費の負担から、発表の準備についてまで、多大な協力をいただきました。ありがたい職場だと思う。

特別なきっかけがあって行くことになったわけでもない。CFPが出ていたので、英語での発表もいいかなと思って申し込んでみただけだ。誰にでもできる。台湾は特に渡航費も安いし、3時間のフライトで着く。みんながもっと気軽に行けるようになるとすばらしいんじゃないかな。そうなるといいと思う。

さて

次はー、今夜 gcp ja night 28 で少しだけしゃべります。あと今週後半の RubyKaigi でLTをします。

で、その先、たぶん一度か二度、アメリカで話す機会がありそうです。そっちも楽しみ。

*1:日本語がものすごく上手な人が2人いて、英語で話しててうまく通じないケースで日本語と中国語の仲介をしてもらったりとかしてたw

2014-09-01

YAPC::Asia 2014に行ってきた&しゃべってきた

YAPC::Asia Tokyo 2014

みなさんご存知のYAPC::Asiaに出したtalk提案が採択されたので、スピーカーとして参加してきた。スケジュールを見たら2日目の一番最後の枠(LTの直前)で、なんと初めてのホールでのtalk。

1日目午後は会社でお仕事上の用事があったので参加できず、2日目朝は前日夜に死ぬほど飲んでいたので動けず、2日目午後は自分のtalk前で気もそぞろ……という感じで聞く側としてはアレだったけど、いろんな人が会場にいていろいろ話したし、面白かった。

しゃべってきた

"Handling not so big data." というタイトルで、今現在における分散データ処理プラットフォームの世界はどうなっておるのか、ということをざっと概観しつつ、そういう仕事に踏み込むときには何が重要なのかについて少し話した。

分散データ処理についての話だけど、上でどんなロジックを動かしているか、データ実体の中身はどのようなものかを言わなくても語れる重要なことは山ほどあって、自分が最近あちこちで話をしているのはそれがものすごく大きいと思うんだけど、自分に限らず他の人ももっとそのメリットを活かしましょう、というのが最後のページの話でした。ちょっと時間足りなすぎて焦ってて、わかりにくい表現になってたかもしれないと後で思った。

スライド作ってみたら明らかに20分に収まらない感じでどうしようかと。だけど削れるような場所も無く、やべーどうしようと思った結果、図を増やして少しわかりやすくしつつ20分間耐久LTを行うという暴挙に出た。他のカンファレンスだったら顰蹙モノだけどYAPC::AsiaならLTで鍛えられているし大丈夫なはず!

で、やってみたところ、そこまで文句もなかったのかなということで、良かった良かった。

というか、ベストトーク賞2位をいただきました。びびった。ものすごく嬉しかったです。ありがとうございました!

喉がぶっこわれて声が出なくなりました。

さて

次は9月13日に台湾のHadoopConでがっつりとHadoopやNorikraやその他の話をしてきます。2週間先と思ってたけど、そうか、来週末か。英語……。

あとgcp ja night 28でBigQueryとFluentdをネタに適当な話をビール飲みながらやりますが、こちら、申し込みが定員をはるかにぶっちぎっておりますね。すごい。台湾の直後なんでいつ準備しようというのが目下の悩みどころです。

更にその直後にRubyKaigiがありますね。行く予定です。

更にその翌週にISUCON予選がありますね。どうするんだこれ。

2014-08-18

uuidtools gemの新版がリリースされました

https://rubygems.org/gems/uuidtools

uuidtoolsという便利なgemがありましてその名の通りuuidの生成に使えるものでしたが、その機能のうちMACアドレスからuuidを生成するという部分がifconfig外部コマンドに依存していました。

で、みなさんご存知の通りRHEL/CentOS 7ではこのifconfigコマンドが標準でインストールされなくなり、正常に動作しなくなりました。これに伴った修正がuuidtools gemでも行われましたが、長くリリースされない状況でした。

https://github.com/sporkmonger/uuidtools/issues/24

が、先日無事リリースされたため、みなさんアップデートしましょう、自分で作っているgemがuuidtools依存しているなら 2.1.5 以降に依存するよう変更しましょう、ということです。

みんな大好きFluentd関連で言いますと拙作 fluent-mixin-config-placeholders が uuidtools に依存しています。先程このgemを uuidtools 2.1.5 以降に依存するよう修正した 0.3.0 をリリースしました。

Fluentd pluginを作っており fluent-mixin-config-placeholders という名前に聞き覚えのあるみなさんは是非依存関係の更新にひと手間割いていただければと思います。

こちらからは以上です。(絶賛アップデート祭なう……。)

2014-08-04

NATやファイアウォールの向こうへデータをお届けする fluent-plugin-pull_forward を書いた

Fluentdにおけるネットワークごしデータ転送プラグインといえば forward が組み込みであるし、通信路を暗号化したければ secure-forward がある。

しかしこれらFluentdネットワーク転送プラグインは基本的に全て送信元から送信先に対してプッシュする形になっており、ネットワーク接続も送信元から送信先に対して行うことになっている。このため送信先のFluentdNAT下にある場合やファイアウォールで保護された場所にある場合、もしくはダイヤルアップ接続……は、まあ今は無いだろうけど、例えば移動するデバイス上にある場合など、こういったときにはうまくデータの転送を行う構成がとれない。

なぜこういう状況、つまりプッシュ型で転送を行うプラグインばかりなのかというと、FluentdのBuffer pluginの仕組みによる。細かく設計上の話をあれこれしてもアレだし面倒くさいので省くが。

という状況なのはわかっていたんだけどまあ自分に用途ないしいいか、と思って放置していたのだが、色々あって自宅(NAT下)でFluentd立ててそこに向けてデータ送りたいなー、という用途が発生してしまった。

fluent-plugin-pull_forward および fluent-plugin-buffer-pullpool つくった

用途が発生してしまったからにはしょうがないので、趣味プロダクトの一環ということで作った。まだ自宅で使いはじめてないんだけど、動く……はず。

f:id:tagomoris:20140804180656p:image

コードはこちら。

https://github.com/tagomoris/fluent-plugin-pull_forward

https://github.com/tagomoris/fluent-plugin-buffer-pullpool

ということで、これを使えばオフィス内のマシンとかけっこう電源落としたりする自宅サーバにもFluentdごしにデータを転送できる! やった! 便利!

しかもプロトコルHTTPS + Basic認証 + JSON なので、実は受け取り側はFluentdである必要すらなく、HTTPSのリクエストを発行できるあらゆるクライアントFluentdからイベントデータをJSONで好きなタイミングにフェッチできる。なんて便利なんだ!

このためにデータのflush(の実質的な処理)をpull型でできるようにするためのハックを加えたbuffer pluginも作った。対応したAPIをもったBufferedOutput pluginからのみ使用できる*1

注意点としては、フェッチされる前のデータは当然だがFluentdが起動しているノードにファイルとして残り続ける。なので buffer_chunk_limit および buffer_queue_limit の設定および空きディスク容量には注意が必要。あんまり高スループットな環境で使うものではないです。

ということで

実は割と刺さる人がいるのではないかと思います。みなさまぜひご利用ください。

*1:これはBuffer pluginにそういう処理を行うためのAPIが足りないため。将来的にはFluentdアップデート時になんとかしたい。