<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>tdtshのブログ&#187; slim3</title>
	<atom:link href="http://www.tdtsh.com/blog/archives/category/google-app-engine/slim3/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tdtsh.com/blog</link>
	<description>ソーシャルメディアとか スレートとか Google App Engine とかの事の備忘録</description>
	<lastBuildDate>Tue, 07 Feb 2012 05:03:26 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/category/google-app-engine/slim3/feed" />
		<item>
		<title>備忘録 scenic3 のPageクラスのアノテーション達</title>
		<link>http://www.tdtsh.com/blog/archives/1548</link>
		<comments>http://www.tdtsh.com/blog/archives/1548#comments</comments>
		<pubDate>Fri, 02 Dec 2011 13:00:43 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1548</guid>
		<description><![CDATA[appengine java + slim3 の開発では、scenic3にお世話になっています。]]></description>
			<content:encoded><![CDATA[<p>appengine java + slim3 の開発では、<a href="http://code.google.com/p/scenic3/" target="_blank">scenic3</a>にお世話になっています。</p>
<blockquote><p>
scenic3は t2 frameworkのようなPageクラスをslim3で実現するslim3の拡張ライブラリです。</p>
<p><a href="https://sites.google.com/site/aboutscenic3/home" target="_blank">scenic3</a>
</p></blockquote>
<p>ページ作るの便利なんで。</p>
<p>そのPageクラスを作るときにアノテーションとか忘れそうになるんでメモしておきます。</p>
<p>@Page リクエストパスの1個目？を指定する<br />
@ActionPath = リクエストパスの2個目以降を指定する</p>
<p>手が覚えるまで迷うのがこれら。</p>
<p>@Var = リクエストパスの中に引数を指定した場合に書く</p>
<p>	私にとってコレが簡単に出来る事がscenic3を使う理由のひとつ。</p>
<p>@RequestParam = リクエストパラメータ（GET引数）を引数にする場合に書く</p>
<p>	勿論メソッド内で request.getParameter(&#8220;xxx&#8221;) とも書けるけど、明示的にメソッドの引数にも出来るってこと。</p>
<p>自然語でメモするとなんかややこしい・・・。</p>
<p>簡単なPageクラスはこんな感じになる。</p>
<pre>
@Page("/path")
public class PathPage extends ScenicPage
{

	@ActionPath("to/{id}")
	public Navigation list_json(
			@Var("id") String id
			, @RequestParam("limit") Integer limit
			, @RequestParam("offset") Integer offset
	)
	{
		// POSTの場合はコッチ
		String hoge = (String) request.getAttribute("hoge");

		....
		return forward("/path/to/page.vm");
	}

}
</pre>
<p>AppUrl.java への追加も忘れずに。</p>
<pre>
public AppUrls()
{
	excludes("/_ah/*");
	excludes("/remote_api");
	add(PathPageMatcher.get());
}
</pre>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1548" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1548/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1548" />
	</item>
		<item>
		<title>遅ればせながらGAE/J で TaskQueue を試す</title>
		<link>http://www.tdtsh.com/blog/archives/1523</link>
		<comments>http://www.tdtsh.com/blog/archives/1523#comments</comments>
		<pubDate>Mon, 28 Nov 2011 21:30:00 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1523</guid>
		<description><![CDATA[遅ればせながらGAE/J で TaskQueue を試す]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />
google appengine / javaの話ですけど。</p>
<p>バッチとかなら<a href="http://code.google.com/intl/ja/appengine/docs/java/config/cron.html">cron</a> で何とかなるもんだからいままで曖昧にしてきた訳ですが、そろそろ <a href="http://code.google.com/intl/ja/appengine/docs/java/taskqueue/" target="_blank">TaskQueue</a> を弄っていこうと思います。</p>
<h4>知らんかった事その1</h4>
<p>タスクとははURLを持ったただのサーブレット</p>
<p>使い方というか、Queueの登録の仕方はコチラは大いに参考にさせて頂いています。これ以上説明することがありません。<br />
<a href="http://www.synaesthesia.jp/googleAppEngine/taskQueue2.php" target="_blank">Task Queueの最新情報！【設定ファイル例付き】</a></p>
<h4>知らんかった事その2</h4>
<p>TaskQueue用のサーブレットってSlim3のControllerでもいけるし、素のServletでもいけるけど、戻り値はnullじゃないと延々とリトライされる。<br />
（Exceptionをthrowしてもリトライされる。逆に言うとExceptionをcatchしてしまうとリトライされない）</p>
<p>それもあるから、Datastoreに書いたりするならべき等に実装しなきゃいかん。</p>
<h4>知らんかった事その3</h4>
<p>リトライに関してはqueue.xml でかなり細かく設定できる。</p>
<p><a href="http://elekmole.blogspot.com/2011/02/java-task-queue-configuration.html" target="_blank">今は昔のkonjak翻訳 φ(・ω・? )…: Java Task Queue Configuration</a></p>
<p>色々出来そうですね。<br />
がんばってみます。</p>
<p>個人的には<a href="http://code.google.com/intl/ja/appengine/docs/java/javadoc/com/google/appengine/api/labs/taskqueue/TaskOptions.html#countdownMillis(long)"> .countDownMills(long)</a> が便利だと思う。</p>
<p>5秒後に実行ならcountDownMills(5000L)。</p>
<p>Taskは（ある程度）細かいほどパフォーマンスいいみたい。<br />
例えばどうしてもループの中にDatastore操作が入っちゃうみたいな場合は、TaskQueueの出番かな。</p>
<p>私が知らないだけかもしれませんがちょっと残念なのは、TaskのChainが作れない事です。<br />
Aタスクを実行後Bタスクとかする場合は、Aタスクの中でBタスクを呼び出す様にネストせな仕方ないか。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=tdtsh-22&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=4797357606" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>Twitterボットでも作ってみようかな。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1523" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1523/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1523" />
	</item>
		<item>
		<title>slim3.GlobalTransaction と slim3.Lock がいっぱい</title>
		<link>http://www.tdtsh.com/blog/archives/1476</link>
		<comments>http://www.tdtsh.com/blog/archives/1476#comments</comments>
		<pubDate>Tue, 15 Nov 2011 01:34:22 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1476</guid>
		<description><![CDATA[appengineのDatastoreにいつのまにか

slim3.GlobalTransaction
と
slim3.Lock

というEntityが出来ていました。]]></description>
			<content:encoded><![CDATA[<p>appengineのDatastoreにいつのまにか</p>
<p>slim3.GlobalTransaction<br />
と<br />
slim3.Lock</p>
<p>というEntityが出来ていました。とくにslim3.Lockがいっぱい。</p>
<p>Slim3のGlobalTransactionが失敗した形跡があるんで、その残骸なんでしょうか。<br />
暫くしたら消そう。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1476" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1476/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1476" />
	</item>
		<item>
		<title>appengine 1.5.5 の Cross-Group Transactions は Entity Group が 5つまでしか扱えない</title>
		<link>http://www.tdtsh.com/blog/archives/1448</link>
		<comments>http://www.tdtsh.com/blog/archives/1448#comments</comments>
		<pubDate>Wed, 09 Nov 2011 05:01:28 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1448</guid>
		<description><![CDATA[先日 slim3 1.0.14 とグローバルトランザクションについて書きました。 その続編です。 slim3 の Datastore.beginGlobalTransaction() とか deprecated になって [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/blog/archives/1430">先日 slim3 1.0.14 とグローバルトランザクションについて書きました。</a><br />
その続編です。</p>
<p>slim3 の Datastore.beginGlobalTransaction() とか deprecated になってます。<br />
やはりフツーのDatastore.beginTransaction() を使えと言う事ですね。</p>
<p>で、Cross-Group Transactions なんですけど、やはり今のところ 5 entity groups までしか対応していないようです。</p>
<p>確かに複数Entityでも、今までの様に「can’t operate on multiple entity groups in a single transaction.」とか怒られる事が無くなったんですが、いっぱいEntityをぶっこむ（Entity Group が5つ以上）と、「java.lang.IllegalArgumentException: operating on too many entity groups in a single transaction.」とか怒られてしまいます。</p>
<p>沢山のEntity Group を含むトランザクションを扱うシチュエーションでは引き続き slim3 の GlobalTransaction を使う事になりますね。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1448" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1448/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1448" />
	</item>
		<item>
		<title>Slim3 1.0.14 とCross-Group Transactions</title>
		<link>http://www.tdtsh.com/blog/archives/1430</link>
		<comments>http://www.tdtsh.com/blog/archives/1430#comments</comments>
		<pubDate>Wed, 02 Nov 2011 10:53:24 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[slim3]]></category>
		<category><![CDATA[開発環境]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1430</guid>
		<description><![CDATA[Slim3が1.0.14になってる訳ですが、手もとのeclipseを確認したら、slim3-1.0.12.jarじゃないですか。 Slim3 Eclipse Pluginで横着してたんで、気がつきませんでした。 ソフトウ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://sites.google.com/site/slim3appengine/release-notes" target="_blank">Slim3が1.0.14に</a>なってる訳ですが、手もとのeclipseを確認したら、slim3-1.0.12.jarじゃないですか。</p>
<p><a href="https://sites.google.com/site/slim3documentja/documents/eclipse-plugin" target="_blank">Slim3 Eclipse Plugin</a>で横着してたんで、気がつきませんでした。</p>
<p>ソフトウェアの更新で出現しないんですけど、勝手にjarを入替えちゃってもいいんですかね。</p>
<p>というかPluginで入れても、<a href="https://sites.google.com/site/slim3documentja/documents/how-to-upgrade" target="_blank">更新は手作業</a>なのかな。 （後日ちゃんとslim3pluginのアップデートが配信されました (2011/11/09 追記)）</p>
<p>やってみた。いけた。</p>
<p>Slim3 1.0.14から、appengine SDK 1.5.5のリリースを受けて、グローバルトランザクション周りが変わっているようです。</p>
<p>Datastore.beginGlobalTransaction() じゃなく、フツーのDatastore.beginTransaction() で、<a href="http://code.google.com/intl/en/appengine/docs/java/datastore/overview.html#Cross_Group_Transactions" target="_blank">Cross-Group Transactions</a>に対応しているとか。</p>
<p>5 entity groupsまでなら、複数Entity Groupをぶっこんでも、問題なく更新とかできる様になっている筈。</p>
<p>今までは複数のEntity Groupをトランザクションに含めると「IllegalArgumentException：can&#8217;t operate on multiple entity groups in a single transaction.」とか怒られたんですが、今回からは 5 Entity Group 以上を含んだ場合出るのかな。</p>
<p>また今度ちゃんと試します。</p>
<p><a href="/blog/archives/1448">試しました (2011/11/09 追記)</a></p>
<p>・・・おそらく<a href="http://d.hatena.ne.jp/higayasuo/20100210/1265781747" target="_blank"> GTXの実装には苦労された事と思う</a>んですが、ひがさんの心中や如何に。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1430" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1430/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1430" />
	</item>
		<item>
		<title>GAE/J slim3 (とscenic3) で .html を静的ファイルじゃなくてリソースとして扱う</title>
		<link>http://www.tdtsh.com/blog/archives/1333</link>
		<comments>http://www.tdtsh.com/blog/archives/1333#comments</comments>
		<pubDate>Wed, 10 Aug 2011 10:30:43 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1333</guid>
		<description><![CDATA[&#160; 最近わたしは appengineといえば slim3 (とscenic3) がデフォルトになってます。 とある事情で、 appengine (for java)パスが/hogehoge/ではじまる場合だけ、 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />
最近わたしは appengineといえば slim3 (とscenic3) がデフォルトになってます。</p>
<p>とある事情で、</p>
<p>appengine (for java)パスが/hogehoge/ではじまる場合だけ、拡張子が.htmlなURLをstatic fileでなくresourceとして扱いたい、という事がありました。</p>
<p>appengine-web.xmlを</p>
<pre>
&lt;static-files&gt;
    &lt;include path="**.html" /&gt;
    &lt;exclude path="/hogehoge/**.html" /&gt;
&lt;/static-files&gt;
</pre>
<p>
&nbsp;<br />
<br />
こんな風に書いてみましたがうまくいきません。</p>
<p>slim3 を使っている場合、これではダメの様です。</p>
<pre>
Slim3では拡張子付きのURLは動的リクエストとして扱いません。
したがって、AppRouterでisStaticをオーバーライドする必要があります。

public class AppRouter extends RouterImpl {
    @Override
    public boolean isStatic(String path) throws NullPointerException {
        return false;
    }
}

ここでは全てのリクエストをstaticとして扱っています。
Scenic3の設定でまとめて静的ファイルのパスを設定する、もしくはAppRouterで適切に静的ファイルを判定してください。
順序としては、先にAppRouterのisStaticで判定され、その後にScenic3のAppUrlsで判定されます。

<a href="http://d.hatena.ne.jp/shuji_w6e/20110213/1297608920" target="_blank">Slim3 に Scenic3 と PirkaEngineを使う方法 - やさしいデスマーチ</a>
</pre>
<p>参考サイトの例では全てのリクエストをstaticとして扱っています。</p>
<p>/hogehoge/はリソース固定、それ以外はよきに計らうと言う意味で、こんな感じですかね。</p>
<pre>
public class AppRouter extends RouterImpl {
    @Override
    public boolean isStatic(String path) throws NullPointerException {
        if (path == null) {
            throw new NullPointerException("The path parameter is null.");
        }
        if (path.startsWith("/hogehoge/")) {
            return false;
        } else {
            return super.isStatic(path);
        }
    }
}
</pre>
<p>
&nbsp;<br />
<br />
これで想定どおりになりました。</p>
<p>
&nbsp;<br />
</p>
<hr />
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1333" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1333/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1333" />
	</item>
		<item>
		<title>eclipse で slim3 のbuild.xmlを開いてもアウトラインに何もでない</title>
		<link>http://www.tdtsh.com/blog/archives/1285</link>
		<comments>http://www.tdtsh.com/blog/archives/1285#comments</comments>
		<pubDate>Tue, 24 May 2011 10:05:47 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[slim3]]></category>
		<category><![CDATA[開発環境]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1285</guid>
		<description><![CDATA[eclipse で slim3 の開発をやるとき、build.xmlを開いて「アウトラインビュー」でコントローラとかモデルとか作れて便利ですよね。 私は手で作っちゃう事も結構ありますけど、大量に書くときはやはりeclip [...]]]></description>
			<content:encoded><![CDATA[<p>eclipse で slim3 の開発をやるとき、build.xmlを開いて「アウトラインビュー」でコントローラとかモデルとか作れて便利ですよね。</p>
<p>私は手で作っちゃう事も結構ありますけど、大量に書くときはやはりeclipseです。</p>
<p>で、久しぶりにやろうと思ったら、なんかOutlineが真っ白です。<br />
eclipse(Gallileo)の調子が悪いのかな。そういえばAndroidのプラグインとか入れてエミュレータを動かしたとき、エミュレータを終了できなくなっちゃったり、最近怪しいです。<br />
日本語化とかするんじゃなかった。<br />
とか思いながら、この際だからとHeliosに入れなおしました。<br />
今回は日本語化もせず、プラグインとかも最低限にしました。</p>
<p>で、slim3のブランクプロジェクトを作って、build.xmlを開いたんですが、やっぱりアウトラインは真っ白です。</p>
<p>原因は全然別にあって、[Preferences] &#8211; [General] &#8211; [Editors] &#8211; [File Associations]で、*.xmlがJavaエディタとかに関連づけられてたからでした。<br />
Ant Editorをデフォルトにすると治りました。</p>
<p>冷静に考えれば判ったはずですが、最初はググっても情報なくて焦りました。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1285" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1285/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1285" />
	</item>
		<item>
		<title>eclipse の Google App Engine プロジェクトを実行した時リモートから見たい</title>
		<link>http://www.tdtsh.com/blog/archives/1157</link>
		<comments>http://www.tdtsh.com/blog/archives/1157#comments</comments>
		<pubDate>Thu, 03 Mar 2011 05:06:40 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1157</guid>
		<description><![CDATA[良く忘れるので、メモ。 eclipseを起動 プロジェクトを右クリック [実行(R)] &#8211; [実行の構成(N)] をクリック 実行構成の左ペインより[Web アプリケーション] &#8211; [プロジェクト [...]]]></description>
			<content:encoded><![CDATA[<p>良く忘れるので、メモ。</p>
<ol>
<li>
eclipseを起動
</li>
<li>
プロジェクトを右クリック
</li>
<li>
[実行(R)] &#8211; [実行の構成(N)] をクリック
</li>
<li>
実行構成の左ペインより[Web アプリケーション] &#8211; [プロジェクト名]をクリック
</li>
<li>
[(x)=引数]タブをクリック
</li>
<li>
- [プログラムの引数]に[--address=0.0.0.0 ]を追記する
</li>
<ul>
<li>	BEFORE<br />
		&#8211;port=8888 C:\path\to\workspace\yourproject\war
</li>
<li>	AFTER<br />
		&#8211;port=8888 &#8211;address=0.0.0.0 C:\path\to\\workspace\yourproject\war
</li>
</ul>
</ol>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1157" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1157/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1157" />
	</item>
		<item>
		<title>slim3のバージョンアップをする (1.0.7から1.0.8に更新)</title>
		<link>http://www.tdtsh.com/blog/archives/1154</link>
		<comments>http://www.tdtsh.com/blog/archives/1154#comments</comments>
		<pubDate>Wed, 02 Mar 2011 11:04:00 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[slim3]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1154</guid>
		<description><![CDATA[この手順は私が行ったことの記録として書いたものですので、誤りを含んでいる可能性があります。 実際の手順は、Slim3 日本語サイト(非公式)などを良く確認して行ってください。 ダウンロード slim3プロジェクト から、 [...]]]></description>
			<content:encoded><![CDATA[<p>この手順は私が行ったことの記録として書いたものですので、誤りを含んでいる可能性があります。</p>
<p>実際の手順は、<a href="http://sites.google.com/site/slim3documentja/documents/how-to-upgrade" target="_blank">Slim3 日本語サイト(非公式)</a>などを良く確認して行ってください。</p>
<h4>ダウンロード</h4>
<p><a href="http://code.google.com/p/slim3/downloads/list" target="_blank">slim3プロジェクト</a> から、slim3の最新版( 2011年3月2日現在 slim3-blank-1.0.8.zip ) をダウンロードして解凍する。</p>
<p>&nbsp;<br />
&nbsp;</p>
<hr />
<h4>jarファイルを置換</h4>
<p><b>slim3を置換</b><br />
下記のファイルをを削除し</p>
<pre>
	yourproject/war/WEB-INF/lib/slim3-1.0.7.jar
</pre>
<p>解凍したslim3のものをプロジェクト内のディレクトリにペーストする</p>
<pre>
	yourproject/war/WEB-INF/lib/slim3-1.0.8.jar
</pre>
<p>&nbsp;<br />
&nbsp;</p>
<p><b>slim3-genを置換</b><br />
下記のファイルをを削除し</p>
<pre>
	yourproject/lib/slim3-gen-1.0.7.jar
</pre>
<p>解凍したslim3のものをプロジェクト内のディレクトリにペーストする</p>
<pre>
	yourproject/lib/slim3-gen-1.0.8.jar
</pre>
<p>&nbsp;<br />
&nbsp;</p>
<p><b>slim3-*-sourceを置換</b><br />
下記のファイルをを削除し</p>
<pre>
	yourproject/libsrc/slim3-1.0.7-sources.jar
	yourproject/libsrc/slim3-gen-1.0.7-sources.jar
</pre>
<p>解凍したslim3のものをプロジェクト内のディレクトリにペーストする</p>
<pre>
	yourproject/libsrc/slim3-1.0.8-sources.jar
	yourproject/libsrc/slim3-gen-1.0.8-sources.jar
</pre>
<p>&nbsp;<br />
&nbsp;</p>
<hr />
<h4>ビルドパスの変更</h4>
<p>eclipseを起動し、yourprojectプロジェクトを右クリック &#8211; [ビルド・パス(B)] &#8211; [ビルド・パスの構成(C)]をクリック</p>
<p>プロジェクトのプロパティー [Java のビルド・パス]が開くので、[ライブラリー(L)]タブを選択</p>
<p>下記を選択し[除去(R)]をクリック</p>
<pre>
	war/WEB-INF/lib/slim3-1.0.7.jar
</pre>
<p>左ペインの yourprojectプロジェクト の下記を右クリック</p>
<pre>
	war/WEB-INF/lib/slim3-1.0.8.jar
</pre>
<p>[ビルド・パス(B)] &#8211; [ビルド・パスに追加(A)]をクリック</p>
<p>&nbsp;<br />
&nbsp;</p>
<hr />
<h4>アノテーション処理のファクトリパスを変更</h4>
<p>パッケージ・エクスプローラにてyourprojectプロジェクトを選択する</p>
<p>[プロジェクト(P)] &#8211; [プロパティー(P)]をクリックする</p>
<p>[Javaコンパイラー] &#8211; [注釈処理] &#8211; [ファクトリーパス]をクリックする</p>
<p>[JAR の追加(J)]をクリックする</p>
<p>[JARの選択]ダイアログにて、[yourproject] &#8211; [lib] &#8211; [slim3-gen-1.0.8.jar]を選択し、[適用(A)]をクリックする</p>
<p>[OK]をクリックする</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1154" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1154/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1154" />
	</item>
		<item>
		<title>Google App Engine/Java で動くEtupirkaCMSが良い</title>
		<link>http://www.tdtsh.com/blog/archives/1090</link>
		<comments>http://www.tdtsh.com/blog/archives/1090#comments</comments>
		<pubDate>Fri, 04 Feb 2011 11:00:08 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[slim3]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=1090</guid>
		<description><![CDATA[http://d.hatena.ne.jp/shuji_w6e/20101226/1293366445]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/etupirka/" targt="_blank">etupirka</a>、イイですね。</p>
<blockquote><p>
	<a href="http://d.hatena.ne.jp/shuji_w6e/20101226/1293366445" target="_blank">EtupirkaCMS 0.1.0 リリース &#8211; やさしいデスマーチ</a></p>
<p>	<a href="http://docs.etupirkacms.org/home" target="_blank">EtupirkaCMS(日本語)</a>
</p></blockquote>
<p>何が凄いって、eclipse も appengine SDKも使わずに、ローカルでテストしてデプロイ出来るんです。感動しました。<br />
コレならフリーランスなWEBデザイナ・コーダにも勧められますし、一人教えておきました。</p>
<p>WYSIWYGエディタも使える。本気で使える。素晴らしい。</p>
<p><a href="http://gae.tdtsh.com/blog/" target="_blank">とりあえずテストで投稿してみました</a></p>
<p>Google Webマスターツール と Google Analytics はIDとかを入れるだけ。<br />
必ず使うんで、最初から機能として入っているのはイイですね。<br />
欲を言えばTrackbackが送れるといいナァ。</p>
<p>ちょっと前、Google App Engine/Java で動くCMSを探したけど、満足いくものが無かったんで仕方なく ホスティングサーバ + wordpress で当ブログ初めたんですけど、最初からコレが有れば使ってたかも。</p>
<div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "135970219784621", status: true, cookie: true,
		 xfbml: true});
	};
 (function() {
  var e = document.createElement("script"); e.async = true;
 e.src = document.location.protocol +
   "//connect.facebook.net/jv_ID/all.js";
 document.getElementById("fb-root").appendChild(e);
}());
</script><span class = ""  style = "  "><fb:like href="http://www.tdtsh.com/blog/archives/1090" send = "false" layout="standard" show_faces="false" width="" action="like" colorscheme="light" font="" /></span>]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/1090/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/1090" />
	</item>
	</channel>
</rss>

