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

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

プログラムやテストデータを自動生成する方法 その6 DBの例 その1-仕様

2007-05-16 14:03:51 | Weblog

 雛形ソースを作成し、Excelの仕様書を用意すると、プログラムのソースやテストデータを生成する方法について説明するシリーズ、「プログラムやテストデータを自動生成する方法」です。

 第二回目でインストールをしました。
 それから5回目までで、概要を説明しました

 今回から、それを使った例について説明します。




■なにをやるのか?

 これから、データベースの仕様書をもとに、
    ・テーブルを作成し
    ・入出プログラムを自動生成し
 テストデータも入れてもらったら
    ・テストドライバも作成し
    ・試験項目書も作成し
    ・データをいれるSQLを作成する
 なので、あとは、テストを実行して、結果を入れればいいだけ。。
(ちなみに、結果も技術的には自動生成で書き込めますが、それはいけないみたいです。人はそれを捏造と呼びます。はい)

 ということのさわりの部分、「テーブルを作成し」のところをやります

 なお、それ以外の部分や全体像に関しては、開発の初めから順番に書いていってみるの「自動生成」関連(もうちょっと先です)で、書くと思います(忘れていなければ)




■仕様

 で、その仕様書から、テーブルを作成、具体的にはテーブルを作成するSQLを書き出すという話なのですが。。

以下のような、仕様書

(上記の例の場合、シート名は「ユーザーテーブル」にしてあります)
をもとに、
以下のようなSQL
CREATE TABLE userTBL (
  name VARCHAR(50) NOT NULL,
  pass VARCHAR(50) ,
  auth INTEGER ,

  PRIMARY KEY(name)
); 

を作成します(今回はusertblsql.txtというファイルだとします)。

こうすれば、たとえばmySQLであれば、データベース名がtestdbだとすると
mySQL testdb -u root -p < usertblsql.txt
(<は、本当は半角です。半角で入力してください)
とすると、rootのパスワードを聞いてくるから、それをいれると、
テーブルが作成できます。




 次回から、実際に、なにを作成して、どうするかについて書きます。



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

開発の初めから順番に書いていってみる その44:プログラミング(6)条件分岐2 問題点。

2007-05-16 11:33:16 | 開発ネタ

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

 昨日、条件分岐の位置づけと、その体系をこんなふうにまとめました
<<プログラム>>
・次の文を実行するか、
 ・どこかにジャンプするか、
 ・そこで終了するか
 ・条件によって分かれるか、
    ・条件(IF文)が1個
    ・複数の条件がある
       ・条件が1つしか成立しない(select case)
       ・条件が複数成立してしまう
           ・条件が成立したら、実行(マルチアンサー)
           ・条件から状態を決めて実行(シングルアンサー)


で、「条件が複数成立してしまう」場合、「条件が成立したら、実行」する場合は、スイッチを使ってはじめ、スイッチオフにしておいて、条件が成立したらスイッチONにすれば、いいので、これはいいんですけど、「条件から状態を決めて実行」の場合、条件を決めるのに、

・1つは、elseifを並べる場合
・もう1つは、ifを並べる場合

の2つを示しました。この場合、条件の厳しいものを、elseifだと前に、ifの場合は後ろに並べないとおかしくなる(条件の甘いものに先に引っかかってしまい、条件の厳しいものが、正しく判定できなくなる)ということを書きました。

 今日は、その問題点です。




■問題点 その1:条件が厳しいかどうか分かりにくい

 条件の厳しさというのは、複数条件が多くかぶさっているほうが厳しそうに見えますが、必ずしも双とはいえません。

 たとえば、
 3の倍数でかつ5の倍数
   は条件2つですが、
 30の倍数
   は条件1つです。
 でも、実質は30の倍数のほうが条件きついです

 これは、30の倍数=3の倍数でかつ5の倍数でかつ2の倍数

 だから、実質条件は3つだからなのですが、
 上記の例のように簡単に判る場合はいいのですが、ちょっと分かりにくくされてしまうと、どの条件が厳しいのか分からず、結局、どう並べたら。。って言うことになってしまいます。。。




