2009-01-01から1年間の記事一覧

local::libと.modulebuildrc

自宅の開発マシン(MacBook)と自宅サーバー(色々)のCPANはlocal::libで インストールしたのを1つのgitリポジトリにしているのですが、 .modulebuildrcのpathがフルパスになっていてハマったのでいちおうメモ。 diff --git a/.modulebuildrc b/.modulebuildrc …

Git 1.6.6 Relnoteメモ

git

25歳になりました。それはさておき、1.6.6が出たらしいので例によってRelnoteをピックアップして気になったところにコメントしてみる。個人的には、設定ファイルの~/を展開してくれる機能だけでもupdateする価値はあるなぁといった感じで他にも細かいけどよ…

MySQLユーザー会2009年冬に参加してきた

http://atnd.org/events/2512元々はkazuhoさんにShibuya.pmの懇親会でお金を借りてしまってて、年内に返したかったという非常に個人的な事情で参加して、tritonnの開発者の人に会えたりする機会はあんまりなさそうだし、運用とかに関して色々聞いてみようか…

MogileFS::Client::WithCacheを書いた

MogileFS::Clientは通常、get_pathsで得られた結果をperlbal側にX-REPROX-CACHE-FORでキャッシュさせることでtracker(MySQL)へのアクセスを抑えるように運用するのが一般的ですが、たまにアプリ内でget_file_dataしてそれをもとに微妙にカスタマイズして画像…

彼氏がtmt.vimを使ってなかった。別れたい

Text::MicroTemplateで書かれているHTMLのテンプレを素のvimのシンタックスハイライトを有効にした状態で開いていると、ひどい状態になってしまいます。というわけで、eruby.vimを参考にしつつid:mikihoshiが書いていたのを、色々細々調整してみてだいたい変…

Testライブラリのテストを書く

テストライブラリを書くときに local Test::More::Level += 1 を忘れるとテストがこけたときに呼び出し元がおかしくてどのテストを直せばよいかわからないということになってしまいます。ということでしっかりそういうテストも書いておきたいですね。Test::B…

手元のgitリポジトリ一覧をgithubのwatched reposとsyncする

先日書いた、複数のgitのレポジトリを巡回するスクリプトは結構便利なのだけど、「その日にwatchしたプロジェクトとかはcloneしてこないとupdateをチェックできない」という欠点があって、IRCとかで話題になって興味を持って、家に帰ったらチェックしようと…

git 1.6.5 RelNotesメモ

git

もう数日経ってますが、git 1.6.5が出たっぽいので大雑把にRelNote-1.6.5.txtを訳しつつ、個人的に興味があったところを引っぱってみる。 いまいちわかっていないところもまずまずあったりはするので、コメント等で補足していただけるとありがたいです。 GIT…

複数のgitのレポジトリを巡回するスクリプト

git

ここ最近perl界隈の人たちもgithubに移行してきてて、watchしてるプロジェクトが大幅に増えてくると、githubのtimelineを全部みることもできないし、リポジトリの更新をサボりがちだったのですが、各プロジェクトを巡回してupdateだけ取ってくるスクリプトを…

git-svn使用時におけるsvnリポジトリの移行

svnリポジトリを別のサーバーに移して、 svn switch --relocate svn+ssh://old.example.com/path/to/project svn+ssh://new.example.com/path/to/projectみたいなのでワーキングコピーを切り変えるようなケースをgit-svnでやってみたメモ。まず.git/configの…

CPAN::Packgerと設定ファイル

CPAN::Packagerの設定ファイルの前提として、 なるべくなら設定しなくてよいのがベター(CPAN最新が依存関係が適切に設定されているならそれが一番望ましく、問題を見つけた場合はなるべくチケットを出すなりした方がよいかなと。) 独自パッチを当てる場合で…

libdrizzleのruby拡張ライブラリ

http://d.hatena.ne.jp/tokuhirom/20090612/1244764189ちょっと面白そうだったので、軽く調べた感じだと今のところなさそうだったので、上でやってることができるぐらいに作ってみた。ちょっと時間があまりなくてまだベンチマークとかはとったりできてない。…

Debianパッケージ構築のメモ

Debianパッケージはぱっとみ概念とかがわかりにくいので、色々省きつつ大雑把にとりあえず作ったりする上で必要な情報を説明してみる試み。簡単なdebはとりあえず作ったりできるようになってみて、個人的にはこういう情報がまとまってると楽だったなーという…

git-svnでリモートリポジトリのブランチにコミットする

ふつうに使ってるのですが、そういえばメモしてなかったなーと思い、なんとなくメモしておく。ちょっとBKなんですがもっとスマートなやり方はないものか。。。 $ git checkout -b working_branch $ git svn info # => trunkのURLになる # 何かしら作業する $…

gitのリポジトリを立てる(SSH経由)

git

