technologyの最近のブログ記事

PhotoShareへアップした写真をブログで利用したくて、以前からスクレーピングして独自にRSS生成してたのだけどオフィシャルにフィードをサポートしないの?と masuidriveくんに聞くたびに「来週には公開します」とそば屋のように言っていたのでw 首を長くして待っていた。そしてついにリリース。

PhotoShare の Atom/JSON/JSONP Feed の正式発表

 PhotoShareの写真のFeedに関しては、少し前に実装が完了していたのだが、「サンプルをきちんと整えてから」などと考えているといつまでたっても発表できないので、とりあえずFeedのURLのみ発表してしまうことにした。

すでにブログのサイドバーに写真を並べてたりしたので特にやることはなかったけど、試しにMTのActionStreamで読み込めるようなプラグインを書いてみた。

PhotoShareActionStreams_1.0.zip

たとえばブログトップのサイドバーに出すとこんな感じで表示される。
PhotoShare ActionStreams

JavaScriptで絵を描く(Processing.js) のつづき。

最適配置にする試みからスタートして、なんか動きのある方が楽しいなとごにょごにょいじってる内に時間つぶしちゃった。

2009年4月のユニークビジター数

データ出典: compete






        

各種ウェブサービスの規模を1枚で表現するために書いた図をブログに載せようと思ったのが始まりだったのに、いつの間にか Processing および Processing.js のお勉強開始。さらにはTTFフォントをSVGに書き出ししたり、ゴールが見えなくなりそうで息切れ気味。

ひとまず静止画だけはできたので一旦公開。

2009年4月のユニークビジター数

データ出典: compete






        

仕事でMTをごにょごにょいじってる。バッチ処理中にMT::Blogのclone()を使ってガンガン作成しようとするとエラーが出た。

DBD::mysql::st execute failed: Column 'templatemap_template_id' cannot be null at /path/to/MT/extlib/Data/ObjectDriver/Driver/DBI.pm line 348, <> line 4.

管理画面のブログ一覧から「ブログの複製」を実行すると特に警告もなく終了する。もちろんログに何も出ていない。

いろいろ調査していくとMT::Blog::clone()で、え?と思う実装が。(以下ソースは 4.23 のもの)

        require MT::Template;
        $iter = MT::Template->load_iter(
            { blog_id => $old_blog_id, type => { not => 'widgetset' } }
        );
        my $tmpl_processor = sub {
            my ( $new_blog_id, $counter, $tmpl, $tmpl_map ) = @_;
            $callback->($state . " " . MT->translate("[_1] records processed...", $$counter), 'tmpls')
                if $counter && ($$counter % 100 == 0);
            my $tmpl_id = $tmpl->id;
            $$counter++;
            delete $tmpl->{column_values}->{id};
            delete $tmpl->{changed_cols}->{id};
            # linked_file won't be cloned for now because
            # new blog does not have site_path - breaks relative path
            delete $tmpl->{column_values}->{linked_file};
            delete $tmpl->{column_values}->{linked_file_mtime};
            delete $tmpl->{column_values}->{linked_file_size};
            $tmpl->blog_id($new_blog_id);
            $tmpl->save or die $tmpl->errstr;
            $tmpl_map->{$tmpl_id} = $tmpl->id;
        };
        $counter = 0;
        while (my $tmpl = $iter->()) {
            $tmpl_processor->($new_blog_id, \$counter, $tmpl, \%tmpl_map);
        }

パッチでも送りつけようかと思ったけど、とりあえず普通にCGI経由で使っていれば問題がないので(顕在化しない)ブログに公開する程度にする。

Subversion と Trac の導入は過去に何度もやっているのに、毎回調べないと思い出せないくらいの頻度でしか行わないので面倒。ということで CentOS のケースをメモ。

ついでに SyntaxHighlighter の導入もして、かつコマンドライン風味とPerl風味を自作してみたが、その件は後日。