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

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

地域通貨やポイントカードを簡単に作れるiアプリとか、出てきたとしたら、印刷会社は?

2006-05-12 21:19:13 | Weblog

 放送大学大学院の「総合情報学」の5回(あ、学習センターのビデオで見てるんですけど)の地域通貨の話をみていて思ったんですけど、ケータイも、Felicaのような現金決済の次は、地域通貨かなあと。。

 つまり、Docomoの場合、iアプリにして、赤外線通信で通貨をやり取りして。。

 みたいなかんじで。。

 なんか、汎用的なアプリをつくって、ファイルを設定すると、いろんな地域通貨ができると。

 もちろん、地域通貨だけでなく、ケータイのポイントカードもできると。。




 で、そーなったら、紙メディアは、どーするか、トッパン、大日本は??

 だいじょーぶ、地域通貨やポイントカードを(紙の)トレーディングカード風にして発行すると。。そーすれば、その地域通貨やポイントカードを集めることを目的とした人たち(地域外の場合ももちろんあり)が、ゲットしようとして、地域通貨を求めてきて、より活性化すると。。

 たとえば、

 地域通貨1ポイントは、モーニング娘。7期メンバー、
  ・・・って久住小春さんしかいないけど

 地域通貨5ポイントは、モーニング娘。6期メンバー、
  ・・・田中れいなさん、さゆりん、亀井さん、ミキティの4種類

 地域通貨10ポイントは、モーニング娘。5期メンバーって、
  ・・・こんこん、小川さん、にいがきさん、高橋さんの4種類

 地域通貨50ポイントは、モーニング娘。4期メンバーって、
  ・・・いまは、吉澤さんだけ1種類

 地域通貨100ポイントは、あやや

 で、この通貨、地域の人は、ボランティアとか、いろんなものの交換とかで入手できるけど、地域外の人は、そこに来て買うか、地域の人がYAHOOオークションで出すのを買うとか、譲ってくれる人(やお店)が出るのを、待つしかないとかにする。

 で、全部あつめても、別になにもなんないんだけど(もちろん、なんか、景品とかくれてもOKだけど)、全部集めようと思うファンがいて、地域活性化になると。

 さらに、その地域通貨を発行している地元で、上記モーニング娘。たちの写真をとって、地域通貨の絵柄にすると・・

 ほらほら、まえに書いた聖地巡礼みたいなかんじで、そこに来てくれるかもしれない。ファンが。

 さらに、モーニング娘。のこんこん、小川さんは辞めてしまうから、そしたら、発行しないと。。そーすると、プレミアつくかもお。。おお、プレミア目当てで、買う投資家(投機家)もいるかも??




 もちろん、地域通貨でなくても、ポイントカードでもいいんだけどね。
 それと、あくまでも、モーニング娘。は例であって、収集してくれそうな有名な芸能人なら、だれでもOK、いや、さらにはアニメでもいいのかもしれない。

 そーすると、これって、地元に有名人が多いところはいろいろ作れて有利だよね。

 福岡とか・・


 

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

IHTMLVIEWERの具体的な使い方(4)カーソル移動方法その2(初期化と後始末)

2006-05-12 17:01:57 | ケータイ

 IHtmlViewerでカーソル移動を自由に行う方法のつづき。
 今日の説明内容は、初期化部分testhtml1_InitAppData)と後始末(testhtml1_FreeAppData)なんですけど、その前に全体の説明をしてから入ります。




■全体の説明

●初期化部分(testhtml1_InitAppData)
・はじめにHTMLファイルを読み込み、
・カーソルの情報を取得します
・IHtmlViewerを生成し、テキトーにパラメータをセットして
・HTMLをIHtmlViewerにセットして、各項目のIDを取得します

●イベント(testhtml1_HandleEvent)
・はじめのとき(start)
 リドローします
 今回はしないけど、もし、カーソル位置がはじめたら最初の項目でない場合は
 項目の移動を行います

・その他イベント処理
  自分たちでやりたいHTML独自の処理を行います(testhtml1_HtmlEvent)
  その後、IHTMLVIEWER_HandleEventを行います
  さらにそのあとに、各種イベント処理をします。

●後処理(testhtml1_FreeAppData)
・メモリを解放します。

 では、以降、今日のテーマについてです。まずは初期化部分から。




■初期化部分(testhtml1_InitAppData)

