2009年10月 2日 (金)

プログラミング言語と速度

「プログラミング言語の速度比較」というページをみつけました。
http://www.geekpage.jp/blog/?id=2006/11/30
を見たところ、言語を速度で比較した結果は以下のようになります。

C > C++ > Java > C#
(速い <---> 遅い)

CとC++は微妙な差のようです。
JavaとC#ではC#が省メモリであるとのことです。

数年前、Javaが流行ったころ、
「Javaで作ってみたが、遅いのでCで書き直す」
という話をあちらこちらで聞きました。
インターネットで調べたところ、
「遅いのは書き方のせいで、Javaの問題では無い」
という意見が多かったのですが、知っている限り、
「Cで書き直しても効果が無かった」
という話は聞いたことがありません。実際、どの案件も効果があったのでしょう。

ところで、VC++でWindowsアプリを作る場合、C++/CLIで.net環境で作るか、MFCで作るか、迷うところですが、インターネットの記述では、比較するとMFCの方が若干速いようです。その差は「2~3割」と言ったり90%と言ったりまちまちです。おそらく試したプログラムで違うのでしょう。
そりゃやっぱり、スクリプト言語のライブラリを使うC++/CLIが速いわけは無いでしょう。本来のC++から見ればダウンジャケットにデータをくるんで受渡ししているように見えます。
なんで.netなんて作るんですかね?昔、BorlandCと比べてMFCは真のオブジェクト指向では無いと言われた反動で.netを作ったものの、VBなどのスクリプト言語と共通化するためにインターフェースを合わせてしまったということでしょうか?

| | コメント (0)

2009年10月 1日 (木)

Windowsでたくさんのスレッドを使用したい

数百、数千個の対象を同時に制御したい..という場合、マルチスレッドでなんとかしたいと思いますよね。
Windowsで1プロセスあたりのスレッド数の限界は2028だそうです。これは1プロセスの最大メモリサイズを、スレッドのデフォルトスタックサイズで割った数字だそうです。実際にはデータなどでメモリを使用するので2028は出来ないでしょう。
ちなみに、Solalisの32bit版でもスレッドの最大数は2000程度なのですが、64ビットだと8兆個出来るようです。
Windowsの64ビット版がどれくらいのスレッドを保持できるかは記述が見当たらないのですが、32bit->64bitでプロセスあたりのメモリが2G->8Tとなっているので、4096倍。028*4096で8306688個のスレッドが出来るのでしょうか?
ソラリスに負けているのは、1プロセスあたりのメモリがSolalis64bit版のが1E(エクサ)バイトと大きいからでしょう。

ところで、実際にプログラムを組んでスレッドを監視しようとすると他にも落とし穴があって、WaitForMultipleObjectsでスレッドハンドルを監視できるのが64までだそうです。これを複数使って2倍3倍することもできますが、64ごとに1つのスレッドで監視してWaitForMultipleObjectsで待つということで、これにもスレッドが必要です。

ちなみに、プロセスの数の最大はWindows2003Serverでは
32bit:22000
64bit:550000
という記述を見つけたのですが、普通のWindowsNT,2000で
「90程度しかプロセスを起動できなかった」
と記述しているページもありました。
http://okwave.jp/qa249926.html

ところで、.netのスレッドはちょっと違うようです。
http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_01.html
によると、
スレッドの最大数は、1つのプロセス当たり「プロセッサ数×25」...
ということは安いパソコンは最大25しかスレッドを作れない。ちょっと夢の無い話です。高いパソコンと安いパソコンで別のプログラムを作るのもイヤですよね。
Threadクラスというのを使うと、この制限の外のようですが、スレッドにパラメータを渡せません。Threadクラスで数百の対象を制御しようとすると数百の関数を作らないといけません。.netはこういう用途では使っていないんでしょうか?どうしてるんでしょうね?

| | コメント (2)

2009年9月11日 (金)

ウイルスセキュリティZEROで音が乱れるのを(お金で)解決!

数ヶ月前から、Windows Vistaのノートパソコンで動画再生を行うと音が乱れるという現象が発生していました。
メディアプレーヤー、インターネットの動画、パソコンのテレビ録画ソフトのどれも、音がブツブツと切れて、何を言っているのかわからない状態になります。
いろいろ調べたところ、ウイルスセキュリティZEROの「全ての機能を無効にする」を行うと、正常に再生されることがわかりました。
問い合わせたところ、ウイルスセキュリティZEROをアンインストールして、再インストールしてほしいと回答がありました。再インストールするとき、ネットから最新版をダウンロードしてインストールします。試してみましたが、改善しませんでした。
その後、問い合わせしましたが、調査中のまま。返金の案内も受け取りましたが、他のウイルス対策ソフトを買うお金がもったいないので、ソフトのアップデートで改善するのを待ちました。頻繁にアップデート、ウインドウズアップデートを繰り返しましたが全く改善しません。その間、動画を見るたび、「全ての機能を無効にする」を行っていました。これではウイルスセキュリティ、ゼロでは?と思うようになりました。
仕事でいろいろな新参対策ソフトを使用した問題点を聞いていましたので、「やはり老舗のウイルス対策ソフトが良いのか」と思い、以前使用していたノートンアンチウイルスを購入。
ウイルスセキュリティZEROをアンインストールしてノートンアンチウィルスをインストールしました。そして動画再生。当たり前のように普通に音が出ました。今までのイライラや苦労がウソのようです。お金で解決するのを渋っていましたが、やはりお金を出すのも必要かと思いました。

| | コメント (0)

2009年8月25日 (火)

ウイルス対策ソフトで なんだかなぁ

以前はノートンアンチウイルスばかり使っていましたが、以下のことにうんざりしていました。

・毎年パソコン1台あたり高額な金額を支払い続ける
・期限切れが近づくと更新の催促がうるさい

そうした時に無料ウイルス対策ソフトの話を聞き、AVGとAvast!を使用してみました。AVGはメッセージが出るたびOKをクリックするのが面倒でアンインストールしました。Avast!はそのまま使用していましたが1年ぐらい経過すると更新が面倒でした。
そこへウイルスセキュリティZEROの話を聞き、更新料がかからないのが気に入り購入しました。ところが、市販ソフトにウイルスが入っていると誤検出したり、音声がブチブチ切れたり、計算が恐ろしく遅くなったり。

軽いウイルス対策ソフトは無いものかと思っていたところに逆の情報が入りました。あるプログラムを2GHzオーバーの2台のパソコンで動かすと1分30秒かかる。ところが500MHzのパソコンでは1.5秒。いろいろ調べたところESETというウイルス対策ソフトを有効にしている状態で、iniファイルを連続で書き込みをすると、恐ろしく遅くなるということがわかりました。ちなみに1.5秒で動いた500MHzパソコンはAvast!でした。

しかしインターネットで調べるとESETは「軽い」とあります。何故かインターネットでウイルス対策ソフトのランキングを検索するとESETはどこも上位に顔を出しています。
「人気ランキング」となっていますが、売れているのはなんなんだろ?
"シェア"をからめて検索すると別のランキングが現れました。
そのランキングでは古くからあるウイルスバスターとかノートンとかが上位にならんでいました。やっぱり老舗が売れているのか?ということは「人気ランキング」というのは誰かが操作しているのでしょうか?

| | コメント (0)

2009年8月19日 (水)

VisualStudio2005の復旧

VisualStudio2005で仕事をしていますが、たびたび調子がわるくなります。
前にはVSSが使えなくなりました。
先日は、プロジェクトを読み込むと異常終了するようになって全く使えなくなりました。
そのたびにやっているのは、サービスパックのあてなおし。
先日も、VisualStudio2005SP1を実行すると復旧しました。たちどころになおります。

| | コメント (0)

2009年6月16日 (火)

ウイルス対策ソフト遅すぎ!

