技術書典9で出会った本

技術書典9が今日から始まりました。

私も、コンテナの中で開発環境を作るVS Codeの技術であるDev Containerを使い始めから、開発環境コンテナとはどうあるべきかに迫る本を書きました。 よろしければお求めください。 物理本とPDFのセット、PDF単体のどちらも同じ値段の1,000円とさせてもらっています。 ぜひこの機会にお求めください。 (一時物理本の登録冊数を間違えており、品切れが発生していました。もしこの時に買われている方で物理本が本当は買いたかったという方がおりましたら、手配させていただくので、お手数ですがTwitter、メールsite@74th.techまでお知らせください!)

techbookfest.org

オンライン開催ということで、コーヒーを飲みながら、クリックしてPaypalで支払う作業を行った後、買った熱量のまますぐに読書に入ることができました。

今日読んだ本の感想をまとめます。また、読み終わるたびに #技術書典 #読書感想文 でツイートしています。ぜひ読んだらツイートをしてみてください。それを見て買うかもしれません。

Amazon Web Servicesコスト最適化入門 第2版

techbookfest.org

サラッと読みました。自分がリザーブインスタンスの計算の仕方を思い込みで誤解していたことが分かったり、Lambdaなどにも適用できる割引があったり、コストについて体系的に知らないともったいない所を知ることができました。そして、割引の適用にあたってきちんと正しく使えているか確認する方法はいろいろあって、監視する方法も書かれていて、効果的な内容と思いました。

サークル味噌とんトロ定食の表紙の作り方、考え方。

techbookfest.org

素敵な数々の表紙をどう考えて作られていたのか、どう考えるとよいのかを、説明してくれて、次表紙作る時参考にしようと思いました。ターゲットを決めるとか、一番伝えたいことを書き出すとか、言われるとそのとおりなのだけれど、それを表紙作る時に意識していなくて、機会損失していたのかもと反省しました。

Clean Architecture for React

techbookfest.org

サラッと見ましたが、もっとじっくり読まないとダメな濃い本でした。最初、Clean Architecturについてしっかりページを割いて知識を追いつけるようにした後に、TypeScriptのDI、SPA、ReduxをClean Architectureで解釈し直すと、こうできるというのを、ソースコードの実例で示してくれる。ソースコードを読み込んで、自分の中で腑に落ちるまで理解したいと思いました。

Gitのサブモジュールで困ったら読む本

techbookfest.org

gitsubmoduleには今まで散々苦しめられてきました。その時にこの本があったら良かったのにという気持ちです。無料なので、ぜひ手元に一つ。

Webセキュリティのミライ 不正指令電磁的記録問題に寄せて

techbookfest.org

技術書典のYouTubeLiveで紹介されていたのが気になって読みました。家宅捜索を受けて、どういうことを聞かれて、どういう起訴状で、というのが綴られており、一つの事件を知ることができて勉強になった。一つの時代の節目だったのだなと感じた。そして、技術書典もそういうものの一種になりうると思うのと、他人事には感じられなかった。

Vivliostyleで本を作ろう Vol.4

techbookfest.org

私の本もVivlioStyleを使って出力していますが、VFM使ってなかったり、現状できればいいやとオレオレな感じでやってたりするのを、多くVivlioStyleのツールセットが充実してきているのがわかり、積極的に使っていきたいと思いました。

van Damプロトコル

techbookfest.org

"『情報因果律』という量子論でも破れない絶対的な法則を、破る方法"というのが気になって読みました。非常に短いが、物語と数式の形で、端的にその部分の解説されていて、分かった時驚きがあって、面白い体験だった。

OpenAPI 3を完全に理解できる本 3.0.3対応版

techbookfest.org

どんなことが書いてあるかを確認したくて全体を読みました。雰囲気で分かったつもりになっていたOpenAPIに、定義でどこまで設定できるのかとか、他にどんな属性があるのかとか、実は定義の合成できるんですよとかが載っている。網羅的に辞書的に使える技術書は本当に助かります。これで次はこれをリファレンスにしながらOpenAPIで定義してくぞという気になりました。

Cloudflare Accessではじめるゼロトラストネットワーク

techbookfest.org

