エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

エムスリーが技術書典15で新刊を出します!

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。

技術書典15が2023/11/12に開催されます。(オンライン開催は11/11〜11/26)

今回エムスリーでは有志で新刊を携えて参戦します。今回も多様な分野・技術について弊社スタッフが執筆いたしました。エムスリーのギークな面がふんだんに詰まった一冊となります。

お品書き

オンラインでの購入は11/11以降、こちらからも可能です!

techbookfest.org

この記事では皆さんに新刊を手に取ってもらえるように、各章がどんな内容になっているのかを紹介します。

エムスリーテックブックについて

技術書典は技術書オンリーの同人誌イベントで、今回が15回目の開催になります。 今回は有志で「エムスリーエンジニアリンググループ執筆部」というサークル名で参戦します。

今回は内容も幅広く、自然言語処理からdotfiles 盆栽、Cloud Logging入門まで、全ての開発者が楽しめる内容になっております。 物理本+電子版は1000円で手に入れることが出来ます。電子版も800円とお得になっています。

techbookfest.org

以下が今回作成した技術書の目次になります!

目次1

目次2

第1章 「社内コードレポジトリを自然言語処理して自分らしさを知る」

AI・機械学習チームの大垣です。 普段チームの中で開発をしていて、「あ、この台詞ってあの人が言いそう」って思うことはないでしょうか。特にコードレビューをするとき、あるいは自分でコード書いているとき、「あの人ならレビューでこう言いそう」って思うことはありませんか。 本稿では、エムスリーの社内レポジトリをクローリングしてレビューのデータを集め、 レビューには私なりの癖があるのか、それは自然言語処理でわかるのか、を探ります。

キーワード: 機械学習, 自然言語処理

ターゲット:
• 自然言語処理に興味がある人
• 自組織のコードレポジトリを解析してみたい人

第2章 「Cloud Logging 超入門」

北川(@kitagry)が担当する章です。 2023年10月にOpenTelemetry Protocolの1.0.0がリリースされるなど、近頃トレースやメトリクス、ログなどの計測が盛り上がっているように感じます。本章はGoogle Cloudが提供するログ管理システムであるCloud Loggingの機能について紹介します。Cloud TraceやCloud MonitoringなどGoogle Cloud内のシステムとの連携やGoやPythonでCloud Logging向けのログを出すための方法について紹介しています。

キーワード: Cloud Logging, GCP, Python, Go

ターゲット:
• GCPを使っている
• Cloud Loggingはログを見るくらいしか使っていない

第3章 「dotfiles 盆栽 脱 Zinit 編。頑張れDeno、こんにちは sheldon」

永山が担当する章です。

以前に書いた記事内でZshプラグインマネージャである Zinit を紹介しました。

www.m3tech.blog

しかしそれから1年半の間にZinitの情勢にはいくらかの変化があり、Rust製のシェルプラグインマネージャである sheldon へと宗旨変えをするに至りました。

しかし、sheldon はシンプルな仕組みであるがために残念ながら Zinit のすべての機能を代替はできません。例えば以下に示すような機能は sheldon には備わっていません。

  • プラグインスクリプトの自動コンパイル
  • GitHub Releases からのプリビルトバイナリのインストール
  • プラグインをインストールした際に実行される処理の記述 (atclone, atpull)

この章ではZinitの歴史から現在の状況までをざっと概説し、上記の難点を部分的に解決するため Deno を用いて開発した CLI ツールについて紹介します。

また、sheldon の高速化手法について一般的なものから、profile の分割といったネット上では未だ紹介されていない方法まで詳細に解説します。

キーワード: Zsh, Zinit, sheldon, Deno

ターゲット:
• ZshでZinitやsheldonを使用しているユーザ
• CLIツールの管理方法に悩んでいる人
• Denoに興味がある人

第4章 「検索エンジンにおける Reindex 完了後の差分反映問題への挑戦」

検索エンジニアの中村(@po3rin) が担当する章です。

検索エンジンであるElasticsearchを運用していると、Reindexを行うことがあります。しかし、Reindexを単に行うだけでは、Reindex中に発生したドキュメントの更新がReindex先のインデックスに反映されないという問題があります。今回はReindexからこの差分を自動で反映する仕組みを作るのに挑戦したので、実装と共に紹介します。

Reindex完了後の差分反映問題の概要図

キーワード: 検索エンジン, Elasticsearch, Reindex, 運用自動化

ターゲット:
• Elasticsearchを運用している方
• 手動作業の自動化に興味がある方

第5章 「いろんな言語のパッケージマネージャ比べてみた」

AI・機械学習チームの横本です。 きっとみなさん日常的に使っているパッケージマネージャですが、その挙動は言語やパッケージマネージャによって異なっています。「Poetry だと競合によく出くわすけど、npm や go get では見たことないな」と感じたことはないでしょうか。(私のことです) 本稿では、そのような違いがどこから来るのかを知るため、様々な言語を横断してパッケージマネージャを比べ、まとめてみようと思います。

キーワード: Poetry, pip, npm, yarn, pnpm, Go Modules, Cargo

ターゲット:
• なにかしらの言語でパッケージマネージャーを使っている人
• ぼんやり、どのパッケージマネージャーもだいたい似たようなものでしょと思っている人
• ぼんやり、でもそんなこと無い気もしている人

第6章 「ゼロから作る自作 Python Package Manager 入門」

最近BLUE GIANTの映画版を見て漫画とアニメーションの素晴らしさを再確認したVPoEの河合@vaaaaanquishです。

近年、PythonのPackage Managerは、 多くの議論を呼ぶ 1 つのコンテンツとなっています。Python内においても新しいPackaging関連の議論が進んでいる他、ライブラリとしてPoetryやryeなど3rd partyのツールが群雄割拠しています。昨今のPythonのPackage Manager 事情は、他の言語と比較しても、良い状況とは言えないと私は感じており、広く開発者コミュニティを見てもそういった見解は多くあります。この課題がどこから来ているのか、どのように解消されようとしているのか、そして開発者としてどのように貢献していけるのかを、実際にPackage Managerのlock、install、run、build、uploadのようなサブコマンドを実装して行くことで知っていく章になります。

キーワード: Python, Package Manager, pipenv, poetry, PyPI

ターゲット:
• Python開発経験が2年ほどある
• Python Package Managerに課題感を感じているが何をやっているのかわからない
• PythonのOSS開発に貢献したい

まとめ

新刊も含め、今回はオンラインで既刊4冊も販売しております。費用を除いて利益が出た分は打ち上げ、次回作作成費用、寄付などに使っております。

techbookfest.org

We're hiring !!!

エムスリーでは今回紹介したようなギークな内容について日々語りながら、医療をよくするためのサービスを開発しています。 「ちょっと話を聞いてみたいかも」という人はこちらから!

jobs.m3.com