パソコンのこと日記

参考書に載っていないシステム開発の心得

1 Mins read

今まで色々な言語の参考書を読んできたが、肝心なことが書かれていないと思い、世の中に一言(笑)

開発者に一番重要で必要なスキルは、Log出力機能を付けることだ!
 
1番の狙いとしては不正エラーを捉えることが目的で、後はおまけで色々と適材適所に仕掛けて、ほしい情報を出力すればいい。

じっくりテストをしたとしても運用を開始して本番環境で、ほぼ必ずと言ってよいほど、簡単には分からないエラーが発生する。その際、確実に問題点を絞り出すことが非常に重要となるので、この為だけに仕掛けると言っても過言ではない。この機能があるとないとでは大違いである。

当たり前だが、プログラム内は目に見えない。Log出力してあれば見える形でユーザーに対し「これで大丈夫です」と説明する材料となり、自信を持って説明することが出来る。また説明する開発者もアタフタせずにすむ。(笑)

開発する場合は正常なルートを初めは作ってしまいがちだが、一番はじめにLog出力機能を考えて作成する。最近ではLog4など色々と言語にぶら下がっている出力機能もあるので自作しても良いし、既存のLogClassを使用しても良い。

機能としては、出力機能、出力停止機能、出力先変更機能は最低ほしい。フラグやPathは定数をきっておいても良い。

最低限ほしい出力内容は日時、どこから出力されたか、ステータスはエラーなのかログなのかの切り分け情報、内容と四つはおさえてほしい。もちろんそのシステムにより、必要な情報は出力する。Web系アプリならマルチスレッドでの動作な使用ユーザー情報(IDなど)も必要で可能であればDBへ出力してもいい。

このDBへの書き込みはDB接続を前提としているので接続自体に問題が発生した時に捉えられないことがあるので、基本はローカルにログを吐いて、DB接続が確認できたらDBへも吐き出させるのが有効。(毎日夜中の1時になど)

DB出力は注意が必要で、プログラムエラーのログを吐こうとしたらDB接続エラーとなることが考えられる。エラーのエラーは本末転倒になる。DB出力は十二分に確認が必要。またシステム負荷の度合をみながら設置すること。

■Logを出力するタイミング
・エラー時
・単体起動時、単体終了時
・重要な箇所(DB更新など)

言語に存在し、余裕があればThrow系と連携をとると最適になる。

本当に硬いシステムの中身はLog出力機能が充実しているものであり、不安定なシステムにはLog機能が充実していないことが多い。

これが出来て一人前?・・・当たり前(苦笑)

Read more
Vistaパソコンのこと

Vista 64BitにてUSBタイプの無線LANクライアント

1 Mins read

4G以上のメモリを購入する敷居も大分、低くなりました。

また、64Bit OSも各ベンダーが頑張ってDriverがそろうようになり、
実用に耐えるだけの環境になったと筆者は思っておりま・・・す・・・した?

そうです、人間、調子に乗ると落とし穴が・・・
「無線LAN?どれでも一緒でしょ!じゃこの2千円のUSBタイプ頂戴!」

帰ってきてブスッ・・・
Driverのインストール・・・サクッ

ブーン、ブーン(CD-ROM音)

画面 「この64Bit OSには対応しておりません」

なぬ!!!!!

調べたところ・・・なんと無線LAN関係は未だに64Bit対応しているものが
ほとんど無いのです。買ってきたパッケージを見ても

Vista対応(32Bitのみ)

の一言が・・・

ガーン!ってことで、調べました。
64BitのUSBタイプはPLANEXの製品が対応しているらしいとの情報しかググっても載っていません。
「俺ならできる」と勝手に思い込んで、正式に対応しているかどうかもわからず、即効、PLANEXの「GW-US300MiniS」を購入して、イザ!チャレンジ・・・

Driverのインストール中・・・

終了してほっとしていた束の間
「このドライバーは署名されていませんので、使用不可になります」

Vistaめ・・・

このままでは引き下がれないので、Vista再起動、F8押下し、
「ドライバ署名の強制を解除」を指定し起動

再度、Driverをインストールし今度は警告メッセージが出ないのを確認し
無線LAN設定・・・無事に起動(笑)

取りあえず1週間使用して問題がないので、イケるでしょう♪

しかし、まだまだ落とし穴がある64Bit環境でした・・・
32Bit Only 無線LANクライアントは社会勉強代2千円として我が家に残るでしょう(笑)

Read more
パソコンのこと

HDMIとDVI 映像信号と音声信号

1 Mins read

昔はD-Subだけ知っていればよかった・・・アナログ時代が懐かしい

クライアントさんのPCを導入したんだけど、そこで質問が、
Aさん 「DVI-IとDVI-D、HDMIとはなんですか?」

そこで以下のような回答を

