Outbreak Simulator

p5.jsの練習課題として,ウイルス感染の拡大・収束する様子をシミュレートするものを作ってみた.元ネタはワシントンポストの「コロナウイルスなどのアウトブレイクは、なぜ急速に拡大し、どのように「曲線を平らにする」ことができるのか 」の記事である.記事を読んで,年齢分布や社会的距離の程度を色々変えてシミュレーションしたかったのだが,やりたいことは大体できた.いい加減にJavascriptを書いているので,N数を増やすと重くなるので,重くならない程度のN数に設定した.

折角なので,以下のURLで公開しておきます.

Outbreak-simulator:
https://hontolab.org/app/outbreak-simulator/

伝えるべき相手に分かる言葉で届くように

全国で新型コロナウィルス(COVID-19)の患者が急速に増えている.若い人が積極的に外出し,知らない間にウィルスを広げているのも原因と言われている.浜松市でも2人目の新型コロナウィルス感染者が確認されたそうだ(浜松市ウェブサイト).浜松市から京都は山科区まで移動し,40名程度が集まるオンラインゲームのオフ会に参加していたそうだ.罹患者は30代.若者である.

政府や自治体,教育機関が自粛を呼びかけているにもかかわらず,なぜ人が集まるところに外出するのだろう.各種報道を見ていると「コロナなんて感染してもクラブに行けば吹っ飛ぶ」とか「どうせ感染しても大丈夫」という声もあるようだ.昨日見た報道で驚いたのは,西日本新聞の記事の内容.自粛要請が出ていることを知らない若者がいるそうだ.

他の人にウィルスをうつすリスクがあることに何も感じない無責任さにも問題があると思う.一方で,西日本新聞の記事を読んで,この状況の中,リスクの高い行動を取る若い人が存在するのは,

  • 彼らに重要情報を伝えるためのチャンネルの選択が間違っている
  • 彼らが理解できるような言葉で情報を伝えていない

ことも問題だということを改めて感じた.

新聞は当然のこと,今の若い人はテレビを持っていない人もいる.テレビを持っていたとしても,ニュースを見ない人もいるだろう.行政のウェブサイトを細かくチェックする人なんかはもっと少なそうだ.今の若い人にはLINEでアプローチした方が,情報が伝わりやすいだろう.

一方で,行政やマスメディアが出す情報を見ても,言葉が難しくて状況や自粛要請の意味が分かっていない若い人は結構いるのではないか.「クラスター」「オーバーシュート」「ロックダウン」とかそういう横文字レベルの言葉は問題外.少し前に,京都大学の准教授が「とっとと感染しちまえ」というツイートをして話題になっていた.既存メディアがこのような伝え方をするのはさすがに難しそうだが,このくらいのレベル感でないと,今の若者には伝わらないのかもしれない.NHKは外国人や小学生・中学生向けに「やさしい日本語で書いたニュース」というものを配信しているが,小難しい言葉が並んだニュースよりも,こういうニュースの見せ方をした方が今はいいんじゃないかとも思った.

600人規模のオンライン学術学会DEIM2020が開始

2020年3月2日〜4日にかけて,福島は郡山で開催が予定されていた国内学会DEIM2020.コロナウイルスの影響で,オフライン開催からオンライン開催に実施形態を変更.600人規模が集まる国内学会をオンライン開催するというのは,実に壮大な実験である(報道).

参加してみると,心配は杞憂であった.うちの研究室からは,

  • 村田百葉, 山本祐輔, 「SmileGlasses:笑顔形成を促進するARメガネ」
  • 鈴木雅貴, 齊藤史明, 山本祐輔,「確証バイアスとウェブ検索行動の関係分析」
  • 齊藤史明, 山本祐輔,「QAサイトにおける質問応答に着目した気づきを促す問いかけの分析」

の3件を発表.うち1件を今日発表したのだが,研究発表,質疑応答ともに問題なく行えた.たしかに

  • 会場の雰囲気が肌感覚で分からない,
  • 質疑コメントをしていいのか,挙手をするタイミングが分かりづらい
  • セッション後のオフライントークができない

などの問題はあるかもしれないが,運営側がそこまで気が回らないのは仕方がないだろう.これだけの規模のオフライン会議を初めて実施したのだから,今回の経験を次に活かすことでもっと素晴らしいオンライン学会にできると思う.

さて,今回のオンラインDEIM2020であるが,参加にあたって,運営側が「DEIM2020 オンライン開催 虎の巻」をまとめてくださっている.DEIMはデータ工学の学会で参加者は情報社会の発展に貢献しようとしているわけだから,今回の学会の知見をGitHub上のコンテンツに反映し,虎の巻を充実させることで,大規模オンライン学会の運営や参加方法がオープンソース化されたらかっこいいのになぁと思う.

MathJax-LaTeXで数式をインライン表示にする方法

