WLI-UC-GN+DSでWi-Fi

以前は、GAMETECHのGW-US54Mini2を持っていたんだが、親機としてWindows7に対応していなく、BUFFALOのWLI-UC-GNを買ってきた。ソフマップで\1,780。安い。
付属のCDではなく、インターネットから最新版を落として来てインストール。
任天堂のDSと早速接続開始。BAFFALOなのでAOSSが使える。(前のは手動設定だったので面倒)。
おお!つながった!
レイトン教授のひみつのモードから、新しい謎をゲット。いいねぇ。

iPod Touchもつないで見ようと試みた。なんか電波が弱いのか、iPod Touchの受信感度が悪いのか、なんかぷつぷつすぐ切れてしまう。

また、明日トライしてみよう。

| | コメント (0)

IEの入力エリアやボタンのデフォルト文字サイズ

何がきっかけかわからないんだが、IEの入力エリアやボタンの文字が極端に小さくなって読めなくなってしまった。Googleホームページの検索文字列を入力するところや、検索ボタンの文字が小さすぎて全く読めない。でもfirefoxやGoogle Chromeでは問題がない。
LunascapeでもTridentを使うとだめで、Gekkoだと問題ない。表示メニューから文字サイズを変えてもInput用のテキストボックスの文字サイズが変わらない。
色々調べて、ようやく行き着いたのが、簡単なCSSを書いて、インターネットオプションの全般タブのユーザ補助から、ユーザースタイルでそのCSSを指定してやること。CSSには、

input { font-size: 1.2em; }

と書いてあるだけ。サイズは1emでもかまわないんだけど、ちょっと文字の下が欠けてしまうので、1.2emにしている。

ただちょっと、リンクの下線が文字に少しかぶったりしてしまうけど、入力文字やボタンの文字列が全く読めないより全然マシ。
でも、IEの入力文字サイズとかはどこに設定が書いてあるんだろうか?

まあ、普段はfirefoxやChromeで問題ないんだけど、HPによってはIEで無いと表示できないところもあって、仕方なくIEやLunascapeを使っている。IEやNetscapeでないと動かないというHPは何とかしてほしいもんだ。

|

SQLite3

SQLite3の続き。

いままで、SQLiteのソースはばらばらになったものをコンパイルしていたんだが、amalgamationを使うことで、色々起こっていた不可解なLINKエラーは綺麗さっぱりなくなってしまった。ホームページ見ても、amalgamationをrecomendしていて、ばらばらの方は推奨しないと書いてある。

確かに、デバッグしていたらなんか変なところで例外が発生したり変なことが起こっていたんだが、それもなくなってしまった。

よかったと言えばよかったんだが、あの内容が巨大な1本のソースというのは、あまり好きではないんだが、仕方ない。

|

NSIS

NSISとは、Nullsoft Scriptable Install Systemでつまりインストーラを作るためのソフトである。Nullsoftといえば、WINAMPで有名だが、このNSISを使ったインストーラーも結構使われてたりする。

http://nsis.sourceforge.net/Main_Page

今までは、InstallStudioというソフトでインストーラを作成していたのだが、これを販売しているグレープシティが販売を終了。Vista対応もされていない。どうしようかと、思っていたんだが、Vistaでも動かないことはないので、そのまま使っていた。

しかし、VistaのUAC(Userアカウント制御)のせいで、たまに「インストールが完了していないかもしれません」なんてメッセージが出てくることがある。実際には、完了してるんだが、不安を覚える人もいるだろう。

ってなわけで、Vista対応のインストーラを作ることに。

InstallShieldが王道なのかもしれないけど、ここは敢えてフリーなNSISで作ることにしたわけである。InstallShieldもあるんだが、多言語対応となると言語を追加するためにまた金がかかってしまう。本体だけでも結構な価格なのに。

NSISはプラグインも結構あるし、サンプルスクリプトも多数あって、まあ、まずできないことはない。また、Eclipseで作成するためのプラグインもあって、開発環境としては問題ない。

