海外に行く機会が増えたので、自分用の変圧器を買った。
といっても、最近はほとんどのガジェットがUSB充電か、ACアダプタも100~240Vまで対応してるのでほぼはんだごて用として使われる予定。
ヨドバシで4500円ぐらいだったが、デジカメ買った時にたまったポイントで買えた。
あと最近買ったデジカメ。
売り上げランキング: 6897

コンパクトでも思ったより多機能
前に買ったのが2年半以上前で、17000枚ぐらい撮った。もうボタン押してもメニューが出たり出なかったりする。
海外に行く機会が増えたので、自分用の変圧器を買った。
といっても、最近はほとんどのガジェットがUSB充電か、ACアダプタも100~240Vまで対応してるのでほぼはんだごて用として使われる予定。
ヨドバシで4500円ぐらいだったが、デジカメ買った時にたまったポイントで買えた。
あと最近買ったデジカメ。
コンパクトでも思ったより多機能
前に買ったのが2年半以上前で、17000枚ぐらい撮った。もうボタン押してもメニューが出たり出なかったりする。
前の記事に続き、Flickr.NETを使う。
今度はFlickr Uploaderを作ってみた。Flickr.NETには
・Flickr APIへの認証(read/write/delete権限の取得)
・ファイル名を指定してアップロード
などの機能が揃っているのでさくっと作れた。
できたもの => Archive
ドラッグアンドドロップした写真1枚をアップロードする
■oAuthでの認証のためのtoken発行
今回はAPI keyに加えて、secretも使ってfrobを作ってtokenの発行を行わないといけない。
まずkeyとsecretを取りに行く→Flickr Services
その辺の仕組みは1つ前の記事と、
・Flickr API の認証 – まちゅダイアリー (2005-11-01)
・s.h.log: Flickr::Uploadで写真をアップロード
を参考に。
■プログラムを書く
まずfrobを作る。あとで使うのでとっておく(2回作ると違う値ができてしまうので)
Flickr flickr = new Flickr();
flickr.ApiKey = “your-api-key”;
flickr.ApiSecret = “your-api-secret”;
String flickr_frob = flickr.AuthGetFrob(); // frobの作成
で、認証画面をwebブラウザで開いて「OK」ボタンを押してもらう
System.Diagnostics.Process.Start(flickr.AuthCalcUrl(flickr_frob, AuthLevel.Write)); // 認証画面をブラウザで開く
OK押してもらってから、さっき作ったfrobを使ってtokenを取りに行く。
try{
Auth auth = flickr.AuthGetToken(flickr_frob);
flickr.AuthToken = auth.Token; // token取得
}
catch (FlickrApiException ex)
{
Console.WriteLine(ex.Message);
}
無事tokenを取って、Flickrオブジェクトにセットできたら、ファイル名を指定すればアップロードできる。tagやtitleやdescriptionを適当に付けてみた。
Photo p = new Photo();
p.PhotoId = flickr.UploadPicture(“PhotoFileName”, “test photo”, “これはてすとです”, “test,uploadertest”);
p.UserId = auth.User.UserId;
System.Diagnostics.Process.Start(p.WebUrl);
uploadされた写真のphotoIdが返ってくるので、それを使ってWeb上でのURLを求めることも出来る。今回はまたブラウザで開いてみた。
UploadPictureメソッドはどうやら内部でThread.Sleep()を呼んでいるみたいなので、そのままThreadで実行すればマルチスレッド化できる。
uploadを途中で止めるメソッドが無いみたいだけど、途中で止めたい時はスレッドで実行してAbort()してしまえば止まった。
詳しくは今回作ったアプリのソース参照
Flickr.NETという.NET Framework用のライブラリを使って、Flickr APIからタグ検索してみた。2年ぐらい前に使った時より、dllのファイルサイズが1.5倍に増えててた。
できたもの => Archive
■dllを手に入れる
FlickrNet API Library – Home
[Release]から2.1.5をダウンロードしてきた。
んで、[参照の追加]でリンクして、
using FlickrNet;
する。
■API keyを手に入れる
Flickr ServicesからAPI keyを手に入れないといけない。メールアドレスを登録してすぐ発行してもらえる。
今回は「デスクトップアプリ用」を選択。
(検索だけなら、secretとtokenを使ってoAuthで認証する必要は無い)
■プログラムを書く
Flickr APIのラッパーなので、基本的な仕様はFlickr APIの方を見た方が良い。
今回はflickr.photos.searchを叩いてみた。
まずFlickrというクラスが全ての根になっている
using FlickrNet;
Flickr flickr = new Flickr(“your-api-key”);
flickr.photos.searchでは色々なパラメータを渡すが、Flickr.NETではPhotoSearchOptionsクラスで集約されている。今回はタグだけでeveryoneから検索するのでこれだけだけど、もっと色々パラメータが指定できる。
PhotoSearchOptions opt = new PhotoSearchOptions();
opt.Tags = “food, sfc”;
opt.TagMode = TagMode.AllTags;
Photos photos = flickr.PhotosSearch(opt); // 検索
Photosクラスで返ってきた結果からURLを取り出して、表示する。
PictureBox.Imageにストリームから読み込ませるための関数 DownloadPicture(“URL”) を利用してダウンロードする。
Photo p = photos.PhotoCollection[0]; // 1枚目
pictureBox.Image = Image.FromStream(flickr.DownloadPicture(p.MediumUrl));
textBoxPhotoUri.Text = p.WebUrl;
soup.ioのフィードから、自分がsoup.ioへpost/repostしたものだけを抜き出すYahoo Pipesを作った。
Pipes: soup.io – remove imported feeds
これで作ったfeedをtumblrに読み込ませるようにしておいた。
tumblr以外にもFlickrやdel.icio.usからも読み込ませているので、そのままsoup.ioのフィードをtumblrに読み込ませると、reblogの純度が落ちてしまうので。
でもこれって循環しちゃうのかな?
AIRを使うと、flash.filesystemやflash.desktopなどのデスクトップアプリ用のクラス群が使えるようになるので、やってみた。
Air beta3で開発する環境を作って、前からやってみたかった
撮影した写真はプログラムと同じフォルダに保存される。
できたもの => CameraSaveJpeg.air (Adobe AIR beta3)、Archive
なお、半透明ウィンドウにするとスクリーンショットに写らなくなるので、デジカメで撮った。
■開発環境を整える
・Adobe Labs – Downloads: Adobe AIR
AIRの実行環境
・AIR:Flash CS3 Professional Update – Adobe Labs
Japaneseを選んでインストール
・Jinten Blog Blog Archive FlashDevelop Beta5
FlashDevelp3.0 Beta5で、AIRとmx系クラスのコード補完を有効にする方法
[Project]→[Properties]→[Compiler Options]→[Intrinsic Libraries]に
Library\AS3\frameworks\Flex3
Library\AS3\frameworks\AIR
を追加する
で、普通にFlashDevelopでFlash IDE用のプロジェクトを作成。
さらにFlashCS3からもAIRプロジェクトを作成。FlashDevelopと同じフォルダを指定する。
Flex3.0のコンパイラはとりあえず必要ない。
■証明書を作る
・AIR Beta2でWEBCAMの画像をjpgに保存するサンプル – hatayanlog
が詳しい。AIR Beta2から証明書を作らないとならなくなった。