Plagger
学校のユーザ領域に Plagger インストール。
学部サーバでは RNA が動いてるけど、コレってまとまったフィードとかがない。授業ごとのフィードとかが欲しいのでやってみる。
メモ
学校のユーザ領域に Plagger インストール。
学部サーバでは RNA が動いてるけど、コレってまとまったフィードとかがない。授業ごとのフィードとかが欲しいのでやってみる。
メモ
OPML のフォルダごとに別のフィードはかせたいなぁ。どういう流れだか理解できてない。
Subscription::hogehoge で祖先要素の outline@title を / で繋げて、id に突っ込めばいいんだろうか。Subscription::OPML は SAX で……って思いながら読んでみると tags に突っ込んでるっぽいなぁ。
タグごとにフィード吐くのがわからないわな。一個ずつ SmartFeed に expression 書いてあげるのか。
また == と eq でハマった
べ、べつに攻略したくてしたんじゃないんだからね!
少し前某所にいたとき、絶対パスを「http:// からはじまる~」と説明していたのを傍で聞いていて、なんか違うような (で、でも、わたし、正確に調べたわけじゃないし##) みたいな感じだったのでちゃんと調べる。
といっても、普通に RFC を確認するだけ。おなじみ RFC3986 を適当に調べる。と、該当部分は
なんだけど、こっちの 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 は今は正確には 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.
C-[ と : で悩む。
最近なんとなく null より nil のほうが好き。
この日記はローカルで XML 編集してアップロードして書いているのだけど、いい加減 XML 書くのが嫌になってきた。Markdown と Trac Wiki 記法とを混ぜたやつで書きたい。それとローカルでしか書けないのがだめすぎ。外出先から日記を書けない。
XML で書くのは、全て制御できるけれど、もうそれにいまいち魅力を感じなくなってしまった。別に Markdown だって HTML が書けないわけじゃないし、HTML を完全に思い通りに書いても、そんなに意味がない気がしてきた。well-formed なら十分なんじゃないか? って思い始めた。abbr はかけるコストの割りに役に立たない。ような。
URL はそのままで、うまく再構築したいなぁ。トラックバックはいらないし、久しぶりに Ruby だろうか。Rails 使ってみたいけど、CGI 動作じゃ死にそうだから使う気にならない。うーん
>>+++++[-<++++++>]<+[-<++>]<.>+++[-<------>]<-.... .....>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[ -<-->]<.+++++++++++++++.-----------------......... ...>+++[-<++++++>]<+.>+++++[-<++++++>]<+.>++++++++ +++[-<--->]<.-----------------.+++.-........+.---. ..........>+++++++++++[-<--->]<.>+++++++++++[-<+++ >]<....+++.++++++++++++++++.>+++[-<------>]<-...>+ +++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[-<-->]< .+++++++++++++++.---------------......++++++++++++ +++++.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.-- -------------.+.++++++++++++++++.>+++[-<------>]<- .............>++++++[-<++++++++>]<.>>+++++++++++[- <++>]<+[-<-->]<.+++++++++++++++.---------------... ..+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++++ ++[-<--->]<.--------------.++++++++++++++++.>+++++ ++++++++[-<---->]<.>+++++++++++[-<+++>]<.......... .......>++++++[-<++++++++>]<.>>+++++++++++[-<++>]< +[-<-->]<.+++++++++++++++.-----------------..>+++[ -<++++++>]<+.>+++++[-<++++++>]<+.>+++++++++++[-<-- ->]<.--------------.---....+++.++++++++++++++++.>+ ++[-<------>]<-..........>++++++[-<++++++++>]<.>>+ ++++++++++[-<++>]<+[-<-->]<.+++++++++++++++.------ ---------.....>+++++++[-<----->]<.>+++++++[-<+++++ >]<.+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++ ++++[-<--->]<.--------------.>++++++[-<------>]<.
おまけ。昔書いたやつ。選択範囲内のbfを実行.js for JSActions
フレームワーク理解度: Catalyst > Rails
言語理解度: Ruby >> Perl
日記どうするのがいいかなぁ。定期的に考えるなぁ。
どうしたにせよ、今のデータからの移行が面倒くさい。
はてダをとってきて表示するだけの CGI とか。デザインだけ変えるっていう。怒られるなたぶん。
そういえば気になってたこと
>>++++++++++++++[-<++++++++>]<+[-<++>]<+.>+++++++[
-<-------------->]<.+++++.>>+++++[-<++++++>]<+[-<+
++>]<.>++++++++++++[-<-------->]<.>>+++[-<++++++>]
<+[-<+++>]<.>+++++++++++++[-<+++>]<.>++++++++++++[
-<-------->]<-.+++++++++++++++++.>++++++++++[-<+++ が色付けされない。
これグリなので http://lowreal.net/logs/2006/09/04/3 実装した。
ごちゃごちゃやる用事があって MT を使っているのだけど、テンプレートを一括して作ってある場合インポートするのがひどく面倒くさいのでスクリプト化してみた。
make-import-mt-templates-bookmarklet.rb
開くと TEMPLATES の定義があるので、例にならって適当に書く。書いたら ruby make-import-mt-templates-bookmarklet.rb 出力ファイル名.js とかやると、本体ができる。ついでにブックマークレットの雛形を出力する。
なんか説明すると意味わからないな。できた JS は Fx1.5 以上で動く。
配布する人さえこれを使えば、そのテンプレートを利用したい人はブックマークレットを利用するだけ、という形をとる。
サンプルとして、Web Standards with MT ver.3.2 Strict : ダウンロードページ のテンプレをパックしてここで再配布してみる (自分のやつはちょっと問題があるので)。パックしたやつはもとのライセンスにしたがい CC-by-nc-sa に。
テンプレートをインポートする : このブックマークレットを一時的にブックマークして、MT のテンプレ一覧ページで使うだけです。
書き換えて使った上のスクリプト pack_mt_3_2_strict.rb
バグっててテンプレが壊れても知りません。テストしてみようとして既存のテンプレ上書きしても知りません (自分がやった)
そういえば else if ってこういう形では滅多に使わない。最初の if と並列なのか、ネストなのかはっきりしない感じがちょっときもいからかもしれない。並列したいときはできるだけ switch でいけるように変換する。
Ruby の場合 case に式書かなければ else if 等価になるから、elsif はまず書かない (今 elsif と書くために elseif だっけ? と悩むぐらい全く書かない)
オフラインで開発するとき必要なの考えよう。
とりあえず Ruby リファレンス。Perl も必要か。でも Perl は CPAN 見れないと無理だな。ああ、そのためのコマンドがあった気がする。と、しかしオフラインだと「あった気がする」では検索ができないので困る。今のうちに調べないとなぁ。
PIN 届かない!
exe "normal! i#hogehoge"
リナザウの時計が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
ファイルの生成ルール変えるから Publish もごにょごにょしないといけないのかな。filename_for の実装見るとシンプルに safe_filename で削除ってどーんってやってるから、ディレクトリとか作りたければ Publish で頑張るしかないか。
でも Publish::XSLT がそういうことするのはおかしい気がする。と、想像ばかりしつつ Plagger のソース読みたい。
というのを、吐き気を催しつつ電車の中で考えた。できるのかなぁ
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 も吐くから継承関係はいいといえばいいのかなぁ。そもそも元のフィードは吐くべきでない気がするけど
長かった。向ヶ丘遊園で初動・下北沢あたりからひどくなった。
Plagger でどっかに吐いてそれを自分のフィードに設定する。
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 動作の重さをあまく見てました。ぜんぜんレスポンス帰ってこない。
& が正常がなぜか置換されないため増殖する。なんでだろう。ちゃんと置換してるっぽいのに。
:echo substitute('&', '&', '&', 'g')が & のままだ。なんか特殊文字入ってるんだろうか
substitute('&', '&', '\&', 'g')としないとだめらしい
:h sub-replace-special
& 単体だとマッチ文字列になるので、何も変わらないという理屈らしい
どうするのがいいかなぁ。SmartFeed::Diary は書いたけど、Publish をどうすればいいんだろう。ディレクトリ掘って保存するなら、Publish が頑張らないといけないだろうし、でもそこで XSLT もかましたい、とすると……
あー、プラグインで Publish のあとにさらに、Publish::Diary とか作って、保存済みの smartfeed_diary_\d{4}(_\d\d(_\d\d)?)? をリネームするやつを作ればいいのかな。やってみよう。
途中で Diary って名前がおかしい気がした。Archive とかかな
http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/SmartFeed/Diary.pm
http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/Publish/Diary.pm
http://svn.lab.lowreal.net/lowreal/mypla/Plagger/Plugin/Publish/XSLT.pm
- 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/diarydiary.xsl の例
http://svn.lab.lowreal.net/lowreal/mypla/diary.xsl
Atom 渡し
こんなんにして適当に Subscribe すると、いっぱいファイルができる!
出力例: http://lab.lowreal.net/tmp/
TODO:
svn にてきとうに入れたのでそっちへリンク
syntax error でまくりんぐ。もっといい方法があるんだろうなぁ。
それっぽい Subscription か CustomFeed とかを使って、Publish::XSLT で静的 HTML (に限らず) 生成の日記システムを妄想。
コメントとかは別の XML に保存して XSLT 中で document 使えば一応どうにかなるけれどちょっとやっぱキモいなぁ。
アーカイブしたいのは全部読み込まないと、漏れがでてしまうよなぁ。うーん。例えばはてダで書いたあるタグがついたセクションを、アーカイブに突っ込むという場合、最新のフィード何件か、っていう感じで配信されているから、上書きになっちゃうよなぁ。
あー、2006.atom とかを常に読み込むようにして、dedupe すればいけるかなぁ。
08/ 08.html ってあるとディレクトリ優先しちゃうのか。
08.html は 08/index.htm として保存しないとだめか
http://subtech.g.hatena.ne.jp/cho45/comment?date=20060906#c
コメントもらった! ありまとう! なるほど。
-f 付けると落ちることは落ちるけれど、プロセスが分離されて被害が少ないみたいだ。いちいち手動で起動しなくていい。よかたよかた。
silent exe "!GET 'http://nina:4321/reload' > /dev/null"とかやってるのだけど、GET が遅いと入力が返ってこない。非同期で実行できるんだろうか。
と思ったけど
silent exe "!GET 'http://nina:4321/reload' > /dev/null &"にした。
ああああ。body (bodfy と type して boofy と空目した) に % 指定がついてるせいだった。全部 px にかえてやる!!!!
これで4時間ぐらいハマった。やっぱ IE &ネットワークが重い環境だとこういう試行錯誤するしかないのはきつい。
C-z でどーんってやったあと、screen の window 移動して、「どこでやってたっけなぁ」ということが多々ある。window そのつど開けばいいんだろうけど、カレントディレクトリが云々。
Form.disable 相当のはないっぽいのかな。
寝てたら成城学園前に着く直前ぐらいから急にレベル7で腹痛が発動。しかたないので成城学園前で降りた。トイレが混んでて焦った……
いっかい出て、ホームに下りたところで再びレベル7.5で発動。またトイレへ、しかしまた混んでて(ry
なんか、起きたとき目の前にいた女の子が知り合いだった気がするけど気にしない。
なんとなく CGI 動作で動かしていたけど、FCGI に変えた。あまりに早くでびびった。CGI が遅すぎなだけか
Publish::Blosxom して blosxom にまかせるほうがいいのかなぁ。最初の一回だけ (インポートだけ) に Plagger 使う感じだけれど
日付内で番号ふって /2006/01/01/1 みたいな URL に対応させる blosxom プラグインを書けば解決するような気がしてきた。
ねr
このキーボード、Eが既に消えかけ
そうえば JS で $ 書くとき、$X って書いてるときがある。
駅前に高校生のカップルらしきものがいて、男がやたら偉そうでむかついた。女の子は笑っていたから、あれで幸せなんだろうな。
それはともかく電車内のぢょしこうせい濃度は今日も高めでよろしいですね。
りなざうのターミナルだと ssh してスクリーンができないなぁ。。
あー電車の中だとネットワークが遅いせいなのかもしれない。
でも vim は重いなぁ。描画がなんかおかしい
やろうと思ったこと
ctag も便利そうだけど、使い始めるのがめんどそう
ノートを買ったらやろうと思ったこと
オフラインで開発って、CPAN どうするんだろうって思ってたけど、疑問が解決した
というのを向こうにあとで書く。書かない。書く。たぶん書く。XML 書く気になったら書く。
>
Development Environment Conference に行ってきた。
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 としてパースされるかがどうとかこうとか
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 ふるためだけに、ハッシュ&配列を使わないといけない気分。
この日記みたいな URL で blosxom のエントリにアクセスできるようにするプラグインです。
例えば blosxom デフォルトだと /2006/09/09/ までしか時間単位で特定できないですが、このプラグインで /2006/09/09/1 とかという風に完全に時間ベースで一つのエントリを特定できるようになります。
特定の環境でしかテストしてないのでいろいろ不具合があるかも。extensionless とは共存できるみたいです。
/2006/09/01/1.html でいいようにしたいなぁ。
あと /2006/09/01 の場合 /2006/09/01/ にリダイレクトしたい。これはどっかでぷらぎん見たことある気がする。
1.html とかってやるばあい $blosxom::path_info を空文字にしたらいいようだ。ヒエラルキーチェックを飛ばせる。
ファイル名の生成を 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 追加できたらいいかもしれない (やってない
一応動いたっぽい。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 だとヤバくね? とか
Template Toolkit 使う blosxom が欲しい!
plugin としてじゃなくて、もう完全に1ファイルにまとめてしまう感じに。
あと、既存の plugin と互換性を保ちつつ、Entry をオブジェクト化とかできないかなぁとか、section 作ってて思った。Entry オブジェクトに section attr を plugin で追加して云々、みたいなのできたら楽だったんだけどなぁ。
TT 使ったらどこで動くモノじゃなくなりそうな感じがする。 レンタルサーバに TT って入ってるものなのかな。とか、無駄なことを考えた。
http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/redir
/2006 とかを /2006/ にリダイレクトするのを書いてみた。ブックマーク最適化! アーカイブなんてブクマしないけど
どっかで全く同じ機能のを見た気がするんだけど、どうも思い出せない。extensionless と同じ作者かと思ってたけど違うしなぁ。
ブックマークレットから登録しようとして、登録済みのときってそのままじゃレート変更できないけど、普通に一回購読停止すればいいことに気付いた。
ブロック引数の特殊デフォルト仮引数変数 (意味不明だ。なんていうんだろう) 欲しいなぁ。Groovy の it, Perl の $_ みたいなの (Ruby の $_ は gets とかでしかセットされない)。ワンライナー書くとき |i| とか書くのめんどい。
ちゃんと書くときは使わないだろうけど、[1, 100, 1000].map { it.to_s(16) } とかできたら楽ちん。パイプうつの苦手だからかなぁ。
書き換える前のバージョンに戻したら直った。他の wiki 探さないとダメだなぁ。
読む (未読 10000) -> 読み終わる (0) -> リロードして読む(10050) -> 読み終わる (0) -> リロードして読む (10100)
というのを考えた。まだなってない。だいじょうぶ
http://lowreal.net/2006/vi.ahk
あきた。 たぶん使わない。でも今は使ってみてる。
なんかどうも Perl のコード書いてるときより、perldoc 書いてるときのほうが、Perl やってる感じがする。わけない。けど、ちょっと思った。CPAN のせいか、な。意味不明
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 が選択される、というだけ。
もうちょい頑張ろう。
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" .
動くようになった。
参照方法がちょっとキモいなぁ。
というか XREA に TT 入れるのめんどくさそうだからどうせ使わないだろうなぁ、と思った。無駄じゃん! インターフェイス作ったほうがいいじゃん!
それに plugin が対応してくれないと恩恵をうけられない。writeback を FOREACH でまわす、とかできないし。普通のフレーバーで十分だなぁ、と作ってから思う罠
しぶりに Ruby 書いたら File.read, File.readlines が便利すぎて泣きそう。
そして !!"" == true が面倒くさくて blank? がコアに入ってればいいのにと思った。
以下のアスタリスクの意味はなんでしょう!
def func *
puts "hogehoge"
endというのをおもいついた。この場合括弧をつけるかつけないかで迷う。文字だったらつけるけど、アスタリスク一個の場合はつけないようにしようかなぁとか、いやでも特別扱いはよくないのか、というよりこういうケース殆どないから気にしないでいい気もするというか(ry
というか括弧つけないとどうもパースエラーになったりならなかったりなぞいからつけないとだめっぽい。
まらさんが言ってたけど、マウス位置のカラーピッカーが便利すぎる。
ふぉとしょか何かで適当に書いたやつを 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 の構成決め打ちにしてみよう。
あたりがあるとよさげ
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を英語配列にしようと思いきや一部のキーがおかしいのでうまくかない。なぜかカナが入力されたりするし、うーん。
インストールしてみた。便利!いままで grep の引数が覚えられなくて (先にディレクトリなのか、後にディレクトリなのか) grep を使ってなかったけど、ack なら大丈夫dane
install App::Ack
なんか共有できないとおもいきや、append_history セットしてるとだめっぽい? コメントアウトしたら共有できた
FC5 の zsh だと C-r できない。。
なぜか C-z して svn add とかやってたけど、:!svn add って普通にできるじゃんか!! と、あたまのわるいことをやってるようなひ
あと気がつくと zsh で C-r が効かなくなってなんやねんと思っていたのだけど、どうやら vi モードになっていたらしい。。.zshrc で bindkey -e して bindkey -D vicmd した。というのを、かみさま (そのなをとぴあさん) に教えてもらってやった。ありがとう><
これからは YAGNI を多用したいと思う。あしたできることはきょうやるな><
RO の BOT 作る LL 対決
一応だいたいできたなぁ。
できること
ほかにやりたいこと
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 にすればだいじょうぶ
いまいち再現しないので迷宮入り
やる気はありません
色変えられないかな
どうでもいいけど!
alias lm="ls -altr" してて ls って滅多に使わない。
flavour の編集ってテキストエリア並べるのはダサいよなぁ。
theme 入ってればとくに考えなくてもいいんだけどなぁ。theme を入れない前提でやるとするとうーん
Ruby でかけたらいいのに
.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%8Pftplugin/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 に追記した。
なにやら Opera でズレる
ちょっと使ってみる! 思ったよりおもしろい!
package Plagger::Plugin::Notify::Reload;
use strict;
use base qw( Plagger::Plugin::Notify::Command );
さらなる軽い環境を求めて irssi をちょっとやってみたけれど、わからなすぎた。チャンネルリストとか全チャンネルメッセージ一覧バッファって、重要ダネ!!
trac.lab.lowreal.net/trac って冗長なので lab.lowreal.net/trac にした。
実際のファイルも移動
Apache の設定も書き換えた。リポジトリも移動したいけどめんどい。。
Ruby の YAML って三個以上同じ文字列があると参照にしちゃうのか。。ハマった
これってオフにできないのかなぁ。可読性下がるし文字量多くなるしいいことなし。
違う。うそ
String.new str
してから突っ込むと正常になる。なんか変なパラメータがくっついてるっぽい?
str.to_s は self のコピーじゃなくて self を返すんだなぁ。。
str.dup と String.new も挙動違うんだなぁ。dup はインスタンス変数?もコピーしてる。当たり前か。どっかに書いてあった気もする
split と join は区切りが先なんだ。。
使いたい。けど、理解できないうちはこわくて使えない。どうすれば安全に使えるかちゃんと調べないとなぁ。
それと今パスフレーズ認証だから鍵認証にしないといけないし、鍵認証にするなら USB メモリ欲しいし。。
ちがう。SSH がわかってないなぁ。パスフレーズじゃなくてパスワード認証だった。
あとクライアントごとに鍵ペアつくっていい。なんか勘違いしてた。
ひとつのコンピュータにつきひとつのペアをつくってあげるんだよなぁ。それの公開鍵をいろんなサーバに登録してあげる。
何度か作りなおしたりしててごっちゃになってるのが悪いんだよなぁ。DSA の鍵を作りなおしてちゃんと使うようにしよう。
## 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 の起動を監視できたほうが、安全っぽい。
苦手なキーストロークをパスワードに含めると苦手じゃなくなるらしい
大文字を多めにしたパスワードを考えよう
http://svn.lab.lowreal.net/lowreal/c/blosxom/coblosxom/
飽きた……
meta プラグインにちゃんと対応させて author 情報埋め込もうかと考えてたけどめんどくさい。
今度 blosxom っぽいの作るときは Perl で書こうと思う。
あんまりお腹痛くないのに
あるユーザがあるグループに所属しているかどうか取得できると、グループごとに一括して認証管理できて便器かもしれない、とちょっと思った。
新ジャンル 便意 が既読にならない。読みたびに便意
Basic 認証からはてな or TypeKey で認証するように変えた。と、いう、こと、だけなのに、やたら時間がかかって、へこむ
Terminal.app で screen がおかしい。こまった
sudo port install subversion sudo port install zsh sudo port install screen
delete しようとして eject しまくる。
putty 以外にまともに使えるターミナルってないんだろうか。
日本語おかしい。UTF-8 じゃないんだろうか。っていうか 256color にしたいいい
export LANG=ja_JP.UTF-8
すれば日本語がちゃんと (?) 通るっぽい
でもまだ vim で作業中にエラーでると描画がおかしくなるのが直らない (redraw! しても効果なし)。オプションいろいろいぢったり。。。
あと gvim でアンチエイリアス効いてないのをどうにかしたい。
表示されて一発目のコマンドの後はからなず表示がおかしい。ので、screen の画面きりかえを一回やるといいらしい。
ところで、Terminal.app って日本語入力できないのか!
Terminal.app じゃなくて visor だと日本語入力できないみたいだ。
コンピュータ名を mary にした。mac なのでイニシャルを m 縛りで覚えやすいのを
screen 越しに vim やると、行を挿入したときに表示が乱れる。行番号がなくなったりとかしてズレる。いっかいウィンドウ切り替えればなおるけど、毎回なる。これじゃ screen 使えないなぁ。
vim6 だと大丈夫だなぁ。
なんかコンパイルオプションいるんだろうか
とりあえず set number をコメントアウトした。
固有設定を書けるようにした……なんで今までやってなかったんだろう。
h="${HOST%%.*}"
if [ -f "$HOME/config/$h.zshrc" ]
then
source "$HOME/config/$h.zshrc"
fi
クライアント側の screen の escape を ^yy にした。鯖側は ^tt
C-y ってあんまり使わない気がする
どうしよう。gimpshop かなぁ。X 走らせるの避けたいけどなぁ。
あとカーソル座標の色を取得するの欲しい。
ところで pbcopy がいかす。こういうの欲しかった。
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/
検索窓から検索するとかならず日本語限定にされるので書き換えた。
というのはどうでもいいけど、Mac でのアプリケーションのインストール先がわからなかった。といってもてきとうに掘っていくとすぐわかるけど、サーチプラグインは
/Applications/Firefox.app/Contents/MacOS/searchplugins にあった。
が、keyword のほうがよくね? みたいなことを言われたのでそっちにしてみる。ロケーションバーが広くなってよさげ。
http://www.google.com/search?q=%s をキーワード g でブックマークした。
バッテリーもたないなぁ。長くて3時間か。
ディスクを追加したら、XP のコントロールパネルから、管理ツールを起動して、ディスクの管理から初期化とドライブレターの割当をやらないとだめか。
nLite で削りまくったらまじでなにもなくなる。iso イメージで400MBない。
parallels 触ってみて思ったけどやばい、
なんかやたら CPU 使ってだめだ。しかしアンインストールの方法がわからない。
鯖に音楽ファイルおいて、それをネットワーク越しに聴くいい方法ないかなぁ。VPN で smb はめんどうくさい。。
やっぱ 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 ってライブラリに追加時コピーしない設定にするとどうなるんだろう。キャッシュと思っておけばいいか
日本のほうからダウンロードしたら起動せず。
英語版をダウンロードして起動して、iTunes で再生してみるとなにやらうまく情報を取得できてない。UTF-16 だからだろうか。
しかたないので iTunes プラグインをインストール。なんかこっちのほうがシンプルでよさげだw
gerry
blosxom にしてみる。
「ヘッドフォン娘」で検索するとトップに Meta*Headphone-Girls がでる!
うpロダとかには結構画像があるのだけれど、消えてしまう性質上リンクを貼れない。こっちでキャッシュしたらいいんだろうか。キャッシュって言っても結局は転載になってしまうからダメか。
全部 POP やめて IMAP にすることにした。メインのメールは家で POP して削除してたけどやめた。ちゃんとバックアップもとってくれるし、モバイルでも過去のメール読める。
Finder 固まった場合が謎だ。smb でファイルのD&Dとかやってたら固まった。Cmd-Opt-ESC で再起動しても Finder 復活しない。
ログアウトしようとおもいきや。iTunes が固まってログアウトできない。
Cmd-Shift-Q とかパワーキーででるダイアログで再起動もできない。
Cmd-Ctrl-Power で再起動ができた。
再び Finder 死亡
smb 不安定だなぁ。
xrea に設置しようとおもったらハマるハマる。section がとりあえずバグってた。直した。
なんか標準エラーが標準出力に吐かれるんですが!1
再起動するごとに sudo tuncfg いるんだ。めんどい。
$service に補完対象のコマンド名
$CURRENT に補完対象の引数位置
$words にコマンド名ふくめたやつたち
compadd の引数は空白区切りでいくらでも
なんか古い方法らしい。わからなすぎ
日常に生きることの重要性について、最近よく考えるし、誰かの言葉や、誰かの言動によって考えさせられる。
普通の日常がどれだけ大事かってことには、なかなか気づけない。一旦気づけても、すぐに忘れてしまう。すごく「慣れ」というのに弱い。
その日常や、普通が、すごく重要なのに、遠くを見すぎて、「普通」じゃないほうがいいという思考で、忘れてしまう。個性/アイデンティティを考えるとき「普通さ」は悪く感じる。でもたぶんそうじゃないんだよなぁ。
少し前に電車内で見かけた女の子の普通さになんだかすごく心を打たれた。すごく普通だった。ちゃんと、日常的だった。それが逆に違和感になって、自分に入ってきた。
たぶん自分が考えている「普通さ」は、想像上のもので、多数決的な普通とは違うのかもしれない。できるだけ「普通」っていう言葉を使わない人もいるぐらい、曖昧だし。
アイデンティティを「たった一つの特徴」みたいに誤解しているような感じ。実際には、ただその人の「普通の日常」を気取らずに過ごせばいいのに、余計な、過剰なアイデンティティを求めて、凡庸になってしまう。もったいない。
関係ないけど、慣れっていうのは、逆もまたあって、悲しいことがあったとき、嫌なことがあったときのことも、いつのまにか忘れてしまう。人によっては、悲しいことを忘れられるのはいいことだと思うのだろうけど、自分はこれを良いことだとは全く思わない。思えない。そういう感覚をしっかり持ったまま生きていたい。
悲しい感覚や、嫌な感覚を忘れてしまうと、ある時必要な、誰かの感情に気付けないことに繋がる。そういうのは出来るだけ無くしたい。
Parallels 上の Windows XP のホスト名は Melissa
http://lowreal.net/blog/
やっぱ他のプラグインとの兼ね合いがアレだ。パーマリンクをセクションのほうにする場合、rss10 プラグインは改造しないとだめ。
bettertitle も変だから改造しないといけない。
あーディレクトリ表示もおかしいなぁ。negotiation のせいっぽいなぁ。 直した
セクションがパーマリンクだとタイトルにそのエントリのタイトル表示したいって思うけど、普通にやったら無理だ (どの story が読み込まれるかは section が処理されるまでわからない)。rss10 的な (最後に置換) ソリューションか
むしろこれは section に入れる機能な気がした。
コメントのことを完全に忘れていた。Flickr とか利用したいなぁ。既存のセッションは Ruby の cgi/session だから直接使えない。
どうすっぺ
コメント機能とか軟弱なものはいらないか。はてぶからひっぱってくればいい感じな気がしてきた。
これなんて hail2u だろう。と、書いてて思った。
スリープから復帰するとなぜか消えてしまう。
下降中
電車内では前に立ってた女の子が素敵で、調子よかったんだけどなぁ。
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 が入らない。
JS で insert した文字列が完全に文字化けする!
content-type に charset つけてもだめか。どうすればいいんだろ
C-c が効かないのはなんでだろ。
f:id:cho45:20060920161553p
typester さんのプラグインのおかげで、tiarra の設定を変えずに、ほかのクライアントと共存できるようになった。別に共存する必要ないんだけど、気になって使えなかったのでhogehoge。
半透明ターミナル全画面で、別のターミナルを立ち上げて screen -x するといい感じ。 発言したいときもウィンドウをターミナルを変えないでいい。 (といっても cmd-数字 で簡単に切り替えられるけど)
関係ないけど、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.
っていうのがでまくってしまう。
#!/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 有効にした。だんだん謎な方向に
vim で行番号で乱れるやつは screen を起動するときに -O をつけてあげればいいっぽい。
CoreDuoTemp の表示なのだけど、気温と湿度に一瞬見える。
パスワード書いてあるのに 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
ちょっとまえからシコシコ準備してたのをとりあえず入れ替えた。
トップページは /blog/ のコピーになり、/logs/ は /blog/ へリダイレクトしてる。フィードも、/logs/latest.{rdf,atom} に関しては /blog/index.{rdf,atom} にリダイレクトしている。
それ以外はスルーしているし、Taglibro も削除していないので、URL の恒久性は一応保たれてる。気持ち悪いけど仕方ない。だんだんごちゃごちゃしてく。
adsense のことでごたごた考えるのが面倒くさいので、xhtml フレーバーも現時点では text/html で配信してる。要改造
入っているプラグイン一覧。括弧は今はたぶん使ってない。
section 用に他のプラグインをいぢってるのでかなりアレゲ。
Template::Toolkit を使うようにしようと思ってたのだけど、とりあえずやめた。XREA に入っていない (頼むのがめんどい) のと、既存 flavour を書き直すのがめんどかった。
Taglibro に XML 簡単に編集できるオンラインな画面つければよかったような気もするけど、どうしても作る気が起きなかったっていうダメさ。なんにしてもタグ打つのが面倒くさくて仕方ない。
先週 MacBook を購入しぴこぴこいぢっております。一ヶ月ぐらいは四苦八苦するかと思ったのだけど、使ってみるとそんなに思いっきり迷うのは最初の一日ぐらい。
結局、今まで Windows で使っていたソフトウェアもオープンソースのものが多く、ついでにターミナルをメインに使うようになってきたので、あんまり違いがあるわけじゃない感じ。
ただ Cmd キーが自分的に便利で好き。Terminal.app とかでペーストするとき、gnome terminal だとマウス右クリックして P 、putty だと右クリックとかやっていたのが Cmd+V でできるので気持ちいい。
GNU 系のツールは darwinports で入れて、あとは Firefox, Thunderbird, Vim をさっさと入れました。
しかしながら Terminal.app がなかなかくせ者で、デフォルトだと使えない。
でもって、なにやらこれで screen を起動して vim 編集すると表示乱れて困ったりした。screen の man をぼーっと眺めていたら (課題やれよ) 、-O をつけたくなったのでつけてみると一応大丈夫っぽくなった。
あと、typester さんの影響で irssi を使い始めた。ターミナルを半透明にして、後ろに screen -x でアタッチしたターミナルおいとくと眺めながらできてよろしい雰囲気。
デフォルトだと共通全ログがないっぽいので、script を書いて突っ込んだ。全ログの発言に window 番号つけてあげて Alt-N で移動だぜどーん。Alt-P でバックログだぜどーん。って感じに楽しんでおります。
他
SSHKeyChain は SSH を使ってなくても、キーチェーンのロック状況を確認できていい感じ。でもスリープから復帰すると落ちたりする。
Parallels には今は壊れた PC の XP Home を入れて遊んでみたり。レジストはまだしてない。と、いうか、メモリ1Gだときつい。
Office をどうするかと、画像処理をどうするかがめがっさ問題です。
pac を指定して全部のブラウザを設定しておけば、pac をスイッチするだけでプロキシ設定変えられるよなぁ。
pac 内からローカルのファイルにアクセスしたりとかするのは無理っぽいから、webrick で配信して、スイッチするページを動的に作る、とか、か。でも重そう。
あ、起動時に一回だけ読まれるのか。だめじゃん。
Reload ボタンとかあるけど、そこ開くのがめんどいんだよ><
irssi で Alt-11 押そうとして終了させてしまう。
ロケーションバーに直入力!
クイックサーチだけ登録する。ぐらいだとかこいい気がした。
css, ecma, gecko, ruby, cpan あたりかな。ローカルに保存しときたいな。
Mozex 入れた。
/usr/bin/open %t
で、.txt に関連づけられた?プログラムを開くようになる。
これで問題はないけど、gvim を明示的に指定したいときってどうすればいいんだろ。Vim.app とかを
うーん。C-c が送れない。Cmd-. も同じだ。screen が起動してなければ大丈夫みたいだけど、なんでだろう。
しかたなく別の window 開いて ps aux G hoge とかやる日々
お腹痛い。
man が英語なのが嫌だなぁ。どうにかしたい。
なんかとぴあさんと話してたら治った。再現性がわからない。stty -a をおぼえた。いつもお世話になっております。
スリープから復帰するとおかしくなるみたい。SSHKeyChain が原因かもしれない。
とりあえず stty intr ^C (^V^C で入力) すれば有効になるみたいなのでこれでいこう。
何らかの通知を送りたい。例えば ssh 先の irssi からこっちの Growl へ通知を出すとか……
起動時にエラーがでたり文字化けしたり。
export LANG=ja_JP.UTF-8
して open -a Vim.app すれば化けないのだけど、Dock から起動するときにアレなので
~/.MacOS/environment.plist 編集した。リログインすると設定が反映されるみたい。
SSHKeyChain の環境変数のところでも変更できる。
iTunes が独自の変なタグつけるのがいやなので、他のを探してるんだけど全然見つからないわな。fb2k 使いたい!!
検索すると Darwine で動かしてる人がいる。それはやだなw
http://cogosx.sourceforge.net/
replaygain は読まないっぽいけどシンプルなのでこれを使ってみる。
scrobbler のことを忘れてた。だめだな
動くレベルになったのかな。前 windows でやったときは日本語がダメだったけど
Nightly on Intel Mac を入れてみた。Id3 読めてない。日本語のファイル名は大丈夫ぽい
mt-daap を ubuntu に入れた。hamachi 経由だけど、普通に itunes 起動したら見つけてくれるんだなぁ。
deb パッケージを dpkg -i で入れて /etc/mt-daap.conf を設定しただけ。拍子抜けな簡単さだ……
お腹痛い。。
UniversalBinary って書いてあるけど嘘だよなぁ。PowerPC エミュレーションで動いてる。
と思ってフォーラム見てみたらまさにソレなスレッドがあった。
_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 ejruby 丸投げ。でも goo の辞書が上位数件しか返してこなくてつまんない。というかコマンドラインで使える辞書を調べてない。edict と何かを組み合わせるのかな。
id3v2.4 でつけてると曲頭の一分ぐらいが飛ぶ模様。付け直して rsync 中
あ、違う。なにか他の要因がありそう。STE で付け直すととりあえず直るけど
外出先 (というか学校 ) から DAAP が実用になるかやってみる。
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 バージョンは今はたぶんちゃんと動いてないな。
256kbps の mp3 を再生中だと 70KB/s ぐらいネットワーク受信がある。外からだと結構きつそう。
のラッパ使って ruby cgi を動かしてると、require でロードされたスクリプトがずっと残るのでときどきハマる。一度 load に書き換えてあげたりして
についてまた書こうと思ったけど、やっぱ友達いないのが最大原因なのでやめた。
小さいアプリケーションでもフレームワーク使った方がいいっていうのはすごく思う。だけど、例えば XREA で使おうとか思ったとき、Rails や Catalyst ぐらい巨大だと CGI 動作じゃ死にたくなる。
なんか K*NT 指向なんだけどさ!!
今動いてるやつも少し前にインポートしたよ!
http://lab.lowreal.net/trac/browser/chokan/old/0.2
新しいの作ろうとしてるけど全然やってないよ!
深く考えずにとりあえずコーディングしてみる、というのを実践してみた。「やった感」と「動いた感」はあるので楽しい。いっぽう、「無駄なことをいっぱいしているんじゃないか?」「設計がダサくないか?」と不安になる。
思うに、ひたすら経験な気がした。他のソースを読みまくって、「あーこういうケースで、あのすぱーはかーはああしていたなぁ」とか思い出すと、コード書いてるときにあんまり悩まないようになる、気がする。そうなりたい。が、どこまでモチベーション続くかは一生謎
http://lab.lowreal.net/trac/browser/chokan/trunk
ファイルの配置変えとかと、config の統一をやった。とりあえず動く、けど、既存プラグインを移植してない。
@s << notice() より、@chokan.notice() とかのほうがよさそう。そうすれば余計なインスタンス変数 (プラグインごとに設定してる) をなくせるかなぁ。
$ 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 しかとってなかった。増やした。
他のプラグインのメソッド呼べたらいいよなぁ。依存関係とかできちゃうけど
思考の Continuation が欲しい。何か用事があったりしたときに、オブジェクト化して保存しておいて、終わったらそれを呼びなおす。
アクリルの立方体みたいなのにぐにゅぐにゅとした継続が入ってる。今の気持ちとか、考えてることがそのままその立方体に入ってて、あとで取り出せる。
なんかせっぱ詰まってると「あああれがやりたい」って思うけど、終わってからだと気が抜けて完璧にやる気がなくなってる。継続保存ができるなら、それをとめておいて継続できるのになぁ、って、駅を歩きながら少し前に考えた。
あと、思考のバージョン管理がしたい。思考というか、自分全体をリポジトリに突っ込んで管理したい。つまり過去の状態にいつでも戻れるという前提があるならば、変化も楽だよねというアレなんじゃないんですか? って、誰に聞いているの?
学校の授業で「モチベーションが足りないだけ」みたいな感じのセリフをよく聞くのだけれど、ホントに一番問題なのはモチベーションが足りないことなのだから、そのセリフって意味がないよなってよく考える。(そう言ってる本人でさえ「やる気があればできるはず」と言っているし、それってすなわち「やる気がでないこと」が一番問題じゃないんだろうかと)
モチベーションを保つのってめちゃくちゃ難しいことだと思うし、特に人から「やれよ」といわれてやることに対してのモチベーションなんて、二日持てばいいほうなんじゃないのかなぁと個人的に思う。
じゃあどうやってやる気を出させるか、がアレなんだけど、自分でさえそれがわからないのだからこれ考えるのって難しいよなぁ、なんても思うから、「やる気ないだけ」に逃げるのもわからないでもなかったりするけど、一つだけ言えるのは、山を越えてない人間に安易な批判をしても、やる気を殺ぐだけで次のものは生まれないよねってこと、だと、おもう、よ。
といっても、他の真面目な人や、大学教員なんかは、ホントはもっと違うのかもしれないけど。例えば同じグループワークの人とかは、あんまり乗り気でないことを乗り気に変換させてるし、すごすぎる。ホントに無理だ。
どうやってモチベーションのサイクルを作ってるのかが全然わからない。
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 相当の機能をつけないとなぁ。
そういえば darwinport で入れた。途中で失敗するけど、あきらめずに port install し続けたら入った。
思うところあって open-uri を使うように変えてる。Net::HTTP も慣れちゃったんだけど、毎回 URI(uri) して uri.host やったりするのはやっぱりめんどいよねって思った。
二本指スクロールと右クリックは、全部のトラックパッドに装備すべきだ。。
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 とかやっても、そんなパッケージないって言われるのはなんだろう。
全然使わないなぁと思いきや .. で上のディレクトリは使う、と思いきや、.. は alias だったので本気で auto_cd 使ってないことを改めて思った。なんなんだ
今の実装だと plugin の実行順番は完全に不定 (Hash 使ってるし、Thread 内で起動してるし)
これだと「このプラグインを実行したあとは他のプラグインを起動しない」みたいなのが作れない。うーん。
置き換えてみた!! 自分で書いたのと見比べると自分の無駄が多すぎて萎える。
filter で削除ってるので archive 系はこれより先に読ませないとだめだ。
そういえば vim って「○」とか「☆」とかの幅がおかしいけど、直す方法ってあるんだろうか。。
set ambiwidth=doubleらしい。うーん
DAAP 通すと Sigur Rós とかの文字が置き換えられちゃう?
rubyforge で cho45 って登録しようとしたらもうIDが存在しますって言われた。どういうことだ。
ああw むかし自分でとってたらしい。マジで記憶がない。
これ gem でインストールできるようにするのってどうすればいいんだかわからない。
quickfix 開くと描画乱れるなぁ
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
金曜日の深夜に大変だなぁ。
webrick + Queue で IRC ブリッジを実装してみようとおもったけど、ログインとかどうしようとか考えて進まない。
webrick はどっちにしろバックエンドになるから、Apache で CGI 動かして、認証をそっちでやればいいのか。そうすれば weblogin.rb が使える