Spotlight から素早く Things にタスクを追加する Flashlight プラグインを作った
Spotlight用プラグインシステム Flashlight を使って、Things にタスクを追加する Spotlight プラグインを作りました。
https://github.com/suer/flashlight-things-plugin
環境
- Mac OS X Yosemite
- Flashlight 0.9.1
セットアップ
1. Flashlight をインストール
2. プラグインをインストールする
$ git clone https://github.com/suer/flashlight-things-plugin.git ~/Library/FlashlightPlugins/things.bundle
まとめ
Flashlight を使えば、Spotlight に簡単に機能を追加できて便利。
Today Extension がフリーズする
iOS8 で導入された Today Extension を持つアプリを作ってみたが、ある特定の経路でアップデートするとフリーズする。
OS を再起動すると正常に動作する。
作ったアプリが一つだけなので原因が特定できていないけど、以下のような感じ。
フリーズする
- DeployGate からアップデート
- (旧)TestFlight からアップデート
フリーズしない
- 自前で OTA 配信サイトを Dropbox 上に作ってアップデート (OTA 配信の方法について)
- iTunes Connect の外部テスター機能を使ってアップデート
stackoverflow で同様な現象の質問を見つけたけど、今のところ回答はついてない。
Elasticsearch のデータを別のサーバに移行する
スナップショットを作成して別のマシンでリストアする手順。
環境
Elasticsearch 1.1.1
移行元サーバ
1 スナップショットディレクトリの指定
$ curl -XPUT 'http://server1:9200/_snapshot/my_backup' -d '{ "type": "fs", "settings": { "location": "スナップショットディレクトリパス", "compress": true } }'
2 スナップショットの作成
$ curl -XPUT "http://server1:9200/_snapshot/my_backup/backup?wait_for_completion=true"
3 スナップショットディレクトリをディレクトリごと移行先サーバにコピーする
移行先サーバ
1 スナップショットディレクトリの指定
$ curl -XPUT 'http://server2:9200/_snapshot/my_backup' -d '{ "type": "fs", "settings": { "location": "スナップショットディレクトリパス", "compress": true } }'
2 スナップショットディレクトリパスに移行元サーバのスナップショットをコピー
3 リストア
$ curl -XPOST "http://server2:9200/_snapshot/my_backup/backup/_restore"
Heroku に Route53 でルートドメインを割り当てる
Heroku に Route53 で直接ルートドメイン(Apex ドメイン)を割り当てることはできないらしい。
その代わり、以下のドキュメントを参考に S3 のリダイレクト機能と Route53 のエイリアスの機能を組み合わせる。
https://devcenter.heroku.com/articles/route-53#naked-root-domain
S3 の設定
- バケットを作成する
- Properties タブを開く
- Static Website Hosting をクリックし、以下のように設定
- Redirect all requests to another host name: ON
- Redirect all requests to: Heroku アプリの URL (******.herokuapp.com とか) を指定
Route53 の設定
ルートドメインを以下のように設定
- Type: A
- Alias: YES
- Alias Target: テキストボックスにフォーカスすると先ほど作成した S3 のバケットが出てくるのでそれを選択する
Redmine 2.5 + Ruby 1.8 環境下で TLS でメールが送れなくなった場合の対処
Ruby 1.8 の環境下で Redmine を 2.5 に上げたら TLS でメールが送れなくなりました。
logs/production.log を見てみると以下のようなメッセージが出力されています。
wrong argument (NilClass)! (Expected kind of OpenSSL::SSL::SSLContext)
原因と以前の対処
これは Redmine 2.3 の頃から同様だった気がするのですが、Ruby 1.8 + mail gem 2.5.4 以上 + SSL は相性が悪いことが判明。
Problem with ssl context for smtp · Issue #548 · mikel/mail · GitHub
そこで、Redmine 2.4 では Redmine の Gemfile に
gem 'mail', '2.5.3'
とバージョンを明示して対処していました。
Redmine 2.5 では・・・
Rails のバージョンが 3.2.17 に上がりました。
このバージョンが依存している actionmailer 3.2.17 が mail gem 2.5.4 に依存するようになってしまいました。
このため、mail gem 2.5.3 を指定するとバージョンが衝突してインストールできません。
Redmine 2.5 での対処
この問題に対処してくれている fork がありました。
Problem with ssl context for smtp · Issue #548 · mikel/mail · GitHub
これにより、Redmine の Gemfile の
source 'https://rubygems.org'
の直後に以下の行を追加して bundle install すれば動きます。
gem 'mail', '= 2.5.4', :git => 'https://github.com/sofatutor/mail', :branch => '2.5.4-with-fix-548' # see https://github.com/mikel/mail/issues/548
結論
さっさと Ruby のバージョンを上げよう
Redmine に Webhook を追加するプラグインを作った
Redmine のチケット作成・更新にフックして、他のサイトに HTTP で POST する機能を追加するプラグインを作りました。
https://github.com/suer/redmine_webhook
機能
プロジェクト毎に POST する先を指定できます。
こんな感じの JSON が POST されるようになります。
{ "payload": { "issue": { "author": { "icon_url": "http://www.gravatar.com/avatar/example", "identity_url": null, "lastname": "user", "firstname": "test", "mail": "test@example.com", "login": "test", "id": 3 }, "priority": { "name": "normal", "id": 2 }, "tracker": { "name": "bug", "id": 1 }, "parent_id": null, "root_id": 191, "closed_on": null, "updated_on": "2014-03-01T15:17:48Z", "created_on": "2014-03-01T15:17:48Z", "description": "I'm having a problem with this.", "subject": "Found a bug", "id": 191, "done_ratio": 0, "start_date": "2014-03-02", "due_date": null, "estimated_hours": null, "is_private": false, "lock_version": 0, "project": { "homepage": "", "created_on": "2013-01-12T11:50:26Z", "description": "", "name": "Test Project", "identifier": "test", "id": 4 }, "status": { "name": "new", "id": 1 } }, "action": "opened", "url": "https://example.com" } }
環境
Redmine 2.4