読者です 読者をやめる 読者になる 読者になる

こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

delayed_job の logrotate を使ったログローテーションって

どうやるものなんだろう。 logrotate を使わず TwP/logging の daily ローテーションもありだけど logrotate の copytruncate は最終手段 delayed_job を Capistrano でオプション付きで起動してるので、logrotate の postscript で restart や start する場…

Fluent 経由で Bugsnag に送信する試み

ひとまず、ざっくりと形にはなったけど、これが上手く運用に乗る程度のものかは分からない。 koshigoe/logging-bugsnag で TwP/logging を拡張し、error 以上のログを bugsnag/bugsnag-ruby の deliver に渡す koshigoe/bugsnag-delivery-fluent で bugsnag/…

ActiveSupport::Logger#broadcast は異なるレベルのロガーを束ねるには適さない?

セッターの挙動を見るに、レベルやフォーマッタなどは全て同一のものを使う前提にあるっぽい。 extend 後にセッターを呼ばなければ各ロガーで設定したものを使う事はできるが、 quiet_assets や ActiveSupport::Logger#silence などを使った場合はレベルが変…

Rails.logger.error(msg) したら Bugsnag にも通知しちゃうやつ

注意: quiet_assets など、broadcast 後に Rails.logger.level= する様な実装をしているケースには未対応。 こんな感じでやってみた。 lib/ext と lib/bugsnag に分けたのは、Bugsnag クライアントが lib/bugsnag にマッチしたバックトレース行を読み飛ばし…

ActiveSupport::Logger.broadcast と quiet_assets gem

