2009年8月16日日曜日

Ruby on RailsのDBとしてSQLiteを使う はてなブックマーク

Rails2.0から、デフォルトのデータベースがSQLiteになっています。
本稼動のサイトではMySQLを使うことが多かったので、開発環境でもSQLiteはあまり使っていませんでしたが、手軽に使えて便利だということなので、使ってみることにしました。

ちなみに、RailsでMySQLを使う場合は以下のように明示的にDBを指定します。
rails -d mysql myproject


SQLiteを使うまでのステップは以下のとおり。(Windowsです。)

  1. SQLiteのdllをダウンロード
  2. ダウンロードしたdllをパスの通ったフォルダに配置
  3. sqlite3-rubyというgemをインストール

1.SQLiteのdllをダウンロード


SQLiteのサイトから、「Precompiled Binaries For Windows」のところの
sqlitedll-3_X_X.zip(執筆時点はsqlitedll-3_6_17.zip)をダウンロード


2.ダウンロードしたdllをパスの通ったフォルダに配置


1でダウンロードしたファイルを解凍すると、
sqlite3.def
sqlite3.dll
の2つのファイルができますが、sqlite3.dllのみ配置すればOKです。
今回はC:\windowsに配置しました。


3.sqlite3-rubyというgemをインストール


gem install sqlite3-ruby


以上で、RailsからSQLiteが使えるようになっているはずです。
rails myproject

このようにRailsプロジェクトを作成すると、config/database.ymlがSQLiteを見るように作成されます。

ちなみに、mysqlでは
rake db:create

などでデータベースを作成してから、
rake db:migrate

でテーブルを生成しますが、sqliteではrake db:createは不要のようでした。

参考:
RailsでSQLite3を使おう
SQLite DLLのダウンロード

2009年8月11日火曜日

はてなのような自動キーワードリンクをtx-rubyで実装 はてなブックマーク

はてなダイアリーやニコニコ大百科では、本文のキーワードに自動的にリンクが付くようになっていますが、ニコニコ大百科では、sennaとrubyを使って実装しているそうです。

はてなのようなキーワードリンクをRubyで付与する実例


僕もキーワードリンクを実装する機会があったのですが、そのときはtx-rubyを使いました。

tx-ruby

これはtrieというデータ構造を扱うtxというライブラリを、rubyから使うものです。
rubyを介しても十分高速で、以前Wikipediaの見出し語約90万語をキーワードに使って試した際も、非常に高速に動作しました。
大変便利だったので、書いておきます。

tx-rubyのダウンロードはこちらから。
ダウンロードしたファイルを解凍したあと、そのディレクトリに移動して、
ruby setup.rb

とすると、簡単にインストールできます。(Windowsでも使えます。)

それではニコニコ大百科の説明文と同様にできるかどうかやってみます。

autolink_test.rb
ダウンロード

require 'cgi'
require 'tx'

builder = Tx::Builder.new
words = ['ニコニコ大百科', 'ニコニコ動画', '運営', '未来検索ブラジル', 'ニコペ', 'ニコ百', '大百科']
builder.add_all(words)
# キーワードをインデックスファイルに書き込み
builder.build("test.index")

# インデックスファイルを読み込み
index = Tx::Index.open("test.index")

str = "ニコニコ大百科(-だいひゃっか)とは、ニコニコ動画上での各種用語に関する解説や、ニコニコ動画上にアップされている動画についての情報、その他あらゆる言葉についての情報をユーザが自由に記述できるサイトである。運営・管理ともに未来検索ブラジルが行っている。「ニコペ」、「ニコ百」、「百」、「百」などと、略称され、単に「大百科」と呼ぶこともあるやもしれない。"

# キーワードにマッチする部分をリンクに置き換え
ret = index.gsub(str) do |s, i|
"<a href='http://dic.nicovideo.jp/a/#{CGI.escape(s)}' target='_blank'>#{s}</a>"
end

