<?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://mikimameme.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mikimameme.github.io/" rel="alternate" type="text/html" /><updated>2026-02-16T01:48:16+00:00</updated><id>https://mikimameme.github.io/feed.xml</id><title type="html">神酒まめ🫛</title><subtitle>プログラミングに挑戦する初心者</subtitle><entry><title type="html">GoogleAntigravityと共同作業</title><link href="https://mikimameme.github.io/2026-02-16/" rel="alternate" type="text/html" title="GoogleAntigravityと共同作業" /><published>2026-02-16T01:00:00+00:00</published><updated>2026-02-16T01:00:00+00:00</updated><id>https://mikimameme.github.io/2026-02-16</id><content type="html" xml:base="https://mikimameme.github.io/2026-02-16/"><![CDATA[<h2 id="重力を軽くする技術との出会い">「重力」を軽くする技術との出会い</h2>

<p>「0から1を生み出すのは苦しい」<br />
ものづくりをする人なら誰でも感じる、あの重たい感覚。<br />
特に、新しい言語（Rust）やGUIライブラリ（egui）を触る時の「環境構築」や「初手のエラー」は、まるで重力のようにやる気を地面に縛り付けます。</p>

<p>そんな中、Googleの新しい技術<strong>「Google Antigravity」</strong>に触れる機会がありました。<br />
「エンジニアにかかる実装作業という重たい負担（重力）をなくす」<br />
そんなコンセプトを感じさせるこのAIエージェントと、週末を使ってペアプログラミングをしてみました。</p>

<h2 id="作ったもの現場のための勤務表ビューア">作ったもの：現場のための「勤務表ビューア」</h2>

<p>今回作成したのは、製造や介護の現場でよくある「複雑なエクセル勤務表」を、パッと見やすくする<strong>『マンニング表（人員配置表）ビューア』</strong>です。</p>

<p><img src="https://raw.githubusercontent.com/MikiMameme/MikiMameme.github.io/refs/heads/master/_posts/20260216.png" alt="アプリのスクリーンショット" /></p>

<h3 id="なぜこれを作ったのか">なぜこれを作ったのか？</h3>
<p>私は長年、製造や介護の現場で働いてきましたが、現場のリーダーやスタッフは常に「今日、誰がいるのか？」を確認するのに時間を取られています。</p>
<ul>
  <li>エクセルを開くのが重い</li>
  <li>スマホだと表が崩れる</li>
  <li>印刷して壁に貼りたいけど、調整が面倒</li>
</ul>

<p>こうした「現場の不便」を、Rustの堅牢性とAIのスピードで解決できないかと考えました。</p>

<h2 id="google-antigravityとの共同作業">Google Antigravityとの「共同作業」</h2>

<p>開発プロセスは、まさに「共同作業」でした。</p>

<ol>
  <li><strong>写経（Shakyo）からスタート</strong><br />
最初はAIが提案するコードを書き写し、Rustの構造を理解することから始めました。</li>
  <li><strong>「これ、もっとこうしたい」を投げる</strong> <br />
「エクセルを読み込みたい」「シフトの空きがあったら警告を出したい」。<br />
私のあやふやな要望を、Antigravityは的確なコードに翻訳してくれます。</li>
  <li>
    <p><strong>現場のリアリティを注入する（私の仕事）</strong><br />
AIはコードを書けますが、「現場の空気」は知りません。<br />
そこで私がこだわったのが<strong>「スクショ保存機能」</strong>です。</p>

    <blockquote>
      <p>「現場では、綺麗なデータより、LINEやチャットですぐ送れる『画像』の方が100倍役に立つんだよ」</p>
    </blockquote>

    <p>そう伝えて実装したこのボタンこそ、このアプリの「魂」だと思っています。</p>
  </li>
</ol>

<h2 id="75点で進む">「75点」で進む</h2>

<p>完璧なアプリではありません。まだプロトタイプです。<br />
でも、シナモンのぬいぐるみをデスクに置き、コーヒー（たまに三度寝）を挟みながら、<strong>「現場で使える75点の道具」</strong>を自分の手で作れたこと。<br />
そして、その過程を「Antigravity」という相棒が支えてくれたこと。</p>

<p>これこそが、これからの私のエンジニアリング（そして現場改善）のスタイルになりそうです。</p>

<hr />
<p><em>Code is hosted on <a href="https://github.com/MikiMameme">GitHub</a>.</em></p>]]></content><author><name></name></author><category term="Rust" /><category term="AI" /><category term="開発日誌" /><category term="GoogleAntigravity" /><category term="egui" /><category term="現場改善" /><category term="自作ツール" /><summary type="html"><![CDATA[「重力」を軽くする技術との出会い 「0から1を生み出すのは苦しい」 ものづくりをする人なら誰でも感じる、あの重たい感覚。 特に、新しい言語（Rust）やGUIライブラリ（egui）を触る時の「環境構築」や「初手のエラー」は、まるで重力のようにやる気を地面に縛り付けます。 そんな中、Googleの新しい技術「Google Antigravity」に触れる機会がありました。 「エンジニアにかかる実装作業という重たい負担（重力）をなくす」 そんなコンセプトを感じさせるこのAIエージェントと、週末を使ってペアプログラミングをしてみました。 作ったもの：現場のための「勤務表ビューア」 今回作成したのは、製造や介護の現場でよくある「複雑なエクセル勤務表」を、パッと見やすくする『マンニング表（人員配置表）ビューア』です。]]></summary></entry><entry><title type="html">Google AI 関連資格を2つ取得しました</title><link href="https://mikimameme.github.io/2026-01-01/" rel="alternate" type="text/html" title="Google AI 関連資格を2つ取得しました" /><published>2026-01-01T00:00:00+00:00</published><updated>2026-01-01T00:00:00+00:00</updated><id>https://mikimameme.github.io/2026-01-01</id><content type="html" xml:base="https://mikimameme.github.io/2026-01-01/"><![CDATA[<p>2025年の年末から2026年の年始にかけて、Google が提供する AI 関連の認定資格を2つ取得しました。</p>

