2008年 07月 12日

Re: ゆの in Ruby

「おまえのコードつまんねーんだよ!!11」ってゆわれた気がしたのでバリエーションつくってみました><

# *_missing
class Object
	def self.const_missing(n)n end
	def method_missing(n, *a)
		print (n == :<) ? a : ({
			[:_, $!] => "ひだまり",
			[:/, :_] => "スケッチ",
			[:/, :X] => "×365"
		}[[n, a[0]]] || " ")
		n
	end
end


X / _ / X < 来週も見てくださいね!
# 上のと同じのをちょっとゴルフぽく。(むずい)
class X;end
class Object
def method_missing(n,*a)print n==:<?a:({[:_,$!]=>:ひだまり,[:/,:_]=>:スケッチ,[:/,X]=>:×365}[[n,a[0]]]||" ");n end
end

X / _ / X < 来週も見てくださいね!
# ひたすらエラーハンドリング

begin

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

rescue NoMethodError => e
	case e.message[/`(.+)'/, 1]
	when "/"
		print "×"
		Object.__send__(:define_method, :/) {|
			x| _ |x
		}
		Object.__send__(:public, :/)
		retry
	when "|"
		print "365 "
		Regexp.__send__(:define_method, :|) {
			(/ _ /x)
		}
		retry
	else
		puts Regexp.last_match[1]
	end
rescue NameError => e
	case e.message
	when /constant X/
		Kernel.const_set(:X, :X)
		print "ひだまり"
		retry
	when /variable or method `_'/
		Kernel.__send__(:define_method, :_) { (/ _ /x) }
		print "スケッチ"
		retry
	end
end

とてもねむい

ゆの in Lua

なんかまだないっぽい

X = setmetatable({ x = "" }, {
	__div = function (o1, o2)
		if o2 then
			X.x = X.x .. "スケッチ"
		else
			X.x = X.x .. "ひだまり"
		end
		return o1
	end,

	__lt  = function (o1, o2)
		print(X.x)
		return X
	end,

	__call = function (self, arg)
		X.x = X.x .. "×365 " .. arg
		return X
	end,
})


return
X / _ / X < X"来週も見てくださいね!"
  • 普通に演算子オーバーロード
  • return つけないと式とみなされなくて syntax error
  • print は改行が入ってしまうので最後に一度だけ
  • 連結演算子が .. であることをすっかり忘れていてハマった
  • 比較演算子はオペランドが両方とも同じ型でないとエラーになってしまうため、ラップしてる
  • X"foo" は X("foo") と同じ、でもって、関数呼びだしはメタテーブルの __call になる。
  • 宣言していない、一度も代入していない変数が普通に nil として使えてしまうので _ に定義はいらない
2008年 07月 11日

日本語のヘッダ画像も修正中

サイトデザインのデータとか普通に公開できるサイトがあったらいいんのになぁ。ガイドとレイヤー情報だけ先にウェブからみれて、興味があればダウンロードできる、みたいな。ガイドのひきかたとかどうやってんのか謎すぎる。

2008年 07月 10日

ゆの in shell

$ echo '#!/bin/sh\necho "ひだまりスケッチ×365 $(readlink $0)"' > 来週も見てくださいね\! 
$ ln -s 来週も見てくださいね\! X
$ ln -s /bin/cat _
$ PATH=.:/bin
$ chmod +x X| _ |X
ひだまりスケッチ×365 来週も見てくださいね!
$ X / _ / X < 来週も見てくださいね\! 
ひだまりスケッチ×365 来週も見てくださいね!

大事なことなので2度ずつ言いました。(環境壊れます)

2008年 07月 09日

日記という形をとれなくなったとしても、言葉が続かなくなることはないだろう。

知・人工知能・孤独

知っていうのは、分類していくことだと思う。「分かる」ことは「分ける」ことだと思う。僕等、僕等自身に知があると思っているけれど、もともとは宇宙の中で、誰かによって、分かられた存在なのだろうと思う。分けられると知になる。孤独なのはあたりまえだ。そうでなければ知にはなりえない。

僕等、普段の生活の中で何かを分けている。何かを分断して、孤独にしていく作業をしている。その過程で、何か分けられたものは、なんだろう。

~/ がうちにくい

MacBook だとやたら `/ と typo して悲しいので

expand-to-home-or-insert () {
	if [ "$LBUFFER" = "" -o "$LBUFFER[-1]" = " " ]; then
		LBUFFER+="~/"
	else
		zle self-insert
	fi
}

zle -N expand-to-home-or-insert
bindkey "\\"  expand-to-home-or-insert

というふうにしてみました。先頭とかで \ をうったりすると ~/ に展開されます。どうしても \ を入力したいときは C-v \ すればたぶん入力できます。できないなら

bindkey "^V" quoted-insert

reload

ujihisa さんの .zshrc みて alias reload="exec zsh" があったので真似したのですが、たまに C-z かけた vim が露頭に迷うので

# vim とかが露頭に迷わないように
function reload () {
	local j
	jobs > /tmp/$$-jobs
	j=$(</tmp/$$-jobs)
	if [ "$j" = "" ]; then
		exec zsh
	else
		fg
	fi
}

こうしました。job がのこってるなら「終了しろよ!!!」って感じで fg かかります。

ゆの

タグ「"ゆの in language"」を検索 - はてなブックマーク ひだまりスケッチ×365! わしょしょい

「洗濯機から女の子」ってうまく英訳できないんだよなぁ…… 誰かうまいこと訳してほしい。というか日本語でもうまく略せない。。洗濯機娘 が限界? でもニュアンスが違うんだよなぁ。

一言で表現できたらいいのになぁ。「洗濯機から女の子」を一言で表現できないのが許されるのはオンドゥル語マデダヨネー