WSL2でmikutterを動かす

WSL2すごいですね。みなさん使っていますか?僕は使っています。

WSL2 + Docker + VSCodeの環境ならWeb開発もあまり不自由なくできそう……ということで思い切ってメインマシンをWindowsにしたんですが、この環境の弱点の一つとして、令和三種の神器のひとつであるmikutterの動かし方があまり明らかではないという問題があります。WSL1でmikutterを動かすことについてはすでに id:cobodo さんによる記事があるんですが、WSL2だとネットワークが分離されているようで追加の設定が必要になっています。せっかくなので2020年7月現在の正解として、他の部分も含めてまとめておきます。

cobodoさんの記事はこれです。 cobodo.hateblo.jp

mikutterと必要なものを入れる

WSL2の身上は高速なディスクアクセスです。ゲストはホストを無視してLinuxファイルシステムに書き込むので、普通にLinuxを使っているかのような速度でI/Oしてくれます。mikutterもちゃんと ~/mikutter とかに入れてあげましょう。

$ cd ~
$ git clone git://mikutter.hachune.net/mikutter.git

まっさらなUbuntu(この記事では全面的にUbuntuを仮定します)にはあんまり開発に便利なものが入っておらず、一部gemのnative extensionを入れるときにコケるので入れます。あと依存ライブラリとフォントも入れます。不思議な旅をしたい人は 開発環境部分については bundle install の出力とにらめっこしながら1つずつ解消していってもいいと思いますが、フォントは闇なのでおとなしく先人の知恵を借りたほうがいいと思います。

$ sudo apt update
$ sudo apt install gcc make ruby libgtk2.0-dev libidn11-dev fonts-noto fonts-noto-cjk fonts-noto-mono ttf-ancient-fonts
$ sudo gem install bundler
$ bundle install --path=vendor

たぶん今からWSL2を始める人がUbuntuを入れると20.04が降ってくるんですが、Rubyはなんと2.7.0p0が入ります。Ubuntuで最新リリースが使えるなんて夢みたいですね(2020/7/4現在)。あと上記コマンドでは面倒なので bundler をグローバルに入れています。どうせ仮想環境だし……。気になる人は rbenv 使ったり GEM_HOME いじったりして頑張ってください。僕は大丈夫です。

X serverを立てる

VcXsrvを使ってWindows上にX serverを立てます。どうでもいいけどSourceforgeの見た目がきれいになっててびっくりしました。

sourceforge.net

WSL1ではWSL環境がWindowsと同一ホスト上で動いていたらしく DISPLAY=:0.0 を指定するだけでVcXsrvに繋げたようなのですが、WSL2ではネットワークが分離されたため、普通に繋ごうとするとWindowsファイアウォールが邪魔をしてきます。"WSL2 Xorg"とかでぐぐると以下のStack Overflowが出てきます。

stackoverflow.com

要点は

  1. VcXsrv起動時に"Disable access control"をチェックしておく
  2. VcXsrvのpublic domain上でのBlock ruleを無効化する(これがあると他のルールを無視して問答無用でブロックされるため)
  3. Public domain上でInboundのTCP 6000を開ける(環境によっては6000-6063を全部開けたほうがいいかも?)
  4. DISPLAY 環境変数に接続先IPを指定する

の4点です。

2と3はWindows Defender Firewallのルールです。タスクバーの便利ボックスにWindows Defender Firewallとか入れると出てきます。Block rule無効化のやつはDisable access controlを忘れてWindows Defenderにファイアウォールを設定してもらうと作られる設定っぽいので、存在しないなら存在しないでよいです。Windows Defender Firewallでは以下のようにルールが見えます。Allowルールは緑のチェック、Blockルールは赤の止まれ、無効化されてるルールは無のアイコンが表示されます。

f:id:osa_k:20200704174330p:plain

TCP 6000はX serverが待ち受けてるポートです。WSL2上で見えるIPはプライベートIPなのになんでPublic domainをいじる必要があるのかWindows初心者なのでいまいち分かってないですが、とりあえずこれで動きます。

今回はTCP 6000を開けるためにこんなルールを作りましたが、VcXsrvがこのポートで通信できればなんでもいいです。

f:id:osa_k:20200704165348p:plain f:id:osa_k:20200704165410p:plain f:id:osa_k:20200704165419p:plain

上記SOからリンクされてるwsl-windows-toolbar-launcherのREADMEも情報としておすすめです。 github.com

DISPLAY 環境変数に入れるIPアドレス/etc/resolve.conf を見ると書いてあります。と上記SOに書いてあります。 ~/.profile に以下の設定を書いとくとよいと思います。

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0

