システムパフォーマンス勉強会第 2 回
社内で行ったシステムパフォーマンス勉強会のメモ。資料の公開はなし。
第2回は第3章のカーネルをテーマにしているが、まだまだ基礎でパフォーマンスにどれだけ関わるのかわからないという声もあった。
章の内容としては: - 用語の説明 - カーネル - 割り込みと割り込みスレッド - プロセス・スレッド - システムコール - メモリ、スケジューラ、ファイルシステム
大体のトピックを軽く触る程度で、詳細な解説はのちの章で改めて詳しく解説がある。
進み具合がよくないので、年度内に一通り読めるかどうかやや不安である。
あと p96 で inctl()
というシステムコールが紹介されてたがこれってioctl()
の間違い?
「まつもとゆきひろの言語のしくみ」を読んだ
まとめ
- Pros
- Cons
- 教科書的な内容の本ではない
- 理論的,網羅的ではない
C
言語を使用しているので、使ったことがない人にはつらいかも
- 教科書的な内容の本ではない
メモ
ようやく読んだので読書メモなど。
この本は元々は連載されていた記事を本にまとめなおしたもので、 Streem という新言語の設計と実装を追いながらインタプリタの仕組みを見ていく内容になっている。 それもあってこの本だけでコンパイラに関するすべての点をカバーするのは難しい。
本書で紹介されている内容で目についたのは次のようになる: - 言語処理系 - バーチャルマシン - Streem の設計と実装 - オブジェクト指向 - ガーベージコレクション
このようにコンパイラの入門としてはいろいろ足りない部分が多いが、 Streem 言語で実際に検討・実装されたテクニックが紹介されているので読み物としては面白い。 むしろ Streem 言語に興味がある人向けの本なのかと思う。 一方であまり理論的な部分にはそれほど触れられていないので、 物足りない部分も多々あった。
他個人的に気に入ったトピック: - 言語を作るモチベーション - NaN Boxing
言語を作るモチベーション
言語を作るモチベーションとして紹介されていた - プログラミング能力の向上 - デザイン能力の向上 - 自己ブランド化 - 自由の獲得 - 楽しい
NaN Boxing
NaN Boxing は浮動小数点数をオブジェクト表現に流用するテクニックで、 IEEE754 での NaN の仮数部が 0 以外であればよいのを利用しそこに値を詰め込む。 このテクニックは知らなかったので素直に驚いた。
■
www.slideshare.net
この資料の他に Jupyter を使ってグラフも作っていた。 しかし会社に PC 持って行って Jupyter を再起動したところ、ネットワークがないため必要な JavaScript がダウンロードできずにグラフを描画できなかった。 割とありがちなミスだと思う。
ドメイン駆動設計勉強会の結果を発表した
www.slideshare.net
職場の部会で、今年の 5 月から 8 月あたりに行った勉強会の発表をやれと言われたときに作った資料。 15 分しかないので、DDD というよりは勉強会自体に関しての発表にした。
後々見てみて思ったのは: - まとめがない - 掴みの写真でも入れておいた方がよかったのでは?
直近で旅行行ってたんだからその写真を貼り付けておいてもよかった気がする。
LINE Developer Day 2017 に参加してきたメモ
ちょっと前の 9/28 に行われた LINE Developer Day に参加してきた。 半分くらいは会社見学のつもり。
セッションの内容としては「Developer」とあるように、 LINEが作成した OSS やプラットフォームについての紹介をするセッションが多かった。 大体のセッションはフロントエンドエンジニア向けという感じで、ちょっと前提知識に欠ける自分には厳しかった。 LINE でどういう体制でどういう働き方をしているか、というのに興味があったがそこら辺の紹介は少な目。
見てきたセッションは以下:
- Opening Session
- The Technologies in Clova
- Central Dogma:LINE の Gitをベースにした高可用性サービス構成レポジトリ
- Paying back technical debt - LINE Androidクライアントの事例から -
- なぜLINEではウェブトラッキングシステムがフロントエンド開発チームによって構築されたのか
- HBase at LINE 2017
- LINE Login - new features and mechanism
- Verda Cloud Family
- セキュリティのためのデータ分析 / ログ分析プラットフォーム Monolith と LINE Spam対策の現状
個人的に面白かったのは Paying back technical debt のセッション。 LINE の Android チームは技術負債の返済のため次のようなことをしていた。
- コードの改善
- Kotlin の採用
- ReactiveX, Data Binder の採用
- コーディングスタンダードの設定
- ベストプラクティスに従った実装をすることによる制
- CIの改善
- チームの改善
CI と Bot は結構相性良さそうだ。 あとインストール手順とか、バグの再現手順とかをコピペして実行できるようにするのはまねしたい。
余談だが LINE のノベルティはかなり豪華だった。定番のシールに加えてマグカップと四葉のクローバー栽培キットがついてくる。