2008-09-01から1ヶ月間の記事一覧

Security Update 2008-006 Client (PPC) のハッシュ値が合わない件

Mac

Mac OS X では、自動的にソフトウェア・アップデートするとトラブルに見舞われる確率が上がるので、アップデート用のファイルをダウンロードして手動でアップデートするのが常識となっている。2 週間ほど前に Mac OS X Tiger 用の Security Update が出たの…

印刷すると微妙に縮小されるとお嘆きのあなた

Mac

Mac OS X Panther の PowerBook から Leopard の MacBook に買い替えて以来、印刷がうまくゆかずに悩んでいた。 プリンタはキヤノンの PIXUS iP8600 もう 4 年くらい前のモデル。 「スーパーフォトボックス」とか言ってエビちゃんが CM してたヤツ。Web ペー…

第 30 回 Ruby/Rails 勉強会に行ってきた

第 30 回 Ruby/Rails 勉強会今回はスペシャルゲストにキリン本でお馴染みの Yugui さんをお迎えして行なわれました。なのに参加者が少ない。なぜ? 台風が近畿に上陸する恐れがあったから? 学生は、まだ夏休みだから? 給料日前だから? 信長の野望 on Rails by…

const 厨

C++

職場で、変に const された C++ のコードに出会した。 int parse_arg(const int argc, char** const argv) { for (int i=1; i < argc; ++i) { // ... 別に const 付けなくても動くんだから間違いじゃないけど。 たぶん、やりたいことは、こうでしょ?int pars…

マージソートの sort_by

マージソートシリーズ最終回。 module Enumerable def msort_by map{|i| MSORT.new(yield(i), i) }.msort {|a,b| a.key <=> b.key }. map{|i| i.val} end private MSORT = Struct.new(:key, :val) end ["3a", "1b", "4c", "1d", "5e", "9f"].msort_by{|v| v.…

ブラウザのジャンルを非表示にする

これだけで行けるらしい。 $ defaults write com.apple.iTunes show-genre-when-browsing -bool FALSE ジャンルって、曲名と同時に自動で設定してくれるけど、内容がいい加減すぎる。 ある曲のジャンルを他人の基準に合わせて設定しても意味ないし。 自分の…

grep が終わらない

先日、友人から「grep について教えて」と電話が掛ってきた。なんでも Linux のある特定のディストリビューションで grep -F -i . file とすると、CPU 使用率が 100% になって、grep がいつまで経っても終わらないらしい。 しかし最近は Unix 系 OS でも「CP…

マージソートにブロックを渡す

この前作ったマージソートをブロック付きメソッドに変更できた。 module Enumerable def merge(o, &comp) comp = Proc.new{|a,b| a<=>b} if comp.nil? i = 0 j = 0 m = [] while i < size && j < o.size if comp [self[i], o[j]] <= 0 m << self[i] i += 1 e…

テスト全体の準備と後始末

最近は RSpec が流行みたいだけど、私は未だに Unit Test ですよ。昔の RUnit (?) だと自分でテストを実行する必要があったけど、Test::Unit は勝手にテストを実行してくれる。上の例では、テストクラスを「定義しただけ」で、テストが実行されています。こ…

ClamAV が動かない

Mac

MacPorts を upgrade したら、ClamAV が動かなくなってしまった > $ sudo freshclam dyld: Library not loaded: /opt/local/lib/libclamunrar.4.dylib Referenced from: /opt/local/lib/libclamav.5.dylib Reason: image not found Trace/BPT trap $ clamsca…

クイックソート

マージソートに引き続きクイックソートに挑戦してみた。 module Enumerable def qsort if size <= 1 self else pivod = self[0] a, b = self[1..-1].partition{|i| i < pivod} a.qsort + [pivod] + b.qsort end end end [3, 1, 4, 1, 5, 9, 2, 6, 5, 3].qsor…