SOの回答には export LIBGL_ALWAYS_INDIRECT=1 も書いてあるんですが、これが何をするのかよく分からないのと、mikutterに関してはなくても動いてるので無視してます。OpenGLを使うタイプのアプリケーションだと影響してくるのかな。

IMを入れる

WSLはunixソケットに対応していなくてdbusが使えない……という情報がインターネットで散見されますが、最近は使えるっぽいです。使えるのはうれしいので fcitx-mozc を入れましょう。以下の記事がよくまとまっていますが、情報が古いためか不要な操作がそこそこ挟まっているようです。2020/7/4現在では本記事の通りにやればうまく動くはずです。

kazblog.hateblo.jp

$ sudo apt install fcitx-mozc dbus-x11
$ fcitx-autostart

無事に起動したら fcitx-config-gtk3 からIMを設定して完了です。注意点なのですが、fcitx-autostartDISPLAY 環境変数が正しく設定されてない場合、正常終了したように見せかけて無の fcitx を起動してきます。この状態で fcitx-config-gtk3 を起動するとdbusに繋げないよーみたいなログが端末に出てくるのと、IM一覧が空っぽになるので分かります。そうなってしまったら pkill fcitx して再チャレンジしましょう。 fcitx-autostart は謎が多く、エラーメッセージっぽいものが出ていても動作に支障がないことも多々あります。究極的には実際に日本語入力できるかどうかで判断するしかないと思います。

XやGTKやQtにIMを使ってもらうには環境変数を適切に設定する必要があります。~/.profile とかに書いときましょう。

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

mikutterを使う

念のため新しいWSLシェルを開いて実行すると環境変数の設定漏れとかが防げておすすめです。fcitxのデフォルトではCtrl + SpaceでIM切り替えです。

$ cd ~/mikutter
$ bundle exec ruby mikutter.rb

𝕎𝕖𝕝𝕔𝕠𝕞𝕖 𝕥𝕠 𝕦𝕟𝕕𝕖𝕣𝕘𝕣𝕠𝕦𝕟𝕕...

2020年の目標 - 6月まとめ

引きこもり生活4ヶ月目。なんかもう1年くらい経ってる気がする。

osak.hatenablog.jp

テキサスは全面的に経済封鎖を解除したところ、すごい勢いで新規感染者数が増えてロックダウンっぽい状態に戻ってしまった。でも完全には巻き戻っていなくて、レストランは依然として営業できているっぽい(おそらく一度再開した業種は全部そのままになっている)。まあ経済をずっと止めててもそれはそれでヤバそうではある。


ゲーム。6/10まででフィリスのアトリエを全部終わらせた。いやたぶんゲームとして全てを遊び尽くしてはいないんだけど、ソフィー先生は倒したし、時間切れエンドも不合格エンドも見たし、地図は埋めたし、トロコンもした。一部強敵は面倒になって諦めてしまった。不合格エンドはちょっと身に覚えがありすぎて胸が痛くなってしまった。

予想通り、フィリスのアトリエは結局100時間くらいプレイしたことになる。先月の記事にも書いたとおり、遊べば遊ぶほど味が出てくるゲームなので、早解きとか縛りプレイとかで周回すれば延々と遊んでいられそう。他にやるゲームがなくなったらそういう時間の使い方もいいのかなあ。

フィリスの後はプログラミングの方に時間を使っているので他にゲームはやってない。次はリディスーやって、そしたらアーランドシリーズかなあ。そういえばアルトネリコもガスト開発だと言うことを知ったのでやりたい気持ちが高まっている。


株。あんまり見てない。一応通算プラスは維持されている。


体重。63.5kgくらいで安定している。先月は63kgって書いてあるからちょっと増えてるな……。


新しい技術。ようやく真面目にRustを始めた。1年くらい前に入門した時はライフタイム周りで結構ハマった記憶があるんだけど、今回は既存のフレームワークに乗っかる形で学習を進めたからか、常識的なエラーにしか遭遇しなくて快適だった。Non-lexical lifetimeという改善がちょうど間の時期に導入されたっぽいのも効いているのかな。

Rustの習作として、かねてより欲しかった雑なことを書き留めておくブログを作った。shinhさんの「はじめてのにき」を全面的に意識している。Twitterは自分のコントロール下にないのが嫌だし、はてなブログはちょっとオフィシャル感が強くてどうしても身構えてしまうので……。

https://tsurezure.osak.jp/

リポジトリgithub.com

