GoogleAppEngine(GAE)でDeployに失敗すると,
その後Deployができなくなって,
「rollbackしろ」
と怒られることがある.
そんなときの対処法.
プロンプトで自分のアプリケーションディレクトリを開いて,
> eclipseのディレクトリ/plugins/com.google.appengine.eclipse.sdkbundle_xxxxx/appengine-java-sdk-x.x.x/bin/appcfg.cmd rollback ./war
とすればOkらしい.
2010年6月23日水曜日
2010年6月22日火曜日
GoogleAppEngineでStruts
なんか論文投稿用ページを作れという話になってきたので,
再びGAEにStrutsを入れるところから作業が始まります.
まずはstrutsのダウンロード
http://struts.apache.org/download.cgi#struts1310
から,
struts-1.3.10-apps.zip
をダウンロード.
その後は
http://googleappengine.seesaa.net/article/117110106.html
を参考に,ライブラリなどをプロジェクトに追加する.
とりあえず,アップローダを作成しないとなあ.
再びGAEにStrutsを入れるところから作業が始まります.
まずはstrutsのダウンロード
http://struts.apache.org/download.cgi#struts1310
から,
struts-1.3.10-apps.zip
をダウンロード.
その後は
http://googleappengine.seesaa.net/article/117110106.html
を参考に,ライブラリなどをプロジェクトに追加する.
とりあえず,アップローダを作成しないとなあ.
2010年6月21日月曜日
Robocup Rescue Simulationを動かす2
「Robocup Rescue Simulationを動かす」で動かしたMAPはちょっと大きすぎて
最初の取っ掛かりとしては難しいので,まずは簡単なMAPから実行してみる.
mapの変更
rescue-nightly\boot\config\gis.cfg
の中にMAPが書いてあるので, それを変更.
たとえば,
とすると,Mapがlegacy/Kobeからtestに変更できる.
これで実行すれば,各種エージェントが1種類ずつしかいない
小さいMAPを試してみることが可能.
エージェントの数の制御
ついでに,エージェント数などを変更する場所もメモしておこう.
rescue-nightly\maps\gml\
にマップデータがあるので,
scenario.xml
を書き換える.
エージェントの作り方
さて,ここまできていよいよエージェントの作成.
基本となるAbstractClassは,
rescuecore2.standard.components.StandardAgent
これを継承して,
などというAbstractAgentクラスを作成すると良い.
さらに,それを継承して,AmbulanceTeam,PoliceForce,FireBrigaterを作成する.
たとえば,PoliceForceを作成するなら,
とする.
とりあえず,ざっくりとしたMyPoliceForceAgentを作成してみる.
自分のエージェントで動かす
せっかく作ったら動かしたいというのが人間のサガ.
動かす方法も考えよう.
sample.LaunchSampleAgentsを自分の開発パッケージにコピーしておく.
で,作成したエージェントとSampleAgentを入れ替える.
たとえば,SamplePoliceForceAgentを今作成したMyPoliceForceAgentに変更するなら,
コピーしたLaunchSampleAgentsの100行目付近を
と変更する.
で,実行してみると・・・
無事PoliceForceが何もしないチームが完成.
ますます役立たず.
最初の取っ掛かりとしては難しいので,まずは簡単なMAPから実行してみる.
mapの変更
rescue-nightly\boot\config\gis.cfg
の中にMAPが書いてあるので, それを変更.
たとえば,
# The map directory to read # gis.map.dir : ../maps/gml/legacy/Kobe gis.map.dir : ../maps/gml/test
とすると,Mapがlegacy/Kobeからtestに変更できる.
これで実行すれば,各種エージェントが1種類ずつしかいない
小さいMAPを試してみることが可能.
エージェントの数の制御
ついでに,エージェント数などを変更する場所もメモしておこう.
rescue-nightly\maps\gml\
にマップデータがあるので,
scenario.xml
を書き換える.
エージェントの作り方
さて,ここまできていよいよエージェントの作成.
基本となるAbstractClassは,
rescuecore2.standard.components.StandardAgent
これを継承して,
import rescuecore2.standard.components.StandardAgent; import rescuecore2.standard.entities.StandardEntity; abstract public class AbstractAgent<E extends StandardEntity> extends StandardAgent<E> { }
などというAbstractAgentクラスを作成すると良い.
さらに,それを継承して,AmbulanceTeam,PoliceForce,FireBrigaterを作成する.
たとえば,PoliceForceを作成するなら,
public class MyPoliceForceAgent extends AbstractAgent<PoliceForce>
とする.
とりあえず,ざっくりとしたMyPoliceForceAgentを作成してみる.
package jp.ac.nagoyau.is.ss.kishii.tori.rescue.test.agent; import java.util.Collection; import java.util.EnumSet; import rescuecore2.messages.Command; import rescuecore2.standard.entities.PoliceForce; import rescuecore2.standard.entities.StandardEntityURN; import rescuecore2.worldmodel.ChangeSet; public class MyPoliceForceAgent extends AbstractAgent<PoliceForce> { /** * つなげるために呼ばれる.<br> * これが呼ばれると全体のMAPなどが読み込めるようになる */ @Override protected void postConnect() { super.postConnect(); //何か初期化処理 } /** * なんだかよくわからないけど,書いておく. * たぶんサーバ側で利用する */ @Override protected EnumSet<StandardEntityURN> getRequestedEntityURNsEnum() { return EnumSet.of(StandardEntityURN.POLICE_FORCE); } /** * 1ステップごとに呼び出される. */ @Override protected void think(int time, ChangeSet changeSet, Collection<Command> commands) { //面倒なので何もしません } }
自分のエージェントで動かす
せっかく作ったら動かしたいというのが人間のサガ.
動かす方法も考えよう.
sample.LaunchSampleAgentsを自分の開発パッケージにコピーしておく.
で,作成したエージェントとSampleAgentを入れ替える.
たとえば,SamplePoliceForceAgentを今作成したMyPoliceForceAgentに変更するなら,
コピーしたLaunchSampleAgentsの100行目付近を
Logger.info("Connecting police force " + (i++) + "...");
//launcher.connect(new SamplePoliceForce());
launcher.connect(new SamplePoliceForce());
Logger.info("success");
と変更する.
で,実行してみると・・・
無事PoliceForceが何もしないチームが完成.
ますます役立たず.
2010年6月19日土曜日
Robocup Rescue Simulationを動かす
ロボカップレスキューシミュレーションを研究にしている割には
新サーバは一度も自分で動かしたことがなかったので動かしてみる.
ダウンロード&インストール
http://roborescue.sourceforge.net/
からnightly build⇒rescue-nightly-src.tgzをダウンロード
適当なところで展開する.
プロジェクト作成
Eclipse上で適当なプロジェクトを作成.
rescueなどという名前にしておけばいいと思う.
nightlyとは別のところにすべし.
そこに,
rescue-nightly/jars
と
rescue-nightly/lib
をコピーする.
ちなみに中身は,
・jars以下:ロボカップのjars
・lib以下:各種ライブラリ
である.
それぞれのディレクトリに入っているすべてのjarファイルをビルドパスに追加.
さらに,
rescue-nightly/modules/sample/src/以下をコピー
antをインストール
ANTをインストールする.
http://www.javadrive.jp/ant/install/index.html
この辺が参考になる.
いよいよ実行
nightly直下でプロンプトを立ち上げ,
> ant start-kernel
出てきたWindowでMaximumにチェックがついているものを
Civilian以外はすべて外す.
OKボタンをクリック.
⇒KernelGUIとViewerが立ち上がる.
eclipseで
sample/LaunghSampleAgent
を実行する.
KernelGUIで,
Component manager
にメッセージがないことを確認できれば,すべてつながったことが確認できる.
RUN!
で,とりあえずSampleは動くことを確認,.
街が真っ黒けになりました.
新サーバは一度も自分で動かしたことがなかったので動かしてみる.
ダウンロード&インストール
http://roborescue.sourceforge.net/
からnightly build⇒rescue-nightly-src.tgzをダウンロード
適当なところで展開する.
プロジェクト作成
Eclipse上で適当なプロジェクトを作成.
rescueなどという名前にしておけばいいと思う.
nightlyとは別のところにすべし.
そこに,
rescue-nightly/jars
と
rescue-nightly/lib
をコピーする.
ちなみに中身は,
・jars以下:ロボカップのjars
・lib以下:各種ライブラリ
である.
それぞれのディレクトリに入っているすべてのjarファイルをビルドパスに追加.
さらに,
rescue-nightly/modules/sample/src/以下をコピー
antをインストール
ANTをインストールする.
http://www.javadrive.jp/ant/install/index.html
この辺が参考になる.
いよいよ実行
nightly直下でプロンプトを立ち上げ,
> ant start-kernel
出てきたWindowでMaximumにチェックがついているものを
Civilian以外はすべて外す.
OKボタンをクリック.
⇒KernelGUIとViewerが立ち上がる.
eclipseで
sample/LaunghSampleAgent
を実行する.
KernelGUIで,
Component manager
にメッセージがないことを確認できれば,すべてつながったことが確認できる.
RUN!
で,とりあえずSampleは動くことを確認,.
街が真っ黒けになりました.
2010年6月16日水曜日
新しいノートPC
新しいノートPCを買ったので、早速インストールがてら遊んでみている。
Let'sNoteのSシリーズで、
Core-i7 2.67GHz
メモリ 8G
SSD 256G
と、とりあえず現状ではかなりがんばっている。
欠点は、若干画面が狭いことか。1280x800だから。
まあ、慣れるでしょう。
で、さっそくいろいろソフトをインストール中。
・Symantec Endpoint Protection
・FireFox
・Eclipse
・Lingoes
・Java
・Lhaca+
・ALZip
・Firefoxのタブが開く位置を変更する。http://www.lifehacker.jp/2010/02/100204firefoxtab.html
・PreadesEclipse日本語化
eclipse.iniを書き換える必要があるので要注意。http://www.db.is.kyushu-u.ac.jp/rinkou/javaintro/eclipse.html
・subclipse
Eclipseのヘルプ⇒なんとかかんとかを選んで、
http://subclipse.tigris.org/update_1.6.x
を追加。
いくつか見つからないパッケージがあるので、チェックをはずしてインストール。
で、いざインポートしようとすると
> svn: Can't create tunnel
とかいわれる。
解決策は、こちら。
http://www.woodwardweb.com/java/000155.html
なんか面倒なことになっているなあ。
とにかく、無事できた。
とりあえず,こんなところで一段落.
疲れる.
Let'sNoteのSシリーズで、
Core-i7 2.67GHz
メモリ 8G
SSD 256G
と、とりあえず現状ではかなりがんばっている。
欠点は、若干画面が狭いことか。1280x800だから。
まあ、慣れるでしょう。
で、さっそくいろいろソフトをインストール中。
・Symantec Endpoint Protection
・FireFox
・Eclipse
・Lingoes
・Java
・Lhaca+
・ALZip
・Firefoxのタブが開く位置を変更する。http://www.lifehacker.jp/2010/02/100204firefoxtab.html
・PreadesEclipse日本語化
eclipse.iniを書き換える必要があるので要注意。http://www.db.is.kyushu-u.ac.jp/rinkou/javaintro/eclipse.html
・subclipse
Eclipseのヘルプ⇒なんとかかんとかを選んで、
http://subclipse.tigris.org/update_1.6.x
を追加。
いくつか見つからないパッケージがあるので、チェックをはずしてインストール。
で、いざインポートしようとすると
> svn: Can't create tunnel
とかいわれる。
解決策は、こちら。
http://www.woodwardweb.com/java/000155.html
なんか面倒なことになっているなあ。
とにかく、無事できた。
とりあえず,こんなところで一段落.
疲れる.
2010年6月2日水曜日
アクティブ遷移図Wiki
アクティブ遷移図に関して情報をWikiにまとめました.
興味がある方は是非読んで利用してみてください.
http://www.kishii.ss.is.nagoya-u.ac.jp/project/openpne/at/
きっとOpenPNEの運営に大いに役立つことと思います.
興味がある方は是非読んで利用してみてください.
http://www.kishii.ss.is.nagoya-u.ac.jp/project/openpne/at/
きっとOpenPNEの運営に大いに役立つことと思います.