港区男子の見解

港区男子が個人の見解を交えて、現地から最新の情報をお届けします

スペイン風邪はどう収束したのか

今から約100年前に流行したスペイン風邪。疫学者の見積もりでは死者数が1億人にも達したと言われるこのパンデミックがどうやって収束したのか。みんな気になってるはずだが、結論はあまり聞いたことがない。ハッキリした原因を特定しづらいということもあるのだろう。そこで、ビルゲイツが今年の5冊として紹介していた、『The Great Influenza(グレートインフルエンザ)』を読みました。この本は希少価値が高いせいか、amazonでは13800円より〜になってます。私は図書館で借りて読みました。当時のスペイン風邪のルポになります。

www.amazon.co.jp

 

500ページ超えですが、ざっくりのまとめを以下書きます。

  • 当時世界人口18億人中高い方の見積もりで1億人が死亡。5%以上。死者の大部分は1918年秋の2週間に出た。
  • 高齢者よりも若者の死者が多かった。若者の死者が半数以上を占め、その中でも最悪の死亡率は21~30歳。
  • 咳やくしゃみによる防衛は肺にダメージを与えるものではない。しかし肺が感染すると、命を奪うほどの暴力的な防衛反応が働きはじめる。犯人と一緒に人質を殺してしまうか、村を救おうとして村ごと破壊してしまう軍隊のようなものである。若者を死に至らしめたのは、強すぎる免疫システムの反応によるもので、このために肺と体液と細胞の残骸がたまり、酸素を交換できなくなった。これを引き起こしたのがスペイン風邪のウイルスが引き起こすサイトカインストームである。
  • インフルエンザが神経系統に深刻な影響を及ぼすことは間違い無い(精神的不安定との関連は明白)
  • 1918年春の第一波で感染した人は、秋の第二波に対してかなり免疫があった。たとえば1春に在米師団の本拠地にいた26000人のうち2000人がインフルにかかり、軽症レベルも含めるとほぼ全員が晒されたはずだが、秋はそのメンバーにはほとんどかからず、夏に新たに入った12000人を殺戮していった。ヨーロッパでは春にインフルに襲われた一隊の部隊が秋にはわずか6.6%の感染で済んだが、もう一方のグループは春の波を免れたため、逆に秋のときは48.5%がインフルにかかった。他にもこれと同様の例が多数見られた。
  • 突然変異群を形成する全てのウイルスと同様、速やかに突然変異した。『中央値への反転』という数学上の概念がある。これは極端な現象のあと、あまり極端でない現象がみられるということを意味する概念である。これは法則ではなく可能性としての問題である。1918年のウイルスは極端に走った。ここで突然変異が起きると、さらに致死率を高める方向ではなく、それを下げる方向に向かいやすくなる。この動きによって、時が経つにつれて致死性も弱まっていった。

 

最後の『中央値への反転』の話はあまり聞かない説で、興味深いです。今回のコロナはスペイン風邪のときより極端な現象じゃないので、逆に収束まで長引く可能性があるということでしょうか。

一度感染したことのあるグループのほうが次の流行に強いというのはよく聞く話ですが、ここまで顕著な差が出ていたというのは興味深いです。致死性が小さいうちに、ワクチンを打つようにかかっておいて、突然変異して致死性の高い次の流行期での被害を小さくするという戦略はあり得そうです。ただワクチンと違って一発目の感染で死ぬ可能性もあるので、そこは考えどころです。今のデータ的にはコロナは致死率相当低いので、次の突然変異に備えるという意味では今のうちにかかっておくのもありかもしれませんね。結果論になりますが、スペイン風邪のときは、第2波>第3波>第1波で毒性が強く、第3波は第2波による被害を免れたオーストラリア中心に襲われていますので、第1波でかかっておいたほうがよかったということになります。一番いいのは全部でかからないことなのですが。

名店・暗闇坂宮下が昼営業開始

麻布十番から駅近にある和食名店・暗闇坂宮下が昼営業を開始しました。

f:id:MinatoAzabu:20200614213507j:image

夜だとお任せで8000円くらいかかりますが、昼は定食でなんと700円!

f:id:MinatoAzabu:20200614213526j:image

麻布十番界隈で700円ランチを食べられるケースは稀です。それがこれだけの本格和食で食べられるのだから驚きです。

f:id:MinatoAzabu:20200614213537j:image

一見ボリュームが少なそうに見えますが、実際これだけ食べると十分です。多品種を健康的に摂取できます。高級和食とはこういうものなのかと感じさせる豊穣な味わいを、重厚な雰囲気の中存分に感じることができ、非常に満足度が高いです。

