<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://mathdrugs.fun/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mathdrugs.fun/" rel="alternate" type="text/html" /><updated>2026-03-29T21:19:59+00:00</updated><id>https://mathdrugs.fun/feed.xml</id><title type="html">ますどら</title><subtitle>オレンジ基調の温かみのある技術ブログ。 Jekyll と Tailwind CSS で構築されています。</subtitle><author><name>btakeshi</name></author><entry><title type="html">Gemini CLI を Debian で使うメモ</title><link href="https://mathdrugs.fun/gen-ai/gemini-cli-debian/" rel="alternate" type="text/html" title="Gemini CLI を Debian で使うメモ" /><published>2026-03-25T00:00:00+00:00</published><updated>2026-03-25T00:00:00+00:00</updated><id>https://mathdrugs.fun/gen-ai/gemini-cli-debian</id><content type="html" xml:base="https://mathdrugs.fun/gen-ai/gemini-cli-debian/"><![CDATA[<p>Gemini CLI を Debian 上で使おうとしたときのメモです。</p>

<h2 id="nodejs-のセットアップ">Node.js のセットアップ</h2>

<p>まず、パッケージシステムを更新し、ベースとなる Node.js と npm をインストールします。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt-get update
<span class="nb">sudo </span>apt <span class="nb">install</span> <span class="nt">-y</span> nodejs npm
</code></pre></div></div>

<p>Debian 標準の Node.js はバージョンが古い場合があるため、バージョン管理ツール <code class="language-plaintext highlighter-rouge">n</code> を使って安定版（Stable）を導入します。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># n をインストールして安定版 Node.js を導入</span>
<span class="nb">sudo </span>npm <span class="nb">install</span> <span class="nt">-g</span> n
<span class="nb">sudo </span>n stable
</code></pre></div></div>

<div class="bg-primary-50 border-l-4 border-primary-400 p-4 my-6 text-primary-700">
  <p class="font-bold underline mb-2 italic">⚠️ Node.js のバージョン確認</p>
  <p class="text-sm">
    n で安定版をインストールした後は、新しいパスを反映させるためにターミナルを再起動するか <code>hash -r</code> を実行してください。
  </p>
</div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>node <span class="nt">--version</span>
<span class="c"># v22.x.x などの安定版が表示されればOK</span>
</code></pre></div></div>

<h2 id="gemini-cli-のインストール">Gemini CLI のインストール</h2>

<p>環境によってはプロキシの設定が必要です。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">https_proxy</span><span class="o">=</span>http://ユーザー名:パスワード@プロキシアドレス:ポート番号
</code></pre></div></div>

<p>npm を使ってグローバルにインストールします。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm <span class="nb">install</span> <span class="nt">-g</span> @google/gemini-cli
</code></pre></div></div>

<h2 id="初回起動と設定">初回起動と設定</h2>

<p>インストールが完了したら、<code class="language-plaintext highlighter-rouge">gemini</code> コマンドで起動します。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gemini
</code></pre></div></div>

<p>無事に起動すると、以下のようなウェルカムメッセージが表示されます。</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  ▝▜▄     Gemini CLI v0.35.0
    ▝▜▄
   ▗▟▀
  ▝▀

Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
</code></pre></div></div>

<p>表示されている 4 つのポイントを要約すると以下の通りです。</p>

<ol>
  <li><strong>GEMINI.md</strong> ファイルを作って動作をカスタマイズできる</li>
  <li><strong><code class="language-plaintext highlighter-rouge">/help</code></strong> で詳細な情報を確認できる</li>
  <li><strong>コーディングの質問、コード編集、コマンド実行</strong>ができる</li>
  <li><strong>具体的に指示</strong>を出すと最良の結果が得られる</li>
</ol>

<h3 id="フォルダの信頼設定">フォルダの信頼設定</h3>

<p>起動すると、まず現在のフォルダを信頼するか聞かれます。</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Do you trust the files in this folder?

● 1. Trust folder (btakeshi)
  2. Trust parent folder (home)
  3. Don't trust
</code></pre></div></div>

<p>通常は <code class="language-plaintext highlighter-rouge">1. Trust folder</code> を選択して Enter で進みます。</p>

<h3 id="認証ログインの設定">認証（ログイン）の設定</h3>

<p>次に、認証方法を選択します。</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>? Get started

  How would you like to authenticate for this project?

  ● 1. Sign in with Google
    2. Use Gemini API Key
    3. Vertex AI
</code></pre></div></div>