ソースコードは、こんなかんじ(全体はこちら
boolean testhtml1_InitAppData(testhtml1* pMe)
{
	IFileMgr	*pMgr;
	IFile		*pFile;
	FileInfo	Info;
	char		*fdata;
	AEERect		rc;

	//	初期化
	pMe->pHtml	=	NULL;
	pMe->pID	=	NULL;
	pMe->pkind	=	NULL;

	//==========================================//
	//											//
	//	以下、自動生成されたところ				//
	//											//
	//==========================================//
	// Get the device information for this handset.
    // Reference all the data by looking at the pMe->DeviceInfo structure
    // Check the API reference guide for all the handy device info you can get
    pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
    ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

    // The display and shell interfaces are always created by
    // default, so we'll asign them so that you can access
    // them via the standard "pMe->" without the "a."
    pMe->pIDisplay = pMe->a.m_pIDisplay;
    pMe->pIShell   = pMe->a.m_pIShell;

    // Insert your code here for initializing or allocating resources...
	//==========================================//
	//											//
	//	ここから、独自							//
	//											//
	//==========================================//

	//==========================================//
	//	表示するHTMLファイルの取得			//
	//==========================================//
	if (ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FILEMGR, (void**)(&pMgr)) != SUCCESS )
	{
		return	FALSE;
	}

	//	ファイルの大きさを取得して、ファイルを一気に読み込む
	if (IFILEMGR_GetInfo(pMgr,"testhtml1.htm",&Info)	!=	SUCCESS)
	{
		IFILEMGR_Release(pMgr);
		return	FALSE;
	}
	if ( (fdata = (char *)MALLOC(Info.dwSize+1))	==	NULL )
	{
		IFILEMGR_Release(pMgr);
		return	FALSE;
	}
	if ( (pFile = IFILEMGR_OpenFile(pMgr,"testhtml1.htm",_OFM_READ))	==	NULL )
	{
		IFILEMGR_Release(pMgr);
		FREEIF(fdata);
		return	FALSE;
	}
	if ( IFILE_Read(pFile,fdata,Info.dwSize)	==	0 )
	{
		IFILE_Release(pFile);
		IFILEMGR_Release(pMgr);
		FREEIF(fdata);
		return	FALSE;
	}
	fdata[fdata,Info.dwSize]	=	0;

	//データ取得したので、ファイルとマネージャーは解放
	IFILE_Release(pFile);			
	IFILEMGR_Release(pMgr);

	//==========================================//
	//	カーソルの領域と種別領域の設定			//
	//==========================================//

	//	本来はHTMLから解釈するか、
	//	別ファイルからとってくるほうがいいが、
	//	今回は直接設定してしまうことにする。
	pMe->itemsu	=	TESTHTML1_ITEMSU;

	//	種類の領域確保と設定
	pMe->pkind	=	(int *)MALLOC(TESTHTML1_ITEMSU * sizeof(int));
	if ( pMe->pkind	==	NULL )
	{
		FREEIF(fdata);
		return	FALSE;
	}
	pMe->pkind[0]	=	ITEMKIND_INPUT_SUBMIT;
	pMe->pkind[1]	=	ITEMKIND_INPUT_TEXT;
	pMe->pkind[2]	=	ITEMKIND_INPUT_SUBMIT;
	pMe->pkind[3]	=	ITEMKIND_INPUT_TEXT;
	pMe->pkind[4]	=	ITEMKIND_INPUT_TEXT;
	pMe->pkind[5]	=	ITEMKIND_INPUT_SUBMIT;

	//	IDをいれておく
	pMe->pID	=	(int *)MALLOC(TESTHTML1_ITEMSU * sizeof(int));
	if ( pMe->pID	==	NULL )
	{
		FREEIF(fdata);
		return	FALSE;
	}


	//==========================================//
	//	HTMLViewerで表示					//
	//==========================================//
	//	読み込んだfdataをHTMLViewerに設定する
	if( ISHELL_CreateInstance( pMe->pIShell, AEECLSID_HTML, (void**)(&pMe->pHtml))
									!= SUCCESS )
	{
		FREEIF(fdata);
		return FALSE;
	}

	//	HTMLVieweの位置設定
	//	注意;これをしないと、表示しない
	rc.x	=	0;
	rc.y	=	0;
	rc.dx	=	pMe->DeviceInfo.cxScreen;
	rc.dy	=	pMe->DeviceInfo.cyScreen;
	IHTMLVIEWER_SetRect(pMe->pHtml, &rc);

	//	その他設定
	IHTMLVIEWER_SetNotifyFn(pMe->pHtml, (PFNHVIEWNOTIFY)testhtml1_CallBack, pMe);
	IHTMLVIEWER_SetProperties( pMe->pHtml, HVP_LOADALLIMAGES | HVP_SCROLLBAR);
	IHTMLVIEWER_SetSBWidth( pMe->pHtml, 8 );

	//	データセット後読み込み領域フリー
	testhtml1_SetHtmlAndID( pMe->pHtml, fdata,pMe->pID,pMe->pkind,pMe->itemsu );
	FREEIF(fdata);


	// if there have been no failures up to this point then return success
    return TRUE;
}