ゼロトラストネットワークとは何かを理解したくて読んでみました。その部分は、これまでのVPNなどのセキュリティの何が問題でゼロトラストネットワークの考え方がでてきたかから丁寧に説明されて、短時間でその概念が自分の中で腑に落ちることができました。後半はCloudflareの画面で実例が解説され、理解した内容を設定で見せてくれて、自分はまだその部分を丁寧に読んでいないですが理解した概念を実際に使ってみる感じになり、理解に繋がったと思い良かったです。

SCP Secure. Co. Py SSHハンドブック

techbookfest.org

当たり前のように使っているSSHで、実はこういうことができたんです、と今すぐにも役立ちそうなことが自分の場合3つ(sshfs、X11転送、多段SSHがConfigでかける)もあり、今後使うかもしれないVPNや二段階認証などもあり、こういう当たり前の技術の知らない側面を説明してくれる技術同人誌は読んでおいてよかったと思えます。

Yubikey と OpenSSL で作る電子認証局

techbookfest.org

YubiKeyで電子認証局を作ることに実用性があるのかはわからなかったが、Yubikey自身が証明書を認証したりする機能があって、それが利用して一通りできることがわりと面白かった。仕事で持っていて使っているけれど、OTPだけでなく潜在能力はここまであるとしては知ることができた感じ。

失敗プログラマ

techbookfest.org

最新刊のエッセイ集ということで読みました。何でもできないとと焦るけれど、興味あるところしか伸びないのはそのとおり。こういうエッセイでどうやって今のところまで来たのか、話してくれるのは読み物として面白く、参考になります。

『Visual Studio Code 実践ガイド』を上梓しました

f:id:j74th:20200223113818j:plain:w300

VSCode の解説書、『Visual Studio Code 実践ガイド(技術評論社)』を上梓しました。 入れる価値がある!と思ったことを全部詰め込んだ結果、執筆に 1 年がかかり、さらに 400 ページと分厚くなりました。

gihyo.jp

誰に向けての本なのか

全ての VSCode ユーザのための本を作りました。

VSCode は毎月アップデートがあり、現在のバージョンも v1.42 です。 VSCode は直感的に操作ができるようにできているとはいえ、機能が豊富になり、どんな機能があってどうやって使うかを手軽に知ることが難しくなってきました。 この本により、VSCode がどんな機能を持っているか、どうやって操作することで機能が使えるのかを解説する本になっています。 VSCode に習熟した人も、まだ出会っていない機能があるのではないかと探すつもりで読んでいただけると思います。

また、実際に開発を行う時に必要なことは言語ごとに異なります。 筆者は、実際に Type Script、Go、Python のプロダクト開発で VSCode を活用しています。 第 2 部には、Typs Script でのフロントエンド開発、Go でのサーバ API 開発、Python でのサーバ API、Jupyter の使い方を、ハンズオン形式で解説しています。 各言語ごとにどんな機能が VSCode から得られるのか、VSCode を使って開発を始めるにはどんな準備が必要か、記述しています。

ざっくり構成

第 1 部「Visual Studio Code の基本」は VSCode の全機能を解説したものになっています。 Git の章では定番拡張機能である GitLens などの解説もしています。

第 2 部「実際の開発で Visual Studio Code を使う」では、Type Script、Go、Python を使った実践的な開発方法をハンズオン形式で解説します。

第 3 部「拡張機能の開発と Language Server Protocol」では、拡張機能ではどんな部分が拡張できるのか、その開発方法、マーケットプレイスで公開する方法について解説します。 そして、様々な言語ランタイムとエディターをつなぐ共通基盤となった LSP について、実際にやり取りされるデータを示しながらその動きを解説します。 最後には、LSP を使った VSCode拡張機能開発にまで踏み込みます。

この本の特徴

1. 言語別ハンズオンの章で各言語の様々なデバッグ実行のやり方を書いていること

なにかプログラムで躓いた時にはデバッグ実行が欠かせません。 しかし、デバッグ実行しようと思うと、その環境の整備に手間取ることが多いと思います。 VSCode でも、デバッグ実行が簡単にできるかと言われると、多くの設定が必要になります。 本書では、デバッグ実行できることを当たり前に感じてもらうよう、ユニットテスト、サーバプログラム、フロントエンドプログラムのそれぞれのデバッグ実行のやり方や、そのコツを解説しています。

2. 3 つの言語の使い方を解説していること

VSCode は様々な言語をサポートする万能エディタと言えます。 ただし、言語によって環境構築の仕方や、開発で必要となる機能は違います。 またデバッグに必要となるツールや設定も当然異なります。