<p>今回は <code class="language-plaintext highlighter-rouge">1. Sign in with Google</code> を選択しました。そのまま進めるとブラウザを起動するか確認されます。</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Opening authentication page in your browser.

 Do you want to continue?

 ● 1. Yes
   2. No
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">1. Yes</code> を選択するとブラウザが立ち上がり、Google アカウントの選択画面になります。ログインが完了すると、ブラウザに「認証成功」と表示されます。</p>

<p>ターミナルに戻ると、再起動を促すメッセージが出ています。</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>You've successfully signed in with Google. Gemini CLI needs to be restarted. Press R to restart, or Esc to choose a different authentication method.
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">R</code> キーを押して再起動すれば、準備完了です！</p>

<div class="bg-primary-50 border-l-4 border-primary-400 p-4 my-6 text-primary-700">
  <p class="font-bold underline mb-2 italic">💡 ブラウザが立ち上がらない場合</p>
  <p class="text-sm">
    サーバー環境などでブラウザが使えない場合は、認証方法で <code>2. Use Gemini API Key</code> を選択しましょう。Google AI Studio で取得した API キーを入力するだけで設定できます。
  </p>
</div>

<p>もし設定を最初からやり直したい場合は、ホームディレクトリの <code class="language-plaintext highlighter-rouge">.gemini</code> フォルダを削除すれば OK です。
これで Gemini CLI が自由に使えるようになりました！</p>

<h2 id="最新バージョンへのアップデート方法">最新バージョンへのアップデート方法</h2>

<p>Gemini CLI を常に最新の状態で利用するために、システム環境を含めた更新手順をまとめました。</p>

<h3 id="1-os-とパッケージの更新">1. OS とパッケージの更新</h3>
<p>Debian のパッケージマネージャーを最新の状態にし、システム全体を安定させます。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt update <span class="o">&amp;&amp;</span> <span class="nb">sudo </span>apt upgrade <span class="nt">-y</span>
<span class="nb">sudo </span>apt full-upgrade <span class="nt">-y</span>
<span class="nb">sudo </span>apt autoremove <span class="nt">-y</span>
</code></pre></div></div>

<h3 id="2-nodejs-と-npm-の更新">2. Node.js と npm の更新</h3>
<p>前述の <code class="language-plaintext highlighter-rouge">n</code> を使って Node.js を最新の安定版に、<code class="language-plaintext highlighter-rouge">npm</code> 自身も最新版に更新します。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Node.js を最新の安定版(stable)に更新</span>
<span class="nb">sudo </span>n stable
<span class="c"># npm 自体を最新版に更新</span>
<span class="nb">sudo </span>npm <span class="nb">install</span> <span class="nt">-g</span> npm@latest
</code></pre></div></div>

<h3 id="3-gemini-cli-の更新">3. Gemini CLI の更新</h3>
<p>最後に Gemini CLI 本体を最新バージョンに更新します。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm <span class="nb">install</span> <span class="nt">-g</span> @google/gemini-cli@latest
</code></pre></div></div>

<hr />

<h3 id="-アドバイス起動時にアップデート失敗と表示される場合">💡 アドバイス：起動時に「アップデート失敗」と表示される場合</h3>

<p>すべて正常に完了したはずなのに、<code class="language-plaintext highlighter-rouge">gemini</code> 起動時に「Update failed」と表示される場合は、以下の点を確認してみてください。</p>

<ol>
  <li><strong>古い実体の残留</strong>: 以前のインストール方法やパスの関係で、古いバージョンの <code class="language-plaintext highlighter-rouge">gemini</code> が優先的に実行されている可能性があります。<code class="language-plaintext highlighter-rouge">which gemini</code> で実行ファイルのパスを確認し、重複していないかチェックしましょう。</li>
  <li><strong>ハッシュのクリア</strong>: ターミナルが古い実行パスを記憶している場合があります。<code class="language-plaintext highlighter-rouge">hash -r</code> を実行してから再度 <code class="language-plaintext highlighter-rouge">gemini</code> を起動してみてください。</li>
  <li><strong>権限の問題</strong>: グローバルインストールの際に <code class="language-plaintext highlighter-rouge">sudo</code> が必要な環境（<code class="language-plaintext highlighter-rouge">/usr/local/bin</code> などに書き込む場合）では、<code class="language-plaintext highlighter-rouge">sudo npm install -g @google/gemini-cli@latest</code> を試してみてください。</li>
  <li><strong>強制再インストール</strong>: 一度アンインストールしてから入れ直すのが確実な場合もあります。
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm uninstall <span class="nt">-g</span> @google/gemini-cli
npm <span class="nb">install</span> <span class="nt">-g</span> @google/gemini-cli@latest
</code></pre></div>    </div>
  </li>
