ウェブサービスを作っています。

2011-01-01から1年間の記事一覧

全角空白も含めた strip

" 全 半 \n 混 在 ".gsub(/(\A(\s|\u3000)+)|((\s|\u3000)+\Z)/, '') # => "全 半 \n 混 在" 参考 Ruby【全角空白も除去】できるstrip!()ありますか? s = " 全.. - 人力検索はてな 解答例だと、途中に改行が含まれている場合の挙動が意図したものと違う

ActiveDecorator で、強制的にヘルパーのメソッドを呼び出す

ActiveDecorator (v0.1.0) では、モデルのメソッド名とヘルパーのメソッド名が衝突した場合、モデルのメソッドが呼ばれるようです。 強制的にヘルパーのメソッドを呼び出したいときは、以下のようにすれば可能でした。 module HogeDecorator def my_truncate…

特定のプラットフォームに依存した gem を bundler で管理する

Rails, Capistrano も使ってる前提です。 まず Gemfile に、プラットフォーム別のグループを作ります。 darwin, linux というグループ名でなくてもいいですが、後述のことを考えるとこれが無難です。 group :darwin do gem 'mac 用 gem' end group :linux do…

RSpec 使用時 rails g model で、Factory Girl のファイルも作成する

rails (3.1.1)、rspec-rails (2.7.0)、factory_girl_rails (1.3.0) という環境です。 config/application.rb の config.generators に設定を書くだけです。 module Hoge class Application < Rails::Application ... config.generators do |g| g.fixture_rep…

Rails 3.1 バージョンアップメモ

自社サービスを Rails 3.1.1 にバージョンアップさせたので、メモです。 Asset Pipeline を使用する前提です。 参考にさせていただいた記事 だいたい以下を熟読したら何とかなりました。ありがとうございます。 Ruby on Rails Guides: Ruby on Rails 3.1 Rel…

rvm をやめて rbenv + ruby-build を導入

追記(2011/10/06 16:00): Homebrew で readline をインストールする記述が抜けていたので、追加しました。 また、一部記述ミスも修正しました。申し訳ありません。 rvm の調子がなんか悪いので、シンプルで、37signals 中の人が作ったという rbenv + ruby-bu…

Xperia neo を購入

今まで iPhone を使っていたのですが、興味があって Android 携帯を購入しました。 いろいろ考えた結果、SIM ロックフリーの Xperia neo (赤) という機種を購入しました。 購入 1shopmobile というお店で買いました。 http://www.1shopmobile.com/catalog.ph…

Qt をアンインストールする

mac

Mac でインストーラを使ってインストールした場合、以下のスクリプトでアンインストールすることができます。 % sudo /Developer/Tools/uninstall-qt.py 参考 http://forums.macrumors.com/showthread.php?t=587092

OmniAuth で callback 後セッションが消える問題

おそらく csrf_token なしで戻ってくるからです。 なので、たとえば、callback 後のメソッドが SessionsController#create なら、 class SessionsController < ApplicationController protect_from_forgery :except => :create ... end のようにします。 参…

OmniAuth で /auth/failure?message=invalid_response にリダイレクトされたけど単なる typo だった

config/routes.rb Hoge::Application.routes.draw do ... match '/auth/:provider/callback' => 'sessions#create' match '/auth/failure' => 'sessions#failure' ... end app/controllers/sessions_controller.rb class SessionsController < ApplicationCo…

「スペースシャワーTV プラス」のオンエア曲をお知らせする Twitter BOT を作りました

最近、スカパーで「スペースシャワーTV プラス」を契約しました。 一日中音楽 PV が流れています。家で作業することが多くなったので、BGM 代わりに良いです。(月630円) ただ、今流れている曲を確認するために、テレビを見ないといけないのは結構面倒です。 …

Chrome 拡張版 LDR Hatebu Comments を作りました

livedoor Reader に、はてなブックマークのコメントを表示する LDR Hatebu Comments というグリモンを以前作りました。 そして今回、それの Google Chrome 拡張版を作りました。 https://chrome.google.com/extensions/detail/lmdjjmpmkjmjdpijdiadmfbpcaoic…

prefetch-rspec + watchr

使ってみました。Rails3 用のようです。 spork を使っていた場合は、spec/spec_helper.rb の spork 関連処理を削除しておきます。 また .rspec に --drb オプションが書いてあると、prefetch-rspec がうまく動かないようです。 まずは Gemfile に prefetch-r…

MySQL の文字列で表記揺れを吸収しない

MySQL で、データベース・テーブル・カラムなどに collate = utf8_unicode_ci を指定すると、大文字・小文字・全角・半角・ひらがな・カタカナなどの表記揺れが吸収されます。 たとえば、「たろう」と「タロウ」の検索結果が同じになります。 参考: mysqlのc…

独立しました

3月31日で前職を退職し、4月1日から独立して働くことになりました。 また、株式会社ユーザーファーストという法人を設立しました。 会社を作った理由はいろいろありますが、会社作るの面白そう、と思ったことが一番の理由でしょうか。 この本の影響を受けた…

Delayed::Job のリトライ速度を調整する

Delayed::Job では、例外が発生した場合、 5 秒 + リトライ回数 ** 4秒経過した後にリトライしてくれますが、これを変更する方法です。 Delayed::Job のバージョンは、2.1.4 です。 やり方は簡単で、ジョブのクラスに、リトライ時刻を返す reschedule_at メ…

Mechanize で送信したデータが反映されないときがある

あけましておめでとうございます。Mechanize 1.0.0 のお話です。 example.com?xx=yy のようにパラメータのついた URL のページから、action 属性が空のフォーム <form action=""> を送信すると、パラメータ無しの URL (example.com) に送信されてしまいます。 agent = Mechan</form>…