アプリケーション本体はHerokuの無料プランで動かしていて、独自ドメインSSLを使うためにAWS CloudFrontを噛ませている。フロントエンドは面倒なのでReactで書いている。ロード時間とかアクセシビリティとかを真面目にやるならサーバ側でレンダリングするべきだとは思うけど、その手の処理をサーバ側に書くのは面倒なのと、まあ基本的には自分用だし……ということでこういう実装になっている。気が向いたらSSRとかしたいね。

数学はやってない。まあRustが楽しかったのでよし。そういえばICFPCの練習でAWS Batchも触り始めた。あんまり今年の問題はAWS Batchが役に立つ雰囲気ではなさそうだけど。


中国語。Ankiやってるけどだんだん飽きてきて頻度が落ちてきた。以前は1〜2日に1回やってたけど、今は3〜4日に1回くらいのペースになっている。Twitterとかでたまに流れてくる中国語がそこそこ読めるようになってるのは楽しいけど、あんまり他にモチベーション源がない。文法より語彙を増やす方に切り替えたほうがいいかなあ。


本。なんか映画化するとかで話題になってたので「夏への扉」を読んだ。小説読むのかなり久しぶりな気がするな……。ラノベっぽい展開で読みやすかった。


7月は待ちに待ったICFPC。今年こそはうなぎに勝ちたい(テンプレ)。在宅勤務でちょっと体力が余ってるので、今から色々と練習をしている。

あとは重めの書き物……。取り掛かるきっかけがなかなか掴めなくて難しいね。秋あたりから新年まで日本で遊ぼうと思っているので、その間に温泉旅館にこもって執筆とかしたい(願望)。まあまだ半年もあるので何かしらできるでしょう。

ぶぶかっぽい味の油そばを作った

醤油、みりん、酒を混ぜて醤油ダレにする。このタレで豚バラを茹でてダシを取る。脂は取り除く。丼にこの醤油ダレと豆板醤、オイスターソース、ごま油を入れて混ぜる。茹でた麺を入れて混ぜる。おわり。

油そばを食べたくなったらいつもこんな感じでやってるんだけど、今日のは格段にぶぶかっぽさが高かった。醤油ダレが凝ってるせいか、もしくはちょっといい麺を使ってるのが効いていると思う。

やることリスト(2020/06/06現在)

どっかで一覧できる形にしとかないと忘れたり優先順位付けに失敗して永久に何も進まなかったりするのでメモ。思いついた順に片付けていきましょう(願望)。

  • ログ取りの話を書く
    • とりあえず書きたいトピックだけ並べる
  • 例外の話を書く
    • とりあえず書きたいトピックだけ並べる
  • はてなブログダウンローダーを書く
  • Mastodonダウンローダーを書く
  • 手元にあるデータをElasticsearchに突っ込む。メタデータを適宜抽出してフリーフォーマットでタグ付けする。正規化はデータが溜まったら考える。入れたいもの:
  • Elasticsearchのフロントエンドを書く
  • あずにゃんゴーストを作る
    • Ninix-aya http://ninix-aya.osdn.jp/
    • 伺かの情報が散逸している上、InfoseekやGeocitiesの閉鎖によってunreachableな情報があまりにも多い。表示部分のガワだけ借りて自分で中身を作り直すのが楽かもしれない……。
  • サーバ(ancient-one)が安定的にmDNSで解決できるようにする(なんで今そうなってないのか謎)
  • サーバ上で動いてるもののメトリクスをCloudWatchに送る
  • ブログほど他人に見られることを意識したものではない、適当に思ったことを書き捨てておくための場所が必要っぽい。shinhさんのはじめてのにきみたいなやつ……。
    • こういうのこそ練習プロジェクトにいいのでは?RustかScalaで書いてみたいね

2020年の目標 - 5月まとめ

引きこもり生活3ヶ月目。必要以上に人と関わらなくていいの楽でいいですね。

osak.hatenablog.jp

オースティンに限ってもアメリカ全国的にもコロナウイルスが収束している気はしないんだけど、なぜかトランプは経済活動を再開させてしまった。まあずっと止めてるとそれはそれでヤバいというのは分かるけどさ……。記録のためCDCの新規感染者数チャート(5月28日現在)を貼っておこう。

f:id:osa_k:20200528183313p:plain

ソース www.cdc.gov

レストランは入店率を25%以内に抑えるという条件下でイートイン営業が許可されたものの、自分がよく行く店は5月中は相変わらず様子見でテイクアウトしかやってなかった。Domain(ショッピングモール)のバーとかは結構開いてたらしい。6月から順次色々なところが復活していくっぽい。床屋も5月半ばから営業再開したけどまだ行ってない。

