翔泳社セールで買った

性懲りもなく積読を増やした。
あ、これ買おうって思ったのがすでに購入済となってたのでそっちも早く読まないと…

ビヨンド ソフトウェア アーキテクチャ (Object Oriented Selection Classics)

ビヨンド ソフトウェア アーキテクチャ (Object Oriented Selection Classics)

エンジニアのための図解思考 再入門講座 情報の“本質

エンジニアのための図解思考 再入門講座 情報の“本質"を理解するための実践テクニック

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)

おうちで学べるセキュリティのきほん

おうちで学べるセキュリティのきほん

クイズで学ぶデザイン・レイアウトの基本

クイズで学ぶデザイン・レイアウトの基本

レガシーコード改善ガイド

レガシーコード改善ガイド

あと波よ聞いてくれの2巻が出てたので合わせて買った

Cookpad TechConf 2016に行ってきた その1

幸運にもCookpad TechConf 2016 に参加できた

ユーザーのために、技術をどう活かすか

CTOの舘野さんのお話。

クックパッドがユーザファーストな企業であるために技術に関して、組織作りに関してどう取り組んでいるかの話。 後で振り返ってってみると、この後に続いたどの話でユーザーを第一に考えていて、クックパッドはほんとにユーザーを大事に考えて取り組んでいるんだなという印象を強く受けた。

舘野さんの話で印象に残ったのは組織作りの中で話されていた情報共有の取り組みについて。 情報共有に関してはのところ、自分もどうやったらうまくいくのかなと思っている部分なので興味があった。

社内の情報共有ツールのGroupad(Blog+WIkiみたいなの)には技術情報だけじゃなくて、料理のレシピやスーパーマーケットでの(たぶん携帯の)電波の入りが悪さについての話などもあるらしく、情報の量が多くなって逆に伝わらないということはないのかな?という疑問を抱いた。 懇親会でお話する機会があったのでそこらへんを聞いたところ、以前はフラットに情報が流していたが、組織が大きくなってから部署などグループ内で共有するようにして、その中でいいねなどしてきたのが全体に流れてくるようにしてるとのこと。

おでかけスポット検索のむずかしさ - Holiday を支える検索技術

内藤さんのおでかけスポットを検索の検索のお話。

「中目黒 デート」というキーワードで単純に検索すると住所の中目黒にヒットしてしまい、ユーザーが期待しているカフェとか雑貨とかオシャレなイメージと乖離してしまう。 これを位置情報の検索を工夫して解決している話だった。

「中目黒 => オシャレなイメージはどうやって推測するのか? 他の場所でもできるのか?(推測する仕組みはあるのか?)」みたいな質問をしたかったんだけど、要領を掴んでない質問になってしまって残念だった…

Railsアプリ開発環境の高速化

k0kubunくんさんの高速化話。速い。

asset:precompileに23分かかっていたものが最終的に1分(キャッシュありの場合)まで縮めたとのこと。 23分という時点でも驚きなのにここまで速くできるのはすごい。

何故高速化するのか?という文脈でも(ユーザーに)価値を届けるという話が出てた。 クックパッドは価値を届けすぎではないだろうか。

R&D at Foodtech company

chezouさんのR&Dの話。いい声。

食文化研究の文化や食べみるの話。 クックパッドがNII(国立情報学研究所)にパブリックデータを提供してるのは初めて知ったかも。

最後のほうに出てくる、非専門家でもレシピを機会学習を使って自動分類などができる仕組みについて。 ちょっと前に自分のまわりで自動で分類などをできる仕組みが欲しいみたな話があったので懇親会でいろいろ聞いてみた。 …のを書こうと思ったけどchezouさんが自身のブログでそこらへんをすでに書かれていたのでぜひ読んでみて欲しい。

chezou.hatenablog.com

技術力を事業の強みするために必要なこと

大野さんのお話。 正直、難しい感じだったので改めて発表を見て頭を整理したい(動画待ってます!) "技術は議論や調整に弱い、決定とテストを行う" とか "定義」があることで「評価」が簡単になる" の言葉が印象的だった。

開発した新技術から、新しい価値を作るためのクックパッド検索チームのプロダクト開発手法

五十嵐さんのお話。 ディレクターだけどコードも書いてるらしい。

中の人からはこんな話も。

