<?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>Mac | ITとガジェットあれこれ</title>
	<atom:link href="https://sandambara.com/category/mac/feed" rel="self" type="application/rss+xml" />
	<link>https://sandambara.com</link>
	<description>sandambara.com</description>
	<lastBuildDate>Sat, 15 Nov 2025 05:14:33 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://sandambara.com/wp-content/uploads/2021/03/icon.ico</url>
	<title>Mac | ITとガジェットあれこれ</title>
	<link>https://sandambara.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</title>
		<link>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=local-llm-with-copilotpluspc-on-ryzen</link>
					<comments>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sat, 15 Nov 2025 05:14:33 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[ThinkPad]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2334</guid>

					<description><![CDATA[<p>目次 私とCopilot+ PC諦めたらそこで終わり検証機スペック構築手順いよいよローカルLLMとご対面！他と比べてどうかまとめ 私とCopilot+ PC 前回レッツノートSCのレビューで「今のところ、なんとしても手に [&#8230;]</p>
The post <a href="https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen">【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">私とCopilot+ PC</a></li><li><a href="#toc2" tabindex="0">諦めたらそこで終わり</a></li><li><a href="#toc3" tabindex="0">検証機スペック</a></li><li><a href="#toc4" tabindex="0">構築手順</a></li><li><a href="#toc5" tabindex="0">いよいよローカルLLMとご対面！</a></li><li><a href="#toc6" tabindex="0">他と比べてどうか</a></li><li><a href="#toc7" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">私とCopilot+ PC</span></h2>



<p>前回レッツノートSCのレビューで「今のところ、なんとしても手に入れたいCopilot+ PCの機能が一つも無いので困っていません」と書いたばかりなのですが、NPU活用という観点では、ローカルLLMには以前から大きな関心を寄せていました。</p>



<p>Copilot+ PCを手に入れたのが去年の今頃・・・CPUでもGPUでもなくNPUが搭載され、その性能が40TOPS以上。セキュリティやプライバシーを気にせず大手を振ってAI三昧と聞けば、嫌でも期待は大きくなります。<strong>これが実現できてこそAIの夜明け</strong>です。</p>



<p>しかし、実機を手にして早速トライしたものの、NPUを活用したローカルLLMに関する実用的な情報にはなかなかたどり着けませんでした。技術バリバリの方であれば実現できたのかもしれませんが、私のようなただのオッサンにはかなりハードルが高く感じられました。</p>



<p>「Copilot+ PCでローカルLLMが動く」という記事をまれに見かけても、その内容はLM StudioやVS Codeの拡張機能で動かすといったもので、対象はARMアーキテクチャのみ。</p>



<p>OSで提供されるCopilot+ PC向けの機能はどれも（私には）不要なものばかり。<strong><span class="marker-red">正直に言って「だまされた」と思いました</span>。</strong></p>



<p>来る日も来る日もCopilotさんに尋ね続けました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Ryzen AI 7 PRO 360搭載のラップトップ、NPUを使ってローカルLLMできるようになりましたか？</p>
</blockquote>



<p>こんなことを繰り返しながら「もう疲れたよ、パトラッシュ」と化した私は、身辺が慌ただしくなった時期と重なったこともあって、ローカルLLMという言葉からしばし遠ざかることになりました。</p>



<h2 class="wp-block-heading"><span id="toc2">諦めたらそこで終わり</span></h2>



<p>状況が一転したのは今月で、たまたま見つけた先人の記事。</p>



<p><a rel="noopener" href="https://qiita.com/yoheier/items/8ca764b0b95ab5b9d51e" target="_blank" title="">AMDの第２世代NPUで動作するLLM基盤に衝撃を受けて興奮が止まらないお話 #Windows &#8211; Qiita</a></p>



<p>記事の公開日は8月。なんと！私が別件で右往左往していた夏の間に状況が変わっていたようで、鼻息荒く早速やってみました。</p>



<h2 class="wp-block-heading"><span id="toc3">検証機スペック</span></h2>



<p>ThinkPad T14s Gen6、OSはWindows 11 Pro 24H2です。セールのタイミングだったのと、営業さんとの交渉でかなり安価に入手できました。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="826" height="476" src="https://sandambara.com/wp-content/uploads/2025/11/image-14.png" alt="" class="wp-image-2351" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-14.png 826w, https://sandambara.com/wp-content/uploads/2025/11/image-14-300x173.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-14-768x443.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-14-120x68.png 120w" sizes="(max-width: 826px) 100vw, 826px" /></figure>



<p>余談ですが、このマシンはアイキャッチ画像にしているもので、スキンシールはPDA工房さま製です。パームレスト部分もオーダーで作っていただいた同素材のものを貼っていて、とても気に入っています。</p>



<ul class="wp-block-list">
<li></li>
</ul>



<h2 class="wp-block-heading"><span id="toc4">構築手順</span></h2>



<p>まずはNPUドライバーのバージョンを確認しましょう。「FastFlowLM」のQuick Startにはこのようにあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Important</p>



<p>⚠️&nbsp;Ensure NPU driver verison is&nbsp;<strong>&gt;= 32.0.203.311</strong>&nbsp;(check via Task Manager→Performance→NPU or Device Manager).</p>
</blockquote>



<p>デバイスマネージャーをチェックしましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="504" height="267" src="https://sandambara.com/wp-content/uploads/2025/11/image-1.png" alt="" class="wp-image-2338" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-1.png 504w, https://sandambara.com/wp-content/uploads/2025/11/image-1-300x159.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<p>こちらはアップデート後のキャプチャです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="572" height="312" src="https://sandambara.com/wp-content/uploads/2025/11/image-2.png" alt="" class="wp-image-2339" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-2.png 572w, https://sandambara.com/wp-content/uploads/2025/11/image-2-300x164.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<p>FLMのインストーラーをダウンロードします。なお、FLMはライセンスが2つに分かれており、ランタイム部分はMIT、バイナリ部分は「FastFlowLM Proprietary Binary License Agreement」となっています。年間収益1000万米ドルまでは商用ライセンス不要で、米国デラウェア州法が適用されます。利用前に必ずご自身で内容を確認ください。</p>



<p>FastFlowLMのインストーラーをダウンロードしましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="444" height="121" src="https://sandambara.com/wp-content/uploads/2025/11/image-15.png" alt="" class="wp-image-2352" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-15.png 444w, https://sandambara.com/wp-content/uploads/2025/11/image-15-300x82.png 300w" sizes="(max-width: 444px) 100vw, 444px" /></figure>



<p>インストーラーを実行します。ボタンポチポチだけで大丈夫です。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-16.png" alt="" class="wp-image-2353" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-16.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-16-300x248.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<p>↑いうまでもありませんが、I accept the agreementを選んでくださいね・・・</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="472" src="https://sandambara.com/wp-content/uploads/2025/11/image-17.png" alt="" class="wp-image-2354" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-17.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-17-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="579" height="472" src="https://sandambara.com/wp-content/uploads/2025/11/image-18.png" alt="" class="wp-image-2355" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-18.png 579w, https://sandambara.com/wp-content/uploads/2025/11/image-18-300x245.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="471" src="https://sandambara.com/wp-content/uploads/2025/11/image-19.png" alt="" class="wp-image-2356" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-19.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-19-300x245.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="473" src="https://sandambara.com/wp-content/uploads/2025/11/image-20.png" alt="" class="wp-image-2357" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-20.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-20-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="473" src="https://sandambara.com/wp-content/uploads/2025/11/image-24.png" alt="" class="wp-image-2361" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-24.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-24-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="469" src="https://sandambara.com/wp-content/uploads/2025/11/image-25.png" alt="" class="wp-image-2362" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-25.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-25-300x245.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-23.png" alt="" class="wp-image-2360" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-23.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-23-300x248.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<p>ここまででFLMを使う準備は整っていますが、Lemonadeがあるとさらに簡単に使えますのでインストールしましょう。GitHubのリポジトリは<a rel="noopener" href="https://github.com/lemonade-sdk" target="_blank" title="">こちら</a>。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="452" src="https://sandambara.com/wp-content/uploads/2025/11/image-3-1024x452.png" alt="" class="wp-image-2340" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-3-1024x452.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-3-300x133.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-3-768x339.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-3.png 1075w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>NPU、AMD Ryzen AI 300 series。この文字が見られる日を待ちわびておりました。</p>



<p>では、インストーラーをダウンロードしましょう。</p>



<p><a href="https://github.com/lemonade-sdk/lemonade?tab=readme-ov-file#getting-started">GitHub &#8211; lemonade-sdk/lemonade: Lemonade helps users run local LLMs with the highest performance by configuring state-of-the-art inference engines for their NPUs and GPUs. Join our discord: https://discord.gg/5xXzkMu8Zk</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="439" height="165" src="https://sandambara.com/wp-content/uploads/2025/11/image-4.png" alt="" class="wp-image-2341" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-4.png 439w, https://sandambara.com/wp-content/uploads/2025/11/image-4-300x113.png 300w" sizes="(max-width: 439px) 100vw, 439px" /></figure>



<p>こちらもボタンポチポチで進めていきます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="617" height="480" src="https://sandambara.com/wp-content/uploads/2025/11/image-5.png" alt="" class="wp-image-2342" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-5.png 617w, https://sandambara.com/wp-content/uploads/2025/11/image-5-300x233.png 300w" sizes="(max-width: 617px) 100vw, 617px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="622" height="479" src="https://sandambara.com/wp-content/uploads/2025/11/image-7.png" alt="" class="wp-image-2344" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-7.png 622w, https://sandambara.com/wp-content/uploads/2025/11/image-7-300x231.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="616" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-9.png" alt="" class="wp-image-2346" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-9.png 616w, https://sandambara.com/wp-content/uploads/2025/11/image-9-300x231.png 300w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p>ポップアップが見えたらLemonade起動完了です。これで準備が整いました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="467" height="185" src="https://sandambara.com/wp-content/uploads/2025/11/image-10.png" alt="" class="wp-image-2347" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-10.png 467w, https://sandambara.com/wp-content/uploads/2025/11/image-10-300x119.png 300w" sizes="(max-width: 467px) 100vw, 467px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">いよいよローカルLLMとご対面！</span></h2>



<p>せっかくなら少しでも性能の良いモデルを試してみたいので、ここではgpt-oss-20bを動作させることを目標に進めていきます。</p>



<p>FLMのインストールが終わったときに、デスクトップへアイコンが2つ作られています。このうち「flm serve」をダブルクリックして実行します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="334" height="135" src="https://sandambara.com/wp-content/uploads/2025/11/image-26.png" alt="" class="wp-image-2363" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-26.png 334w, https://sandambara.com/wp-content/uploads/2025/11/image-26-300x121.png 300w" sizes="(max-width: 334px) 100vw, 334px" /></figure>



<p>コマンドプロンプトが起動し、デフォルトモデルのllama3.2:1bのダウンロードが始まります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="792" height="642" src="https://sandambara.com/wp-content/uploads/2025/11/image-27.png" alt="" class="wp-image-2364" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-27.png 792w, https://sandambara.com/wp-content/uploads/2025/11/image-27-300x243.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-27-768x623.png 768w" sizes="(max-width: 792px) 100vw, 792px" /></figure>



<p>軽量モデルですので直ぐにダウンロードは終了し、FLMの準備が整います。このコマンドプロンプトは開いたままにしておきましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="729" height="100" src="https://sandambara.com/wp-content/uploads/2025/11/image-28.png" alt="" class="wp-image-2365" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-28.png 729w, https://sandambara.com/wp-content/uploads/2025/11/image-28-300x41.png 300w" sizes="(max-width: 729px) 100vw, 729px" /></figure>



<p>次に、タスクトレイにあるLemonadeのアイコンを右クリック→Model Managerを選択します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="234" height="259" src="https://sandambara.com/wp-content/uploads/2025/11/image-11.png" alt="" class="wp-image-2348"/></figure>



<p>ブラウザが起動しlocalhost:8000/webapp.html#model-managementが表示された、左ペインにある「FastFlowLM NPU」を選択します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="934" height="863" src="https://sandambara.com/wp-content/uploads/2025/11/image-12.png" alt="" class="wp-image-2349" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-12.png 934w, https://sandambara.com/wp-content/uploads/2025/11/image-12-300x277.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-12-768x710.png 768w" sizes="(max-width: 934px) 100vw, 934px" /></figure>



<p>右ペインからgpt-oss-20b-FLMを探し、下向き矢印のアイコンをクリックしてモデルをダウンロードしましょう。インストーラーをデオフォルトで進めた場合はドキュメントにモデルが保存されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="123" src="https://sandambara.com/wp-content/uploads/2025/11/image-13-1024x123.png" alt="" class="wp-image-2350" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-13-1024x123.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-13-300x36.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-13-768x92.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-13.png 1145w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ダウンロードが完了するとモデルを起動するロケット？のアイコン、モデルを削除するゴミ箱のアイコンが表示されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="111" src="https://sandambara.com/wp-content/uploads/2025/11/image-30-1024x111.png" alt="" class="wp-image-2367" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-30-1024x111.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-30-300x32.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-30-768x83.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-30.png 1130w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>参考までに、llama-3.2-1B-NPU2が保存されたフォルダのサイズが1.21GBに対し、GPT-OSS-20B-NPU2が保存されたフォルダのサイズは13.4GBでした。脳ミソは大きい方が高性能ということでしょうか。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="475" height="371" src="https://sandambara.com/wp-content/uploads/2025/11/image-31.png" alt="" class="wp-image-2368" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-31.png 475w, https://sandambara.com/wp-content/uploads/2025/11/image-31-300x234.png 300w" sizes="(max-width: 475px) 100vw, 475px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="477" height="366" src="https://sandambara.com/wp-content/uploads/2025/11/image-32.png" alt="" class="wp-image-2369" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-32.png 477w, https://sandambara.com/wp-content/uploads/2025/11/image-32-300x230.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></figure>



<p>では、先ほどのロケット？のアイコンをクリックしてからLLM Chatへ移動します。右上のモデルがgpt-oss-20b-FLMになっています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="545" src="https://sandambara.com/wp-content/uploads/2025/11/image-33-1024x545.png" alt="" class="wp-image-2370" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-33-1024x545.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-33-300x160.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-33-768x409.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-33-1536x818.png 1536w, https://sandambara.com/wp-content/uploads/2025/11/image-33.png 1880w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ここでは「あなたはローカルLLMで、利用時はインターネット接続不要ですか？また、あなたはどのように私を助けてくれますか？できるだけ正確に答えてください。」と聞いてみます。タスクマネージャーでNPUのゲージが動くことも見逃せません。</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="gpt-oss-20b on Copilot+ PC with Ryzen AI 7 PRO 360" width="1256" height="707" src="https://www.youtube.com/embed/PuYxONHRM0I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>いかがでしょうか。大規模言語モデルが目の前のラップトップで動いている・・・なんたるロマン。ようやく<strong>AIの夜明けを迎えた気分</strong>です。</p>



<h2 class="wp-block-heading"><span id="toc6">他と比べてどうか</span></h2>



<p>性能や応答速度をChatGPTやClaude、CopilotといったクラウドAIと比べるのは、そもそもの機材スペックがどれだけ違うかという話なので、比べること自体がナンセンスであります。</p>



<p>では、たとえばMacと比べるとどうかと言われれば、同じ質問で試して4倍弱時間がかかっています。ollama+gpt-oss-20bをメモリ24GBのM4 Proで動作させるとこんな感じです（こちらはCLIで動かしていますので、比較では無く参考ということで）。アクティビティモニタの値もなんとなく見てみます。</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="gpt-oss-20b on MacBook Pro with M4 Pro" width="1256" height="707" src="https://www.youtube.com/embed/VutXlRyz6lw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>個人的に思うことは以下の通りです。</p>



<ul class="wp-block-list">
<li>出力速度は確かに速いが、速すぎて見づらい感ある</li>



<li>Copilot+ PCはNPUのさらなる高性能化を期待</li>



<li>Appleシリコンすごい</li>
</ul>



<h2 class="wp-block-heading"><span id="toc7">まとめ</span></h2>



<p>比べれば遅いとはいえCopilot+ PCでNPUを使ったローカルLLM、十分実用的な速度で動作していると思います。ちなみに、先ほどの動画収録時の電源とバッテリー設定は「最適な電力効率」で、ファンもほぼ回らず静かなまま。NPUってやっぱりすごいんだなあと思います。餅は餅屋です。</p>



<p>かつてと比べればMac環境も増えたけれど、世の中のシェアでいえば圧倒的に多いWindowsユーザーの選択肢が増えたこと、これは普通にうれしいです。もっともっとこういうことが簡単にできるようになると良いですね。夜は明けたので、陽が昇るのはこれからかな？</p>The post <a href="https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen">【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>さらば私が愛したM1 MacBook Pro　ようこそDragonfly G2</title>
		<link>https://sandambara.com/goodby-m1macbookpro-welcome-dragonflyg2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=goodby-m1macbookpro-welcome-dragonflyg2</link>
					<comments>https://sandambara.com/goodby-m1macbookpro-welcome-dragonflyg2#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Wed, 03 Nov 2021 05:00:00 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Dragonfly]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1879</guid>

					<description><![CDATA[<p>2月に購入して約8か月愛用してきたMacBook Proを先日手放しました。 目次 気に入っていたことどんなことに使っていたかなぜ使わなくなっていったか私にとってのパソコンとはその後の相棒　HP Dragonfly G2 [&#8230;]</p>
The post <a href="https://sandambara.com/goodby-m1macbookpro-welcome-dragonflyg2">さらば私が愛したM1 MacBook Pro　ようこそDragonfly G2</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>2月に購入して約8か月愛用してきたMacBook Proを先日手放しました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">気に入っていたこと</a></li><li><a href="#toc2" tabindex="0">どんなことに使っていたか</a></li><li><a href="#toc3" tabindex="0">なぜ使わなくなっていったか</a></li><li><a href="#toc4" tabindex="0">私にとってのパソコンとは</a></li><li><a href="#toc5" tabindex="0">その後の相棒　HP Dragonfly G2</a></li><li><a href="#toc6" tabindex="0">タッチパネルのいいところ</a></li><li><a href="#toc7" tabindex="0">将来のAppleに期待するデバイス</a></li><li><a href="#toc8" tabindex="0">MacBook Proの下取り価格</a></li><li><a href="#toc9" tabindex="0">余談</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">気に入っていたこと</span></h2>



<p>「ARMプロセッサのパフォーマンス」という一言に尽きます。非常にパワフルで省電力性に優れ（本気でバッテリーインジケーター壊れてるのか？と思うくらいバッテリーのもちはすばらしい）、そしてほとんど発熱しない。夏場の利用を見越してAirではなくCPUファンがついているProを選んだのですが、ファンが回ったことはほとんどありませんでした。ハードウェアとして非常に優れていたと思います。</p>



<p>また、<a rel="noopener" href="https://appleshinja.com/" target="_blank">Apple信者1億人創出計画</a>のぬふぬふさんが仰っているように、Apple製品は複数組み合わせて利用するとメリットが相乗効果を生み、ライフスタイルが大きく変わると感じています。</p>



<p>私はiPhone、iPad、Apple Watchの組み合わせで利用していましたが（信者というより純粋にモノが優れていると思うから使っているクチです）、よくあるのはwebサイトへのログインで2段階認証が必要なとき、iPhoneに届いたSMSを開く→コードを視認→PCへ手入力とするところ、SMSをMacでダイレクトに読めるうえ、届いたパスコードがそのままブラウザへセットされるのは超絶便利でした。</p>



<h2 class="wp-block-heading"><span id="toc2">どんなことに使っていたか</span></h2>



<p>副業で開発に携わっているので、メインはコーディングに利用していました。ただ、Windows案件がメインなので、Mac単体で利用するのではなくRDP越しにWindowsを触るのがメインでした。今だとWindows 365のような感じですね。</p>



<p>自宅サーバーへVPNで接続してVMを触るのが多かったです。<a rel="noopener" href="https://business.ntt-east.co.jp/service/thintelework-system/" target="_blank">シン・テレワークシステム</a>も試しましたが、これだとほぼまんまWindows 365の感覚で使えます。</p>



<p>ParallelsはWordやExcelといった一般的な利用には問題無いものの、Visual Studioの動作が非常に緩慢でこれは正直使いづらかったです。</p>



<h2 class="wp-block-heading"><span id="toc3">なぜ使わなくなっていったか</span></h2>



<p>元々M1 MacBook Proを購入した理由は「M1チップのパフォーマンスを体験してみたいから」というもので、日々の利用を通じ実際に体験できたのは大きな収穫だったと思っています。</p>



<p>しかし、M1入手直前までThinkPad X1 Carbonを利用していたのが全てなんだろうと思うのですが、仕事では1日を通じWindowsを触っている時間の方が圧倒的に長いため（MacBookも結局RDP越しにWindowsを触るための道具だった）、生産性という意味では普通にWindowsを使う方が明らかにメリットが多いことを再確認しました。</p>



<p>家にある引退させたWindows機を引っ張り出し、かなり古いモデルにもかかわらずこちらの方が作業性・生産性が高いことを目の当たりにしたときは自分でも少しショックでした。マシンパワーやスペックがが全てではないんですね。</p>



<p>一方でプライベートはと言うと、プライベートでラップトップを触ることはほぼありません。iPhoneで事足りるからです。こうして、非常に優れたデバイスでありながらも、M1 MacBook Proの出番は徐々に少なくなり、使わないのに手元においていても・・・ということで、悩んだ末手放すことにしました。</p>



<h2 class="wp-block-heading"><span id="toc4">私にとってのパソコンとは</span></h2>



<p>結局は仕事道具であったり自主トレ環境であったりするので、私にはWindowsがストレートに便利でした。もし、M1でもBoot CampでWindows環境をネイティブで利用できたら、最高のデバイスでWindowsを使えるので鬼に金棒だったんだろうなと思います。アーキテクチャが違うので望めないことではあるのですが、ハードは本当に素晴らしいのでここだけは残念だなあと今も思っています。</p>



<h2 class="wp-block-heading"><span id="toc5">その後の相棒　HP Dragonfly G2</span></h2>



<p>自分のニーズを分析しなおし、かなり時間をかけて考えました。</p>



<ul class="wp-block-list"><li>Windows機</li><li>iPadもあると便利だが出番は少ない</li><li>でも、たまに手書きはしたい</li><li>軽量コンパクトだとうれしい</li><li>マシンパワーは必要</li></ul>



<p>このあたりを踏まえ、iPad(Pro M1)もMacBook Proとともに売却し、<a rel="noopener" href="https://jp.ext.hp.com/notebooks/business/elite_dragonfly_g2/?jumpid=st_cm_p_sh_gg_bra_dsabnb" target="_blank">HP Elite Dragonfly G2</a>のCore i7機を入手しました。</p>



<p>非常に軽量コンパクトな2-in-1。出番が少なかったiPadのタブレット利用と手書きのニーズも果たせます。バッテリーは2セル（Wi-Fiモデル）なので丸1日持たないし、直ぐ熱くなってぶんぶんファンも回りますが、明らかに作業性は向上しました。</p>



<p>以前アンバサダーでお借りしたxps13も同価格帯なので候補ではあったのですが、コンパクトではあるのですが軽量ではないことがネックとなりました。</p>



<p>あと、これまでラップトップを購入するとセットでプライバシーフィルタを購入していたのですが、Dragonfly G2にはHP Sure Viewという機能が実装されており（ThinkPadでいうPrivacy Guard）、プライバシーフィルタを持ち歩かなくても良い点が気に入っています。</p>



<h2 class="wp-block-heading"><span id="toc6">タッチパネルのいいところ</span></h2>



<p>日頃は自宅で4kの外部ディスプレイに接続して利用していて、私の目が悪いせいもあるのですが、マルチモニタ環境だとカーソルをよく見失うんですよね。2-in-1だとカーソルを見失っても、ディスプレイをタッチすれば良いので大変便利です。</p>



<h2 class="wp-block-heading"><span id="toc7">将来のAppleに期待するデバイス</span></h2>



<p>Windowsがネイティブで動いてタッチパネルを内蔵した軽いラップトップが発売されたら直ぐ舞い戻ります。何度も申し上げますがハードウェアとしては本当に素晴らしかったですし、他のハードと出来ることは同じでも、熱くならない・ファンが回らない快適さは唯一無二だと思っています。</p>



<p>スマホのように静かで大して熱くならず、使いたいときに瞬時に使えるバッテリーのもちが良いラップトップって最高ですよ。</p>



<h2 class="wp-block-heading"><span id="toc8">MacBook Proの下取り価格</span></h2>



<p>新型が発表される数日前に某店へ下取りに出しました（オークションの方が多少高く売れたと思うのですが、今回は時間をお金で買いました）。売却価格を購入価格から逆算すると、1か月約1万円でレンタルしていたような感じです。</p>



<h2 class="wp-block-heading"><span id="toc9">余談</span></h2>



<p>お仕事ください。</p>The post <a href="https://sandambara.com/goodby-m1macbookpro-welcome-dragonflyg2">さらば私が愛したM1 MacBook Pro　ようこそDragonfly G2</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/goodby-m1macbookpro-welcome-dragonflyg2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>M1 Mac+Python+YOLO V3で物体検出に挑戦</title>
		<link>https://sandambara.com/yolo-v3-with-python-using-m1-mac?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yolo-v3-with-python-using-m1-mac</link>
					<comments>https://sandambara.com/yolo-v3-with-python-using-m1-mac#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Wed, 03 Mar 2021 00:00:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[OpenVINO]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[YOLO]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1736</guid>

					<description><![CDATA[<p>随分以前ですがこちらのサイトを参考にYOLOで遊んでいました。 AIと聞くと敷居が高いように感じますが、このように情報発信してくださる方々のおかげで気軽にAIと関わりをもてるのは本当に有難いことです。感謝！ ということで [&#8230;]</p>
The post <a href="https://sandambara.com/yolo-v3-with-python-using-m1-mac">M1 Mac+Python+YOLO V3で物体検出に挑戦</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>随分以前ですがこちらのサイトを参考にYOLOで遊んでいました。</p>





<a rel="noopener" href="https://ai-coordinator.jp/yolo-v3-pytorch" title="高速化したYOLO V3を使ったリアルタイム物体検出 for PyTorch" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://ai-coordinator.jp/wp-content/uploads/2018/04/895dc3969fe3a9bee9d2e70d33c6f13f.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">高速化したYOLO V3を使ったリアルタイム物体検出 for PyTorch</div><div class="blogcard-snippet external-blogcard-snippet">正確さと高速化に成功したYOLO V3 こんにちは。 AI coordinator管理人の清水秀樹です。 最近はラズパイにハマってdeeplearningの勉強をサボっておりましたが、YOLO V2をさらに高速化させたYOLO V3がリリー...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ai-coordinator.jp/yolo-v3-pytorch" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ai-coordinator.jp</div></div></div></div></a>




<p>AIと聞くと敷居が高いように感じますが、このように情報発信してくださる方々のおかげで気軽にAIと関わりをもてるのは本当に有難いことです。感謝！</p>



<p>ということで、今回メインマシンをM1 Macに移行したので久しぶりにYOLOによる物体検出に挑戦してみました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">YOLOとは？</a></li><li><a href="#toc2" tabindex="0">動作環境</a></li><li><a href="#toc3" tabindex="0">セットアップしていきなり実行</a></li><li><a href="#toc4" tabindex="0">内蔵カメラでリアルタイム物体検出をするには</a></li><li><a href="#toc5" tabindex="0">Miniforge3インストール</a></li><li><a href="#toc6" tabindex="0">PyTorchインストール</a></li><li><a href="#toc7" tabindex="0">リアルタイム物体検出</a></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">YOLOとは？</span></h2>



<p>You Only Look Onceの頭文字を取ってヨーローです。以前ご紹介したOpenCVやOpenVINOとはまた異なる仕組みで物体検出を行います。</p>



<p>「一度しか見ないから早いんだな」くらいの感じでいきましょう。逆の言い方をすれば他の仕組みは「何度も見ている」ということですね。</p>



<h2 class="wp-block-heading"><span id="toc2">動作環境</span></h2>



<p>私の環境です。</p>



<ul class="wp-block-list"><li>MacBook Pro M1（メモリ8GB　SSD512GB）</li><li>macOS Big Sur(バージョン11.2.2）</li><li>Miniforge3</li><li>Python 3.8</li></ul>



<h2 class="wp-block-heading"><span id="toc3">セットアップしていきなり実行</span></h2>



<p>ターミナルを起動し下記のコマンドを順に入力してきましょう！</p>



<script src="https://gist.github.com/sandambara/d4f9808417e66c4776fdd5cf320d31ad.js"></script>



<p>解析がスタートします。</p>



<script src="https://gist.github.com/sandambara/48e7890810828863993d00f103c85171.js"></script>



<p>あっという間に終わり、解析結果が~/darknet/predictions.jpgに出力されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="576" src="https://sandambara.com/wp-content/uploads/2021/03/predictions-1.jpg" alt="" class="wp-image-1741" srcset="https://sandambara.com/wp-content/uploads/2021/03/predictions-1.jpg 768w, https://sandambara.com/wp-content/uploads/2021/03/predictions-1-300x225.jpg 300w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>何度見てもすごい！と感じずにいられません。</p>



<h2 class="wp-block-heading"><span id="toc4">内蔵カメラでリアルタイム物体検出をするには</span></h2>



<p>ここからは事前準備が必要です。具体的にはPythonとPyTorchのセットアップをはじめに行いますが、M1 Macの場合は環境構築方法が限定されますので注意が必要です（2021年3月1日時点）。</p>



<h2 class="wp-block-heading"><span id="toc5">Miniforge3インストール</span></h2>



<p>Python実行環境にはMiniforge（Anacondaの小型版と思っておけば良いと思います）を利用します。</p>



<p>まずは<a rel="noopener" href="https://github.com/conda-forge/miniforge" target="_blank">こちらのサイトのDownload</a>から「OS X arm64(Apple Silicon)」を取得し、以下のコマンドを実行します。</p>



<pre class="wp-block-code"><code>bash Miniforge3-MacOSX-arm64.sh</code></pre>



<p>インストールが終わったらYOLO用の環境を作成しましょう。Pythonは3.8にしました。</p>



<pre class="wp-block-code"><code>conda create -n yolo python=3.8</code></pre>



<p>ここは「conda create -n 好きな名前 python=希望バージョン」です。こんな風に環境を作ったり削除したりできるのは便利ですね。ちなみに削除は「conda remove -n 名前 &#8211;all」です。allの前はハイフンが2つ続きますので注意してくださいね。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>「動かねー」という方はパスが通っているか確認しましょう！</p>



<p>~/.zshrc</p>



<p>source ~/miniforge3/etc/profile.d/conda.sh</p>
</div>



<p>では、早速作成した環境へ入って作業を続けます。</p>



<pre class="wp-block-code"><code>conda activate yolo</code></pre>



<h2 class="wp-block-heading"><span id="toc6">PyTorchインストール</span></h2>



<p>以前はPyTorchの公式サイトから環境に応じたコマンドを取得していました。</p>





<a rel="noopener" href="https://pytorch.org/get-started/locally/" title="Get Started" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://pytorch.org/wp-content/uploads/2025/01/pytorch_seo.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Get Started</div><div class="blogcard-snippet external-blogcard-snippet">Set up PyTorch easily with local installation or supported cloud platforms.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://pytorch.org/get-started/locally/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">pytorch.org</div></div></div></div></a>




<p>M1 Macの場合は別の手順を踏まねばなりません。環境構築全般、参考にさせて頂いた記事をご紹介させて頂きます。良記事公開、有難うございます！</p>





<a rel="noopener" href="https://qiita.com/onkyo14taro/items/6ce72982ae5a43fdee63" title="M1搭載MacにおけるPytorchのインストール - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRmF2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbSUyRnUlMkYxNTEwMDkzMSUzRnYlM0Q0P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz1mZTJiMTQyOWFkYWIyYWE3NDMxOWJhNTBiZTUxMDhjMw%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D27789a507bbccab539c95ab275d5e03c?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9TTElRTYlOTAlQUQlRTglQkMlODlNYWMlRTMlODElQUIlRTMlODElOEElRTMlODElOTElRTMlODIlOEJQeXRvcmNoJUUzJTgxJUFFJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUJDJUUzJTgzJUFCJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9MDk5N2NlMDlkNjRiZTJiNTQyYzFlNThhNTJkMGZlMmY&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBvbmt5bzE0dGFybyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTYyMjQ0MWI4ZTBmMTkzODE0ZTJiMjBiMTUyMDU5NGVh&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=4cb937510a47ef6bcfc47312718f8e5e" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">M1搭載MacにおけるPytorchのインストール - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">重要！（2021-06-19現在） 継続的に更新されている，M1 Macの環境構築に関する次のとてもためになる記事でも言及されていますが，現在，簡単にpip installでインストール可能になりました。 pip install torch...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/onkyo14taro/items/6ce72982ae5a43fdee63" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>






<a rel="noopener" href="https://zenn.dev/karaage0703/articles/0ab9e654cfb0ec" title="Apple Silicon(M1) Mac+tensorflow-macosでディープラーニングする" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--rNeUG1Ht--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Apple%2520Silicon%2528M1%2529%2520Mac%252Btensorflow-macos%25E3%2581%25A7%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%2597%25E3%2583%25A9%25E3%2583%25BC%25E3%2583%258B%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2581%258B%25E3%2582%2589%25E3%2581%2582%25E3%2581%2592%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2hDZEtvakJfZXdDTjNCV1Z0WXIteFNIZ0hmRjlXZmt3QzI5c0Y0aXYwPXMyNTAtYw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Apple Silicon(M1) Mac+tensorflow-macosでディープラーニングする</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/karaage0703/articles/0ab9e654cfb0ec" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>




<p>まずは必須となるものをインストールしていきます。</p>



<pre class="wp-block-code"><code>conda install numpy
conda install matplotlib
conda install pandas
conda install opencv</code></pre>



<p>続いてPythonのバージョンに応じ下記のリンクからwheel（パッケージ）をダウンロードします。3.8用はGoogle Drive、3.9用はgitへのリンクです。</p>



<p><a rel="noopener" href="https://drive.google.com/file/d/1e-7R3tfyJqv0P4ijZOLDYOleAJ0JrGyJ/view" target="_blank">Python 3.8</a>　<a rel="noopener" href="https://github.com/wizyoung/AppleSiliconSelfBuilds/blob/main/builds/torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl" target="_blank">Python 3.9</a></p>



<p>警告が表示されたら続行できるように選択を続け、次にインストールです。</p>



<script src="https://gist.github.com/sandambara/5624c47e3dc51921c5f7e520ee31f3b6.js"></script>



<p>コンソールの最終行はこんな感じです。</p>



<pre class="wp-block-code"><code>Successfully installed torch-1.8.0a0 typing-extensions-3.7.4.3</code></pre>



<p>セットアップを続けます。</p>



<script src="https://gist.github.com/sandambara/33882654450464cde5f829d714e22048.js"></script>



<p>imagesにdog.jpgを指定した結果はこんな感じです。</p>



<script src="https://gist.github.com/sandambara/83fe6bebac4d0dc4a42393c486a48547.js"></script>



<p>フォルダ「det」に「det_dog.jpg」というファイルが作成されていることを確認しましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="576" src="https://sandambara.com/wp-content/uploads/2021/03/det_dog-1.jpg" alt="" class="wp-image-1756" srcset="https://sandambara.com/wp-content/uploads/2021/03/det_dog-1.jpg 768w, https://sandambara.com/wp-content/uploads/2021/03/det_dog-1-300x225.jpg 300w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>下記サンプルはimgsに「img3.jpg」を指定しました。</p>



<script src="https://gist.github.com/sandambara/237fca1d9877502482ad3417335ca428.js"></script>



<p>画像はこんな感じです（det_img3.jpg）。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="500" height="406" src="https://sandambara.com/wp-content/uploads/2021/03/det_img3.jpg" alt="" class="wp-image-1747" srcset="https://sandambara.com/wp-content/uploads/2021/03/det_img3.jpg 500w, https://sandambara.com/wp-content/uploads/2021/03/det_img3-300x244.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /><figcaption>すごい！</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">リアルタイム物体検出</span></h2>



<p>お待たせしました。カメラを使ってリアルタイム物体検出のお時間です。</p>



<p>こちらのコマンドをどうぞ！</p>



<pre class="wp-block-code"><code>python cam_demo.py</code></pre>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="YOLOV3" width="1256" height="942"  data-youtube="eyJ0aXRsZSI6IllPTE9WMyIsInZpZGVvX2lkIjoidWQwaTRhWUxROWMifQ==" src="https://www.youtube.com/embed/ud0i4aYLQ9c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>自分が映り込まないようかなりアクロバティックな姿勢で撮影したためツッコミどころは色々ありますがスルーでお願いしますｗ</p>



<p>iPhoneがlaptopになっていたりミニカーがcell phoneだったりはしますが、検知速度・判定結果いずれもなかなかです。ピント位置や被写体との距離を調整すればより良い結果が得られると思います。</p>



<h2 class="wp-block-heading"><span id="toc8">まとめ</span></h2>



<p>おしりたんていはpersonでした！</p>The post <a href="https://sandambara.com/yolo-v3-with-python-using-m1-mac">M1 Mac+Python+YOLO V3で物体検出に挑戦</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/yolo-v3-with-python-using-m1-mac/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MacBook Pro M1購入レビュー　オプション編</title>
		<link>https://sandambara.com/review-macbook-pro-m1-part2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-macbook-pro-m1-part2</link>
					<comments>https://sandambara.com/review-macbook-pro-m1-part2#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Tue, 02 Mar 2021 01:00:00 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[物欲]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1719</guid>

					<description><![CDATA[<p>今日はMacBook Pro M1購入時に揃えたものをご紹介していこうと思います！ 目次 USB TYPE-C ハブハードケースパームレスト・トラックパッド用保護フィルムプライバシーフィルタプライバシーフィルターのケース [&#8230;]</p>
The post <a href="https://sandambara.com/review-macbook-pro-m1-part2">MacBook Pro M1購入レビュー　オプション編</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>今日はMacBook Pro M1購入時に揃えたものをご紹介していこうと思います！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">USB TYPE-C ハブ</a></li><li><a href="#toc2" tabindex="0">ハードケース</a></li><li><a href="#toc3" tabindex="0">パームレスト・トラックパッド用保護フィルム</a></li><li><a href="#toc4" tabindex="0">プライバシーフィルタ</a></li><li><a href="#toc5" tabindex="0">プライバシーフィルターのケース</a></li><li><a href="#toc6" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">USB TYPE-C ハブ</span></h2>



<p>ご存知の通りMacBook Pro M1の外部ポートはThunderbolt / USB 4×2のみです。ということでハブを買いました。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B087TSQR6X&amp;linkId=3f044c6c42eb1ffb1176b313466388f7"></iframe>



<p>コンパクトで軽く使い勝手も大変良いのですが1つ失敗しました。後述するハードケースを装着しているとケースと干渉して装着できないのです。この辺は好みもありますが、本体とケーブルで繋げるハブの方が使い勝手は良いかもしれませんね。</p>



<p>とはいえ、底面側のカバーを外して使うとなかなか良い感じです。HDMIポートもあるので、外部モニタを利用されたい方には特にオススメです！</p>



<h2 class="wp-block-heading"><span id="toc2">ハードケース</span></h2>



<p>屋内でしか利用しませんが、持ち運ぶ頻度は高いのでハードケースを買いました。Macのデザインはカッコイイけれど、リンゴのロゴ入りボディーを外で取り出すのはちょっと気後れするタイプのおじさんです。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B08J6GYRVT&amp;linkId=b36daa89dbd05c2351f64122a28c7de2"></iframe>



<p>先程書いたハブとの干渉を除けばとても重宝しています。付け外しも簡単でオススメです。</p>



<h2 class="wp-block-heading"><span id="toc3">パームレスト・トラックパッド用保護フィルム</span></h2>



<p>MBPはトラックパッドとパームレストの汚れが気になるというコメントが多かったので初めてパソコン用の保護フィルムを購入しました。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B08GLV8VDG&amp;linkId=c7a22c90b24dc009b80219f6d9d81632"></iframe>



<p>さらさら感があってとても使い心地は良いです！トラックパッドの使用感はフィルムありの方が快適かもしれません。</p>



<p>あと、パームレスト部分は貼り付けるのが少し難しかったです（トラックパッドの上下部分が細いため）。</p>



<p>ちなみにMacBookのキーボードもThinkPad並みに盛大に汚れます。しかし、鍵感が変わってしまいそうだったので、キーボードカバーは購入せず汚れたら都度拭き取ることにしました。</p>



<h2 class="wp-block-heading"><span id="toc4">プライバシーフィルタ</span></h2>



<p>MacBook Proのモニタは光沢があり映像も非常に美しいのですが、外出先では周囲の視線にも気を配りたいところです（YouTubeやニュースを見るくらいなら問題ないでしょうが）。</p>



<p>ということで購入したプライバシーフィルタはこちらです。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B07WNCC4HG&amp;linkId=43d4f0b64e268c905a061a4a7e595f4b"></iframe>



<p>同じプライバシーフィルタの中でも価格は若干高めですが、クオリティは申し分ありません。マグネットが直接本体に吸着するので見た目も非常にスマートです。</p>



<h2 class="wp-block-heading"><span id="toc5">プライバシーフィルターのケース</span></h2>



<p>ThinkPadの液晶は非光沢だったのでプライバシーフィルタは常時付けっぱなしでした。しかし、MacBookでは必要な時だけ装着するようにしています。そこで重宝するのがフィルター用のケースです。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B07QP13YSH&amp;linkId=0616444bfe3c711aa072ecdf390c6960"></iframe>



<p>フィルターを汚すことなく安全に収納できるのでオススメです！</p>



<h2 class="wp-block-heading"><span id="toc6">まとめ</span></h2>



<p>パソコンの使い方は人それぞれなので全部必要な方は少ないと思いますが、どれを買おうか迷っておられる方の参考になると嬉しいです。では、良きMacBookライフを！</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="MacBook";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;Operation=GetScript&amp;ID=OneJS&amp;WS=1&amp;Marketplace=JP"></script>The post <a href="https://sandambara.com/review-macbook-pro-m1-part2">MacBook Pro M1購入レビュー　オプション編</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/review-macbook-pro-m1-part2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MacBook Pro M1購入レビュー　本体編</title>
		<link>https://sandambara.com/review-macbook-pro-m1-part1?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-macbook-pro-m1-part1</link>
					<comments>https://sandambara.com/review-macbook-pro-m1-part1#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 21 Feb 2021 18:00:00 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Watch]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[物欲]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1713</guid>

					<description><![CDATA[<p>MacBook Pro M1を購入しました。今まで使っていたMacはMac mini late 2012なので9年ぶりのMac購入です。オプション関係のレポートも含め2回に分けて記事を書きます。 目次 購入の経緯購入機ス [&#8230;]</p>
The post <a href="https://sandambara.com/review-macbook-pro-m1-part1">MacBook Pro M1購入レビュー　本体編</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>MacBook Pro M1を購入しました。今まで使っていたMacはMac mini late 2012なので9年ぶりのMac購入です。オプション関係のレポートも含め2回に分けて記事を書きます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">購入の経緯</a></li><li><a href="#toc2" tabindex="0">購入機スペック</a></li><li><a href="#toc3" tabindex="0">AirかProか</a></li><li><a href="#toc4" tabindex="0">ジャーン（起動音）</a></li><li><a href="#toc5" tabindex="0">Windowsをどうする？</a></li><li><a href="#toc6" tabindex="0">使用感まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">購入の経緯</span></h2>



<p>Appleシリコンという言葉が世に出てからずっと気になっていたマシンですが、仕事のタイミングによりThinkPad X1を購入。直後にM1 Macが発売されぐぬぬ案件と化していました。</p>



<p>その後Macに関係するお仕事の話があったり、やはり最新の世界を知っておきたいという想いもあり乗り換えを決意。ThinkPad X1は申し分のない名機でしたが、購入資金に充てるために売却しました。</p>



<h2 class="wp-block-heading"><span id="toc2">購入機スペック</span></h2>



<p>スペースグレーのメモリ8GB＋ストレージ512GBにしました。メモリは16GBとかなり迷ったのですが、それなりにヘビーな使い方（10個以上アプリを起動したままParallelsでArm版Windows10を動かす）をしてもパフォーマンスダウンは感じません。</p>



<p>8GBだとスワップさせる分を16GBあればオンメモリで捌けるということかもしれません。Socやストレージの性能が高いからか特に困らないですが、4K動画編集などをモリモリやる方などは素直に16GB機を選んだ方が良いと思います。</p>



<p>最近記事になりましたが、SSDの寿命は少し気になりますね</p>





<a rel="noopener" href="https://applech2.com/archives/20210216-macos-swap-affect-apple-m1-mac-ssd-health.html" title="Apple M1チップを搭載した一部のMacで異常なスワップが発生し、SSD寿命に影響を与えているもよう。" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://applech2.com/wp-content/uploads/2021/02/Apple-M1-MacBook-Pro-SMART-info.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Apple M1チップを搭載した一部のMacで異常なスワップが発生し、SSD寿命に影響を与えているもよう。</div><div class="blogcard-snippet external-blogcard-snippet">Apple M1チップを搭載した一部のMacで異常なスワップが発生し、SSD寿命に影響を与えているようです。詳細は以下から。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://applech2.com/archives/20210216-macos-swap-affect-apple-m1-mac-ssd-health.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">applech2.com</div></div></div></div></a>




<h2 class="wp-block-heading"><span id="toc3">AirかProか</span></h2>



<p>迷ったポイントと使ってみた感想をまとめます。ここに挙げなかったポイントは私にとっては問題ではありませんでした。</p>



<figure class="wp-block-table"><table><tbody><tr><td>迷いポイント</td><td>MacBook Air</td><td>MacBook Pro</td><td>使ってみた感想</td></tr><tr><td>ファンクションキー</td><td>物理ファンクションキー</td><td>Touch Bar</td><td>世間で言われるほどTouch Barも悪くなく快適な面もあります。</td></tr><tr><td>重量</td><td>1.29Kg</td><td>1.4Kg</td><td> ThinkPad X1と比べるとどちらも重たいけれど、愛用しているひらくPCリュックが有能なので困ったことありません。</td></tr><tr><td>画面の明るさ</td><td>400ニト</td><td>500ニト</td><td>比べれば違うのでしょうが屋外の明るい場所で使ったりしなければどちらでも全く困らないと思います。</td></tr><tr><td>ファンの有無</td><td>なし</td><td>あり</td><td>普段は全く回りません。しかし、排熱性能は個人的に重視するポイントです。</td></tr><tr><td>キーボード</td><td>シザー式</td><td>シザー式</td><td>キーボードフェチとしては譲れないポイント。ThinkPadと比較してどうなるかが心配でしたが超快適です。</td></tr><tr><td>ACアダプタ</td><td>30W</td><td>61W</td><td>Proのアダプタ大きすぎ事案。</td></tr><tr><td>バッテリーのもち（最大値）</td><td>15-18H</td><td>17-20H</td><td>ものすごくもちます。本当になかなか減りません。</td></tr><tr><td>512GB機を選択したときの価格</td><td>129,800円〜</td><td>154,800円〜</td><td>使ってみれば納得するけどWindows機と比較すると高い・・・</td></tr></tbody></table></figure>



<p>この中で「どれが一番迷ったか？」と聞かれれば排熱ファンの有無でした。他の方のレビューを見ていてもファンは本当に回らないという方が殆どですし、ファン不要という意見も多かったです。実際自分で使ってみても初期不良かと迷うくらいファンは回りませんでした。</p>



<p>蛇足ながらファンが初めて回ったのはYOLOでリアルタイム物体検知を行った時でした。それも耳をすませて「あれ？回ってる？」と思うくらいの音量で、そもそも発熱しにくいマシンなんだと思います。</p>



<p>しかし、熱ダレによるパフォーマンスダウンは無視できないと思っていますし、今は一年で最も気温が低い季節であることを考えると排熱性能は確保しておきたいと思いProを選択しました。</p>



<h2 class="wp-block-heading"><span id="toc4">ジャーン（起動音）</span></h2>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-1024x768.jpg" alt="MBP2" class="wp-image-1721" srcset="https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-1024x768.jpg 1024w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-300x225.jpg 300w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-768x576.jpg 768w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-1536x1152.jpg 1536w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8793-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>後ろが散らかっていて申し訳ない・・・</figcaption></figure>



<p>懐かしの起動音を聞きながらあっという間に起動します。設定も分かりやすく即座にセットアップ完了。Mac miniを使っているので使用感はそのままにサクサクと軽快になった感じです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" src="https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-576x1024.jpg" alt="" class="wp-image-1722" srcset="https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-576x1024.jpg 576w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-169x300.jpg 169w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-768x1366.jpg 768w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-864x1536.jpg 864w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-1152x2048.jpg 1152w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8795-scaled.jpg 1440w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<p>同じ初期設定でもWindows10の設定はなんだかごちゃごちゃと分かりにくく感じます。音声ガイダンスのイントネーションに不自然さが残るのは両社変わらずといったところです（笑）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://sandambara.com/wp-content/uploads/2021/02/スクリーンショット-2021-02-22-13.58.20-1024x640.png" alt="" class="wp-image-1723" srcset="https://sandambara.com/wp-content/uploads/2021/02/スクリーンショット-2021-02-22-13.58.20-1024x640.png 1024w, https://sandambara.com/wp-content/uploads/2021/02/スクリーンショット-2021-02-22-13.58.20-300x188.png 300w, https://sandambara.com/wp-content/uploads/2021/02/スクリーンショット-2021-02-22-13.58.20-768x480.png 768w, https://sandambara.com/wp-content/uploads/2021/02/スクリーンショット-2021-02-22-13.58.20.png 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>このキャプチャはマイ環境構築後のものですが、なんとも簡単にセットアップが完了しました。</p>



<h2 class="wp-block-heading"><span id="toc5">Windowsをどうする？</span></h2>



<p>はじめはサーバーに仮想マシンのWindows機をたててリモートデスクトップで利用しようと考えていました（実際にやっています）。</p>



<p>しかし、Parallels（仮想化ソフト）を使えばArm版Windows10を使えることが分かり、今はArmWindowsを使う方が多いです。開発環境もArm側に移しました。</p>



<p>仮想マシンは2プロセッサ+メモリ3GBというよく分からない構成ですが（初期構成のまま）、遅いと感じることなく動作しています。ParallelsもArmWindowsもプレビュー版なので時々応答が無くなったりしますが、この辺りはこれから作り込まれていくものと思っています。</p>



<p>補足というか経験談として、Visual StudioでWindowsFormアプリケーションの作成・ビルドは今のところトラブルなく作業できていますが、ASP.NET coreのプロジェクトはエラーになりビルドできませんでした。</p>



<p>Windows、正式にArm版リリースしてくれないかな・・・Macの長所としてハードの完成度の高さが挙げられますが、そのハードでWindowsを使いたいというニーズはあると思うのは私だけではない・・・と思います。</p>



<h2 class="wp-block-heading"><span id="toc6">使用感まとめ</span></h2>



<p>各所にレビューがそろっているので箇条書きでまとめました。まずは良かった点から。</p>



<ul class="wp-block-list"><li>バッテリーのもちは驚異的（動画編集やエンコードをしない場合）</li><li>ファンは本当に回らない（回っても本当に静か）</li><li>キータッチは浅めのストロークでも全く問題なく絶品</li><li>画面は鮮やかで見やすい（特にフォント）</li><li>WindowsへRDPで繋いでも解像度の違いが気にならない</li><li>ボディーはホールディング・打鍵時ともに剛性感の塊</li><li>トラックパッドの操作性はピカイチ</li></ul>



<p>M1 Macを使い始めて一番驚いたのはファンが回らないことでした。とっても静かで、例えるならラップトップ型のスマホを使っているような感じです。並行してWindows機も使っていますがしょっちゅうファンが回るため、今となってはとても耳障りに感じます。</p>



<p>そして、スリープからの解除も文字通り一瞬です。一瞬というか、スリープせずモニタを閉じていたのか？と疑う程で、使い始めるまではレビューを読んで「そんなたいそうな」と思っていましたが、使ってみると本当に快適です。</p>



<p>考えてみたらスマホなんてとっくにそうでしたよね。これからはこれがスタンダードになるんだろうと思います。</p>



<p>Apple Watchをつけているとロックが勝手に解除されるところも便利ではありますが、Touch IDがあるので「ないならないで」といった感じです。このApple Watchのロック解除機能は早くiPhoneで実用化して欲しいですね。</p>



<p>また、<span class="marker-blue">iPhoneとの連携が素晴らしく便利です。たとえば何か作業していてSMSへ2段階認証のコードが届くことって多いですが、MacのメッセージアプリがそのままSMSを受信してくれるため、いちいちiPhoneを手に取りコードを確認する必要がありません。</span>いたるところで2段階認証を設定しているのでこれがなんとも便利です。</p>



<p>次に残念ポイントです。</p>



<ul class="wp-block-list"><li>疑似解像度でFull HDが使えるともっと良かった（MAX1680*1050）</li><li>もう少しポートが充実していると良かった</li></ul>



<p>えっと・・・残念ポイントももう少し何か書くつもりでしたが正直出てこないです。価格設定がやや割高とは思いますが、プレミアムPCと考えればこんなものかとも思います。</p>



<p>どちらかといえば同じOfficeなのにMac版は使い辛い（=MSしっかりしろ）とかArmで使えないアプリがある（時間が解決してくれそう）とか、Apple以外に望むところが多いです。</p>



<p>以上、MacBook Pro M1購入レビュー本体編でした。</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="MacBook";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&#038;Operation=GetScript&#038;ID=OneJS&#038;WS=1&#038;Marketplace=JP"></script>The post <a href="https://sandambara.com/review-macbook-pro-m1-part1">MacBook Pro M1購入レビュー　本体編</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/review-macbook-pro-m1-part1/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apple Watch Series 6を買ったのでレビュー　ケースとベルトも公開</title>
		<link>https://sandambara.com/apple-watch-series-6?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apple-watch-series-6</link>
					<comments>https://sandambara.com/apple-watch-series-6#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Thu, 11 Feb 2021 09:00:00 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Watch]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[物欲]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1689</guid>

					<description><![CDATA[<p>Apple Watch Series 6を購入しました。発売されてからずっと購入を迷っていたので、その辺りも含め軽くレビューしてみようと思います。開封の儀は今となっては今更感いっぱいですので省略しました。 目次 購入を迷 [&#8230;]</p>
The post <a href="https://sandambara.com/apple-watch-series-6">Apple Watch Series 6を買ったのでレビュー　ケースとベルトも公開</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>Apple Watch Series 6を購入しました。発売されてからずっと購入を迷っていたので、その辺りも含め軽くレビューしてみようと思います。開封の儀は今となっては今更感いっぱいですので省略しました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">購入を迷っていた理由</a></li><li><a href="#toc2" tabindex="0">欲しかった理由</a></li><li><a href="#toc3" tabindex="0">購入！　アルミ？ステンレス？ベルト？GPS？セルラー？</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li><li><a href="#toc5" tabindex="0">追記</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">購入を迷っていた理由</span></h2>



<p>迷っていた理由はいくつかあるのですが、まとめてみるとこんな感じでした。</p>



<ul class="wp-block-list"><li>そんなに大きくライフスタイルが変わる気がしなかった</li><li>20年近く愛用している時計を手放せない</li><li>いわゆる時計と比べて寿命が短く定期的な出費（買い替え）には抵抗がある</li></ul>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>ライフスタイルは人の感じ方次第なのでなんともですが・・・</p>
</div>



<p>iPhoneの通知をApple Watchで受け取れるのが便利と感じるようになったのは自分でも意外でした。最初は「別にiPhoneを見れば済むことだから」と否定的だったのですが、1日のほとんどをマスク姿で過ごす生活においては見逃せない便利機能。格段にiPhoneのロックを解除する回数が減りました。</p>



<p>次期iOSアップデートでiPhoneのロックを解除できるようになるようですが、それでも</p>



<ul class="wp-block-list"><li>今内容を見ないといけない内容の通知か</li><li>後で確認すれば良い内容か</li><li>削除しても良い通知か</li></ul>



<p>これが分かると今直ぐ手元にiPhoneが必要かどうか判断できます。これは私のライフスタイルにおいてとても大きな変化でした。</p>



<p>あと、記事の最後に追記しましたがiPhoneで電子マネーを使っておられる方は劇的に使い勝手が向上します！</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>もともと使っていた時計をどうするか？</p>
</div>



<p>これが一番大きな悩みだったかもしれません。私は時計は1個あればそれで良いタイプなので、今までずっと同じ時計を愛用してきました。</p>



<p>既にメイン（というか充電時以外は付けっぱなし）はApple Watchで、これまで使ってきた時計はフォーマルな場くらいでしか付けないだろう・・・と思っていました。</p>



<p>しかし、いざ愛用していた時計が止まっているのを見るとやっぱり寂しくて（機械式時計なので使わないと止まってしまいます）、自宅にいるときは左右両腕に時計を付ける本田圭佑スタイルに落ち着きましたｗ</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>いわゆる一生ものではないし、定期的に買い換えないといけないのでは？</p>
</div>



<p>これはスマホなどと同じで避けようの無い問題です。ただ、今の時点で今後も使い続けるかどうかは分からないので、この問題は一旦数年後の自分に預けることにしました。</p>



<h2 class="wp-block-heading"><span id="toc2">欲しかった理由</span></h2>



<p>一方でApple Watchが欲しかった理由は主に健康面のサポートを期待してのことでした。</p>



<ul class="wp-block-list"><li>毎朝目覚ましの音にビクッとして起きるのは嫌だ</li><li>血中酸素濃度を知りたい（目安程度にしかなりませんが）</li><li>心電図を測定できるようになったので利用してみたい</li><li>時計から色々お知らせを受けることで体を動かすことを意識したかった</li></ul>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>音では無く振動で目覚める快適さ</p>
</div>



<p>起きる時に目覚ましの音で驚くのって嫌じゃありませんか？必要なんだけど決して快適ではありませんよね。</p>



<p>Apple Watchを装着して眠ると睡眠中も身体状況を色々測定してくれるのですが、音ではなく振動による目覚ましを利用できます。時間になると通知と同じようにブルブルッと振動して起こしてくれるのです。</p>



<p>これが実に体にやさしいのです。なんとも穏やかな目覚め！</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>会社にいる時もテレワークのときも座りっぱなしなのです</p>
</div>



<p>１時間に一度は立ち上がって歩くのが良いと頭で分かっていてもなかなかできないもので、なにかしら「そろそろ一度席を立とう」と思うきっかけを作るのにApple Watchはいいかも・・・と思っていました。</p>



<p>Apple Watchは座っている時間が長くなると立ち上がって歩くように促してくれます。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>パルスオキシメーターを買わなくてもApple Watchで代用できるかも（できません）</p>
</div>



<p>血中酸素濃度を測定できるのはSeries 6だけなので、巷でよく言われる「SEとどっちがいいかな？」という迷いはありませんでした。Series 6一択です。</p>



<p>パルスオキシメーターという言葉を知っている人が増えたのは、間違いなくコロナ禍の影響です。無症状感染者であっても、測ってみると血中酸素濃度が低かったという記事を見たこともあり、気軽に測定できればいいなあと思っていました。</p>



<p>しかし、残念ながら気軽に測定できるのですが、測定結果は医療レベルのものではありません。フィットネスでの利用といった補助的なものですので、ここは正しく認識しておきましょう。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>新しく使えるようになった心電図測定もあてにならないの？</p>
</div>



<p>購入時期と合わせるように心電図も測定できるようになりました。この機能は医療的にも効果が期待されていますので、気軽に測定できるようになったのは嬉しいですね。</p>



<p>ただ、こちらも心臓発作そのものを見つけることはできません。あくまでも予防的な使い方となりますので注意しておきましょう。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box sticky block-box">
<p>どんなお知らせがApple Watchから来るのか？</p>
</div>



<p>席から立ち上がることや深呼吸することといった健康への注意喚起が通知されます。立ち上がって動くとその日のアクティビティとして記録されますし、画面の動きに倣って深呼吸をすると確かに心が落ち着きます。このタイミングで血中酸素濃度や脈拍、心電図を計測しておくのも良いですね。</p>



<h2 class="wp-block-heading"><span id="toc3">購入！　アルミ？ステンレス？ベルト？GPS？セルラー？</span></h2>



<p>散々迷って私が購入したのはこちらのモデルです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="1024" src="https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-768x1024.jpg" alt="" class="wp-image-1697" srcset="https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-768x1024.jpg 768w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-225x300.jpg 225w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-1152x1536.jpg 1152w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-1536x2048.jpg 1536w, https://sandambara.com/wp-content/uploads/2021/02/IMG_8672-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /><figcaption>後ろがMacではなくThinkPadなのはスルーで・・・</figcaption></figure>



<p>ケースはシルバーアルミニウム44mm＋スポーツバンド（ホワイト）、GPSモデルです。</p>



<p>アルミモデルは傷付きやすいとかガラスがサファイアガラスではないとかでステンレスモデルと迷いましたが、セルラーも不要ですしキズ対策はカバーを付ければいいか！ということでアルミモデルにしました。非常に軽く、付けっぱなしでも全く疲れません。</p>



<p>購入したカバーはこちらです。2枚入りでお得ですし、透明度もかなり高くて今のところまったく不満ありません。オススメです！</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B08LQT36L8&amp;linkId=659cb73087b2426257939796dec284ac"></iframe>



<p>あと、「スマートウォッチって、仕事にはどうなの？」という話題をちょくちょく見かけます。確かにフォーマルな感じは一段薄れますし、私自身スマートウォッチに対してちょっとポップな印象を持っていました。</p>



<p>ただ、これって見た目の印象が大きいんですよね。文字盤がポップなデザインであればスマートウォッチでなくともポップな印象になりますし、それはベルトも同じです。</p>



<p>そこで、文字盤をクラシカルなものに変更してベルトもオフの日はスポーツバンド、出社する日はフォーマルな感じのものといった具合に使い分けることにしました。</p>



<p>文字盤はiPhoneのWatchアプリからいくらでも変更できますし、ベルトも純正・サードパーティを含め非常に多く販売されています。ちなみに、私が選んだのはこちらです。価格も手頃でスーツに合わせても全く違和感がありません。</p>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=sandambara02-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=B07S6QPK8X&amp;linkId=acdad03c42210882af8322795f5eb434"></iframe>



<p>ベルトが変わると印象も全く別物になりますね。ベルトの付け替えも非常に簡単なので、オンかオフかという切り替えだけでなく、その日の気分によって色々取り替えてみても面白いと思います。</p>



<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>最初は別に要らないなと思っていたスマートウォッチ（Apple Watch）ですが、今となっては手放すことができなくなりました。</p>



<p>iPhoneではSiriをほぼ使いませんでしたが、Apple Watchではよく使います。アラーム・リマインダーをセットできてすごく楽なので、これはよく使う機能です。</p>



<p>Apple Watchは無ければ無いで困らないと思いますが、あると便利だろうなと思うタイプの人を自身の経験も交えイメージしてみました。</p>



<ul class="wp-block-list"><li>コンピューターを触っている時間が長いけど、それはMacではなくWindowsな人</li><li>炊事洗濯掃除、家事に追われている人</li><li>iPhoneに通知がたくさん来るけど、アクションが必要な通知は少ない人</li><li>睡眠を含め健康への関心が高い人</li><li>スマホを触る時間を少なくしたい人</li></ul>



<p>MacであればMacに通知が来ますのでそれで良いというか、それが一番便利ですね。Windowsを使っている人やMacだけどiPhoneとMacのApple IDが別な人にもオススメかと思います。</p>



<p>家事に追われていちいちスマホを見る余裕の無い人。主に子育て世代のお母さんが当てはまりそうですが、そういった方にもオススメです。スマホを触るよりも先にやらないといけないことが沢山ありますし、Apple Watchをうまく使えばタスクの優先順位をつけやすくなる気がします。また、タイマー関係のセットにSiriを使うととっても便利です。</p>



<p>iPhoneに通知が沢山来るので都度ロックを解除して内容を確認しているという方にはドンピシャです。ただ、順番的には不要な通知をオフにする方が先な気もします。</p>



<p>健康に関心がある方にもオススメです。特に寝ている間も脈拍をはじめ体をモニタしてくれるので、自分の体を詳しく知るには最適なツールだと思います。</p>



<p>最後にスマホを触る時間を少なくしたい人。これは逆説的な発想ですが、スマホって触るとついつい長く触ってしまうという人は多いと思うんですよね。私もOne of themです。</p>



<p>ならばそもそも触らないで済むようにする。それにはApple Watchがとても役立つと思います。Apple Watchでもメッセージに返信したり天気を調べたりできますが、基本的には時計ですのでスマホのような使い方はできません。しかし、必要最小限のことは意外とApple Watchだけで完結しますので、気付くと「あれ？今日はあまりiPhone触ってないかも？」という日が出てくると思います（実体験）。</p>



<p>私もまだまだApple Watchビギナーですので、皆さんの使い方やアイディアを是非コメントや<a rel="noopener" href="https://twitter.com/home" target="_blank">ツイッター</a>で教えて頂ければと思います。最後までお読み頂き有難うございました！</p>



<h2 class="wp-block-heading"><span id="toc5">追記</span></h2>



<p>とっても大事なことを書き忘れていました。iPhoneで電子マネーを使っている方、都度Face IDの解除にお困りではないですか？</p>



<p>Walletへカードを登録しておけばApple Watch側面のボタンをダブルクリックするだけで支払いが可能になりiPhoneを触る必要がありません。これ、一番伝えたかったことでしたｗ</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="Apple Watch";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&#038;Operation=GetScript&#038;ID=OneJS&#038;WS=1&#038;Marketplace=JP"></script>The post <a href="https://sandambara.com/apple-watch-series-6">Apple Watch Series 6を買ったのでレビュー　ケースとベルトも公開</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/apple-watch-series-6/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQL小ネタ（Oracleの関数　add_months）</title>
		<link>https://sandambara.com/https-sandambara-com-tips-postgresql-function-add-months?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=https-sandambara-com-tips-postgresql-function-add-months</link>
					<comments>https://sandambara.com/https-sandambara-com-tips-postgresql-function-add-months#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Tue, 14 Jul 2020 13:41:07 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=704</guid>

					<description><![CDATA[<p>目次 今回はadd_monthsを自作しますPostgreSQLで月を加減するには？add_monthsを作ってみる 今回はadd_monthsを自作します 前回の記事でOracleにあってPostgreSQLに無い関数 [&#8230;]</p>
The post <a href="https://sandambara.com/https-sandambara-com-tips-postgresql-function-add-months">PostgreSQL小ネタ（Oracleの関数　add_months）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">今回はadd_monthsを自作します</a></li><li><a href="#toc2" tabindex="0">PostgreSQLで月を加減するには？</a></li><li><a href="#toc3" tabindex="0">add_monthsを作ってみる</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">今回はadd_monthsを自作します</span></h2>



<p>前回の記事でOracleにあってPostgreSQLに無い関数「last_day」をファンクションで作成しました。今回は月の加減に利用する「add_months」を作ってみたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">PostgreSQLで月を加減するには？</span></h2>



<p>PostgreSQLには「interval」という、月だけでなく年・日の加減にも利用できる関数があります。</p>



<pre class="wp-block-code"><code>今日の1年後
select now()::date + interval '1year';
今日の1か月後
select now()::date + interval '1month';
明日
select now()::date + interval '1day';</code></pre>



<p>これはこれで慣れるとどうということ無いのですが、DB移行案件や「使い慣れた関数はそのまま使いたい」という状況もあります。海外旅行に醤油を持参するのと同じです（謎）</p>



<h2 class="wp-block-heading"><span id="toc3">add_monthsを作ってみる</span></h2>



<p>それでは早速作ってみましょう！</p>



<pre class="wp-block-code"><code>create or replace function add_months(in date, in int) returns date as $$

	select ($1 + ($2::text || ' month')::interval)::date;

$$ language sql;</code></pre>



<p>非常にシンプルですね。</p>



<pre class="wp-block-code"><code>sandambara=# create or replace function add_months(in date, in int) returns date as $$
sandambara$#
sandambara$#         select ($1 + ($2::text || ' month')::interval)::date;
sandambara$#
sandambara$# $$ language sql;
CREATE FUNCTION</code></pre>



<p>使ってみます。</p>



<pre class="wp-block-code"><code>sandambara=# select add_months('2020-07-14', 1);
 add_months
------------
 2020-08-14
(1 row)

sandambara=# select add_months('2020-07-14', -1);
 add_months
------------
 2020-06-14
(1 row)</code></pre>



<p>月末日付に対して加減を行うときは戻り値も月末日付になります。</p>



<pre class="wp-block-code"><code>sandambara=# select add_months('2020-01-31', 1);
 add_months
------------
 2020-02-29
(1 row)</code></pre>



<p>このファンクションのポイントはintervalの使い方です。日頃SQLでintervalを使っていると「interval $2::text || &#8216;month&#8217;」とか「$1 + (interval &#8216;$2 month&#8217;)」と書きたくなりますが、前者はsyntaxエラーで後者は誤演算となります。</p>



<pre class="wp-block-code"><code>sandambara=# -- これはおこられる
sandambara=# create or replace function add_months(in date, in int) returns date as $$
sandambara$#
sandambara$#         select ($1 + (interval $2::text || 'month'))::date;
sandambara$#
sandambara$# $$ language sql;
ERROR:  syntax error at or near "$2"
LINE 3:  select ($1 + (interval $2::text || 'month'))::date;
                                ^

sandambara=# -- これは常に2か月プラスされる
sandambara=# create or replace function add_months(in date, in int) returns date as $$
sandambara$#
sandambara$#         select ($1 + (interval '$2 month'))::date;
sandambara$#
sandambara$# $$ language sql;
CREATE FUNCTION

sandambara=# select add_months('2020-07-14', 1);
 add_months
------------
 2020-09-14
(1 row)

sandambara=# select add_months('2020-07-14', -1);
 add_months
------------
 2020-09-14
(1 row)</code></pre>



<p>Oracle移行組の方、是非お試しください！</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="PostgreSQL";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;Operation=GetScript&amp;ID=OneJS&amp;WS=1&amp;Marketplace=JP"></script>The post <a href="https://sandambara.com/https-sandambara-com-tips-postgresql-function-add-months">PostgreSQL小ネタ（Oracleの関数　add_months）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/https-sandambara-com-tips-postgresql-function-add-months/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQL小ネタ（Oracleの関数　last_day）</title>
		<link>https://sandambara.com/tips-postgresql-function-last-day?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-postgresql-function-last-day</link>
					<comments>https://sandambara.com/tips-postgresql-function-last-day#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 12 Jul 2020 09:40:39 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=672</guid>

					<description><![CDATA[<p>目次 OracleからPostgreSQLに移行を決めたときlast_dayが無いなら作ってしまおうファンクション作成 OracleからPostgreSQLに移行を決めたとき 私は元々Oracleを触っていたのですが、P [&#8230;]</p>
The post <a href="https://sandambara.com/tips-postgresql-function-last-day">PostgreSQL小ネタ（Oracleの関数　last_day）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">OracleからPostgreSQLに移行を決めたとき</a></li><li><a href="#toc2" tabindex="0">last_dayが無いなら作ってしまおう</a></li><li><a href="#toc3" tabindex="0">ファンクション作成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">OracleからPostgreSQLに移行を決めたとき</span></h2>



<p>私は元々Oracleを触っていたのですが、PostgreSQLに移行を検討したとき、同じRDBMSとはいえ「方言の違い」に悩まされました。例えば現在時刻を取得するにしても</p>



<pre class="wp-block-code"><code>Oracle
SELECT SYSDATE FROM DUAL;</code></pre>



<p>に対し</p>



<pre class="wp-block-code"><code>PostgreSQL
SELECT now();</code></pre>



<p>このように使用する関数が異なる場合があるからです（それよりFROM句が無くても良いことが衝撃でした）。</p>



<h2 class="wp-block-heading"><span id="toc2">last_dayが無いなら作ってしまおう</span></h2>



<p>しかし、これはSYSDATEをnow()に変えれば実現できますが「そもそもそんなものは無い」という関数も存在しました。その中で私が良く使っていたものの一つに「last_day」があります。いわずと知れた「その月の最終日を取得する」ための関数です。</p>



<p>PostgreSQLにも日付を操作する関数は勿論ありますが、こんなときはファンクションを自前で作成してしまえば良いと思います。DB丸ごと移行するとなれば、僅かな違いでも要修正箇所が膨大な量になるからです。</p>



<p>余談ですがPostgreSQLでOracleのストアドプロシージャにあたるものはファンクションになり、必ず戻り値を付けねばなりません（戻り値不要のファンクションではreturns voidとなります）。</p>



<h2 class="wp-block-heading"><span id="toc3">ファンクション作成</span></h2>



<pre class="wp-block-code"><code>create or replace function last_day(in date) returns date as $$
	select (((to_char(($1 + interval '1month'), 'yyyy-mm')) || '-01')::date - interval '1day')::date;
$$ language sql;</code></pre>



<p>やっていることは簡単です。月末を求めたい日付を引数で渡し、1か月加算してyyyy-mmの文字列にした後&#8217;-01&#8217;を付与。日付に戻して1日引いたものを返却します。2020年7月12日を引数で渡した場合はこんな感じです。</p>



<pre class="wp-block-code"><code>2020-07-12（引数）
2020-08-12（1か月足す）
2020-08   （yyyy-mmの文字列にする）
2020-08-01（-01を付与して日付に戻す）
2020-07-31（1日引いた値が戻り値）</code></pre>



<p>実行してみます。</p>



<pre class="wp-block-code"><code>sandambara=# select last_day('2020-07-12');
  last_day
------------
 2020-07-31
(1 行)</code></pre>



<p>ストアドやファンクションはドカッとまとまった処理をやらせるだけでなく、こんな風に「あったらいいな」を叶えてくれる便利な機能です。無い機能に落胆せず、あなたの色に染めていきましょう！</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="PostgreSQL";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;Operation=GetScript&amp;ID=OneJS&amp;WS=1&amp;Marketplace=JP"></script>The post <a href="https://sandambara.com/tips-postgresql-function-last-day">PostgreSQL小ネタ（Oracleの関数　last_day）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/tips-postgresql-function-last-day/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQL小ネタ（一発INSERT）</title>
		<link>https://sandambara.com/tips-postgresql-multi-insert?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-postgresql-multi-insert</link>
					<comments>https://sandambara.com/tips-postgresql-multi-insert#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Tue, 07 Jul 2020 05:37:46 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=608</guid>

					<description><![CDATA[<p>昨日の記事を公開した後で思い出したtipsです。同一テーブルへ連続してINSERTを行うことがあります。下記は昨日の記事の例です。 この実行結果がこちらです。 普通ですね（笑） 「ちゃんとトランザクションかけろ」という意 [&#8230;]</p>
The post <a href="https://sandambara.com/tips-postgresql-multi-insert">PostgreSQL小ネタ（一発INSERT）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p><a href="https://sandambara.com/tips-postgresql-pivot" target="_blank">昨日の記事</a>を公開した後で思い出したtipsです。同一テーブルへ連続してINSERTを行うことがあります。下記は昨日の記事の例です。</p>



<pre class="wp-block-code"><code>-- テストデータ投入
INSERT INTO testtable VALUES(1, '2020-01-01', 'りんご', 1000);
INSERT INTO testtable VALUES(2, '2020-01-01', 'りんご', 2000);
INSERT INTO testtable VALUES(3, '2020-01-01', 'バナナ', 3000);
INSERT INTO testtable VALUES(4, '2020-02-02', 'りんご', 1000);
INSERT INTO testtable VALUES(5, '2020-03-03', 'りんご', 5000);
INSERT INTO testtable VALUES(6, '2020-03-03', 'みかん', 1000);
INSERT INTO testtable VALUES(7, '2020-03-03', 'バナナ', 3000);
INSERT INTO testtable VALUES(8, '2020-04-03', 'いちご', 4000);
INSERT INTO testtable VALUES(9, '2020-04-04', 'りんご', 1000);
INSERT INTO testtable VALUES(10,'2020-04-01', 'バナナ', 1000);</code></pre>



<p>この実行結果がこちらです。</p>



<pre class="wp-block-code"><code>sandambara=> -- テストデータ投入
sandambara=> INSERT INTO testtable VALUES(1, '2020-01-01', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(2, '2020-01-01', 'みかん', 2000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(3, '2020-01-01', 'バナナ', 3000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(4, '2020-02-02', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(5, '2020-03-03', 'りんご', 5000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(6, '2020-03-03', 'みかん', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(7, '2020-03-03', 'バナナ', 3000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(8, '2020-04-03', 'いちご', 4000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(9, '2020-04-04', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(10,'2020-04-01', 'バナナ', 1000);
INSERT 0 1</code></pre>



<p>普通ですね（笑）</p>



<p>「ちゃんとトランザクションかけろ」という意見はあるかもしれませんが、だからと言ってこのSQLが悪い訳ではありません。でも、もっとスマートな方法があります。こちらのSQLをご覧ください。</p>



<pre class="wp-block-code"><code>-- 上記はこのように書ける
INSERT INTO testtable VALUES
(1, '2020-01-01', 'りんご', 1000),
(2, '2020-01-01', 'りんご', 2000),
(3, '2020-01-01', 'バナナ', 3000),
(4, '2020-02-02', 'りんご', 1000),
(5, '2020-03-03', 'りんご', 5000),
(6, '2020-03-03', 'みかん', 1000),
(7, '2020-03-03', 'バナナ', 3000),
(8, '2020-04-03', 'いちご', 4000),
(9, '2020-04-04', 'りんご', 1000),
(10,'2020-04-01', 'バナナ', 1000);</code></pre>



<p>実行結果はこちらです。</p>



<pre class="wp-block-code"><code>sandambara=> INSERT INTO testtable VALUES
sandambara-> (1, '2020-01-01', 'りんご', 1000),
sandambara-> (2, '2020-01-01', 'りんご', 2000),
sandambara-> (3, '2020-01-01', 'バナナ', 3000),
sandambara-> (4, '2020-02-02', 'りんご', 1000),
sandambara-> (5, '2020-03-03', 'りんご', 5000),
sandambara-> (6, '2020-03-03', 'みかん', 1000),
sandambara-> (7, '2020-03-03', 'バナナ', 3000),
sandambara-> (8, '2020-04-03', 'いちご', 4000),
sandambara-> (9, '2020-04-04', 'りんご', 1000),
sandambara-> (10,'2020-04-01', 'バナナ', 1000);
INSERT 0 10</code></pre>



<p>1つのSQLで実行できました。「ちりも積もれば」ではありませんが、こういう細かなテクニックは後々効いてきますのでぜひマスターしておきましょう！</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="PostgreSQL";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;Operation=GetScript&amp;ID=OneJS&amp;WS=1&amp;Marketplace=JP"></script>The post <a href="https://sandambara.com/tips-postgresql-multi-insert">PostgreSQL小ネタ（一発INSERT）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/tips-postgresql-multi-insert/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQLで集計をとる時にキク技（縦横変換）</title>
		<link>https://sandambara.com/tips-postgresql-pivot?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-postgresql-pivot</link>
					<comments>https://sandambara.com/tips-postgresql-pivot#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Mon, 06 Jul 2020 10:25:48 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=586</guid>

					<description><![CDATA[<p>SQLで集計を行うとき、実行結果（縦持ち）を横持ちにしたいことがあります。今日は「時々必要に迫られるけどいつも思い出せない」的なtips第2弾です！ 目次 サンプルで使う表 testtable を作成するtesttabl [&#8230;]</p>
The post <a href="https://sandambara.com/tips-postgresql-pivot">PostgreSQLで集計をとる時にキク技（縦横変換）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>SQLで集計を行うとき、実行結果（縦持ち）を横持ちにしたいことがあります。今日は「時々必要に迫られるけどいつも思い出せない」的なtips第2弾です！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">サンプルで使う表 testtable を作成する</a></li><li><a href="#toc2" tabindex="0">testtable表をSELECTしてみる</a></li><li><a href="#toc3" tabindex="0">月毎に売上を集計する</a></li><li><a href="#toc4" tabindex="0">なぜ見辛いのか</a></li><li><a href="#toc5" tabindex="0">縦持ちのデータを横持ちに変換する</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">サンプルで使う表 testtable を作成する</span></h2>



<pre class="wp-block-code"><code>sandambara=> -- 既存テーブルがあれば削除
sandambara=> DROP TABLE IF EXISTS testtable;
DROP TABLE
sandambara=>
sandambara=> -- テストデータ格納用テーブル作成
sandambara=> -- id           主キー
sandambara=> -- salesdate    売上日
sandambara=> -- item         品目
sandambara=> -- amount       販売額
sandambara=> CREATE TABLE testtable(
sandambara(>         id int
sandambara(> ,       salesdate date
sandambara(> ,       item text
sandambara(> ,       amount int
sandambara(> ,       CONSTRAINT pk_testtable PRIMARY KEY(id)
sandambara(> );
CREATE TABLE</code></pre>



<p>こんな感じの表を作ってデータを投入します。</p>



<pre class="wp-block-code"><code>sandambara=> -- テストデータ投入
sandambara=> INSERT INTO testtable VALUES(1, '2020-01-01', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(2, '2020-01-01', 'みかん', 2000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(3, '2020-01-01', 'バナナ', 3000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(4, '2020-02-02', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(5, '2020-03-03', 'りんご', 5000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(6, '2020-03-03', 'みかん', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(7, '2020-03-03', 'バナナ', 3000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(8, '2020-04-03', 'いちご', 4000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(9, '2020-04-04', 'りんご', 1000);
INSERT 0 1
sandambara=> INSERT INTO testtable VALUES(10,'2020-04-01', 'バナナ', 1000);
INSERT 0 1</code></pre>



<h2 class="wp-block-heading"><span id="toc2">testtable表をSELECTしてみる</span></h2>



<p>一先ずそのままSELECTしてみます。「月ごとの販売金額集計」を想定しているので、販売日をyy-mmに変換しています。</p>



<pre class="wp-block-code"><code>sandambara=>
sandambara=> -- 全件普通にSELECT（id昇順）
sandambara=> SELECT
sandambara->         id
sandambara-> ,       to_char(salesdate, 'yy-mm') as salesdate
sandambara-> ,       item
sandambara-> ,       amount
sandambara-> FROM
sandambara->         testtable
sandambara-> ORDER BY
sandambara->         id;</code></pre>



<p>釈迦に説法ではありますが、SELECT順は保証されませんので必ずORDER BYをつけるようにしましょう（見る度に結果が変わっていたら大変ですよね）。実行結果はこちらです。</p>



<pre class="wp-block-code"><code> id | salesdate |  item  | amount
----+-----------+--------+--------
  1 | 20-01     | りんご |   1000
  2 | 20-01     | みかん |   2000
  3 | 20-01     | バナナ |   3000
  4 | 20-02     | りんご |   1000
  5 | 20-03     | りんご |   5000
  6 | 20-03     | みかん |   1000
  7 | 20-03     | バナナ |   3000
  8 | 20-04     | いちご |   4000
  9 | 20-04     | りんご |   1000
 10 | 20-04     | バナナ |   1000
(10 rows)</code></pre>



<p>集計を期待されているとき、このまま提出すると間違いなく突き返されます（笑）</p>



<h2 class="wp-block-heading"><span id="toc3">月毎に売上を集計する</span></h2>



<p>これをGROUP BYしてみます。</p>



<pre class="wp-block-code"><code>sandambara=> -- （★）月・item毎に売上を集計
sandambara=> SELECT
sandambara->         to_char(salesdate, 'yy-mm') as salesdate
sandambara-> ,       item
sandambara-> ,       sum(amount) amount
sandambara-> FROM
sandambara->         testtable
sandambara-> GROUP BY
sandambara->         salesdate
sandambara-> ,       item
sandambara-> ORDER BY
sandambara->         salesdate
sandambara-> ,       item;</code></pre>



<p>結果はこちら。</p>



<pre class="wp-block-code"><code> salesdate |  item  | amount
-----------+--------+--------
 20-01     | みかん |   2000
 20-01     | りんご |   1000
 20-01     | バナナ |   3000
 20-02     | りんご |   1000
 20-03     | みかん |   1000
 20-03     | りんご |   5000
 20-03     | バナナ |   3000
 20-04     | いちご |   4000
 20-04     | りんご |   1000
 20-04     | バナナ |   1000
(10 rows)</code></pre>



<p>集計の目的は果たしているのですが、ちょっと見辛くありませんか？</p>



<h2 class="wp-block-heading"><span id="toc4">なぜ見辛いのか</span></h2>



<p>salesdate列とitem列に同じ値が複数出力されているからです。GROUP BYされてはいるのですが、期待している結果ではありませんよね。</p>



<h2 class="wp-block-heading"><span id="toc5">縦持ちのデータを横持ちに変換する</span></h2>



<p>先ほどの出力結果は集計後の状態ではなく、どちらかと言えば集計前の状態です。よく見る集計結果はこのようなものではないでしょうか？</p>



<pre class="wp-block-code"><code>  item  | 20-01 | 20-02 | 20-03 | 20-04
--------+-------+-------+-------+-------
 いちご |     0 |     0 |     0 |  4000
 みかん |  2000 |     0 |  1000 |     0
 りんご |  1000 |  1000 |  5000 |  1000
 バナナ |  3000 |     0 |  3000 |  1000
(4 rows)
</code></pre>



<p>縦持ちのデータを横持ちにすることで、販売月と品名の重複出力が無くなりスッキリと見やすくなりました。ではSQLを見てみましょう！</p>



<pre class="wp-block-code"><code>sandambara=> -- （★）を横持ちに変換
sandambara=> SELECT
sandambara->         item
sandambara-> ,       sum(CASE WHEN to_char(salesdate, 'yy-mm') = '20-01' THEN amount ELSE 0 END) as "20-01"
sandambara-> ,       sum(CASE WHEN to_char(salesdate, 'yy-mm') = '20-02' THEN amount ELSE 0 END) as "20-02"
sandambara-> ,       sum(CASE WHEN to_char(salesdate, 'yy-mm') = '20-03' THEN amount ELSE 0 END) as "20-03"
sandambara-> ,       sum(CASE WHEN to_char(salesdate, 'yy-mm') = '20-04' THEN amount ELSE 0 END) as "20-04"
sandambara-> FROM
sandambara->         testtable
sandambara-> GROUP BY
sandambara->         item
sandambara-> ORDER BY
sandambara->         item;</code></pre>



<p>ゼロ値が不要であればELSE 0を削除すればOKです。</p>



<p>初めて見たときはなぜこれで縦横変換を行えるのか？？？でした。よく見るとsalesdate列はSELECTされずGROUP BY句とORDER BY句からも消えました。結果としてitem列単独でGROUP BYを行っています。</p>



<p>肝になるのはSUMにyy-mmを付与することでsalesdate列の代用としていることです。これは非常に便利なテクニックですので是非活用してみてください！</p>



<script type="text/javascript">amzn_assoc_ad_type ="responsive_search_widget"; amzn_assoc_tracking_id ="sandambara02-22"; amzn_assoc_marketplace ="amazon"; amzn_assoc_region ="JP"; amzn_assoc_placement =""; amzn_assoc_search_type = "search_widget";amzn_assoc_width ="auto"; amzn_assoc_height ="auto"; amzn_assoc_default_search_category =""; amzn_assoc_default_search_key ="PostgreSQL";amzn_assoc_theme ="light"; amzn_assoc_bg_color ="FFFFFF"; </script><script src="//z-fe.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;Operation=GetScript&amp;ID=OneJS&amp;WS=1&amp;Marketplace=JP"></script>The post <a href="https://sandambara.com/tips-postgresql-pivot">PostgreSQLで集計をとる時にキク技（縦横変換）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/tips-postgresql-pivot/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
