2008年 07月 08日

もっとwww うへへwww 気持ち悪くwww

そういえば昨日気付いたけど、おれはもう青春とかいらないと思った。

ゆの in Ruby

#!ruby -Ku

class X
	attr_reader :a, :b

	def self./(a)
		new(a)
	end

	def self.to_s
		"×365"
	end

	def initialize(a)
		@a = a
	end

	def /(b)
		@b = b
		print self
		self
	end

	def <(o)
		puts " #{o}"
	end

	def to_s
		@a.a + "スケッチ" + b.to_s
	end

	class ::Object
		def _
			X.new("ひだまり")
		end
	end
end



X / _ / X < :来週も見てくださいね!

正式名称になるように一文字足しました

ゆの in Io-language

X := Object clone do (
	/ := method(
		if (self ?called, "スケッチ", "ひだまり") print
		self called := true
		self
	)

	< := method(o,
		"365" print
		o println
	)
)


X / _ / X < "来週も見てくださいね!"

このコードにおいて、 _ は評価されない ( / の引数なのだけど、/ 内では _ を評価していない) ので定義してなくてもいいところがポイントです。?called は、初回呼び出し時の called スロットがないために起こるエラーを回避します (正確な?の効果は「対象オブジェクトが指定メッセージに応答しないならば、メッセージセンドを行わない」かな? つまり ? でわっしょい!)。

文字列リテラルを使わずに call argAt(0) とかもできるはずなんですが、どうもマルチバイトだとダメみたいで諦めてます。

2008年 07月 07日

今だどうやったら写真がうまくなるのか全くわからない……

日記を書いたけど、だめだったので消した。

へへへ

バイト先のイベントに参加していて、終電に乗って帰宅しようとおもったら、間違えて逆方向の電車に乗って\(^o^)/ 寝過しを心配していた自分がとてもアホみたいですねwww

バイト先に戻って作業する。いろいろ進んでないのがあるしいい機会だ。

2008年 07月 06日

Wassr 用の IRC ゲートウェイ

http://coderepos.org/share/browser/lang/ruby/net-irc/trunk/examples/wig.rb

いままで tig.rb を継承して wig.rb を作っていたのですが、割と API に互換性がないのと、「チャンネル」とかに対応させるたりしたいために wig.rb は tig.rb をコピペしながら書きなおしました (ヘタに混在させてカオスにするよりはコピペのほうが健全)

tig.rb からの変更点

  • グループ機能をさくじょ (/join #foo とかは、ワッサーのチャンネルをヲチるようにするため)
  • ワサチャンネルへの対応 (jabber つかってても api 使っててもいけるはず。ただ api のほうは制限つけたりをちゃんとやってないのでそのうちだめなになるかも。今は wassr は api 制限ないので問題ない)
  • いろいろリファクタリング (tig.rb にも書き戻す予定)

ちゃんと説明すると (というか忘れそうなので現状の整理)

  • チャンネル名は、ワサチャンネルの英語名 (id) です。
  • jabber を使わない場合
    • 明示的に join したワサチャンネルだけが通知される ( /join #wassr_request ) とか
    • 現状ではワサチャンネルに参加する API がないので、先に web から参加しておく必要がある
    • 参加していないワサチャンネルでも、更新情報だけは /join するだけで見れる (単純に json feed みてるだけなので)
    • 入れば入るほど API アクセスが増えます
  • jabber を使う場合
    • 明示的にチャンネルに join しなくても、参加しているワサチャンネルのメッセージ自体は送られてくる (サーバメッセージの欄に表示されたりするはず)
    • いくらワサチャンネルに参加してても jabber コネクションは常に一つです
    • jabber 使うのが現状では一番効率的です。

IRC の「チャンネル」とワッサーの「チャンネル」が混ざるので、ワッサーのチャンネルは「ワサチャンネル」と書きなおしました

IM からでも /me fav id が使えるようにした。

  • ユーザごとにカウンタをもつ
  • 発言するたびにカウンタをインクリメント
  • id -> [nick, counter] のハッシュをつくっておく
  • /me fav id をしたときに nick の人の user_timeline をとってきて、counter の示す位置の status の id を取得
  • イイネの API を叩く


問題点

  • user_timeline がキャッシュされてる?っぽいので、ズレることがある。
  • タイミングによってはズレる。
  • とりあえずズレる

リア充大学生が羨ましい。

だめ

土日はずっとニコニコみながらコード書いてた。非常に充実していた。

Terminal.app にもどった

iTerm 重すぎてだめだ…… 軽くなるパッチがつくれたらもどろう。。。