ここで、話題にするKDirectなのだけれど、もう何年か前に、
某MMORPGのWebログイン画面をすっ飛ばしてログインできるツールを配布したことがあった。
ついでに、多重起動もできるようにしてみた。
それがKDirect、合わせてBOTも配っていた。
平和な時代だったなぁ。
また、ユーザーからのアクションで何かが変わるんじゃないかと期待なんてしてた。
今となっては、ただ愚かだっただけの思い出でしかないのだけれど。
そんなこんなで、このツールの存在もすっかり忘れていたのだけれど、
先日メールが届き、なんでもKDirectがほしいらしい。
とは言ったものの、ソースが残ってるだけで、ビルドも面倒臭く、
配布パッケージ作るのもめんどくさかったので、メールには無理って返した。
が、ふと思い出すと、メールのデータは残ってるので、
そっから配布パッケージを取り出すことは十分に可能だったりすることに気が付いた。
というわけで、KDirectはここ。
まぁ、年に数回もDLされればいいところだろうけれども。
らいつべバルーンは、.NetFrameworkの4.0を使っている関係上、
Visual Studio 2010 を使って書かれているのだけれど、C++/CLIを使っているので、
インテリセンスが効かないという致命的欠陥がある。
インテリセンスが使えないと、各種補完が動いてくれないので開発効率は格段に落ちるし、
変数名なんかでバグを作りこみ易い状態になってしまうわけでこれはよろしく無い。
まぁ、らいつべバルーンについてはちゃんとテストしろよって話なのだけれど。
閑話休題。
で、Visual Studio 2010 のServicePack2を待っていたのだけれど、
どうやらそれよりも前に次期バージョンのDeveloper Preview(いわゆる先行体験版)が出ている模様。
こちらでは、C++/CLIでもインテリセンスが使えるらしい。
という訳で、インストールしようと思ったのだけれど、XPだと跳ねられるんだよなぁ……
自宅の普段使わないファイル置き場にはWindows7がインストールしてあるし、
ノートPCもWindows7搭載なのだけれど、デスクトップは移行が面倒くさいのと、
もーちょっと待てばLlanoのA-3800が~とか、今はHDDが~みたいな事を
考えている内にすっかりリプレースする時期を逃してしまった感がある。
一応、Windows7のProのライセンスは発売日に確保してあるのだけれど、ずっと放置プレイ。
さて、どうしたものか。
とりあえず、対応OSにWindowsXPって書いた窓の杜の担当者は死ねばいいと思う。
前の記事でNetBeansで、リモートの環境をWindows端末からIDE上でmakeする環境を
どうにかこうにか作ったのだけれど、eclipseの場合はどうなんだろう?と
思ったので試してみた。
前の記事でeclipseに対してはかなりキツイ事書いたので、場合によっては訂正しないと
いけないし。
eclipseの最新バージョンは3.7。
いちから環境構築するのは面倒なので、Pleiades を使うことにした。
C++版を入れて、追加でPHP開発用のPDCを入れる。
その後、いらないプラグインを削除。
2~3回の再起動でひとまず必要そうな物を揃えた。
で、早速リモートにあるソースを元にプロジェクトを作成してみる。
が、sshで鍵を読むのに失敗している様子。
どうも、AESで作った鍵は使えないらしい。
付属のメニューから鍵を作りなおして、リモートのauthorized_keysに追加。
やっぱり鍵の対応ができていないのが原因らしく、今度は接続完了。
プロジェクトの作成も、ロケーションをRSEに変更してホストの設定をしてやることで
すんなり作成される。
あと、心なしかSSH接続が安定しているような気がする。
が、こっちでも順調に進んだのはここまで。
標準の構成ではリモートのmakeツールをどうやっても叩くことができない。
ビルダー設定、ツールチェインにリモートの環境を指定できるものがなく、
それらの設定をするにはeclipseの事を相当知らないと難いだろう。
かるくGoogle先生にお伺いかけたところ、クロスコンパイラをローカルに持ってきて
それを叩く環境で開発するのがメジャーらしい。
本番と全く同じライブラリがある本物に接続できてるのに、わざわざクロスコンパイラ。
個人的にはこれではmakeが出来る以上のメリットはない。
プロジェクト作成までは、本当に理想的に動いてくれただけに、惜しい。
makeができないと価値がほぼなくなってしまう。
ついでに、プラグインのインストール・削除を何度かしているうちに、
NullPointerException吐いたのを付け加えておく。
というわけで、現状ではNetBeans優位に落ち着く。
しばらくは、NetBeansをメインに据えることにしよう。
ただ、この手のツールは日進月歩、半年経てばまた状況も変わってくるだろう。
きっかけは、C++のクロス開発が簡単に出来る。
という触れ込みをどっかで見たから。
今までは小物を作ってた位なので、FreeBSD機にsambaで共有かけたファイルを
Windows上から編集して、sshでログインしたTeraTerm上でmakeコマンドを実行。
なんて、野暮ったい方法でも余りストレスは感じてなかったけれど、
規模が大きくなると、入力補完だとか、自動テスト実行だとか、
ともかく、そういう機能が欲しくなる。
勤務先からはsambaが使えないので、sshでログインした後、
viでコード書いてるので効率がよろしくない。
ローカルでソース書いて、WebDAVでファイル上げて、配置しなおして
TeraTermでmakeとか考えただけでめんどくさい。
その辺も上手いことやってくれる機能が欲しい。
というわけで、netbeansを試してみた。
起動してパッと見た感じはeclipseより進んでるというか、小奇麗な感じ。
試しに、phpのプラグインも入れてみたのだけれど、その辺のアップデートも
上手いことやってくれてる印象。
eclipseは、適当にアップデートや追加機能いれて言われるままIDEを起動しなおしたら、
起動できなくなりました。
なんて冗談みたいな事を平気でやるので信用ならない。
暫く触ってないうちにeclipseも進化してるのかもしらんけど。
sshの認証もあっさり認識。
が、上手くいったのはここまで。
ファイル同期の方法が、「システムレベルファイル共有(NFS,samba)」以外選べない。
公式では、いかにも簡単そうに出来るみたく書いてあるのだけれど、
「スマートセキュアコピー」「ファイルシステムの共有 (同期なし)」なんて項目はない。
で、勤務先からアクセスする時には「スマートセキュアコピー」が必須。
鯖側のsshd_configに問題があるかもしれないと、チェックしてみるも、sftpは有効になってる。
先述のチュートリアルが、バージョン6.9の物で、インストールしたのが、7.01なので
じゃあ6.9でやってみようか、と思い直して6.9をインストール。
が、今度はsshの認証が通らない。auth.logを見ると鍵渡す前に接続を切ってる模様。
腐ってやがる……
結局7.0に戻る。
で、試行錯誤を繰り返す中で、samba共有がある状態でパスマッパーを設定し、
開いたプロジェクトのタブから、リモートホストにアップロードを実行してみたところ、
ソースが壊れた。
腐ってやがる……
結局壊れたソースはまだ、Subversionにコミットしてなかったので、
dumpコマンドのバックアップから少し古いのを復旧させた。
一度組んでるから楽だとはいえ、同じソースの書き直しは精神的にクルものがある。
閑話休題。
結局、ローカルでプロジェクト作成、パスマッパーでサーバと共有を設定、
ローカルでソース変更、IDEのメニューからアップロード、IDEからmake、実行。
みたいな形を試してみた。
本体がローカル側の扱いになるので、いちいちアップロードを選ばないと、
リモートで古いソースでmakeを走らせることになるのがすごくみっともない。
このアップロードはIDEがsftpでやってるようなので、ソース変更即反映が
自動でできないハズは無いのだけれど。
で、もう少しあがいてみると、「サービス」タブの「C/C++構築ホスト」の中に、
「プロジェクトを開く」、というのがあった。
これはリモートにあるプロジェクトを本体として開ける機能らしい。
試してみた感じ、ソースの同期は随時行われている感じ。
make、実行もローカル側からリモートのファイルを操作できている。
が、当然ながら「プロジェクトを開く」では、既存のプロジェクトしか開けない。
つまり、新規にプロジェクトを作成する方法がない。
新規プロジェクトの作成からは、リモートでプロジェクトを作成できるような
オプションは見つからなかった。
少し考えて、ローカルでプロジェクト作成。WebDAVでアップロード、
アップロードしたプロジェクトをリモートのプロジェクトとして開く。
先述程ではないにしろ、カッコ悪い。
プロジェクトを量産しなければ実際は殆ど意識することは無いのだろうけれど、
もうちょっと何とかならんものか。
メニューの「プロジェクトを開く」からは相変わらずローカルのプロジェクトしか開けないし。
プロジェクトの本体はリモートの鯖側において、家と勤務先で、sambaとsftpを
使い分ける。
で、両方の環境から全部の作業が出来るようにしたい。
が、中々道は遠いようだ。
本日は木曜日
自動でcron起動している、ロト6の当選番号通知が届く日である。
が、21時になってもメールが届かない。
調べてみると、ページが移動していた……。
さらによく見ると、Shift-JisからUTF-8に文字コードも変わっていた。
HTMLの構造も微妙に変わっている。
ので、通知用のphpを書きなおし。
結果として登録している人にも文字化けしてるメールやら、
正常に値の入っていないメールやら4回ほど送信してしまった……
登録してた人、ごめんなさい。