POSTフィルター [ソフト開発]
MySQLのDBをいじる。
そんなストーリーを思いつき、サンプルアプリを作った。
家からやったら問題なかったので会社から試したら、403エラーが返ってきた。
原因はPOSTフィルターだった。
会社からのインターネットアクセスは制限が厳しい。
コンテンツフィルタリングが導入されていて、2chや検索結果のキャッシュ、
芸能・スポーツ関連などが閲覧できない。
その程度のことは、仕事をするのに関係ないからいいわけだが、
POSTフィルターは曲者だ。
掲示板への書き込みなどに使われるPOSTという技術をブロックするのだ。
POSTは、ブラウザからWebサーバーに情報を送信する方法の一つ。
表面にあらわれないで多くの情報を送信するのに便利なのだ。
GETだと、URLに?ではじまるパラメータが追加されて、送信情報が
そのまま見える形になってしまう。
ということは、送信した情報が検索エンジンに登録されてしまって、
意図せず情報が広まってしまう。
前述のサンプルアプリを協力会社のメンバーに試してもらったら、
何の問題なく動作した。
ちょっと、うちの会社のコンテンツフィルタリングは厳しすぎだな。
POSTフィルタリングだが、Web上のすべてのPOSTが
ブロックされているわけではなさそうだ。
おいらが試したのは、某レンタルサーバーを自分で借りた場所で、
サブドメインを付けたところ。
きっと、ドメイン名でブロックしているのか、レンタルサーバー会社が
登録してあるIPアドレスをすべてブロックしているかだ。
自分でつくった場所なんだから、あらかじめ登録されていたわけではない。
きっと、除外申請すればそこだけPOSTフィルタがかからなくなるだろうが、
その手続きは煩雑だし、またそれを一部のユーザーにさせるわけにはいかない。
興味深いサイトを見つけた。
自社のインターネットの規制はどれくらい?
これをみると、POSTフィルターまでやっているのは全体の5%。
2006年のデータなので、今よりもヌルイことは当然。
5年後の今は、情報漏えい、個人情報保護、コンプライアンスなどが
厳しく言われ始めているので、もっと増えていることだろう。
しかし、ソフト開発がWebに移行してきている昨今、ソフト開発会社で
POSTフィルタをかけているというのは、理不尽な気がしてきた。
2ch上の優良な技術情報をみたいときはある。
その他掲示板で、技術情報の交換をしたいときだってある。
会社に属する一技術者として、立ち上がってみようかね。
そうは言っても、そうそう短期的にルールが変わるものではない。
前述のアプリについてどうするか?
POSTをベースに作っておいて、もし403エラーで失敗したときには
送信情報を暗号化してGETで送信する。
サーバーサイド(PHP)で、複合化して情報取得してDBに送る。
POST用とGET用で、PHPを2つ用意しておけばよい。
ふむふむ、とりあえずの解決策がみえてきた。
KB2538242 [ソフト開発]
昨日のWindowsUpdateでそれっぽいのが出てきたから、
もしやと思ったらビンゴだった。
Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム
ある人によると「Windows2000で使用できないAPIを使っていたことへの対策」
ということなので、KB2467175への対策をようやくおこなってきたということ、
なのかもしれない。
その事件はひどいものだった。
もうサポート期限が切れたWindows2000だとはいえ、WindowsUpdateしたら、
VC2005でMFCをを使ったプログラムが動かなくなってしまったなんて。
こんな状態を2か月放置して、MSからはこれまで何の公式見解もででいなかった。
一部の人は「MSによる障害事実の隠ぺいだ!」なんて言っていた。
手近にWindows2000がないので、事実関係をはっきりさせることはできないが、
きっとこのKBでこの問題は収束したのだろう。
PMサーバー版リリース [ソフト開発]

ペーパーモデル化ツールサーバー版の宣伝。
詳しくは、kensetsu21のこちらのサイト(PDF)をご覧あれ。
クライアントは、サーバー上の共有フォルダにファイルを
ドラッグ&ドロップするだけ。
サーバー側では共有フォルダを常に監視しており、
ファイルが放り込まれたことをリアルタイムで検知して変換を開始、
変換結果は別の共有フォルダに作成する。
サーバーへのセットアップは、共有フォルダ作成や
変換設定を行う必要がある分、それなりにやっかいだが、
クライアントは共有フォルダが見れさえすればよく、
アプリのインストールは不要。
まだ価格が公開されておらず、正直おいらも知らない(忘れた)が、
通常版5万円よりは格段に高いものになるであろう。
レイアウトが使用されたAutoCAD図面をモデル空間に
変換する必要がある人が5人以上いる企業が対象と考えれば、
その程度の価格設定になるであろう。
サーバー版のアイコンは、Ver3の一部をすげ替えただけ。
3をSVに変えただけでおもしろみがない。
時間があれば凝ったものを作ったのだが、いかんせん
急遽決まった企画だったので仕方ない。
歴代PMツールのアイコンを並べてみる。
本物は32×32だが、特別に110×110で拡大して載せてみた。

