VOXはじめました

この前購入したXactiで遊びたいということもあってVOXアカウント取った。

秘密結社ケロリンQ

で、駄文、妄想の類はこっちに書くことにした。

使っていいなと思ったのは分類がタグなんでゆるーく結びつく感じがいいのと、公開レベルを自分だけにすると下書きと一緒な感じになるので、思いつくままに書き散らしておいて、公開したいやつだけ公開するというスタンスが取れることかな。

そのうちChangeloglMemoを同期させたくなるかもしれんが、APIって公開されてるのかな?AtomAPIが使えるらしいけど。

PlotKit+Ajaxでチャートを描画

MochiKitのチャート描画ライブラリであるPlotKitでヒストグラムを描かせてみた。

del.icio.us - Mochikit

ちょっとした折れ線チャートとかヒストグラム、パイチャートの類はPlotKit使うと便利そう(javascriptだけでできるし)。

Ajaxで試したかったので、わざわざJSON形式でファイルを別に作成しておいて、非同期で読み込ませるようにした(data.json)。

{
  "name" : "sqrt",
  "value" : [[0, 0.3],[1, 1], [2, 1.414], [3, 1.73], [4, 2]]
}

スクリプトはこんな感じで結構短い。

  function plot_async() {
    var url = 'data.json';
    var d = loadJSONDoc(url);
    var gotData = function (data) {
    var layout = new Layout("bar");
      layout.addDataset(data.name, data.value);
      layout.evaluate();

    var chart = new SweetCanvasRenderer($("chart"), layout);
    chart.render();  
    };
    var dataFetchFailed = function (err) {
      alert("data not found");
    };
    d.addCallbacks(gotData, dataFetchFailed);
  }

これで割と綺麗なグラフが作成される。

plotkit

デモも置いておく。

フレームワークに組み込めば、お手軽にチャートが作成できそうな感じだ。

ActionScript3.0を覚える

AS関連を色々あさってたら、

subtech - Pink Blossom Diary ( ̄―+ ̄) - AS3

あとブクマコメントを見るに始め方が解らないつってるけど、ほんと入門書としては素晴らしすぎる prog_actionscript30.pdf, flex2_devguide.pdf があるわけで(きちんとしたドキュメントが無償配布、というのも adobe がオフィシャル提供する大きなメリットの一つですね)、それだけ読めば普通のプログラマならすんなり入れるわけで、誰かがコマンドラインでの開発方法を sdk ダウンロードするところからまとめればいいんじゃないかな、と思ったけど別に書かなくてもいいんじゃね、と思った。

500p以上あって、内容も充実してるっぽいので読み始めた。

1章は言語的にどういうもんなのかを説明してるんだけど、読み終えて感じたのは、AS3ってjavaとjavascriptを混ぜ混ぜした感じだなぁって思った。

で、BioActionScriptライブラリ作るメリットがわからんとか書いたけど、あってもいいのかな、むしろあったほうが効率あがるかなと思った。どういった部分にフォーカスするかだけれども。

となると、Perlmolっぽいものがあってもいいかナァ。特にparser関連に特化したライブラリが欲しい。インタラクティブに合成したい化合物をエディットするとそれにともなって予測値が算出されるといいかも。で更に、履歴をケミカルスペースに撒いたりとかするといいんじゃないかな。

メタモの早割

メタモの超早割 どうすっかなー。

多分行くと思うんだけど。

Xacti Vox

ふむーなかなかいいかも。ってか先週末Xacti買ったのでかなり気になる。

動画デジカメ「Xacti」新機種、CGMサービスと連携へ - @IT

シックス・アパートは、エントリーの公開範囲を家族や友達、趣味のグループなど、グループ単位で指定できる次世代ブログサービスの「Vox」において、Xactiのユーザーグループを作る。

Voxのアカウントとろうかな。

Flex2とCatalystをJSONでつないでみる

Creating a Flex application using the TurboGears frameworkを参考に。

JSONでやり取りしてるからflex2の部分はそのままでフレームワーク部分を変えるだけでいい。MVCフレームワークに小さいMVCフレームワークが乗っているという風にも取れるけど、かなり疎なので、自前でwebapiサービスを提供しつつ、サービスを受けるっていう感覚に近いかもしれん。

イメージにするとこんな感じ。 ファイルはココに置いておいた。

flex2_Catalyst

CatalystのviewはJSON。で、Flex2は受けとったJSONをmodelにしてASでロジック書いて、MXMLでUIのデザインをやればいい。 そのためすっきりとした感じはする。後は、チュートリアルみてたらFlex Builder2が欲しくなった。UIデザインするにはGUIのツールがやっぱ楽でいいと思う。

flex2に関してはCreating a Flex application using the TurboGears frameworkのオンラインチュートリアルを眺めてください。corelibを使うとJSONのシリアライズ/デシリアライズをやってくれるので必要。c:flex2extlibというフォルダをつくって放り込んでおいた。

コンパイルは

mxmlc -compiler.include-libraries c:\flex2\extlib\corelib.swc \
-- address.mxml

とやるとswfができるので、catalystプロジェクトの root/staticに放り込む。

flex2はこれで終了。続いて、というかメインのCatalystをいじるわけだけど、こっちも大して面倒なところはない。