WordPressで数式を表示するプラグインとしてMathJax-LaTeXというものがある.このプラグインを用いると,$$\[latex\]というタグで囲った箇所でLaTeXコードが使えるようになる.

ところが,上記コードはdisplay表示であるため,数式で改行されてしまう.文中で数式が使いたい,つまりインライン表示をしたいときには使えないのである.

MathJax-LaTeXに関する記事を漁ってみると,\( \)でLaTeXコードを囲むとインライン表示ができるという情報があったので試してみたが,うまくいかない.

試行錯誤した結果,\がエスケープ用の文字として認識しているのではないかと思い,\\( \\)と書いてみたところ… うまくできた!これで\(N(\mu, \sigma^2)\)のようにインライン表示ができるようになった.

\( \)と書いてもうまくいった人がいるようなので,おそらくWordpressに入れた他のプラグインが悪さをしているのかと思う.

GistにアップしたJupyter notebookの記事埋め込み時の問題

以下の記事を書く際,Jupyter notebookのファイルをGistにアップし,GistコードをWordpressに埋め込む処理を行った.しかし,なぜかスクロールバーが消えない.CSSでiframeの高さを設定してもうまくいかない.Gistコードの埋め込みを行っている他の記事ではこんな問題は起きなかったのだが…

どうやらJupyter notebookの埋め込みを行うときに問題が起きるよう.同じ問題に苦しんでいる人がチラホラいるようなのだが,よい解決法がないみたい.残念.

NumPyroによる本塁打率のモデリング

昆虫食

鴨江アートセンターで開催された「未来はディストピアか?ユートピアか?」に参加した.フリーフードのおやつとして昆虫食が提供されていた.普段なら絶対食べないが,イベント参加前からお酒が入って酔っぱらっていたので,食べてみることにした.

昆虫食はタンパクを多く含んでおり,アジアでは貴重なタンパク源として食されている.日本でも地域によってはイナゴを佃煮にして食すことは知られている.昆虫食と聞くとびびってしまうが,先に述べたようにアジアでは普通に食べられているし,日本でもNPO法人食用昆虫科学研究会などが食糧危機の対策の一つとして昆虫食を推している.ここまでは知っていたのだが,日本に昆虫食販売店があることは知らなかった.今回提供された昆虫食はtakeo.tokyoが提供しているもの.パッケージが外国で売っているドライトマトのようで,洗練されている.今日のメニューはバッタ,コオロギ,ミルワームだと思われる.

酒の勢いで食べてみる.サクサクした食感で小エビの唐揚げのような食感.味は不味くはない.ザ・たんぱく質である.昆虫によって微妙に味が異なり,バッタよりもワームの方がコクがある,ような気がする.見た目さえ気にしなければ,割とパクパクいけそうだ.これで食料危機が脱せるのであれば,悪くないと思う.

写真はどら焼きと昆虫食(バッタ)のコラボ.昆虫食ばかり食べていると味に飽きてくるので,甘いものと併せて食べると良いでしょう.

西浦田楽:真夜中に山奥で踊りを観る

2月12日夜,浜松市水窪町の西浦観音堂まで西浦田楽(にしうれでんがく)を観に出かけた.西浦田楽は,知る人ぞ知る国の重要無形文化財.凍えるような寒さの中,月の出から翌日の日の出まで,20名程度の能衆によって夜通し演劇や舞が行われる.詳しいことは「情報サイト水窪」をご覧いただくのがよいと思う.

参加のきっかけは昨年開催された学会「じんもんこん2019」.学会中,たまたま西浦田楽のアーカイブに関する研究発表をされている方がおり,浜松市の山奥でマニアックな田楽が1000年以上催されていることを知り興味をもった.年が新しくなり,西浦田楽の時期が近づいてきたことを知り,開催日当日に鑑賞を決心.防寒具を用意し,車で出かける.

浜松市街から40km程度,水窪町まで車を走らせる.本当に人がいるのか不安になるくらい,街灯も人気もほとんどない山道を車で駆ける.20時15分頃,会場近くにあるとされていた駐車場に着き,車が30台程度停まっているのを見て,たしかに人間がいることを確認して安心した(車が停めるスペースが足りない状況にやや焦った).会場である西浦観音堂まで行くと,田楽が始まる21時までまだ45分もあるにも関わらず,すでに30名程度人が陣取っていた.

21時になると,観音堂下の階段から能衆の方々がやってきて,田楽がスタート.ここから47演目,途中休憩を1時間程度挟むらしいが,7m x 7mくらいの狭い空間の中で,原則朝7時頃までぶっ通しで演じられる.田楽がスタートすると,ちょうど良いタイミングで山肌から満月が顔を出した.真っ暗闇を照らす月,燃え上がる松明が西浦田楽をさらに幻想的なものにしていた.

