Month: December 2020

2020年12月21日

師走感が本格化してきた。 夜は、Kの実家でクリスマス会。いろいろご馳走をいただく。ありがたし。Kの姪っ子は、会う度に成長して、言葉もどんどんはっきりしていく。なんか最近、また怖がられるようになってしまったのだが、今日はそんなこともなかった。仲直りか。 一昨日、Elixirで書いたAtCoderのコードの実装関連で、同僚のブログにかかれていた内容でEnum.read_while/3なんてのがあるのを知り、帰宅後に書き直してみたり。なんかつい冗長に書いてしまうので、もっとしゅっと書きたいものだなあと思う。 エピクテトス『人生談義(上)』を読む。晩年のミシェル・フーコーは、エピクテトスらの初期ストア派の哲学者について「自己への配慮」という言葉を用いて注目をするのだが、千葉雅也さんなどはそれをフーコーのネオリベへの親近性と解釈され得る危ういところとしつつ、共感を語ってみせる。自分もまさにそういう意味合いで興味を持ってきていたテーマだったのだが、実際にそれらの哲学者の本を読んだことがあったわけがなかったのだったが、今月の新刊として刊行されたのを期に読んでみようと思ったわけだ。パンチライン満載で、上記のようなこと抜きにしても、とてもおもしろい。熟読玩味に値する。

2020年12月20日

午前は「高機能コンピュータネットワーク」、午後は「ソフトウェア設計論」。こちらも、年末に向かって収束してきた。前者は、ハンズオン資料に基づいて作業をして、確認した内容をレポートにしていくというもの。後者は、最終課題を解いて提出。前者の課題の準備等を少しやってみたのだが、最初ややハマったものの、準備ができればあとはすんなりいきそうな感じもする。後者については、宿題は全部出したので、あとは最終課題にしっかり取り組めば「優」を取れるだろう。 この「ソフトウェア設計論」という講義は、宿題が非常に多くてかなりしんどかったのだが、思い返せば力になったようにも思えるし、先生も学生に真摯に向き合ってるからこそだということが言葉の端々からも理解ができて、とてもよい授業だったなあ。正直、途中で「なんでこんなにたくさん宿題を出すのか……」とあきれたりもしたけど、そうやって大量の課題を継続的にやるということなどこれまでなかったのだし、そうやって勉強するのが初めてなので、よかったと思う。ライザップ的なのかもしれない。 昼ごはんを食べながら、「『筑豊のこどもたち』はいま “貧困のシンボル”の末に…」を観る。土門拳の『筑豊のこどもたち』で撮られた人々の今を追うというもの。途中でふいに現れた男性がいい話をたくさんしだして驚く。その男性が土門の写真集を差し出し、彼の母親が、ごく小さな子どもだった頃の彼や世話になったひとなどが写り込んでいるのを、それとわかるように書き込みをした部分を見せ始める。それを見て、非常に感極まる思いを覚えた。写真というものに対して、このように手に触れ、書き込み、きっと撫でたりもしたのだろう、そういう写真の使用。過酷な状況を写す写真に対する、ノスタルジーと親密さの手つき。ジェフリー・バッチェン的な話にあまり興味を覚えていなかったのだが、こういうことなのであればよくわかるという気がする。 お茶しながら、沖森卓也『日本語全史』の続き。生まれ育った家庭では、ボキャブラリのレベルではほとんど方言を使わなかったので、成人して市役所に勤め始めてから、方言の語彙をいくらかは聞き憶えたということがあった。目上のひとにも使える二人称「ナン」は日本古語の「な」から、妻を意味する「トゥジ」は「刀自」からきてるのかななどと思う。そういう、古層を残す単語はあれこれありそうだ。機会があれば、見てみたいと思う。 夕食を作る。以前、Kがグリーンカレーを作った時に買ったトムヤムクンスープの素やココナッツミルクがあったので、それを使ってスープパスタ的なものを作った。食べ終わってから、パルメザンチーズを削ってたくさんいれたら、もっとよくなってたんじゃないかと思いつき、後悔する。夕食を作っている時にはいつもYouTube動画を流しているのだが、最近は藤井風さん。さらに、食べてる間も流す。 「ソフトウェア設計論」の最終課題に手を付ける。とりあえず、キリのいいところまで少しやって、あたりをつけておく。そんなに時間かからずにできそうな気もする。6〜8時間ぐらいか?と思っていたら、同期のひとが全部終わったとSlackに書き込んでおり、あまりの速さに驚く。できるひとは、ほんとにできが違うんだもんなあ。まあ、じっくりやっていくしかない。 それを終えて、瀬川昌久・蓮實重彦『アメリカから遠く離れて』を読み続け、読了。自分も、40〜50年後にこういう話をできるような老人になっていたいものだなあ(もう無理だが)。また、知識人の回想ということでいうと、たとえば「ゲンロン Vol.4」の浅田彰さんインタビューは、もちろん圧倒的ではあるものの、書かれている内容で全然きいたこともないような話題というのがあるわけではないよなあなどということも思う。一方でこの本の話は、まったく隔絶した体験についてのおしゃべりという感じがする。時代の違いがあるにしても。

