<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ChatGPT on namaraii.com</title><link>https://namaraii.com/tags/chatgpt/</link><description>Recent content in ChatGPT on namaraii.com</description><generator>Hugo -- gohugo.io</generator><language>ja</language><managingEditor>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</managingEditor><webMaster>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</webMaster><copyright>© 2026 TAKEUCHI Hitoshi, All Rights Reserved.</copyright><lastBuildDate>Tue, 03 Feb 2026 07:53:27 +0900</lastBuildDate><atom:link href="https://namaraii.com/tags/chatgpt/index.xml" rel="self" type="application/rss+xml"/><item><title>生成AIのオプトアウト設定</title><link>https://namaraii.com/posts/ai_optout_settings/</link><pubDate>Tue, 03 Feb 2026 07:53:27 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/ai_optout_settings/</guid><description>&lt;p&gt;ChatGPT・Gemini・Claudeで会話データをモデル学習に使用されないようオプトアウトする方法のまとめ。&lt;/p&gt;

&lt;h2 class="relative group"&gt;ChatGPT (OpenAI)
 &lt;div id="chatgpt-openai" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chatgpt-openai" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;ChatGPTの&lt;code&gt;設定&lt;/code&gt;から&lt;code&gt;データコントロール&lt;/code&gt;を選択し、&lt;code&gt;すべての人のためにモデルを改善する&lt;/code&gt;をオフに切り替える。
&lt;ul&gt;
&lt;li&gt;将来的な会話のみ対象で、過去データは影響を受けない&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://privacy.openai.com/policies/en/" target="_blank" rel="noreferrer"&gt;OpenAI Privacy Portal&lt;/a&gt;からオプトアウトの設定
&lt;ul&gt;
&lt;li&gt;右上の&lt;code&gt;Make a Privacy Request&lt;/code&gt;を選択&lt;/li&gt;
&lt;li&gt;&lt;code&gt;I have a cunsumer ChatGPT account&lt;/code&gt;を選択&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Do not train on my content&lt;/code&gt;を選択
&lt;ul&gt;
&lt;li&gt;チェックボタンをチェックし&lt;code&gt;Japan&lt;/code&gt;を選択して&lt;code&gt;Submit Request&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1.は即日に適用される。2.はアカウントレベルのリクエストとして処理。念のため併用設定する。&lt;/p&gt;
&lt;p&gt;また、一時チャットを使用すると履歴保存なしでトレーニング対象外になる。&lt;/p&gt;

&lt;h2 class="relative group"&gt;Gemini (Google)
 &lt;div id="gemini-google" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#gemini-google" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;設定とヘルプ&lt;/code&gt;から&lt;code&gt;アクティビティ&lt;/code&gt;を選択。&lt;code&gt;アクティビィティの保存&lt;/code&gt;をオフにする。&lt;/p&gt;
&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;
 &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;
 &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;
&lt;/span&gt;&lt;/div&gt;
 &lt;div class="grow"&gt;
 チャット履歴と学習
 &lt;/div&gt;
 &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Geminiの場合、アクティビティの保存をオフにするとChatGPTとは異なり、チャット履歴を保存できなくなります。&lt;/p&gt;</description></item><item><title>架空のK-POPグループのアルバムを生成AIで制作</title><link>https://namaraii.com/posts/20260120-lumina-album/</link><pubDate>Wed, 21 Jan 2026 16:17:29 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20260120-lumina-album/</guid><description>&lt;p&gt;sunoで架空のK-POPガールズグループLuminaのアルバムを作ってみた。&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="image"
 width="800"
 height="800"
 src="https://namaraii.com/images/20260120-lumina-album-001.webp"
 srcset="https://namaraii.com/images/20260120-lumina-album-001.webp 800w, https://namaraii.com/images/20260120-lumina-album-001.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20260120-lumina-album-001.webp"&gt;&lt;/figure&gt;
