2008年 06月 04日

話を聞くときは常に相手のポジションと自分との関係性を考えなければならない。圧倒的に相手の有利なことを、あたかもこちらのほうにより利益があるようにいっているのは危険だし、詐欺である。それを信じこんで楽しいならいいけれど、あとには何も残らない。悪質な新興宗教と一緒だ。

当たり前なことは当たり前に認識しないといけない。お金があれば社会に感じる不安の殆どは間違いなくなくなるし、そのうえでは完全に自由に事が運べるのだ。自分の意志で動ける時間を作らないといけないんだよ。 一番怖いのは、誰かの意志を自分の意志と勘違いすることだ。目に見える共通のプロトコルはなんだ? 疑えよ。

↑無理

2008年 06月 03日

typo しにくい id を自動生成

hiveminder のタスク id とかってidの16進数の下位4ケタみたいな感じになっているのですが、あれが激しくうちにくくて、ついでに連番っぽいので間違えて違うタスクを done しちゃったりします。そゆことにならないような id を生成するのをつくってみました。

  • 数字は遠いし typo しやすいので使わない
  • qwert キーボードに限定しない

というかんじにしたいので、aiueo 以外の文字 + aiueo を連番で出すようにしてみました。こういう配列は日頃からうっているのでうちやすいはず!!

class TypableMap < Hash
	Roma = "a i u e o k g s z t d n h b p m y r w j v l q".split(/ /).map {|k|
		%w|a i u e o|.map {|v| "#{k}#{v}" }
	}.flatten

	def initialize(size=2)
		@seq = Roma
		@map = {}
		@n   = 0
		@size = size
	end

	def generate(n)
		ret = []
		begin
			n, r = n.divmod(@seq.size)
			ret << @seq[r]
		end while n > 0
		ret.reverse.join
	end

	def push(obj)
		id = generate(@n)
		self[id] = obj
		@n += 1
		@n = @n % (@seq.size ** @size)
		id
	end
	alias << push

	def clear
		@n = 0
		super
	end

	private :[]=
	undef update, merge, merge!, replace
end

map = TypableMap.new
id = map.push(:foo)
p id #=> "aa"

map << :bar
map << :baz
p map #=> {"aa"=>:foo, "ai"=>:bar, "au"=>:baz}

かなり適当ですが結構うちやすいかなと思います。

でもって tig.rb に組み込んで自由に、確実に fav れるようにしてみました。( http://coderepos.org/share/changeset/13144 )

CTCP ACTION で fav ai などを送ると、目的のメッセージが fav できます。CTCP ACTION はクライアントによって送りかたが違いますが、irssi だと /me です。/me fav eita などなど

2008年 06月 02日

自分の年齢をちゃんとわかってなくて困る、一年っていう単位が微妙すぎて、感覚的に計れない。

さすがにまずいですよねー…… とかおもう。常識を知らなくても知っていても、常識的な行動ができないなら意味ない……

朝の二時間ぐらいの間に、どうにかして頭の中にある回路を解析し、スイッチを切り替えて「やっていける」という表面上の自信みたいなものを構築しなければいけない。毎日毎日回路の構造は変わって、スイッチの切り替えかたも変わる。