■問題点その2 仕様書と合わなくなるケースがある

 仕様書を書く人が、上記の件を意識して書いてくれればいいのですが、そうでないと、適当に並べます。ふつう、おおくあるのは、

 条件の甘いもの → きびしく  →で、それらに合わなかったら。。

 っていう風に書きます。なので、elseifを使う場合は

 きびしく → 甘いもの → で、それらに合わなかったら。。
 
ってひっくり返して考えます

 また、if文の場合は

  合わないケースを初期値→条件の甘いもの → きびしく

 っていうふうにします。

 でも、これ、どっちにしても、順番がかわってしまい、とくに、elseifのほうは、ひっくり返すので大きく順番が変わってしまいます。
 その上、上に書いたとおり、条件の甘さ、厳しさは、わかんないときもあるのにです。。(つまり、ひっくり返したつもりが、甘い条件が前に来てしまうこともありえる)

●ちなみに。。。

 この前FizzBuzz問題のときたぶん、意図的にこの順番にしていると書いた理由は、はじめに「数字をプリントし」と、デフォルトの条件を書いてきているから。。ふつう、このように「それらに合わなかったら」というのは、最後に書く。それをあえて前に用に書いているのは、これを知っていてやっているように見える。SEは、これを知らないと、仕様書とプログラムが合わなくなるので、知っている人も多いと思います。




■問題点その3 順番を勝手にひっくり返すといけないケース等ある

 順番をひっくり返したりちゃいけなかったり、
 elseifにしちゃいけなかったり
 if文で最後まで条件をチェックしちゃいけないケースがあります。
 (if文でも、条件が成立したらreturn,breakさせて、
  最後まで条件をチェックしない方法もあります)

例:
売り上げ10000円で、ブロンズ会員=10%引き
ブロンズ会員が売り上げ20000円でシルバー会員=20%引き
シルバー会員が売り上げ30000円でゴールド会員=30%引き

で、30100円の売り上げを上げたとします。

この人は、
if (シルバー会員で売り上げ30000)

elseif(ブロンズ会員が売り上げ20000円)

elseif(会員でない人が10000円)

と聞くと、この人は、今会員でないので、ブロンズ会員になります。

でも、

if (売り上げ10000円で)
ブロンズ会員

if (ブロンズ会員が売り上げ20000円)
  シルバー会員

if (シルバー会員が売り上げ30000円)
  ゴールド会員

ってやると、この人、このつきでゴールド会員になってしまいます。
これ、どちらのケースもありえます。

また、マルチアンサー方のものと絡んで、たとえば、人を紹介すると1人当たりブロンズは500円引き、シルバーは1000円引き、ゴールドは1500円引きで、それを売り上げから引いた値で会員を決定する。。とかとかになってくると、仕様書どおりに組まないとわけわかんなくなります。




■問題点その4 処理がかかわってくると、条件を聞く順番が重要になる

 で、上記のケースと関係して、処理がかかわってくると、条件をチェックする順番が大切になります。さっきの場合も、

if (売り上げ10000円で)
ブロンズ会員

 のとき、ブロンズ会員の昇格処理をここでしないと、その人はブロンズ会員にならないので、30100円買っても、シルバー会員にはなれません。

 また、値引き処理を先にしてしまうと、シルバー会員になった時点で20%引き、なので、30100円-20%(6020円)=23980円として、この値引き金額で判定すると、ゴールド会員になれません。

 どちらのケースもありえますので、できるだけ仕様書に合わせた書き方のほうがいいわけです。

 なお、このような計算順番で、大きく変わってくるのに、税金の計算があります。四捨五入が入るので、かけてから割るか、割ってからかけるかで大きく違います(例:所得税の中間納付)




■条件を全部出す-決定表

 処理が絡んでいる場合はだめなのですが、これを避ける方法として、

 あらかじめ、すべての条件を、ダブりなくだしてしまい、
 それれに対応する処理を決定してしまえば

 すべての条件をダブりなく網羅している、つまり、1つの状態しか選べないのですから、これは、「条件が1つしか成立しない」状態と同じになります。

 この方法で記述されたのが、決定表です。

 決定表は、
・全部の条件を複合していない1つの条件に分けて
・それのYNを、樹形図みたいに書いていって
・最後にそれをまとめてYN・・・の列にすることで、
 すべての条件をダブりなく網羅しているようにします。

 しかし、決定表は、条件N個に対して2のN乗の選択肢ができます。
 だから、条件が5個あれば、2の5乗=32個、まあ、ここならOKですが
 条件が10個あれば、2の10乗=1024個、これは、無理っす(^^;)

 また、途中に処理が入ってしまうと。。ってことがあります。




