2008年 01月 12日

どうしても見出しの幅が他とあってないのが気になるのでなおした……パターンメーカーって使って作った画像をはじめて使った気がする。なんかいまいちなんだよね……
あと右側にあいてしまう部分をうめたいけどいいアイデアが思い浮ばない。

2008年 01月 11日

svn log と Trac につけたはてなスターをつかって ChangeLog を自動生成するアイデア

svn2cl がアレなのはノイズが多いからだよなぁと思って (でも ChangeLog と svn log をどっちも書くのはめんどう)

 ~/coderepos/lang/perl/Config-Pit/trunk
$ changelog-with-hatenastar.rb
ChangeLog of http://svn.coderepos.org/share/lang/perl/Config-Pit/trunk

2008-01-09  SATOH Hiroh <cho45@lowreal.net>

        * [interface] @4310:

            Implement pipe function for output stdout (but tty)
            Always notice profile switching for ppit ui.


        * [interface] @4309:
                 like ruby pit

        * [bug] @4282:

            Add local not to violate global env.

あんま☆つけてなくておもしろくないというか、タグの changeset は trunk の log に残らないので release のログは工夫しないとだせないことに気付いた…… あとマルチユーザを考慮してないのでまずい (4390 は SATOH さん(笑)のコミットではない)

この方法の利点は、はてなスターによってあとからつけられるので、「このチェンジセットをもうすこし詳しくして ChangeLog に書きたい」みたいなのを簡単にできるところと、他の人のチェンジセットにも情報増やせるところ。ただ、はてなスターの quote は quote なのでブックマークレットとかつかって書かないといけないのはめんどい。

ちゃんと使うには

  • svn log に書く内容からタグを抽出 (簡単)
  • はてスタ簡単につけるブックマークレット (UI がめんどい)
  • 出力の形式をまともに (めんどい)

とかやらないといけない。ChangeLog を手書きするのと、svn log から抽出しつつ、はてスタで補足するのとではどっちが楽かってなんか微妙だ。


ここまで書いてきづいたけれど、ChangeLog を先に書いて、svn di ChangeLog した内容を svn ci 時のデフォルトにすれば、すくなくとも ChangeLog と svn log をどっちも書くのはめんどう は解決できるからそのほうがいい気がした。あれー

tags もみるようにして、出力を改善した。

開発してるときはコミットログにタグいれるのよくわすれるからあとからどうにでもなるのはいいかもなぁ、とおもってちょっと使ってみる (あたらしい gem で)

自由なスタークオート

location.href = "javascript:"+encodeURIComponent(uneval(function () {
	var orig = Hatena.Star.AddButton.prototype.addStar;
	Hatena.Star.AddButton.prototype.addStar = function (e) {
		if (e.shiftKey) {
			var q = prompt("Star quote:");
			var t = new Ten.Element("div", {style:{display:"none"}}, q);
			document.body.appendChild(t);
			var r = window.getSelection().selectAllChildren(t);
			orig.call(this, e);
			document.body.removeChild(t);
		} else {
			orig.call(this, e);
		}
	};
}))+"()";

OpenStruct で String キーの Hash と Symbol キーの Hash のめんどいのをどうにかする

p OpenStruct.new(:foo => "bar").foo
p OpenStruct.new("foo" => "bar").foo

どっちでもいけて便利ですね @config = OpenStruct.new(config) とかやっとけば自然とどっちにも対応できますね

userscripts.org でコマンドラインからスクリプトの追加/アップデート

$ sudo gem install userscripts_org
$ userjs create foobar.user.js
$ userjs update foobar.user.js

とかできるやつです。

ついでに linkuserjs.rb を統合してあります

$ userjs install foobar.user.js
# Fx で foobar.user.js をひらくだけ

$ userjs install -l foobar.user.js
# Fx で foobar.user.js をひらき、インストールされたあとに
# インストール済みのファイルを指定したファイルへの symlink にする

なんか説明しにくいのですが、ようは symlink にすると svn ci がすぐできるようになります。Mac のコードしか書いてないので他の OS だとうごかない (チェックさえしてないのでつけよう)

一応 Windows (cygwin) と Linux (firefox にパスが通っていること前提) のコードをいれました。テストしてないのでうごくかわからないのですが

2008年 01月 10日

Changes の基準

外部から見える変更 (書くことないときはリファクタリングしてどうなったかだけ) かな

設定を管理する pit の Perl もづーる Config::Pit

http://subtech.g.hatena.ne.jp/cho45/20080102/1199257680 の Perl 版です。最低限うごくようになったところでコミットして #CodeRepos の方々にお世話になりながらリファクタリングをしました (ありがとうございます)。(Path::Class++) コマンドラインツールは Yappo さんが書いてくれました (Yappo++)。

テストとか一通り書いて 0.01 をリリースしました。が既にあれげなところの修正が入ったので 0.02 をリリースしました。

一通り本家 ShipIt の感じもつかめてよかった。MANIFEST の確認を怠っていたら .svn をふくんでリリースしてしまってめっさあせる……


プロトタイプだけ書いて放置していたら PHP 版が先に! はやい!