Rabbit Slide Show

Linuxコマンド解説まんがのつくりかた

2017-05-31

Description

[PHP勉強会@東京](https://phpstudy.doorkeeper.jp/events/60540)用発表資料です。 * [View on Speaker Deck](https://speakerdeck.com/piroor/linuxkomandojie-shuo-mangafalsetukurikata) See also: [Rabbit](http://rabbit-shocker.org/ja/install/)

Text

Page: 1


        

Page: 2

2011年6月6日
一通のメール
漫画でLinux(あるいは
Linuxに関連する技術)を
紹介する連載を執筆して
いただけないでしょうか?
1/71

Page: 3

 
まじか……
2/71

Page: 4

こうなった
月刊日経Linux誌にて連載中(6年目)
3/71

Page: 5

あえてのLinuxコマンド解説
デプロイとか構成管理とか
ツールで自動化が
当たり前じゃあ……
自分でコマンド打つのが
許されるのは小学生まで……
そんな時代に抗う!
4/71

Page: 6

Linuxコマンド&シェルスクリプ
ト解説漫画
「SSHでのリモート
操作」を想定
毎回1つか2つの
コマンドを紹介
シェルスクリプトも
取り扱う
5/71

Page: 7

想定する対象読者
企業の情シス担当者
(本誌読者層)
Webサービスのデプロイや運用で
サーバーを操作することがある
開発者の人
コマンド操作に苦手意識がある人
6/71

Page: 8

重要と思っているポイント3つ
ケーススタディ形式
キャラを立てる
絵で解説する
7/71

Page: 9

漫画制作の流れ
8/71

Page: 10

漫画制作の流れ
9/71

Page: 11

1. プロット/シナリオ
第4話 ファイルそのものを比較せずに、同じ内容かどうかを確かめたい
砂漠の営業所で、ラベルの書かれていないディスクが
ごちゃごちゃになってどれがどれか分からなくなった
みんとが電話を受けて困っていると大野先輩が
ハッシュ値を使ったファイルの判別方法を教えてくれる
ハッシュ値とは
ハッシュ値を比較
md5sum, sha1sum, sha256sum, sha512sum
ディスクの入れ換え、eject
探していたディスクが見つかる
オチ
10/71

Page: 12

1. プロット/シナリオ
第4話 ファイルそのものを比較せずに、同じ内容かどうかを確かめたい
電話を受けているみんと
みんと「えええ〜っ!? ディスクが混ざっちゃったぁあ〜っ!?」焦
みんと「そんなこと言われても〜〜……」
大野、みんとの様子に気づく
大野「今の電話、例の営業所(砂漠の営業所)からよね。何かトラブル?」
みんと「そ、それがですね……」
みんと「製品用のイメージファイル入りディスクが何枚かあったそうなん
ですけど、ケースの方にしか説明が書かれてなかったらしくて」
みんと「ケースと中身がごちゃごちゃになって、お客さんに渡すファイル
がどれか分からなくなっちゃったみたいなんです」
イメージはすべて「system.img」で同じファイル名
ファイルサイズも同じ、数ギガバイト
...
11/71

Page: 13

プロット=話を考える工程
何をどう解説するか
どんな導入で始めて、
どうオチを付けるか
技術的な検証は
この段階で済ませる
12/71

Page: 14

Linuxコマンドの世界は底無し!
コマンドは数え切れないほどある
網羅的に解説してたらキリが無い
どこから解説すればいいの……
13/71

Page: 15

ポイント1
ケーススタディ形式
14/71

Page: 16

ケーススタディ形式とは
×「今回紹介するのはこのコマンド!
  使い方は〜……」
◯「トラブル発生! 困った!」
 「その悩み、このコマンドで
  解決できるよ」
15/71

Page: 17

文脈が大事
人の記憶は連想型
きっかけから
イモヅル式に思い出す
シチュエーションとセットで
覚えてもらうことによる
「あっ、これゼミで習った奴だ!」感
16/71

Page: 18

印象に残すためのフック
△「これを使うとこうできるでしょ、
でもってこうしてこうして
こうすれば……ほらできた!」
◯「ってことは、これをこうして……
  あ、あれっ!? うまくいかない!」
 「ほら、ここを見落としてるよ?」
あえて失敗することで記憶に残る
17/71

Page: 19

ケーススタディ形式のメリット
「この問題を解決する方法」
という主軸から外れるような
関係無い話を容赦なく削れる
「ちなみに」は禁句!
18/71

Page: 20

2017年7月号の話の場合
セキュリティ関係の話題
SHAttered関連ということで
「ハッシュ値」を解説したい
md5sum, sha1sum,
sha256sum, sha512sum, …
19/71

Page: 21

シチュエーション案1
「改竄の検出」にフォーカスしてみる
出自の分からない怪しい
インストールイメージが
すでに手元にある
公式サイトで公開されてる
ハッシュ値と比較すれば安心!
→そんな場面なさそう
20/71

Page: 22

シチュエーション案2
受領したでかいファイルが
本物かどうか確かめたい
ハッシュ値で検証できる!
→そもそも電子署名か暗号化が
 適切では?
21/71

Page: 23

シチュエーション案3
単純な「ファイルの比較」
どれが目的のファイルか
分からなくなった!
送り直す代わりに
ハッシュ値で比較すれば
いいのでは?
→もはやセキュリティ関係なし
22/71

Page: 24

ドロップした話題
* コマンド名の「sum」の由来
* チェックサムって何?
* sumはsummaryではなくsummation(合計)
* ダイジェストって何?
* 電子署名の仕組み
* フィンガープリントって何?
* 強衝突耐性と弱衝突耐性の違い
* 改竄の検出という使い方
* 信頼できるデータ・信頼できないデータって何?
23/71

Page: 25

ポイント2
キャラを立てる
24/71

Page: 26

複数の選択肢からどれを選ぶ
のか
nano? Vim? Emacs?
while? find? xargs? 配列?
25/71

Page: 27

「みんとちゃん」というペルソナ
難しい話は嫌い
元々ITへの
関心は薄い
短絡的、早とちり
めんどくさがり
飽きっぽい
26/71

Page: 28

nano? Vim? Emacs?
less、topなどと操作が似ている
(「Q」で終了、など)
検索や置換で覚えた知識
→sedやgrepなどで使える
→Vimが一番
覚えることが少なく済みそう
27/71

Page: 29

while? find? xargs? 配列?
findの-execオプションやxargs
→エッジケースで例外的な
ルールが後からどんどん出てくる
→whileとreadの組み合わせなら
とりあえず安心して使えそう
28/71

Page: 30

解説の指針を定めるために
話題の選定
→ケーススタディ
選択肢の絞り込み
→「どうだったら
  みんとちゃんにとって
  一番うれしいか?」
29/71

Page: 31

基本の心構え
「何を教えるか」より
「何を教えないか」を意識しよう
語り過ぎは百害あって一利なし!
30/71

Page: 32

 
31/71

Page: 33

制作の流れ
32/71

Page: 34

2. ネーム
プロット/シナリオを「漫画」にする
コマ割り・台詞割り
キャラの配置・演技付け
解説の「絵解き」を考える
33/71

Page: 35

2. ネーム
34/71

Page: 36

2. ネーム
35/71

Page: 37

一般的な漫画のセオリー
早い段階で全身や背景を出す
絵面にメリハリを付ける
セリフよりも絵で語る
参考図書:快描教室プラス
     漫々快々プラス
36/71

Page: 38

ポイント3
絵で解説する
37/71

Page: 39

コマンドを擬人化
38/71

Page: 40

コマンドを擬人化
39/71

Page: 41

でも実際に絵にしようとすると
テキストどおりに絵を描いてみても
違和感を覚える時がある
例え話の絵と実際の解説とが
自然に繋がらない、しっくりこない
メタファを絵にしたいのに、できない
40/71

Page: 42

例:「ハッシュ値」の説明
プロット段階
大野「2つの話の内容をざっくりと比較するのに、
   長い文章全体を読み比べなくても、要点を
   読み比べれば充分でしょ?
   それと同じように、ファイル同士をざっくり
   比較するための必要十分な要約を、
   ハッシュ値と言うの」
ちょっと長めのセリフだけ
41/71

Page: 43

絵にしてみた1
没
42/71

Page: 44

絵にしてみた2
没
43/71

Page: 45

違和感の元
言葉で十分なつもりだった
「ハッシュ値」という「物」
が絵になっていない!
ていうか1枚の絵にできない!
(現実に対応する物が無い)
44/71

Page: 46

見直しの糸口
でも、「どういう性質があるか」
「どうやって作られるか」は
分かっている気がする
→それこそが伝えるべき知見、
 自分の中にあるメンタルモデル
45/71

Page: 47

ポイント3(再掲)
絵で解説する
「絵にしようとしてしにくい」
→面倒がらずに絵にしよう!
46/71

Page: 48

絵にできるところから絵にする
「ハッシュ値」
そのものではなく
まず「ハッシュ値の
求め方」を絵に
これに続けて……
47/71

Page: 49

擬人化されたコマンド+実例
実際のハッシュ値を求める工程は
もっと後にする予定だったが、
順番を入れ替えて手前へ持ってきた
48/71

Page: 50

こんな感じでネームが難航
プロット/シナリオの見直し
話の流れの前後の入れ換え
真っ白なコマを残して後工程に進むと
大幅な手戻りが発生する!
49/71

Page: 51

別の例:「トンネリング」の説明
SSHポートフォワード
あるコンピュータの
指定ポートで待ち受けて、
そこで受け付けた通信を
別のコンピュータの
指定ポートに転送する
50/71

Page: 52

ポイント3(再々掲)
絵で解説する
51/71

Page: 53

指定ポートで通信を待ち受ける
絵の中のみんとちゃんの立ち位置
    =読者の視点
52/71

Page: 54

トンネルの出口から転送先へ
向かう
複雑なものは1ステップずつ絵にする
53/71

Page: 55

トンネルの全体像
全体を見せるのは「おさらい」の時
54/71

Page: 56

漫画は「時間の経過」を表現で
きる
複雑なことも、時系列で順に
少しずつ見ていけば理解しやすい
「情報密度の高い1枚絵」は
すでに知識がある人向けの
チートシート
55/71

Page: 57

 
56/71

Page: 58

制作の流れ
57/71

Page: 59

あとは絵を完成させるだけ
下描き(衣装の決定)
ペン入れ
仕上げ(塗り)
58/71

Page: 60

ポイント2(再掲)
キャラを立てる
59/71

Page: 61

みんとちゃんの衣装
毎日鏡の前で
嬉々として
ファッションショー
してそうな
イメージ
60/71

Page: 62

大野先輩の衣装
無難な感じで……
◯ggi参考
61/71

Page: 63

扉絵(?)
季節感って大事じゃないですか?
62/71

Page: 64

後は編集部に託す
納品
校正
63/71

Page: 65

 
64/71

Page: 66

まとめ:解説として
解説漫画でも普通の記事でも
プロット/シナリオまでの工程は
あまり変わらない
漫然と解説するのではなく、
誰に向けて何のために
解説するかを意識しよう
65/71

Page: 67

まとめ:解説漫画として
「漫画」のセオリーは
ちゃんと押さえておこう
漫画という表現形式ならではの
強みを活かそう
×台詞ばっかり/顔のアップばっかり
◯絵で説明
66/71

Page: 68

ここから分かること
「解説漫画」はネームが重要
専門知識がないと
解説漫画のネームは作れない!
67/71

Page: 69

分業するなら
×「専門家がテキストで原作」+
 「ネーム以降を漫画家が担当」
◯「専門家がテキストで原作」+
 「ネーム以降を
専門知識のある漫画家が担当」
◯「専門家がネームまで原作」+
 「下描き以降を漫画家が担当」
68/71

Page: 70

「シス管系女子」で検索!
system-admin-girl.com で
サンプル代わりの特別編を公開中!
69/71

Page: 71

Kindle版は時々セールに
「コンピュータ・IT」
カテゴリで一瞬だけ
ランクインしてたり
70/71

Page: 72

Twitterアカウント運用中
@sysadgirl_mint
71/71

Other slides