AS3SXの裏側

前回のエントリー、AS3SXはPaaSとして成功するかの続き。 AS3版PaaSとも言えるAS3SXですが、サーバ側のシステム構成は少し変わっていることを前回述べました。今回はそのシステムと通信するクライアント側に焦点を当ててみます。 AS3SXのコンセプトを台無しにする方法 前回のエントリーで少しだけ書いたのですが、AS3SXはソケットサーバをフロントに置き、クライアントはそのサーバに直接接続してTCPで通信を行っています(エンドポイントをHTTPに見せてるのは実はフェイク)。 AS3SXはそ…

Perlの画像処理モジュールメモ

僕はぜんぜん詳しくないのですが、Perlの場合はどれが一番モダンで使いやすいんですかね。 このブログを見てくださっている方はわかるかと思いますが、ブラウザ上で動く画像処理のサンプルを書く時はActionScriptを好んで使っています。その理由は簡単で、Flashは描画系が優れているから。また、最近だとChrome Developer Toolsの使い勝手がとても良いので、JavaScript(+ Canvas)でサンプルを書くことも増えてきました。 ただ、この2つの言語は仕事で使うわけでもない…

Mooseメモ

業務メモ。 Class::Accessor::Fast を使って書かれたモジュール群を Moose を使って書き換え中。。 使い始めてまだ3日くらい。使いこなせるようにがんばる。 Mooseについて Mooseは Meta Object Protocol (MOP) という概念を採用したオブジェクト定義の技法を提供する。 (Class::MOP のラッパー) Webアプリケーションフレームワークの Catalyst も5.8系からMooseベースになったとのこと。 型制約 Mooseで指定したア…

perlのithreads

業務とは離れたことをほんとは書きたいのですが、半日つぶしちゃったのでせっかくなのでメモ。 perlのスレッド(ithreads)について。 ithreadsはスレッド生成時にすべての変数をコピーし、Copy on Write※は行われません (C/C++から使えるpthreadsだとスタック以外のメモリ領域は暗黙的に共有され、コピーは行われない)。変数をスレッド間で共有したい場合は、宣言時にthreads::sharedのshared属性を明示的に付ける必要があります。ちなみに、C/C++でOp…

Cassandraについて

分散ストレージのCassandraについて調査中。 CassandraはNoSQL(Not only SQL)データベースの一つ。TwitterやDiggがMySQLからCassandraに移行したことでも有名です。公式サイトのOverviewにもあるように特徴は以下のようになっています。 特徴 Proven (証明) Facebook, Twitter, Diggなど多くのサービスでの利用実績 Fault Tolerant (耐障害性) レプリケーションによりサーバがダウンしても自動復帰可能 …

Thrift + OpenCV

Thriftを利用してOpenCVの関数をスクリプトから呼んでみます。 といってもRPCで繋げるだけで特別なことをする必要はありません。 ここでは、画像の各チャンネルの平均値と標準偏差を求めてみます。 サーバ側でOpenCVの cvAvgSvd() を利用すればOK。 まず、最初にRPCのインタフェースをThrift IDLに書きます。 ここでは、平均と標準偏差を求める関数を2つ作ることにしました。 各チャンネルの値が欲しいので戻り値は list<double> に、 引数は画像ファ…

Thrift::例外処理

Thriftでの例外処理について。 macbookへのインストールについてはThriftインストールを参照。 hello, world 的な話はたくさん情報が公開されているのでそちらを参考するといいかと。 ここでは例外処理についてメモしておきます。 TException ThriftはRPCフレームワークです。 このRPCにおいてなんらかの理由でサーバと通信ができなかった時などの異常系処理。 ThriftではTExceptionという例外オブジェクトを送出します。 PerlとPHPの例を載せます…