今更かもしれませんが、iPhoneのエミュレータってないのかなと思い、探してみたらありました。 早速、Adobe AIRをインストールして使ってみたんですが、今使ってるWindowsが、5年くらい前に買ったノートPCのため、重すぎて使い物になりませんでした。。。。
|
- >
- コンピュータとインターネット
- >
- インターネット
- >
- その他インターネット
こんにちは、ゲストさん
[ リスト | 詳細 ]
今更かもしれませんが、iPhoneのエミュレータってないのかなと思い、探してみたらありました。 早速、Adobe AIRをインストールして使ってみたんですが、今使ってるWindowsが、5年くらい前に買ったノートPCのため、重すぎて使い物になりませんでした。。。。
|
Webページ上で、画像をMac OSXのDockみたいな感じで表示したいと思い、検索してみたら良いのがありました。 マウスを当てると当てられたものが拡大するのはもちろん、その左右にあるアイコンも若干ズーミングする。ズームの幅を大きくすると、より効果的になるだろう。クリックした後のアクションは各画像ごとに定義できる。 んで、次のような感じで、表示する画像を定義する。 <script type="text/javascript" > var dock = new MacStyleDock( document.getElementById('dock'), [ { name : 'sample-0-', extension : '.jpg', sizes : [32, 64], onclick : function(){ alert('You clicked on the first icon'); } }, { name : 'sample-1-', extension : '.jpg', sizes : [32, 64], onclick : function(){ alert('You clicked on the second icon'); } } ], 32, 64, 2); </script>ここで、nameには、その画像名の基本となる部分(?)が入る。 用意する画像は、 <基本画像名><大きさ>.<拡張子> <基本画像名><大きさ(最大)>-full.<拡張子> <基本画像名><大きさ>-reflection.<拡張子> 上の例だと
本体部分 sample-0-32.jpg sample-0-64.jpg sample-0-64-full.jpg sample-1-32.jpg sample-1-64.jpg sample-1-64-full.jpg 下の反射部分 sample-0-32-reflection.jpg sample-0-64-reflection.jpg sample-1-32-reflection.jpg sample-1-64-reflection.jpg |
友人と共同で開発を行うことになったので、先日自宅サーバにsubversionを導入してみました。 個人でやっていると、あまり必要性を感じなかったんですが、やってみると個人でもやってた方が良いなと感じました。
今後、個人でも使っていこうと思います。 |
最近、WebAPIを使うことが多くなってきたので、以前作ったクラスを紹介したいと思います。 とりあえず、わかりきってる処理は、全て抽象クラスで実装しちゃおうって考えです。 ちなみに、xmlしか対応してません。 抽象クラス/****************************** * WebAPIの抽象クラス * 2008.06.22 (C) よっくん *****************************/ abstract class AbstractWebApi{ protected $appid; protected $url; protected $id; protected $param; protected $results; public function __construct($appid){ $this->appid = $appid; $this->url = $url; $this->id = 0; $this->param = array(); $this->results = array(); } abstract public function results_set($xml); public function set($index, $value){ foreach(array_keys($this->param) as $key){ if($index == $key){ $this->param[$index] = $value; break; } } } public function record($id){ if(!isset($this->results[$id])){ return false; } $this->id = $id; return true; } public function get($index, $default=""){ return isset($this->results[$this->id]->$index) ? $this->results[$this->id]->$index : $default; } public function request_url_set($url){ foreach($this->param as $key => $value){ if($value !== null){ $this->url .= '&'.$key. "=".$value; } } } public function request(){ $this->request_url_set(); $xml = simplexml_load_file($this->url); $this->results_set($xml); } } サブクラスさて、サブクラスは、例えば、ぐるなびのWebサービスを実装する場合、/********************************** * ぐるなびレストラン検索 クラス * 2008.06.22 (C) よっくん *********************************/ require_once 'AbstractWebApi.class.php'; class GnaviShopSearch extends AbstractWebApi{ public function __construct($appid){ parent::__construct($appid); $this->url = 'http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid='.$this->appid; $this->param['id'] = null; $this->param['name'] = null; $this->param['name_kana'] = null; $this->param['tel'] = null; $this->param['address'] = null; $this->param['area'] = null; $this->param['pref'] = null; $this->param['category_l'] = null; $this->param['category_s'] = null; $this->param['input_coordinates_mode'] = null; $this->param['equipment'] = null; $this->param['coordinates_mode'] = null; $this->param['latitude'] = null; $this->param['longtitude'] = null; $this->param['range'] = null; $this->param['sort'] = null; $this->param['offset'] = null; $this->param['hit_per_page'] = null; $this->param['offset_page'] = null; $this->param['freeword'] = null; $this->param['freeword_condition'] = null; } public function results_set($xml){ $this->results = $xml->rest; } } まず、リクエストパラメータを格納する$this->paramをnullで定義します。 必要なパラメータだけで良いんですが、とりあえず、全部定義してました。 んで、結果を格納する$this->resultsに、結果で欲しいものを格納します。この場合、レストラン情報が欲しいので、$xml->restを格納しています。 require_once 'GnaviShopSearch.class.php'; $keyid='xxxxxxxxxx'; //発行されたアクセスキー $shop = new GnaviShopSearch($keyid); $shop->set('freeword', '沖縄そば'); //リクエストパラメータをセット $shop->request(); for($i=0; $shop->record($i); $i++){ echo $shop->get('name')."<br />"; } まぁ、こんなクラスを作らなくても、簡単に出来るのが、WebAPIなんですが、管理しやすくなるんじゃないかなぁと思います。 何かおかしいところとか、意見とかありましたら、よろしくお願いします。
|
お久しぶりです。 最近忙しくて全然手を付けていませんでしたが、今日から、また再開したいと思います。 Image::Seek ImgSeek (http://www.imgseek.net/) is an implementation of Haar wavelet decomposition techniques to find similar pictures in a library. This module is port of the ImgSeek library to Perl's XS. It can deal with image objects produced by the Imager and Image::Imlib2 libraries. 今回は、Image::Imlib2の方でやりたいと思います。(Imagerでやったら、インストールは出来たものの、なぜかうまく動かなかった。) imlib2、imlib2_devをインストール # yum install Imlib2 Imlib2_dev 続いて、Image::Imlib2 # cpan install Image::Imlib2 ここで、エラー発生。ExUtils::CBuilderをインストールしろと言われるので、インストール。 # cpan install ExUtils::CBuilder んで、再度挑戦 # cpan install Image::Imlib2 成功。最後に、Image::Seekのインストール # cpan install Image::Seek 無事インストール完了しました。 とりあえず、画像を何個か用意して、試してみました。 画像データベースの作成 use strict; use Image::Imlib2; use Image::Seek qw(loaddb add_image query_id savedb); loaddb("image.db"); for (10..30){ my $img = Image::Imlib2->load("${_}.jpg"); add_image($img, $_); } savedb("image.db"); とりあえず、id=10に類似したものを検索してみる use strict; use Image::Imlib2; use Image::Seek qw(loaddb add_image query_id savedb); loaddb("image.db"); my @results = query_id(10, 5); //id=10の画像に類似したものを5件取得 foreach(@results){ foreach (@$_){ print $_ . "\t"; } print "\n"; } 結果 10 -33.3800005018711 21 -21.8256015831392 11 -21.6441377225683 20 -19.7209152092057 22 -8.4882187503716 17 -7.35577595067657 二番目の要素が、小さい方がより類似している画像ということになります。
最初は、当然オリジナルがヒットしています。 |