[本] 「最適化」をあらゆる場面で取り入れる

最速の仕事術は人工知能が知っている (WirelessWire News)」で『最速の仕事術はプログラマーが知っている』という本の紹介があり、まさにその日 (9月22日) に Amazon で購入。

1章から2章くらいまでは「やり方」レベルの具体的な効率化の言及が多く、すぐにでも取り入れられるやり方がいくつも見つかった。よく考えずに慣例に従ってしまっていることが身近にあることを改めて思い知らされる...3章からは、もう少し抽象的なレベルでのお話。プレーヤーだったり、マネージャーだったり、経営者だったり、という視点での仕事の進め方について。例えば、「例外処理」を仕事を進めていく上でも作っておく、というのは、なんとなくやっていたことだけれども、名前をつけて指摘してもらえたので、明確に意識できるようになった。

プログラマーは徹底的に無駄を省く「最適化」を常に行っており、その最適化はプログラム内だけではなくて、作業・道具の使い方、プレーヤーとしての働き方、リーダーとしての働き方、経営者としての働き方、、、どのレベルにおいても適応可能である、それゆえに『最速の仕事術はプログラマーが知っている』ということなのだ。

一番最後の一文がカッコ良い:

本書で紹介してきた多くの思考法や、コラムで紹介したループの最適化や負荷分散、スケーラビリティの確保といった考え方は、プログラミング以外のあらゆる仕事に適用可能な、汎用性の高い「原理そのもの」なのである。(ibid.:219)

WirelessWire News でも言及がされているけれども、ぜひ2021年現在の最新の状況での「最適化」について、詳しく知りたいと思ったし、また、人工知能 (やディープラーニング等) について勉強したいと思った。

[本] 読書の秋、アウトプットの秋

強い日差しもひと段落して、過ごしやすい陽気になってきたので、この頃できていなかった読書とアウトプット活動を頑張ろうと決意。特にアウトプットは文字通り全然できていなあkったので、『アウトプット大全』を読むところからスタート。

著者の樺沢さんは、インプットの量もすごいし (例えば、月20冊の読書、月10本以上の映画、など[p.7])、アウトプットも凄すぎる (例えば、メルマガ、毎日発酵13年、YouTube、毎日更新5年、など [p.8])。そんな凄すぎる人がアウトプットの利点から、具体的な話し方、書き方、行動の仕方をわかりやすく教えてくれる、そんな本。

私は特に書くアウトプット(第3章)を続けていきたいと思っているので、書くことで脳幹網様体不活系(Reticular, Activating System) というカッコ良い名前の脳の部位が活性化して、記憶力や学習脳力が高まるとしれたことはなんだか嬉しい [pp.114f]。

また面白かったのは、ぼーっとする時間もアウトプットには大切であるという指摘。ぼーっとしているときには「デフォルトモード・ネットワーク」というカッコ良い状態が活発に稼働するとのこと。隙間時間をとにかく埋めてしまおうとするのではなく、空白の時間を作り出すことが脳味噌にとってすごく重要な意味を持つ [pp.142]]。

読書感想文のテンプレも紹介してもらえる。「ビフォー + 気付き + TO DO」[p.250] は書きやすそうなので、使っていきたい。

ふとしたときにパラパラめくり直してみるだけでも、毎回学びがありそう。

[本][英語] 推量の助動詞 will と must の対比

以前の記事では、推論用法の must「~にちがいない」とshould「~のはずだ」「きっと~だ」を取り上げた。日本語訳として表出する以前の意味の違いがあった。

今回は推論用法の will「~だろう」を取り上げて、must と対比的に理解をする。

柏野 (2012) によると、推論用法の mustは「現在入手できる情報」または「以前からの知識」に基づく推論であり、一方、willは「以前からの知識」に基づいた予測である。「以前からの知識」は「常識」「経験」などのことである。表にまとめてみよう:

助動詞 現在入手できる情報 以前からの知識
must
will ×

柏野 (2012) の例を利用して具体的に説明しよう。must による推論は「現在入手できる情報」「以前からの知識」のどちらを根拠とできる。なので:

  1. A: Someone's knocking at the door. (誰か、ドアをノックしている)
というAさんの発話に対して、
  1. B: That must be Linda; only Linda knocks that way.
  2. B: That must be Linda; she said she would come today.
のどちらの答え方もできる。前者は「ああいうノックの仕方はリンダしかいない」という「現在入手できる情報」を基にした推論であり、後者は「リンダは今日来るって言っていた」という「以前からの知識」を基にした推論である。一方で、willの場合は:
  1. B: × That will be Linda; only Linda knocks that way.
  2. B: That will be Linda; she said she would come today.