仕事が完全にリモートでなんとかなっているので、これはもはや家にいる必要すら無く旅をしながら仕事することも可能なのでは……?とか考えていた矢先に日本人の同僚が日本に避難すると言っていたので、ちょっと羨ましくなって帰国に必要な手続きとかメリットデメリットとかを調べた。今の所、入国拒否地域が111カ国・地域あり、ここに滞在してた人は日本国籍か永住権がない限り日本には入国できないっぽい。拒否されてない地域は大半がアフリカとアジアにある。アメリカは当然無理。そして日本に入国すると強制的に検査を受けることになり、陰性でも14日間の自己隔離が要請されている。逆にアメリカに入国する方はかなりザルで、中国やヨーロッパ諸国のいかにもヤバそうなところから以外は基本入れる。まあアメリカもヤバいリストの一員だからね……。

とにかく、今日本に行っても自由に動けないし、そもそも飲食店もあんまり営業してないっぽいので積極的に行く意味はなさそうだなあという結論になった。自宅の引きこもり環境が完璧すぎて、そのへんのホテルに引きこもるくらいなら自宅にいたほうが数百倍QoLが高い。14日間隔離さえなければ温泉旅館に逗留とかしに行ったかもしれないけど……。あと医療の質やそもそも日本語が通じるかという問題はあるが……。まあコロナウイルスはかかったら即病院行かないと死という感じの病気ではないっぽいので、平時より極端に危ないということはないかと思っている。

コロナウイルスはそれとして、今は暴動の方がヤバい。黒人が警官に殺された事件を発端として各地でデモが起きており、その参加者が暴徒化して店を襲ったりしているらしい。5月の終わりの方で始まって、オースティンにも30日くらいに到達してしまった。ニュース映像のぱっと見ではダウンタウン近くのI-35をデモ隊が練り歩いてる感じで暴徒化してないのかな?と一瞬思ったが、6th streetの店は略奪の被害に遭ったらしい。極左が暴動を煽っているという話もありなんともきな臭い。そうでなくてもみんな自粛続きでフラストレーションが溜まってるんだろうなあとは思う。とにかく平和に収束してほしい……。


ゲーム。ずっとフィリスのアトリエをやっていた。ソフィーのアトリエは5/3に裏ボスとDLCボス以外の要素をクリアしたので一段落着いたことにして、そのままフィリスのアトリエに切り替えた。6/1現在で90時間プレイしている。DLC抜きで一通りエンディングを見た後で強敵討伐がてらDLCキャラを攻略し終えるまでで87時間くらいかかって、それも一段落ついたので2周目を始めた。2周目は未回収の要素(キルシェとノルベルトの推薦状とかバッドエンドとか)とソフィー先生討伐のトロフィーの回収が目的。たぶん合計で100時間ちょいプレイすることになると思われる。ライザとソフィーが60時間ちょっとで一通り終わったことを考えるとフィリスは明らかにボリュームが多い。自由度が高いので初見だとあんまり機械的にストーリーを進めることができないのも一因だと思う。

ゲームの方向性は完全に後から味が出てくるタイプで、正直開始から15時間くらいは慣れる間もなく新要素と新キャラがガンガン出てきて、しかも個々の要素にあんまり深い掘り下げがないので何をやっていいのかかなり迷った。仲間キャラはあんまり脈絡なく出会うのでパーティに入れようという気持ちになれないし、広いオープンワールドを楽しもうにも日数制限が気になってしまい自由に探索できない。そもそもあんまり強いアイテムが作れないので強めの敵と戦いづらい。こういった要素が重なった結果、最初の方は結構精神負荷が高くて、1日3時間くらいプレイしたら疲れて終了してしまっていた。

結局ライゼンベルグには160日くらい余らせて到着した。なんだよ全然余るじゃん!!公認試験を突破して日数制限がなくなってからは精神的に余裕ができたので、早々にスカイフリーカーを錬金してあちこちを開拓して回った。仲間のイベントも最初の数個を見るとキャラの人となりが分かるようになるので、そこからはいい感じにストーリーに入り込めるようになった。どのキャラもいいんだけど、やっぱりリア姉とイルちゃんのストーリーは明らかに力が入っていて面白い。イルちゃんがあまりにもかわいいので、攻略し終えた後もずっと戦闘パーティに入れていた。ソフィー先生もかわいいので(以下同様)。レシピ発想もソフィーのアトリエに引き続き好きなシステムだけど、ソフィー式の最初から条件が見えてる方が分かりやすくて好き。