&lt;p&gt;アルバムジャケットはGeminiで作成。ちょっとハードで良い雰囲気かな?&lt;/p&gt;
&lt;p&gt;楽曲の作成は以下の流れで行った。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;曲の大まかなコンセプトを決めて歌詞のテーマを日本語で書く&lt;/li&gt;
&lt;li&gt;ChatGPTへテーマを入力し、K-Popのガールズグループ向けの歌詞として英語で書いてもらう。ラップパートが欲しい場合、その旨も書く&lt;/li&gt;
&lt;li&gt;&lt;a href="https://suno.com/" target="_blank" rel="noreferrer"&gt;suno&lt;/a&gt;に歌詞とプロンプトを渡し作曲してもらう。この際、曲調を変えるため以下のように基本プロンプトのの使い分けをした&lt;/li&gt;
&lt;li&gt;この基本プロンプトに5人組のガールズグループであることや、それぞれの楽曲の追加イメージ（この楽器を使うなどもいける）を伝えるテキストを加える&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;求めるスタイル&lt;/th&gt;
 &lt;th&gt;プロンプト例&lt;/th&gt;
 &lt;th&gt;イメージ&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ガールクラッシュ系&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Girl Crush K-Pop, EDM hybrid, confident female vocals, powerful rap verse, heavy bass drop&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;BLACKPINKや(G)I-DLEのような、強さのあるダンス曲。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;キュート/バブルガム系&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Bubblegum K-Pop, bright synth-pop, high-pitched vocal harmonies, cute and bouncy rhythm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;TWICEやRed Velvet (Red side)のような、明るく楽しい曲。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;フューチャリスティック/クール系&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Futuristic K-Pop, synthwave, dreamy atmosphere, sleek female vocals, deep pulsing bass&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;aespaやLE SSERAFIMのような、未来的なコンセプトの曲。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;R&amp;amp;B/グルーヴィー系&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;K-Pop R&amp;amp;B, groovy bassline, smooth female vocals, chill vibe, light hip-hop elements&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;NewJeansやRed Velvet (Velvet side)のような、洗練されたR&amp;amp;B。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;何曲か作っていると、似たような構成の曲が生成される確率が高くなってきたので、画面上部の&lt;code&gt;Custom&lt;/code&gt;をクリックして、&lt;code&gt;Advanced Option&lt;/code&gt;の&lt;code&gt;Weirdness&lt;/code&gt;と&lt;code&gt;Style Infuluence&lt;/code&gt;を調整しながら生成。1〜2曲を試しに作ってみるだけなら簡単だが、今回のように同じアーティストの複数楽曲を作るのは難しい。&lt;/p&gt;
&lt;p&gt;ただ、アタマの中に明確に楽曲のイメージがあれば、それに合わせてプロンプトを個別に書けば良いのだろうが、今回は基本のプロンプト＋αでsunoのランダム性に期待したため、そうなった可能性が高い。&lt;/p&gt;
&lt;p&gt;一応、それなりにバリエーションに富んだ楽曲になったんじゃないだろうか。ここから聴けますので、よろしければ。&lt;/p&gt;
&lt;iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/soundcloud%253Aplaylists%253A2110450712&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true"&gt;&lt;/iframe&gt;&lt;div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"&gt;&lt;a href="https://soundcloud.com/htakeuch" title="htakeuchi" target="_blank" style="color: #cccccc; text-decoration: none;"&gt;htakeuchi&lt;/a&gt; · &lt;a href="https://soundcloud.com/htakeuch/sets/unbreakable" title="Unbreakable" target="_blank" style="color: #cccccc; text-decoration: none;"&gt;Unbreakable&lt;/a&gt;&lt;/div&gt;</description></item><item><title>日付キーワードからフォーマットされた日付テキストを生成するAlfred Workflow</title><link>https://namaraii.com/posts/20251107-alfred-dateconverter/</link><pubDate>Fri, 07 Nov 2025 09:25:15 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20251107-alfred-dateconverter/</guid><description>&lt;p&gt;&lt;a href="https://azookey.com/" target="_blank" rel="noreferrer"&gt;azooKey&lt;/a&gt;という高精度なニューラルかな漢字変換エンジンをサポートしたiOS用キーボードアプリの&lt;a href="https://github.com/azooKey/azooKey-Desktop" target="_blank" rel="noreferrer"&gt;macOS版&lt;/a&gt;を試している。&lt;/p&gt;
&lt;p&gt;ライブ変換もサポートしていて、標準のIMEより変換精度が高くて素晴らしい。問題なく常用できそうな感じ。&lt;/p&gt;
&lt;p&gt;ただ、いくつかのIMEでサポートしている「きょう」で本日の日付に変換する機能がないんですよね。これはＸでも話題になっていて、以下のような改善策も見つけました。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://scrapbox.io/terfno/azooKey-Desktop_%E3%81%A7%E6%97%A5%E4%BB%98%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B" target="_blank" rel="noreferrer"&gt;azooKey-Desktop で日付を入力する - terfnoのScrapbox&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;しかし、個人的には「昨日」や「明日」「先週の金曜日」などの日付を得たいケースが多く、ChatGPTで&lt;a href="https://namaraii.com/posts/alfred/" &gt;Alfred&lt;/a&gt;用のワークフローを作成した。&lt;/p&gt;

