トップ  

まちゅダイアリー


2015-05-08 (金)

一眼レフの写真をLightroomとPhotosでいい感じに管理

一眼レフで撮った写真はこれまでWindows8 + Picasaで管理していた。でも、Windowsをほとんど使わなくなったので、写真の管理もMacに移行したい。1年くらい試行錯誤して、ようやくいい感じに管理できるようになった。

基本的な仕組みはこう。写真はSDカード経由でLightroomに読み込んで管理し、選別した写真をPhotos *1 に書き出す。PhotosからはiCloudフォトライブラリを経由して、iPhoneやiPadで写真を見られるようにした。

Managing photos with LightRoom and Photos.app

  1. SDカードをMacBook Proのスロットに挿すと、Lightroomが起動して写真を読み込み
  2. Lightroom上で写真を選別(xボタンで不要な写真に除外フラグをつけて一括で削除)
  3. 残った写真を選択してフォルダに書き出し、Photosへインポート
  4. Photosへインポートされた写真は自動的にiCloudフォトライブラリへアップロードされる
  5. iPhoneやiPadの写真アプリで一眼レフの写真が見られる!
  6. AirPlayを使ってAppleTV経由でテレビでも一眼レフの写真が見られる!

iPhoneユーザーなのでPhotosとiCloudフォトライブラリを使っているけど、4以降はGoogleフォトでもFlickrでも応用が効くはず。また、ここでのポイントは3番の書き出しのところ。LightroomはFlickrやFacebookへの書き出しプラグインはあるけど、Photosへの書き出しプラグインはない。そこで、Adobe LightroomからiPhotoへワンクリックで出力して共有する方法を参考に、Photosへもワンクリックで出力できるようにした。その設定がこちら。

Lightroom photos export settings

  1. 書き出し場所は適当なフォルダでOK。
  2. 写真をフルサイズで書きだすとあっという間にiCloudの容量 (5GB) がいっぱいになるので、見たい端末の解像度に合わせて写真を縮小する。僕はiPad Retinaを使うので2048ピクセルにした。これならファイルサイズは大きくても1MB/枚なので、数千枚まではiCloudに保存できる。いっぱいになったら20GBの有料プランにするか、古い写真を削除するか、その時に考える。
  3. 必要に応じて写真から位置情報を削除する。外部に公開せずに自分と家族だけで使うならそのままでも良い。
  4. 書きだしたあとに自動的にPhotosアプリを起動する設定。

あとはこの設定を「Photosへの書き出し」などの名前でプリセット登録しておけばよい。書き出しが終わるとPhotosが起動して、いま書きだした写真がそのまま読み込めるようになっている。

写真の自動読み込み

これでMacでの写真管理のワークフローはひと通り整ったよ。普段なかなかPCに向かう時間が取れないので、こうやってスマホやタブレット、それにテレビで家族と一緒に写真が見られるのはとても満足度が高い。このためにずっとiOS7だったiPad(第3世代)もiOS8にアップデートしちゃったよ。

iCloudフォトライブラリの代わりにFlickrを使う場合は、手順3で書きだしたフォルダをFlickr Uploaderの監視対象に指定すれば良い。Flickrは無料ユーザでも1TBまで使えるし、フォルダ内のファイルは自動でアップロードしてくれるので便利。ただ、iPhone用のアプリが日本のApp Storeで公開されていないのが欠点。

Lightroomは6が発売された。僕は5のパッケージ版を使っているけど、本格的に使うなら定額制のCC版を使うのもいいかも。

Adobe Photoshop Lightroom 6 日本語版 Windows/Macintosh版

アドビシステムズ
¥ 14,472

参考

このワークフローに至るまでの経緯(自分用メモ)

  • Eye-fiでの自動アップデートは使わなくなった。ただのSDカードとして使っている。動画の同期に時間がかかるのと、Picasaよりもフォルダの自動読み込みに制約があった(年月日ごとのサブフォルダを作れない)ことが理由。
  • LightroomとApertureで迷ってApertureを購入したのに、数カ月後にApertureのサポート終了が発表されてLightroomを買い直した…
  • Photosだけで管理しないのは、写真の元ファイルを外付けHDDにそのまま保存したいから(PhotosはiPhotoと同じように独自形式で保存される)
  • iPhoneで撮った写真はLightroomを使わずにiCloudフォトライブラリでそのまま管理することにした。写真をバックアップしたいときはDropBoxなどの使うことにする。

*1 正式名称は「写真」だけど紛らわしいのでここではPhotosに統一する


2015-05-05 (火)

tDiary を docker で動かす

この日記のサーバ移転に向けて、新しい環境をどうするか考えている。いままで通り、普通に nginx と unicorn で動かしても面白くないので、何か新しくしたい。いままで運用しての悩みは、日記サーバはたまにしかログオンしないので、すぐに環境がどうなっていたか分からなくなってしまうこと。chefやantibleやitamaeなどの構成管理ツールを入れるのはオーバースペック。

そこで、いっそ docker で動かしてみようと思う。dockerは1年ほど前に少し動かした程度で、その時はまだ運用で使うにはハードルが高かった。あれから1年が経ち、1コンテナ1プロセスなどの運用パターンも確立しつつあるようなので、いい時期かもしれない。当時はmonitを使って複数プロセスを起動しようとしていたっけ。dockerは公式ドキュメントがよく出来ているので、 blog や qiita などの情報を探すよりも、まずは公式ドキュメントをじっくり読むのがよい。

