BitNamiを利用してのインストール
新しいバージョンをインストールしようとしたんだけど、
色々gemのインストールが面倒で(Proxy下)一括インストールして、
MySQL→sqliteに変更を検討。
なんだかインストールの最後に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件より小さくなる事があります。
動作を考えれば予想通りの結果といった感じでしょうか。
RED5を利用して無料で作るベビーモニター
RED5を利用したrtmpプロトコルのライブストリーミング配信を構築しましたので、そのクライアント部分をせっかくなので公開します。
数時間でさぐりさぐりFlashとAirを勉強しながら作ったので怪しいところはありますけど。
何でも出来るよりは、簡単にベビーモニターとして動くというのを目指していますので、
それ以外の用途には耐ええないかと思いますが・・・
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サーバで動作は確認しています。
サーバのインストール等は省略しますので、必要であれば調べてください。
ブラウザアクセス環境
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 GEARを使ってみてはまったこと
ライブストリーミング配信を利用したベビーモニターを作ってみようと思い立ち、
ちょっと本腰を入れてFlexに取り組んでみました。
配信にはRED5を利用すれば簡単ですね。
サーバ側はいいんですが、Flexやらなにやらについては結構困りますね。
というわけで、前々からチェックしていたAIR GEARを使ってみました。
で、一通り使ってみたところ、
AIRアプリとしてエクスポートする際に、
以下問題が発生しました。
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で出来るんですけどね。
この辺り関係するのかなぁとか。
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ですが。
接続までは簡単
お買い得
いいんじゃないでしょうか。
追記
usbのアダプタなのが悪いのか、2Fと1Fだと
本体内蔵のg接続と下りは同じくらいだし、電波強度だと負け気味なのが切ない感じではあります(−−;
ちょっと残念。
さらに追記
IP指定によるntpサーバ指定が必須です。
最近時刻がリセットされてしまい、
なぜかこいつの要求により光のルータ(PR-S300NE)が再起動を繰り返すようになってしまいました。
結局Windows7マシンにntpサーバを立てて、そこを参照させることによって回避は出来ましたが・・・
この調査結果に辿りつくまでにも随分苦労しました。
ちょっとこのあたりの仕様もどうなんですかねぇ
ちなみに一旦設定後は0.0.0.0とすると1分おきの頻繁アクセスとかやめてくれるのでいいと思います