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

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

携帯電話に「子作りのタイミング」を通知するサービス

2006-11-02 21:16:38 | Weblog

ここのニュース
携帯電話に「子作りのタイミング」を通知するサービス
http://news.ameba.jp/2006/11/wo1101_1.php

によると、(以下斜体は、上記ニュースより引用)


 生理日を入力すると、排卵日の3日前と当日の2度、携帯に知らせてくれるように設定することができる。ただしDoCoMoでは、排卵日は平均的な生理周期をもとに計算していることに注意するよう呼びかけている。

 この新しい携帯電話は、出生率の低さを受けて発売されたもの。


 そういう目的のためにできたんだろうか。。

 ちがうよな、訴訟逃れだよな。。

 子供を生む目的で使う場合、それで子供が生まれなくても、
 「ほかのげんいんじゃなーい」で、ごまかせる。
 訴訟にはならない。

 しかし、「子供を作らない」目的のサービスを始めて、
 子供ができてしまった場合、
 「責任はとらないよ。」と明記しておいても、
 あとあと問題になりそうだ。訴訟のリスクは大きい。

 だからだよね。。
 でも、Docomoのサービス、そこまできましかた(^^)

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

Javaの画面表示-その17:JSPのフォワードでうまくいかないときは、パスと拡張子を確認!

2006-11-02 19:33:04 | JavaとWeb

 シリーズJavaの画面表示のつづきです。今、JSPやってます。
 今回から、JSP(だけで)MVCをやるために、ちょっと必要な要素技術について書いていきます。まず、JSPで、ある画面処理から、他の画面に遷移させる方法について。




■JSPで、他の画面に遷移させる2つの方法について

 以下のサイト
@IT > Java Solution > Java TIPS > リダイレクトとフォワードの違いを知る
http://www.atmarkit.co.jp/fjava/javatips/062jspservlet029.html


リダイレクトとフォワードという2つの方法があります。
違いや、適用範囲(どこのJSPまでを対象にできるか?JSP以外を対象にできるか)については、上記を参照してください。



■リダイレクトの例(ソース付)

 簡単に言うと、リダイレクトは、どんなサイト(JSP以外でも、他のドメインでも)、表示できます(ただし、動きが複雑。詳しくは、上記サイトを参照)。書き方としては以下のとおり。
 以下では、http://www.geocities.jp/xmldtp/index.htmlを表示しています
 (ウィリアムのいたずらのサイトです)

<html>
<head>
<title>test</title>
</head>
<body>
<%
response.sendRedirect("http://www.geocities.jp/xmldtp/index.html");
%>
</body>
</html>

(上記 < > ¥は、本当は半角)

 これは、sendRedirectの引数に、URLを書けばOKなので、簡単です。




■フォワードの転送先に注意。単純に書くと間違える

 では、フォワードは、どうなるのか。。
 ここで注意していただきたいのは、
 転送先に指定するのはwebappsから下ではありません!!
 つまり、
  Tomcatのディレクトリ¥webapps¥test¥jspの下に、
 test.jsp(前回のHello Worldと出すもの)と、index.jspを2つ入れて、
 以下のように
<html>
<head>
<title>test</title>
</head>
<body>
<%
application.getRequestDispatcher("/test/jsp/test.jsp").forward(request,response);
%>
</body>
</html>

(上記 < > ¥は、本当は半角)
とやって、実行すると、

Apache Tomcat/4.0.3 - HTTP Status 404 - /test/jsp/test.jsp

とかでて、エラーになります




■正しくは、webappsの下のフォルダを「とった」形

 で、正しい指定の仕方は、/test/jsp/test.jspではなく、"/jsp/test.jspとしてください。
 つまり、正しいソースは、こうなります。
<html>
<head>
<title>test</title>
</head>
<body>
<%
application.getRequestDispatcher("/jsp/test.jsp").forward(request,response);
%>
</body>
</html>

