2013年 01月 01日

Lightroom の「読み込み」で自動作成されるフォルダの名前を自由に設定する

Lightroom で「読み込み」するとき、日付で整理できるんだけど、フォーマットがなぜかカスタマイズできないので使っていなかった。とはいえ、別に読み込んでふりわけをしていると、Lightroom のカタログへ追加するのを忘れたりするので、できれば Lightroom で解決するようにしたかった。

ふと思いついて、 ~/Library/Application Support/Adobe/Lightroom をあさってみることにして、以下のようにすれば自分の好みにできることがわかった。

  • 「読み込み」のダイアログで「整理」を「日付別」にして、日付形式は適当に設定しておく
  • 画面の下のほうに「読み込みプリセット」というのがあるので、適当な名前で「新規プリセットとして保存」をする
  • 念のため Lightroom を終了する
  • ~/Library/Application Support/Adobe/Lightroom/Import Presets/User Presets に「プリセット名.lrtemplate」というのがあるので、テキストエディタで開く
  • shootNameFormat = "%Y/%m-%d" とかになっているので、shootNameFormat = "%Y/%m%d" とか好きなように変更する
  • Lightroom の読み込みダイアログでそのプリセットを選択する

「日付形式」が該当項目がなくなるので空欄になるけど、設定は適用されていて、読み込みをすると正しく読み込まれることを確認した (Lightroom 4.3)。たぶん触らなければ問題ないと思う。


これとは別に、カメラカードからは「移動」を使えないという問題があるんだけど、こちらは解決しなかった。プリセットを「移動」で作っても、カメラからの場合必ずコピーだけになってしまう (ヘルプにも記載されている仕様?らしい)。これは別途 SD を毎回フォーマットする (こわい) 方法で解決してみる。

2012年 12月 30日

gerry++

2012年 12月 26日

メモ postfix で gmail

/etc/postfix/main.cf で

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes 
smtp_sasl_auth_enable = yes 
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_sasl_security_options =

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = stfuawsc.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = stfuawsc.com, localhost, localhost.localdomain, localhost
relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0 
recipient_delimiter = + 
inet_interfaces = localhost

みたいに

/etc/postfix/sasl_passwd に

[smtp.gmail.com]:587    address:password

書いて

postmap /etc/postfix/sasl_passwd
/etc/init.d/postfix restart
2012年 12月 22日

Mac で通信量をメニューバーに表示する

Bandwidth+ ( https://itunes.apple.com/us/app/bandwidth+/id490461369 ) を使う。

日本語リソースも含んでいるんだけど、翻訳が意味不明なので英語にする。

defaults write au.id.haroldchu.mac.Bandwidth AppleLanguages '("en-US","jp")'
2012年 12月 19日

ウェブページの差分をとってメールで送るワンライナー

cron に適当に登録しとけば差分とって (差分があったら) メールを送ってくれるのがほしかった。具体的にはニュースリリースとかで、新製品情報とかを即時通知してほしい。

簡単にかけるかと思ったけど微妙に長くなってしまった。もっと簡単にできる方法を教えてください。

# 実際は一行
LANG=ja_JP.UTF-8 w3m -dump http://cweb.canon.jp/newsrelease/index.html?id=generalNews > /home/cho45/tmp/canon_news.1
  && diff -u /home/cho45/tmp/canon_news /home/cho45/tmp/canon_news.1 > /tmp/diff
  || cat /tmp/diff | mail cho45@example.com -s "[DIFF] canon" 
  ; mv /home/cho45/tmp/canon_news.1 /home/cho45/tmp/canon_news 

この例の場合 RSS もあるので、RSS の差分を通知してくれるサービス (きっとあるだろう) を使ってもいいと思うが、探すのがめんどうなので w3m 使って HTML レンダリングした結果を差分とったほうがはやいと思った。

2012年 12月 07日

gerry++

2012年 12月 06日

Google Spread Sheet のクソ複雑で使う気がなくなるAPIを、さくっと使えるJSONP APIに変身させるたった1つの方法

Google Spread Sheet の API は OAuth と XML を使ってシートを変更するものなのですが、これが非常に使いづらい。OAuth はいいとして、XML 作ったりするのがつらい。そのうえ JavaScript だけで完結させるのが、クロスドメインXHR が必要になるので難しい。あと XML 作ったりするのがつらい。OAuth のスコープもスプレッドシート全体への変更を許してしまって、これだと粒度が大きすぎる。あと XML 作ったりするのがつらい。

ということでまとめると

  • 特定のスプレッドシートだけを外から更新したい
  • OAuth は大変めんどうかつ、特定のスプレッドシートのみ権限を与えることができない
  • Google Spread Sheet の XML API が全力で面倒

なので、

  • 特定のスプレッドシートだけを更新できる
  • クロスドメインで、JSONP を使える
  • 安全に使える

を満す API を無理矢理グーグルに作ります。社員でもないのにAPI作るとかwwww って話ですが Google Apps Script を使えば、どんな無能でもAPI作れる感じになっているのでさくっと作ってみました。

手順

  1. いじりたいスプレッドシートで [ツール] → [スクリプトエディタ…] を開く (Google ドライブの新規作成から、スクリプトを選んでもいい)
  2. スクリプトエディタに code.gs の内容をはっつける。
  3. code.gs の openById() の引数をスプレッドシートのURLの含まれる key=... にする
  4. api_key を適当感じに生成していれる ( head /dev/urandom| shasum とかする)
  5. [ファイル] → [バージョンを管理] でバージョンを生成
  6. [公開] → [ウェブアプリケーションとして導入] で導入する ([アプリケーションにアクセスできるユーザー] は [全員 (匿名ユーザーを含む)] で良い。※ 設定に関わらず dev の環境はログインしていないと叩けない)
  7. call.js みたいな感じで叩く

まとめと注意点

共通鍵である api_key のみで安全性を確保しているので、api_key が漏れないようにする必要があります。Google Apps Script 側は外にコードが公開されたりはしないのと、必ず https で配信されるので問題ありませんが、API を呼ぶ側も https にしたほうが安全です。幸いこれまた Google の Drive のウェブ公開機能 (ルートフォルダを全世界に公開にすると、https://googledrive.com/host/FOLDER_ID でアクセスできる) を使うと https で簡単に公開できます (ファイル名自体を知られないようにする必要はあります)。

自分のサーバが全くいらないので非常に手軽でいい感じです。

gerry++

2012年 11月 21日

gerry++

2012年 11月 16日

gerry++