■で、どうするか

 ということで、仕様書の書き手が、この条件分岐の方法を意識し、プログラマのほうと一緒に、仕様書をできるだけ崩さない書き方にして、合意をとるお客さんとも、意識の差がないような手段を講じないといけない(その場でとっていかないといけない)ということになります。

 その1つとして決定表を使って網羅してみるとか、
 具体的な値をいれて、シナリオをつくってみるとか。。

 ま、いろいろあるわけです。




 で、これで、条件分岐の話はおわりです。
 (決定表の自動生成に関しては、あとでまとめてします)





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

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

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でシェアする

楽天通販で、”母の日のプレゼントにした花が枯れている”という苦情が相次いでるそうな。。

2007-05-14 18:15:17 | Weblog

いや、さすがに本家(楽天日記)にはかけないので、こっちで(それにネット関係だし)

ここの痛いニュース
【楽天通販】 「母の日のプレゼントにした花が枯れてました」…苦情相次ぐ
http://blog.livedoor.jp/dqnplus/archives/973340.html

に、楽天市場のあるお店で買って、母の日に贈った花が。。。

枯れていた(>_<!)

という苦情がいくつか、のっています。

悲惨なのだと(以下斜体は上記サイトより引用)


名前 : tomo
題  : 腐っていました(泣)

母の日に贈った花が腐っていたようです
私は16の時に駆け落ちしてから、お母さんに電話をしても出てくれませんでした
今年、新しい旦那様との間に赤ちゃんが生まれて2ヵ月後に電話したら
少し話ししてくれたのですが、駆け落ちの話になって私が怒って電話を切ってしまったので
電話しずらくて、やっぱり赤ちゃんの為にも仲直りしたくて母の日のプレゼントに
カッコつけて、花を贈ったのですが
真っ黒なカーネーション・他の花は腐っていたようで
お母さんが電話してきました。そして、あんたの気持ちは良くわかった
こんなのは特別に注文しないと普通の店はありえないから、
あんたが無理言って頼んだんだろうって電話をガチャンと切られました

もうなんだかわからないです。頭がパニックで書いていてもちゃんと考えられません・・・

どういうことですか??ずっと返事待っていましたが、もう返事もいりません!!



あちゃー(>_<!)

うーん、お花は通販で買うのは危ない??。。。




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

開発の初めから順番に書いていってみる その42:プログラミング(4)決定表 3-説明

2007-05-14 17:11:43 | 開発ネタ

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

 今日は決定表の3回目で、前回の決定表のプログラムの説明です。




■今回説明するところ

 前回、決定表をMVCとして

  ・呼び出しクラス(ビューに相当)
  ・決定表の部分(コントロールに相当)
  ・実行部分(モデルに相当)

 にわけて書きました。で、ここで、「決定表の部分」(KetteiCtrl.java)について説明していきます。




■考え方

 決定表は、こんなかんじ

30歳未満  Y Y N N
男性     Y N Y N
既婚者    N Y Y N
──────────────
帳票1を出力 - X - -
帳票2を出力 - - - X
帳票3を出力 X - - -
帳票4を出力 - - X -


ですが、まず

1.あらかじめ、右上の条件と、右下の起動する仕事の組を作っておきます
  条件がキー、仕事が値の関係です。

2.左上の条件をチェックし、右上の条件部分のキーに相当するところをつくります。

3.2のキーを使って、1の組から、やるべき仕事を検索します

4.やるべき仕事を起動します。

というかんじになります。




■プログラムとの対応

 前回のプログラムソース(KetteiCtrl.java)と対応させて考えます。

はじめの、1の、条件と仕事の組が、zyoken_listとtodo_listに相当します。
これは、決定表を(90度回転してみる形にはなりますが)そのまま移した
かたちになります。

2の条件チェックが、「条件判定」のところです(この前にデータを取得しておく必要がありますが)

決定表の条件ごとにY,Nをきめていき、それをつなげて、決定表の条件部分をつくります。

