Vol.272 結城浩/再発見の発想法/教えるときの心がけ/著者と出版社の販促活動/

結城浩の「コミュニケーションの心がけ」2017年6月13日 Vol.272

はじめに

おはようございます。結城浩です。

いつも結城メルマガをご愛読ありがとうございます。

 * * *

まずはご連絡から。

『数学ガールの秘密ノート/積分を見つめて』 《サイン本無料プレゼント》実施中です!

 ◆『数学ガールの秘密ノート/積分を見つめて』《サイン本無料プレゼント》
 https://snap.textfile.org/20170612150529/

 ◆『数学ガールの秘密ノート/積分を見つめて』カバーイラスト

2017-06-12_note9.png

 * * *

新刊の話。

2017年6月末に刊行される予定の新刊 『数学ガールの秘密ノート/積分を見つめて』の、 再校読み合わせが終わりました。

編集長との読み合わせのとき、 結城は出版社まで出向くのが普通です。 でも今回は直前に体調を崩してしまい、 近所のカフェまで編集長の方に出向いてもらいました。 何とか読み合わせをこなすことができましたけれど、 体調管理の点で猛省が必要ですね。

ともあれ、再校読み合わせが終わりました。 この本の内容に関して結城ができることは、 ほぼすべて終わったことになります。 あとは印刷して本ができるのを待つばかりという状態。

今回の本の執筆は、個人的にたいへんな時期と重なり、 難産だったイメージがあります。しかしながら、 長い時間が掛かった分、多様な視点での読み返しができたため、 いつもより品質が上がった可能性もありますね。 感謝なことです。

微分に関してはすでに、 『数学ガールの秘密ノート/微分を追いかけて』 という本が出ていますので、今回の積分と合わせて

 《微分積分セット》

ができたことになりますね。

今回の新刊も、 この本を必要としている読者さんに無事届きますように!

 ◆『数学ガールの秘密ノート/微分を追いかけて』
 https://note5.hyuki.net/

 ◆『数学ガールの秘密ノート/積分を見つめて』
 https://bit.ly/girlnote09

後ほどQ&Aのコーナーでは、 本を書いているというメルマガ購読者さんからの、 「販促活動」に関する質問にお答えします。

 * * *

執筆のようすをアニメーションGIFにして公開する話。

結城はMacBookを使っています。 Macでは、QuickTime Playerを使うと、 コンピュータ上での操作のようすを動画として記録できます。 いわば「録画」ですね。QuickTime Playerのメニュー項目名は、 「新規画面収録」です。

 ◆QuickTime Playerで「新規画面収録」

2017-06-12_qtime.png

保存した結果は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へのリンク)

2017-06-17_draft.gif

なお「動画をアニメ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を見ている様子

2017-06-12_gitgui.png

Macのopenコマンドはとても便利で、-a オプションで、 アプリを指定して起動することができるのです。

さて、こんな話をツイートしながら、 (ふふん、私ってgitやMacを使いこなしてるなあ) と心ひそかに思っていました。でもあるとき、 gitにはそもそもグラフ表示機能が付いていることを知り、 ショックを受けました。具体的には、

 git log --oneline --graph

を実行するだけで、以下のような表示になるのです。 左側にテキストを使ってグラフっぽい形が描かれていますね。

 ◆gitでcommit historyを見ている様子

2017-06-12_gittext.png

結城は、結城メルマガVol.270でこんなことを書きました。

 ある技術を使って活動をしているとき、
 「こういうことをしたいな」
 と思ったらまずは公式ドキュメントを読むべき。
 自分が考える「改良」や「応用」というのは、
 すでに誰かが考えていて、
 適切な対応方法が確立されていることが多い、
 ということ。

今回の--graphオプションは、 まさにこれにぴったりあてはまる事例ですね。

 * * *

それではそろそろ、 今回の結城メルマガを始めましょう。

どうぞ、ごゆっくりお読みください!

目次

  • はじめに
  • 再発見の発想法 - DRY
  • 還元論と全体論 - 教えるときの心がけ
  • 著者と出版社の販促活動について - Q&A
  • おわりに