netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2011-08-04 [長年日記] ▲
_ [ツール] CCFinderX on Windows 64ビット版 ▲
CCFinderX の実行に必要なのは次のソフトウェアです.
- JDK 6 32ビット版
- Python 2.6 32ビット版
前の記事にも書いてますが,Python は2.6でなければなりません(2.7以降だとクラッシュします).また,使っているDLLのバージョンが32ビットなので,64ビットバイナリではDLLが読み込めず,起動できません.64ビット版のWindowsを使っている場合でも,必ず32ビット版のJDK,Pythonを使ってください.
これらがインストールできたら,CCFinderX の GUI フロントエンドを起動するgemx.bat
を修正します.
set CCFINDERX_PYTHON_INTERPRETER_PATH=C:\Python26\python.exe
というコメントアウトされてる行を復活させる(Python 2.6を別パスにインストールした場合はそれに合わせて修正).java -classpath %THE_JARS% GemXMain ...
という行があるので,javaコマンドを,"C:\Program Files (x86)\Java\...\bin\java.exe"
というように,32ビット版のJavaバイナリを直接指すように修正する.
以上の修正が終わったら,gemx.bat
でGemXを起動することができます.
_ [ツール] CCFinderX の細かい動作 ▲
CCFinderX には,それなりに癖があります.いちおう需要があるかもしれないので書いておくと,たとえば以下のようなものがあります.
- クローン検出を実行したディレクトリには,
.ccfxprepdir
という作業データ格納用ディレクトリが作られます.Eclipse JDT のソースディレクトリにデータが作られた場合,Build Path 上のファイルとして認識されてしまい,その複製データが無駄に bin ディレクトリにも作られる,という事態が起こる場合があります. - ファイル名に2バイト文字が入っていると,クラッシュすることがあります.
- クローンがある2つのファイルのエンコーディングが違う場合に(再現条件は厳密には確認していません),クローンの表示位置がずれる場合があるようです.
2010-12-24 [長年日記] ▲
_ [ツール] CCFinderX + Python 2.6.6 ▲
久しぶりに CCFinderX を使おうとしたところで,Python のバージョンにちょっとだけ悩んでしまったので,忘れないようにメモしておきます.
お手軽に CCFinderX を動かすには,Windows 32ビット版の上で動く Python-2.6.6.msi と組み合わせるのがいいようです.これなら,Python をインストールして,gemx.bat
の中でset CCFINDERX_PYTHON_INTERPRETER_PATH=C:\Python26\python.exe
というコメントアウトされてる行を復活させるだけで動きます.
これに対して,cygwin の bin/python.exe を使おうとすると,sys.path が /bin などの cygwin 用のパスになってしまうので,easytorq というモジュールを import するタイミングでモジュールが見つからない旨のエラーが出てしまい,そのままでは動きません.
また,CCFinderX の README には動作条件「Python 2.6 or later」と書いてあるものの,Python 2.7 を使ってしまうと,easytorq というバイナリのモジュールを import するタイミングで ImportError: Module use of python26.dll conflicts with this version of Python.
と言われて怒られます(バージョン違いの時点でそれを明示して停止してくれるのは非常にありがたいところですが,動かないことに変わりはありません).
2010-09-18 [長年日記] ▲
_ [近況] コンデンサ破損 ▲
自宅で hyCalendar 等の開発に使ってたPCがここ数日何もしてなくてもフリーズ頻発してたんですが,とうとう起動しなくなりました.BIOS画面すら出なくなってたのでケースを開けてみると,USB 端子付近のコンデンサが死んでました.
購入からちょうど3年になったところでした.最近,仕事場のPCでも,スリムタイプのやつが動かなくなるのはコンデンサが原因な気がしますから,SSD とかの寿命よりも,本体の寿命のほうが実は短いかもしれません.
後継機を購入して開発環境を再構築するまでは,このサイトで公開している各種ソフトウェアのバグ対応とかは一切できませんが,そこは個人で持てるリソースの限界なので,ご理解ください.
2010-08-01 [長年日記] ▲
_ [ツール] Clixon VCC-300 ▲
自宅のデスクトップとノートPCをお手軽に操作する方法がないかなーと思っていたところを,店頭で見かけたので買ってみました.
両端が USB のコネクタになっているデバイスで,両端をそれぞれPCに挿して専用アプリケーションを立ち上げると,「メイン」 PC のマウスカーソルを画面端まで持っていったとき,「サブ」PC 側のマウスカーソルが動く,というものです.サブ側のマウスを直接動かすと,メイン側の消えていたマウスカーソルが戻ってきます.
マウスカーソルがある側の PC に,キーボード入力も届きます.移動先 PC では生のキー情報が届くようで,Windows XP における AltIME などのキーバインド変更は無効です.
私の環境では,手元のノートPCをメインにして,デスクトップPC側に少しだけ仕事をさせて戻ってくる,という使い方ができるので,それなりに便利です.リモートデスクトップと比べた場合,デスクトップ側のディスプレイはそのまま使える,専用ケーブルだけあってか応答速度が良いという利点があります.新しいデバイスにありがちな「すぐ飽きる」リスクはまだ残っていますが,とりあえず使って満足しました.
なお,このデバイスは,ハードウェア的にはLANアダプタとみなされます.192.168.x.0 (xは設定ダイアログで選択)というネットワークを介して情報をやり取りするので,ファイアウォールの設定だけは調整が必要です.画面をまたいだファイルのドラッグ&ドロップもできますが,PC間でアカウントが違うと,他方の PC に持っていった瞬間に移動先PCでユーザ認証ダイアログが表示されるという,微妙な動きをするようです.コピー&ペーストだと,素直な動作に見えます.
2010-07-28 [長年日記] ▲
_ [ツール] CX-Checker のボタンが足りない ▲
CX-Checker には XPathView という「構文木に関する XPath 式を書いてボタンを押したら即座に該当コードを教えてくれる」便利ツールが付いてるらしいんですが,マニュアルに書いてある「チェック」ボタンが表示されない(?)という問題に遭遇しました.
学生に試用してもらおうとした直後の指摘で,手元で試したところ,選択したソースコードにマッチする XPath 式を表示する「取得」ボタンは表示されているし動作するけれども,他には「クリア」「コピー」ボタンしか表示されないようです.2人揃ってインストール手順等を間違えているのでなければ,CX-Checker 側に何か問題があるのかもしれません.
……とりあえず問題を(学生から)問い合わせ窓口に伝えて,様子を見ることにしました.
(7/31 追記) お返事があり,ボタンはなくなって「Tab キーを押す」とチェックが走るようです.
今更の感想ですが,インタラクティブに検査しながらソースコードを修正しようとすると,ソースコード修正ごとのデータベース更新作業が少し手間がかかるように感じられます.Eclipse JDT で,ファイル保存にコンパイル等が連動するのに慣れているせいかもしれません.
2010-07-21 [長年日記] ▲
_ [ツール] CX-Checker 試してみました ▲
授業で学生がC言語のコードを「読みやすく」書きなおす作業をするということだったので,CX-Checkerを試してみました.
一括インストーラでインストールしたら,Cygwin の /bin ディレクトリへの PATH を環境変数に設定してから,Eclipse を起動します.CDT でプロジェクトを作成した後,設定マニュアルに従って,プロジェクトに Cygwin の /usr/include と /usr/lib へのパスを設定しておきます.検査したいコーディングルールを記述した XML ファイルを好きなだけ登録してから,プロジェクトを右クリックして 「Checker」メニューから 「SDB の作成」を行い,続いてソースコードのチェックを実行するだけとなります.設定の半分は CDT の設定に関する部分であり,CX-Checker 自身が要求しているのは Cygwin/bin への PATH 設定とルール集合だけです.設定項目はかなり少なく収まっている気がします.
Cygwin の /bin ディレクトリへの PATH を設定しておかないと java.io.IOException: Cannot run program "cygpath" (プロジェクトのパス名) ... (以降文字化け)
というエラーメッセージが出ます.いわゆる「コマンドが見つからない」状態であることがエラーメッセージには明示されていなかったので,解決にはちょっとだけ考え込んでしまいました.また,Cygwin を普通に setup.exe
からインストールしていたのですが,make
が標準ではインストールされないということに気付かなかったので,こちらも少し引っかかりました.
CX-Checker のツールそのものに関しては,チェックするルール集合が標準では空になっており,「チェックしたいルールだけを追加して使う」という形式になっているので,「学習しながら試す」のに向いている気がしました.変数名の長さぐらいの簡単な検査であれば,MISRA-C 用に書かれた既存 XML ファイル群をそのまま使えますし,「どんな検査がしたいか」考えてカスタマイズすることが可能です.今回は,学部生が授業で書いたプログラムに対して,いくつかの検査ルールを適用するという使い方だったので,既定で大量のルールを用意しているようなコーディングチェッカに比べて,利用しやすかったという印象です.