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

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

グーグルマップ上に人工衛星の位置をはるブログパーツだって!

2007-05-15 18:52:04 | Weblog

ここ
グーグルマップ上人工衛星ブログパーツ
http://prog47.blogdns.org/satellite/howtopaste.html


ブログパーツでなく、みれるのは、こちら
Satellite on GoogleMaps グーグルマップで衛星軌道 
http://prog47.blogdns.org/satellite/


なんかどっちも、すごいです!
けど。。。

使い道が・・・思いつかなかったりする(^^;)


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

「インターネットや携帯電話は世界中の悪と繋がる」という政府の緊急提言、公表見送り

2007-05-15 16:29:19 | Weblog

ここのニュース
「携帯電話は世界中の悪と繋がる」政府による育児指南は公表中止
http://news.ameba.jp/2007/05/4692.php

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


【東京 11日 ロイター】
 共同通信社によると、政府が日本の母親に向けて策定した育児に関する緊急提言の発表が見送られることとなった。提言案には、「母乳で育て、子守唄を歌い、食事中はテレビをつけない」などの内容が盛り込まれていた。


で、表題の問題の箇所だが。。


 今週公表される予定だった教育再生会議による提言には、「お母さんは授乳中、赤ちゃんの瞳をのぞいてください」などと書かれているほか、インターネットや携帯電話を使用すると子供は「世界中の悪と直接つながる」ことになるとの警告も載せている。 


うーん、それはそうかもしれないけど。。



直前になって公表を取りやめた背景には、国民の家庭生活にまで干渉することに強い反発があったようだ。


あ、こんなこと公表したら、2ちゃんねるで、たかかれて、
参議院選が。。
って、そーいうわけではないのね(^^;)


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

次世代EDIの流通ビジネスメッセージ標準、まだWeb-APIには、なってない?

2007-05-15 14:40:49 | Weblog

日経コンピューターの2007年4月30日版
(いまのではない。特集は「中国市場を切り開く」の号)
の121ページにある、「流通ビジネスメッセージ標準」って、
「次世代EDI標準メッセージ」
http://www.dsri.jp/company/04/index.htm

のことなのかしら。。。??
それとも、違うものがあるのかなあ・・・??

まだビジネスモジュールをWeb-APIで書いて、
それを卸、小売各店で、Mash-upして、
そのときのメッセージを次世代EDIにするとか。。

そこまでは、きてないのかな(^^;)



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

開発の初めから順番に書いていってみる その43:プログラミング(5)条件分岐1 体系

2007-05-15 11:24:55 | 開発ネタ

シリーズ「開発の初めから順番に書いていってみる」の続きです。
 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 現在プログラミングで、決定表と自動生成の話題を書こうと思っています。

 前回で決定表は、まとまりました。
 今回は、プログラム全体の中から、条件分岐のなかでの決定表の位置づけについて考えてみたいと思います。




■条件分岐の位置づけ

 プログラムは、開始してしまうと、

 ・次の文を実行するか、
 ・条件によって分かれるか、
 ・どこかにジャンプするか、
 ・そこで終了するか

。。です(繰り返しはジャンプ+条件です)。

このうち、「条件によって分かれるか」が条件分岐になります。




