カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
ruby-doc.org によれば、Ruby Code & Style というコーナー?が Artima で始まったそう。
例えば、Code Generation in Action(Ruby による Java コードジェネレーションを説いた本) や Podcasting Hacks の著者 Jack Herrington が Modular Architectures with Ruby という記事を書いてます。これは、クラス設計に関するお話(Ruby では Java みたいな factory パターンの使い方はあんまりしないようなと思ったりもしますが)。
他には PDF::Writer を使った PDF ドキュメント生成のお話、Linux Cluster で科学計算をするときに Ruby で job 制御をすると楽という話(これは前に Linux Journal に載った記事ですね)など。
Advisory Board に錚々たる面々が名前を連ねてますし、記事が充実していくことを期待します。入門者向けや包括な内容のドキュメントだけでなく、こういった特定の目的に特化したドキュメントが増えていくのは良い傾向だと思います。
rails weblog より。
typo は rails 製の weblog ツールです。typo には見た目を簡単に変更できる theme という機能があるんですが、typo を使っている人リスト を辿ってもわかるようにデフォルトテーマを使っている人がほとんどです。配布パッケージにはデフォルトテーマしか含まれていないからでしょう(CSS 作成だけではなく eruby なテンプレートを作成する必要があるので自作するには敷居が高いかな)。
で、Typo Theme Contest が開催されています。優秀作品には iPod nano を初めとした賞品が贈られるようです。
デザイン性はブログツールを選択する時に割と重要視されるポイントですので(今の typo のデフォルトテーマもすっきりしていてなかなか良いです)、このコンテストで優秀なデザインで集まれば普及の弾みになるかもしれませんね。
追記: 詳細はここより、川o・-・)<2nd life - Plugging into Rails を読むと良いと思います。
Plugging into Rails によれば、拡張を簡単に追加するための仕組(plugin)が Edge Rails(latest SVN trunk なコード)に追加されたそう。
先方の記事の引き写しになるけれど簡単に説明すると、vendor/plugins ディレクトリに、
といった調子でファイルを配置すると、lib がロードパスに追加され、init.rb が自動的にロードされる。init.rb には、
ActiveRecord::Base.send :include, ActsAsChunkyBacon
と書いておくと準備完了。model クラスで、acts_as_chunky_bacon が使えるようになる、とのこと。
追記: ruby1.9 系(つまりおそらく将来の 2.0 系でも)では send, __send__ で private メソッド を呼び出せなくなっています(なかださんいつもありがとうございます)。代わりに instance_eval を使います。
ActiveRecord::Base.instance_eval "include ActsAsChunkyBacon"
参考
↓のように言っていますので、これは別に acts_as 系の拡張に限った話ではないみたいです。
We are using it for things like email notification on errors, or common before_filter’s
うーん、どういう作りなのかは実際に触ってみないとよくわからないですね。まあ、リリースに含まれるのを待ちます。
ONLamp の rails 記事第四弾。7 ページの大作ですね。後で読むためにメモ。ついでに過去記事のリストをメモ。
Pythonで学ぶプログラム作法 の Ruby 版があるといいなと思うことはありますね。 プログラミング入門 - Rubyを使って - をもう少しボリュームアップした感じ。
http://www.ruby-lang.org/ja/200301.html がエラーになりますです。
2005/10/25 追記) 直っていました。担当者の方ありがとうございます。
アクセス制御機構により、多重防御(defense in depth)セキュリティを rails に実装するプロジェクト。開発しているのは Bruce Perens。おおー。
仕事では BTS として 影舞 と Trac を併用しています。同じ機能のソフトウェアが二つあったら、とりあえず Ruby 製の方を選んだりするわけですが、subversion との連携機能は重宝するため Trac も。
で、個人的にも rails のアプリを SCM でコード管理しつつタスク管理もしたいと思い立ち、subversion と Trac を試しに導入しました。今はインストールしただけで空っぽですが。
TachTrac を見ながらインストールしたところ、割とすぐに終了。使っている Apache が 1.3 なので、SuexecUserGroup の代わりに User と Group にしています。また、--suexec-docroot が /var/www なので、ちょっとあれですがパスをそっちにしています。
Typo Theme Contest に書いた Typo のテーマコンテストのその後です。二週間弱経ちましたが、エントリーされたテーマは一つだけのようです。賞品当選率がやたら高そうですので、腕に覚えがある方は参加してみてはいかがでしょうか。
ActiveRecordでon memory sqliteを使う に触発されて。
サーバに蓄積されるアプリケーションのログをデータ集計したくなることがあります。例えば、
[Thu Oct 27 00:04:35 2005] 2426 user 7 get 4065472 points. [Thu Oct 27 07:16:39 2005] 7910 user 9 get 5114016 points. [Thu Oct 27 08:44:30 2005] 3018 user 9 get 3120554 points. [Thu Oct 27 10:48:51 2005] 4132 user 3 get 4832890 points.
というようなのが日々溜まっていくわけです(あくまで例です)。
このログから日付とユーザごとにポイントの合計を出したいとします。順当にプログラムをするなら、
という処理になるかと思います。データ構造が複雑で面倒な感じですね。ログファイルじゃなくてデータベースに入れてあれば SQL を使って集計できるのになあ、と後悔する次第です。
Hash.new{|h,k| h[k] = [] } などといったコードを書いているとき、ふと ActiveRecordでon memory sqliteを使うを思い出しました。sqlite をオンメモリで使えば集計を sqlite に任せられてウマーな感じです。
ということで、以下のようなコードを書いて楽ちんに集計ができました。
#!/usr/local/bin/ruby
require 'activerecord'
class Point < ActiveRecord::Base
end
ActiveRecord::Base.establish_connection(
:adapter => "sqlite",
:dbfile => ":memory:"
)
ActiveRecord::Schema.define do
create_table :points do |table|
table.column :time, :datetime
table.column :pid, :integer
table.column :user_id, :integer
table.column :point, :integer
end
end
PAT = /^\[([^\]]+)\] (\d+) user (\d+) get (\d+) points.$/
ARGF.each do |line|
if mached = PAT.match(line)
point = Point.new
point.time = mached[1]
point.pid = mached[2]
point.user_id = mached[3]
point.point = mached[4]
point.save
end
end
result = Point.find_by_sql(<<-_SQL_)
SELECT sum(point) as sum, user_id, substr(time, 1, 10) as day
FROM points
GROUP BY day, user_id
ORDER BY day, user_id
_SQL_
追記) activerecord-1.12.2 じゃないと、ActiveRecord::Schema はないみたいです。
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).
_ なかだ [そのsendの使い方は1.9以降はdeprecatedになりましたので注意。]
_ だて [追記しました。2.0 への移行は大変そうな予感です。]
_ なかだ [fcallは確定ということのようです。]