私は最近平日毎日通ってますが、まだ昼営業が認知されてないのか、お客さんの数は少ないです。ぜひこのコスパ最強定食を一度堪能してみてください。

2020港区長選挙

投票1週間前になりました。今回の候補者は5名と非常に多く、近年稀に見る混戦になりそうです。

順当にいけば実績十分の現職・たけい雅昭さんが優位と考えられる中、ホリエモン新党からの刺客・柏井茂達さんも参入してくるなど、コロナ騒動の鎮火と共にだんだん盛り上がりが増してきております。

 

私は『飯田佳宏』さんを推します。profile.jpg

今回の候補者の中で唯一この方と交流がありますが、非常に誠実で行動力のある方です。以下イチ港区民の目線から見て良いと考えられる点を挙げます。

  • 減税し、皆様の判断で消費、投資、貯蓄する → 港区らしい小さな政府の実現
  • 区長報酬半額カット → 私利私欲のために政治をやる人ではありません。微々たる額ですが、姿勢として立派だと思います。
  • 衆議院議員秘書としての人脈の広さ、政策交渉の豊富な経験や、起業家としての新サービス発案からローンチまで遂行する行動力をもとに、区民の様々な不満に向き合い解決に向けてアクションをとってくれる(例えば、レインボーブリッジを自転車で移動できるように国交省と交渉など)
  • 10回以上の選挙経験 → パッと出の、イベントとしての選挙をやってる人とは違う
  • あと人間としてすごくいい人。これは政治家にとってすごく大事な要素。

 

毎回25%前後の投票率ですが、港区民のみなさんは是非投票に行ってください。投票すべき人がわからないという方(ほとんどがそうだと思いますが)、この記事も参考にして投票に行ってください。

GoogleのPythonプロフェッショナル認定コース第2~6章

Courseraにて、『Google IT Automation with Python』というプロフェッショナル認定コースが今年の1月頃からスタートしました。

約2ヶ月かけて全てのコースを修了し、認定を受けることができました。

f:id:MinatoAzabu:20200524214721p:plain

実に長かったです。合計100時間以上は余裕でかかったと思います。土日はほぼこれに費やして完了した感じです。

第1章の内容は以下にまとめました。

minatoazabu.hatenablog.com

 

今日は残り2~6章の内容を振り返ります。

 

 

2章、Using Python to Interact with the Operating System

2-1、Getting Your Python On

Pythonの環境設定

2-2、Managing Files with Python

osモジュールをインポートしてcsvファイルを開いたり、書き込んだり

2-3、Regular Expressions

正規表現。条件に合致する言葉やファイルを探したり。記号の使い方がたくさんあって複雑で大変。ただここで出てくる記法は後々も頻出する。

2-4、Managing Data and Processes

sysモジュールのargvとかstdoutとか。覚えた記法を使ってLogファイルを開いてエラー原因特定もする。

2-5、Testing in Python

なぜテストが必要なのか、テストケースを常に考えながらコーディングするテストドリブン開発の重要性について、例外処理について

2-6、Bash Scripting

LinuxBashで使うコマンドについて、BashPythonの使い分け方について

2-7、Final Project

正規表現を使ったLog分析が課題

 

2章は全体的にだいぶ時間がかかり、難易度も高かった印象。ただし内容的に非常に重要。1章で学んだ基本をもとに、実践的なpythonの操作方法を学んでいく。ここで覚えた記法は後々何度も出てくる。逆にPythonの記法に関してはこれ以上特に重要なものは新たに出てこない。

1、2章で山場は超え、3~5章は穏やかな章が続く。聞いてるだけで超えていける感じ。ただし最後の6章の問題難易度とボリュームにはだいぶ参る。

 

3章、Introduction to Git and GitHub

3-1、Introduction to Version Control

バージョン管理システムとは何か?diffとpatchの違いは何か?Githubでリボジトリを作ってみる

3-2、Using Git Locally

ローカルにGitをダウンロードしたり、作業した内容をコミットしたり

3-3、Working with Remotes

リモート環境からいかにコードをプッシュしてマージするかなど

3-4、Collaboration

Pullリクエストをどう処理するかとか、CI/CDの考え方など

 

バージョン管理で難しいところの考え方概要がわかる。しかし英語なので理解が難しい。実際にGitを複数メンバーである程度使い済みの状態で、これをみて考え方を整理するのがちょうどいいかもしれない。

 

4章、Troubleshooting and Debugging Techniques

4-1、Troubleshooting Concepts

