株式会社セオ商事に入社しました

theocorp.jp

企画とエンジニアリングの総合商社です(社員3名)。
ものづくりのお手伝いや、エッジのきいたおもしろいことをやらんとしています。

こちらはセオ商事のメインコンテンツ、SFにまつわるポッドキャスト
入社前から聞き手②を担当させていただいていました。最新回はJAXAの方にお話をうかがっています!


社長の瀬尾さんとは2011年に面白法人カヤックバイトしていた頃からのご縁で(なおカヤックを知ったきっかけは瀬尾さんの著書)、いつか何らかの形でお仕事をご一緒できたらいいなと思っていました。
今年に入り、会社化にあたって1人目の社員としていかがでしょうとお誘いをいただき、今に至ります。なかなかステキでしょ!

もうひとりのメンバーは去年の BlueNote Jazz Festival でお会いしたリーナさん。本職はエディトリアル・デザイナーさんで、デザインとエンジニアリングをお手伝いいただいています。
おふたりとも音楽に精通してらして、とても勉強になります。いつかバンドとかやりたい。


オフィスはみなとみらいの BUKATSUDO というシェアスペースの一角を間借りしています。
レコード部と部屋を同じくしていて、レコード聴き放題とか、社長のモジュラーシンセを使い放題とか、なにかと充実しています。

f:id:ar_tama:20160801163514j:plain
こんなかんじ。


アプリやWebサイト・デジタルデバイスなどの企画・制作のご相談とか、こういうことやってみたいんだけど的なふわっとしたお話とか、とにかく飲もうとか、お誘いお待ちしております!
週に1, 2日は渋谷のTHE GUILDにもおります*1ので、都心な方もそうでない方もお気軽にお声かけくださいませ。

追記

twitter.com

*1:セオ商事はTHE GUILD のメンバーでもあります

株式会社ディー・エヌ・エーを卒業します

早いもので、入社して3年と少しが経ちました。
5月末に最終出社を迎え、今は初めての巣立ちにしみじみとしながら有給を頂いております。

f:id:ar_tama:20160608215043j:plain
ラスト健保🍣の様子です


YAPC::Asia Tokyo 2011 で hidek さんのお話を聞いて、この会社に入りたい!この部署に行きたい!と叫んでいたらうっかり内定・配属され、
トラフィック・大規模なプラットフォームを、技術力も視座も高いメンバーと大きな裁量をもって開発・運用するという、とても貴重な経験を積むことができました。

進むべき道が見つからず思い悩むこともありましたが、いろんなアドバイスを頂いたり、様々なお仕事を任せていただいたり*1したおかげで、おぼろげながらも次の一手が見えてきたかなということで、今回の決断に至りました。

DeNAという会社はいくつもの部署があり、それぞれに個性的なカルチャーが醸成されているのですが、わたしの在籍していた部(オープンプラットフォーム事業本部)は愛に溢れたとても素敵な環境だと本当に思います。
先輩にも後輩にも同期にもびっくりするくらい恵まれた、幸せな3年間でした。お世話になりました!

今後はしばらくの充電期間を経たのち、新天地でお仕事を始めます。また改めてご報告をば。

*1:エンジニアリングだけでなく、掛けあわせで価値を出せるようなプロジェクトマネージャなどのお仕事も

おにやんま - ISUCON5予選敗退してくやしい話 #isucon

2回めの isucon は @karupanerura@silvers のおふたりと参加してきました。

チームおにやんまの活動

https://instagram.com/p/8Es-fjLKqA/


やったこととふりかえり

3人のだいたいの住み分けは、

  • @karupanerura middleware まわり
  • @ar_tama アプリケーションまわり
  • @silver_s SQL まわり

みたいにざっくり切り分けてとりかかりました。

自分のだいたいの動きとしては、

12:00

とりあえず Perl で動かす→ベンチ叩いてみる→ slowlog と accees_log を集計

12:30

いったん手を止めて方針を相談(自分はとりあえず GET '/' のクエリをなんとかすることにする)

13:00

日記のタイトルと本文の分離をはかりたいがデータ多すぎて alter に時間かかりそうなので尻込みする
(ふりかえり)SQL力が低くて初期データ構造を変更しつつ alter するのを思いつかなかった

13:30

とりあえず get_user とか is_friend とかを使わず join しまくる
(ふりかえり)改修を細かい単位で反映させてベンチ取ればよかった

14:30

relations が双方向 insert されていたので friend まわりのクエリ書き換え
このあたりからしばらく comments_of_friends にハマりまくる

16:00