2020年12月19日

午前は「画像処理特論」、午後は「オペレーティングシステム特論」。どちらも授業は今日で終わり。前者は、最後に大きなレポートを課されるとのことで、26日に内容が明らかにされ、1月9日が締め切り。後者は明日で中間レポートの2本目の締切があり、来週はテスト。どちらも、ちゃんとやりきればなんとかなりはするだろう。「優」を取りたいので、しっかりやろう。 書店へ行き、瀬川昌久・蓮實重彦『アメリカから遠く離れて』、エピクテトス『人生談義(上)』、北澤憲昭『眼の神殿』を購入。お茶しながら、沖森卓也『日本語全史』を読み始める。この本はちゃんと読まねばなあと思いつつおいてあったのだが、いよいよ読み始めた。非常に面白い。さらに、帰宅した後に瀬川・蓮實本。あまりにも素晴らしすぎて、ただただ感嘆の溜息しかでない。夕食を作り始めるはずが、1時間以上読み続けてしまう。 夕食にピェンローを作る。椎茸出汁がないので、貝柱の出汁を使うなどしたが、型にはまったことをする必要があるわけでもないものだし、材料も冷蔵庫にあるものをあれこれつっこんだりして自由にやる。簡単で美味しいし、温まる。 食べながら例によってNHKプラスを眺めていたのだが、「真実への鉄拳〜中国・伝統武術と闘う男〜」という番組が面白い。伝統武術を否定する男と、権力との関係性を勘ぐってしまう伝統武術側の闘争。並行して、田舎の格闘家がネトウヨとして人気ものになっていく筋。むちゃくちゃだ。漫画みたいなキャラたちと、中国という国の古風なんだろうなあという愛国精神。闘っている男もまた、昨今のネット的な、一本調子の主張の持ち主で、それもまたいまどきっぽい。 明日締切の「オペレーティングシステム特論」のレポートを終わらせて提出。その後、AtCoderのABC185のB問題を解くに際して、環境を整えたり、Elixirのあれこれを調べたりなどしていたらずいぶん時間が経ってしまい、肝心の問題を解くだけの付随事項にものすごく時間をつかってしまって、3時過ぎに寝る。

2020年12月18日