で、作成した条件から、仕事を割り出すのが、「実行条件の選択」です。
今回は、ループを回して、一致するものをチェックしていますが、
ハッシュマップをつかって、条件をキーにして、仕事を受け取ったほうが、
きれいです(プログラム的に、こっちがわかりやすいかなと、今回は
一致するもののほうを採用しました)

最後に「実行」部分で、やるべき仕事(のところはXと入っている)
について起動しています。




ってことで、簡単に説明したけど。。分かっていただけましたでしょうか??
まだまだ??だとしても、これ、自動生成のところで、また出てきますので、
まあ、くわしくはそちらということで。。

次回のこのシリーズは、決定表以外の条件というか、条件判定一般について、話を広げて考えます。
(ちなみにここで、そして状態型は、決定表に持ち込む方法と命題に持ち込む方法などがある(今回は命題に持ち込む方法を採用した)、詳しい話は、「開発の初めから順番に書いていってみる」で、決定表の話が終わった次に、条件判定の体系化というようなかんじの話で行う予定ですけどと書いた話です)



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

動画はIPV6か、P2P+動画ファイル検索サイトが、ありかを渡す形かな?

2007-05-14 16:22:27 | Weblog

さっきの2ちゃん、ニコニコ動画のひろゆき氏の話のつづき

ここ
ひろゆき氏、「ニコニコ」ヒットでも「動画は“来て”ない」 (1/2)
http://www.itmedia.co.jp/news/articles/0705/11/news117.html

によると、ひろゆき氏いわく、(以下斜体は上記記事より引用)


「動画はトラフィックがやたらと大きくなってしまい、回線コストがかかるのでなかなか規模が広げられない。YouTubeのトラフィックコストは月間2億円、年間だと数十億円になると聞くが、年間の利益は1億5000万円程度。それでビジネスが成立するかというと難しいのでは」


だそうな。。

たしかに、今の仕組みでは、動画は、トラフィックが大きくなってしまいますよね。。
IPV6に期待するか。。

じゃなかったら、

・WinnyみたいなP2Pソフトで、動画をどんどん広めていき、
・検索ロボットが、そのP2Pソフトで共有しているファイルをしらべて
・誰が、どのファイルを持っているかをチェックして、検索DBに書き出し
・動画を見たい人は、その検索サーバーにアクセスして動画を入手する
  →検索サーバーが、ダウンロードサイトを、混み合わないように、割り振る

っていうかたちかなあ。。

でも、Winnyが規制されたので、P2Pによる動画共有で広めるという可能性はなくなった?


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

Webプログラミングは、銀行のシステムなどでない限り、1人で作った方が早い

2007-05-14 14:13:32 | Weblog

2ちゃんねる、ニコニコ動画の、ひろゆき氏が語った
ひろゆき氏、「ニコニコ」ヒットでも「動画は“来て”ない」 (2/2)
http://www.itmedia.co.jp/news/articles/0705/11/news117_2.html

で、興味深い話がいくつか出ていたので、ちょっとそれらについて、挙げてみたいと思います(といいつつ、最後はMashupのソフトの話になってるけど ^^;)。

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


「Webプログラミングは、銀行のシステムなどでない限り、1人で作った方が早い。


おっしゃるとおりだと思います。
Webプログラミングの場合、インターフェース部分を疎に結合できるので、
REST型のインターフェースにして、あとは、自分の世界で作っていったほうが
早いと思います。他人に理解や協力という名の邪魔をされないので。。


ニコニコ動画のプロトタイプは、プログラマー1人が1週間で作った。他の人が作ったモジュールを組み合わせてプログラミングできる環境が整ってきている。ソーシャルブックマークサービスを15分で作る様子の動画も見たことがある」(ひろゆき氏)


たしかに、生産性は高いかも。。
ウィリアムのいたずらとしては、クライアントとサーバーの分離と、
その疎結合の部分に着目してるのだけど。。

そーいえば、日経コンピューター2007年5月14日号の、44ページ、
KDDIの開発で、(2段目、「開発期間は5分の1」のところ)
カパオ・テクノロジー
「Kapow Mashup Server」っていう話が出ていた。
マッシュアップしてくれるみたい。。なので、開発期間が5分の1になったそうな
その記事によると。。

