Hatena::ブログ(Diary)

いとうまさしのカチャカチャTODAY

2013-08-12

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

| 15:41

ひさびさ、1年ぶりのプログラミング記事です。

Redisを使ったレコメンドエンジン「Recommendify」の動作確認をします。

参考:Recommendifyで気軽にレコメンドエンジンに触れてみるAdd Star

redis本体のインストール

sudo port -d sync

sudo port install redis

ついでにgemインストール

cd ~/project

rvmsudo gem install redis

redisの起動と確認

$ sudo redis-server /opt/local/etc/redis.conf &

$ redis-cli

redis 127.0.0.1:6379> set a 1

OK

redis 127.0.0.1:6379> get a

"1"

redis 127.0.0.1:6379> exit

$ redis-cli shutdown

recommendifyのインストール その1

$ rvmsudo gem install recommendify

...

recommendify.c:4:29: error: hiredis/hiredis.h: No such file or directory

hiredisがないらしい。よく分からないけど、それもインストールしときましょう。

macportsがなかったので、手動で)

git clone https://github.com/redis/hiredis.git && cd hiredis && make && sudo make install

んでもって、リトライ

$ rvmsudo gem install recommendify

Building native extensions. This could take a while...

Successfully installed recommendify-0.3.8

1 gem installed

はい、オッケー。

既存のRailsプロジェクトに組み込みたかったので、Gemfileに

gem 'redis'

gem 'recommendify'

を追記して bundle update を通してみるも問題なし。

んで、この記事

参考:Recommendifyで気軽にレコメンドエンジンに触れてみるAdd Star

の「5. トラッキングデータの登録」と「6. レコメンドデータの取得」をrails cにコピペでつっこんだら、動きました。

というわけで、準備はこんな感じかな、と。

2012-09-21

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

| 14:02

久しぶりのプログラミング仕事で、Railsを触っている。

以前のプロジェクトでRails3には慣れたけど、手元のRubyはバージョン1.8.7のままだった。

今回は1.9.3を使うっていうことなので、環境の整備をした次第。

新しいrubyインストールしてみる、、、成功。

rvm install ruby-1.9.3-p194 

次にgit clone してきたRails3の新しいプロジェクトで

bundle install

を実行したらエラー発生

ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault

だそうな。。

まぁ、そうだよね、世の中甘くないよね。

そんな僕に、Google先生からのオススメはこちら↓

RVM vs. MacPorts and the BUG Segmentation fault


参考ページを見ながら、以下の手順を実行する。

(1)$HOME/.rvmrc に以下を追加して、sourceしておく

export CFLAGS="-O2 -arch x86_64"
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"

(2)古いrubyも再インストールしておく

rvm reinstall 1.8.7 --with-openssl-dir=/opt/local

(3)本命の新しいrubyインストールしてみる...が。

sudo port install libyaml
rvm reinstall ruby-1.9.3-p194 --with-opt-dir=/opt/local

ここでcurlの証明書エラーみたいのが発生。

curl: (60) SSL certificate problem, verify that the CA cert is OK. D

このエラーに対するGoogle先生のオススメはこちら↓

Stack Overflow

Curl Certificate Error when Using RVM to install Ruby 1.9.2


このコマンドを打てばお終い、と↓

curl -L get.rvm.io | bash -s stable

で、さっきの新しいrubyのインストールをやり直し

rvm reinstall ruby-1.9.3-p194 --with-opt-dir=/opt/local

今度は成功!

次はbundle installのやり直し、、、だが、しかし。

ZenTest requires RubyGems version ~> 1.8. Try 'gem update --system' to update RubyGems itself.

gemが古いんだと。久しぶりだといろいろ出るなぁ。。

Google先生曰く↓

gem update がうまくいかないときのメモ


以下のコマンドでgemをupdate

gem install rubygems-update
update_rubygems

gemのupdateが終わったらbundle installの3度目の正直、、、失敗。

Installing capybara-webkit (0.12.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

だってさ。

Installing Qt and compiling capybara webkit

↑ここを参考にこちら↓を実行

sudo port install qt4-mac-devel

かーらーのー、本日4度目の bundle install を実行した結果は...

Your bundle is complete!

よしよし、一件落着。

2011-01-22

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

| 13:39

MacBook Air 11インチ欲しい!いとうまさしです。

----

プロジェクト作るときは

$ rails new プロジェクト名

コントローラー作るときは

$ rails g controller コントローラー名

モデル作るときは

$ rails g model モデル名 「フィールド名:型」の繰り返し

例えば

$ rails g model user name:string email:string birthday:date

みたいな。

サーバの起動は

$ rails server

コンソールの起動は

$ rails console

----

利用するgemはRAILS_ROOTのGemfileに書く。

gem 'haml-rails'

といった具合。

Gemfileにgemを追加したらRAILS_ROOTから

bundle install

を実行(bundleだけでもオッケー)するとgemインストールしてくれる。

依存関係も考えていろいろ入れてくれる。

----

Rackっていうのは

Railsフレームワークに依存せず、直接Webサーバーとやり取りして、何か機能を実現してくれるミドルウェア」←僕なりの理解であって、正式には違うかも。

例えばOmniAuthというRackgemRails側に何も書かなくても

/auth/twitter

のリクエストを勝手に受け取って、勝手にTwitterと認証のための通信をしてくれる。

RailsプログラマーはOmniAuthから

/auth/twitter/callback

に飛ばされてきたリクエストの面倒を見るだけ、みたいな。

----

ユーザー認証はrestful_authenticationじゃなくてDeviseが良いっぽい。

ファイル添付はfile_columnじゃなくてPaperclipが良いっぽい。

2011-01-18

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

| 23:46

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 session.                                                        

.bash_profileの変更を反映

$ source .bash_profile

RVMでインストールできる環境を一覧表示

$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p399]
...
# JRuby
jruby-1.2.0
...
# Ruby Enterprise Edition
ree-1.8.6
...

ruby 1.9.2をインストールしてみる

$ rvm install ruby-1.9.2-rc2

インストールしたrubyを使いますよ、と。

$ rvm use ruby-1.9.2-rc2
$ ruby -v
ruby 1.9.2dev (2010-07-11 revision 28618) [i386-darwin9.8.0]

もともと入ってたバージョンに切り替えますよ、と。

$ rvm reset
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]

rubyが利用するgem環境も複数作る(rails2, rails3用で分ける)

$ rvm use ruby-1.9.2-rc2
$ rvm gemset create rails2
$ rvm gemset create rails3
$ rvm gemset use rails3

今作ったrails3環境にrails3をインストール

$ gem install rails3b
$ gem install rails --version=3.0.1

とりあえず以上です。

2010-10-20

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

| 23:57

WordPressで運営中のブログリニューアルしようと思ってる。

そこでリニューアルの作業をするために現状のサイトをコピーして、テストサイトを作りたい。

とりあえず以下の手順でテストサイトができた。

・テスト用のサブドメイン作成

・本番サイトのWordPressフォルダをコピーしてテストサイト用のフォルダ作成

・現状のデータベースをダンプ

・新しいデータベースを作って、そこにリストア

・テストサイト用のVirtualHostの設定をApacheに追加&再起動

・以下のSQLを実行

update wp_options set option_value = 'テストサイトのURL' where option_name = 'home';

update wp_options set option_value = 'テストサイトのURL' where option_name = 'siteurl';

update wp_posts set guid = REPLACE(guid, '本番サイトのURL', 'テストサイトのURL');

ま、そんな感じ。