2011年9月17日土曜日
狭い部屋でKinectを使えるようにするZOOM for Xbox 360
2011年9月4日日曜日
getResourceAsStream()でリソースが読み込めない
TestMain.class.getClassLoader()
.getResource("foo/bar/test.properties"));
TestMain.class
.getResource("/foo/bar/test.properties"));
TestMain.class
.getResource("test.properties"));
ここまでは、位置に依存しない方法でのリソースへのアクセスの仕様を見ればわかるのだけれど、実行時にクラスがjarファイルなどに格納されている場合、実行環境によりなぜかgetResourceAsStream()でリソースが読み込めない場合があるようだ。どうやら、内部的にファイルとしてアクセスしようとして、zip内のファイルを読み取ることが出来ずに例外が発生しているらしい。ちなみにgetResource()でURLはちゃんと戻るからファイルの存在は認識しているようなので不思議だ。
今回、Windowsで開発していたときは問題なかったのだが、LinuxのWebLogic上で実行した際に、リソースにアクセス出来ないという現象が発生していた(WebLogicはwarをデプロイすると/WEB-INF/classesがjarにまとめられる)。
結局のところ実行環境によらずにリソースにアクセスするための解決方法としては、下記のようにするのが良いようだ。
URL resource
= new URL(TestMain.class.getResource("."),
"test.properties");
InputStream in
= resource
.openConnection().getInputStream();
:
※2014/02/09 ソースコードの表示方法を変えました。
2011年3月10日木曜日
LifeTouch NOTEを使ってみる
まず、本体の色だが、購入する前は黒または赤にしようと考えていた。しかし、実物を見ると黒はツヤがありすぎて指紋が目立ちそうだし、赤はちょっとイメージしていた感じと違っていた。意外にチョコレートブラウンの色がいい感じだったのでチョコレートブラウンを選択することにした。
モバイルギアと比較するために、並べて写真を撮ってみた。横幅が少し短くなっているが大きさはほぼ同じくらいで薄くなっている。
初回起動時にネットワークの設定が必須(ウィザードに従うとネットワーク有効にならないと先に進めない)のようなので注意が必要かも。。。
起動は、30秒ちょっとと思ったより時間がかかる感じ(動画参照)。ただ、スリープからの復帰は瞬時なので普段は気にならないと思う。文字の入力する際のキータッチはモバイルギアよりちょっと浅めでちょっとちゃちな感じするが、それほど悪くはない?少なくともASUSのeeePC901よりは入力しやすいと思う。。また、モバイルギア同様に、IMEとしてATOKが入っているのがうれしい。難点をあげると、_(アンダーバー)キーの位置か、なにゆえにカーソルを挟んでしまったかな。。。。
ついでにモバイルギアのスタイラスとLifeTouch NOTEのスタイラスも比べてみた。やっぱり、スタイラスはモバイルギアのほうが大きくて使いやすいと思うが、本体の厚みがちがうので仕方が無いところか。。
ちなみに、Andoroid OSのバージョンは2.2。バージョンアップが提供されるかが気になるところ。しかし、Android Marketがインストールされているところが良い点。また、Android Marketの他に、NECのAndronaviもインストールされているので、追加でアプリケーションをインストールしたいときに困ることはなさそう。
早速ツイッターなどのアプリを入れてみた。動作は軽快だがちょっとフォントが見づらいかも。。。
まだ、触ったばかりなのでもう少し慣れてから続報をお届けしたいと思う(いつになるかは不明)
2011.09.17 更新
今更なのだが、、_(アンダーバー)キーの位置とかをカスタマイズ出来るアップデートが公開されている。「Insert」・「カタカナ」・「←」・「↑」(矢印キー)「ろ」の5つのキーで配置パターンを選べるみたい。ついでにキートップもなんとかなると更に良いのだけどね。。。
「個人向けスマートブック「LifeTouch NOTE」無償アップデートを開始 」
http://121ware.com/navigate/support/ltn/info/20110627/
2009年11月1日日曜日
WindowsでAppleのMagic Mouseを使用する
Apple からMagic Mouseが発売されました。Magic Mouseが発表されたとき、一目見たときからそのデザインのよさにほれ込んでしまい、Apple Storeで発売されるとすぐに購入してしまいました。実際に届いたマウスは右側の写真です。化粧箱もなかなかかっこいい。ちなみに右側のマウスは、携帯用のお気に入りマウスのMicrosoft Arc Mouseです。
基本的にはMagbookをもっているのでそちらで使うつもりで購入しました。しかし、Windowsでも使えないかとためしたところ、専用のドライバがないためタッチによる操作、スワイプはもちろんのことホイール操作もできませんが、Bluetooth接続で普通の2ボタンマウスとしては使用できることがわかりました。
ちょっとしたステータスとして持ち歩く分にはかっこいいマウスであることは間違いないのでWindowsでの設定方法を紹介します。
ここでの設定は、EeePC901(windowsXP SP3)との接続ですの例ですが、実績としては、WindowsXP SP2とPLANEX BT-MicroEDR2Xとも接続できたので、Bluetoothのデバイスさえあればたいていの場合接続できると思います。
Magic Mouse側の電源をONにして、マイ Bluetoothを開きます。そうするとMagic MouseがApple Wireless Mouseとして認識されます。
次に認識されたApple Wireless Mouseを選択し、コンテキストメニューから「デバイスを接続」選択します。
HID(Human Interface Device)に接続するには[はい]をクリックししてください。とたずねられるので「はい」を選択します。
デバイスの接続を選択すると接続確認をもとめられるので、表示されている時間内に「ここをクリック」をクリックして接続を完了させます。
デバイスが接続状態となると同時にセキュリティコード(PIN)の入力を求められます。ここには、「0000」と入力することで接続できます。最初ここで接続できなくてはまり結構悩みました。ちなみにWindowsXP SP2では、端末側のセキュリティコードの設定を聞かれますが、端末側は設定なしでOKでした。
以上の設定でMagic MouseをWindowsで使用することができます。ただし、先ほど述べたようにスワイプ等ができないので、残念ながら見た目を自慢することくらいしかできませんが。。。。
2009年8月13日木曜日
スリープトラッカーで快適な目覚めを[SleeptrackerPRO ELITE]
「ほぼ目覚めている状態」にアラームが鳴り、起こしてくれるという画期的な?腕時計です。睡眠には、眠りの浅い状態のレム睡眠と眠りの深い状態のノンレム睡眠の2種類の状態があります。このスリートラッカーは、眠りの浅い状態のレム睡眠の半覚醒状態に近いときに、アラームが鳴り起こしてくれるというものです。また、眠りの浅い状態を記録し、それをUSB経由で付属のWindows用のソフトウェアで管理することもできます。
まず、目覚ましの機能ですが、仕組み的には時計に加速度計が内蔵されおり、寝ている時の動きによって眠りの状態を判断しているようです。実際に使用した感覚では、私の場合は寝返りのタイミングでアラームが鳴るといった感じでした。ここら辺の判定は、個人差はあると思います。この時計のうたい文句であるすっきりとした目覚めであるかは微妙ですが、普通の目覚ましよりは、気がつきやすいのではないかと思います。
それから、アラームの鳴る時間は、アラーム時間とアラーム・ウィンドウ(分数)で時間帯として設定します。設定したアラーム時間よりアラーム・ウィンドウ(分数)前の間の眠りの浅い時にアラームが鳴ります。例えば7時にアラームを設定し、アラーム・ウィンドウを60分と設定すると6時から7時の間で眠りの浅い時にアラームが鳴ります。設定した時間帯に眠りの浅い状態がなかった場合でも、アラームの設定時間にはアラームが鳴ります。ちなみに、アラーム・ウィンドウ(分数)は、最大90分の設定が可能です。
また、スリープトラッカーPROシリーズでは、アラームの他にバイブレーションも選択することができるので、音が聞こえない状態でのアラーム機能としても使えます。例えば、音楽を聴きながら長時間電車に乗っているときに、時間を知らせてほしい場合とか。

