mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

ssh / ssh-add しようとした時に鍵の permission で怒られる場合がある件

ssh 秘密鍵の permission がオープンすぎると、怒られて、ssh-add されない

鍵を追加しようとして ssh-add をすると、

$ ssh-add ~myself/.ssh/hoge_rsa

下記のエラーで abort される

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions XXXX for '/Users/myself/.ssh/hoge_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ign

解決方法

Permission を適宜変更する

$ chmod 600 ~myself/.ssh/hoge_rsa

なお、ssh-add した結果の確認は、ssh-add -L で実行できる

Rails 4.2 development 環境で asset pipeline の構築を試す、スマートなお片付け方法

production でのみ asset pipeline を利用していて、asset pipeline に詰まった時、同じ状況を development で再現して debug したいときは、下記のようにすると手軽に試せます。

手元で構築

/public/assets 以下に吐き出します。

$ bx rake assets:precompile RAILS_ENV=development

手元で構築した内容を完全にクリーンナップ

結構大量のファイルが作られるとおもうので、消すのは大変です。下記で一撃でクリーンナップできます。

$ bx rake assets:clobber RAILS_ENV=development

注意

  • クリーンナップしないと、JS が二回呼ばれるなどの挙動になる時があるので注意。

git remote branch の削除

github で merge 後に remote branch 削除。その後 local の不要 branch を push してしまった場合などに remote に不要 branch が残ってしまいます。いつも微妙に忘れてしまうので、この場合のメモ。

  • local branch を削除
$ git branch -D local/branch
  • 削除した内容を push
$ git push origin :local/branch

Rails 404 や 500 などのエラーページの国際化対応

public ページ以下にあるエラーページの拡張子に

/public/500.html

下記のように locale をセットすれば locale によってエラーページを切り分けてくれます

/public/500.ja.html
/public/500.en.html

Application Loader 3.0 ってどこからダウンロードすればいいの?

新しくなった iTunes Connect では、曰く「XCode 5.1.1 以降 或いは Application Loader 3.0 以降でバイナリ送信してください」とのことなのですが、Application Loader 3.0 のリンクをクリックしても、2.9.1 へのダウンロードリンクになってしまうようです *1

下記のリンクから直接 3.0 をダウンロードできる模様です。
https://itunesconnect.apple.com/apploader/ApplicationLoader_3.0.dmg

なんとなくですが、2.9 より 3.0 のほうが見た目が質素になってしまっているのがちょっと気になります。

*1:2015/01/15現在

bootstrap-sass gem で Rails で快適に Bootstrap を使う

Bootstrap はちょくちょく version があがっています。Bundler 管理にすることでより簡単に新 version に追従したり asset 配信するために bootstrap-sass gem を使ってみます。*1 すでに Sass で構築された Rails Application に親和性が高いです。

Gemfile

Rails で sass を利用するために sass-rails gem を使うことが出来ますが、boostrap-sass も依存するので、sass-rails をすでに追加していることを確認します。また、vendor prefix を自動的につけてくれる autoprefixer-rails *2 も一緒に使うことを推奨しています。bootstrap-sass を新規に導入する場合は、Rails 4.x 以降である必要があります。

gem 'bootstrap-sass', '~> 3.3.1'
gem 'sass-rails', '>= 3.2'
gem 'autoprefixer-rails'

Bundler 実行

Gem file に追加後、bundle 実行し、Web Server を再起動しておきます。

$ bundle

application.css.scss

今回新たに sass-rails を導入するなど、Rails 環境最初に構築した時に app/assets/stylesheets/application.css という sass を意識しない拡張子になっている場合は app/assets/stylesheets/application.css.scss にリネームするなり再生成しておきます。

asset pipeline の順番として bootstrap-sprockets が bootstrap よりも先に load するようにします。vendor/ 以下に bootstrap の実態を設置する必要はありません。

@import "bootstrap-sprockets";
@import "bootstrap";

application.js

asset pipeline の順番として jquery の後に bootstrap-sprockets を load するようにすれば完成です。

//= require jquery
//= require bootstrap-sprockets

Brace.io 買収に伴いサービス終了

以前の記事 *1 でも少し紹介した Brace.io (旧 Backlift)ですが、Squarespace *2 による買収により、1/19 でサービスを終了する模様です。

なお、FORMS *3、CHARTS *4 、DATA *5 などは、オープンソースプロジェクトとして公開される模様です。

詳しくは http://blog.brace.io/2014/11/17/squarespace/