デバッグの基本的な考え方について、どういう手順で原因を絞り込んでいくか、バイナリサーチで原因の存在範囲を特定する試行回数を減らしたり

4-2、Slowness

処理の遅さの原因は何か、モニタリングツールの活用、シンプルなコード記述で処理を速く

4-3、Crashing Programs

ログ分析の重要性、ボトルネック特定の重要性、バグ対策レポートを書いて保存、共有することの重要性

4-4、Managing Resources

タスクの優先順位の付け方(タスクリストを作って、重要性と緊急性の2軸でマッピングする)、その場しのぎの対策ばかりで便利な技術投資をしないことは技術負債として貯まる

 

デバッグを中心に、不具合対策タスクに対する考え方、心構えを解く系が多いですね。参考になります。もちろん実際のエラーコードを見ながら解説する動画もたくさんあります。あ、Googleでもこういう考え方をスタンダードして進めてるんだ、これでいいんだ、ということが知れて有益でした。

 

5章、Configuration Management and the Cloud

5-1、Automating with Configuration Management

スケールする際構成管理で自動的にインフラをデプロイすることの重要性、構成管理ツール『Puppet』の紹介、Infrastructure as Code

5-2、Deploying Puppet

ローカルマシンにPuppetをデプロイ

5-3、Automation in the Cloud

Cloudの概念、テンプレート、イメージを作ることの重要性、

5-4、Managing Cloud Instances at Scale

クラウド上でのモニタリングとアラート、デバッグ、復旧

 

クラウドYAMLファイルとか使ってデプロイ自動化する作業は経験あるものの、ここではよりこのコースらしいデバッグなどの作業が演習で盛り込まれており難易度が少し高かったです。ただ演習は誘導、解説が丁寧なので問題なく解けます。

 

6章、Automating Real-World Tasks with Python

6-1、Manipulating Images

PILモジュールを使って、フォルダにたくさん保存された画像の一括回転、サイズ変更、保存形式の選択などを実行

6-2、Interacting with Web Services

webアプリ運用に当たって必要になる、JSONファイルの書き方、変換の仕方、リクエストGET,POSTの仕方を学んだ上で、実際にwebサービスに書き込まれた要求内容をJSONに変換して表示する作業をする

6-3、Automatic Output Generation

メール自動化の設定、PDFファイルの生成の仕方を学んだ上で、JSONで書かれた自動車の販売情報を処理してPDFでまとめてメールで自動送信する作業をする

6-4、Putting It All Together

6章のこれまで3節およびこの認定コースの内容をバランスよく全て混ぜた課題を一気に解く

 

6章のみ動画無しで、各節で必要なモジュールに関する知識をドキュメント形式でまず説明して、その後Qwiklabsで実践という流れになってます。

6章は他の5章を全部クリアした人しかコースに参加できいため、参加者が少なく、課題に対する情報も少なくなってます。

課題も、特に3,4節がかなり難しく、ボリュームもたっぷりです。標準時間内では確実にクリアできないでしょう。最後にこれは結構こたえます。

 

ということで、コース全体を振り返ってきました。

感想として、このコースを終えただけでPythonが自在に使いこなせるようになるかというと、そういうわけにはいかないと思います。もっと自分でPythonを使った実作業の数をこなさないと定着はしないでしょう。ただし基本的な考え方については体系的に学ぶことができ、全体像が見えてきます。さらにPythonに限らず、IT業務全般における実践的な業務ノウハウも知ることができるので、こういう場面でこういうツールの使い方をすればいいんだという、勘所が掴めると思います。

何より大きいと思うのは、これだけ時間をかけてこれだけの量をこなしてきたんだから、Pythonについては一通り理解できたという自信がつくことです。自在にPythonを書くことはできなくても、基本は一通り抑えましたと。どんなPythonのコードが出てきても、あとは都度それに特化した内容を調べるだけだと自信を持って臨めるのは大きなことだと思います。

ここで学んだことをもとに、Web、クラウド、データ分析等でガッツリ有益なコンテンツを作って、知的好奇心を満たしつつ、どんどんスケールしていきたいと思います。

GoogleのPythonプロフェッショナル認定コース第1章

Courseraにて、『Google IT Automation with Python』というプロフェッショナル認定コースが今年の1月頃からスタートしました。

初級レベルですが、これを2~8ヶ月(週4時間で8ヶ月ペース、合計120時間前後)やり切ると、Googleという巨大グローバル企業から最低限のプロレベルとオフィシャルに認定されることになります(LinkedINに貼れる証明書が発行される)。

受講にあたっては、今の所毎月(5500円程度)または毎年(いくらか不明、公式ページの説明も非常にわかりづらく不満)ごとのサブスクリプションを支払う必要があります。期限が切れて翌月の購入をやめるともう練習問題などは解けなくなります。

まだ日本語版はなく、英語で見る、聞く必要があります。

Chromeでページ自動翻訳してくれますが、それだと精度が低いです。

Google翻訳サイトにコピペすると精度は高いですが、面倒なのと、タイピング画面を同時に見づらいという欠点があります。

いずれにせよ大変ですが、これをずっと続けていると、Pythonというプログラミング言語だけではなく、英語という自然言語も同時に習得できるという利点はあります。

 

コースは以下6章から成ります。

1、Crash Course on Python 31時間

2、Using Python to Interact with the Operating System 

29時間

3、Introduction to Git and GitHub 18時間

4、Troubleshooting and Debugging Techniques 19時間

5、Configuration Management and the Clou 17時間

6、Automating Real-World Tasks with Python 12時間

 
 私は約1.5ヶ月で1、2まで修了しました。この2章で全体の半分を占めます基本がみっちり詰まっているため、内容的にも濃いです。
1章はPythonの基本です。Pythonだけを一通りマスターしたい方はこの1章だけやればいいでしょう。以下1章の構成です。
 
1−1、Hello Python!

Pythonで自動化するとどういうメリットがあるかとか、概要的な話

1−2、Basic Python Syntax

 変数とか、型とかの説明と、IF文。ここまでは簡単で練習問題も自力で解ける

1−3、Loops

While、For、Recursion。ここから難易度がかなり上がる。

1−4、Strings, Lists and Dictionaries

文字、リスト、タプル、辞書。さらに難易度が上がる。

1−5、Object Oriented Programming (Optional)

オブジェクト指向についての解説。既に登場してるがあらためて関数、メソッドの説明と、新たにクラスの考え方の説明。なぜここがオプション扱いなのか不明。

1−6、Final Project

『word cloud』という、適当に英語文章をコピペしてテキストファイルにしてそこに登場してくる単語をビジュアル化する最終課題とその説明動画。そこまで複雑ではないが自力で仕上げるのはかなりハードルが高い。

 

Pythonの教科書でよく見る王道的な順番になってると思います。手元に体系的にまとめた本も一冊あったほうがいいでしょう。webだとどうしても散らばっていて見づらいところがあるので。Python本は数が豊富でまちまちですが、『新・明解Python入門』は図解で丁寧に上記内容がまとめられてるので、この講座の補完として非常に適してると思いました。

https://www.amazon.co.jp/dp/B07S52Z93C/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

 

動画を見て理解するだけではなく、練習問題が豊富なところは良いです。タイピングはコースのweb画面上でそのままできます。欠点は以下です。

  • 動画で見た例文を練習問題時に参照しづらい。最初はある程度例文の写経をこなさないとできるわけがない。この問題は動画のどのあたりに似た例題があったとかいちいち探すのが非常に面倒
  • ある程度スクリプトが埋まってて、一部足りない箇所を自分で埋めたり、間違いを修正する問題が多い。どの範囲を埋めないといけないかが非常にわかりづらくなってて、不正解だとどこまで修正しないといけないのか不安になる。
  • 問題が難しい。ディスカッションフォーラムというヒントや答えのコード例が載ってる受講生同士の掲示板を活用しないと合格は非常に厳しいでしょう。
まあしかし何時間も説明動画、例文を見て打って本で確認してという作業を繰り返していると、やはり身についてくるものですね。作業によって多用するモジュールの理解とかは別途必要になりますが、ここまでやると基本は身についてるので大体のコードは意味が理解できるようになります。
 
このコースの良いところは、Pythonの基本に留まらず、2章以降でIT全般の基本を身につけられるようになってるところだと思います。OS、デバッグ、テスト、Bash、Gitなど。Pythonのプログラミングができても、IT関連の実作業においては別途Bashが使えないとファイル操作できなかったりで対応しきれないことが多々ありますが、そのあたりも一通りなぞってくれます。次回以降はそのあたりの内容も紹介していきます。

港区の最果ての先にある超長い一直線

自転車でお台場に行ってきました。レインボーブリッジが閉鎖されていたため、勝どき経由でいくつも橋を渡って行ってきました。

 

お台場は内陸の中心部から遠いものの、海が近くて道が広くて風通しが良くて開放的な気分になれます。自転車で走ると気持ちいいです。

 

 さて、以下に港区の地図を小さい赤枠で示しました。お台場のごく一部も港区に入ってます。ここから日本科学未来館などをさらに南下した太い赤枠の部分、ここはひたすらコンテナ(倉庫)が並ぶ超長い一直線になってます。