一昨日、昨日と宿題をひとつずつ終わらせたのに、今日もまたあらたな宿題がでてきたし、思いのほかボリュームがでかいし、まだ残っているのもあるしで全然終わらない。ただまあ、進捗してはいるし、今月末で終わりだからそれ以上増えることはないので、なんとかやっていけば終わるはずなのである。ちなみに、大学院に関することは夜にしかやらないようにしていて(研究所の研究活動に関連することは昼にも少しやることもあるけど)、当たり前だが昼間は仕事で時間がないというのもあるし、社会人学生としてメリハリをつけるという意味もある。 夜ご飯を作りながら、藤井風さんの昔のYouTube動画を観る。この方の、オリジナルの曲もかなり素晴らしい(特に「もうええわ」とか)のだが、他の人のカヴァーをしているYouTube動画の自由闊達さとエンターテイニングな演奏・歌唱は圧倒的。しかも、日本のポップスや海外の名曲みたいなのだけでなく、お兄さんの空さんとやっているチャンネルでは昭和歌謡づくしだったりして、雑食ぶりがすごい。そういう蓄積がオリジナルにも現れていて、独創的でありつつもいろんな影響が織り交ぜられているスタイルが達者な感じ。 その後、「画像処理特論」の宿題。だいぶためていたせいで、しんどい。授業の発展課題みたいな感じなので、全部いちから調べていかないとならないし、なかなか資料も見つからなかったり、そもそも理解が難しかったりして、ちょっとしたことなのにかなり時間がかかる。勉強になっているかというと、どうなんだろうなあ。理解が浅いように思える。しかし、残っているうちの最後のは、「マルチモーダルインターフェイスの最近の動向をまとめよ」というもので、XR空間における入力デバイスという、関心の高い内容について書くことができて、楽しかったなあ。

2020年12月17日

今年ももう終わってしまうのでラストスパートであれこれやっていかないと〜ということでまとめにかかっているところ。いまさらながら、いろいろやれてないことがあって、せめて年明けにシュッと動き始められるようにしていかねば。 夕食を食べながら、NHKプラスで「シュガー&シュガー」の最終回を観る。サカナクションを、なんか有名な曲がかかってるのを聴いたことがあるぐらいしか知らなくて、山口一郎さんはアーティストとコラボしたりしてるひとみたいなイメージぐらいしか持っていなかったのだが、この番組は見続けているとどんどん面白くなっていって、この方に対するイメージも向上していった。 というのはともかくとして、その中のいちコーナーで「藤井風」というミュージシャンの名前が出てきて、知らなかったのでYouTubeで観たら、めちゃかっこいい。松尾潔さんが「宇多田ヒカル以来の逸材」といっている記事もあったりして、注目されている方なんだなあ。確かに一聴するだけで、才能の器量が大きいという感じがする。あれこれ動画観てみよう。と書いたところで動画を見に行っていたのだが、最近のMVもいいが、昔の動画がすごい。中学生ぐらいからピアノを引いている動画をアップしていて、手が大きくて指がものすごく長くて驚く。椎名林檎さんのカバーとか、めちゃくちゃいい。映像の感じもいい。すごい。驚いた。 10年ぶりぐらいで16種類の性格診断みたいなのやってみたら、以前は何度ずっとINTP(論理志向みたいなやつ)だったのだが、“仲介者”型の性格 (INFP) という診断になっていて、確かにこの数年で自分はだいぶ変わったところはあるんだろうなあと思ったりもした。このページに書かれている説明の確かさがどんなものなのかはわからないが、その内容についてもだいぶその通りの面が(よかれ悪しかれ)あるのではないかと思える。 夕食後、「ソフトウェア設計論」の宿題に取り組む。最後の宿題なので構えていたのだが、やってみるとあっさり終わってしまい、やや拍子抜けしてしまった。それが、この大変だった授業の成果で実力が伸びたということなのか、大変なのになれきってしまって相対的に大変じゃないことに物足りなさを覚えるようになってしまったのか。後者な気がするけど……。

2020年12月16日

最近は、夜に仕事が一段落したあとはずっとElixir関連のことをしていたので、レポートや宿題を放置してしまっており、いよいよヤバくなってきた。今月さえ乗り切れば、授業的な意味ではだいぶ楽になるはずなので、ここでもう少しだけ踏ん張ってやるべきことをやってから遊ぼうと思って、夕食後はレポートに取り組む。まあ、そういうと嫌でしかたないみたいな感じだけど、今日のは「オペレーティングシステム特論」のレポートで、こちらは興味もあるし楽しい。しかし、満点目指して正確に書こうとしてやたら時間がかかり、結局3時間以上かかった……。時間かけ過ぎだ。 また、夕食前は会社のテックカンファレンスがオンラインで行われ、エンジニアたちがトークするのを見ていた。実際にサービスで取り組んでいることをうまくまとめて話しており、実践的な内容でよかったのではないか。また、みんな発表も落ち着いて上手にできていて、立派だなあとあらためて感心した。むしろ、最近思うのが、自分の発表が下手になったなあということで、あらためてちゃんと練習するとかストーリーを練るとかしないと、慣れだけでやってるとだめだなあと反省。

