週記 2022/08/22〜2022/08/28

## 2022/08/22

13時ごろに起きる。

用事があり今日も外出。2日連続はキツいぜ!

記憶が欠落

スーパーでいい感じのピザを購入。チーズやらバジルやら、ベーコンやらが乗っているやつ。うまそう

夕食後にアイスを食べようと思い冷凍庫から取り出してみたら、おおよそ通常の形、色ではないものが出てきてびっくり。運搬の途中で溶けたにしては、同じ箱に入っていた他のアイスが普通だったりして、原因がわからない…。なんだか不気味なので、そのまま冷凍庫に戻して正常なアイスを食べた。

先週分の週記を書いて公開。週記のカテゴリーを毎回付け忘れてしまう。過去の記事を確認してみると、カテゴリーがついていなかったので付けてまわった。後から読んでみるとカスな文が多いな…。

2022/08/23

15時頃に起きる。

昨日買ったピザを実食。うまい

2日連続の外出で結構疲れているので、ひたすらゴロゴロして過ごしていた。しかし翌日にはまた試験が控えている…ヒェッ…。

久しぶりの妖怪PCいじいじ。BrainfuckをWebAssemblyに変換するやつ(Web版)で出力したWasmをBinaryenで再度最適化するようにしてみた。効果はよくわからない。

Binaryenはコンパイラのバックエンド的な立ち位置で、Wasm的な最適化をしてくれる便利なやつ。本当はBrainfuckをWe(ry本体に組み込みたかったのだけど、FFIを含むcrateをWasmにコンパイルするのが面倒くさそうだったのでWeb版でJSから使うことにした。GtiHubで参考になりそうなリポジトリを発見したので、もしかしたら本体に組み込めるかも?

BinaryenのWikiに「コンパイラバックエンドでの最適化はそれほど重要ではなくて、言語処理系での最適化を頑張るのが大事なんやで〜」的な事が書いてあった(ように読んだ)ので、もうちょっとBrainfuck的な最適化ができるようになりたいわね。掛け算最適化を実装するのが楽な割に、結構効果があるので他を実装するやる気が少なかったけど、ちょっと湧いてきたような感じ。データ構造考えんとな〜〜

2022/08/24

11時頃に起きる。

これまでは目ざまし時計に無理やり起こされていたけど、今日は自然に目が覚めた。こわい

試験2日目。前回と同じく二教科の試験を受けた。片方の教科はいい感じに回答できたけど、もう片方の教科がきちい。難易度的には難しくないはずだけど、なんせ用語を覚えていない(自業自得)。最悪追試になってもなんとかなるやろの精神でがんばりたい(追試も失敗したら落単だぞ!)。

学校から帰る時、職員室の前を通ると教員と生徒の会話が聞こえた。「タバコやめたか~?」「なかなか難しいですね~」的な。通信制な高校ならではの会話だ。

出発する前にファミリーマートでチョコレートのフラッペを販売しているという情報をキャッチしていたので、帰り際に寄って購入した。税込み430円。それなりの値段だけど、試験頑張ったということで...。

高校生の間に何か資格を取ったら面白そう。今のパソコンカタカタの延長線上で取るなら基本情報技術者?他の資格をあんま知らんけど、どんなのがあるんだろうな

BrainfuckをWebAssemblyに変換するやつをいじる。最近wasi-sdkを使ってC言語をWebAssemblyにコンパイルできるようになったので、自作処理系で出力したWasmと、C言語に変換してからwasi-sdkのClangでコンパイルしたWasmで実行速度を比べてみた(前にも似たようなことをやった気がするけど、その時はC言語→ネイティブだったような?)。

自作処理系が1100ms前後で、Clangが880msという結果になった。やっぱりClang強い...という印象だけど、掛け算の最適化だけでClangにここまで迫るのを見ると、Brainfuckの最も大きなボトルネックは掛け算なのかもな。他にも無いか探してみたいわね。

ちょっと前に作っていたインタプリタがあるので、これを改造して命令ごとに実行回数を記録できるようにしたら面白いかもしれない。ちょっと前にWasmに変換するやつと最適化処理を共通化したので、同じコードを同じ最適化で動かせるのは良いかも知れない。最近は放置気味だったので、こういう形で使えると良いわね。ヒートマップ的な感じで結果を出力できたら楽しそうだけど、それは一旦理想にしておく。

2022/08/25

15時ごろに起きる。

チカレタ...

ただひたすらゴロゴロして過ごす。ブルーアーカイブでイベントが始まっていたので、ストーリーを進めたりといろいろ。

最初に受けた試験の結果が送られてきた。ウッキウキで開封すると、合格の旨が書かれた紙切れが入っていた。何単位かは忘れたけど、これで高校初の単位を獲得したという事になる。うれしい

妖怪PCいじいじ。Rustで書かれたスクレイピングに使うライブラリ、scraperをいじる。AtCoderProblemsが依存しているライブラリなのだけど、依存関係が古くてビルド時間を膨らませているのが気になった。別に10分20分も伸びているとかではなくて、せいぜい30秒程度な気がする(ちゃんと測っていないのでわからない)。

scraperが依存しているcssparserやselectorというライブラリがあって、これはservoというブラウザエンジンの一部で...と結構ややこしい。それらを更新して、コンパイルエラーを順番に潰していこうという気持ちだったけど、それなりに根が深いコンパイルエラーが出て怖気づいた。また元気があるときにやろう...

2022/08/26

15時ごろに起きる。

Clippyにissueを生やした。それ用のメソッドが用意されているのに、わざわざ自分で書くのは変だよね的なやつ。

github.com

html5everをいじる。昨日のscraperいじりの延長線で、依存しているライブラリのコードを読んでみようという気持ち。リポジトリをcloneして、VSCodeで開くとClippyの警告がどっさり出てきた…。殆どが簡単に修正できるものだったので、適当に修正してPRを投げようかしら。大半はcargo clippy fixで自動的に修正できたけど、人力で修正しなければならないものも多くて大変だ。変更ファイルの数が大変なことに…

食べ物の賞味期限を管理するアプリを入れてみたけど、品物の登録が面倒くさい…。こればかりはどうにもならないので、一旦おやつ方面の食品だけ登録することにした(食べるのを忘れる事が多いので)。

2022/08/27

14時ごろに起きる。

明日は試験なので、教科書を見返して復習しようと思い、先日教科書を集めた本棚へ目を向けてみると…なんと見たい教科書が無い。集めた時に漏れたのかしら…

経典は無いけど、とりあえずレポートを読み返すことにした。試験の問題はレポートからほとんどそのまま出題されるので、レポートの内容を全部…というのは無理なので、とりあえずパラパラ読む程度。

AtCoder Beginner Contest 266に出る。ABの2完…。

Splatoon3の前夜祭と試験が被っていてヤバいぜ!

2022/08/28

8時ごろに起きる。

なんだか上手く寝付けず、先週同様2時間程度の睡眠に…

試験を受けに学校へ。前回と特に変わらず、まあまあな感じ。

ファミリーマートで爽を買うと雪見だいふくの引き換え券が貰えるキャンペーンを行っているという情報をキャッチしていたので、帰り際に寄って爽を購入。最近店舗内のイートインが復活したので、店内で食べて帰ることにした。

Splatoon3の前夜祭をプレイする。まず最初にアバターの設定をするのだけど、前作と比べて選べる項目がかなり増えていて良き。イカちゃんかわいい

新しい武器を色々試してみる…ワイパーがちょっと難しいかも?弓はかなり好き。それなりに塗れるし遠くの敵にちくちく嫌がらせをできる。製品版が楽しみだぜ!