フリルのログ収集基盤について

以下は2015-12-25に会社(Fablic, inc.)の技術ブログinFablicに投稿した記事(http://in.fablic.co.jp/entry/2015/12/25/110618)になります。
inFablicが閉鎖され閲覧ができなくなってしまったため、会社の了承を取った上で転載しております。

元記事にリンクを貼っていただいていた方に対しては大変お手数ですが、こちらにリンクし直していただければ幸いです。


この記事は Fablic Advent Calendar 2015 の25日目のエントリです。

こんにちは、Fablicでサーバーサイドエンジニアをしている@yutadayoです。今回はフリルのアクセスログをどのように収集し、活用しているかを紹介します。

続きを読む

Mastering Bitcoin

Bitcoinがもう少しで70万に達しそうですね。
仮想通貨やブロックチェーンについて、そろそろ技術的な理解をキチンとしておいた方がよいかなと思い Mastering Bitcoin を読みました。

Mastering Bitcoin

Mastering Bitcoin

オープンソースとして日本語約もPDFとして、公開されているので、こちらから無料で読むこともできます。 日本語訳してくださった方々に感謝です。

技術的な内容がほとんどですが、一般社会に置き換えた例も交えながら解説されているので、一通りのBitcoinブロックチェーンの知識を得るには非常に良い本だと思いました。

以下、読む前にぼんやりとしか分かっていなかったことが理解できた内容

自分のBitcoinがどのように管理されているか?

ユーザーがBitcoinを受け取るときはUTXO(未使用トランザクションアウトプット)として、ブロックチェーンに記録される。
ユーザーのBitcoinは無数のブロックの中にUTXOとして分散していて、残高という概念は、ウォレットがブロックチェーン内をスキャンして、ユーザーに属している全てのUTXO を掻き集めて集計し表示している。

マイニングとは?

difficulty target よりも小さいブロックヘッダハッシュになるnonce値を見つける行為
本に紹介されている例が分かりやすかった。

プレイヤーが2つのサイコロを繰り返し投げ、特定のtargetよりも和が小さくなるようにするゲーム

target が12の場合は、6を2つ出さなければ勝ち
target が2の場合は、36回サイコロを投げて1回勝利(全体の2%)できる

マイナーはトランザクションを埋めた候補ブロックを作成し、ブロックのヘッダのハッシュを計算、difficulty target よりも小さい nonce が見つかるまで nonce の値を修正して計算する。

ほぼ同じタイミングでマイニングに複数の人が成功したらどうなるのか?

Bitcoinノードは最大累積difficultyチェーンを選ぶようになっている。

ほぼ同タイミングで2人のマイナーが proof-of-work の解を見つけてブロックチェーンのフォークが起きる場合もあるが、その場合次のマイニングに成功したブロックが繋がれた方のチェーンがメインチェーンになり、繋がれなかったもう一方のチェーンはセカンダリーチェーンになる。

図入りで解説されていたので、非常に分かりやすかった。

成功はゴミ箱の中に

成功はゴミ箱の中に レイ・クロック自伝―世界一、億万長者を生んだ男 マクドナルド創業者 (PRESIDENT BOOKS)

成功はゴミ箱の中に レイ・クロック自伝―世界一、億万長者を生んだ男 マクドナルド創業者 (PRESIDENT BOOKS)

ファウンダー ハンバーガー帝国のヒミツ が放映されていることもあり、興味があったので、読了

学生時代にマクドに行くことはよくあったのだけれど、この本を読むとシステム化された マクドの商品や従業員の教育などが、どのように作られてきたのかが分かり、面白かった。

しかし、レイ・クロックが52歳の時からマクドナルドのフランチャイズ化を始めたのには驚き、自分が起業したのは25歳の時だったけれど、何かを始めるのに遅すぎるってことはないというのを改めて思いました。

映画も是非見に行きたい。

Airbnb Story

Airbnbの創業からを追った作品

起業本が好きなので、手に取ってみました。
創業時にオバマのシリアルを売ってラーメン代を稼いでいた逸話は有名ですが
創業メンバーがどうやってチームになっていったかなど読み物として単純に面白かったです。

自分が起業した時とは、環境やプロダクトの内容も少し違うがプラットフォームを大きくして行く過程や、最初の頃のユーザーに直接会いに行き、泥臭く改良を加えて行くシーンは自分達とダブルところがあり、やり方が間違っていなかったことを確信できました。

採用基準

採用基準

採用基準

生産性に引き続き、伊賀さんの本を読了

特にリーダーシップの重要性について書かれていた

チームにリーダーが1人いて、それにメンバーが従うという構造ではなく、 メンバーそれぞれがリーダシップを常に発揮することが理想という文脈は Googleの採用基準である 創発的リーダーシップ と通じることがあるなと思った

特に 4 〜 5章にかけてはマッキンゼーでの実例も交えて書かれていて実践的だった

印象的なトピックを下記にメモ

リーダーがなすべき4つのタスク

  1. 目標を掲げる
  2. 先頭を走る
  3. 決める
  4. 伝える

実践したいマッキンゼーの基本動作

  • バリューを出す
    • 何らかの成果を出す
    • 会議などでダンマリ参加は価値なし、有益な発言を行う
  • ポジションをとる
    • 自分はどう思うか?必ず自分の意見を述べる
  • ホワイトボードの前に立つ
    • 議論のリーダーシップを取る

生産性

生産性―――マッキンゼーが組織と人材に求め続けるもの

生産性―――マッキンゼーが組織と人材に求め続けるもの

読みました、今の人事としての仕事内容と視点が同じ形で書かれている箇所が多かったので参考になった。

気になった箇所の抜粋

  • トップパフォーマーには後輩の育成を任せるのは効率的ではない
  • 人事考課において、今の自分は一年前の自分からどこがどれほど成長したのかを言語化させ、その成長レベルが十分かどうかという振り返りを行う
  • 定期的に やめられる仕事はないか? と考える機会をもつ

後半のマッキンゼー流の会議の進め方の章はそのまま取り入れられそうな部分があったので実践したいと思う。

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

オブジェクト指向設計の名著として名高い Practical Object-Oriented Design in Ruby の翻訳版です。

会社の新卒が手に取っていたのを見て一読しました。

rubyを題材にして「単一責任の原則」「ダックタイピング」や「継承」などの概念をコードベースで分かりやすく解説してくれています。

ある程度、rubyの知識を持って読んだ方が理解が進むと思います。

プログラミングにある程度慣れた初心者から中級者に向いている本なので、新卒向けの研修本としても使えるなと思ったり。