&lt;h2 class="relative group"&gt;動作イメージ
 &lt;div id="動作イメージ" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8b%95%e4%bd%9c%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;ワークフローを起動して、キーワードを入力すると対応するものがサジェストされる。
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="554"
 height="220"
 src="https://namaraii.com/images/20251107-alfred-dateconverter-001.png"
 srcset="https://namaraii.com/images/20251107-alfred-dateconverter-001.png 800w, https://namaraii.com/images/20251107-alfred-dateconverter-001.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20251107-alfred-dateconverter-001.png"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;キーワードを決定すると､複数の日付フォーマットを選択できる。
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="558"
 height="261"
 src="https://namaraii.com/images/20251107-alfred-dateconverter-002.png"
 srcset="https://namaraii.com/images/20251107-alfred-dateconverter-002.png 800w, https://namaraii.com/images/20251107-alfred-dateconverter-002.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20251107-alfred-dateconverter-002.png"&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h2 class="relative group"&gt;対応キーワード
 &lt;div id="対応キーワード" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%af%be%e5%bf%9c%e3%82%ad%e3%83%bc%e3%83%af%e3%83%bc%e3%83%89" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;today&lt;/code&gt;：今日&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yesterday&lt;/code&gt;：昨日&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tomorrow&lt;/code&gt;：明日&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dayaftertomorrow&lt;/code&gt;（略：&lt;code&gt;dat&lt;/code&gt;）：明後日&lt;/li&gt;
&lt;li&gt;&lt;code&gt;daybeforeyesterday&lt;/code&gt;（略：&lt;code&gt;dby&lt;/code&gt;）：一昨日&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mon&lt;/code&gt; / &lt;code&gt;tue&lt;/code&gt; / &lt;code&gt;wed&lt;/code&gt; / &lt;code&gt;thu&lt;/code&gt; / &lt;code&gt;fri&lt;/code&gt; / &lt;code&gt;sat&lt;/code&gt; / &lt;code&gt;sun&lt;/code&gt;：各曜日
&lt;ul&gt;
&lt;li&gt;曜日を入力した場合は 「直近の過去の同曜日」「次に来る同曜日」を候補に表示&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;出力フォーマット
 &lt;div id="出力フォーマット" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%87%ba%e5%8a%9b%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%83%e3%83%88" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ISO形式&lt;/strong&gt;：&lt;code&gt;YYYY-MM-DD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ISO + 曜日&lt;/strong&gt;：&lt;code&gt;YYYY-MM-DD(Fri)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日本語形式&lt;/strong&gt;：&lt;code&gt;YYYY年M月D日(金)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;和暦形式（令和）&lt;/strong&gt;：&lt;code&gt;令和X年M月D日(金)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;ダウンロード
 &lt;div id="ダウンロード" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;作成したワークフローを置いておきます。Alfred 5.7で動作確認しました。&lt;/p&gt;</description></item><item><title>フォトギャラリーサイトを立てた</title><link>https://namaraii.com/posts/20251003-photo-gallery/</link><pubDate>Fri, 03 Oct 2025 09:01:47 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20251003-photo-gallery/</guid><description>&lt;p&gt;いままでに撮ってきた写真をまとめたいと思い&lt;a href="https://github.com/nicokaiser/hugo-theme-gallery?utm_source=chatgpt.com" target="_blank" rel="noreferrer"&gt;nicokaiser/hugo-theme-gallery: Gallery Theme for Hugo&lt;/a&gt;という､フォトギャラリー向けHugoのテーマを使ってフォトギャラリーサイトを立てた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://photos.namaraii.com/" target="_blank" rel="noreferrer"&gt;TAKEUCHI Hitoshi - Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://gyazo.com/c0b9b81350e95cdbccd0f9d5b16623bf" target="_blank" rel="noreferrer"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Image from Gyazo"
 width="1339"
 height="1389"
 src="https://namaraii.com/images/20251003-photo-gallery-remote-001_hu_9933f4364e893e0b.jpg"
 srcset="https://namaraii.com/images/20251003-photo-gallery-remote-001_hu_9933f4364e893e0b.jpg 800w, https://namaraii.com/images/20251003-photo-gallery-remote-001_hu_8176f2bfbf85f69d.jpg 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20251003-photo-gallery-remote-001.jpg"&gt;&lt;/figure&gt;