というように、「以前からの知識」に基づく予測しか許されない。

最後に、確信の強さについて柏野 (2012) から引用しておこう。

...一般にイギリス英語では must のほうが will よりも確実度が高く、アメリカ英語では will のほうが must よりも確実度が高い...
(ibid.: 38)
Forest は推量用法の willに対して「たぶん~だろう」という訳を当てているが、少なくともアメリカ英語であれば「たぶん」は不要と言える。

助動詞は調べれば調べるほど面白いし、わかるようなわからないような感じが募っていく..

  • 柏野健次. (2012). 『英語語法詳解―英語語法学の確立へ向けて』. 三省堂

[本][英語] いい本は、爽やかに頑張ろうと思わせてくれる

小野和俊さんの『その仕事、全部やめてみよう』を拝読。

「あ、それでいいんだ」と気づかせてくれるというか励ましてくれるような面白いエピソードがたくさんあって (例えば「キレる」お話)、また、具体的なアドバイスもある。肩の力を抜いてリラックスさせてらもい、同時に、前向きに頑張ろうと思わせてくれる、そんな素敵な本だった。文章を読むだけでこんな爽やかな気分にしてもらえるのだから、実際に一緒にお仕事をされている方は羨ましい (とはいえ、実際の現場はシビアで高い能力が要求されるのだろうけど...)。

YouTubeの Ghelia Monthly (ギリアチャンネル) で小野さんを知り、すっかりファンになってしまった。

[本][英語] 推量を表す must と should (ought to)

今日も英語のお勉強。以前の記事に引き続き、助動詞。 今回は must と should (ought to)。

いわゆる推量の意味で、mustは「~にちがいない」、shouldは「~のはずだ」「きっと~だ」と訳す。日本語訳からもわかるように、must は should よりも確信が強い。Forest から例を引こう (p. 122f):

  1. She must be Bobby's sister. (彼女はボビーのお姉さんにちがいない。)
  2. He should win the race. (彼はきっとレースに勝つはずだ。)

確信の度合い、という観点からから考えると、mustを使っている上の例文の方が、shouldを使っている下の例文よりも、確信度が高い。

ただ、実は、2つの助動詞の意味のちがいは確信の強さだけではないのだ。

must は「現在入手できる根拠に基づいた、現在の状況に関する確信」を表し、should は「判断の当否が将来において確かめられ得るような推測」を表す (今井 1995: 59)。
例を引用しよう:

  1. You must be crazy!
  2. ×You should/ought to be crazy!
  3. ×John must be back by tomorrow morning.
  4. John should be back by tomorrow morning.
  5. (ibid.: 59, 一部改)