あるソフトで、別の会社のチームから
「設定の保存に1分ぐらいかかる。何かおかしいのでは?」
と問い合わせがありました。
設定ファイルはiniファイル形式で1500行ぐらい。
手元のパソコン(3GHzCPU)で行うと1秒かかりません。
1分かかるパソコンのCPUは2.4GHzそんなに遅い方ではありません。
試しに500MHzのパソコンで行うと4秒でした。
500MHzで4秒なのに、なんで2.4GHzで1分?
もしかしたらHDDの暗号化しているのでは?
暗号化対象外の領域で実行したら速くなりませんか?
とメールで問い合わせてみたところ、
ESETというウイルス対策ソフトのパーソナルファイアウォールが原因だっとという返事がありました。
他のウイルス対策ソフト2種の環境では、このような現象はありませんでした。
しかし問題のこの対策ソフトは、世の中では「軽い」方だという評価のようです。
得意な分野と不得意な分野があるのでしょう。
しかし、何も生産しない仕事で1分も固まっているというのはやりすぎですね。
ウイルス対策とか暗号化とかの名前で、凄い時間と電力が消費されているのではないかと思いました。

| | コメント (0)

2009年4月 3日 (金)

裸族のお立ち台

P1050698_640 単身赴任先のノートパソコンのバックアップに、eSATA接続の外付けHDDを買いました。店頭で、いろいろな製品を見ながら選んだのがこの「裸族のお立ち台」という製品です。USBで接続することもできますので、他のパソコンに接続してデータを移動させるのにも使えます。
この製品は、写真のようにHDDを突っ込んだ状態で使用します。HDDは別売りです。合わせて購入してもeSATA外付けHDDとだいたい同じか安いくらい。
心配していたのは、HDDをむきだしにして使用すると音が大きいのではないか?ということですが、意外と静かです。これは使用するHDDにもよると思います。たまたま選んだHITACHIの1TBのHDDが静かだったのかもしれません。
NTFSでフォーマットしてみたところ10時間ぐらいかかるようです。夜に始めて朝までに終わっていなかったので、そのまま出勤しました。朝、確認するとかなり熱くなっていました。
夜に帰ってみるとフォーマットも終わり、HDDは冷たくなっていました。
冷却用にファン付きのモデルもあるようですが、ファンなしでも大丈夫ですかね。

| | コメント (0)

2009年4月 2日 (木)

eSATA接続で右往左往

ノートパソコンにeSATA接続のHDDを接続したい!
と思い、eSATA接続の外付けHDDを購入しました。
ノートパソコンに接続しようとしたところ、コネクタがうまく入らない。
おかしいなと思ってよく見ると「HDMI」と書いてありました。
え?これってディスプレイのコネクタ?
親戚から安く譲ってもらったノートパソコンなので、よくわかっていませんでした。
しかたなくPCMCIAのeSATAカードを買いに行きました。インターネットで調べた安い製品がなく、少し高い写真の製品を買いました。
P1050699_640 購入して箱を開けたところ、異様に細い。これはPCMCIAカードでは無い?えー!なんやそれー!と驚き。Expresscardと書いてありました。これってカードの規格なんですか。最近パソコン雑誌を買わないので、世の中のことがわからないのでした。しかし箱の写真、縦横比がPCMCIAぽく写って、絶対PCMCIAに間違いそうです。高かったのに使えないとは残念。
中古で売却か?店員さんにお願いしたら聞いてくれるかなぁ...
どうしようかと迷っていたところ、パソコンのPCMCIAスロットのところに"EC"と書いてあるのに気が付きました。ECってExpresscardじゃないですよねぇ。どう見てもカードの幅が違うし。カードを押し込んでみるとカードがレールに沿って移動し、サクッとささったような感覚が...そしてOSが何か認識。つなぐことが出来ました。なんとPCMCIAの場所にExpresscardがつくのでした。めでたしめでたし。

| | コメント (0)

2009年2月23日 (月)

ISDN機器 壊れる

家内の実家から電話がつながらないという相談がありました。聞けば使用していたISDNのTA内蔵ルーターのランプが全部消えたままになっているとのこと。
昔からパソコンを使っている人ならISDN時代があったはず。もしかしたら今でも持っている人がいるかも?と何人かに電話しましたが、誰ももっていませんでした。やっぱり使うあてがなかったら捨てますよねぇ。
とりあえず、故障した現場に行ってみました。ルーターは電源が入っていません。電源を入れなおしてもコンセントを変えてみても反応がありません。
ルーターを開いてみると、焦げた匂いがもわっとしました。基板をはずしてみると基板にススのようなものがついていました。激しく煙を出していたようです。最近のマザーボードでは不良品コンデンサの話題が多いのですが、コンデンサはみんなきれいなものでした。
煙の元は、コンデンサのような形のものですが、真っ黒で何かわかりません。基板のシルクには端子を囲って温度が書いてあるので温度ヒューズでしょうか?電源基盤なら、ACアダプタでなんとかならないかと思っていましたが、ISDNの電源は5V±78V-48Vなどと多彩で、簡単に手に入りそうにありませんでした。
というわけでISDNはやめにしてアナログ回線の切り替え工事を申し込みました。インターネットは調べてから申し込んでもらうということで、役に立たなかった娘の旦那になってしまったのでした。

| | コメント (0)

2009年2月20日 (金)

ソフトのカスタマイズは、ほどほどに..

パソコンのソフトは昔から山のようにカスタマイズ機能があります。新しいソフトを使用するとき、使い慣れたソフトと同じようにカスタマイズするということをやるひとは多いのですが、問題点もあります。
新人プログラマのとき、先輩プログラマの一人が
「カスタマイズしないで使っているやつはバカだ」
と言っていました。この人は自分の仕事用パソコンのソフトを他の人には使用できないぐらいにカスタマイズして使用していました。ある日、この先輩があるとき上司に
「○○の設定をしてあげて」
と言われて私のパソコンの場所に来ました。私はその先輩に端末を渡そうとしたところ、
「指示どおりに入力して」
と言われました。
その先輩は私の所に来てパソコンの操作をあれこれと指示するのですが、
「何もそこまで言葉で指示しなくても自分で入力したらどうでしょう...」
と言ったところ、少しエディタ(当時はMIFESを使っていました)を操作して
「ダメだ使いにくい」
と投げ出してしまいました。
その人も同じエディタを使用していたのですが、かなりカスタマイズしているようで、カスタマイズ無しでの使い方がわからないようでした。
それ以来、私はほとんど標準の設定で使用しています。

| | コメント (0)

2009年2月 5日 (木)

SSE4.2が欲しい!_?

VisualStudio2008でC++のプログラムを作成するときSSE4.2に対応した関数を使うことが出来ると知りました。
さて、自分の持っているパソコンはSSEの何に対応しているのか気になって調べてみました。
_asm {
mov eax, 1
cpuid
mov dwSimd1, edx
mov dwSimd2, ecx
}
こんな感じでCプログラム内からインラインアセンブラで読み込むようです。それで結果を調べてみると、SSE3までに対応していることがわかりました。
残念、SSE4.2には対応していないのか..
それではSSE4.2に対応したCPUは?と、調べてみると現在のところIntel Corei7というハイパースレッドが4つついたCPUしか無いようです。
これを仕事場で話したところ、昨年Core2Quadのパソコンを組み立てた人が悔しかったようで、自分のを売るから買わないかとか言いつつ、インターネットでCorei7とマザーボードの値段を調べたりしていました。Corei7を買うと、マザーボードもメモリも買い替えないといけません。Corei7自体が高い上にマザーボードは安くても2万円以上するし、メモリは高価なDDR3しか対応していないようです。そしてVisualStudio2008も買うと10万円コースですね。

ところで、SSEのVisualC++環境はどんなものかと言うと、エディットコンティニューをするとビルド出来なくなったり、デバック中にビルド開始するとおかしくなったりひどいもんです。
SSE関連の説明は英語しか無いし。

さて今後のSSEサポートはどういうものかと調べてみると、AMDはSSE5という仕様を発表していましたが、これは来年以降のAMD製品に搭載されるようです。
AMDの現在のCPUはSSE3までとSSE4aという命令に対応しているようです。このSSE4aはIntelのSSE4.1,SSE4.2とは互換性は無いそうです。
Intelはというと、Intel AVXという別の名前の世界に行ってしまうようです。
この状況で急いでSSE4.2の製品を購入しなくても良いような気がします。

この状況を説明してしばらくするとCorei7に対する熱は冷めたようでした。

| | コメント (0)

2009年1月18日 (日)

Windowsの接続台数制限について調べました

つい数日前まで知らなかったのですが、WindowsXP Pro SP2では、10台のパソコンとしか同時につなげられないそうです。この制限はWindows Server2003でも同じようです。凶悪なワームがネットを乱さないようにということですが、これ以上の接続はライセンスを買えば出来るとか。制限の理由とお金を取る根拠がわからないのですが...ちなみにWindowsXP Home Editionでは5台までだそうです。
無料で回避する方法はいくつかあるそうです。

