メインコンテンツへスキップ

「写真」アプリで検索した写真の撮影日周辺の写真を確認する

[iPad Workers|https://podcasts.apple.com/jp/podcast/ipad-workers/id1567317147] の #113 で紹介されていた写真アプリの便利な小技が、まさに自分が欲していたものだった。

iPhoneの「写真」アプリで検索した写真の撮影日周辺の写真を参照したいことがあるが、その際、撮影日を確認してからカメラロールに戻り、その近辺の写真を探していたが、この手順がちょっと楽になる。

Image from Gyazo

検索した写真の下のiアイコンをタップし、

Image from Gyazo

すべての写真に表示をタップすれば…

Image from Gyazo

撮影日時近辺のカメラロールが表示される。これは便利。

ただ、Podcastでも言及されていたが、なぜか Macの「写真」アプリにはすべての写真に表示がなく同じことをするための手段がわからない…と思っていたが、いま発見した。

検索した写真を右クリックすると表示されるメニューに"すべての写真”に表示があるので、それを選択すれば同じことができる。

Image from Gyazo

関連記事

Textwell

Textwell - The Modeless Textbox for iPhone, iPad, iPod touch, Mac, and Watch. メモ、メッセージ、ブログ、検索、投稿など、あらゆる文章作成タスクに使用できる多目的テキストエディタ ファイリングやスタイリングのための機能はないが、JavaScriptベースのカスタマイズ可能なアクション、自動履歴、クラウド同期などをサポートしており、シンプルで拡張性が高い Mac版、iOS版、AppleWatch版がある Textwell | URL Schemes 自作のアクションなど # ソートして重複行を削除するTextwellのアクション Obsidianのデイリーノートへ追記するTextwellのアクション Amazonから書誌情報をTextwellへ取り込むブックマークレット

🗒️ メモ管理の現状

PCやスマホで作成したメモをどのように管理するか。方法やツールを替えながら長年模索してきたが、ここ最近は以下の考え方を元に運営し安定している。 (1) PKMツールとしてのObsidian # ObsidianはいわゆるPKM(Personal Knowledge Management)のツールとして使用しており、自分で考えたことや調べてまとめたこと(主に技術的な話題)を管理している。 ページ間のリンクなどObsidianらしい機能はあまり使っていないが、メモ管理ツールとしてこなれているし、プラグインで機能拡張できるところも良い。 有償のObsidian Syncを契約しており、iPhone・iPad・Mac・PCの各アプリでメモを同期している。 また、すべてのメモではないがquartzというツールでWebサイトとして公開している。 NamaraiiBox Obsidianでのノート編集から公開までの流れは、このページにまとめてある。 (2) 覚え書きを中心としたメモを管理するApple謹製メモ # メモを外部へエクスポートする有効な手段がないという大きな不満はあるものの、アプリとしては年々良くなっているし、Apple製品は今後も使っていくだろうということで、覚え書きを中心としたメモはApple謹製の「メモ」で管理している。 メモのジャンルはこんな感じ。 写し・控え(各種手続きの写し。スキャンしたPDFを添付する) モノ(買ったもの。型番やマニュアルのPDFを一緒に管理) 家族(家族のもろもろの覚え書き) 飲食店(好きな店、行ってみたい店) カメラ・写真(撮影スポット、持っているカメラ、レンズ、機材など) キャンプ(キャンプ場のメモ、持っている道具、キャンプ飯レシピ) 人物(スキャンした名刺とメモ) クルマ(車検証や保険証の写し、メンテナンス記録、マニュアルなど) 雑多なメモ(洋服のサイズ、粗大ゴミの出しかたなど) Appleのメモは添付したPDFの中も検索できるので、取説やスキャンした紙などをバンバン添付して使っている。 iCloudでiPhone・iPad・Mac間で同期している。ひと昔前はメモの容量が大きくなると同期が不安定になっていたが、ここ最近は安定しているようだ(自分の環境では)

〰️ USB Type-Cの複雑さ

iPhone 15でLightningからUSB Type-Cへ変更される記念?で、なんとなくしか理解していないUSB Type-Cの仕様についてまとめてみた。 USB Type-Cとは # USB Type-Cは、物理的なコネクタの形状を指すものである。その背後にあるデータ転送や電力供給の仕様は、USB Type-Cの形状だけでは特定できない。 USBの仕様 # 仕様 データ転送速度 注意点 USB 2.0 最大480 Mbps 新しいデバイスとの互換性が必要な場合には注意が必要 USB 3.2 Gen 1 最大5 Gbps USB 3.2 Gen 2 最大10 Gbps USB 3.2 Gen 2x2 最大20 Gbps USB4 最大40 Gbps Thunderbolt 3との互換性があるが、すべてのUSB4デバイスやケーブルがThunderbolt 3と互換性があるわけではない USB Power Delivery (USB PD) # USB Type-Cコネクタを使用するデバイス間での高出力の電力供給を可能にするもので最大100W (20V@5A)の電力供給が可能。

「ひと手間」がないことの快適さ

「こうすればできる」と「快適にできる」の差。たとえば、 iPhoneでテザリングできるんだし、iPadはWi-Fiモデルで十分だ 通知や時刻はなんてiPhone出せばわかるんだし、Apple Watchなんていらない というような手間はかかるが、できなくはない。ワークアラウンドはある。というパターン。 たしかに機能的にはその通りだが、数年前にiPadをセルラーモデルにしたところ、あぁ、この「ひと手間」の差が大きいことに気づいた。 iPhoneを取り出してテザリングモードをオンにする 時々、うまく接続できないことがある という、ほんのちょっとした「ひと手間」を省けることで、iPadをコンテンツビューア以外の用途で使ってみようかとなる。 Apple Watchも同様で、会議中や歩いている時などiPhoneを取り出しにくい場面で、チラッと通知を確認したり、Spotifyのプレイリストを切り替えたり、ボイスメモしたりを「快適」にできる。このことで、iPhoneをより活用できるようになる。

Blueskyのカスタムフィードを作成する

SkyFeedのFeed Builderを使ってカスタムフィードをつくる - Blueskyを参考にBlueskyのカスタムフィードを作成してみた。ざっくりとした手順としては、 Blueskyでアプリケーションパスワードを生成する SkyFeedへアプリケーションパスワードを使用してログイン Feed Builder - Create your first feed Input Remove RegEX Sort Limit Stash+Popという種別のブロックを組み合わせて検索条件を作成する 名前を付けてPublishする という感じ。作成したカスタムフィードはこちら。 横浜FCの話題 - Bluesky

Amazonから書誌情報をTextwellへ取り込むブックマークレット

bibinfo-exporter/script.js at main · goryugocast/bibinfo-exporterを参考にAmazonから書誌情報をへ取り込むブックマークレットを作成した。 直接Obsidianに取り込むのは自分の運用に合わないためTextwellへ追記するように。 こちらは書籍専用で、著者名や出版社、出版日などを取り込む。 Amazonの書誌情報をTextwellの追記するブックマークレット javascript: (() => { const dest_path = 'notes'; //ファイルを格納するパス const amazon_id = 'namaraiicom-22'; // アフィリエイトID let p = document.getElementById("productTitle"); //書籍のタイトルの処理 p = p ? p : document.getElementById("ebooksProductTitle"); const title = p.innerText.trim(); let asin = document.getElementById('ASIN'); //ASIN番号の処理 const a = asin ? asin.value : document.getElementsByName('ASIN.0')[0].value; const url = `https://www.amazon.co.jp/exec/obidos/ASIN/${a}/${amazon_id}/`; const link = `[${title}](${url})`; let image = document.getElementById("imgTagWrapperId"); //書影の処理 image = image ? image : document.getElementById("ebooksImgBlkFront"); const imageurl = image.querySelector("img").getAttribute("src"); const c = document.getElementsByClassName('author'); const pub = []; const ct_list = []; // ctの各要素を保存する配列を新たに定義 for (let g = 0; g < c.length; g++) { const at = c[g].innerText.replace(/\r?\n/g, '').replace(/,/,''); const pu = at.match(/\(.+\)/); const ct = at.replace(/\(.+\)/,'').replace(/ /g,''); ct_list.push(ct); // ctを配列に追加 pub.push(`${pu} [[${ct}]]`); } const author = pub.join(' '); let h1title = `『${title}』`; h1title = h1title.replace(/[\\/:*?"<>|.]/g, char => ({ ':': ':', '\\': '\', '/': '/', '?': '?', '*': '*', '"': '”', '<': '<', '>': '>', '|': '|', '.': '.' }[char])); const mdimage = `[![|100](${imageurl})](${url})`; // 登録情報欄を取得 let detail = document.getElementById('detailBullets_feature_div'); if (!detail) { const subdoc = document.getElementById("product-description-iframe").contentWindow.document; detail = subdoc.getElementById("detailBullets_feature_div"); } const detailtext = detail.innerText; const pubdata = detailtext.split(/\n/); pubdata[2] = pubdata[2]?.slice(10); // 出版社 const date = new Date().toLocaleDateString('sv-SE'); const lines = `---%0D%0Atitle: "${h1title}"%0D%0Adate%3A%20${date}%0D%0Aupdated%3A%20${date}%0D%0Andl%3A%0D%0Atags%3A%20読書メモ%0D%0Adraft%3A%20true%0D%0A---%0D%0A${mdimage}%0D%0A-%20${link}%0D%0A-%20${author}%0d%0A-%20${pubdata[2]}%0D%0A%0D%0A%23%23 関連・思い出した本 %0d%0A%23%23 読書メモ%0d%0A`; const app = `textwell:///add?text=${lines}`; window.open(app); })(); こちらは一般的な商品の画像と商品名を取り込む。 Amazon商品の商品名と画像へのリンクをTextwellに追加するブックマークレット javascript: (() => { const dest_path = "notes"; //ファイルを格納するパス const amazon_id = "namaraiicom-22"; // アフィリエイトID let p = document.getElementById("productTitle") || document.getElementById("ebooksProductTitle"); //書籍のタイトルの処理 const title = p.innerText.trim(); const asinElement = document.getElementById('ASIN') || document.getElementsByName('ASIN.0')[0]; //ASIN番号の処理 const a = asinElement.value; const url = `https://www.amazon.co.jp/exec/obidos/ASIN/${a}/${amazon_id}/`; const link = `[${title}](${url})`; const image = document.getElementById("landingImage"); const imageurl = image.getAttribute("src"); // 自分が必要なパラメータに変換 let h1title = title.replace(/[\\/:*?"<>|.]/g, char => ({ ':': ':', '\\': '\', '/': '/', '?': '?', '*': '*', '"': '”', '<': '<', '>': '>', '|': '|', '.': '.' }[char])); const mdimage = `[![|100](${imageurl})](${url})`; const lines = `${mdimage}%0D%0A%0D%0A${link}%0D%0A`; const app = `textwell:///add?text=${lines}`; window.open(app); })();