&lt;/a&gt;
Hugoの運用に慣れていれば使い方は簡単で､ただ写真を表示したいだけならフォルダへ写真をコピーするだけで良い。&lt;/p&gt;
&lt;p&gt;写真に説明文を付けたい場合は､写真があるフォルダのindex.mdに書くか､Exifのタイトルを設定すればOK&lt;/p&gt;
&lt;p&gt;themes/gallery/exampleSite配下のサンプルを見れば雰囲気はわかると思う。&lt;/p&gt;
&lt;p&gt;git pushすれば公開するGitHub Actionsを書いたので､簡単に公開できるようになったし､これからは撮りっぱなしにせず､ここへ少しずつまとめていきたい。&lt;/p&gt;
&lt;p&gt;むかし撮った写真をあらためて眺めていると､その時の記憶がよみがえってきて楽しいですね。&lt;/p&gt;</description></item><item><title>Garminの睡眠スコアと体感のギャップ</title><link>https://namaraii.com/posts/20250904-garmin-sleep-index/</link><pubDate>Thu, 04 Sep 2025 15:10:16 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20250904-garmin-sleep-index/</guid><description>&lt;p&gt;以前「&lt;a href="https://namaraii.com/posts/20231014/" &gt;Garminの睡眠スコアは体感に近い&lt;/a&gt;」というノートを書いたが、あれから継続して計測している中で、やはり体感とは異なる数値になることがでてきたので、理由と改善方法をChatGPTに聞き､ポイントをまとめた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;そもそも計測値は心拍数変動､動きから算出した&lt;strong&gt;推定値&lt;/strong&gt;である&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;夜中に一度目が覚めたことを強く覚えていると「よく眠れなかった」と感じやすく､体感自体にバイアス&lt;/strong&gt;がかかっている可能性がある&lt;/li&gt;
&lt;li&gt;体感とギャップを小さくするためGarminの測定値に加え､&lt;strong&gt;主観データと生活要因を2〜3週間記録&lt;/strong&gt;し､関連性の確認と自分なりの解釈ルールを作るのが良い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下はChatGPTの回答です。&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;計測方法の限界
 &lt;div id="計測方法の限界" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%a8%88%e6%b8%ac%e6%96%b9%e6%b3%95%e3%81%ae%e9%99%90%e7%95%8c" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Garminのアルゴリズムは主に心拍数変動、動き（加速度計）、血中酸素濃度（対応機種の場合）などのデータから推定しています。&lt;/li&gt;
&lt;li&gt;ただし、脳波を直接測定しているわけではないため、「レム睡眠」「深い睡眠」などの判定はあくまで推定です。&lt;/li&gt;
&lt;li&gt;そのため、体感とズレるケースが起きやすくなります。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;体感の主観性
 &lt;div id="体感の主観性" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%93%e6%84%9f%e3%81%ae%e4%b8%bb%e8%a6%b3%e6%80%a7" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;睡眠の満足感は心理的要因や日中のストレスに大きく左右されます。&lt;/li&gt;
&lt;li&gt;たとえば、夜中に一度目が覚めたことを強く覚えていると「よく眠れなかった」と感じやすいですが、客観的には深い睡眠が十分に取れていた可能性もあります。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;スコアの解釈
 &lt;div id="スコアの解釈" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%b9%e3%82%b3%e3%82%a2%e3%81%ae%e8%a7%a3%e9%87%88" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Garminの「睡眠スコア」は参考指標にすぎず、必ずしもその日の「体調」を直接示すものではありません。&lt;/li&gt;
