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月 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月 10日

blosxom section plugin

section

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

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

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

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 が選択される、というだけ。
もうちょい頑張ろう。