そういえば、githubに頼りっぱなしで、共有リポジトリを作ってどうのこうのというのは試してなかったなと思いこんな感じでやってみた。 $ sudo useradd -d /home/git -s /bin/rbash -c "" -m -k '' git $ cd /home/git/ $ sudo cat > .bash_profile export P…

equivsのwrapperを書いた

先日書いたequivsは非常に便利なのですが、設定ファイルのフォーマットが依存関係が多くなってくると改行ができなかったりする関係で非常に見通しが悪くなってしまいます。そこで、YAMLで設定を書けるようにしたものを書いてみました。こんな感じに設定が書…

依存関係のみを列挙したdebを作る

自分の環境とかを作るときに依存関係のみを記述したdebとかがあると気軽に環境を再構築しなおせたりして便利。equivsというパッケージを使うと依存関係のみを記述したパッケージを簡単に作れるらしい。 $ equivs-control walf443-setup $ vi walf443-setup #…

ruby 1.9.1のdebian packageを作る

wig.rbを1.9環境で動かしてみようかなと思い、 lennyでaptitude install ruby1.9してみたが、正規表現を作ってるところでinvalid multibyte ...みたいなコンパイルエラーが出るようで、こういうのは、1.9.1にあげれば直るんじゃないかと思い、debを作ってみ…

a == b == c

C

ふと目にしたCのコードでa == b == c と書いてある箇所を目にしてこれコンパイルできるのかなと思ってやってみるとコンパイルできたので見てみた。 yoshimi% cat test.c #include <stdio.h> int main () { int a, b, c; a = 0; b = 0; c = 0; if ( a == b == c ) { pr</stdio.h>…

第7回Gotanda.rb

もう何回目か数えるのもめんどくさくなってきましたが、今日もひたすら前回の続きをしてました。Rackの上で書いていると、 def action return not_found if cond1 return not_found if cond2 return not_found if cond3 [ 200, { 'Content-Type' => 'text/pl…

YARVの気持ちに触れる方法

ふとYARVの気持にふれてみようと思ったんですが、どうやるんだったかよく忘れてしまうのでメモ。 yoshimi% ruby -e 'puts RubyVM::InstructionSequence.compile("(0..100).each {|i| }").disasm' == disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>========== == catch table | catch type: brea</compiled></rubyvm::instructionsequence:<compiled>…

第7回Gotanda.rb

今回も前回の続きで、仮実装で済ませていたモデルの部分を実装してみました。このアプリはどうせあまり実用目的で使う予定はないので、実験的にTokyoTyrantのTCTDB形式で使用してみることにしました。http://github.com/walf443/todoit/blob/a23d4a2405cda2c…

実行しているrubyインタプリタを使って別のrubyスクリプトを実行する

ベンチマークをまとめて走らせるプログラムなどを書いているようなときは、 system('/usr/bin/ruby some_script.rb')とか書きがちなのですが、 /usr/bin/rubyと固定で書いてると、 別のところにある1.9.1とかでふと実行してしようと思ったときにスクリプトを…

第6回Gotanda.rb

今日は一人だったので大崎広小路のベローチェの2階でひたすら前回やってた続きを作ってました。http://github.com/walf443/todoit/commits/masterあとこの前のincludeした関数を明示的に書くやつは、もともとこのプロジェクトで使いたくて作ったので、改良し…

クラス内で使いたい関数を明示的にincludeできるようにする

rubyで次のようなコードはわりとよくあると思います。 # some/utils.rb module Utils module_function def html_escape str # ... end def html_unescape str # ... end end # some/more_utils module MoreUtils module_function def some_func end end # so…

第5回Gotanda.rb

今日は一人だったので、前回ちょっと進めてたRackレベルで書くようなWebアプリをオレオレ構成で作ってました。http://github.com/walf443/todoit/tree/masterタスク管理する何かがすごく作りたいかというとそうでもなく、最近RackがMerbブームとかの影響でか…

ベンチマークスクリプトの管理

git

classxではちょっとベンチマークスクリプトを書いてみると、通常のクラスよりも非常に遅いこともあり、定期的にベンチマークを取って、あとからリビジョンも追えるように以下のようにリビジョンを残しつつ、結果をベンチマークスクリプト内にコメントとして…

第3回Gotanda.rb

いつも通り月曜8時から大崎広小路のベローチェにて。今回はnikuさんが書いているYma4rというモジュールでclassxが使われてるらしいので、nikuさんと一緒にコードリーディングした。http://github.com/niku/yma4r/tree/fe5360f0c908a18116c91f4e9be0b79300962…

Gotanda.rb

とりあえず毎週月曜20時ごろから、大崎広小路にあるベローチェ2階でやってみようかと思います。とはいっても特に参加登録とかはないです。特にやることは決まってなくて、それぞれが今興味持ってるネタをコード書いたり、本を写経したり、ペアプロしたりしま…