<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
  <title>Conao3 Notes</title>
  <subtitle>conao3 (Naoya Yamashita) の技術ブログ。Emacs Lisp、Lean 4、Clojure、Rust、Python、TypeScript で作ったものと調べたことを書いています。</subtitle>
  <id>https://s.conao3.com/</id>
  <link rel="alternate" type="text/html" href="https://s.conao3.com/"/>
  <link rel="self" type="application/atom+xml" href="https://s.conao3.com/feed.xml"/>
  <updated>2026-11-11T13:59:00-05:00</updated>
  <author><name>conao3 (Naoya Yamashita)</name><uri>https://s.conao3.com/en/portfolio/</uri></author>
  <icon>https://s.conao3.com/assets/icon.jpg</icon>
  <entry>
    <title>Lean 4で証明した関数をPythonから呼べるlean-pyを作った</title>
    <id>https://s.conao3.com/blog/2026/dc65bb</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/dc65bb"/>
    <published>2026-11-11T13:59:00-05:00</published>
    <updated>2026-11-11T13:59:00-05:00</updated>
    <summary xml:lang="ja">Lean 4で書いて証明した関数をPythonから呼べるようにする、lean-pyを作りました。Leanのstructureと帰納型はpydanticのmodelになり、FastAPIのリクエストの型にもそのまま使えます。逆向きに、Pyt…</summary>
  </entry>
  <entry>
    <title>Leanで仕様に厳格なLSPのクライアントとサーバーを作り、既存のOSSに仕様違反を見つけた</title>
    <id>https://s.conao3.com/blog/2026/ccc5ed</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/ccc5ed"/>
    <published>2026-11-09T17:30:00-05:00</published>
    <updated>2026-11-09T17:30:00-05:00</updated>
    <summary xml:lang="ja">エディタと言語サーバーはLanguage Server Protocol、略してLSPで通信します。いろいろなエディタと言語サーバーを使っていて、どれも仕様の細かいところを少しずつ外しているように感じていました。ところが、LSPには公式の…</summary>
  </entry>
  <entry>
    <title>Leanで証明した日付と税計算を、RustのcrateとWebページにした</title>
    <id>https://s.conao3.com/blog/2026/c4f11a</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/c4f11a"/>
    <published>2026-11-09T14:40:00-05:00</published>
    <updated>2026-11-09T14:40:00-05:00</updated>
    <summary xml:lang="ja">lean-ritsuryoは、日本の法令が定める期間と税額の計算をLean 4で書き、条文どおりに計算することを証明したライブラリです。これをlean-rsでRustに変換して、Rustのcrateと、ブラウザだけで計算するWebページに…</summary>
  </entry>
  <entry>
    <title>Lean 4で証明した関数をRustから呼べるlean-rsを作った</title>
    <id>https://s.conao3.com/blog/2026/b43a06</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/b43a06"/>
    <published>2026-11-09T09:58:00-05:00</published>
    <updated>2026-11-09T09:58:00-05:00</updated>
    <summary xml:lang="ja">Lean 4で書いて証明した関数をRustから呼べるようにする、lean-rsを作りました。逆向きに、Rustで書いた関数の性質をLeanで証明することもできます。リポジトリはconao3/lean-rsで、ライセンスはApache-2.…</summary>
  </entry>
  <entry>
    <title>awsrを本家AWS CLIの新しいバージョンに毎日追従させる</title>
    <id>https://s.conao3.com/blog/2026/7fe084</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/7fe084"/>
    <published>2026-11-06T04:27:00-05:00</published>
    <updated>2026-11-06T04:27:00-05:00</updated>
    <summary xml:lang="ja">前の記事で紹介した awsr は、AWS CLI v2とバイト単位で同じ出力を返すRust製のCLIです。同じ出力を返し続けるには、本家の新しいバージョンが出るたびに awsr も同じバージョンへ上げる必要があります。本家は2026-09…</summary>
  </entry>
  <entry>
    <title>Lean 4で証明した関数をClojureから呼べるlean-cljを作った</title>
    <id>https://s.conao3.com/blog/2026/4e5aa2</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/4e5aa2"/>
    <published>2026-11-05T20:05:00-05:00</published>
    <updated>2026-11-05T20:05:00-05:00</updated>
    <summary xml:lang="ja">Lean 4で書いて証明した関数をClojureから呼び、Clojureで書いた関数の性質をLeanで証明するためのライブラリとしてlean-cljを作りました。リポジトリはconao3/lean-cljで、ライセンスはApache-2.…</summary>
  </entry>
  <entry>
    <title>lean-clj: call Lean 4 functions from Clojure, and prove Clojure functions in Lean</title>
    <id>https://s.conao3.com/blog/2026/311be4</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/311be4"/>
    <published>2026-11-05T20:05:00-05:00</published>
    <updated>2026-11-05T20:05:00-05:00</updated>
    <summary xml:lang="en">I wrote lean-clj, a library that lets you call functions written and proved in Lean 4 from Clojure, and prove propertie…</summary>
  </entry>
  <entry>
    <title>awsr: the AWS CLI v2 in Rust, with the same output and up to 550 times the speed</title>
    <id>https://s.conao3.com/blog/2026/87e5cb</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/87e5cb"/>
    <published>2026-11-05T18:56:00-05:00</published>
    <updated>2026-11-05T18:56:00-05:00</updated>
    <summary xml:lang="en">I wrote awsr, a Rust CLI that takes the command line of the AWS CLI v2 and prints the same bytes as the official CLI. T…</summary>
  </entry>
  <entry>
    <title>AWS CLI v2と出力が同じで最大550倍速いawsrをRustで作った</title>
    <id>https://s.conao3.com/blog/2026/f681b9</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/f681b9"/>
    <published>2026-11-05T18:21:00-05:00</published>
    <updated>2026-11-05T18:21:00-05:00</updated>
    <summary xml:lang="ja">AWS CLI v2のコマンドラインをそのまま受け付け、本家とバイト単位で同じ出力を返すCLI awsr をRustで作りました。リポジトリはconao3/rust-awscliで、ライセンスはApache-2.0です。awsr sts …</summary>
  </entry>
  <entry>
    <title>PLaMo 3 Translateを手元で動かしてパイプで訳すCLI plamo-tr-localを作った</title>
    <id>https://s.conao3.com/blog/2026/33d2c2</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/33d2c2"/>
    <published>2026-11-05T02:00:00-05:00</published>
    <updated>2026-11-05T02:00:00-05:00</updated>
    <summary xml:lang="ja">Preferred Networksの翻訳特化LLMであるPLaMo 3 Translateの重みが、2026-11-05に公開されました。このモデルを手元のPCで動かして、シェルのパイプで文章を訳すコマンド plamo-tr-local…</summary>
  </entry>
  <entry>
    <title>APIトークンを持たずにGitHub ActionsのビルドをCloudflare Workersへデプロイする</title>
    <id>https://s.conao3.com/blog/2026/12e5f6</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/12e5f6"/>
    <published>2026-11-04T20:32:00-05:00</published>
    <updated>2026-11-04T20:32:00-05:00</updated>
    <summary xml:lang="ja">GNU Emacsのマニュアルを日本語に機械翻訳したサイトhttps://emacs-doc.conao3.comを、Cloudflare Workersで公開しています。conao3/emacs-docはpublicのリポジトリです。こ…</summary>
  </entry>
  <entry>
    <title>Leanの論文をaiXivに投稿した</title>
    <id>https://s.conao3.com/blog/2026/bfc7fe</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/bfc7fe"/>
    <published>2026-11-04T14:43:00-05:00</published>
    <updated>2026-11-04T14:43:00-05:00</updated>
    <summary xml:lang="ja">Leanで書く証明付きの日付と税計算で紹介したlean-ritsuryoについて、英語の論文を書いてaiXivに投稿しました。論文はaiXiv:2611.00464で読めます。論文のページには、タイトルと著者のほか、AIの関与の区分のAI…</summary>
  </entry>
  <entry>
    <title>git fetch is Turing complete</title>
    <id>https://s.conao3.com/blog/2026/1e0718</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/1e0718"/>
    <published>2026-11-04T01:59:00-05:00</published>
    <updated>2026-11-04T01:59:00-05:00</updated>
    <summary xml:lang="en">This is a program:</summary>
  </entry>
  <entry>
    <title>Leanで書く証明付きの日付と税計算</title>
    <id>https://s.conao3.com/blog/2026/5499a8</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/5499a8"/>
    <published>2026-11-03T04:36:00-05:00</published>
    <updated>2026-11-03T04:36:00-05:00</updated>
    <summary xml:lang="ja">控訴期間の末日や所得税の額は、条文を読めば計算の手順が決まります。それでも、年末年始に当たる末日の繰り下げや、税率の区分の境目のように、手で計算すると間違えやすい所があります。プログラムに書いた場合も、その計算が条文どおりかを確かめるには…</summary>
  </entry>
  <entry>
    <title>Nixで始めるemacsclient</title>
    <id>https://s.conao3.com/blog/2026/26583e</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2026/26583e"/>
    <published>2026-01-24T00:00:00+09:00</published>
    <updated>2026-01-24T00:00:00+09:00</updated>
    <summary xml:lang="ja">Emacsを使っていると、シェルから現在のEmacsのインスタンスを使ってファイル編集したいことがあります。</summary>
  </entry>
  <entry>
    <title>Nixpkgsでのアップデート作業</title>
    <id>https://s.conao3.com/blog/2025/b1a436</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2025/b1a436"/>
    <published>2025-12-14T00:00:00+09:00</published>
    <updated>2025-12-14T00:00:00+09:00</updated>
    <summary xml:lang="ja">nixpkgsに登録されているclj-kondoが少し古いバージョンだった。nixpkgsを更新するために調べたのでメモ。</summary>
  </entry>
  <entry>
    <title>日本語レポートから始めるorg-modeとEmacs</title>
    <id>https://s.conao3.com/blog/2025/f84aea</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2025/f84aea"/>
    <published>2025-12-02T00:00:00+09:00</published>
    <updated>2025-12-02T00:00:00+09:00</updated>
    <summary xml:lang="ja">この記事はEmacs Advent Calendar 2025の4日目の記事です。</summary>
  </entry>
  <entry>
    <title>ClojureでEcho Server</title>
    <id>https://s.conao3.com/blog/2024/4d880f</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2024/4d880f"/>
    <published>2024-12-23T00:00:00+09:00</published>
    <updated>2024-12-23T00:00:00+09:00</updated>
    <summary xml:lang="ja">ClojureでTCPソケットを使ったプログラムを書きたくなりました。TCPソケットを使おうと思ったら書くのがEcho Serverですね。書きましょう。</summary>
  </entry>
  <entry>
    <title>Hello Stasis</title>
    <id>https://s.conao3.com/blog/2024/5a7fcc</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2024/5a7fcc"/>
    <published>2024-12-21T00:00:00+09:00</published>
    <updated>2024-12-21T00:00:00+09:00</updated>
    <summary xml:lang="ja">私はconao3.comを持っていて、どうせ何回ブログを作っても飽きるので初めからサブドメインで用意するようにしています。今までのブログはこんな感じ。</summary>
  </entry>
  <entry>
    <title>Clojureで始めるTree-sitter</title>
    <id>https://s.conao3.com/blog/2024/5d087f</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2024/5d087f"/>
    <published>2024-10-26T00:00:00+09:00</published>
    <updated>2024-10-26T00:00:00+09:00</updated>
    <summary xml:lang="ja">東京Emacs勉強会オクトーバーフェスティバル2024の登壇資料です。</summary>
  </entry>
  <entry>
    <title>2025年からを生きるためのEmacs入門</title>
    <id>https://s.conao3.com/blog/2024/d27077</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2024/d27077"/>
    <published>2024-08-04T00:00:00+09:00</published>
    <updated>2024-08-04T00:00:00+09:00</updated>
    <summary xml:lang="ja">東京Emacs勉強会 サマーフェスティバル2024の登壇資料です。</summary>
  </entry>
  <entry>
    <title>maturinで始めるRustのPythonバインディング</title>
    <id>https://s.conao3.com/blog/2024/3ef28c</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2024/3ef28c"/>
    <published>2024-01-07T00:00:00+09:00</published>
    <updated>2024-01-07T00:00:00+09:00</updated>
    <summary xml:lang="ja">PydanticがRustで爆速になるぜといって、実際にV2がリリースされました。本当に17倍速くなったかはあまり気にしていませんが、多分速くなっているんでしょう。私はAPIがきれいになったので実務的にはそちらの方が嬉しいと思っています。</summary>
  </entry>
  <entry>
    <title>leafのつくりかた</title>
    <id>https://s.conao3.com/blog/2023/32f60d</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/32f60d"/>
    <published>2023-12-28T00:00:00+09:00</published>
    <updated>2023-12-28T00:00:00+09:00</updated>
    <summary xml:lang="ja">これはEmacsアドベントカレンダー2023の15日目の記事です。空いていたのでしゅっと放り込んでおきます。</summary>
  </entry>
  <entry>
    <title>poetryでPyPIにPublishする</title>
    <id>https://s.conao3.com/blog/2023/7c1a85</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/7c1a85"/>
    <published>2023-11-01T00:00:00+09:00</published>
    <updated>2023-11-01T00:00:00+09:00</updated>
    <summary xml:lang="ja">2023年のPython環境構築: pyenv + poetryを書いた当時はPyPIにライブラリを公開することがほとんどなかったので、publishについては意図的に省いていた。最近やってみると予想外に簡単だったので小物をどんどん公開す…</summary>
  </entry>
  <entry>
    <title>Apollo Clientことはじめ</title>
    <id>https://s.conao3.com/blog/2023/085ed2</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/085ed2"/>
    <published>2023-06-05T00:00:00+09:00</published>
    <updated>2023-06-05T00:00:00+09:00</updated>
    <summary xml:lang="ja">GraphQLクライアントのApollo Clientを使ってみたので、そのメモです。</summary>
  </entry>
  <entry>
    <title>better shellscriptとしてのdeno</title>
    <id>https://s.conao3.com/blog/2023/760239</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/760239"/>
    <published>2023-06-04T00:00:00+09:00</published>
    <updated>2023-06-04T00:00:00+09:00</updated>
    <summary xml:lang="ja">denoで一枚ペラのTypeScriptが動きます。better shellscriptとしてのdenoを考えてみます。</summary>
  </entry>
  <entry>
    <title>さくっとpostgreSQLを立ち上げたいときのメモ</title>
    <id>https://s.conao3.com/blog/2023/17d2f4</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/17d2f4"/>
    <published>2023-03-31T00:00:00+09:00</published>
    <updated>2023-03-31T00:00:00+09:00</updated>
    <summary xml:lang="ja">今SQLを叩きたいぞというときが稀にある。そもそもそういうときはこの「はじめに」すら読み飛ばすので、さっさと方法を書く。</summary>
  </entry>
  <entry>
    <title>AstroでKaTeXを使いたいぞという話</title>
    <id>https://s.conao3.com/blog/2023/e4b3be</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/e4b3be"/>
    <published>2023-03-25T00:00:00+09:00</published>
    <updated>2023-03-25T00:00:00+09:00</updated>
    <summary xml:lang="ja">Webで数式組版をしたい場合、MathJaxを使うというのが常識でしたが、前回のhugoブログを作った時点でKaTeXの方が速くて良いぞという話になっていました。今回のAstroブログでもどうにか数式を表示したいということで、さくっと調べ…</summary>
  </entry>
  <entry>
    <title>AstroでReact Flowを使いたいぞという話</title>
    <id>https://s.conao3.com/blog/2023/bb48a7</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/bb48a7"/>
    <published>2023-03-24T00:00:00+09:00</published>
    <updated>2023-03-24T00:00:00+09:00</updated>
    <summary xml:lang="ja">React Flowに一目惚れしたので、このブログでも使ってみたい。Hello Astroで素のReactが動くことは確かめたのだけど、このクラスのライブラリが動くかどうかは分からないので、ちょっとチャレンジングな課題。</summary>
  </entry>
  <entry>
    <title>yarnからpnpmに移行してみる</title>
    <id>https://s.conao3.com/blog/2023/916227</id>
    <link rel="alternate" type="text/html" href="https://s.conao3.com/blog/2023/916227"/>
    <published>2023-03-22T00:00:00+09:00</published>
    <updated>2023-03-22T00:00:00+09:00</updated>
    <summary xml:lang="ja">Hello Astroで厨二なのでnpmではなくyarnを使うという話をしましたが、巷でpnpmが話題になってるので、素振りも兼ねてpnpmに移行してみました。</summary>
  </entry>
</feed>