&lt;li&gt;一方で、長期的なトレンドを確認するには有効です。&lt;/li&gt;
&lt;li&gt;例：スコアが数日間連続して低下 → 睡眠の質に何らかの問題がある可能性を示唆。&lt;/li&gt;
&lt;li&gt;Garminのスコアは睡眠の「量」と「安定性」を重視する傾向があるため「深い睡眠は短くても、短時間でスッキリ」するタイプの人はスコアとズレやすいです。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;体感とのギャップを小さくするための記録方法
 &lt;div id="体感とのギャップを小さくするための記録方法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%93%e6%84%9f%e3%81%a8%e3%81%ae%e3%82%ae%e3%83%a3%e3%83%83%e3%83%97%e3%82%92%e5%b0%8f%e3%81%95%e3%81%8f%e3%81%99%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e8%a8%98%e9%8c%b2%e6%96%b9%e6%b3%95" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Garminの睡眠スコアと実際の体感のギャップを小さくするには、データと主観を一緒に記録し、因果関係や傾向を可視化することが有効です。以下のような方法をおすすめします。&lt;/p&gt;

&lt;h3 class="relative group"&gt;記録する項目
 &lt;div id="記録する項目" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%a8%98%e9%8c%b2%e3%81%99%e3%82%8b%e9%a0%85%e7%9b%ae" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;（1）Garminから得られる客観データ&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;li&gt;安静時心拍数 / HRV（心拍変動）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（2）自分の主観データ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;起床時の体感（例：5段階評価）&lt;/li&gt;
&lt;li&gt;1: 非常に疲れている&lt;/li&gt;
&lt;li&gt;3: 普通&lt;/li&gt;
&lt;li&gt;5: すっきり&lt;/li&gt;
&lt;li&gt;日中の眠気（午前／午後に分けて5段階評価）&lt;/li&gt;
&lt;li&gt;睡眠の満足度（5段階）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（3）生活要因（トリガーになりやすいもの）&lt;/p&gt;</description></item><item><title>話した内容をテキスト化しTextwellへ追記するショートカット</title><link>https://namaraii.com/posts/20250327-voice-to-textwell-shortcut/</link><pubDate>Thu, 27 Mar 2025 10:06:02 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20250327-voice-to-textwell-shortcut/</guid><description>&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;
 &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;
 &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;
&lt;/span&gt;&lt;/div&gt;
 &lt;div class="grow"&gt;
 このエントリは生成AIで書いたものです
 &lt;/div&gt;
 &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;&lt;a href="https://namaraii.com/posts/20250327-voice-to-textwell-shortcut/#%e3%82%aa%e3%83%aa%e3%82%b8%e3%83%8a%e3%83%ab%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88" &gt;このテキスト&lt;/a&gt;をClaudeでブログ用にリライトしてくださいと指示しました。&lt;/p&gt;
&lt;p&gt;「月に数百件のメモが溜まる」「入力速度はキーボード入力と比較して約3倍に」など書いてないこともシレッと入れてくるので､書き手としても読み手としても注意が必要です😅&lt;/p&gt;
&lt;p&gt;これとは別に､音声入力したテキストをClaudeに投げて構造化､Markdown化するショートカットも作っていますが､テキスト化に時間がかかり､気軽にメモをする感じではないので用途によって使い分けしています。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h1 class="relative group"&gt;iPhoneの音声入力を劇的に効率化する自作ショートカット
 &lt;div id="iphoneの音声入力を劇的に効率化する自作ショートカット" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#iphone%e3%81%ae%e9%9f%b3%e5%a3%b0%e5%85%a5%e5%8a%9b%e3%82%92%e5%8a%87%e7%9a%84%e3%81%ab%e5%8a%b9%e7%8e%87%e5%8c%96%e3%81%99%e3%82%8b%e8%87%aa%e4%bd%9c%e3%82%b7%e3%83%a7%e3%83%bc%e3%83%88%e3%82%ab%e3%83%83%e3%83%88" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;スマートフォンでの文字入力に悩まされていませんか？&lt;/p&gt;</description></item><item><title>Appleのヘルスケアデータから体重を抜き出してCSVファイルを作成する</title><link>https://namaraii.com/posts/apple_healthcare_data/</link><pubDate>Wed, 11 Dec 2024 00:00:00 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/apple_healthcare_data/</guid><description>&lt;p&gt;Appleのヘルスケアアプリのデータを使って､他のアプリでグラフを描こうと思ったが､エクスポートされるデータはXMLのため､そのままでは扱いにくい。&lt;/p&gt;
