鶏肉がいいよね。

プログラミングのハマりどころメモ

Gitlab Container Registry で docker push すると Retring in ってなるときの対処

Gitlab 8.16.6 for Community Edition(CE)版です。

imageを作って`docker push`して完了したと思ったら、Retring in ... と。
どうもイメージが1.6Gあり、時間が掛かったため、push中にログインセッションが切れてしまった模様。

そんな場合は、Gitlabの「Admin Area」の「Setting」から「Container Registry」の「Authorization token duration」の値(デフォルト5分)を増やしてあげる(60分)にと、`docker push`が成功するようになった。

Ruby2.2.2のDate.parseのバグ?

Date#parseを以下のように日付形式でない文字列を渡すと、例外が発生する前提でいたのだけど、"第10回"と引数に渡すを例外が発生せずに、Dateオブジェクトに変換される。おかしくね?

irb(main):015:0> Date.parse('第8回')
ArgumentError: invalid date
        from (irb):15:in `parse'
        from (irb):15
        from /home/user1/.rbenv/versions/2.2.2/bin/irb:11:in `<main>'
irb(main):016:0> Date.parse('第9回')
ArgumentError: invalid date
        from (irb):16:in `parse'
        from (irb):16
        from /home/user1/.rbenv/versions/2.2.2/bin/irb:11:in `<main>'
irb(main):017:0> Date.parse('第10回')
=> #<Date: 2015-10-10 ((2457306j,0s,0n),+0s,2299161j)>
irb(main):018:0> Date.parse('第11回')
=> #<Date: 2015-10-11 ((2457307j,0s,0n),+0s,2299161j)>

だれか説明頼む。

Rspec Matcherメモ

このドキュメントに書いてあるのでそっち参照する。
Built in matchers - RSpec Expectations - RSpec - Relish
RSpec Rails 3.3 - RSpec Rails - RSpec - Relish

Controller系

expect(response).to be_success
expect(response).to have_http_status(200)
expect(response).to render_template("index")
expect(reseponse).to redirect_to new_user_session_path
expect(response.status).to eq 200
expect(response).to render_template(*args) 

Controller内のインスタンス変数

get :index
expect(assigns(:widgets)).to eq(expected_value)

VirtualBoxの共有フォルダを使って Rails4.2 + guard をテスト

guardは共有フォルダのホスト側からのファイル変更を検知できないので、guardでファイル監視する場合には、ポーリングを実施する必要があります。次のように秒数を指定します。

guard -pl 5

Rails4の場合は、デフォルトのGuardfileの設定だと監視対象が多い(orスペックが低い)のか数秒以内にポーリングできないので、監視対象を絞ったほうがよりリアルタイムっぽく検知してくれます
デフォルトのGuardfileの以下の箇所をコメントを外します

# A sample Guardfile
# More info at https://github.com/guard/guard#readme

## Uncomment and set this to only include directories you want to watch
directories %w(app lib config spec) #<-- コメント外して、任意のディレクトリに絞る

こうすることで、監視対象が少なくなって、サクッとポーリングできるようになります。

MacでiDVDを使用してmp4からDVDを焼くメモ

akiueo.hatenablog.com

Rails4 developmentモードなのにコードの変更がブラウザ反映されない原因

いくつか原因は考えられますが。

1. クラスをキャッシュしているモードになっている

configでクラスキャッシュする設定があるので見直してみよう

2. 変更したソースのタイムスタンプが未来日になっている

developmentモードの場合、コードの変更をファイルのタイムスタンプで検知している関係で、タイムスタンプが未来日の場合は反映されません。
自分の場合は実行環境をVMに、コーディングをホスト側でやっていた為、sysdateの差があり、これに該当していました。