# 結果をファイルに出力
File.open('autolink.txt', 'w') do |f|
f.puts ret
end


出力
autolink.txt

ニコニコ大百科(-だいひゃっか)とは、ニコニコ動画上での各種用語に関する解説や、ニコニコ動画上にアップされている動画についての情報、その他あらゆる言葉についての情報をユーザが自由に記述できるサイトである。運営・管理ともに未来検索ブラジルが行っている。「ニコペ」、「ニコ百」、「百」、「百」などと、略称され、単に「大百科」と呼ぶこともあるやもしれない。


キーワードリンクが成功しました!

参考:
tx-ruby
tx
はてなキーワードを高速に付与
Aho Corasick 法

2009年8月3日月曜日

サイトのトラフィックを調べるブックマークレット2つ はてなブックマーク

サイトの開発や運営にたずさわる人は、AlexaやGoogle Ad Plannerで他のサイトのトラフィックをチェックすることが多いと思いますが、そんなときに役立つ、今見ているサイトのトラフィックを参照するブックマークレットを作ってみました。

以下をブックマークツールバーに入れて、気になるサイトでクリックしてみてください。

 Alexa

 AdPlanner

中身はこんな感じです。

Alexa
javascript:window.open('http://www.alexa.com/data/details/traffic_details/'+location.href,'_blank','width=950,height=700,resizable=1,scrollbars=1');undefined;

AdPlanner
javascript:window.open('https://www.google.com/adplanner/planning/site_profile#siteDetails?identifier='+location.href+'&lp=true','_blank','width=950,height=700,resizable=1,scrollbars=1');undefined;

2009年7月27日月曜日

VimでRailsを快適に開発する(設定編) はてなブックマーク

Vimはとっつきにくいところがありますが、使っていると離れられなくなるくらいの、素晴らしいエディタです。
当然Railsの開発でもVimを使いたい。ということで、Rails開発をVimで快適に行えるよう設定してみました。

参考にしたのは以下のサイト。
Rails on Vim
http://d.hatena.ne.jp/garbagetown/20090506/1241601962

以下、手順です。Windows環境です。

1.Kaoriya から最新のWindows版Vimをダウンロード。
  実行するとフォルダが解凍されます。
  解凍したものは、今回はProgram Files以下に、

  C:\Program Files\vim72-kaoriya-w32j

  として置くことにします。


2.環境変数HOMEを設定(どこでもいいが、たとえば C:\home)


3.ec57w32.zip をダウンロードし、解凍して、ctags.exeをC:\Windowsにコピー(最新版はここ から確認)


4.Gitを使うため、msysgit をインストール

  そのまま次へ次へのインストールでいいと思いますが、通常のコマンドプロンプトから使いたいので、
  途中Adjusting your PATH environmentでは、
  
   Run Git from the Windows Gommand Prompt

  を選択しました。

追記:msysgitをインストールしたら、コマンドプロンプトが文字化けしました。(Git-1.7.0.2-preview20100309.exe、2010/5/18 現在)
文字化けの解決はこちら。


5.上記サイトにあるように、コマンドプロンプトで以下のように実行
cd %HOME%
git clone git://github.com/akitaonrails/vimfiles.git
cd vimfiles
git submodule init
git submodule update

追記:_vimrcに以下の一行を追加しないと動かなくなっているようです。(2010/5/18 現在)

source ~/vimfiles/vimrc 

詳しくはこちらを参照してください。


6.%HOME%(今回はC:\home)に_gvimrc、_vimrcを設置

  今まで自分で使っていたものに、上記サイトにある設定を追加したものを設置しました。
  参考までに以下に置いておきます。
  _gvimrc   
  _vimrc


7. コマンドプロンプトから起動できるようにする(おまけ)

  コマンドプロンプトから起動できるようにしておくと何かと便利です。

  やり方はいろいろあると思いますが、僕はalias for windowsというソフトを使っています。
  ダウンロードは、ここからAliasというものを選びます。
  詳しくはこちらを見るとよいと思います。
  ダウンロード、設定した上で、