&lt;p&gt;このため､XMLファイルから体重データを抜き出してCSVを出力するRubyスクリプトを書いた。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;nokogiri&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Nokogiri&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;XML&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Reader&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;export.xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;reader&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Record&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;HKQuantityTypeIdentifierBodyMass&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;startDate&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%Y-%m-%d&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;=begin
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;Record type=&amp;#34;HKQuantityTypeIdentifierBodyMass&amp;#34; sourceName=&amp;#34;1byone Health&amp;#34; sourceVersion=&amp;#34;63&amp;#34; device=&amp;#34;&amp;amp;lt;&amp;amp;lt;HKDevice: 0x3013e9b30&amp;amp;gt;, name:iPhone, manufacturer:Apple, model:iPhone, hardware:iPhone, firmware:iPhone, software:17.5.1, localIdentifier:ja_JP, UDIDeviceIdentifier:ja_JP, creation date:2024-06-02 22:17:36 +0000&amp;amp;gt;&amp;#34; unit=&amp;#34;kg&amp;#34; creationDate=&amp;#34;2024-06-17 07:17:17 +0900&amp;#34; startDate=&amp;#34;2024-06-17 07:17:17 +0900&amp;#34; endDate=&amp;#34;2024-06-17 07:17:17 +0900&amp;#34; value=&amp;#34;71.9&amp;#34;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;=end&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;以下､ChatGPTにヘルスケアデータの構造を聞いた回答&lt;/p&gt;
&lt;p&gt;Appleのヘルスケアアプリでエクスポートされるデータは、&lt;strong&gt;XML (Extensible Markup Language)&lt;/strong&gt; フォーマットで提供されます。このフォーマットは、ヘルスデータを構造化して格納するための標準的な形式です。&lt;/p&gt;

&lt;h3 class="relative group"&gt;データの構造と内容
 &lt;div id="データの構造と内容" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e6%a7%8b%e9%80%a0%e3%81%a8%e5%86%85%e5%ae%b9" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;XMLヘッダー&lt;/strong&gt; エクスポートされたファイルは、XMLヘッダーから始まります。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;全体のルート要素&lt;/strong&gt; データ全体は &lt;code&gt;&amp;lt;HealthData&amp;gt;&lt;/code&gt; というルート要素でラップされています。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;HealthData&lt;/span&gt; &lt;span class="na"&gt;locale=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;en_US&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/HealthData&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;データの各エントリー&lt;/strong&gt; ヘルスケアのデータは、それぞれの記録を &lt;code&gt;&amp;lt;Record&amp;gt;&lt;/code&gt; 要素として格納します。主な属性は以下の通りです：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;type&lt;/strong&gt;: データの種類（例: 歩数、心拍数など）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sourceName&lt;/strong&gt;: データのソース名（iPhone、Apple Watchなど）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sourceVersion&lt;/strong&gt;: ソースのバージョン情報。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;unit&lt;/strong&gt;: データの単位（例: &lt;code&gt;count&lt;/code&gt;, &lt;code&gt;bpm&lt;/code&gt;, &lt;code&gt;kcal&lt;/code&gt; など）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;creationDate&lt;/strong&gt;: データが作成された日時。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;startDate&lt;/strong&gt;: データの開始日時（測定期間の開始）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;endDate&lt;/strong&gt;: データの終了日時（測定期間の終了）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;value&lt;/strong&gt;: データの値（例: 歩数の数値、体重の値など）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例:&lt;/p&gt;</description></item><item><title>2024年シーズンJ2リーグ勝点推移</title><link>https://namaraii.com/posts/20240913-j2-2024/</link><pubDate>Fri, 13 Sep 2024 00:00:00 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20240913-j2-2024/</guid><description>&lt;p&gt;&lt;a href="https://namaraii.com/images/20240913-j2-2024-001.gif" &gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="2024シーズンJ2勝点推移"
 width="1200"
 height="800"
 src="https://namaraii.com/images/20240913-j2-2024-001_hu_d28df0703e008483.gif"
 srcset="https://namaraii.com/images/20240913-j2-2024-001_hu_d28df0703e008483.gif 800w, https://namaraii.com/images/20240913-j2-2024-001.gif 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20240913-j2-2024-001.gif"&gt;&lt;/figure&gt;