次に、データを管理するソフトです。スリープトラッカーでは1日分の睡眠データが記録されるので、このデータを毎日USB経由で転送します。データ転送し、睡眠データを登録するとき(左図)に、自分の気分と状態(昼寝をしたとか、アルコールを摂取したとか)を登録することで、どういったことが睡眠に影響しているのかを記録していくことができます。
登録したデータは、画面(下図)で確認できます。左側のバー表示が眠りの状態で、黒丸が付いている部分が眠りの浅かった時間になります。この画面でいうと8月13日のAM2:30頃~AM4:00過ぎまでは、眠りが深かったことを示しています。また、8月11は、黒丸が多いのでかなり眠りが浅かったということになります。
そして、右側には、先ほどの画面で登録した気分と状態がアイコンで表示されます。これをもとに自分の睡眠の良い状態を維持・管理していくといったことになります。

まあまあ実用性ある時計だと思いますが、次の点は改善してほしいなと思っています。(ただ、すでに購入しているので改善されたら、改善されたでくやしいだけなのですが。。。。)
- アラームの種類・音量はバリエーションがほしい(アラームと音量は固定となっている)。
- デザインをもう少しなんとかほしい。(個人的にはあまり気にっていない)。
- USB接続でなく、無線(Bluetoothとか)にしてほしい(クリップで挟むだけなのでそれほど手間にはなっていないけど、やはり無線の方が便利)。
- 値段が高い(もうちょっと安くならないかと思う)。
2009年6月30日火曜日
ピコピコゲーム(PikoPiko Game)
左側が自分で、マウスを枠内で押し続けるとハンマーが下がります。
少し勢いがついた時に相手にヒットすると勝利となります。
枠内からマウスが出るとポーズ状態がかかります。
※Java Appletにて作成していますので、遊ぶためにはJava Runtimeのインストールが必要となります。
2009年5月30日土曜日
Java 6 Mustang のXML機能(JAXB)によるXmlDAO
まず、Java 6に付属しているSchemagenというツールにより、DAOで扱うクラスのスキーマファイルを生成します。
たとえば次のようなSampleクラスを作成します。schemaのルートノードとなるクラス(ここではSampleクラス)には
アノテーションXmlRootElementを指定します。
Sampleクラス:
|
Sampleクラスに対するスキーマを作成する場合以下のようにコマンドを実行します。
> schemagen -classpath <クラスパス> Sample.java
※なぜかMacでは動作しなかった(InvocationTargetExceptionが発生してしまう)ので、Windowsでschemagenを実行しました。
schemagenを実行するとschema1.xsdというファイルが生成されますので、これをSample.xsdという名前に変更し保存します。
今回作成したXmlDAOにより、上記のSampleクラスの保存および読み込みのロジックは記述すると次のようなコードになります。
XmlDAOのテストコード:
|
上記コードを実行した結果得られるsample.xmlは以下のようになります。
sample.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sample>
<age>10</age>
<name>tama</name>
</sample>
最後に今回作成したClassUtils、XmlDAO、のクラスを記載します。
ClassUtils:
|
XmlDAO:
|
2009年5月27日水曜日
汎用Diffライブラリ
Diff関連の資料をいろいろと調べたところ、「An O(NP) Sequence Comparison Algorithm」のアルゴリズムがよさそうだったのでこれをもとに実装しています。
実装にあたっては、可読性>メモリ使用量>性能の優先順位をおいて実装しているので性能的には改善の余地があるとは思っています。ただ、自分としてはとにかくシンプルに拡張できることが重要だったのであまり凝った作りにはしていません。
実際に使う場合は、以下の図にあるDiffSourceを実装することで様々なDiffをとることができます。標準の実装として文字列用のDiffStringSourceというクラスが用意してあるので文字列のDiffであればこちらを使用してください。
.jpg)
以下は文字列用のDiffStringSourceを使用したときの結果イメージを示しています。図のようにDiffSequenceに開始、終了インデックスが格納されDiffSequenceのリストとして結果を取得できます。
.jpg)
ソースと結果イメージは次のようになります。
サンプルソース:
|
結果:
0:共通部分
source(0,2) = ab
target(0,2) = ab
1:差異部分
source(2,4) = cd
target(2,4) = zg
2:共通部分
source(4,5) = e
target(4,5) = e
3:差異部分
source(5,7) = fg
target(5,5) =
2009年4月19日日曜日
MacBook + Intel SSD X25-M で Boot Camp
最近になってIntel SSDで使用しているIndilinxのチップの問題でNVIDIAのチップセットとのネゴシエーションがうまくいかないらしいことがわかりました。(もっとも、軟弱なJavaプログラマーにはさっぱりわからない世界ですが。。。)
そこでIntelに問い合わせしてみたところ、最新のFirmware(8820)があるので試してみてくださいとのこと。
Intel® SATA SSD Firmware Update Toolのダウロードページへ
早速ダウンロードしてFirmwareをバージョンアップしてみたところ、なんと認識するじゃないですか(やったー!!)。念のためバックアップをとってバージョンアップを行いましたが、幸いディスクの中身は無事でした。しかも性能も向上するようです。ただ、Firmwareのバージョンアップをするには別のPCで行う必要があるのでMacBookしかない人はどうするんだろう?
あと、すべての場合で問題が解決するわけではなさそうなので注意が必要です。
http://www.pcper.com/article.php?aid=691&type=expert&pid=7
早速、Boot CampでWindowsXPをいれ、CrystalDiskMarkで測定してみるとめっちゃ満足な結果となりました。

