2006年 09月 01日

Plagger

学校のユーザ領域に Plagger インストール。
学部サーバでは RNA が動いてるけど、コレってまとまったフィードとかがない。授業ごとのフィードとかが欲しいのでやってみる。

メモ

2006年 09月 02日

opml

OPML のフォルダごとに別のフィードはかせたいなぁ。どういう流れだか理解できてない。
Subscription::hogehoge で祖先要素の outline@title を / で繋げて、id に突っ込めばいいんだろうか。Subscription::OPML は SAX で……って思いながら読んでみると tags に突っ込んでるっぽいなぁ。
タグごとにフィード吐くのがわからないわな。一個ずつ SmartFeed に expression 書いてあげるのか。

Perl

また == と eq でハマった

小田急線 攻略済みトイレ

  • 成城学園前
  • 登戸
  • 新百合丘
  • 町田
  • 相模大野

べ、べつに攻略したくてしたんじゃないんだからね!

絶対 URI, 絶対パス

少し前某所にいたとき、絶対パスを「http:// からはじまる~」と説明していたのを傍で聞いていて、なんか違うような (で、でも、わたし、正確に調べたわけじゃないし##) みたいな感じだったのでちゃんと調べる。

といっても、普通に RFC を確認するだけ。おなじみ RFC3986 を適当に調べる。と、該当部分は

  • 3.3. Path
  • 4.2. Relative Reference
  • 4.3. Absolute URI

なんだけど、こっちの RFC だと少しまわりくどいので、上書き前の RFC2396 を見てみる。もちろん若干違うのだけど、上書きされたのが最近ということを考えれば、もともとの由来はこっちにあったと考えられる。

absoluteURI   = scheme ":" ( hier_part | opaque_part )
hier_part     = ( net_path | abs_path ) [ "?" query ]
relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
abs_path      = "/"  path_segments
rel_path      = rel_segment [ abs_path ]

絶対 URI (absoluteURI) はスキームから始まるやつ。相対URIはパスにクエリー付けられるやつ。絶対パスは / からはじまるやつ。

URI 的にはこういうものらしい。

絶対 URI
http://example.com/
http://example.com/hogehoge.html
相対 URI
/hogehoge.html
./hogehoge.html
foo/bar.html
/search?q=%42oofy
絶対パス
/hogehoge.html
相対パス
./hogehoge.html
foo/bar.html

あと上書き後では次のようなノートが書いてあったり、定義が微妙に変わっていたり (フラグメントがどうとか) する。とりあえず相対 URI は今は正確には URI 相対参照みたいだ。

NOTE: Previous specifications used the terms "partial URI" and "relative URI" to denote a relative reference to a URI. As some readers misunderstood those terms to mean that relative URIs are a subset of URIs rather than a method of referencing URIs, this specification simply refers to them as relative references.

2006年 09月 03日

まだまだ

