アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

tahara

CloudFront + nginx + S3 でのサムネイル画像の動的生成

こんにちは、tahara です。 以前 nginx を使ったサムネイル画像の動的生成 でサムネイル画像の動的生成について書きました。 その後 Paperclip の画像保存先をファイルシステムから S3 に変更しましたので、 あらためて CloudFront + nginx + S3 でのサムネ…

ModSecurity を nginx + passenger で

こんにちは、tahara です。 Web Application Firewall の定番(?) ModSecurity を nginx + passenger でセットアップしてみました。 ModSecurity をコンパイル cd /home/foo/src wget http://www.modsecurity.org/tarball/2.7.3/modsecurity-apache_2.7.3.tar…

Stumpwm で Redmine のチケットのタイトルをかしこくコピペ

こんにちは、tahara です。 前回は Stumpwm 使えば Redmine のチケットのタイトルを簡単にコピペできるよ、というのを紹介しました。 今回はさらにかしこくコピペしてみたいと思います。 自分のコミット時の行動を分析してみます。 Stumpwm を使っている。 R…

Stumpwm で Redmine のチケットのタイトルを簡単にコピペ

こんにちは、tahara です。 今日は Stumpwm 使えば Redmine のチケットのタイトルを簡単にコピペできるよ、というお話です。 ataka さんに Redmine を 0.8.5 というすごく古いものか最新にアップデートしてもらいました。 いろいろ便利になったのですが、チ…

nginx を使ったサムネイル画像の動的生成

こんにちは、tahara です。 画像ファイルのアップロードには Paperclip を使っています。 Paperclip は写真アップロード時にサムネイル画像を作ってくれてとても便利です。 でも、サイトのデザインが変更になって、サムネイル画像のサイズを変える必要が出た…

jQuery Mobile で 一覧 → もっとみる → 詳細 → 戻る

こんにちは、tahara です。 jQuery Mobile のサイト。 一覧ページで次ページのかわりに「もっとみる」リンクがある。 「もっとみる」リンククリックで Ajax で次ページ分を一覧に追加。 一覧からどれか選んで詳細ページへ。 ブラウザの「戻る」 とすると、「…

Rails ログを MongoDB と S3 につっこむ

こんにちは、tahara です。 そろそろデータマイニングなんか初めてみたいな、と思っている今日このごろです。 その前段階として、Fluentd を使って Rails のログを MongoDB と S3 に格納するようにしてみました。 で、そのために act-fluent-logger-rails を…

2012年のふりかえり

こんにちは、tahara です。 今日は仕事納めなので、この一年をふりかえってみたいと思います。 1月 いこーよを Rails2 から Rails3 にアップデート。しんどかった。 2月 お墓・納骨堂・葬儀のポータルサイト エンディングパーク オープン。 3月 実相寺青山霊…

skipfish で Web アプリケーションのセキュリティテストを行う

こんにちは、tahara です。 おかげさまで、アクトインディ技術部隊は aoki の入社により 100% 増量しました! ありがとうございます!! さて、浮かれてばかりはいられませんので、今回は skipfish を使ってセキュリティテストを行ってみたいと思います。 脆弱…

Rails アプリの JavaScript エラーの通知

こんにちは、tahara です。 Rails のエラー通知に Exception Notifier を使われてたりすると思いますが、 JavaScript のエラー通知はみなさんどうされているのでしょうか? ちょっと探してみたのですが、これだ! というもの見つからず、 PipelineDeals Dev Bl…

デプロイすると Solr の管理画面が 404 Not Found

こんにちは、tahara です。 Sunspot を導入し Solr がいこーよ本番環境で動くようになりました。 Solr 関連のファイル(jar や xml とか)は、Rails アプリのコードと一緒にリポジトリに入れてあります。 Solr は /var/www/outing/current/solr/start.jar で動…

#10000 なんか欲しくないんだからね!

こんにちは、tahara です。 弊社では Redmine を使ったチケット駆動開発を行っています。 編集(ディレクション) suzuki とエンジニア tahara は東京、デザイナー uemura は大阪にいるため Redmine はなくてはならないツールです。 そんな Redmine ですが、つ…

Apdex 1.00

こんにちは、tahara です。 いこーよの検索を MySQLの全文検索から Solr (Sunspot) にかえてからはじめての New Relic のパフォーマンスレポートが来ました。 Database の負荷が約 35% か約 9% に下がり、 Apdex が 1.00 になりました。 Solr すごいです。

Sunspot (Apache Solr) 導入

こんにちは、tahara です。 いこーよ に Apache Solr の全文検索を使う Sunspot を導入しました。 これとかこれで MySQL の全文検索を使っていましたが、Sunspot を試してみたら 速い ファセットがものすごく便利 Kuromoji という日本語形態素解析機が使える…

ネットワーク帯域を無駄遣いして、すみませんでした。

こんにちは、tahara です。 Google さんから来た AdSense ニュースレターに PageSpeed Insights を使ってサイトのパフォーマンスを向上させなさい、と書いてあったので、PageSpeed Insights 使ってみました。 すると、css と js が圧縮されなていないことが…

