ATOKのユーザー辞書が編集できない

日本語変換ソフトとしてATOKを使っています。MS-IMEでも良いのでしょうが、以前から使っているというのと、日本語変換の精度で定評があるということで選びました。長く使っていますが、間違った選択ではないと思っています。

さて、ATOKでもMS-IMEでも、真に使いやすい日本語入力環境とするには、個人に応じたカスタマイズが必要です。辞書の整備もそのひとつで、よく使う単語などは、辞書に登録しておくと後々の作業がはかどります。ATOKの辞書管理はちょっと特殊で(MS-IMEなどを詳しく知らないのでこれが普通なのかもしれないけれど)、ユーザーが自由に作成できる辞書と、システムが使っている辞書があります。ここで混乱を引き起こすのが、「辞書セット」という概念です。辞書セットには、複数の、ユーザー(辞書作成を主たる事業とする企業なども含む)が作成した辞書を登録することができます。これにより、ある特定の辞書セット(たとえば「インターネット関連辞書セット」)に、特定の傾向を持った単語が登録された辞書(たとえば「インターネット顔文字辞書」「インターネット用語辞書」)が登録できるようになります。いちいち辞書をマージしなくてもよいのが便利なのでしょう。しかし、これらの「登録された辞書」とは別に、「ユーザー辞書」というものが、それぞれの辞書セットに作成されます。この「ユーザー辞書」とは、単語登録(Ctrl+F7)や推測変換の情報を貯め込む辞書です。単語登録時に登録先の辞書セットを選ぶことができるのですけれども、ある辞書セットを選択して単語登録をすると、その辞書セットに登録されている辞書(のファイル)に単語が登録されるのではなく、辞書セットに対応したユーザー辞書に単語が登録されます。このユーザー辞書は、ATOK側が自動的に作成してくれます。

さて、登録した単語が間違えていた、他に作成していた自分用の辞書の情報をマージしたい、などの理由により、ユーザー辞書を編集したくなったとします。このとき、「辞書メンテナンス」にある「辞書ユーティリティ」というツールを使うことで、登録されている単語を編集したり、他の辞書から単語情報を持ってきたりすることができる…はずなのですが、メニュー上の項目が灰色になっており、単語情報の編集はおろか、追加や削除もできないようになっている場合があります。

これは、「オンメモリ辞書」という機能を使っているために引き起こされます。メモリ上に辞書を置くのでアクセスが高速化されるのですが(以前使っていた環境ではバグの温床でしたが…最近は改善された様子)、登録された単語情報を編集できなくなるというデメリットも生じてしまうということになります。…ひどいですね!

「オンメモリ辞書」のチェックを外すと、編集ができるようになります。このとき、再起動が必要になります。

JUnit4のテストとコンストラクタ

Spiderの開発では、JUnit4による自動テストを行っています。オブジェクトの検索処理が心臓部となるので、その正確性を確認しておかなければなりませんし、性質上テストしやすいものでもあるからです。

JUnit4は、アノテーションを使ってテストメソッドなどを指定します。具体的には、@Testを付したメソッドはテストされ、@Before@Afterを付したメソッドはテストメソッドの実行前後に呼び出されます。

ここで、見落としがちなのは、テストメソッドを有するテストクラスのコンストラクタがいつ呼び出されるのか、という点です。

わたしの認識では、何度もテストクラスのオブジェクトを構築するのは無駄ですから、テストクラスのオブジェクトが構築されると、以後、そのオブジェクトが使い回されるものと思っていました。しかし、実際には、テストメソッドを実行するたびに新たなテストクラスのオブジェクトが構築されます。これを見落とすと、初期化されているはずのフィールドが初期化されていなかったり、値を設定したはずのフィールドに何も設定されていないという事態が生じることになります。

なお、JUnit4のAPIリファレンスには、「To run the method, JUnit first constructs a fresh instance of the class then invokes the annotated method.」と書かれており、アノテーションが付されたメソッドを呼び出すときには、JUnitは新しいインスタンスを生成するということが明記されています。その他に、このことについて言及しているドキュメントはあったのでしょうか。自分としては、見かけませんでした。

GoogleアプリケーションとRAMディスク

Google ChromeやGoogle Earthのインストーラを起動しても、何も起こらず、インストールできないという問題が生じました。

しばらく原因が分からなかったのですが、こちらのページによれば、一時ディレクトリをRAMディスク上に設定している場合(さらに一般的にはCドライブ以外に設定している場合)に生じる問題であるようです。セキュリティ上の問題なのか、なんなのか、よく分かりませんが、一時ディレクトリ(環境変数TMP)の指し示す位置をCドライブ上(デフォルトの値が望ましい)にすることで解決することができます。