で、この「Kapow Mashup Server」に関係あるのかどうか。。
以下のブログ
robotもシェアしよう!のネタ
http://www.netagura.com/2006/12/12/174/

によると(以下青字は、そのブログからの引用)

openkapowは、「Robomaker」という、いわゆるサイトをクロールするrobotを作る為のツールを提供しています(windows版とlinux版がある)。
「Robomaker」は「visual scripting tool」とうたっていて、VBみたいにrobotのスクリプトを作れるツールらしいです。

この「Robomaker」を作っただけでも「ご苦労さんです~」といいたいところだけど、「openkapow」では「Robomaker」でつくったスクリプト・・・つまりrobotをシェアできるような仕組みも提供しています。
シェアできるのは、スクリプトコードだけでなくて、robotの動作環境もです。
決まったURLをつつくと、お気に入りのrobotを発進させてその結果をゲットできるというわけです。
気が利いてますね!

だそうな。。

なんか、このへんとMashupを組み合わせて、自動的なデータ収集(事実上のデータ一斉送信)とか、なんかできそうですね

ちなみに、openkapowは、
ここ http://openkapow.com/



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

ソフトバンクのケータイと固定電話の融合(FMC)の方向性(12:15 キャンペーンURL追加)

2007-05-14 12:06:32 | Weblog

以前、
「固定+携帯」初の使い放題へ、ソフトバンク
http://blog.goo.ne.jp/xmldtp/e/1ea9ded43e6424e7533d978fa4679595

で、ソフトバンクは、特定の企業に対して、「固定電話と携帯電話を一体化した定額料金を導入」するらしいことを書いた。

で、この前のブログ
携帯とIP電話間の通話が話し放題--ソフトバンクがこっそり?キャンペーン
http://blog.goo.ne.jp/xmldtp/e/274e75ebf6a678178444659a0e0cca1b

ってことで、限定キャンペーンでIP電話とケータイが話し放題という話を書いた。


(12:15追加)そのソフトバンクのキャンペーンURLは、
こちら
http://mb.softbank.jp/mb/special/bbphonefree/KHF/index.html



で、そのとき引用したITProの以下の記事
携帯とIP電話間の通話が話し放題--ソフトバンクがこっそり?キャンペーン
http://itpro.nikkeibp.co.jp/article/NEWS/20070511/270777/?ST=network

には、こう書いてある(以下斜体は上記記事より引用)


 同社は、携帯電話の分割払い開始時も同様に、1~2カ月の試験サービスを一部地域で展開し、その後本格サービスを始めた経緯がある。今回も同様に、計画中の新サービスの前触れである可能性がある。


ほー、ってことは、これら、固定とケータイを一体化したサービス(FMC)を、今後ソフトバンクは進めていくんだろうか。。。
まあ、手っ取り早いのは、その分野しかないっていえるけど。。

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

Microsoftの自動更新で、CPUがほぼ100%消費される不具合だって。。。

2007-05-13 22:38:05 | Weblog

ここのニュース
Microsoftのアップデートに不具合、CPU使用率が100%近くに
http://www.itmedia.co.jp/enterprise/articles/0705/12/news010.html

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


 Microsoftの自動更新機能を使ったアップデート適用に関して不具合が指摘されている。SANS Internet Storm Centerは、Microsoftの月例パッチを適用後、「svchost.exe」によってCPUが99%消費されてしまうという報告が、複数の読者から寄せられたと伝えている。

 Microsoftはこの問題について解説したナレッジベース(KB)記事「927891」を5月10日に更新。それによると、Microsoft UpdateやWindows Updateからアップデートをインストールしようとすると、プロセスの実行に使われているSvchost.exeが反応しなくなったり、アクセス違反エラーが表示されてサーバ/ワークステーションサービスが停止してしまうことがある。

だって・・・
月曜日の朝から、いきなりこうなったら、こまるよね(^^;)
企業の情報システム部のひととか、大変そう。。



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

Hello World程度のデータベース(その19:外部スキーマ(3)SQLその2)

2007-05-13 14:20:24 | 土日シリーズ

 情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「Hello World程度のデータベース」です。

 今までで、三層スキーマ構造(概念スキーマ、内部スキーマ、外部スキーマ)の概念スキーマ、内部スキーマをやって、今は、外部スキーマの話です。

 で、前回から、SQLについて、やっています。
 前回は、DB操作というと、追加、削除、更新、検索があって、それぞれ、
