カテゴリー
technology

MT::Blog::clone()の罠

仕事で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経由で使っていれば問題がないので(顕在化しない)ブログに公開する程度にする。

カテゴリー
misc

はてなと任天堂提携(うごメモはてな)


本日(18日)14時、はてなの新サービスおよび提携の発表会があった。たまたま知人から案内を受けたので行ってみた。
新しい会社との提携を発表する際、「はてなと同様、京都をベースとして世界へ羽ばたいている会社と」まで近藤さんが言った瞬間、社名を言う前に会場内「おぉー」という驚きの声に包まれた。そう、任天堂だった。
その後任天堂からDSi専用ソフト「うごくメモ帳」の紹介がはじまり、メモのオンライン共有サービス部分にあたる「うごメモはてな」の紹介を近藤さんが説明した。
発表の詳細についてはニュースサイトにゆずるが、その後質疑応答では細かいところはともかくとして、任天堂とはてながどうして協業するのかへの答えが簡単言えば「いっしょにやりたいから」だったのはとても好感が持てた。また直接金銭上のやりとりは一切なく(開発費用はお互い負担)作り上げたものが結果として利益になればいいと。なにより協業できること事態がうれしいという雰囲気が感じられた。
彼らは京都がベースであることはともかくとして、お互いの社風や目指すものがにていることにシンパシーを感じてる様子は伺えたし、任天堂がネット関連サービスを提供している企業との協業する相手としては最良の相手だと思う。なんかほんわか温かい気持ちになりました。

カテゴリー
product

Nikon Media Port UP 体験

Nikon Media Port UPNikon Media Port UPNikon Media Port UPNikon Media Port UPNikon Media Port UPNikon Media Port UPNikon Media Port UP
アジャイルメディア・ネットワークのMEDIA PORT UP 300xモニタープログラムに当選し12/2に届いたUP(Nikon Media Port UP300x)、この2週間持ち歩いて使ってみた。基本的には会社と自宅の間、歩きと電車内での使用。自宅から駅までの10分弱の歩きと電車内での視聴を試した。

カテゴリー
technology

TimesWidgets by The New York Times

あの The New York Times がブロガー向けにウィジェットを提供しはじめた。かなりに自由にカスタマイズできるようになっていて、使ってみたくなったので張ってみる。

しかし新聞が売れなくなって来ている昨今、オンライン版サービスで直接広告収入に結びつかない活動をいつまで続けられるのかね?うまくいくなら見習いたい。

カテゴリー
misc

Baron Dance by Denki Groove

適当に電グルのPV探してたら、なんだかカッコイイものを発見。

Jugando con Fuego from Alex_Higuera on Vimeo.

カテゴリー
technology

Subversion + Trac 導入 on CentOS

Subversion と Trac の導入は過去に何度もやっているのに、毎回調べないと思い出せないくらいの頻度でしか行わないので面倒。ということで CentOS のケースをメモ。
ついでに SyntaxHighlighter の導入もして、かつコマンドライン風味とPerl風味を自作してみたが、その件は後日。

カテゴリー
moblog

UPキター


けど、開ける時間はない。夜だな。

カテゴリー
technology

MT4 アップグレート+Redirect+Action Stream

MT4が出たのは知っていたが別に必要がなかったのでほって置いたのに、なぜか昨夜火がついて 3.34 からのアップグレードを実施。
移行自体はあっけなく終了。テンプレート関係の問題もでず、そのまま再構築しても以前と全く同じデザインで再構築された。ついでに以前から気になってたデータベース charset が latin1 のままになっていた問題を解決して満足した。
あまりにもうまくいきすぎてつまらないので、テンプレート初期化を実行。あー、もうー。その後は結構面倒。標準テンプレートに戻ったわけなので、新規ブログを作るときのテンプレートデザインプロセスそのまま。
まず Widget Manager がオフになっているのでプラグイン設定画面でオン。次にWidget 関連のタグ変わってたので変更(WidgetManager -> WidgetSet)。widget関係の標準スタイル名が変更になっているので修正(module-XXX -> widget-XXX)。あとはウィジェットセットを新規に作成して、ウィジェットセットをサイドバーで読み込むよう include の記述をして完了。

カテゴリー
misc

Pheedoもスタンドアロン型RSS広告開始

いつからなのか不明だけど Pheedo もスタンドアロン広告(フィード中にエントリとして広告を入れる方式)を開始してることに本日気づいた。
pheedo_rssad.png
半年以上前、日本ではRSS広告社のみスタンドアロンに対応していて、その他はインライン型だけだった。どちらが効果が高いのかはっきりとはいえないものの選択肢がないよりはある方が検証可能になるという判断でRSS社へ変更した(もちろん仕事での話)。
そのほかの判断材料としては、Pheedoでは同時期に1クライアントが一括で期間契約という方法しかなく、広告主も特定グループへ参加しメディア側もネットワーク化して広く配信するような方法はRSS広告社に限られてたこともあった。契約内容によるかもしれないが空きを出さずに広告を入れ続けるには後者の方は望ましいということもあるし。
さて広告タイプが増えるのはいいことなのでウェルカムだけど、今後は露出先のバリエーションが広がることに期待。自ら露出先を増やしていかないことには在庫がこれ以上増えない状況になってきているのはYahoo!もRSS広告社も気づいていて、オープン化といって外部パートナーサイトまでネットワーク化していったり、スケールの差はあれどRSS広告社は自らFeeMoというウィジェット(ブログパーツ?)を提供してRSSリーダーなどを経由せずに露出する仕組みを提供したりと頑張っている。
想像もつかないような配信先はないのか?米国ではオンラインの広告が雑誌にでたりテレビに流れたりする動きもあって取り組みとしては面白い。GT5などネット接続前提のゲームなんかでもその余地はある気もする。ユーザーにとってもメリットがある形になればより現実的になるので、GT5の場合の例だとスポンサー付動画やスポンサー付車体のようなこともあるかな。ないかな?
■ヤフー、「行動ターゲティング広告」を他社サイトへ拡大 – 六本木経済新聞
■RSSフィード購読支援サービス「FeeMo」概要|株式会社RSS広告社
■【GISフォーラム Vol.3】Google AdSenseは雑誌や新聞など紙媒体にも展開:RBB TODAY (ブロードバンド情報サイト) 2006/10/13
■Google Press Center: News Announcement

カテゴリー
misc

Video Player としての Excel

以前「グラフィックエンジンとしてのExcel」というエントリを書いたんだけど、今回も Excel の使い方がスゴイ。

なんと Excel でビデオを再生している。といっても正確にはASCII化されたものだけど。(ソース: 世界初、『Excel』で音楽ビデオを配信:『AC/DC』の曲 | WIRED VISION)
AC/DC スゴイ、いやクリエータースゴイ、ん?考えた人スゴイ。そもそもなぜこんなことしたのか?と言えば「どんな企業のファイアーウォールも、Excelは通す」からだそうな。なるほどw