comments_of_friends の他をなんとかして、
しるばす氏(index 担当)かるぱ氏(nginx + my.cnf 担当)の作業ぶんとマージして 5000 点を超える
=> このへんでかるぱ氏が手が空いてきたとのことだったので footprints まわりと comments_of_friends をお願いする
=> entries あたりに手を出し始める(そしてまた焦ってハマる)
(ふりかえり)そこまでベンチに影響を与えていた部分ではなかったのでとっとと参照系のキャッシュ導入とかすればよかった


というかんじで、前半はわりとスコアアップに寄与できたんですが、後半はノーバリューすぎてつらいかんじでした。
詳しくは反省会にまとまっていますが、余裕をなくさないことがとにかく大事だなと痛感…。
それぞれのアプローチとしてはあまり外していなかったはずなので、次回はうまく各々の役割を分担・遂行できるように進めていきたいです。


ベンチマークが公開されたら(されるのかな?)さっそく復習したいくらいには各人くやしさが募っているので、
来年までキープできるようになにかしらアクションしていけたらと思います。
運営・出題のみなさま本当にありがとうございました!!

メンバーのエントリ

ofsilvers.hatenablog.com

おまけ

f:id:ar_tama:20150928224044p:plain

ワタシとPerl、ワタシとYAPC

エモい話を書くのはためらっていたんですが、皆さんのブログを読んでちょっとだけ触発された*1のでちょっぴり綴ってみます。
リアルタイムで聴けたトークがあまりないので、トーク成分は低めです。

2011

ラスト東工大の年。
@sugyan さんと @umeyuki さんに、開催2週間前に「YAPCっていうお祭りがあるよ、よかったらおいでよ」と声をかけていただいてチケットも持たずに*2飛び入り参加。

着いて早々道に迷って途中でお会いした @toku_bass さんと右往左往しながら前夜祭に滑り込んだり、
キーノートだった @hidek さんのお話に惹かれたのが DeNA に入社するきっかけになったり。
初めて会った @nontan__ と双子なのかと @yappo さんに言われたりしたのもよい思い出です-ω-

身一つで飛び込んだにもかかわらずみなさんによくしていただいて、コミュニティのあたたかさをしみじみ感じたことをよく覚えています。

2012

くしいさんに「スタッフやりたいなー」と言ったらやらせていただけることになりました一回目。東大の年ですね。*3
ランチ交流会とか、LTソンとか、企画に富んだ回でもありました。

当時の感想はこんなかんじ。
YAPC::Asia 2012でスタッフしてきた! - たまめも(tech)

関わっているかた全員がYAPCというイベントを愛していて、それぞれの得意なやりかたでコミットしているんだなあと、今回改めて実感しました。

これはずっと変わっていないですね。愛がね、ありますよね。

2013

日吉一回目。
YAPC::Asia 2013でスタッフしてきた! #yapcasia - たまめも(tech)
当日までやる気いっぱいだったんですがなんと高熱でダウン…。
2日めのドラを叩いたことは覚えてます。miyagawaデカールもこの回だったようす。今でも愛用しています。

幕間の CM で音楽を担当したのですが最後まで再生されておらず、カット部分を上司であるところの @nekokak 先生が LT に飛び入り参加してまで流してくださったという…涙なみだです。

2014

日吉二回目。
牧さんくしいさんコンビが解散し激震が走ることつかの間、次期主宰の @yusukebe さんからお声がかかり、コンセプトメイキングのお手伝いをさせていただくことに。

この年はコアスタッフ、当日スタッフ、スピーカー、個人スポンサー、企業スポンサーと本当にいろんな軸から関わらせていただいて、一番感慨深い回です。
YAPC::Asia 2014でトークしてきた! #yapcasia - たまめも(tech)

今年も去年もコアスタッフとしての実務的なお手伝いはほとんどできなかったのですが、新しい視点でイベントを見ることができてとても勉強になりました…!

2015

ビッグサイト
再び牧さん主宰となった今回は、コアスタッフに片足、メインは当日スタッフという形でお手伝いさせていただきました。*4
キャパ増加にともなってスタッフ数も多く基本的には人が足りているような状況だったので、落とし物の受付や遊撃隊業*5につとめていました。

懇親会中にコア/exコアスタッフ*6と「こうやって息をつくことももうできないんだねー」とお話しして不覚にもしんみり。
久々に会うかたがたとまるで昨日の続きのようにお話しができる空気と環境も、これまた YAPC ならではという感がありますね。

総括

