ひでっぷの技術メモ

はてなダイアリーから移行しました

ZEN Touch2をUbuntuで認識させる

IS01やXOOMやIDEOSのように・・・・はいきませんでした。
MacOSX で Zen Touch 2 (Android2.2)を開発端末にしてみる −年越しそばと初詣は絶対に欠かせない−
を参考に~/.android/adb_usb.iniに0x041eを書き込んでadb serverを再起動したところ認識しました。
この0x041eというIDはどこを見たらわかるんだろう・・・

java.lang.InternalError:HTHEME is null

すでに長いこと動いている客先システムで表題のエラーが出ることがあると連絡を受ける。
聞いたことも見たこともないのでぐぐるさんに聞いてみると掲示板にこんなことが書いてあった

A way to reproduce:
on Windows XP, with XP style, and a java swing application launched
switch to "non-XP" style (classic) and select 2 colors for active titles bars
apply the changes
=> you get the exception


Bug ID: 6622760 java.lang.InternalError- HTHEME is null

おいらのつたない英語力によるとXPのスタイルをクラシックとXPとで切り替えると起こるよってことらしいがそんなことはしてないという。
意味不明のままほっておいたらお客さんが事故解決してくれた。

どうもエラーが出るときはPcAnyWhereでリモート接続して見ていたというのだ。
PcAnyWhereの設定でリモートクライアント側の画面に最適化っていうのがあってこの時にスタイルが変わる→エラー発生ってことらしい。
いやあ勉強になりました・・・。


Swingなんてもうやってる人いないのかもしれませんが・・・

XOOMをUbuntuで認識させる

XOOMを買いましたのでさっそくadb接続。
これまたIS01と同様に特に何もしなくても接続できました。

adb serverのsudoでの再起動が必要です。

ちなみにsudoの場合、フルパスで書かないといけないのがめんどくて仕方ありません。
ググってみましたがセキュリティ上の問題でsudoの場合はパスが効かない?
何かいい方法はないでしょうか・・・

WZR2-G300NとiPad、新型MacBookAirの相性問題

バッファロー製無線LANルーターWZR2-G300NiPad、新型MacBookAirでのやっかいな相性問題を発見しました。
その現象はWAN側には繋がるがLAN内の機器と通信ができないというもの・・・
だいたい相性問題というと無線自体につながらないとか無線につながってもWANに出れないってものがほとんどだと思うのですが、WANにはつながるがLAN内の機器と通信できないっていうのは初めて・・・。
ちなみに無線のセキュリティはWPA2パーソナル、MACアドレスでのアクセス制限もしてるのでそのへんも関係あるかもしれませんが・・・
ということで仕方なくコレガ製の無線LANルーターをブリッジモードで接続し、これを無線APとしました。
そのうちファームのアップデートとかで対応されるかもしれませんね。

TopLink EssentialsのEntityManagerFactoryで接続先が切り替わらない

O/RマッピングTopLinkを使用しています。
とある仕事で5箇所ほどのDBを順次接続していってデータ取得をしようとしています。
接続URL、ユーザー、パスワード、JDBCドライバの情報はPersistence#createEntityManagerFactoryの引数にHashMapで渡してます。
こんな感じ

HashMap dbSetting = new HashMap();
HashMap settings = new HashMap();
settings.put("toplink.jdbc.user", "user");
settings.put("toplink.jdbc.password", "pass");
settings.put("toplink.jdbc.url", DB_URL.toString());
settings.put("toplink.jdbc.driver", "jdbc:mysql://xxx.xxx.xxx.001:3306/hogehoge1");
EntityManagerFactory emf = Persistence.createEntityManagerFactory(name, dbSetting);

でデータを取得し終わったらEntityManagerFactory#closeして次の接続先に接続します。

HashMap dbSetting = new HashMap();
HashMap settings = new HashMap();
settings.put("toplink.jdbc.user", "user");
settings.put("toplink.jdbc.password", "pass");
settings.put("toplink.jdbc.url", DB_URL.toString());
settings.put("toplink.jdbc.driver", "jdbc:mysql://xxx.xxx.xxx.002:3306/hogehoge2");
EntityManagerFactory emf = Persistence.createEntityManagerFactory(name, dbSetting);

ところが接続先がxxx.xxx.xxx.001:3306/hogehoge1のままなんです・・・・。
確か数ヶ月前まではちゃんと切り替わってたと思うんだけどなあ・・・。
きちんとclose()しているのも確認したし、JPAController絡みの変数には切断後すべてnullを入れたけど改善せず。
一体何が原因か皆目検討がつきません。
そもそもこういう使い方をするのが間違っているのかなあ・・・

Ubuntu10.10でUSBシリアルケーブルのデバイス制御がおかしい?

armadillo-9を使ったシリアル通信プログラム(Javaで作成)の仕事で、
導入前の現地テストを行うためにノートPC(Ubuntu10.10)にテスト環境を作っていたところ
Ubuntu10.10のUSB-シリアルとの通信での不具合らしきものを発見しました。
Javaプログラムではシリアル通信を行うためにデバイスファイルをOpenし、InputStreamで受信、OutputStreamで送信を行っています。
これがUSB-シリアルを2本挿すとOpenはできるのだけれどInputStreamの取得で戻ってこなくなる・・・。
1本だけだと問題なさそう・・・。1本だけでもうまく行く時と行かない時がある。
試しにUbuntu10.04のデスクトップマシンで試したみたら問題なく動くのでUbuntu10.10のバグでしょう。
ってことでUbuntu日本語フォーラムを捜すとそれらしいバグがありました。
で、ここに書いてある暫定的に使えるようにする方法

sudo modprobe -r pl2303
sudo modprobe pl2303

を使うと一応使えるようになりました・・・・。
シリアルなんて使う人がほとんどいなくなってきてこういうバグを置いてかれるのかなあ・・・