<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://codedchords.dev/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;codedchords.dev</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Application</tabi:current_section>
    </tabi:metadata><title>Coded Chords - Application</title>
        <subtitle>A personal blog</subtitle>
    <link href="https://codedchords.dev/tags/application/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://codedchords.dev/tags/application/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-06-27T10:00:00+09:00</updated><id>https://codedchords.dev/tags/application/atom.xml</id><entry xml:lang="en">
        <title>pCloud DriveのmacOS Tahoe問題</title>
        <published>2026-06-27T10:00:00+09:00</published>
        <updated>2026-06-27T10:00:00+09:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2026/06/pcloud-tahoe-rclone/" type="text/html"/>
        <id>https://codedchords.dev/blog/2026/06/pcloud-tahoe-rclone/</id>
        
            <content type="html">&lt;!-- textlint-disable --&gt;
&lt;img
  src=&quot;https:&amp;#x2F;&amp;#x2F;codedchords.dev&amp;#x2F;blog&amp;#x2F;2026&amp;#x2F;06&amp;#x2F;pcloud-tahoe-rclone&amp;#x2F;cover.webp?h=705f04e088eabd5c42f6&quot;
  alt=&quot;Cover&quot; width=&quot;1536&quot; height=&quot;864&quot; loading=&quot;lazy&quot;
