Java で Airbrake/Errbit を使うときに airbrake-java を使うべきではない

環境 airbrake-java: v2.2.8 errbit-java: v2.3.1 問題 Java + log4j で Airbrake / Errbit を使う場合には、公式である airbrake-java を使うと思う。 しかし、このライブラリは v2.2.8 時点でとんでもない地雷ライブラリだったので使うべきではない。具体…

Heroku で cron 処理をする gem を作ってみた時の知見

IRKitly を作った時の知見です。 Heroku の無料プランで cron 処理をするには Heroku Scheduler を使うのが一般的です。 しかし、Heroku Scheduler では分単位で指定することはできません。 ChronoCross この問題を解決するために Chrono という gem をラッ…

Heroku から IRKit をスケジュールで操作できる IRKitly をリリースしました

以前の記事で IRKit と Heroku Scheduler でフロアライトを光目覚ましにしてみた - mallowlabsの備忘録 というのを作りました。 この方法だと Heroku Scheduler を使って IRKit の API を叩いているので、平日と休日で動作を変えるといった、細かな制御がで…

~/.ssh/config のメモ

~/.ssh/config の知見が溜まってきたのでメモしておく。 Host *.codefirst.org Port 10022 User mallowlabs Host heroku.com IdentityFile ~/.ssh/id_dsa_heroku ServerAliveInterval 300 TCPKeepAlive yes1つ目のブロックは特定のドメインの SSH のポート番…

Heroku 上の Rails アプリケーションで https を強制する gem 作った

rack-rewrite や rack-ssl-enforcer を使えばできるのだけど、Gemfile に一行書くだけで実現できるやつが欲しかったので作った。 使い方 Gemfile に一行 gem 'heroku-rack-ssl-enforcer-rails' と書くだけで、http://*.herokuapp.com/ にアクセスされた場合…

Apache httpd で http でアクセスされた https にリダイレクトする

Apache 入門ブログみたいになってるけど。 Apache/2.2.15 (Unix) CentOS release 6.2 (Final) 実現したいこと Apache httpd の設定だけで http でアクセスされたら同じアドレスで https にリダイレクトしたい。 設定内容 # /etc/httpd/conf.d/rewrite.conf <IfModule mod_rewrite.c> </ifmodule>…

Apache httpd でメンテナンスモード

設定した内容を忘れないようにメモ。 Apache/2.2.15 (Unix) CentOS release 6.2 (Final) 実現したいこと ドキュメントルートに maintenance.html というファイルが存在すれば、メンテナンスモードとし、すべてのアクセスに対して maintenance.html を返す。 …

New Relic on Tomcat で Browser Monitoring が有効にならなかった話

環境 New Relic Agent (java) 3.6.0 Apache Tomcat 7.0.23 こんな感じで Browser を開いても何も表示されない。 対処 JSP のプリコンパイル結果を削除するCATALINA_HOME/work/Catalina/localhost/ の対象のアプリのディレクトリを全部削除すると出るようにな…

Kibana を Heroku で動かす

Kibana というログビジュアライゼーションツールが話題です。 便利なアプリがあればそれを Heroku で動作させたいと思うのが人間の性です。 ということで Kibana を Heroku で動かしてみました。ポイントは以下の4つです。 heroku-buildpack-static ビルドパ…

IRKit と Heroku Scheduler でフロアライトを光目覚ましにしてみた

ハイテク学習リモコンの IRKit を購入して遊んでいる。 既存の家電にエクステンションポイントを生やすことができるのが画期的だと思っている。最近「光目覚ましが最高に起きれる!」という記事をよく見るので、IRKit とフロアライトを組み合わせて、光目覚…

Jenkins でキャッチされなかった例外を Bugsnag に送信するプラグイン作った

Jenkins の管理をして、プラグインをインストールしたりアップデートしたりしていると、あまり安定していないバージョンのプラグインにあたってしまって、動きが不安定になることがあります。 過去には、ビルドはすべて成功しているように見えているのに、ロ…

Jenkins で実行中のジョブを favicon に表示するプラグイン作った

Jenkins のジョブの実行状況を確認するのに、ブラウザのタブを切り替えるのすらダルい。そんな自分のために、ブラウザの favicon を見るだけでなんとなく「Jenkins が仕事してるかどうか」を確認できるプラグイン書きました。https://github.com/mallowlabs/…

Jenkins で Tomcat の Parallel Deployment をしやすくするプラグイン作った

以前に Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録 という記事を書きました。 WAR ファイルに someapp##数字.war という名前をつけるとゼロダウンタイムデプロイできるという内容です。完全なゼロダウンタイムはメモリの問題で難しい場合もあ…

PostgreSQL 9.2 でタイムゾーンのデフォルト値が変わった話

PostgreSQL 9.1 から 9.2 にバージョンアップすると postgresql.conf に timezone の設定を書かなかった場合のデフォルトが「ローカルタイムゾーン」から「GMT」に変わってて命を落とした…2014-03-31 18:36:12 via webPostgreSQL のタイムゾーンをローカル時…

Java でプラグイン機構を簡単に実現する