つまるところ公認試験突破(20時間くらい)まではチュートリアルでそれからが本番なんだけど、こんなに長いチュートリアルなのにそれといって示唆がないし、あんまり導線もはっきりしていないので不親切だと感じた。逆にチュートリアルさえ終わらせれば、広い世界の冒険と個性豊かなキャラのシナリオの両方を制限なく遊べるようになって、ソフィーのアトリエの拡張版のような気持ちで楽しめるのでかなり満足感がある。公式サイトでは公認試験合格後の流れについても結構ネタバレされているので、そこまで読んでいる前提なんだろうか。

フィリスのアトリエを一通り遊んでからmikutterの薄い本 vol.11に載ってるしじんさんのエロ漫画を読んだら、ネタが全部分かるようになっていてかなり良かった。というかこの本の内容は大部分が悪いオタクの妄想だと思ってたんだけど、実際のところかなり原作に忠実で驚いた。アトリエすごいな。


線を引いたけど他のゲームの話(当ブログはアトリエブログではありません)。まあ他のゲームはプレイしてはいないんだけど。先週くらいからTwitterで話題になっているHelltakerというのが気になっている。

store.steampowered.com

ゲーム自体は1時間くらいで終わる倉庫番らしいけど、キャラがかわいい。サクッと終わりそうなのでフィリスが終わったらやろうかな。

Youtubeを眺めていたら、CelesteのMODの動画を見つけた。これは人間辞めてるWR保持者がSpeedrunしてるとこ。

youtu.be

CelesteにMOD文化があったことがまず驚きだし、こういう完全に新しいギミックを追加できるとも思っていなかった。面白い。


株。なんか知らんが順調に回復したのと、Datadog株が突然+50%とか叩き出したのとで通算勝ち越しになっている。まあ現時点の通算にどれだけ意味があるのかは謎。まだ売る気はないし……(いい感じになったら売ろうと思って買った航空株は死んでいる)。


体重。全然運動してないので流石に単調増加していて、63kg前後になっている。4月中はなんか安定してたんだけどまた増え始めた。もうちょっと真面目に運動するべきか。


新しい技術。Database Internalsをちょこちょこ読み進めている。あんまり進まない。

Twitterで、階段状の折れ線を細かくしていくと斜線に収束するっぽいけど、長さが連続的に√2へ漸近しなさそうなのはなんで?という話題が出てきたので議論を追っていた。

自分の当初の理解では斜線に収束するというのがそもそも誤謬だと思っていたんだけど、どうも常識的な位相(ハウスドルフ空間)では斜線に収束すると考えてよいらしい。ただし曲線が収束することと、距離関数が連続的に収束することは別問題である、というのがこの問題の肝になっているようだ。確かにそう言われた上でよく考えてみると、曲線がだんだん収束して一致するという時に考えている「曲線間の距離」と、曲線そのものの長さを測る「曲線関数の積分値」は違うものを指している。

参考

togetter.com

https://note.com/keyneqq/n/n2ead38a59af5note.com

集合と位相についての理解が浅すぎて困ることがよくあるので、この機会にちゃんと勉強しておきたい。ルベーグ積分くらいは理解したい。

技術と言うか広い意味での物作りとしては、ちょっと思い立ってアイコンを改造してソフィーのコートを着せた。

f:id:osa_k:20200528195343p:plain

頭に付けてるバンダナ(っていうのか?スカーフ?)も再現したかったんだけど、どうしてもいい感じにならなかったので諦めた。まあいいんじゃないでしょうか……。フィリスのアトリエのモデルを見るとヘアバンドっぽくなっているので、なんかひらひらの付いたヘアバンドだと思って描くといいのかな。


中国語。相変わらずAnkiをやっている。Chinese Grammar WikiのA2レベルがほぼ終わった。


本。バーナード嬢曰く。の5巻を読んだ。あと進撃の巨人。あとハンチョウ。哲学書はブームが過ぎてしまったので積んである。そのうちまたブームが来るでしょう。


3月末から始まったアトリエ漬けの生活も、フィリスの終わりが見えてきたらなんとなく落ち着いてきた気がする。この後リディー&スールもやるけど……。6月はアトリエ以外の進捗を出したいですね。draftcodeさんと飲むたびに、例外の話の記事楽しみにしてます!!!などと言って煽られるのでそのへんを解決したい。

2020年の目標 - 4月まとめ

早いもので1年がもう1/3も終わってしまった……まで書いて先月のエントリを見直してみたら同じような始まり方だった。なんなら先々月もそうだった。日々何もできていないことがわかる。

osak.hatenablog.jp

