無料ブログはココログ

amazon

フォト

パソコン・インターネット

2011年5月30日 (月)

格安ワンセグ・チューナーで困った

Web通販でワンセグUSBチューナーが格安で売られていた。

平均価格が12,000円なのに、2000円売られていた。信頼できるショップである。

思わず飛びついて購入した。

数日後自宅に届き、さっそくソフトのインストール。すべて順調にインストールできた。

でわでわと思い、USBチューナーを差し込んだ。

「新しいハードウェアが...」。 ふむふむ。正常に認識しているようだ。。。

っと思ったら、突然ブルー画面。 おわっ、Windowsがこけた。

何度試しても、ダメダこりゃ。ドライバーがタコなのである。

Webで調べること数時間。

何と、この製品はWindows XPではSP2までのサポートらしい。SP3ではサポートしていないとの情報があった。もちろんソフトのダウンロードも提供されていない。

さらにWebで調べること数時間。

やっと、SP3でこのチューナーを使えるソフトを見つけ、インストールした。そのソフトとは別製品用のソフトであるが、この機器でも使えるとの事であった。

TV画面はマニュアルにある画面とは異なってしまったが、正常に使えるようになった。(ホッ)

- - -

Windows XPのSP3はWindows自動更新で導入されるようになっている。つまり、SP3の導入が当然のようになっている。

なのに、なのに、なのにである。

SP2までしかサポートしていない製品が、今でも平気で売られているのは納得いかない。

まして、SP3に対応したドライバーも提供されていない。

んなもん売るなよー。

「しょせん、パソコン」の世界だからであろうか。

メインコンピュータの世界では許されない事である。

ん~。やはり、「たかがパソコン」か。。。

しかしながら、どうしても納得いかない!

2011年2月19日 (土)

Perlのforeachは反則では?

Perlで下記のように作成して実行する。

@array = ("A","B","C");
foreach $value (@array) {
  print "$value\n";
}

確かに結果は、

A
B
C

となる。$valueには@arrayの一個づつがセットされるように見える。

次に下記のように作成して実行する。

@array = ("A","B","C");
foreach $value (@array) {
  $value = $value . "X";
  print "$value\n";
}

確かに結果は、

AX
BX
CX

となる。これも、$valueには値がセットされるように思える。

ところが最後にprint @arrayを入れて、

@array = ("A","B","C");
foreach $value (@array) {
  $value = $value . "X";
  print "$value\n";
}
print @array;

とすると、

AX
BX
CX
AXBXCX

と表示される。もとの配列@arrayの内容までが変更されている。

つまり、「foreach $value (@array)」 は、配列@arrayの要素一個づつの値を$valueに入れる、のではなく、$valueには@arrayの要素一個づつのポインターがセットされる。

これは反則ではないだろうか?

「foreach $value (@array)」と、明示的に変数$valueを指定したからには、$valueには配列要素の一個づつの値がセットされてもよさそうなものである。他のプログラム言語ではそのようになっていると思う。試しにExcel VBAではそうのようになった。

Perlだけの問題なのか、Perlとはそのようなもんだ、なのかは不明だが、気をつけなければならないのは確かだ。

ん~ん。なんだかな~。

2011年1月23日 (日)

V○Ware ServerのAutoRun復活

自作PCにV○Ware Serverを導入してあった。

これを導入するとCD/DVDドライブのAutoRun(自動再生)が無効になる。

V○Wareが不要になったのでアンインストールした。

しかしながら、AutoRunは復活しない。

Webで調べると、レジストリのキー「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer」のNoDriveTypeAutoRunを0x91(145)にすれば良いと記載されていた。

しかしながら、NoDriveTypeAutoRunは0x91(145)のままとなっている。

しょうがないので自分でさらに調べたら(時間が掛かったわ~)、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom」のAutoRunを1にすれば良いことが判った。確かにAutoRunは0になっていた。

Windowsを再立ち上げしてCDを入れると自動再生された。(ををっ。復活した!)

思えば、V○Ware Serverのアンインストール機能はタコである!!!

アンインストールと言うぐらいだから、インストールする前の状態に完全に戻してほしいものである。

以前記載したM○SQLのアンインストールも同様にゴミを残す。

いずれも有名なソフトだけに、これわイタダケナイ。ソフトの信頼性や品質を疑う事になる。

所詮、パソコンの世界ってこんなもんだろうか。

メインフレームのソフトの世界では許されない事である。

【たかがパソコン】としか言いようがない。

2010年12月 2日 (木)

足し算の回路(AND, OR, XOR)

2進数の足し算の回路はAND, OR, XOR回路で実現できる。

これらは共に2つの入力から1つの出力を得る。

AND(且つ)は、入力の2つが共に1の時に1を出力し、それ以外は0を出力する。

入力1 入力2 出力
0 0 0
0 1 0
1 0 0
1 1 1

OR(または)は、入力2つのいずれかが1であれば1を出力し、入力2つとも0ならば0を出力する。

入力1 入力2 出力
0 0 0
0 1 1
1 0 1
1 1 1