・レコードの追加   insert
・レコードの削除   delete
・レコードの更新   update
・レコードの検索   select
というSQLのコマンドがあるとかきました。

 今回は、それらコマンドで、何を知っていれば操作できるかという、SQL操作の目次みたいな話を書こうと思ってます。




■SQLの内容の目次

 これからやるSQLについてですが、だいたい、以下の内容がSQLでふつうに教える内容だと思うので、その中から、適当にみはからって、まあ、Hello World程度の内容を書こうと思ってます(といいつつ、全部書いてしまうかも ^^;)。なお、次からやる内容の順番を考えて、はじめに検索を持ってきています。


●レコードの検索   select
・1つの表を条件をつけずによむ
・WHERE句
・ORDER BY
・GROUP BYとHAVING
・2つ以上の表
・結合あれこれ(外部結合、内部結合、自然結合、自己結合)
・副問い合わせと限定述語
・UNION、INTERSECT,EXCEPT

●レコードの追加   insert
・レコードの追加
・SELECT文を利用した複数行の追加

●レコードの削除   delete
・レコードの削除(WHERE句も含めて)
・副問い合わせを使ったもの

●レコードの更新   update
・レコードの更新(WHERE句も含めて)
・SET句における元の値の利用
・副問い合わせを使ったもの

●その他
・コミットとロールバック
・参照制約
・トリガーとストアド・プロシージャ(ストアド・プログラム)
・二層コミットと分散データベース・・は、やりすぎか(^^;)





で、今回から内容に入ってしまうと、
目次と内容が1つのエントリにまとまってしまうというカタチになってしまい、
あとで見栄えが悪い(^^;)気がするので、
今回は、短いですけど、ここで終わりにします。

次回から、SELECTから話に入ります。




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

パラグアイの秋葉原の映像だって(^^)

2007-05-13 10:47:54 | Weblog

ここ(注意:クリック先は動画です。すぐに再生して音が出ます)
パラグアイの秋葉原
http://video.ask.jp/watch.do?v=2867da81-9cdf-4611-8f8b-44b03559dad3&link_id=wcmk05


途中、JVCっていうカンバンが見えるけど、日本ビクターかなあ??

秋葉原といっても、数年前(十年前以上?)の秋葉原(ちゃんと電気製品が売っていたとき)
の風景ってかんじで、メイドさんはいない。

いや、パラグアイが遅れているのではなく、日本の発展(なんで、電気街がメイド街になるんだ?)のしかたの方が反則的なんだと思う。

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

DTPの構造を考える-その7:色 その1

2007-05-12 22:29:49 | 土日シリーズ

 土日シリーズ「DTPの構造を考える」です。

 このシリーズ、はじめは、本をトップにして、その下の物理構造、論理構造と組版規則について書きました。

 次に、本という概念をこえ、DTP全体でもつものについて、書いていて、ライブラリ、フォントまできました。

 今回から、色です。




■パソコンの色と印刷の色

 パソコンの場合、画面は、R(赤)、G(緑)、B(青)の光を発色して表示します。
 なので、RGBの%が大きくなると、しろっぽくなり、R=100%、G=100%、B=100%は、白になります。

 一方、紙のインクは、C(シアン)、M(マゼンタ)、Y(イエロー:黄色)、K(ブラック:黒=スミ版)で表します。GMYKの%が大きくなると黒っぽくなり、CMYK=100ならまっくろです。というか、C=100%、M=100%、Y=100%でも真っ黒です。

 じゃあ、Kはいらないのか。。。というと、今は、なくても黒を出せるようですが、その昔、インクが今ほど良くなかった時代は、C=100%、M=100%、Y=100%というのは実現できませんでした(インクがそんなにいっぱい載らなかった)。
 そこで、黒を出すには、C=100,M=100,Y=100にするのではなく、K=100にして出力していました。それでCMYKがあります。
