2023年
開発
Shiikaはデフォルト引数・キーワード引数の実装、LLVMのverup、Fileクラスの追加、型推論まわりの整理が主な成果かな。
現在は並行処理機能を入れることを考えている。これが来年の目標。
BiwaSchemeも地味に更新していて、er-macro-transformerが動くようになった。まだ仮なので本体と統合してはないんだけど。
Shiikaはデフォルト引数・キーワード引数の実装、LLVMのverup、Fileクラスの追加、型推論まわりの整理が主な成果かな。
現在は並行処理機能を入れることを考えている。これが来年の目標。
BiwaSchemeも地味に更新していて、er-macro-transformerが動くようになった。まだ仮なので本体と統合してはないんだけど。
Outer Wilds (Switch版) をやりはじめたのでプレイログを書く。
前々から評価の高いゲームと聞いていて、Switch版の発売を心待ちにしていた。移植するという話はあったけどなかなか出なかったんだよね。
ただSwitch自体はスペックが高いわけではないので、他機種やSteamの環境があるならそっちの方がロード時間など快適かもしれない。
内容については「何も知らない状態でプレイしたほうがよい」ということで既プレイヤーの意見が一致しているようで、幸いなことに「宇宙を探検する」くらいのことしか知らずにプレイを開始することができた。興味がある人は以下を読む前に自分でプレイしたほうが良いと思います。
Oxygen Not Includedのピップに関するメモ。
ピップが作物を植えるには以下の条件が必要
このエントリは言語実装のカレンダー | Advent Calendar 2023 - Qiitaの2日目の記事です。前日の記事はabo_junghichiさんの9キロバイトのコードで関数型言語を実装 - 自作言語revappの理由 - 一人一党党でした。
Shiikaは私が作っている、Ruby風文法の静的型付け言語です。今日は10月に行った型推論周りの整理を解説します。
型推論が行われるのは以下の2つのケースです。
Schemeの話。
Gaucheでsyntax-rulesとer-macro-transformerを試してたんだけど、少し挙動が違う点に気づいた。(Gaucheを使ったのは、単に両方を実装している処理系として最初に思いついたため)
まず、以下のように定数thePiを提供するpi.scmがあるとする。
(define-module pi
(export thePi)
(begin
このブログはSinatraで自作しているのだけど、最近画像アップロード機能を実装した。
そこで思ったのが、ほんのちょっとのAjaxを追加するのが面倒だなということ。最近(?)はVanilla JSとかいって、「jQueryがなくても素のJSだけで大丈夫」とか言うじゃないですか。でも例えば「削除ボタンを押したら確認ダイアログを出し、Okを選んだらサーバにDELETEリクエストを送り、ボタン部分をレスポンスメッセージで置換する」みたいなのを書こうとするとけっこうめんどい。かといってこのためだけにReactやVueを入れるのはやりすぎで。
そこで本日ご紹介するのがこちらのhtmx。htmlタグにhx-から始まる属性を書くだけでいい感じに動いてくれるというやつ。いかがでしょうか。
<button hx-confirm="Delete this?" hx-post="(APIのURL)" hx-swap="outerHTML">
マイクラの話の続き。
前回は2時間半かけて全てのAdvancementをコンプする話だったが、その逆で、「何でもあり」のルールであればMinecraftは何秒でクリアできるのだろうか?TASあり、バグ利用あり、達成率不問…つまりスタッフロールが出ればなんでもいい。
というわけでまずこれを見てほしい。
何が起きたかわからないと思うが、エンディングが出ましたね?
NASを買い替えたので先代から中身をコピーしたのだけど、改めて思ったのがどうでもいいファイルの多さだ。昔はマシンを捨てるときに何があとで必要になるかよくわかってなかったので、ユーザディレクトリを丸ごとバックアップしたりしてたのだけど、そのせいでrubyのインストールファイル(だいたい1.8.x)があちこちに点在している。
NASは故障に備えて定期的に普通のHDDにsyncしているのだけど、こういう細かいファイルが大量にあるせいで、毎回無駄に時間がかかっている。ということで、Rubyスクリプトを書いて「ファイル数が多いディレクトリ」を調べてみた。
TH = 1000
$stdout.sync = true
def count(dir)
n = 0
Dir.each_child(dir) do |child|
写真とかの保管用にI-O DATAのHDL-CE2.0BというLAN HDDを長年使ってたんだけど、さすがに調子悪くなってきたので新しいのに買い替えた。
HDL-CEは2012年に買ったので、もう10年以上経ってるのか。ひえー。壊れたら買い換えようと思ってたんだけど全然壊れないのよね。
とはいえだんだん読み込みが遅くなってきたような気はするし、数年前に誤って落下させてしまって蓋がちょっと浮いてるし、明らかに買い替え時ではあった。とどめを刺したのは、先月いつものように普通のHDDにFastCopyで丸ごとバックアップしようとしたら「SMB 1.0はもう使えません」的なエラーが出たこと。セキュリティの関係でdeprecatedなんだね。ハードより先にプロトコルが駄目になるとは。
後継は同じくI-O DATAのHDL-AAX2にした。容量は2TBあれば十分なので1ベイでよくて、"初心者向け"をうたうHDL-TAの方が少し安いけど、読み書きは速いに越したことはないのでこっちに。
いまのところ先代と変わらず不満なく使えている。しいていえば起動・停止時のビープ音がうるさいかなあ。節電のために指定時刻に電源をオン・オフする機能があるんだけど、夜中にピーっと鳴られても困るので、結局つけっぱにすることにした。事務所とか向けの機能なのかも。
これ。マイクラの動画久々に見たけど楽しかった。
MinecraftのRTAというと「エンダードラゴンを倒すまで」という、いわゆるエンドラRTAが有名だけど、これはMinecraft Java Edition(PC版)の「Advancements」を2時間半でコンプリートする動画。ワールドはランダム、バグ利用禁止。
バージョンは最新版ではなく1.16だが、それ以降だと7時間とか半日とかかかっちゃって競技として大変すぎるようだ。
RTA用のmodを入れてるっぽくて、画面上部に未達成項目の一覧が出ている。反映まで少しラグはあるけど、これのおかげで状況がかなり分かりやすくなっていた。