週記 2021/12/20~2021/12/26

2021/12/20

14時ごろに起きる。

Lチキを食べる。ファミチキより唐揚げ寄りな感じで、うまい。

イオンに行くと、いつもYouTubeで観ている猫の本を見つけた。通販で買おうと思っていたけど、今買った方が楽だろという事でそのまま購入。

Clippyの色々指摘が入ったので、ポチポチ直す。

2021/12/21

14時ごろに起きる。

予定の30分前に起きてしまい、急いでレトルトカレーを食べる。

ファミリーマートに寄ると、骨つきのプレミアムチキンなる物を見つけた。チキンは昨日も食べたけど、まあ良いやと言う事で購入。結構でかいし、うまい。

f:id:hotate29:20211222031048j:plain

2021/12/22

14時ごろに起きる。

pixivpyというPython製でPixivの内部APIを触れる非公式ライブラリがあって、これと同じようなものをRustで書きたくなった(仮称pixivrs)。前も同じようなやつを作ったけど、なんか変な感じになってしまったので、一度爆破して作り直す。

cargo watchなる物を見つけた。ファイル変更を検知したらコマンドを走らせてくれて便利らしい。コードをフォーマットするように設定してしばらく使ってみたけど、今まさにコードを書いている時にフォーマットされたりして、どうも気持ち悪い…

フォーマットしたくなったら自分でフォーマッタを走らせる癖が既に付いていて、そんなに便利にならなかった。

2021/12/23

8時ごろに起きる。

朝から用事があったので、久しぶりに結構な早起きをした。

昼に帰ってきて、15時ごろから昼寝…3時間…!起きると完全に夜で、微妙な気持ちになりながら晩飯を食べる。

友人とMinecraftをする。と言っても自分はほとんど放置していた(やる事が無いので)。「経験値を安定供給したい!」という事になり、ブレイズトラップを作りたくなった。最近のMinecraftはすごいので、4年くらい前に主流だったピストンで落としていくやつも、そろそろ置き換えられているのではと思い、ググってみたけど全く進化しておらず…大量のピストンを作るのが面倒臭くなったので、計画は凍結に。

pixivrs(仮)を書く。本家pixivpyを読み替える感じ。Bearerトークンを挿入する関数を作っていたけど、使っているライブラリに元から備え付けられていたようで、微妙な気持ちに(公式ドキュメントはちゃんと読もう!)。

MinecraftVSCodeを同時にいじっていると、ディスプレイのスペースが足りない感じがした。前PCで使っていたディスプレイを使おうと思ったけど、GPUHDMIの空きが無くて断念。最近のPCはHDMIが少ないのね…

2021/12/24

10時ごろに起きる。

pixivrs(仮)を書く。あったなり無かったりするフィールドをOption<Hoge>で受け取ろうとしたけど、パースに失敗して落ちてしまう。観察していると、値が存在したら{"hoge":"piyo"}で、存在しなかったら{}という感じで、存在しない場合の{}が曲者ぽい。

多分、serde的には{}は空のMapと同等で、存在するつもりでパースを進めてエラー…という感じなのかな。結局デシリアライズする関数を自分で書いて#[serde(deserialize_with="hoge")]した。なんか微妙だけど、どうなんだろう。

ClippyのPRを書く。レビューで指摘されていた点を全部解決できたので、Pushして再度レビューをお願いしたらapproved(承認)された。やったね!!コミット履歴が散らかっていたので、最後にsquashする感じ、マージまでもう一息

2021/12/25

17時ごろに起きる。

圧倒的クリスマス…!

pixivrs(仮)を書く。ライブラリ側のエラーはちゃんと処理しているけど、WebAPI側のエラーを捕捉できない事に気が付いた。デシリアライズエラーとか言われても分からんので、ちゃんとしたエラー処理を作り始めた。

APIの)エラーと成功したものを載せたenumを書いてみて、いい感じだったので採用(つまり独自Result)。実際にエラーを返す時、Result<ApiResult<T>, E>のような型を返すとややこしいので、thiserrorで一つのError型にまとめてResult<T, E>EにはhttpのエラーかPixiv側のエラーかの情報が載せてある)を返したい。

色々試した結果、JSONをまず独自Resultにデコードして、すぐに標準のResultに変換する形に落ち着いた。結構便利

AtCoder Beginner Contest 233に出る。一回開いて2週間ぶりのABC

A問題

引いて割るだけだけど、切り上げの処理でモタモタしてしまう…

B問題

文字列をスライスで切り出して結合する。スライスのインデックス処理が何も分からず、これもモタモタしてしまった。

C問題

制約を理解するのに時間がかかったけど、理解してからはそんなに時間がかからなかった。久しぶりに再帰関数を書いた気がしたけど、2週間前に前回のABCで書いているんだよな。一回出なかったらこんなになるの?

2021/12/26

16時頃に起きる。

友人とMinecraftをする。ブレイズトラップを作るためにスポナー周りを工事していたけど、途中で粘着ピストンに使うスライムボールが全く足りないことに気がついた。無計画が過ぎる

pixivrs(仮)書く元々の動機が、「ブックマークの中身をダウンロードしてくれるやつを作りたい!」という感じで、そのための部品が揃ってきたので書いてみたら、思ったより良い感じに動いた。

この日の日記を書いていないまま公開してしまう...早朝に公開していたので、寝ぼけて曜日を間違えたのかも。最近曜日感覚がぶっ壊れているので、なんとかしたい...