「Java プラグイン機構」で検索をすると、ServiceLoader を使っていない記述が多くて 難しそうに見えるので、ServiceLoader を使う方法をまとめておきます。 主にチームメンバーへの情報共有が目的。 Java 1.7.0 update51 (Java6 以降でないと ServiceLoader…

GitHub でチケット駆動開発とプルリクエスト駆動開発を併用する

私の所属するチームでは Redmine + TiDD(チケット駆動開発) から GitHub の Pull Request を使った開発フロー(プルリクエスト駆動開発)に移行してしばらく経ちます。プルリクエスト駆動開発は、TiDD による開発に比べ コードレビューがやりやすいこと Travis…

New Relic プラグイン開発入門 (Java 編)

New Relic が New Relic Platform と銘打って、 様々なミドルウェアの監視をプラグインで追加できるようになりました。当然プラグインを開発するための API も提供されています。 実際にプラグインを作ってみたので共有します。 New Relic プラグインの特徴 …

Ruby を使って Fitbit API で遊んでみた

ハイテク万歩計の Fitbit One を購入して遊んでいる。ゲーミフィケーション的な要素があり、日頃の運動不足解消に一役かっている。Fitbit 自体は、体重や体脂肪、睡眠時間や摂取カロリーなど健康に関する数値のデータベースを目指しているように見える。最近…

Tomcat7 でゼロダウンタイムデプロイ

「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployme…

Jenkins Bitbucket OAuth Plugin 書いた

Jenkins に Bitbucket のアカウントでログインしたいなーと思ったので書いてみた。GitHub - mallowlabs/bitbucket-oauth-plugin: A Jenkins Plugin that supports authentication via Bitbucket OAuth設定画面はこんな感じ。Bitbucket の権限設定とは全くリ…

Treasure Data を使って開発者向けチャットアプリ AsakusaSatellite メッセージログの解析をしてみた

HerokuからTreasure Dataに標準出力でデータインポートできるようになって多幸感がすごい - ハードコイルド・ワンダーランド というエントリを見て、Treasure Data が導入の手間をこれだけ下げてくれているのに使わないのは失礼にあたる、ということで使って…

New Relic を Tomcat 7 (jsvc) で使ってみた

環境 OS : CentOS 5.7 JDK : 1.6.0_27 Tomcat : 7.0.23 Tomcat のインストールパス : /home/tomcat/ New Relic Agent (Java) : 2.10.1 インストール 基本的には、New Relic の setup ページの通りに操作する。newrelic_agent2.10.1.zip を展開し、 /home/tom…

Mac OS X で 'pg' を含む Gemfile を bundle install する方法

いつもハマるので、失敗しない方法をメモっておく。 今回は Homebrew は使わない。 どこにインストールされるのかイマイチわからないし、 なんか失敗することもあるので。 環境 Mac OS X 10.6.8 / 10.7.4 Ruby 1.8.7 Bundler 1.1.4 Postgres.app 11 手順 1. …

OS X 10.8 の通知センターに対応した AsakusaSatellite 0.7.2 をリリースしました

※このバージョンはマイナーバージョンアップです。 ※メジャーバージョン 0.7 のリリース記事は id:mzp の記事 を参照してください。OS X 10.8 の通知センタースタイルの通知の対応、および細かい修正を行なった AsakusaSatellite をリリースしました。現在通…

GitHub Pages で User Pages と Project Pages の違い

GitHub Pages が automatic page generator をリリースした頃から、 リポジトリに push しても GitHub Pages が更新されなくなったので、 問い合わせをした結果わかったことをシェアする。 前提 GitHub Pages は User (Organization) Pages Project Pages の…

Windows 7 の SP1 が ERROR_NOT_FOUND(0x80070490) で失敗する場合の対処法

環境 Windows 7 Ultimate (64bit) 背景 Windows 7 の SP 1 を当てようとすると ERROR_NOT_FOUND(0x80070490) 要素が見つかりませんと言われて失敗してしまう。 Windows 7 SP1 の適用が必ず失敗して辛い。Mac だとこんなことないのになぁ。2011-08-09 11:40:0…

Jenkins を gem ソースにできるプラグイン作ってみた

Jenkins でビルドした gem を gem install で 直接インストールできたら便利じゃね? ということで作ってみた。Twitter でつぶやいたのに誰も作ってくれなかったので自分で作った形(´;ω;`)ブワッ Jenkins Maven Repository Server プラグインみたいに成果物…

Tomcat でプロファイリングするなら JIP が簡単

Java の Web アプリケーションをプロファイリングするのに JIP (The Java Interactive Profiler) が簡単だったのでその使い方をメモ。 環境 Windows 7 64bit Tomcat 7.0.22 Java 1.6.0_24 JIP 1.2 インストール http://jiprof.sourceforge.net/ から jip-1.2…

CentOS 6.2 で Jenkins のグラフの文字化けを直す方法

環境 CentOS release 6.2 (Final) JDK 1.6.0_27 Jenkins 1.452 CentOS 6.2 上で Jenkins をセットアップしていたら グラフ表示が文字化け(お豆腐化)してしまった。 Ubuntu ではフォント入れるだけで直った気がするのに。どうやら Linux 上の Java でお豆腐…

JavaDoc を Doclava で生成するようにしたら捗った

Java のドキュメントと言えば JavaDoc ですが 見た目があまりにもダサ過ぎやしませんかね?こんなんじゃ JavaDoc を書くモチベーションが下がってしまいます。 そこで JavaDoc を Doclava で生成するようにしました。Google Code Archive - Long-term storag…