(上記 < > ¥は、本当は半角)

これで、ちゃんとみえるはずです。




■指定先は、jspにしてね!

 ということで、フォワードの場合、範囲は、webappsの「下のフォルダ」の同じところ、
 上記の例だと、testの下においてあるものにしか、飛ばせません。

 さらに条件があるみたいで、htmlファイルなどは、だめみたい。
 上記のところを

application.getRequestDispatcher("/jsp/test.htm").forward(request,response);

 として、test.htmファイルをHTMLファイルで作成して置いたら、だめでした(「java.lang.IllegalStateException: このレスポンスに対してgetOutputStream()はすでに呼び出されています」というエラーになります)

 その場合は、まったく同じファイルを、拡張子jspに、つまり、test.htmをtest.jspにしてください。そうすればOKです。なお、まったくJSPのコードを含んでいないHTMLファイルを拡張子jspにしても、問題はありません。

Top > @IT会議室 > Java Solution 会議室 > getRequestDispatcher("パス")がよくわかりません。の話って、エラーコードが書いてないから、よくわかんないけど、この拡張子がHTMLでやっているせいじゃないかなあ??

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

仕様書からプログラムソースを生成する方法(Excelの仕様書編 その7:作成手順2)

2006-11-02 17:51:14 | Weblog

 シリーズ仕様書からプログラムソースを生成する方法のつづきす。

 Excelの仕様書から、ソースを自動生成するとき、手順としては、

1.出力ファイルをきめ、そのサンプルを作成する
2.1のファイルから抽象的に書くところを見極め、そこにタグを入れていく
    →これが、雛形ファイル
3.タグから、Excel仕様書をつくる

 で、前回から、2の雛形づくりをやっています。
 
 前回は、全体アプリの雛形作りをしたので、今日は、各画面の雛形作りをします。
 そして、それを通して、Excelの仕様書の構造と、雛形と出力ファイルとの関係について書きます。