(今は速乾性のインクになり、C=100,M=100,Y=100はできる?かも。。??)

 で、そーいうことで、C=50%、Y=20%、M=30%のようなとき、みな20%以上なので、この部分を、K版で補い、C=30、Y=0、M=10、K=20%にするような処理(実際には、ここまでやっちゃうとイメージかわるので、こうはしないけど)を下色除去(したいろじょきょ)といいます。UCRと書きます。
 ただし、UCRした色と、CMYそのまま載せた色では、色の感じが違うそうで(コントラストが違うのかな、インクがそれだけ載るので)、いまはUCRをそんなにかけない場合のほうが、おおいのかしら。。。どーなのかな??




■RGBとCMYKの関係

 なお、RGBとCMYというのは、補色の関係になっているそうです。

 そこで、理論的には、RGBとCMYKの関係は、以下の式で表せます。
 (以下の式は、Postscript リファレンスマニュアル(いわゆるレッドブック)の第二版、6.2.3 DeviceRGBからDeviceCMYKへの変換の339ページから引用してきました)。

C=1.0-red
m=1.0-green
Y=1.0-blue
k=min(c,m,y)
ここまでは、補色と、スミ版のKを求めています。
で、以下変換式

cyan=min(1.0,max(0.0,c-UCR(k))
magenta=min(1.0,max(0.0,m-UCR(k))
yellow=min(1.0,max(0.0,y-UCR(k))
black=min(1.0,max(0.0,BG(k)))

ここで、UCR(K)は、スミ版(黒)の値に対し、実際にUCRをおこなったことによって、減らせる、CMY各色の量、BGは、UCRを行ったことによる必要な黒の量です。

なお、上記はCMYKとRGBですが、以前、RGBとグレーの変換については、ここ
ぬり絵は、脳力の老化防止にいいらしい。ということで、パソコンでやろうと思ったら。。
http://blog.goo.ne.jp/xmldtp/e/c8931e944074d5489bcbc1e03b6971cd

で書いています。ついでに書いておくと、

gray = 0.3*red + 0.59 * green + 0.11*blue

gray = 1.0 - min(1.0,0.3*cyan+0.59*magenta+0.11yellow+black)

です。




■しかし実際には。。

 しかし、実際には、このようにはなりません。
 それは、シアン、マゼンタ、イエロー、ブラックの各色が純粋にその色ではないからです。
 多少の色の混ざりなどがあります。

 そのため、DTPソフトにとっては、どの会社のインキのCMYK(プロセスカラー)と指定できるものもあります。




■特色(とくしょく)

 印刷において、上記のCMYKは、プロセスカラーと言われます。
 ところが、これ以外のインキもあります。メタリックカラーといわれる、光沢のある色とか、金粉、銀粉、あとCMYKでは出せない(出しにくい)色などなどです。

 これらの色は、特色(とくしょく)といわれます。色見本帳があって、その中から色をえらびます。DTPソフトでは、これらの特色を選べる仕組みをもっていますが、ワープロソフトではまず、選べないと思います。

 なお、DTPソフトでも、特色を選んだ場合、かならずしも、表示色が実際の色と一致するとは限らないと思います(いや、どんなにがんばったって、金粉を画面上ではひょうげんできないっすよ。金色っぽく見せられますけど、ディスプレイは光んないっす)




■2色刷り、3色刷り。。。

 なお、一般には4色ですりますけど、お金がない人がチラシを出すような場合(^^;)2色刷り、3色刷りというのもあります。このとき、2色、3色には、特色が選ばれる。。かな。。

 で、4色刷りは、普通の印刷物。

 5色刷り、6色刷りというのは、2つのケースがあります。

 4色+特色

 5色に分解して印刷する
  →4色に分解して印刷する普通の印刷より、肌色とかがきれいならしい。。




■特色での注意

 DTPソフトによるのかとも思いますが、ライブラリに特色を含むものを登録し、それをよびだして、貼り付けてしまった場合、その特色がどうなるか。。というのは、アプリ依存の気がします。
 ここで、はりこまれた側でも、特色指定が生きているとすると、貼りこんだ人が知らずして、その特色を含んだ文書を作ってしまう危険があります。

 とくに、特色について、この色で表示せよと指定した、置き換えテーブルを使っている場合、印刷では、キンアカとプロセスカラーの赤のちがいがわかっても、置き換えテーブル上の色では、区別つかなくって、ディスプレイを見る限りわかんないということもありえます。




ということで、今回はここまで。

次回はカラーマネージメントっぽい話かな?


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