このイベントきっかけで人生が変わったというひとがおそらく一定数いるだろうと思っていますし、わたしもそのうちのひとりです。それってすごいことですね!
恩返しをしきれた実感もないまま幕引きを迎えてしまったわけですが、また別の形で*7コミュニティに関わっていきたいです。

YAPC を取り巻く環境は年々変わっていきましたが、変わらないのはやはりイベントやコミュニティへの愛と、懐の広さなんじゃないでしょうか。
今年の参加者も以前と比べたらいろんな層のかたがたがいらしていて、でも空気はいい意味でそのままで。
わたしは Perl コミュニティのそういうところがだいすきです。
初参加のみなさんにも、こうした魅力のいくばくかを持って帰ってもらえたのであれば、スタッフ冥利に尽きます。

主宰の牧さん、くしいさん、ゆーすけべーさん、スタッフ・参加者のみなさま、本当に楽しいお祭りをありがとうございました。

というわけで、YAPC が終わってもぼくらはズッ友だょ…! というところで、締まらない話を無理やり締めたいと思います。ちゃんちゃん。

*1:これは牧さんの思惑通りでは…

*2:くしいさんはじめスタッフ各位、大変お騒がせしました…よい子は真似しちゃだめだぞ

*3:@sasata299 さんが結婚のきっかけを掴んだのはこの回です!!

*4:トークも応募していたんですが、スピーカー二人の仕事の都合がつかず辞退の運びに>

*5:雑用したり、無限コーヒーへの地図を描いたり、喋りやすい・聴きやすい環境の整備や指示をしたり

*6:@ricoimazu さん、@torii さん、@umeyuki さん

*7:エンジニアらしくコードで還元していきましょう

今年もお祭りをつつがなく終えた #yapcasia

f:id:ar_tama:20150823170813j:plain

たのしかった!

10年続いた "YAPC::Asia Tokyo" としては最後の催行となる今年も、スタッフとして、参加者として、堪能してきました。yapcasia.org

会場のキャパシティも去年に比べてとても大きくなりましたが、それを超えるほどの方々(2000人超!)にお越しいただけて本当に嬉しかったです。暑いなかありがとうございました。
これほどの規模、これほど多方面のエンジニアが一堂に会するお祭りももうしばらくなさそうですが…またどこかで皆さんとワイワイできることを祈っています:D
ご来場いただいたみなさま、いままで携わってこられたすべての方々、本当に楽しいお祭りをありがとうございました!

以下蛇足。


噂のPerl6ワインは白のスパークリングでした。
アルコール低めのすっきりしたお味でおいしかったです!

CentOS6 に MySQL+Mroonga を mysql-build 経由でインストールする

前提
ハマったこと

2.5. CentOS — Groonga v5.0.6ドキュメント を見ると

% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
% sudo yum makecache
% sudo yum install -y groonga

するのみでよいと書いてありますが、鵜呑みにして Dockerfile に

RUN rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm && \
       yum makecache && yum install -y groonga

と書くだけでは mroonga の configure がうまくいきません。
mroonga は pkg-config で groonga, groonga-normalizer-mysql を探したがっているので、
groonga.pc が含まれている groonga-devel パッケージも同時に install する必要があるのでした。
groonga-normalizer-mysql についても同様です。

RUN rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm && \
       yum makecache && yum install -y groonga groonga-normalizer-mysql groonga-devel groonga-normalizer-mysql-devel

参考になりました: MySQL 5.5 に mroonga を組込む - 飛光よ、飛光よ

JSON Schema の oneOf / anyOf / allOf

draft v4 の validation keyword たちであるところの xxxOf 三兄弟。
混乱しがちなのでまとめるぞ!

共通点

  • object の array であること
  • 中の object は JSON Schema として valid であること
  • array の中身は1つ以上であること

相違点

(oneOf) An instance validates successfully against this keyword if it validates successfully against exactly one schema defined by this keyword's value.


(anyOf) An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword's value.


(allOf) An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword's value.

http://json-schema.org/latest/json-schema-validation.html#anchor75
oneOf

"it validates successfully against exactly one schema"
array のうち、かならずひとつの schema に合致することが条件です。
anyOf と違い、array 中のふたつ以上の schema に合致してしまうと fail します。

anyOf

"it validates successfully against at least one schema"
array のうち、ひとつ以上の schema に合致することが条件です。

allOf

"it validates successfully against all schemas"
array の中身すべての schema に合致することが条件です。

特に oneOf と anyOf の違いが仕様を読んでもぱっと頭に入ってこなかったので、実際に実装までたどってナルホドしました…