■各画面の雛形づくりの際の問題点

 では、今日は、各画面用の出力サンプル(A HREF="http://www.geocities.jp/xmldtp/bw_fk1_gamen1_c.txt>ここ)を元に、雛形ファイルを作るのですが、ここで、前回、全アプリのとき、仕様書にどういう情報が必要だったかというと

  B2  アプリ名(小文字)
  K2  アプリ名(大文字)
5行目から各画面(繰り返し)
  B桁  画面名(小文字)
  K桁  画面名(大文字)

でした。

 ということを、頭において、各画面サンプルを見ると。。

FILE: gamen1.c
#define _GAMEN1_C

#include	"gamen1.h"

ではじまっています。
 こまりました。もし、gamen1のところを、前回のアプリの場合と同じく、
$#$KETA B$#$で書いてしまい、FILE: $#$KETA B$#$.cと書きたくても、
それは繰り返しにしないと値が入らない。
 っていうか、そもそも、この書き出しファイル名すら、表現できない。
(作業一覧には、固定的なファイル名を書かないといけない)

 どーしましょう。。。




■出力ファイル1個につき、雛形ファイル、仕様書シートは、1個になるようにする

 ここで、この場合の原則があります。
 出力ファイル1個につき、雛形ファイル、仕様書シートは、1個になるようにします
 (というか、そうしないと、作業一覧シートに書けません)

 今回出力ファイルは、gamen1.cですので、
 仕様書は、gamen1用のシートとなり、雛形ファイルは、画面用雛形となります。

 なお、出力ファイル1個につき、雛形ファイル、仕様書シートは、1個ですが、
 逆に、仕様書シートから見たとき、出力ファイルはたくさんあります。
 この場合、それぞれ、雛形ファイルが違います。

 そして、この結果、データベースの第一正規形とおなじく、
  あるシート内(今回はアプリ)に、繰り返す項目があって、
  その項目の1項目に対して1ファイル出力が必要になる場合は、
  その項目(今回は、画面)ごとのシートを作らなければいけません
  (手作業でなく、自動的に作ってOK)




 そうすると、前回作成したのは、アプリ用出力なので、アプリ用シートとなります。
 そして、その中の各画面項目が、1画面ファイルとなっているので、

 この繰り返し部分=各画面を1シートとして作らないといけないということになります。

 そして、各画面用シートにおいては、固定されたところに画面名がくればいい

 ということになります。




■雛形のソース

 そうすると、画面の雛形ソースはこんなかんじ

/*================================

FILE: $#$CELL C2$#$.c
=================================*/
#define _$#$CELL K2$#$_C

#include	"$#$CELL C2$#$.h"
/*==================================*/
// 関数名:$#$CELL C2$#$_HandleEvent	//
// 内容 :イベント処理		//
/*==================================*/
boolean $#$CELL C2$#$_HandleEvent($#$CELL B2$#$* poya, AEEEvent eCode,
                              uint16 wParam, uint32 dwParam)
{  

    switch (eCode) 
	{
        // App is told it is starting up
        case EVT_APP_START:                        
		    // Add your code here...

            return(TRUE);


        // App is told it is exiting
        case EVT_APP_STOP:
            // Add your code here...

      		return(TRUE);


        // App is being suspended 
        case EVT_APP_SUSPEND:
		    // Add your code here...

      		return(TRUE);


        // App is being resumed
        case EVT_APP_RESUME:
		    // Add your code here...

      		return(TRUE);


        // An SMS message has arrived for this app. 
        // Message is in the dwParam above as (char *)
        // sender simply uses this format "//BREW:ClassId:Message",
        // example //BREW:0x00000001:Hello World
        case EVT_APP_MESSAGE:
		    // Add your code here...

      		return(TRUE);

        // A key was pressed. Look at the wParam above
        // to see which key was pressed. The key
        // codes are in AEEVCodes.h.
        // Example "AVK_1" means that the "1" key was pressed.
        case EVT_KEY:
		    // Add your code here...

      		return(TRUE);


        // If nothing fits up to this point then we'll just break out
        default:
            break;
   }

   return FALSE;
}

/*==================================*/
//関数名:$#$CELL C2$#$_InitAppData	//
//内容 :領域確保・描画		//
/*==================================*/
boolean $#$CELL C2$#$_InitAppData($#$CELL B2$#$* poya)
{

	poya->gno	=	-1;

    return TRUE;
}

/*==================================*/
//関数名:$#$CELL C2$#$_FreeAppData	//
//内容 :領域のフリー		//
/*==================================*/
void $#$CELL C2$#$_FreeAppData($#$CELL B2$#$* poya)
{
}

(上記 < > ¥は、本当は半角)

シート(画面用)の内容は、こんなかんじ

 セルB2   アプリ名
 セルC2   画面名小文字
 セルK2   画面名大文字




今回はここまでとします。
続きは、このシリーズの次回に。。


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

KDDIのEZ GreeとDIONラボの類似ブロガー検索をあわせると。。

2006-11-02 15:10:38 | Weblog

KDDIのSNS,EZ Greeのニュース
KDDIとグリー、11月から携帯向けSNS「EZ GREE」開始
http://k-tai.impress.co.jp/cda/article/news_toppage/31728.html




類似ブロガー検索なんかをするDIONラボのニュース
KDDI、類似ブロガー検索や映画推奨ツールなど実験公開する「DIONラボ」
http://internet.watch.impress.co.jp/cda/news/2006/10/31/13792.html


ばらばらに読んでいたけど、あわせると??

SNSで書いた日記を読んで、類似度を検索して、
 自分に似た人を教えてくれる。。


ってことになりますねえ・・・
で、そして2人が気に入れば、お友達になれる。。

てなことっすか?