調子にのって、さらに、Boot CampのパーティションをVMWare Fusionで仮想化してCrystalDiskMarkで測定してみると、なぜか読み取り速度が異常に遅くがっかりな結果に。。。この結果遅すぎない?何かチューニングできないのだろうか?

しかしながら、体感速度的には快適なので問題なし。
これでMacBookさえあればなんでもできる環境になったので、本題のプログラム等の掲載も開始しなければ。。
【2009/11/5 更新】
私が購入した当時(上記内容)は50nm版だったけど、今は34nm版になっている。また、先日SSD(Solid-State Drive)用の管理・最適化ツール「Intel Solid-State Drive Toolbox (v1.1)」とファームウエア・アップデート「Intel SATA SSD Firmware Update Tool (v1.4)」の提供が開始されたようです。ただし、34nm版用の高速化が期待されるtrimコマンドに不具合があったらしく、ファームウェアは提供を中断しているようです。
それから、VMWare Fusionからのアクセスは、Snow LepardにしてもVMWare Fusion3にアップデートしてもほとんど変わらなかった。どうにかならないかな?
【2009/12/5 更新】
ファームウェアの提供が11/30よりされているようです。
ただ、50nmに関しては、変更がないようですね。
2009年1月22日木曜日
ピータッチ2430PC
お手軽さと価格的になかなかのものだと思います。ちょっと前に自分のポストにラベルを付けたのですが、そのときはシールに印刷して作りましたが、出来栄えはいまいちでした。
そのとき、これがあれば迷わず買っていたと思います。。。
2009年1月21日水曜日
SSD[Mtron SSD MOBI 3000]
現在Eee PC 901-Xを所有していますが、最近になってEee PC S101、Sony Type-Pなど魅力的な製品が出てきてもう少し待てばよかったと少し後悔しています。
ただ、後悔ばかりしてもしょうがないのでなんとか今使用しているEee PCをパワーアップさせるべく、いろいろとネットを検索してMtronから出ているSSD MOBI 3000[MSD-PATA3018032-ZIF2]を見つけました。
このSSDはZIFで接続するのですが、ZIFのインタフェースが初期のEee PC 901-Xにしかないらしく、最近のモデルだと自分でZIFのインタフェースを半田付けするしかないようです。半田付けはちょっと。。。でもSSDをつけたいという場合は南烏山という製品があるようです。
いづれにしろ保証外となってしまうのがつらいところですが。。。また、SSDを取り付ける場合、既存のDドライブのSSDは取り外し、CドライブはDドライブとして使用することになります。
あとMOBI 3000にはケーブルが含まれていないので、私の場合は、別途CF (コンパクトフラッシュ) 1.8ZIF変換カードなどを購入してその中の付属品を使用しました。
実際の分解・接続にあっては、こちらなどを参考にしています。取り付けが完了すると上の写真のようになり、BIOSではSecondary Masterとして認識されます。あとは付属のCD-ROMからシステムを普及させれば換装が完了します。
これでEee PCももうしばらく活躍させることができそうです。
2009年1月16日金曜日
モバイル無線ルータ[CMR-350]
先日coviaのCMR-350を購入しました。CMR-350は、e-mobileとの組み合わせて使用することによりどこでもアクセスポイントになるルータです。
インタフェースとしてLAN専用ポート、LAN/WAN兼用ポートとUSBが2ポートあります。実際にUSBポートにD11LCを接続してみると左のような感じになります。
写真のようにe-mobileを直接接続でき、ルータ自身がダイアルアップしてくれる点が強みだと思います。
iPod Touch、PSPなどWiFi機能を持った機器をインターネットで接続したいけど近くにホットスポットがないような場合でもこれさえあればどこでもインターネットに接続できます。(コンセントは必要ですが。。)
そのほか次のような機能があり、インターネット上に簡単なサーバーを立ち上げることができます。
・Webカメラサーバー
・ファイルサーバー
・FTPサーバー
・プリンタサーバー
しかもDynamicDNS(DynDNS)にも対応しているので外部からの接続も容易にできます。
製品のページ
・http://www.covia.net/main/index.html
