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

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

地デジ見れない人のためにチューナーって、ごみ増えるよね!

2007-08-20 18:46:44 | Weblog

ここの痛いニュース
“地上デジタル、お金なくて見れない人々”救済策を策定へ。チューナー無料配布など…菅総務相
http://blog.livedoor.jp/dqnplus/archives/1019517.html

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


菅総務相は現地時間17日、訪問中のブラジルで同行記者団と懇談し、地上デジタル放送への移行に伴う負担が懸念される生活保護世帯などへの救済策を来年6月までに策定することを明らかにした。

2011年7月の地上デジタル放送への移行に際しては、チューナーの購入など新たな負担が伴うため、全国で約100万世帯といわれる生活保護世帯を中心に、デジタル放送が視聴できない事態が予想されている。これについて、菅総務相は総務省が中心となって来年6月までに関係省庁で構成する連絡協議会を設置して、救済策をまとめることを明らかにした。

具体的には、デジタル化が進んでいる諸外国の例を参考にしながら、チューナーの無料配布やクーポン券の配布を検討する予定で、再来年度からの実施を目指すとしている。


うーん、チューナー配っても、テレビは古いまま・・・
ってことは、そのテレビ、そのうち壊れるよねえ。
そしたら、買い換えるよねえ。
そのときは、地デジのテレビだから、チューナー要らなくなるよねえ。
ごみ増えるよねえ。。

そんだったら、いっそのこと、そーいう家庭は、ケーブルテレビに
してしまって、国は、ケーブルテレビ会社を助成したほうが。。
って、料金が高いから、いくらなんでも無理なのか(^^;)

っていうか、NGNって、どーなったのお・・

まさか、チューナーを配布するっていうことで、
みんなに、ぶーぶー、文句を言わせて・・
「でしょー、だからNGNなのよ!」
と、NGNを推進するための布石・・

ってことは、ありえねーな、いくらなんでも(^^;)


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

開発の初めから順番に書いていってみる その78:単体テスト(3)ドライバとか

2007-08-20 15:40:41 | 開発ネタ

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

 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 (バックナンバーは、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm)。
 前回から単体テストについてです。ここの順番で言うと、今回は「3.ドライバ、スタブ、テストデータの作成」です。




■ドライバの作成

 単体テストを行う場合、任意のクラスの任意のメソッドをテストしようとした場合、実行してくれないから、こまるわけです。
 (mainメソッド、main関数なら、実行できるので問題ないですが、他の関数やメソッドは、mainから呼ばれないと実行してくれないから、こまるわけです)。

 そこで、対象となる単体テストメソッドを呼び出す「もの」をつくります。
 これが、ドライバです。

たとえば、以下の階乗プログラムを考えます
public class Kaijyo {
	public static int	kaijyo(int	su)
	{
		int	kekka = 1;

		//	エラーチェック
		if ( su	<=	0 )
		{
			return	-1;
		}

		//	計算
		for(int i = 1 ; i <= su ; i ++ )
		{
			kekka *=	i;
		}
		
		//	結果
		return	kekka;
	}
}

(上記<は、本当は半角)
0以下ならエラーで-1、
0より大きければ、階乗結果が返ります。
(マイナスの階乗っていうのもあるかも知んないけど、
 ここでは、エラーとする)

さあ、このプログラムをテストしましょう・・・
といわれてもこまります。うごきません(>_<!)

そこで、mainから呼び出す、ドライバを作るわけです。
こんなかんじ。

public class KaijyoTest {

	public static void main(String[] args)
	{
		System.out.println(Kaijyo.kaijyo(5));
		System.out.println(Kaijyo.kaijyo(1));
		System.out.println(Kaijyo.kaijyo(0));
		System.out.println(Kaijyo.kaijyo(-1));
	}
}


境界値となる、0,1と、まあ、-1,あと適当に(計算しやすい)5でも、テストして
みましょうかということで、mainから、呼び出す関数をつくります。
実行すると

120
1
-1
-1

と、あじもそっけもない答えが返ってきますが、
まあ、ただしい答えが帰ってきていると分かります。

ちなみに、このテストプログラムの書き方をフレームワーク化したのが、
JUnitで、そいつだと、かっちょよくなります。




■スタブとは

 単体テストを行うとき、たとえば、データベースの処理結果をもとに何かするというような場合、データベース部分はできてないけど、テストしたいというときがあります。
 このようなとき、データベースの部分を固定値が帰ってくるようなメソッド・関数を仮に作って(ダミーモジュール)、テストするようなことがあります。
 このように、呼び出す関数がまだできていない/接続したくないときに、仮に固定値などを返すダミーモジュールを作ってテストすることが良くありますが、このダミーモジュールをスタブといいます。




■テストデータ

 で、データベースの場合、たいていテストデータというのが必要です。
 ファイル読み書きでも必要です。
 なので、テストデータも作っておく必要があります。

 データベースの場合は、SQL文にして、それを読み込ませるようにしますね。
 そのSQL文は自動生成してもいいし・・・




ということで、次回は、上記に挙げた、テストドライバとJunitの関係についてみてみたいと思います。どこが、形式化されているのかなどについてです。



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

VC++で、CFileを使ったファイルの一気読み、一気書き

2007-08-20 11:01:32 | Weblog

以前、Fileを使った、ファイルの一気読み、一気書きをかいたけど、今度は、CFileを使った場合の、ファイルの一気読み、一気書き。



■一気読み

こんなかんじ。
	CFile	f;
	CString writeData="";

	if ( f.Open("test.txt",CFile::modeRead)	==	TRUE)
	{
		unsigned int	flen = (unsigned int)f.GetLength();
		unsigned char *data = (unsigned char *)malloc(flen+1);
		if ( data	!= NULL )
		{
			f.Read(data,flen);
			data[flen]	=	0;
			writeData =	data; 
			free(data);
			f.Close();
		}
	}


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

前提条件として
・"test.txt"というファイルを読み込む
・結果はwriteDataにセット
・開発環境はVC++.net




■一気書き

こんなかんじ。
	CFile	f;
	CString writeData="abcdefg";
	if ( f.Open("test.txt",CFile::modeCreate | CFile::modeWrite)	==	TRUE)
	{
		f.Write(writeData.GetBuffer(),writeData.GetLength());
		f.Close();
	}


(上記< > ¥は、本当は半角です)
前提条件として
・"test.txt"というファイルに書き込む
・書き込み内容はwriteDataにセット
・開発環境はVC++.net




■VC++.netでない場合
 VC++.netでない場合、CString::GetBuffer()に引数が必要になります。
 (引数=バッファの長さ)



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