フォーチュンサモナーズ
最新 追記

Don'tStopMusic

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|02|03|04|05|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|

カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年

知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。


2006-07-12 この日を編集

_ [ruby] YARV 0.4.1 このエントリーを含むブックマーク

新しいバージョンが出ましたね。いくつか未実装の機能があるのと、リフレクションテクニックを駆使したときに遭遇するドキュメント化されてない仕様の類と、拡張ライブラリ以外は、割と普通に動きます。1.9 ベースですので 1.8 とは仕様が異なる部分が少々ありますが。

YARV で今ある資産がどのくらい使えるのかを調べるため、gem をインストールしてはテストを走らせてみてます。作業記録ははてなダイアリー に書いています。


2006-07-16 この日を編集

_ [私生活]PCを売りに出す このエントリーを含むブックマーク

使っていた自作 PC をヤフオクに出しました。この日記がおいてあるサーバを除くと自分の PC はなくなりました。 中学生のころに PC-9821 を買って以来、DEC HiNOTE Ultra、Libretto、自作 PC と使い続けてきましたが、最近はブラウザとターミナルがあれば十分という程度の使い方しかしてませんでしたし。


2006-07-17 この日を編集

_ [ruby] CGI でエラーをブラウザに表示 このエントリーを含むブックマーク

Rubyで、ブラウザ経由で例外を表示する方法

Ruby の CGI スクリプトで Perl の   use CGI::Carp 'fatalsToBrowser';   に相当するやり方があったら教えて下さい。

これはまさに

ひょっとして、全体をbegin rescueで囲ったりとかしないといけないのかな。

で良いと思います。たとえば全体を main メソッドなりに入れて、begin rescue で囲み、rescue 節で例外内容とスタックトレースを表示すると良いでしょう。

#!/usr/local/bin/ruby
 
def main
  raise StandardError, 'error'
end
 
begin
  main
rescue Exception => e
  puts 'Content-Type: text/plain'
  puts
  puts e
  puts e.backtrace
end

2006-07-22 この日を編集

_ [Rails] IntelliJ IDEA の Rails プラグイン このエントリーを含むブックマーク

が追加される予定みたいです。商用 IDE の本命になる? "working on it" ということですので、まだ先の話ですね。

IntelliJ plugin for Ruby/Rails より。

_ [Rails] single table inheritance このエントリーを含むブックマーク

TurboGearsが使ってるO/R MapperであるところのSQLObjectのInheritableSQLObjectは凄いよこりゃ

Atomをselectして帰ってきたクラスが,ちゃんとサブクラスになってる。atomなファーストクラス風のクラスを定義しておくと,リレーションとかも抽象化できる。

(中略)

DjangoのO/R Mapperとか,ActiveRecordってこういうことできるのかな。。。

ActiveRecord にも single table inheritance(STI) という機能があります(今回はじめて使った……)。PofEAASingleTableInheritanceに基づく機能です。 使い方の説明はTechKnow Zenze » Rails Single Table Inheritanceが簡単でした(というか公式サイトにあんまり情報がないような)。

ちょっと STI のコードを書いてみました。on-memory sqlite を使っています。

sti_example.rb

#!/usr/local/bin/ruby
require 'pp'
require 'rubygems'
require 'active_record'
 
class Atom < ActiveRecord::Base
end
class AtomSub < Atom
end
 
ActiveRecord::Base.establish_connection(
  :adapter => "sqlite",
  :dbfile  => ":memory:"
)
ActiveRecord::Schema.define do 
  create_table :atoms do |table|
    table.column :title, :text
    table.column :about, :text
    table.column :type, :text
  end
end
 
atom = Atom.new(:title => 'atom')
atom.save
atomsub = AtomSub.new(:about => 'about', :title => 'atomsub')
atomsub.save
 
pp Atom.find_all

実行結果

$ ruby sti_example.rb
-- create_table(:atoms)
   -> 0.1087s
[#<Atom:0x2b33985c
  @attributes={"title"=>"atom", "type"=>nil, "id"=>"1", "about"=>nil}>,
 #<AtomSub:0x2b338e84
  @attributes=
   {"title"=>"atomsub", "type"=>"AtomSub", "id"=>"2", "about"=>"about"}>]

結果を見るとわかりますが、Atom なのか AtomSub なのかは type カラムで判別しています。一応 SQLObject の InheritableSQLObject と同じことができているのかな。

(追記:trackback 送ろうとしたら 503 が返ってきたので諦めました。)


2006-07-23 この日を編集

_ [ネットサービス] Akismet このエントリーを含むブックマーク

Typo 4.0.0で Akismet をスパムフィルタに使えるとありました。ウェブ API 型のスパム判定サービスのようです。Wordpress では標準で利用できるようになっているらしいですね。どのくらいの精度なのかな。海外のサービスなので日本語のスパムには弱そうですが。


2006-07-25 この日を編集

_ [ActiveRecord] ActiveRecord でクラスタ このエントリーを含むブックマーク

rails ml に[PATCH] Support for DB Clusters/Replication in ActiveRecord (RFC)という投稿がありました。いきなり Clusters/Replication 対応完了というわけではなく、まずは read/write それぞれ複数の接続先を指定できるようにしたようです。分散は単純なラウンドロビン。

パッチのコードを眺めてみましたが、 ActiveRecord Cluster (複数データベースを扱うプラグイン)の方が筋が良いですね。こちらはプラグインですので ActiveRecord 本体のコードに手をいれませんし(試すのに楽)、テーブルの複数ホスト分割対応もやろうとしています。惜しむらくは更新が止まっていることですが……


2006-07-29 この日を編集

_ [ゲーム]そう、あたしたちはこんなにも理不尽な世界に生きているのだらよ このエントリーを含むブックマーク

岩月さんのブログ自転車創業の新作が出ていることに気づきました。速攻で Amazon に注文したのは言うまでもありません。


最近のコメント:

RSS
Creative Commons License
This work is licensed under a Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).