ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「顔ちぇき!」のジェイマジック、携帯画像を使った情報検索機能をAPI化

2007-07-17 21:17:26 | Weblog

すげー!!おもしろそー!!
ここのニュース
「顔ちぇき!」のジェイマジック、携帯画像を使った情報検索機能をAPI化──「SAYL」を発表
http://headlines.yahoo.co.jp/hl?a=20070717-00000001-zdn_m-mobi

によると、(以下斜体は、上記サイトより引用)

 ジェイマジックは7月12日、同社のモバイルソーシャルメディア「eyenowa」などで提供している、携帯カメラ画像を使った情報検索機能をAPI化し、「SAYL」として提供することを発表した。


つまり、今回提供されるAPIは、

画像を使って情報検索するためのAPI。


で、そのSAYLのサイトは
ここ http://www.j-magic.co.jp/02_solution/sayl.html
をみると、APIが公開されていて、みんなが今すぐ使えるという感じ
ではなくって、

そーいうAPIがあるよ!っていうお話みたい。。。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IEでJavascriptのエラーを出す

2007-07-17 20:33:16 | JavaとWeb

メモメモ。
IEを普通に使ってると、多分Javascriptのエラーは出ないと思う。

で、それを出す場合、
(1)ツールのインターネットオプションを選択
(2)「インターネットオプション」ダイアログで、「詳細設定」タグを選択
(3)「ブラウズ」のところを、以下のようにチェックをはずしたり、
   入れたりする


こんなかんじで、うちの環境では出来ました。

ちなみに、エラーがでるとき、2種類ありました。

メッセージボックスが出るだけのものと、
「詳細」というボタンがあって、そこをクリックすると、いろんな情報が出てくるもの。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JSPで../で指定するとうまくいくのに、サーブレットでフォワードすると失敗

2007-07-17 17:57:57 | Weblog

今はまったやつ。

JSP(中身はJavascriptで書かれている部分がある)のプログラムで、あるjsファイルをSCRIPTで読ませようとしたとき、

<SCRIPT type="text/javascript" src="../abc.js">

でうまくいったのに、そのプログラムを、サーブレットからフォワードしたとたんに、そのabc.jsに書かれている関数を読まなくなった。。。

 はまりました。。




 理由は、サーブレットのベースがfooだとすると、サーブレットをフォワードした時点で、/foo/servlet/そのプログラム が基準となってしまう。

 jspはjspでまとめていると、
フォワードするときに/foo/jsp/xyz.jspと送って、
それが表示できたとしても、
ベースは、/foo/servlet/なので、
../abc.jsっていうと、
とんでもないところを見に行ってしまう。




 この場合、以下のように

<SCRIPT type="text/javascript" src="/foo/jsp/abc.js">

 みたいなかんじで、トップから..を使わずに指定したら、なおりました。

うーん・・・奥が深い
(上記< > は本当はすべて半角です)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

開発の初めから順番に書いていってみる その68:プログラミング(30)入出力の自動生成18。

2007-07-17 13:36:27 | Weblog

 シリーズ「開発の初めから順番に書いていってみる」の続きです。

 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 現在プログラミングで、画面の自動生成のイベントリスナー部分をやっています(前回までについては、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm

 で、今回は仕様書の予定だったのですが、
 作ってみて気づいた・・・

 これ、ボタン以外のイベントをとるとき、だめじゃん(>_<!)
 イベント処理のところ、アダプタを、extendsで継承してやってるけど、extendsは1つしか継承できない(javaは多重継承できない)。

 ということで、今回はやり直し。
 複数種類(テキストとかボタンとか)のコンポーネントでも扱えるイベントリスナー部分の方向性を示します。




■やりかた

 そーなってくると、

●(1)イベント用クラスをつくる(gamen1_HandleEvent )
  →こいつは継承しない

●(2)その中に、インナークラスをつくり、そのインナークラスが
   アダプタを継承する。

public class gamen1_HandleEvent 
{
	public class Select extends SelectionAdapter
	{

	}

	public class Key extends KeyAdapter
	{

	}
		:
		(アダプター分つづく)
}



●(3)そいつに実体をもたせるため、コンストラクタの中で、
   生成する。
public class gamen1_HandleEvent 
{
	public Select sl = null;
	public Key    key = null;
	gamen1	g = null;

	/*
	 * 	画面つきコンストラクタ
	 */
	public	gamen1_HandleEvent(gamen1 g)
	{
		this.g	=	g;
		this.sl =	new Select();
		this.key =	new Key();
		:
		(アダプター分つづく)
	}

	public class Select extends SelectionAdapter
	{
		/*
		 * 	ボタンが押されたときの処理
		 */
		public void widgetSelected(SelectionEvent e) 
		{
			Object o = e.getSource();
			shoriPro("widgetSelected",e.getSource());
		}
	}

	public class Key extends KeyAdapter
	{
		/*
		 * 	ボタンが押されたときの処理
		 */
		public void keyPressed(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyPressed",e.getSource());
		}
		public void keyReleased(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyReleased",e.getSource());
		}
		public void keyTyped(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyTyped",e.getSource());
		}
	}
		:
		(アダプター分つづく)
}



●(4)生成後、画面のイベントを取るときは、いままで、このクラスをaddなんとかListener(addSelectionListener等)していたけど、このインナークラスを、addするようにする

例:
b1.addSelectionListener(al.sl);

●(5)すべての処理が、shoriProにあつまり、そこに仕様書のものが
   書かれるのはおなじ。

まとめると
public class gamen1_HandleEvent 
{
	public Select sl = null;
	public Key    key = null;
	gamen1	g = null;

	/*
	 * 	画面つきコンストラクタ
	 */
	public	gamen1_HandleEvent(gamen1 g)
	{
		this.g	=	g;
		this.sl =	new Select();
		this.key =	new Key();
		:
		(アダプター分つづく)
	}

	public class Select extends SelectionAdapter
	{
		/*
		 * 	ボタンが押されたときの処理
		 */
		public void widgetSelected(SelectionEvent e) 
		{
			Object o = e.getSource();
			shoriPro("widgetSelected",e.getSource());
		}
	}

	public class Key extends KeyAdapter
	{
		/*
		 * 	ボタンが押されたときの処理
		 */
		public void keyPressed(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyPressed",e.getSource());
		}
		public void keyReleased(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyReleased",e.getSource());
		}
		public void keyTyped(KeyEvent e) 
		{
			Object o = e.getSource();
			shoriPro("keyTyped",e.getSource());
		}
	}
		:
		(アダプター分つづく)
	/*
	 * 	すべての処理
	 */
	public void shoriPro(String eventCode,Object o) 
	{
		//  まだ、画面がセットされていなかったら、抜ける
		if ( g	==	null )
		{
			return;
		}

		//	仕様書に書いた条件分、ならぶ
		if ((eventCode.equals("widgetSelected") == true) &&	
			( o.equals(g.b1)== true) )
		{
			//	ここで処理呼び出し
			//	g.shori.shori1(g);
			return;
		}
			:
			(処理分、つづく)
	}
}






ってなかんじですかね・・・




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする