結城浩の「コミュニケーションの心がけ」2017年6月13日 Vol.272
はじめに
おはようございます。結城浩です。
いつも結城メルマガをご愛読ありがとうございます。
* * *
まずはご連絡から。
『数学ガールの秘密ノート/積分を見つめて』 《サイン本無料プレゼント》実施中です!
◆『数学ガールの秘密ノート/積分を見つめて』《サイン本無料プレゼント》
https://snap.textfile.org/20170612150529/
* * *
新刊の話。
2017年6月末に刊行される予定の新刊 『数学ガールの秘密ノート/積分を見つめて』の、 再校読み合わせが終わりました。
編集長との読み合わせのとき、 結城は出版社まで出向くのが普通です。 でも今回は直前に体調を崩してしまい、 近所のカフェまで編集長の方に出向いてもらいました。 何とか読み合わせをこなすことができましたけれど、 体調管理の点で猛省が必要ですね。
ともあれ、再校読み合わせが終わりました。 この本の内容に関して結城ができることは、 ほぼすべて終わったことになります。 あとは印刷して本ができるのを待つばかりという状態。
今回の本の執筆は、個人的にたいへんな時期と重なり、 難産だったイメージがあります。しかしながら、 長い時間が掛かった分、多様な視点での読み返しができたため、 いつもより品質が上がった可能性もありますね。 感謝なことです。
微分に関してはすでに、 『数学ガールの秘密ノート/微分を追いかけて』 という本が出ていますので、今回の積分と合わせて
《微分積分セット》
ができたことになりますね。
今回の新刊も、 この本を必要としている読者さんに無事届きますように!
◆『数学ガールの秘密ノート/微分を追いかけて』
https://note5.hyuki.net/
◆『数学ガールの秘密ノート/積分を見つめて』
https://bit.ly/girlnote09
後ほどQ&Aのコーナーでは、 本を書いているというメルマガ購読者さんからの、 「販促活動」に関する質問にお答えします。
* * *
執筆のようすをアニメーションGIFにして公開する話。
結城はMacBookを使っています。 Macでは、QuickTime Playerを使うと、 コンピュータ上での操作のようすを動画として記録できます。 いわば「録画」ですね。QuickTime Playerのメニュー項目名は、 「新規画面収録」です。
保存した結果はmovファイルになりますので、 それをYouTubeにアップロードすれば公開できます。 でも、ffmpegというツールでmovファイルをアニメーションGIFに変換すれば、 もっと手軽に公開することができます。
しかし、結城はffmpegというツールのオプションが複雑で覚えられません。 変換するたびに使い方を検索することになります(悲しい)。 そこで、mov-to-gifというスクリプトを作りました。 一度学んだ結果をスクリプトに覚えさせておけばいいのです! スクリプトは以下で公開しています。
◆mov-to-gif
https://gist.github.com/hyuki0000/66990a8152e78eb48c38d31991383114
たとえば、結城が作ったWebサイトDraftで数式入力しているようすを、 QuickTime Playerで「録画」して、mov-to-gifでアニメーションGIFに変換してみました。 タイプしているようすをリアルタイムで見るのはたいくつなので、 タイプしたときの三倍速で再生するようにしています。
◆Draft
https://draft.hyuki.net/
なお「動画をアニメGIFにしては?」という示唆は、 以下のツイートで @nnabeyang さんからいただきました。
https://twitter.com/nnabeyang/status/868800719062614016
結城が以下の動画をYouTubeにアップロードしたときに、 リプライで教えてもらったものです。
◆Draft - Distraction Free Editor with Math
https://youtu.be/ADZj4pAD52c
ちょっとした動画なら、 YouTubeにアップロードするよりも、 アニメーションGIFにしてツイートする方が確かに手軽ですね。
* * *
スタティック・テトリスの話。
スタティック・テトリス(static tetris)というゲームの原案を思いつきました。
普通のテトリスはリアルタイムゲームですよね。 プレイヤーがじっとしていても、ピースはどんどん降ってきます。
でも、テトリスのおもしろさの一つは、 やってくるピースをどのような向きで、 どのように積むかというところにあります。
そこで、テトリスからリアルタイム性を除いたパズルゲームにするのです。 プレイヤーはじっくり考えて一手を進める。 一手というのは、左右に動かしたり、回転したりというアクションです。 プレイヤーが一手を進めたら、ピースが少し下に落ちる。
リアルタイム性がない分だけやさしくなっちゃいますから、 普通のテトリスよりも難しくしたほうがいいですね。 たとえば、同時に複数個のピースが落ちてくるとか。
結城はリアルタイムなゲームがあまり好きじゃないけど、 パズルゲームは好きなので、 どなたかおもしろいゲームとして実現してくれないでしょうかね。 名前に「テトリス」は使えないかもしれませんけれど。
* * *
比喩と説明の話。
プログラミング言語で「変数」のことを説明するときに、 「変数は箱のようなものです」ということがあります。 「変数に値を代入することは箱にものを入れるのに似ている」 のように使うことになります。
これは「変数」という抽象的なものを相手に教えるために、 「箱」という具体的なものの性質を借りていることになりますね。 つまり《比喩を使った説明》ともいえるでしょう。
比喩を使った説明は、うまくいけばとても強力です。 抽象的な概念はなかなか相手に伝えることが難しいものです。 具体的な事物を使って「完全にこれと同じというわけではないけれど、 これと似た性質を持っているんだよ」と説明すれば、 まずは理解のとっかかりとして有効です。
ただし、比喩を使った説明を行うときには、 教える側にも学ぶ側にも注意が必要です。 比喩はあくまで比喩であって、 概念すべてを説明するわけではありません。 つまり、比喩には自ずから適用できる限界があるのです。
たとえば「変数は箱のようなものである」といった場合、 「変数に値を代入すること」を「箱にものを入れること」 にたとえるのは、まあいいでしょう。 でも「変数の値を他の変数に代入すること」を、 「箱からものを取り出して他の箱に入れること」 と見なすのは正しくありません。 つまり「変数は箱」の比喩は、 その適用限界にすぐ至ってしまいます。
教える側も学ぶ側も、 比喩を使った説明でさっとイメージをつかんだ後は、 いさぎよくそれを捨てて、もっと正確な説明 (あるいはより正確な比喩)へと移るのがいいでしょう。
結局捨てることになるなら、 最初から「変数は箱」などといわない方がいいのでしょうか。 それは説明する内容と読者によります。
比喩を捨てるときも、相手に概念を伝えるいいチャンスになります。 つまり、こうです。
「変数は箱のようなものだから○○できるといったよね。
でも、変数は箱とは違って△△はできないんだ。
そこは箱とは違う点だから注意して」
このような説明を行えば、 「変数」という未知で抽象的なものが持つ性質を、 「箱」という既知で具体的なものが持つ性質を使って 理解を深めることができるのです。
・変数は○○できる。その点は箱に似ている
・変数は△△できない。その点は箱に似ていない
このように「できる」「できない」を知ることで、 学ぶ側は概念の姿をくっきりと理解できるようになるでしょう。
概念を的確に表す比喩を求めるのはいいことですが、 最適な比喩を求めすぎるのはよくありません。 概念との一致を求めすぎると、 わかりにくくてアクロバティックな比喩が生まれがちだからです。 大きな特徴がさっとわかるシンプルな比喩がいいですね。
比喩は道具の一つに過ぎません。 使いどころを間違えなければ、強力な道具となるでしょう。
* * *
gitとグラフ表示の話。
バージョン管理システムgitをコマンドラインで使っていると、
これからマージするんだけど、
コマンドラインだと不安なので、
ブランチの様子やリモートリポジトリの様子を
グラフィカルに見ておきたい
という場面がよくあります。そんなときには、
open -a SourceTree .
を実行すると、カレントディレクトリで SourceTree(GUIアプリ)が開かれるので便利です。
◆SourceTreeでcommit historyを見ている様子
Macのopenコマンドはとても便利で、-a オプションで、 アプリを指定して起動することができるのです。
さて、こんな話をツイートしながら、 (ふふん、私ってgitやMacを使いこなしてるなあ) と心ひそかに思っていました。でもあるとき、 gitにはそもそもグラフ表示機能が付いていることを知り、 ショックを受けました。具体的には、
git log --oneline --graph
を実行するだけで、以下のような表示になるのです。 左側にテキストを使ってグラフっぽい形が描かれていますね。
結城は、結城メルマガVol.270でこんなことを書きました。
ある技術を使って活動をしているとき、
「こういうことをしたいな」
と思ったらまずは公式ドキュメントを読むべき。
自分が考える「改良」や「応用」というのは、
すでに誰かが考えていて、
適切な対応方法が確立されていることが多い、
ということ。
今回の--graphオプションは、 まさにこれにぴったりあてはまる事例ですね。
* * *
それではそろそろ、 今回の結城メルマガを始めましょう。
どうぞ、ごゆっくりお読みください!
目次
- はじめに
- 再発見の発想法 - DRY
- 還元論と全体論 - 教えるときの心がけ
- 著者と出版社の販促活動について - Q&A
- おわりに