Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
小さな疑問を大事にすると成長に繋がる
Search
Satoru Takeuchi
PRO
June 09, 2024
Technology
3
190
小さな疑問を大事にすると成長に繋がる
以下動画のテキストです
https://youtu.be/g0OOIDM23oI
Satoru Takeuchi
PRO
June 09, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
eBPF
sat
PRO
1
91
waruiBPF
sat
PRO
0
84
eBPFとwaruiBPF
sat
PRO
4
2.6k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
87
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
170
様々なファイルシステム
sat
PRO
0
310
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
410
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
160
Other Decks in Technology
See All in Technology
.NET 10の概要
tomokusaba
0
110
生成AI時代におけるグローバル戦略思考
taka_aki
0
190
MapKitとオープンデータで実現する地図情報の拡張と可視化
zozotech
PRO
1
140
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
200
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
510
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
120
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
120
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
1.5k
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
390
Power of Kiro : あなたの㌔はパワステ搭載ですか?
r3_yamauchi
PRO
0
150
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
370
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
550
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.7k
How GitHub (no longer) Works
holman
316
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
A better future with KSS
kneath
240
18k
Building Adaptive Systems
keathley
44
2.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Making Projects Easy
brettharned
120
6.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating Team Friction
lara
191
16k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Embracing the Ebb and Flow
colly
88
4.9k
Transcript
小さな疑問を大事にすると 成長に繋がる Jun. 9th, 2024 Satoru Takeuchi X: satoru_takeuchi 1
はじめに • はなすこと ◦ ソフトウェア技術者として成長する考え方の一つを紹介 ◦ 参考書をじっくり見る、大きなソフトウェアを作るといった大がかりなことではない ◦ 日々のちょっとしたことが後で役立つことを過去の経験をもとに紹介 •
主なターゲット ◦ 技術者として成長したいが、うまくいかないと思っている人 ◦ それでいて、なんとなく日々を過ごしてしまっている人 2
基本的な考え方 • やること ◦ 日々の小さな疑問が生まれたときに、そのままにせず調べる • 効果 ◦ 調べたこと自体で知識が増える ◦
達成感が得られる ◦ その後思わぬところで役立つこともある 3
概念図 もとの状態 4 既存知識
概念図 もとの状態 好奇心が湧く 5 既存知識 ここがわからん… 既存知識
概念図 もとの状態 調べて理解 好奇心が湧く 6 既存知識 新たな 知識 ここがわからん… 既存知識
既存知識 完全理解!
概念図 もとの状態 調べて理解 好奇心が湧く 別の時に… 7 既存知識 新たな 知識 ここがわからん…
既存知識 既存知識 完全理解! 新たな 知識 既存知識 ここがわからん… 別の機会に 得た知識
概念図 もとの状態 調べて理解 好奇心が湧く 別の時に… 8 役立った! 既存知識 新たな 知識
ここがわからん… 既存知識 既存知識 完全理解! 新たな 知識 既存知識 ここがわからん… 新たな 知識 既存知識 新たな知識 別の機会に 得た知識 完全理解!
実例 • 疑問 ◦ lsblkというブロックデバイスをリストするコマンドの仕組みが気になった • 調査結果 ◦ lsblkの仕組みが明らかになった •
数か月後 ◦ lsblkの実行結果を利用する別コマンドの挙動で困ることがあった ◦ 過去の知見を生かして対処できた 9
疑問に至るまでの流れ • 背景 ◦ 自分は業務でRookというCeph(分散ストレージ)を管理するツールのメンテナをしている ▪ https://github.com/rook/rook ◦ RookはCephが使うOSDというデータ構造をブロックデバイス上に作る ▪
1. lsblkコマンドを実行してデバイスのタイプ (e.g. disk、part)を調べる ▪ 2. Cephがサポートしているタイプであれば、 OSDを作る • 疑問 ◦ lsblkコマンドはTYPEフィールドの値をどこから持ってきているのか ? 10
調査した 1. 気になるから調べてみよう(ここ重要) 2. ソース見ればわかるやろ a. 見るべきところは数十行なので 30分くらいで読み終えられた 3. 完全理解してスッキリ
• 📝 lsblkの挙動を詳しく説明している過去動画 ◦ lsblkのtypeフィールドのしくみ ◦ https://youtu.be/x_QSV1tM3qY 11
それから数か月後… • ブロックデバイスのI/O障害をエミュレーションするという発表をした ◦ これは仕事じゃなくて趣味 ◦ blkidのソースを見たことは忘れていた ◦ 📝 発表資料
▪ device mapperによるディスクI/O障害のエミュレーション ▪ https://speakerdeck.com/sat/ozhang-hai-noemiyuresiyon • 発表後にLTをしたくなった ◦ I/O障害のエミューレーションが実際に役に立つことを紹介したい ! ▪ 発表は機能紹介だけに留まっていて、実例が無かった ◦ イベント中にライブで LT資料を作ることにした ▪ Cephのデータの一部を壊しても、元の状態に復旧できることを示そうとした 12
問題発生 • おさらい: RookはCephが使うOSDというデータ構造をブロックデバイス上に作る 1. lsblkコマンドを実行してデバイスのタイプ(e.g. ディスク、パーティション)を得る 2. Cephがサポートしているタイプであれば、OSDを作る •
I/O障害エミュレーション機能を使うと、ブロックデバイスのタイプが、Cephによって サポートされないものになってしまう 13
解決策 • デバイスマッパー設定時にパラメタをうまく設定すると、I/O障害を発生させる対象 のブロックデバイスのタイプを任意のものにできる ◦ lsblkのソースを読んでなければわからない実装依存のハック ◦ 実運用ならやらないが、今回はサンプルのデモなので OKと判断 •
パラメタを設定してブロックデバイスのタイプをCephがサポートするものに見せか けたところ、うまく動いた ◦ スカッとした&「あのときのことがこんな形で役に立つとは」と感動 • 📝 技術的な話 ◦ 分散ストレージはすごいぞ ◦ https://speakerdeck.com/sat/fen-san-sutorezihasugoizo-4af53638-99ea-416b-9841-66ccbc7e4 5cd 14
まとめ • 日々生まれる小さな疑問を放置せずに調べてみることで新しいことがわかる ◦ 疑問は小さければ小さいほど楽 ◦ やってるうちに一筋縄ではいかないとわかったら中断するのも手 • これを繰り返せば技術者としての引き出しの数はどんどん増えていく ◦
調べた当時は小さなことがわかるだけでも、将来につながる • 書籍などで体系的に学ぶのが苦手な人にはとくにお勧め • 注意 ◦ 常に成長し続けなくてはならないわけではない ◦ ずっと成長成長言ってると疲弊してしまうのでほどほどに 15