quiet_assets を使っていると ActiveSupport::Logger.broadcast で追加したロガーのレベルが Rails.logger.level にされてしまう模様。 ざっくり言うと、以下の様な事が起きる。 error_logger = ActiveSupport::Logger.new(Rails.root.join('log/error.log')…

FactoryGirl を使って冪等な Database seeding をやってみた

development, test 以外で FactoryGirl を使うのどうなんだ、という話は全力で脇に置く。こういう誤魔化し方もあるのかな、という試み。 koshigoe/rails-example-seeding-by-factory_girl んー、seeds.rb で find_or_create_by を書かなくて良い、程度のおも…

Heroku で Reverse Proxy

ろくに調べもせず、明後日の方向に進んでいる気がするけれど。 koshigoe/heroku-reverse-proxy require 'rack/reverse_proxy' if ENV['BASIC_AUTH_USERNAME'] && ENV['BASIC_AUTH_PASSWORD'] && !ENV['BASIC_AUTH_USERNAME'].empty? && !ENV['BASIC_AUTH_PAS…

シェルスクリプトの trap でシグナルを拾う場合の実行中コマンド

例えば、以下の様にして TERM を拾う様にしてみる。 #!/bin/bash -x trap "echo trap TERM; exit 1" TERM trap "echo EXIT" EXIT sleep 5 echo ok 以下は sleep 5 で待っている間に pkill -f trap-signal.sh で TERM シグナルを送った時の結果。 $ ./trap-si…

Heroku で運用するプレビュー環境に自動デプロイする試み(0)

中途半端だけど、せっかくやってみたので晒してみる。一番の収穫は、シェルスクリプトの trap を覚えた事だったりするのは内緒。 やっていること CI で CircleCI を使用している Git を使用している GitHub を使用している PR をレビューして master ブラン…

ようやく Rails の Application Template を使ってみた

なんだかんだサボってしまっていたけれど、ようやく重い腰を上げて使ってみた。 Creating and Customizing Rails Generators & Templates — Ruby on Rails Guides Rails Application Templates — Ruby on Rails Guides

delayed_job の plugin

知っていたかもしれないけど、記憶に無かったので調べてまとめてみる。 tl;dr こんな感じかな? delayed_job にはプラグイン機構がある プラグインは Delayed::Plugin を継承して実装する プラグインによってワーカーのイベントコールバックを登録できる プ…

S3 を使った実装のテストを fake-s3 を使って書いてみる

koshigoe/fakes3-exercise fakes3 (fake-s3) という gem を使うと、S3 のダミーサーバ(webrick)が使えるようになるとのこと。 fakes3 と fakefs で Amazon S3 連携のテストを書いてみた - あらびき日記 jubos/fake-s3 サーバプロセスの管理をどうするのが今…

Rails + MySQL で BIGINT で AUTO_INCREMENT な id カラムを PRIMARY KEY にしたい

もちろん、schema.rb 対応で。 リポジトリの master では t.primary_key :id, :bigint と書ける様だけど、4.2.1.rc4 には見当たらず。いつ頃使える様になるのか。 この際、PostgreSQL に改宗するべきなのか。。。 という所まで考えて、手を出せずにいた acti…

『Webエンジニアが知っておきたいインフラの基本』を(流し)読んだ

ss -lnp 覚えた。 Webエンジニアが知っておきたいインフラの基本 ~インフラの設計から構成、監視、チューニングまで~作者: 馬場俊彰出版社/メーカー: マイナビ発売日: 2014/12/27メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る 自分が…

Rubyアソシエーション認定証

一ヶ月くらいかかるのかと思いきや、一週間ちょっとで届いた。 金銀集めて一枚なのかと思ってたけど、銀は銀で貰えるんですね。金だけだと銀不足で貰えないという事かな。 ロゴの規約違反になってないことを祈るばかり。

ソーシャルパーツ

重すぎて笑えない。 デザイン設定から全部切ったけど、それでもまだ重い。笑えない。 もう、長いことブログ書いてないけど、別の良いブログ的なサービスかツールを検討しても良いかもしれない。 が、運用コストが一番気にかかるポイントなので、難しいところ…

銀と金

何か今後の話のネタにでもなればなと思ってしまってポチっちゃった件。高いわー。生活きついわー。 Rubyアソシエーション: Ruby技術者認定試験制度 ぎりっぎりのすれすれ。 銀が84だった時には、「もう終わった、15kどぶに捨てたな…。」と思ったけれども、金…

『Effective Ruby』読んだ

すっかり注文したことを忘れていて、発送のメールが来たときにはちょっと驚いた。注文しなかった気がするのに、ポチり癖って怖いですね。 Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この…

就活

30年くらい落ち着いてのんびり過ごせるところは、新卒でも難しいんだろうな。 就活なんて、想像するだけで面倒くさいわぁ。 また祈られて折れる日々が来るのかぁ…。

Docker 入門(1)

Docker入門 Immutable Infrastructureを実現する作者: 松原豊,米林正明出版社/メーカー: 技術評論社発売日: 2014/04/25メディア: Kindle版この商品を含むブログ (5件) を見る 写経。 準備 $ brew install docker boot2docker $ boot2docker init $ boot2dock…

入門 Ansible (1)

入門Ansible作者: 若山史郎発売日: 2014/07/30メディア: Kindle版この商品を含むブログ (1件) を見る 準備 $ brew install ansible $ ansible --version ansible 1.7.1 Python 2 系が必要(3系では動かず、今後の対応も不明だとか) 対象ホストでも Python 2 …

Chef 実践入門(3) テスト

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴出版社/メーカー: 技術評論社発売日: 2014/05/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る 写経しつ…

Chef 実践入門(2) Vagrant

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴出版社/メーカー: 技術評論社発売日: 2014/05/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る 続続・写…

Chef 実践入門(1) クックブック

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴出版社/メーカー: 技術評論社発売日: 2014/05/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る 今回も写…

Chef 実践入門(0) 準備

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴出版社/メーカー: 技術評論社発売日: 2014/05/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る 写経。重…

AWS を使った仕事もそろそろ一年

IAM Role と CloudFormation 便利ですよね。いい加減 chef も覚えて OpsWorks も理解しないと。 VPC IAM EC2 S3 SQS SNS SES CloudSearch ElastiCache Elastic Beanstalk CloudFormation RDS 一番驚いたのは、EC2インスタンスが安定している事。数年前に触っ…

そういえば Fabric にも手を出していた

ずっと Capistrano を使っていたので、感覚的にはすんなり使えた印象です。 ひとつ、特に印象的なのは、fab でタスクが完了したら、リモートサーバで立ち上げたプロセスがしんでしまったやつかな。これは、sudo 関数の pty オプションを False にして対処し…

MongoDB を使う様になってそろそろ一年

MongoDB 関係では細々とパフォーマンス対策をしてた感じでしょうかね。 EC2 のインスタンスタイプ変更によるサーバリプレース スロークエリ対策(コード修正、インデックス見直し、など) 十分な設計(特にインデックス)をせずにアプリケーションコードを書くと…

仕事で Python を使う様になってそろそろ一年

特に、好きになる事もなく、淡々とした関係が続いております。 最近は Rails 4.1 で仕事してるわけですが、やっぱり慣れてるという事もあって Ruby が落ち着きますね。 Python を使ってきて印象的なことはなんだろう。 KeyError は分かりやすい落とし穴 Inde…

祈られる日々

一年前のこの時期は、渋谷方面からお祈りが続々と届いたものでした。 そんな日々がまた、、、来るのかな、、、。 そんな事考え出すと、ため息しかでませんよ。。。 P.S. 折られる日々とも言いますね。

条件を満たす最初の要素を返す(Python)

Ruby の Array#find を Python でどうやるのか悩んだ。 (0..4).find{|n| n > 3} イテレータを作って next で次(最初)の要素を取って止めたら良いと言うことが分かった。 Python: find first element in a sequence that matches a predicate - Stack Overflo…

MongoDB でのツリー構造

ドキュメント指向のデータベース設計に慣れていないので、外部参照的なアプローチが妥当なのかすら分からず。 MongoDB のツリー構造に関するドキュメントを読んだ感じ、普通に参照で関連を持たせたらよさそう。 Model Tree Structures in MongoDB 個人的には…

Python の書式指定など

未だ手探り。 7.1. string — 一般的な文字列操作 — Python 2.7ja1 documentation 数値を3桁カンマ区切りに整形したい場合、言語組み込みの書式指定を使うのが簡単な模様。 >>> '{:,d}'.format(100000) '100,000' ロケールごとのセパレータを使いたい場合、d …

5年ぶりくらいの Selenium

Selenium IDE 便利。 Selenium - Web Browser Automation Selenium Server とブラウザドライバを使えば、Firefox アドオンの Selenium IDE から Chrome とか IE とかにテストを実行させる事ができる。しかも簡単に。 あいにく、Safari は自前で証明書を用意…

Python 再入門(3.2)

参考書籍 パーフェクトPython (PERFECT SERIES 5)作者: Pythonサポーターズ出版社/メーカー: 技術評論社発売日: 2013/03/05メディア: 大型本購入: 1人 クリック: 65回この商品を含むブログ (8件) を見る 関数 位置指定引数 キーワード引数 >>> def func(a, b…

Python 再入門(3.1)

参考書籍 パーフェクトPython (PERFECT SERIES 5)作者: Pythonサポーターズ出版社/メーカー: 技術評論社発売日: 2013/03/05メディア: 大型本購入: 1人 クリック: 65回この商品を含むブログ (8件) を見る The Zen of Python Beautiful is better than ugly. E…

Python 再入門(2)

ポイントをつかんでおこうと思って選んだ本だけど、これはまだ手をつけるのは早かった模様。かろうじてCっぽいプログラムが書ける程度の記憶しか残っていないので、色々と思い出してから改めて。 参考書籍 エキスパートPythonプログラミング作者: Tarek Ziad…

Python 再入門(1)

かなり昔に『初めてのPython』を読んだっきり、結局使わずにきたPythonに再入門。 とりあえず、環境を整えつつ感じをつかむ。 参考書籍 Pythonプロフェッショナルプログラミング作者: ビープラウド出版社/メーカー: 秀和システム発売日: 2012/03/26メディア:…

ニートからサラリーマンにジョブチェンジ

ついに、週明けからサラリーマンにジョブチェンジです。 絶望溢れる就職活動をどうにか乗り切って、やっとつかんだ試用期間。 支給されるmacのためにも全力でがんばらなきゃね。

Top-level-browsing-context って?

『HTTPの教科書』を読んでいて、X-Frame-OptionsヘッダのSAMEORIGINの説明に「Top-level-browsing-contextが一致した場合のみ許可」と書かれていた。 Same origin policy でいう origin が一致していたらという事だと思っていたんだけど、Top-level-browsing…

『HTTPの教科書』 読んだ

Amazon で入荷待ちが解消された様なので購入。 HTTPの教科書作者: 上野宣出版社/メーカー: 翔泳社発売日: 2013/05/25メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る とりあえず、自分でRFC読んだりWebブラウザとかHTTPサーバを実装した…

ようやくひとごこち

先週末の大失態でしばらくはウド鈴木のごとくえづきが止まらず、送別会で癒やされつつ、ふて寝を経てなんとかひとごこち。 送別会でもらった UP Band とかいうやつの使い方が分からず、全然使えてないわけですが、どうやら電池切れの疑いが。とりあえず、付…

『入門Puppet』読んだ

買ってからしばらく眠らせていた『入門Puppet』をようやく読み終えた。 本書を読む前の Puppet 歴は、Boxen を使うに当たって Puppet の manifest を書いたという程度の経験。本書は Puppet を短時間でざっくりと経験するのに丁度良い内容で、20万円くらいす…

就職活動始まります

5/31 を最後の出社日として、今月いっぱいは有休消化という名の給料泥棒期間です。 2005年4月の入社から長いことお世話になり、また自分のわがままで退職する事になった自分を快く送り出してくださり、ただただ感謝するばかり。草葉の陰から活躍をお祈りして…

Herokuの入門書

Heroku の入門書が 達人出版会 から出版される模様。今はβ版とのこと。 プロフェッショナルのための実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 個人的な経験から、安定的な運用を考えた場合に Heroku は選択肢に入らな…

Boxen と rbenv-bundler

Boxen で環境構築中の MBA にて、rbenv-bundler がインストールできない事態に遭遇。 エラーメッセージは以下の通り。 Error: No such file or directory - /opt/boxen/homebrew/opt/rbenv-bundler or /opt/boxen/homebrew/var/lib/rbenv/plugins/rbenv-bund…

とうとう来週から

ニートです。若干語弊があるけれど。 というわけで、来週からはハロワ通いでござる。

『コーディングを支える技術』読んだ

ほとんど流し読みで終わらせてしまったけども コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2013/04/24メディア: 単行本(ソフトカバー)この商品を含むブログ (13…

Homebrew の tap を作る

Boxen で自動セットアップを目指す一環で、自家製 Formula を Gist から tap に移してみる。 自家製 tap を作るのは簡単で、Github に homebrew-* なリポジトリを作り、そこに Formula を置くだけ。 (正式な作法などはドキュメントを見つけられず分からない…

mixi の

つぶやきとチェックの「削除」リンクをクリックした時に出る確認ダイアログは、上手いことタイミングが合うと出てこなくて連続削除ができるという誰得 tips をお届けします。 たぶん、イベントハンドラを登録する前にクリックするとダイアログが出ないという…