こんなケースがあるとは思いもよりませんでした。

なお、Google Chromeのヘルプページにもインストールができない場合の項目が存在するのですけれども、まさか「RAMディスクに割り当てている場合には一時ディレクトリを利用できない」とは考えないので、あまり解決になっていないような気もしますね。

NVIDIAのOptimusとPlayOnline Viewer

ThinkPad X60の熱問題に耐えられなくなり、ThinkPad T420を購入しました。届いたのでFF11をインストールしたのですが、PlayOnline Viewerが起動しない(原因不明のエラーにより「動作を停止しました」状態になる)という不具合に遭いました。まだ根本的には解決していないのですが、対症療法的なものを見つけたので、ここにメモしておきます。

こちらの記事によれば、PlayOnline Viewerが起動しないのはNVIDIAのOptimusに問題があるとのことです(ThinkPad T420固有の問題というわけではないらしい)。何が原因なのかわかりませんが、PlayOnline Viewerを起動するとNVIDIAのドライバ(nvumdshim.dll)でエラーが生じて、そのままハングアップしてしまうようです。このハングアップが厄介で、これまた理由は分からないのですが、シェルを巻き添えにしてしまいます。タスクマネージャすら応答しなくなりプロセスの終了もさせられなくなるので、Ctrl+Alt+Deleteでログオフを選ぶしかありません。

対症療法的な対策として、C:\Windows\SysWOW64\nvumdshim.dllを一時的にリネームするなどして除いておくというものがあります。前記DLLが存在しない状態ならばPlayOnline Viewerを起動することができるようになります(これまたこれまた理由が分かりません)。ただし、そのままではFF11が起動しなくなるので、PlayOnline Viewerが起動した後は元の状態に戻しておかなければなりません。

また、nvumdshim.dllを置き換えるという手段があります。古いドライバのDLLに置き換えることで、不具合を避けることができるとのことです。置き換えると、確かに、PlayOnline Viewerがエラーで停止することはなくなります。ただし、他に影響が生じない保証はありませんし、リンク先のファイル自体が安全である保証もありません(いちおうAvira Antivirusでスキャンしましたが何も検出されませんでした)。くれぐれも自己責任で試してみてください。また、既存のファイルはリネームするなどして保存しておくようにしましょう。何らかの問題が生じても、ファイルを元に戻せば復旧できるものと思われます。こちらの手段をとる場合、次のようなスクリプトを使う必要はありません。

ファイルを置き換えた場合、他のDirectX使用アプリケーションが正常に動作しなくなるおそれがあります。実際、Google EarthのDirectXモードは起動しませんでした(OpenGLモードならば起動できます)。

Continue reading

Radio SureとEclipseを使うときの注意事項

Radio Sureという、インターネットラジオプレイヤーがあります。有料版もありますが、無料版でも十分に常用できる、完成度の高いソフトウェアです。海外の局しか登録されていませんが、洋楽をメインに聴いているのであれば、むしろその方が望ましいでしょう。iTunesにもインターネットラジオ機能が搭載されていますけれど、Radio Sureの方が軽く、また、録音機能も備えているので高機能だと思います。

このソフトウェア、Eclipseと同時に使うと、ちょっとした不具合を引き起こします。それは、Eclipseで名前変更(リファクタリング)をキーボードから実行することができなくなってしまうというものです。メニューから選べば、問題なく実行することができます。

ある日突然、キーボードから名前変更のリファクタリングができなくなってしまったので、どこかで何か起こっているのかなあ、と思っていたところ、Radio Sureで記憶にない録音データが作られていたので、原因が分かりました。

Radio Sureの設定に、「Hotkeys」という項目があります。この項目に、「グローバルホットキーを有効」というオプションがあります。これをチェックした状態にしておくと、Radio Sureがアクティブになっていない場合でも、録音などの操作ができるようになります。そして、ほかのアプリケーションのキー入力をフックして奪い取ってしまうようで、ほかのアプリケーションではそれらのキーが使えないことになってしまいます。

Eclipseで名前変更のリファクタリングに割り当てられているのは、Shift + Alt + R。そして、Radio Sureで録音に割り当てられているのもShift + Alt + R。ということで、このチェックを外せば衝突が回避されます。

アプリケーションを越えてのキーフックは危険ですね。

Firefoxが大量にメモリを使用する現象への対策(続報)

以前の記事の続報です。

おそらく、「It’s All Text!」というアドオンがメモリリークを起こしています。ただ、何が原因なのかは、まったく分かりません(ソースを見ることはできるので自分で突き止めることも不可能ではありませんが…)。このアドオンを有効にした場合、有効にしていない場合よりもメモリ使用量は増加しますし、タブを閉じて減少すべき場合にも減少しないという現象を確認しています。

