<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AYNiMac</title>
	<atom:link href="https://www.aynimac.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aynimac.com</link>
	<description>All You Need is Mac.</description>
	<lastBuildDate>Sun, 26 Apr 2026 09:30:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.aynimac.com/wp/wp-content/uploads/2024/12/cropped-newFavicon-32x32.png</url>
	<title>AYNiMac</title>
	<link>https://www.aynimac.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>OneTabからもっと簡単にエクスポート</title>
		<link>https://www.aynimac.com/2026/04/26/2000/</link>
					<comments>https://www.aynimac.com/2026/04/26/2000/#respond</comments>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 09:28:00 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Brave]]></category>
		<category><![CDATA[Chrome]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=2000</guid>

					<description><![CDATA[今のところまだOneTabのバックアップ機能が実装されないので、簡単にエクスポートする方法をClaudeに聞いてみた。]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.aynimac.com/2025/05/03/1271/">OneTabのデータのバックアップ</a>の続編です。</p>



<figure class="wp-block-image aligncenter size-full"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b.png"><img fetchpriority="high" decoding="async" width="821" height="507" src="https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b.png" alt="" class="wp-image-1272" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b.png 821w, https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b-300x185.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b-768x474.png 768w" sizes="(max-width: 821px) 100vw, 821px" /></a></figure>



<p>お忙しいとは思うのだが、今(v2.14)のところまだOneTabのバックアップ機能が実装されないので、簡単にエクスポートする方法を<a rel="noopener" href="https://claude.ai/login" target="_blank">Claude</a>に聞いてみた。拡張機能が表示しているページをClaudeに伝えるのはやや面倒で、ディベロッパーツールを表示してダイナミックに改変されたソースをコピーした上でhtmlとして保存し、さらに加工する必要がありました。</p>



<p>当初は以前同様にブックマークレットでの簡易出力を目指していたのですよ。しかし、やり取りしているうちにどうやらOneTab拡張機能のContent Security Policy (CSP)がブックマークレットの実行をブロックしているらしいということで、別のアプローチを取ることに。<br>Claudeさんは「ブックマークレットが使えないなら、コンソールのスニペット機能を使うのが現実的です」と語っており、ちょっと引っかかるけど「現実的です」の説得力の前に俺は屈したのであった。</p>



<p>「コンソールのスニペット機能」とはディベロッパーツールにある小コード実行機能のこと。ディベロッパーツール（<kbd>Cmd</kbd> + <kbd>Opt</kbd> + <kbd>I</kbd>または<kbd>F12</kbd>）＞Sources＞Snippetsで表示される。「+ New Snippet」から新規登録し、右クリックからRunで実行できる。</p>



<p>出来上がったソースコードの公開に問題ないか聞いてみたら</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>全く問題ありません。今回のコードは：<br>・<strong>一般的なWeb標準API</strong>（querySelector、Blob、execCommand など）を使っているだけで、特定のサービスに依存していない<br>・<strong>著作権上の懸念もない</strong>シンプルな実用コードで、このレベルのコードは世界中で広く書かれているもの<br>・<strong>個人情報や機密情報を含まない</strong><br>ので、GitHubやブログなどどこで公開しても問題ありません。</p>
</blockquote>



<p>ということでした。なので公開します。<br>以下がClaudeの最終回答の引用です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>最終的なスニペットをまとめておきます：</p>



<p>javascript</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#575279;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#faf4ed"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#575279;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>let ta2 = document.querySelector('textarea');
let text = ta2.value.trim();

let now = new Date();
let yyyy = now.getFullYear();
let mm = String(now.getMonth() + 1).padStart(2, '0');
let dd = String(now.getDate()).padStart(2, '0');
let filename = 'oneTab_' + yyyy + mm + dd + '.txt';

let blob = new Blob(&#91;text&#93;, {type: 'text/plain'});
let a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = filename;
a.click();

alert(filename + ' を保存しました！');</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed" tabindex="0"><code><span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">ta2</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">document</span><span style="color: #286983">.</span><span style="color: #D7827E">querySelector</span><span style="color: #575279">(</span><span style="color: #EA9D34">&#39;textarea&#39;</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">text</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">ta2</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">value</span><span style="color: #286983">.</span><span style="color: #D7827E">trim</span><span style="color: #575279">()</span><span style="color: #797593">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">now</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #286983">new</span><span style="color: #575279"> </span><span style="color: #D7827E">Date</span><span style="color: #575279">()</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">yyyy</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">now</span><span style="color: #286983">.</span><span style="color: #D7827E">getFullYear</span><span style="color: #575279">()</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">mm</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #D7827E">String</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">now</span><span style="color: #286983">.</span><span style="color: #D7827E">getMonth</span><span style="color: #575279">() </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #D7827E">1</span><span style="color: #575279">)</span><span style="color: #286983">.</span><span style="color: #D7827E">padStart</span><span style="color: #575279">(</span><span style="color: #D7827E">2</span><span style="color: #797593">,</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39;0&#39;</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">dd</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #D7827E">String</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">now</span><span style="color: #286983">.</span><span style="color: #D7827E">getDate</span><span style="color: #575279">())</span><span style="color: #286983">.</span><span style="color: #D7827E">padStart</span><span style="color: #575279">(</span><span style="color: #D7827E">2</span><span style="color: #797593">,</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39;0&#39;</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">filename</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39;oneTab_&#39;</span><span style="color: #575279"> </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">yyyy</span><span style="color: #575279"> </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">mm</span><span style="color: #575279"> </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">dd</span><span style="color: #575279"> </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39;.txt&#39;</span><span style="color: #797593">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">blob</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #286983">new</span><span style="color: #575279"> </span><span style="color: #D7827E">Blob</span><span style="color: #575279">(&#91;</span><span style="color: #575279; font-style: italic">text</span><span style="color: #575279">&#93;</span><span style="color: #797593">,</span><span style="color: #575279"> </span><span style="color: #797593">{</span><span style="color: #575279">type</span><span style="color: #797593">:</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39;text/plain&#39;</span><span style="color: #797593">}</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #286983">let</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">a</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">document</span><span style="color: #286983">.</span><span style="color: #D7827E">createElement</span><span style="color: #575279">(</span><span style="color: #EA9D34">&#39;a&#39;</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">href</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">URL</span><span style="color: #286983">.</span><span style="color: #D7827E">createObjectURL</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">blob</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">download</span><span style="color: #575279"> </span><span style="color: #286983">=</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">filename</span><span style="color: #797593">;</span></span>
<span class="line"><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #D7827E">click</span><span style="color: #575279">()</span><span style="color: #797593">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D7827E">alert</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">filename</span><span style="color: #575279"> </span><span style="color: #286983">+</span><span style="color: #575279"> </span><span style="color: #EA9D34">&#39; を保存しました！&#39;</span><span style="color: #575279">)</span><span style="color: #797593">;</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#faf4ed;color:#625c88;font-size:12px;line-height:1;position:relative">JavaScript</span></div>



<p><strong>次回からの手順：</strong></p>



<ol class="wp-block-list">
<li>OneTabのエクスポートページを開く</li>



<li>F12 → Sources → Snippets</li>



<li>スニペットを右クリック → Run</li>
</ol>



<p>また何かあればお気軽にどうぞ！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>以上、引用です。<br>ここに書かれたJavascriptコードをディベロッパーツール＞Sources＞Snippetsで新規登録したらいいよ、ということですね。</p>



<p>変数名が「ta2」になってるのが気になりますが、「ta」はどっかで使用済みで使えませんので注意。<br>また、ディベロッパーツールのスニペットの、より簡易的な実行方法については<a rel="noopener" href="https://laboradian.com/run-snippet-on-devtools/" target="_blank">DevTools の snippet をキーボード操作のみで実行する – ラボラジアン</a>という記事もありました。Macでのキーボードショートカットを書いておきます。</p>



<ol class="wp-block-list">
<li><kbd>Cmd</kbd> + <kbd>Opt</kbd> + <kbd>I</kbd>または<kbd>F12</kbd>でディベロッパーツールを開く</li>



<li>ディベロッパーツールにフォーカスのある状態で<kbd>Cmd</kbd> + <kbd>O</kbd> でコマンドメニューを開く</li>



<li><kbd>!</kbd>を入力、作成済みsnippetが表示される</li>



<li>目的のものを選択し、<kbd>Enter</kbd>キーを押下</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aynimac.com/2026/04/26/2000/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>なんてバグだ…</title>
		<link>https://www.aynimac.com/2026/04/12/1990/</link>
					<comments>https://www.aynimac.com/2026/04/12/1990/#respond</comments>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 07:46:23 +0000</pubDate>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[macOS]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1990</guid>

					<description><![CDATA[「すべてのMacに49.7日バグ—長期稼働でTCP接続不能になる脆弱性が発覚 &#8211; TechFeed」によると、macOSは起動から49.7日経つと新たなTCP接続ができなくなるバグがあるらしい。ずーっと以前か [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="985" height="680" src="https://www.aynimac.com/wp/wp-content/uploads/2026/04/err_and_bug.png" alt="" class="wp-image-1991" style="aspect-ratio:1.4485490259477811;width:650px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2026/04/err_and_bug.png 985w, https://www.aynimac.com/wp/wp-content/uploads/2026/04/err_and_bug-300x207.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2026/04/err_and_bug-768x530.png 768w" sizes="(max-width: 985px) 100vw, 985px" /></figure>



<p>「<a rel="noopener" href="https://techfeed.io/entries/69d8131c3a9f4a0e4f11b0aa" target="_blank" title="タイトルに「下書き」って入ってるのが謎だ">すべてのMacに49.7日バグ—長期稼働でTCP接続不能になる脆弱性が発覚 &#8211; TechFeed</a>」によると、macOSは起動から49.7日経つと新たなTCP接続ができなくなるバグがあるらしい。ずーっと以前からあるらしい。</p>



<p>俺はMacを基本的に電源を入れたまま使っている。使用していないときはスリープさせているのだ。その場合でも当然この問題は起きるだろう。50日を超えて起動し続けたことはあったはずで、確かに最後は調子が悪くなって再起動していたこともあったと思う。OSのアップデートや何かインストールして再起動したことも少なくないが、影響を受けた可能性はある。</p>



<p>それにしても、この問題が誰にも見つからず長期にわたって放置されていたことも興味深い。Windowsでは25年以上前に同様のバグの修正が行われたということだが、そのときにAppleは「もしかして…」とか思わなかったのだろうか？<br>iOSは大丈夫なんか？</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aynimac.com/2026/04/12/1990/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PopClipバージョンアップ＆ライセンスを移行</title>
		<link>https://www.aynimac.com/2026/01/25/1574/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 02:03:57 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[PopClip]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1574</guid>

					<description><![CDATA[先日、偶然PopClipをMac App Store版から公式サイト版へ移行する方法との記事を拝見して初めてApp Storeから撤退していたことを知りました。 大変便利に使わせてもらっているPopClip、ここのところ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>先日、偶然<a title="PopClipをMac App Store版から公式サイト版へ移行する方法｜Welkomiger" href="https://note.com/welkomiger/n/n133986ea85a2">PopClipをMac App Store版から公式サイト版へ移行する方法</a>との記事を拝見して初めてApp Storeから撤退していたことを知りました。 大変便利に使わせてもらっている<a href="https://www.popclip.app/">PopClip</a>、ここのところバージョンアップがないなぁとは思っていたものの、まさか撤退していたとは知りませんでした。</p>



<p>で、<a title="PopClipをMac App Store版から公式サイト版へ移行する方法｜Welkomiger" href="https://note.com/welkomiger/n/n133986ea85a2">PopClipをMac App Store版から公式サイト版へ移行する方法</a>に書かれた通りの手順で問題なく移行完了しました。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" width="1024" height="1000" src="https://www.aynimac.com/wp/wp-content/uploads/2026/01/popclip_new-1024x1000.png" alt="" class="wp-image-1575" style="width:702px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2026/01/popclip_new-1024x1000.png 1024w, https://www.aynimac.com/wp/wp-content/uploads/2026/01/popclip_new-300x293.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2026/01/popclip_new-768x750.png 768w, https://www.aynimac.com/wp/wp-content/uploads/2026/01/popclip_new.png 1104w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ライセンスの詳細を見てみると、購入したのは2014年の9月でした。ずいぶん長いことお世話になってます。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>macOS「Dockから戻すときのChrome系の『残像』問題」、いつの間にか解消</title>
		<link>https://www.aynimac.com/2025/12/30/1552/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 03:16:00 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Brave]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Dock]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1552</guid>

					<description><![CDATA[まず、「Dockから戻すときのChrome系の『残像』問題」とは何か。俺の環境で、ChromeやBraveなどのいわゆる「Chrome系（Chromium嫡流）」のWebブラウザアプリで起きていたものです。何度か検索して [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large is-resized"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock.jpg"><img loading="lazy" decoding="async" width="1024" height="676" src="https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock-1024x676.jpg" alt="" class="wp-image-1553" style="width:680px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock-1024x676.jpg 1024w, https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock-300x198.jpg 300w, https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock-768x507.jpg 768w, https://www.aynimac.com/wp/wp-content/uploads/2025/12/brave_in_dock.jpg 1296w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>まず、「Dockから戻すときのChrome系の『残像』問題」とは何か。俺の環境で、ChromeやBraveなどのいわゆる「Chrome系（Chromium嫡流）」のWebブラウザアプリで起きていたものです。何度か検索してみたけれど、検索方法が悪いせいか全くヒットしなかったのです。Braveで再現する手順は以下の通り（だが、後述する通り最新環境では直っている）。</p>



<ol class="wp-block-list">
<li>Brave起動</li>



<li>メインウインドウの最小化ボタンを押下してDockに格納</li>



<li>Dockのアプリアイコンをクリックする</li>



<li>一瞬、元のウインドウが表示される</li>



<li>逆ジニーエフェクトでウインドウが拡大表示される</li>
</ol>



<p>この流れの中の「4.」が問題の「残像」と表現しているものです。これが非常にうざくて嫌いだったんです。が、アプリアイコンでなく右方のウインドウアイコンをクリックすると残像は表示されません。なので意識してウインドウアイコンをクリックするようにしてました。<br>あと、Dockへ格納後別アプリを全面に持ってくるとかも試しましたが効果はありませんでした。<br>発生環境としては以下のものです。</p>



<ul class="wp-block-list">
<li>iMac 2021 (M1)</li>



<li>macOS: Big Sur &#8211; Tahoe（だと思われるが、後述の通りで詳細不明）</li>



<li>発生するアプリ: Chrome、BraveなどChromiumの子孫</li>
</ul>



<p>最初この問題に気づいたのは今使ってるiMac（2021, M1）を使い始めた時です。だからmacOSはBig SurかMontereyだったはず。すぐにVenturaにアップデートしてしまったので、自分が確認した時の最初のOSバージョンも曖昧になってしまいました。また、俺が知らないだけで昔から起きていたのかもしれません。確実なのはVenturaでは発生していたということです。その後、Sonomaでも改善されていなかったはず。怪しいのはSequoiaの後期とTahoeだなー。<br>直っていたのに気づいたのは、今年の11/18。Tahoe 26.1がリリースされた直後なのでここで直った説が最も有力ですが、26.0や下手するとSequoiaの最後の方でもう直ってたかもしれません。あるいは実はChrome側の問題だったのかもしれません。前述の通りもっぱらアプリアイコンでの拡大を多用してたので気づけなかったのです。</p>



<p>ブラウザ側の問題なのかOSの問題なのか時間が取れたらじっくり調査するつもりだったのですが、あっという間に数年が経過、気づいてたら直ってたという次第です…。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>STOP THE NEW-KINDLE</title>
		<link>https://www.aynimac.com/2025/08/24/1483/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 24 Aug 2025 12:12:30 +0000</pubDate>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[身辺雑記]]></category>
		<category><![CDATA[Kindle]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1483</guid>

					<description><![CDATA[AmazonのKindleを利用しています。ハードとしてのKindle（Kindle WhitePaper）は最近はほぼ使ってないけれど、電子書籍の購入先としてはAmazon一択でソフトとしてのKindle（Kindle [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-full is-resized"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/08/icon__install.png"><img loading="lazy" decoding="async" width="256" height="256" src="https://www.aynimac.com/wp/wp-content/uploads/2025/08/icon__install.png" alt="" class="wp-image-1484" style="width:308px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/08/icon__install.png 256w, https://www.aynimac.com/wp/wp-content/uploads/2025/08/icon__install-150x150.png 150w" sizes="(max-width: 256px) 100vw, 256px" /></a></figure>



<p>AmazonのKindleを利用しています。ハードとしてのKindle（Kindle WhitePaper）は最近はほぼ使ってないけれど、電子書籍の購入先としてはAmazon一択でソフトとしてのKindle（Kindle本）にまみれているのです。だからタイトルの「KINDLE」はKindle本の意味だってわけだ。…わけです。<br>ま、能書きゃいいかな。</p>



<p>Kindle本を読むにはKindleアプリかブラウザ版のKindleを使っています。この機能は読むことについては別に問題はないかと思うんですがフィルタリングとかしょぼくて、結果として大量の「積読（つんどく）」が発生してますわ。買って安心してしまってそのまま放置しているKindle本が少なくないってことですわ。Kindle積読問題、バカにできません。リアル本の場合にはその辺に文字通り積んであるので更なる購入の抑止力になってたんですが、Kindleの場合はさっき書いたようにフィルタリングなどの関係で見えづらいですからねー。<br>しかもAmazonを見に行くたびに「期間限定キャンペーン」とか購入冊数に応じて割引率が上がるセールをやってて毎回5冊8冊うかうかと購入させられたりして、我ながらアホだと思うんです。なんとかしないといけません。Amazonの商品ページで購入済みだと記載があるのでダブって買うことは無くなったのは良かったんですけど。</p>



<p>とりあえずは新たなKindle本購入は少し見合わせないとなぁ、と思ってます。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>macOS アプリ／ファイルのアイコン画像を取得する</title>
		<link>https://www.aynimac.com/2025/07/06/1399/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 06 Jul 2025 08:44:12 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1399</guid>

					<description><![CDATA[昔はファイルやアプリのアイコンを画像として保存できる自作アプリを使っていたけれど、その自作アプリもいつの間にか使えなくなってどこかへ行ってしまいました。Finderの「情報を見る」から毎回コピーするのもどうかと思うのでそ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>昔はファイルやアプリのアイコンを画像として保存できる自作アプリを使っていたけれど、その自作アプリもいつの間にか使えなくなってどこかへ行ってしまいました。Finderの「情報を見る」から毎回コピーするのもどうかと思うのでそのためのアプリを探します。</p>



<p>「<a href="https://kenchan0130.github.io/post/2020-11-04-1" title="macOSアプリケーションのアイコンを取得する">macOSアプリケーションのアイコンを取得する</a>」経由で<a href="https://github.com/SAP/macOS-icon-generator" title="GitHub - SAP/macOS-icon-generator: Icons for macOS is the easiest way to create customized app icons in PNG format for your company’s internal app store. No graphic skills needed.">icons.app</a>を知り、ゲット。Apacheライセンスですね。2.2.0が最新です。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a href="https://github.com/SAP/macOS-icon-generator"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.aynimac.com/wp/wp-content/uploads/2025/07/icons_icon.png" alt="" class="wp-image-1400" style="width:452px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/07/icons_icon.png 1024w, https://www.aynimac.com/wp/wp-content/uploads/2025/07/icons_icon-300x300.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2025/07/icons_icon-150x150.png 150w, https://www.aynimac.com/wp/wp-content/uploads/2025/07/icons_icon-768x768.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>本来はアプリのアイコンを取得したりそれに簡単なバナーをつけたりするためのソフトです。ですので、アプリでないファイルからのアイコン取得はできません。つまり、例えばテキストファイルのアイコンを取得しようとしてもできないということです。そこは残念ですけど、とりあえずはFinder「情報を見る」併用で何とかなるかな。</p>



<p>実は「<a href="https://github.com/gcrevell/IconExporter" title="GitHub - gcrevell/IconExporter: Icon exporter brings ease to creating image assets and icons for iOS and Mac apps">Icon Exporter</a>」（昔の自作アプリと同名）というツールも見つけたんですが、これもアプリ専用でした。9年前のものですし、こちらは見送りました。</p>



<p>あと、こちらもアプリアイコン取得専用ですが「<a href="https://mixturescape.jp/tools/getAppsData.html">iPhone&amp;Macアプリ アイコン取得ツール | MixtureScape</a>」というオンラインツールもありました。アプリ名からURLを取得して…という手間はありますが持ってないアプリのアイコンを取得できるのは良さげです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nintendo Switch2が「2」</title>
		<link>https://www.aynimac.com/2025/06/15/1355/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sun, 15 Jun 2025 09:02:50 +0000</pubDate>
				<category><![CDATA[世間の話題]]></category>
		<category><![CDATA[身辺雑記]]></category>
		<category><![CDATA[Switch2]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1355</guid>

					<description><![CDATA[昨日ツマがドンキ系ショップのアピタの販売抽選でNintendo Switch2をゲット！ ホントは数日前に当たってたらしいけど通知を見逃してて電話が来たらしい。当選なんてツいてるね！とか言ってたんだけど実は俺も買ってたん [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large is-resized"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2.jpg"><img loading="lazy" decoding="async" width="861" height="1024" src="https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2-861x1024.jpg" alt="" class="wp-image-1356" style="width:578px;height:auto" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2-861x1024.jpg 861w, https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2-252x300.jpg 252w, https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2-768x913.jpg 768w, https://www.aynimac.com/wp/wp-content/uploads/2025/06/ns2.jpg 1170w" sizes="(max-width: 861px) 100vw, 861px" /></a><figcaption class="wp-element-caption">これはツマが入手したもの</figcaption></figure>



<p>昨日ツマがドンキ系ショップのアピタの販売抽選でNintendo Switch2をゲット！ ホントは数日前に当たってたらしいけど通知を見逃してて電話が来たらしい。当選なんてツいてるね！とか言ってたんだけど実は俺も買ってたんだよね。当たりっこないと思って某通販サイトで1.5万円くらい高いやつを。でも発送通知がなかなか来ないのでキャンセルすればいいかと軽く考えてたらいきなり昨晩になって「発送しました」で今日到着。サプライズのつもりで注文当初から家族には言ってなかったし1.5万円くらい高いこともあって今更言い出せず困ってる。</p>



<p>子供達にさりげなく欲しそうな友人とかがいるのか聞いてみると、みんな当たりっこないからと諦めてるらしい。まぁ表面上はそうなるのか。</p>



<p>中学生以下が二人いるので需要がないわけじゃないけど出費の面でイタイですわ。しかも両方ともマリオカートワールドセットと言うね。あちこちでエントリーしてたから「ダブったりして」とか冗談では言ってたんだよねー。本当になるとは。</p>



<p>ツマに激怒されそうで怖いです…。&#x1f631;<br>明日会社行けるかな。</p>



<p><strong>2025-07-06T17:45:23+09:00 追記</strong>: 結局両方とも無事に(?)子供達が使うこととなりました。同じアカウントで2台を使うことにしたので片方のマリオカートはダウンロードできず、全くもってもったいないことになってます。同一アカウントではダウンロード版ソフトはふたつゲットできないんですね。<br>ちなみにツマには激怒されることはなくちゃんと会社に行けました…。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clipyの「ログイン項目が追加されました」を退治する</title>
		<link>https://www.aynimac.com/2025/06/08/1338/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 23:58:44 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Clipy]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1338</guid>

					<description><![CDATA[2025.12.30 追記: Tahoeで起動しなくなった？ため、いまはRaycastのsnippet機能を使用しています。以上追記 Macを使い終わる時にはスリープさせているのでほとんど再起動はしないのだけれど、ごくた [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>2025.12.30 追記</strong>: Tahoeで起動しなくなった？ため、いまはRaycastのsnippet機能を使用しています。以上追記</p>



<p>Macを使い終わる時にはスリープさせているのでほとんど再起動はしないのだけれど、ごくたまに起動音を聞くことになると↓このようなメッセージも眺めるハメになる。</p>



<figure class="wp-block-image aligncenter size-full"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/06/5993e2ed7b68bae73928a7dd9a4d276f.png"><img loading="lazy" decoding="async" width="740" height="230" src="https://www.aynimac.com/wp/wp-content/uploads/2025/06/5993e2ed7b68bae73928a7dd9a4d276f.png" alt="" class="wp-image-1339" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/06/5993e2ed7b68bae73928a7dd9a4d276f.png 740w, https://www.aynimac.com/wp/wp-content/uploads/2025/06/5993e2ed7b68bae73928a7dd9a4d276f-300x93.png 300w" sizes="(max-width: 740px) 100vw, 740px" /></a></figure>



<p>ごくたまに、なので面倒だなとは思いつつ長期にわたり放置していました。Clipy、大変お世話になっています。</p>



<p>しかし先ほどふと「実はすでに対処されているのでは？」と思って<a href="https://github.com/Clipy/Clipy" title="GitHub - Clipy/Clipy: Clipboard extension app for macOS.">GitHubのClipyのページ</a>を見てみると、「<a href="https://github.com/Clipy/Clipy/pull/565">fix: A &#8220;login item added&#8221; notification appears each time</a>」ってことでプルリクも入ってます。諸々の事由により対処されていないようですね。</p>



<p>誰かがフォークしているのではないかと思って<a href="https://github.com/Clipy/Clipy/network">Network Graph</a>や<a href="https://github.com/Clipy/Clipy/forks">Forks</a>を見て、結構活発に開発継続されているのを確認。とりあえず<a href="https://github.com/harryzjm/Clipy/releases" title="Releases · harryzjm/Clipy">harryzjmさんのReleases</a>よりダウンロードしました。2023年のビルドですけど。<br>試してみたら、うまくいきました。再起動しても↑のメッセージは表示されません！<br>macOS Sequoia 15.5です。</p>



<p>このリリースについては、いくつか注意点があります。お試しになるなら、自己責任でお願いします。</p>



<ul class="wp-block-list">
<li><strong>設定画面などは英語表記になる</strong><br>日本語のリソースは削除されてました。</li>



<li><strong>以前の設定は引き継がれない？</strong><br>内部的に別アプリ扱いになっている様子があり、引き継がれていない設定があるかもしれません。クリップボード履歴は引き継がれました。</li>



<li><strong>アクセシビリティアクセス警告が出るかも</strong><br>macOS再起動時などに「&#8221;Clipy&#8221;はアクセシビリティを使用して…」とアラートが出たら、システム設定＞プライバシーとセキュリティ＞アクセシビリティと選択して、ここにあるClipyを一旦削除してから改めて追加します（クリックでClipyを選択後、下の方の「ー」「＋」ボタンを使用）。</li>



<li><strong>バージョン番号を見ると機能の追加や修正がありそう</strong>ですが、まだ詳しくチェックできてません（主機能は見る限り問題なさげ）</li>
</ul>



<p>他のフォークを探索したりするともっと幸せになれるかもですが、取り急ぎお知らせまで。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>OneTabのデータのバックアップ</title>
		<link>https://www.aynimac.com/2025/05/03/1271/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Sat, 03 May 2025 05:08:12 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Brave]]></category>
		<category><![CDATA[Chrome]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1271</guid>

					<description><![CDATA[OneTabのバックアップの手数が多いのでちょっと工夫してみました。
2026.03.01 追記あり
さらに2026.04.26追記]]></description>
										<content:encoded><![CDATA[
<p><strong>2026.04.26 追記</strong>: 続きを書きました ＞ <a href="https://www.aynimac.com/2026/04/26/2000/">OneTabからもっと簡単にエクスポート | AYNiMac</a></p>



<p><strong>2026.03.01 追記</strong>: このエントリ後半にあるスクリプトは、先月公開されたバージョン<s>2.8</s>以降では動作しなくなりました。新たなバックアップ機能について「近日公開予定」ということですので期待して待ちましょう…！</p>



<figure class="wp-block-image aligncenter size-full"><a href="https://www.aynimac.com/wp/wp-content/uploads/2025/05/4e0dfc4805a3e6e6e28182b6596ba443.png" target="_blank"><img loading="lazy" decoding="async" width="821" height="507" src="https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b.png" alt="" class="wp-image-1272" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b.png 821w, https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b-300x185.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2025/05/onetab_export_b-768x474.png 768w" sizes="(max-width: 821px) 100vw, 821px" /></a></figure>



<p>Chrome系のブラウザの拡張機能「<a title="OneTab extension for Google Chrome and Firefox - save up to 95% memory and reduce tab clutter" href="https://www.one-tab.com/">OneTab</a>」、使ってますか？<br>開いているタブを一旦閉じてOneTabが作る固定タブの1リンクとして仮保存しておけるものです。メモリも節約できるし、一時的なブックマークとしても使えます。<br>わたしはもう何年も愛用させていただいてます。これなしではもうネットサーフィン（死語）できないですわ。</p>



<p>しかし問題がないわけじゃなくて、バックアップが大変。失っても構わないものばかりという訳ではないので、万が一に備えてバックアップをとっておきたいのですがこれがちょっと手間なんです。例えば<a href="https://coteditor.com/" title="CotEditor -Text Editor for macOS">CotEditor</a>でテキストファイルとして保存する場合だと下記の手順が必要です。</p>



<ol class="wp-block-list">
<li>OneTabの固定タブを開く</li>



<li>「URLの読み込み/書き出し」リンクをクリック</li>



<li>開いたタブの「URLの書き出し」テキストエリア内をクリック</li>



<li>すべてを選択（<kbd>Cmd</kbd> + <kbd>A</kbd>）</li>



<li>選択されたテキストをコピー（<kbd>Cmd</kbd> + <kbd>C</kbd>）</li>



<li>アプリをCotEditorに切り替えて新規ドキュメントを開く</li>



<li>ペースト（<kbd>Cmd</kbd> + <kbd>V</kbd>）</li>



<li>保存（<kbd>Cmd</kbd> + <kbd>S</kbd>）</li>



<li>ファイル保存ダイアログで場所を決めファイル名を入力し保存ボタン押下</li>
</ol>



<p>毎回ファイル名入力が必要だとか手間なので開発元への要望は何年か前に出してみましたが、改善される気配はありません。お忙しいでしょうしそれは仕方ないです。<br>ということで少しでも簡単にバックアップが保存できるように、自分でできる範囲で試してみました。</p>



<ol class="wp-block-list">
<li>OneTabの固定タブを開く</li>



<li>「URLの読み込み/書き出し」リンクをクリック（ここまで通常の手順と同じ）</li>



<li>デベロッパーツールを開く（<kbd>Cmd</kbd> + <kbd>Opt</kbd> + <kbd>I</kbd>、または<kbd>F12</kbd>）</li>



<li>「Console」を開く</li>



<li>プロンプト（&gt;）の右をクリック</li>



<li>「<code>javascript:(function(){var dt=new Date,ys=dt.getFullYear(),ms=("00"+(dt.getMonth()+1)).slice(-2),ds=("00"+dt.getDate()).slice(-2),fname="oneTab_"+ys+ms+ds+".txt",te=document.getElementsByTagName("textarea");const blob=new Blob([te[1].value],{type:"text/plain"}),url=URL.createObjectURL(blob);var a=document.createElement("a");document.body.appendChild(a);a.download=fname;a.href=url;a.click();a.remove();URL.revokeObjectURL(url);})();</code>」を貼り付ける</li>



<li>エンターキーを押下</li>



<li>保存場所を決めてOKボタンを押下</li>
</ol>



<p>手数はひとつ減っただけなんですけど、保存時のファイル名が最初から入力済みなのでそこは楽です。ペーストするJavaScriptはスニペットツール（RaycastとかAlfredとかaTextとか）に登録しておけばキーボードショートカット一発でいけますしね。また、デベロッパーツールでのConsoleの選択は、次回以降も記憶されていますので切り替えるまでは再選択の必要はありません。</p>



<p>貼り付けるJavaScript、再掲しておきます。</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#575279;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#faf4ed"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#57527933" stroke="#5752794d" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#575279;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>javascript:(function(){var dt=new Date,ys=dt.getFullYear(),ms=("00"+(dt.getMonth()+1)).slice(-2),ds=("00"+dt.getDate()).slice(-2),fname="oneTab_"+ys+ms+ds+".txt",te=document.getElementsByTagName("textarea");const blob=new Blob([te&#91;1&#93;.value],{type:"text/plain"}),url=URL.createObjectURL(blob);var a=document.createElement("a");document.body.appendChild(a);a.download=fname;a.href=url;a.click();a.remove();URL.revokeObjectURL(url);})();</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed" tabindex="0"><code><span class="line"><span style="color: #D7827E">javascript</span><span style="color: #797593">:</span><span style="color: #575279">(</span><span style="color: #286983">function</span><span style="color: #797593">(){</span><span style="color: #286983">var</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">dt</span><span style="color: #286983">=new</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">Date</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">ys</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">dt</span><span style="color: #286983">.</span><span style="color: #D7827E">getFullYear</span><span style="color: #575279">()</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">ms</span><span style="color: #286983">=</span><span style="color: #575279">(</span><span style="color: #EA9D34">&quot;00&quot;</span><span style="color: #286983">+</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">dt</span><span style="color: #286983">.</span><span style="color: #D7827E">getMonth</span><span style="color: #575279">()</span><span style="color: #286983">+</span><span style="color: #D7827E">1</span><span style="color: #575279">))</span><span style="color: #286983">.</span><span style="color: #D7827E">slice</span><span style="color: #575279">(</span><span style="color: #286983">-</span><span style="color: #D7827E">2</span><span style="color: #575279">)</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">ds</span><span style="color: #286983">=</span><span style="color: #575279">(</span><span style="color: #EA9D34">&quot;00&quot;</span><span style="color: #286983">+</span><span style="color: #575279; font-style: italic">dt</span><span style="color: #286983">.</span><span style="color: #D7827E">getDate</span><span style="color: #575279">())</span><span style="color: #286983">.</span><span style="color: #D7827E">slice</span><span style="color: #575279">(</span><span style="color: #286983">-</span><span style="color: #D7827E">2</span><span style="color: #575279">)</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">fname</span><span style="color: #286983">=</span><span style="color: #EA9D34">&quot;oneTab_&quot;</span><span style="color: #286983">+</span><span style="color: #575279; font-style: italic">ys</span><span style="color: #286983">+</span><span style="color: #575279; font-style: italic">ms</span><span style="color: #286983">+</span><span style="color: #575279; font-style: italic">ds</span><span style="color: #286983">+</span><span style="color: #EA9D34">&quot;.txt&quot;</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">te</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">document</span><span style="color: #286983">.</span><span style="color: #D7827E">getElementsByTagName</span><span style="color: #575279">(</span><span style="color: #EA9D34">&quot;textarea&quot;</span><span style="color: #575279">)</span><span style="color: #797593">;</span><span style="color: #286983">const</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">blob</span><span style="color: #286983">=new</span><span style="color: #575279"> </span><span style="color: #D7827E">Blob</span><span style="color: #575279">([</span><span style="color: #575279; font-style: italic">te</span><span style="color: #575279">&#91;</span><span style="color: #D7827E">1</span><span style="color: #575279">&#93;</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">value</span><span style="color: #575279">]</span><span style="color: #797593">,{</span><span style="color: #575279">type</span><span style="color: #797593">:</span><span style="color: #EA9D34">&quot;text/plain&quot;</span><span style="color: #797593">}</span><span style="color: #575279">)</span><span style="color: #797593">,</span><span style="color: #575279; font-style: italic">url</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">URL</span><span style="color: #286983">.</span><span style="color: #D7827E">createObjectURL</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">blob</span><span style="color: #575279">)</span><span style="color: #797593">;</span><span style="color: #286983">var</span><span style="color: #575279"> </span><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">document</span><span style="color: #286983">.</span><span style="color: #D7827E">createElement</span><span style="color: #575279">(</span><span style="color: #EA9D34">&quot;a&quot;</span><span style="color: #575279">)</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">document</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">body</span><span style="color: #286983">.</span><span style="color: #D7827E">appendChild</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">a</span><span style="color: #575279">)</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">download</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">fname</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #575279; font-style: italic">href</span><span style="color: #286983">=</span><span style="color: #575279; font-style: italic">url</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #D7827E">click</span><span style="color: #575279">()</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">a</span><span style="color: #286983">.</span><span style="color: #D7827E">remove</span><span style="color: #575279">()</span><span style="color: #797593">;</span><span style="color: #575279; font-style: italic">URL</span><span style="color: #286983">.</span><span style="color: #D7827E">revokeObjectURL</span><span style="color: #575279">(</span><span style="color: #575279; font-style: italic">url</span><span style="color: #575279">)</span><span style="color: #797593">;}</span><span style="color: #575279">)()</span><span style="color: #797593">;</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#faf4ed;color:#625c88;font-size:12px;line-height:1;position:relative">JavaScript</span></div>



<p>以下のBrave（Mac版）で動作確認してます。<br><code>バージョン: 1.77.101 Chromium: 135.0.7049.115（Official Build） （arm64）</code></p>



<p>デベロッパーツールで「undefined」エラー？が軽く出てますけど自分で使うものだしいいかなとそのままにしてます。&#x1f604;</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHPをMAMPで使うならComposerは別途のインストール不要</title>
		<link>https://www.aynimac.com/2025/04/21/1251/</link>
		
		<dc:creator><![CDATA[nakamuxu (管理人)]]></dc:creator>
		<pubDate>Mon, 21 Apr 2025 13:05:09 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.aynimac.com/?p=1251</guid>

					<description><![CDATA[MacでPHP環境を作る時の話です。時系列的にはMAMPで「WebStartボタンがグレイアウトして押せない」事件発生の前後の話になります（かなり間が開いてしまったけど）。 最近のmacOSにはPHPはインストールされて [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="720" src="https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1-1024x720.png" alt="" class="wp-image-1253" srcset="https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1-1024x720.png 1024w, https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1-300x211.png 300w, https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1-768x540.png 768w, https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1-1536x1080.png 1536w, https://www.aynimac.com/wp/wp-content/uploads/2025/04/887e50f4f74457de871e5de5281e6748-1.png 1764w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>MacでPHP環境を作る時の話です。時系列的には<a title="MAMPで「WebStartボタンがグレイアウトして押せない」事件発生 | AYNiMac" href="https://www.aynimac.com/2025/01/12/1081/">MAMPで「WebStartボタンがグレイアウトして押せない」事件発生</a>の前後の話になります（かなり間が開いてしまったけど）。</p>



<p>最近のmacOSにはPHPはインストールされていなくて、Homebrewを使ってシステムへとインストールするか、<a href="https://www.mamp.info/en/mac/">MAMP</a>を使うかの二つの方法がある。今回は後者を選んでます。MAMPのインストールはインストーラをダウンロードして展開して実行します。あとは画面の指示に従っていけばインストールできるはず。</p>



<p>問題はそのあと。<br>パスを通す必要があります。Terminal.appで「php」と打ったときに実行ファイルを起動させるために、あらかじめコマンドファイルの位置を設定しておく作業です。<br>今回は「phpdotenv」（APIキーなどの機密情報を環境変数に保存するためのパッケージ）を使えるようにしたいとも考えていて、インストールや管理のためにComposer（PHPのパッケージ管理システム）もインストールしようと思っていました。<br>で、PHPの場所を確認しようとMAMP（バージョン 7.2）のディレクトリを見ていると、composerファイルを発見。</p>



<pre class="wp-block-code"><code>/Applications/MAMP/bin/php/composer</code></pre>



<p>Composerを使うための方法を検索すると、インストールする方法がヒットします。<br>しかしMAMPにComposerのファイルがあるのを見て、Composerは別途インストールするんじゃなくてこれを使うんじゃないのか？ そう思って「MAMP composer」でググってもめぼしい情報は見つかりません。MAMPを使う場合であってもComposerはインストールする、と書かれている記事ばかりです。公式のPro版のマニュアルの検索機能を使ってみてもヒットしませんでした。</p>



<p>しかし「&#8221;/Applications/MAMP/bin/php/composer&#8221;」でググってみると、いくつか見つかりました。</p>



<ul class="wp-block-list">
<li><a href="https://stackoverflow.com/questions/69929174/how-to-alias-applications-mamp-bin-php-composer-as-just-composer">How to alias /Applications/MAMP/bin/php/composer as just &#8216;composer&#8217; &#8211; Stack Overflow</a><br>＞ 「パスを通せ」との回答。逆に言えばパスさえ通せばこのcomposerが使えるということか？</li>



<li><a href="https://documentation.mamp.info/en/MAMP-PRO-Mac/Settings/Languages/PHP/">MAMP PRO (macOS) Documentation &gt; Settings &gt; Languages &gt; PHP</a><br>＞ Pro版のマニュアル右上の検索窓からはヒットしませんでしたがGoogleは見つけていたね。Pro版のMAMPの設定で「Also activate shortcut for Composer」をチェックするとTerminal.appの設定ファイルに<code>alias composer='/Applications/MAMP/bin/php/composer'</code>と追記される、とのこと。ということは、手で追記しておけばいけるってことか？</li>



<li><a href="https://joshbruce.com/experiences/software-development/php/">Running PHP on macOS | Software development | Experiences | Josh Bruceʼs personal site</a><br>＞ こちらはMAMP Proのユーザのブログなんでしょうか。MAMP内のcomposerが使えることを書いている。「MAMP版のComposerは非推奨の警告をたくさん出すかもしれないが完全に正常で、完全に健全だ」だって。<code>composer self-update</code>コマンドを使えばいいとのこと。</li>
</ul>



<p>上の中の最後の情報にTerminal.appの設定ファイルに追記する内容が書かれています。<br>下記の、必要なものだけを追記してみることにしました（PHPバージョンは変更済み）。<br>参考情報: <a href="https://zenn.dev/oreilly_ota/articles/b8482ba9a4ca24">macOSでパスを通す方法</a> （わたしの環境はSequoiaでzshです）</p>



<pre class="wp-block-code"><code>export PATH="/Applications/MAMP/bin/php/php8.2.26/bin:${PATH}"
alias composer='/Applications/MAMP/bin/php/composer'</code></pre>



<p><code>vim</code>で追記して、ファイル保存。相変わらずvi/vimのコマンドは覚えられてないので、参考情報: <a href="https://www.gi.ce.t.kyoto-u.ac.jp/user/susaki/command/vi.html">viの使い方/基本操作</a><br>設定を再読込させます。（プロンプト省略）</p>



<pre class="wp-block-code"><code>source ~./zshrc</code></pre>



<p>で、MAMPを起動後に（終了しててもいいけど）コマンドを試すと…<br>（ここからはコマンド入力がわかりやすいようにプロンプトを表記してます）</p>



<pre class="wp-block-code"><code>% php -v
PHP 8.2.26 (cli) (built: Nov 21 2024 11:11:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.26, Copyright (c) Zend Technologies</code></pre>



<p>さらに</p>



<pre class="wp-block-code"><code>% composer -V   
Composer version 2.2.21 2023-02-15 13:07:40


% composer self-update
Upgrading to version 2.8.4 (stable channel).

Use composer self-update --rollback to return to version 2.2.21


% composer -V         
Composer version 2.8.4 2024-12-11 11:57:47
PHP version 8.2.26 (/Applications/MAMP/bin/php/php8.2.26/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.</code></pre>



<p>PHPもcomposerもMAMPでいける、って話ですね。別途インストールせずに。<br>ちなみに今はもうComposer 2.8.8が出てる模様。</p>



<p>昔はMAMPに同梱されてなかったようです＞Composer<br>ver. 6.9で入ってたのは確認できましたが、どのバージョンから入ってたのかは不明です。</p>



<p>2025-04-22T21:57:20+09:00 追記: Composerについて少し補足しました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