相変わらずStay home令が発動中なのでひきこもりをエンジョイしている。テキサス州知事は5月から徐々に経済活動を再開させていくと言っていたけど、感染者数がリニアに増え続けている(ArcGIS Dashboards)中でやるのは正直意味がわからん……。経済が動かないと困るのはそうだけど、このタイミングで再開したら感染数が爆発してしまうと思う。経済が止まるのが予想以上に辛かったのでノーガード戦法に移行するということなんだろうか。


ゲーム。ライザのアトリエは2週間で70時間くらいプレイして、DLCのクリアと錬金レシピ・素材図鑑埋めまで完了したので一応満足した。自分で使うアイテムを自分で作るシステムはやっぱり面白くて、アイテムに付与したい効果と特性の組み合わせを考えて試行錯誤しているとあっという間に時間が経っていく。DLCボスに負けた後はちょっと面倒になったので攻略サイトを見て、賢者の石を使った無限ジェム稼ぎと手抜き錬成に逃げてしまったけど……。

ライザの次にプレイするべきアトリエシリーズを聞いたところ、Mastodonで識者(@toshi_a)に詳細なプロファイリングを受け、フィリス・ソフィー・トトリの順に推薦を受けた。ソフィーとフィリスは同じシリーズの1作目とと2作目らしいのでソフィーからプレイすることにした。

social.mikutter.hachune.net

ソフィーのアトリエは錬金システムがライザと違い、グリッド状の盤面にポリオミノを敷き詰めていくことで品質やアイテムの効果を上げていく仕組みで、グラフをたどっていくライザのシステムよりも好きな感じだった。ゲーム中で特定の行動を取ると錬金レシピを思いつくというシステムも面白い。あとソフィーが普通にかわいい。ライザみたいに暴力的なえっちさではなく、正統派にかわいくてすごく好き。

ストーリーはちゃんとあるけど存在感は弱めで、10人くらいいる主要キャラの個別シナリオを好きなタイミングで進めていくのがメインの体験という感じ。結構早い段階で仲間とマップが増えるので、中盤あたりでは進められるものが多すぎて正しく進行しているのかちょっと不安になったけど、全体的にはキャラ魅力にフォーカスしたゆるいゲームという雰囲気で良い。特に、メインシナリオの戦闘にソフィー以外が強く絡んでこない構成が個人的には評価が高い。パーティが自由に決められるゲームで、○○と共闘して敵をやっつけよう!みたいなイベント戦闘にそのキャラが参加しないことに強く違和感を覚えてしまうタイプなので……。

現時点で40時間くらいプレイして、ラスボスを倒すところまで進んだ。今はクリア後シナリオを遊んでいる。サクッと終わるという話だったけど、普通にライザと同じくらいのプレイ時間になりそう……。


線を引いたけど引き続きゲーム(アトリエの話が長くなりすぎたので)。日本で定期的にMagic: the Gatheringのドラフトをやってたメンバーと、MTG Arenaでイコリアのシールド戦をやった。最近は全然マジックをやってなかったけど、久しぶりにやると結構楽しかった。変容はオーラみたいなものだと思って過小評価していたけど、変容するたびに起動する能力がどんどん積み上がっていくので思った以上に強かった。

MTGシールドの後、流れでPrismataをやった。これも勧められて以来、2年くらい積まれてたゲーム。

store.steampowered.com

やってみるとめちゃくちゃ面白い。ターン制の拡大再生産ゲーなんだけど、ランダム要素がまったくなく、プレイヤー視点で不確定要素になるのはAIの思考だけ。しかも敵の行動結果に対しても、攻撃のダメージをどのように割り振るかなどある程度介入できたり、無限にUndoができたりするなど、自由度が高めのパズルゲームという体のデザインになっている。実際に高難易度では、ある瞬間での最適手を諦めて全体最適を達成するような手順が求められるステージもある。

アトリエシリーズが一段落するまではあんまり触れないと思うが、どう考えても面白いゲームなので早めに消化しておきたい。


株。普通のゲームで忙しかったのと、コロナウイルスの状況が全然改善していないのに株価が上がっていくのが完全に意味不明だったので、4月は定期的に資産状況を見る以外はほとんど何もしなかった。WTI原油先物が負の価格になったのはちょっと予想外ですごかった……。実物があれば0を割ることはないだろうから価格崩壊したら買ったもん勝ちだと思っていたけど、保管コストでやられるんですねぇ。


体重。62kg後半をキープしている。今年の初めと比べると1kgぐらい増えたところで安定しているんだけど、どう考えてもコロナの影響で運動しなくなったせいだよね……。明らかに筋肉が落ちたことによる体調の悪さを感じるので、たまに思い出したらスクワットと腕立て伏せをしている。