もしVer4が出るようなことがあれば、おいらのデザインセンスを
駆使して、立派なアイコンを作ることを心に誓っておく。(軽く)
ペーパーモデル化ツール3 [ソフト開発]
とりあえずはVectorにアップロードされただけであり、販促活動はこれから
本格的に行われていくはずだ。
興味がある人は、以下をクリックしてみるとよい。
ペーパーモデル化ツール3
今後は、スタンドアロン版だけでなく新しい形での提供もはじまる。
どんなものなのかはまだ明かせないが、提供側としては今後の発展に
大きく寄与してほしいと考えている期待の星である。
【新バージョン用につくったロゴ】

【新バージョンの変更点(readme.txt記載)】
・Windows7を動作可能OSに加えました。
・変換元ファイルに、2010形式のDXF,DWGファイルを加えました。
・変換後ファイルに、2007形式および2010形式のDXF,DWGファイルを加えました。
・Revitで保存したDWGファイルの変換に対応しました。(以前はレイアウトがないと判断して、
変換できませんでした。)
・異尺度オブジェクトのうち、テキスト・マルチテキスト・寸法・ハッチング・引出線・マルチ引
出線・幾何交差に対して、レイアウト上の見た目の注釈の大きさを有効にして変換するように
しました。
変換後オブジェクトのプロパティにおいて、異尺度対応は「いいえ」となります。
・寸法線折り曲げ(分断されていることを示す折り曲げ)に対応しました。
・円弧が延長された直径、半径、角度寸法に対応しました。
・検査寸法(寸法値が円弧と線で囲まれている)に対応しました。
・座標寸法、折り曲げ半径寸法を、寸法として変換するようにしました。(以前は分解)
・寸法において「矢印を反転した」状態が有効となるようにしました。
・ビューポートの画層プロパティ優先を考慮して、線色・線種・線幅を変換するようにしました。
・マルチ引出線を、[基本図形に分解される図形]に加えました。
・OLE2フレームを、[元の通りに変換できる図形]に加えました。
・らせんを、[元の通りに変換できる図形]に加えました。
・ラスターイメージのクリップ反転に対応しました。
・ファイルオプションに、[変換時の警告表示]を追加しました。
・図形オプションの分解に、属性・楕円・スプラインを追加しました。
・図形オプションに、[ビューポート境界にある幾何図形を切り取らない]を追加しました。
・図形オプションに、[レイヤが非印刷の図形を変換しない]を追加しました。
・図形オプションに、[寸法線の黒丸矢印を二重の円として変換する]を追加しました。
・STB(名前の付いた印刷スタイル)の図面を、STB図面のまま変換するようにしました。
・各種オプション(ファイル、図形、文字)について、iniファイルへの保存、iniファイルからの
読み込みを可能にしました。
・簡易ビューア(DD View)を機能強化しました。
1.線の太さ表示の切り替え 2.ファイルのドラッグ&ドロップによるオープン
3.ペーパーモデル化ツールのツールバーボタンによる単独起動 4.システムメニューを追加
5.別名のDXF,DWGファイルとして書き出す機能を追加
暗号 [ソフト開発]
『RSA 暗号技術の基礎からC++による実装まで』
ソフトの認証を行うのに、シリアル番号とパスワードを使いたいから。
シリアルは、一定の桁数のランダムな数値とする。
パスワードは、シリアル番号に対してある演算をすることで求められる値とし、
パスワードに逆の演算を行うと、シリアル番号に戻る。
まさに暗号と復号であり、これが何とも奥が深い。
他人に予想できず、それらしい演算である必要がある。
とりあえず、自己流につくってはみたが、どうも満足できない。
ネット上にそれっぽいものが落ちてないか何度も調べたが、なかなかない。
そこで何度も引っかかってきたのが前記の本。
本を買ってまで実装するものかと迷うこと、5年。
ずいぶん長いこと迷ったものだが、昨日この本が届いたので、
ななめに読んで30分で内容をつかんだ。
RSA暗号とは...。(Wikipediaから引用)
桁数が大きい合成数の素因数分解問題が困難であることを安全性の
根拠とした公開鍵暗号の一つである。
暗号(Cipher)とデジタル署名(Digital signature)を実現できる方式として
最初に公開されたものである。
RSAでは、512ビットの鍵を使うのが一般的だ。
512ビットの数値ということは、2の512乗のことであり、
10進数にすると154桁の整数ということになる。
C言語の標準で扱える最大の桁数は、doubleの16桁程度。
16桁と154桁では、天と地ほど違う。
しかも、512ビットでは解読されてしまうリスクがあるらしく、
今後は1024ビットや2048ビットの鍵が使われるとのこと。
616桁の整数を扱うってことだ。
こんな巨大な整数のことを、Multi-Precision IntegersといいMPIと略す。
和・差・積・商といった基本的な演算から始まり、素因数分解や
最小公倍数、最大公約数、素数、乱数を求める。
要するに、小さい値を基本語長の値として演算を行い、
オーバーフローしそうになったら、もうひとつの基本語長の値を利用して、
繰り上げていくというわけだ。
考え方はシンプルだが、この処理をいかに高速にするかが超難しい。
昔、分数を約分するコードを独自に書いたことを思い出した。
2,3,5,7,11といった小さな素数で順番に割っていくという、
何の工夫もない、くだらないプログラムだ。
約分するためには、最小公倍数で割っていけばいいということは
わかっていたが、この最小公倍数を求めるのが難しい。
ユークリッドの互除法というのを、この本で知った。
aとbの最大公約数を求める関数を転記してみる。
long getGCD( long a, long b )
{
while( b != 0)
{
long w = a % b;
a = b;
b = w;
}
return( a );
}
たったこれだけかと、唖然とした。
世の中、頭がいい人はいるものだ。
この際、暗号はどうでもよくなってきた。
円周率を1兆数千億桁求めて世界記録達成、なんてのがニュースになる。
円周率は3.05より大きいことを証明せよ。こんなテーマに取り組んだことがある。
円周率の整数部をたった1桁導き出すのに、たいへんな苦労をしたものだ。
この本で学んだことで、100桁くらいは独力で出せそうな気がしてきた。
暇で暇でしょうがないときに、やってみようと思う。
こんなことしても、金にならないのが残念なことではあるけれども...。
CEditでドラッグ&ドロップ [ソフト開発]
プロジェクト管理をやっていると、プログラミングをやることができなくなる。
対人間の仕事の合間にプログラムをやることは、おいらには無理だった。
プログラミングはじっくりと腰を据えて取り組まなければならず、
途中で邪魔が入ると、効率が低下して最悪全てが破綻する恐れがある。
工程管理や関係者との折衝の合間に行えるものではないという結論に至った。
昔取った杵柄ではないが、今でもそれなりのプラグラムを書ける自信はある。
しかし、現役でバリバリとやっているメンバーにはかなわない。
配下に優秀なプログラマーがいるので、まかせておけば安心だ。
中途半端においらが手出しすると、おいらの仕事がまわらなくなるのだ。
一応、最低限の口出しはするようにしているけれど、
あまり言い過ぎるとボロが出るので注意が必要だ。
とは言え、たまにはプログラムをやらなければいけない状況がやってくる。
新人の指導である。
実践的なプログラミングをやったことのない人間に、プログラミングを教える。
VC++2005、MFCプログラミングだ。
.Netプログラミング全盛のこの時代に、MFCというのはやや時代錯誤な感はあるが、
これもうちの課に配属された宿命だと思ってあきらめてほしい。
いくつか出した課題のうちの1つ。
「エクスプローラからのドラッグ&ドロップを受け取るCEditコントロールをつくる」
昔作ったことがあるから、簡単にできると思ったら思わぬ落とし穴があった。
少しヒントを出して作らせておいたら、案の定うまくできない。
仕方ないから、こうすれば出来るんだよという正解例を自分で作ろうとしたら、
うまく動かなかった。
片手間にやる新人指導のつもりだったのに、本業がおろそかになる事態となった。
こんなはずではないのにという焦り、指導しているのに正解がわからないという屈辱。
その日にやらなければならないことを先送りして、約1時間の時間を費やしたが、
とうとうその日中に動くことはなかった。
こういうときは、一晩寝かせてみるに限る。
夜眠りに就く前に、ツラツラと考えていたら解決策に行き当たった。
翌日、ちょいちょいとプログラムを直したら動いた。
プログラミングっておもしろいな、と再確認した出来事だ。
前置きが長くなってした。本題に入ろう。
おいらがやっていたときの開発環境はVC++6.0だった。
2005にしてしばらくのあいだはプログラムをやっていたのだが、
使いこなすまでには至らなかったのだ。
ダイアログテンプレートの作り方、クラスや変数の追加方法が大きく異なる。
片や日本語、片や英語、全然言葉も異なるので、両者がつながることがなかった。
【VC6の場合】