やばい。

技術先行だったりで思いついた機能で失敗した話と今はどう取り組んでいるかと話でした。

この日どの発表もすばらしかったんだけど、個人的に一番好きな内容でした。 特にこのページ。

機能の前の価値探しの話なんですが、まずベースに企業理念の反対な状態「料理が楽しくない」ってところから考えるところがおもしろいなぁと。 あとは欲求もあったら嬉しいみたいなポジティブなものではなくネガティブなものにフォーカスして、あっても使わない機能が入ったりしないようにしてるみたい。

よくやっちゃいそうな 技術→製品→価値 ではなく、価値→製品→技術 という流れで考えていくのはなんとなく↓のゴールデンサークルぽい考えですね。 自分もぜひ取り入れたいと思います。

サイモン シネック: 優れたリーダーはどうやって行動を促すか | TED Talk | TED.com


(その2 に 多分続く)

age++

一応誕生日Advent Calendar 2015用のエントリです

本日で35歳、ついにプログラマの定年を迎えました。
といっても別に何も変わりなく今日も明日もコードを書きます。

今年を振り返ってみると、プログラマーとしてはあんまり新しいことにチャレンジできなかったという反省があります。当初はGoやるぞ!とか意気込んでいたんですが結局尻すぼみになってしまいました。
来年はもうちょっと通勤時間や帰宅してからの時間などを上手く使って勉強する時間を取れるようにしないといけないなと思ってます。

また今年は例年以上にいろいろな人と知り合えた年になった感じがあります。
一緒に食事をすると仲良くなれるものですね。 ブローカーとかいう妙な呼称もいただいたので来年もこの力を活かしていこうと思います。

余談ですが例の店には15回行ってたみたいです。
(年内にもう1回行く)


さて来年2016年ですが、今のところ以下のようなことを頑張ろうかなと思ってます

  • 来年こそGo
    • ちょうど作りたいものが1つあるので1、2月中にはそれを完成させたい
  • 英語
    • 秋のKaigiまでにもうちょっとリスニングの能力上げる
  • Rubyへの貢献
    • Kaigiでモチベーション上がってるので早めに何かしたい

ということで、とりあえず来年もみなさまよろしくお願いいたします。

あ、例のやつ置いておきますね

Itamae meetup #1 でvagrant-itamaeのLTしてきた

(最後の追記も見てね)

 

資料はこちら

プレゼンアプリが固まって慌ててPDF出力したりして発表してた
 

Itamaeと自分

実はまだItamaeをちゃんとプロダクションで使ったことがない。
 
最初にItamaeを知ったのは、Chefに疲れた/合わなかった勢がAnsibleに流れてた時期だった気がする。どうもAnsibleが手に合わなかった(YAMLで書きたくなかった)ので、Itamaeのシンプル&プログラマブルなとこに魅力を感じた。
 
ガリガリ使ってウチらでItamaeを盛り上げてこっ!ってことをやりたかったんだけど、当時は転職直後でインフラを使う機会が無かった。そこでItamaeの利用を促せるツールを作ることを考えた結果が vagrant-itamae だった気がする。
 

次にやりたいこと

まだ Itamae は packer で使えなくてこれをなんとかしたいなと思ってる。
冬休みにGoの勉強も兼ねて書けたらいいなぁ。
 
(2015/12/10 11:20 追記)
 

資料の中の「vagrantが無くなる」「itamaeの--sshが無くなる」とか書いてる件について

 「itamae --ssh」は @ryot_a_raiさんのkeynoteで「--ssh 無くしたいな〜」という発言を受けたものではあるんですが、他の方の発表で使ってるって声がいっぱいあったので無くなることはないかなと思います。
 
Vagrantについては後継とされるOttoというのがあって、今は内部でVagrantを使っているけどそこが(多分Goで書かれた)何かに切り替わっていくものと思ってます。
ただこれも確定している話ではないと思います。

Gitでしていた勘違い

Git Advent Calendar 2015 6日目のエントリーです。 昨日は oh-sky さんの aliasにできないならsub-commandにすれば良い でした


みなさんはgitで操作をした後、内部のグラフがどうなっているかを意識していますか? 自分はGitの中身を勉強するまでは漠然としたイメージしかもっておらず、なんとなく操作して失敗するたびに泣きたい気持ちになっていました