ただ如何せん、日本語の情報が少ない。まあ、マニュアルは平易な英語なので読めないことはないのだけど、ぱっと見た目すぐに意味が頭に入ってこない。ここが表意文字と表音文字の違いを大きく感じてしまうところ。

でも、1から作る必要なくて、ウィザードでいろいろと指定するとひな形は作成してくれる。それに、アプリケーションにあわせていろいろと追加していけばいいわけである。追加で独自のページを挿入することもそんなに難しくはない。画面は、EclipseでもGUIで簡単に作れてしまう。(ちょっとスクリプトは書く必要があるが)

ホームページやら付属のドキュメントとにらめっこで、3日ほどで今あるインストーラとほぼ同等のものができあがった。実は、今あるインストーラは少し特殊なことをしている。通常のインストーラだと、インストールするファイルをすべてぶち込んで1つのEXEファイルを作るのが一番多いと思うが、現状のインストーラ(InstallStudioで作ったもの)は、INI形式のファイルとCompressとかZIPで圧縮した任意の複数のファイルをインストーラのEXEファイルとは別に準備しておいて、インストールEXEから抽出するものに加えて別にインストールできるようにしてある。

これは、たとえば不具合が出荷したソフトにあって差し替えが必要な場合、たった数KBのファイルの入れ替えのために、インストーラの何MBもあるファイルを作り直して、その都度メールで送るわけにもいかないので、入れ替えが簡単にできるようにするためにそうしているわけである。まあ、出荷前に完璧にチェックをして出荷すればこういうことを考えなくてもいいんだが、そういうわけにもいかないわけで・・・。また、テキストファイルもいくつかあって、その中の文字に誤字があったとか、設定が間違えていたとか、ほんのちょっとのことで巨大なファイルを送るわけにもいかないのである。(送り先はほとんど海外というのもある)

また、後からファイルが追加になっても、インストールEXEはそのままで、INI形式のファイルに追加ファイルの情報を追記して、インストールするファイルを圧縮して追加するだけである。これだと、インストールEXEを作り直す必要がない。それと、アプリのEXEは変わらないんだけど、出荷先に応じて設定ファイルをいろいろといじる必要がある。そのためにインストーラを作り直すのはコストと時間がかかりすぎるわけで、まあ、苦肉の策である。

こういうことも含めて、プラグインをいくつか使ってサンプルスクリプトを見ながらなんとか3日で作ることができた。スクリプトの仕組みを理解するのに一番時間がかかったかな。

後は、いろいろ調べたことを、忘れないように備忘録を書いておくことかな。これが一番時間がかかるかも。

|

SQLite3 Ver.3.6.4

SQLiteを業務で使おうとしてるんだが、VB6がまだまだ現役なので、ネットを探してhttp://www.persistentrealities.com/index.php?p=18なるところを見つけた。VB6.0用のラッパーを含んだDLLをこれで作れる。VB6のテストサンプルもあり、動作完了。めでたしめでたし、となったはずが…。

SQLiteのホームページを見ると、Ver.3.6.4がアップされている。動作確認時は、3.5.9だったので、さっそくダウロードしてやってみることに。どうやら、3.6.xでいろいろとファイルが増えているようである。それらをプロジェクトに放り込んで、VB用にいろいろとソースを修正して、いざコンパイルしてみると、リンクでエラーが出てDLLができない。エラーは、

エラー 1 error LNK2005: _sqlite3_api は既に fts3_tokenizer.obj で定義されています。 fts3.obj SQLite3VB
エラー 2 error LNK2005: _sqlite3_api は既に fts3_tokenizer.obj で定義されています。 rtree.obj SQLite3VB
エラー 3 error LNK2005: _sqlite3_extension_init は既に fts3.obj で定義されています。 rtree.obj SQLite3VB

である。

fts3は3.5.9ではこんな問題なかったなぁ。と、いろいろ調べると、SQLITE_ENABLE_FTS3のプリプロセッサ定義が必要みたいなので(3.5.9では設定してなくても問題なかったのに…)、それと、新しく追加されたrtree.cでも同じだろうということで、SQLITE_ENABLE_RTREEを設定してやってみることに。