1.この制限を回避するプログラムはネット上にいくつか存在するようです。しかもタダで。ヨコシマな目的なものもあるようです。

2.WindowsXP SP1を使用するとその制限は無いそうです。しかしインターネットにつながっていると自動的にアップデートしてSP2にならないように気をつけないといけません。ウイルスに対応するセキュリティパッチも入れるのが難しくなります。
インターネットにつながっていない環境では、有効な方法であると思います。自動的にアップデートしないからです。インターネットにつながっていないとしてもウイルス対策ソフトは必要です。

3.明確に同時に使用しているという状況でなければ、タイムアウトを短くするという方法が有効であるようです。例えば20人前後の社員が使っているサーバーでもこの制限をオーバーすることがあるようですが、常時なにかをサーバー上で行っているわけではありません。しかし1回の通信は15分間の制限を生むようです。この時間を1分に変更すると仕事に支障がなくなったという書き込みがありました。

4.LinuxやUNIXという選択肢もありますよね。
Linuxはタダだし、Windowsに存在するいろいろな制限もありません。
しかし、精通した人がいないと選択肢となりえないようです。

| | コメント (0)

2009年1月 9日 (金)

VC++2005でSIMD命令つかってみました。

P1050577_640 VC++では、MMXやSSE,SSE2でサポートされた命令が使えるということを知りました。そこで、どんな感じで使えるのか実験しました。MMXやSSEでは膨大な量の命令が追加されているのですが、とりあえず16ビットの掛け算にテーマを絞ってみました。
まずはMMX命令です。16ビットの掛け算を同時に4つできます。アセンブラ命令では16bitx16bitの答えは32bitになりますがSIMD命令では答えの下位16bitを返すものと上位16bitを返すものが用意されているようです。このプログラムは下位16ビットを返します。結果はデバッカで確認しました。
void CmmDlg::OnBnClickedBtnMul()
{
__m64 m1;
__m64 m2;

m1 = _mm_set_pi16(1, 2, 3, 4);
m2 = _mm_set_pi16(1, 2, 3, 4);
__m64 m3 = _mm_mullo_pi16(m1, m2);
_mm_empty();
}

最後に_mm_empty()を呼び出すのが必要なようです。これが無いとコンパイルでwarningになります。
warning C4799: 関数 'CmmDlg::OnBnClickedBtnMul' に EMMS 命令がありません。
これは浮動小数点演算プロセッサとMMXレジスタが同じデータを使用するために起こるもので、「もうMMXは終わりました」という命令のようです。これは単に宣言のものではなくて「コストがかかる」という記述がありますので、なんらかの後始末をやっているのでしょう。
ところで、浮動小数点演算については従来の浮動小数点プロセッサより、SIMD系の命令の方が速いようです。浮動小数点演算にSIMD系命令を使用するコンパイルオプションがあるというのをインターネットで見たことがあるので、試してみました。コンパイルオプションで浮動小数点モデルをFast(/fp:fast)に設定すると、このwarningが消えました。
次に、SSE2で拡張された命令を試してみました。

void CmmDlg::OnBnClickedBtnSse()
{// SSE2
_declspec(align(16)) WORD awData1[8] = { 1, 2, 3, 4, 5, 6, 7, 8};
_declspec(align(16)) WORD awData2[8] = { 1, 2, 3, 4, 5, 6, 7, 8};

__m128i mAuto1 = _mm_load_si128((__m128i*)awData1);
__m128i mAuto2 = _mm_load_si128((__m128i*)awData2);
__m128i mAuto3 = _mm_mullo_epi16(mAuto1, mAuto2);
}
こちらの方は_mm_emptyが無くても良いようです。このプログラムではメモリ上からデータを読み込んで掛け算を行っています。16ビットの掛け算を同時に8つ出来ます。
SSEでは読み取り対象のアドレスを16バイト境界にアライメントしなければならないので
_declspec(align(16))という宣言を使用しています。これが無いと実行時に_mm_load_si128でエラーになりました。データによってはアライメントしていなくてもOKという関数も用意されているようですが、そういう関数は遅いらしいのでがんばってアライメントしました。

インターネットで調べたところSSEは5まであるようです。
ちなみにインクルードファイルについてはVC2005ではSSE3まで読み込めます。
#include <mmintrin.h> // MMX
#include <emmintrin.h> // SSE2
#include <intrin.h> // SSE3
//#include <smmintrin.h> // SSE4.1
//#include <nmmintrin.h> // SSE4.2
VC2008は4.2まで読み込めるようです。VC++ではSSE2までの関数ドキュメントがなかったのですが、これらの関数は使われる見込みがないためか、英語ドキュメントしか無いようです。関数名もわかりにくいので「こういう関数が欲しい」という場合に非常に苦労します。
「入門編」の日本語ドキュメントが欲しいところです。
参考URL「IA-32 SIMDの扉」
http://www.icnet.ne.jp/~nsystem/simd_tobira/index.html

| | コメント (2)

2008年12月17日 (水)

WindowsXP自動ログオン「アカウントの制限によってログオンできません」

WindowsXPをインストールして自動ログオンを設定したら、
「アカウントの制限によってログオンできません」
というメッセージボックスが出て、自動ログオンできない状態になりました。
インターネットで調べて解決をしたのですが、たくさんのQAで解決できずに終了している難問のようです。この症状が他の人と同じかどうかはわかりませんが、参考になればと思います。

症状:
起動時に
「アカウントの制限によってログオンできません」
というメッセージと「OK」ボタンが表示される。
このメッセージのバックにはログインダイアログが表示されユーザー名の場所にadministratorと表示される。
(administratorは自動ログインできないのでしょうか?)