一つの言語のためだけでは VSCode の解説書としては足りないと感じていました。 特に筆者が実プロダクトの開発で使っている Type Script、Go、Python ならば、それぞれをかなりのレベルで書くことができると思い、第 2 部の言語を選定しました。 すでにこの 3 つの言語で開発している人も、解説、本書を活用できると思います。

3. LSP の拡張機能を作ること

VSCode の解説書を作るからには、LSP を解説したいと思っていました。 LSP は拡張機能のくくりでプロトコルを解説し、 LSP を解説した書籍は、mattn san の Software Design の連載とこの本くらいなのではと思っています。 さらに、LSP の 1 つのプロトコルを実装する拡張機能開発まで進みます。

解説していないこと

まとめ

アップデートが毎月あり、盛り込めるだけ盛り込み、時間が立つほど機能が増え、それに追われる日々でした。 しかし、開発で使う機能はというと、開発の基盤になり得るほど充実してきており、解説書があっても良い時期になったのではないかと思います。

SRE NEXT 2020参加レポート

SRE NEXT 2020に参加したのでブログレポートを。

https://qiita.com/Hassan/items/6f7fb1c206f77716ee2a

全体の感想

SRE NEXTに参加するにあたって、アプリエンジニアとの対比として、運用の非機能要件を担うと決めたエンジニアとは、どのような心持ちなのかを聞きに来るつもりで参加しました。 様々な「実践したこと」が話されていて、凄く刺激になった。

話したこと

所属企業では、スポンサーを担っており、私はスポンサーセッションで以下の発表をしました。 AIをプロダクト化する組織で、実プロダクトにするために考えてやってきたことを駆け足で話させてもらいました。

タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて https://www.slideshare.net/dena_tech/xaikubernetesai-sre-next-2020

聴講して印象に残っているもの

以下の感想は所属企業の考えではなく、私個人の感想です。

分散アプリケーションの信頼性観測技術に関する研究

https://speakerdeck.com/yuukit/a-study-of-sre?slide=17

SREは信頼性を制御することを前提に置いた一つのアプローチである

今まで非機能要件といわれてきたものに、工学として当てはめようとするアプローチがSREなんだという気づきを得た。

パフォーマンスを最大化するためのSREオンボーディング事例

https://speakerdeck.com/tkuchiki/sre-next-2020

SREとしてオンコールを受けられるようにするまで、組織でやっていることの事例。 この話は"新人に対して"であるが、私の課題にオンコールを受けられるエンジニアをどうやって増やして今の組織で回していくか、というのがあって、そこにつながるアプローチに思えて、参考になった。

Paractices for Making Alerts Actionable

https://speakerdeck.com/egmc/practices-for-making-alerts-actionable

アラートの計測を行い、定期的な振り返りで改善していった話。

スクラムを1年回して SREと開発組織がどう変わったのか

https://speakerdeck.com/licht110/sukuramuwo1nian-hui-site-sretokai-fa-zu-zhi-gadoubian-watutafalseka

開発とは異なるSREで、スクラムをまわして、タスクコントロールしていった事例。 優先度を数値にして、それを基準にプロダクトと握るのは凄く正しく、SREでもそれができるとの話が印象的だった。

ZOZO MLOps のチームリーディングとSRE (Engineering)

https://docs.google.com/presentation/d/1zEkR9Dm_epg7fxOCFE-asBsUlHDozwObsBEGAILiqic/

心理的安全性を下げる組織の作りを、ただ心理的安全性というだけではなく実践して文化にしていくのに感心した。 印象に残ったことは多いですが、振り返りたいと思ったのは以下のこと。

  • KPTその日にアクション
  • 1on1 でAction Itemの確認、ちゃんとやる
  • 文化として「技術力で殴る」
  • リーダーをボトルネックにしない

実践Observability

https://www.slideshare.net/toshihumianan/observability-224174523

本当に実践した内容を話してくれて、とても参考になる。 Release後もTestは続くという考え方とても良いと思う。 Istio入れて、どこでBlue/Greenするかとか、クラスター外もトレースできているの良いなと思う。

Webサービスを1日10回デプロイするための取り組み

https://speakerdeck.com/fujiwara3/sre-next-2020

だれでも安全に、即座にデプロイできる仕組みは開発体験に重要

これの実践するために何をしていったかというお話。