カテゴリー
Apple

iPhoneの写真整理、決定版!PythonとmacOSメタデータで実現する「実質的重複」ファイルの完全なファイリング術

はじめに:この記事の執筆について

この記事は、本ブログの筆者と、対話型のAI開発アシスタント「Gemini CLI」との共同作業によって執筆されました。

事の発端は、筆者が抱えていた「iPhoneの手動バックアップとクラウド同期によって散らかった、大量の写真ファイルの整理」という、ごく個人的な課題でした。 この課題をGemini-CLIに相談したところ、対話を通じて解決策が練られ、メタデータに基づく重複判定を行うPythonスクリプトが提案・作成されました。私たちは共にスクリプトをデバッグし、ファイルを整理し、最終的にその全プロセスを、筆者の指示のもと、技術ブログ記事としてまとめるに至りました。 本稿の生成および、ここで紹介するコードの作成には、GoogleのGeminiファミリーの先進的な大規模言語モデルが使用されています。 この記事は、人間とAIがパートナーとして一つの課題に取り組み、実践的な解決策を導き出し、その知見を共有するという、新しい協業の一例です。どうぞ、そのプロセスと成果をお楽しみください。


iPhoneで撮った写真、どう整理していますか?

カテゴリー
コンピューター

大量の写真を高速に整理! find, md5, awk を使った重複ファイルの見つけ方

この記事は、Googleの大規模言語モデル Gemini (モデル: gemini-2.5-flash-lite gemini-2.5-pro) と協力して作成しました。「大量の重複ファイルをどうやって効率的に見つけるか?」という実践的な課題について、対話を通じて解決策を導き出し、最終的にそのプロセス全体をブログ記事としてAIに執筆させています。この記事は、AIを単なる文章生成ツールとしてではなく、問題解決のパートナーとして活用した一例となります。


はじめに

「PCに散らばった大量の写真、整理していたら『これって同じ写真?』と不安になったことはありませんか?」

フォルダを分けてバックアップを繰り返しているうちに、同じファイルが複数の場所にコピーされてディスクスペースを圧迫していることはよくあります。一つひと つ手作業で確認するのは、ファイルが数千、数万ともなると現実的ではありません。

この記事では、開発者やコマンドラインに慣れている方向けに、find, md5, awkという3つの強力なツールを組み合わせて、大量のファイルの中から重複しているものを高速に見つけ出す方法を解説します。

カテゴリー
コンピューター 文化

📖 読書感想文6『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

カテゴリー
コンピューター 文化

📖読書感想文『Tidy First? ―個人で実践する経験主義的ソフトウェア設計』Kent Beck 著、吉羽 龍太郎、永瀬 美穂、細澤 あゆみ 訳 https://amzn.to/4i4wMvr

カテゴリー
コンピューター 文化

📖 読書感想文5。 14章 大規模テスト『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

カテゴリー
コンピューター 文化

📖 読書感想文4。13章 テストダブル『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq を以前読んだ。

それでテストについて記されている11章12章を読んだ。引き続きテストに関連する13章の、テストダブル、を読もうと思う。2024年12月31日(火)スタートとする。

カテゴリー
コンピューター 文化

📖 読書感想文3『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq を以前読んだ。

それでテストについて記されている11章を読んだ。引き続き12章を読もうと思う。前の章を読み終わったのが2024年12月1日(日)くらいなのでこの日にスタート、とする。

カテゴリー
コンピューター 文化

📖 読書感想文2『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

前回: 📖 読書感想文1『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn – oki2a24

『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq を以前読んだ。

そのこともあり、これまで1章を読んだが、次は2章ではなくテストについて記されている11章を読もうと思う。前の章(第1章)を読み終わったのが2024年11月1日(金)なのでこの日にスタート、とする。

カテゴリー
コンピューター 文化

📖 読書感想文1『Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 編、竹辺 靖昭 監訳、久富木 隆一 訳 https://amzn.to/3YrMBEn

本を手に取るまで。なぜこの本を選んだか

この本の前に、『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq を読みました (📖 読書感想文『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq – oki2a24) 。そのきっかけとなった次のページに、大きくではないが別の本の紹介もあったのです。

  • 自動テストの種類の曖昧さが少ない「テストサイズ」という分類 スコープとの掛け合わせでわかる“コスパの良いテスト” – ログミーTech https://logmi.jp/tech/articles/329184

そういった時に、これはGoogleから始まったんですが……。具体的には『Googleのソフトウェアエンジニアリング』という本の中で説明されているんですけど。

ここから、今回の本に興味を持ちました。

カテゴリー
コンピューター 文化

📖 読書感想文『単体テストの考え方/使い方』Vladimir Khorikov https://amzn.to/3BCLytq

読む前。本の存在を知り、感想を知り、自分の学びたいことを記す

  • 自動テスト全体の信頼性を維持するためにはどうするか 「ブレない基準でピラミッドを作り、スモールに切り出していく」 – ログミーTech https://logmi.jp/tech/articles/329185

最近良い本が出過ぎて、私の仕事を脅かすようなライバルが出てきています。例えば『単体テストの考え方/使い方』という本があります。この本は内容が良過ぎて、私がいろいろ説明したいことがほとんどこの本に書いてあるような事態になっています。とても良い本なのでおすすめです。私の活躍できる領域を明らかに蝕んできているぐらい、良い本です。

これでこの本を認識し、興味を持った。

「コードレビューするときに使えるフレーズを探す」と念頭におけば読む時のとっかかりになって捗りそう。他に→「自分が普段書いているテストコードは本の中ではどの位置にいるか?」

どういうパターンのテストを書け、質の良いテスト・ケースを作る方法、は取り扱ってる?境界値とか。