このエントリでは簡単な例を上げて以前自分が勘違いしていたことと間違いに気付いてからの話をしたいと思います

さて問題です

      E - F(topic)
     /
A - B - C - D(master)

(A〜FはSHA-1ハッシュ値、カッコで囲まれているのはブランチ名ということにしてください)

たとえば上のようなグラフがあったとき以下のコマンドを実行したらどうなるでしょうか

  • git rebase master topic
  • git branch -D topic

git rebase master topic

自分が思っていたのは以下のようなグラフでした (man git-rebaseをしてもこういう例になってる)

              E' - F'(topic)
             /
A - B - C - D(master)

しかし正確には以下のようなグラフになります

      E - F
     /
A - B - C - D(master)
             \
              E' - F'(topic)

topicブランチは移動しているものの元のE - Fのコミットは消えずに残っています もちろん、git checkout topicとしてもFは参照できませんが、SHA-1がわかれば rebase 前のコミットを参照できます

git branch -D topic

deleteだから当然以下のようにbranchにあるコミット全てが消えると思っていました

A - B - C - D(master)

正確にはこうなります

      E - F
     /
A - B - C - D(master)

こちらでもFはSHA-1さえわかれば参照することが可能です

自分は何を勘違いしていたのか

この例に限らず Gitにはコミットを消してしまうようなコマンドがない ということです (消せるのはbranchのみ)

これに気付いたときは結構な衝撃をうけました
削除することができないということは、何かを失敗しても 必ず元に戻すことが可能 ということだからです
それからは何をするにもビクビクしながらgitを使うようなことはなくなりました


自分がこのようなことに気付いたのはGitの中身を勉強しようと 実践 Git - 低レベルに知る Git を見て、その後 入門Git を読み直してからです
ぜひみなさんもGitの中身を見て今まで誤解していたことや、ぼんやりとしたイメージしか持てなかったことを改めてはいかがでしょうか


半年の糖質制限生活の経過報告的なにか

糖質制限 Advent Calendar 2015 - Adventar 1日目のエントリーです

糖質制限を始めたきっかけ

今年の4月に95.9kgという数値を記録してしまい、"このまま0.1tになってしまうのはマズイ!!"というのをきっかけに興味のあった糖質制限ダイエットを始めた

やったこと

食事

  • 米/パン/麺類は食べない
    • 月に2、3食ぐらいは食べる機会はあるが、その場合も極力少なめに

間食

主に以下のものを選んで食べる

  • アーモンド
  • デザートチーズ
  • コンビニのフライドチキン系
  • 海藻系のおつまみ

ジュースは飲まないし、上記以外のお菓子類はほぼ食べない

お酒

飲まないと死ぬので普通に飲む ただ以下のようなことは考えて飲んでる

  • 基本はホッピー
  • ビールはそれを目的にしていないとき以外は飲まないように
  • 飲む時はいつも以上に糖質のある食べ物に気をつける

半年やった結果

体重

体重は 95.9kg から 78.2kg に(-17.7kg)

体脂肪率は33.4% から 22.1% に(-11.3%)
ちなみに体脂肪量は 32.0kg から 17.3kgに(-14.7kg)

BMIは 30.4 から 24.7 に (-5.7)

さすがに元が酷すぎたというのはあるけど、半年の成果としては十分な効果が出たと思う

つらいこと

  • 食費が上がる
  • 店選びが大変
    • 定食しかないようなところが全滅

周りに糖質制限をしてる人は多いけど、自分ぐらい効果がはっきり出たという人には会えてないのでよっぽど体質が合ったのかなとは思う
これからやってみる人は1、2ヶ月やってみて様子見るといいのではないかな

とりあえず自分は目標値(75kg)に行くまでは継続していく予定
その後も今のとこ止める理由はないかなと

今回、体重の経過を見るのに Withings の体重計を使っていたけど、毎日の計測結果を自動アップロードしてグラフで見せてくれるのは本当便利なのでオススメ
(上のグラフのスクショはWithingsのiOSアプリのやつ)
数値が減ってくのがグラフで見えると続けてくモチベーションがAGEAGEでした


追記(15/12/01 12:30)

この期間に並行して運動してたのか?みたいな話が抜けていました