&lt;/a&gt;
30節終了時点のJ2リーグの勝点推移を横浜FC中心にグラフにしてみた。&lt;/p&gt;
&lt;p&gt;こうしてみると首位の清水と勝点差12でむかえた16節、清水に2-0で快勝したゲームが大きな転換点だったな。そこからのグラフの傾きがえげつない。&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/VLpmLrbTpfI?si=zcycfAs1XsBnwngK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;週末の甲府、次々節大分にもきっちり勝ち切って9/28に国立で清水に引導を渡したいところだな。&lt;/p&gt;
&lt;p&gt;ちなみにこのグラフは要求仕様をChatGPTに伝えてPythonのコードを生成してもらって描画した。リリースされたばかりの&lt;code&gt;o1-preview&lt;/code&gt;というモデルを使用したが、一発目からほぼ注文通りのグラフを生成できた。&lt;/p&gt;
&lt;p&gt;データソースは&lt;a href="https://data.j-league.or.jp/SFMS01/search?competition_years=2024&amp;amp;competition_frame_ids=2&amp;amp;competition_ids=590&amp;amp;tv_relay_station_name=" target="_blank" rel="noreferrer"&gt;J. League Data Site&lt;/a&gt;の試合結果で、ブラウザ上でコピーしてスクリプト中のヒアドキュメント箇所へペーストするだけ。&lt;/p&gt;
&lt;p&gt;同じようなことをやりたい人のために&lt;a href="https://gist.github.com/htakeuchi/66141da9aa52a3af454798143a75afc4" target="_blank" rel="noreferrer"&gt;スクリプトを置いときます&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Udioで架空のビジュアル系バンドの楽曲を作った</title><link>https://namaraii.com/posts/udio_crimson_veil/</link><pubDate>Fri, 16 Aug 2024 00:00:00 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/udio_crimson_veil/</guid><description>&lt;p&gt;UdioとChatGPTで1990年代っぽい架空のビジュアル系バンドの楽曲を作ってみた。&lt;/p&gt;

&lt;h2 class="relative group"&gt;ChatGPTでバンド名とビジュアルを決定
 &lt;div id="chatgptでバンド名とビジュアルを決定" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chatgpt%e3%81%a7%e3%83%90%e3%83%b3%e3%83%89%e5%90%8d%e3%81%a8%e3%83%93%e3%82%b8%e3%83%a5%e3%82%a2%e3%83%ab%e3%82%92%e6%b1%ba%e5%ae%9a" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;ChatGPTで「日本で1990年代ごろに流行ったビジュアル系バンドっぽい」バンド名とアルバムジャケットを作った。&lt;/p&gt;
&lt;p&gt;バンド名はCrimson Veil（深紅のベール）というミステリアスなものに決定。ジャケットはDALL-Eにお願いした。&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Pasted image 20240816093442"
 width="800"
 height="800"
 src="https://namaraii.com/images/udio_crimson_veil-001.webp"
 srcset="https://namaraii.com/images/udio_crimson_veil-001.webp 800w, https://namaraii.com/images/udio_crimson_veil-001.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/udio_crimson_veil-001.webp"&gt;&lt;/figure&gt;
&lt;p&gt;それっぽいぞ。&lt;/p&gt;