解決方法:
1.[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
2.[名前] ボックスに regedt32 と入力し、Enter キーを押します。
  次のレジストリ サブキーを開きます。
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
3.DefaultUserName 値をダブルクリックします。
  administratorと表示されている部分を編集し、
  自動ログインさせたい既存のアカウントに修正します。
4.regedt32を終了します。(終了時に書き込みが行われます)

この操作のあと、パソコンを再起動すると自動ログインが出来るようになりました。

参考ページ:
http://support.microsoft.com/kb/324737/ja

| | コメント (4)

2008年12月 3日 (水)

マルチコア対応C++プログラミングは大変

マルチコアCPUで高速に動作させるプログラムを作成するには、コア数と同じ数のスレッドを生成する必要があります。ただし、従来のプログラミングでスレッドを生成して同期をとるやり方ではコア数を考慮して効率よく動作するプログラムを書くのは大変です。
ここ数年、こういった問題に対応するやりかたが議論され、簡単に実現する手段が提供されるようになりました。現在使用できる手段には以下のものがあります。

1.OpenMP
2.Intel TBB

以下、それぞれにインターネットなどで調べた結果を記述しています。
実際には試用していませんので、誤りがあればご指摘ください。

1.OpenMP
OpenMPは#pragma命令によりfor命令などを並列化することが出来ます。従来のC++ソースを簡単に拡張でき、しかも、ソースを戻さずに拡張前の状態で実行できます。
OpenMPは、VisualStudio2005,2008のProfessionalエディション以上で使用することができます。Express Edition, Standard Editionでは使用することができません。VisualStudio2008では、
"Windows SDL for Windows Server 2008 and .NET Framework version3.5"
をインストールすることにより、Express EditionやStandard EditionでもOpenMPを使用することができます。
残念ながら、VisualStudio2005には、こういったものは無いようです。ちなみに2005のStandard EditionではOpenMPを使用するというオプションが設定できますが、libファイルが無いためリンクでエラーになります。

2.Intel TBB
Intel TBBはIntel社が開発したIntel Cコンパイラで使用できる他、VisualStudioの最近のバージョンにもダウンロードして組み込むことが出来るオープンソースが用意されています。VisualStusioの他、LinuxやUNIXでも利用できるようです。
VisualStidioで利用する場合はインターネットからダウンロードしたライブラリをインストールして、プロジェクトに組み込むことで使用することができます。
Intel TBBについては現在のところ日本語の解説が少ないようです。
本屋さんで1冊の書籍をみつけました。見てみると並列化するためにはその部分をクラス宣言して記述していました。ちょっと大げさなので、使用するのは大変かもしれません。
そのかわり、パイプラインなどの単なる並列ではない高度な記述も出来るようです。
その一方ではOpenMPとの互換性があるとの記述もあります。
ということはIntel TBBをインストールするとOpenMP用の記述をして高速化できるということでしょうか?

<将来の規格>
インターネットでさらにいろいろ調べていると"C++0x"にあたりました。これはC++の新しい標準規格だそうです。
今までのC++でのスレッドはシステムコールなどの関数として使用されてきましたが、C++0xでは標準規格としてマルチスレッドをサポートするようです。
そうなるとOpenMPとかIntel TBBとかは消えてなくなるのでしょうか?
しばらくは_beginthreadとかで我慢してもいいかと思ったりもしています。

| | コメント (0)

2008年11月27日 (木)

ノートパソコンメモリ追加

単身赴任先に持ち込んでいるノートパソコンで録画したテレビ番組を見ながらインターネットを覗いていると凄く重い。タスクマネージャを見ると、何もしていないときでも1Gバイトのメモリの700Mバイト以上を使っています。メモリも安くなっていますので、これはメモリを増やさねばと、メモリを2Gバイトに増量しました。
ノートパソコンについてきた説明書を読み、SO-DIMM DDR2 PC2-5300メモリを購入しました。ノートパソコンを開こうとすると、ネジが小さくて普通のドライバーで動きません。
仕方なく精密ドライバーを購入。こんどはネジも外れて説明書を見ながらメモリを追加。
組み付けて、電源を入れました。
ところが、なかなか起動しない。なんとか起動したものの、非常に遅い。メモリを確認すると512Mに減っていました。
もう一度開いてメモリを確認しました。
ぐいと押し込むと、まだ入りました。これが原因か!
再度OS起動。
今度は快適。
実は、不要になったマザーボードをもらって、もう一台パソコンを用意しようとしていたのですが、こんなに快適になるとは...
しかし既に部品を集めてしまっているのでした。

| | コメント (0)

2008年11月20日 (木)

驚速XP顛末記

先日パソコンが遅いと家内から指摘を受け、以下の対策を行いました。

・メモリを2Gバイト→4Gバイトに増強、
・驚速XPをインストール
・ウイルス対策ソフトをAvast!からウイルスセキュリティゼロに変更

何が効いたか、自宅のパソコンは少しは快適になりました。
「驚速..」には仕事場でも興味をもった人がおり一人が購入しました。
「驚速..」はUSBメモリの形でも販売されており、そちらを購入したようです。
私はCD版で購入したのですが、USBメモリ版は、インストールした後は普通のUSBメモリとして使用でき、中身を消してもインターネットでダウンロードできるようです。
それはさておき、問題点も、いくつか発見しました。

1.メールが来なくなる。
「驚速..」をインストールしてしばらくすると、メールが来なくなりました。「驚速..」はメールソフトの起動を高速化するため、Outlookが先に受信してしまうため、普段使っているメールソフトでは受信出来なくなってしまいました。最初はこれに気付かず、インターネットでプロバイダの障害履歴を確認したりしました。

2.インターネットエクスプローラーがハングアップする
これは、仕事場で一緒に働いている方の自宅パソコンの話ですが、「驚速..」を入れるとこの症状が出るようになりました。どうやらウイルス対策ソフトとの相性問題のようです。
「驚速..」の説明書には、ウイルス対策ソフトを入れなおして...
それがダメなら順番を変えてインストールしてという手順の説明があります。
ところが、アンインストールするとインストール出来ないウイルス対策ソフトもあるようで、おかげで3種類のウイルス対策ソフトを次々に購入したようです。
当初は、「驚速..」の快適さに感激して実家のパソコンにも入れてやろうかと
思っていたこの方は、この経験を通して実家のパソコンに入れるのはやめたようです。

| | コメント (0)

2008年10月28日 (火)

パソコンのCPUコアは何個まで増えるのか?

P1050359_640 少し前になりますが、新聞に6コアのCPUの搭載されたパソコンの発売の記事がありました。
「とうとう6か」
と驚きましたが、コンピューターに限っては、
想像も出来ないような進化が現実になるのを何度も見ているので、
これからも想像できないことが起こるのだと思います。
ふと、このコアに関する状況が昔の楽器「シンセサイザー」の発音数に似ていると思いました。
30年ぐらい前、シンセサイザーが出来たころ、シンセサイザーの鍵盤を押しても、
音は一つしか出ませんでした。
それがだんだん増え、20年ぐらい前には、6~20ぐらい同時に音が出るようになっていました。
鍵盤を押すと和音も出るようになりました。
発音数を使い切ると、音が途切れて不快な演奏になりました。
両手の指の数より多い発音数が必要かと思ったのですが、発音数はさらに増えました。
ひとつのキーで複数の音を鳴らすこともありました。
同時に押しているキーが少なくても、余韻のある音色で演奏すると、途切れるのがわかりました。
発音数が多くなると、それがわかりにくくなります。
10年ぐらい前にふと見た楽器は128音、同時に出るようになっていました。
さて今はどうか、1000音ぐらい出るようになっているかと思って、
カタログを見ると128音。
この製品は、自動演奏の機能も付いているのですが、
どうやら増えていないようです。
128音で充分なのでしょうか。
ではパソコンの場合、コアはいくつ必要なのでしょう。
自宅のパソコンを立ち上げて使用しながら、タスクマネージャでプロセスの数を確認すると
50ぐらい、スレッドは500以上ありました。
スレッドは全て動いているわけでは無いのでしょうが、
コアが500ぐらいあっても使い切ってしまうということでしょうか。
一方では、ソフトウェア技術の発展で、
「コアがいくつあっても書き換える必要の無いプログラム」
が書けるようになりました。
そういった技術を使用して書かれたプログラムは、
余っているコアを全て使い切ります。
しかし、実際にはCPUの使用率を上げるのは至難の業です。
10年前のプログラマはCPUの使用率を下げるのに苦労していましたが、
今のプログラマはCPUの使用率を上げるのに苦労しています。
これも想像もしなかったことです。
現在の職場に、自作パソコンを計画中に人がいます。
その人は4コアのパソコンを作成すると意気込んでいます。
4コアも一般的になったんですねぇ。
10年もしたら100コア時代になっているのでしょうか。

| | コメント (0)

2008年8月15日 (金)

自宅パソコンのハードディスクRAID-1計画 一応完了

「マザーボードのS-ATA端子を非RAID構成にして、RAID構成でない
ハードディスクを接続すると認識しない」
「単体のドライブをRAID-1で認識させるとデータは全て失われる」
ということなので、起動ドライブをそのままRAID-1にすることは出来ないようです。
P1050208_640 いろいろ考えた末、S-ATAカードを別途購入することにしました。
S-ATAカードでに今まで使用していた起動ドライブを接続して、
マザーボードのS-ATAをRAIDモードにし、データドライブを作成しました。
この状態でマザーボードのIDE端子は単体のハードディスクを認識できるので
データの移し替えに使用することができます。
S-ATAカードに既に使用しているハードディスクを接続して、BIOSの起動優先順位設定を見ると、接続されたハードディスクも出てきました。
優先順位を最上位に設定すると、OSの起動を開始するようになりました。
おぉ簡単!と思っていたら起動途中で一瞬青画面が出てリセット。
を繰り返すようになりました。
どうやら、ドライバが足りないようです。
そこで説明書の「はじめにお読みください」を見ると、
ソフトのインストール方法が書いてありました。
再度、マザーボードに起動ドライブを接続しなおし、BIOSを以前と同じように設定して起動してから、S-ATAカードのドライバをインストール。
そして再度、S-ATAカードに起動ドライブを接続して
起動。起動成功しました。
ミラーディスクも認識出来るようになりました。

| | コメント (0)

2008年8月11日 (月)

自宅パソコンのハードディスクRAID-1計画#2

P5GDC-V Deluxeというマザーボードの
RAIDユーティリティ画面に入る方法がわかったのですが、その後も苦労が続きます。
計画では、既に存在するCドライブ、Dドライブを別々にミラーディスク化する予定でした。
しかし、既存のハードディスクをミラー設定した時点でデータは失われるようです。
試しに500GBのハードディスク2台のうち1台をNTFSでフォーマットしてファイルをコピーして、RAID設定すると、「データは失われます」というようなメッセージが出ます。
とりあえずミラーに設定します。
しかし再起動すると、単体で接続したCドライブが見えないので、OSが起動しません。
やっぱりやめたと、BIOSのRAID設定をやめ、1台ずつ認識させたところ、ミラー設定していたHDDのフォーマットは失われていました。
どうやら、BIOSでS-ATAをRAID設定にすると、S-ATA HDDを単体で使用することが出来ないようです。
マザーボードにはS-ATAコネクタが4つあるのですが、
RAID設定にすると、元々のS-ATAのCドライブが見えなくなります。
困りました。
これは500GBのHDDをミラーにしてOSをインストールするところからやりなおしか?
というところで、また単身赴任先に来てしまいました。

| | コメント (0)

2008年8月10日 (日)

自宅パソコンのハードディスクRAID-1計画

最近、自宅パソコンのハードディスクが不調になり、家族のデジカメ写真などが失われそうになりました。
何度も再起動してハードディスクを認識させ、何とか、データは救うことが出来ました。
今後は自分でバックアップすることは考えず、パソコンの耐故障性を上げる方向で対処しようと思います。
とりあえず、自宅のパソコンをミラーリングしようと、ハードディスクを購入しました。
さて、ハードディスクをRAIDで使うには、BIOSレベルで設定する方法と、Windowsで設定する方法がありますが、Windowsで設定するのは、以前WindowsNTでやったことがあります。
ディスクの管理で複数のドライブを選択して、右クリックすればメニューが出てストライプなどの選択が出来ました。
マウスの使えないBIOS設定画面に比べると、簡単なので、こちらでしようと思いました。ところが、WindowsXPでは、ユーザーインターフェースが変わっていて、複数のドライブが選択出来ません。
試行錯誤でようやくやりかたがわかりましたが、今度はストライプは出来るのに、ミラー設定する方法がわかりません。
インターネットで調べてわかったことは、WindowsXP Professionalでは、耐故障関連のRAID設定は出来ないそうです。
えぇーそうだったのか!
Microsoftさんせこいんでないですかぁ?
そういえば、仕事でNTで設定したのもRAID-0なので、耐故障性関連ではありませんでした。
さて、マザーボードの説明書を見るとBIOSではミラーは出来そう。
ところが、RAIDユーティリティ画面に入れない...
深夜まで頑張って、あきらめました。
今日、再挑戦でわかったのは、
<Ctrl-I>(コントロール+アイ)の記述を
<Ctrl-l>(コントロール+エル)と間違っていたということ。
これは印刷ではわからないですよASUSさん。
他の人は一発でわかったのか?
とりあえず、RAIDユーティリティ画面に入ったので、作業再開です。

| | コメント (0)

2008年4月 1日 (火)

ISDNの今

先日、義父が新しいノートパソコンを買ったので、LANの設定をしてほしいと連絡がありました。
Windows VISTAは私も慣れていないので、大丈夫かなぁ?と恐る恐るさわってみると、自動検出で簡単に設定が終わりました。
どうやら、LANのPCMCIAカードを使おうと一生懸命だったようです。
本体のLANポートにつなぐと簡単に設定できました。
しかし、義父の家は、ISDNであったため、
パソコンのおまけで付いていた、ウイルス検出ソフトの更新が2時間ぐらいかかりました。
本当は、Windows Updateをしたかったのですが、凄いことになりそうなので、やめました。
昔は速くて憧れのISDNだったのですが、今は遅くて時代についていけないようです。
速い回線はいろいろと選択肢もあるのですが、普段は必要ないところに、パソコンのメンテナンスだけに、速い回線が必要というのはどうかと。

| | コメント (0)

2008年2月 7日 (木)

変わるISMS

派遣プログラマをやっていると、いろいろな会社のISMSと出会います。
ISMS下の作業のやりかたは会社によって異なりますが、場合によっては、以下の弊害があります。

・一日に100回ぐらいパスワードを打ち込む。
(パソコンのスクリーンセーバーを3分、パスワードロックに設定なければならない会社の場合)
・パソコンが遅くなる。
  (全てのパソコンのハードディスクを暗号化している会社)
・社員のコミュニケーションが減って、はまる仕事が増える。
 技術者の教えあいが減って、会社の技術レベルが低下。
(社員同士でも別の作業に従事していれば、仕事に関する話をしないよう強制)
・給料が減る
(セキュリティソフト、ハードの導入で利益が圧迫)
・二酸化炭素排出量が増える
  (作業効率低下による、労働時間の増加。ハードディスク暗号化、ウイルスチェックの頻繁な実行による、パソコン動作時間の増加。)
・打ち合わせが増える
 (会社ごとに、きまりが違うので、作業場所を変えるたびに、ISMS関連をどうするかという打ち合わせが発生。時間と人間だけでも凄い経済損失です。)
・場合によってはセキュリティレベルが下がることがある。
(ハードディスクの暗号化した上で、毎日ハードディスクのウイルスチェックを行うというきまりがある会社で、VisualStudioを遅いパソコンで使用した場合、ウイルスチェックが昼休みに終わらず、毎日、午後の仕事が始まる前に、ウイルスチェックを強制終了する。結果、ハードディスクの1/3のファイルが、ノーチェック)

書籍によると、ISMSが国際会議で提案されたとき、日本は強硬に反対したそうです。それでも何回か会議を重ねるうち、他国の支持できまったようです。おそらく国民性の問題でしょう。他の国は、これほど厳格なルールを適用、遵守するとは考えていなかったのではないでしょうか。
ところが、大手電機メーカーではISMSが取引先の選定に使用したため、ここ2~3年で、一斉に普及しました。時を同じくして、情報犯罪や、ISOの認定機関取り消しが発生したので、ISMSの行動基準が、かなり厳しいものになりました。

しかし、新聞によると、それも変化の兆しが...作業の効率を優先する会社も出てきているようです。
例えば、ノートパソコン。ISMSを導入した会社では、ノートパソコンはワイヤーでつながれて、持ち運び出来ないものでした。持ち出しには、HDDのファイル一覧を提出して申請・許可が必要。持ち帰ったら、HDDを再フォーマットしないといけないところもあります。
しかし、新聞では、ハードディスクが暗号化しているので、盗まれても大丈夫。と割り切って、会社のノートパソコンを、持ち運び、家に持ち帰ることも許す会社があるそうです。会議では、会議室に持ち込んで、客先にも携行...って、本来のノートパソコンのあるべき姿ですよね。
早く、日本中の情報機器を、あるべき姿、地球にやさしく、作業者にもやさしい環境に戻して欲しいです。

| | コメント (0)

2008年1月30日 (水)

サクラエディタ vs NoEditor

新しい派遣先で、フリーのエディターを使うことになりました。
最初に使用したのはNoEditorでした。
しかし、半日も使用していると、単語をダブルクリックしたときに、
通常は、単語全体を選択するところが、マウスカーソルから左だけ
選択されるようになります。
パソコンを再起動すれば元に戻るのですが、
そうそう作業を止めるわけにもいきません。
NoEditorは、頻繁にバージョンアップをしているようですが、
派遣先は、パソコンの管理が厳重で、自由にアップデートも
出来ないので、サクラエディタを追加で入れてもらいました。
サクラエディタは調子がよくて、今では完全にサクラエディタに移行してしまいました。ちょっと気がかりは、Ctrl-Gでgrepになること。
他のエディターでは「指定行にジャンプ」なのですが、
サクラエディターではCtrl-Jに割り当てられているようです。
しかしカスタマイズすると他のパソコンのサクラエディタ環境に行った時に使えなくなるので、カスタマイズ無しで使用しています。

| | コメント (0)

2008年1月17日 (木)

Java世代とC言語世代

Img_4840_640 中年組込みプログラマで、C++の仕事をする私の最近の悩みは、Javaプログラマとのジェネレーションギャップ。最近のC++言語の仕事は、JavaでOJTを受けたプログラマが主導的になっており、後から増員に入ったり、プログラム改造の仕事に加わったりすると、Javaのしきたりを守らないといけません。
JavaとC++言語は、よく似ているのですが、C++言語プログラマが、構造化プログラミングを重視しつつオブジェクト指向の良いところをテキトーに取り入れているのに対して、Javaプログラマは、めちゃめちゃオブジェクト指向で記述します。
具体的には、以下の点に違いが現れます。

1.C/C++プログラマがグローバル変数を使用するところで、
Javaから来た人はシングルトンを使用します。

2.C/C++プログラマが、switch文を使用するところで、
Javaから来た人は、virtual宣言を用いて、分岐します。

「Javaなどの言語機能をフル活用して記述している」という感じです。
アセンブラ->C言語->C++言語と移ってきたプログラマから見ると、C/C++言語で記述したものは、アセンブラ展開されるので、「コーディングは本来、アセンブルコードを意識すべき」という信念があります。
シングルトンは、本来、1つのメモリアドレスを直接指定できるものを、クラス化して、直接には見えないようにする手法です。
そのため、本来、一発で読み書き出来るものを、インスタンスを取得して、メンバ変数を取り出すという手順が必要になります。
Img_4841_640 なぜ、このようなことをするか?「グローバル変数は危険」という思想が根底にあります。
「グローバル変数は危険」というのはC言語プログラマでも言うことなのですが、C言語では、役割の詳細を記述した「長い名前」で解決しています。
それに対して、Javaから来た人は、データの階層化で解決します。
これは何とかついていける範囲なのですが、問題は2.の方で、これは、JavaやC#の人たちによると、「これぞオブジェクト指向」と言わんばかりなのですが、どうしてもCから抜け切れない人には、
書けない世界です。人が書いたvirtual宣言は使用できるのですが、このように書けと言われて、意思疎通して書けるかどうか疑問です。
ソースを検索すると、同じ名前が山のように出てくるのが、2.の特徴です。解析にgrepを多用する、古い世代のプログラマからすると、非常に解析の難しいプログラムになっています。
しかし、愚痴を言っても仕方ないので、Javaも勉強しようかと思っています。

| | コメント (0)

2007年11月22日 (木)

無料ウイルス対策ソフトを導入しました。

パソコンにWindowsをインストールしていると、ウイルス対策は必須です。
ウチではこれまで、Nortonを使用していましたが、毎年2台分のライセンス料を払っていると、結構な出費です。
そこで、無料ウイルス対策ソフトを導入することにしました。
無料!ということで、本当に大丈夫か心配だったりしますが、今のところ、失敗したという話は聞こえてきません。
とりあえず、2台のWindowsパソコンにそれぞれ、以下のウイルス対策ソフトを入れてみました。

・avast!4 Home Edition   →Windows2000で使用
・AVS          →WindowsXpで使用

まだ導入して時間がたっていないのでよくわかっていないのですが、以下の感想を持ちました。
一番気にしていたのが言葉の問題。
タダと言っても、延々と英語マニュアルを読んで、英語画面で使い続けるというのは大変です。
特に、ウチのように家族で使用するパソコンで、「ウイルスに感染しました」と英語で、しかも専門用語満載で表示しても「何か出たけどOKボタンで閉じた」で終わったら問題です。
両方とも、海外のソフト会社の製品ですが、インストールは日本語。
インストール後も日本語で操作ができます。
avast!は、インストール後、全スキャンをしますが、これが、再起動後、OS起動前に行われます。
このタイミングでパソコンを使うつもりでいたら、使えません。
AVSは、OS起動後にスキャンが始まります。
重いですが、このタイミングでパソコン使用もできます。
使用中、AVSはavast!に比べてウインドウ表示が多いようです。
アップデートでいちいち確認画面が出るのがうっとおしいです。
しかも、アップデートをインターネットか、フォルダかと聞いてきます。
「インターネットに決まってるでしょ」と思いながら操作してパソコン操作を続けると、終了でぱたポップアップが出てきて邪魔するという始末。
勝手にやってくれればいいと思いました。もしかしたら非表示の設定があるのかもしれませんが。
それにくらべるとavast!は動作中にウインドウ表示が出ないので、普通に使い続けられます。
セキュリティの強さなどは計るすべが無いのですが、操作感だけで考えれば、個人的には、今のところはavast!がいいかなぁ。と考えています。

| | コメント (0)

2007年11月20日 (火)

FedoraCore6→Windows2000入れ替え

家のパソコンを移動した関係で、Linuxパソコンにプリンタをつなぐ必要が生じました。
パソコンにプリンタをつないで、印刷できるところまでは簡単でしたが、ネットワーク経由で、Windowsパソコンから印刷が出ない。
Windowsパソコンからは見えているのに...
さらに、インク切れランプが点灯しているのに、どのインクかわからない。
(うちのプリンタは、色ごとにカートリッジが分かれている)
Linux向けのプリンタユーティリティソフトをダウンロードしてインストールしても「接続エラー」となってインク情報を表示しない。
いろいろな設定ファイルをエディットしていると、とうとう起動しなくなってしまいました。
観念して、ライセンスの余っていたWindows2000をインストールしました。
そしたら簡単にプリンタを共有して印刷できました。
Linuxも自動設定が動いて、設定ファイルを自動設定しようとしたフシが
ありますが、やっぱり上級者向けのOSだということでしょうか。

| | コメント (0)

2007年10月 3日 (水)

SATAリムーバブルハードディスクケース

P1040082_640 玄人志向GC3.5EZ-SF/IV「玄蔵」リムーバブルハードディスクケースで、SATAハードディスク、入れ替え!
WindowsVistaを購入してインストールしたものの、マウスの操作を誤って、Vistaが起動しなくなってしまいました。再度セットアップをしようと考えていたのですが、

・毎回、デュアルブートにして起動時に毎回選択するのはうっとおしい。
・将来的には、Vistaしか使わなくなるかも。またはXpに戻るかも。

P1040083_640 と、考え、リムーバブルハードディスクケースを購入しました。
以前は、IDEハードディスクを引きだしのようなものに入れて、入れ替えるものを使用していましたが、この製品は、ハードディスクをそのまま入れて使用します。
S-ATAハードディスクなら、何でもOKなのか?
不安だったのですが、今のところ大丈夫なようです。
パソコンに詳しい人に聞くと、
S-ATAは寸法の規格が厳格なので、こういうことが出来るのだとか。
玄人志向リムーバブルハードディスクケースは、2種類の製品が売られていました。
高いのは、ファンが付いていて、ハードディスクを冷却しているようです。
うんと考えて高いのにしました。
以前、IDEのリムーバブルケースを使用していたとき、
ハードディスクが何台も壊れて、使用を断念したことがあります。
そのとき、ハードディスクが高温になっていたので、
冷却が必要かと。
安いほうのGC3.5EZ-S/IVは、ファン無しですが、まわりのケース無しなので、
パソコンの中が涼しいなら大丈夫かもしれません。

| | コメント (0)

2007年6月13日 (水)

変貌するC++言語の世界

忙しいチームのお手伝いということで、昔書かれたC++言語のプログラムをC#という言語で使用できるように、つなぎの部分を作成する仕事を請け負いました。C++は経験あり。C#もC++を元に作った言語であるので、大丈夫だろうと思っていたら、さあ大変。
Microsoftの最近のC++は、C++/CLIと言うそうですが、C++言語をかなり拡張しており、普通のC++プログラムを行うと警告が山のように出ます。
警告によると、なんとstrncpyも、「安全でない→書き換えが必要」だそうです。
strncpy_sという新しい関数に書き換えないといけません。
特にC#とのつなぎを行うには、特殊な拡張をした記述を総動員して書かねばならないため、いきなり沢山の知識が必要でした。
しかも、一番新しいVisualStudio2005の形式は、VisualStudio2003の形式から「再設計」されたようで
いろいろと違う書式になっているのですが、説明の記述は2003のままで、2005と2003の差は別の資料にあるだけ。という状態です。
さて、プログラマーだったら2003年に2003年の書式を学んでるはず?
いえいえ。まわりでパソコンの仕事は、いまだに半分ぐらいが1998年のバージョンで仕事をしている
ようです。
何故か?実は98年ごろまで、ソフトウエアのライセンスは無法状態でした。ほとんど、どこの会社も1本のソフトをたくさんのパソコンに入れて使っていました。
1998年ごろ、訴訟などが活発になり、世の中のコンピュータを使う会社が、そのころ使用していたソフトのライセンスを大量に購入しました。それで、98年のバージョンは大量にライセンスを保有しているのですが、それ以降のバージョンは、必要最低限のライセンスしか買わないため、ちょっと勉強で..という理由ではインストールも出来なくなりました。
特に、VisualStudioとなると、仕事で使用するランクのものは10万円以上するので、個人の趣味では手が出ません。過去には、みんな買おうということで、MicrosoftVisualCを個人的に買ったりしましたが、バージョンアップ版でも1万円しか引いてくれないし。次のバージョンは買いませんでした。
そんなこんなで、VisualStudio2005も、自社購入せず、お客さんのライセンスを頼んで使用。
で、お手伝いの作業の、他の部分はVisual C++ Ver.6(98年のバージョン)で作られているので
2つの作業環境を1つのノートパソコンに入れて作業しているという状態です。
しかし、最近、少し改善されました。VisualStudio2005は無料版があります。
機能が限定されますが、インターネットでダウンロードして使用できるものがあります。
私も自宅のパソコンに入れています。ただし無料版では、98年のバージョンまで主流だった
MFCという形式のプログラムが出来ません。ちょっとした画面つきのプログラムを作るには、新しい形式、C++/CLIという形式を学ばねばなりません。
ここでも「お金をかけたくなければ時間をかけろ」という「タダの縛り」が待っています。
しかし、2003年の形式が、2005年版の発売で捨てられたこと、2007年中に次のVisualStudioが発売されることを見ると、2005年の形式を学ぶことに、どれだけの価値があるのかと考えたりもします。

| | コメント (0)

2007年3月 3日 (土)

Quicktionary

P1030117 友人が、英語の勉強に使用しているQuicktionaryというツールを教えてくれました。ノートパソコンの前に置いている黒い2つあるのがQuicktionaryです。(拡大写真を撮っていませんでした)
Quicktionaryは、手のひらサイズの大きさで、先端にスキャナを備えており、英語などの活字を読み込むことが出来、それを翻訳して表示してくれます。
普通の電子辞書に比べると、打ち込む手間がないため、快適に使用できます。
赤外線通信ができるので、取り込んだ内容を携帯電話や、PCに送信することができます。
P1030118 手書きの文書は読み込めないのですが、ケースの裏に、バーコードのようなものが印刷してあり、これがキーボードの代わりになります。

小さなスピーカーで正しい発音を教えてくれます。
この製品はイスラエルの会社が開発したもので、英語の他、ドイツ語、フランス語、ヘブライ語など、たくさんの言語に対応しているようです。
インターネットからソフトをダウンロードして、辞書を載せかえれば、言語を切り替えて使用することが出来ます。
友人は、このへんのノウハウを独自に研究していて、サービス窓口より詳しいそうです。
残念ながら、日本語をスキャンすることは出来ないようですが、今後は中国でのオリンピック開催を控えて、中国語版の開発が盛んとか。
ついでに日本語も読めるようになるかもしれません。

| | コメント (0)

2007年2月 4日 (日)

Windows VISTAインストールしました

P1030061_4 自宅パソコンにWindows Vistaをインストールしました。

世の中は、様子見の人が多いような雰囲気ですが、これも自己啓発の一環。だれも使っていなくても、勉強のため、入れてみました。わりとすんなり入りました。

とりあえず、安全弁として、WindowsXPの環境はそのまま残して、別のハードディスクにインストールしました。データは、別のHDDにバックアップして、作業しました。マザーボードのドライバとかはWindowsXPのものを使えば、動きました。いまのところ、非常に安定しているように見えます。

困ったことと言えば...

1.ntfsでフォーマットしたHDDでも読めるものと読めないものがある。

2.予習ゼロだったので新しくなった操作方法がわからない。

3.やたらとセキュリティー関連の確認(出ていることに気づかない)があるので、注意しないと延々待っていることになりそう。

ぐらいでしょうか。とりあえず、1については、WindowsXPで別のHDDにバックアップしていたので、見る必要もなく、フォーマットしています。(フォーマットしながら、この文章を書いています。) まだVistaの中には何もインストールしていないので、これからってとこです。

| | コメント (0)

2007年2月 1日 (木)

Windows Vista購入!

P1030047 1月30日、インターネットでWindows Vistaを購入予約しました。Windows Vista Home Premium 32bit(DVD) DSP版+2モードFDD。自宅の最強パソコンに入れる予定です。

次回入荷は2月9日予定だそうです。うわ、けっこう先ですね。しかし、このセット。FDドライブがついてるんでしょうか?凄いですね。購入するときは、起動用のフロッピーディスクが付いているものと勘違いしてたようです。

ウチのデスクトップパソコンはTWOTOPで、購入したとき、FDドライブ不要なので、かわりにメモリカードを読めるユニットを付けて購入してました。FDドライブは自宅にあまっているのがありますが、必要ないので、付けていないです。かなり、いらんものを買ったかも。

| | コメント (0)

2007年1月26日 (金)

COBOL時代のカリスマプログラマの話

十数年前、こんな話を聞きました。

Iさんという人のCOBOLプログラムはお客さんから人気がある。
同じプログラムを作っても、実行速度が速いらしい。

Iさんは学生のころからの知り合いで、当時、経営コンサルタント会社の営業でした。
後日、Iさんと話をする機会があったので、本人に直接聞いてみました。
「なんか速いプログラムを書いてるって、聞きましたよ!どんなプログラム作ってるんですか?」
私が期待した答えは、クイックソートとか、二分探査とか、コンピュータ科学で紹介される
高速アルゴリズムでした。ところがIさん曰く
「あいつら(一般のCOBOLプログラマ)は、コンピュータがどう動くか、わかってへん。メモリが何ぼでもあるとおもて書きよる。」
ちょっと飛躍しすぎて最初、わからなかったのですが、他のプログラマは、データをメモリ上に全て読み込んで処理している。しかしIさんは、ファイルを読みながら処理して、メモリをあまり使わないようにしている。ということです。
ファイルより、メモリの方が速いので、メモリ上で処理した方が、速くなると思われがちですが、遅くなる理由は以下の通りです。

メモリを使いすぎると、足りなくなって、仮想記憶という手法でメモリイメージをファイルに移動します。プログラムがそのデータを見に行くと、またファイルからメモリに移動します。メモリが不足している状況では、この移動が頻繁に起こってしまします。この移動は、OSが管理しているので、次にいつ必要になるかどうかは関係なく発生します。

Iさんはどうしているのか?

Iさんは、ファイルを巧みに使用して、処理していました。
大量のデータをメモリで持つより、ファイルに保存した方が速いというのです。
当時、アセンブラの仕事しかしていなかった私は、仮想記憶どころか、仕事ではファイルさえ使う機会がありませんでした。ファイルといえば、フロッピーディスクの時代。とても速いとは思えませんでした。
「ふーん」と話を聞いて終わっていたのですが、だんだんとコンピュータが高性能化し、私も仮想記憶があたりまえの世界で仕事をするようになりました。

数年前、こんなことがありました。
UNIXで動作するシステムを設計するプロジェクトで3人のSEで全体を設計していました。
私以外の2人は、同様のシステムで何度か経験があるようでした。
設計が終盤にさしかかった頃、タスクの優先順位について話していたとき、一人が
「設計のときは、タスクの優先順位は適当に書きますけど、最終的にはタスクの優先順位を調整しないとぜんぜん動かないですよねぇ」
と言いました。
「優先順位を調整しないと動かないってこと、あるんですか?」
と聞くと、
「それは経験が少ないからです」
と言われてしまいました。
実際、私は彼らほど経験はなかったかもしれませんが、
タスクの優先順位を調整しないと動かなかった経験はありませんでした。
それから1ヶ月ほどして、この理由がわかりました。
彼らは、実際のメモリの数倍のメモリを確保するプログラムを作成しようとしていました。
これまでも彼らは、そういうやりかたで作業をしていたようです。
このようなプログラムを作ると、OSがメモリの内容を自動的にハードディスクに移動します。プログラムが、このデータを必要になると、OSがデータをハードディスクからメモリに
戻します。CPUは、この動作に実際の処理以外に、多くの時間を割くことになります。
そのため、実行速度が遅くなり、要求されたタイミングを確保できません。
そこで、タスクの優先順位を何度も調整しながらやっと動かしていたのでした。
その設計者に、ファイル上でデータを処理するよう変えてもらったので、そのシステムは、この種類の問題は発生しませんでした。

WindowsNT以降、パソコンでも仮想メモリが使われるようになり、パソコンでも同じようなことが発生しています。こういったことに、最初から注意して作業できるプログラマは10人に一人もいないような気がしています。
同じプログラムを5回実行して速度を計ったとき、2回目の実行速度に対して3回目以降の実行速度が、1割以上速くなったり遅くなったりしていたら、何も考えずにメモリを使用しているプログラムなのかもしれません。

| | コメント (0)

2006年12月28日 (木)

インターネット・フォレンジック

1年前、銀行口座の住所変更をしようとしたろころ、銀行から「インターネットで入力してください」と言われました。そこで、「XX銀行 住所変更」と検索したところ、住所変更のページを見つけることができました。しかし、WEBページアドレスが、何かおかしいので、右側を削除して、XXドットコムだけにしたところ、全く関係のないページが表示されました。再度、XX銀行のページを検索して、住所変更のページを開くと、全く違うアドレスでした。怪しいページの方は、翌日には閉鎖されて見えなくなっていました。現在、全世界で発信されるメールの80%はスパムメール。インターネットは既に、悪の手に落ちたも同然です。

P1020841 大きな本屋さんのネットワーク関連の書籍のコーナーで、「インターネット・フォレンジック」というジャンルの本が、目立つようになりました。半年前には1冊しかなかったのが、最近では10冊ぐらい見かけるようになりました。どれも分厚くて難しそうです。しかし、身を守るためには必要かと、一番最初にみつけた、比較的ページ数の少ない本を選んで買いました。

インターネット・フォレンジック」というのは、「インターネット犯罪捜査」という意味だそうです。スパムメールや、ウイルス、フィッシング詐欺の痕跡から、犯人を追跡する手法について、解説されています。著者は一人でも多くの人が、こういった内容に興味を持ち、悪を許さないネット社会をつくりあげることを願っています。

しかし、読んでみると、かなり難しいです。HTMLとかCGIがわかる人なら簡単かもしれませんが、LANの設定がわかるぐらいの知識ではダメのようです。それでも読めば、世の中で、どんな犯罪が行われているかはわかるので、読んで損はないと思います。

| | コメント (0)

2006年11月23日 (木)

Fedora Core 6入れました

本屋に行くと、パソコン関連の雑誌の表紙に「Fedora Core 6」の文字が踊っていました。「ほー」とパラパラめくって、新しいのを入れることに決めました。
うちでは、現在のところLinuxマシンは通信機としてしか使用していないので、バックアップの必要もなし。思い切ったことが出来ます。
前回Fedora Core5をインストールしたときは、ダウンロードしてDVDに書き込むのに失敗しまくっていたので、今度はDVD付きの雑誌を買ってインストールしました。1480円。この雑誌、高いなぁと思いながら持ち帰り。インストールが始まって、順調に進むのを確認したら、そのまま寝ました。朝、起きたら、終わってました。
メールとフラッシュと、sambaを設定して、夕方には昨日までのFedora Core5と同じ事が出来るようになりました。
前回は、ここまで来るのに、1ヶ月ぐらいかかりましたが、悩みどころが同じなので、早くできました。雑誌によると、デスクトップの機能が凄いらしいですが、遅いマシンなので、使っていません。そうすると、バージョンアップ前と、全くかわらないです。おそらく、壁紙が変わったことしか気がつかないでしょう。
ということは、完全に動いている状況ではバージョンアップの意味はほとんどない、ということか?。
しかし、うちの場合、前回は用心してサウンドカードを入れずにインストールしたことが原因で、音が出ないマシンだったのが、今回のバージョンアップで、音が出るようになりました。

めでたし、めでたし。

| | コメント (0)

2006年9月 4日 (月)

家庭でLinuxって入門書ないやん:その後

ドラグーンさんのアドバイスで、OpenOfficeの入門書を探しに行きました。

昼休みの大阪本町、紀伊国屋。けっこうデカイ本屋です。しかしOpenOfficeの本は探すのに苦労しました。ワープロ関連の本を場所を探していたのですが、違っていました。「パソコン・インターネット」の本のコーナーにありました。驚いたことに宛名書きソフトの本に並んで売ってました。「パソコン・インターネット」の場所は、どのジャンルにも属さない本の場所のようで、いろいろなほんがごちゃ混ぜに置いてありました。多分、宛名書きソフトの本を探す人も苦労すると思います。

ざっと見ると、10冊ぐらいありました。どの本も、「Windows/Linux対応」で、WindowsXpで画面を説明しているようでした。おそらく、そんなに差はないのでしょう。

しかし、先日、4000円ぐらいするLinuxの入門書を買って「タダのOSを選んだのに、本にお金を4000円も使ったら意味無い」と家内に指摘されたので、今日は確認だけにしました。

| | コメント (0) | トラックバック (0)

2006年5月25日 (木)

Solaris 奮闘

Solaris 10は、なかなか動かないです。何度か再インストールもしました。ネットワークとキーボードがだめです。キーボードは、シフトキーを押したときの、入力がぜんぜん違います。英語キーボードになっているのでしょうか。

UNIXの使い方を勉強するのが目的だったのですが、職場で毎日使うようになって、使用方法もだんだんとわかってしまいました。

Linuxの設定で過去に3ヶ月ほど悩んだ時期もあったのですが、設定など調べても、固有の情報であることが多く、一般的には役に立たないと考えています。何をしているのかわからない状態です。

インターネットで検索するとSolarisのネットワークは、「動きそうなカードを買う方が早い」そうです。

| | コメント (0) | トラックバック (0)

2006年5月18日 (木)

Solaris10だぁ

昨晩、Solaris10をインストールしました。しかし、なぜかコンソールで起動するようになりました。今日、帰って来て起動すると、CDEで起動するようになっていました。で、登録画面が出て操作していたらハングアップ。ネットワークは使えていないようです。

昼休みに本屋さん(紀伊国屋)で、情報収集。Solarisの本が何冊かありました。「はじめてのSolaris」のような本がありましたが、どれも高いので...「500円でSolaris10」とか、あればよかったのですが。どれも「メールの設定」のような項目は無いようです。「ルーターの設定」はあるようですが。パソコンの代用としては、誰も使わないのでしょうか。ちなみに、仕事でSolaris8を使っている人に聞くと、「Netscapeでメールを受信するのではないか?」ということでした。

最近、菜園の話題が無いので、パソコンのことばかり書いています。

窓のサニーレタス順調です。ホームハイポニカもサニーレタスもレタスを大量生産中。余ってしまって、冷蔵庫でフニャフニャ。マヨネーズでたくさん食べてます。家内の実家も家庭菜園で作ったレタス(こちらは結球型)をくれたので、そこらじゅうレタスだらけ。

| | コメント (0) | トラックバック (0)

2006年5月17日 (水)

家庭にSUN Workstation

Img_3122 米SunのSolarisというのは、UNIXのひとつなのですが、これがLinuxのように、ただで使えてしまいます。インターネットでダウンロードして、CDに書き込み、インストールします。

仕事でSolaris8を使用することになったので、勉強のため、自宅のパソコンに入れてみました。ちなみに、最新はSolaris10でした。

PentiumIII 500MHzの自作パソコンに入れました。途中、文字が化けて見えなくなって、リセットなどしましたが、何とか入りました。OSとしては起動しましたが、ネットワークはインストールに失敗したようで、インターネットは使用できていません。

LANのドライバが対応していないものかも?

とりあえず、デスクトップとか、キーボードの操作の練習ができればいいかぁと、Helpなど見ています。

2年ほど前、Linuxを入れてみたこともありましたが、そのときも、ただ入れただけでした。

Linuxと比較すると、やっぱり企業が作ったものだけあって、洗練されているように感じました。オンラインマニュアルなど、Linuxは「訳しました」という感じがしますが、Sunのは「製品」という感じがします。

あと、苦労したのは、シャットダウンのやりかたがわからなかったことです。家電製品の説明書だと、電源ONの方法と、OFFの方法が最初に書いてあったりするのですが、UNIXは基本的に24時間運転なのか、

インターネットで検索すれば何とかなりますが、UNIXの知識がゼロで、パソコンの感覚で使用しようとすると、敷居が高いのではないでしょうか。

次は、Solaris10を入れようかと、考えています。

| | コメント (0) | トラックバック (0)