そーすると、たしかに、そういうことから友達になって、
メールをやり取りしてくれたり、電話掛け合ってくれたら、キャリア、
パケット使ってくれて、うはうはですもんねえ。。(^^)




そのうち、友達紹介、結婚相談所みたいなのもできて
こんな人がいい!という要望を入れると、
SNSから分析して、紹介してくれるとか。。
これも、パケット使ってくれて、うはうはですもんねえ。。(^^)




え、紹介するんなら、いっそのこと、合コンとかも。。
っていうのは、ないんだろうな。。
なぜなら、合コンがスムーズに進む携帯というのは、
ドコモが出している
のであって、auではないからだ。。

って、そー言うオチかい(^^;)



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

暗号鍵をメールで送るのって、危険?じゃあ、ケータイでワンタイムパスワード?

2006-11-02 09:19:11 | コピーされるほど儲かるシステム!

 暗号鍵やパスワードをメールで送ることがあると思います。
 しかし、この方法は、ある意味危険ですよね。

 まず、メールが盗聴されている場合は、意味はない。
 (暗号鍵を書いたメールも盗聴されてしまうから)
 じゃあ、メールを盗聴できないようにと、メールをS/MIMEなどで暗号化したとしても、そのメールのメーラーを覗かれるようなことがあった場合
(たとえば、OUTLOOKのウィルスで、「メールを開いたら、開いた内容を送信する」というのが、仮にできたら、メールを開いた後(=暗号を解読された後)の内容を送信されてしまうので、対処できない。

 じゃあ、バイオメトリック、指紋など。。といっても、指紋などは偽造できるそうで、
 これ、逆に偽造されてしまうと、指をかえるわけには行かない。。
 つまり、バイオメトリックは偽造されてしまうと、変えるわけには行かないから、
 逆に困る。




 というと、リスク分散ということで、

(1)添付ファイルを開くアプリごと、
   いや、ドキュメントごと、
   いや1メールごとに
 パスワードや暗号鍵を変える

(2)暗号化したものと暗号鍵を同じ方法(メールなど)で送るのでなく、
   暗号化したものと
   暗号化鍵を
 違う経路で送る

 上記の例として、ジャパンネット銀行のワンタイムパスワードがありますよね。
 ワンタイム(上記の例だと1メール相当だけど、これはメールではない)のパスワード
 にして(=(1))、そのパスワード発生器は、宅急便で送っている(=(2))。




 これを、たとえば、会社で応用するなら、

・あらかじめ、暗号鍵やパスワードを複数書いたものを、郵便や、手渡し
  (電子化しなくていいならFAXなどもあり)で送り、
・Excelにパスワード、暗号化をかけ
  (そうするとメールで送っても、Excel自体が暗号化されてるのでOK)、
・メールで送る場合は、何行目のパスワードを使うということだけ書く。
 →そうすると、メールを傍受されても、パスワードを書いたものは入手してないので
  何行目と書かれても、わからない=解除できない

 もっと、セキュリティを極めるなら、Excelにパスワードを書け、メールで送り、そのあと「メール届いた?パスワードはこれだよ!!」と、電話する。。って、おいおい、一時代前のメールかよ(昔は、「メール届いたあ?」とわざわざ電話する人がいた)




 うん、ちょっとまてよ。。。

・メールにIDがかいてある
・そのIDをケータイに入れる
・そうすると、アプリはSSLでIDとユーザー情報(電話番号)とかをサーバーに送り、
・認証されたら、暗号鍵をSSLで送り返す
・その鍵をQRで表示するなり、Felicaで読み取れるようにする

ってすれば、電話しなくても、ケータイだけで、完結する??

 って、これ、前に KeyQRやその変形(非接触で行う)でキャリア大もうけ!ナンバーポータビリティの囲い込みも!?って書いたやつと似たようなもんだね(^^;)
 でも、日本学生科学賞なら、西條さんより、下山せいらさんな、ウィリアムのいたずらなのであった。


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