投稿

4月, 2010の投稿を表示しています

Ubuntu 10.4 Netbook edition EeePC900HAへインストール

USBメモリ(SDメモリ)を準備 1G以上 Ubuntuからインストール、netbook-edition.isoをDL( WindowsでUSB転送できたがインストーラ起動失敗) usb-creator-gtkから作成、一度USB(SD)の内容を消してから、転送 EeePCのBIOS(900HA)はBootシーケンスにくせがあり、HDDでUSB Memoryを1、HDDを2した後、ブートシーケンスにUSBが現れるのでそれのみにする。 起動するとインストーラーが立ち上がる。 e.g ex4:65G sqa:1.6G インストール後、BIOS:HDD設定でHDDを1にし正常に戻す。 起動後 Language Supportで日本語をインストール

QtとMFC

1年前からライセンスの変更を元に使い易くなったQt。 DesktopアプリでWindows用をつくる。 もしくはMFCを使うという開発を過去のものにしたのかもしれない。 まぁ、時勢でしょう。(それに.NETは将来不安かも!?) ところでMFCで作られたソースをQtへ移植したい、という要望があると思います。 テストをしながら少しずつ移行するのが一番安全な方法でしょう。 以下のQtのサイトにひとつのアプリケーションでMFCやWin32とQtが使えるフレームワークが提供されています。 もちろん、MFCやWIN32が存在する限りLinuxやMacOSX(将来はandroidやiphone?)では動作しませんが、移行期間としては仕方がないでしょう。 Qt/MFC Migration Framework

Qtについて

ディスクトップ向け開発でクロスプラットフォームといえばNokia  Qt(キュート) 興味ある開発フレームワークだが、しかし、現時点ではホットなプラットフォームであるAndroidやiPhoneに対応していないのが残念である。 iPhoneはある程度実現できても(AppleやNokia自身が邪魔しなければ、だが)、JAVA VM上であるAndroidへの開発は時間がかかるかもしれない。(あるとすればNDK経由か?) 参考:Qt for android (NDK使用) ついでだが。。。。   Qt CreatorというQt専用の軽いIDEがあるがTutorialをおこなうときに   英語で実行したい。 そのときはQtCreatorの実行コマンドラインの頭にLANGを英語に、   指定するといつも英文で開発ができる。ただし、現時点1.3.1(64bits)では日本語入力ができなくなる。 e.g.   env LANG=en /home/develop/qtsdk-2010.02/bin/qtcreator PS1 QtをINSTALLの際、コンパイルで2,3度止まることがあるが、エラーをサーチするとコンパイルを再開する方法がみつかるので焦らないこと。 コンパイルは2,3時間かかる。 PS2   クロスプラットフォームでは wxWidgets も有力

Goolge Testを3プラットフォームへ

Windows, Linux, MacOSXでGoogle Testを試した。 (すべてOS64bits環境) Google Test 1.5.0 WindowsはVisual Studio 2005 Linux(Ubuntu)はautomake MacOSはXcode3.2.2 で動作した。 しかし、それぞれプロジェクトに組み込むのには癖がある。   ボクはWindowsに慣れているため、比較的スムーズにいき、   automakeも、あまりハマることもなる組み込めた。が、   Xcodeには苦労した。 理由はドキュメントが英文なのだが、   肝心のXcodeは日本語表示のため、ドキュメントがすんなりと、   わからない。また、Xcode特有のライブラリ管理を理解するのに、   苦労したためである。 解決の糸口はXcodeを英語化した     (OSの言語を英語を最優先へ)のが大きかった。  やはり、どんな環境でも開発ツールの表示は英語が一番と、 再認識した。 3つの開発環境で、JavaのようにUnitテストが、 しやすいのはXcode(動作するのに一番手間取ったがそれは僕の無知)の、 印象があるが、これは使いこなしていく上で印象がかわるかもしれない。  

開発言語を知る

「開発言語」知るというのは、そのまわりのライブラリや開発環境をある程度使いこなせて、初めて知った。と言える。 条件文やテンプレート、抽象化クラスを覚えたって、単に土台を知っただけのことである。 そこからが長い。 ボクはJAVAやPAYTHONの文はある程度覚えたが、単に土台だけである。 JAVAでいうとantなどのTaskカスタマイズができるかといえば、できないし、UnitTestを組み込むのもテンプレートなしではままならない。 mavenなどもモノマネの範囲である。 そのため、深く理解する時間が欲しい、休日が少ないのは当たり前。

GoogleTestとVisual C++ (VC++)