【VC2005の場合】

もちろん、これでだけで目的を果たすことはできない。
概要は以下の通り。
・CEditを基本クラスとするサブクラス「CMyEdit」を作成する
・CMyEditでドロップメッセージを受け取るために、OnDropFilesをオーバーライドする
・OnDropFiles内で、ファイル名を取得してSetWindowTextで自分に貼り付ける
ネタ元はこちら。
ただし、ネタ元における以下処理は、不要のようだ。
CDropDlg::OnInitDialog() 内の、m_MyEdit.SubclassDlgItem(IDC_MY_EDIT,this);
何を意味する処理なのかよくわからないが、これを実行すると死ぬ。
IS2008 [ソフト開発]
「InstallShield おまえもか!」
まだ2007年だというのに、ソフト名に来年の年号を使う。
AutoCADがはじめたと思われる悪習。
(Windows Server 2008は、まだBeta版だからよしとしよう。)
さて、InstallShield2008を使ってみた。
32万円もするたいへん高価なソフトだ。
ミッションは、古いバージョンのInstallShieldでつくられた
インストールプロジェクトを最新版の2008に移植するというもの。
心配だったのは、大変古いバージョンだったということ。
InstallShieldは、バージョンアップが毎年のように行われている。
2008の前には、12, 11.5, 11, 10.5, Xというバージョンがある。
Xよりもずっと前の、英語メニューしかないバージョンを使っていた。
2000という名前がついていて、6だか6.5のバージョンだったと思う。
そんな前のプロジェクトが、果たして最新版との互換性が
とれるだろうか、という心配。
アクティベーションの失敗、文字化けやら、warningやらの
もろもろの困難を乗り越えて移行に成功した。
デフォルトの言語が英語になっていると、文字化けすることがわかった。
InstallScriptとMSIの違いがわかってきた。
パス変数、コンポーネント、リリースなどの単語に慣れた。
近頃のInstallShieldは、開発したアプリケーションのアップデート機能が
とても進化しているらしい。
WindowsUpdateのように、通知をしてダウンロードしてアップデートという一連の
流れをユーザーが行うことができる。
ユーザーに通知するためのサーバーは、インストールシールドが
ホスティングサービスとして提供する。
ホスティング・サービスの利用料金は5万ユーザーまで無料、とのこと。
ところが、InstallShieldをインストールしてInstallShield自体をアップデートする
という時点でつまずいてしまった。
社内のセキュリティーの問題なのか、なんなのか不明だが、
こんな状態の仕組みを、ユーザーに使わせるのは大変リスクが高いと思い、
今のところこれを実際に使うつもりはない。
どんな原因でアップデートできないのか、という点をはっきりさせるまでは。
電子署名を使ってみた。
ウイザードと途中で、署名ファイルを指定してパスワードを入力しておくと、
発行元が証明されたちゃんとしたSetup.exeをつくることができる。
もちろん電子署名は、あらかじめ取得しておかなければいけないけれど。
VS2005に移行した、IS2008化した。
ながく古い開発環境を使い続けてきたが、ここで心機一転だ。
新しい機能を使って、自分とこのアプリも大きく変えてみようと思う。
VisualStudio2005 [ソフト開発]
帰国後の1週間を乗り切った。
バカンスモードの体からビジネスモードに切り替えるのは、
なかなか厳しかったが、この1週間で徐々に慣れてきた。
夢のような南国リゾートとは違い、現実世界は厳しい。
さて、VisualStudio2005の話。
今週から本格的に触り始めた。
VC6に慣れきったおいらにとっては、革新的なものだった。
まだ機能の1割も使っていないと思うが、戸惑いと未知の期待を隠せなかった。
うつうつとした感情と、わくわくとした期待が同居した感じか。
プリコンパイル済みヘッダーの話。
VC6のプロジェクトをVC2005でそのままビルドしたら、やけに遅い。
体感速度で10倍くらい遅い。
設定の違いをひとつひとつ確認していったら、プリコンパイル済みヘッダーに
行き当たった。
VC6では「自動的に使用」となっていたものが、
VC2005に移植したものをみたら「使用しない」になっていた。
そう、「プリコンパイル済みヘッダーを自動的に使用(/YX)」というコンパイルオプションが、
VC2005ではなくなっていたのだ。
そこで、「プリコンパイル済みヘッダーを作成(/Yc)」に変更してみた。
そこそこ速くなった。
そこで、「プリコンパイル済みヘッダーを使用(/Yu)」に変更してみた。
猛烈に速くなった。
ただし、これらにするためには、stdafx.cpp と stdafx.h がプロジェクト内に
存在していて、プロジェクト内のCPPの先頭で
#include "stdafx.h"
を記述していなければならないことが判明した。
そして、「使用(/Yu)」の場合は、stdafx.cppだけは「作成(/Yc)」にしておく。
この設定が各ファイルごとに有効になるものだとは、知らなかった。
基本的なことだが、プロジェクトファイルの拡張子が変更されている。
VC6 → VC2005
dsp → vcproj
dsw → sln
この関係を把握しておかないと、たいへん混乱する。
まだ、VisualStudio2005を使い始めたばかり。
なんだかわからない機能がゴテゴテとたくさん付いている。
あれこれといじってみて、使えるかどうかをさぐっていこうと思う。
楽しみなり。
BMPをJPEGに [ソフト開発]
ビットマップ(BMP)ファイルをJPEGファイルに変換できないものか。
そんなテーマが頭の中で渦巻いていた。
既存のアプリ(フリーソフトなど)を使えば簡単だが、
プログラム的にやるとなると、なかなか。
VC6環境で、手間をかけずに簡単に。
いやはや、奥が深い世界だった。
CADに関わっているので、ベクター系のデータには強いつもりだ。
しかしラスターに関して言えば、まるで知らないということが明確になった。
近頃のCADは、当たり前のようにラスターを扱うことができるので、
ラスター処理に関してもこれから学ばねば。
JPEGというキーワードから、まずたどり着いたのがこちら。
Independent JPEG Group
たいへんシンプルな英語サイト。
ここからZIPをダウンロードして解凍すると、Jpeg-6bというフォルダ内に
Cのソースコード(CやH)があらわれる。
これらをVC6でコンパイルするとJPEGを扱えるライブラリになるらしい。
この世界では有名なものらしいが、ドキュメントが全て英語なので、
使い方を紐解くだけの根性がなく、実際に利用するのは断念した。
次にMFCのCImageクラスというのを発見。
残念なことにVC7から実装されたクラスなので、VC6では使えない。
これを使えば、いともたやすくBMPをJPEGに変換できるらしい。
VC6しか使えないおいらには、厳しい現実だ。
VC2008なんていうのが世に出始めたこのご時世、
VC6を使い続けるのは大変なリスクだと痛切に感じる。
VC2005あたりにジャンプアップしなければ。
最後に落ち着いたのがこれ。
ImageKit
有料コンポーネントだが、ランタイムライセンス無料というのが好印象。
開発ライセンスが71,400円というのは、高いようでいて安いだろう。
これを使っている人が身近にいたので、その存在は知っていたが
自分で扱ったことはなかった。
試しに体験版を入手して、BMPをJPEGに変換するコードをつくってみた。
初期化処理など独特のルールがあるが、それほど迷うこともなく
目的の処理が完成した。
よく見ると、このツールなかなか素晴らしい。
ラスター処理だけでなくて、ベクター系処理も持っている。
DXF、SXFを扱えるし、ラスベク変換までできるそうだ。
本格的に使ってみようかな、と考えている。
そもそもなんでBMPをJPEGにする必要があったか。
DWGビューアの画面イメージをBMPに保存することまではできたが、
BMPがあまりにもサイズが大きいので、圧縮が可能なJPEGに
にしたら、適度なサイズに落ち着くだろうということ。
CAD図面のような画面イメージをBMPからJPEGに変換すると、
けっこう色合いが変わることが判明。
赤系の色がどす黒く変色する。
悩みはつきない。
コンピュータの日付 [ソフト開発]
痛い目にあった記録。
無料試用期間30日間、そんなソフトを開発している。
動作確認するために、コンピュータの日付を変更する。
日付を数日後に変更して「残り27日です」とちゃんと出るか。
もっと先の日付に変更して「試用期間終了です」とちゃんと出るか。
うん、うん、ちゃんと動いているね。
その後の出来事。
●痛い目其ノ一「AutoCADが動かなくなる?」
何気なくAutoCADを起動したら、
「コンピュータの日付がうんたらかんたらで、
再度アクティベーションする必要があります。」
なんて、言いだした。
7日以内に再アクティベーションをして下さい、とのこと。
一応、7日間はAutoCADが動くとのこと。
さてはコンピュータの日付を変えて、元に戻すのを忘れたんだなと思い当たる。
確認してみたら、本当の日付の3日後になっていた。
7日後にはAutoCADが動かなくなると思うと、少しあせるも、
「はいはいわかりましたよ」とオーソライゼーションコードを入力する。
はじかれる。
よく見ると、リクエストコードが変わっている。
仕方なく、Autodeskインフォメーションにメールを出した。
正直に、ソフト開発のために日付を変更していて、
そのままAutoCADを起動したら再アクティベーションを要求されたと申告。
不正にAutoCADアクティベーションをしているわけではないよ、
という状況を伝えるためには、正直に言うしかなかった。
3時間後にはメールの返信があり、新しいオーソライゼーションコードで、
アクティベーション完了。
迅速な対応ありがとう、Autodeskの人。
●痛い目其ノニ「Visual Studioでビルドすると全ビルドになる」
全ビルドするのに約5分かかるプロジェクトで、
一個のCPPを直しただけなのに、ビルドすると全ビルドが走り出す。
デバッグ実行しても、ビルドするかどうかを尋ねてくる。
いいえとすれば、デバッグできるけれども、毎回出てくるそのメッセージがうざったい。
最初は、コンピュータの日付のこととリンクして考えられなかった。
前にもこんな現象が発生して、いつの間にか直っていたということを経験している。
よくわからないけれど、何とかしないと仕事にならないと考え、
解決のために原因と対策を模索することにした。
前述のAutoCAD問題、つまり日付変更の問題かと思い当たる。
であれば、プロジェクトフォルダを丸ごと削除して、
SourceSafeから落として、一度全ビルドしておけば解決するか?
と考え実行してみた。
解決しない。
日付の問題ではないと考え、あきらめかけたが...。
いや、このままでは本当に仕事にならないと考え直した。
どう考えても日付だろう、と考えたのは正しかった。
エクスプローラの検索で、Cドライブ全体に対して、
明日以降の日付のファイルを検索実行。
ありました、ありました。
プロジェクトの外側にある、各プロジェクトが共通で参照している
フォルダ内のヘッダーファイル。
そりゃ、そうだ。
そのヘッダーファイルの日付が3日後の日付になっていれば、
ビルドするCPPよりも後に編集されたということになって、
そのヘッダーをインクルードしているすべてのCPPのビルドが走り出すということ。
SourceSafeから最新のファイルを落とすとき、
その時点でにおけるコンピュータの日付のファイルが作成されることに起因する。
以前、この問題に遭遇したときは、日数が経過することにより
未来の日付がいつのまに現在の日付を追い越して、解決したというわけだ。
目からうろこですな。
積年の謎が解明された瞬間でもあった。
●痛い目其ノ三「将来への漠然とした不安」
今後、未知の問題が起こるかも?という不安にさいなまれている。
何に関しても、数的に3つ揃うともっともらしいので、こじつけたとも言える。
以上。
さて、今後の話。
こんなことが起こらないようにするために対策することにした。
スタートアップに桜時計を登録。
桜時計とは、NTPサーバーから時間を取得してコンピュータの日付を
合わせるためのフリーソフト。
以前から、その必要性を感じていてインストールはしていたけれども、
気が向いたときに時間を合わせるだけで、
常駐させたり、毎回起動させる必然性は感じていなかった。
WindowsXPには、インターネット時刻といって、
「自動的にインターネット時刻サーバと同期をする」
機能があるけれども、社内ではファイアウォールのせいか、
まともに動いた試しはない。
したがって、桜時計は重宝している。
朝、パソコンを起動すると、必ず桜時計が起動して
コンピュータの時間がピッタリ合う。
仕事上、精神衛生上、公衆道徳上、非常によいことだ。