<ul>
  <li><strong>Google AI Essentials Certificate</strong></li>
  <li><strong>Google Prompting Essentials Certificate</strong></li>
</ul>

<p>この2つはセットで学ぶことで、AI を効果的に活用するための「理論」と「実践」の両輪が身につきます。</p>

<p><img src="https://raw.githubusercontent.com/MikiMameme/MikiMameme.github.io/refs/heads/master/_posts/20260101_certificates.png" alt="Google Certificates" /></p>

<h2 id="なぜ取得したのか">なぜ取得したのか</h2>

<p>現在、プログラミングの独学中で、Claude や Gemini などの生成 AI を日常的に使っています。</p>

<p>「もっと効果的に AI を活用したい」
「AI 時代に必須のスキルを身につけたい」</p>

<p>そんな思いから、この2つの資格取得に挑戦しました。</p>

<p>日本リスキリングコンソーシアムの特典を利用することで、<strong>どちらも無料で受講できる</strong>ことも大きな理由でした。</p>

<h2 id="2つの資格の違い">2つの資格の違い</h2>

<table>
  <thead>
    <tr>
      <th>項目</th>
      <th>AI Essentials</th>
      <th>Prompting Essentials</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>位置づけ</strong></td>
      <td>理論編</td>
      <td>実践編</td>
    </tr>
    <tr>
      <td><strong>内容</strong></td>
      <td>AI の基礎と倫理</td>
      <td>プロンプト技術</td>
    </tr>
    <tr>
      <td><strong>学べること</strong></td>
      <td>責任ある AI の使い方</td>
      <td>TCREI フレームワーク</td>
    </tr>
    <tr>
      <td><strong>所要時間</strong></td>
      <td>約6時間</td>
      <td>約10時間</td>
    </tr>
  </tbody>
</table>

<p><strong>2つはセットで学ぶべき内容</strong>です。
AI Essentials で「なぜ」を学び、Prompting Essentials で「どうやって」を学ぶ構成になっています。</p>

<h2 id="受講期間と難易度">受講期間と難易度</h2>

<p><strong>所要時間: 合計約16時間（3日間）</strong></p>

<p>年末年始の時間を使って、並行して受講しました。</p>

<p><strong>難易度:</strong>
どちらも初心者向けの内容で、AI を全く触ったことがない人でも理解できる構成になっています。</p>

<p>ただし、「知っているつもり」の人ほど発見があります。
私自身、日常的に AI を使っていましたが、「こういう視点があったのか」と気づかされることが多くありました。</p>

<h2 id="google-ai-essentials">Google AI Essentials</h2>

<h3 id="学習内容">学習内容</h3>

<ul>
  <li>生成 AI の基礎知識</li>
  <li>AI の仕組みと可能性</li>
  <li><strong>責任ある AI の使用</strong>（倫理的側面）</li>
  <li>ビジネスや学習での AI 活用法</li>
</ul>

<h3 id="印象に残ったこと">印象に残ったこと</h3>

<p>特に印象に残ったのは<strong>「責任ある AI の使用」</strong>です。</p>

<p>AI は便利なツールですが、使い方を誤ると:</p>
<ul>
  <li>バイアスの増幅</li>
  <li>プライバシーの侵害</li>
  <li>誤情報の拡散</li>
</ul>

<p>といったリスクがあります。</p>

<p><strong>「より良いものを作るために、どう AI と向き合うべきか」</strong></p>

<p>この視点は、今後のプログラミング学習や開発において重要な指針になると感じました。</p>

<h3 id="つまずいたポイント">つまずいたポイント</h3>

<p>倫理的な問題について考える課題では、正解のない問いに向き合う必要がありました。</p>

<p>「この使い方は適切か？」
「どこまでが許容範囲か？」</p>

<p>自分なりの判断基準を持つことの重要性を学びました。</p>

<h2 id="google-prompting-essentials">Google Prompting Essentials</h2>

<h3 id="学習内容-1">学習内容</h3>

<ul>
  <li>プロンプトエンジニアリングの基礎</li>
  <li><strong>TCREI フレームワーク</strong></li>
  <li>具体的なプロンプト技術</li>
  <li>実践的な課題演習</li>
</ul>

<h3 id="tcrei-フレームワークとは">TCREI フレームワークとは</h3>

<p>プロンプトを効果的に書くための5つの要素です:</p>

<p><strong>T - Task（タスク）</strong>
何をしてほしいか明確に指示する</p>

<p><strong>C - Context（コンテキスト）</strong>
背景情報や目的を提供する</p>

<p><strong>R - References（参照情報）</strong>
具体例やサンプルを示す</p>

<p><strong>E - Evaluate（評価）</strong>
出力の質を評価する基準を示す</p>

<p><strong>I - Iterate（反復・改善）</strong>
結果をもとに改善を重ねる</p>

<h3 id="印象に残ったこと-1">印象に残ったこと</h3>

<p>実践的な課題を通じて、<strong>自分のプロンプトの癖や考え方の偏り</strong>に気づかされました。</p>

<p>例えば:</p>
<ul>
  <li>曖昧な指示をしていた</li>
  <li>文脈を省略しすぎていた</li>
  <li>具体例を示していなかった</li>
</ul>

<p>これらを意識的に改善することで、AI からの回答の質が劇的に向上しました。</p>

