BitNamiを利用してのインストール

新しいバージョンをインストールしようとしたんだけど、
色々gemのインストールが面倒で(Proxy下)一括インストールして、
MySQLsqliteに変更を検討。

なんだかインストールの最後にrake abortedだなんだと怒られたので手動対応(2000サーバ)
C:\Program Files\BitNami Redmine Stack\apps\redmine\scripts\redmineini.bat
を再度実行するんだけど、バッチファイルの中に、cdコマンドがあるんだけど、そのパス指定が不正っぽいので、
ダブルクォーテーションでくくってやります。
cd "C:\Program Files\BitNami Redmine Stack/apps/redmine"


まさか敢えてデフォルトでインストールしたのが仇になるとは・・・ですね。

slim3本書評

最近gaeというか、slim3というかから離れていましたが、
気づけばEAもとれ、本まで出ている始末。


というわけで、買って読んでみたので書評。
というか、読みながらの感想

  • ちょい誤字
  • allocateIdsの用途(というか、便利さ?どういう時に使うといいよみたいなのがあるとよかったかな)
  • allocateIdのキーを1件だけ取得したい場合よくある・・・ってどういうとき?
  • filterInMemory だとちゃんとFetch効くのかな(DSからlimit件だけとってさらにfilterしたから思ったより少ないとか無いかな?)
  • GlobalTxの導入がさらりとしすぎ。いやいやここすごい所だよ?とあせる。(後から説明あるけど)
  • DataStore特化過ぎる(ということが表紙から伝わらない・・・)はじめにの下の方に書いてあったけど読んでなかったので、あとがきまで知らなかった。
  • TaskQueueの説明が雑(というか初心者向けではなさすぎる)


ととりあえず気になったところをあげてみましたが、
個人的には久々に満足のいく技術書だったという感じです。


まったくの初心者が総合的に学ぶには向かないとおもいます。
ある程度知っている人もしくは、チュートリアルよんだけど、永続化周りが・・・って人にはいいと思います。


さらに恐れずにいうと、
Slim3本ではなく、GAEのデータストア周りの本で、ちょっとフレームワークが紹介されているといった感じです

追記

filterInMemoryを使ってしまうと、asQueryResultListで例外になるようですね。
文字列検索+ページングとかでは工夫が必要そうですね。
また、普通にlimit+asListなどの場合は、10件とってからinMemoryFilterですので、10件より小さくなる事があります。
動作を考えれば予想通りの結果といった感じでしょうか。

オープンソース徹底活用 Slim3 on Google App Engine for Java
ひが やすを 小川 信一
秀和システム
売り上げランキング: 721

RED5を利用して無料で作るベビーモニター

RED5を利用したrtmpプロトコルライブストリーミング配信を構築しましたので、そのクライアント部分をせっかくなので公開します。
数時間でさぐりさぐりFlashAirを勉強しながら作ったので怪しいところはありますけど。
何でも出来るよりは、簡単にベビーモニターとして動くというのを目指していますので、
それ以外の用途には耐ええないかと思いますが・・・


http://cid-bedc048f8064b67b.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/flash/babymonitor.zip


上記ファイルを展開し、readme.txtを参考ください。
以下概要。

RED5のインストール

http://code.google.com/p/red5/
よりRED5サーバをDLして、インストールしてください。
WindowsマシンとFedora10サーバで動作は確認しています。
サーバのインストール等は省略しますので、必要であれば調べてください。

RED5のdemoをインストール

インストールしたRED5にブラウザでアクセスし
Install a ready-made applicationより、olfaDemoをインストール

ブラウザアクセス環境

swf環境を構築

ブラウザで利用したい場合、swfを配置します。
不要の場合、飛ばしてください。
RED5インストールディレクトリ\webapps
の下に、適当にフォルダ(例 live)をつくり、その中にswfを配置します。
settings.txtは必要であれば配置してください。このファイルを一緒に置いておくと、
サーバのIPの初期値として表示します。
無い場合、localホストがデフォルトです。

使い方

ブラウザで、http://RED5サーバのIP:ポート/上で作ったフォルダ名/Red5Live.swf
にアクセスします。(例)http://192.168.1.6:5080/live/Red5Live.swf

テキストボックスに、RED5サーバのIPを入力し、
放送ボタンを押すと、配信が開始されます。(親機として動きます)

再生ボタンを押すと、受信が開始されます。(子機として動きます)
どこかの端末で放送が行われていない場合、再生は行われません。

AIR環境を構築

ブラウザではなく、アプリとして動かしたい場合、
それぞれのアプリをインストールしてご利用ください。
RED5サーバのURLを変更して、接続などを行った場合、設定ファイルが更新されます。


AIRとブラウザの混合でも動きます。

AIR GEARを使ってみてはまったこと

ライブストリーミング配信を利用したベビーモニターを作ってみようと思い立ち、
ちょっと本腰を入れてFlexに取り組んでみました。
配信にはRED5を利用すれば簡単ですね。


サーバ側はいいんですが、Flexやらなにやらについては結構困りますね。
というわけで、前々からチェックしていたAIR GEARを使ってみました。


で、一通り使ってみたところ、
AIRアプリとしてエクスポートする際に、
以下問題が発生しました。

環境

