プログラミング

iPhoneでSocial Graph

iPhoneでやるメリットはあんまりないのですが、ちょっと前にiPhone買ったし、せっかくSDKがあるのだからと、iPhone SDKでちょっとプログラムを書いてみました。facebookから提供されているFacebook Connect for iPhoneを使って、facebookサービス内におけるf…

Gauche

職場で、ここ半年程前から、もちまわりで何からしらのプレゼンをすることになっています。毎週課会で発表。内容は、何かアプリケーションの提案だったり、ちょっとしたTIPSを披露だったりします。僕自身は、自分が知っていて、同僚が知らないような画像認識…

AR

近頃、YouTubeやニコ動で見かける動画に、AR(Augmented Reality)ネタのものがあり、自分でも試してみたいなぁ〜と幾つか調べてみました。現実逃避です。

flickr API 再び

わけあって、指定したタグがマッチする画像をflickrからダウンロードしてくれるプログラムが必要になったわけですが、以前書いたスクリプトがうまく動きません。以前のエントリーで、 FlickrClientのウェブページによると、もうメンテしてないのでBeej's Pyt…

ポリゴンの内外判定

なんだかゲームプログラミングのトピックのように聞こえますが、ポリゴンの内外を判定するアルゴリズムが必要になりました。画像中の特定領域を指定する方法として、LabelMeのデータでは領域毎にポリゴンを使用しているのですが、各々の領域から特徴量抽出を…

flickr APIの試用

今さらですが、flickr APIを使ってみました。研究の都合上、あるテーマにそった画像をかき集めてくる必要があったのですが、まさにぴったりなサービス。以前からデジカメで撮った写真を共有するのにflickrを使ってましたが、他人の写真をダウンロードする事…

expを含む計算

先日、浮動小数点の精度で問題になっていたプログラムの解法を教えてもらい、プログラムの書き直しを行っています。問題になっていたのは、 という式を評価するにあたって、の部分(Mahalanobis distance)の値が小さすぎて、expを計算すると0になってしまうと…

__gxx_personality_v0

g++でコンパイルできたオブジェクトファイルに対して、nmを実行すると %g++ -c test.cc %nm test.o ... U __gxx_personality_v0 ... という未定義のシンボルが必ず含まれている。このシンボル、例外処理を ハンドルするための機能を提供するもので、-fno-exc…

Valgrind

またまたメモリ管理ネタですが、よくあるリーク検出ツールです。Linuxでしか利用できなさそうですが、高機能です。この手のツールでは、mpatrolを愛用してきましたが、mpatrolより高機能。マニュアルによるとメモリリーク以外にも、 アロケートされていない…

newの置き換え

メモリ管理だの使用量調査だのはじめると、mallocやnewの置き換えが必要になる。幾つかの方法があるのだが、同僚に、newをグローバルに置き換えるのだが、名前空間を使うという方法にしないかと提案する奴が現れた。いったいどんなメリットがあるのか説得力…

スタック使用量計測

組み込み機器用のソフトを書いていると何かとメモリ使用量が気になる。ヒープの使用量なんからは、malloc/free(C++なら、new/delete)をオーバーライドしてやれば計測可能だが、スタックはそうは行かない。以前から、どうしたらいいものか思案しつつ、あきら…

再びB-Tree

ウェブページなんかを参考にしながら、なんとか完成しました。といっても、キーの削除ができていませんが...あと、実際にディスク(ファイル)に書く所も追加したいです。

数独ソルバー

思いつくがままに、数独ソルバーをCで実装してみました。早速、本屋で買った数独の問題集を入力して試してみると、解けない問題があることが判明。その問題集では、問題を、Easy/Medium/Hardの3つの難易度にわけているが、Easy/Mediumの問題は難無く解決。H…

B-Tree

ちょっと週末に時間ができたので、思い出したようにToDoをこなしてみました。まずは、B-Treeの試作。後々使える事もあるだろうと思い、Cで実装。参考にしたのは、ずいぶん懐かしい本であるが、C言語によるアルゴリズム辞典。学生時代、何かとレポートの役に…

Boost C++ Libraries

STLを使い始めたついでに、さらに便利なBoost C++ライブラリを使い始めました。あればいいなと思っていた、文字列処理関連の機能が大抵用意されていて便利です。tokenizerやregex(regular expression)なんかがいいですね。参考になるページも何件か発見。 bo…

ソースコード検索

世の中、すっかり検索ブーム。Googleは、もちろんのことデータベースの使い方なんかをかいてあるウェブページもよく見かける。みなさん知りたがりやさんで、無精な人が多いってことでしょうか? かくいう自分も、かなり無精。最近では、ソースコードまで検索…

STL

組み込み機器向けにプログラミングをしていると、C++を使っていても、ExceptionやTemplateを使わないことが多い。なぜなら、その手の機能がサポートされていないことが多いからである。そんなわけで、STLやBoostには縁がうすい。ものは試しで、これを使って…

SOM

SOM(Self Organizing Map)というのは、クラスタリングの手法。2次元平面、あるいは3次元空間上にm次元ベクトルで表現されるn個のサンプルをマップすることができる。マップされた結果は、近いベクトルほど距離的に近く表現される。Googleで検索すると、App…

エラーコード

自分のためだけにソフトウェアを書いている場合には、さほど問題にならないが、チームで協力してソフトウェアを書いている場合、エラーコードがめちゃめちゃになると大変なことになる。各自勝ってにサブモジュールを書き始めると、モジュール間でエラーコー…

ID3パーサ

ID3とは、mp3に代表されるような音楽ファイルのヘッダあるいはフッターとして付加されるメタデータの記述フォーマットで、音楽ファイルのメタデータとしては標準的なものである。ID3の仕様・歴史に関しては、id3.orgが詳しい。 ID3には、幾つかのバージョン…

再帰呼出なしでプログラミング

組み込み機器プログラマーならよく聞く話だが、再帰呼出無しでプログラミングってのは仕事上多々ある。なんでそんなことするのかというと、スタックをけちるためである。スタックはケチるが、ヒープを使うことにはなる。で、なんでヒープは使えるのかという…

状態変数

スレッドプールを作る必要があったので、Programming with Posix Threadsのwork crewの例題を読み直してみる。作りたいのは、プライオリティーキューからスレッドプールのアイドルスレッドを見つけて非同期に処理を実行しつづけるwork crew。多少の変更は必…