Google TestをVC++と使う上で注意。 DLLとして利用する場合、staticとして利用する場合、linkerよって、それぞれ破棄されないように注意。 see   staticとして利用する場合、 参照されないデータを保持する (/OPT:NOREF) を設定せよ。 シンボルが破棄されない。 gtestのライブラリをDLLとしたら、使う側もDLLとする。  gtestのライブラリをstaticとしたら、使う側もstaticとする。 以下はついで、プロジェクト->プロパティ->構成プロパティの全般->共通ランタイムサポートを使用しない /clrオプションを無効にし、  C++ -> コード生成、ランタイムライブラリ(/MT or /MTd)を指定。 移植性と管理の簡単さのため、C++のオプションに/FI stdafx.hを追加し、各ソースから#include "stdafx.h"を取り除く      PS  gtest.slnとgtest-md.slnの違いは、 両者はともにスタティックライブラリとして作られるが、コンパイル・コード生成の違いで、 Cランタイムライブラリを前者はスタティックライブラリ、後者はDLLライブラリとして使用するようだ。

SWIGとpython2.6.5

SWIGのサイトにあるtutorialがそのままでは動作しなかったのでメモ  gcc -fPIC -c example.c example_wrap.c  -I/home/userp/develop/Python-2.6.5 -I/home/userp/develop/Python-2.6.5/Include/  ld -shared example.o example_wrap.o -o _example.so 以上で動作した。 PS OS Ubuntu 10.4Beta2(64bits) SWIG  1.3.40

PythonをremoveしたらUbuntuが壊れた

Pythonを最新版にするためにapt-getでアンインストールしたところ、ためらいもなしにYを押し続けたら、需要なlibなどがアンインストールされてしまった。 それ以後、Ubuntuは動作しなくなり、PCを落としたところBootが不可能になった。 回復には以下のサイトを参考にした。 Ubuntuサイト  LiveCDRecovery My PCは/dev/sda5がrootだった。

SWIG

各、プラットフォームへいこうする際、 Glue Codeを出力する SWIG を使うことにした。  Ubuntu 10.4Beta2(64bits) $sudo apt-get install swig 最新版1.3.49(64bits)がインストールされた。 Androidには Android NDK をかして使う予定。

stupid backoff

Googleが使う技術にstupid backoffがある。 計算がシンプルで大量データ向きであり、多少の誤りは許容することによって、大幅に使いかってを良くする。 考えて見れば、人間の頭もエラーを許容し、複雑なことを高速に処理しているので、自然にあったアプローチであろう。 Googleの論文 これを利用しGoogle日本語入力を作成、またMeCabの製作者でもある工藤氏のトークを先日伺うことができたが、とても興味深い内容であった。 現在、この分野は製作中のソフトウェアに応用できるのではないかと吟味している。

Pythonスクリプトを使ってリファクタリング

ご存知のようにPythonはマルチプラットフォームのソフトウェア製作者には重宝する道具、DRY思考に基づくソースの統一や、リファクタリングなどに役に立つ。 しかも、エディタのマクロと違い各プラットフォームで再利用しやすいのも貴重である。 例えば1000個以上のファイルの#include行にあるコメントを削除することなどは簡単にできてしまう。 pythonにfindやxargsを組み合わせれば実現できる。(Windowsはcygwinを利用)

邪魔なPCサポートツール

仕事のPCは、自作品を使わないことにしている。 理由はカンタンで自作品は仕事の現場では耐久性が低いためである。 ようはケースも含め総合的に冷却や消費電力を考えた設計を安い費用で作成するのは難しいためだ。 これをパーフェクトに考えると自作品のコストが跳ね上がってしまうのである。 尚、仕事用PCとは、おおまかに書くと365日平均12時間以上稼働しているぐらいの使用頻度のこと。   そこでDELLなり、HPなりのガラパゴス化(?)していないPCを買うことになるのだが、それでも仕事に邪魔になるツールがプリインストールされている。 それを本日アンストールした。 具体的には現在使用中はHPだが、ハードウェア診断ツール(pcdrcui.exe等)というもので、仕事で頻繁に使うショートカットに割り当てられているため、仕事にならなかった。

Ubuntu10.4Beta1(64bits)とandroid開発環境

Ubuntu10.4Beta1にてAndroid開発環境が動作。 Eclipse 3.5 64bits java-6-sun-1.6.0.19 ia32-libs ( apt - get install ia32 - libs) android-sdk_r05-linux_86 Dev Phone1 (Android1.6) Hard CPU i7 920/6G RAM/500GHDD/GeForce GT220 PS Ubuntu10.4はハングが多かったのだが、先週あたりから安定し始めた感触

Android Dev Phone 1 Update

しばらく使っていなかったDev Phone 1調子がわるいため、 以下の手順でリセットを行った。 ゆうずうがきかずいろいろ行った。 1 電池をはずして、5秒以上待って、またはめる。 2 家のマーク HOMEキーを押しながら電源ボタンを押す。 3 キーボードを開き Alt+I,Alt+s 4 電源を切る(電池をはずす) 5 矢印キー  BACKキーを押しながら電源ボタンを押す 6 USB接続をして、 fastboot-mac erase userdata fastboot-mac erase cache 7 ノーマル起動。 一応、これで動いた。 参考 HTC