新しい技術。起きてて仕事してない時間は全部アトリエに注ぎ込んでいたのでなにも進んでいない。ロギングの話と例外ハンドリングの話でブログを書きたいと思って幾星霜……。というか、在宅といえども仕事が終わると精神力が尽きていて、こういう集中して思想を練るアクティビティが全然できない。つらい。

コンピュータの技術の話ではないが、家にずっといるという利点を活かしてラーメンを作った。豚骨スープの写真しか残ってないけど、昆布と煮干しダシも合わせたトンコツ煮干しラーメン。

ラーメンスープ作り 自作ラーメン

初めてにしては意外とうまくできた。特にオースティンでは煮干しラーメンというものが食べられないので、煮干しの味が身体にしみる……。店で食べると油っぽかったり塩味が強かったりするけど、自作なら味付けを自分好みに調整できるのもポイントが高い。トンコツは8時間くらいひたすら煮込んでいたけど、仕事しながら1時間毎に水位を見てお湯を足すだけなので楽だった(火を使っているので昼寝ができないのは少し辛い)。麺は最初はスーパーで売ってた細麺を使っていたけど、その後で試しにやってみたフェットチーネ重曹で茹でた麺もかなり中華麺っぽくておいしかった。縮れ麺にこだわりがなければ重曹スパゲッティで十分戦えると思う。

餃子も作った。既製品の冷凍餃子もいくつか買って試してみたけど、どれも味がいまいちだったので自作するしかないなと思った。

焼く前の餃子 焼いた餃子

生のまま冷凍しても日持ちするし、凍ったまま蒸し焼きにするだけで手軽に焼けるので便利。しかも市販品より遥かにうまいので、常備菜にしようと思う。


中国語。2〜3日に1回のペースでAnkiをやっている。本来は毎日やるべきだけど、継続しているのでまあよし。


本。Twitterで見かけて以来好きだったけんさんの「雑な生活」を読んだ。この人の漫画は思考のスキマを突いてくるというか、日常的に経験しているけど深くは考えないような絶妙な存在感のものを、いかにも大切そうに切り取って見せてくるので、シュールだけど納得もしてしまうという面白い感覚になる。

https://www.amazon.co.jp/dp/product/4047360783

(なんか知らんがAmazonが書影付きのリンクを生成してくれない)

Database Internalsは進んでない。


アトリエに時間を吸われた月だった。5月もほぼほぼ吸われる予定。まあなんもしないよりはゲームしてる方がよっぽど有意義でしょう……。

ところで、1ヶ月毎にまとめを書く形式だと結構忘れてしまっているイベントがありそうな気がしてきた。ログを残したいなら頻繁にブログを書いたほうが良さそう。

2020年の目標 - 3月まとめ

(注意:この記事は前半部分にライザのアトリエのネタバレを含みます)

早いものでもう2020年も3ヶ月終わってしまった。

osak.hatenablog.jp

ゲーム。ハナノパズル2は33面あたりで詰まって放置している。時間をかければ解けるタイプのパズルではあるけど、やる気が一度落ちてしまうと難しい。それから1ヶ月くらいはまた株の攻略法を考えていた……。株は気にしないって先月のまとめで書いたはずなのになあ。

3月末になって、さすがに仕事と株のことばっかり考えてると人生損してるなあという気持ちになったので、一念発起してライザのアトリエを始めた。アトリエシリーズはmikutter界隈とかあのへんの百合過激派が騒いでいるのでずっと興味があったものの、流れてくる話は百合の話ばっかりでゲーム内容が全然分からなかったので始めるきっかけがなかった。いざ始めてみると、アイテムを収集して錬金術で加工するというコアシステムが案外面白い。自分で装備品を作れて、しかも作り方によって性能が変わるので自然と凝りたくなってしまう。標準の難易度だと戦闘は比較的ぬるめなのでこってもあんまり意味はないのかもしれないけど……。戦闘は初見だと操作が煩雑な上にFF式の半リアルタイムで複雑すぎるかと思ったけど、慣れてくると自然と操作キャラを切り替えたり、クイックアクションで追い打ちをかけたりと自由に動かせるようになってきた。錬金術も戦闘もストーリーが進むにつれてどんどん新しいシステムが解禁されるようになっていて飽きない。ゲーム全体の雰囲気や錬金術というシステムも相まって、コアゲーマー向けに調整されたドラクエ8のように感じている。

