<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>かおるのブログ</title>
    <link>https://blog.kaorubb.org/ja/</link>
    <description>Recent content on かおるのブログ</description>
    <generator>Hugo -- 0.147.8</generator>
    <language>ja</language>
    <lastBuildDate>Sat, 14 Feb 2026 15:51:00 +0900</lastBuildDate>
    <atom:link href="https://blog.kaorubb.org/ja/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>YubiKey 導入で、セキュアで快適な GPG &amp; SSH 運用を実現したよ</title>
      <link>https://blog.kaorubb.org/ja/posts/yubikey_setup/</link>
      <pubDate>Sat, 14 Feb 2026 15:51:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/yubikey_setup/</guid>
      <description>&lt;figure class=&#34;align-center&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/joji_yubikey.webp&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;みなさんは、GPG 鍵やSSH 鍵はどのように管理していますか？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dropbox等のクラウドストレージに秘密鍵を保存している&lt;/li&gt;
&lt;li&gt;全てのPC に同じ鍵をコピーして使い回している&lt;/li&gt;
&lt;li&gt;PCごとに別々の鍵を作った結果、どの鍵がどのPCに入っているか把握できていない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これに当てはまる人、 &lt;strong&gt;弱いって。脆弱だって。&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&#34;align-center&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/joji_only_way.webp&#34;
         alt=&#34;図1: ガチで危機感持った方が良いと思う&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図1: &lt;/span&gt;ガチで危機感持った方が良いと思う&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;かくいう私も、&lt;a href=&#34;https://www.passwordstore.org/&#34;&gt;pass&lt;/a&gt;や&lt;a href=&#34;https://github.com/getsops/sops&#34;&gt;sops&lt;/a&gt;で必要になってくるGPGや、