2020年12月15日

昨晩、iPhoneを落としてしまったら画面にひびが入ってしまった。渋谷に出社する用事があったので、Appleストアに寄ってあずける。ついでに、買おうか迷っていたMagick Keyboardを買う。出社してから、Google Meetでのミーティング続きだったのでiPadとMagick Keyboardのみで過ごしてみたのだが、けっこういい感じだなあ。文章書いたりとかでどうなのかはやってみないとわからないが。ともあれ、椅子に座って机に向かってばかりでなく、ソファに座って作業したいこともあるので、そういう時に使う。 というわけで数時間iPhoneがない状態で過ごしていたのだが、2要素認証してるサービスにいろいろログインできなくて支障をきたしてしまった。会社の毎年やっている開発合宿は、今年は同僚ががんばってくれて、cluster上のバーチャルオフィスでの開催。上記の理由でTwitterログインできなくて観られなかったのが(出展したのに!)、Slackにあがってくる画像を見ていると、作品も会場もすごい。出社して、「ああそうか。ここには展示されているわけじゃないんだ」と、わかってるのに思ってしまった。臨場感があるから、仮想空間ではなく現実の写し絵を見ているようにどこか感じてしまっているんだろうなあ。 帰宅して、NHKプラスで「超絶神業!マジックバトル冬の陣」を観る。前回も観たのだが、とても面白かったので期待。なんか、マジックって好きだなあ。わくわくする。あと、見栄の切り方とかがエンターテイメントという感じで、いい。実際、今回もすごい出し物がたくさんで、めちゃ楽しめたなあ。 宿題やレポートをやらなければならないのだが全然やる気がでないので、Elixirを書いて遊ぶ。AtCoderの問題をElixirで解こうと思ったのだが、ローカル環境でいい感じに解いていく仕組みが整備されていないのでそこから始めたりしたら、結局問題自体を解くことのないまま時間が過ぎてしまう。

2020年12月14日