</ol>]]></content><author><name>btakeshi</name></author><category term="gen-ai" /><category term="Gemini" /><category term="CLI" /><category term="debian" /><summary type="html"><![CDATA[Gemini CLI を Debian 上で使おうとしたときのメモです。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mathdrugs.fun/assets/images/posts/gemini-cli-debian.jpg" /><media:content medium="image" url="https://mathdrugs.fun/assets/images/posts/gemini-cli-debian.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2026年3月 with Gemini</title><link href="https://mathdrugs.fun/with-ai/with-gemini-202603/" rel="alternate" type="text/html" title="2026年3月 with Gemini" /><published>2026-03-25T00:00:00+00:00</published><updated>2026-03-25T00:00:00+00:00</updated><id>https://mathdrugs.fun/with-ai/with-gemini-202603</id><content type="html" xml:base="https://mathdrugs.fun/with-ai/with-gemini-202603/"><![CDATA[<p>生成AI <strong>Gemini CLI</strong> とやったことメモです。</p>

<h2 id="2026-03-25">2026-03-25</h2>

<p>このブログの土台を徹底的に作り込みました。
何度もやり直していて、ここまで３か月ぐらいかかったかも。
これが最後にと単なるデザインの修正に留まらず、Jekyll の機能を活かした効率的な運用体制を整えたつもり。</p>

<h3 id="1-uiux-の刷新温かみのある付箋デザイン">1. UI/UX の刷新：温かみのある「付箋」デザイン</h3>
<p>「ワンカラムで読みやすく、オレンジを基調とした淡いデザイン」をテーマに、以下の調整を行いました。</p>

<ul>
  <li><strong>レスポンシブ・ワンカラム</strong>: デスクトップでは読みやすい幅に制限（<code class="language-plaintext highlighter-rouge">max-w-3xl</code>）し、中央寄せ。スマートフォンでも最適な余白を確保しました。</li>
  <li><strong>付箋風リスト</strong>: 記事一覧を白いカード形式にし、左側にアクセントのオレンジ線を配置。ホバー時に少し浮かび上がる演出を加え、クリックしやすさを向上させています。</li>
  <li><strong>テーマカラーの統一</strong>: Tailwind CSS のカスタム設定を導入。<code class="language-plaintext highlighter-rouge">primary</code> カラーとしてオレンジを定義し、ヘッダー、リンク、枠線などを一貫したトーンで統一しました。</li>
</ul>

<h3 id="2-jekyll-アーキテクチャの最適化">2. Jekyll アーキテクチャの最適化</h3>
<p>メンテナンス性を高めるため、ファイル構造とロジックを整理しました。</p>

<ul>
  <li><strong>カテゴリ名の日本語管理</strong>: <code class="language-plaintext highlighter-rouge">_data/categories.yml</code> を作成。URL用の英語スラッグ（<code class="language-plaintext highlighter-rouge">tech</code>）と、表示用の日本語名（<code class="language-plaintext highlighter-rouge">技術</code>）をマッピングすることで、クリーンなURLと親しみやすい表示を両立しました。</li>
  <li><strong>レイアウトの完全分離</strong>: 記事（<code class="language-plaintext highlighter-rouge">post</code>）とカテゴリ（<code class="language-plaintext highlighter-rouge">category</code>）のレイアウトを独立。各ページファイルは Frontmatter を最小限書くだけで、タイトルやURLが自動生成される仕組みに。</li>
  <li><strong>URLの自動生成</strong>: <code class="language-plaintext highlighter-rouge">_config.yml</code> を調整し、記事のURLを <code class="language-plaintext highlighter-rouge">/:categories/:title/</code> の形式に固定。ファイル名から日付とタイトルを自動で引き継ぎます。</li>
</ul>

<h3 id="3-技術ブログとしての機能強化">3. 技術ブログとしての機能強化</h3>
<p>読み手にとっても、書き手にとっても嬉しい機能をいくつか追加しました。</p>

<ul>
  <li><strong>シンタックスハイライト</strong>: <code class="language-plaintext highlighter-rouge">Highlight.js</code>（<code class="language-plaintext highlighter-rouge">intellij-light</code> テーマ）を導入。コードブロックの背景を極薄のオレンジ、枠線を濃いオレンジにカスタマイズし、サイトの雰囲気に溶け込ませました。</li>
  <li><strong>SNS 連携 &amp; OGP</strong>: 記事末尾に X, Facebook, LINE, URLコピーのボタンを設置。SNS 投稿時に画像や説明文が綺麗に出るよう、OGP メタタグの自動生成にも対応しました。</li>
  <li><strong>アイキャッチ画像</strong>: Frontmatter で <code class="language-plaintext highlighter-rouge">image</code> を指定するだけで、タイトル下に角の丸い美しいアイキャッチ画像が表示されるようにしました。</li>
</ul>

<h3 id="4-実践gemini-cli-on-debian-のセットアップ">4. 実践：Gemini CLI on Debian のセットアップ</h3>
<p>実際に Gemini CLI を Debian 環境で動かすまでの技術メモを執筆。AI と協力して、Node.js の最新版導入手順や認証フローを分かりやすく整理しました。</p>

<h3 id="まとめ">まとめ</h3>
<p>AI との対話を通じて、「こういう風にしたい」という曖昧なイメージを、具体的なコードと堅牢なフォルダ構造に落とし込んでいく過程は非常に効率的でした。</p>

<h2 id="2026-03-26">2026-03-26</h2>

<p>ブログの利便性とデザインをさらに一歩進めました。</p>

<h3 id="1-タグシステムの構築">1. タグシステムの構築</h3>
<p>これまで「ただの文字列」だったタグを、機能的なインデックスとして活用できるようにしました。</p>
<ul>
  <li><strong>タグ一覧ページの新設</strong>: 全記事からタグを抽出し、カテゴリ別に整理した <code class="language-plaintext highlighter-rouge">/tags/</code> ページを作成。</li>
  <li><strong>記事内リンクの設置</strong>: 記事上部のタグをクリックすると、そのタグが含まれる記事一覧へジャンプするようにし、関連トピックを探しやすくしました。</li>
</ul>

<h3 id="2-最新の記事セクションの追加">2. 「最新の記事」セクションの追加</h3>
<p>記事を読み終えた後に他の記事へ誘導できるよう、末尾に最新5件のリストを配置しました。</p>
<ul>
  <li><strong>デザインの統一</strong>: トップページと同じ「白いカード ＋ 左側のオレンジ線」を採用。</li>
  <li><strong>ホバーエフェクト</strong>: カードにカーソルを合わせると少し浮き上がる演出を加え、クリックしやすさを高めています。</li>
</ul>

<h3 id="3-google-analytics-ga4-の導入">3. Google Analytics (GA4) の導入</h3>
<p>サイトの成長を数字で見守るために、GA4 を設定しました。</p>
<ul>
  <li><strong>部品化による管理</strong>: トラッキングコードを <code class="language-plaintext highlighter-rouge">_includes</code> に分け、ID は <code class="language-plaintext highlighter-rouge">_config.yml</code> で管理。将来のコード変更にも柔軟に対応できるようにしています。</li>
</ul>

<h3 id="4-リーダビリティ可読性の追求">4. リーダビリティ（可読性）の追求</h3>
<p>文章がスッと頭に入るよう、見出し（H2, H3）のデザインを徹底的に調整しました。</p>
<ul>
  <li><strong>色のバランス</strong>: オレンジ一色にならないよう、境界線に薄いグレーを混ぜて視覚的な「区切り」を明確に。</li>
  <li><strong>空間のデザイン</strong>: 前の段落との「余白」を多めに取り、話題が切り替わったことを直感的に理解できるようにしました。</li>
</ul>

<h3 id="まとめ-1">まとめ</h3>
<p>「情報を探しやすい」「読んでいて疲れない」というブログの基本機能を、AI との対話で一気に形にすることができました。デザインと機能が噛み合っていく過程は非常に心地よいものです。</p>

<h2 id="2026-03-29">2026-03-29</h2>

<p>ブログを「読むもの」から「解くもの」へ。数学コンテンツを核とした「オンライン問題集」のシステムを Gemini と共に一気に構築しました。</p>

<h3 id="1-数式表示の最適化katex-の導入">1. 数式表示の最適化（KaTeX の導入）</h3>
<p>数学ブログには欠かせない数式表示を、MathJax よりも軽量・高速な <strong>KaTeX</strong> で実装しました。</p>
<ul>
  <li><strong>kramdown との競合回避</strong>: Jekyll 標準の Markdown プロセッサが <code class="language-plaintext highlighter-rouge">$$</code> を勝手に変換しないよう、<code class="language-plaintext highlighter-rouge">_config.yml</code> で <code class="language-plaintext highlighter-rouge">math_engine: nil</code> を設定。</li>
  <li><strong>レイアウトの統一感</strong>: 独自の CSS でブロック数式を「左寄せ＋インデント（<code class="language-plaintext highlighter-rouge">fleqn</code> 風）」に設定。文章の流れを止めない、自然な数式配置を実現しました。</li>
</ul>

<h3 id="2-動く問題集システムの構築jekyll-collection">2. 「動く問題集」システムの構築（Jekyll Collection）</h3>
<p>単なるブログ記事ではなく、繰り返し学習できる「ドリル」として管理するために <strong>Jekyll の Collection（コレクション）機能</strong> を導入しました。</p>
<ul>
  <li><strong>専用ディレクトリ <code class="language-plaintext highlighter-rouge">_drills/</code></strong>: ブログ記事（<code class="language-plaintext highlighter-rouge">_posts</code>）とは別に教材を管理。ファイル名に <code class="language-plaintext highlighter-rouge">sec1-</code> などの接頭辞を付けることで、自動的にセクション分けされる仕組みを作りました。</li>
  <li><strong>ポータルページの自動生成</strong>: フォルダ構造やファイル名から、日本語の見出し（数学I、二次関数など）を自動で判別して一覧表示するインデックスページを作成しました。</li>
</ul>

<h3 id="3-デジタルならではの学習体験localstorage--shuffle">3. デジタルならではの学習体験（LocalStorage &amp; Shuffle）</h3>
<p>紙の問題集にはできない「オンラインならでは」の機能を JavaScript で盛り込みました。</p>
<ul>
  <li><strong>進捗の保存</strong>: 「完了」「復習」「未挑戦」のステータスをブラウザの LocalStorage に保存。再訪したときに「どこまでやったか」がひと目で分かります。</li>
  <li><strong>問題のシャッフル</strong>: ボタン一つで問題の順番をランダムに入れ替え。解答の「順番」を覚えてしまうのを防ぎ、真の実力を試せます。</li>
  <li><strong>段階的な解説</strong>: <code class="language-plaintext highlighter-rouge">&lt;details&gt;</code> タグを活用し、「正解」→「手書きの思考プロセス（画像）」→「動画解説」と、段階的にヒントを開示できる UI を設計しました。</li>
</ul>

<h3 id="4-視覚的なモード切り替え">4. 視覚的な「モード切り替え」</h3>
<p>学習に集中できるよう、ドリルセクション（<code class="language-plaintext highlighter-rouge">/drills/</code>）にアクセスした際、サイト全体のテーマカラーが温かみのあるオレンジから、爽やかな <strong>「黄緑色（Lime）」</strong> へと動的に切り替わる仕掛けを導入しました。</p>
<ul>
  <li><strong>CSS 変数の活用</strong>: Tailwind CSS のカラー設定を変数化し、ページの種類に応じて一括で色味を制御。ヘッダーやボタン、進捗バーまで、違和感なく色が切り替わります。</li>
</ul>

<h3 id="まとめ-2">まとめ</h3>
<p>「静的な Jekyll サイト」に「動的な JavaScript のギミック」を組み合わせることで、非常に実用的でメンテナンス性の高いオンライン学習プラットフォームの土台が完成しました。AI との対話により、技術的なハマりどころ（YAML の解析エラーや CDN の整合性チェックなど）を迅速に突破できたのが大きな収穫です。</p>]]></content><author><name>btakeshi</name></author><category term="with-ai" /><category term="Jekyll" /><summary type="html"><![CDATA[生成AI Gemini CLI とやったことメモです。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mathdrugs.fun/assets/images/posts/with-gemini-202603.jpg" /><media:content medium="image" url="https://mathdrugs.fun/assets/images/posts/with-gemini-202603.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">First Postわい</title><link href="https://mathdrugs.fun/tech/welcome-to-jekyll/" rel="alternate" type="text/html" title="First Postわい" /><published>2026-03-24T00:00:00+00:00</published><updated>2026-03-24T00:00:00+00:00</updated><id>https://mathdrugs.fun/tech/welcome-to-jekyll</id><content type="html" xml:base="https://mathdrugs.fun/tech/welcome-to-jekyll/"><![CDATA[<p>Jekyll と Tailwind CSS を使ったブログが完成しました！
このブログは <strong>GitHub Actions</strong> を使って自動ビルド・デプロイされます。</p>

<div class="bg-blue-50 border-l-4 border-blue-400 p-4 my-6">
  <p class="text-blue-700">
    デザインは Tailwind CSS で自由に変更できます。 `_layouts/default.html` や各ファイルを編集して、自分好みのブログに育ててください。
  </p>
</div>]]></content><author><name>btakeshi</name></author><category term="tech" /><category term="Jekyll" /><category term="Tailwind" /><summary type="html"><![CDATA[Jekyll と Tailwind CSS を使ったブログが完成しました！ このブログは GitHub Actions を使って自動ビルド・デプロイされます。]]></summary></entry></feed>