&#x2F;&gt;&lt;!-- textlint-enable --&gt;
&lt;details&gt;
&lt;summary&gt;Table of Contents&lt;&#x2F;summary&gt;
&lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
&lt;p&gt;macOS Tahoe(macOS 26)に上げてから、pCloud Driveが起動するが機能しない状態となりました。
やっかいなのは、アプリ単体では済まず、うっかりpCloud Driveを開こうとするとキーボードが効かなくなるなどMac全体が一時的に不安定になる点です。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pCloudとは&quot;&gt;pCloudとは&lt;&#x2F;h2&gt;
&lt;p&gt;pCloudは、スイスのpCloud AGが提供するクラウドストレージサービスです。買い切りの生涯プランがあること、ファイルを暗号化して預けられること、そしてアカウントを作ると無料枠から使い始められることで知られています。&lt;&#x2F;p&gt;
&lt;p&gt;Macで使う場合、もっとも手軽なのは公式のpCloud Driveアプリです。これはクラウド上のファイルを、ローカルの仮想ドライブ(&lt;code&gt;~&#x2F;pCloud Drive&lt;&#x2F;code&gt;)としてマウントして見せてくれます。Finderから普通のフォルダのように開けるので、クラウドを意識せずに使えるのが利点です。&lt;&#x2F;p&gt;
&lt;p&gt;一方で、この「仮想ドライブとして見せる」仕組みは、macOSのファイルシステム拡張に依存します。後述するように、ここがOSのアップデートで影響を受けやすい部分でもあります。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;macOS_Tahoeでの不具合&quot;&gt;macOS Tahoeでの不具合&lt;&#x2F;h2&gt;
&lt;p&gt;私の環境はApple SiliconのMacで、OSはTahoe(macOS 26)です。アップデート後、pCloud Driveが機能せず、開こうとするとOS全体の挙動が一時的に不安定になりました。&lt;&#x2F;p&gt;
&lt;p&gt;同様の現象が一般に報告されているか調べたところ、Tahoe環境での不具合報告が複数見つかりました。代表的なものは次の通りです。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;アップデート後に「Enable Disk(仮想ドライブのマウント)」が機能しない&lt;&#x2F;li&gt;
&lt;li&gt;メニューバーのアイコンが表示されない&lt;&#x2F;li&gt;
&lt;li&gt;ドライブは見えてもマウント・同期ができない&lt;&#x2F;li&gt;
&lt;li&gt;ドライブ有効化時に「outdated(古い)」と表示され有効化できない&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;これらはフォーラムでの報告であり、「同様の事例が存在する」ことの裏付けにはなりますが、原因や解決を断定する根拠にはなりません。pCloud公式が症状ごとの原因を断定して公表しているわけでもありません。そのため、ここから先に書く原因は、あくまで私の推測として読んでください。&lt;&#x2F;p&gt;
&lt;p&gt;pCloud Driveは、クラウドをローカルの仮想ドライブとして見せるために、ファイルシステム拡張(pCloudFS &#x2F; macFUSE)を使います。この低レベルの拡張がロードに失敗したり、カーネル側で引っかかったりすると、アプリ単体のクラッシュにとどまらず、OS全体の挙動に波及することがあります。私が遭遇した「開こうとすると全体が不安定」という症状は、このパターンと整合します。OSのメジャーアップデート直後は、こうした低レベル拡張の互換性が崩れやすく、不安定になりがちです。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pCloud_Driveのアンインストール&quot;&gt;pCloud Driveのアンインストール&lt;&#x2F;h2&gt;
&lt;p&gt;macOS向けのpCloud DriveはApple Siliconになってから問題も多く、macOSの変更による影響も受けやすいのでうんざりしていました。&lt;&#x2F;p&gt;
&lt;p&gt;OS全体を巻き込んで不安定になるアプリの回復に時間をかけるより、他の方法に移行しpCloud Driveはアンインストールすることにしました。&lt;&#x2F;p&gt;
&lt;p&gt;アンインストールは次の2ステップが必要です。&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;ログイン項目からpCloud Driveを外してmacOSを再起動&lt;&#x2F;li&gt;
&lt;li&gt;pCloud Driveの削除&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;まずシステム設定 → 一般 → ログイン項目と機能拡張からpCloud Driveを外し、いったんmacOSを再起動して拡張の常駐を切ります。&lt;&#x2F;p&gt;
&lt;p&gt;次にアプリ本体を削除です。&lt;&#x2F;p&gt;
&lt;p&gt;手動で削除する場合は、pCloud Driveを完全終了(できればアプリ内でログアウト&#x2F;Unlink)してから、アプリ本体をゴミ箱へ移し、&lt;code&gt;~&#x2F;Library&lt;&#x2F;code&gt;配下の残骸を削除します。主な残骸は次の場所です。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;leftovers.txt&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;~&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&#x2F;Library&#x2F;Application Support&#x2F;pCloud&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;~&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&#x2F;Library&#x2F;Application Support&#x2F;com.pcloud.pcloud.macos&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;~&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&#x2F;Library&#x2F;Caches&#x2F;com.pcloud.pcloud.macos&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;~&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&#x2F;Library&#x2F;Preferences&#x2F;com.pcloud.pcloud.macos.plist&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;私が実際に使ったのは、CLIのアンインストーラであるMole(&lt;code&gt;tw93&#x2F;Mole&lt;&#x2F;code&gt;)です。Homebrewで導入でき、コマンド名は&lt;code&gt;mo&lt;&#x2F;code&gt;になります。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;install-mole.sh&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;brew&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; install mole&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;mo uninstall&lt;&#x2F;code&gt;は、アプリ本体に加えて、launch agentやPreferences、Cachesといった関連ファイルもまとめて削除してくれます。安全のため、まず&lt;code&gt;--dry-run&lt;&#x2F;code&gt;で削除対象を確認してから本実行しました。対象アプリの正確な名前は&lt;code&gt;--list&lt;&#x2F;code&gt;で確認できます。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;uninstall.sh&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; uninstall --list&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;                   # mo uninstall が受け付ける正確なアプリ名を一覧表示&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt; uninstall --dry-run &amp;quot;pCloud Drive&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;  # 削除対象を事前確認(変更は行わない)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; uninstall&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;                           # 対話形式の一覧から pCloud Drive を選んで実行&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;引数なしの&lt;code&gt;mo uninstall&lt;&#x2F;code&gt;は対話形式のセレクタを開くので、一覧からpCloud Driveを選んで実行します。アプリ名を引数で渡せば、対話なしで直接アンインストールできます。削除されたファイルは既定でゴミ箱へ送られるため、必要なら復元できます。&lt;&#x2F;p&gt;
&lt;p&gt;Moleが消すのは、主にユーザーレベルの関連ファイルです。macOSにシステム拡張として登録された部分(pCloudFS &#x2F; システム拡張)は対象外になることがあります。通常はmacOSを再起動するとクリアされますが、残っていないかは次のコマンドで確認できます。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;check-extensions.sh&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;systemextensionsctl&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; list&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;   # pCloud AG の拡張が残っていないか確認&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Mole自身も、macOS 15以降では一部の拡張系の権限エントリがアプリ削除後も残ること、そしてその種のリセットはグローバルかつリカバリモードを要するため自動では行わないことを、警告として明示しています。ツール任せにせず、最後は再起動と&lt;code&gt;systemextensionsctl list&lt;&#x2F;code&gt;での確認で締めるのが現実的です。私の環境では、ログイン項目から外して再起動したあとにアンインストールしたこともあり、最終的にpCloud AGの拡張は1つも残りませんでした。&lt;&#x2F;p&gt;
&lt;p&gt;なお、pCloud Driveアプリをアンインストールしても、pCloudアカウント自体は消えません。Web(my.pcloud.com)からファイルにはアクセスできますし、消えるのは有効化済みの同期設定とカスタム設定だけです。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;rcloneでの設定方法とメリット&quot;&gt;rcloneでの設定方法とメリット&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;rclone.org&#x2F;&quot;&gt;rclone&lt;&#x2F;a&gt;は、各種クラウドストレージをコマンドラインから統一的に扱えるツールです。以前「&lt;a href=&quot;https:&#x2F;&#x2F;codedchords.dev&#x2F;blog&#x2F;2026&#x2F;04&#x2F;rclone&#x2F;&quot;&gt;rcloneとS3ライフサイクルで作る個人データのコールドアーカイブ&lt;&#x2F;a&gt;」でAmazon S3を使った長期保管の構成をまとめましたが、pCloudもバックエンドとして公式にサポートされています。&lt;&#x2F;p&gt;
&lt;p&gt;設定は&lt;code&gt;rclone config&lt;&#x2F;code&gt;の対話で行います。ブラウザ認証を済ませると、設定ファイル&lt;code&gt;~&#x2F;.config&#x2F;rclone&#x2F;rclone.conf&lt;&#x2F;code&gt;が作られ、内容は次のようになります。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;toml&quot; data-name=&quot;rclone.conf&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation&quot;&gt;[&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;pcloud&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-source&quot;&gt;type&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value&quot;&gt; =&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt; pcloud&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-source&quot;&gt;hostname&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value&quot;&gt; =&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt; eapi.pcloud.com&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-source&quot;&gt;token&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value&quot;&gt; =&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; {&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&amp;quot;access_token&amp;quot;:&amp;quot;&amp;lt;rclone config の認証で自動生成されるアクセストークン&amp;gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;,&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&amp;quot;token_type&amp;quot;:&amp;quot;bearer&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;,&lt;&#x2F;span&gt;&lt;span class=&quot;z-source&quot;&gt;&amp;quot;expiry&amp;quot;:&amp;quot;0001-01-01T00:00:00Z&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;ここで&lt;code&gt;token&lt;&#x2F;code&gt;は&lt;code&gt;rclone config&lt;&#x2F;code&gt;のOAuth認証で自動生成されるものです。手で書く必要はありませんし、アクセストークンそのものなので、他人に見せたりリポジトリにコミットしたりしないよう注意してください。この記事でも実際の値はプレースホルダに置き換えています。&lt;&#x2F;p&gt;
&lt;!-- textlint-disable --&gt;
&lt;aside data-position=&quot;right&quot;&gt;
    &lt;p&gt;私はプライバシーを重視しているので、ヨーロッパリージョン(&lt;code&gt;eapi.pcloud.com&lt;&#x2F;code&gt;)を使っています。&lt;&#x2F;p&gt;

&lt;&#x2F;aside&gt;
&lt;!-- textlint-enable --&gt;
&lt;p&gt;&lt;code&gt;hostname&lt;&#x2F;code&gt;はリージョンを指します。&lt;code&gt;eapi.pcloud.com&lt;&#x2F;code&gt;はヨーロッパリージョン、&lt;code&gt;api.pcloud.com&lt;&#x2F;code&gt;(デフォルト)は米国リージョンです。アカウントがヨーロッパリージョンの場合は、ここを&lt;code&gt;eapi.pcloud.com&lt;&#x2F;code&gt;に設定しておかないとトークンエラーになることがあります。通常はOAuth認証の過程で適切に設定されますが、うまくいかないときはこの値を疑ってください。&lt;&#x2F;p&gt;
&lt;p&gt;設定できたら、まずは中身が見えるか確認します。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;verify.sh&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;rclone&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; lsd pcloud:&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;                                # トップ階層のディレクトリ一覧&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;rclone&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; copy pcloud:My&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt;\ &lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt;Pictures ~&#x2F;Downloads&#x2F;pics&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;  # 取り出し(ダウンロード)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;rclone&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; sync ~&#x2F;work pcloud:work&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;                    # ローカルからクラウドへ同期(送信)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Finderのようにフォルダとしてマウントしたい場合は&lt;code&gt;rclone mount&lt;&#x2F;code&gt;も使えますが、こちらはmacFUSEを必要とします。日常的なファイルの取り出しや同期は、マウントせずとも上記のコマンドだけで完結します。&lt;&#x2F;p&gt;
&lt;p&gt;pCloud Driveからrcloneへ寄せる利点は、大きく2つです。&lt;&#x2F;p&gt;
&lt;dl&gt;
&lt;dt&gt;macOSへの非依存&lt;&#x2F;dt&gt;
&lt;dd&gt;コマンドベースの転送(&lt;code&gt;copy&lt;&#x2F;code&gt;、&lt;code&gt;sync&lt;&#x2F;code&gt;、&lt;code&gt;lsd&lt;&#x2F;code&gt;、&lt;code&gt;cat&lt;&#x2F;code&gt;)はファイルシステム拡張を使わず、ユーザーランドだけで完結する。今回の不具合の原因だったpCloudFS &#x2F; macFUSEとは無縁で、OSのメジャーアップデートにも振り回されない。&lt;&#x2F;dd&gt;
&lt;dt&gt;CLIでの自動化&lt;&#x2F;dt&gt;
&lt;dd&gt;CLIとなることで、&lt;code&gt;launchd&lt;&#x2F;code&gt;やシェルスクリプトに組み込みが自由になる。バックアップや定期同期などを自動化して回せる。&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h2 id=&quot;pCloudのサービス継続性について&quot;&gt;pCloudのサービス継続性について&lt;&#x2F;h2&gt;
&lt;p&gt;ここで、pCloudというサービス自体の信頼性にも触れておきます。&lt;&#x2F;p&gt;
&lt;p&gt;pCloudの大きなウリは、一度の支払いで使い続けられる&lt;strong&gt;買い切り(Lifetime)プラン&lt;&#x2F;strong&gt;です。
ただし、その「Lifetime」が何を指すのかは、規約を読むと印象より限定的です。pCloudの利用規約は、買い切りプランの有効期間を「アカウント所有者の生存期間か99年のいずれか短い方」と定義しています。さらに「pCloudが事業を停止した場合、アカウントは終了し、サービスは提供されない」とも明記されています。買い切りは、永久でも、企業の存続から独立した保証でもありません。&lt;&#x2F;p&gt;
&lt;p&gt;そうなると運営元の規模が気になります。&lt;&#x2F;p&gt;
&lt;p&gt;pCloudを提供するpCloud AGはスイスの非上場企業で社員は数十人規模、外部資本を入れないブートストラップ経営です。
非上場企業のため正確な業績は外から分かりません。出回っている年商も10億円程度&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;です。&lt;&#x2F;p&gt;
&lt;p&gt;pCloudサービスは設立から10年以上続き、ユーザーも2,000万を超えて伸びており、「経営が危ない」という状況ではなさそうです。&lt;&#x2F;p&gt;
&lt;p&gt;しかし、規模の小ささ自体が構造的な継続性リスクになります。買収や方針転換、大手との競争で、サービスの将来を一個人が見通すことはできません。また、規模の小ささが、今回の様な新しいmacOSへの対応の遅れの要因ともなっているかと思います。&lt;&#x2F;p&gt;
&lt;p&gt;だからこそ、買い切りだからと唯一の保管先にはせず、今回のrcloneのような別経路や、ローカル・別クラウドにもコピーを持っておくのが現実的だと考えています。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;macOS Tahoeとの互換性によるpCloud Drive不具合から、一旦rcloneに移行しました。&lt;&#x2F;p&gt;
&lt;p&gt;とはいえ、pCloud DriveはDropboxのSmart Syncのようにキャッシュだけのローカルに置く方式で便利なので、いつか安定したら戻りたいものです。&lt;&#x2F;p&gt;
&lt;p&gt;振り返ってみると、pCloudの2TBライフタイムを購入したのは2021年です。350ドル（当時のレート1ドル約109円で約38,200円）の一括払いでした。仮に、Dropbox Plusの2TBを使用していたとしたら、年額15,840円（税込）かかります。
2年半足らずで買い切りが追いつき、購入から約5年が経った今では、Dropboxなら累計8万円ほどかかっていた計算です。円で累計コストを並べると、その差がはっきりします。&lt;&#x2F;p&gt;
&lt;!-- textlint-disable --&gt;
&lt;img
  src=&quot;https:&amp;#x2F;&amp;#x2F;codedchords.dev&amp;#x2F;blog&amp;#x2F;2026&amp;#x2F;06&amp;#x2F;pcloud-tahoe-rclone&amp;#x2F;cost-comparison.svg?h=42f101b3b0d542a4bd8a&quot;
  alt=&quot;2TBストレージの累計コスト。pCloudは2021年に約38,200円の買い切り、Dropboxは年額15,840円で累計が増え、約2.4年でpCloudが有利になる。&quot; width=&quot;760&quot; height=&quot;440&quot; loading=&quot;lazy&quot;
&#x2F;&gt;&lt;!-- textlint-enable --&gt;
&lt;p&gt;あまりヘビーに依存せず上手に使っていきたいと思います。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;References&quot;&gt;References&lt;&#x2F;h2&gt;
&lt;!-- textlint-disable --&gt;
&lt;div class=&quot;references&quot;&gt;
    &lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.pcloud.com&#x2F;release-notes&#x2F;mac-os.html&quot;&gt;pCloud&lt;&#x2F;a&gt;. 「pCloud for macOS リリースノート」&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.pcloud.com&#x2F;ja&#x2F;help&#x2F;general-help-center&#x2F;what-if-i-uninstall-pcloud-from-my-computer&quot;&gt;pCloud&lt;&#x2F;a&gt;. 「コンピュータからpCloudをアンインストールするとどうなりますか」&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.pcloud.com&#x2F;terms_and_conditions.html&quot;&gt;pCloud&lt;&#x2F;a&gt;. &quot;Terms and Conditions&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;support.apple.com&#x2F;en-us&#x2F;102610&quot;&gt;Apple Support&lt;&#x2F;a&gt;. &quot;Delete apps on your Mac&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;rclone.org&#x2F;pcloud&#x2F;&quot;&gt;rclone&lt;&#x2F;a&gt;. &quot;pCloud backend documentation&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tw93&#x2F;mole&quot;&gt;Mole&lt;&#x2F;a&gt;. &quot;tw93&#x2F;Mole&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;&#x2F;div&gt;
&lt;!-- textlint-enable --&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;創業者の自己申告(約16.5億円)と第三者の推計(約6.6億円)で2倍以上の開きがあり、健全性を客観的に確かめる手段がありません。 &lt;a href=&quot;#fr-1-1&quot;&gt;↩&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;section&gt;
</content>
        <summary type="html">pCloudを長らく使用していますが、macOS TahoeにしてからpCloud Driveが機能せずMac全体が一時的に不安定になりました。
他のユーザーでも同様らしくアプリの改善は時間がかかりそうなので、別の方法を検討しました。
</summary>
        </entry><entry xml:lang="en">
        <title>Macバックアップ戦略・改訂版</title>
        <published>2026-06-09T13:37:30+09:00</published>
        <updated>2026-06-09T13:37:30+09:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2026/06/mac-backup/" type="text/html"/>
        <id>https://codedchords.dev/blog/2026/06/mac-backup/</id>
        
            <content type="html">&lt;img
  src=&quot;https:&amp;#x2F;&amp;#x2F;codedchords.dev&amp;#x2F;blog&amp;#x2F;2026&amp;#x2F;06&amp;#x2F;mac-backup&amp;#x2F;cover.webp?h=e1641700571b6a83b0d5&quot;
  alt=&quot;Cover&quot; width=&quot;1536&quot; height=&quot;864&quot; loading=&quot;lazy&quot;
&#x2F;&gt;&lt;details&gt;
&lt;summary&gt;Table of Contents&lt;&#x2F;summary&gt;
&lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;長らくMacのバックアップにはSuperDuperを使い、Bootableなクローンを作ってきました。その方針は、以前&lt;a href=&quot;https:&#x2F;&#x2F;codedchords.dev&#x2F;blog&#x2F;2025&#x2F;04&#x2F;backup-strategy-for-mac&#x2F;&quot;&gt;Apple Silicon時代のMacバックアップ最新戦略&lt;&#x2F;a&gt;で整理したとおりです。ですが新しいmacOSへの対応がなかなか進まず、Tahoeに至っては一年あまり経った今も正式版すら出ません。そこでSuperDuperを諦め、rsyncでホームディレクトリを鏡像コピーする方式に切り替えました。この記事はその続編であり、乗り換えの理由と設定方法をまとめたものです。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;なぜTime_Machineが嫌いか&quot;&gt;なぜTime Machineが嫌いか&lt;&#x2F;h2&gt;
&lt;p&gt;バックアップの話をすると、まずTime Machineを勧められます。ですが私は、ごく初期に使ったきり、その後はすっかり避けるようになりました。&lt;&#x2F;p&gt;
&lt;p&gt;もともとは、Bootableなクローンを作れるサードパーティツールを使っていたからです。
Bootableなクローンが作れれば、ディスクが壊れた際にはクローンからmacOSを起動して復旧できます。&lt;&#x2F;p&gt;
&lt;p&gt;ただし、現在ではBootableなクローンを技術的に作成できなくなりました(後述)。
それでも、Time Machineには不信感が根強く、直感が先に拒否します。その裏には技術的な理由が3つあります。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;不確実性&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Time Machineはバックアップ先を専用のアーカイブ(sparsebundle)として抱え込む。中で何が起きているかは見えず、壊れていても警告は出ない。実際、復元しようとしたらアーカイブが読めず、修復もできず、履歴を全部捨てて最初からやり直すしかなかったという報告は後を絶たない。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;破損に弱い&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;sparsebundleは中身を多数の小さなバンドファイルに分け、その内側に1つのファイルシステムを抱える構造になっている。個々のファイルを直接取り出すことはできず、必ずイメージ全体をマウントして読む。だからバンドや内部の目次(カタログ)が一部でも壊れると、イメージごとマウント不能になり、世代を問わず全データに手が届かなくなる。世代を積み上げる構造だけに、過去のバックアップまでまとめて道連れになりやすい。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;ブラックボックス&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;何がどうコピーされ、どう積み上げられているのか、仕組みそのものがユーザーからは見えない。バックアップ先を開いても何がどう入っているか分からず、「このファイルが今そこにある」とFinderで素朴に確かめることもできない。中で何が行われているか把握できないものに大事なデータを預けるのは、技術者としてどうにも信用しきれない。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;私が欲しいのはその逆です。バックアップ先を開けば、コピー元とそっくり同じ構造でファイルがそのまま並んでいて、いざというとき個別のファイルをドラッグで取り出せる。履歴はいりません。今この瞬間の鏡像が1つあれば十分です。見えて、触れて、そのまま取り出せること。Time Machineはこの要求に対して、仕組みからして向いていません。&lt;&#x2F;p&gt;
&lt;p&gt;そのため、私は丸ごとBootableなディスククローンを作成できるサードパーティ製のツールを利用してきました。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;macOSの変化で、bootableクローンが封じられた&quot;&gt;macOSの変化で、bootableクローンが封じられた&lt;&#x2F;h2&gt;
&lt;p&gt;ところが、ここ数年のmacOSの変化で、その前提が崩れました。サードパーティ製ツールによるBootableなクローンが、事実上できなくなったのです。経緯を追うと、じわじわと封じられてきたことが分かります。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Big Surでシステムとデータが分離&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;起動ディスクが、OSの入った読み取り専用のシステムボリュームと、ユーザーデータのデータボリュームに完全分離された。システム側は改ざん防止のため署名・封印され、サードパーティ製アプリが直接コピーできなくなった。OSを複製する役目はApple自身の仕組み(レプリケーター)に移り、それが動き続けるかどうかもApple次第になった。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Sequoia 15.2が決定打&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Appleがそのレプリケーターを壊し、SuperDuperはBootableなバックアップを作れなくなった。データ複製の終盤、PrebootやRecoveryをコピーするあたりで失敗する。これはツール側のバグではなく、Apple側の問題だと開発元が明言している。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Tahoeでは正式対応すら出せず&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;互換性の壁がさらに増え、SuperDuperは正式版を出せていない。Tahoe対応は暫定ベータ(v3.20系)でしのぐ状態が続いている。一時はベータでの改善に期待もしたが、一年あまり経ってもベータのまま。起動可能クローンへの望みは、もう捨てた。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;要点を取り違えないことが大事です。壊れたのはBootableなシステム丸ごとクローンであって、ホーム(データ)のコピーが禁じられたわけではありません。Appleが封じたのはシステムボリュームの複製で、ユーザーのデータをコピーすること自体は今も普通にできます。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;今日のmacOSでのバックアップ戦略&quot;&gt;今日のmacOSでのバックアップ戦略&lt;&#x2F;h2&gt;
&lt;p&gt;ここで要件が変わります。&lt;&#x2F;p&gt;
&lt;p&gt;Bootableにできないのなら、システムボリュームまで丸ごとコピーする意味はもうありません。bootableという目的が消えた以上、「全部コピーする」根拠も一緒に消えました。残ったのは、自分のデータだけを守れればいい、という縮退した要求です。&lt;&#x2F;p&gt;
&lt;p&gt;つまり「ホームディレクトリだけでいい」は、最初からそう思っていたわけではありません。bootableを失った結果として、そこまで切り詰めた制約の上に成り立っています。この経緯を踏まえると、要件は次のように整理できます。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;バックアップ対象はホームディレクトリのみ。システムは諦める。&lt;&#x2F;li&gt;
&lt;li&gt;アプリが&lt;code&gt;~&#x2F;Library&lt;&#x2F;code&gt;配下などに書く、ユーザーが関知しないデータも要らない。多くは再生成されるので、守る価値がない。&lt;&#x2F;li&gt;
&lt;li&gt;差分でいい。変わっていないファイルは書き換えず、変わったぶんだけ転送する。&lt;&#x2F;li&gt;
&lt;li&gt;世代管理はいらない。常にコピー元と同じ、今この瞬間の鏡像が1つあればいい。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;rsyncのメリット&quot;&gt;rsyncのメリット&lt;&#x2F;h2&gt;
&lt;p&gt;この縮退した要件に、rsyncはきれいに合います。&lt;&#x2F;p&gt;
&lt;p&gt;第一に、差分転送が本職です。rsyncは初期状態で、サイズと更新日時を見て一致するファイルをまるごとスキップします。変わっていないファイルは触らず、変わったぶんだけ送ります。「変更ないファイルは書き換えたくない」という要求が、特別な設定なしにそのまま満たされます。&lt;&#x2F;p&gt;
&lt;p&gt;第二に、コピー先がただのファイルになります。バックアップ先は元と同じフォルダ階層がそのまま並ぶので、Finderで全部見えますし、個別ファイルをドラッグで取り出せます。Time Machineの抽象化とは正反対の、見える鏡像が手に入ります。&lt;&#x2F;p&gt;
&lt;p&gt;第三に、世代を持たない運用ができます。&lt;code&gt;--delete&lt;&#x2F;code&gt;を付ければ、コピー元で消したものはバックアップ先からも消え、常に最新の一枚の鏡像が保たれます。履歴の束は作られません。&lt;&#x2F;p&gt;
&lt;p&gt;第四に、無料で、スクリプトに組めて、スケジュール実行まで自前で完結します。専用アプリのライセンスや、OSの更新に追従できないツールの都合で振り回されることもありません。&lt;&#x2F;p&gt;
&lt;!-- textlint-disable --&gt;
&lt;div class=&quot;admonition warning&quot;&gt;
    &lt;div class=&quot;admonition-icon admonition-icon-warning&quot;&gt;&lt;&#x2F;div&gt;
    &lt;div class=&quot;admonition-content&quot;&gt;
        &lt;strong class=&quot;admonition-title&quot;&gt;標準のrsyncは使わない&lt;&#x2F;strong&gt;
        &lt;p&gt;Sequoia&#x2F;Tahoe標準のrsyncは&lt;code&gt;openrsync&lt;&#x2F;code&gt;という別実装で、出来がよくありません。&lt;code&gt;-a&lt;&#x2F;code&gt;で特殊ファイルに当たると止まる、拡張属性でクラッシュするといった報告があります。標準のものは避け、Homebrewで本家のrsync(3.x系)を入れて使いましょう。&lt;&#x2F;p&gt;

    &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;!-- textlint-enable --&gt;
&lt;h2 id=&quot;準備&quot;&gt;準備&lt;&#x2F;h2&gt;
&lt;p&gt;まずHomebrewで本家rsyncを入れます。TahoeはApple Silicon専用なので、入れると&lt;code&gt;&#x2F;opt&#x2F;homebrew&#x2F;bin&#x2F;rsync&lt;&#x2F;code&gt;に置かれます。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;brew install rsync&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;もう1つ、フルディスクアクセスの設定が要ります。最近のmacOSでは、これが無いとホーム内の保護領域(メールなど)が読めず、警告も出さずに黙って飛ばされます。手で動作確認するときは使っているターミナルを、自動実行するときは後述のスクリプトを、システム設定のプライバシーとセキュリティ → フルディスクアクセスに追加しておきます。これを怠ると「バックアップしたつもりで一部入っていない」が起きます。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;コマンドと除外設計&quot;&gt;コマンドと除外設計&lt;&#x2F;h2&gt;
&lt;p&gt;バックアップ本体は、次の一本にまとめます。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot; data-name=&quot;~&#x2F;bin&#x2F;backup-home.sh&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-shebang z-shell z-meta z-shebang z-shell&quot;&gt;#!&#x2F;bin&#x2F;bash&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-source&quot;&gt;DEST&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&amp;quot;&#x2F;Volumes&#x2F;Backup&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-source&quot;&gt;LOG&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;&#x2F;Library&#x2F;Logs&#x2F;backup-home.log&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;if&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; !&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt; &#x2F;sbin&#x2F;mount&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt; grep&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt; -q &amp;quot;on &lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$DEST&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-support z-function z-builtin&quot;&gt;  echo&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;date&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;)&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt; $DEST&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt; not mounted, skipped&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$LOG&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-support z-function z-builtin&quot;&gt;  exit&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;&#x2F;opt&#x2F;homebrew&#x2F;bin&#x2F;rsync&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; -aE --delete --info=progress2&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;&#x2F;Library&#x2F;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;.Trash&#x2F;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;quot;.cache&#x2F;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;tmp&#x2F;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;.DS_Store&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;&#x2F;pCloud Drive&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;  --exclude=&amp;#39;&#x2F;.pcloud&#x2F;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-character z-escape&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;&#x2F;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$DEST&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt;&#x2F;home&#x2F;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$LOG&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; 2&amp;gt;&amp;amp;1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-support z-function z-builtin&quot;&gt;echo&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;date&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;)&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-punctuation z-definition z-string&quot;&gt; done&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; &amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-normal z-shell&quot;&gt;$LOG&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;先頭の&lt;code&gt;if ! &#x2F;sbin&#x2F;mount ...&lt;&#x2F;code&gt;は、バックアップ先が未マウントのときに内蔵ディスクへ誤って書き込む事故を防ぐガードです。&lt;code&gt;-a&lt;&#x2F;code&gt;は権限・更新日時・シンボリックリンクなどを保ったまま再帰コピーし、&lt;code&gt;-E&lt;&#x2F;code&gt;はmacOSの拡張属性を保持します。&lt;code&gt;--delete&lt;&#x2F;code&gt;でコピー元から消したものをバックアップ先からも消し、常に鏡像に保ちます。&lt;code&gt;--info=progress2&lt;&#x2F;code&gt;は全体の総進捗を一行で表示します。&lt;code&gt;$HOME&#x2F;&lt;&#x2F;code&gt;の末尾スラッシュは「ホームの中身を」コピーする指定で、これが無いとhome自体が一段深く入れ子になります。&lt;&#x2F;p&gt;
&lt;p&gt;除外設計が実は一番の勘どころになります。詰まりの原因はほぼここに集約されます。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.Trash&lt;&#x2F;code&gt;はゴミ箱、&lt;code&gt;.cache&lt;&#x2F;code&gt;や&lt;code&gt;tmp&lt;&#x2F;code&gt;は再生成される一時データ、&lt;code&gt;.DS_Store&lt;&#x2F;code&gt;はFinderの表示情報。どれもバックアップする価値がない。&lt;&#x2F;li&gt;
&lt;li&gt;クラウドや外部接続の仮想ドライブも必ず外す。ローカルに実体がなく、rsyncが舐めるとオンデマンドのダウンロードを次々誘発し、激遅やタイムアウト、最悪はクラウド上の全データの引きずり下ろしを招く。iCloud DriveやDropbox、OneDrive、Google Driveは&lt;code&gt;Library&#x2F;CloudStorage&lt;&#x2F;code&gt;や&lt;code&gt;Library&#x2F;Mobile Documents&lt;&#x2F;code&gt;にあるので、&lt;code&gt;&#x2F;Library&#x2F;&lt;&#x2F;code&gt;を外せば一緒に消える。&lt;code&gt;pCloud Drive&lt;&#x2F;code&gt;のようにホーム直下へマウントされるものだけ、個別に除外する。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;code&gt;Library&lt;&#x2F;code&gt;配下をどこまで残すかは判断が要ります。大半はアプリが再生成する状態ファイルなので、丸ごと&lt;code&gt;--exclude=&#x27;Library&#x2F;&#x27;&lt;&#x2F;code&gt;で外しても困らない人は多いでしょう。ただしローカルにしか実体のないデータ(ローカル保存のメールなど)がある場合は、その特定フォルダだけ残す配慮がいります。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;自動化&quot;&gt;自動化&lt;&#x2F;h2&gt;
&lt;p&gt;週1回の自動実行は、非推奨のcronではなくlaunchdで組みます。さきほどの&lt;code&gt;~&#x2F;bin&#x2F;backup-home.sh&lt;&#x2F;code&gt;に実行権を付けます。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;chmod +x ~&#x2F;bin&#x2F;backup-home.sh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;次に&lt;code&gt;~&#x2F;Library&#x2F;LaunchAgents&#x2F;com.user.backup-home.plist&lt;&#x2F;code&gt;を作ります。毎週日曜の午前3時に走る例です(Weekdayの0が日曜)。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;xml&quot; data-name=&quot;~&#x2F;Library&#x2F;LaunchAgents&#x2F;com.user.backup-home.plist&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;?&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;xml&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-other z-attribute-name&quot;&gt; version&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&amp;quot;1.0&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-other z-attribute-name&quot;&gt; encoding&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;?&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag z-keyword z-other z-doctype&quot;&gt;&amp;lt;!DOCTYPE&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt; plist PUBLIC &amp;quot;-&#x2F;&#x2F;Apple&#x2F;&#x2F;DTD PLIST 1.0&#x2F;&#x2F;EN&amp;quot; &amp;quot;http:&#x2F;&#x2F;www.apple.com&#x2F;DTDs&#x2F;PropertyList-1.0.dtd&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;plist&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-other z-attribute-name&quot;&gt; version&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&amp;quot;1.0&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;dict&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;Label&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;string&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;com.user.backup-home&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;string&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;ProgramArguments&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;array&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;    &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;string&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;&#x2F;Users&#x2F;ユーザ名&#x2F;bin&#x2F;backup-home.sh&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;string&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;array&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;StartCalendarInterval&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;dict&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;    &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;Weekday&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;0&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;    &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;Hour&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;3&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;    &amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;Minute&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;key&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text&quot;&gt;0&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;integer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;  &amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;dict&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;dict&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;plist&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-tag&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;登録します。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;launchctl bootstrap gui&#x2F;$(id -u) ~&#x2F;Library&#x2F;LaunchAgents&#x2F;com.user.backup-home.plist&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;launchdの利点は、指定時刻にMacが起動していなくても、次に起動したときに取りこぼしを拾って実行してくれる点です。cronのように「その時刻に寝ていたら丸ごと飛ぶ」ということがありません。複数回ぶんが溜まっても、起動時に走るのは1回にまとめられます。週一の用途なら、これで実用上困りません。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;つまずきどころ&quot;&gt;つまずきどころ&lt;&#x2F;h2&gt;
&lt;p&gt;実際に動かすと、たいてい最初の数回はここで引っかかります。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;初回はホーム全体のフルコピーなので、容量とドライブ速度によっては数時間かかる。差分で速くなるのは2回目以降。止まっているのか遅いだけなのかは、&lt;code&gt;du -sk &#x2F;Volumes&#x2F;Backup&#x2F;home&lt;&#x2F;code&gt;を時間を空けて2回打ち、数字が増えているかで判別する。&lt;&#x2F;li&gt;
&lt;li&gt;異常に遅い・止まる場合は、まず標準の&lt;code&gt;&#x2F;usr&#x2F;bin&#x2F;rsync&lt;&#x2F;code&gt;(openrsync)を叩いていないか&lt;code&gt;which rsync&lt;&#x2F;code&gt;で確認する。そして上のクラウド系の除外が効いているかを見る。GoProなどをMTP接続してマウントしている場合、それも&lt;code&gt;Library&#x2F;CloudStorage&lt;&#x2F;code&gt;に入り込んでタイムアウトの山を作るので、除外で一掃される。&lt;&#x2F;li&gt;
&lt;li&gt;Permission Deniedが出ても、rsyncはそのファイルを飛ばして続行する。多くはフルディスクアクセス不足か、root所有の触れないファイルだ。前者は設定で解決し、後者は無視してよいが、拒否されたのが自分の大事なデータでないかだけは確認する。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;この構成にも、諦めた点はあります。起動可能なクローンではないので、ディスクが飛んだら、まずmacOSを入れ直し、それからホームを書き戻す手間が残ります。アプリの再インストールも要ります。「つなげば即座に元通り」とはいきません。そこは割り切りです。&lt;&#x2F;p&gt;
&lt;p&gt;それでも私は、こちらを選びました。中身が見えて、いざとなれば一ファイルから引き出せて、仕組みを丸ごと自分の手で握れる。バックアップに一番ほしいのは、派手な復旧速度ではなく、この「見えている」という安心でした。OSやアプリの都合に振り回されないかぎり、この鏡像は週末ごとに静かに更新され続けてくれます。それだけで、私には十分です。&lt;&#x2F;p&gt;
</content>
        <summary type="html">長年使ってきた起動可能クローンが、macOSの変化でついに作れなくなりました。SuperDuperを手放し、信用しきれないTime Machineにも戻りたくない。残された道はどこにあるのか。見えて、触れて、そのまま取り出せるバックアップを求めて、rsyncによる鏡像コピーへたどり着くまでの記録です。
</summary>
        </entry><entry xml:lang="en">
        <title>Mac環境のリフレッシュ</title>
        <published>2026-03-17T15:34:11+09:00</published>
        <updated>2026-03-17T15:34:11+09:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2026/03/mac-environment-refresh/" type="text/html"/>
        <id>https://codedchords.dev/blog/2026/03/mac-environment-refresh/</id>
        
            <content type="html">&lt;!-- textlint-disable --&gt;
&lt;img
  src=&quot;https:&amp;#x2F;&amp;#x2F;codedchords.dev&amp;#x2F;blog&amp;#x2F;2026&amp;#x2F;03&amp;#x2F;mac-environment-refresh&amp;#x2F;cover.webp?h=9246e8ce05db44c2688d&quot;
  alt=&quot;Cover&quot; width=&quot;1792&quot; height=&quot;1024&quot; loading=&quot;lazy&quot;
&#x2F;&gt;&lt;!-- textlint-enable --&gt;
&lt;details&gt;
&lt;summary&gt;Table of Contents&lt;&#x2F;summary&gt;
&lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
&lt;p&gt;見送っていたMac環境のリフレッシュを実施しました。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;MacPaw関連ソフトウェアの見直し&quot;&gt;MacPaw関連ソフトウェアの見直し&lt;&#x2F;h2&gt;
&lt;p&gt;MacPaw&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;の次の2つのソフトウェアを使用していました。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CleanMyMac X&lt;&#x2F;strong&gt;: macOSのメンテナンス・ユーティリティ&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 2&lt;&#x2F;strong&gt;: 重複ファイル削除ツール&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;いずれもサブスクリプションが中心ですが、私は2022年にロシアのウクライナ侵攻が起こった際に支援のつもりでLifeTimeの買い切りで購入しています。コストも発生せず、どちらも便利なツールです。&lt;&#x2F;p&gt;
&lt;p&gt;しかし、常駐して僅かですがリソースを食っているのが気になっていました。
今回はどちらもアンインストールして、CLI代替ツールに移行しました。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Mole_—_macOSクリーンアップツール&quot;&gt;Mole — macOSクリーンアップツール&lt;&#x2F;h2&gt;
&lt;!-- textlint-disable --&gt;
&lt;iframe class=&quot;hatenablogcard&quot; src=&quot;https:&#x2F;&#x2F;hatenablog-parts.com&#x2F;embed?url=https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;tw93&amp;#x2F;mole&quot; width=&quot;100%&quot; height=&quot;155&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; loading=&quot;lazy&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;!-- textlint-enable --&gt;
&lt;p&gt;macOSのクリーンナップと最適化に特化したコマンドラインツールです。
CleanMyMac、AppCleaner、DaisyDisk、iStat Menusなどの機能を1コマンドでカバーしていると謳っています。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; clean&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;      # キャッシュ・ログ・ブラウザ残骸の削除&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; uninstall&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;  # アプリの完全アンインストール&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; optimize&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;   # キャッシュ再構築・サービスリフレッシュ&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; analyze&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;    # ディスク使用量の可視化&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; status&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;     # CPU&#x2F;GPU&#x2F;メモリ&#x2F;ディスク&#x2F;ネットワークのリアルタイム監視&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; purge&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;      # 開発プロジェクトのビルド成果物削除&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;mo&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; installer&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;  # Downloads内の.dmg&#x2F;.pkgの整理&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;結構危険な処理をするツールですが、いずれも&lt;code&gt;--dry-run&lt;&#x2F;code&gt;オプションがサポートされており、実際に削除する前に検証できます。&lt;&#x2F;p&gt;
&lt;p&gt;実際、CleanMyMac Xで使用していた機能のうちマルウェアスキャン以外はほぼカバーされています。
マルウェアスキャンについては、macOS標準のXProtectとGatekeeperがかなり優秀なので、基本的に追加のスキャナは不要と判断しました。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Czkawka（チカフカ）_—_不要ファイル検出ツール&quot;&gt;Czkawka（チカフカ） — 不要ファイル検出ツール&lt;&#x2F;h2&gt;
&lt;!-- textlint-disable --&gt;
&lt;iframe class=&quot;hatenablogcard&quot; src=&quot;https:&#x2F;&#x2F;hatenablog-parts.com&#x2F;embed?url=https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;qarmin&amp;#x2F;czkawka&quot; width=&quot;100%&quot; height=&quot;155&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; loading=&quot;lazy&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;!-- textlint-enable --&gt;
&lt;p&gt;主に重複ファイルの削除に使用していたGemini 2の代替です。名前はポーランド語で「しゃっくり」を意味します。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sahib&#x2F;rmlint&quot;&gt;rmlint&lt;&#x2F;a&gt;も検討しましたが、rmlintはバイト単位での重複判定のみで、Gemini 2のように画像の類似性による重複判定には対応していません。&lt;&#x2F;p&gt;
&lt;p&gt;その点Czkawkaは、パーセプチュアルハッシュによる類似画像検出をサポートしています。GUI版もありますが、安定のCLI版を使っています。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 重複ファイル検出: -d 検索先 -e 除外先 -m 最小25B -s hash比較 -D aeo(最古以外を削除)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; dup -d ~&#x2F;Documents -e ~&#x2F;Documents&#x2F;Archive -m&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 25&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; -x 7z rar IMAGE -s hash -f results.txt -D aeo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 空フォルダ検出: 複数ディレクトリ指定可&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; empty-folders -d ~&#x2F;Documents ~&#x2F;Downloads -f results.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 巨大ファイル検出: -n 上位25件 -x VIDEO拡張子を除外&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; big -d ~&#x2F;Documents -e ~&#x2F;Documents&#x2F;Archive -n&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 25&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; -x VIDEO -f results.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 類似画像検出: パーセプチュアルハッシュで視覚的に似た画像を検出&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; image -d ~&#x2F;Pictures -e ~&#x2F;Pictures&#x2F;Wallpapers -f results.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 壊れたシンボリックリンク検出&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; symlinks -d ~&#x2F;Projects -e ~&#x2F;Projects&#x2F;.git -x jpg -f results.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;# 破損ファイル検出: ヘッダが壊れたファイル等を検出&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;czkawka_cli&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; broken -d ~&#x2F;Downloads -f results.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;重複ファイル、類似画像、空ファイル・フォルダ、一時ファイル、破損ファイル、拡張子不一致、不正ファイル名など、Gemini 2以上に多彩な検出機能を備えています。&lt;&#x2F;p&gt;
&lt;p&gt;なお、SenseiとCocktailは引き続き使用しています。Senseiはハードウェア情報やSSDのTrim管理に、CocktailはmacOSの定期メンテナンスタスクの自動実行に、それぞれ役割が明確なので残しました。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;メニューバーの整理&quot;&gt;メニューバーの整理&lt;&#x2F;h2&gt;
&lt;p&gt;MacBookでメニューバーにたくさんアイコンが並ぶと、ノッチの裏に隠れて見えなくなる問題があります。この対策としてメニュー表示管理ツールを使用していました。&lt;&#x2F;p&gt;
&lt;p&gt;Bartenderから数年前に&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jordanbaird&#x2F;Ice&quot;&gt;Ice&lt;&#x2F;a&gt;へ移行しましたが、macOS Tahoeではメニュー構造が変わった影響で動作が不安定になっていました。&lt;&#x2F;p&gt;
&lt;p&gt;代替として次のようなツールがありますが、いずれも新しいmacOSのメニュー構造の変更に対応しきれていないようでした。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Hidden Bar&lt;&#x2F;li&gt;
&lt;li&gt;Bartender 5（有料）&lt;&#x2F;li&gt;
&lt;li&gt;Vanilla&lt;&#x2F;li&gt;
&lt;li&gt;iBar&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;しかし、macOS Tahoeではメニューバーのカスタマイズ機能が大幅に強化されました。「システム設定 &amp;gt; メニューバー &amp;gt; メニューバーの操作」から、次の操作が可能になっています。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;アプリごとにメニューバーへの表示のオン・オフを制御&lt;&#x2F;li&gt;
&lt;li&gt;Apple純正機能はコントロールセンターへ移動可能&lt;&#x2F;li&gt;
&lt;li&gt;Command+ドラッグでアイコンの並び替え&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;サードパーティ製ツールのように表示の動的な切り替えやレイアウト変更には対応していませんが、常駐アイコンの大半を整理できました。もうサードパーティ製ツールは不要です。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ブラウザArcの代替&quot;&gt;ブラウザArcの代替&lt;&#x2F;h2&gt;
&lt;p&gt;数年前に彗星のごとく登場したArcを愛用していましたが、2025年5月にThe Browser Companyが開発終了を発表しました。理由は「ほとんどの人にとってArcは違いが大きすぎて学習コストに見合わなかった」という&quot;novelty tax&quot;問題とのことです。後継としてAIブラウザ「Dia」の開発に注力するとされていますが、Arc自体はセキュリティ修正のみのメンテナンスモードに入っています。&lt;&#x2F;p&gt;
&lt;p&gt;当初はGoogle Chrome + Side Space拡張機能でほぼArcと同等のことができるかと試していました。しかし、Arcの全機能を再現しようとすると拡張の組み合わせが増えるばかりで、本末転倒だと気づきました。&lt;&#x2F;p&gt;
&lt;p&gt;結局、Safariに落ち着いています。iCloudとの連携、省電力性能、macOS標準のパスキー対応など、Apple製品で統一している環境であれば素直にSafariが最適という結論です。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;GUIの常駐アプリをCLIに置き換え、メニューバーをOS標準機能で整理し、ブラウザもSafariに一本化しました。&lt;&#x2F;p&gt;
&lt;p&gt;やっとメニューバーが整理でき、&lt;code&gt;mo clean&lt;&#x2F;code&gt;一発でMacのクリーンナップもできる。そういう小さな快適さの積み重ねで、深呼吸できた心地がします。ゴミの山は鼻をつまんで走り抜けるに限ります。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;References&quot;&gt;References&lt;&#x2F;h2&gt;
&lt;!-- textlint-disable --&gt;
&lt;div class=&quot;references&quot;&gt;
    &lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tw93&#x2F;mole&quot;&gt;GitHub - tw93&#x2F;mole&lt;&#x2F;a&gt;. &quot;Mole - Deep clean and optimize your Mac&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;qarmin&#x2F;czkawka&quot;&gt;GitHub - qarmin&#x2F;czkawka&lt;&#x2F;a&gt;. &quot;Multi functional app to find duplicates, empty folders, similar images etc.&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;cindori.com&#x2F;sensei&quot;&gt;Sensei — Cindori&lt;&#x2F;a&gt;. 「Mac Performance Monitor &amp;amp; Cleaner」&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.maintain.se&#x2F;cocktail&#x2F;&quot;&gt;Cocktail — Maintain&lt;&#x2F;a&gt;. 「A perfect mixture for macOS」&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;support.apple.com&#x2F;guide&#x2F;mac-help&#x2F;change-menu-bar-settings-mchlad96d366&#x2F;mac&quot;&gt;Apple Support&lt;&#x2F;a&gt;. &quot;Change Menu Bar settings on Mac&quot;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.engadget.com&#x2F;ai&#x2F;the-browser-company-stops-active-development-of-arc-in-favor-of-new-ai-focused-product-153045276.html&quot;&gt;Engadget&lt;&#x2F;a&gt;. &quot;The Browser Company stops active development of Arc in favor of new AI-focused product&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;&#x2F;div&gt;
&lt;!-- textlint-enable --&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;Macのユーティリティ系ソフトウェアを開発・販売しているウクライナのベンダー &lt;a href=&quot;#fr-1-1&quot;&gt;↩&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;section&gt;
</content>
        <summary type="html">無為がループした一年で放置していたMac環境をリフレッシュしました。MacPawのGUIツールをCLIへ移行し、メニューバーをmacOS Tahoe標準機能で整理し、ArcからSafariへ乗り換えた記録です。</summary>
        </entry><entry xml:lang="en">
        <title>Sublime Text - 職人主義的ソフトウェアの美学と持続可能なビジネスモデル</title>
        <published>2026-01-08T00:00:00+00:00</published>
        <updated>2026-01-08T00:00:00+00:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2026/01/sublime-text/" type="text/html"/>
        <id>https://codedchords.dev/blog/2026/01/sublime-text/</id>
        
            <content type="html">&lt;details&gt;
&lt;summary&gt;
  Table of Contents
  &lt;&#x2F;summary&gt;
&lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
&lt;p&gt;Sublime Textは、高速性と簡潔さを重視したクロスプラットフォームのテキストエディタです。
派手な統合機能や巨大なエコシステムを志向せず、「編集体験そのものの質」を最優先に設計されている点が最大の特徴といえます。&lt;&#x2F;p&gt;
&lt;p&gt;2008年にリリースされて以来、その圧倒的なパフォーマンスと洗練されたUIで多くの開発者に愛されてきました。
かつてはAtomやBracketsといった競合が次々と登場する中でも独自の地位を確立していましたが、
2015年のVisual Studio Codeの登場によって状況は一変しました。
Microsoftの豊富なリソースとオープンソースモデルによって急速に機能を拡充したVS Codeは、
瞬く間に開発者コミュニティの主流となったのです。&lt;&#x2F;p&gt;
&lt;p&gt;しかし、Sublime Textは市場シェアを失っても開発を継続し、現在も継続的にアップデートされています。
それを可能にしているのが、独自のビジネスモデルと一貫した設計思想です。
2026年現在もBuild 4000番台の開発が進められており、その品質は今も一級品を保ち続けています。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;1._技術的・思想的特徴&quot;&gt;1. 技術的・思想的特徴&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;1.1._圧倒的なパフォーマンス&quot;&gt;1.1. 圧倒的なパフォーマンス&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;起動が非常に速い&lt;&#x2F;li&gt;
&lt;li&gt;大規模ファイルや巨大リポジトリでも編集が軽快&lt;&#x2F;li&gt;
&lt;li&gt;入力遅延がほぼ発生しない&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textの最大の強みは、何よりもそのパフォーマンスです。
エディタを起動してから実際に編集を開始できるまでの時間は、ほとんどの環境で1秒以内に収まります。
VS CodeがElectronベースでJavaScriptエンジンの起動コストを伴うのに対し、Sublime TextはC++ とカスタムUIツールキットで実装されており、
OSネイティブに近い起動速度を実現しています。&lt;&#x2F;p&gt;
&lt;p&gt;また、数万行を超える大規模ファイルや、数十万ファイルを含む巨大なリポジトリでも動作が重くなることはほとんどありません。
GitのLinuxカーネルリポジトリのような巨大なコードベースでも、ファイル検索や全文検索が瞬時に完了します。
これは独自の描画エンジンとインデックス機構によって実現されており、「常に軽いこと」を最優先事項として設計されているためです。&lt;&#x2F;p&gt;
&lt;p&gt;特に重要なのが、入力に対するレスポンスの速さです。キーボードからの入力が画面に反映されるまでの遅延が極めて少なく、タイピングの快適さが損なわれません。この「入力遅延のなさ」は、長時間コーディングを行う開発者にとって、想像以上に重要な要素となります。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;1.2._ミニマルで静かな_UI&quot;&gt;1.2. ミニマルで静かな UI&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;不要なアニメーションや通知が少ない&lt;&#x2F;li&gt;
&lt;li&gt;情報密度は高いが、視覚的ノイズが少ない&lt;&#x2F;li&gt;
&lt;li&gt;IDE的な自動介入を極力行わない&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textのユーザーインターフェースは、極めて静かです。
近年のソフトウェアに多く見られる派手なアニメーションや、頻繁なポップアップ通知、自動的に表示されるヒントやサジェストといった「親切な機能」は最小限に抑えられています。&lt;&#x2F;p&gt;
&lt;p&gt;これは決して機能が貧弱だからではなく、ユーザーの集中を妨げない設計を意図的に選択した結果です。
情報密度は高く保たれており、必要な情報はすぐにアクセスできますが、視覚的なノイズは徹底的に排除されています。
エディタという道具が前面に出てくることなく、書いているコードそのものに集中できる環境が提供されているのです。&lt;&#x2F;p&gt;
&lt;p&gt;また、IDEによくある「自動的な修正」や「勝手な補完」といった介入も控えめです。
開発者が意図しないコード変更や、予期しないフォーマットが適用されることはほとんどありません。
これは一見不便に思えるかもしれませんが、自分の書いたコードを完全にコントロールしたい開発者にとっては、むしろ信頼できる特性となります。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;1.3._保守的で一貫した設計思想&quot;&gt;1.3. 保守的で一貫した設計思想&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;等幅フォント・静的フォント前提&lt;&#x2F;li&gt;
&lt;li&gt;Variable Fontの軸指定や高度なタイポグラフィ機能は非対応&lt;&#x2F;li&gt;
&lt;li&gt;フォントフォールバックや複雑な文字組みも対象外&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textは、技術トレンドを積極的に追いかけるタイプのソフトウェアではありません。例えば、近年広まってきたVariable Font（可変フォント）の軸指定機能や、高度なタイポグラフィ機能には対応していません。また、複雑なフォントフォールバックや文字組み処理も、必要最小限にとどめられています。&lt;&#x2F;p&gt;
&lt;p&gt;これを見ると「技術的に遅れている」と感じるかもしれませんが、実際には異なります。これらの機能は確かに便利ですが、実装にはレンダリングエンジンの複雑化が伴い、結果としてパフォーマンスの低下を招きます。Sublime Textは、&lt;strong&gt;パフォーマンス低下を招く機能を意図的に排除している&lt;&#x2F;strong&gt; のです。&lt;&#x2F;p&gt;
&lt;p&gt;この姿勢は、ソフトウェア全体に一貫しています。新機能を追加する際には、常に「これはパフォーマンスに影響するか」
「これは本当にエディタに必要な機能か」という問いが立てられ、慎重に判断されています。
結果として、機能の追加ペースは遅いものの、一度実装された機能は安定しており、長期間にわたって同じように動作し続けます。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;1.4._拡張は可能だが、万能ではない&quot;&gt;1.4. 拡張は可能だが、万能ではない&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Pythonによるプラグイン拡張&lt;&#x2F;li&gt;
&lt;li&gt;LSP対応により、現代的な言語サポート機能は充実&lt;&#x2F;li&gt;
&lt;li&gt;ただしIDE全体としての統合度はVS Codeに及ばない&lt;&#x2F;li&gt;
&lt;li&gt;エコシステムは小規模&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textには、Pythonによるプラグイン機構が備わっており、機能を拡張可能です。Package Controlというパッケージマネージャーを使えば、コミュニティが開発した様々なプラグインを簡単にインストールできます。また、Language Server Protocol (LSP) にも対応しており、現代的なコード補完や定義ジャンプ、型チェックといった言語サポート機能は充実しています。&lt;&#x2F;p&gt;
&lt;p&gt;しかし、VS Codeのような統合開発環境としての&lt;strong&gt;トータルな統合度&lt;&#x2F;strong&gt;を期待すると、物足りなさを感じるかもしれません。デバッガやターミナル、バージョン管理といった周辺機能の統合度や、拡張機能エコシステムの規模では、VS Codeには及びません。&lt;&#x2F;p&gt;
&lt;p&gt;エコシステムも、VS Codeの巨大なマーケットプレイスと比べれば小規模です。しかし、これも設計思想の表れといえます。Sublime Textは「プラットフォーム」になることを目指しておらず、あくまで「高品質なエディタ」であり続けることを選択しているのです。必要十分な拡張性は保ちつつ、複雑化や肥大化は避けるというバランスが取られています。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;2._継続的な開発と進化&quot;&gt;2. 継続的な開発と進化&lt;&#x2F;h2&gt;
&lt;p&gt;Sublime Textは市場シェアを失った後も、着実に開発を継続しています。2024年から2025年にかけても、
複数の重要なアップデートがリリースされており、「保守的」でありながらも「停滞していない」ことを示しています。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2.1._最近の主要アップデート&quot;&gt;2.1. 最近の主要アップデート&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Build 4200（2025年5月リリース）&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;2025年5月21日にリリースされたBuild 4200では、以下の重要な変更が含まれています。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Python プラグインの近代化&lt;&#x2F;strong&gt;: Python 3.3のサポート終了を段階的に開始し、Python 3.8への移行を進めている。さらに、次の開発サイクルではPython 3.13への移行が計画されており、プラグインエコシステムの技術的負債を解消する取り組みが進められている。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OS サポートの見直し&lt;&#x2F;strong&gt;: 将来のバージョンでは、macOSの最低要件が10.9から10.13に引き上げられる。また、Windows 7、8、8.1のサポートが終了し、Windows 10以降が最低要件となる。この変更により、より新しいOS機能を活用できるようになる。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UI の柔軟性向上&lt;&#x2F;strong&gt;: サイドバーを右側に配置できる &lt;code&gt;sidebar_on_right&lt;&#x2F;code&gt; 設定が追加される。これは小さな変更に見えるが、長年のユーザー要望に応えたもの。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ビルドシステムの強化&lt;&#x2F;strong&gt;: ビルドシステムで &lt;code&gt;&quot;interactive&quot;: true&lt;&#x2F;code&gt; を指定することで、インタラクティブな入力ボックスを表示できるようになった。これにより、コンパイル時の引数指定などがより便利になっている。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;構文ハイライトの刷新&lt;&#x2F;strong&gt;: SQL、ActionScript、Diff、Bash、Graphvizの構文ハイライトが書き直され、より正確で高速になった。また、ZshとTOMLの構文ハイライトが新たに追加されている。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Build 4180（2024年8月リリース）&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;2024年8月12日にリリースされたBuild 4180では、プラットフォーム固有の問題に対応しています。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Linux: KDE環境でのドラッグ＆ドロップ問題への対処（kwin 6.0.4でも修正済み）&lt;&#x2F;li&gt;
&lt;li&gt;Windows: スクロールバーをドラッグした際の動作改善&lt;&#x2F;li&gt;
&lt;li&gt;その他、複数のバグ修正&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;2.2._Language_Server_Protocol（LSP）サポートの充実&quot;&gt;2.2. Language Server Protocol（LSP）サポートの充実&lt;&#x2F;h3&gt;
&lt;p&gt;Sublime TextのLSPサポートは、近年大きく進化しています。Package Controlから利用できる &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lsp.sublimetext.io&#x2F;&quot;&gt;LSP パッケージ&lt;&#x2F;a&gt;は、VS Codeと同等の高度な言語サポートを実現しています。&lt;&#x2F;p&gt;
&lt;p&gt;主要な言語サーバーには、以下のようなものがあります。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LSP-typescript &#x2F; LSP-javascript&lt;&#x2F;strong&gt;: TypeScriptとJavaScriptのサポート&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-pyright &#x2F; LSP-pylsp&lt;&#x2F;strong&gt;: Pythonの型チェックと補完&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-rust-analyzer&lt;&#x2F;strong&gt;: Rustの高度なIDE機能&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-intelephense &#x2F; LSP-Phpactor&lt;&#x2F;strong&gt;: PHPの補完と定義ジャンプ&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-clangd&lt;&#x2F;strong&gt;: C&#x2F;C++ の高度な補完&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-json &#x2F; LSP-css &#x2F; LSP-html&lt;&#x2F;strong&gt;: Web開発のサポート&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LSP-angular &#x2F; LSP-vue&lt;&#x2F;strong&gt;: モダンなフロントエンドフレームワーク&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;これらのヘルパーパッケージは、言語サーバーの自動インストールと設定を簡単にし、追加機能も提供しています。例えばLSP-pylspは2025年12月にも更新されており、エコシステムが活発に維持されていることがわかります。&lt;&#x2F;p&gt;
&lt;p&gt;興味深いのは、Sublime TextのLSP実装は同じファイルタイプに対して複数の言語サーバーを同時に実行できる点です。例えば、Pythonプロジェクト内のLSP-pyrightで一般的な機能を使いつつ、LSP-ruffでリンター警告を同時に表示するといった使い方が可能です。&lt;&#x2F;p&gt;
&lt;p&gt;このように、Sublime Textは「保守的」な設計思想を保ちながらも、現代的な開発環境に必要な機能を着実に取り込んでいます。急激な変化は起こりませんが、必要な進化は確実に続けられているのです。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;3._市場における位置づけ&quot;&gt;3. 市場における位置づけ&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;かつては高速GUIエディタの代表格&lt;&#x2F;li&gt;
&lt;li&gt;現在はニッチだが評価の高い存在&lt;&#x2F;li&gt;
&lt;li&gt;VS Codeのような統合開発環境とは競争しない立場&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;2010年代前半、Sublime Textは高速なGUIエディタの代表格として、多くの開発者に愛用されていました。TextMateの後継とも目され、Macユーザーを中心に広く普及していたのです。その影響力は大きく、VS Codeの初期バージョンはSublime Textのキーバインドやショートカットを参考にしたとも言われています。&lt;&#x2F;p&gt;
&lt;p&gt;しかし現在では、市場シェアという観点では完全にニッチな存在となりました。Stack Overflowの開発者調査でも、利用率は数パーセント程度にとどまっています。それでも、使い続けているユーザーからの評価は一貫して高く、「速さ」「安定性」「シンプルさ」を求める開発者の間では根強い支持を得ています。&lt;&#x2F;p&gt;
&lt;p&gt;興味深いのは、Sublime Textのユーザー層です。多くは、日常的にNeovimやEmacsといったCLIエディタを使いつつ、GUIが必要な場面や、より視覚的な操作が適している場面でSublime Textを併用しています。つまり、「メインのIDE」として使うのではなく、職人的な開発者の道具箱の中の1つとして位置づけられているのです。&lt;&#x2F;p&gt;
&lt;p&gt;VS Codeのような統合開発環境とは、もはや直接競争する立場にありません。機能の豊富さや拡張性では勝負せず、「軽快さ」「シンプルさ」「信頼性」という独自の価値を提供し続けることで、固有のポジションを確立しています。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;4._ビジネスモデル&quot;&gt;4. ビジネスモデル&lt;&#x2F;h2&gt;
&lt;p&gt;Sublime Textが長期にわたって開発を継続できているのは、独自のビジネスモデルによるところが大きいです。多くのソフトウェアが無料化やサブスクリプションモデルに移行する中、Sublime Textは独自の道を歩んでいます。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4.1._買い切り型ライセンス_+_更新権&quot;&gt;4.1. 買い切り型ライセンス + 更新権&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;一度購入すれば永続的に使用可能&lt;&#x2F;li&gt;
&lt;li&gt;購入時点から &lt;strong&gt;約3年間のアップデート権&lt;&#x2F;strong&gt; が付与される&lt;&#x2F;li&gt;
&lt;li&gt;更新権が切れても使用不可にはならない&lt;&#x2F;li&gt;
&lt;li&gt;新しいメジャー版や最新ビルドを使いたい場合のみ再購入&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textのライセンスは、買い切り型を基本としています。一度購入すれば、そのバージョンは永続的に使用可能です。ただし、購入時点から約3年間のアップデート権が付与され、その期間内にリリースされた新バージョンには無料でアップグレードできます。&lt;&#x2F;p&gt;
&lt;p&gt;重要なのは、更新権が切れても、ソフトウェアが使用不可になることはない点です。購入時のバージョンは引き続き使用でき、セキュリティアップデートなどの重要な修正も提供されます。新しいメジャーバージョンや最新機能を使いたい場合にのみ、ライセンスを再購入すればよいのです。&lt;&#x2F;p&gt;
&lt;p&gt;このモデルは、月額・年額で支払い続けなければ使えなくなるSaaS的なサブスクリプションとは明確に異なります。ユーザーは「払い続けなければ使えなくなる」というプレッシャーから解放され、自分のペースでアップグレードを判断できます。一方で、開発側も定期的な収入が見込めるため、持続可能な開発が可能になっています。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4.2._非_SaaS・低固定費構造&quot;&gt;4.2. 非 SaaS・低固定費構造&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;クラウドサービスではない&lt;&#x2F;li&gt;
&lt;li&gt;常時稼働サーバや大規模インフラが不要&lt;&#x2F;li&gt;
&lt;li&gt;開発チームは少人数&lt;&#x2F;li&gt;
&lt;li&gt;営業・マーケティングコストが極小&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textのもう1つの強みは、極めて低い固定費構造にあります。Sublime Textはクラウドサービスではなく、ユーザーのローカル環境で完結するスタンドアロンアプリケーションです。そのため、常時稼働するサーバーインフラや、大規模なデータセンターといった継続的なコストが一切発生しません。&lt;&#x2F;p&gt;
&lt;p&gt;開発チームも非常に小規模で、創設者のJon Skinner氏を中心とした数名程度で運営されていると言われています。大規模な開発組織を抱える必要がなく、人件費も抑えられています。&lt;&#x2F;p&gt;
&lt;p&gt;また、営業やマーケティングにも積極的に投資していません。広告を出すこともなく、口コミとブランド力だけで販売を続けています。Sublime Textの公式サイトは極めてシンプルで、派手なマーケティングメッセージもありません。&lt;&#x2F;p&gt;
&lt;p&gt;この結果、&lt;strong&gt;ユーザー数が爆発的に増えなくても黒字が成立する&lt;&#x2F;strong&gt;構造になっています。年間数万人程度のライセンス購入があれば、十分に開発を継続できるのです。これは、成長至上主義に陥らず、持続可能な開発を可能にする重要な要素となっています。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4.3._法人・プロユーザーによる支え&quot;&gt;4.3. 法人・プロユーザーによる支え&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;個人購入に加え、法人でのまとめ買い&lt;&#x2F;li&gt;
&lt;li&gt;経費精算による定期的な更新&lt;&#x2F;li&gt;
&lt;li&gt;長期利用を前提としたユーザー層&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textのユーザーには、個人利用だけでなく、法人でのまとめ買いも多いと考えられます。開発チームが一斉にライセンスを購入するケースや、企業の標準ツールとして採用されているケースもあります。特に、パフォーマンスや安定性を重視する企業にとって、Sublime Textは魅力的な選択肢となります。&lt;&#x2F;p&gt;
&lt;p&gt;また、プロフェッショナルな開発者が多いため、ライセンスを経費として精算し、定期的に更新する傾向があります。個人で$99を支払うのは躊躇するかもしれませんが、会社の経費であれば、更新のハードルは下がります。&lt;&#x2F;p&gt;
&lt;p&gt;Sublime Textのユーザーは、長期利用を前提としている傾向が強いです。一度使い始めたら、数年から十年以上にわたって使い続けるユーザーが多いのです。これは、Sublime Textの安定性とシンプルさが、長期的な信頼を生んでいることを示しています。&lt;&#x2F;p&gt;
&lt;p&gt;一人あたりのLTV（顧客生涯価値）は、サブスクリプションモデルと比べると低めですが、非常に安定しています。ユーザーの離脱率が低く、定期的な更新が見込めるため、予測可能な収益構造となっているのです。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4.4._成長を前提としない経営姿勢&quot;&gt;4.4. 成長を前提としない経営姿勢&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;ベンチャーキャピタルに依存しない&lt;&#x2F;li&gt;
&lt;li&gt;利用データの収集・広告モデルなし&lt;&#x2F;li&gt;
&lt;li&gt;ユーザー数や市場シェアの拡大を至上命題としない&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sublime Textの最も特徴的な点は、成長を前提としない経営姿勢にあります。ベンチャーキャピタルからの資金調達を受けておらず、外部投資家からの「成長しろ」というプレッシャーとは無縁です。そのため、ユーザー数を爆発的に増やすことや、市場シェアを最大化することを目標とする必要がありません。&lt;&#x2F;p&gt;
&lt;p&gt;また、ユーザーの利用データを収集して分析したり、広告モデルで収益化したりといったことも一切行っていません。Sublime Textは、インターネット接続を必要とせず、ローカル環境で完結するため、プライバシーの観点でも安心できます。テレメトリデータの送信もなく、ユーザーがどのような使い方をしているかは開発者にはわかりません。&lt;&#x2F;p&gt;
&lt;p&gt;この経営姿勢は、現代のスタートアップ文化やシリコンバレーの常識とは真逆です。「急成長」「ユニコーン」「市場の独占」といった価値観とは距離を置き、その代わりに**「小さく、長く、静かに続ける」**ことを選択しています。&lt;&#x2F;p&gt;
&lt;p&gt;これは、短期的な利益最大化ではなく、長期的な持続可能性を重視した結果です。派手さはありませんが、10年後、20年後も同じように開発が続いている。そんな可能性を信じさせてくれるのが、Sublime Textなのです。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;5._Sublime_Merge_-_同じ思想の_Git_クライアント&quot;&gt;5. Sublime Merge - 同じ思想の Git クライアント&lt;&#x2F;h2&gt;
&lt;p&gt;Sublime HQは、テキストエディタのSublime Textだけでなく、Gitクライアントの &lt;strong&gt;Sublime Merge&lt;&#x2F;strong&gt; も開発しています。Sublime Mergeは、Sublime Textと同じ設計思想をGitクライアントに適用したソフトウェアです。&lt;&#x2F;p&gt;
&lt;p&gt;Sublime Mergeの特徴も、Sublime Textと共通しています。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;起動が非常に速く、大規模リポジトリでも軽快に動作する&lt;&#x2F;li&gt;
&lt;li&gt;UIがシンプルで、視覚的なノイズが少ない&lt;&#x2F;li&gt;
&lt;li&gt;複雑なGit操作も、キーボード中心の操作で素早く実行できる&lt;&#x2F;li&gt;
&lt;li&gt;独自のマージツールが優れており、コンフリクト解決が快適&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Gitクライアントの世界でも、GitKrakenやSourceTreeといった多機能なGUIツールが主流となっていますが、Sublime Mergeはそれらとは異なるアプローチを取っています。必要な機能に絞り込み、パフォーマンスと操作性を優先した結果、Gitの複雑な操作を快適に行えるツールとなっています。&lt;&#x2F;p&gt;
&lt;p&gt;ビジネスモデルもSublime Textと同様で、買い切り型ライセンス + 約3年間の更新権という形式です。Sublime TextとSublime Mergeをセットで購入すると割引が適用されるバンドルライセンスも提供されています。&lt;&#x2F;p&gt;
&lt;p&gt;私自身も、Sublime Textの思想に共鳴し、今回Sublime Textのライセンスを更新すると同時に、Sublime Mergeのライセンスも購入しました。どちらも、長く使い続けられる信頼できるツールだと感じています。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;6._評価と総括&quot;&gt;6. 評価と総括&lt;&#x2F;h2&gt;
&lt;p&gt;Sublime Textは次のようなソフトウェアです。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;主役ではなくなったが、品質は今も一級品&lt;&#x2F;li&gt;
&lt;li&gt;時代の要請すべてには応えないが、軸はぶれない&lt;&#x2F;li&gt;
&lt;li&gt;利便性よりも、編集体験の純度を重視&lt;&#x2F;li&gt;
&lt;li&gt;商業的成功よりも、持続可能性を優先&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;その結果として、&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;「勢いはないが、消えもしない」&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;という独特のポジションを確立しています。&lt;&#x2F;p&gt;
&lt;p&gt;現代のソフトウェア業界では、「より多くの機能」「より大きなエコシステム」「より速い成長」が正義とされがちです。しかし、Sublime Textはそれとは異なる価値観を示しています。機能を抑制し、シンプルさを保ち、持続可能な開発を優先することで、長期的な信頼を獲得しているのです。&lt;&#x2F;p&gt;
&lt;p&gt;このアプローチは、すべてのソフトウェアに適用できるわけではありません。しかし、少なくとも「開発ツール」という領域においては、十分に成立する戦略であることを、Sublime Textは証明しています。&lt;&#x2F;p&gt;
&lt;p&gt;Sublime Textは、現代では稀少になった&lt;strong&gt;職人主義的ソフトウェアと、そのビジネスモデルの実例&lt;&#x2F;strong&gt;です。派手さはありませんが、確かな品質と一貫した思想を持ち続けることで、静かに、しかし確実に生き残っているのです。&lt;&#x2F;p&gt;
</content>
        <summary type="html">高速性と簡潔さを追求し続けるテキストエディタSublime Text。
VS Codeに市場シェアを奪われても品質を保ち続ける職人主義的な
設計思想と、サブスクリプションに依存しないワンタイム購入モデルの
持続可能性について考察します。
</summary>
        </entry><entry xml:lang="en">
        <title>Scaler3で作曲支援</title>
        <published>2025-05-31T00:00:00+00:00</published>
        <updated>2025-05-31T00:00:00+00:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2025/05/scaler3/" type="text/html"/>
        <id>https://codedchords.dev/blog/2025/05/scaler3/</id>
        
            <content type="html">&lt;!-- textlint-disable --&gt;
&lt;img
  src=&quot;https:&amp;#x2F;&amp;#x2F;codedchords.dev&amp;#x2F;blog&amp;#x2F;2025&amp;#x2F;05&amp;#x2F;scaler3&amp;#x2F;scaler3.webp?h=7933cce2096b167cf29e&quot;
  alt=&quot;Scaler3&quot; width=&quot;3440&quot; height=&quot;1440&quot; loading=&quot;lazy&quot;
&#x2F;&gt;&lt;!-- textlint-enable --&gt;
&lt;p&gt;先日発売されたScaler3ですが、音楽理論を知らなくても作曲や編曲ができると話題なので購入してみました。&lt;&#x2F;p&gt;
&lt;details&gt;
&lt;summary&gt;Table of Contents&lt;&#x2F;summary&gt;
&lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
## Scaler3とは
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;scalermusic.com&#x2F;products&#x2F;scaler-3&#x2F;&quot;&gt;Scaler3&lt;&#x2F;a&gt;は音楽理論やコード理論
がわからなくても凝ったコード進行が作れる作曲支援ソフトです。&lt;&#x2F;p&gt;
&lt;p&gt;裏では音楽理論に基づいて適切なコード進行を提案してくれるの
その中から気に入ったコードをどんどんドラッグしてコード進行を作っていけます。&lt;&#x2F;p&gt;
&lt;p&gt;「コードに合う違和感のない音はどれか」「コード進行で冒険したいが、このコード
は適切か」といったプロでも抱えてしまいそうな悩みを解消してくれます。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Scaler3を検証してみた&quot;&gt;Scaler3を検証してみた&lt;&#x2F;h2&gt;
&lt;p&gt;今回は既存のメロディを取ってきてSuggest機能に従ってコード進行を作ってみまし
た。使用したのはThe Banglesの&quot;Eternal Flame&quot;です。&lt;&#x2F;p&gt;
&lt;p&gt;またScaler3から追加されたアレンジ機能を使って伴奏を付けています。
ドラムの生成機能はないので、ドラムだけはLogic ProのPlayer機能を使っています
。&lt;&#x2F;p&gt;
&lt;p&gt;前半がScaler3で生成した伴奏、後半がオリジナルのコード進行に従った伴奏です。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;SoundCloudEmbed apiurl=&quot;https:&#x2F;&#x2F;api.soundcloud.com&#x2F;tracks&#x2F;2105211069&quot;
url=&quot;https:&#x2F;&#x2F;soundcloud.com&#x2F;yostos&#x2F;sclar3&#x2F;s-aQqlD1uzAIB?si=ab6c3c4bcd0a49f3b1127fe1090f0657&amp;utm_source=clipboard&amp;utm_medium=text&amp;utm_campaign=social_sharing&quot;
title=&quot;Scaler3テスト&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;オリジナルは、G Majorで次のようなコード進行です。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;G Em7 | C D | G Em7 | C D | Em B7 | Em7 A7 | D Bm7| Am7&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;ですが、 Scaler3でもっともノートとコードにのマッチ度が高かったB Phrygian
Modeでコードを構成してみました。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Bm G | C D | Em G | Am G | Em7 Dsus2 | Bm Em | A7 D| Bm7&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;メロディから判断され推奨されるコードはブルーで示されますが、
メロディをすべてマッチするわけではないんで、実際は推奨コードから試しながら
決めていくことになります。しかし、何も参考にせず自分で考えるより数倍生産性は上が
ります。&lt;&#x2F;p&gt;
&lt;p&gt;オリジナルのほうが安心して聞ける印象です。
一方、Scaler3で作ったコード進行はちょっと印象が違っていますが、まぁ成り立っているのではないでしょうか。&lt;&#x2F;p&gt;
&lt;p&gt;多分、メロディからコードを作るより、コード進行をScalerで練って、
メロディを提案してもらったほうがうまく働くと思います。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;Scaler3は「音楽理論の知識」と「直感的な操作」のバランスが絶妙なツールです。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;🎯_習得難易度について&quot;&gt;🎯 習得難易度について&lt;&#x2F;h3&gt;
&lt;p&gt;完全な素人には難しいものの、基本的な音楽理論（メジャー・マイナー、ダイアト
ニックコードなど）を理解していれば十分活用できます。 転調の提案など高度な
機能については、理論と感性のバランスを取りながら使い分けることが重要です。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;💡_Scaler3の真価&quot;&gt;💡 Scaler3の真価&lt;&#x2F;h3&gt;
&lt;p&gt;最大の価値は &lt;strong&gt;「0→1の創作支援」&lt;&#x2F;strong&gt; にあります。白紙の状態から音楽理論に基づ
いた膨大なコード進行のアセットを参考にできるため、創作の起点として非常に強力
です。また、安全圏を抜け出した「冒険的なコード進行」への挑戦も、理論的裏付け
があるので安心して試せます。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;🤖_AI作曲時代における位置づけ&quot;&gt;🤖 AI作曲時代における位置づけ&lt;&#x2F;h3&gt;
&lt;p&gt;AIが楽曲を自動生成する時代になりましたが、&lt;strong&gt;創作者が主導権を握りながら音楽理
論の恩恵を受けられるScaler3のようなツールは、まだまだ重要な役割を果たすでし
ょう。&lt;&#x2F;strong&gt; 完全自動化ではなく、人間の創意工夫とテクノロジーの協働による作曲ス
タイルは、今後も価値を持ち続けると考えられます。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;結論として、Scaler3は音楽制作の生産性を大幅に向上させる優秀なパートナーツールです。&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
</content>
        <summary type="html">先日発売されたScaler3ですが、音楽理論を知らなくても作曲や編曲ができると話題なので購入してみました。</summary>
        </entry><entry xml:lang="en">
        <title>Synthersizer V Studio 2 Pro</title>
        <published>2025-04-15T00:00:00+00:00</published>
        <updated>2025-04-15T00:00:00+00:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2025/04/synthesizer-v-studio-2-pro/" type="text/html"/>
        <id>https://codedchords.dev/blog/2025/04/synthesizer-v-studio-2-pro/</id>
        
            <content type="html">&lt;p&gt;とりあえず、昨年Synthersizer V 1で作った藤原さくらさんの「&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;soundcloud.com&#x2F;yostos&#x2F;just-one-girl-1?si=b7db2a56715c423eb6402905f5029c64&amp;amp;utm_source=clipboard&amp;amp;utm_medium=text&amp;amp;utm_campaign=social_sharing&quot;&gt;Just One Girl&lt;&#x2F;a&gt;
」をSynthesizer V 2でヴォーカル部分をリテイクしてみました。&lt;&#x2F;p&gt;
&lt;div class=&quot;youtube-container&quot; style=&quot;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%;&quot;&gt;
  &lt;iframe
    src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;M_wFVSNXj3c&quot;
    style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;
    frameborder=&quot;0&quot;
    allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
    allowfullscreen&gt;
  &lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;以前のバージョンでもかなりリアルなヴォーカルなのであまり改善点がわからないか
もしれませんが、以下に変更点をまとめておきます。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Sythesizer_V_Studio_2_Proの変更点&quot;&gt;Sythesizer V Studio 2 Proの変更点&lt;&#x2F;h2&gt;
&lt;p&gt;次のような変更がなされています。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;歌声生成速度の改善&quot;&gt;歌声生成速度の改善&lt;&#x2F;h3&gt;
&lt;p&gt;Synthesizer V 2では歌声の生成速度が改善され、以前のSynthesizer Vに比べると300% 速くなったとのことです。&lt;&#x2F;p&gt;
&lt;p&gt;以前のバージョンでは編集時にノート1つ音程を変更しただけで少し待たないと再生できませんでしたが、
Synthesizer V 2では、ノートの編集後に再生できるまでの時間が短くなり待たされ
るという感覚がほぼありません。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;新しいボーカルモードの機能&quot;&gt;新しいボーカルモードの機能&lt;&#x2F;h3&gt;
&lt;p&gt;ボーカルモードはシンガーの歌声にバリエーションを持たせる機能ですが、
Synthesizer V 2では各パラメータが「ピッチ(Pitch)」「音色(Timbre)」「発声
(Pronun)」へと分解可能となりました。&lt;&#x2F;p&gt;
&lt;p&gt;これにより、ピッチに関しては「Clear」スタイルを強く適用するけれど
発声は「ソフト」スタイルを強くするなど、細かやかな調整が可能となりました。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;AIリテイク機能の改善&quot;&gt;AIリテイク機能の改善&lt;&#x2F;h3&gt;
&lt;p&gt;AIリテイクは、AIの技術を用いて異なる歌い方を生成できる機能です。&lt;&#x2F;p&gt;
&lt;p&gt;以前のバージョンでは、「ピッチ」と「声色」のみがリテイク可能でしたが、
Synthesizer V 2から「タイミング」も生成できるようになりました。&lt;&#x2F;p&gt;
&lt;p&gt;AIリテイク生成時のパラメータはXYパッドのようなインターフェイスとなり、
「Vibrant」「Refined」「Stable」「Raw」をコントロールする方式となりました。
より直感的に音を調整できます。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;スマートピッチコントロール&quot;&gt;スマートピッチコントロール&lt;&#x2F;h3&gt;
&lt;p&gt;以前のSyhthesizer Vでは、ピッチ関係のパラメータは「ピッチ推移」や「ビブラー
ト」がありましたが、どのように変化するか分かりづらいものがありました。&lt;&#x2F;p&gt;
&lt;p&gt;V2ではピアノロール状でピッチ制御点を直接追加できます。制御点を通るピッチカー
ブが自動生成され、制御点をドラッグするとリアルタイムにカーブが変化します。
これまでよりずいぶんと分かりやすくなりました。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;アクティベーション方法の変更&quot;&gt;アクティベーション方法の変更&lt;&#x2F;h3&gt;
&lt;p&gt;これまでアクティベーションコードを製品に入力する方式だったと思いますが、
今回からDreamtonicsのアカウントと紐付いて製品がアクティベーションを行うよう
になりました。&lt;&#x2F;p&gt;
&lt;p&gt;従ってDreamtonicsのアカウントを作成し、そこに製品登録をきちんとやっておく必
要があります。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;以前のバージョンでもかなりリアルなヴォーカルを生成できましたが、
今回のバージョンアップでより細かなコントロールが可能となりました。&lt;&#x2F;p&gt;
&lt;p&gt;私自身はそこまでヴォーカルを調整することはありませんが、
エンジンとデータベースを更新するだけでも以前不自然だった部分が
かなり改善されます。&lt;&#x2F;p&gt;
&lt;p&gt;円安でちょっと高いですが、バージョンアップの価値はあると思います。&lt;&#x2F;p&gt;
</content>
        <summary type="html">歌声合成ソフトウェア「Synthesizer V」の新バージョンである、「Synthesizer V 2」が3月21日に発売されていたので、アップグレードしました。</summary>
        </entry><entry xml:lang="en">
        <title>Goodbye Bartender!</title>
        <published>2024-11-12T00:00:00+00:00</published>
        <updated>2024-11-12T00:00:00+00:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2024/11/goodbye-bartender/" type="text/html"/>
        <id>https://codedchords.dev/blog/2024/11/goodbye-bartender/</id>
        
            <content type="html">&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.macbartender.com&#x2F;&quot;&gt;Bartender&lt;&#x2F;a&gt; was menu bar wizard I&#x27;d been geeking out over. Turned out Ben Surtees had sold it to some shadowy outfit called Applause in March 2024. Reddit blew up with users freaking out.
Today, I&#x27;ve now ditched Bartender for Ice,too.&lt;&#x2F;p&gt;
&lt;p&gt;Keep it FOSS, keep it safe, am I right?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.macbartender.com&#x2F;&quot;&gt;バーテンダー&lt;&#x2F;a&gt;はメニューバーの魔術師で、私は熱中していました。ベン・サーティーズが2024年3月にApplauseという正体不明の会社に売却していたことが判明しました。Redditではユーザーたちが大騒ぎしていました。
今日、私もバーテンダーを捨ててIceに乗り換えました。&lt;&#x2F;p&gt;
&lt;p&gt;オープンソースを守れば安全、そうでしょ？&lt;&#x2F;p&gt;
</content>
        <summary type="html">Macのメニュー管理アプリのBartenderが結構まずいことになっていました。</summary>
        </entry><entry xml:lang="en">
        <title>Finaleがフィナーレを迎える</title>
        <published>2024-08-27T00:00:00+00:00</published>
        <updated>2024-08-27T00:00:00+00:00</updated>
        <author>
            <name>Toshiyuki Yoshida</name>
        </author>
        <link rel="alternate" href="https://codedchords.dev/blog/2024/08/finale-discontinued/" type="text/html"/>
        <id>https://codedchords.dev/blog/2024/08/finale-discontinued/</id>
        
            <content type="html">&lt;p&gt;採譜ソフトのFinaleが開発・販売を終了するそうです。&lt;&#x2F;p&gt;
&lt;p&gt;音楽はざっくり言うと作曲-&amp;gt;アレンジ-&amp;gt;採譜-&amp;gt;演奏というプロセスが必要ですが、
「採譜」というプロセスは現代では端折られることも多いし、
何か新しい革新があるわけでもないから「incremental value for our customers」
が無くなったというのは確かにそうなんだろうと思います。&lt;&#x2F;p&gt;
&lt;p&gt;ただ日本のクラシック音楽界隈ではデファクトスタンダードなどで、関係者には
「Finaleがフィナーレを迎えた」などと冗談を言える雰囲気ではないくらい深刻なよ
うです。&lt;&#x2F;p&gt;
&lt;p&gt;The music notation software Finale will be discontinued in terms of
development and sales.
In music, the general process involves:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;composition&lt;&#x2F;li&gt;
&lt;li&gt;arrangement&lt;&#x2F;li&gt;
&lt;li&gt;notation&lt;&#x2F;li&gt;
&lt;li&gt;performance&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;However, the notation process is often skipped in modern times, and since there hasn&#x27;t been any significant innovation in this area, it&#x27;s understandable.
They feel there is &quot;no incremental value for our customers&quot; anymore.
That said, Finale is the de facto standard in Japan&#x27;s classical music community.
So for those involved, it&#x27;s not exactly a laughing matter where they can joke that &quot;Finale has reached its finale.&quot;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
  Today, Finale is no longer the future of the notation industry—a reality after
  35 years, and I want to be candid about this. Instead of releasing new
  versions of Finale that would offer only marginal value to our users, we’ve
  made the decision to end its development.
  &lt;footer&gt;
    &lt;cite&gt;
      {&quot; &quot;}
      the finale blog -{&quot; &quot;}
      &lt;a href=&quot;https:&#x2F;&#x2F;www.finalemusic.com&#x2F;blog&#x2F;end-of-finale-new-journey-dorico-letter-from-president&#x2F;&quot;&gt;
        {&quot; &quot;}
        The End of Finale
      &lt;&#x2F;a&gt;
    &lt;&#x2F;cite&gt;
  &lt;&#x2F;footer&gt;
&lt;&#x2F;blockquote&gt;
</content>
        <summary type="html">採譜アプリとして有名なFinaleが開発・販売を修了するそうです。</summary>
        </entry>
</feed>
