週記 2022/08/01〜2022/08/07

2022/08/01

16時ごろに起きる

BrainfuckをWebAssemblyに変換するやつをいじる。Bfの変換→実行をWebブラウザで行おうと色々やっていたけど、とうとう動くようになった。わーい。

せっかくなので、これをGitHub Pagesに公開してみることにした。これまでは表示するHTML等をリポジトリにコミットする必要がり敬遠していたのだけど、GitHub Actionsからコミットせず直接デプロイできるようになったので、それを使ってみた。

Brainfuck的な最適化はある程度行えているけど、WebAssembly的な最適化はとかも必要だったりする?非常にめんどうくさそう。

2022/08/02

13時頃に起きる。

暑い!暑い!暑い!

記憶が欠落

2022/08/03

記憶が欠落2

BrainfuckをWebAssemblyに変換するやつ(Web版)をいじる。プログラムが終了した後に標準出力を表示していたのだけど、これを実行中に随時表示されるように改めてみた。WasmerJSが終了時に標準出力を返す実装になっていたので、自分でWASIっぽい何かを実装して動かすようにした。

動いている様子が見えるとたのしいわね。実装にWebWorkerを使ってみたのだけど、これが結構良い感じ。JavaScript3日目でも結構書けるもんだな

twitter.com

2022/08/04

15時ごろに起きる。

インスタントうどんを食べる。昨日の夕食でネギとミョウガ余っていたので、これを突っ込んでみることにした。ネギはネギで良いのだけど、ミョウガが全く合わない…。うどんのあっさりとした後味にミョウガの感じが割って入ってきてよろしくない。ぐぬぬぬ…

BrainfuckをWebAssemblyに変換するやつをいじる。一度実装したけど諸事情で削除されていたif的最適化を書き直した。ちゃんと実物を確認して考えてから実装しないと時間かかるわね…(2敗)これと一緒に、ループをWebAssemblyにする際に出力される命令列をちょっといじったり。これまではblock loop br_if …という感じだったけど、loop直下にifを配置するシンプルな構成にした。

Rustで書いたものをJavaScriptで使うために、wasm-packで作成したnode.jsのパッケージをnpmに公開して、それをダウンロードする…という運用をしているのだけど、ただ面倒くさいし、ローカルにパッケージを作成してそれを使うようにしたいわね。GitHubにpushするだけでWebにも反映される環境が望ましい。楽したい

2022/08/05

17時ごろに起きる。

夕飯の余ったナスとバナナを食べて活動を開始。

友人氏とSplatoon2をする。開始前に友人氏が風呂に入っていたので、その間に一人でガチマッチをしてみる。かなりやり込んでいた時期のウデマエなので、多少ウデマエが落ちるつもりで遊んでいたけど、予想に反してウデマエが上がってしまった(S→S+)おそろしい…

ここ数日ホットブラスターを使っているのだけど、これが結構いい感じ。射程も程々にあるし、ポイズンボムで嫌がらせもできるし、近接戦になったらスーパーチャクチでだいたい何とかなるし...。狙って直撃させられる程のエイム力が無いので、マニューバ等と近接戦になると無力。ローラーの立ち回りで近接戦を挑んでしまい、そのまま死ぬ事がちょいちょいあるので、その癖を無くしたいわね。

BrainfuckをWebAssemblyに変換するやつ(Web版)をいじる。GitHub Actionsをこね回して、mainブランチにpushした内容がGitHub Pagesへ自動的に反映されるようにした。人間が行う操作がかなり減って嬉しい。

iPadSafariマンデルブロ集合を描画するBrainfuckコードを実行すると、PCのFirefoxと比べて17倍程度遅くなってしまう(Firefoxが1秒程度、Safariが17秒程度)。端末の性能による違いはあれど、流石にな〜と思いながらネットを徘徊していると、BrainfuckJavaScriptとWebAssemblyに変換して、その実行速度を比べる…という記事を発見。面白そうなので読んでいたら、なんとiPadSafariでも高速に動作するマンデルブロ集合が掲載されていた。2秒程度で描画が完了してすごい

Safariはサイズの大きいWasmの関数をあまり最適化しないようで、Brainfuckのコードほぼ全てを一つの関数に押し込んでいた今の実装とは相性が悪かった感じ。

ループ毎に関数を分割するとかなり最適化されるようになって、Firefoxなどと比べて遜色ない実行速度になるらしい。記事の実装ではBrainfuckをWasmに直訳する形なので、Brainfuck的な最適化も行うともっと早くなるのかもしれない。自分も実装してみるかな〜

nmi.jp

2022/08/06

11時ごろに起きる。と言っても4、5時間程度しか眠れなかった…どうして…

布団の中でゴロゴロするのにも飽きたので食事。メニューは茹で卵、鶏肉を蒸したやつ(ソースをかける)、春巻、フルグラ(???)。フルグラが間もなく切れそうだったので、とりあえず食べ切ってしまおうという気持ちでこの中にぶち込まれた。最初に茹で卵の殻を剥くのだけど、これが非常に剥きづらい…小学校低学年の頃にすイエんサーを観て覚えた"水につける"というテクニックも通用しない。殻を取る事自体はちょっと難しい位だけど、薄皮がかなり強くくっついていて厄介。むき終わった時には卵の表面が月面のようにゴツゴツに…

茹で卵はマヨネーズを運ぶ媒体

BrainfuckをWebAssemblyに変換するやつ(Web版)をいじる。どのコミットの内容かがわかると面白そうなので、ページにコミットのハッシュを表示するようにしてみた。どうせmainブランチの内容なんだけども…

hotate29.github.io

ABC

2022/08/07

17時ごろに起きる。昨日の睡眠時間が短かったからかいつもより遅くなったような

適当に食事をしてからゴロゴロする…

iCloudの容量が足りなくてiPhoneのバックアップに失敗しているという通知が多く出てくるので、様子を見てみる。通知が出る前にバックアップをした際は、十分iCloudに収まるサイズだったのに何故…と思っていたら、最近始めたブルーアーカイブがそれに4GB上乗せしていたことが発覚。諸々は再ダウンロードできるし、セーブデータはアカウントに紐付いているのでバックアップを無効にして解決した。

本当はiPadも自動バックアップしたいのだけど、こっちはそれなりの大きさがあって現プランのiCloudには収まらんのよな…。最初は推定サイズが40GBと出てびっくりしたけど、写真とか上記のブルーアーカイブのような物を外して6GB程度になった。しかしこれだとiCloudに入り切らない…ぐぬぬ…。みみっちい事をしていないで有料プラン入るかな…。50GBで月額約500円。ファミチキ2個分か…こういうものはどうせ長期間使うのだし、年単位で一括払い(あわよくば若干の割引)したいけど、案外そういうサービスが少ない気がする。

最近ファミリーマートで40%増量キャンペーンをしているらしいので、何か買いに行きたいわね。一時期ファミチキの代わりに買っていたスパイシーチキンも対象らしい