ただ、他にもメモリリークを起こしているアドオンはたくさん存在するでしょうし(上記アドオンしか調べていません)、日頃見ているサイトによってもメモリ使用量は変わるものと思われます(特定の場合しかメモリリークを起こさない可能性もある)。

そのため、「このアドオンを切ればメモリリークが一般的に解消される」という結論を導くことはできません。しかし、不要なアドオンをオフにすることで、メモリ使用量を軽減することができ、安定的に運用することができるということは言えると思います。

Firefoxが大量にメモリを使用する現象への対策

しばらく前まで、Firefoxが異様にメモリを消費して困っていました(約600MB)。そのおかげで頻繁にスワップが発生し、Firefox自体はもちろんのこと、システム全体のパフォーマンスも低下してしまっていました。

どこに原因があるのかハッキリとは分からなかったのですが、最近、あまり使っていないアドオンを無効化することで劇的な改善がみられました。おそらく、停止したアドオンがメモリを浪費する原因になっていたものと思われます。

停止前は増えるばかりだったメモリ使用量が、停止後は増減を繰り返して一定の値を保つようになっています。アドオンにメモリリークがあって、確保したオブジェクトを解放していないのだと考えられます。

どのアドオンが原因かは確認していないのですが、確認が取れ次第、続報として書き込みたいと思います。

どうもFirefoxの動作が重いなと感じている方は、使っていないアドオンをいったん無効化してみることをオススメします。メモリ使用量はタスクマネージャを使うことで確認することができます(firefox.exeのプロセスのワーキングメモリ量をみればよい)。

INSPIRON zeno HD + HDMI + FullHDのワナ

相方が「PS2からPCに乗り換える!」というので、DellのINSPIRON zino HDを購入。標準的なパッケージを選択し、すでにHDMI接続可能なフルHDの液晶モニタを持っていたので本体のみの購入。

このINSPIRON zino HD、きわめてコンパクトなボディでありながら、パワフルなプロセッサと、RADEON HD 4200というそれなりなグラフィック性能を持っており、「ちょっとした」用途のPCとしては魅力的な製品です。

製品が届くということで、設定「させられて」いるのですが、起動すると画面の周囲に不審な黒枠が。なんとなく、画面全体がダウンスケーリングされているような感じです。何かおかしい、ドライバの問題かと思ったのですが、こちらのブログに原因が書かれていました。どうやら、Catalystの設定(ひいてはグラフィックボードの設定)に問題があるようです。なぜに、1:1スケーリングを標準としないのか…。

ドライバを新しいものにすればよいかと思って、ATI(いまはAMD)のページから最新のドライバをダウンロードしてインストールしたのですが、こんどは「項目が消えていて設定できない」という事態に陥り、アンインストールして付属のドライバに戻しました。

教訓! RADEONに関しては、そうそうドライバをアップデートする必要はありません。むしろ事態を悪化させる可能性があります。

XREAでPhpMyAdminにログインできない

とてもとても頻繁に起こっている問題のようです。

最近、XREA内でサーバを移転したのですが、その際に、データベースの引っ越しを行いました。前のサーバでデータベースをエクスポートし、新しいサーバでインポートします。

そして、以前にも書きましたが、WordPressはサイトのURLが変わると、データベース内の情報を書き替えなければうまく動作してくれません。そのため、何らかの方法でデータベースにアクセスしなければならないのですが、よく使われるのがPhpMyAdminです。とくにXREAは自動インストール機能を用意しているので、これを使おうとするのが普通でしょう。

しかし、XREAが提供しているPhpMyAdmin、どういうわけか、ログインできないという問題があります。いや、ログインできるのですが、ちょっとコツがいるのです。また、サーバによっては、設定を変更しなければならない場合もあり、原因と対処方法がよく分からないという、何とも微妙な状況になっています。ちょっと検索するだけで、同じような相談が多数見つかり、これだけ問題になっているなら、根本的に解決してくれよ…と思います。まあ、本当に原因が分からないのかもしれません。

おそらく、最も参考になるのがXREAのphpMyAdminのログイン問題(「ブログだった」より)です。しかし、わたしはこれを試しても効果がありませんでした。

それでは何をしたかというと、まずはログイン画面を出して、ユーザー名とMySQLのパスワードを入力、そしてEnter。パスワードが違います、というようなエラーメッセージが出るのですが、ここでおもむろにCtrl+F5を押してページをリロードします。もしかするとF5でもいいのかもしれません。すると、どういうわけか、PhpMyAdminの管理画面にアクセスできるようになります。ちゃんとテーブルを編集できたりするので、正しくログインできているようです。

なぜかは分かりませんが、なんにせよ、使えているので、いいものとします。