alias vim "C:\Program Files\vim72-kaoriya-w32j\gvim.exe"


  と実行すると、コマンドプロンプトや、「ファイル名を指定して実行」から、

vim


  として起動できるのでとても便利。(「vi」で起動したい場合は、alias vi ・・・ と実行。)


8.RailsアプリのルートディレクトリでVimを立ち上げ、

  
\p


  として、以下のような画面が立ち上がれば成功です。




これで、VimでRails開発を快適に行える環境が整いました!

Windows Vista 64bitへのRuby on Railsインストール はてなブックマーク

ノートPCを買い換えたら、評判のあまりよろしくないVistaになりました。
開発環境を一から作らなければならなくなったので、メモしておきます。

といっても、今までのXPでの場合と全く同じ手順でインストールできました。

1、Rubyのインストール

 One-Click Installerを以下からダウンロード。
http://rubyforge.org/frs/?group_id=167&release_id=28426

 ダブルクリックして指示に従えば、問題なくインストールできます。

 2009年7月現在の1.8系の最新版は1.87で、One-Click Installerは1.86までしかないのですが、One-Click Installerは簡単なのでこれを使うことにします。

 インストール後は、
 
ruby -v

 でバージョンが確認できるようになります。


2、Ruby Gemsのインストール

 以下から最新のzip版をダウンロード。
 http://rubyforge.org/frs/?group_id=126&release_id=37073

 解凍後、コマンドプロンプトでそのフォルダに移動し、
 
ruby setup.rb

 を実行するとインストールできます。インストール成功後、
 
gem -v

 とするとバージョンを確認できます。

3、Ruby on Railsのインストール
 
gem install rails

 こちらも、インストールが成功すると、
 
rails -v

 でバージョンが確認できるようになります。

2009年7月11日土曜日

YouTubeでリピート再生したいときに使うブックマークレット はてなブックマーク

YouTubeで音楽を聞きながら仕事することが多いのですが、リピート再生ができないのが不便です。
と、ここでIDEA*IDEAで紹介されていた「YouTubeRepeat」の記事を思い出しました。

でもURLをいちいち変更するのは面倒なので、ブックマークレットがほしい。
探してみると、既に作っている方が。

YouTubeRepeatでリピート再生するブックマークレット

これで十分便利なのですが、YouTubeRepeatから元のYouTubeのページに戻りたいということも
ありそうだったので、少しだけ改造したものを作りました。

以下のリンクをブックマークツールバーに設置してください。
YouTubeで実行するとYouTubeRepeatに移動してリピート再生できます。
戻りたくなったら、もう一回実行すると、YouTubeからYouTubeRepeatに戻ります。

YouTubeRepeat

ちなみに中身は以下のとおり。

javascript:location.href=location.href.search('youtube.com')!=-1?location.href.replace('youtube.com','youtuberepeat.com'):location.href.replace('youtuberepeat.com','youtube.com');

YouTubeのリピート再生、超便利です!

2009年6月21日日曜日

Bloggerにはてなスターとカウンターを設置したのでメモ はてなブックマーク

前回のエントリー『vimperatorでRead It Laterを使う』で、記念すべきはじめての
はてなスターとブックマークをいただいたようなので、このブログにもはてなスターと
ブックマークのカウンター(○○usersというもの)を設置してみました。

以下を参考にして、すぐに設置することができました。

このとおりやれば問題なくできると思いますが、これらのエントリーを見る前に作業して、
つまずいてしまった点が2つありましたので、念のために書いておきます。

・はてなに書いてある方法は、「クラシックテンプレート」でのみ有効な方法のようで、
 テンプレートを変えている場合はうまくいきません。

・ウィジェットのテンプレートを展開にチェックをいれないと、投稿の要素の中身が表示されず、
 従って編集もできないので注意が必要です。