yhara.jp

Recent Posts

RubyKaigi2024で野良の字幕係(?)をしてきました

2024-05-27
Event

RubyKaigiは2007年から毎回参加してたんだけど、2020/2021はオンライン、2022/2023はハイブリッドで家から参加してて、オフライン参加は久々だった。

今回は単独行動でなかったので夜イベントは参加できなかったんだけど、昼に会場近くのスパイスカレー屋に入ったらgotoyuzoさんm_sekiさんtatsuoSakuraiさんが座ってて…みたいなRubyKaigiらしい交流はあった。auto fiberは一見便利そうだけど、素のFiberと違って予期しないメソッド呼び出しでFiberが切り替わる可能性があるので気をつける必要になるよね…という話を咳さんがされててなるほどと思った。もちろんFiberなので「スレッドセーフでない拡張ライブラリを複数スレッドから呼んだとき」みたいな壊れ方はしないんだけど、アプリケーションレベルでのバグが発生することはあって、例えば以下のA#fooが並列でいくつか動いてるときにsomethingメソッドの深いところでFiberが自動で切り替わると、ctを正しく計算できなくなるよね、という話だと思うんだけど合ってるかな。(誰か実験してください)

class A
  def initialize
    @ct = 0
  end

(more...)

minibarというレーベルについて

2024-02-17
Music

久しぶりにminibarの音楽が聞きたくなってgoogle検索したけどヒット数があまりに少なすぎるので、自分が知っている(あまり多くはない)ことをメモしておく。

ウェブサイト

https://minibar-music.com/ がオフィシャルサイトだったのだが、現在はdiscogsに転送されるのみとなっている。

https://soundcloud.com/minibar-music/albums でたくさん視聴できるのでこっちを見たほうがいいと思う。

ジャケットのデザインも統一されててかっこいい。

(more...)

2023年

2023-12-31
Diary

開発

Shiikaはデフォルト引数・キーワード引数の実装、LLVMのverup、Fileクラスの追加、型推論まわりの整理が主な成果かな。

現在は並行処理機能を入れることを考えている。これが来年の目標。

BiwaSchemeも地味に更新していて、er-macro-transformerが動くようになった。まだ仮なので本体と統合してはないんだけど。

キーボード

(more...)

Outer Wilds プレイログ

2023-12-15
Game

Outer Wilds (Switch版) をやりはじめたのでプレイログを書く。

前々から評価の高いゲームと聞いていて、Switch版の発売を心待ちにしていた。移植するという話はあったけどなかなか出なかったんだよね。

ただSwitch自体はスペックが高いわけではないので、他機種やSteamの環境があるならそっちの方がロード時間など快適かもしれない。

内容については「何も知らない状態でプレイしたほうがよい」ということで既プレイヤーの意見が一致しているようで、幸いなことに「宇宙を探検する」くらいのことしか知らずにプレイを開始することができた。興味がある人は以下を読む前に自分でプレイしたほうが良いと思います。

2023/12/12

(more...)

ピップ

2023-12-04
Game

Oxygen Not Includedのピップに関するメモ。

ピップが作物を植えるには以下の条件が必要

  1. 気圧が100g以上である
  2. 気温がその作物の生育条件内である(※±100度くらいは許される?)
  3. 植え込み箇所に邪魔な建物がない(※建築予約したものも含む?)
  4. 種からそのタイルまで、ピップがアクセス可能な経路がある
  5. farm tile, hydroponic farm tile, 硬さ150以下の自然タイルのいずれかである
    1. 右5、上5、左6、下6の範囲内の植物が2つ以下である

Shiikaの型推論

2023-12-03
Tech

このエントリは言語実装のカレンダー | Advent Calendar 2023 - Qiitaの2日目の記事です。前日の記事はabo_junghichiさんの9キロバイトのコードで関数型言語を実装 - 自作言語revappの理由 - 一人一党党でした。

Shiikaは私が作っている、Ruby風文法の静的型付け言語です。今日は10月に行った型推論周りの整理を解説します。

Shiikaの型推論

型推論が行われるのは以下の2つのケースです。

(more...)

er-macro-transformerのrenameは衝突を回避するだけじゃない

2023-11-08
Tech

Schemeの話。

Gaucheでsyntax-rulesとer-macro-transformerを試してたんだけど、少し挙動が違う点に気づいた。(Gaucheを使ったのは、単に両方を実装している処理系として最初に思いついたため)

まず、以下のように定数thePiを提供するpi.scmがあるとする。

(define-module pi
  (export thePi)
  (begin
(more...)

Sinatraとhtmxは相性いいかもしれない

2023-11-05
Tech

このブログは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">
(more...)

Minecraftを20秒でクリアする

2023-10-27
Game

マイクラの話の続き。

前回は2時間半かけて全てのAdvancementをコンプする話だったが、その逆で、「何でもあり」のルールであればMinecraftは何秒でクリアできるのだろうか?TASあり、バグ利用あり、達成率不問…つまりスタッフロールが出ればなんでもいい。

というわけでまずこれを見てほしい。

何が起きたかわからないと思うが、エンディングが出ましたね?

(more...)

ファイルの多いディレクトリを表示するRubyスクリプト

2023-10-26
Tech

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|
(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author