■条件分岐の体系

 で、条件分岐は、IF文が1個のものと、複数の条件が組み合ったものが考えられます。
 複数の条件が組み合ったものの中でも、あるモノを投入すると、条件が1つしか成立しないものと、複数の条件が成立してしまう場合があります。

 上記の「条件が1つしか成立しないもの」としては、たとえば、ステータスをもっていて、

 ステータス1のときには、処理1を実行
 ステータス2のときには、処理1と処理2を実行
 ステータス3のときには、処理5と処理2を実行
   :

 のような場合です。CやJavaでは、switchとbreak文を使い
	switch(sts)
	{
	case 1:
		syori1();
		break;
	case 2:
		syori1();
		syori2();
		break;
	case 3:
		syori5();
		syori2();
		break;


のようにあらわします。VBではselect case文を使います。

複数の条件が成立してしまう場合は、さらに以下のように体系わけできます。




■複数の条件が成立してしまう場合

 そのときは、条件が成立したら、あることをやるというような、アンケートで言うとマルチアンサー型(複数回答可。チェックボタンンで選ぶやつ)の場合と、決定表にあるように、いろいろ条件をチェックし、1つの状態(ステータス)に落とし込み、そのステータスにもとづいて、処理を実行するという、アンケートで言う、シングルアンサー(答えが1つしかない。ラジオボタンで選ぶやつ)型の場合があります。

 条件が成立したら、実行のマルチアンサー型の場合、
 プログラミング上では、
    ・直接そのまま行うか、
    ・スイッチ(ないしフラグ)を使います。
 ただし、実行順番がある場合、直接行ってはいけません。
 そのため、スイッチを使ってやったほうがきれいです
 (とくに、マルチアンサーとシングルアンサーがあわさる場合)

 例で言うと、オプションなどです。
 ハードディスク50M追加、CGI機能、DB機能追加
 ただし、キャンペーンセットの場合は、これらを全部付けちゃう!
 なんていうとき

int	hdd_option	=	0;
boolean	cgi_sw		=	false;
boolean	db_sw		=	false;

if ( ハードディスク50M追加 )
	hdd50_option 	=	1;
endif

if ( CGI機能 )
	cgi_sw		=	true;
endif

if ( DB機能 )
	db_sw		=	true;
endif

if ( キャンペーン)
	hdd50_option 	=	1;
	cgi_sw		=	true;
	db_sw		=	true;
endif



なんていうかんじです。

 条件から状態を決めて実行するシングルアンサー型の場合、条件が並ぶことになりますが、この場合、if~elseif・・・elseとelseifを並べる場合もありますし、単純にIF文を並べる場合もあります。

これを、この前書いた、Fizz-Buzz問題の例でいうと、

elseifを並べる場合は、初めの例のほう
			if ( (i % 3 == 0 ) && ( i % 5 == 0 ) )
			{
				System.out.println("FizzBuzz");
			}
			else if ( i % 5 == 0 )
			{
				System.out.println("Buzz");
			}
			else if ( i % 3 == 0 )
			{
				System.out.println("Fizz");
			}
			else
			{
				System.out.println(i);
			}


で、単純にIF文を並べる場合はあとの例のほうです。
			//	3の倍数
			if ( i % 3	==	0 )
			{
				sts	=	3;
			}

			//	5の倍数
			if ( i % 5 == 0 )
			{
				sts	=	5;
			}

			//	3と5の倍数
			if ( ( i % 3 == 0 ) && (i % 5 == 0 ) )
			{
				sts = 15;
			}




■複数の条件のシングルアンサー型の場合、条件の並べ方の違い

この2つ、並べ方が違います。

 elseifを並べる場合は、条件の厳しいものを上にもっていきます。
さっきの例だと、いきなり、if ( i%3==0 )つまり、3の倍数?って入れてしまうと、
3と5の倍数もそこで成立してしまうので、後の条件に引っかかってくれません。
 なので、 3と5の倍数を先に書きます。
 なお、elseifを並べる場合は、なにも成立しない場合は、最後のelse文に設定します。

 一方、単純にIF文を並べる場合は、条件の厳しいものを下にもっていきます。
 elseifを並べる場合と同じように書くと、はじめに、3と5の倍数でひっかかっても、あとで、5の倍数、3の倍数にも引っかかり、結局3の倍数になってしまいます。
 なお、単純にIF文を並べる場合は、なにも成立しない場合を初期値として、はじめに設定します。




■まとめ

では、今日の体系をまとめると、こんなかんじ。

 ・次の文を実行するか、
 ・どこかにジャンプするか、
 ・そこで終了するか
 ・条件によって分かれるか、
    ・条件(IF文)が1個
    ・複数の条件がある
       ・条件が1つしか成立しない(select case)
       ・条件が複数成立してしまう
           ・条件が成立したら、実行(マルチアンサー)
           ・条件から状態を決めて実行(シングルアンサー)




そして、「条件から状態を決めて実行(シングルアンサー)」のときの、
プログラムの落とし方として、
  ・1つは、elseifを並べる場合
  ・もう1つは、ifを並べる場合です。




 で、実は、もうひとつの方法に、「考えられる条件をすべて取り上げる」という方法があります。これが、決定表になります。
 これについては、上記の問題点について述べないといけないのですが、もう、ここまででもかなり長くなってしまったので、今日はこの辺で、次回に、それを取り上げます。



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