3の例文が示していることは、ある人がおかしな言動をしており (現在入手できる根拠)、そこから「あなたはcrazyにちがいない」と確信を持って判断している (現在の状況に関する確信) ということ。なので、must がふさわしくて、4のようにshouldは不適切になる。一方、5,6 の例文の方は、ジョンが明日の朝帰ってくるかどうかは、明日の朝に当否がわかる (判断の当否が将来において確かめられ得るような推測」。よって should が適切である。逆に must は不適切となる。

この考え方を踏まえて、冒頭の Forest からの引用を見直してみよう。はじめの文は、ボビーとそっくりの話し方・口癖・外見...などから確信を持って判断している (現在入手できる根拠) 、ということで must を使っているのだろう。一方、2番の文は、レースが終わってみれば彼が勝ったかどうかが判明 (判断の頭皮が将来において確かめられる) するので should がふさわしい、ということになる。

must と should (ought to) の使い分けは、(1)確信の度合いの強さ、(2)「現在の証拠で現在の確信」or「将来確認できる推量」、の2点となるわけだけれども、おそらく、より根本的な違いは(2)の点になるのだろう。というのは、「現在入手できる根拠に基づいた、現在の状況に関する確信」であれば、必然的に確信の度合いは高くなり、「判断の当否が将来において確かめられ得るような推測」であれば確信の度合いは下がる (未来のこと確信を持って推測することは難しい) からだ。

助動詞は日本語訳を機械的に当てはめて満足していたけれども、色々調べてみると面白い。

[Windows] AutoHotKey で キーバインディング

個人的にはずっとMacを利用しているのだけれども、その理由の一つが「矢印キーを押さなくてもカーソルを動かせる」という、すごく小さい理由。矢印キーは大体エンターキーの下あたりにあるけれども、カーソルを動かすために一度右手をホームポジションから離して、カーソルキーを押して、Jのぽっちを探してホームポジションを取り直し、、、という小さな繰り返しが煩わしく感じてしまうのだけれども、Macであれば、特に設定もせずに、Control(^)+f/b/n/p でカーソルを右/左/下/上、に動かすことができる。さらにいうと、Control(^)+a/eで、行頭/行末 に移動したり、Control(^)+kで、カーソルから行末までをカットしたり、、、など、ホームポジションから手を動かさずともさくさくカーソルを動かすことができる。標準で Windows ではそのような使い方はできない。だから Windows を使いたくなかった。

職場のPCがWindowsという縛りがあり、渋々矢印キーを押しながら仕事をしていたのだが、少し調べてみたらAutoHotKeyという素晴らしいソフトがあるとわかった。これは、色々な機能があるようだけれども、AutoHotKeyを使うことによって、任意の実際の入力がなされたときに、任意の別の入力がされたようにマップすることができてしまう。例えば、CapsLock を押しながらfを押すと、矢印右ボタンが押されたことにできてしまう。このソフトを利用することで、Windows であってもホームポジションから手を離さずに、Mac と同じようにカーソル移動(その他)ができてしまう。

カーソル移動以外にも色々できるので、備忘も兼ねてシェア。なお ChangeKeyというソフトを使ってCapsLockをF13キーとして割り振っている:


;Ctrl + q で閉じる
^q::send, !{F4}

;Ctrl + k で カタカナ (F7キー)
^k::send, {F7}

;Emacs風。なお、CapsLockをF13に割り振っている(ChgKey を利用している。Scan
Code --> 0x0064)
F13 & a::send,{Blind}{Home}
F13 & e::send,{Blind}{End}
F13 & p::send,{Blind}{Up}
F13 & b::send,{Blind}{Left}
F13 & n::send,{Blind}{Down}
F13 & f::send,{Blind}{Right}
F13 & d::Delete
F13 & h::Backspace
F13 & m::Send {Blind}{Enter}
F13 & k::send +{End}{Delete}
F13 & u::send +{Home}{Delete}
; Altキーは ! , Ctrlキーは ^
!f::send, ^{Right}   ;カーソルを1単語右
+!f::send, +^{Right}   ;選択肢ながらカーソルを1単語右
!b::send, ^{Left}   ;カーソルを1単語左
+!b::send, +^{Left}   ;選択肢ながらカーソルを1単語左

;F13 (Capslock) を押しながら ↑で音量Up、↓でDown
F13 & Up::
Send,{Volume_Up 1}
SoundPlay, x64
Return

F13 & Down::
Send,{Volume_Down 1}
SoundPlay, x64
Return

;今日の日付を入力 F13(CapsLock) + t
F13 & t::
FOrmatTime, TImeString,, yyyyMMdd
Send, %TimeString%
Return

[本][英語] 可能性を表すmayとcan の違い

英語のお勉強メモ。助動詞は難しいのだけれども調べていくと面白い。

助動詞の may も can も「~かもしれない」という可能性を表せる。Forestから例をひいてみる (p. 120f):

  • We may have some rain tomorrow.「明日はいくらか雨が降るかもしれません。」
  • Anybody can make mistakes.「だれにだって間違いはありうる。」
さて、ここで問題にしたいのは may と can の差異である。「日本語訳」レベルでは全く同じになってしまうが、日本語に出てこない「意味」には違いがあるはずだ。今井 (1995) は次のように説明する (p. 61):
「可能性をあらわす」という点で may と can は等しい。だが、mayが「現実的」可能性を表すのに対して、canは「一般的・理論的」可能性をあらわす、という点では異なる。
具体例を見てみよう:
  • The area may be flooded after the typhoon.
    (台風の後なのでその地域はいま洪水になっているかもしれない)
  • The area can be flooded after a typhoon.
    (その地域は台風の後洪水に見舞わられることがあり得る)
  • (ibid.:61, emphasis in the original, 一部改)
1つ目の例文は、実際に台風があり(the typhoon)その結果として現実に洪水になっているかもしれない、ことをあらわす。これが「現実的」可能性ということ。一方、2つ目の例文は、台風が起きた場合 (a typhoon) その地域は洪水になり得ると言っている (台風一般から期待される降水量よりも地域の排水量のが少ない、など)。

冒頭のForestの例に戻ろう。"We may have some rain tomorrow." では現実の話をしている事になる。一方、"Anybody can make mistakes." では、一般論として、人間という生き物は間違えうるものだ、と語っている。

日本語訳には出てこない違い、とても面白い。

[Windows] AutoHotKey その2

職場の Windows PC に AutoHotKey というソフトを導入して、キーバインドを変更 したら、ものすごくキー入力が楽になった。ホームポジションから手をはずさずに上下左右、行頭・行末にカーソルを移動させたり、文字を削除したりできる。ストレスフリー。 カーソル移動系...