f:id:MinatoAzabu:20200504152842p:plain

 

f:id:MinatoAzabu:20200504154012j:image
 google map上ではその先にさらに海の森公園などの人工島っぽいのが続いていたので、さらに先に行けると思ったのですが、この橋らしき道は実は海底トンネルのことだったようで(笑)一般人には通行不可でした。

つまりここは実質最果ての道であり、あるのはコンテナのみ。業者の車はたまーに通るものの、一般人はその先に何もないのでほぼいません。

この広い一直線の道を自転車で飛ばせるのは快感です。ここに来るまでの段階で相当広い道を飛ばしてきてるはずなので有り難みが少し薄いのですが、このド都心でこれだけの直線を寡占できる場所は他にないでしょう。かっ飛ばしたい気分になったときは是非ここを訪れてみてください。

港区の進化論

土曜昼、自転車で、六本木、表参道、原宿、渋谷、恵比寿を視察してきました。

 

特に表参道、原宿、渋谷は普段なら激混みゾーンですが、かなりの店が閉まっていて、人が非常に少なかったです。原宿はシャッター街状態でした。

 

今回は国から休業要請が出ており、それを理由に補助金を要求する事業者や被雇用者がたくさんいます。

 

ここで思考実験なのですが、国からの要請がなかった場合、これらの企業は店を開けるのでしょうか?

私が推奨するコロナウイルスを確実に防ぐ方法を全員が実施すれば何も問題はないのですが、そうでない場合、店に来た客が死ぬ可能性もあります。

minatoazabu.hatenablog.com

 

お客様の満足が第一でどうたらこうたら〜と社是を掲げてる企業なら、(それが建前の社是ということはみんなわかってるものの)、そんな客を危険に晒すことはできないでしょう。

また、死ぬ確率にもよると思います。店に車で来た場合でも死ぬ危険性は家にいるより上がるので、客のことを考えると店を開かないほうがいいことになりますが、実際は社会的にはそういう考えがコンセンサスになってません。今は日本全体で見るとコロナによる死亡率は低いものの、通常通りやってると爆発的に死亡率が高まる可能性が目に見えてるので、倫理的には国からの要請がなくても閉めたほうがいいのでしょう。

 

天災も含め、実社会ではこうしたこれまでの常識が通用しなくなるイベントがたまに生じます。資本主義のまあまあいいところは、こういうときに、その変化に対応して、社会のプレイヤーがその状況に応じて需要の高い生産やサービスをするように勝手に調整されるところです。

 

今回のコロナとはレベルが違う話になるかもしれませんが、産業革命、自動車の出現、IT活用による事務処理自動化など、環境の変化によってこれまでの仕事の需要がなくなって事業形態の変換を余儀なくされたことは何度もありました。

 

短期でコロナが収束する場合ならまだしも、これまでの感染症の歴史的にも長期で続く事例は確認されてるので、その場合は補償にすがるのではなく、自分で業種を変えるとか、各自が考えてなんとかしていくしかないでしょう。世界はそういう状況のときに何もしないままで生きていけるようにできてないからです。これが社会ができる前の世界だったらどうでしょうか。何もしないと餓死して死ぬだけです。社会がある今の世界でも、何もしない人が多勢になったらその人たちの面倒を見切れなくなって、どうにもならない分は死んでいくだけです。生き残るのは環境に適応した者。進化論でも説かれた基本原理です。

 

先ほど、IT活用による事務処理自動化、と書きましたが、例えば仮に、電気が発する電磁波が生活習慣病の根本原因だったという結論が今後出たらどうなるでしょうか。

生活習慣病の死者はコロナの比じゃないくらい多いでしょうから、今の論理を適用すると、世界中の人たちが電気を使わない生活を強いられることになります。別に電気がなくても人は生きていけるし、そうすることで死者がめちゃくちゃ救えるからです。電気がないことで死ぬ人もめちゃくちゃ増えるでしょうが、それは今のコロナも同じような話です。この話はややこしくなるのでやめておきましょう。

 

とにかく、環境の変化に応じていかないと、たとえこれから需要が増えていくと予想されてるIT業界とかでさえもどう転ぶかはわからないわけです。人が多く集まる街、土地が高い街を特徴としてきた港区も、資本主義、進化論に従えば環境の変化に応じて、それに相応しい形に勝手に最適化していくことでしょう。補償に足を引っ張られて変な形に留まってほしくないものです。私は以下方法の適応を推奨します。

minatoazabu.hatenablog.com