Eclipse Version: 3.4.0
AIR GEAR 1.0.4
Adobe AIR 1.5.3 SDK
flex_sdk_3.5.0.12683_mpl

AIRパッケージとしてExport出来ない その1。

application.xml: error 100: Application descriptor cannot be parsed


設定ファイルのミスだそうで・・・
どうやら、AIR GEARはプロジェクト作成時に
AIR SDK\templates\air\descriptor-template.xml
辺りを元に設定ファイルを用意してくれるようですが、その際ファイルの先頭にLFを入れてしまうようです。
この改行が原因ですので、最初の空行を削除すれば問題ありません。
standalone="no"の記述が・・・みたいなネットエントリーもありましたが、
私では効果が無かったです(むしろ編集の過程で改行を消したんじゃないかなぁと思ったり)


ちなみに、プロジェクトのデフォルト・テキスト・エンコードはMS932(コンテナから継承)です。
プラグインが吐き出してくれるファイルはUTF-8で出来るんですけどね。
この辺り関係するのかなぁとか。

設定について訂正

SDKフォルダからは引っ張ってこないようです。
Eclipseの設定 > AIR GEAR > Templates > ApplicationDescriptor
で出来るようです。チケットも上がって確認されたみたいです。そのうち修正されると思いますけど
一応ここでも直せるよということで。知ったかかましてしまいました。

AIRパッケージとしてExport出来ない その2

Could not generate timestamp


自己証明書を使って適当にやっていますが、ここでProxy環境下だと接続エラーになります。
もちろんeclipseの設定は完璧です。


これに関してはAIR SDKのadt.batに処理を委譲していますので、
eclipseの設定は効きません。


というわけで、該当のadt.batを編集して、Proxy設定を渡してやります。

@java -jar "%~dp0\..\lib\adt.jar" %*


===>

@java -Dhttps.proxyHost=ホスト -Dhttps.proxyPort=ポート -jar "%~dp0\..\lib\adt.jar" %*


これでようやくパッケージの作成が可能になりました。
みたらホストとかがわかっちゃうじゃないか!ってのが気になる人は、環境変数などをうまく使ってみてください。


JREのプロパティとして・・・

以下にJREのプロパティとして渡す・・・なんてのもありました。
が、まぁJavaがたくさん入っているような環境の人は微妙かもしれませんね。
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=1681

ユニットテストについて

GAE/Jのユニットテストについて、@shin1ogawa
さんがすばらしいドキュメントを公開されています。


404 shin1のつぶやき ないわー Not Found: AppEngine用のアプリケーションの自動テストについて(1)


かつて色々とEnvironmentをこねくり回して苦労した記憶がよみがえりますが、
やはりこうやってちゃんとテストを考慮したドキュメントってあると助かります。
シリーズ的に続くようですので今後にも期待ですね。


※まぁGAE/J自体もある意味テストに関するドキュメントとしては悪くないんですが
やはりその辺は補うドキュメントがあると助かりますね。

SmartQ5のwifi接続

接続が途切れ途切れで実機デバッグとかも困っていたんですが、
まぁ無線LANアクセスポイントも古いので、いい機会とばかりに、
新しいの買ったら接続が安定しました。
前のはcoregaのWLAP54AGです。
WPA-Personalでしたが、今回はWPA2-Personalとしました。



PLANEX MZK-WNH-BKを買ったんだが、3000円を切った値段を考えると
これだけでも悪くなかったといった感じですが、
せっかくなのでノートなどにusbの11nのアダプタでもつけようかなぁ〜と思っています。


あとは、連続運用でどんなもんかなぁ〜といったところでしょうか


以下一応AAですが。

PLANEX 150Mbps 高速無線LANルータ(簡易パッケージ) MZK-WNH-BK
プラネックス (2009-11-19)
売り上げランキング: 884
おすすめ度の平均: 4.0
4 普通に使えてます
4 接続までは簡単
5 お買い得
4 いいんじゃないでしょうか。

追記

usbのアダプタなのが悪いのか、2Fと1Fだと
本体内蔵のg接続と下りは同じくらいだし、電波強度だと負け気味なのが切ない感じではあります(−−;
ちょっと残念。

さらに追記

IP指定によるntpサーバ指定が必須です。
最近時刻がリセットされてしまい、
なぜかこいつの要求により光のルータ(PR-S300NE)が再起動を繰り返すようになってしまいました。
結局Windows7マシンにntpサーバを立てて、そこを参照させることによって回避は出来ましたが・・・


この調査結果に辿りつくまでにも随分苦労しました。
ちょっとこのあたりの仕様もどうなんですかねぇ


ちなみに一旦設定後は0.0.0.0とすると1分おきの頻繁アクセスとかやめてくれるのでいいと思います

SmartQ5を外に持ち出してみた。

SmartQ5ですが、読書端末として外に持ち出してみました。


結果としては往復二時間程度、青空文庫を読んでて、バッテリは半分程度消費。
wifiやら、bluetoothやらの設定は全てOFFにしましたが、
読書ということで常にバックライト点灯でしたのでなかなか悪くない結果といえるのではないでしょうか?


次回以降のFW更新が楽しみです。2.0ベースでこないかなぁ〜なんて期待
特に結局sdk1.5ベースでは縦表示じの描画問題があるので、これの解決さえされれば
少なくとも表示に関しては最高の読書端末なんですけどね