« 2008年8月 | トップページ | 2009年7月 »

2009年6月

linuxでコマンドをつなぐ方法

.configure

make

make install

は、

.configure && make && make install

決まりきった一連の動作はつないだコマンドで用意しましょう。

cent os で バージョンを表示するコマンド

yumで毎日OSをバージョンアップしていると今のバージョンがどうなっているのかわからなくなってしまうことがあります。

そんなときはこちら。

cat /etc/redhat-release

CentOS release 5.3 (Final)

最新になっているみたいです。

RESTful な rails アプリケーションをつくろうなどとは考えないように

今回ruby on rails で作っている家計簿とは別に新しいアプリケーションを作ろうとしていて、最近はやりの REST で ルートやコントローラーのアクションを構築してみたのですが、has_many -> has_many とかなってくると、URLがめっちゃ長くなるし、それに、URLからコントローラとアクションがすぐに解らない状態になってしましました。

ruby on rails で一番うれしいのは、やっぱりURLから即座にどのコードが動いているかがわかることだと思っています。

プロジェクトが巨大化していっても、このルールに従っていれば、解析は局所的で済むわけですから、下手にキレイなURLがいいといってroute定義などをいじるべきではありません。

restのURLにしてもなれればいいのですが、なれるまでがタイヘンですし、結局更新なんかにしても、acts_as_list の move_higher をするには、それようのメソッドを追加するか、変なパラメータを増やさないといけないわけで、それなら結局同じことです。

複雑なことをやろうとすれば指定は複雑になるのであれば、整理なんかしないで今のままでOK。 :controller / : action / :id でなんら問題ありません。

どんどんアクションを追加して行きましょう。(あとで検索が面倒くさくならない程度にですよ)

最近良く出るclamavのエラー対応(centos5)

最近ずっと、clamavが古い(outdated)と毎日のログに出力されていました。

もう、centos 5 も時代遅れなのかなぁ。。とはいえ、今はOSいじっている時間などないので、とりあえず最新化。

wget http://packages.sw.be/clamav/clamav-db-0.95.2-4.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamav-0.95.2-4.el5.rf.i386.rpm
rpm -ivh clamav-db-0.95.2-4.el5.rf.i386.rpm clamav-0.95.2-4.el5.rf.i386.rpm
freshclam

競合エラーがでる場合は、 --force オプションをつけましょう。

ruby on rails (Active Record)複数列をgroup by して countする方法

Active Recordで以下のようにcountを実行しても、複数列の値が取得できません。

Message.count(:group => "rcv_user_id, send_user_id")

=>[[ 3, 2] , [ 4, 2]]

※一番最後に指定した列の値+行数

このような場合には、countを使わず、通常のfindを使用します。

Message.find(:all , :select => "count(*) count, rcv_user_id, send_user_id":group => "rcv_user_id, send_user_id")

結果をオブジェクト(インスタンス)から取得するときにも、countやメソッド名で取得できるので、ソースの可読性が良くなります。

もう、count使わないほうが良いカナと思ってしまいます。

« 2008年8月 | トップページ | 2009年7月 »