朝、昨日書いた『プログラミングElixir 第2版』の書評を公開した(「『プログラミングElixir 第2版』を読んでいまこそElixirに入門しよう」)。あんまり伸びないだろうなあとは思いつつ、コミュニティの方々が拡散してくださったおかげで、多少は広まった。しかし、この日記を書いている時点ではアクセス数が140程度で、全然読まれてない感じ。まあそんなものだろうけど、もう少し読まれたいところだよなあ。 Twitterに、余談のような話を書いた。書評に混ぜ込むと意味不明になり過ぎるのでいれなかった話。 WSA研でNervesについての発表があったのが11/13で、そこからElixirを始めたところちょうどこの本が刊行され、ありがたくもいただけることになり、この記事を書いたのがちょうど1ヶ月後の昨日で、この流れはもはや運命。正確に言えば、計画された偶然であるといえる。刻が満ちた。というとすごく独善的な世界解釈ということになろうが、わたくしにとっての世界とはそのような偶然によって開示される何事かで今まであり続けたし、これからもあるだろう。わたくしができるのは、そうした偶然性に最大限のっていき、世界を押し広げていくことである。そのようにして生きている。 もちろん、そのような偶然的な世界の開示は先達のみなさまによる営為によるもので、最大限の感謝を抱いている。そういう縁のようなことに感謝しながら、わたくしもまたそれを誰かに繋げ、また、新しい何事かを作り上げることによって、世界を押し広げていきたいとあらためて思うのであった。 今日は、Railsで開発をやってきたひとが、昨今のパラダイムシフトに対する焦燥感のようなことを述べるブログポストが話題になっていた。あんまりひとのいうことに左右され過ぎないほうがいいんじゃないかなあと思いつつ、いっていることはわかるし、考えるべきこともある。そのブログでは、Rails的なパラダイムからJavaScriptによる非同期処理パラダイムに自分が移行できてない焦りについて書かれていた。それに対して、Railsがどうのとかじゃなくて本質的な理解があれば横展開してやっていけるんじゃないかという意見もあり、そういうこともあろうとは思うけど、実はその考えではうまく行かないこともあるだろう。まさに、件のブログポストはパラダイムシフトへの乗り遅れについて書いているからだ。 Elixirのことにひきつけていえば、RailsでもNode.JSでもいいけど、そういうものとは全然パラダイムが異なっている。そして、それは「普通のWebアプリケーション」を書いているひとにとっては、とっつきやすいものであるとはいえないのは確かだろう(もちろん、勘のいい人はすぐ習得するのかも知れないが)。パラダイムシフトというのは、そういう形でやってくる。また、Webアプリを作るにしても、今後はますます機械学習への少なくとも基礎的な理解がないと、ただ使うだけで中身はブラックボックスになり、刀の柄を持つのではなく刃を持たされているという状況になるだろうと思う。開発だけでなくインフラについても、DataOpsを担うのが当たり前になってくれば、無縁ではいられない。そういうのもパラダイムシフトだろう。 そういう意味で、技術要素に過剰適応するのは問題ではあるが、かといって「本質」を押さえていればだいじょうぶだと安心することもまた、そもそもパラダイムシフトが起こり得るという視座が欠けたもののみかたである可能性もある。いざパラダイムシフトが起こってみると、いまは横展開でうまくやっている人々も、あっという間に置き去りにされてしまう。それは、技術要素に過剰適応するひととは、単にたまたまいま取り組んでいる技術がそういう流れになっていないというだけの違いなのかも知れない。そういう視座のもとに、目の前の必要性だけでない、視野を広げるための取り組みが必要なのはないか。そう思って自分は取り組んでいきたい。 少し違う始点で、人気投票みたいなので技術を語るのはあんまりいいことだとは思わない。ペパボにはhsbtさんという素晴らしいRubyコミッタがいるから、OSSへの理解度や活用度についてアドヴァンテージがあるだろうと思うけど、OSSだって人々の営みなのであるから、そこに対する敬意を払うことは必要なんじゃないかと思う。それは、上記したような先達の取り組みに対する「縁」のようなことをだいじにするという話とつながる。技術は、技術だけでは生きられない。人々の実践があってこその技術の価値である。そういうことを忘れないようにしていきたいものだ。 昨晩、寝る間際にElixirをビルドしてみるかとやってみたら、Nerves開発してるとMIX_TARGETという環境変数をexportしていることが多いのだが、その場合にElixirのテストが一部失敗するという問題があったのでpull requestを送ったところ、取り込んでいただいた。やったこと自体はたいした内容ではないが、OSSの楽しさを感じたなあ。 fix test failures when MIX_TARGET is set with a non-empty value by kentaro · Pull Request #10573 · elixir-lang/elixir 夜は、役員忘年会で麻布十番の「尾崎幸隆」。もちろん、個室完備で感染予防は万全。美味しかったなあ。もっとやっていかねばという気持ち。

『プログラミングElixir 第2版』を読んでいまこそElixirに入門しよう