9月にツールド東北という自転車のイベントで170kmを走るのに向けて、8月末あたりから2週間ぐらいは毎日1時間程度自転車をこいでいました
それ以外の期間では週末に月1回も行かないぐらいのペースで自転車乗ってた程度の運動量です


明日は糖質警察 🚓 こと @a_suenami さんです

YAPC::Asia Tokyo 2015に行ってきた

前夜祭から行きたかったけど都合がつかなかったので1日目からの参加 カッとなってエクストリームYAPC で意識を高めた結果、スタッフより早く国際展示場についてた

この2日間は脳内がお祭りになってて具体的に思い出すのが難しいのでセッション中のツイートを貼ってお茶を濁したレポートにする

Merry Christmas!

Perlの話を聞きに来たらトールキンの話(ホビット物語と指輪物語)だった。 同時通訳の方がめちゃくちゃすごくてPerlトールキンPerlみたいに話がころころ入れ替わっても普通に対応してた。マジやばい。

Perl 6は2015年のクリスマスとのこと。もちろんRubyも出る予定だし今年のクリスマスは盛り上がりそうだ

世界展開する大規模ウェブサービスのデプロイを支える技術

Miiverseのデプロイの話。マルチリージョンでつらいって感じだった。

Gitリポジトリを分散させるためにrsyncしてる(してた?)って話しだったけど、なんでそういう手段にしたのかよくわからなかった。 今ならAWS CodeCommitとかCodeDeploy活用して楽にはできそう。

Website Architecture for HTTP/2 Era

HTTP/2とh2oのお話 HTTP/2が求められた背景と実際どのような仕組みで高速化が行われてるかがわかりやすかった

今はバンド幅よりレイテンシのほうがページロードに影響するとのこと ページロードを速くするには、光を速くするかレイテンシに負けないプロトコルが必要(それがHTTP/2)

セキュリティ周りの話に移った後の「きっとnginxも追いかけてくる」→「H2Oは更に先を⽬指します」ってスライドがめっちゃくちゃかっこよかった。

Electron: Building desktop apps with web technologies

Atomとかで使われているElectronの話。入門ぽかった

温泉猿の扱い酷い

esa.io - 趣味から育てたWebサービスで生きていく

(( ⁰⊖⁰)/)

単に楽しいじゃなくて「ユーザーの幸せになること」を楽しんでこなせるようにしてるってのがすごいよかった あとTLを見てた感じ、あんまesaを知らない人も多いのかな?って感じだった

ISUCONの勝ち方

ISUCON優勝チームはどういう感じに作業をしていたか?とか基本的に抑えるべきポイントなど。 去年参加したときは準備が足りなかったので、今年はちゃんと準備して臨みたい。 (でも発表された日程が予定とだだ被りしてた…)

ISUCON勝つには人間を辞めよう

我々はどのように冗長化を失敗したのか

生のkenjiskywalkerさんは初めてだった(まさかその後飲みの席で同席させていただくことになるとは…) 平常時でも冗長構成のActive/Standbyを切り替えるというのは完全にAgree

Webサービスの運用はほんと地獄だぜ

Adventures in Refactoring

GitHubで行われたリファクタリングの話 リファクタリングの目的やどのようにしてリファクタリングの成果を計測するかなど 実際に行われたなかでのノウハウだったりしたのでとても為になった。個人的にはこれがベストトーク。

よくあるリファクタリングしすぎ問題はこれで説明ができそう

Information technology to support the Santa Claus

チャリティーサンタというボランティア活動でのITエンジニアとしての関わり方について 紹介ビデオがとてもよくてなんかほっこりしてた プロボノって言葉があるらしく、ちょっと自分も何か活動してみようかとか考えさせられた

レンサバでの運用は大変そう

Profiling & Optimizing in Go

Goはまだチュートリアルぐらいしかやってないんだけど、プロファイリングが大変と聞いたので今後の参考に聞きに来た ライブコーディング&同時通訳とかいうすごいセッションだった GitHubにコードも上がっているので自分でも試してみようと思う

すごすぎてツイート殆ど残ってないが前半に出てきた雑コラが酷かった

その他

Rebuild.fmのmiyagawaさんにご挨拶できたり、YAPC後の飲み会でインフラ界隈のすごい人とご一緒できたり楽しい2日間だった