<h3 id="つまずいたポイント-1">つまずいたポイント</h3>

<p>実践課題で、自分の考え方の癖が出てしまい、なかなか良い回答を引き出せないことがありました。</p>

<p>Gemini や Coursera のコーチ AI に相談しながら、少しずつ改善していきました。</p>

<h2 id="2つを並行学習して感じたこと">2つを並行学習して感じたこと</h2>

<h3 id="セットで学ぶ意味">セットで学ぶ意味</h3>

<p><strong>AI Essentials だけ</strong> → 理論は理解できるが、実践方法がわからない
<strong>Prompting Essentials だけ</strong> → テクニックは学べるが、倫理的視点が欠ける</p>

<p><strong>2つセット</strong> → 理論と実践の両輪が揃い、<strong>「責任を持って効果的に AI を使う」</strong>ことができる</p>

<p>この2つを組み合わせることで、初めて資格の意味が見えてくると感じました。</p>

<h3 id="おすすめの学習順序">おすすめの学習順序</h3>

<p><strong>並行して学ぶのがベスト</strong>ですが、どちらか一方なら:</p>

<p><strong>まず AI Essentials（理論）</strong></p>
<ul>
  <li>AI の基礎を理解</li>
  <li>倫理的な視点を学ぶ</li>
  <li>その後、Prompting Essentials で実践</li>
</ul>

<p>ただし、両方セットで取ることを強くおすすめします。</p>

<h2 id="プログラミング学習での活用">プログラミング学習での活用</h2>

<p>現在、以下の言語を学習中です:</p>
<ul>
  <li>Python</li>
  <li>Java</li>
  <li>Rust</li>
  <li>C++</li>
  <li>Kotlin</li>
</ul>

<h3 id="学習効率の向上">学習効率の向上</h3>

<p>TCREI フレームワークを意識することで:</p>

<p><strong>以前:</strong>
「Rust で5分でできるコード書いて」</p>

<p><strong>改善後:</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>【Task】Rust で初心者向けの写経課題を作成
【Context】所要時間5分、前回は数当てゲームを作成
【References】struct と match を使った例が良い
【Evaluate】コンパイルエラーが少なく、理解しやすいこと
【Iterate】難しければ調整してください
</code></pre></div></div>

<p>→ より的確な課題が得られるようになりました。</p>

<h3 id="責任ある-ai-の活用">責任ある AI の活用</h3>

<p>AI に頼りすぎず:</p>
<ul>
  <li>自分で考える時間を確保</li>
  <li>AI の回答を鵜呑みにしない</li>
  <li>コードの意味を理解する</li>
</ul>

<p>といった姿勢を持つことの重要性を再認識しました。</p>

<h2 id="この資格の価値">この資格の価値</h2>

<h3 id="転職活動での位置づけ">転職活動での位置づけ</h3>

<p>正直に言うと、<strong>この資格自体が直接的な転職の武器になるわけではありません。</strong></p>

<p>しかし、「AI 時代」の現在、<strong>AI を効果的に使えることは必須のスキル</strong>だと考えています。</p>

<p>面接で:</p>
<ul>
  <li>「AI をどう活用していますか？」</li>
  <li>「新しい技術への学習意欲は？」</li>
</ul>

<p>といった質問に対して、具体的なエピソードとして話せます。</p>

<h3 id="本当の価値">本当の価値</h3>

<p>資格そのものよりも、<strong>学んだ考え方とスキル</strong>に価値があります:</p>

<ul>
  <li>責任ある AI の使い方</li>
  <li>効果的なプロンプト技術</li>
  <li>倫理的な判断基準</li>
</ul>

<p>これらは、これからの時代に必ず役立つスキルです。</p>

<h2 id="つまずきポイントと解決法">つまずきポイントと解決法</h2>

<h3 id="ai-essentials">AI Essentials</h3>

<p><strong>つまずき:</strong> 倫理的な問題の考察
<strong>解決法:</strong> Gemini に「こういう考え方で合ってる？」と相談</p>

<h3 id="prompting-essentials">Prompting Essentials</h3>

<p><strong>つまずき:</strong> 自分の癖が出て良い回答が得られない
<strong>解決法:</strong> Coursera のコーチ AI にプロンプトをレビューしてもらう</p>

<p><strong>面白いポイント:</strong>
課題では「AI を使って学ぶ」ことが推奨されています。
AI を学ぶために AI を使う、というメタ的な体験が新鮮でした。</p>

<h2 id="どんな人におすすめ">どんな人におすすめ？</h2>

<h3 id="特におすすめする人">特におすすめする人</h3>

<ul>
  <li><strong>生成 AI に興味がある人すべて</strong></li>
  <li><strong>日常的に AI を使っているが、もっと効果的に使いたい人</strong></li>
  <li><strong>プログラミング学習者</strong></li>
  <li><strong>転職・キャリアアップを目指す人</strong></li>
</ul>

<h3 id="レベル感">レベル感</h3>

<p><strong>入門〜初級レベル</strong>の内容です。</p>

<p>ただし、「すでに AI を使っている人」でも、改めて学ぶことで:</p>
<ul>
  <li>自分の使い方の問題点に気づける</li>
  <li>より効果的な活用法を知れる</li>
  <li>倫理的な視点を持てる</li>
</ul>

<p>といったメリットがあります。</p>

<h2 id="2つセットで取る価値">2つセットで取る価値</h2>

<p><strong>結論: 大いにあり</strong></p>

<p>この2つは補完関係にあり、<strong>どちらか一方だけでは不完全</strong>です。</p>

<ul>
  <li>AI Essentials: 「なぜ」を学ぶ</li>
  <li>Prompting Essentials: 「どうやって」を学ぶ</li>
