2006年 11月 22日

Thread

そういえば Ruby 以外の LL のスレッド生成方法を全然知らないことに気付いた。JS は timeout/interval で疑似スレッドだしなぁ。
Perl の threads は使おうとするとハマりそう。とにかくスレッド作る時変数がコピーされることと、threads->new (複数形) なことを忘れなければいいのかな。

Socket

Ruby のソケットって壮絶に簡単なんだなぁと、他の言語を見てて思う。単に慣れてないだけ、というつっこみっっっっっっg

Fx のプロキシ設定を自動化

どうするのがいいんだろう。FoxyProxy が使いにくいし、場所変わるたびに設定するのがめんどくさい。
自動設定ファイルにしても再起動しないと適用されないし、うーん。
あと SSH のトンネリングもちゃんと自動化したいなぁ。ただスリープ入った時に SSH が固まるのがめんどくさい。

Hash merge

require 'pp'

class Hash
	def deep_merge(other)
		deep_proc = Proc.new { |k, s, o|
			if s.kind_of?(Hash) && o.kind_of?(Hash)
				next s.merge(o, &deep_proc)
			end
			next o
		}
		merge(other, &deep_proc)
	end
end

a = {
	:hoge => 'hoge',
	:fuga => {
		:aaaa => 'aaaa',
		:bbbb => 'bbbb',
		:dddd => {
			:test => 'test',
		}
	},
}

b = {
	:hoge => 'hoge',
	:hage => 'ore',
	:fuga => {
		:bbbb => 'baka',
		:cccc => 'remon',
		:dddd => {
			:TTst => 'test',
		}
	},
}

pp a.merge(b)
pp a.deep_merge(b)
:!/usr/bin/ruby tmp/test.rb                                                                                                                                                   
{:hoge=>"hoge",
 :hage=>"ore",
 :fuga=>{:bbbb=>"baka", :dddd=>{:TTst=>"test"}, :cccc=>"remon"}}
{:hoge=>"hoge",
 :hage=>"ore",
 :fuga=>
  {:aaaa=>"aaaa",
   :bbbb=>"baka",
   :dddd=>{:TTst=>"test", :test=>"test"},
   :cccc=>"remon"}}

みたいなのって AS にもあったりするのかな

わー

Perl のテストの書き方わかんねー(基本がそもそも

perl -Ilib t/*.t でいいのだろうか

2006年 11月 21日

あああ

はてなちゃんかわいいよお

2006年 11月 20日

IIrcv rev513 universal binary

PPC では動かないらしい。
エンディアンが関係するようなローレベルなことはやってないんだけどなぁ。hotkey 関連以外でバイナリなのは main.m だけ (Ruby/Cocoa の関数よんでるだけ) だから、たぶん hotkey のライブラリに修正がいるんだと思うけど……

IIrcv changeset 521

http://lab.lowreal.net/trac/changeset/521
ステルス(マウスが近づいたら消える)を実装しようと思って実装してみた。なんか簡単にできるメソッドが多くてやりやすい。

設定増やさないと

これだと消えてるときに出力されるとフェードインしちゃうな
ちょっとつよいフラグがいりそう

http://lab.lowreal.net/trac/changeset/522

USB memory

1GB の USB メモリを買った。Windows 版の Ruby と PortableFirefox を入れて持ち歩こうと思う。がっこうの端末はなぜかライブラリがいっさいロードできない。

gerry++

rev525

http://lowreal.net/2006/IIrcv/pkg/ パッケージングした。rake publish するだけだけどな!!
ローカライズを半自動化するようにした。
English.lproj/Main.nib と Japanese.lproj/nib.strings から Japanese.lproj/Main.nib を作るタスクを書いた。