2008年 02月 01日

citrus, UriInformation の分離

いま mixi とか plagger の db から情報とってくるとかが一つのファイルにつっこまれてて非常にダサイので、どうにかする。たぶん UriInformation の中でさらに Plugins インスタンスをもつようになる。

plugins/uri_handlers/{mixi,plagger,image,ftp,http,urn,amazon}

これらは、実行順を持っていて、あるプラグインで処理が確定したら後続のプラグインは実行されない。


ということをやりたいけど眠くてしかたないのでねる……テストどうやってかこう。

リロード可能なぷらぎん

もっといい実装ないかなぁ……

今の方法

  • 匿名モジュールでロード
    • プラギンクラスは、そのファイルとしてはトップレベルの定義になる module::Foobar
  • グローバルな環境からこのクラスにアクセスには困難 (匿名モジュールなので
  • ロードする環境がいつも必ず別々になるのでリロードのときに問題がおこりにくい (とおもう)
  • プラギンがさらにプラギン機構をもとうとするとめんどい。(ベースクラスも匿名モジュール内に入るので、直接参照できず、class_eval とかでロードする必要がある)

つけかえする方法

  • グローバルな名前空間にロード
    • プラギンクラスは Plugin::Foobar みたいになる
  • どこからでもアクセスできる
  • インスタンス化のタイミングとか参照状況によってはリロードしても GC きかない可能性があるかも (デバッグむずい)
  • リロードするときは remove_const / const_set
  • 継承とか依存があるときはそれらもよみなおさないと前の参照がのこる
2008年 02月 02日

Requiem for a rendering engine

Requiem for... までみたところで Innocence がうかぶアート厨

指にささくれをつくってはとり、つくってはとり、という神経質な癖があって嫌だ。その神経質さも嫌だけど、なによりキーボードがよごれるのが嫌だ。

gerry++

2008年 02月 03日


写真の順番が flickr にあげた順と全然違うのは、戦略的なものとかそういう高等なものじゃなくて、単に「今日はこんな気分だなぁ」というだけです。

Lingr メモ

1000speakers を観察

  • あんがい anon なユーザは少ない
  • 結構同一アカウントで別々のセッションをはっている人がいる
    • (o_id が違う==現行の lig.rb だと nick 一覧で重複する)
  • ログインしない状態でルームに入ったあと、ログインすると、o_id は同一のまま、セッションが更新されて認証済みユーザに昇格する
    • このときの system:enter/system:leave が謎い……発生しないっぽい?
      • ログイン済みかどうかで lig.rb は nick を変えているので enter/leave が発生しないなら処理いれてあげないといけない


lig.rb は human かどうかで nick の表示をかえれるようにしたい。というか nick の表示でやるより op でやったほうがいいかなぁ。human だったら @ でそうじゃなかったら @ なし。AWAY かどうかでもいいけどクライアントによっては @ よりわかりにくい。

Suppress system messages にチェックが入ってるチャンネルだと system:enter とかもおくられてこないっぽい?ので、system:enter/system:leave とかはユーザ管理に使用すべきじゃないっぽい。

そのかわり、occupants のリストが更新されると入ってくるので、それをつかって管理すべき

2008年 02月 04日

単体で (Rails をつかわずに) AR::Migration をつかうメモ

(ほぼ)最小構成の例: (acts_as_versioned もふくめて)

# Rakefile

require "rubygems"
require "rake"
require "active_record"

namespace :db do
	"Migrate database."
	task :migrate do
		require "db/connection"
		ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
	end
end
# db/connection.rb

require "logger"

ActiveRecord::Base.establish_connection({
	:adapter => "sqlite3",
	:dbfile  => "wiki.db",
})

ActiveRecord::Base.logger = Logger.new($stderr)

Dir.glob("model/*.rb") do |f|
	require f
end
# db/migrate/001_init.rb

class Init < ActiveRecord::Migration
	def self.up
		create_table :pages do |t|
			t.column :version    , :int
			t.column :title      , :text
			t.column :body       , :text
			t.column :created_at , :datetime
			t.column :updated_at , :datetime
		end
		Page.create_versioned_table
	end

	def self.down
		Page.drop_versioned_table
		drop_table :pages
	end
end
# model/page.rb

require "acts_as_versioned"

class Page < ActiveRecord::Base
	acts_as_versioned
end
  • AR::Migrator は undocumented なので変更される危険性がそれなりにあるかも ( # :nodoc: 指定)
  • AR::Base.logger を設定しないと Migrator うごかないよ

Rack + SQLite な Wiki をつくろうとおもったけどなんかめんどくさくなってしまった……

限定発売

限定発売とかまじでやめてほしいなぁ。

コンテスト

プログラミングコンテスト、みたいなのにどうも興味が持てない。頭が悪いから、解く楽しみ、みたいなのがない。というかああいう、頭の悪さを嫌でも実感しなくちゃいけないものは嫌いだ。そんなのお前 (問題) に言われなくたって嫌でも、日常生活でわかってるんだよって感じだ。

好きなことを仕事にすること

[life][music][thinking] 自分がやりたい事を自分がやりたいからやる、というスタンス | Mon, Jan 9. 2006 - 氾濫原

昔の日記を読んでた。このへんの考えはやっぱり、なかなか変わらない。とはいえ今は結構マシだと思う。というかこれ書いたの2年前なのかって感じだなぁ。なんだかもっともっと前に感じられる。いろんなことがありすぎる。

2008年 02月 05日

have nothing you have.

2008年 02月 04日

最もタメになる「初心者用言語」は Lazy-K !

  • Unlambda みたいに統一された書きかたじゃないよ! There is more than one way to do it!
  • Schemeみたいに括弧だらけじゃないよ! でもそこそこ括弧だらけにもできるよ! TIMTOWTDI!
  • Pythonみたいにインデントを強制されたりしないよ!
  • Ruby みたいに lambda がダサくないよ!
  • Javaみたいに「まずクラスを作れ」とか言われないよ!
  • 覚えることがかなりすくないよ! とりあえず S と K と I だけでいいよ!
  • 変数の名前に困らないよ! 変数なんてないよ!
  • チューリング完全だよ!
  • 継続なんて黒魔法ないよ!
  • 関数以外本当に何も存在しないよ!
  • Brainf*ck みたいに下品な名前じゃないよ! FUCK! FUCK!
  • 選べることは正しいんだよ!
  • 今流行りの Y combinator も ```ss`s``s`ksk`k``sii と書いたり、SS(S(S(KS)K))(K(SII)) って書いたり、****i*i*i*ii*i*i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii*i*i*ii**i*i*ii***i*i*i*ii*ii*ii って書いたり、11111111000111110001111110001111111000111100111110001110011110011111110001111111110000011111111100000 って書いたりできるよ! JavaScript (笑) よりだいたいみじかいね! *1

*1: print-as-unlambda とかしただけで、僕は Y combinator を理解してません

2008年 02月 05日

罠 -> JSON は文字列リテラルのクオートにシングルクオートは使えない

2008年 02月 06日

天才と器用貧乏

天才な女の子よりは、器用貧乏な女の子のほうが萌える。

書類不備

学校に出した書類が不備で送りかえされてくるらしい。なんかほんと書類書くのが苦手だ。

ああいうのアナログのって送ってみるまで妥当性検証されない。すごい無駄。しかも、その検証は人がやるから、全ての書類に対して同じような検証がかかるとは言えない。そのくせ、殆どの検証は機械にやらせようと思えるばできることだ。バカバカしいことこの上ないと思う。重要な書類ほど機械に処理させるべきだ。入試のときも同じことを思った。(マークシートは機械で処理されるけど、マークされているかどうかの閾がユーザにわからないのでクソだ)

自分は、心の根本的な部分の成長が遅い感じを中学ぐらいから感じていて、それがところところで、威力を発揮しだして、めんどうくさい……だいたいの人は、なんだかんだいって、友達をつくることができ、ある程度安定した場みたいなのを築けるみたいだけど、そういうのができない。たくさん人がいるところでの、社交性みたいなのが、全くわからない。

そこらに沢山人がいるところでの、独りである感覚、絶望感、みたいなの。賑やかな孤独。知らない人はもちろんだけど、中途半端に知っている人もダメだ。飲み会みたいとかでの、ふと気分が下った瞬間から感じるそういう真っ暗で冷い感じがどうしようもなく嫌だ。人が多いほど、制御すべきことが多くなって、気分を上げにくくなる。誰だってあることだ。

誰でも、社会的な役割を無意識に感じとっていて、それに収まるように行動してる感じがする。みんな嫌だろうがなんだろうが、繋っているようだし、その繋っている部分で、バランスを調節しあってる。誰かがいなくなると、そこに近い人がそれをおぎなってく。嫌な人が一人いなくなっても、誰かにその役割を譲るだけだ。誰かとっくの昔にいってるはずだこんなこと

TODO

バカがバカなりに生きていく方法を考える。

lt と gt

僕の覚えかたは、lt の l は left で < です。

あぁ、説明不足だったんですが、僕はだいなり・しょうなりってどっちがどっちだかわからないバカなので (同じように東と西もわからなかった)、gt/lt が何の略か知っていてもそれが記号に一致しないんです。でも l は left の l とバカでもわかるように覚えておけば、左手に近いほうの Shift+, をおせばいいというのが直感的に理解できるんです。バカのバカなりの考えかたです。

Ruby の Jabber(XMPP) ライブラリ

xmpp4r-simple がつかいやすいみたいかな。xmpp4r のラッパで、作者が twitter の中の人みたい

require "rubygems"
require "xmpp4r-simple"
require "pit"

config = Pit.get("jabber", :require => {
	"username" => "username of jabber account",
	"password" => "password of jabber account",
})

im = Jabber::Simple.new(config["username"], config["password"])

Thread.start do
	loop do
		im.received_messages do |msg|
			p msg
			p msg.from
			p msg.body
			p msg.type
		end
		sleep 1
	end
end
#im.deliver("to@example.com", "foobar")

sleep

received_messages は常に non-blocking なのでループさせる必要がある。xmpp4r のほうはコールバックになってるから、特に non-blocking にしたくないんだったら im.client.add_message_callback do |msg| end したほうがいいかも。

im.subscribed_to?(jid) とか便利なのもあるけど、接続直後だと、どんなアカウントでも false をかえしたりする。

特別いろいろやりたいんじゃなかったら xmpp4r-simple のほうがめんどくさくなくてよさげ (なにがめんどいって最初のコネクションだけど、あと接続きれたときの処理とかもめんどいし、そこらへんかってにやってくれるのは嬉しい)

require "rubygems"
require "xmpp4r"

config = ...

jid    = Jabber::JID.new(config["username"])
client = Jabber::Client.new(jid)
client.connect
client.auth(config["password"])
client.send Presence.new(nil, "") # 現在の状態をセット。しないと他の人にはオフラインのままにみえる
client.add_message_callback do |msg|
	p msg
end

エラー処理もいれないといけなくて、エラーがおきて re-connect したらまた Presence をおくらないといけなくて、みたいな感じでめんどい。

2008年 02月 07日

僕の考える未来

自分は、時間の継続、次の一瞬、未来は、ある世界がたくさんつまった集合から、一つを、個の無意識の層で選びとっているように感じてる。それぞれの人がそれをしていて、しかしまた、それぞれの個がある程度を無意識の下の層でバランスをとりあって、相互作用をしてる。

  1. 個 * 意識
  2. 個 * 無意識
  3. 全 * 無意識

なので、どうにかして無意識にアクセスできれば、未来を変えられるように思っている。例えば強い思い込みとか、信念とか……でもそれらを手にいれるプロセスをふむのが、そもそも難しい。

DNBK

DNBK ですよぼく

厭世

厭世の読みを定期的に忘れる。なんかおれあたまおかしいんだろうか……記憶が効かない


楽天的ってそこそこよく聞くし、よく使うけれど、厭世的ってあんま聞かないよなぁ。

あぁ、厭世的じゃなくて悲観的ってはいうからきかないのか

はてダ ins/datetime

id:quaa さんが書いてて知ったけど、その場編集使うと ins の datetime が挿入されない……これはなおしてほしいなぁ……

test

GDHM のグロリア#3をきいたら少し楽になった。

2008年 02月 08日

chokan, citrus, 必須プラグイン

基本的につかうプラグインは決まっているので、必須プラグインはさっさと実装してあとはオンデマンドで移植する。

  • URIInformation
    • URI をあつかうのではなく、スキームごとに別のプラグインに
    • HTTP
      • HTTP 内で mixi をアカウントログインするとかはまた後でかんがえる
  • PlusPlusbot
    • 移植は簡単だけどデータを移行し忘れないように
  • Eval
  • JSEval

ぐらいかな。あとあんまつかってない。PHP でフィリピンペソはちゃんと出したいけど

古いほうの chokan とめた。今プラギンはうえのしか有効になってない

2008年 02月 09日

ブロックのブロック引数 (ruby1.8系)

def foo(&block)
    obj = Object.new
    (class <<obj; self; end).__send__(:define_method, :_) do
        Proc.new == block # true / expect false
    end
    obj
end
p foo {
    # A
}._ {
    # B
}

なんでブロックの中の Proc.new が外のブロック引数で生成されるんだ…… 1.8 ってブロックのブロック引数とれないのかなぁ…… 1.9 なら |&block| できるけど……

citrus

あたらしくプラグインをつくったときは引数なしで reload してから reload PluginName

citrus

もう名前は citrus でいいやという気分だけど、ディレクトリ構成をどうするかで悩む。ruby/citrus に今のブランチをうつしてしまって、chokan を削除するようにしたいけど、svn up していきなり chokan がきえたらびびるよね

2008年 02月 10日

ねむい

ねむい。でもねむい、とだけ書くような日記になんの価値があるのだろうか。それでも、ねむい、とだけ書いて寝たい気分だった。途中でそれになんの価値があるのかを考えたくなった。でもやめた。ねむいからだ。

中途半端さとバランス

Ruby を中途半端に感じるのは、Ruby がいろんな言語のいいとこどりをしてバランスをたもとうとしてるからで、嫌な人は嫌なんだと思う。極端な感じの人はたぶんあわない。

これ使っとけばマジカンペキー、なんていう言語は全然ないと思うけど、Ruby みたいに、いろんな言語からいろいろとりいれている言語をメインにすると、他の言語を学ぶときのハードルが低くなる。オブジェクト指向言語を学ぶときも、関数指向の言語を学ぶときも、「Ruby では……」を考えると良さが見えてくる (共通しているならそこは重要だってことが想像つく)。

僕にとっては Ruby はそれ自体がプログラミングの先生だ。雑誌の記事をいくらよんでもよさを実感できなかったオブジェクト指向を教えてくれたし、高階関数のエッセンスも教えてくれた。そういう機能を、コードを綺麗に書こうとしようとするだけで、自然と使わざるを得ないような感じになっているのがいいんだと思う。

2008年 02月 11日

2008年 02月 13日

こういう雰囲気の女の子はいいですね。(トゲがどうとかという話ではなく、全体的な雰囲気として)

やっぱ黒を背景にするのと白を背景にするのとでは写真の雰囲気が全然違うよなぁ。

なんであの人は、あんな浮かれているというか、言い捨て的というか、もっといえば、つまらないんだろう。ああいうのに不快感を覚えるということは、自分の中にもまた、そういう可能性があるということだから、気をつけないといけない……

はてグにはトラックバック拒否ユーザの設定がないのよね

おれ……これががもしうまくいったら……ヘッドフォンのコード買うんだ……

デブサミ

明日のデブサミ二日目の最後のセッションでライトニングトークをします。今日のデブサミは別の用事でいけなかったり

2008年 02月 14日

ラングトンのループ

セルオートマンってあんまおもしろさを感じてなかったけど、ラングトンのループ - Wikipedia をみてなんかすごい感動した。

Java Applet で動かしてみたやつがあって、( http://www001.upp.so-net.ne.jp/suzudo/loop.html ) 見てみたらちょー感動した。


ある一定の (割と単純な) ルールの組合せでこういうふうになるんだもんなぁ。生物のルールも実は割と単純なんだろうなぁ。

ケータイ

2008年 02月 13日

Fx3 b3

いれてみたけど、アドレスバーに入力したあと RET で移動できなかったのでやめた。あといくつか必須アオドンがうごかないしなぁ。

RET がだめなのはもれのプロファイルがダメらしい……再構築するのめんどいお……

SKK λ

xl でλを入力できるようにした。

http://subtech.g.hatena.ne.jp/cho45/20070311/1173607857

2008年 02月 15日

デブサミ

結構ぎりぎりに会場に入った。

会場ついたら yoshiori さんにいきなり遭遇した。最近よくお会いする気がする。yoshiori さんの雰囲気のよさは異常。おもしろすぎるww kakutani さんとペアプロした!ってちょう喜んでた!! おれもしたい!!!!


Yappo さんのプレゼンがやばかった。おもしろすぎる。でもあれはほんと動画とかでみないとわかんないおもしろさだよなぁw


あといろいろ考えたけど眠い。ばーんって行ってばーんって見てやってばーんって帰ってきた。帰ってくるときは毎回一人反省会すぎる

2008年 02月 14日

gerry++

2008年 02月 15日

$ svn log http://svn.coderepos.org/share/ | grep "| cho45 |" | wc -l
    1188

screen 再入門

screen のつかいかたをみなおそうとおもいました。tiarra とか mobirc を常にデバッグモードでたちあげてて邪魔なので別の screen においだす

やりたいこと

  • 完全にデーモンにして放置したくはないけど、基本的に放置なプロセスを別の screen に
    • mobirc
    • tiarra * 2
    • chokan
    • 再起動を簡単にできるようにしたい
  • irssi もデーモン側にしてマルチアタッチ (irssi は別の Terminal.app でみる)
# サーバ起動時にいっかいだけ
$ screen -S daemon ~/.screen/init-daemon.rb
$ screen -S main

でアタッチしやすいようにソケット名指定して各 screen を起動しとく。なぜか -dmS して起動すると init-daemon.rb がうまいこと実行されないので (system "screen" 系がのきなみ失敗する感じ……なんでだろう)、-S で起動してデタッチする。

daemon 側の screen では、zombie QR してプロセスがしんでもすぐ再起動できるように


マルチアタッチは普通に別のウィンドウからログインして screen -rx daemon

2008年 02月 16日

ケータイ

ケータイ写真熱があがってきた。

gerry++

冷凍うどんたべたらゲリった (うどんはたぶんわるくない)

Fx3 b3

新規プロファイルにした。

: 1203137101:0;cp qhjh5wvc.default/places.sqlite  4jhh4wwb.2008-02-16
: 1203137145:0;cp -R qhjh5wvc.default/gm_scripts 4jhh4wwb.2008-02-16
: 1203137237:0;cp -R qhjh5wvc.default/chrome 4jhh4wwb.2008-02-16
: 1203137290:0;cp qhjh5wvc.default/stylish.rdf  4jhh4wwb.2008-02-16
: 1203137443:0;cp qhjh5wvc.default/key3.db  4jhh4wwb.2008-02-16
: 1203137517:0;cp qhjh5wvc.default/signons3.txt  4jhh4wwb.2008-02-16
  • ブックマークとか -> places.sqlite
  • パスワードの移行 -> key3.db と signons3.txt
  • Stylish の設定 -> stylish.rdf

つなぎとして縦置きタブにする userChrome.js 用のスクリプトをかいた (OSX)

http://coderepos.org/share/browser/lang/javascript/userchrome/verticaltab.uc.js

  • browser.tabs.closeButtons を 2 にしないとたぶんちょっと表示がくずれるとおもう。(非表示に、ということ)

タブの並べかえができなくてめんどい…… 実装するのたいへんそうだなぁ

2008年 02月 17日

Citrus のロゴをつくろうとおもったけど無理だった。

twitter みたいに、思ったことをプールさせずに放出するものはあんまりよくない。

楽しくなるといいなぁ……どうなるかわからないけれど

2008年 02月 18日

日記

この日記って前回リセットしてから一年経っていないんだなぁ……

夢/現実感

403 Forbidden で見た女の子をここ一週間か数日か (普段の時間の流れとちがうので、よくわからない) また、よく考える。この夢を見たときは、本当に、そこにいるという現実感があって、起きたとき、それからしばらくはそれが残っていた。今は残念だけどそういうのはあまりなく、変わりに、考えれば考えるほど、肺の下あたりに、水がじわじわ広がるような感覚になる。

ここ数日の夢は、起きるとすぐにどこかに消えてしまうので、そういうのがあってまた思い出してるのかもしれない。

Gmail mobile

  • From のきりかえができない
    • デフォルトをモバイル用アドレスにしておいて、PC から送るときは毎回変えるとかやる必要ある
  • 署名と引用が返信で入る
    • 削除できない?
2008年 02月 19日

睡眠

自分は音が何もしないと高確率で金縛りになるので音楽つけたまま寝ることが多い。

あの、体だけが眠ろうとするせいで、脳から出す命令に体が反応しなくなって、自分の体がすごく重く、重く感じられる感じっていうのは、気持ち悪い。

2008年 02月 18日

OpenFL

http://wota.jp/ac/?date=20061011

default-character-set=utf8
skip-character-set-client-handshake

を [mysqld] にくわえた。

sudo /etc/init.d/mysql restart    
mysqladmin -u root create fastladder

ちなみに一回も OpenFL 付属のクローラを起動せず (動作確認ぐらいしろよって話だけど)、Plagger の fastladder-crawler ブランチをチェックアウトしてきてセットアップした。

$ cat fastladder.yaml | grep module:
  - module: Aggregator::Async
  - module: Subscription::LivedoorReader
  - module: CustomFeed::MixiScraper
  - module: Filter::Rule
      module: Deduped
  - module: Store::Fastladder

あとはおいおい

2008年 02月 19日

Open Fastladder

Plagger とのタッグが最強すぎる気がする。まだ Plagger 側の config を充実させていないけど Mixi 日記とかあの UI でよめるのはきもちいいなぁ。

2008年 02月 18日

Subscription::LivedoorReader + OpenFL でレートを同期する。

追記

LDR をフィード管理とメインのフィードクローラをつかっていこうとおもうのですが、レートをつけるのがめんどうなので LDR のレートを OpenFL に反映させます。

// require JSDeferred
unsafeWindow.LDR.register_hook('before_printfeed', function (e) {
	next(function () {
		console.log(e);
		var url = e.channel.feedlink;
		return parallel({
			api_key: getApiKey(),
			id: xhttp.get("http://reader.livedoor.com/subscribe/"+url).next(function (res) {
				var m = res.responseText.match(/button class="subs_edit" rel="edit:(\d+)"/);
				return m ? m[1] : null;
			})
		}).
		next(function (data) {
			console.log("Getting rate:"+uneval(data));
			if (data.id) {
				return xhttp.post(
					"http://reader.livedoor.com/api/feed/subscribed",
					"subscribe_id="+data.id+"&ApiKey="+data.api_key
				).
				next(function (res) {
					res = eval("("+res.responseText+")");
					console.log("rate:"+res.rate);
					unsafeWindow.set_rate(e.subscribe_id, res.rate);
				})
			} else {
				// not rated
				console.log("unrated");
			}
		});
	}).
	error(function (e) {
		alert(e);
	});
});

function getApiKey () {
	var callee = arguments.callee;
	return callee._cache ? next(function () callee._cache) : xhttp.get("http://reader.livedoor.com/reader/").next(function (res) {
		api_key = res.responseText.match(/var ApiKey = "([^"]+)";/)[1];
		callee._cache = api_key;
		return api_key;
	});
}

OpenFL 側でフィードをすすめると LDR からレート設定をもってきて反映させます。(一気にやるやつじゃない)

(あとでちゃんと GM のファイルにする)

OpenFL 側の UI から LDR へレートを反映させたいけどまた今度でいいや……

やっぱフィードがロードされたら subs.model.list をなめて一気にやったほうがいいかもなぁ。OpenFL -> LDR の伝播をどうするかだなぁ。

というか GM でやる必要はないよなぁ

2008年 02月 19日

LDR -> OpenFL のレートを同期 (一発で)

なんか書いた GM が微妙だったので Ruby で一括適用するのを書いてみました。バグあるかもしれないけど

やってることは

  • LDR から Subscription リストをとってくる
  • OpenFL の DB の subscriptions から指定したメンバー ID の subscription をとってくる
  • OpenFL の feedlink と同一のものを LDR の Subscription リストからさがし、あるならそれのレートを適用して保存

Ruby で AR つかって、OpenFL のモデルをそのまんま使ってるので OpenFL 側の保存とかは問題がおきにくいはずだけど、LDR からリストとってくるのがけっこうアレかも。/api/subs?unread=0 って一発で全部とれてるのかな……

あとは OpenFL 側の set_rate にフックかけて LDR に反映させる GM かけばいいかな……

OpenFL -> LDR のレート同期できた。とおもう。ほとんど未テスト

Subscription::LDR が feed->meta->{rate} にレートつっこんでるので Store::Fastladder をかきかえたほうがシンプルだ

sync_rate というオプションがでけたのでこれつかうと meta->{rate} が反映されるお>< typester++

なにはともあれ

一番大切なのはマエノメリティだよなぁ。口先のやる気じゃなくて、頭がレポジトリにつっこまれているぐらい前のめっていないといけないのではないか

なんとなく眺めてて思うけれど、こういうみちを、学校の帰りに女の子と歩きたかった。

FeedBurner の文字化けフィード削除

  - module: Filter::Rule
    rule:
      - module: Expression
        expression: |
          my $threshold = 0.3;
          return 1 unless $args->{entry}->body;
          my $body = $args->{entry}->body->plaintext;
          my $len  = length $body;
          $body =~ s/[^\?]//g;
          my $rate = length($body) / $len;
          $rate < $threshold;

もっといい方法あるのかなぁ。というか既にありそうなんだけどみつけられなかった

2008年 02月 20日

BAZRA

あれw AVEX だったのかw http://www.nicovideo.jp/watch/ax1831099 公式動画にあってうけた。

2008年 02月 21日

おwwれwwのww歴史wwwはwww自己www正当化wwwのwwwwwれきwwwしwwwwwwwwwwww

これからおれはどうなってしまうんじゃろう。ぼくはいまだにぼく自身のことがよくわからないのだよなぁ。

とりあえず、ソリッドであるよりはリキッドのほうがよいと思う。それは絶対に確かだと思う。


ちなみに自分が高校で学んだ最大のことは「ひたすらが我慢すること」で、大学で学んだ最大のことは「我慢しないこと」だった。俺が一番嫌で、絶対に避けなければいけないと思っていることは、そういった、高校や大学であった、完全に心の底から憂鬱な日々の繰り返しであって、中学のような、嫌なことはありつつも、全体としては良いこと、楽しいことのほうが多い、というのは問題ないと思う。このバランス、嫌のことと、楽しいことのバランスの境界をどこに落とすのかが、まったくもってよくわかってない (それって感じてみない=経験してみないとわからないことだからだ)。

2008年 02月 22日

いちにんしょーかえるのはめんどい。

DIS たいせい

おれ怒られ/叱られ耐性ないよなぁほんとうに……すげー凹むんだよなぁ。なんでだろう。物心ついたときからずっとだなぁ……何が原因だかよくわからない。うちの親は小中高ってけっこう厳しい親だったんだけど、そういうのがあるのかなぁ。

おこられたときって、他の人ってどうなるんだろ。どうなるんだろ、っていうか憂鬱にはなるだろうけど、どうやって/どのぐらいの期間で通常のレベルまで戻ってくるんだろう。自分は、おこられたりすると視野がすごい狭くなって、腹のあたりになんかもやもやした重いものがたまる。副作用として集中力はあがって (でも憂鬱にさせているものに対するやる気が本当に全くなくなってしまう)、言葉が頭に浮かび、腹痛になりやすくなる。あと、おこられる前段階も全く同じ状況になる (おこられそうな要素があるとき、いろいろなことがうまくいかないとき)

あと、同時に、同じような立場にいる人がおこられてるのを見るのも、ものすごく、憂鬱になる。その順番って、必ず、絶対に、時間が続き限り、人間として完全完璧ではない限り、自分にもくるじゃないですか。その「いつかおこられる」っていうのがすごい憂鬱になる。これってどうにかなんないのかなぁ、まだきてないことに対して不安になってもしかたないってのは解っているんだけど、実感できない。ピコーンって感じの発想の転換があったら教えてほしい限りだなぁ。

なんかほんとうに、今とかから考えると、高校に行っていたときの心持ちとか、大学に行っていたときの心持ちとかって、かなり恐しいんだよなぁ……なんであんなに憂鬱だったんだろうって感じだ。でもあれでもたぶん、憂鬱の入口程度なのではないかという感じで、ほんとうに底無しなんだろうっていう。

今日は唐突に 2ch のどっかのスレを一気に読んでしまって (ネタ系じゃないのを)、なんか病気な人に辛辣な言葉を投げかけるようなレスがあって、すげー凹んだよ。病気になってまであんな言葉を投げかけるんだとしたら、おれみたいなのはどうなるんだろって感じだ。(おれが、嫌なコメント、批判ではない中傷みたいなものを、フィルタリングしているのは、誰かに投げられた批判ではないことで、必要以上に自分が凹まないようにするためだ)

昔の日記を読みなおそう。日記はチェンジログだ。今この世の中には考えていることをそのまま完全に保存していく装置が発明されていないから、リポジトリは存在しない。

やばい

http://d.hatena.ne.jp/brazil/20070112/1168549641

またこれよんでたらぐっときた。これを読むとちょっと幸せになる。すごいやばいよ。なんか、ブクマコメントで一部だけ、過去のおれは引用していたけど、それはちょっと違うんだよなぁ。これは全部ふくめて面白いエントリだ

BURGER NUDS -> GDHM

いろいろ考えている中で、一番理想的なのは、BURGER NUDS -> GDHM みたいな変化なんだよなぁ。すごいおもしろくなった。というかこう、ライブで内田氏の笑顔をみると男のおれでもズッキューンですよ?

今日から僕は、また新しい僕です。なにもわからない。JS も Ruby もなにもわからない。

むかしの日記をよんでて、同意できないエントリに出会うのは楽しい。確かに違う自分、っていうのが実感できる。

アイデンティティ

あぶないあぶない。このタイミングで日記よみなおしてよかったお……

アイデンティティを「たった一つの特徴」みたいに誤解しているような感じ。実際には、ただその人の「普通の日常」を気取らずに過ごせばいいのに、余計な、過剰なアイデンティティを求めて、凡庸になってしまう。もったいない。

http://lowreal.net/blog/2006/09/20/1

どこまでをリキッドにすべきか、どこまでが自分か、みたいなのを考えていたけど、少し気が楽になった。全部リキッドで良いのだ! 過去の自分++ さりげなく切羽詰ってたなぁw

なんかもっとさー、過去の自分を分断するサービスがあってもいいよなー はてブとかさーなんで一回しかブクマできないの? おかしくない?
リビジョン129の cho45 さんとかがいてもよくない?

2008年 02月 21日

git-svn で svn のブランチをマージ (未解決)

# git-svn version 1.5.3.6 (svn 1.3.2)
$ git clone -s ...
$ git reset --hard remotes/trunk # マスターを最後に trunk がコミットされたリビジョンにリセットする
$ git merge barbaz # barbaz はリモート svn なブランチ
$ git svn dcommit --dry-run

してしまうと、予想に反して barbaz のブランチにコミットされてしまう。

git-svn は dcommit のとき git log HEAD の git-svn-id: の一番最初 (最新) をみるらしいけど、リモートが svn なコミットを merge すると、そっちが最初になってしまう。

git-svn-id はコミットログに入ってるっぽいから自分で書いたらとりあえずコミット先はかわるだろうけど、あぶなくてできない。merge してくるときにブランチ側の git-svn-id を消すべきなんだとおもうけどよくわからない。うちの git-svn が古いけど新しいのだと直ってたりするのかな (古いのしか入らなかった。めんどす)。

>

2008年 02月 22日

dull 系の色がすきすぎる (青緑+灰とかすき)

2008年 02月 23日

やばい。まじほんとはてなムラ界隈が全然わかってなくてうける。ホッテントリとかに入ってても、女子がどうとかって読まないんだよなぁ。ほんと興味あるトピック/人、しか追ってない……

2008年 02月 22日

IE

例によって IE での表示がくずれてるけどなんかめんどいからいいや……

なんか、途中までは IE でもいけるような構造でやってたのに、欲しい要素が欲しいところにないよ><とかおもって absolute まくりはじめたらやっぱだめだった。

2008年 02月 23日

-moz-border-radius

つかってみて便利さを感じまくった…… もちろん普通の場合でつかうべきではないのだけど、なんでこういうのを、CSS1 から入れなかったんだろう。

return かきたくない

var f = function (x, y) (
    x += 3,
    x + y
);

f(2, 3) //=> 8

みたいなのはできるけど、括弧の中には if とか書けないからなぁ。if は ?: つかうようにして、ループは再帰にすればいいのか


かいじょう

var f = function (x) (
    (function _f (x, c) (
        x ? _f(x - 1, x * c) : c
    ))(x, 1)
);

f(3);

括弧だらけになる。

2008年 02月 24日

へた

吐くまで飲んでしまった……迷惑かけまくってしまった。なんでだろうなぁ……

あと、ヘッドフォン (K271s) とプレイヤーを失くした。

2008年 02月 25日

ヘッドフォンはそのうち買いなおそう……しばらくは ATH-A500 でいいや……

プレイヤーになりそうなものがケータイぐらいしかない、と思ったけどリナザウがあったのでこれをつかうことにしよう……

id:amachangは馬超。DNBK

2008年 02月 26日

最近また愛の試みを読んでる。

gerry++

海老名-- トイレの数すくない。

2008年 02月 28日

irssi あとでやる

/bind meta-1 /window goto all
/bind meta-2 /window goto ...
...
/bind meta-0 /window goto hilight

この設定って /save で保存されるのかな (されないっぽい) .irssi/startup にかいとけばよさそうなのかな

2008年 02月 29日

JS

script 要素いっぱい書くのと、一個にまとめてサーバサイドで毎回プロセス (といってもキャッシュしつつ) するのって、どっちがいいんだろう。

  • サーバ負荷的に
  • 速度的に

どうやって計測すればいいんだろう