FlickrNet

公式が配布しているドキュメントでは

Photos searchResult = flickr.PhotosSearch(searchOption);

となっているが、現バージョンでは

PhotoCollection searchResult = flickr.PhotosSearch(searchOption);

とするのに注意。


検索結果としてPhotoCollectionが取得できれば、foreachで各要素にアクセスできる。

foreach (Photo photo in photos)
{
	try
	{
		PhotoInfo info = flickr.PhotosGetInfo(photo.PhotoId);

		for (int i = 0; i < info.Tags.Count; i++)
		{
			try
			{
				Console.Write(info.Tags[i].TagText);
			}
			catch (IOException e)
			{
				return;
			}

		}
	}
	catch (FlickrNet.ParsingException)
	{
	}
}

Photoクラスのインスタンスにその写真のタグ情報などが入ってると思いきや、Flickr.PhotosGetInfo(Photo.PhotoId)で別途取得する必要があった。

FlickrNet.ParsingExceptionは検索中、"Unknown Elements: Video"というメッセージを吐いて落ちることがあったので、それ対策。動画形式…?具体的な内容はまだ調べていない。

Flickr APIを扱うライブラリ

FlickrAPIは様々な言語から利用できる。

しかし日本語圏内でのウェブ上では、どちらかといえばサービスマッシュアップの傾向が強いので目的やサンプルの内容が偏りがち。
特にFlickr上のデータをクローリングして写真だけじゃなくユーザに関する情報を集めたい自分のような人間にはPerlJavaScriptを使ったサンプルはどうも分かりづらい。特に写真は取ってこれてもユーザ情報やグループ情報までは載ってない。単にWebプログラミングに慣れていないだけなんだけど。

そこで注目したのが、.NETからAPIを叩くことができるFlikrNet。割とドキュメントやサンプルも丁寧な感じ。

FlickrNet API Library
http://flickrnet.codeplex.com/wikipage?title=Examples&referringTitle=Home


APIキーがあれば普通のC#で触れるのでWebプログラミングに慣れてなくても感覚的につかみやすい。Web屋さん以外でFlickrを色々いじくりたいような奇特な方はFlickrNetを使えば楽になるかも。

Visual Studioのインテリジェンス頼みならドキュメント見なくても感覚で使えるし、だいたい合う。

さくらレンタルサーバ上でPythonを使うときの注意点


参考

SAKURA Internet // サポート - オンラインマニュアル - CGIPHP・SSI について
http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml

CGIが500エラーになってしまいます
http://www.usamimi.info/~sakura/cgi-bin/patio/patio.cgi?mode=view&no=265

アプローチ

巨大なデータセットから人気のあるスポット(≒よく撮影される場所)を見つけたい.
これは2次元空間上のクラスタリング問題といえる. Kennedyら(WWW 2008)はこの問題にk-meansクラスタリングを用いた.
この論文ではMean-shiftクラスタリングを用いている. 人気スポットを見つけるには, 分布やクラスタ数が未知なのでノンパラメトリックな手法を用いないといけない. この手法ならデータスケールを決めておくだけで適用できる. データスケールは2つ, 都市:100km ランドマーク:100m, としているらしい.

キャラクタの手にアイテムを持たせる

武器や様々なオブジェクトを単独でモデリングして、それをキャラクタに持たせる。
どうもDXライブラリ周辺ではそのままの情報が見つからなかったので備考録的に。

手にアイテムを持つ = キャラクタモデルの手の位置ピッタリに武器を描画する
ということらしい。コンストレイントをキーワードに調べるといいようだ。


DXライブラリではMV1GetFrameNum関数を使用すると実現できそう。

DXライブラリ置き場 3D関係関数リファレンス
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.html#R6N1

取り敢えず手の位置にアイテムを描画させるだけなら、このリファレンスのサンプルコード内、手のフレームを取得して、ローカル座標からワールド座標に変換した行列の3行目の成分をアイテムの座標としてセットする。

これで手の位置にアイテムがちゃんとくる。

でもこれ回転要素はどうしたらいいんだろう。もうちょっと調べてみてサンプルコードを書きたい。