VPSの環境壊してしまったので,色々入れ直す.
なぜかdockerのコンテナを新しく起動しようとすると,no such fileとか言われるだけで起動できなくなってイメージ作り直したり色々してたのだけど,結局ホストのOSを再起動したら問題なくなった...(少し前にyum updateしたので,そのせいな気はする)
ついでなので,いままでWebからコンテナ管理するのにshipyard 使ってたのを, portainer に変えた.シンプルでイメージ小さいので良い.ブラウザ上から操作すること滅多に無いけど,SSHできない時とかいざという時に安心(?)
そういえば最近のDocker for Windowsは,WindowsコンテナとLinuxコンテナ同時に使えるのか...と思ったけど,切り替えが簡単になったてきなやつか.docker psしてwindowsとlinux両方出てくると嬉しいのに.多くの場合片方しか使わないので実用上はこれで良いのだろうけど.
* Kotlinでコンパイルした後の生成物を眺める
apkやjarを作るとき,*.kotlin_builtins と kotlin_module ファイルが含まれてるので何だろうと思ったけど,前者はkotlinの組み込み型をリフレクションやIDE上から扱うためのインターフェイスの情報が入っているっぽい.後者は,クラス外のトップレベルの関数がどこにあるか等をモジュール(?)単位で持つためのファイル.
kotlin-reflectを使って何かするとかでなければapkに含める必要は無さそう.とりあえずgradleでビルド時に除外して様子見.将来的にProGuardあたり?でこの辺も不要なの消してくれないかな.
kotlin_builtinsの中身がよく見る何かだと思ったけど,Kotlinの実装見てみると気のせいじゃなくてやっぱりProtocol Buffersだった.
ついでなので,Kotlin独自のクラスの情報をどうやって持ってるのか調べる.コンパイル後は一見普通のclassファイルだけど,リフレクションでもKotlinとしてのの型情報取れるみたいなので.
kotlin_moduleとkotlin_builtinsの他にもMetadataアノテーションとして,クラスファイルに埋め込んだ情報を利用している.ScalaにもScalaSignatureというのがあったけど,それっぽいもの?
d1,d2とか謎のStringフィールドしか無いけど,これもProtoBufでエンコードされてkotlinとしてのメソッドのシグネチャや型情報っぽいものが色々入っている.
コレクションクラスにfoldとか生えててとてもうれしいけど,単純な場合はちゃんとforループに展開されているのも確認した.
Kotlin
年に一回くらいKotlin触ってるけど,そろそろAndroidアプリもKotlinで使えという感じらしいので,環境整えたり.
お昼,いつもより少しだけ良いもの食べる.
結局連休中,ずっと体調悪かった気がする.
飲み会.
とりあえず体調は戻ったので,買い物行ったり掃除したり雑用を色々片付ける.
だるくて動く気力がないので30分くらいコード書いて6時間くらい寝るのを繰り返していた.
昨日からの48時間中,4~5時間くらいしか活動してない...
微熱.喉痛い...
喉痛いのは喋りすぎたせいな気がするけど,やっぱり風邪引いた気がする.
* ニコニコ超会議3日目(家に帰るまでが超会議的なやつ)
ホテルで朝食取った後,幕張から帰ってくる.
疲れてるのと体調悪くなりそうな予感がするので寝る.