</ul>

<p>2つを組み合わせることで、初めて「責任を持って効果的に AI を使う」ことができるようになります。</p>

<h2 id="まとめ">まとめ</h2>

<table>
  <thead>
    <tr>
      <th>項目</th>
      <th>内容</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>所要時間</strong></td>
      <td>合計約16時間（3日間）</td>
    </tr>
    <tr>
      <td><strong>費用</strong></td>
      <td>無料（日本リスキリングコンソーシアム経由）</td>
    </tr>
    <tr>
      <td><strong>難易度</strong></td>
      <td>入門〜初級レベル</td>
    </tr>
    <tr>
      <td><strong>おすすめ度</strong></td>
      <td>⭐⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>学習順序</strong></td>
      <td>並行がベスト、どちらかなら AI Essentials → Prompting Essentials</td>
    </tr>
  </tbody>
</table>

<h3 id="取得してよかったこと">取得してよかったこと</h3>

<ol>
  <li><strong>より良いものを作りたくなった</strong>
    <ul>
      <li>責任ある AI の視点</li>
      <li>倫理的な判断基準</li>
    </ul>
  </li>
  <li><strong>プロンプトの質が向上</strong>
    <ul>
      <li>TCREI フレームワーク</li>
      <li>具体的なテクニック</li>
    </ul>
  </li>
  <li><strong>学習効率が向上</strong>
    <ul>
      <li>AI との対話が的確に</li>
      <li>欲しい情報を素早く入手</li>
    </ul>
  </li>
</ol>

<h3 id="これから">これから</h3>

<p>「AI 時代」と言われる現在、AI を効果的に使えることは必須のスキルです。</p>

<p>この2つの資格で学んだ「理論」と「実践」を活かして、より良いものを作っていきたいと思います。</p>

<hr />

<p><strong>参考リンク:</strong></p>
<ul>
  <li><a href="https://grow.google/intl/ALL_jp/ai-essentials/">Google AI Essentials</a></li>
  <li><a href="https://grow.google/intl/ALL_jp/prompting-essentials/">Google Prompting Essentials</a></li>
  <li><a href="https://japan-reskilling-consortium.jp/">日本リスキリングコンソーシアム</a></li>
</ul>