XOR(排他OR)は、入力2つが1と0の時だけ1を出力し、それ以外(つまり入力2つが同じなら)0を出力する。

入力1 入力2 出力
0 0 0
0 1 1
1 0 1
1 1 0

これらを良く見ると、1/0の足し算回路が簡単にできる。

2進数の足し算は、

0 + 0 = 00
0 + 1 = 01
1 + 0 = 01
1 + 1 = 10

だけである。これらを良く見ると、1の位はXOR回路、10の位はAND回路となっている。

初代のコンピュータでは、1/0の足し算は基本的にこの回路だけで作成されていた。もっとも、初代のコンピュータは2進数の足し算しかできなかった。引き算は2の補数を求めて行い、掛け算や割り算も基本的なこの回路だけで行われていた。

掛け算の例を取ると、「2倍するには元となるビットを左に1ビットシフトし、3倍するには2倍した結果と元の値の足し算で求める」といったふうである。

これで全ての計算していたのだから、考えれば単純である。

ん~。でも良くできているものだな~。

2010年11月 2日 (火)

オンラインのレスポンス・タイム

前回、待ち行列について記載した。

汎用コンピュータはそれなりに高価なために、たくさん仕事をさせた方がよい。そのため、理想とするI/Oビジー率は30%、CPUビジー率は90%が理想と述べた。

では、パソコンではどうだろうか。

結論から言うと、パソコンのI/O, CPUともほとんど空いている事が望ましい。

処理させたいときに、いつでも自由に使えるようにするのが理想と思える。

<>

汎用コンピュータのオンライン処理を設計する時に大切なことは、レスポンスとなる。

オンラインで入力したあと、なかなかレスポンスがないのは、精神衛生上もよろしくない。

オンラインにおける理想なレスポンス・タイムは3秒以内と言われている。これは人間工学上から求められた値と聞いたことがあり。

もちろん、パソコン時代のインターネットでも同じ事が言えると思う。

インターネットのレスポンスは、回線のスピード、サーバーの処理能力、Webページの大きさ、などが大きく影響する。

IEがおそいのでFireFoxにしたりとか、メモリーをたくさん積んだりとか、対策に四苦八苦する。

しかしながら、コンテンツを提供する側にも問題がある。

ユーザーが一般的な、どんな環境であれ、3秒以内で開けるページにすべきである。

試しにヤホーのトップページをmhtファイルで保管すると400KB以上になる。これに対してゴーグルでは27KBであった。さらに、ヤホーは表形式のページであり、ブラウザーのレンダリングにもかなりの時間が掛かる。

ADSLやら光やらで回線スピードが早くなったとは言え、また、最近のCPUやHDDはスピードが速いとはいえ、htmlサイズや画像サイズなどに気を配るなどしてもよいのではないだろうか。

見栄えばかりを気にして、ちっとも地球に優しくない。

2010年10月18日 (月)

HDDがこわれた

自作PCのハードディスクがこわれた。

最初、アームの動く音がせずにHDDランプが付きっぱなしになった。そのうちBIOS上でも認識されなくなくなった。

6年前に購入し、動画の編集でかなりカリカリさせたので、寿命だったのだろう。

幸い、データはたえずバックアップしてあるので、予備のHDDを付けただけで解決した。

データの記録媒体には進歩があり、今やDVDメディアよりもUSBメモリーに保管するほうが多くなっている。しかしながらDVDメディアもUSBメモリーも保管期間が短い。

<>

なんと3000年前のデータがいまだに残っているものがある。その記録媒体は石であり、石器文字である。

その後、竹や紙が記録用紙になり、今やHDD、DVD、USBメモリーが主となっている。

この技術の進歩に反比例して、データの耐用年数が減っているのは皮肉なものである。

2010年10月 9日 (土)

WindowsXPへM○SQL導入で困った

WindowsXPマシンにM○SQLを導入してあった。

今回ひょっとしたことからM○SQLのWebページを見たところ、新しいバージョンがあるではないか。

そこで、導入済みのをアンインストールし、新しいバージョンを導入しようとした。

ところが、設定ウィザードでエラーとなり、うまくいかない。

Webで調べたところ、アンインストールではゴミが残って、悪さをするとの事。

Webに記載されてある手順も試したが、うまくいかない。

やむをえず、XPのインストールからやりなおした。もちろん、他のソフトもインストールしなおし。

M○SQLのアンインストールはタコである。いや、M○SQL自体がタコであるとしか思えない。

こんなソフトは二度と使用したくなかったが、事情により仕方なく再導入した。

世の中にこんなソフトが存在する事事態にハラが立つ。さらに有名で良く使用されているソフトならなおさらだ。パソコン、インターネットが当たり前のような時代に、このようなソフトは絶対に許せない。

日本は技術で世界一だと思っているので、日本の企業のソフトではこのような事は絶対にあって欲しくない。三流のソフトとしか思えない。

もし、M○SQLが不要になったら、絶対に使用しない事にする。

2010年10月 3日 (日)

地球に優しくないパソコン

AMDから「Phenom II X6」シリーズの3モデル目となる「Phenom II X6 1075T」が発売となった。

