2007年 10月 04日

irssi

ustreamer の join/part を表示しないプラグインを書くべきだ……とおもって書いた。/ignore でできるのかもしれないけどわかんない。

use strict;
use warnings;

use Irssi;
use vars qw($VERSION %IRSSI);

$VERSION = "0.01";
%IRSSI = (
	authors     => "cho45",
	contact     => "cho45¥@lowreal.net",
	name        => "all",
	description => "ignore ustreamer join/part",
	license     => "Public Domain",
	url         => "http://irssi.org/",
	changed     => "2007-10-04T01:15:00+09:00"
);

sub message_join {
	my ($srv, $channel, $nick, $addr) = @_;
	Irssi::signal_stop() if $nick =~ /^ustreamer/;
}

sub message_quit {
	my ($srv, $nick, $addr, $reason) = @_;
	Irssi::signal_stop() if $nick =~ /^ustreamer/;
}

Irssi::signal_add_first("message join", "message_join") ;
Irssi::signal_add_first("message quit", "message_quit") ;

Irssi::signal_stop() よべばなんか止まるらしい。

もづるぷらがぶる

ホスト間で SSH トンネリングと Rinda つかって簡単な情報 (IRCの通知情報とか、クリップボード内容とか) を簡単にやりとるするフレームワークを簡単に書こうとおもっていたのに、プラグイン機構が欲しいなぁと思ってそっちを書きはじめる罠

Rinda はタプルの要素数を3個に制限することでおてがるなトリプルサーバとして使えそうだなぁ。正規表現マッチもできるしというか === の比較をしてくれるから入れるオブジェクト (URI) さえ考えてあげればうまいことつかえそう。もちろんこれは全然関係のない話なんだ!
タプルの要素数を制限してしまえば、完全に notify で傍受できるから、デバッグしやすいし、削除とかも <invalid_resource> <rdf:type> <hoge::InvalidResource> とか投げてやるとサーバ内で take して削除したりとかできそう。SPARQL の実装つくんないとだめだけど……SPARQL とかパーサつくるのからしてめんどくさい……

キーボードすりきれ度

一年ほど MacBook を使ってみて

  1. E
  2. T
  3. S
  4. A
  5. H
  6. G
  7. J
  8. N
  9. D

の順ぐらいにキートップが削れてる。他のキーは差がわからない。

2007年 10月 03日

XPath でドキュメント順に複数の要素とってくる

たとえば getElementsByTagName だと、"*" わたして自分で配列つくってやるか、それぞれに要素名を渡したあとにドキュメント順にソートしたりしなくちゃいけないけど、XPath のときはそういうのする必要がない。

$X("//body | //html | //link ")
//=> [html, link, link, link, link, link, link, body]

パイプ演算子はオペランドにノード集合をとる。どうでもいいけどパイプとバイブは似てる。

でも true / false をオペランドにしてもエラーがでない。"//html | false" は html をかえすし、"//html | true" もかえす。数値や文字列だとだめ。実装依存なのかな。

自分は $X を unsafeWindow にエクスポートしてる。

ぐりもんのアイデア

かたっぱしからはてなスターを 801 個つける GM

cvs screen memo

http://subtech.g.hatena.ne.jp/antipop/20071003/1191410798 みながらやってみた。256color はつかってないのでオンにしてない。make とかもふつうにとおる @ubuntu LTS

http://lists.gnu.org/archive/html/screen-users/2007-02/msg00000.html に書いてないサブコマンド
process.c を case RC_LAYOUT を検索したらでてくる。というか ML に続きあった http://lists.gnu.org/archive/html/screen-users/2007-02/msg00009.html

layout の削除がないのかな。どうやって消すんだろ。

screen のソースはタブとスペース混ざってて読みにくい。:set tabstop=8

http://lab.lowreal.net/trac/changeset/897 resize -v は右側でやると操作感が逆になってしまう。

思ったより軽いかなぁっておもったけど、やっぱおもい…… vsplit

2007年 10月 02日

ああああああああああああああああああ

あああああああああるうううううでぃいいいいいいいいいいいいえふううううううううううとーりーーーーーぷーーーるうううううううううううううを
発射!! しまくる!!

gerry++

scrubyt

なんか結局うまくいかなくてソース読むっていう……
Extractor.define が返すのは Scrubyt::ScrubytResult で (Scrubyt::Result ではない)、ScrubyResult は ResultNode のサブクラスになってる。
ResultNode は Array のサブクラスになっているんだけど、Array#inspect が空の Array を表示してしまっていて混乱する。実際には中身があったりする。ドキュメントおうよりソース読んだほうがいいことを実感した……

あと mechanize が 1.8.5 以上要求する。ubuntu LTS は ruby1.8.4 なのでエラーでる。(1.9 は入れてるけど、まだ 1.9 で gem を入れたくない)

/usr/lib/ruby/gems/1.8/gems/mechanize-0.6.10/lib/mechanize/inspect.rb:44: undefined method `pretty_inspect' for class `WWW::Mechanize::Page' (NameError)

めんどいので

class Object; def pretty_inspect(*); self.inspect; end; end

書いてほうち。

#!ruby -Ku

class Object; def pretty_inspect(*); self.inspect; end; end

require "rubygems"
require "scrubyt"

mixi_community = Scrubyt::Extractor.define do
	fetch "http://mixi.jp/"
	fill_textfield "email",    config["user"]
	fill_textfield "password", config["pass"]
	submit

	fetch "http://mixi.jp/view_community.pl?id=26374"

	# member_num "#communityInfo .contents03 .memberNumber"
	member_num "//dl[@class='communityInfolistMiddle clearfix memberNumber']/dd[1]"
end

num = mixi_community.to_hash[0][:member_num][/¥d+/].to_i

あたらしくなった mixi でコミュニティの参加人数とるやつをかいた。慣れればかなり早くすくれいぱー書けそうだなぁ。
でも自動解析みたいなのは読みにくいと思う

2007年 10月 01日

CocProxy

CodeRepos にコミットしてどきゅめんとかいた
http://coderepos.org/share/wiki/CocProxy

全然関係ないけど (なんか自分こういうのおおいんだけど、なんでだろ……)、今回 MatchData#begin と MatchData#end をはじめてつかった。
あと String#[a..b] = c もはじめてつかった。begin/end にいたっては今回はじめて知った。MatchData のリファレンスとかあんま見ないですよね。(ですよね?)

それにしても、なんか頭がおかしい。頭がおかしいって、ソレではなくて、なんていうんだろ、うまく回っていかない感じがする。もちろん前から回っていないのだけど、それに拍車がかかって、自動的に動いている感じがする。寝すぎなんだろうか。とか、今こうやってまた「全然関係ないこと」を書いてしまうぐらい頭が回ららないというかおかしい。頭悪いのは、どうしたらいいんだろ。なんだろもっと自重して生きていこう……もう遅いかもしれない。