TGはhttp://localhost:3000/からアドレスリストをJSONで受け取って(R)、http://localhost:3000/save,http://localhost:3000/deleteでそれぞれCU,Dという実装だったので、Catalystもこれに併せて、Catalyst::View::JSONとDBIC::Schema::Loaderを使ってつくることにした。

まず

catalyst.pl MyApp

でプロジェクトをつくって

script\myapp_create.pl view JSON JSON

でJSON用のviewを作成。モデルはSQLiteで。

まずSQLite

sqlite3 myapp.db < myapp.sql

ちなみにsqlはこれ。

CREATE TABLE address (
  id INTEGER PRIMARY KEY,
  full_name TEXT,
  phone TEXT
);

続いて、DBIC::Schema::Loader

いつも、明示的に書いてるので、触るのはほとんど初めてなんだけど、スキーマクラスって自分で書かないといけないんだろうか? こんなの。

use strict;
use base qw/DBIx::Class::Schema::Loader/

__PACKAGE__->loader_options
  (
   relationships => 1
  );

ヘルパーあんのかな?あとで調べる。こういう細かい部分はTGのSQLObjectはあんま考えないでいいので楽。データもcatwalkからブラウザでちょこちょこ入れられるし。

Root.pm,save.pm,delete.pm

Root.pmはアクセスするとアドレスリストのJSONを返す。

sub default : Private {
  my ( $self, $c ) = @_;

  my @result = $c->model('DBIC::Address')->search();
  $c->stash->{addresses} =
    [
     map {{fullName => $_->full_name, phone => $_->phone, id => $_->id}} @result
    ];
  $c->forward('MyApp::View::JSON');
}

save,deleteは普通にDBIC操作なので省略。

やるべきことをやったら動かしてみる。、

swf

こんな感じでflashが、、、なんかきもちいい。

あと今回手を動かしていく過程で以下の本がマイウィッシュリストに投入された。

ProductName Actionscript 3.0 Cookbook
Joey Lott
Oreilly & Associates Inc / 3034円 ( 2006-10 )


この時期頻発する送別会を2,3見送ればこの中の2冊は確実にゲットできるのになぁとちょこっと思ったヨ。っていうかかなり本気で悩む。

とりあえずTurboGearsの本は欲しいなぁ。買いかなぁ、見送りかなぁ?もし読んだヒトがいたらアドバイスなどください。

MSYS+cpanでエラー

WindowsXPのActivePerlのバージョンあげてcpanコマンドでモジュール入れようとしたら、

Error exit delayed from previous errors

とtarできねーっていうようなエラーが出てはまった。

どうもMSYSのtar,gzipが悪いみたいだと気付くのに1時間かかった。MSYSから他のgzipに変えたらさくっとなおった。

BioFlashってのがあるのね

ほう、こんなプロジェクトがあったとは。

BioFlash.org - Flash, Flex and ActionScript for biology and bioinformatics

BioFlash.org は Flash, Flex, ActionScript を利用することによりインタラクティブなバイオインフォマティクスソフトウェア、ウェブサイトの構築を推進するプロジェクトです。 現在バイオ関連データを ActionScript オブジェクトとして扱うための BioActionScript ライブラリを開発中です。

なんか面白そうなツールがあるので後でソース読もう。

このプロジェクトはRIAを目指すのかなと思ったのだけど、ASでBioActionScript ライブラリを創るメリットってのがイマイチ見えないナァ。biorubyとかbiopython,bioperlの既存のライブラリを活用する以上の何かが得られるんだろうか?ロジック書くのが楽になるのかな。

flex2でのエラーがわからん

週末はWindows上でflex2をTurbogearsでJSONを使ってDRUDさせるのに夢中になってた。で、なかなか面白かったので、じゃぁフレームワークをCatalystに変えてFC6上で動かしたろかと、ごそごそしてたら思わぬところで躓いた。swfがWindowsXPだとコンパイルできんのにFC6だとエラー吐くんですけど。

mxmlc -compiler.external-library-path /usr/local/flex2/extlib -- address.mxml
設定ファイル "/usr/local/flex2/frameworks/flex-config.xml" をロードしています \
/usr/local/flex2/bin/mxmlc: line 34:  5279 セグメンテーション違反です \
java $VMARGS -jar "$FLEX_HOME/lib/mxmlc.jar" +flexlib="$FLEX_HOME/frameworks" $*

むー。メモリが足らんのだろうか?

Xacti買った

U隊長の使っているEXILIM Z4だと、動画が汚くて気に入らないというので、もうちょっと気軽に(mpeg4で)動画の撮れるXactiを購入した。

スナップショット感覚で気軽に動画が取れるってのはかなり良いみたい。picasa使えば写真と一緒に管理してくれるので付属のCDからインストールするものはないかな。これでGPS機能とか内蔵されてれば更にヨサゲなんだけど。

ちゃんと撮りたい場合にはDVカメラを使えばいいけど、そういった場面は意外に少ないし、実際編集が楽しくてたまらんってのは少数派だろう。というわけで、Xactiみたいにそこそこの画質で手軽に動画を撮るっていうコンセプトはありだと思うんだけど、大型電気店でも以外に置いてるところは少なかった。DVDハンディカムとか買って大して編集しないんだったら、こっちの方が取り回しが楽な気がするんだけどなぁ。

あとは、結局うけるメタデータってなんじゃろかね。