日記帳

日記です。

2005-12-01から1ヶ月間の記事一覧

PC組み立て

PC

http://d.hatena.ne.jp/sa-y/20051223#1135359475 で購入したケースに組み立ててみる.マザーボードのBIOSの更新の段階になってFDDがないことに気が付く.しかたがないので別のPCからひっぺがして取り付けてBIOS更新.最近のPCはUSBから起動できるものが多い…

PC購入計画(3)

PC

とりあえずパーツを買ってくる. マザーボード : MSI K8MM-V *1 CPU : AMD Turion64 MT40 *2 CPUクーラー : Thermalright XP-90 *3 PC3200(DDR400) DDR SDRAM DIMM 1GB 財布の中身が一気に寂しくなってしまった.いくら使ったのかは考えない方が精神衛生上良…

String#gsub() と String#gsub!() の速度比較

同じ動作をする破壊的メソッドと非破壊的メソッドがある場合,一般的には新規にオブジェクトを生成しない破壊的メソッドの方が速いことが多い(はず)です.「CGI::escapeHTML() って何をエスケープしてたっけ?」と思ってcgi.rbを眺めていると以下のようなコ…

丸2日ほど風邪で寝てましたがなんとか復活.

ヴィンテージHDD

サーバPCのHDDがたまにカツンカツンいっているように聞こえるのは風邪のせいだで聞こえる幻聴だろうか? そうだといいなぁ…いつ買ったHDDなのか思い出せないので login して型番を知らべてみる. $ dmesg | grep ATA hda: Maxtor 91080D5, ATA DISK drive hd…

風邪

寒い中秋葉をふらふらしてたので完全に風邪を引いた模様.

PC購入計画(2)

PC

PCの構成も決めていないのに秋葉原でケースだけ買ってくる. 購入したのはScytheの0509ULAというATXのケースです.12cmファンを搭載した同社製の静音450W電源搭載で8300円はお買い得だったと思います.

String オブジェクトを破壊的に空文字列化(2)

http://d.hatena.ne.jp/sa-y/20051221#1135158425 の続き.他に思い付かなかったのでとりあえず benchmark.rb してみる. 以下の4つの処理を試しました. str.replace('') str.slice!(0..-1) str[0..-1] = '' str.sub!(/.*/, '') コードは以下の通りです. r…

String オブジェクトを破壊的に空文字列化

Ruby の String *1 クラスっていうのはまるで文字列を扱うクラスのような名前です.でも実際はバイト列を格納するためのコンテナクラスなんだと思う.ASCIIコードの範囲外の文字を文字単位で扱えないですし(もちろんjcode.rb*2を使えば日本語限定で文字単位…

benchmark

benchmark.rb*1の使い方を覚えた.かしこさが1上った.…賢いのは作った人ですか. *1:プログラミング言語 Ruby リファレンスマニュアル

PC購入計画

PC

現在 Windows 2000 が入っているPCがいよいよ不安定になってきました.先日HDD新しくしてOS再インストールしたばかりなんだけれども… HDDアクセスが集中した瞬間にささる症状が出ているのでIDEコントローラ周りが怪しい気がしていますがM/B取り換えるならい…

Ruby で遅延初期化処理付き getter を一発定義(2)

http://d.hatena.ne.jp/sa-y/20051217 のコメントを参照.なかださん最高♪ 私のへちょいプログラムとは比べものにならないですねぇ… きっと世界中の遅延初期化マニアが抱き付いてキスしてきますよ?インデントが崩れてるのとインスタンス変数が初期化済みの…

Rubyと遅延初期化

attr_reader を使ったgetterの方が速いのならそれを使いたくなるのが人情ってものではないでしょうか? class LaterInitializationSelfOverrideToAttrReaderHello attr_reader :message alias :message_by_attr_reader :message def message unless @message…

Ruby で遅延初期化処理付き getter を一発定義

こんな感じでしょうか? class Module def attr_reader_with_initializer(name, initializer_name = nil) name = name.to_s variable_name = "@#{name}" first_accessor = "#{name}_reader_with_initializer".to_sym second_accessor = "#{name}_reader".to_…

Ruby アクセサメソッドの速度

いろいろいじってると attr_reader を使って定義した getter は速いってことに気が付いた. class Hello attr_reader :message end class Hello2 def message() @message end end def test(obj) start = Time::now 0.upto(2000000){ obj.message } puts "#{o…

Rubyと遅延初期化(2)

昨日のコードは明らかに下の方がよさそうだ.いや別に違いはないのだけれども. class LaterInitializationSelfOverrideHello def message unless @message then @message = Time::now.strftime("Hello @ %Y-%m-%d") end def self.message @message end @mes…

Ruby と遅延初期化

とりあえず遅延初期化が好きです.遅延初期化ってのはあれです. 普通はコンストラクタでインスタンス変数を初期化して,アクセッサメソッドは初期化済みの値をそのまま返すって書くところを,初期化処理をアクセッサメソッドが最初に呼ばれた場合に実行する…

書式のテスト

書式のテストをしてみる。 箇条書-1 箇条書-2 箇条書-2-1 箇条書-2-2*1 箇条書-2-2 /*プリフォーマットのテスト*/ #include <stdio.h> int main(int argc, char* argv[]) { printf("Hello, world!\n"); return 0; } '' は自前でエスケープしないといけないのかな? タ</stdio.h>…

とりあえず

登録してみたのでテスト。