この記事は#NervesJP Advent Calendar 2020の14日目です。 13日目はわたくしの「mix upload.hotswap (kentaro/mix_tasks_upload_hotswap)の裏側」でした。2日連続の登場です。 『プログラミングElixir 第2版』をご恵贈いただきました。ありがとうございます。ちょうどElixirについて学び始めたタイミングでの刊行で個人的にとてもタイムリーなこの本について、本記事で簡単に紹介します。結論だけ先にいうと、プログラミング言語についての本としても読み物としてもとても面白いので、ぜひ広く読まれたいと思います。 Elixirとわたくし 前述の通り、この記事は#NervesJP Advent Calendar 2020向けに書かれるものです。Elixir本の紹介記事なのでNervesのカレンダーに書くのはカテゴリエラーのようですが、自分自身にとってはElixirとNervesとは切っても切り離せないものなので、こちらに書いています。 Elixirの存在自体は(わたくしはRubyistでもあるので)2012年のリリースの頃から知ってはいたものの、それ以上深入りすることなく2020年秋まできてしまいました。2020年11月13日に行われた「第7回WebSystemArchitecture研究会」でNervesというものについて語られており、それはわたくしの関心に近いものである旨を、参加した研究所の同僚から教えてもらいました。それを見た瞬間「求めていたのはこれじゃん!」とピンときて、その週末は連日明け方まで調べたりコードを書いたりデバイスをいじったりしました。公開されたその時のお話のスライド(@zacky1972先生による「Nerves on Cloud (Japanese edition) 」と、@kikuzokikuzoさんによる「Elixir/NervesHubによるエッジコンピューティング環境実現に関する検討」)も素晴らしく、それからはすっかりElixir漬けの毎日で、急速に夢中になりました。何がそこまでわたくしを夢中にさせたのでしょうか? Elixirとこれからの世界 インターネットサービスのエンジニアをやってきた中で、わたくしが関心を持ってきたことのひとつに、いかにシステムを更新し続ければいいのかということがあります。特にOSSに強く依存する昨今のシステム開発においては、エコシステムと歩調を合わせていくことが求められます。さらには、IoTのようにシステムが現実世界にはみ出していくようになると、エコシステムとの共存にはまた別の難しさが現れてくるでしょう(そもそもアップデート自体が大変だし、一様なサーバ群とは異なる多様なデバイスが存在することになるから等の理由)。4月から通っている大学院では、そのあたりを研究したいと思っているところです。 そういう関心からしても、ElixirやNervesには興味深いことがたくさんあります。NervesHubという仕組みによるOTA(Over The Air)アップデートを可能にする仕組みがあります。また、Elixir(とErlang)という言語のあり方そのものに対して、温故知新的に(?)まさにいま求められているものじゃないかという気づきを得たりもしました。すなわち、@takasehideki先生による以下の図の通りです。 昨今は、microservicesだとかなんとかで、ひとつのホストという制約を超えたコンピューティングが、これまでとはまた別のあり方で発展しつつあるように思われます。上図などはまさにそういうことを表しているのでしょうし、自分の関心的にも取り組んでいきたい領域です。そういう関連もあって「mix upload.hotswap (kentaro/mix_tasks_upload_hotswap)の裏側」という記事にも書いた通り、デバイスの開発効率向上という観点からのHot Code Swappingの応用についてもやってみたりしているところです。 そんなわけで、自らの関心に基づくやりたいことに対しての助けになりそうなNervesからElixirに入ったのですが、Elixir(とErlang)そのものにももちろん強い関心を持っています。それで各種ドキュメントを読んでいたところ、本書がちょうど刊行され、しかもいただけるという光栄に浴すことになったわけです。みなさま、本当にありがとうございます。ご縁ですね。 著者について 著者のデイブ・トーマスさんはThe Pragmatic Programmers, LLC.(PragProg)の共同創業者。これまで刊行された著名の書籍をあげるだけでも、綺羅星のような名著ぞろいというすごい人です。多くのプログラマが「この1冊」に挙げる『達人プログラマー』、原著第1版は1999年に刊行された浩瀚な『プログラミングRuby』、いまも版を重ねるAgile Web Development with Rails(邦訳はもはや追いついてないので原著へのリンク)といった書籍や、アジャイルソフトウェア開発宣言への署名者としてアジャイル開発プロセスの推進者としての活動を通じて、この20年以上の我々の業界でいまや当たり前になったプラクティスを作ってきたひとりです。その彼が2014年に刊行したのが本書の第1版で、それを著者が2018年にアップデートしたのが本書の原著です。 そういうひとが書いた本ですので、一筋縄ではいきません。著者も「はじめに」で書いている通り、あの巨大な『プログラミングRuby』とは明確に異なるアプローチで、Elixirという言語の良さが、時には著者の個人的な好みも色濃く織り交ぜながら書かれています。そんなわけで、本書はプログラミングそのものが初めてのひとよりは、なんらかの言語による経験がそれなりにあるひとの方が楽しめるだろうと思います。そういうひとにとっては、達意のプログラマによる目を開かされるような創見が豊富な本書のような本を、他の言語との比較において楽しめるだろうからです。 赤いカプセルをとれ 「純粋で正確」な関数型言語を検討はしたものの魅力を感じなかったという著者は、Elixirに「不完全な世界」を容れる包容力がありながら純粋な関数型言語とは異なる「実用的なクオリティ」を見出し(本書386〜387ページ)、この本をのっけからこんな感じで始めます。 赤いカプセルをとれ 本書1ページ これは、もちろん映画「マトリックス」を踏まえたフレーズです。つまり、Elixirを学ぶというのは「世界に対する見かた」を根本的に変えるということなのです。オブジェクトの持つ状態を更新することが眼目となるオブジェクト指向言語の前提とする世界に対して以下のように宣言します。 でも、これは現実の世界ではない。現実の世界では、抽象的な階層構造をモデル化したいわけではない(なぜなら、実際には、真の階層構造なんてそう多くはないからだ)。私たちは仕事を済ませてしまいたいのであって、状態を維持したいわけではない。 (中略) あなたの世界へのまなざしも、オブジェクト指向におけるクラスの責任について考えるのをやめて、仕事を終らせる、という観点で考え始めるように、変化していくだろう。そして、たいていみんな、それは面白いって認めてくれるはずだ。 本書1ページ、3ページ こうしてレッドピルを選び取った我々は、「ネオ」のように世界の実相(?)をデイブ・トーマス御大の語り口に導かれて、次々に見ていくことになります。 本書の特色 本書の文法事項の説明を開始する第2章は、こんな文章でまとめられます。 ErlangのクリエータであるJoe Armstrongは、Erlangでの等号記号を、代数での等号記号の使われ方にたとえる。 […]

