エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2026-01-01から1年間の記事一覧

Rails on Tiles をビット演算で解く

先日の記事の通り、プログラミングの筋力トレーニングのために「オフラインリアルタイムどう書く」の過去問を解いています。 14年ぶりのフカシギの通行止め in Elixir - エンジニアのソフトウェア的愛情 第 5 回の参考問題は「Rails on Tiles」。 nabetani.s…

14年ぶりのフカシギの通行止め in Elixir

最近、プログラミングの筋力が落ちてしまい、筋トレにちょうどよいと思い、オフラインリアルタイムどう書くの過去問を解いています。 github.com 第四回の参考問題が「フカシギの通行止め」。 qiita.com 当時話題になった「フカシギの数え方」から着想された…

はてなブログで LaTexをレンダリングする方法の覚書

[$ ... $] でブロックを作る(2026年7月以降)。 例1 [$ \sum_{x = 1}^n f(x) $] [$ \displaystyle \sum_{x = 1}^n f(x) $] 例2 [$ \begin{array}{rcl} \boldsymbol{A} \cdot \boldsymbol{B} & = & \begin{bmatrix} | & | & | \\ \boldsymbol{a_{1}} & \bold…

図形で理解するということ〜線形代数と数的霊薬〜

行列の積 図解 線形代数: ストラング流直感的理解 (近代科学社Digital)作者:平鍋 健児近代科学社Amazon の行列同士の積を考えます。 定義に従い計算すると、1行1列の要素は左の項の1行目と右の項の1列目の各々の要素の積の和、1行2列の要素は左の項の1行目と…

オブジェクトの手続きと手続きのオブジェクト

構造体のようなオブジェクトを扱う オブジェクト指向言語使っていても、ただの値の塊としか利用されないケースに遭遇します。 class Foo def initialize(attr_a, attr_b, attr_c) @attr_a = attr_a @attr_b = attr_b @attr_c = attr_c end def do_something(…

プログラミングをプログラミングする

コードを出力するコードを書く 一発で目的のコードを出力するためのコードを書く、というのが昔のジョークにあった気がしますが。 最近は。 仕事では。 「『目的のプログラミングを AI に生成させるプロンプト』を AI に生成させるプロンプト」を AI で生成…

そのオブジェクトは何かと考えるということ

オブジェクト指向プログラミングでも、以前から存在している配列などのデータ構造を使います。 ただ、使われ方に違和感を感じることがあります。 その違和感について少し考えてみます。 オブジェクトとオブジェクトの集まり あるオブジェクトに対して、その…

Koka を手探りする

新しいパラダイムの理解を開拓すべく、Koka に手を出しています。 koka-lang.github.io Koka の本丸は、その名(Koka = "効果")が示す通り Effect system なのですが、基本の構文をいじるだけで、そこまでたどり着けない始末。 en.wikipedia.org 一方で、こ…

ドメインモデルが貧血になる

貧血というと。 個人的には、持病の影響で慢性的に貧血気味なんですが、ソフトウェア的愛情的にはそのような貧血ではなく。 ドメイン駆動設計を標榜するわりには、やればやるほどモデルからドメインの知識がはがれて痩せていくのを目の当たりにして、何がそ…

真 Ruby でオブジェクトへ非同期メッセージを送る

前回のあらすじ Ruby で非同期メッセージを扱いたいと思い立った筆者。 ActiveJob を使ってオブジェクトへ非同期メッセージを送れたと思ったのも束の間、メッセージを送った先のオブジェクト、実は宛先にしたオブジェクトのクローンだった。 どうすればいい…

Ruby でオブジェクトへ非同期メッセージを送る

動機 先日、会社の同僚との話の中で非同期メッセージが話題になりました。 非同期メッセージにあまり馴染みがないために、動作の表現に苦労した様子。 普段 Elixir に触れていると非同期メッセージは当たり前のように使っているわけですが、話題にしていた R…