現時点で20時間くらいプレイしていて、アンペルさんが仲間になるところまで進んだ。ひょろいオタクがプレイアブルだと嬉しくなってしまう(ひょろいオタクなので)。魔法使い(というか遠距離攻撃使い)なのもいい。あとライザかわいい。モーションがかわいいので移動するとき無意味にジャンプしたりしている。


株。値動きの気持ちがなんも分からんので、分野のプロであるところの投資信託に入れておくのが一番良いのでは……?という気持ちになってきたため、投資信託の選び方とかを色々調べていた。ファンドに突っ込んだ資金はファンドのものであり税金関係の処理はファンドで行われるものだと思っていたけど、どうもファンドが金融商品を売却してキャピタルゲインを得ると、それは投資家に直接還元されて投資家の所得に計上されるらしい。このシステムはキャピタルゲインをそのまま再投資する設定にしても変わらない。よって、頻繁にポートフォリオの売買をしているファンドに投資すると、資産は増えてないのに所得税が爆発することがあるらしい。こわい。

そもそも株価の決まるメカニズムが未だによく分かっていない。企業が利益を上げると自社株買いと配当による株主への還元が増えるという理屈は分かっているものの、実際の株価はそれ以上の何かを織り込んで変動しているか、もしくは深く考えず直近の取引に影響されて変動しているように見える。株価の妥当性はまったくわからん。金融理論の本を読む必要がありそう。

今日の記事だけど、コロナショックで企業が自社株買いを控え始めてるから株価はそんなに上がらないんちゃう?という主張をWall Street Journalで見て、なるほどそうだよねと思った。

www.wsj.com

目標を決めないと最適な戦略も決まらないので、とりあえず$1,000,000を稼ぐことを目標に据えた。これだけあれば適切な株を買って配当金で生きていけると思われるので……。しかしこの目標を達成するためには随分アグレッシブに戦う必要がありそう。


体重は全然変わっていないけど、体脂肪率だけじわじわと上がってきた。どういうことなんだろう。運動してないから筋肉が落ちてるのかな。


新しい技術。完全に在宅勤務になり、ちょっと興味が出てきたのでリモートに開発環境を置くということについて考えた。結局リモート環境は使ってないけど、どんなセットアップが必要で何を期待できるのかはだいたいイメージが掴めたと思う。

osak.hatenablog.jp

これに関連して、VSCodeを使い始めた。直接のきっかけはIntelliJ上でHaskellの補完がいまいちだったことだけど、リモート環境を調べる過程でVSCode Remote Development Pluginがどうやって動いているか納得感のあるメンタルモデルを構築できていたので、haskell-ide-engineの導入ガイドに従ってRemote Development Plugin経由でDockerに入りHaskellを書く環境を整えた。これが驚くほどシームレスで、UI上ではあたかも全てがローカルにあるかのように動いており(実際物理的には全部ローカルなんだけど)、補完もサクサクと動くし、エディタ内で開いたターミナル上なら実行もできる。しばらくは趣味のコードはVSCodeで書いてみようと思う。


中国語。DuolingoをやめてAnkiを始めた。文法を覚えたいので、今はChinese Grammar WikiのDeckを進めている。

ankiweb.net


本は読んでないな……。Database Internalsを読みかけで放置している。


3月末から4月頭にかけて、コロナウイルスっぽい症状で一週間くらいずっと体調が悪かった。最初は普通に季節の変わり目で体調を崩したのかと思っていたけど、37℃くらいの微熱が出たり下がったりを繰り返していて、発熱の低さの割に身体がだるく変だなあと思っていた。3/31〜4/3あたりは特に悪く、起きた時は平気だけど昼〜夕方頃になると熱っぽさを感じてくるという状態で、特に4/2は仕事を休んで寝ていた。微熱しか出ない風邪にしては治りが遅かったし、軽い咳や神経痛に似た後頭部の痛みもあったので、まあコロナウイルスなんじゃないかと思う。幸いにして今は回復した感覚がある。CDCによれば治ってから3日は出歩くなということなので、水曜日あたりまでは自宅謹慎することにする(元から買い物以外で出歩いてないけど)。

www.cdc.gov

これがコロナウイルスの症状だとしたら、Twitterで流れてきた以下の記事は正確に症状を描写してると思う。自分はずっと軽かったけど、定性的には似たような症状が出ていた。

note.com


今月はライザのアトリエをクリアするのが目標です。クリアしたら他のアトリエシリーズもやりたい。Database Internalsも読み終えたい。株はもうちょっとまともに市場のモデルを理解したい。アドホックに戦略を考えていても根拠が示せないので実質的にルーレットと変わらない。