RedisインストールからRecommendifyの動作確認まで

ひさびさ、1年ぶりのプログラミング記事です。Redisを使ったレコメンドエンジン「Recommendify」の動作確認をします。 参考:Recommendifyで気軽にレコメンドエンジンに触れてみるAdd Starredis本体のインストール sudo port -d sync sudo port install red…

Mac使いがRuby1.9とRails3のプロジェクトに参戦したときの話

久しぶりのプログラミング仕事で、Railsを触っている。 以前のプロジェクトでRails3には慣れたけど、手元のRubyはバージョン1.8.7のままだった。 今回は1.9.3を使うっていうことなので、環境の整備をした次第。新しいrubyをインストールしてみる、、、成功。…

Rails3をはじめてすぐに勉強したことリスト

MacBook Air 11インチ欲しい!いとうまさしです。 - プロジェクト作るときは $ rails new プロジェクト名コントローラー作るときは $ rails g controller コントローラー名モデル作るときは $ rails g model モデル名 「フィールド名:型」の繰り返し例えば $…

Mac+RVM+Ruby1.9.2+Rails3の環境作り

RVM(Ruby Version Manager)のインストール $ bash curl http://rvm.beginrescueend.com/releases/rvm-install-head ) .bash_profileの末尾に以下を追記 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell ses…

WordPressでドメインの引越しをするときのSQL

WordPressで運営中のブログをリニューアルしようと思ってる。 そこでリニューアルの作業をするために現状のサイトをコピーして、テストサイトを作りたい。とりあえず以下の手順でテストサイトができた。・テスト用のサブドメイン作成 ・本番サイトのWordPres…

bit.lyで短縮URLを作る手順

元々のURLをコピーしてクリップボードに保存しておきます。 http://bit.ly/ にアクセスします。 「Shorten with bit.ly」と書かれたフォームにURLをペーストします。 「Shorten」ボタンを押します。 「Your link →」というエリアが現れます。その横に短縮URL…

background_fuで「あとでやる」処理を書く

railsを使って「あとでやる」処理を実現する方法について rubyのMLに回答をしてみたので、内容をここにも書いておきます。 質問メールは以下の通り。 RubyもRailsも初心者なのですが、 現在、Railsで簡単なtwitterのbotを作成しています。 Railsで作った設定…

buildって何だろう?

ActiveRecordのアソシエーションを扱うメソッドで「build」というのを初めて知りました。 class Group ActiveRecord::Base has_many :users end class User ActiveRecord::Base belongs_to :group end というアソシエーションがあったときに、 @group.users.…

ActionViewとActionControllerでurl_forの挙動が違います

URLを出力するためにつかう「url_for」というメソッドがあります。 root_path, root_url, XXXX_path, XXXX_urlなどroutes.rbで定義したURLを呼び出すメソッドでも内部的に使っています。このurl_forやXXXX_urlですが、Controllerの中で呼ぶときとViewの中で…

file_columnで受信メールの添付画像を保存する方法

前提 Statusモデルにimageというフィールドがあって、そこがfile_columnを採用している。 メールを受信したら添付ファイルをstatus.imageに格納したい。 (1)file_columnの一部を拡張します。 vendor/plugins/file_column/lib/file_compat.rb を以下のよう…

QRコードを画像で書き出す

rmagickがインストール済みを前提。 $ gem list | grep rmagick rmagick (2.12.2) QRコードのもとになる配列を作ってくれるgemを入れる。 gem install rqrcode QRコードの配列を画像にしてくれるモジュールを入れる。 git clone git://github.com/hal99/qrim…

githubからpluginをインストールする方法

例えば jpmobile を入れる場合は ruby script/plugin install git://github.com/darashi/jpmobile.git 以上。

acts_as_taggable_on_steroidsの使い方

インストールする(githubに引っ越してるから注意) ruby script/plugin install git://github.com/jviney/acts_as_taggable_on_steroids.git ruby script/generate acts_as_taggable_migration rake db:migrate Manualモデルというのをtaggableにするとして…

PostgreSQL + Ludia + PostGIS な環境作り

MacPortsだと Ludia の環境が PostgreSQL 8.1 しか見つからず、PostGISは 8.2 or 8.3 しかありませんでした。 PostGISよりLudiaの方が手動でインストールするのが面倒だったので、Ludia を port install して PostGISの方は手動でインストールすることにしま…

テーブルから「最後のレコード」を取得する

ActiveRecordで「first」があるのは知ってたけど「last」があるのは知らなかった。 「モデル名.first :order => 'id DESC'」みたいに書いてた。 「モデル名.last」でいけるっぽい。こう書くだけで動けばいいのに!と試してみると、大抵動く。やはりRailsはす…

View以外の場所でヘルパーをつかう方法