予習もせずに鑑賞し始めたこともあり,何演目か見てようやく気付いたのだが,西浦田楽は完全に宗教的なものではなく,民俗芸能要素も多く見られた.

今のご時世にこんな山奥で夜通し昔の民俗芸能をやって何が面白いという意見もあるかもしれないが,1000年以上も同じ場所でほぼ同じ演目をやり続けていることの意味の大きさを感じざるを得なかった.田楽を演じられている能衆の方は10代から70代まで様々.神聖な演目は真剣な表情で演じられる一方で,「高足」などのコミカルな演目は,能衆が楽しそうに会話をしながら演じられていた.能衆の方々は田楽を大変楽しまれている様子で,出番がやってくると「それじゃ,行ってくるわ!」と声を掛け合いながら演目に臨まれている様子が印象的だった.

水窪町の方々にとって,西浦田楽は自らのアイデンティティを決定するものなのだろう.水窪町の方々の「人生」を強く感じた.

今回の鑑賞はあまりにも寒すぎて,足先が痛くなってきたので,12時頃に行われた「船渡し」の演目を観て帰宅することにした.来年は最後まで観れるように準備をしたい.

読点(、)の打ち方

卒論をチェックしていると,学生の読点の打ち方が気になる.読点が適切に使われていないと,大変読みづらい.

ところで,句読点は小学校の国語の授業で習いはしたが,文章を書く上での効果的な使い方について,ちゃんと習った記憶がない.文章作成技術に関する書籍を2,3冊読んでみたが,読点の使い方についてまとめてくれているものが見つからなかった.

この度「分かりやすい公用文の書き方(礒崎陽輔著)」の中で,句読点の使い方についてまとめられていることを発見.今後のために,僕なりに注意したい(注意して欲しい)読点の打ち方をここにまとめておく.

なお,磯崎氏曰く,句読点の使い方については,旧文部省がまとめた「区切り符号の使い方」が現在まで拠り所となっているそうだ.磯崎氏の書籍には,このまとめを踏まえつつ,自身の公用文作成・指導経験をもとに,分かりやすい公用文の作成ルールをまとめられている.


大原則:読点は,文を読みやすくするために打つ

読点の打ち方には,絶対のルールは存在しない.読みやすく分かりやすい文を書くために必要であれば,それに応じて読点を打つことができる.

読点ルール集

ルール1:単文では,主語の後に読点を打つ

  • 修正前:私は静岡大学の情報学部で教員として働いている.
  • 修正後:私は,静岡大学の情報学部で教員として働いている.

ルール2:主題を表す助詞のついた文節など,主語に準ずる場合もルール1を適用する

  • 修正前:新しい研究テーマについては配属後数週間以内にその骨子をまとめる必要がある.
  • 修正後:新しい研究テーマについては,配属後数週間以内にその骨子をまとめる必要がある.

残り13ルールについてはコチラから確認できます.

キレイで怪しい重慶大厦

学会での研究発表のために,修士1年生の齊藤君とともに香港に来た.バンケットが終了後時間があったため,ホテルの周りをぶらぶらしてみた.

昨年の12月の選挙を終えてから,香港は平穏を取り戻したようだ.とはいえ街を歩いていると,ところどころに「香港革命時代」「反抗」といった文字が壁に書かれているのを見かけ,この地でデモが本当にあったことを感じさせられた.

ネイザンロードまで来たので,かの有名な重慶大厦の前まで行ってみた.今の重慶大厦は外装だけ見れば,キレイなビルに見える.沢木耕太郎さんの深夜特急で描かれたような,ボロボロで味のある建物の姿はない.でも,入り口にたむろする怪しげなインド人に「ハッパあるよー」と声をかけられると,ああ,姿は変わってもチョンキンマンションの怪しさは健在だと感じた.

LeetCodeを始める

研究室の学生がLeetCodeの自主勉強会を始めた.LeetCodeとは知る人ぞ知る,コーディング面接対策のウェブサイト.様々なアルゴリズムの課題がリストアップされているのだが,GAFAなど有名IT企業のコーディング面接で出題された課題が掲載されているのが興味深い.

GAFA就職を目指すわけではないが,暇つぶしのためにLeetCodeにチャレンジしてみることにした.学生はアルゴリズムではなくSQLの課題に取り組むそうなので,僕もまずSQLの課題にチャレンジしてみた.

SQLの課題ということで少々舐めていたが,やり応えがある.コーディングの勉強といえば,ついついアルゴリズムに目が行ってしまうのだが,SQLもなかなか面白い.なんとか解けたとしても,模範解答を確認すると,自分が意識していなかった構文があったりして勉強になる.

下記のようなEmployeeテーブルから2番目に高い給与額を返すSQLなんかは,自分で解いたときは結構ややこしいSQLを書いたのだが,OFFSETなる便利なものがあるんですね.全く知りませんでした…

+—-+——–+
| Id | Salary |
+—-+——–+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+—-+——–+