え~、まだ、「fts3_tokenizer.obj」で二重定義が出やがる。

仕方ないのでソースを眺めてみると、どうもSQLITE_EXTENSION_INIT1というマクロの使い方がまずそうなことに気がついた。ここで、インターネットを漁っていると、中国語のOKWave見たいなところに、fts3_tokenizerのSQLITE_EXTENSION_INIT1を直接externを付けて展開すれば問題がなくなるとあったので、やっぱりそういうことかということで、無事コンパイル完了。テスト動作もOK。めでたしめでたし。

こんなやり方でいいのかと一抹の不安もなくはない。

なんで、こんなソースになってるんだろうか? SQLiteには全ソースを1つのソースにまとめたamalgamationというのがある。これを見てもSQLITE_EXTENSION_INIT1が2回以上定義されてしまうはず。う~む、処理系の違いかなぁ。少なくとも、VS2008ではLNK2005でリンクが通らないのは確かである。

|

MS-IME+AZIKだと途端にバカになるIME君

自宅ではATOK+AZIKですいすい入力しているのだが、会社では諸般の理由でATOKが使えず、MS-IME+AZIKで使用している。しかし、たまに漢字候補が出てこなくて困る時がある。最初はさっぱり理由が分からなかったのだが、どうもIMEの変換アルゴリズムの問題のようである。

たとえば、「書き込んだ」は、入力そのものは

MS-IME標準だと : ka ki kon da

AZIK配列だと : ka ki kl da

となる。前半の「ka ki」はどちらも同じなので「書き」と変換できるが、後半の「込んだ」がIMEの入力だと変換してくれるが、AZIKだと「KLDA」という入力なのでうまく変換してくれない。どうも、MS-IMEは、ひらがなではなく入力されたアルファベットキーをもとに変換を行っている節があるようで、そのために変換がうまくいかない様である。漢字候補リストに「KLDA」とかが入っているので間違いないと思われる。どうも撥音拡張の単語がうまく変換できないことがあるようだ。もちろん、MS-IME標準の入力だと問題なく変換できる。

たとえば、「セリフを噛んでしまった」をAZIK入力すると「セリフを缶でしまった」になってしまう。ただよくわからないのが「かんで」だけ入力しての候補リストを出すと「間で」「かんで」「カンデ」「KZDE」が出てくるのだが、「セリフ・・・」と文節で入力すると「缶で」「かんで」「カンデ」「KZDE」と候補が変わる。どうなってるんだ?

ちなみに、ATOKでは問題なく変換できる。かといって、もう体はAZIKが染み込んでいるので、いまさら標準の配列には戻せない。ストレスが溜まる一方である。

|

JSTQB認定テスト

今日…いやもう昨日(8/30)か、JSTQB認定テストを受けてきた。試験会場は、大阪の関西大学天六キャンパス。雨は少しぱらついていたが傘を差すほどではなかった。

試験に使われていた教室は2部屋。1部屋150人として300人くらいだろうか。

ちらほらと空席もあった。おそらく出張とか何かでこれなかったんだろう。受験費用\21,000を無駄にするのはちょっと痛い。

みんな、試験前は翔泳社と技術評論社の参考書を持ってきて見ていた。まあ、この2冊だからな今のところ参考書というのは。

それとなく見ていると、企業でまとめてきている人もいるみたい。合格したら、会社から何かもらえたり処遇があがったりするんだろうか?うちの場合は、技術士とかよく知られた資格には報奨金が出るけど、JSTQBは認知度が低いし、全従業員に占めるソフト関係の人数は1~2%なので期待薄。受験費用の半分でも負担してくれないかなぁ。

テストは全部で40問。制限時間は1時間。まあ、1問1分で40分だから妥当なところだろう。参考書をしっかりとやってればおそらく受かると思う。年末には合否通知が来るみたいだから、まあ期待せずに待っていよう。