GWT JSNI

ご存知のようにGWTにはJSNI(Java Script Native Interface)というブラウザ固有のJavaScriptを実行できる環境が存在する。 おそらくボクが使うとしたら、GWTを使っていてHTML5の機能など、実装される予定はあるだろうが、それがGWTから使えないときに利用することになると思われる。  かゆい所に手が届く的なもので、保険みたいなものである。 また別の書き方ではインラインアセンブラのような存在である。 参考(GWTは現在発展し続けているため、本も含め、古いドキュメントがそのまま使えないのが辛いw) GWT Coding Basics:Hava script Natibve Interface(JSNI) Google GWT Blog IBM レガシーなやり方を高度な GWT コントロールに導く Google Plugin for Eclipse:Woking with JSNI

GWT meets HTML5

やっとこのようなサンプルが出てきた、という感じである。  次のステップへ進むプラットホームができつつある証拠ではないか? さえ思う。 Quake2-gwt-port ゲームはともかくとして、GWTが本格的なCanvasに対応にならないかと、 待っていた(?) ボクにとって、IE9によって、本格的に進みたいプラットホームに、 なってきた。 自分のソフトウェアの2D部分を移植スタートしてもリスクが、 少ない時代へとかわりつつあるかもしれない。 コンパイル&ラン Ubuntu 10.5Beta(64bits)で、コンパイル成功し、サーバーも動作した。 クライアントはWindowsにNightly-buildのChromeによって、 ゲームが動作(僕の環境ではMAX40fpsぐらいで普通にプレイ可能)した。  ただし、サウンドが鳴らない。(これはサイトの コメント でも報告されている) そして、読んで面白いのは、作者のブログ。 From Ray From Joel

Ubuntu と Eclipse ショートカット

Eclipseでよく使うショートカット。 例えば Ctrl+Alt+Down Ubuntuで試すと動作しない。 理由はUbuntuのシステム・ショートカットのほうにフックされてしまっているためである。 システム->設定->キーボード・ショートカットを開き、 下の方にあるCtrl+Alt+Downを無効にすれば、Eclipseのほうへキーダウンイベントが、 ポストされるようになり、動作する。 WindowsやMacOS, Ubuntuを並行で使う人はできるだけ統一したキー操作をしたいのが本音。 不要と思われるショートカットは無効にしておこう。  PS 試したのはUbuntu 10.4Beta1 (64bits版)。

Ubuntu10.4Beta1 (64bits) Firefox Flushplayer

以下のサイトから利用可能である。 flush player 10 for linux 64bits.  adobe    以下のアドビのサイトからダウンロードし、解答したsoファイルを~/.mozilla/pluginsへ置く。 Firefoxを再起動すれば動作。 

Ubuntu 10.4 Beta1(64bits)にsun java 6

Ubuntu 9.10では ココ に示すようにインストールすればubuntu全体をsun java 6で動作させることができた。 しかし、まだベータ1の10.4ではこの方法でインストールできなかった。 修正:10-04-05 そのため、sunのサイトからJDKをダウンロードし、 任意のフォルダに置き、その後以下のパスを設定して、 無事に動作することを確認した。 一部のSDKはjvm 32bits対応なものがある。 そのときは64bit jvmを32bitで動作させるオプション -d32を設定するといい。 eclipse.ini内 -vm <配置したパス>/jre/bin/java   を指定するだけでOKだった。 念のため、使わないopenjdk系はアンインストールした。  .bashrcでは。。。 PATHとJAVA_HOMEを設定。 以上の設定で、Google Web ToolkitのサンプルやANTLRのプラグインが動作。    PS なお、sun javaにこだわる理由はGoogle開発キットの一部がopenjavaに未対応なため。 オフィシャルなJavaのリソース(Ubuntu10.4Beta1では動かない可能性有) https://help.ubuntu.com/community/Java https://help.ubuntu.com/community/JavaInstallation  

コンパイラコンパイラ

作成ソフトウェアでコンパイラコンパイラは、とても重要な位置を占めている。 その中で ANTLR というソフトウェアで古くからあるのだが、今だに開発が、 活発で好感が持てる。 また、Google App Engine(Python)などで使われていて、 知っている方も多いと思う。 今、 ANTLR を使いこなそうと四苦八苦しているところであるが、 このEclipseプラグインが素晴らしい出来栄えでとても気に入っている。 さらに4ヶ月ほど前から公開された JavaDude.comのVideoチュートリアル がわかりやすく、 Scott Stanchfieldに感謝している。 参考:Wikipedia ANTLR