このCPUは6コアで、TDWが125Wとなっている。

性能を高めるために6コアはわかるのだが、TDW=125Wはいただけない。筆者のハンダゴテさえ15Wである。

こんなCPUを数万台か数十万台かはわからないが、同時に何時間も使用するのだろうから、その電力はすさまじいものになる。

PCの使用ワット数はそのすべてが熱量に変わる。

最近ではCPUだけで100Wを超えるものが少なくない。

そのため、ケースも大型ファンをいくつもつけたり、とうとうスリット形状のケースになってしまった。

インテレもエーエムデーも性能を求めるのは競争だから判るのだが、それにしても消費電力が高い。

理屈は簡単で、今のCPUは何億ものトランジスターからなっており、その個々が微量な電力でも全体で100Wを超える。

ちっとも地球に優しくないのである。

それにしてもそんなCPUを求める方もどうかと思う。その多くはゲーマーだと思うが、地球の事を考えていない連中である。

一方ではエコを売り物にしている時代だから、もうちょっと考えてもいいのでは?

2010年9月15日 (水)

HDD(ハードディスク・ドライブ)の技術

HDDを横から見ると下記のような構造になっている。

Hdd

磁気ヘッドはプラッタ(円盤)上、10nm程しか浮いていない。これは、ジャンボ機が地上1mmで飛んでいるようなものだと言う(すさまじい精度だ)。10nmしか浮いていないのだから、プラッタの平坦さもすごいものだ。プラッタは1分間に7200回転しているのがほとんどだ。

また、プラッタの記録密度は、3.5インチHDDで1プラッタ=500GBが主流となっている。この記録密度は1平方インチ当りでは329ギガビットとなる。1ミリ四方に約5億個の0または1を記録する。これまたすさまじい技術だ。

この技術からなるHDDが2TB(テラバイト)容量で1万円を切る価格で売られているから、これまた驚きだ。

さらに、最新のニュースでは容量を10倍にする技術も確立したとか。。。

そんな容量に何を入れるんだろう。。。

2010年9月 3日 (金)

ソフトウェアの品質向上のために

システム開発において、品質の高いシステム作りとはなんだろう。
ひとことで言えば、バグのない且つ効率的なシステムとなる。
そのためにはどうすればよいだろうか。

プログラムについては、下記要点が述べられる。
1. 見やすい。
2. 判りやすい。
3. 機能単位になっている。
4. コメントが入っている。

プログラムのソースはコンパイルされたあとはマシンには必要ない。その後必要とされるのは人間が参照する場合である。
その為にも、上記の点が述べられる。肝心なことは、ソースは人間が見るものであると言うことである。

見やすさのひとつは、字下げをすることである。すべて1カラム目から始まっているようなプログラムは見る気がしない。
また、VBなどでのDoのカラムとEndカラムを合わせる事、などである。変数ひとつにしてもcount1, count2ではなく、input_count, tran_countとかの名前にすべきであろう。
その他、subは機能単位でまとめる。云々などがある。

判りやすさのためには、基本的なロジックを理解することである。
ロジックは、「上から下へ」「分岐(if)」「ループ(for)」の3つですべてのロジックが組めることが数学的に証明されている。構造化プログラミング(ストラクチャード・プログラミング)と呼ばれる。アセンブラ等のように特殊な言語を除いて、goto文を使うべきではない。goto文があっただけで、見る気もしない。

基本的なロジックは、配列操作、コントロール・ブレイク、マッチングである。これらの考え方を理解していれば美しいプログラムが作れる。
マッチングにも3本マッチングとなると複雑なロジックになるので、「AファイルとBファイルをマッチングしてABファイルを作り、ABファイルとCファイルをマッチング」のようにプログラムを分けることにより、2本マッチングで書ける。大切なのは3つの基本的なロジックの考え方を理解する事である。

では、仕様書においてはどうだろうか。
仕様書は、「何をするか」を書くものであって、「どのようにするか」を書くものではない。

下記の例がある。
1. iが1から100まで下記を繰り返す。
2. tblのi番目=product_idの場合、繰り返しを抜ける。
3. 上記でない場合は …
:
上記は「どのようにするか」を書いたものである。見る気もしないので、下記のように書き換える。
1. 入力レコードの製品番号が、配列に蓄えた製品番号一覧に存在するかを調べる。
2. あった場合、…
3. なかった場合、…
:
上記は「何をするか」を書いたものである。この仕様書を元に「どのようにするか」はプログラマーの考える事である。

仕様書もソース同様に、人間が見るものである。よって、見やすい、判りやすいに重点を置いて作るべきである。このように作成された仕様書やソースから品質の高いシステムが生まれる。これは基本的な事である。

企業によっては標準化が行われている場合もある。だが、単に生産性を上げることだけを目的としているような、誤解している場合もある。標準化とは品質向上を目的としたものであるにもにもかかわらず、である。

どうせ作るなら、人に見られても恥ずかしくない、美しいものを作ろうではないか。
何でもそうであるが、「安かろう悪かろう」のようなものは作りたくないし、見る気もしない。

より以前の記事一覧