2020年12月13日

今日も一日授業。午前は「高機能コンピューターネットワーク」、午後は「ソフトウェア設計論」。いよいよ12月も中旬で、しんどかった第III期も終わりに近づいてきた。とはいえ、最後に試験やレポートの大物が残っているわけだが。 授業を受けつつ、昨晩書いた記事「mix upload.hotswap (kentaro/mix_tasks_upload_hotswap)の裏側」を公開。先日書いたごく簡単なコードについての解説だが、やっていることがいろいろあって濃い内容になった。そのモジュールについてもHexに公開したらどうかというサジェスチョンをいただいたので、ドキュメント周りを少し整備して、mix_tasks_upload_hotswap | Hexにパブリッシュした。最近の言語はこのあたりが整っていて楽でいいなあ。 授業を終えて、お茶しながら、同僚のU氏による単著『Webで使えるmrubyシステムプログラミング入門』の続きを読み、読了。Linuxにおけるシステムプログラミングを、mrubyの提供するAPIを用いた実装を通じて学べるのだが、構成が発展的なよく練られたストーリーになっていて、知見が有意味に積み上がっていくのが気持ちいい。また、パフォーマンスやデバッグなど各種ツールのハンズオンも充実していて、実践的。そして、シスプロ系の類書と異なるのは、なんといっても組み込みできること。それをmod_mrubyにならったApacheへの組み込みを通じて詳細に解説してくれる。本書さえあれば、いざとなれば自分でもできそうだ。とても良い本だと思う。 帰宅して、明日のAdvent Calendarに投稿する『プログラミングElixir 第2版』の読書感想文みたいなものを書く。書き始めるとあれこれ書き出して、やっぱり長くなってしまう。まあいいか。さらに、その記事にでも書こうかと思ってた話を、長くなりすぎたせいで書けなかったのでQiitaに書いておいた(「ExUnitのassertでパターンマッチを用いて複雑なデータ構造をテストする」)。Qiitaはなんかいろいろ風向きが厳しい感じになっているが、しかしやっぱりコミュニティの蓄積があるので、tips的なのはそこに書いておくのがよかろうという感じもする。