welcome 2010

新年あけましておめでとうございます。 今年も思いっきり走り抜けたいと思います! Webエンジニアとしても学びたいことはたくさん。 今年の目標としては、 KVS(Key-Value Store)について深く学ぶ モダンPerlなコードを書く システム運用(トラフィックの監視、負荷分散など)を学ぶ 一つめはKey-Value Store。 僕が一番最初に担当した案件からKVSを利用したメディア配信系のシステムだったりして、 全社的にNoSQLへの流れが強くなっています。 業界全体としても大規模なWe…

HTML5でConvolutionFilter

HTML5のcanvasを使って簡単な画像処理をやってみます。 試してみたのは基本的な畳み込みフィルタ。 今回はAS3のConvolutionFilter風のインタフェースで作りました。 Demo: HTML5 Image Processing (Convolution Filter) 汎用的に作ろうとすると少し時間がかかりそうだったので、ひとまず畳み込みフィルタの部分だけ。 引数はAS3のものよりずっと少なく、matrix, divisor, bias の3つ。 matrixXやmatrixY…

FITC Tokyo 2009 参加レポート

FITC Tokyo 2009 に参加してきました。 どのセッションも聞き応えがあり良い刺激になりました。 個人的にはNVIDIAさんの話を興味深く聞かせていただきました。 ランチをゆっくり食べ過ぎたせいで途中からしか聞けませんでしたが、内容としては Tegra用に最適化されたFlash Playerでは、H.264ビデオの再生などを行うときにTegraのアクセラレーション機能を利用でき、しかも省電力! OpenGL ES関連 (企業ブースではARのシューティングゲームを展示してた) OpenC…

OpenCV 2.0 – cv::Mat 行列演算

前回に引き続き、cv::Matクラスについて。 今回は行列演算に関する機能を使います。 上記のシンプルな連立一次方程式を cv::Mat クラスの機能を使って解いてみます。 [cpp] // 係数行列 A float dataA[][3] = { {1.0, -2.0, 3.0}, {3.0, 1.0, -5.0}, {-2.0, 6.0, -9.0} }; // 行列 B float dataB[] = {1.0, -4.0, -2.0}; Mat matA(3, 3, CV_32FC1, d…

OpenCV 2.0 – cv::Mat

OpenCV C++ matrix class 前回、OpenCV 2.0 – cv::Ptr ではスマートポインタである cv::Ptr について調べました。 今回はOpenCV 2.0のC++インタフェースの中でも重要な役割を持つ cv::Mat クラスについて。 このクラスは従来の IplImage 及び CvMat に取って代わるものになっていますが、 かなり大きいクラスなので何回かに分けて調べていきたいと思います。 cv::Mat はマルチチャンネルとROI(Region …

OpenCV 2.0 – cv::Ptr

A template class for smart reference-counting pointers OpenCV 2.0では cv::Ptr という参照カウント方式のスマートポインタが用意されています。 これは Boost C++ Library の shared_ptr と同様のもので大変便利です。 参考:参照カウント – Wikipedia 一時的にcv::Ptrクラスのrefcountというメンバをprotectedからpublicに変更して挙動を見てみます。 (cx…

OpenCV 2.0を試してみた

この連休中にちょっとOpenCV 2.0で遊んでいました。 ライブラリの規模がかなり大きくなったのでソースを読むのも大変です; IplImage や CvMat は 新しいC++インタフェースでは cv::Mat に取って代わります。 (1.1preで追加されたWImageクラスの立場は? 関連:cv::WImage ? OpenCV 1.1) また、メモリ管理が賢くなっているので、後始末は各クラスのデストラクタに任せておきましょう。 boostのshared_ptrと同様のスマートポインタ(c…

Thriftでバイナリデータを扱う

Thriftでバイナリデータをやりとりする方法。 以前、FlexでXML-RPCを利用していた時は、確かbase64にエンコードして返していたと思うので、 Thriftでも同様にバイナリデータはbase64にエンコードして返すようにします。 Thriftのソースを漁っていると TBase64Utils とかいうのを見つけたのですが、 どうせboost必須なフレームワークなのでboostを使ってエンコードしてみます。 インタフェースとして、 ・サービス名を Test ・プロシージャ名を retur…