|

SQLite

SQLite3を使うべく現在勉強中。使うこと自体は、ネット上の色々な情報があったのでなんとかVC9で使えるようになった。

ただ、今までデータベース(特にSQL)はほとんどやってこなかったので、ネットや参考書を買って勉強しているところ。

色々調べていておもしろいなぁと思ったのは、SQLを使って覆面算を解いたり数独(ナンプレ)を解いたりできるってこと。本来の使い方では無いんだろうけど、「ああ、SQLも言語なんだな」と実感した。

SQLiteは、SQLサーバーがいらないこと、ソースが公開(パブリックドメイン)されていること、ODBCドライバーもあり作成したデータベースファイルをAccessやExcelでも扱えることなど、中小規模なデータベースならお手軽でなかなかよさげだと思う。

|

NOD32

ようやくうちにも光がきた(マンションタイプだけど)。

工事に来た人は、「80M出てますから速いですよ」と言っていたので、期待していたのだが・・・

全然速度が出ない!速度測定サイトで見ると5Mそこそこ。なんで?

LANのドライバーやらRWIN値等々やってみたが改善せず。

そこで、試しにアンチウィルス(カスペルスキー)を一時的に止めてみると、

「おお!20Mを軽く超えるじゃないか!」

でもアンチウィルスは外せないんで一番軽くて信用のおけるやつを探してみると、NOD32というのがいいとあったので、早速お試し版を入れてみることに。すると・・・

「やったー!70Mを軽く超えたぜ!」

ロシア人、おまえはとろい。NOD32よ、おまえは軽くて優れものだぁ~。

|

STOP 0x0000008E

1年以上前から、DVDを見ていたりゲームをしていると、突然リセットがかかったり、ブルースクリーンになって再起動したりしていて、普通にインターネットをしてる分にはどうもないので、なんかビデオ周りかなぁと、ドライバーを変えたり、BIOSをアップデートしたりと色々やってたんだけど、どうも治らない。

いっそVistaにでも乗り換えるか、と思ったけど、何とかしたいとブルースクリーンになったときに再起動しないようにしておいて、STOPコードを調べてみた。すると、

    STOP 0x0000008E (0xC0000005, ・・・・

となっていたんで、色々とネット調べてみたら、どうも色々とあるらしい。その中で、MEMTEST86でメモリーテストをしてみたらわかるかもというのがあったので、ダメ元でやってみたら、なんと、TEST#5でエラーが出るじゃないですか。それもやる度にアドレスが違う。ただ、エラーが発生するビットは同じのようだ。

え~~~、メモリーに不具合かよぅ・・・う~ん、3枚刺さってるからどれが悪いか見てみようと、1枚ずつやると全然エラーが出ない。ん?どういうことだ???

仕方ないので、マザーボードのマニュアル(英語)を一生懸命見ていると、どうも3枚の組み合わせで差し方が悪いか、どこかのメモリスロットが不安定らしい。また、このマザー(GA-8S655FX Ultra)はDual Channelというのがあって、これは同じサイズのメモリーを載せないとこの機能は有効にはならないんだけど、どうもそのあたりに何かありそうである。で、色々と3枚の差し方を変えてようやくうまくいくパターンになりました。

ああ~、こういうことならもっと早くメモリーだと気がついていれば・・・

元々、購入したときは256MB(128+128)で2枚刺さっていて、後で256Mを1枚追加して差して使っていたんだけど、起動時やBIOSではちゃんと認識しているので、大丈夫と思っていた。でも、BIOSがメモリーを認識するのは実はメモリーモジュールに載っているシリアルEEPROMの内容を読み出して出しているだけで、チェックは普通はしていないらしい。(知らんかった)

メモリーテストでエラーが出ていたのは、物理アドレスの後ろの方なので、DVDとかゲームとかメモリーを食うやつを動かしているときに、エラーの出るあたりをプログラムが使うことで、おかしくなっていたんだろう。

いまさらだが、こういう状態でよく使っていたなと思う。

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