&lt;h2 class="relative group"&gt;ChatGPTで作詞
 &lt;div id="chatgptで作詞" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chatgpt%e3%81%a7%e4%bd%9c%e8%a9%9e" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;詞は ChatGPTに某ビジュアル系バンドの歌詞を入力し「この曲を歌うバンドの他の楽曲を作詞して」として作成。曲名はEternal Mirageで歌詞はこんな感じのものができ上がった。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;失われた希望の残像 夢の欠片を追いかける
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;瞳の奥に秘めた炎が 闇を切り裂く刃となる
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;真実を求めて彷徨う心が 答えを探し続けている
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れて今世界が 崩れ落ちてゆく中で
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;咲いていたのは my eternal flame
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れてこの運命に 縛られたままでも
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;鮮やかに燃え尽きる 炎のように
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 夢見た君には MIRAGE 届かない
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 抱きしめられない MIRAGE 愛しすぎて
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I&amp;#39;ve burned my soul.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;生まれた意味さえ知らずに ただ彷徨い続けていた
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;運命の渦に飲み込まれながら 何を信じていけばいいのか
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;始まりも終わりもないこの街に 存在するのは孤独と冷酷な現実
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;それでも光を探し求めて 自分の道を選び取る
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れて今心が 何も信じられないまま
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;咲いていたのは my eternal flame
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れてこの世界で 愛することも出来ぬまま
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;はかなく散ってゆくのか 炎なのか
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 夢見た君には MIRAGE 届かない
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 抱きしめられない MIRAGE 自分さえも
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れて今世界が 崩れ落ちてゆく中で
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;咲いていたのは my eternal flame
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;揺れて揺れてこの運命に 縛られたままでも
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;鮮やかに燃え尽きる 炎のように
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 夢見た君には MIRAGE 届かない
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MIRAGE 抱きしめられない MIRAGE 愛しすぎて
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I&amp;#39;ve burned my soul.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;Udioで作曲
 &lt;div id="udioで作曲" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#udio%e3%81%a7%e4%bd%9c%e6%9b%b2" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Udioへ歌詞とビジュアル系バンドっぽい楽曲になるよう、試行錯誤でプロンプトを作成し、最終的にこんな曲になった。&lt;/p&gt;</description></item><item><title>〰️ USB Type-Cの複雑さ</title><link>https://namaraii.com/posts/20230914/</link><pubDate>Thu, 14 Sep 2023 07:23:54 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/20230914/</guid><description>&lt;p&gt;iPhone 15でLightningからUSB Type-Cへ変更される記念？で､なんとなくしか理解していないUSB Type-Cの仕様についてまとめてみた。&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="kaos"
 width="800"
 height="800"
 src="https://namaraii.com/images/20230914-001.jpg"
 srcset="https://namaraii.com/images/20230914-001.jpg 800w, https://namaraii.com/images/20230914-001.jpg 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://namaraii.com/images/20230914-001.jpg"&gt;&lt;/figure&gt;

&lt;h2 class="relative group"&gt;USB Type-Cとは
 &lt;div id="usb-type-cとは" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#usb-type-c%e3%81%a8%e3%81%af" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;USB Type-Cは、物理的なコネクタの形状を指すものである。その背後にあるデータ転送や電力供給の仕様は、USB Type-Cの形状だけでは特定できない。&lt;/p&gt;

&lt;h2 class="relative group"&gt;USBの仕様
 &lt;div id="usbの仕様" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#usb%e3%81%ae%e4%bb%95%e6%a7%98" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;仕様&lt;/th&gt;
 &lt;th&gt;データ転送速度&lt;/th&gt;
 &lt;th&gt;注意点&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 2.0&lt;/td&gt;
 &lt;td&gt;最大480 Mbps&lt;/td&gt;
 &lt;td&gt;新しいデバイスとの互換性が必要な場合には注意が必要&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 3.2 Gen 1&lt;/td&gt;
 &lt;td&gt;最大5 Gbps&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 3.2 Gen 2&lt;/td&gt;
 &lt;td&gt;最大10 Gbps&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 3.2 Gen 2x2&lt;/td&gt;
 &lt;td&gt;最大20 Gbps&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB4&lt;/td&gt;
 &lt;td&gt;最大40 Gbps&lt;/td&gt;
 &lt;td&gt;Thunderbolt 3との互換性があるが、すべてのUSB4デバイスやケーブルがThunderbolt 3と互換性があるわけではない&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 class="relative group"&gt;USB Power Delivery (USB PD)
 &lt;div id="usb-power-delivery-usb-pd" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#usb-power-delivery-usb-pd" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;USB Type-Cコネクタを使用するデバイス間での高出力の電力供給を可能にするもので最大100W (20V@5A)の電力供給が可能。&lt;/p&gt;</description></item></channel></rss>