fastladderメモ

動かすのに必要だったもの

sudo aptitude install ruby ruby1.8-dev rubygems
sudo aptitude install libfreeimage-dev
sudo gem install rails
sudo gem install sqlite3-ruby
sudo gem install feed-normalizer

DBセットアップ

rake db:migrate RAILS_ENV=development

起動

./script/server -e development

すばらしすぎるなぁ。

by typester / at 2008-02-07T14:35:00 / ruby · debian / Comment

JSON::XS を実戦投入した

いままでずっと JSON::Syck を使い続けていたのだけど、いまの JSON::Syck には

/y|Y
|n|N
|yes|Yes|YES
|no|No|NO
|true|True|TRUE
|false|False|FALSE
|on|On|ON
|off|Off|OFF
|null|Null|NULL
|~
/x

の正規表現にマッチする値はシングルクオートでくくられてしまうという仕様があり、これはJSONの仕様に反するのでパーサーによっては正しく処理できないものがある。

これがFlashから使うJSON APIでもろにはまって、adobe の corelib に入っている JSON のパーサーはこれをパースできない。(rubyのyamlパーサーでもエラーになるようだ)

cho45さんがこれを直すパッチを書いてくれたのだけど、いい機会なので JSON::XS を試してみた。JSON::Syck のドキュメントからも言及されてるしね。

Catalyst::View::JSON から使うには以下のような感じで MyApp::View::JSON をかけばOK。

package MyApp::View::JSON;
use strict;
use base 'Catalyst::View::JSON';

use JSON::XS ();

sub new {
    my $self = shift->NEXT::new(@_);

    my $dumper = JSON::XS->new->latin1;
    $self->json_dumper(sub { $dumper->encode($_[0]) });

    $self;
}

1;

JSON::Any つかってないのは Any だと環境変数で使用ライブラリを上書きできてしまっていやなので XS を直使用している。

一日くらい社内でテストしたけどだいじょうぶっぽかったのでさっき本番投入してみた。どうだろうな。

by typester / at 2008-02-05T16:51:00 / perl · catalyst / Comment

branchでもtrunkでもないときはdepotpathそのまま表示するようにしてみた

show svk depot path in zsh prompt

これだけでもいいかもしんない。

by typester / at 2008-02-04T22:26:00 / zsh · svk / Comment

.zshrc といっしょにcodereposにあげた。

http://coderepos.org/share/browser/dotfiles/zsh/typester

by typester / at 2008-02-04T21:43:00 / zsh · svk / Comment

さっきのsvkpath.plの修正版

File::HomeDirPath::Class を使わずに愚直にかいてみたがあまり体感変わらず、ためしに YAMLYAML::Syck にしてみたら激早くなった。

#!/usr/bin/env perl

use strict;
use warnings;

use YAML::Syck;

my $path   = $ARGV[0] or die;
my $config = YAML::Syck::LoadFile( $ENV{HOME} . '/.svk/config' );

my $hash = $config->{checkout}{hash};
my @path = split '/', $path;

my $svkinfo;
do {
    $svkinfo = $hash->{ join '/', @path }
} while !$svkinfo and pop @path;

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

こんな感じ。

このくらいの体感速度なら割と普通に使えそう。

by typester / at 2008-02-04T19:57:00 / zsh · svk / Comment

zsh の PROMPT に svk の trunk|branches/... を表示してみるテスト

毎回svk infoしてどこにいるか確かめるのが面倒になったので、

PROMPT='%(?..exit %?)
 %{%}%~%{%} %{%}`perl /home/typester/dev/scratch/svkpath.pl $(pwd)`%{%}
%{%}%(!.#.$)%{%}%{m%} '

PROMPTをこんなにして

#!/usr/bin/env perl

use strict;
use warnings;

use YAML;
use File::HomeDir;
use Path::Class qw/file dir/;

my $path   = $ARGV[0] or die;
my $config = YAML::LoadFile( file(File::HomeDir->my_home, '.svk', 'config') );

my $hash = $config->{checkout}{hash};
$path = dir($path);

my $svkinfo;
do {
    $svkinfo = $hash->{"$path"}
} while !$svkinfo and $path ne ($path = $path->parent);

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

とかしてみた。

これで

show svk info

こんな感じになるわけだけども、毎回perl呼んでるので重い。

軽くできないかなー。

perlでやるなら裏でデーモン化してそこ呼ぶようにするのがいいのか。でもそこまでがんばる必要があるのかどうか。

by typester / at 2008-02-04T18:46:00 / zsh · svk / Comment

xなんとかさん

ボクの名前の由来 - ANOTHER PIECES

最近では xcezx さんのことをはなすときに、「せず」さんがさぁ、なんてことをいうと「せずさんてだれ?」ということになって結局、「ほら、あのx何とかって人だよ」って言うと通じるということが多く、二度手間なため、最初からxなんとかさんって呼ぶようにしてる。

by typester / at 2008-02-01T00:00:00 / life / Comment

コード再利用の話

基本自社サービス or 個人サービスしかつくってないので、本当にcatalystを使っているとコピペ地獄になる。

また同じことかいてるなーってのが多すぎるため、むかついてなるべくコピペを減らす工夫をしている。

codereposにあげたcatstarterってのもそうだし、あとはヘルパーを結構書いてる。

Catalystのヘルパーってまぁ要するにコードジェネレータなんだけど、ユーザー登録とかログイン・ログアウトとかほんとにいつもかいてるのでその辺はヘルパー一発で雛形生成するようにしてたりとか、jsのajax apiのサーバーサイドとかもjson形式を決めうちにしちゃってこれも雛形生成している。

いまの Catalyst::Helper って新しいコード生成には使えるけど既存のクラスにメソッド追加とかそういうのできないのが不満。なんかつくりたい。

この辺の話はちゃんとまとめたいな。catalyst conやりたい!

by typester / at 2008-01-30T12:18:00 / perl · catalyst / Comment

Catalyst::Plugin::URI::MtimeQueryとCatalyst::Plugin::Assets - dann@catalyst - Catalystグループ

Catalyst::Plugin::AssetsにCatalyst::Plugin::URI::MtimeQueryのアイデアをインスパイアしたものを加えると、Assetsも結構使えるかも知れないなぁ。export_with_mtimequeryみたいなのがあればいいのかも。

これ今まさに仕事で使おうと思ってかいている。

そのうち公開します!

by typester / at 2008-01-30T12:14:00 / perl · catalyst / Comment

SoozyCon4の資料

お疲れさまでしたー。

過去のスライドも一緒にまとめてcodereposっておきました。

http://svn.coderepos.org/share/docs/typester/soozycon4/index.html

by typester / at 2008-01-29T09:33:00 / life / Comment

22 23 24 25 26 27 28 29 30 31

(Page 26 of 203)