C-[ と : で悩む。

2006年 09月 04日

nil or null

最近なんとなく null より nil のほうが好き。

taglibro 秋田

この日記はローカルで XML 編集してアップロードして書いているのだけど、いい加減 XML 書くのが嫌になってきた。Markdown と Trac Wiki 記法とを混ぜたやつで書きたい。それとローカルでしか書けないのがだめすぎ。外出先から日記を書けない。

XML で書くのは、全て制御できるけれど、もうそれにいまいち魅力を感じなくなってしまった。別に Markdown だって HTML が書けないわけじゃないし、HTML を完全に思い通りに書いても、そんなに意味がない気がしてきた。well-formed なら十分なんじゃないか? って思い始めた。abbr はかけるコストの割りに役に立たない。ような。

URL はそのままで、うまく再構築したいなぁ。トラックバックはいらないし、久しぶりに Ruby だろうか。Rails 使ってみたいけど、CGI 動作じゃ死にそうだから使う気にならない。うーん

控えめな Brainfuck コードを色づけする GM

>>+++++[-<++++++>]<+[-<++>]<.>+++[-<------>]<-....
.....>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[
-<-->]<.+++++++++++++++.-----------------.........
...>+++[-<++++++>]<+.>+++++[-<++++++>]<+.>++++++++
+++[-<--->]<.-----------------.+++.-........+.---.
..........>+++++++++++[-<--->]<.>+++++++++++[-<+++
>]<....+++.++++++++++++++++.>+++[-<------>]<-...>+
+++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[-<-->]<
.+++++++++++++++.---------------......++++++++++++
+++++.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--
-------------.+.++++++++++++++++.>+++[-<------>]<-
.............>++++++[-<++++++++>]<.>>+++++++++++[-
<++>]<+[-<-->]<.+++++++++++++++.---------------...
..+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++++
++[-<--->]<.--------------.++++++++++++++++.>+++++
++++++++[-<---->]<.>+++++++++++[-<+++>]<..........
.......>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<
+[-<-->]<.+++++++++++++++.-----------------..>+++[
-<++++++>]<+.>+++++[-<++++++>]<+.>+++++++++++[-<--
->]<.--------------.---....+++.++++++++++++++++.>+
++[-<------>]<-..........>++++++[-<++++++++>]<.>>+
++++++++++[-<++>]<+[-<-->]<.+++++++++++++++.------
---------.....>+++++++[-<----->]<.>+++++++[-<+++++
>]<.+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++
++++[-<--->]<.--------------.>++++++[-<------>]<.

coloring-brainfuck.user.js

おまけ。昔書いたやつ。選択範囲内のbfを実行.js for JSActions

。。

フレームワーク理解度: Catalyst > Rails
言語理解度: Ruby >> Perl

日記どうするのがいいかなぁ。定期的に考えるなぁ。

  • RDB をできれば使いたくない。(使ってもいいか)
  • Markdown で書きたい。あるいは Trac Wiki
  • オンラインで編集したい

どうしたにせよ、今のデータからの移行が面倒くさい。

日記

はてダをとってきて表示するだけの CGI とか。デザインだけ変えるっていう。怒られるなたぶん。

はてなアイデア

そういえば気になってたこと

>>++++++++++++++[-<++++++++>]<+[-<++>]<+.>+++++++[
-<-------------->]<.+++++.>>+++++[-<++++++>]<+[-<+
++>]<.>++++++++++++[-<-------->]<.>>+++[-<++++++>]
<+[-<+++>]<.>+++++++++++++[-<+++>]<.>++++++++++++[
-<-------->]<-.+++++++++++++++++.>++++++++++[-<+++ 

が色付けされない。

これグリなので http://lowreal.net/logs/2006/09/04/3 実装した。

MT のテンプレートをインポートする。

ごちゃごちゃやる用事があって MT を使っているのだけど、テンプレートを一括して作ってある場合インポートするのがひどく面倒くさいのでスクリプト化してみた。

make-import-mt-templates-bookmarklet.rb

開くと TEMPLATES の定義があるので、例にならって適当に書く。書いたら ruby make-import-mt-templates-bookmarklet.rb 出力ファイル名.js とかやると、本体ができる。ついでにブックマークレットの雛形を出力する。

なんか説明すると意味わからないな。できた JS は Fx1.5 以上で動く。

配布する人さえこれを使えば、そのテンプレートを利用したい人はブックマークレットを利用するだけ、という形をとる。

  • 利用者が Fx を使っている必要がある。
  • mt のバージョンが 3.2-ja. 3.3 だとたぶん動かないので注意。誰か試してgtlt3.32-ja でもいけるっぽいです。

サンプルとして、Web Standards with MT ver.3.2 Strict : ダウンロードページ のテンプレをパックしてここで再配布してみる (自分のやつはちょっと問題があるので)。パックしたやつはもとのライセンスにしたがい CC-by-nc-sa に。

テンプレートをインポートする : このブックマークレットを一時的にブックマークして、MT のテンプレ一覧ページで使うだけです。

書き換えて使った上のスクリプト pack_mt_3_2_strict.rb


バグっててテンプレが壊れても知りません。テストしてみようとして既存のテンプレ上書きしても知りません (自分がやった)

else if

そういえば else if ってこういう形では滅多に使わない。最初の if と並列なのか、ネストなのかはっきりしない感じがちょっときもいからかもしれない。並列したいときはできるだけ switch でいけるように変換する。
Ruby の場合 case に式書かなければ else if 等価になるから、elsif はまず書かない (今 elsif と書くために elseif だっけ? と悩むぐらい全く書かない)

2006年 09月 05日

オフライン

オフラインで開発するとき必要なの考えよう。
とりあえず Ruby リファレンス。Perl も必要か。でも Perl は CPAN 見れないと無理だな。ああ、そのためのコマンドがあった気がする。と、しかしオフラインだと「あった気がする」では検索ができないので困る。今のうちに調べないとなぁ。

AdSense

PIN 届かない!

exe

exe "normal! i#hogehoge"

1h

リナザウの時計が1時間ずれててびびる。
それにしても前に立ってるおばちゃんが生理的にだめだ。。。臭いとか、動きとかが不自然だ。はやく降りたい

Publish::XSLT , SmartFeed::Diary みたいなの、を、さがす。なければ作ってみる。

  - SmartFeed::Diary # year, month, day ごとにまとめてそれを id に
  - Publish::XSLT # use base qw( Publish::Feed );
      config:
        type: Atom # 渡すフォーマット 
        xsl: html.xsl
        extension: html
        dir: /hoge
  • /2006/
  • /2006/09/
  • /2006/09/21/
  • /2006/09/21/1

ファイルの生成ルール変えるから Publish もごにょごにょしないといけないのかな。filename_for の実装見るとシンプルに safe_filename で削除ってどーんってやってるから、ディレクトリとか作りたければ Publish で頑張るしかないか。
でも Publish::XSLT がそういうことするのはおかしい気がする。と、想像ばかりしつつ Plagger のソース読みたい。

というのを、吐き気を催しつつ電車の中で考えた。できるのかなぁ

2006年 09月 06日

Publish::XSLT

package Plagger::Plugin::Publish::XSLT;

use strict;
use base qw( Plagger::Plugin::Publish::Feed );

use XML::LibXML;
use XML::LibXSLT;
use File::Spec;

our $stylesheet;

sub register {
	my ($self, $context) = @_;

	$self->SUPER::register($context);

	$context->register_hook(
		$self,
		'publish.feed' => \&publish_feed,
		'plugin.init'  => \&plugin_init,
	);
}

sub plugin_init {
	my ($self, $context, $args) = @_;

	my $xslt   = XML::LibXSLT->new();
	$context->log(debug => "loading " . $self->conf->{xsl} . " as StyleSheet");
	$stylesheet = $xslt->parse_stylesheet_file($self->conf->{xsl});
}

sub publish_feed {
	my ($self, $context, $args) = @_;

	$context->log(info => "XSLT processing Start..");
	my $f = $args->{feed};
	my $filepath = File::Spec->catfile($self->conf->{dir}, $self->gen_filename($f));

	my $parser = XML::LibXML->new();

	$context->log(debug => "loading $filepath as source XML");
	my $source = $parser->parse_file($filepath);

	my $result = $stylesheet->output_string( 
		$stylesheet->transform($source)
	);
	
	my $ext = $self->conf->{extension};
	$filepath =~ s/\..+?$/.$ext/;
	$context->log(info => "save feed for " . $f->link . " to $filepath");

	utf8::decode($result) unless utf8::is_utf8($result);
	open my $output, ">:utf8", $filepath or $context->error("$filepath: $!");
	print $output $result;
	close $output;
}

1;
  - module: Publish::XSLT
    config:
      format: Atom
      dir: /home/cho45/public_html/feeds/
      xsl: /home/cho45/test.xsl
      extension: html

とりあえずコピペと見よう見まねで Publish::XSLT だけ作ってみる。普通に TT で十分だからいらないなぁと思った。


継承でハマった。register_hook でフックを登録しているのだから、register で自分の分を登録して、SUPER で親クラスのを登録させないとだめだ。当たり前だ。

むしろ継承する意味あるんだろうか。load_plugin でいけるような。元の Feed も吐くから継承関係はいいといえばいいのかなぁ。そもそも元のフィードは吐くべきでない気がするけど

Gerry on the Shore

長かった。向ヶ丘遊園で初動・下北沢あたりからひどくなった。

mixi をRSSリーダーとして使う

Plagger でどっかに吐いてそれを自分のフィードに設定する。

CSS IE

a:hover 時にマージンだかなんだかが変わるバグでハマり中。全然わからない。手探りもいいとこだ

一通り margin. padding, border 変えたけどだめだ。

テスト機が重すぎて自動リロードがつかえない。fuck IE

全然関係ない要素がいっしょにズレんだよなぁ。しかも position absolute なのにズレる。どういうフローだ

Use of uninitialized value in subroutine entry at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Socket.pm line 370.
Bad arg length for Socket::unpack_sockaddr_in, length is 0, should be 16 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Socket.pm line 370.
exit 107

Win IE のセキュリティ設定を高にして Fedora で動いてる Catalyst 叩くと50%ぐらいの再現率で落ちる。トライアンドエラーもままならないなぁ。ああああ

CGI 版で起動、と思いきや、CGI 動作の重さをあまく見てました。ぜんぜんレスポンス帰ってこない。

hatena.vim

& が正常がなぜか置換されないため増殖する。なんでだろう。ちゃんと置換してるっぽいのに。

:echo substitute('&amp;', '&amp;', '&', 'g')

が & のままだ。なんか特殊文字入ってるんだろうか

substitute('&amp;', '&amp;', '\&', 'g')

としないとだめらしい
:h sub-replace-special
& 単体だとマッチ文字列になるので、何も変わらないという理屈らしい

Publish::Diary SmartFeed::Diary

どうするのがいいかなぁ。SmartFeed::Diary は書いたけど、Publish をどうすればいいんだろう。ディレクトリ掘って保存するなら、Publish が頑張らないといけないだろうし、でもそこで XSLT もかましたい、とすると……
あー、プラグインで Publish のあとにさらに、Publish::Diary とか作って、保存済みの smartfeed_diary_\d{4}(_\d\d(_\d\d)?)? をリネームするやつを作ればいいのかな。やってみよう。

2006年 09月 07日

Plagger Diary

途中で Diary って名前がおかしい気がした。Archive とかかな

SmartFeed::Diary

http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/SmartFeed/Diary.pm

Publish::Diary

http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/Publish/Diary.pm

Publish::XSLT

http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/Publish/XSLT.pm

config.yaml

  - module: SmartFeed::Diary

  - module: Publish::XSLT
    rule:
      expression: $args->{feed}->type eq "smartfeed:diary"
    config:
      format: Atom
      dir: /home/cho45/tmp
      xsl: /home/cho45/diary.xsl
      extension: html

  - module: Publish::Diary
    config:
      sourcedir: /home/cho45/tmp
      dir: /home/cho45/public_html/diary

diary.xsl の例
http://svn.lab.lowreal.net/lowreal/mypla/diary.xsl

Atom 渡し

こんなんにして適当に Subscribe すると、いっぱいファイルができる!

出力例: http://lab.lowreal.net/tmp/

TODO:

  • SmartFeed::Diary で作った smartfeed に適切なタイトルをつける
  • ちゃんと .htaccess とかの設定をして使ってみる (ネゴシエーションで拡張子なしに)
  • ソート
  • もしてかして: Planet でできる? か調べてみる
  • /index にする。
  • エントリごとのページ 2006/09/07/1 とかを作る。sort したあとに id つける?

svn にてきとうに入れたのでそっちへリンク

Perl ムズス

syntax error でまくりんぐ。もっといい方法があるんだろうなぁ。

Plugin::*::Diary , Publish::XSLT

それっぽい Subscription か CustomFeed とかを使って、Publish::XSLT で静的 HTML (に限らず) 生成の日記システムを妄想。
コメントとかは別の XML に保存して XSLT 中で document 使えば一応どうにかなるけれどちょっとやっぱキモいなぁ。
アーカイブしたいのは全部読み込まないと、漏れがでてしまうよなぁ。うーん。例えばはてダで書いたあるタグがついたセクションを、アーカイブに突っ込むという場合、最新のフィード何件か、っていう感じで配信されているから、上書きになっちゃうよなぁ。
あー、2006.atom とかを常に読み込むようにして、dedupe すればいけるかなぁ。

MultiViews

08/ 08.html ってあるとディレクトリ優先しちゃうのか。
08.html は 08/index.htm として保存しないとだめか

Catalyst 落ちる件

http://subtech.g.hatena.ne.jp/cho45/comment?date=20060906#c
コメントもらった! ありまとう! なるほど。
-f 付けると落ちることは落ちるけれど、プロセスが分離されて被害が少ないみたいだ。いちいち手動で起動しなくていい。よかたよかた。

vim execute

silent exe "!GET 'http://nina:4321/reload' > /dev/null"

とかやってるのだけど、GET が遅いと入力が返ってこない。非同期で実行できるんだろうか。
と思ったけど

silent exe "!GET 'http://nina:4321/reload' > /dev/null &"

にした。

CSS

ああああ。body (bodfy と type して boofy と空目した) に % 指定がついてるせいだった。全部 px にかえてやる!!!!
これで4時間ぐらいハマった。やっぱ IE &ネットワークが重い環境だとこういう試行錯誤するしかないのはきつい。

c-z

C-z でどーんってやったあと、screen の window 移動して、「どこでやってたっけなぁ」ということが多々ある。window そのつど開けばいいんだろうけど、カレントディレクトリが云々。

モテ form.disable

Form.disable 相当のはないっぽいのかな。

inc(gerry);

寝てたら成城学園前に着く直前ぐらいから急にレベル7で腹痛が発動。しかたないので成城学園前で降りた。トイレが混んでて焦った……
いっかい出て、ホームに下りたところで再びレベル7.5で発動。またトイレへ、しかしまた混んでて(ry
なんか、起きたとき目の前にいた女の子が知り合いだった気がするけど気にしない。

2006年 09月 08日

trac

なんとなく CGI 動作で動かしていたけど、FCGI に変えた。あまりに早くでびびった。CGI が遅すぎなだけか

blosxom

Publish::Blosxom して blosxom にまかせるほうがいいのかなぁ。最初の一回だけ (インポートだけ) に Plagger 使う感じだけれど
日付内で番号ふって /2006/01/01/1 みたいな URL に対応させる blosxom プラグインを書けば解決するような気がしてきた。

  • 今の URI を維持する
  • データ移行
  • ウェブ上から書けるインターフェイス (特定のタグがついたはてダセクションを Publish::Blosxom とかでもいいかも)
  • Markdown とか Trac Wiki 記法とか選べる (meta プラグイン併用でそのまま記述したい)

ねr

キーボード

このキーボード、Eが既に消えかけ

$

そうえば JS で $ 書くとき、$X って書いてるときがある。

駅前に高校生のカップルらしきものがいて、男がやたら偉そうでむかついた。女の子は笑っていたから、あれで幸せなんだろうな。
それはともかく電車内のぢょしこうせい濃度は今日も高めでよろしいですね。

りなざう

りなざうのターミナルだと ssh してスクリーンができないなぁ。。

あー電車の中だとネットワークが遅いせいなのかもしれない。
でも vim は重いなぁ。描画がなんかおかしい

2006年 09月 09日

DECON

やろうと思ったこと

  • vim の text-object しらべ (今はひたすら V と jk を使ってる)
  • * と # すごす
  • さらに CSS リロード

ctag も便利そうだけど、使い始めるのがめんどそう


ノートを買ったらやろうと思ったこと

  • svk
  • CPAN-Mini

オフラインで開発って、CPAN どうするんだろうって思ってたけど、疑問が解決した

というのを向こうにあとで書く。書かない。書く。たぶん書く。XML 書く気になったら書く。

>

Development Environment Conference に行った

Development Environment Conference に行ってきた。

  • vim text-objects
  • *, #
  • CSS 超高速リロード
  • svk, CPAN-Mini でオフライン化
  • バイナリパッチングカッコヨス

Element.nodeName

http://d.hatena.ne.jp/nagaton/20060908/1157691716
コメントに思いついたのを勢いで書いてしまったけどちゃんと検証するお><

ただ上の二つのページは完全に同じではなく、DOCTYPE が違うので完璧な検証ではない。XHTML 1.1 は text/html で送るべきじゃないらしいので html のほうは ruby 要素を消しつつ XHTML 1.0 Strict に書き換えてある。

document.body.namespaceURI も云々なので、XML としてパースされるか、HTML としてパースされるかがどうとかこうとか

blosxom section plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/section
作業中

>

日付を拡張する感じで /2006/09/09/1 でその日の一番目のエントリ、/2006/09/09/2 で二番目みたいにする。のを書いてみた。うーん。

これだと /foo/bar/baz/1 とかがおかしくなる気がする。ちゃんとチェックしよう。

だめすぎた。

いい方法が思いつかないなぁ。簡単にやろうとすると sort ルーチンの影響をうけてしまう。
section number ふるためだけに、ハッシュ&配列を使わないといけない気分。

  • story flavor でセクションナンバーが使えなければならない(permalink にしたいため)
  • date や story は sort の影響をうけるため、こいつらでインクリメントはできない
2006年 09月 10日

blosxom section plugin

section

この日記みたいな URL で blosxom のエントリにアクセスできるようにするプラグインです。

例えば blosxom デフォルトだと /2006/09/09/ までしか時間単位で特定できないですが、このプラグインで /2006/09/09/1 とかという風に完全に時間ベースで一つのエントリを特定できるようになります。

特定の環境でしかテストしてないのでいろいろ不具合があるかも。extensionless とは共存できるみたいです。

2006年 09月 09日

blosxom

/2006/09/01/1.html でいいようにしたいなぁ。
あと /2006/09/01 の場合 /2006/09/01/ にリダイレクトしたい。これはどっかでぷらぎん見たことある気がする。

1.html とかってやるばあい $blosxom::path_info を空文字にしたらいいようだ。ヒエラルキーチェックを飛ばせる。

Publish::Blosxom

ファイル名の生成を md5 でやっているので数値が先頭にきてしまう。a でも z でも入れないとだめぽい。
あとエントリ時間を変えられてしまうので utime するように
http://trac.lab.lowreal.net/trac/lowreal/browser/mypla/Plagger/Plugin/Publish/Blosxom.pm

改造したの公開するのはマズいな。ライセンス考えてなかった。

Artistic License らしい。

config
  meta:
    foobar: join " ", @{ $args->{entry}->tags }

とかで meta 追加できたらいいかもしれない (やってない

section

一応動いたっぽい。1555 エントリを適当につっこんでみると 0.5 sec かかる。section が悪いのかなぁと思ってアンスコつけてみたけどあんまり変わらなかった。
entries_kache 入れると 0.3 sec ぐらいになる。へー
http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/section

あと kyo-san にいろいろ助けてもらったよ! カリスマリスティック!1
$$story_ref = "" でどーんとか。filter だとヤバくね? とか

TT

Template Toolkit 使う blosxom が欲しい!
plugin としてじゃなくて、もう完全に1ファイルにまとめてしまう感じに。
あと、既存の plugin と互換性を保ちつつ、Entry をオブジェクト化とかできないかなぁとか、section 作ってて思った。Entry オブジェクトに section attr を plugin で追加して云々、みたいなのできたら楽だったんだけどなぁ。
TT 使ったらどこで動くモノじゃなくなりそうな感じがする。 レンタルサーバに TT って入ってるものなのかな。とか、無駄なことを考えた。

2006年 09月 10日

blosxom redir plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/redir
/2006 とかを /2006/ にリダイレクトするのを書いてみた。ブックマーク最適化! アーカイブなんてブクマしないけど
どっかで全く同じ機能のを見た気がするんだけど、どうも思い出せない。extensionless と同じ作者かと思ってたけど違うしなぁ。

LDR rate

ブックマークレットから登録しようとして、登録済みのときってそのままじゃレート変更できないけど、普通に一回購読停止すればいいことに気付いた。

Ruby

ブロック引数の特殊デフォルト仮引数変数 (意味不明だ。なんていうんだろう) 欲しいなぁ。Groovy の it, Perl の $_ みたいなの (Ruby の $_ は gets とかでしかセットされない)。ワンライナー書くとき |i| とか書くのめんどい。
ちゃんと書くときは使わないだろうけど、[1, 100, 1000].map { it.to_s(16) } とかできたら楽ちん。パイプうつの苦手だからかなぁ。

pukiwiki がまた空白ページ

前回と同じ症状

書き換える前のバージョンに戻したら直った。他の wiki 探さないとダメだなぁ。

Feed

読む (未読 10000) -> 読み終わる (0) -> リロードして読む(10050) -> 読み終わる (0) -> リロードして読む (10100)
というのを考えた。まだなってない。だいじょうぶ

Vi mode by AutoHotkey

http://lowreal.net/2006/vi.ahk
あきた。 たぶん使わない。でも今は使ってみてる。

  • アクティブウィンドウの左上に常にモード表示
  • 超一部のキーしか考えてない
  • visual モードはキモすぎ。
  • C-[ では normal に戻れない。だって! ESC 入力する手段がなくなる!

perldoc

なんかどうも Perl のコード書いてるときより、perldoc 書いてるときのほうが、Perl やってる感じがする。わけない。けど、ちょっと思った。CPAN のせいか、な。意味不明

negotiation blosxom plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/negotiation
書いてみた。extentionless や、xhtml2html を含んだ形のコンテントネゴシエーションプラグイン、ということにしたい。
406 Not Acceptable の場合を作ってないので発展途上すぎ。
ロジック自体は Taglibro のやつをそのまま Perl に移植した。Taglibro は Apache の実装をパクったはずだから Apache っぽいはず。知らないけど!!
xhtml2html を含む、というのは、text/html と application/xhtml+xml の qs を同じにしておくと、Fx や opera の場合 text/html の q が低いため、自動的に application/xhtml+xml が選択される、というだけ。
もうちょい頑張ろう。

2006年 09月 11日

tt

blosxom のテンプレートを TT に置き換えるやつをいろいろ試してる。一つのファイルにしてしまって [% FOREACH entry IN entries %] みたいにしたい。
ので、TT の process は一括して last に行うことになる。
でもって問題なのは、story テンプレートで使われることを想定しているプラグイン変数なんですよね。これって次々と変わっていくから、最後に一括して処理したいというこの場合、随時全て保存しておかなければならない。
ここで、プラグイン変数を全て保存しておこうとすると、プラグイン変数の名前を全て知っていないといけない。けど、どうやって知ればいいのかわからない。簡単にやる方法あるんだろうか。


ということで、回り道をし、発想を逆転させて、テンプレートパースを先にやる。
use Template::Parser して parse($text) すると Template::Document オブジェクトが帰ってくる。こいつの BLOCK にはコード化されたテンプレが入っているので、$stash->get ってなっている部分を正規表現 (!) で抜いてくる。
んでごにょると、テンプレートで使われているであろう変数名が余計なものも全部とれるので、この変数名を story テンプレートを通るたびに全てのプラグインからとってくる。かなり無駄だけど!!


http://mizzy.org/program/blosxomTT.html が似たような方法だったけれど、どうも Data::Dumper してみてみると、ちょっと変に連結されてしまったりするので、まるパクできなかった。

つかれた

$ cd
$ svn propset moe "zyosikosei" .

blosxom

  • meta プラグイン併用で text formatting rule を変更できるプラグイン
  • 投稿フロントエンド。wikieditish で結局いいじゃんとか思うけど

tt

動くようになった。

参照方法がちょっとキモいなぁ。
というか XREA に TT 入れるのめんどくさそうだからどうせ使わないだろうなぁ、と思った。無駄じゃん! インターフェイス作ったほうがいいじゃん!

それに plugin が対応してくれないと恩恵をうけられない。writeback を FOREACH でまわす、とかできないし。普通のフレーバーで十分だなぁ、と作ってから思う罠

はつおん

  • ばっしゅ
  • ぜっとしぇる, ぜっとえすえいち
  • しーしぇる
  • てぃーしーしぇる
  • えすえいち
  • ヴいあい
  • ヴぃむ
  • りん えす
  • ちぇんじもっど
  • ちょうん
  • えすゆーどぅー
  • えむけーでぃあー
  • あーるえむでぃあー
  • ヴぁいあぐら
  • でぃーあいえふえふ
  • きゃっと
  • ている えふ
  • てぃーえーあーる ぜっとえっくすぶいえふ (ただし入力時は xzvf)
  • えすえすえいち
  • えふすく
  • るびー
  • ぱーる, ぺるる
  • しーぱん
  • ぺちぺ
  • おっぱい
2006年 09月 12日

ひさ

しぶりに Ruby 書いたら File.read, File.readlines が便利すぎて泣きそう。
そして !!"" == true が面倒くさくて blank? がコアに入ってればいいのにと思った。

Ruby クイズ

以下のアスタリスクの意味はなんでしょう!

def func *
    puts "hogehoge"
end

というのをおもいついた。この場合括弧をつけるかつけないかで迷う。文字だったらつけるけど、アスタリスク一個の場合はつけないようにしようかなぁとか、いやでも特別扱いはよくないのか、というよりこういうケース殆どないから気にしないでいい気もするというか(ry

というか括弧つけないとどうもパースエラーになったりならなかったりなぞいからつけないとだめっぽい。

AHK

まらさんが言ってたけど、マウス位置のカラーピッカーが便利すぎる。
ふぉとしょか何かで適当に書いたやつを CSS 化するときのスピードが超あがる。やばい。

^!LButton::
	MouseGetPos, MouseX, MouseY
	PixelGetColor, color, %MouseX%, %MouseY%, RGB
	StringReplace, color, color, 0x, #
	clipboard = %color%
	ToolTip, %color%
	Sleep, 1500
	ToolTip
return

Ctrl Alt LClick に割り当て。一瞬ツールチップ出すようにして「コピーされたよ」感を出すようにしてみた。やばい。

blosxom

blosxom の編集ツールって作っててなんかむなしくなる。ただのオンラインファイル編集ツールになるもんなぁ。

ひたすら blosxom の構成決め打ちにしてみよう。

  • plugin のオン・オフと編集
  • 複数ユーザ管理

あたりがあるとよさげ

ERB

TT みたいな感じにしたいとき。ハッシュを渡して、ハッシュのキーがそのまま使えるような

def erb(template, stash={})
	b = binding
	stash.each do |k, v|
		eval("#{k} = stash[:#{k}]", b)
	end
	ERB.new(template).result(binding)
end

みたいにした。予約語がエラってたまにハマるgtlt

コーディングスピード

http://unknownplace.org/memo/2006/08/06#e002
これを見たときからいろいろ考えはじめて、やっと書く行為にうつすまでもわもわしてきた。もわもわ。こういう最初見たときは「ほー」ぐらいのが、ふと気が付くと頭のなかにちらついてもわもわしたりする。そんなもわもわ。
タイピングスピードがだめだめな時点で書きながらコード考えるっていうのは難しいけど、とりあえず、思いついたら書いてみる、ぐらいの心持にしようと思って、書きまくってる。書きやすい環境作りもしたりとか、例えばとにかく svn に突っ込んでいける環境とか、もろもろ

    • >

配列

数日ぶりに日本語配列にしたら混乱する。。これで家帰ったらまた混乱するんだろうなぁ。
こっちのPCを英語配列にしようと思いきや一部のキーがおかしいのでうまくかない。なぜかカナが入力されたりするし、うーん。

ack

インストールしてみた。便利!いままで grep の引数が覚えられなくて (先にディレクトリなのか、後にディレクトリなのか) grep を使ってなかったけど、ack なら大丈夫dane
install App::Ack

zsh share_history

なんか共有できないとおもいきや、append_history セットしてるとだめっぽい? コメントアウトしたら共有できた
FC5 の zsh だと C-r できない。。

:!

なぜか C-z して svn add とかやってたけど、:!svn add って普通にできるじゃんか!! と、あたまのわるいことをやってるようなひ
あと気がつくと zsh で C-r が効かなくなってなんやねんと思っていたのだけど、どうやら vi モードになっていたらしい。。.zshrc で bindkey -e して bindkey -D vicmd した。というのを、かみさま (そのなをとぴあさん) に教えてもらってやった。ありがとう><

YAGNI

これからは YAGNI を多用したいと思う。あしたできることはきょうやるな><

RO

RO の BOT 作る LL 対決

blosxom 編集 CGI

一応だいたいできたなぁ。

できること

  • ユーザ管理
  • プラグインオンオフ
  • エントリ投稿 編集

ほかにやりたいこと

  • プラグインの実行順コントロールも実装したいなぁ。こういうのは UI がアレなんだけど。。
  • フレーバー管理
2006年 09月 13日

Ruby \r\n

File.open("foge", "wb") do |f|
   f.puts "\n"
end
File.read("foge") #=> "\r\n"

みたいな情況になる。なんでだ!! OS も Linux なのになぁ

原因判明。gsub! と File#puts の組み合わせがよくないみたいだ。

body = "\r\n"
body.gsub!(/\r\n/, "\n")
File.open("foge", "wb") do |f|
   f.puts body
end
File.read("foge") #=> "\r\n"

なんでだろ。body = body.gsub にすればだいじょうぶ

いまいち再現しないので迷宮入り

真夜中の gerry

やる気はありません

backtick

色変えられないかな

ls

どうでもいいけど!
alias lm="ls -altr" してて ls って滅多に使わない。

flavour

flavour の編集ってテキストエリア並べるのはダサいよなぁ。
theme 入ってればとくに考えなくてもいいんだけどなぁ。theme を入れない前提でやるとするとうーん

AHK on Ruby

Ruby でかけたらいいのに

vim syntax check

.vimrc

autocmd BufEnter * let b:status = ""
set laststatus=2
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']['.&ft.']'}\ %{b:status}%=%l,%c%V%8P

ftplugin/perl.vim

au BufWritePost * let b:status=substitute(system("perl -wc " . bufname("%")), '\n', " ", "g")[:90]

数ストロークごとに自動実行のほうがいいかなぁ。自動保存にすれば勝手にそうなるのかな。
もっと簡単な方法がある予感

perl-support いれてみた。: じゃなくて \ を先行するコマンドで迷った。without GUI ってパッと見 GUI なのか CUI なのかわからんよ!!
上の変更は削除して

au BufWritePost * call Perl_SyntaxCheck() | call Perl_SyntaxCheckMsg() | redraw!

を ftplugin/perl.vim に追記した。

getElementPosition

なにやら Opera でズレる

w3m

ちょっと使ってみる! 思ったよりおもしろい!

Notify::Reload

package Plagger::Plugin::Notify::Reload;
use strict;
use base qw( Plagger::Plugin::Notify::Command );

irssi

さらなる軽い環境を求めて irssi をちょっとやってみたけれど、わからなすぎた。チャンネルリストとか全チャンネルメッセージ一覧バッファって、重要ダネ!!

2006年 09月 14日

trac 位置変更

trac.lab.lowreal.net/trac って冗長なので lab.lowreal.net/trac にした。
実際のファイルも移動

  • /srv/www/trac.lab.lowreal.net/trac -> /srv/www/lab.lowreal.net/trac
  • /srv/www/trac.lab.lowreal.net/public/* -> /srv/www/lab.lowreal.net/public/*

Apache の設定も書き換えた。リポジトリも移動したいけどめんどい。。

YAML

Ruby の YAML って三個以上同じ文字列があると参照にしちゃうのか。。ハマった
これってオフにできないのかなぁ。可読性下がるし文字量多くなるしいいことなし。

違う。うそ
String.new str
してから突っ込むと正常になる。なんか変なパラメータがくっついてるっぽい?
str.to_s は self のコピーじゃなくて self を返すんだなぁ。。

str.dup と String.new も挙動違うんだなぁ。dup はインスタンス変数?もコピーしてる。当たり前か。どっかに書いてあった気もする

Perl split

split と join は区切りが先なんだ。。

ssh-agent

使いたい。けど、理解できないうちはこわくて使えない。どうすれば安全に使えるかちゃんと調べないとなぁ。
それと今パスフレーズ認証だから鍵認証にしないといけないし、鍵認証にするなら USB メモリ欲しいし。。

ちがう。SSH がわかってないなぁ。パスフレーズじゃなくてパスワード認証だった。
あとクライアントごとに鍵ペアつくっていい。なんか勘違いしてた。

ssh key

ひとつのコンピュータにつきひとつのペアをつくってあげるんだよなぁ。それの公開鍵をいろんなサーバに登録してあげる。
何度か作りなおしたりしててごっちゃになってるのが悪いんだよなぁ。DSA の鍵を作りなおしてちゃんと使うようにしよう。

ssh

## client host
$ ssh-keygen -t dsa
$ scp ~/.id_dsa.pub server:~/

$ ssh server
## ssh server host
$ cat ~/.id_dsa >> ~/.ssh/authorized_keys2

$ exit
## client host
$ exec ssh-agent zsh
$ ssh-add

ssh-agent は exec した zsh が終了するまで生きてる。
screen 起動するときに ssh-agent screen にすれば、環境が限定できていいかもしれない。やってないけど、そのうち試してみよう。
これで zsh の scp 補完とかがまともに使えるようになるなぁ。

セキュリティあげる目的で鍵式にするならパス式のほうはオフにしないとだめだよなぁ。USB メモリでひとつ秘密鍵持ち歩いて、それを ssh-agent にロードさせるのがいいんだろうか。
そんな気にすることじゃないんだけどさ!!

screen って起動しっぱなしだから、ログインセッションやろうかなってときに毎回 exec するのがいいのかなぁ (終わったらちゃんと終了させる)。ちょっとめんどいけど
そいで screen のウィンドウに環境変数があるときは文字を追加するようにして、ちゃんと agent の起動を監視できたほうが、安全っぽい。

pass

苦手なキーストロークをパスワードに含めると苦手じゃなくなるらしい
大文字を多めにしたパスワードを考えよう

co.blosxom

http://svn.lab.lowreal.net/lowreal/c/blosxom/coblosxom/
飽きた……
meta プラグインにちゃんと対応させて author 情報埋め込もうかと考えてたけどめんどくさい。
今度 blosxom っぽいの作るときは Perl で書こうと思う。

ssh-agent

putty

  • ssh-keygen で dsa キーを作って puttygen.exe でインポートして ppk に変換
  • pageant.exe に private キーを D&D して起動
  • putty の設定で [接続] [データ] で自動ログインのユーザ名を指定 [SSH] [認証]

++gerry

あんまりお腹痛くないのに

認証API

あるユーザがあるグループに所属しているかどうか取得できると、グループごとに一括して認証管理できて便器かもしれない、とちょっと思った。

ldr

新ジャンル 便意 が既読にならない。読みたびに便意

2006年 09月 15日

IRCLog

Basic 認証からはてな or TypeKey で認証するように変えた。と、いう、こと、だけなのに、やたら時間がかかって、へこむ

mac

  1. http://docs.blacktree.com/visor/visor
  2. http://www.culater.net/software/TerminalColors/TerminalColors.php
  3. フォントが変えられないのでアンチエイリアスと色だけ変えた。
  4. ホットキーは cmd+`
  1. Ctrl と Caps lock を入れ替え
  2. Ctrl-SPC で入力きりかえに
  1. cd から Xcode Tools インストール
  2. DarwinPorts*.10.4.dmg インストール

Terminal.app で screen がおかしい。こまった

sudo port install subversion
sudo port install zsh
sudo port install screen

delete しようとして eject しまくる。

256color

putty 以外にまともに使えるターミナルってないんだろうか。

Terminal.app

日本語おかしい。UTF-8 じゃないんだろうか。っていうか 256color にしたいいい

Terminal.app screen

export LANG=ja_JP.UTF-8
すれば日本語がちゃんと (?) 通るっぽい
でもまだ vim で作業中にエラーでると描画がおかしくなるのが直らない (redraw! しても効果なし)。オプションいろいろいぢったり。。。
あと gvim でアンチエイリアス効いてないのをどうにかしたい。

2006年 09月 16日

visor

表示されて一発目のコマンドの後はからなず表示がおかしい。ので、screen の画面きりかえを一回やるといいらしい。
ところで、Terminal.app って日本語入力できないのか!

日本語

Terminal.app じゃなくて visor だと日本語入力できないみたいだ。

satou-nokonpyuta

コンピュータ名を mary にした。mac なのでイニシャルを m 縛りで覚えやすいのを

あと

  • USB メモリ
  • 無線 LAN
  • 保護ケース

screen + vim

screen 越しに vim やると、行を挿入したときに表示が乱れる。行番号がなくなったりとかしてズレる。いっかいウィンドウ切り替えればなおるけど、毎回なる。これじゃ screen 使えないなぁ。

vim6 だと大丈夫だなぁ。
なんかコンパイルオプションいるんだろうか

とりあえず set number をコメントアウトした。

ホストごとの設定

固有設定を書けるようにした……なんで今までやってなかったんだろう。

h="${HOST%%.*}"
if [ -f "$HOME/config/$h.zshrc" ]
then
	source "$HOME/config/$h.zshrc"
fi

Notify::Tiarra

  1. tiarra の .conf の control-socket-name のコメントアウトをはずして名前変更
  2. System::SendMessage を有効に
  3. Pla の config 書く

^yy

クライアント側の screen の escape を ^yy にした。鯖側は ^tt
C-y ってあんまり使わない気がする

画像編集

どうしよう。gimpshop かなぁ。X 走らせるの避けたいけどなぁ。
あとカーソル座標の色を取得するの欲しい。

ところで pbcopy がいかす。こういうの欲しかった。

zebedee

port にないのでソースから。ということで検索すると http://homepage1.nifty.com/glass/tom_neko/web/web_zebedee.html まんまなのがでてくるので手順にそう。既に bzip2 やら zlib やらが入っていても、展開して make はしないといけない。zebedee の make で決めうちされているっぽい。

% make OS=macosx
% sudo make install OS=macosx

あと stone も入れた。

tar xzvf stone-2.3.tar.gz
cd stone-2.3
make macosx
sudo cp stone /opt/local/bin/
2006年 09月 17日

Firefox 日本語版の Google サーチプラグイン

検索窓から検索するとかならず日本語限定にされるので書き換えた。
というのはどうでもいいけど、Mac でのアプリケーションのインストール先がわからなかった。といってもてきとうに掘っていくとすぐわかるけど、サーチプラグインは
/Applications/Firefox.app/Contents/MacOS/searchplugins にあった。


が、keyword のほうがよくね? みたいなことを言われたのでそっちにしてみる。ロケーションバーが広くなってよさげ。

http://www.google.com/search?q=%s をキーワード g でブックマークした。

ばてり

バッテリーもたないなぁ。長くて3時間か。

parallels XP

ディスクを追加したら、XP のコントロールパネルから、管理ツールを起動して、ディスクの管理から初期化とドライブレターの割当をやらないとだめか。


nLite で削りまくったらまじでなにもなくなる。iso イメージで400MBない。

  • lhaplus
  • opera
  • bluewind

parallels 触ってみて思ったけどやばい、

sshkeychain

なんかやたら CPU 使ってだめだ。しかしアンインストールの方法がわからない。

2006年 09月 18日

さば

鯖に音楽ファイルおいて、それをネットワーク越しに聴くいい方法ないかなぁ。VPN で smb はめんどうくさい。。

Hamachi

やっぱ Hamachi さわってみよう。
まずサーバー (ubuntu linux) にインストール

sudo apt-get install vtun
sudo reboot
sudo tuncfg

cd ~/src
wget http://files.hamachi.cc/linux/hamachi-0.9.9.9-20-lnx.tar.gz
tar xzvf hamachi.
cd hamachi
sudo make
hamachi-init

起動してネットワーク作る

hamachi start
hamachi login
hamachi create HOGE pass
hamachi go-online HOGE


OS X

wget http://files.hamachi.cc/osx/hamachi-0.9.9.9-20-osx.tar.gz
tar xzvf hamachi
cd hamachi
sudo ./install
tuncfg # error

tap0 がないといわれるので示されたところにいってみる

cd ~/src
wget http://www-user.rhrk.uni-kl.de/~nissler/tuntap/tuntap_tiger_20060513.tar.gz

できた tuntap_installer.mpkg をインストール。

tuncfg
hamachi-init


HamachiX 入れる http://homepage.mac.com/lxr/homepage/spaceants/hamachix/

表示されているピアを右クリックするとほげほげでてくるのでほげほげする。と smb で繋がる。
鯖上のホームディレクトリは既に共有済みで音楽ファイルも Windows のを rsync っているのでとりあえず聴けるには聴ける。

iTunes ってライブラリに追加時コピーしない設定にするとどうなるんだろう。キャッシュと思っておけばいいか

Last.fm

日本のほうからダウンロードしたら起動せず。
英語版をダウンロードして起動して、iTunes で再生してみるとなにやらうまく情報を取得できてない。UTF-16 だからだろうか。

しかたないので iTunes プラグインをインストール。なんかこっちのほうがシンプルでよさげだw

ひたすら

gerry

2006年 09月 19日

blosxom

blosxom にしてみる。

ヘッドフォン娘

「ヘッドフォン娘」で検索するとトップに Meta*Headphone-Girls がでる!

うpロダとかには結構画像があるのだけれど、消えてしまう性質上リンクを貼れない。こっちでキャッシュしたらいいんだろうか。キャッシュって言っても結局は転載になってしまうからダメか。

2006年 09月 18日

xrea の容量増加

全部 POP やめて IMAP にすることにした。メインのメールは家で POP して削除してたけどやめた。ちゃんとバックアップもとってくれるし、モバイルでも過去のメール読める。

2006年 09月 19日

Finder

Finder 固まった場合が謎だ。smb でファイルのD&Dとかやってたら固まった。Cmd-Opt-ESC で再起動しても Finder 復活しない。

ログアウトしようとおもいきや。iTunes が固まってログアウトできない。
Cmd-Shift-Q とかパワーキーででるダイアログで再起動もできない。
Cmd-Ctrl-Power で再起動ができた。

再び Finder 死亡
smb 不安定だなぁ。

blosxom

xrea に設置しようとおもったらハマるハマる。section がとりあえずバグってた。直した。
なんか標準エラーが標準出力に吐かれるんですが!1

hamachi

再起動するごとに sudo tuncfg いるんだ。めんどい。

zsh 補完

$service に補完対象のコマンド名
$CURRENT に補完対象の引数位置
$words にコマンド名ふくめたやつたち
compadd の引数は空白区切りでいくらでも


なんか古い方法らしい。わからなすぎ

2006年 09月 20日

日常に生きることの重要性

日常に生きることの重要性について、最近よく考えるし、誰かの言葉や、誰かの言動によって考えさせられる。

普通の日常がどれだけ大事かってことには、なかなか気づけない。一旦気づけても、すぐに忘れてしまう。すごく「慣れ」というのに弱い。

その日常や、普通が、すごく重要なのに、遠くを見すぎて、「普通」じゃないほうがいいという思考で、忘れてしまう。個性/アイデンティティを考えるとき「普通さ」は悪く感じる。でもたぶんそうじゃないんだよなぁ。

少し前に電車内で見かけた女の子の普通さになんだかすごく心を打たれた。すごく普通だった。ちゃんと、日常的だった。それが逆に違和感になって、自分に入ってきた。

たぶん自分が考えている「普通さ」は、想像上のもので、多数決的な普通とは違うのかもしれない。できるだけ「普通」っていう言葉を使わない人もいるぐらい、曖昧だし。

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


関係ないけど、慣れっていうのは、逆もまたあって、悲しいことがあったとき、嫌なことがあったときのことも、いつのまにか忘れてしまう。人によっては、悲しいことを忘れられるのはいいことだと思うのだろうけど、自分はこれを良いことだとは全く思わない。思えない。そういう感覚をしっかり持ったまま生きていたい。

悲しい感覚や、嫌な感覚を忘れてしまうと、ある時必要な、誰かの感情に気付けないことに繋がる。そういうのは出来るだけ無くしたい。

2006年 09月 19日

どうでもいい

Parallels 上の Windows XP のホスト名は Melissa

section

http://lowreal.net/blog/
やっぱ他のプラグインとの兼ね合いがアレだ。パーマリンクをセクションのほうにする場合、rss10 プラグインは改造しないとだめ。
bettertitle も変だから改造しないといけない。

あーディレクトリ表示もおかしいなぁ。negotiation のせいっぽいなぁ。 直した

bettertitle

セクションがパーマリンクだとタイトルにそのエントリのタイトル表示したいって思うけど、普通にやったら無理だ (どの story が読み込まれるかは section が処理されるまでわからない)。rss10 的な (最後に置換) ソリューションか
むしろこれは section に入れる機能な気がした。

2006年 09月 20日

コメント

コメントのことを完全に忘れていた。Flickr とか利用したいなぁ。既存のセッションは Ruby の cgi/session だから直接使えない。
どうすっぺ

コメント機能とか軟弱なものはいらないか。はてぶからひっぱってくればいい感じな気がしてきた。
これなんて hail2u だろう。と、書いてて思った。

SSHKeyChain

スリープから復帰するとなぜか消えてしまう。

お腹の調子

下降中
電車内では前に立ってた女の子が素敵で、調子よかったんだけどなぁ。

Mac CPAN XML::Parser

port install expat すると既に入っているのに認識してくれないので自力で Makefile.PL をたたく。

cd ~/.cpan/build/XML-Parser*/
perl Makefile.PL
perl Makefile.PL EXPATLIBPATH=/opt/local/lib EXPATINCPATH=/opt/local/include
make
sudo make install

しかしまだ SOAP が入らない。

Safari

JS で insert した文字列が完全に文字化けする!
content-type に charset つけてもだめか。どうすればいいんだろ

catalyst_server.pl Terminal.app

C-c が効かないのはなんでだろ。

irssi

f:id:cho45:20060920161553p
typester さんのプラグインのおかげで、tiarra の設定を変えずに、ほかのクライアントと共存できるようになった。別に共存する必要ないんだけど、気になって使えなかったのでhogehoge。
半透明ターミナル全画面で、別のターミナルを立ち上げて screen -x するといい感じ。 発言したいときもウィンドウをターミナルを変えないでいい。 (といっても cmd-数字 で簡単に切り替えられるけど)

あとで調べる

  • irssi 全チャンネル共通ウィンドウ
  • window リストにチャンネル名表示

関係ないけど、C-SPC を入力切り替えにしたはいいものの、なぜか押したときにスペースが挿入されてしまうのが謎
めんどいので cmd+SPC にしてみる。打ちにくい。。 

と思いきやFx だけか。。なんでだろ

全チャンネルリスト

http://labs.f0rked.com/irssi/hilightwin.pl
を入れて

/hilight -level ALL -regexp .

と、やればできそうだなぁと思った。けど試したら死んだ。。

/hilight -regexp .

だけならいいっぽい。

でもなんか perl のエラーがでてる。どのスクリプトがエラーだしてるかわからない。charset 変えるのと hilight との相性が悪いっぽい


hilight は autorun じゃなくてあとで手動で読み込まないとだめっぽい?

Can't locate package Irssi::Nick for @Irssi::Irc::Nick::ISA at (eval 18) line 73.

っていうのがでまくってしまう。

all

#!/usr/bin/perl 

use strict;
use warnings;

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

use Data::Dumper;

$VERSION = "0.01";
%IRSSI = (
	authors     => "cho45",
	contact     => "cho45\@lowreal.net",
	name        => "all",
	description => "show all message in a window",
	license     => "Public Domain",
	url         => "http://irssi.org/",
	changed     => "2006-09-20T21:46:00+09:00"
);

sub print_text {
	my ($dest, $text, $stripped) = @_;
	my $window = Irssi::window_find_name('all');

	return if $dest->{level} & MSGLEVEL_CLIENTCRAP;
	return if !$window;

	if ($dest->{level} & MSGLEVEL_PUBLIC) {
		my $n = $dest->{window}->{refnum};
		my $c = $dest->{target};
		$text =  "[$n]$c: $text";
	}
	$window->print($text, MSGLEVEL_CLIENTCRAP);
}
Irssi::signal_add('print text', 'print_text');

charset 入れなければこれでいけるっぽい。charset 入れてる場合一個前のエラーがでてしまう。

なんか

使ってたら他のクライアントとかどうでもよくなってきた。
ので、tiarra で文字コード変換するようにして、all 有効にした。だんだん謎な方向に

Terminal.app + screen

vim で行番号で乱れるやつは screen を起動するときに -O をつけてあげればいいっぽい。

2006年 09月 21日

67℃ 12%

CoreDuoTemp の表示なのだけど、気温と湿度に一瞬見える。

irssi config

パスワード書いてあるのに svn にコミットしようとしてしまった。あぶない

学校

家の https のポートをあけ忘れたっぽくて、ssh できない。すなわちなんもできない。

帰ってきてみたらちゃんと開いてた。おかしいなぁ。
しかし今気付いたけど、学内のウェブサーバに ssh すれば、そこからさらに ssh できるっぽい。

そして connect.c か。
学校の外にでれて、ssh で接続できるホストに connect.c をコンパイルしておいとく。

ssh www.hogehoge.ac.jp
wget http://www.taiyo.co.jp/~gotoh/ssh/connect.c
gcc connect.c -o connect
mv connect ~/bin
exit

自分のPCの .ssh/config に ProxyCommand 書く。

Host lab
HostName lab.lowreal.net
ProxyCommand ssh user@www.hogehoge.ac.jp /home/user/bin/connect %h %p

blosxom に

ちょっとまえからシコシコ準備してたのをとりあえず入れ替えた。

トップページは /blog/ のコピーになり、/logs/ は /blog/ へリダイレクトしてる。フィードも、/logs/latest.{rdf,atom} に関しては /blog/index.{rdf,atom} にリダイレクトしている。

それ以外はスルーしているし、Taglibro も削除していないので、URL の恒久性は一応保たれてる。気持ち悪いけど仕方ない。だんだんごちゃごちゃしてく。

adsense のことでごたごた考えるのが面倒くさいので、xhtml フレーバーも現時点では text/html で配信してる。要改造

入っているプラグイン一覧。括弧は今はたぶん使ってない。

  • (config)
  • negotiation
  • redir
  • section
  • entries_kache
  • alternate
  • atomfeed
  • better_title
  • (breadcrumbs)
  • categories
  • flatarchives
  • list_title_at_year
  • Markdown
  • paging
  • rss10
  • push_if_first

section 用に他のプラグインをいぢってるのでかなりアレゲ。


Template::Toolkit を使うようにしようと思ってたのだけど、とりあえずやめた。XREA に入っていない (頼むのがめんどい) のと、既存 flavour を書き直すのがめんどかった。

Taglibro に XML 簡単に編集できるオンラインな画面つければよかったような気もするけど、どうしても作る気が起きなかったっていうダメさ。なんにしてもタグ打つのが面倒くさくて仕方ない。

2006年 09月 22日

MacBook

先週 MacBook を購入しぴこぴこいぢっております。一ヶ月ぐらいは四苦八苦するかと思ったのだけど、使ってみるとそんなに思いっきり迷うのは最初の一日ぐらい。

結局、今まで Windows で使っていたソフトウェアもオープンソースのものが多く、ついでにターミナルをメインに使うようになってきたので、あんまり違いがあるわけじゃない感じ。

ただ Cmd キーが自分的に便利で好き。Terminal.app とかでペーストするとき、gnome terminal だとマウス右クリックして P 、putty だと右クリックとかやっていたのが Cmd+V でできるので気持ちいい。

GNU 系のツールは darwinports で入れて、あとは Firefox, Thunderbird, Vim をさっさと入れました。


しかしながら Terminal.app がなかなかくせ者で、デフォルトだと使えない。

  • 「エミュレーション」の「非 ASCII 文字をエスケープする」のチェックをはずす
  • 「ディスプレイ」のオプションを全部チェック。フォントを Osaka-等幅 14pt に。「文字セットエンコーディング」を UTF-8 に。
  • 「キーボード」のオプション二つをチェック
  • TerminalColors を入れて色を設定。

でもって、なにやらこれで screen を起動して vim 編集すると表示乱れて困ったりした。screen の man をぼーっと眺めていたら (課題やれよ) 、-O をつけたくなったのでつけてみると一応大丈夫っぽくなった。


あと、typester さんの影響で irssi を使い始めた。ターミナルを半透明にして、後ろに screen -x でアタッチしたターミナルおいとくと眺めながらできてよろしい雰囲気。

デフォルトだと共通全ログがないっぽいので、script を書いて突っ込んだ。全ログの発言に window 番号つけてあげて Alt-N で移動だぜどーん。Alt-P でバックログだぜどーん。って感じに楽しんでおります。


  • SSHKeychain (intel 版を検索して入れた)
  • VirtueDesktop
  • iScrobbler (Last.fm クライアントはうまく動かなかった)
  • CoreDuoTemp
  • Gimpshop (とりあえず)
  • Parallels

SSHKeyChain は SSH を使ってなくても、キーチェーンのロック状況を確認できていい感じ。でもスリープから復帰すると落ちたりする。

Parallels には今は壊れた PC の XP Home を入れて遊んでみたり。レジストはまだしてない。と、いうか、メモリ1Gだときつい。

Office をどうするかと、画像処理をどうするかがめがっさ問題です。

2006年 09月 21日

pac

pac を指定して全部のブラウザを設定しておけば、pac をスイッチするだけでプロキシ設定変えられるよなぁ。
pac 内からローカルのファイルにアクセスしたりとかするのは無理っぽいから、webrick で配信して、スイッチするページを動的に作る、とか、か。でも重そう。

あ、起動時に一回だけ読まれるのか。だめじゃん。
Reload ボタンとかあるけど、そこ開くのがめんどいんだよ><

2006年 09月 22日

Cmd-Q

irssi で Alt-11 押そうとして終了させてしまう。

出来る限りブックマークを使わない

ロケーションバーに直入力!
クイックサーチだけ登録する。ぐらいだとかこいい気がした。
css, ecma, gecko, ruby, cpan あたりかな。ローカルに保存しときたいな。

mozex

Mozex 入れた。
/usr/bin/open %t
で、.txt に関連づけられた?プログラムを開くようになる。
これで問題はないけど、gvim を明示的に指定したいときってどうすればいいんだろ。Vim.app とかを

C-c

うーん。C-c が送れない。Cmd-. も同じだ。screen が起動してなければ大丈夫みたいだけど、なんでだろう。
しかたなく別の window 開いて ps aux G hoge とかやる日々

学校 gerry

お腹痛い。

man

man が英語なのが嫌だなぁ。どうにかしたい。

screen で ^C が効かない

なんかとぴあさんと話してたら治った。再現性がわからない。stty -a をおぼえた。いつもお世話になっております。

スリープから復帰するとおかしくなるみたい。SSHKeyChain が原因かもしれない。
とりあえず stty intr ^C (^V^C で入力) すれば有効になるみたいなのでこれでいこう。

ssh した先から、ssh もとへ

何らかの通知を送りたい。例えば ssh 先の irssi からこっちの Growl へ通知を出すとか……

2006年 09月 23日

gvim のメニュー文字化け

起動時にエラーがでたり文字化けしたり。
export LANG=ja_JP.UTF-8
して open -a Vim.app すれば化けないのだけど、Dock から起動するときにアレなので
~/.MacOS/environment.plist 編集した。リログインすると設定が反映されるみたい。
SSHKeyChain の環境変数のところでも変更できる。

replaygain

iTunes が独自の変なタグつけるのがいやなので、他のを探してるんだけど全然見つからないわな。fb2k 使いたい!!
検索すると Darwine で動かしてる人がいる。それはやだなw

http://cogosx.sourceforge.net/
replaygain は読まないっぽいけどシンプルなのでこれを使ってみる。

scrobbler のことを忘れてた。だめだな

songbird

動くレベルになったのかな。前 windows でやったときは日本語がダメだったけど

Nightly on Intel Mac を入れてみた。Id3 読めてない。日本語のファイル名は大丈夫ぽい

DAAP

mt-daap を ubuntu に入れた。hamachi 経由だけど、普通に itunes 起動したら見つけてくれるんだなぁ。
deb パッケージを dpkg -i で入れて /etc/mt-daap.conf を設定しただけ。拍子抜けな簡単さだ……

gerry

お腹痛い。。

hamachi

UniversalBinary って書いてあるけど嘘だよなぁ。PowerPC エミュレーションで動いてる。
と思ってフォーラム見てみたらまさにソレなスレッドがあった。

zsh and goo

_ej () {
	compadd $(ruby -ropen-uri -e "print open('http://dictionary.goo.ne.jp/xml/lookupfw.php?MT=$words[2]').read.scan(%r(<cand>(.+?)</cand>)).flatten.join(' ')")
}
compdef _ej ej

ruby 丸投げ。でも goo の辞書が上位数件しか返してこなくてつまんない。というかコマンドラインで使える辞書を調べてない。edict と何かを組み合わせるのかな。

daap

id3v2.4 でつけてると曲頭の一分ぐらいが飛ぶ模様。付け直して rsync 中

あ、違う。なにか他の要因がありそう。STE で付け直すととりあえず直るけど

2006年 09月 24日

外出先 (というか学校 ) から DAAP が実用になるかやってみる。

2006年 09月 25日

Ruby で CGI 書くとき

require "cgi" して簡単なのを書くときの指針がやっとできたのでメモ。

require "cgi"

class HogeCgiApplication
    def initialize(cgi, opt={})
        @cgi = cgi
    end
    
    def run
        # リクエストの応じて他のメソッドに飛ばす
        _, mode, rest = @cgi.path_info.to_s.split("/", 3)
        if mode && respond_to?(mode)
            send(mode, *rest)
        end
    end

    def view
        show(:param => "hoge")
    end

    def show(stash={})
        b = binding
        stash.each do |k, v|
            eval("#{k} = stash[:#{k}]", b)
        end

        template = File.read(@opt[:Template])
        self.class.class_eval { include ERB::Util }
        @cgi.out("type" => "text/html") { ERB.new(template).result(binding) }
        exit
    end
end

cgi = CGI.new
hoge = HogeCgiApplication(cgi)
hoge.run

セッション使ったりするので必ず cgi.out を使う。場合によっては cgi.out をオーバーライドしてうんぬんできる。

でもまぁフレームワーク使うならそれでいいんだろうなぁ。

自宅のは .rb なのは fcgi で動くようなラッパ書いて動かしてるけど……

http://lab.lowreal.net/trac/browser/c/cgi-wrapper 前に lowreal.net に書いたけど、エラーとかキャッチしてスタックトレース出すようにしたり。元のファイルを書き換えずにエラーハンドル追加できるので結構自分で使う分には便利に使ってたりする。CGI バージョンは今はたぶんちゃんと動いてないな。

daap

256kbps の mp3 を再生中だと 70KB/s ぐらいネットワーク受信がある。外からだと結構きつそう。

fcgi

のラッパ使って ruby cgi を動かしてると、require でロードされたスクリプトがずっと残るのでときどきハマる。一度 load に書き換えてあげたりして

2006年 09月 26日

学校がなぜつまらないか

についてまた書こうと思ったけど、やっぱ友達いないのが最大原因なのでやめた。

2006年 09月 25日

小さいアプリケーションでもフレームワーク使った方がいいっていうのはすごく思う。だけど、例えば XREA で使おうとか思ったとき、Rails や Catalyst ぐらい巨大だと CGI 動作じゃ死にたくなる。
なんか K*NT 指向なんだけどさ!!

chokan のソース

今動いてるやつも少し前にインポートしたよ!
http://lab.lowreal.net/trac/browser/chokan/old/0.2

新しいの作ろうとしてるけど全然やってないよ!

深く

深く考えずにとりあえずコーディングしてみる、というのを実践してみた。「やった感」と「動いた感」はあるので楽しい。いっぽう、「無駄なことをいっぱいしているんじゃないか?」「設計がダサくないか?」と不安になる。
思うに、ひたすら経験な気がした。他のソースを読みまくって、「あーこういうケースで、あのすぱーはかーはああしていたなぁ」とか思い出すと、コード書いてるときにあんまり悩まないようになる、気がする。そうなりたい。が、どこまでモチベーション続くかは一生謎

新しいほう

http://lab.lowreal.net/trac/browser/chokan/trunk
ファイルの配置変えとかと、config の統一をやった。とりあえず動く、けど、既存プラグインを移植してない。
@s << notice() より、@chokan.notice() とかのほうがよさそう。そうすれば余計なインスタンス変数 (プラグインごとに設定してる) をなくせるかなぁ。

2006年 09月 26日

$ ruby -pe 'gsub(/^.+;| .+$/,"")' ~/.zsh_history* | sort | uniq -c | sort -r | head -20
    249 cd
    229 lm # ls -altr
    211 svn
    165 vim
     95 sudo
     90 screen
     83 refe
     78 exit
     52 ps
     49 mv
     48 fg
     42 rm
     40 kill
     40 irssi
     27 ruby
     26 tiarra
     25 plagger
     23 hamachi
     23 cat
     22 .. # cd ..

SAVEHIST 確認したら 2000 しかとってなかった。増やした。

chokan

他のプラグインのメソッド呼べたらいいよなぁ。依存関係とかできちゃうけど

2006年 09月 27日

思考の継続

思考の Continuation が欲しい。何か用事があったりしたときに、オブジェクト化して保存しておいて、終わったらそれを呼びなおす。

アクリルの立方体みたいなのにぐにゅぐにゅとした継続が入ってる。今の気持ちとか、考えてることがそのままその立方体に入ってて、あとで取り出せる。

なんかせっぱ詰まってると「あああれがやりたい」って思うけど、終わってからだと気が抜けて完璧にやる気がなくなってる。継続保存ができるなら、それをとめておいて継続できるのになぁ、って、駅を歩きながら少し前に考えた。


あと、思考のバージョン管理がしたい。思考というか、自分全体をリポジトリに突っ込んで管理したい。つまり過去の状態にいつでも戻れるという前提があるならば、変化も楽だよねというアレなんじゃないんですか? って、誰に聞いているの?

モチ

学校の授業で「モチベーションが足りないだけ」みたいな感じのセリフをよく聞くのだけれど、ホントに一番問題なのはモチベーションが足りないことなのだから、そのセリフって意味がないよなってよく考える。(そう言ってる本人でさえ「やる気があればできるはず」と言っているし、それってすなわち「やる気がでないこと」が一番問題じゃないんだろうかと)

モチベーションを保つのってめちゃくちゃ難しいことだと思うし、特に人から「やれよ」といわれてやることに対してのモチベーションなんて、二日持てばいいほうなんじゃないのかなぁと個人的に思う。

じゃあどうやってやる気を出させるか、がアレなんだけど、自分でさえそれがわからないのだからこれ考えるのって難しいよなぁ、なんても思うから、「やる気ないだけ」に逃げるのもわからないでもなかったりするけど、一つだけ言えるのは、山を越えてない人間に安易な批判をしても、やる気を殺ぐだけで次のものは生まれないよねってこと、だと、おもう、よ。


といっても、他の真面目な人や、大学教員なんかは、ホントはもっと違うのかもしれないけど。例えば同じグループワークの人とかは、あんまり乗り気でないことを乗り気に変換させてるし、すごすぎる。ホントに無理だ。

どうやってモチベーションのサイクルを作ってるのかが全然わからない。

section + push_if_first

  my ($pkg, $path, $fn, $story_ref, $title_ref, $body_ref) = @_;
  return unless $$story_ref;

section が push_if_first より前に動いていることを前提にして、上のを story に付け加えた。

あ、push_if_first 側にいれました。素で書いてなかった。section が隠すエントリの $$story_ref を削除するので、それを見て if_first さんがしかとするように
そういえば filter でエントリ削除らないと、一日に何回も書いたとき paging 効きそうな予感。試してないけどうーん。結構めんどい

あと back_and_forth 相当の機能をつけないとなぁ。

svk

そういえば darwinport で入れた。途中で失敗するけど、あきらめずに port install し続けたら入った。

open-uri

思うところあって open-uri を使うように変えてる。Net::HTTP も慣れちゃったんだけど、毎回 URI(uri) して uri.host やったりするのはやっぱりめんどいよねって思った。

二本指スクロールと右クリックは、全部のトラックパッドに装備すべきだ。。

Catalyst

Catalyst server は動いてるのに、create すると @INC に Catalyst::Helper がないって言われる。cpan -i しても既に入ってるし、謎sg

svk 入れたときに perl5.8.8 が入ったせい? /usr/bin/perl は 5.8.6

あ、そうか create.pl の shebang が /usr/bin/perl になってて、そっち読んでるんだ。消して symlink にしてしまおう。

$ sudo rm /usr/bin/perl
$ sudo ln -s /opt/local/bin/perl /usr/bin/perl

あ、これじゃだめだ。server が動かなくなる。/opt/local/lib を読んじゃう。cpan はどっちにインストールしてんだ。。。

いやいいんだ。/opt/local を読ませるようにする。perl5.8.8 が入ったときに cpan も置き換わってる。/Library/Perl/5.8.6 は消してもいいのかな。

でもなんか、port install perl とかやっても、そんなパッケージないって言われるのはなんだろう。

auto_cd

全然使わないなぁと思いきや .. で上のディレクトリは使う、と思いきや、.. は alias だったので本気で auto_cd 使ってないことを改めて思った。なんなんだ

chokan

今の実装だと plugin の実行順番は完全に不定 (Hash 使ってるし、Thread 内で起動してるし)
これだと「このプラグインを実行したあとは他のプラグインを起動しない」みたいなのが作れない。うーん。

2006年 09月 28日

YA-section

yet anotherなsectionプラグイン - 徒書

置き換えてみた!! 自分で書いたのと見比べると自分の無駄が多すぎて萎える。

filter で削除ってるので archive 系はこれより先に読ませないとだめだ。

2006年 09月 27日

vim

そういえば vim って「○」とか「☆」とかの幅がおかしいけど、直す方法ってあるんだろうか。。

set ambiwidth=double

らしい。うーん

2006年 09月 28日

daap

DAAP 通すと Sigur Rós とかの文字が置き換えられちゃう?

rubyforge

rubyforge で cho45 って登録しようとしたらもうIDが存在しますって言われた。どういうことだ。

ああw むかし自分でとってたらしい。マジで記憶がない。

これ gem でインストールできるようにするのってどうすればいいんだかわからない。

screen -O

quickfix 開くと描画乱れるなぁ

2006年 09月 30日

chokan

Titleget っていう名前で url の情報とってきてたけどタイトルに限らないので UriInformation にした。FTP のファイルサイズとかもとってくる。
http://lab.lowreal.net/trac/browser/chokan/trunk/plugins/uri_information.rb


DCC で送られたやつを自動で受信して公開するようなプラグインを作ってみた。送り終わると URL を priv しかえす。
http://lab.lowreal.net/trac/browser/chokan/trunk/plugins/dcc_cache.rb

s63.xrea.com

  1. 鯖交換
  2. ハードディスク異常・交換
  3. 再び鯖交換 (今ここ)

金曜日の深夜に大変だなぁ。

chokan comet

webrick + Queue で IRC ブリッジを実装してみようとおもったけど、ログインとかどうしようとか考えて進まない。

webrick はどっちにしろバックエンドになるから、Apache で CGI 動かして、認証をそっちでやればいいのか。そうすれば weblogin.rb が使える