(上記の > は、本当は半角です)  

初期化で行うことは、以下のとおり
・はじめにHTMLファイルを読み込み、
・カーソルの情報を取得します
・IHtmlViewerを生成し、テキトーにパラメータをセットして
・HTMLをIHtmlViewerにセットして、各項目のIDを取得します

●HTMLファイル読込
HTMLファイルtesthtml1.htmを読み込んでいる部分、つまり、
ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FILEMGR,
から
IFILEMGR_Release(pMgr);
までの説明は、別にいいと思う。ふつーにファイルを読み込んでいる。

●カーソルの情報取得
pIDとpkindの領域をとり、pkindの値を設定します。
本来はHTMLファイルから読み込んで作るなり、この値をファイルにまとめておいて、ファイルから読み込んだほうがいいのですが、今回は直接設定しています。

●IHtmlViewerを生成
ISHELL_CreateInstance( pMe->pIShell, AEECLSID_HTML,
で生成し、その後、HTMLの大きさをIHTMLVIEWER_SetRectでやってます。
IHTMLVIEWER_SetNotifyFnでコールバックを設定したら、あとはパラメータをテキトーに設定してます。

●HTMLをIHtmlViewerにセットして、各項目のIDを取得します
 この処理をtesthtml1_SetHtmlAndIDという関数でやっています。
 その関数については、下で述べます。




■HTMLのセットと各項目のIDを取得(testhtml1_SetHtmlAndID)
ソースコードは、こんなかんじ(全体はこちら
boolean testhtml1_SetHtmlAndID(IHtmlViewer *pHtml,char *data,int *pID,int *pkind,int itemsu)
{
	int	i;
	int	input_no,a_no,select_no;

	//==================================//
	//	画面表示						//
	//==================================//
	//	表示チェック
	if ( ( pHtml == NULL ) || ( data == NULL ) )
		return	FALSE;

	IHTMLVIEWER_ParseBuffer( pHtml, data );

	if ( itemsu == 0 )	//	項目がまったくないメッセージ表示の場合
		return	TRUE;	//	ここでおわり

	//==================================//
	//	IDの設定						//
	//==================================//
	//	ID設定チェック
	if ( (pkind == NULL ) || ( pID == NULL ) )
		return	FALSE;


	//	初期化
	input_no	=	0;
	a_no		=	0;
	select_no	=	0;

	//	IDの設定
	for(i = 0 ; i <=	itemsu; i ++ )
	{
		switch(pkind[i])
		{
		case	ITEMKIND_INPUT_SUBMIT:
			pID[i]	=	IHTMLVIEWER_FindElem(pHtml,"input",input_no);
			input_no++;
			break;
		case	ITEMKIND_INPUT_TEXT:
			pID[i]	=	IHTMLVIEWER_FindElem(pHtml,"input",input_no);
			input_no++;
			break;
		case	ITEMKIND_A:
			pID[i]	=	IHTMLVIEWER_FindElem(pHtml,"a",a_no);
			a_no++;
			break;
		case	ITEMKIND_SELECT:
			pID[i]	=	IHTMLVIEWER_FindElem(pHtml,"select",select_no);
			select_no++;
			break;
		}
	}

	return	TRUE;
}


(上記の < > は、本当は半角です)  

IHTMLVIEWER_ParseBufferで、HTMLをセットします。
HTMLが変わるたび、IDも変わる可能性があるので、IDをセットしなおします。
//IDの設定
のところにあるように、pkind、つまり、項目の種類に応じて、
IHTMLVIEWER_FindElemで値を取得、それに、アンカータグの場合はさらに文字数を足して、
IDとしてセットします。

 なお、アンカータグの足す文字数は、HREF=をふくんだところです。

 IHtmlViewerでアンカータグを使う場合(どっかに飛ばすというよりか、イベント処理がしたいためなので)かならずHREF=abにするとか、飛び先のURL(ここではab)を決めてしまうと、足す長さがきまるので、べんりです。




■あとしまつ(testhtml1_FreeAppData)
 ついでに、こいつも説明しておきます。
 ソースは載せるまでもないので省略
 たんに、NULLでなかったら、解放(IHtmlViwereの場合、Release、それ以外はFREEIF)
しています。




このシリーズ、次は、イベント処理(testhtml1_HandleEvent)についてです。
覚えていたら、いつか書きます。

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

声優を選び、希望の原稿を発注すると、収録音声をダウンロードできるという商売が始まるそうな

2006-05-12 16:40:35 | Weblog

きょう5月12日、日経産業新聞1面

「ロゴスウェア、芸能プロと組み通販サイトに音声収録、声優の語り 割安で」

に書いてあります。
ロゴスフェアという会社が、「ボイス・オンデマンド」となずけて
(うーん、名前が怪しすぎるぞ ^^;)5月中にサービス開始らしい。

・ナレーター(声優)のハンドルネームが表示され
・声を選び、条件を入れると
・声優さんのケータイに電子メールが自動送信、
・声優さんがOKすると

契約成立!

 こちらが指定した原稿を、声優さんが読んでくれて、
 後日、ダウンロードして
 そいつがサイトで使えると。。。

通販サイトなんかで、考えているらしい。




 えーっと、ハンドルネームなんですか?芸名そのもののほうがいいような。

 それに、ほかの事務所でもやんないのかなあ。。

 劇団ひまわり青年部とか。。。はいはい、小笠原亜里沙さんですね。
 で、いつもなら、ここでオチなのだが、今日はちとちがう。




 で、萌え系のやつとか。。。で、さらに、それから進んで。。
 っていう話でもなくって、

 こばりゅーさんに、歌ってもらうサービスっていうのも、
 あったらこわい。

 平井堅のありえない歌がネットに氾濫してしまう!

 なこたーねーか(^^;)



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

業務のユースケースを蓄積するDBとしての。。。事例ベース??

2006-05-12 15:51:07 | Weblog

 この前の事例ベースの話をUMLの世界に置き換えて考えると、事例ベースに
相当するところが、ユーザーからのヒアリング結果であり、業務のユースケースとなる




 いや、ユースケースというのは、抽象的かつ、法則として正しいものであり、
事例ベースっていうのは、具体的な一事例で、成功のケースも失敗のケースもあるよ
というかもしれない。

 でもね、実際ヒアリングすると、そーでもないのよ。

 ユーザーに、業務内容を抽象的にきいてもわかんなかったり、
 そこで、具体的に聞いてみないといけなかったり、
   (つーわけで、シナリオになってしまうのだ)

 必ずしも正しいとか、成功事例を話してくれるわけではない。

 もちろん、まったく間違いを話すことは少ないが、ある場合だけにしか成立しないことを話したり(それ以外のケースはその人の担当でないから知らない)などなど・・

 ってことで、もう、抽象も具体も正しいも間違いも関係なく、とにかくツッコミたいっていう場合も結構ある(あつまってから、あとで、何が正しいか考える)




 ってかんじで、いま、「とにかくツッコミたい」ってかいたけど、

 たしかに

・ヒアリング内容をいったんDBにいれて、
・そこからいろいろ見ながら、
・ユースケースを作っていきたい

って言う考えはあるわけです。

 たぶん、そーいうDBは、業務システム上必要だよね。

 とくにSOX法対応などもいわれる昨今、そーいう業務内容をためるDBは必要です。




 じゃあ、事例ベースが、その役を果たすんだろうか?

 事例ベース推論の、データとなる事例が入っているデータベース、詳しく知らないから、どーともいえないけど、もし、そうだとしたらすごいなあ。

 そして、それをつくる知識工学も、ヒアリングの役に立つ。。。

 。。。ほんとうかいな?

 ちょっと事例ベースと知識工学を調べたくなる(けど、失望しそうな気配大)な、ウィリアムのいたずらなのでした。


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

ICタグに電子ペーパーを貼って、中身を表示したら?

2006-05-12 09:36:35 | Weblog

 さっき、オープニングベルに、バーコードのサトーの社長が出てて、
 見えることが大事って言ってた。

 うん?じゃあ、ICタグの表に電子ペーパーをはって、ICタグの中身を
電子ペーパーで表示するようにしたら?

 何十円引きっていうのなんか、シール貼りなおさないで書き換えですむし。。
 電子ペーパー書き換えの電気は、書き込み機を接触させるカタチでも、
 太陽電池っていう手もあるかも?
 たしか、充電できる色素太陽電池とかあった気が(^^)

 そーすると、どーなのどーなの??
 って、そんなもの、できないのかな?
 できるんだったら、だれか、考えてますよねえ。。。
 。。。かんがえてんのかな?

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