ActionController::Helpersのhelpers()を使います。 # ruby script/console >> ApplicationController.helpers.simple_format "aaa" => "<p>aaa</p>"という感じ。

Rails2系でメールの日本語化

運営中のサービスでユーザーさんから「メールのタイトルが文字化けしてるヨ!」という連絡がありました。 そういえばメールの文字化け対策は何もしてないので、Outlookとかでは文字化けするだろうなー。 ということで対策してみました。2時間くらいかかるか…

Twitterのつぶやきフォームのように入力文字数を動的にカウントする

今、Twitterライクなつぶやきサービスを作っています。 フォームのところでTwitterみたいに文字数のカウンターをつけたい、 ということでズバリなPluginを教えてもらいました。jQuery plugin: Simplest Twitter-like dynamic character count for textareas …

テキスト内のURLをリンクにしたり、エスケープしたり。

Railsのヘルパーを使って、 HTMLエスケープ 改行をBRタグに変換 URLをリンクにする URLが長かったら後ろを「...」で省略する リンクは別ウィンドウで開くようにする という処理を書くと以下の通り。 auto_link(simple_format(h(status.message)), :all, :tar…

MobilePictogramConverterをiPhoneに対応させてみる。

CakePHPで携帯サイトを作っています。 このサイトをiPhoneにも対応させたのですが、携帯で入力した絵文字がiPhoneで表示されない。。。キャリア間の絵文字変換にはMobilePictogramConverterを使わせてもらっていますが、 これをiPhoneに対応させてみました。…

restful-authenticationの自動ログインの期限を延長する方法

ログインフォームで「次回から入力を省略する」にチェックするとログインしっぱなしになる、 という機能はよくあります。railsのrestful-authenticationにも「remember_me」という名前で実装されています。 但し、この機能「30日間限定」で実装されている…

CakeTestCaseでtestActionを実行すると別のページにリダイレクトされちゃう問題

ControllerのテストをCakeTestCase#testActionで書こうと思ったのですが、 テストするactionの中でredirectのところを通ると本当にリダイレクトされてしまいます。Google先生に聞いたところ、下記の記事が。cakephp1.2でControllerをテストする際のredirect…

テスト環境は別のDBを使う、という設定

テスト実行時はそれまで作ってたデータが消えてしまったりするのが嫌ですよね。 App::import('Model', 'User'); class UserTest extends User { $this->useDbConfig = 'test'; } とか定義して、このUserTestクラスをつかってUnitテストを書いたりしてみたん…

Xdebugを入れてCode Coverageを計算したらSegmentation fault発生

MacPortsでPHP5を入れた環境でXdebugを有効にしてCode Coverageを計算しようとしたら、真っ白い画面が表示されてしまった。ログをみても「Segmentation fault」としか出力されていない。。。 PHPはこういうのがあるんだよなー、とため息をつきながら調査開始…

Rails2.2.2でアプリを日本語化(i18n_generators, i18n_label)

Rails2.2.2で作ったアプリのエラーメッセージやlabelメソッドの出力を日本語化したかったので下記の手順で実行してみた。(1)翻訳ファイル(config/locales/*)を自動生成してくれるgeneratorをインストール sudo gem install amatsuda-i18n_generators cd R…

Rails2系アプリの管理機能を10分で作る方法

Rails 2.2.2で作ったWEBアプリの管理サイトを/admin/で始まるURLで作る手順をまとめました。 例えば「カテゴリー」(Category name:string position:integer)というモデルがあって、 そのマスターデータを管理したいという前提で。 (1)scaffoldをgenerate…

RedHat EL4にRedmineをインストール

RedHat EL4にRedmineをインストールする、というお仕事をしたので、作業ログを公開。 各種ライブラリはrpmで入れて、rubyやらgemやらはソースからビルドした。(1)Railsの実行で必要になるライブラリを入れる su wget ftp://mirror.switch.ch/pool/3/mirro…

RedHat EL4にrpmでSVNをインストール

yumで管理した方がいいのでは?という疑問はおいといて。 RedHat EL4 にrpmでSVNをインストールする、という作業をしたので手順を公開。 su cd /usr/local/src wget ftp://mirror.switch.ch/pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS/apr-0.9.4-24.9.…

あれ?error_logにもブラウザにもエラーが出てこない。の対処

問題: CakePHPで作ったアプリがウンともスンとも言わない(ブラウザに白い画面が出る)。 php.iniでは下記の通り、エラーを報告する設定になっている log_errors = On error_reporting = E_ALL & ~E_NOTICE display_errors = On という状況。解決: core.ph…

さくらの専用サーバ(CentOS)にRailsの実行環境を作る

表題の件、手順をメモ。(1)各種インストール su yum install emacs yum install ruby yum install rubygems gem install rails -v=2.3.2 gem install passenger gem install ruby-devel gem install httpd-devel passenger-install-apache2-module (2)…