他のマシンの操作や&lt;a href=&#34;https://www.terminal.shop/&#34;&gt;コーヒーの注文&lt;/a&gt;に必須のSSHの鍵について、
デバイスが増えるにつれて以下の問題に悩んでいました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;鍵管理の限界:&lt;/strong&gt;
4台のPC、クラウドサーバー、研究室のサーバーを使い分けており、マシンごとに鍵を作るのは管理状況を覚えているのが辛いし、同じ秘密鍵を使い回すのはセキュリティ的に不安。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2段階認証の苦痛:&lt;/strong&gt;
macOSならPasskeyが使えるが、LinuxではGoogle やGitHub のログインのためにiPhoneのアプリを開く必要があり、これが地味にダルかった
(最近 &lt;a href=&#34;https://alfioemanuele.io/talks/2026/02/01/fosdem-2026-credentials-for-linux.html&#34;&gt;こんなの&lt;/a&gt;もあるらしいけど)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらをYubiKeyの導入で解決した記録です。&lt;/p&gt;
&lt;h2 id=&#34;できるようになったこと&#34;&gt;できるようになったこと&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;一元管理:&lt;/strong&gt; YubiKey内にGPG鍵（署名・復号・認証）を閉じ込め、PC側には秘密鍵を置かない運用へ。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2FAの突破:&lt;/strong&gt; GitHubやGoogle等のログイン時、YubiKeyのボタンをポンと触るだけで認証完了。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;リモートでのシームレスな認証:&lt;/strong&gt; 手元のPCにYubiKeyを挿しておけば、SSH先のサーバー（自宅のMac miniや研究室のPC）上でも、手元のYubiKeyを使って &lt;code&gt;git fetch&lt;/code&gt; や &lt;code&gt;commit&lt;/code&gt; の署名の認証が可能（Agent Forwarding）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;やったこと&#34;&gt;やったこと&lt;/h2&gt;
&lt;h3 id=&#34;yubikey-の購入&#34;&gt;YubiKey の購入&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://ykey.yubion.com/&#34;&gt;日本の代理店のサイト&lt;/a&gt;やAmazon でも購入可能ですが、自分が欲しかった YubiKey 5C Nano が売っていなかったため、本家のYubico Store から直接購入しました。&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/yubikey_invoice.webp&#34;
         alt=&#34;図2: YubiKey 3本とストラップで送料込み32,154円でした&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図2: &lt;/span&gt;YubiKey 3本とストラップで送料込み32,154円でした&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


            &lt;link rel=&#34;stylesheet&#34; href=&#34;https://blog.kaorubb.org/css/vendors/admonitions.53cd9f8afa9d9a8ac09093f668df057bc6d0f4bbd0886f39991a7b99934a7432.css&#34; integrity=&#34;sha256-U82fivqdmorAkJP2aN8Fe8bQ9LvQiG85mRp7mZNKdDI=&#34; crossorigin=&#34;anonymous&#34;&gt;
    &lt;div class=&#34;admonition idea&#34;&gt;
      &lt;div class=&#34;admonition-header&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 384 512&#34;&gt;&lt;path d=&#34;M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z&#34;/&gt;&lt;/svg&gt;
        &lt;span&gt;なぜ3本も買ったのか？&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&#34;admonition-content&#34;&gt;
        &lt;p&gt;①自宅のデスクトップ用、②外出用のノートPC用、③携帯用の予備、の3本体制にするためです。
外出先でYubiKeyを忘れて数時間、場合によっては数日間作業できなくなるリスクを鑑みれば、追加の1万円は安い!&lt;/p&gt;</description>
    </item>
    <item>
      <title>2026 Week 6 面白かった記事など</title>
      <link>https://blog.kaorubb.org/ja/posts/articles-2026-w06/</link>
      <pubDate>Sun, 08 Feb 2026 14:47:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/articles-2026-w06/</guid>
      <description>&lt;h2 id=&#34;state-of-ai-in-2026-llms-coding-scaling-laws-china-agents-gpus-agi-lex-fridman-podcast-490-youtube&#34;&gt;State of AI in 2026: LLMs, Coding, Scaling Laws, China, Agents, GPUs, AGI | Lex Fridman Podcast #490 - YouTube&lt;/h2&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/EV7WhVT270Q?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://youtube.com/watch?v=EV7WhVT270Q&amp;amp;t=11619&#34;&gt;RLVR（Reinforcement Learning with Verifiable Rewards)&lt;/a&gt;ではScaling Laws の限界がまだ見えていない&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtu.be/EV7WhVT270Q?t=9831&#34;&gt;&lt;em&gt;if you learn more, you forget more  (No Free Lunch)&lt;/em&gt;&lt;/a&gt;: LLMも新しいことを学習すればするほど、以前に学習したことを忘れてしまう傾向がある&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtube.com/watch?v=EV7WhVT270Q&amp;amp;t=12318&#34;&gt;&lt;em&gt;Is the dream of AGI dying?&lt;/em&gt;&lt;/a&gt;: 単一モデルでAGIを実現するという夢は死につつあり、むしろ複数の専門特化したエージェントが協力し合う形でAGIを実現する方向に進んでいる&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rasbt/LLMs-from-scratch&#34;&gt;rasbt/LLMs-from-scratch: Implement a ChatGPT-like LLM in PyTorch from scratch, step by step&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>2026 Week 5 面白かった記事など</title>
      <link>https://blog.kaorubb.org/ja/posts/articles-2026-w05/</link>
      <pubDate>Sun, 01 Feb 2026 20:12:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/articles-2026-w05/</guid>
      <description>&lt;p&gt;今週のハイライト: &lt;strong&gt;前歯が欠けた(5年ぶり3回目)&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;best-ways-to-build-better-habits-and-break-bad-ones-james-clear-huberman-lab&#34;&gt;Best Ways to Build Better Habits &amp;amp; Break Bad Ones | James Clear - Huberman Lab&lt;/h2&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/bdsc3Spm6Sw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;良い習慣を形成し、悪い習慣を断ち切るための方法&lt;/li&gt;
&lt;li&gt;基本的に聞いたことあるような話:
&lt;ul&gt;
&lt;li&gt;良い習慣を身につける: Make it obvious, attractive, easy, satisfying&lt;/li&gt;
&lt;li&gt;悪い習慣を断ち切る: Make it invisible, unattractive, difficult, unsatisfying&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;自分は、ふとした時にLINE News を読んじゃう習慣を断ち切りたかったけど、LINEアプリはさすがに消せないので困ってた。
このpodcast聞いたのを機にちょっと知らべたら、&lt;a href=&#34;https://linestep.jp/2023/11/28/line_news_hide/&#34;&gt;この方法&lt;/a&gt;でLINE Newsだけを非表示にできることがわかった。(感動)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;andrej-karpathy-のツイート&#34;&gt;Andrej Karpathy のツイート&lt;/h2&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;A few random notes from claude coding quite a bit last few weeks.&lt;br&gt;&lt;br&gt;Coding workflow. Given the latest lift in LLM coding capability, like many others I rapidly went from about 80% manual+autocomplete coding and 20% agents in November to 80% agent coding and 20% edits+touchups in…&lt;/p&gt;</description>
    </item>
    <item>
      <title>2026 Week 4 面白かった記事など</title>
      <link>https://blog.kaorubb.org/ja/posts/articles-2026-w04/</link>
      <pubDate>Sun, 25 Jan 2026 18:58:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/articles-2026-w04/</guid>
      <description>&lt;h2 id=&#34;the-best-way-to-read-a-book--that-nobody-s-doing&#34;&gt;The Best Way to Read a Book (That Nobody&amp;rsquo;s Doing)&lt;/h2&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/zIqLuuyxgE4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Jeremy Howard が&lt;a href=&#34;https://www.answer.ai/posts/2025-10-01-solveit-full.html&#34;&gt;Solveit&lt;/a&gt; を使った精読(close reading)の方法を紹介している動画&lt;/li&gt;
&lt;li&gt;「 &lt;strong&gt;読む前に関連情報をcontextに入れまくり、章ごとにcontextの引き継ぎをしながらAIと会話しながら読む&lt;/strong&gt; 」という方法&lt;/li&gt;
&lt;li&gt;論文とか教科書を読むときに &lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;gptel&lt;/a&gt; で前からやっていた方法に近いけど、contextの引き継ぎを章ごとにやるのはやったことがなかった
&lt;ul&gt;
&lt;li&gt;(参考) &lt;a href=&#34;https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/&#34;&gt;過去記事: &lt;code&gt;gpt.el&lt;/code&gt; &amp;amp; &lt;code&gt;mcp.el&lt;/code&gt; で整う emacs llm環境&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>2026 Week 3 面白かった記事など</title>
      <link>https://blog.kaorubb.org/ja/posts/articles-2026-w03/</link>
      <pubDate>Sun, 18 Jan 2026 18:58:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/articles-2026-w03/</guid>
      <description>&lt;p&gt;忙しくてブログを更新してなかったから、リハビリも兼ねて今週読んで面白いと思ったサイトなどをメモしておく。&lt;/p&gt;
&lt;h2 id=&#34;小野口スノードーム&#34;&gt;&lt;a href=&#34;https://www.lokkayama.com/onoguchisnowdome/index.html&#34;&gt;小野口スノードーム&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;スノードームのコレクターの方がコレクションを写真付きで紹介しているサイト。&lt;/li&gt;
&lt;li&gt;サイトの平成初期感が味わい深い&lt;/li&gt;
&lt;li&gt;スノードームをお土産で買ってくるような彼女が欲しい&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-security-paradox-of-local-llms-quesma-blog--hn&#34;&gt;&lt;a href=&#34;https://quesma.com/blog/local-llms-security-paradox/&#34;&gt;The security paradox of local LLMs - Quesma Blog&lt;/a&gt; (&lt;a href=&#34;https://news.ycombinator.com/item?id=45668264&#34;&gt;HN&lt;/a&gt;)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Local LLMはCloud LLMよりもセキュリティ的に安全そうに見えて、実はそうでもないという話。&lt;/li&gt;
&lt;li&gt;紹介されている攻撃プロンプトが面白い (特にAttack #2)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ラブジェネレーション-ロケ地情報-マップ&#34;&gt;&lt;a href=&#34;https://loca.ash.jp/info/1997/d199710_lovegen.htm&#34;&gt;ラブジェネレーション ロケ地情報・マップ&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NetFlixで久々にハマったドラマ&lt;/li&gt;
&lt;li&gt;正味Stranger Thingsとかよりも面白い&lt;/li&gt;
&lt;li&gt;キムタクがかっこよすぎる&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>拝啓 データサイエンティストがいらなくなると思っている君へ</title>
      <link>https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/</link>
      <pubDate>Sun, 31 Aug 2025 20:31:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/programming_aki.png&#34;
         alt=&#34;図1: 二十七の僕には誰にも話せない悩みの種があるのです&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図1: &lt;/span&gt;二十七の僕には誰にも話せない悩みの種があるのです&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;はじめに-aiは専門家を不要にするという風潮の問題&#34;&gt;はじめに: AIは専門家を不要にするという風潮の問題&lt;/h2&gt;
&lt;p&gt;ここ数年、専門的なホワイトカラーの仕事がAIに奪われるという話を至る所で耳にします。&lt;/p&gt;
&lt;p&gt;私自身学部時代から、仕事でも研究でも趣味でもデータサイエンス(以下、DS)にどっぷり浸かってきたのですが、
最近ではテクノロジーに疎い家族やプログラミング経験のない友人から、「まだプログラミングやってるの？」「AIで全部できるんじゃない？」と、悪気なく言われるようになりました。&lt;/p&gt;
&lt;p&gt;こうした声は身内だけにとどまりません。
驚くべきことに、名だたる大企業のマネージャーレベルの人や、コンサルティング業界で長年活躍されてきたような、いわゆるエリートの方々からも、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;『DS領域でやっていこうとするのは勧めない』&lt;/p&gt;
&lt;p&gt;『データサイエンティストが一番最初にAI に代替される職業なのではないか』&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;と言われてしまいました。&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/really.gif&#34;
         alt=&#34;図2: それ、本当?&#34; width=&#34;600&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図2: &lt;/span&gt;それ、本当?&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;つい先日も、知り合いの優秀な大学院生が「データサイエンティストの将来は暗い」という周囲の声に惑わされ、大学院を中退しようと真剣に悩んでいました。&lt;/p&gt;
&lt;p&gt;私は、 &lt;strong&gt;データサイエンティストの仕事を完全にAIで置き換える未来が数年以内に来る可能性は極めて低い&lt;/strong&gt; と考えており、AIへの過度な期待が企業の判断を誤らせたり、「&lt;a href=&#34;https://joereis.substack.com/p/i-dont-need-to-learn-anything-anymore&#34;&gt;AIがなんでもやってくれるから自分は何も学ぶ必要がない&lt;/a&gt;」という極端な考えが若干広まりつつある現状に強い危機感を覚えています。&lt;/p&gt;
&lt;p&gt;この状況に対し、データ分析をしている側の人間として立場を明確に示す責任があると感じ、「データサイエンティストがAIに代替される」論者の主張としてよく見られる以下の意見:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#%e7%8f%be%e7%8a%b6%e3%81%aellm%e3%81%ae%e8%aa%b2%e9%a1%8c&#34;&gt;AI は コードを書けるから、データサイエンティストはいらない&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#ai%e3%81%ab%e3%82%88%e3%82%8b%e8%87%aa%e5%8b%95%e5%8c%96%e3%81%be%e3%81%a7%e3%81%ae%e5%a3%81%e3%81%af%e9%ab%98%e3%81%84&#34;&gt;今はまだ発展途上なだけで、AI の進化ですぐに自動化できるようになる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#llm%e3%81%ae%e5%a4%b1%e6%95%97%e3%81%af%e7%b5%84%e7%b9%94%e3%81%ae%e3%83%8e%e3%82%a6%e3%83%8f%e3%82%a6%e3%81%a8%e3%81%97%e3%81%a6%e8%93%84%e7%a9%8d%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84&#34;&gt;人間も失敗するから、ハルシネーションはLLMが人間に劣る理由にならない&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#%e5%b0%82%e9%96%80%e6%80%a7%e3%81%ae%e4%be%a1%e5%80%a4%e3%81%af%e4%b8%8b%e3%81%8c%e3%82%89%e3%81%aa%e3%81%84&#34;&gt;AIで誰でも専門的な知識を得られるから、専門性の価値は下がるのでは？&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#%e3%82%b8%e3%83%a5%e3%83%8b%e3%82%a2%e3%83%ac%e3%83%99%e3%83%ab%e3%82%82%e6%82%b2%e8%a6%b3%e3%81%99%e3%82%8b%e5%bf%85%e8%a6%81%e3%81%af%e3%81%aa%e3%81%84&#34;&gt;なくならずとも、残るのはトップレベルの人だけで、需要は減るのでは？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/ds-owakon-is-a-myth/#%e3%82%b8%e3%83%a5%e3%83%8b%e3%82%a2%e3%83%ac%e3%83%99%e3%83%ab%e3%82%82%e6%82%b2%e8%a6%b3%e3%81%99%e3%82%8b%e5%bf%85%e8%a6%81%e3%81%af%e3%81%aa%e3%81%84&#34;&gt;ジュニアレベル専門家は、AIを使いこなす素人にすぐに追い越されるのでは？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;
&lt;p&gt;のひとつひとつに対し、現場の者を(勝手に)レペゼン&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;してアンサーしていこうと思います&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/supa-hot-fire-im-not-a-rapper-mnfxm62nk5qb5okt.gif&#34;
         alt=&#34;図3: I&amp;rsquo;m not a rapper&#34; width=&#34;600&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図3: &lt;/span&gt;I&amp;rsquo;m not a rapper&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;現状のllmの課題&#34;&gt;現状のLLMの課題&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;AI は コードを書けるから、データサイエンティストは不要になる&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;これは、第一線で活躍されているコンサルの方から実際に私が言われたことです。&lt;/p&gt;
&lt;p&gt;たしかにここ数年、特にコーディングの分野でのAIによる変化は凄まじく、そう思うのも無理はありません。
Tomlinson et al. (&lt;a href=&#34;#citeproc_bib_item_7&#34;&gt;2025&lt;/a&gt;)が算出しているAI Applicability scores &lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;では&amp;quot;Data Scientist&amp;quot;はトップ30に入っており&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;、DSの業務と生成AIとの親和性が非常に高いことを示しています。
&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/&#34;&gt;過去ブログにも書きました&lt;/a&gt;が、私自身も2022年の終わり頃から生成AIを使っており、コーディングやリサーチ、資料作成や勉強など、様々な場面で恩恵を受けています。&lt;/p&gt;
&lt;p&gt;しかしこの「生成AIの登場でデータサイエンティストが不要になる」という考えは&lt;a href=&#34;https://fedi.simonwillison.net/@simon/114789804331454165&#34;&gt;電動ノコギリの登場が大工を不要にする&lt;/a&gt; と言うのと同じくらい &lt;strong&gt;的外れ&lt;/strong&gt; なことだと思います。&lt;/p&gt;
&lt;h3 id=&#34;前提--データサイエンティストの仕事-コーディング-ではない&#34;&gt;(前提) &amp;ldquo;データサイエンティストの仕事=コーディング&amp;rdquo; ではない&lt;/h3&gt;
&lt;iframe class=&#34;speakerdeck-iframe&#34; style=&#34;border: 0px; background: rgba(0, 0, 0, 0.1) padding-box; margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 100%; height: auto; aspect-ratio: 560 / 315;&#34; frameborder=&#34;0&#34; src=&#34;https://speakerdeck.com/player/fbb65729fb5b4a20ae8e185014d4ac1f?slide=35&#34; title=&#34;「ビジネス現場でのデータ分析者」 東京大学 GCI 2025 Summer&#34; allowfullscreen=&#34;true&#34; data-ratio=&#34;1.7777777777777777&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;組織やポジションによって様々ですが、一般的にデータサイエンティストと呼ばれる仕事には上の資料にあるような多様な役割が含まれます。
そのため、LLM がコーディング作業を代替したとしてもデータサイエンティストの仕事がなくなるわけではありません。
自分でコードを書く時間が減り、課題設定や分析設計、実装の監督と検証、ステークホルダーとのコミュニケーションなどの &lt;strong&gt;付加価値が高いタスクにより多くの時間が割かれるような形に転換されていくだけ&lt;/strong&gt; というのが現実的なシナリオだと思います。
(ていうか、多くの仕事で既にこの類の変化は始まっていると思いますが。)&lt;/p&gt;</description>
    </item>
    <item>
      <title>gpt.el &amp; mcp.el で整う emacs llm環境</title>
      <link>https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/</link>
      <pubDate>Wed, 02 Jul 2025 11:16:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;Emacs内での大規模言語モデル（LLM）との連携は、ここ数年で劇的な進化を遂げてきました。&lt;/p&gt;
&lt;p&gt;私の最初のEmacs 内LLMとの出会いは2022年11月、&lt;a href=&#34;https://github.com/copilot-emacs/copilot.el&#34;&gt;copilot.el&lt;/a&gt; によるAI 自動補完でした。このときの感動は鮮明に覚えています。&lt;/p&gt;
&lt;p&gt;その後間もなくChatGPT が登場し、&lt;a href=&#34;https://github.com/joshcho/ChatGPT.el&#34;&gt;ChatGPT.el&lt;/a&gt; 等でEmacs内でのAIとの対話ができるようになりましたが、当時は機能も少なく、EmacsでLLMを使うメリットはあまり感じられませんでした。&lt;/p&gt;
&lt;p&gt;自分的ブレークスルーは、東京Emacs勉強会 サマーフェスティバル2024 のTomoya さんの発表で &lt;a href=&#34;https://github.com/s-kostyaev/ellama&#34;&gt;ellama&lt;/a&gt; を知ったことでした。
ellamaでは従来の対話形式だけでなく、様々な関数を通じてLLMを利用でき、Emacs が何倍も強力な開発環境へと変貌しました。&lt;/p&gt;
&lt;p&gt;そして最近では &lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;gptel&lt;/a&gt; が &lt;a href=&#34;https://github.com/doomemacs/doomemacs/commit/6898a9c267fd97d9934c00ea9a2d55ad30a2263f&#34;&gt;llm module として doom emacs に正式に組み込まれ&lt;/a&gt;、ツール連携やプロンプト/コンテクストエンジニアリング&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;が非常にスムーズになりました。&lt;/p&gt;
&lt;p&gt;これと&lt;a href=&#34;https://github.com/lizqwerscott/mcp.el&#34;&gt;mcp.el&lt;/a&gt; と組み合わせることで、LLM in emacs がある種のplateau に達したのではと感じている今、これを知らないEmacser (同胞) がもしいたら非常に勿体ないと思うので、この記事を書くことにしました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gptel&lt;/code&gt;, &lt;code&gt;mcp.el&lt;/code&gt; の設定方法や使う理由、ユースケースなどを紹介します。&lt;/p&gt;
&lt;style&gt;
.mermaid {
    text-align: center;
}
&lt;/style&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  gantt
    title 私のEmacs 内LLM 遍歴
    todayMarker off
    dateFormat YYYY-MM
    axisFormat %Y-%m
    section 自動補完
        copilot.el :2022-11, 32M
    section 黎明期
        ChatGPT.el :2023-03, 17M
        org-ai :2023-12, 8M
    section 革命
        ellama/llm              :2024-08, 9M
    section 開拓期
        ai-org-chat :2024-11, 2M
        ob-llm :2025-01, 2M
        elisa :2025-03, 1M
        copilot-chat.el     :2025-03, 2M
    section 成熟期
        gptel+mcp.el              :2025-05, 2M
        claude-code.el              :2025-06, 1M
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/copilot-emacs/copilot.el&#34;&gt;copilot-emacs/copilot.el: An unofficial Copilot plugin for Emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/joshcho/ChatGPT.el&#34;&gt;joshcho/ChatGPT.el: ChatGPT in Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rksm/org-ai&#34;&gt;rksm/org-ai: Emacs as your personal AI assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/s-kostyaev/ellama&#34;&gt;s-kostyaev/ellama: Ellama is a tool for interacting with large language models from Emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ahyatt/llm&#34;&gt;ahyatt/llm: A package abstracting llm capabilities for emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ultronozm/ai-org-chat.el&#34;&gt;ultronozm/ai-org-chat.el&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/jiyans/ob-llm&#34;&gt;jiyans/ob-llm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/s-kostyaev/elisa&#34;&gt;s-kostyaev/elisa: ELISA (Emacs Lisp Information System Assistant) is a system designed to provide informative answers to user queries by leveraging a Retrieval Augmented Generation (RAG) approach.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/chep/copilot-chat.el&#34;&gt;chep/copilot-chat.el: Chat with Github copilot in Emacs !&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;karthink/gptel: A simple LLM client for Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/lizqwerscott/mcp.el&#34;&gt;lizqwerscott/mcp.el: An Mcp client inside Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/stevemolitor/claude-code.el&#34;&gt;stevemolitor/claude-code.el: Claude Code Emacs integration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gptel-とは&#34;&gt;&lt;code&gt;gptel&lt;/code&gt; とは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;gptel&lt;/a&gt;は、Emacsのためのシンプルかつ強力な大規模言語モデル（LLM）クライアントです。
Emacs内のあらゆる場所から自由な形式でLLMと対話できる環境を提供します。
&lt;a href=&#34;https://github.com/karthink/gptel?tab=readme-ov-file#model-context-protocol-mcp-integration&#34;&gt;このデモ&lt;/a&gt;を見ると使用イメージが分かりやすいです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOSのエラー: Could not start dynamically linked executable の対処法についてのメモ</title>
      <link>https://blog.kaorubb.org/ja/posts/nixos-fix-could-not-start-dynamically-linked-executable/</link>
      <pubDate>Wed, 02 Jul 2025 11:16:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/nixos-fix-could-not-start-dynamically-linked-executable/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/&#34;&gt;別記事 &lt;code&gt;gpt.el&lt;/code&gt; &amp;amp; &lt;code&gt;mcp.el&lt;/code&gt; で整う emacs llm環境 -&amp;gt; &lt;code&gt;mcp.el&lt;/code&gt; の設定例&lt;/a&gt; にあるようにmcp.el で使ういくつかの mcp server の起動で &lt;code&gt;uvx&lt;/code&gt; を使用しているのですが、nixOS で最初に起動したときにエラーが出てしまいました。
解決方法と原因を Gemini に調べさせたので、メモしておきます。&lt;/p&gt;
&lt;h2 id=&#34;症状とエラーメッセージ&#34;&gt;症状とエラーメッセージ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;*Mcp-Hub*&lt;/code&gt; buffer で &lt;code&gt;mcp-hub-view-log&lt;/code&gt; を確認すると、以下のエラーが出ていました:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  Could not start dynamically linked executable: /home/bk/.cache/uv/archive-v0/unI5q9QapqXHm9fPXna4G/bin/python
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  NixOS cannot run dynamically linked executables intended &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; generic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  linux environments out of the box. For more information, see:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  https://nix.dev/permalink/stub-ld
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;jsonrpc&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; D&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;14:56:49.461&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; Connection state change: &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;exited abnormally with code &lt;span style=&#34;color:#ae81ff&#34;&gt;127&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;解決策-nix-ld-を有効にする&#34;&gt;解決策：nix-ld を有効にする&lt;/h2&gt;
&lt;p&gt;nix conifguration で、以下を足したら直りました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-hugo で mermaid.js を使う方法</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-hugo_mermaid/</link>
      <pubDate>Sat, 21 Jun 2025 22:07:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-hugo_mermaid/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;style&gt;
.mermaid {
    text-align: center;
}
&lt;/style&gt;
&lt;p&gt;このブログは、以下のワークフローで運用されています。&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  graph LR
  org-mode -- &amp;lt;a href=&amp;#34;https://ox-hugo.scripter.co/&amp;#34;&amp;gt;ox-hugo&amp;lt;/a&amp;gt; --&amp;gt; markdown -- &amp;lt;a href=&amp;#34;https://gohugo.io/&amp;#34;&amp;gt;Hugo&amp;lt;/a&amp;gt; --&amp;gt; HTML
&lt;/pre&gt;

&lt;p&gt;上のようなフローチャートなどのダイアグラムを載せようとすると、どのような方法が思い浮かぶでしょうか？&lt;/p&gt;
&lt;p&gt;まさか、パワポ等で作ったダイアグラムを画像としてエクスポートして…なんて方法は考えていませんよね？&lt;/p&gt;
&lt;div style=&#34;text-align: center;&#34;&gt;
&lt;p&gt;&lt;strong&gt;それ、Dティアです&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a id=&#34;figure--joefit&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/joefit.webp&#34;
         alt=&#34;図1: パワポはまじでDティア&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図1: &lt;/span&gt;パワポはまじでDティア&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;それはさておき、私はダイアグラムを作る方法について詳しくなかったので、ox-hugo を使うという前提で Gemini 2.5 Pro に、Deep research してもらいました。
結果、以下のようなTier Listができました。&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;style&gt;
 .tier-list-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 auto;
    max-width: 900px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
 .tier-row {
    display: flex;
    border-bottom: 1px solid #555;
  }
 .tier-label {
    flex: 0 0 100px; /* Fixed width for the label */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1em;
    font-weight: bold;
    color: #333;
    border-right: 1px solid #555;
  }
 .tier-content {
    color: #333;
    flex-grow: 1;
    padding: 10px;
    display: flex;
    font-size: 0.8em;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    background-color: #444;
  }
 .tier-item {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px 15px;
    text-align: center;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-width: 150px;
  }
  /* Tier Colors (修正箇所) */
 .s-tier .tier-label {
    background-color: #ff7f7f;
  }
 .a-tier .tier-label {
    background-color: #ffbf7f;
  }
 .b-tier .tier-label {
    background-color: #ffff7f;
  }
 .c-tier .tier-label {
    background-color: #7fff7f;
  }
 .d-tier .tier-label {
    background-color: #7fbfff;
  }
&lt;/style&gt;
&lt;div class=&#34;table-caption&#34;&gt;
  &lt;span class=&#34;table-number&#34;&gt;&amp;#34920; 1:&lt;/span&gt;
  ox-hugo でのダイアグラム作成方法のTier List by Gemini 2.5 Pro &amp; me
&lt;/div&gt;
&lt;div class=&#34;tier-list-table&#34;&gt;
  &lt;div class=&#34;tier-row s-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;S&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;&lt;b&gt;HugoレンダーフックによるMermaid.js&lt;/b&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row a-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;A&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;Org Babel + Hugo Kroki&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;純粋なOrg Babel実行 (PlantUML/Ditaa)&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row b-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;B&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;GUIツール (Excalidraw等) で作成し、SVG/PNG画像として挿入&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;レガシーなHugoショートコード&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row c-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;C&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;iFrame埋め込み&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;アスキーアート (ditaa, GoAT)&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row d-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;D&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;🤮 M社製品 (PowerPoint, Visio)で作成+バイナリ挿入 🤮&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;表で示しているように、個人的にはmermaid.js を使うのがベストです。
しかし、方法がそれほどシンプルではなく、 少し面倒だったので、書き残しておきます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hoff解答例サイト、軽量化したら(?)検索順位が上がった話🚀</title>
      <link>https://blog.kaorubb.org/ja/posts/lighten_hoff_exercise_site/</link>
      <pubDate>Sat, 03 May 2025 13:28:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/lighten_hoff_exercise_site/</guid>
      <description>&lt;h2 id=&#34;tl-dr--要約&#34;&gt;TL;DR (要約)&lt;/h2&gt;
&lt;p&gt;修士のときに作り、今もめちゃくちゃスローペースで更新している
&lt;a href=&#34;https://www.amazon.co.jp/Bayesian-Statistical-Methods-Springer-Statistics/dp/0387922997&#34;&gt;A First Course in Bayesian Statistical Methods&lt;/a&gt;/&lt;a href=&#34;https://www.asakura.co.jp/detail.php?book_code=12267&#34;&gt;標準 ベイズ統計学&lt;/a&gt; の章末問題解答サイト。&lt;/p&gt;
&lt;p&gt;先日、サイトを少しアップデートだけで、 &lt;strong&gt;Google検索で全くヒットしなかった状態から上位に出てくるようになった&lt;/strong&gt; ので、やったことをメモします📝&lt;/p&gt;
&lt;h2 id=&#34;サイト改善のきっかけ-検索結果に全く出ない&#34;&gt;サイト改善のきっかけ: 「検索結果に全く出ない」&lt;/h2&gt;
&lt;p&gt;このサイト、修士時代に修士論文の次に力を入れて作ったもので、標準ベイズ統計学の読者からの需要はそこそこにあるんじゃないかと思っていました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ところが&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;どんなキーワードで検索しても、 &lt;strong&gt;全く&lt;/strong&gt; ヒットしませんでした😭
例えば…&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hoff bayes exercise&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;標準ベイズ 解答&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などでGoogle検索しても、検索結果の &lt;em&gt;最後のページ&lt;/em&gt; にすら出てこない…。&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/google_nav_bar.webp&#34;
         alt=&#34;図1: Google検索結果のナビゲーションバー。oの数がページ数を表すっぽい…知らなかった&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図1: &lt;/span&gt;Google検索結果のナビゲーションバー。oの数がページ数を表すっぽい…知らなかった&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;順位が低いならまだしも、候補にすら挙がらないのは流石におかしいのでは？と思い、「もしかしてサイトが重すぎる…？」 と仮説を立て、軽量化してみることにしました&lt;/p&gt;
&lt;h2 id=&#34;やったことリスト-️&#34;&gt;やったことリスト🛠️&lt;/h2&gt;
&lt;p&gt;具体的にやったことは以下の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;サイト構造の大幅変更 (軽量化)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Before&lt;/strong&gt;: トップページに全章(2~10章、当時54問！)の解答を掲載&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;After&lt;/strong&gt;: 各演習問題ごとにページを分割&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SEO基本対策&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;各ページに &lt;code&gt;keyword&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;robots.txt&lt;/code&gt; を設置 (クローラーに対する指示🤖)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sitemap.xml&lt;/code&gt; を生成・設置 (サイトの地図🗺️)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;結果発表-劇的ビフォーアフター&#34;&gt;結果発表！劇的ビフォーアフター✨&lt;/h2&gt;
&lt;p&gt;サイト改善の効果は、&lt;a href=&#34;https://pagespeed.web.dev&#34;&gt;PageSpeed Insights&lt;/a&gt; のスコアに如実に現れました&lt;/p&gt;
&lt;style&gt;.table-nocaption table { display: table;  }&lt;/style&gt;
&lt;div class=&#34;ox-hugo-table table-nocaption&#34;&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;指標&lt;/th&gt;
          &lt;th&gt;Before 😱&lt;/th&gt;
          &lt;th&gt;After 🚀&lt;/th&gt;
          &lt;th&gt;改善度&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Performance&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;51&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;97&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;+46 ポイント&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Largest Contentful Paint&lt;/td&gt;
          &lt;td&gt;1.4s&lt;/td&gt;
          &lt;td&gt;1.0s&lt;/td&gt;
          &lt;td&gt;-0.4s&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Total Blocking Time&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;4,590ms&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;0ms&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;-4,590ms (!!)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cumulative Layout Shift&lt;/td&gt;
          &lt;td&gt;0.195&lt;/td&gt;
          &lt;td&gt;0.011&lt;/td&gt;
          &lt;td&gt;-0.184&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Speed Index&lt;/td&gt;
          &lt;td&gt;2.2s&lt;/td&gt;
          &lt;td&gt;1.0s&lt;/td&gt;
          &lt;td&gt;-1.2s&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ユーザー補助 (Accessibility)&lt;/td&gt;
          &lt;td&gt;!&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;88&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;エラー解消！&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SEO&lt;/td&gt;
          &lt;td&gt;!&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;100&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;インデックス可に！&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Total Blocking Time が &lt;strong&gt;4.5秒&lt;/strong&gt; もあったのが &lt;strong&gt;0秒&lt;/strong&gt; になったのはびっくりです&lt;/p&gt;</description>
    </item>
    <item>
      <title>Doom Emacs &amp; Mac へのSKK導入ガイド</title>
      <link>https://blog.kaorubb.org/ja/posts/skk_guide/</link>
      <pubDate>Sat, 12 Apr 2025 13:52:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/skk_guide/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/skk_engineer.jpeg&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;この記事で分かること&#34;&gt;この記事で分かること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SKKとは何か&lt;/li&gt;
&lt;li&gt;AquaSKKのインストールと設定方法&lt;/li&gt;
&lt;li&gt;Doom EmacsでのSKK（ddskk）の導入方法&lt;/li&gt;
&lt;li&gt;SKK導入における障壁とその解決方法&lt;/li&gt;
&lt;li&gt;SKKを長期間使用した感想と評価&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skkとは&#34;&gt;SKKとは&lt;/h2&gt;
&lt;p&gt;SKK（Simple Kana to Kanji conversion program）は、日本語入力システムの一種です。
一般的なIMEとは異なり、入力モードの切り替えが明示的で、変換候補を選ぶ際にも独特の操作方法を持っています。
特徴として：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;変換時に送り仮名を明示的に指定する&lt;/li&gt;
&lt;li&gt;辞書が自己学習し、使うほど自分専用の辞書になっていく&lt;/li&gt;
&lt;li&gt;キーボードから手を離さずに日本語入力ができる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が挙げられます。&lt;/p&gt;
&lt;h2 id=&#34;skkとわたし&#34;&gt;SKKとわたし&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;昨年8月に参加した&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/321255/&#34;&gt;東京Emacs勉強会 サマーフェスティバル2024&lt;/a&gt; でSKKの存在を知り、そこでSKKをちょっと使ってみるも、何が良いのかわからず、いつのまにか存在を忘れる&lt;/li&gt;
&lt;li&gt;約2ヶ月後の&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/330572/&#34;&gt;東京Emacs勉強会 オクトーバーフェスティバル2024&lt;/a&gt; で再度SKKの話題になる。
参加者の過半数がSKKを使用しており、その空間ではSKKを使っていない方がマイノリティであることを知り、すぐにSKKを導入。全然思うように使えず、生産性が爆下がりする&lt;/li&gt;
&lt;li&gt;しかし、日本のEmacser多くの方々が使っているからには、何かしら良いところがあるはずだと考え、キーボード自体の設定を変えたりしながら、徐々にSKKに適応していく&lt;/li&gt;
&lt;li&gt;使い始めてから5ヶ月ほど経ち、SKK関連の設定も安定。試行錯誤の結果の設定を共有したいと思いこの記事を書くに至る&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aquaskkの導入&#34;&gt;AquaSKKの導入&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;インストール&lt;/p&gt;
&lt;p&gt;Homebrewを使って簡単にインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask aquaskk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。&lt;/p&gt;
&lt;p&gt;nix&amp;amp;flake&amp;amp;home-managerを使っている方は、以下を適切にimportするとインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-nix&#34; data-lang=&#34;nix&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;homebrew&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;casks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;aquaskk&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;基本設定&lt;/p&gt;
&lt;p&gt;こういうのは基本的にデフォルトのままで使いたい派の自分ですが、日本語入力の切り替えキーだけは変えました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AquaSKK/keymap.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff&#34; data-lang=&#34;diff&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;- SKK_JMODE		ctrl::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;+ SKK_JMODE		ctrl::shift::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（理由は後述します）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;設定の同期&lt;/p&gt;
&lt;p&gt;複数のデバイス間で辞書やキーマップの設定を同期させるために、AquaSKKのディレクトリをDropboxに配置し、 &lt;code&gt;~/Library/Application Support/&lt;/code&gt; 内にシンボリックリンクを作成しました：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ln -s ~/Dropbox/AquaSKK ~/Library/Application&lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;Support/AquaSKK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Macのデフォルト入力切替キー無効化&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacs の indirect buffer が便利だった</title>
      <link>https://blog.kaorubb.org/ja/posts/emacs_indirect_buffer/</link>
      <pubDate>Fri, 28 Mar 2025 09:36:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/emacs_indirect_buffer/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/indirect_buffer_demo.gif&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Emacsを使っていると、「このファイルの一部だけを別のウィンドウで編集したい…」「同じ内容だけど、表示モードを変えて見比べたい…」と思うことはありませんか？&lt;/p&gt;
&lt;p&gt;自分は、よくありました。
そんな時に発見して感動した機能が、 &lt;strong&gt;Indirect Buffer&lt;/strong&gt; です！&lt;/p&gt;
&lt;p&gt;この記事では、Indirect Bufferの基本的な概念から、使い方、注意点までを解説します。&lt;/p&gt;
&lt;h2 id=&#34;indirect-bufferとは&#34;&gt;Indirect Bufferとは？&lt;/h2&gt;
&lt;p&gt;Indirect Bufferは、Emacsの特殊なバッファの一種で、別のバッファ(&lt;strong&gt;ベースバッファ&lt;/strong&gt; と呼ばれます)の内容を「共有」するものです。
ファイルシステムのシンボリックリンクのようなもの、と言えばイメージしやすいかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内容の共有:&lt;/strong&gt;
Indirect Bufferは、ベースバッファのテキスト内容（文字だけでなく、文字の色やフォントなどの &lt;strong&gt;テキストプロパティ&lt;/strong&gt; も含む）を完全に共有します。一方での変更は、もう一方に即座に反映されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;独立性:&lt;/strong&gt;
内容は共有しますが、それ以外の点（バッファ名、カーソル位置、表示モードなど）は、Indirect Bufferとベースバッファでそれぞれ独立して設定できます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ファイルとの関連:&lt;/strong&gt;
Indirect Buffer自体はファイルを直接開きませんが、ベースバッファはファイルを開くことができます。Indirect Bufferを保存しようとすると、実際にはベースバッファが保存されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;indirect-bufferの作り方&#34;&gt;Indirect Bufferの作り方&lt;/h2&gt;
&lt;p&gt;自分が調べた限りでは、 Indirect Bufferを作成する方法は、以下の3つでした。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;M-x make-indirect-buffer&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;より汎用的な作成方法です。&lt;/li&gt;
&lt;li&gt;ミニバッファを使って、ベースバッファとIndirect Bufferの名前を指定します。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x clone-indirect-buffer&lt;/code&gt; またはdoom emacs で &lt;code&gt;SPC B c&lt;/code&gt; (&lt;code&gt;clone-indirect-buffer-other-window&lt;/code&gt; または &lt;code&gt;SPC B c&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;現在開いているバッファをベースバッファとするIndirect Bufferを、素早く作成する方法です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SPC B c&lt;/code&gt; は、新しいウィンドウでIndirect Bufferを開きます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(org-mode内で) &lt;code&gt;M-x org-tree-to-indirect-buffer&lt;/code&gt; (&lt;code&gt;z n&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;現在の subtree をIndirect Bufferとして開きます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x doom/widen-indirectly-narrowed-buffer&lt;/code&gt; (&lt;code&gt;z N&lt;/code&gt;)で、元のバッファに戻る&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;個人的には、1の方法は全く使わず、 2と3をよく使います。
手軽にIndirect Bufferを作れて、とても便利です！&lt;/p&gt;</description>
    </item>
    <item>
      <title>最強のAnki用単語学習Cardを作った</title>
      <link>https://blog.kaorubb.org/ja/posts/anki_super_vocab/</link>
      <pubDate>Mon, 17 Mar 2025 10:30:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/anki_super_vocab/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/superVocabDemo.gif&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;皆さん、Ankiは使っていますか？
Ankiは、間隔反復学習システム(SRS)を採用した、非常に強力な暗記ツールです。
私も長年Ankiを愛用しており、特に語学学習には欠かせない存在となっています。&lt;/p&gt;
&lt;p&gt;今回、私がAnkiで英語の語彙学習をするにあたり、「こんな機能があったら最高なのに&amp;hellip;」と思う理想のカードタイプを形にし、 &lt;a href=&#34;https://github.com/KaoruBB/anki-super-vocab&#34;&gt;GitHub&lt;/a&gt;で公開しました。
この記事では、そのカードタイプ「Super Vocab」の紹介と、開発の経緯、そしてAnki/Emacsユー ザーには嬉しい、 &lt;code&gt;anki-editor&lt;/code&gt; を使ったカード作成方法について解説します。&lt;/p&gt;
&lt;h2 id=&#34;理想の単語カードに求める機能&#34;&gt;理想の単語カードに求める機能&lt;/h2&gt;
&lt;p&gt;私が単語学習用のフラッシュカードに求める機能は、以下の5点です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;双方向学習:&lt;/strong&gt;
単語を見て意味を答えるだけでなく、意味を見て単語を答える、両方向の学習ができること。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;意味→単語カードでの例文表示:&lt;/strong&gt;
意味から単語を答えるカードでは、定義だけでなく、例文や用例も表示すること。
&lt;ul&gt;
&lt;li&gt;理由：
&lt;ul&gt;
&lt;li&gt;単語は例文や構文とセットで覚えることで、記憶に定着しやすくなる。&lt;/li&gt;
&lt;li&gt;同義語の微妙なニュアンスの違いを理解し、区別して覚えられる。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ただし、例文中のターゲット単語は隠したい (ここがポイント！)
&lt;ul&gt;
&lt;li&gt;理由： 答えが見えてしまうとフラッシュカードの意味がないからカードの意味がないから。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;単語→意味はシンプルに:&lt;/strong&gt;
単語から意味を答えるカードでは、単語以外の情報は極力表示しないこと。
&lt;ul&gt;
&lt;li&gt;理由: 例文などがあると、単語の意味を推測できてしまい、フラッシュカード本来の目的（想起訓練）が損なわれるため。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;簡単に単語を追加でき、経験と結びつけられる:&lt;/strong&gt;
読書などで出会った単語を、その文脈（例文）ごと簡単にカードに追加できること。
&lt;ul&gt;
&lt;li&gt;理由: 自分の経験と単語を結びつけることで、より深く記憶に刻み込むため。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;柔軟な情報追加:&lt;/strong&gt;
発音記号、品詞、関連語、語源、メモ、ヒント画像など、単語に関するあらゆる情報を簡単に追加できること。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;既存のカードとの比較-そしてsuper-vocab誕生へ&#34;&gt;既存のカードとの比較、そしてSuper Vocab誕生へ&lt;/h2&gt;
&lt;p&gt;AnkiWebを探しても、上記の機能を全て満たすカードタイプは見つかりませんでした。
特に、2番目と3番目の要件（文脈付きの意味→単語カードで、ターゲット単語を自動的に隠す）を満たすものは皆無でした。&lt;/p&gt;
&lt;p&gt;Ankiの標準機能であるクローズ削除（穴埋め問題）を使えば、この要件に近いものは作れます。
しかし、例文が増えるほど手作業でのクローズ削除は大変です。&lt;/p&gt;
&lt;p&gt;「JavaScriptなどを使って、自動的に単語を隠せないか？」&lt;/p&gt;
&lt;p&gt;そう考えていた時、&lt;a href=&#34;https://ankiweb.net/shared/info/1678116644&#34;&gt;English vocab (note type)&lt;/a&gt; という素晴らしいカードタイプに出会いました。
このカードタイプは、まさに私が求めていた自動クローズ削除機能を備えていました！
しかし、惜しいことに、上記の要件を全て満たしているわけではありません。&lt;/p&gt;
&lt;p&gt;そこで、私はこの「English vocab (note type)」をベースに、自分の理想とする機能を全て盛り込んだ、究極の単語カード「Super Vocab」を作ることにしました。&lt;/p&gt;
&lt;h2 id=&#34;anki-editorとemacs-立ちはだかる壁-そしてpull-requestへ&#34;&gt;anki-editorとEmacs、立ちはだかる壁、そしてPull Requestへ&lt;/h2&gt;
&lt;p&gt;私は普段、Ankiのカード作成に&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt;というEmacs packageを使っています。
org-modeで構造化されたノートをAnkiに簡単に取り込める、非常に便利なツールです。&lt;/p&gt;
&lt;p&gt;Super Vocabのカードタイプも、anki-editorを使ってEmacsからAnkiに送信しようとしました。
しかし、ここで問題が発生しました。&lt;/p&gt;
&lt;p&gt;通常、anki-editorはorg-modeのノートをHTMLに変換してAnkiに送信します。
しかし、HTMLに変換してしまうと、Super VocabのJavaScriptによる自動クローズ削除機能が動作しなくなってしまうのです。&lt;/p&gt;
&lt;p&gt;anki-editorには &lt;code&gt;:ANKI_FORMAT: nil&lt;/code&gt; というオプションがあり、これを使うとHTML変換を無効にできます。
しかし、このオプションは全てのフィールドに適用されてしまい、カードの見た目（HTML/CSSによる装飾）も失われてしまいます。&lt;/p&gt;
&lt;p&gt;「特定のフィールドだけ、HTML変換せずに生のテキストとしてAnkiに送りたい&amp;hellip;」&lt;/p&gt;
&lt;p&gt;しかし、anki-editorにはそのような機能はありませんでした。&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacs起動時の、 Project … cannot be read</title>
      <link>https://blog.kaorubb.org/ja/posts/emacs_startup_problem/</link>
      <pubDate>Sun, 23 Feb 2025 18:41:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/emacs_startup_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;先日、いつものようにEmacsを起動すると、mini bufferに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Project &amp;lt;プロジェクト名&amp;gt; at &amp;lt;プロジェクトのパス&amp;gt; cannot be read.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と表示され、emacsがただの白い画面を写すソフトウェアになってしまいました。&lt;/p&gt;
&lt;p&gt;少し前にこのプロジェクトのパスを変更したので、そのせいかと思い、
&lt;code&gt;projectile-known-projects-file&lt;/code&gt; にあるプロジェクトのパスを変更/削除してみましたが、状況は変わりませんでした。
&lt;code&gt;doom sync&lt;/code&gt; や &lt;code&gt;doom upgrade&lt;/code&gt; なども試しても、解決しませんでした。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;試行錯誤の結果、原因はなんと、&lt;a href=&#34;https://github.com/Alexander-Miller/treemacs&#34;&gt;treemacs&lt;/a&gt; にあることがわかりました。&lt;/p&gt;
&lt;p&gt;treemacsは、セッション情報を、 &lt;code&gt;treemacs-persist-file&lt;/code&gt; (通常は &lt;code&gt;user-emacs-directory/.cache/treemacs-persist&lt;/code&gt;)に保存するのですが、
その名の通り、treemacs_persistがpesistしていたのが原因だったようです。&lt;/p&gt;
&lt;p&gt;そのため、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm ~/.config/emacs/.cache/treemacs-persist &lt;span style=&#34;color:#75715e&#34;&gt;# pathは環境によって異なる&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で解決することができます。&lt;/p&gt;
&lt;p&gt;自分はtreemacsを入れておきながら、全然使ってなかったので、treemacsをinitファイルから削除しました。&lt;/p&gt;
&lt;p&gt;今回は以上です。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/Alexander-Miller/treemacs/issues/586&#34;&gt;Project .emacs.d at &lt;em&gt;User/x&lt;/em&gt;.emacs.d cannot be read. · Issue #586 · Alexander-Miller/treemacs&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server julia-ls starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) の解決策</title>
      <link>https://blog.kaorubb.org/ja/posts/lsp-julia_problem/</link>
      <pubDate>Wed, 29 Jan 2025 16:00:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/lsp-julia_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;先日久々にemacsでjuliaを使おうとしたら、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Server julia-ls:50759/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のようなmessageが(&lt;code&gt;y&lt;/code&gt; を押しても繰り返し)出てきて、lspが起動しませんでした。&lt;/p&gt;
&lt;p&gt;これを直すのにそこそこ時間がかかったので、emacsでjuliaを使っている方 (果たして日本に何人いるのか&amp;hellip;) のために解決策をメモしておきます。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lsp-julia&lt;/code&gt; のビルド済みファイルが格納されているディレクトリの中にある &lt;code&gt;Project.toml&lt;/code&gt;
(自分の環境では
&lt;code&gt;~/.config/emacs/.local/straight/build-29.4/lsp-julia/languageserver/Project.toml&lt;/code&gt;
)
が実体のあるファイルではなく、シンボリックリンクであることが原因でした。(理由はよくわからない)&lt;/p&gt;
&lt;p&gt;そのため、シンボリックリンク先のファイル(自分の場合は &lt;code&gt;/.config/emacs/.local/straight/repos/lsp-julia/languageserver/Project.toml&lt;/code&gt;)をコピーして、直接のファイルを同じ場所に作成することで解決しました。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/gdkrmr/lsp-julia/issues/66#issuecomment-2024890705&#34;&gt;language server crashes · Issue #66 · gdkrmr/lsp-julia&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hoffの解答例のサイトのソースコードを公開しました</title>
      <link>https://blog.kaorubb.org/ja/posts/deprivatize_hoff_exercise/</link>
      <pubDate>Tue, 28 Jan 2025 16:18:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/deprivatize_hoff_exercise/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://hoff-exercise.kaorubb.org/&#34;&gt;Hoffの演習問題の解答例&lt;/a&gt;のソースコードを公開しました:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/KaoruBB/Hoff_AFCBSM&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このサイトはちょうど2年前に公開し、少しずつアップデートしてきたものです&lt;/p&gt;
&lt;p&gt;今までは、間違いやtypoを見つけたらメールで連絡して欲しいとサイトに書いていましたが、結局そのような連絡は2年間で1度も来たことがありませんでした😭&lt;/p&gt;
&lt;p&gt;(海外の研究者の方から感謝のメールをいただいたことはあり、それはとても嬉しかったです)&lt;/p&gt;
&lt;p&gt;なので、もしかしたらgithubのissueやPRだと気軽に連絡してもらえるかもしれないと思い、公開しました&lt;/p&gt;
&lt;p&gt;これからは&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;11章以降の演習問題の解答例を追加&lt;/li&gt;
&lt;li&gt;日本語と英語が混在しているので、英語版と日本語版をちゃんと分ける&lt;/li&gt;
&lt;li&gt;&lt;code&gt;julia&lt;/code&gt; で書いた教科書本文中のコードをrepoに追加&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などをしていきたいと思います&lt;/p&gt;</description>
    </item>
    <item>
      <title>Advent of Code 2023 1日目</title>
      <link>https://blog.kaorubb.org/ja/posts/aoc2023d1/</link>
      <pubDate>Tue, 07 Jan 2025 12:07:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/aoc2023d1/</guid>
      <description>&lt;p&gt;明けましておめでとうございます。&lt;/p&gt;
&lt;p&gt;昨年の年末、とある理由で2023 の&lt;a href=&#34;https://en.wikipedia.org/wiki/Advent_of_Code&#34;&gt;Advent of Code&lt;/a&gt; をちょっとずつ解いていたので、自分の解答や、ちょっとしたメモを残していこうと思います。&lt;/p&gt;
&lt;p&gt;なお、全部pythonで書いています。&lt;/p&gt;
&lt;p&gt;全部解き終わったタイミングで、まとめてgithubにあげようかなと考えていますが、いつになるかはわかりません。&lt;/p&gt;
&lt;p&gt;それでは、早速Day 1 の解答を書いていきます。&lt;/p&gt;
&lt;h2 id=&#34;part-a&#34;&gt;Part a&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;問題の概要&lt;/p&gt;
&lt;p&gt;数字と文字が混ざった文字列が与えられる。
この文字列のそれぞれの行に含まれる最初の数字と最後の数字を取り出し、それらを結合した数値を求める。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1abc2        → 12
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pqr3stu8vwx  → 38
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a1b2c3d4e5f  → 15
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;treb7uchet   → 77
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;課題は、与えられた入力ファイルの全ての行について、この方法で校正値を求めて合計することである。&lt;/p&gt;
&lt;p&gt;この例では、4つの行の校正値（12 + 38 + 15 + 77）を合計すると142になる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;My solution&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; fastcore.utils &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; L
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; aocd &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; get_data, submit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; re&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; regex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; regex &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; findall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_calibration_value&lt;/span&gt;(x:str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    digits &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; re&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;findall(&lt;span style=&#34;color:#e6db74&#34;&gt;r&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\d&amp;#34;&lt;/span&gt;, x)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; int(digits[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;digits[&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;solve1a&lt;/span&gt;(inp:str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    lines &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; L(inp&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;splitlines())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map(get_calibration_value)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;part-b&#34;&gt;Part b&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;問題の概要&lt;/p&gt;</description>
    </item>
    <item>
      <title>『Pythonではじめる時系列分析入門』のorg version repoを作ったよ</title>
      <link>https://blog.kaorubb.org/ja/posts/python_tsa_intro_org/</link>
      <pubDate>Sun, 22 Dec 2024 08:37:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/python_tsa_intro_org/</guid>
      <description>&lt;p&gt;最近、 &lt;a href=&#34;https://amzn.asia/d/30VVCmk&#34;&gt;馬場 真哉 (著) 『Pythonではじめる時系列分析入門』&lt;/a&gt;という本を読みました。&lt;/p&gt;
&lt;p&gt;この本はpythonのコードを手で動かしながら時系列分析の基礎を学ぶことができる本で、とてもためになりました。&lt;/p&gt;
&lt;p&gt;特に&lt;a href=&#34;https://www.sktime.net/en/stable/&#34;&gt;sktime&lt;/a&gt;という、トレンド・季節性の除去などの前処理や予測モデルをsklearnのように簡単にpipeline化できるライブラリを知ることができた点がよかったです。&lt;/p&gt;
&lt;p&gt;馬場先生はこの本の&lt;a href=&#34;https://github.com/logics-of-blue/book-python-tsa-intro&#34;&gt;公式リポジトリ&lt;/a&gt;を公開されているのですが、pythonコードがjupyter notebook形式で書かれているため、heavy emacserの私としてはどうしてもorg-modeを使いたくなってしまいました。&lt;/p&gt;
&lt;p&gt;そこで、この本のコードをorg-mode形式に変換したリポジトリを作成しました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/KaoruBB/book-python-tsa-intro&#34;&gt;リポジトリのリンク&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このリポジトリを使って、emacsユーザーの方々がこの本を読む際に、jupyter notebookを使わずにorg-modeでコードを実行できるようになればと思います。&lt;/p&gt;
&lt;p&gt;特にないと思いますが、このリポジトリを使って何か問題が発生した場合は、pull requestやissueを送っていただけると助かります。&lt;/p&gt;
&lt;p&gt;時系列分析勉強中のemacsユーザーは私に感謝したうえで今年のクリスマスは家族と過ごしてください。&lt;/p&gt;
&lt;p&gt;読んでいただきありがとうございました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacsをupgradeしたらankiの数式が汚くなったので直した</title>
      <link>https://blog.kaorubb.org/ja/posts/anki_editor_latex_problem/</link>
      <pubDate>Sun, 24 Nov 2024 15:41:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/anki_editor_latex_problem/</guid>
      <description>&lt;h2 id=&#34;導入&#34;&gt;導入&lt;/h2&gt;
&lt;p&gt;こんにちは。
私は日頃から&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt; を使ってAnkiのカードを作成しているのですが、
Emacsをupgradeすると、数式が汚く表示されるようになってしまいました。&lt;/p&gt;
&lt;p&gt;症状としては、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;デスクトップ版のAnkiのBrowserで各Fieldのプレビューで数式が数式として表示されない (plain latex codeとして表示される)&lt;/li&gt;
&lt;li&gt;数式がpng画像として表示される
(もともとはMathJax inlineで表示されていた)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というものでした。&lt;/p&gt;
&lt;p&gt;デスクトップ版のAnkiでcardを編集することはほぼないので、1の症状についてはまだ許容範囲でしたが、
2のほうについては、数式の解像度だけ低くなったり、他の文字とのサイズが合わなくなったりして、かなり気になりました。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;以下を &lt;code&gt;config.org&lt;/code&gt; に追加することで解決しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(use-package! anki-editor
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  :after org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  :init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (setq-default anki-editor-latex-style &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;mathjax&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;この解決策に至った背景&#34;&gt;この解決策に至った背景&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt; でpushされたカードは、HTMLに変換された状態でカードとして保存されます。
うまく数式が表示されるカードのHTMLを見ると、数式は以下のように &lt;code&gt;anki-mathjax&lt;/code&gt; というタグで囲まれていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;anki-mathjax&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;block&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&amp;gt;1 + 1 = 3&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;anki-mathjax&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一方、今回の問題が発生したカードのHTMLを見ると、数式は以下のように &lt;code&gt;p&lt;/code&gt; タグと &lt;code&gt;[$$]&lt;/code&gt; で囲まれていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;[$$] 1 + 1 = 3 [/$$]&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;したがって、anki-editorがorgテキストをHTMLに変換する部分で、問題が発生していることがわかりました。
&lt;code&gt;anki-editor.el&lt;/code&gt; の中を見てみると、以下のように &lt;code&gt;anki-editor-latex-style&lt;/code&gt; という変数によって、latexのスタイルを変更できるようになっており、今回の解決策に至りました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun anki-editor--translate-latex-env (latex-code)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (setq latex-code (replace-regexp-in-string &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; (org-html-encode-plain-text latex-code)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (cl-ecase anki-editor-latex-style
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (builtin (&lt;span style=&#34;color:#a6e22e&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[latex]&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; latex-code &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[/latex]&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (mathjax (&lt;span style=&#34;color:#a6e22e&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\[&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; latex-code &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\]&amp;#34;&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;読んでいただきありがとうございました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hoff/標準ベイズ 演習問題 10-4 を更新しました</title>
      <link>https://blog.kaorubb.org/ja/posts/hoff_exercise_10-4/</link>
      <pubDate>Tue, 19 Nov 2024 20:32:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/hoff_exercise_10-4/</guid>
      <description>&lt;h2 id=&#34;導入&#34;&gt;導入&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://hoff-exercise.kaorubb.org/&#34;&gt;Answers of exercises on Hoff, A first course in Bayesian statistical methods (標準ベイズ統計学の演習問題の解答例)&lt;/a&gt;
を更新(10-4を追加)したので、このブログでもその内容をほんの少しだけ触れようと思います。&lt;/p&gt;
&lt;p&gt;まず、この問題と教科書本文の関係について簡単に説明します。
以前 &lt;a href=&#34;https://blog.kaorubb.org/ja/posts/mh_algorithm_work_proof/&#34;&gt;Hoff/標準ベイズのM-Hアルゴリズムがworkすることの証明でつまずいた話&lt;/a&gt; という記事を書きましたが、Hoff (&lt;a href=&#34;#citeproc_bib_item_1&#34;&gt;2009&lt;/a&gt;) では10章でM-Hアルゴリズムがうまくいくことの-証明を以下のステップで行っています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;M-Hアルゴリズムは、
irreducible (非可約), aperiodic (非周期的), positive recurrent (正再帰的)
なマルコフ連鎖を生成する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ergodic Theoremより、\(s \to \infty\)で&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\(\mathrm{Pr}(x^{(s)} \in A) \to \pi(A)\) for any set \(A\);&lt;/li&gt;
&lt;li&gt;\(\frac{1}{S} \sum g(x^{(s)}) \to \int g(x) \pi(x) dx\).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を満たす\(\pi\)が一意に存在する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;このような\(\pi\)は定常分布と呼ばれ、以下の性質を持つ&lt;/p&gt;
&lt;p&gt;If \(x^{(s)} \sim \pi\), &lt;br /&gt;
and \(x^{(s+1)} \) is generated from the Markov chain starting at \(x^{(s)}\), &lt;br /&gt;
then \(\mathrm{Pr}(x^{(s+1)} \in A) = \pi(A)\).
(一度定常分布からサンプリングされると、 それ以降のサンプルも定常分布からサンプリングされる。)&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-htmlで\bmなどのlatexマクロを使う方法</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-html_latex_macro/</link>
      <pubDate>Mon, 18 Nov 2024 16:35:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-html_latex_macro/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;\bm{a}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上の数式を書いたorg fileは、latex(pdf)へのexportであれば &lt;code&gt;\usepackage{bm}&lt;/code&gt; とセットで斜体太字になるところ、
&lt;code&gt;ox-html&lt;/code&gt; で単にHTMLとして exportしただけではlatexマクロとして認識されなかったので、その対処法を解説します。&lt;/p&gt;
&lt;p&gt;latexによる数式をHTML上で表示する場合、MathJaxというライブラリを使うことが一般的であり、今回の問題も &lt;code&gt;\bm&lt;/code&gt; をMathJaxでマクロとして認識させることで解決できます。
&lt;a href=&#34;https://qiita.com/mory22k/items/de02e01029a8adbcc1e0&#34;&gt;このQiita記事&lt;/a&gt;がまさにそれをやっていたので、それを参考にまず以下の方法を試してみました。&lt;/p&gt;
&lt;h2 id=&#34;最初に試した方法&#34;&gt;最初に試した方法&lt;/h2&gt;
&lt;p&gt;以下のブロックをorg fileに追加しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+BEGIN_EXPORT &lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;html&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;MathJax&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;tex&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;macros&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;bm&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\boldsymbol{#1}&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+END_EXPORT&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;結果、 &lt;code&gt;\bm&lt;/code&gt; はうまく斜体太字になったが、 &lt;code&gt;\eqref{}&lt;/code&gt; など他のlatexマクロが逆にうまく表示されなくなってしまうという問題が発生しました。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;よく調べてみると、 &lt;code&gt;ox-html&lt;/code&gt; の変数に、 &lt;code&gt;org-html-mathjax-template&lt;/code&gt; というものがあり、そこにMathJaxの設定を書き込むことで、latexマクロをHTML上で認識させることができることがわかりました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tecosaur/emacs-config&#34;&gt;テコちゃんのconfig&lt;/a&gt;を参考に、以下の設定config.orgに追加することで解決しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(setq org-html-mathjax-template
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  window.MathJax = {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    loader: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      load: [&amp;#39;[tex]/mathtools&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    tex: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      ams: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        multlineWidth: &amp;#39;%MULTLINEWIDTH&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tags: &amp;#39;%TAGS&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tagSide: &amp;#39;%TAGSIDE&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tagIndent: &amp;#39;%TAGINDENT&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      packages: {&amp;#39;[+]&amp;#39;: [&amp;#39;mathtools&amp;#39;]},
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      macros: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        RR: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{R}}{\\\\mathbb{R}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        NN: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{N}}{\\\\mathbb{N}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        ZZ: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{Z}}{\\\\mathbb{Z}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        QQ: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{Q}}{\\\\mathbb{Q}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        CC: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{C}}{\\\\mathbb{C}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        bm: [&amp;#39;\\\\boldsymbol{#1}&amp;#39;, 1], ;; &amp;lt;- ここに\bmの設定を追加
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        EE: &amp;#39;\\\\mathbb{E}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Lap: &amp;#39;\\\\operatorname{\\\\mathcal{L}}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Var: &amp;#39;\\\\operatorname{Var}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Cor: &amp;#39;\\\\operatorname{Cor}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        E: &amp;#39;\\\\operatorname{E}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      mathtools: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        pairedDelimiters: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          abs: [&amp;#39;\\\\lvert&amp;#39;, &amp;#39;\\\\rvert&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          norm: [&amp;#39;\\\\lVert&amp;#39;, &amp;#39;\\\\rVert&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          ceil: [&amp;#39;\\\\lceil&amp;#39;, &amp;#39;\\\\rceil&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          floor: [&amp;#39;\\\\lfloor&amp;#39;, &amp;#39;\\\\rfloor&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          round: [&amp;#39;\\\\lfloor&amp;#39;, &amp;#39;\\\\rceil&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    chtml: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      scale: %SCALE,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayAlign: &amp;#39;%ALIGN&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayIndent: &amp;#39;%INDENT&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    svg: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      scale: %SCALE,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayAlign: &amp;#39;%ALIGN&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayIndent: &amp;#39;%INDENT&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    output: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      font: &amp;#39;%FONT&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayOverflow: &amp;#39;%OVERFLOW&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  };
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;script
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  id=\&amp;#34;MathJax-script\&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  async
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  src=\&amp;#34;%PATH\&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/script&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでどんなlatexマクロもHTML上で認譫させることができますね!&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-hugoのreferenceがうまく表示されない問題</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-hugo_reference_problem/</link>
      <pubDate>Tue, 12 Nov 2024 14:40:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-hugo_reference_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://ox-hugo.scripter.co/doc/org-cite-citations/&#34;&gt;Org Cite Citations&lt;/a&gt;を使って&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+print_bibliography&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でreferenceを表示しようとしたが、&amp;ldquo;References&amp;quot;というヘッダのみが表示され、referenceのリストが表示されなかった。
&lt;code&gt;content/&lt;/code&gt; の中のmdファイルを見ると、htmlとして、referenceのリストが書き出されていたが、
&lt;code&gt;public/&lt;/code&gt; の中のhtmlファイルを見ると、referenceのリストが表示されていなかった。
よって、
org -&amp;gt; md -&amp;gt; html という変換の md -&amp;gt; html の部分で問題があると考え、調べてみると、&lt;a href=&#34;https://github.com/kaushalmodi/ox-hugo/issues/454&#34;&gt;同じ問題についてのissue&lt;/a&gt;が立っており、以下の解決策にたどり着いた。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;config.tomlに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;markup&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;goldmark&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;renderer&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;unsafe&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を追加することで解決できる&lt;/p&gt;
&lt;p&gt;自分の場合はymlを使っていたので、以下のように設定した。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;markup&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;goldmark&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;renderer&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;unsafe&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;解説&#34;&gt;解説&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://ox-hugo.scripter.co/doc/goldmark/#enable-unsafe-html&#34;&gt;Goldmark — ox-hugo - Org to Hugo exporter&lt;/a&gt;
で書かれているように、
Hugo v0.60.0以降、デフォルトのMarkdownパーサーは&lt;a href=&#34;https://commonmark.org/&#34;&gt;CommonMark&lt;/a&gt;準拠の&lt;a href=&#34;https://github.com/yuin/goldmark&#34;&gt;Goldmark&lt;/a&gt;に変更された。
以前のデフォルトパーサーである&lt;a href=&#34;https://github.com/russross/blackfriday&#34;&gt;Blackfriday&lt;/a&gt;は、仕様に準拠しておらず、多くのバグを抱えていたらしく、ox-hugoを使い続ける場合は、特別な理由がない限り、Goldmarkに移行することが推奨されている。&lt;/p&gt;
&lt;p&gt;ただし、Goldmark/Hugoには、Blackfridayと比較してMarkdownのパース方法にいくつかの問題があり、
その一つが、今回の問題である、インラインHTMLがうまく表示されないというものっぽい。&lt;/p&gt;
&lt;p&gt;この解決策によって、Markdown内でインラインHTML を使用できるようになるということらしい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hoff/標準ベイズのM-Hアルゴリズムがworkすることの証明でつまずいた話</title>
      <link>https://blog.kaorubb.org/ja/posts/mh_algorithm_work_proof/</link>
      <pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/mh_algorithm_work_proof/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;Hoff (&lt;a href=&#34;#citeproc_bib_item_1&#34;&gt;2009&lt;/a&gt;)およびHoff et al. (&lt;a href=&#34;#citeproc_bib_item_2&#34;&gt;2022&lt;/a&gt;)
10.4.2 Why does the Metropolis-Hastings algorithm work? (メトロポリス・ヘイスティングスアルゴリズムはなぜうまくいくのか)
で行われている証明について、つまずいた点があったので自分の中の整理がてら書いてみます。&lt;/p&gt;
&lt;h2 id=&#34;hoffの証明の流れ&#34;&gt;Hoffの証明の流れ&lt;/h2&gt;
&lt;p&gt;Hoff (&lt;a href=&#34;#citeproc_bib_item_1&#34;&gt;2009&lt;/a&gt;)およびHoff et al. (&lt;a href=&#34;#citeproc_bib_item_2&#34;&gt;2022&lt;/a&gt;)では、
M-Hアルゴリズムによって生成されたマルコフ連鎖が目標分布\(p_0\)を近似できる理由の証明が以下の流れで行われています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;M-Hアルゴリズムは、
irreducible (非可約), aperiodic (非周期的), positive recurrent (正再帰的)
なマルコフ連鎖を生成する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ergodic Theoremより、\(s \to \infty\)で&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\(\mathrm{Pr}(x^{(s)} \in A) \to \pi(A)\) for any set \(A\);&lt;/li&gt;
&lt;li&gt;\(\frac{1}{S} \sum g(x^{(s)}) \to \int g(x) \pi(x) dx\).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を満たす\(\pi\)が一意に存在する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;このような\(\pi\)は定常分布と呼ばれ、以下の &lt;strong&gt;性質&lt;/strong&gt; を持つ&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If \(x^{(s)} \sim \pi\), &lt;br /&gt;
and \(x^{(s+1)} \) is generated from the Markov chain starting at \(x^{(s)}\), &lt;br /&gt;
then \(\mathrm{Pr}(x^{(s+1)} \in A) = \pi(A)\).&lt;/p&gt;</description>
    </item>
    <item>
      <title>修論&#43;αの論文がarXivにアップロードされたよ</title>
      <link>https://blog.kaorubb.org/ja/posts/arxiv_upload/</link>
      <pubDate>Sat, 05 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/arxiv_upload/</guid>
      <description>&lt;p&gt;久しぶりの投稿です。(読んでくれてる人はおそらく一人ですが)
自分の修論にアップデートを加えたものが、arXivにアップロードされました。&lt;/p&gt;
&lt;p&gt;論文: Babasaki, K., Sugasawa, S., McAlinn, K. and Takanashi, K. (2024). Ensemble doubly robust Bayesian inference via regression synthesis. (&lt;a href=&#34;https://arxiv.org/abs/2409.06288&#34;&gt;arXiv:2409.06288&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;この論文では、 マクリン先生が作ったBayesian Predictive Synthesis (BPS)というアンサンブル手法を因果推論、特に平均因果効果(ATE)推定の文脈で拡張し、doubly robust Bayesian regression synthesis という手法を提案してます。
詳しくは論文を読んでもらえるとありがたいです。&lt;/p&gt;
&lt;p&gt;この論文を読むうえでは以下の論文を読むことをお勧めします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;McAlinn, K. &amp;amp; West, M. (2019). Dynamic Bayesian Predictive Synthesis in Time Series Forecasting. (&lt;a href=&#34;https://www.sciencedirect.com/science/article/abs/pii/S0304407618302112&#34;&gt;Journal of Econometrics 210: 155-169&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Sugasawa, S., McAlinn, K., Takanashi, K. and Airoldi, E. A. (2023). Bayesian causal synthesis for meta-inference on heterogeneous treatment effect.
(&lt;a href=&#34;https://arxiv.org/abs/2304.07726&#34;&gt;arXiv:2304.07726&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この論文は慶應経済学研究科に設定されている計量経済学演習(マクリン先生)の授業を受けた際に書くことになりました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ベイズの発表をしたよ</title>
      <link>https://blog.kaorubb.org/ja/posts/bayes_presentation1/</link>
      <pubDate>Sun, 23 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/bayes_presentation1/</guid>
      <description>&lt;p&gt;こんにちは。&lt;/p&gt;
&lt;p&gt;大学のある授業で、中妻先生の名著&lt;a href=&#34;https://www.amazon.co.jp/Python%E3%81%AB%E3%82%88%E3%82%8B-%E3%83%99%E3%82%A4%E3%82%BA%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%85%A5%E9%96%80-%E5%AE%9F%E8%B7%B5Python%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC-%E4%B8%AD%E5%A6%BB-%E7%85%A7%E9%9B%84/dp/4254128983&#34;&gt;『Pythonによる ベイズ統計学入門 (実践Pythonライブラリー)』&lt;/a&gt;
の 3.1 節までを友達のけいごくんと一緒にスライドにまとめて発表したので、そのスライドを公開します。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sugasawa-lec.kaorubb.org/presentation1/&#34;&gt;発表資料のリンク&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この資料は emacs の org-mode で作りました。&lt;/p&gt;
&lt;p&gt;発表の内容とは関係なく、reveal.js や org-re-reveal の使い方を調べながら試行錯誤するのにとても時間がかかりました。
そのその甲斐あって、 1 番の目的であった、学部生に対してドヤ顔をかますことができました。&lt;/p&gt;
&lt;p&gt;今度、暇なときに org-re-reveal の使い方や tips をまとめてみようと思います。&lt;/p&gt;
&lt;p&gt;では、また今度。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exercise 0.4.6</title>
      <link>https://blog.kaorubb.org/ja/posts/hubbard_excercise_0_4_6/</link>
      <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/hubbard_excercise_0_4_6/</guid>
      <description>&lt;p&gt;Prove Proposition 0.4.11 (Inverse image of intersection, union)&lt;/p&gt;
&lt;h2 id=&#34;1-f-1--a-cap-b--f-1--a--cap-f-1--b&#34;&gt;1 \( f^{-1} (A \cap B) = f^{-1} (A) \cap f^{-1} (B) \)&lt;/h2&gt;
&lt;p&gt;Proof:&lt;/p&gt;
&lt;p&gt;1 To show \(f^{-1}(A \cap B) \subset f^{-1} (A) \cap f^{-1} (B)\)&lt;/p&gt;
&lt;p&gt;\(x \in f^{-1}(A \cap B)\) を任意にとる。
すると、&lt;/p&gt;
&lt;p&gt;\begin{align*}
&amp;amp; f(x) \in A \cap B \qquad (\because \text{逆像の定義})\\
\Leftrightarrow &amp;amp; f(x) \in A \text{ and } f(x) \in B \\
\Leftrightarrow &amp;amp; x \in f^{-1}(A) \text{ and } x \in f^{-1}(B)  \qquad (\because \text{逆像の定義}) \\
\Leftrightarrow &amp;amp; x \in f^{-1}(A) \cap f^{-1}(B) \quad \square
\end{align*}&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exercise 0.3.1</title>
      <link>https://blog.kaorubb.org/ja/posts/hubbard_excercise_0_3_1/</link>
      <pubDate>Fri, 17 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/hubbard_excercise_0_3_1/</guid>
      <description>&lt;h2 id=&#34;question&#34;&gt;Question&lt;/h2&gt;
&lt;p&gt;\(E\) を\(A \subset E\) and \(B \subset E\)を満たす集合とし、
演算子\(\ast \) を以下で定義する。
\[ A \ast B = (E - A) \cap (E-B) \]&lt;/p&gt;
&lt;p&gt;このとき、
以下の a,b,c を、 \(A, B\), and \(\ast\)を用いて表せ。&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;a&lt;/dt&gt;
&lt;dd&gt;\(A \cup B\)&lt;/dd&gt;
&lt;dt&gt;b&lt;/dt&gt;
&lt;dd&gt;\(A \cap B\)&lt;/dd&gt;
&lt;dt&gt;c&lt;/dt&gt;
&lt;dd&gt;\(E - A\)&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;answer&#34;&gt;Answer&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;a&lt;/p&gt;
&lt;p&gt;\begin{align*}
A \cup B
&amp;amp;= E - ( \bar{A} \cap \bar{B} ) \\
&amp;amp;= E - \left\{ ( E - A) \cap (E-B) \right\} \\
&amp;amp;= E - A \ast B \\
&amp;amp;= (E - A \ast B) \cap (E - A \ast B) \\
&amp;amp;= (A \ast B) \ast (A \ast B)
\end{align*}&lt;/p&gt;</description>
    </item>
    <item>
      <title>3 つの数の相加相乗平均の不等式の証明</title>
      <link>https://blog.kaorubb.org/ja/posts/3num-arighmetic-geomertic-mean-inequality/</link>
      <pubDate>Mon, 06 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/3num-arighmetic-geomertic-mean-inequality/</guid>
      <description>&lt;p&gt;はい、こんにちは。&lt;/p&gt;
&lt;p&gt;今日は、3 つの正の数の相加相乗平均の不等式の証明をしていきます。&lt;/p&gt;
&lt;p&gt;2 つの数の相加相乗平均の不等式の証明は、できているものとします。&lt;/p&gt;
&lt;p&gt;ではやっていきましょう。&lt;/p&gt;
&lt;p&gt;\(G = \sqrt[3]{xyz}\)、\(A = \frac{x+y+z}{3}\)とする。&lt;/p&gt;
&lt;p&gt;\(G \leq A\)を示す。&lt;/p&gt;
&lt;h2 id=&#34;1-dot-x-y-z-の場合&#34;&gt;1. \(x = y = z\) の場合&lt;/h2&gt;
&lt;p&gt;\begin{align*}
G &amp;amp;= \sqrt[3]{xyz} = \sqrt[3]{x^3} = x \\
A &amp;amp;= \frac{x+y+z}{3} = \frac{3x}{3} = x \\
\therefore G &amp;amp;= A
\end{align*}&lt;/p&gt;
&lt;h2 id=&#34;2-dot-x-y-z-が成り立たない場合&#34;&gt;2. \(x = y = z\) が成り立たない場合&lt;/h2&gt;
&lt;p&gt;一般性を失わず、&lt;/p&gt;
&lt;p&gt;\begin{equation}
\label{eq:1}
z &amp;lt; A &amp;lt; y
\end{equation}&lt;/p&gt;
&lt;p&gt;とできる。&lt;/p&gt;
&lt;p&gt;2 つの正の数\(x\)と\(y+z-A\)について、すでに証明済みの 2 数の相加相乗平均を考える。
相乗平均(geometric mean) を\(g\)、
相加平均(arithmetical mean) を\(a\)とすると、&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