Macでのdocker環境構築

いずれ、Linuxサーバ上で動かすことになるから、最初は vagrant を使って ubuntu core を入れてみた。 vagrant ssh で ubuntu core にログインして docker コマンドを動かしているうちは、これで良かった。でも、 Mac から Web ブラウザで接続しようとすると、ネットワークの設定が面倒になっちゃう(特に ubuntu core は vagrant 側のネットワーク設定が自動的に反映されない)。 docker の使い方を覚えたいのに、他のところで時間を使うのはもったいない。

という訳で、Install Docker on Mac OS Xで紹介されている boot2docker を使うことにした。 brew install boot2docker でインストールする。 VirtualBox を使って仮想化した Linux 上で docker を動かすので仕組みは vagrant + Linux + docker と同じだけど、いい感じにネットワーク設定されていたり、 boot2docker ip でIPアドレスを調べられたり、 Mac 側から docker コマンドが使えたり、 Mac と docker コンテナでファイルを共有できたりと、かゆいところに手が届いて便利。 VirtualBox の GUI を開けばどのようなネットワーク設定になっているか(NATとホストオンリーアダプタの二枚構成)も分かるので、いずれ vagrant + Linux + docker 構成に移すときの参考にもなる。

docker の使い方

さっきも書いたとおり、公式の The Docker User Guide - Docker Documentation がよくできているので、最初はこれをひと通りやって基本的な使い方を覚える。 docker は本体だけでなく周辺のエコシステムが熱いけど、まずは docker 本体の仕組みに慣れるのが良い。

tDiary を docker で動かす

docker の使い方に慣れてきたので、いよいよ tDiary を docker 上で動かしてみる。最初に悩むのは、ベースとなるイメージをどれにするか。最近は、公式の言語スタックが公開されているので、これを使うのが良さそう。公式の言語スタックについては、DockerHub公式の言語Stack | SOTAが参考になった。いや、この記事に限らずここのブログは参考になる情報ばかり。

もちろんRubyの公式イメージも用意されている。公式イメージを使うにしても、どのような環境なのか分からないと使えない。latest(2.2.2)のDockerfileでRubyがどのようにインストールされているかを調べて、さらにonbuildのDockerfileを読んでイメージの作り方を調べる。

だいたい分かったので、 tDiary の最小構成での docker イメージを作ってみた。まずは1つの docker イメージで動くよう、 unicorn も memcached も mongodb も使わずにしている。コンテナは揮発性の環境にするために、データディレクトリはVOLUMEを使ってホスト側と共有している。Dockerfileを用意したら、イメージをビルドする。

$ docker build -t machu/tdiary .

ruby-2.2.0イメージからスタートして、 tdiary new コマンドと bundler で必要な環境をセットアップし、 tdiary イメージの完成。次に作成したイメージから docker run コマンドでコンテナを起動する。

docker run -v "$(pwd)/data":/usr/src/app/data --rm -p 8080:9292 machu/tdiary

ホスト側のカレントディレクトリに日記用の data ディレクトリをマウントしている。 Linux のホストOSを意識せずに、普通にMac側とdocker側でディレクトリが共有される。このへんはboot2dockerが頑張っているみたい。詳しくはboot2dockerでのVolume問題が解決しそう | SOTAを参照。

イメージからコンテナを生成してブラウザでアクセスすると、ちゃんと日記が表示される。 tDiary を終了するとコンテナも削除される。コンテナが削除されても、日記データは Mac 側の data ディレクトリに残っている。毎回まっさらな環境から tDiary アプリが動くので、環境が担保されている安心感がある。揮発性の環境 (immutable infrastructure) の良さを少し実感した。

認証やログや Web サーバの連携や tDiary アップデートへの追従などはこれから。イメージを作りなおせば、最新の tDiary を使うようになっているけど、tDiary updateボタンのように簡単にアップデートできるようにしたい。docker composeも使うことになるだろう。

Dockerの使いどころ

すべてをコンテナで動かす!ようにはたぶんならなくて、僕は tDiary の開発も今までどおり Mac 上で rbenv を使うだろう。 docker は軽量とはいえ、イメージの作成とコンテナの起動が必要なので、書いてすぐに動く気軽さはなくなる。代わりに、コンテナが隔離&揮発性のおかげで、環境が綺麗であるのはメリット。 tDiary の開発でも、たまたまとある gem が入っていたので動いていた…というのも、たまにあったので。ローカルでは普通にコードを書いて、テストを通してGitHubにコミット後にコンテナ環境を作成、その後に日記サーバへコンテナをデプロイという流れで、日記サーバの環境を手元と同一にするところに使うのが良さそう。

参考にした情報

まだ読んでいないけど、WEB+DB PRESS Vol.86|技術評論社でもDocker特集をやっているみたい。

Tags: docker tdiary

2015-04-20 (月)

さくらのVPSを解約した

さくらのVPSは年間契約していて、5月末が更新日となる。前月の20日(つまり今日)が解約期限だったので、さくらのVPSの解約手続きをした。といっても、やめちゃうのではなく、新しいVPSプランに乗り換えるのが目的。今はメモリ1GBのHDDモデルを使っていて、次はSSDモデルにするつもり。メモリは1GBか2GBで迷ってる。

過去の日記を読み返してみたら、これでさくらVPSは3代目になるのね。毎回、手順を残していたので参考になる。

Tags: sakura