Jenkins から Common Lisp で Skype へ通知

こんにちは、tahara です。 いいかげん Jenkins くら導入しようよ、ということで導入しました(ステージングへの cap が Asset Pipeline の precompile で時間がかかるようになって、手で cap するのがめんどうになったのが本当の理由です)。 Jenkins のセッ…

Asset Pipeline と Amazon CloudFront を導入

こんにちは、tahara です。 いまだに Asset Pipeline を使っていなかったいこーよですが、Amazon CloudFront とともに、ようやく導入しました。 温泉街の旅館のごとくページを増やしていたため、複数のレイアウトファイルが乱立しており、かなり大変な目にあ…

Rails のログを寡黙に

こんにちは、tahara です。 Rails のプロダクションログですが Started GET "/" for 127.0.0.1 at 2011-12-11 13:32:11 +0900 Processing by TopController#index as HTML Rendered shared/_login_box.html.erb (1.2ms) Rendered top/_header.html.erb (2.3m…

btrfs のスナップショットを使った差分バックアップ

こんにちは、tahara です。 おかげさまで、いこーよ 月間一千万ページビューこえました。ありがとうございます。 AWS のオートスケールの出番ができて嬉しいです。 今回は btrfs のスナップショットを使ったバックアップについて書いてみたいと思います。 以…

WordPress の引越し(ドメイン変更)

こんにちは tahara です。 WordPress ってどうして http:// からのフルパスで URL を DB に格納しちゃうんでしょうか? 開発環境で構築した WordPress サイトを本番環境にリリースするとき泣きたくなります。 プラグインによっては s:81:\"http://...." のよ…

Ruby で Google Analytics API その2

こんにちは、tahara です。 しばらくぼんやりしていたら Google API がすごい勢いで変っていて全然ついていけていませんでした。 Google APIs Console なんてものができていたんですね。 というわけで、今回は最近のやり方で Analytics の API をたたいてみ…

ブール全文検索を併用してスコア調整

こんにちは、tahara です。 いこーよに導入した全文検索ですが、問題があり改善を行いました。 「品川 水族館」で検索を行った時、「品川」という語だけ多数含んでいるスポッ トが「品川」と「水族館」の両方を含んでいるスポットより上位に表示されて いま…

全件検索から全文検索へ (Rails で MySQL の全文検索)

こんにちは、tahara です。 ようやくいこーよを like '%foo%' の(SQL 力づく)全件検索から、MySQL の全文検索に変更しました。 最初は mroonga を使おうかと思ったのですが、結局は MeCab を使って MySQL の全文検索をそのまま使うことにしました。 MySQL の…

Rails での MySQL マスタースレーブ構成

いこーよ の GW の負荷対策として MySQL のレプリケーションを使いマスタースレーブ構成にしてみました。 一番悩んだのがマスタースレーブ構成のためにどのライブリを使うか。 次のような理由から seamless_database_pool をフォークして使うことにしました…

Amazon Web Service にいこーよ

いこーよ を Amazon Web Service (AWS) に移行しました。 御蔭様でいこーよのアクセス数は伸びてきており、これで3回目の引越しです。 移行に際して一番悩んだのがオートスケールを前提としたデプロイ、監視でした。 オートスケールの設定をしている場合、イ…

Rails 3.2.2 へのアップクレード (ssl_allowed が allowed されない件)

こんにちは tahara です。 先日 いこーよ を Rails 3.1.0 から Rails 3.2.2 にアップグレードしました。 今日はその模様を報告したいと思います。 まず Gemfile で Rails のバージョン指定を 3.2.2 にし bundle update しました。 gem 'rails', '3.2.2' Asse…

CoffeeScript を使って Titanium でアプリを作る (Common Lisp バージョン)

こんにちは、tahara です。 CoffeeScript を使って Titanium でアプリを作るにはいくつか方法があるようです。 CoffeeScriptを使ってTitaniumでiPhoneアプリを作る - AUSGANG SOFT Titanium CoffeeScript Plugin | Bill Dawson 弊社ではこのような場合 Comm…

WordPress で同じ URL のまま User-Agent によって別のページを表示する

こんにちは tahara です。 今回は WordPress です。 http://example.com/foo がリクエストされた時、クライアントがスマホだったら、 リダイレクトすることなく、同じ URL のまま、スマホ用のページを表示するには、 どうしたらいいか? 「、」が多い。 これ…

アクトインディ技術部隊報告書を Elephant から Rucksack に移行

こんにちは、tahara です。 前々回のRails3 への移行に続いて移行ネタです。 本ブログ「アクトインディ技術部隊報告書」は Common Lisp (SBCL) + Hunchentoot + Elephant で動いていました。 しかし、1年2ヶ月ぶりのエントリを書こうとした時、新規エントリ…

デプロイ時の Unicorn リスタートが失敗する件

こんにちは tahara です。 デプロイ時の Unicorn リスタートがときどき失敗して悩んでいました。 幸い本番環境では発生せず、ステージング環境と開発環境で発生していました。 リスタートは unicorn-4.1.1/examples/init.sh の upgrade を使っています。 upg…