p.tatapa.org

p.tatapa.org

ると | @ruto@p.tatapa.org

プログラミング(関数型言語とJava多め)、その他言葉遊びなどを書いてます。アイコンは「腕時計」。ヘッダー画像は2-3フィンガーツリー。

トルコにトルコライスは無くてアンデスにアンデスメロンが無いんだから、きっとケンタッキー州にもケンタッキー・フライド・チキンは無くて、埼玉かどこかが発祥に違いない。

アメリカン・エにゅにゅにゅにゅにゅ

・ケンタッキー州にもマクドナルドはある。

・スターバックスコーヒーで売っているコーヒーはスターバックスコーヒーという名前ではない。

・「セロハンテープ」や「セロファンテープ」とは言えるのに「チェロハンテープ」や「チェロファンテープ」は言えない。

・「アメリカン・エクスプレス」ではなく「アメリカン・エキスプレス」なのに「アメッキス」ではなく「アメックス」である。

こういった感情を他人と共有するのは難しい。おそらく半年後の自分とも共有できないかもしれない。

https://soudai.hatenablog.com/entry/2024/12/10/115848

履歴テーブルから各ユーザの最新のデータを1件ずつ取ってきたい場合、PostgreSQLの場合は次のように書いた方が高速な場合がある。

SELECT
  latest.*
FROM
  users,
  LATERAL (
    SELECT
      *
    FROM
      history
    WHERE
      history.user_id = users.user_id
    ORDER BY
      created_at DESC
    LIMIT
      1
  ) AS latest;

ウィンドウ関数を使う場合やDISTINCT ONを使う場合、インデックスがあっても線形スキャンとなる。

一方、前記のクエリの場合(あるいは入れ子ループでインデックスを引くような同等のクエリの場合)、インデックスを使って最新の行のみにアクセスするため、最新以外の行が多い場合は高速になる。

さらに複雑な条件が必要な場合は再帰CTEを使った方法が使える: https://wiki.postgresql.org/wiki/Loose_indexscan

多くの場合は最新データを別テーブルにする方法でよいんだけど、任意の時点における最新データを取得したい場合や、何らかの理由で別テーブルを作りたくない場合はこの手法が使える。

インデックスは(user_id DESC, created_at DESC)で作っておくとよい。

いずれにしろ実行計画を見て、さらに実データに近いデータでベンチマークを取ってちゃんと速くなっているか確認する必要がある。

無記名Suicaは匿名で使える貴重な電子マネーなので、維持・販売し続けてくれると嬉しいんだけど、JRとしてはあまりそのインセンティブが無さそう。

https://www.jreast.co.jp/press/2024/20241210_ho03.pdf

#いろいろなアドベントカレンダー
朝起きると新しい楽譜がピアノに置かれている。右側の椅子に座ると左から音が鳴り始め、私も弾き始める。難しかった部分も今は滑らかに弾ける。

自宅で各LLMにちょっとしたことを聞く場合はAIChat (https://github.com/sigoden/aichat )を使ってるんだけど、外で使う用にChatbox AI (https://chatboxai.app/ )をiPhone/Androidに入れてみた。自前APIキーが使えて、オープンソースなアプリって意外とない。このアプリも2023年製で個人開発っぽいのでいつまで使えるか微妙だけど、なんかあってもせいぜいチャージしたクレジットが消えるだけという気楽さはある(Geminiは無限に使われるけど、アラートが飛ぶはず)。

Chatbox AIは外部ウェブサイトのURLを指定すると本文を抽出して読み込んでくれるし、Mermaidの図とかMarkdownやLaTeXも表示してくれるので良さげ。

現代の英語において「文字通り(literally)」という言葉は文字通りの文字通りの意味では使われないことも多いが、歴史的には“very”や“truly”や“terrific”なども同じような変化があったという記事。
https://theconversation.com/love-it-or-hate-it-nonliteral-literally-is-here-to-stay-heres-why-english-will-survive-244226

ウェブサーバの前に外部のロードバランサーを追加する場合、TLSの鍵と証明書をロードバランサーに預けてTLSを終端してHTTPとして転送する方法と、終端せずにTCPとして転送する方法がある。

TCPレベルの方はロードバランサーが通信内容を盗聴できないように見えるが、実際にはロードバランサーはLet's Encrypt等を使って証明書を発行できるはずなので中間者攻撃が可能なはず。

もちろん、その場合は証明書が異なるものになるので、いずればれるという違いはある。

競技OpenAI o1 (少ない入力でたくさんコストがかかった方が勝ち)。

1年ほど前のことなんだけど、CircleCIの創立者が、ガザでの虐殺に反対するブログ記事を公開した後に役員会から除名されたらしい。 https://www.trtworld.com/magazine/code-of-silence-how-one-techie-unmasked-silicon-valleys-hypocrisy-on-gaza-16385719

今現在CircleCIは使っていないんだけど、今後も使わないようにする。

@ikeji iOS/iPad版Mastodonだと全部改行が無くなってる。

iOS/iPad版MastodonはHTMLを独自にレンダリングしていて、<br><br /> (スペース1つ)は改行にするけど<br/> (スペース無し)は改行にしない、みたいな処理になっているのが原因ぽくて、今修正中。

https://github.com/mastodon/mastodon-ios/issues/896

test
test
test
test

test
test
test
test

test
test

test
test
test
test

#いろいろなアドベントカレンダー

頭が大きな花になっている背の高い人物が、1日に1杯不思議な香りの紅茶をくれる。花は毎日違うものだが、名前はわからない。ティーストレーナーには昨日の花の欠片が1枚乗っていた。

アメリカの恩赦制度は感覚的に受け入れ難いけど、大陸法と英米法の感覚の違いもあるんだろうか。

»