# Conao3 Notes

conao3 (Naoya Yamashita) の技術ブログです。Emacs Lisp、Lean 4、Clojure、Rust、Python、TypeScript などで作ったものと調べたことを日本語で書いています。

- Portfolio (English): https://s.conao3.com/en/portfolio/
- ポートフォリオ: https://s.conao3.com/ja/portfolio/
- GitHub: https://github.com/conao3
- X: https://x.com/conao_3
- Sitemap: https://s.conao3.com/sitemap.xml

各記事は、記事の URL に `Accept: text/markdown` を付けて取るか、末尾に `.md` を付けた URL で Markdown として読めます。

## Blogs

- 2026-11-11 [Lean 4で証明した関数をPythonから呼べるlean-pyを作った](https://s.conao3.com/blog/2026/dc65bb.md)
- 2026-11-09 [Leanで仕様に厳格なLSPのクライアントとサーバーを作り、既存のOSSに仕様違反を見つけた](https://s.conao3.com/blog/2026/ccc5ed.md)
- 2026-11-09 [Leanで証明した日付と税計算を、RustのcrateとWebページにした](https://s.conao3.com/blog/2026/c4f11a.md)
- 2026-11-09 [Lean 4で証明した関数をRustから呼べるlean-rsを作った](https://s.conao3.com/blog/2026/b43a06.md)
- 2026-11-06 [awsrを本家AWS CLIの新しいバージョンに毎日追従させる](https://s.conao3.com/blog/2026/7fe084.md)
- 2026-11-05 [Lean 4で証明した関数をClojureから呼べるlean-cljを作った](https://s.conao3.com/blog/2026/4e5aa2.md)
- 2026-11-05 [lean-clj: call Lean 4 functions from Clojure, and prove Clojure functions in Lean](https://s.conao3.com/blog/2026/311be4.md)
- 2026-11-05 [awsr: the AWS CLI v2 in Rust, with the same output and up to 550 times the speed](https://s.conao3.com/blog/2026/87e5cb.md)
- 2026-11-05 [AWS CLI v2と出力が同じで最大550倍速いawsrをRustで作った](https://s.conao3.com/blog/2026/f681b9.md)
- 2026-11-05 [PLaMo 3 Translateを手元で動かしてパイプで訳すCLI plamo-tr-localを作った](https://s.conao3.com/blog/2026/33d2c2.md)
- 2026-11-04 [APIトークンを持たずにGitHub ActionsのビルドをCloudflare Workersへデプロイする](https://s.conao3.com/blog/2026/12e5f6.md)
- 2026-11-04 [Leanの論文をaiXivに投稿した](https://s.conao3.com/blog/2026/bfc7fe.md)
- 2026-11-04 [git fetch is Turing complete](https://s.conao3.com/blog/2026/1e0718.md)
- 2026-11-03 [Leanで書く証明付きの日付と税計算](https://s.conao3.com/blog/2026/5499a8.md)
- 2026-01-24 [Nixで始めるemacsclient](https://s.conao3.com/blog/2026/26583e.md)
- 2025-12-14 [Nixpkgsでのアップデート作業](https://s.conao3.com/blog/2025/b1a436.md)
- 2025-12-02 [日本語レポートから始めるorg-modeとEmacs](https://s.conao3.com/blog/2025/f84aea.md)
- 2024-12-23 [ClojureでEcho Server](https://s.conao3.com/blog/2024/4d880f.md)
- 2024-12-21 [Hello Stasis](https://s.conao3.com/blog/2024/5a7fcc.md)
- 2024-10-26 [Clojureで始めるTree-sitter](https://s.conao3.com/blog/2024/5d087f.md)
- 2024-08-04 [2025年からを生きるためのEmacs入門](https://s.conao3.com/blog/2024/d27077.md)
- 2024-01-07 [maturinで始めるRustのPythonバインディング](https://s.conao3.com/blog/2024/3ef28c.md)
- 2023-12-28 [leafのつくりかた](https://s.conao3.com/blog/2023/32f60d.md)
- 2023-11-01 [poetryでPyPIにPublishする](https://s.conao3.com/blog/2023/7c1a85.md)
- 2023-06-05 [Apollo Clientことはじめ](https://s.conao3.com/blog/2023/085ed2.md)
- 2023-06-04 [better shellscriptとしてのdeno](https://s.conao3.com/blog/2023/760239.md)
- 2023-03-31 [さくっとpostgreSQLを立ち上げたいときのメモ](https://s.conao3.com/blog/2023/17d2f4.md)
- 2023-03-25 [AstroでKaTeXを使いたいぞという話](https://s.conao3.com/blog/2023/e4b3be.md)
- 2023-03-24 [AstroでReact Flowを使いたいぞという話](https://s.conao3.com/blog/2023/bb48a7.md)
- 2023-03-22 [yarnからpnpmに移行してみる](https://s.conao3.com/blog/2023/916227.md)
- 2023-03-20 [Pydantic: 基本的な使用方法](https://s.conao3.com/blog/2023/38d15e.md)
- 2023-03-20 [記事の依存関係を管理したいという話](https://s.conao3.com/blog/2023/2bff82.md)
- 2023-03-19 [パッケージをささっと試すためのplayground - Python](https://s.conao3.com/blog/2023/7a00d9.md)
- 2023-03-14 [2023年のPython環境構築: pyenv + poetry](https://s.conao3.com/blog/2023/d76e1d.md)
- 2023-03-12 [Hello Astro](https://s.conao3.com/blog/2023/b81579.md)
- 2022-12-16 [dioxus-tui入門 - 0.2.2](https://s.conao3.com/blog/2022/6b4afc.md)
- 2020-12-25 [leaf-defaultsというはちゃめちゃ便利キーワードをleafに追加した話](https://s.conao3.com/blog/2020/5fc05c.md)
- 2020-09-25 [org-modeドキュメントからZenn Flavored Markdownを生成するox-zennの使い方](https://s.conao3.com/blog/2020/6dae6b.md)
- 2020-09-24 [ピクシブ夏インターンシップ「PIXIV SUMMER BOOT CAMP 2020」体験記](https://s.conao3.com/blog/2020/8ecc43.md)
- 2020-08-17 [Elispでplist-getをsetfに対応させる方法](https://s.conao3.com/blog/2020/48c25c.md)
- 2020-08-11 [GitHub Actionsで全てのジョブの実行を強制する方法](https://s.conao3.com/blog/2020/0fb03f.md)
- 2020-08-10 [Elispでstring-trimの代替を用意する方法](https://s.conao3.com/blog/2020/dc06b0.md)
- 2020-08-01 [Elispファイルをタブ/スペース混在インデントからスペースインデントに修正する方法](https://s.conao3.com/blog/2020/67a1dc.md)
- 2020-05-27 [MELPAのパッケージページにHomepageリンクが追加](https://s.conao3.com/blog/2020/cbf3fd.md)
- 2020-05-26 [リストに関数を適用して最初にnon-nilを返した値を得る方法](https://s.conao3.com/blog/2020/cec89c.md)
- 2020-05-26 [Emacsに存在するwithプレフィックスのマクロ一覧](https://s.conao3.com/blog/2020/8f0b12.md)
- 2020-05-26 [Emacs Lispの文字列操作まとめ](https://s.conao3.com/blog/2020/8e5d61.md)
- 2020-05-26 [Lispでスペシャルフォームのorやandをapplyする方法](https://s.conao3.com/blog/2020/6e67e4.md)
- 2020-05-26 [Emacsでプレフィックスキーにバインドする方法](https://s.conao3.com/blog/2020/609573.md)
- 2020-05-26 [Emacsのキーマップlookup順序について](https://s.conao3.com/blog/2020/40023a.md)
- 2020-05-24 [CELPA (Conao3's Emacs Lisp Package Archive) をデプロイした話](https://s.conao3.com/blog/2020/7b1dc7.md)
- 2020-05-24 [Emacsで競技プログラミング | ojのラッパーパッケージを書いた話](https://s.conao3.com/blog/2020/5739d9.md)
- 2020-05-23 [制御記号付きのmake-processの出力をいい感じに処理する方法](https://s.conao3.com/blog/2020/5fb67c.md)
- 2020-05-23 [Emacsで最終行にポイントを動かさないようにするアドバイス](https://s.conao3.com/blog/2020/33dbfa.md)
- 2020-05-11 [Archのrsyncで転送できないときに確認すること](https://s.conao3.com/blog/2020/55bf86.md)
- 2020-05-10 [令和時代のEmacsカラーテーマの作り方](https://s.conao3.com/blog/2020/91b392.md)
- 2020-05-07 [ox-hugo用のorg-captureテンプレートについて](https://s.conao3.com/blog/2020/e6234e.md)
- 2020-05-07 [誕生日のパラドックスから考察する、個人ブログURLに必要なランダムビット数](https://s.conao3.com/blog/2020/9383f3.md)
- 2020-05-06 [個人ブログのパーマリンクに関する最適戦略について](https://s.conao3.com/blog/2020/0bc44c.md)
- 2020-05-05 [Netlify + Hugo + ox-hugoでブログを始める第一歩](https://s.conao3.com/blog/2020/0a23fb.md)
- 2020-04-16 [Emacs入門から始めるleaf.el入門](https://s.conao3.com/blog/2020/d22aed.md)
- 2019-12-04 [Re: Makefileで.emacs.dの理想的なディレクトリ構造を生成する話](https://s.conao3.com/blog/2019/183c16.md)
- 2019-12-03 [leaf.elに依存したEmacs設定ファイル「init.el」をバイトコンパイルして爆速にする](https://s.conao3.com/blog/2019/6c5374.md)
- 2019-12-02 [魔改造によってSolarized.elがEmacs最強のカラーテーマになってしまった件](https://s.conao3.com/blog/2019/b9700c.md)
- 2019-12-02 [[2019年アップデート] leaf.elで雑然としたEmacs設定ファイル「init.el」をクリーンにする](https://s.conao3.com/blog/2019/3279ec.md)
- 2019-12-01 [依存関係をスマートに解決しつつ「GitHub Actions」でCIを無料でぶん回す](https://s.conao3.com/blog/2019/a95917.md)
- 2019-06-15 [[正式リリース]leaf.elで雑然としたEmacs設定ファイル「init.el」をクリーンにする](https://s.conao3.com/blog/2019/2b6cbf.md)
- 2019-04-16 [lispの同図像性とその周辺 ― leaf.el, seml-mode.elの内部構造に触れながら](https://s.conao3.com/blog/2019/13c1f0.md)
- 2018-12-21 [use-packageからの移行のすゝめ - leaf.elでバージョン安全なinit.elを書く](https://s.conao3.com/blog/2018/8aa938.md)
- 2018-12-14 [org-publishを使ってorgでブログを書く話](https://s.conao3.com/blog/2018/611299.md)
- 2018-12-08 [EmacsのパッケージもTravis CIしてbuild:passingしたい！](https://s.conao3.com/blog/2018/48bb55.md)
- 2018-12-07 [Makefileで.emacs.dの理想的なディレクトリ構造を生成する話](https://s.conao3.com/blog/2018/07b41c.md)