<hr />]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[2025年の年末から2026年の年始にかけて、Google が提供する AI 関連の認定資格を2つ取得しました。]]></summary></entry><entry><title type="html">MacBook Pro 2018を33,000円でゲットした話</title><link href="https://mikimameme.github.io/2025-10-27/" rel="alternate" type="text/html" title="MacBook Pro 2018を33,000円でゲットした話" /><published>2025-10-27T00:00:00+00:00</published><updated>2025-10-27T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-10-27</id><content type="html" xml:base="https://mikimameme.github.io/2025-10-27/"><![CDATA[<p>地元のハードオフで、何気なく覗いたジャンクコーナー。<br />
そこのショーケースに鎮座していたのが、<strong>MacBook Pro (15-inch, 2018)</strong> でした。</p>

<p>値札には「ジャンク シール跡」とだけ。<br />
値段はなんと <strong>33,000円（税込）</strong>。<br />
外観は悪くないし、これはちょっと気になる……。<br />
直感で「これは当たりかもしれない」と思い、気づいたらレジで精算していました。</p>

<hr />

<h2 id="-開封チェック意外と元気">💡 開封チェック：意外と元気！</h2>

<p>家に帰って動作チェックをしてみると、<br />
なんと普通に起動。<br />
バッテリーのサイクルカウントは <strong>250回ほど</strong>で、<br />
試しに動画を再生してみたら3時間ほどもってくれました。</p>

<p>見た目の方はというと、<br />
天板にガッツリ残ったシール跡（アルミまで変色してるレベル）、<br />
そして画面にはうっすらとキーボード跡。<br />
でも、これくらいは「ジャンクの勲章」です。<br />
分解するほどの不具合もなさそうだったので、軽く清掃して完了。</p>

<hr />

<h2 id="️-ドイツ語キーボードの衝撃">⌨️ ドイツ語キーボードの衝撃</h2>

<p>開いた瞬間、「ん？ なんかキーが違うぞ？」<br />
そう、<strong>ドイツ語配列</strong>のキーボードでした。</p>

<p>ZとYが入れ替わってるし、@もどこにあるかわからない。<br />
さすがに実用はキツいので、<br />
設定で <strong>USキーボード扱い</strong> に変更し、<br />
違うキーの部分だけテプラでラベルを貼って対応しました。</p>

<p>結果、これが意外と快適。<br />
ちょっとしたカスタム感があって、愛着が湧いてきました。</p>

<hr />

<h2 id="️-現在のスペックと状態">⚙️ 現在のスペックと状態</h2>

<table>
  <thead>
    <tr>
      <th>項目</th>
      <th>内容</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>モデル</td>
      <td>MacBook Pro (15-inch, 2018)</td>
    </tr>
    <tr>
      <td>CPU</td>
      <td>2.2GHz 6コア Intel Core i7</td>
    </tr>
    <tr>
      <td>GPU</td>
      <td>Radeon Pro 555X</td>
    </tr>
    <tr>
      <td>メモリ</td>
      <td>16GB</td>
    </tr>
    <tr>
      <td>SSD</td>
      <td>256GB</td>
    </tr>
    <tr>
      <td>macOS</td>
      <td>Sequoia</td>
    </tr>
    <tr>
      <td>状態</td>
      <td>非常に快適。ファンも静かで安定動作。</td>
    </tr>
  </tbody>
</table>

<p>最新のmacOS <strong>Sequoia</strong> を入れてみたところ、問題なく動作。<br />
動画編集やプログラミング学習でもサクサク動いてくれています。</p>

<hr />

<h2 id="-使ってみての感想">🚀 使ってみての感想</h2>

<p>正直、33,000円でここまで快適に使えるとは思っていませんでした。<br />
アルミボディの質感はさすがApple。<br />
そして15インチのRetinaディスプレイは、作業がめちゃくちゃ捗ります。</p>

<p>今までWindowsノートを使ってきたけれど、<br />
この完成度を一度味わうと、ついMacを使いたくなってしまいますね。</p>

<hr />

<h2 id="-おわりにハードオフはまだまだ宝の山">🧰 おわりに：ハードオフはまだまだ宝の山</h2>

<p>今回のMacBook Proは、完全に“掘り出し物”でした。<br />
ちょっとした工夫と清掃だけで、<br />
ここまで快適に動くMacが手に入るなんて驚きです。</p>

<p>ハードオフのジャンクコーナーは、<br />
一見ガラクタでも、よく見ると <strong>まだまだ現役で使える逸品</strong> が眠っています。<br />
これだからジャンク巡りはやめられませんね。</p>

<hr />]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[地元のハードオフで、何気なく覗いたジャンクコーナー。 そこのショーケースに鎮座していたのが、MacBook Pro (15-inch, 2018) でした。]]></summary></entry><entry><title type="html">ハードオフで4400円のジャンクSurface Pro 3を衝動買いした話</title><link href="https://mikimameme.github.io/2025-10-06/" rel="alternate" type="text/html" title="ハードオフで4400円のジャンクSurface Pro 3を衝動買いした話" /><published>2025-10-06T00:00:00+00:00</published><updated>2025-10-06T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-10-06</id><content type="html" xml:base="https://mikimameme.github.io/2025-10-06/"><![CDATA[<h2 id="突然の出会い">突然の出会い</h2>

<p>1ヶ月ぶりに地元のハードオフに立ち寄ったところ、ジャンクコーナーにて比較的珍しい品を発見しました。Surface Pro 3です。しかも、買い取られたばかりのようで、状態が良さそう。</p>

<p>価格札を見ると<strong>4400円</strong>。スペックはi3-4020Y、64GB、4GB RAMという最低限のモデルですが、当時欲しかったモデルがこの値段で並んでいることが衝撃的でした。ほぼ衝動買いです。</p>

<h2 id="セット内容と状態">セット内容と状態</h2>

<p>購入したのは以下のセット：</p>
<ul>
  <li>Surface Pro 3 本体</li>
  <li>純正キーボードカバー</li>
  <li>純正充電器</li>
</ul>

<p>ジャンク品として売られていましたが、動作確認してみると<strong>故障している箇所はありません</strong>。バッテリーも4時間程度持ちます。</p>

<p>外観には使用感を感じる程度の傷と、フレームに小さなヒビが1箇所ありますが、剛性には影響していません。機能的には全く問題なく使える状態でした。</p>

<h2 id="なぜジャンク扱いwindows-10終了の影響">なぜジャンク扱い？Windows 10終了の影響</h2>

<p>これだけ状態が良いのにジャンク価格で売られていた理由は、おそらく<strong>Windows 10のサポート終了</strong>でしょう。2025年10月でサポートが終わるため、古い機種が大量に市場に流れ込んでいるのだと思います。</p>

<p>私は無料のESU（拡張セキュリティ更新プログラム）を利用して、サポートを1年延長しました。これで2026年まで安心して使えます。</p>

<h2 id="修理復活作業">修理・復活作業</h2>

<p>清掃のみ行いました。「何も壊れていない」というのが、逆に拍子抜けするほどです。贅沢な悩みですね。</p>

<p>電気科出身として修理スキルを活かせる場面を期待していたのですが、その必要すらありませんでした。</p>

<h2 id="これからの使い道">これからの使い道</h2>

<p>現時点では具体的な用途を決めていませんが、古い・スペックが低いという以外の欠点がないため、工夫次第で色々使えそうです。</p>

<p>考えているのは：</p>
<ul>
  <li>データをmicroSDに保存</li>
  <li>ポータブルアプリを活用</li>
  <li>VisualStudioをSDカードにインストールしてプログラミング学習</li>
</ul>

<p>ストレージが64GBと少ないため、外部ストレージを活用する運用になりそうです。</p>

<h2 id="コスパを超えた価値">コスパを超えた価値</h2>

<p>「コスパが良い」という言葉では表現しきれないレベルです。4400円、動作問題なし、バッテリーも十分持つ。Windows 10サポート終了の影響がここまで来ているとは、正直驚きました。</p>

<h2 id="ジャンク品購入の教訓">ジャンク品購入の教訓</h2>

<p>今回は大当たりでしたが、ジャンク品は<strong>当たりハズレが激しい</strong>のが現実です。次回も気まぐれで掘り出し物があれば買うかもしれませんが、ジャンクですべてを揃える気はありません。</p>

<p>それでも、こういう出会いがあるから、ハードオフ巡りはやめられないんですよね。</p>

<h2 id="まとめ">まとめ</h2>

<ul>
  <li>4400円のジャンクSurface Pro 3は大当たりだった</li>
  <li>Windows 10終了の影響で良品が流れてきている</li>
  <li>活用方法を工夫すれば、まだまだ現役で使える</li>
  <li>ジャンクは運次第だが、当たれば最高</li>
</ul>

<p>もしハードオフに立ち寄る機会があれば、ジャンクコーナーを覗いてみてください。思わぬ掘り出し物に出会えるかもしれません。</p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[突然の出会い]]></summary></entry><entry><title type="html">捨て活とプログラミングの意外な共通点</title><link href="https://mikimameme.github.io/2025-10-05/" rel="alternate" type="text/html" title="捨て活とプログラミングの意外な共通点" /><published>2025-10-05T00:00:00+00:00</published><updated>2025-10-05T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-10-05</id><content type="html" xml:base="https://mikimameme.github.io/2025-10-05/"><![CDATA[<h2 id="はじめに">はじめに</h2>

<p>最近、部屋が散らかってきたので、いわゆる「捨て活」に挑戦してみました。汚部屋というわけではないのですが、物が増えてきて、なんとなく落ち着かない状態でした。</p>

<p>物理的なものだけでなく、デジタルデータの整理にも取り組んでみたところ、プログラミングと不思議な共通点があることに気づきました。</p>

<h2 id="物理の断捨離今使うものだけを残す">物理の断捨離：「今使うもの」だけを残す</h2>

<p>捨て活を始めるにあたって、自分なりの基準を決めました。それは<strong>「今使うもの」だけを残す</strong>ということです。</p>

<p>もちろん、ビジネスや冠婚葬祭など、今後絶対に使うものは別です。でも、「いつか使うかも」「もったいない」という理由で取っておいたものの多くは、結局使わないんですよね。</p>

<p>部屋から不要なものが減ると、本当に必要なものが見えやすくなりました。探し物にかける時間も減り、生活が快適になったのを実感しています。</p>

<h2 id="デジタルの断捨離本当の思い出だけを残す">デジタルの断捨離：「本当の思い出」だけを残す</h2>

<p>次に取り組んだのが、デジタルデータの整理です。特にスマホの写真フォルダは、気づけば数千枚という状態でした。</p>

<p>写真を一枚一枚見直していくと、「なんでこれ撮ったんだっけ？」というものがほとんど。結局、残したのは<strong>「本当の思い出」</strong>だけです。</p>

<p>データが減ると、大切な写真を探しやすくなりました。何より、本当に価値のあるものだけが残っている安心感があります。</p>

<h2 id="介護職で学んだシンプルさの価値">介護職で学んだ「シンプルさ」の価値</h2>

<p>前職の介護職では、記録を書く際に徹底して教えられたことがあります。それは、<strong>誰が見てもわかるように、事実を簡潔に記述する</strong>ということです。</p>

<p>介護記録は、職員と利用者の双方を守るためのものです。曖昧な表現や冗長な文章は、かえって混乱を招きます。必要な情報だけを、わかりやすく伝えることが求められました。</p>

<h2 id="プログラミングとの共通点">プログラミングとの共通点</h2>

<p>学習していて気づいたのですが、<strong>コードも同じ</strong>なんです。</p>

<ul>
  <li>不要な変数や処理を削ると、プログラムの動作が効率的になる</li>
  <li>パッと見てどんな動きが期待できるかわかるコードは美しい</li>
  <li>読む人への配慮がある記述は、バグを防ぐ</li>
</ul>

<p>介護記録で求められた「誰が見てもわかる簡潔な記述」は、プログラムのコードでも全く同じでした。コードは自分だけでなく、将来の自分や他の開発者が読むものです。シンプルでわかりやすいコードは、みんなを守るんです。</p>

<h2 id="まとめ">まとめ</h2>

<p>断捨離もプログラミングも、本質は「シンプルであること」の価値を知ることなのかもしれません。</p>

<ul>
  <li>物理：今使うものだけを残す</li>
  <li>デジタル：本当に必要なデータだけを残す</li>
  <li>コード：必要な処理だけを書く</li>
</ul>

<p>どれも、<strong>相手（未来の自分や他者）への配慮</strong>という点で共通しています。</p>

<p>部屋の捨て活から始まった気づきが、プログラミング学習に繋がるとは思いませんでした。人生のあらゆる場面で、シンプルさを追求することの大切さを改めて感じています。</p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[はじめに]]></summary></entry><entry><title type="html">デバッグ地獄からの脱出 - エニグマ暗号機実装で学んだこと</title><link href="https://mikimameme.github.io/2025-09-14/" rel="alternate" type="text/html" title="デバッグ地獄からの脱出 - エニグマ暗号機実装で学んだこと" /><published>2025-09-14T00:00:00+00:00</published><updated>2025-09-14T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-09-14</id><content type="html" xml:base="https://mikimameme.github.io/2025-09-14/"><![CDATA[<p>2ヶ月ぶりのブログ更新です。今回は、C言語でエニグマ暗号機を実装した際に体験した「デバッグ地獄」とそこから学んだことを記録したいと思います。</p>

<h2 id="きっかけ---なぜエニグマ暗号を作ろうと思ったか">きっかけ - なぜエニグマ暗号を作ろうと思ったか</h2>

<p>最近、暗号について興味を持つようになりました。シーザー暗号やヴィジュネル暗号など、基本的な暗号アルゴリズムをC言語で実装してみて、その面白さに魅了されていました。</p>

<p>そんな中で出会ったのが<strong>エニグマ暗号機</strong>です。第二次世界大戦で実際に使われた暗号機として有名で、3つのローターとリフレクターを使った複雑な仕組みに興味を惹かれました。</p>

<p>「これをC言語で実装できたら面白そう！」</p>

<p>そう思って、次のプロジェクトとして挑戦することにしました。</p>

<h2 id="実装過程---chatgptとのやり取り試行錯誤">実装過程 - ChatGPTとのやり取り、試行錯誤</h2>

<p>正直なところ、私の現在の知識レベルでは、エニグマ暗号機の全コードを一から書くほどの技量はありません。</p>

<p>「今の知識で作ることができるのだろうか？」</p>

<p>そんな不安を抱えながら、ChatGPTにアイデアや実装について相談してみました。</p>

<ul>
  <li>ローターのパターン定義</li>
  <li>前進・逆変換の処理</li>
  <li>リフレクターの実装</li>
  <li>ローター回転の仕組み</li>
</ul>

<p>ChatGPTとの対話を通じて、少しずつエニグマ暗号機の仕組みを理解し、実装のヒントを得ることができました。最初は複雑に見えた仕組みも、一つ一つの要素に分解してみると、意外と理解できるものでした。</p>

<h2 id="最大の難関---復号化がうまくいかなかった問題">最大の難関 - 復号化がうまくいかなかった問題</h2>

<p>順調に進んでいた実装でしたが、大きな壁にぶつかりました。</p>

<p><strong>暗号化はできるのに、復号化がうまくいかない</strong></p>

<p>同じ設定で「HELLO」を暗号化してから復号化しても、「HELLO」に戻らないのです。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>暗号化: HELLO → ILBDA
復号化: ILBDA → VZBKP  // HELLOに戻らない！
</code></pre></div></div>

<p>この時に痛感したのは、<strong>生成AIを過信してはいけない</strong>ということでした。ChatGPTが生成したコードも完璧ではありません。最終的には自分で実際に動かして、自分で問題を見つけて修正する必要があるのです。</p>

<h2 id="デバッグの過程---ローター回転タイミング逆変換処理の修正">デバッグの過程 - ローター回転タイミング、逆変換処理の修正</h2>

<p>デバッグは試行錯誤の連続でした。</p>

<p>まず気づいたのは<strong>ローター回転のタイミング</strong>の問題でした。元のコードでは：</p>

<ol>
  <li>文字を処理</li>
  <li><strong>その後で</strong>ローターを回転</li>
</ol>

<p>という順序でしたが、実際のエニグマ暗号機は：</p>

<ol>
  <li><strong>まずローターを回転</strong></li>
  <li>その後で文字を処理</li>
</ol>

<p>という順序だったのです。</p>

<p>この修正だけでは問題が解決せず、さらに調べてみると<strong>逆変換処理</strong>にも問題がありました：</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// 修正前</span>
<span class="n">c</span> <span class="o">=</span> <span class="p">(</span><span class="n">rotor_inverse</span><span class="p">(</span><span class="n">rotor</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">c</span><span class="p">)</span> <span class="o">-</span> <span class="n">rotor_pos</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="mi">26</span><span class="p">)</span> <span class="o">%</span> <span class="mi">26</span><span class="p">;</span>

<span class="c1">// 修正後  </span>
<span class="kt">int</span> <span class="n">adjusted_c</span> <span class="o">=</span> <span class="p">(</span><span class="n">c</span> <span class="o">+</span> <span class="n">rotor_pos</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">%</span> <span class="mi">26</span><span class="p">;</span>
<span class="n">c</span> <span class="o">=</span> <span class="p">(</span><span class="n">rotor_inverse</span><span class="p">(</span><span class="n">rotor</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">adjusted_c</span><span class="p">)</span> <span class="o">-</span> <span class="n">rotor_pos</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="mi">26</span><span class="p">)</span> <span class="o">%</span> <span class="mi">26</span><span class="p">;</span>
</code></pre></div></div>

<p>動かして自分なりに推測して修正し、どうなったのかをChatGPTに伝えて修正案を得る、という流れを繰り返しました。<strong>問題を正確に伝える</strong>ことが、効果的な解決策を得るために重要だと実感しました。</p>

<h2 id="完成と感想---動いた時の達成感">完成と感想 - 動いた時の達成感</h2>

<p>そして遂に…</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文字列を入力: ILBDA
復号化: HELLO
</code></pre></div></div>

<p><strong>動いた！</strong></p>

<p>この瞬間の達成感は、素晴らしいの一言でした。長時間のデバッグを経て、ついにエニグマ暗号機が正しく動作するようになったのです。</p>

<h2 id="学んだこと---c言語アルゴリズムデバッグスキル">学んだこと - C言語、アルゴリズム、デバッグスキル</h2>

<p>この経験を通じて学んだことは多岐にわたります：</p>

<h3 id="技術的な学び">技術的な学び</h3>
<ul>
  <li><strong>C言語</strong>: ポインタや配列の扱い、関数設計の重要性</li>
  <li><strong>アルゴリズム</strong>: 複雑な処理を段階的に分解する思考法</li>
  <li><strong>デバッグスキル</strong>: 問題の切り分けと仮説検証のプロセス</li>
</ul>

<h3 id="より重要な学び">より重要な学び</h3>
<ul>
  <li><strong>トラブルについてうまく言語化することの大切さ</strong>: 問題を正確に説明できれば、解決策も見つかりやすい</li>
  <li><strong>自分に自信を持つこと</strong>: 完璧な知識がなくても、調べながら、試しながら、少しずつ前進することができる</li>
</ul>

<h2 id="おわりに">おわりに</h2>

<p>生成AIは非常に強力なツールですが、それに依存するのではなく、<strong>自分で考え、自分で検証し、自分で修正する</strong>姿勢が大切だと改めて感じました。</p>

<p>プログラミング学習において、「動かない→調べる→修正する→動いた！」のサイクルこそが、最も価値のある経験なのかもしれません。</p>

<p>次は何を作ってみようか、今からワクワクしています。</p>

<hr />

<p><strong>GitHub Repository</strong>: <a href="https://github.com/MikiMameme/Simple-Enigma-cipher-machine">エニグマ暗号プログラム</a><br />
<strong>開発環境</strong>: Visual Studio 2022, C言語</p>

<hr />
<p><em>2025年9月 - <a href="https://mikimameme.github.io/">神酒まめ</a></em></p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[2ヶ月ぶりのブログ更新です。今回は、C言語でエニグマ暗号機を実装した際に体験した「デバッグ地獄」とそこから学んだことを記録したいと思います。]]></summary></entry><entry><title type="html">直感</title><link href="https://mikimameme.github.io/2025-07-22/" rel="alternate" type="text/html" title="直感" /><published>2025-07-22T00:00:00+00:00</published><updated>2025-07-22T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-07-22</id><content type="html" xml:base="https://mikimameme.github.io/2025-07-22/"><![CDATA[<p>突然ですが、直感って信じますか？<br />
私は信じています。<br />
正しいかどうかはわかりませんが、「これだ！」と思ったものはそこまで外れたことはないです。<br />
（賭け事とかそういうものではなく、物事の判断を直感にゆだねるという意味です）</p>

<p>もちろん、物事の判断には論理的な直観も必要です。<br />
データを分析し、経験と知識を総動員して導き出す答え。<br />
でも、直感を完全に無視するのも危険だと思います。</p>

<p>実際、このGitHubを始めたのもほぼ直感でした。<br />
「なんとなく必要そう」「やってみたい」という感覚だけで。<br />
結果的に、スキルアップにも情報発信にも大いに役立っています。</p>

<p>直感と直観、両方のバランスを取りながら進んでいきたいですね。</p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[突然ですが、直感って信じますか？ 私は信じています。 正しいかどうかはわかりませんが、「これだ！」と思ったものはそこまで外れたことはないです。 （賭け事とかそういうものではなく、物事の判断を直感にゆだねるという意味です） もちろん、物事の判断には論理的な直観も必要です。 データを分析し、経験と知識を総動員して導き出す答え。 でも、直感を完全に無視するのも危険だと思います。 実際、このGitHubを始めたのもほぼ直感でした。 「なんとなく必要そう」「やってみたい」という感覚だけで。 結果的に、スキルアップにも情報発信にも大いに役立っています。 直感と直観、両方のバランスを取りながら進んでいきたいですね。]]></summary></entry><entry><title type="html">続けることの楽しさと難しさ</title><link href="https://mikimameme.github.io/2025-06-30/" rel="alternate" type="text/html" title="続けることの楽しさと難しさ" /><published>2025-06-30T00:00:00+00:00</published><updated>2025-06-30T00:00:00+00:00</updated><id>https://mikimameme.github.io/2025-06-30</id><content type="html" xml:base="https://mikimameme.github.io/2025-06-30/"><![CDATA[<p>新しいことを学ぶのは楽しいのですが、同時に不安が押し寄せてきます。<br />
なんででしょうね？
書きたいから書いても、ポストまで至らなかったりしてキーボードが重くなってしまうことがあるんです。<br />
でも、一度二度三度とやっていくごとにそういうことが減っていく。
プログラミングも動画づくりも、睡眠も食事も…<br />
ある意味、自分のものにするというのはそういうことなんだろうなぁ、と思うようになってきました。</p>

<p>最近、10本指の入力に少し慣れてきまして、書きたいことが書けるようになってきました。<br />
まあ、子供が字を習ってそれを落書き帳に書くようなものであります。<br />
それに書きたいことといってもそれはただ無心にタイプしたい欲求でしかないことも理解しています(^_^;)</p>

<p>それでもぼくはこうやって書き続けて学んでいきたいと思います。<br />
  止まったら、全てが止まってしまう、そんな気がするからです。</p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[新しいことを学ぶのは楽しいのですが、同時に不安が押し寄せてきます。 なんででしょうね？ 書きたいから書いても、ポストまで至らなかったりしてキーボードが重くなってしまうことがあるんです。 でも、一度二度三度とやっていくごとにそういうことが減っていく。 プログラミングも動画づくりも、睡眠も食事も… ある意味、自分のものにするというのはそういうことなんだろうなぁ、と思うようになってきました。 最近、10本指の入力に少し慣れてきまして、書きたいことが書けるようになってきました。 まあ、子供が字を習ってそれを落書き帳に書くようなものであります。 それに書きたいことといってもそれはただ無心にタイプしたい欲求でしかないことも理解しています(^_^;)]]></summary></entry><entry><title type="html">My First Blog Post</title><link href="https://mikimameme.github.io/my-first-post/" rel="alternate" type="text/html" title="My First Blog Post" /><published>2025-06-13T00:00:00+00:00</published><updated>2025-06-13T00:00:00+00:00</updated><id>https://mikimameme.github.io/my-first-post</id><content type="html" xml:base="https://mikimameme.github.io/my-first-post/"><![CDATA[<p>GitHubやマークダウンなど、いろんな新しいものに触れてみたく、GitHubページを開設してみました。<br />
恥ずかしい話、私はずっと両手の人差し指二本でタイピングを25年やってまして、最近ようやくタッチタイピング習得のため両手十本の指を使った効率的なタイピングを練習しています。<br />
あまりタイピングが上手でないですが、プログラミング習得にはある程度タッチタイピングができるようになるのは必須なのでこうやってタイピングの練習にもなるかなと…</p>]]></content><author><name></name></author><category term="雑記" /><category term="感想" /><summary type="html"><![CDATA[GitHubやマークダウンなど、いろんな新しいものに触れてみたく、GitHubページを開設してみました。 恥ずかしい話、私はずっと両手の人差し指二本でタイピングを25年やってまして、最近ようやくタッチタイピング習得のため両手十本の指を使った効率的なタイピングを練習しています。 あまりタイピングが上手でないですが、プログラミング習得にはある程度タッチタイピングができるようになるのは必須なのでこうやってタイピングの練習にもなるかなと…]]></summary></entry></feed>