たとえば以下の設定になっていたとします - restore_cache: keys: - gem-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - gem-cache-v1-{{ arch }}-{{ .Branch }} - gem-cache-v1 https://circleci.com/docs/2.0/caching/#restoring-cac…
Sentryに特定の例外を送りたくない場合、プログラムを修正すれば済みますがそれが深淵な理由でできないOR面倒な場合、プログラム側でSentryに送らない例外を指定できます。 もちろんSentry側でignoreにできますが、たくさんの箇所で発生したりアプリケーショ…
config gemには、ENVオブジェクトから値を読み込むためのuse_envオプションがあります。 しかし単にuse_envをtrueにしても、ちゃんと環境変数が読み込まれません(env_separatorがデフォルトだと.になっているため) なので以下のようにenv_separatorに_を指定…
GAS(Google Apps Script)のトリガータイプに特定の時刻を指定しても分までしか指定できません。 また仮に12:00に指定しても12:00から12:01の間のどこかで処理が実行されるので、ちょうどこの秒に処理を実行したいというのが通常はできません。 しかしUtiliti…
AWS Elastic Beanstalkのデプロイメントポリシー(デプロイ方法の種類)はここに書かれていますが、機械翻訳なのか品質が酷く大変分かりにくいので、メモしておきます。 バッチとは デプロイメントポリシーを説明する前に、バッチについて説明しておく。 Elast…
最近買ってとても良かったもの紹介します。 特に人感センサー付きライトはみんな買って損がないと思います。 人感センサー付き ライトソケット 人感センサー付き E26口金 延長アダプタ PIR 誘導赤外線モーションセンサーバルブアダプタLEDランプベース プラ…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Pubns Co発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第6回の内容です。 Kubernetesの…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Pubns Co発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第5回の内容です。 node affinity…
自分は今の会社に入社してから、PHPで書かれたシステムをRubyで書かれたシステムへリニューアルするプロジェクトをやっています。 PHPで書かれたシステムが122万行くらいあって、DBのテーブルも300以上あるのでそう簡単にはリニューアルはできません。 また…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Pubns Co発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第4回の内容です。 cAdvisor kube…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Publications発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第3回の内容です。 podの使用…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Pubns Co発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第2回の内容です。 RBAC Kubernet…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Pubns Co発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 「Kubernetes in Action」を読んで学んだ結果を社内で共有しました。 その第1回の内容です。 Secrets Confi…
Kubernetes in Action作者: Marko Luksa出版社/メーカー: Manning Publications発売日: 2018/01/20メディア: ペーパーバックこの商品を含むブログを見る 追記 2018/07/11 以下にまとめ直したのでこちらをご参照下さい。以下のリンク先のほうが詳しいです。 K…
こちらはポエムです。実際の英語勉強方法については、11ヶ月間でTOEICスコアを300点から835点に上げた英語学習法 をご覧ください。 学年ビリのアホが1年半でTOEICスコアを300点から840点に上げた英語勉強法の話の記事を見たのをきっかけにして今年の初めから…
勉強時 スピーカーをあえて質の悪いものを使ってリスニング力を鍛える TOEIC試験ではリスニングがある意味関門です。 まず試験会場の教室が広いと音が反響して聞こえづらいです。もし後ろの席になってしまった場合、音量チェック時に聞き取りづらいかどうか…
最近社内で短時間勉強会を行っている。 特徴としては、 1時間〜1時間半くらいで終わる 参加者、主催者が特に事前準備をしない ことがあげられる。 たとえば"他事業部のサービスのソースコードを読む会"をやったときは、 30分間他事業部のサービスのソースコ…
HashからOpenStructを作成する場合、 pry(main)> OpenStruct.new({hoge: 1}) => #<OpenStruct hoge=1> pry(main)> OpenStruct.new({hoge: 1}).hoge => 1 のようにすればよい。 しかしネストしたHashだと以下のようになる。 pry(main)> OpenStruct.new({hoge: {fuga: 2}}) => #<OpenStruct hoge={:fuga=>2}</openstruct></openstruct>…
FactoryGirlでARではなくhashのモックデータを返してほしいときがある。 そういう場合は以下のようにすればよい。 FactoryGirl.define do factory :dog, class: Hash do id 1 name 'john' color 'black' initialize_with { attributes } end end initialize_…
Capybaraで非表示(style="display: none;")になっている要素を検索対象にできないか調べたら、 visibleオプションが使えることが分かった。 例えば、以下のような感じだ find("#hoeg", visible: false) have_selector('.hoge', visible: false) have_css('#h…
テンプレートエンジンのSlimのスタイルガイドはないものかと探していたら見つけた。 https://github.com/idmean/slim-style-guide Slimはシンプルなのでそんなにどう書くか決めなくても大丈夫なんだけど、いくつかは迷うときがある。 例えば属性の定義は以下…
エンジニア飲み会があったので、ちょうど調べていたAPI BlueprintについてLTをした。 スライド↓ API Blueprintとその周辺ツール API Blueprintは読み書きしやすいのが特徴だ。 JSON SchemaはAPIドキュメントとしてはそのままだと読みにくいし、Swaggerはなん…
http://shepherdmaster.hateblo.jp/entry/2016/08/21/000115 でも紹介しましたが、 https://github.com/kickstarter/rack-attack という便利なgemがあります。 n秒間にn回アクセスされたらアクセスを弾くThrottles機能を使う場合、 IP単位でアクセス数を数え…
https://github.com/kickstarter/rack-attack という便利なgemがあります。 特定のアクセスのみを許可するSafelists機能や、特定のアクセスを弾くBlocklist機能や n秒間にn回アクセスされたらアクセスを弾くThrottles機能、特定のアクセスを記録するTracks機…
method 'GET' みたいに定義するとエラーになる。 その場合は、 add_attribute :method, 'GET' のようにadd_attribute を使うと回避できる。 またmethod以外にもエラーになる名前があって、以下がそのリスト。 __send__ __id__ nil? send object_id extend in…
先週くらいから朝8時くらいに出社するようになった。 きっかけとなったのは以下の記事だ。http://kitak.hatenablog.jp/entry/2016/07/04/182403 なんで朝早く出社しようと思い立ったかというと、 ・今の会社は10時出社で昼が12時からなので午前が2時間しかな…
Railsでアプリケーション開発をしていると、深淵なる理由で生のSQLにテーブル名やカラム名を動的に埋め込みたいケースが出てくる。 その場合安全だと分かっていてもサニタイズしないでSQLに文字列を埋め込むのは気が引ける。 そういう場合は、 ActiveRecord:…
本番環境でrake db:migrateを実行する場合、はたしてどのmigrationが実行されるのか確認したくなる場合がある。 その場合、rake db:migrate:statusを実行すると未実行のmigrationが表示されて便利だ。 たとえば、以下のような場合downとなっているのが未実行…
RSpecで既存のとあるメソッドが呼びだされたら特定の値を返したい場合、 allow(model).to receive(:foo).and_return(14) みたいにant_returnすればよい。これは有名。 しかし深淵なる理由でメソッドを上書きたい場合がでてくる。テスト中に特定の値を返すの…
大規模なRailsアプリケーションだったり、旧来のシステムをRailsに置き換えたりしてると、どうしても複数DBを扱いたくなってくる。 その場合は例えば、以下のようなlib/tasks/database_foo.rakeを作成します。 namespace :foo do desc 'Configure the variab…