DVI-Iはアナログ信号とデジタル信号双方に対応していて、アナログからデジタル端子に変更される少し前の時代に活躍していました。

DVI-Dはデジタル信号のみ対応しており、昨今のPCにはモニタとビデオカードの双方ともデジタル入力、デジタル出力対応されているので最近はもっぱら、こちらが活躍しています。

HDMI端子は主にテレビやAV機器にて使用されていて、企画的にはDVIと同じになります。

(自分なりによく説明できた。。。と思いきや、次の質問が)

「HDMIは映像信号と音声信号も一緒に送れるんですよね?今度、PCからDVI-Dを使用して液晶テレビにHDMIを使用して出力しようと思っているのですが音声も一緒に出るのですか?」

・・・

・・・

・・・

5分時間をください(汗)

ってことで調べました!

HDMIは映像信号と音声信号を出力出来て、DVI系は基本的に映像信号のみ出力するパターンが多くなります。DVI-DからHDMIに変換して出力する場合は別途、音声信号の入出力に対する接続が必要になる場合が多いようです。

ちなみにHDMIの音声信号は古い規格(Ver1.3以下)や使用機器によっては、2chにコンバートされたりてしまう場合があるので、5.1chや7.1chを使用したい場合は確認が必要です。また、映像と音声を一緒に出すより、音声は光接続か同軸での接続の方が良い音になる場合があるみたいです。

まめ知識!(DVIからHDMI変換で音がでる!?)
PCのビデオカードにHDMI出力端子が付いているものが最近ありますが、マザーボードなどにあるSPDIF出力とビデオカードをオーディオケーブルで繋げれば、音声もHDMIケーブル1本で送れます。

DVI→HDMI変換コネクタを使用する場合は変換コネクタ内に音声端子も正しく変換されているものを使用すること!(市販のものは無いものが多いらしい)
玄人志向のDVI-HDMI2など

ふぅ~時代は進むよ(笑)

Read more
Office

Excel2007 マクロのセキュリティはどこ?

1 Mins read

仕事柄、最新の情報を仕入れておかないと、クライアントからの質問に答えられないので、
新規OSやOffice等も積極的に使用しております。

Office2007になってVista以上に使い勝手が悪く、不評なリボンメニューですが、
本日もやってくれました!(怒)

起動してもセキュリティの関係でマクロが使用できない!?

以前なら、メニューからチョコチョコっといじれば直ぐになおせたものが、
リボンメニューに「マクロのセキュリティ」が無いのです???

20分ぐらい格闘して・・・ありました(汗)

1.開いたExcel左上にあるOffice2007の丸アイコンをクリックしメニュー表示
2.そのメニューの下にある「Excelのオプション」を開く
3.「基本設定」の「Excelの使用に関する基本オプション」内にある「[開発]タブをリボンに表示する」をチェックする

開発メニューが表示されて「マクロのセキュリティ」を設定することが出来るようになりました(ホッ)

それにしてもリボンメニュー・・・・ほんとに良いの?・・・・

慣れろってことかぁ(苦笑)

追記

オプションからも行けました(汗)

1.Excelのオプションからセキュリティセンター、セキュリティセンターの設定ボタン押下
2.セキュリティセンターからマクロの設定

上記の流れが正統派でしょう!

Read more
MySQL

DB Designer 4でMySQLに接続できない?

1 Mins read

最近は便利なツールが沢山ありますね!
昔はセコセコとExcelに書き出していたものを・・・・

っと思い出にフケってないで本題です(苦笑)

DB設計&運用&作成&既存システムの解析するときに仕様書としてER図などを作成しますが、DB自体からリバースエンジニアリングし、お手軽に作成してしまおう!ってのが最近の流行りだと思います・・・・が(私だけ?)

ってことでMySQL用に作成してあり、仕様をある程度合わせて作られているツールを探したところDB Designer 4が見つかりました!

いざDownしてMySQL5.1と接続したら・・・・・「ID,Passが違う!」と接続できない?

はて?

ググル・・・

どうやら、MySQL4.1以降のパスワードハッシュ方法変更の影響を受けているらしい?

セキュリティレベルは落ちるが開発環境なので旧ハッシュにしてあげる
 

-- hoge@localhost = ID@Host
-- hogepass = パスワード
 set password for hoge@localhost = OLD_PASSWORD('hogepass');

これで行けるようになった(笑)

ちなみに最新プロジェクトは「DB Designer Fork」と言う名前になっているらしい?こちらは英語版だが新ハッシュ方法のID,PassもOKだったよ。

Dataフォルダ内のファイルを差し替えれば、ある程度は日本語表示になる。

また、最近はMySQL Workbenchってのがあるが、ほしい機能は有料版なり・・・

P.S 「A5:SQL Mk-2」というフリーのSQL開発ツールも良いです。(作者様、感謝!)

Read more