Mac OS X 環境でコマンドラインで Exif から Orientation を消す
画像ファイルで Exif はあるけど Orientation が無い、という特殊なテストデータが必要になったので。
環境
Homebrew 0.9.5
exiftool のインストール
$ brew install exiftool
Orientaiton を消す
$ exiftool -Orientation= XXX.jpg
Redmine で Github のように絵文字を入力できるプラグインを作った
チケットの内容は簡潔に書くのがいいと思うが、簡潔に書きすぎると冷たい印象になったりしてよくない。
一方、同じような issue 管理機能でも Github では ":"(コロン) で囲った一定の文字列で絵文字が手早く書けるので、簡潔に内容を書きながら、ちょっとした感情を含めることができて冷たい感じになりにくい。
Redmine でも同じことがしたいのでプラグインを作ってみた。
環境
Redmine 3.0 以降
インストール
1. 以下のようにプラグインをインストールする。
$ cd $RAILS_ROOT/plugins $ git clone https://github.com/suer/redmine_emoji.git $ cd $RAILS_ROOT $ bundle install
2. Redmine を再起動
機能
Wiki 記法が効くところならどこでも :xxxx: 形式の Github の絵文字を認識し、画像と差し替える。
Emoji cheat sheet for GitHub, Basecamp and other services
似たプラグイン
当然同じようなことを考えている人はいるようで、同じ目的のプラグインは既にある。
https://github.com/tmy/redmine_gemoji
こちらは Textile のみの対応となっており、Markdown で使えないのと、サジェストする機能がなかったので新たに作った。
サブディレクトリ運用の複数の Redmine で別の Redmine にアクセスすると勝手にログアウトするのを防ぐ
確認したバージョン
- Redmine 2.6.9.stable
問題
Redmine は _redmine_session という Cookie でログイン状態が管理されていてる。
Redmine では、何もしないとパスが "/" で登録されるので、実際に異なるパスの Cookie データでも、同じとみなされてしまう。
なので、別の Redmine にアクセスすると、同じドメイン、パスの同じ Cookie キーなのに、値が違うので、ログインのしなおしになる。
設定方針
config/application.rb の以下の部分にパスを指定すればいいが、このファイルは Git の管理下なのであまり修正しないほうがいい。
config.session_store :cookie_store, :key => '_redmine_session'
Redmine では、 config/application.rb に追記修正したい場合に、config/additional_environment.rb というファイルを用意している。 このファイルに書かれたコードは、Rails::Application のインスタンス化で eval されるので、 config/application.rb に書いたのと同じように動く。
解決
ということで、それぞれの Redmine の config/additional_environment.rb に以下のように書けばうまく動く。
config.session_store :cookie_store, :key => '_redmine_session', :path => '/XXXX'
XXXX はそれぞれの Redmine で異なる値を入れればよいが、その Redmine が配備されているサブディレクトリパスとかにすればいいと思う。
タブ文字で grep する
test(タブ文字) みたいなのを grep したい場合。
ターミナル
$ grep "test(タブ文字)" /path/to/file
のように入力したいが、普通に入力するとシェルがタブ文字を奪う。 bash, zsh の場合は ctrl-v を入力してからタブを打つと入力される。
ただし、これはメモなどからコピペするときに苦労する。
[:space:] の利用
空白文字もマッチしてしまうけど、それでもよければ [[:space:]]
でタブ文字もマッチする。
これならメモなどからコピペできる。
$ grep "test[[:space:]]" /path/to/file
$'\t'
$ grep "test$'\t'" /path/to/file
はうまくマッチしなかった。
$ grep test$'\t' /path/to/file
であればマッチする。
どんなふうに展開されるか追っていけば使えるかもしれないが、よくわかっていない。
Zendesk で独自ドメインのサポートアドレスを使用する設定の SPF レコードチェックでエラーが出た
Zendesk のサポートアドレスに独自ドメインを使用する場合は SPF レコードに mail.zendesk.com を指定すると、メールから Zendesk という文字が消えるので顧客は Zendesk を意識せずにサポートを受けることができる。
自社のメールドメインを使用してメールをZendeskから代理送信する方法
設定しようとしたドメインでは、Google Apps のドメインの所有チェックの認証コードも TXT レコードに入れていたので、以下のように設定した。
"v=spf1 +include:_spf.google.com +include:mail.zendesk.com -all" "google-site-verification=XXXXXXXXXXXXXXXXX"
しかし、上記では Zendesk のチェックを通らなかった。
いくつかの SPF レコードのチェッカをためしたところ allgoogle-site-verification という引数は駄目だというようなメッセージが出ていたので、 試しに all の後ろに空白文字を入れたら通った。
"v=spf1 +include:_spf.google.com +include:mail.zendesk.com -all " "google-site-verification=XXXXXXXXXXXXXXXXX"
正しい対処では無い気がする。
シェルスクリプトで find の結果で回すときに空白文字が含まれるファイル名が含まれる場合の対処
IFS を改行のみにしておくとよい。
IFS=$'\n' for file in $(find /path/to/directory -name "*.txt"); do echo "$file" done