<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xml:lang="ja">
	<channel>
		<title>dann@webdev</title>
		<link>http://dann.g.hatena.ne.jp/dann/</link>
		<description>dann@webdev</description>
		<dc:creator>dann</dc:creator>


		<item>
			<title>FlexのWAFであるRobotlegsが良さそうな件</title>
			<link>http://dann.g.hatena.ne.jp/dann/20100126/p1</link>

			<description><![CDATA[
		<div class="section">
			<p>PureMVCが良さそうだと先日書いたのですが、簡単なサンプルを書いてみたところ、以下の問題があることがわかりました。</p>
			<ul>
				<li> Service Locatorに依存しすぎていて、MVC全体がLocatorに依存してしまう</li>
				<li> MVCSのすべてでフレーワークのベースクラスを継承することになるので、フレームワークにべったり依存してしまう</li>
			</ul>
			<p>そのため、単体テストが極めて書きにくいです。MVCS構成にはきっちりわかれるので、複数人でも分担して作業しやすいとは思うのですが、これは困りますね。</p>
			<p>つい最近、Robotlegsというフレームワークを知ったのですが、これは上記の問題をDIコンテナで解決していて、割と最近の<a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Java">Java</a>のフレームワークに近い構成になっています。MとSがPlain Old ActionScript Objectになるため、単体テストがしやすく、PureMVCが抱えている問題を解決出来ているように見えます。</p>
			<p><a href="http://www.robotlegs.org/" target="_blank">http://www.robotlegs.org/</a></p>
			<p>素直なMVCS構成になり、MとSがPOAOになりテストが書きやすくBetter PureMVCといった感じです。今後、少し使い込んでみます。</p>
		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Mon, 25 Jan 2010 15:00:00 GMT</pubDate>



		</item>

		<item>
			<title>[actionscript]Flex Builderのプラグイン </title>
			<link>http://dann.g.hatena.ne.jp/dann/20100110/p3</link>

			<description><![CDATA[
		<div class="section">
			<p>Blueprint pluginとformatterは割と便利。</p>
			<ul>
				<li> Blueprint plugin
				<ul>
					<li> <a href="http://labs.adobe.com/technologies/blueprint/" target="_blank">http://labs.adobe.com/technologies/blueprint/</a></li>
				</ul>
				</li>
				<li> Flex formatter
				<ul>
					<li> <a href="http://sourceforge.net/projects/flexformatter/" target="_blank">http://sourceforge.net/projects/flexformatter/</a></li>
				</ul>
				</li>
				<li> <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/TODO">TODO</a>/Fixme plugin
				<ul>
					<li> <a href="http://www.richinternet.de/blog/index.cfm?entry=911D4B57-0F0D-5A73-AF6F4D4D04099757" target="_blank">http://www.richinternet.de/blog/index.cfm?entry=911D4B57-0F0D-5A73-AF6F4D4D04099757</a></li>
				</ul>
				</li>
			</ul>
			<p># Flex Builderは<a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Java">Java</a>版のEclipseに比べると大分使いにくいのだけれど、それでもパッケージ名の自動importとメソッド補完があると楽なので使うことに。</p>
		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Sat, 09 Jan 2010 15:00:00 GMT</pubDate>


			<category>actionscript</category>


		</item>

		<item>
			<title>[actionscript]AS3のWAF</title>
			<link>http://dann.g.hatena.ne.jp/dann/20100110/p2</link>

			<description><![CDATA[
		<div class="section">
			<ul>
				<li> FlexのWAF
				<ul>
					<li> 幾つか見た感じだと、PureMVCが一番シンプルで良さそう。</li>
					<li> MVCS構成で作るとこうなるだろうなぁといった感じで作られていて、とても素直な作りで理解がしやすい</li>
					<li> ただ、画面遷移をどう作るのがセオリーなのかちょっとわからない。これはPureMVC限らずFlex全般でそうなのだけれど。</li>
				</ul>
				</li>
				<li> Progressionは遷移が綺麗に扱える
				<ul>
					<li> Progressionは画面*遷移*をとても綺麗に扱えそうで、PureMVCとは違ったすみわけができそう。ゲームとかでもシーンの遷移に使えそう。</li>
					<li> Viewの作り方はFlexのmxmlのような感じではないので、ちょっと作るのが面倒そうだけど自由度は高そう。</li>
				</ul>
				</li>
			</ul>

		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Sat, 09 Jan 2010 15:00:00 GMT</pubDate>


			<category>actionscript</category>


		</item>

		<item>
			<title>[actionscript]ActionScript開発に必要な基本的なライブラリとツール群のまとめ</title>
			<link>http://dann.g.hatena.ne.jp/dann/20100110/p1</link>

			<description><![CDATA[
		<div class="section">
			<p>今年は、クライアントサイドも書けるようにするために、ActionScriptのほうを初めてみることにしました。そこで、昨日は1日ActionScriptを書きながら、開発で必要になるベーシックなライブラリやツール群を調べていました。作り方含めて大分わかってきたのでまとめてみます。</p>
			<h4> 共通ライブラリ群</h4>
			<p>作るときにはあると便利な共通で必要となるユーティリティ系のライブラリ群をまとめます。物理計算、3D系は色々とまとめられている方がいるので、今回はそれについては割愛します。</p>
			<h5> ユーティリティ系ライブラリ</h5>
			<ul>
				<li> as3corelib
				<ul>
					<li> 色々と。ベースはこれで十分。</li>
				</ul>
				</li>
				<li> as3commons
				<ul>
					<li> <a href="http://www.as3commons.org/" target="_blank">http://www.as3commons.org/</a></li>
					<li> <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Java">Java</a>のcommons系のライブラリのport。
					<ul>
						<li> logging, String, Collection</li>
					</ul>
					</li>
					<li> reflection周り</li>
				</ul>
				</li>
				<li> as3ds
				<ul>
					<li> データ構造周り</li>
					<li> <a href="http://github.com/jaybaird/as3ds/" target="_blank">http://github.com/jaybaird/as3ds/</a></li>
				</ul>
				</li>
			</ul>
			<h5> 非同期処理系ライブラリ</h5>
			<p>至る所でcallbackが必要になるので、AS3では非同期処理をSequencialに書けるライブラリを使わないと、アプリケーションはすぐにスパゲッティコードになります。masudaさんのエントリで参考に幾つか触ってみましたが、「voldement Chain」はとても使いやすく感じました。コード量も短くとても見通しよくコードが書けます。</p>
			<ul>
				<li> <a href="http://www.metaphor.co.jp/masuda/blog/?p=24" target="_blank">http://www.metaphor.co.jp/masuda/blog/?p=24</a></li>
				<li> <a href="http://void.heteml.jp/blog/archives/2008/01/chain.html" target="_blank">http://void.heteml.jp/blog/archives/2008/01/chain.html</a></li>
			</ul>
			<h4> 状態管理系のライブラリ</h4>
			<p>ゲームなどを含め、状態管理が必要になる場面がactionscriptで書くときには多いので、FSMを扱えるライブラリはないとコードがすぐにスパゲッティになる感じがします。ただ、FSMを扱うライブラリは少し探した感じないので、作ろうかなと思ってます。</p>
			<h4> デバッグ</h4>
			<p>デバッグ時に使えるツール群です。</p>
			<ul>
				<li> ロギング
				<ul>
					<li> secondlifeさんのlog.asは使い易い</li>
					<li> Thnderboltも使ってみましたが、デバッグ用途であればlog.asのほうがsimpleでいいかなと。</li>
				</ul>
				</li>
				<li> Dumper でDump
				<ul>
					<li> PerlでいうData::Dumper</li>
					<li> <a href="http://www.libspark.org/wiki/dealforest/Dumper" target="_blank">http://www.libspark.org/wiki/dealforest/Dumper</a></li>
				</ul>
				</li>
				<li> メモリ、FPS周り
				<ul>
					<li> SWFProfilerで、メモリ使用量とFPSのチェック</li>
					<li> MonsterDebuggerでプロファイル</li>
				</ul>
				</li>
			</ul>
			<p>ビルドとテストは、まだ少ししか試してないので検討が必要ですが、<a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Hudson">Hudson</a>との連携も含めて、mavenでいいかなという気がしてます。</p>
			<h4> ビルド</h4>
			<ul>
				<li> maven
				<ul>
					<li> <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Hudson">Hudson</a>でCIすること考えると、maven で良いかも。SWC, asdoc, </li>
					<li> <a href="http://flexmojos.sonatype.org/" target="_blank">http://flexmojos.sonatype.org/</a></li>
					<li> プロジェクト開始時のstarterとしても、mavenでいいかも。</li>
				</ul>
				</li>
				<li> その他の選択肢としては、ant, airakeなどがありますが、一長一短です。</li>
			</ul>
			<h4> テスト</h4>
			<ul>
				<li> FlexUnit
				<ul>
					<li> maven, <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Hudson">Hudson</a>との連携という点も含めて考えるとFlexUnitが最有力の選択肢な気がしています。</li>
					<li> 他には、Spark制as3unitが選択肢でしょうか。</li>
				</ul>
				</li>
			</ul>

		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Sat, 09 Jan 2010 15:00:00 GMT</pubDate>


			<category>actionscript</category>


		</item>

		<item>
			<title>Plack::Middleware::Failsafe</title>
			<link>http://dann.g.hatena.ne.jp/dann/20100103/p1</link>

			<description><![CDATA[
		<div class="section">
			<p>新年1つ目のモジュールは例外を一番外側でcatchして、ログを出力後、エラー画面を表示するMiddlewareを作りました。もともとは、Railsのmiddlewareなのですが、RailsのMiddlewareは、Railsに依存してしまっていたので、依存しないように分離してあります。</p>
			<p><a href="http://github.com/dann/p5-plack-middleware-failsafe" target="_blank">http://github.com/dann/p5-plack-middleware-failsafe</a></p>
			<p>使い方は、以下のようにerror画面を指定するだけです。</p>
<pre class="syntax-highlight">
<span class="synStatement">use </span>Plack::Builder;
<span class="synStatement">use </span>Plack::Middleware::Failsafe;
 
<span class="synStatement">my</span> <span class="synIdentifier">$app</span> = builder {
    enable <span class="synConstant">&quot;Failsafe&quot;</span>, <span class="synConstant">error_template_path </span>=&gt; <span class="synConstant">&quot;/myapp/errors/500.html&quot;</span>;
<span class="synIdentifier">    </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{
      <span class="synStatement">die</span> <span class="synConstant">'error'</span>;    
    };
};
</pre>

			<p>今まではこの処理をWAFの中に作りこんでいたんですが、これはMiddlewareとして外側に出したほうがいいかなということで、ポーティングしてみました。</p>
		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Sat, 02 Jan 2010 15:00:00 GMT</pubDate>



		</item>

		<item>
			<title>2009年を振り返って</title>
			<link>http://dann.g.hatena.ne.jp/dann/20091224/p1</link>

			<description><![CDATA[
		<div class="section">
			<p>こんばんは、明石家サンタが楽しみなdannです。今年も色々なことがありました。今年も残すところ後僅かになったので、KPTで今年を振り返ってみます。</p>
			<h4> Keep</h4>
			<p>今年やって良かったことは</p>
			<ul>
				<li> YAPC::Asiaにスピーカーとして参加
				<ul>
					<li> Perlコミュニティに参加し始めたのが去年。YAPC::Asiaにも去年初参加しました。今年は自分で作ったもので、2つのセッションで発表しました。セッションもかなりの人数に参加して頂けたのは嬉しかったですね。
					<ul>
						<li> 優しいモダンなWAFの作り方(<a href="http://www.slideshare.net/techmemo/waf" target="_blank">http://www.slideshare.net/techmemo/waf</a>)</li>
						<li> CPAN::Packager(<a href="http://www.slideshare.net/techmemo/cpan-packager-1977821" target="_blank">http://www.slideshare.net/techmemo/cpan-packager-1977821</a>)</li>
					</ul>
					</li>
				</ul>
				</li>
				<li> JPerl Advent Calendarを今年も書きました
				<ul>
					<li> hacker track
					<ul>
						<li> CPAN::Packagerでもいいかと思ったんですが、テスト系などのユーティリティーが多く紹介されてたので、自分が良く使っているTest::LoadAllModulesについて書きました。</li>
						<li> <a href="http://perl-users.jp/articles/advent-calendar/2009/hacker/07.html" target="_blank">http://perl-users.jp/articles/advent-calendar/2009/hacker/07.html</a></li>
					</ul>
					</li>
					<li> data-model track</li>
					<li> <a href="http://perl-users.jp/articles/advent-calendar/2009/data-model/17.html" target="_blank">http://perl-users.jp/articles/advent-calendar/2009/data-model/17.html</a>
					<ul>
						<li> 世界で3番目に良くソースは読んでいると思います！世界で3番目を目指して来年は活動したいところです。</li>
					</ul>
					</li>
				</ul>
				</li>
				<li> 今年もモジュールを結構書きました。
				<ul>
					<li> <a href="https://github.com/dann" target="_blank">https://github.com/dann</a></li>
					<li> 良いコードを読んで、良く書く</li>
				</ul>
				</li>
				<li> <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Python">Python</a>, <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Ruby">Ruby</a>もかなり書けるようになった
				<ul>
					<li> WAFを作り始めた影響で<a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Python">Python</a>, <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Ruby">Ruby</a>の色々なWAFのコードを読んでHTTP::EngineやPlackなどにportingしたこともあり大体どの言語でもある一定以上のレベルで書けるようになりました。Perl, <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Python">Python</a>, <a class="keyword" href="http://dann.g.hatena.ne.jp/keyword/Ruby">Ruby</a>双方向にポーティングできるようになったので、いろんな言語の良いコードを見れるようになり、視野が広がったのはとても良かったと思っています。言語的には大きな差異はないので、割と自然にどの言語も使うことができました。</li>
				</ul>
				</li>
				<li> Scalaを始めてみた
				<ul>
					<li> 色々と普段かかない言語の要素に触れたのは貴重でしたね。ScalaのCompilerが死ぬほど遅くてげんなりしてたんですが、言語的には面白くエレガントですし、勉強になる要素も多く今後ももう少し使っていこうかなと思いました。</li>
				</ul>
				</li>
				<li> 多くのHackathonに参加
				<ul>
					<li>  Plack hackathon, android hackathon, 家でやった何回かのhackathon, lazy-peopleのhackathonをはじめ、多くのhackathonに参加したのはモチベーションが高まって良かったですね。多くの人に出会い話すのは勉強にもなり良かったです。</li>
				</ul>
				</li>
				<li> C++でシステムプログラミングを再開してみたこと
				<ul>
					<li> drizzleのコードを読んで書き換えるのを中心に勉強していました。得るものが多く良かったですね。この領域は、もう少し勉強が必要ですが、気長にやってこうかなと思ってます。</li>
				</ul>
				</li>
			</ul>
			<h4> Problem</h4>
			<ul>
				<li> プライベートでサービスを作らなかった
				<ul>
					<li> サービスを作っていこうと思っていたんですが、WAF＆モジュールに時間を割いてしまっていたのは良くなかったですね。</li>
				</ul>
				</li>
				<li> WAFが完成しなかったこと
				<ul>
					<li> WAFはかなり真面目にやろうと思っていたんですが、思っていた以上に作り込むのには時間がかかり、プライベートな時間だけでやるには、なかなかモチベーションの維持が難しいかったなぁと。シンプルなところが動くところまではすぐかけたんですが、最後使い易くとか全レイヤを揃えたりとか、使う上でのユーザビリティを良くするための時間があまり取れませんでした。そういった点で、時間が取れない中で活動するには、OSSのプロジェクトに参加するか、WAFも範囲を絞ってやるべきだったのだろうなと思いました。ただ、反省点はあるもののWAFのようにベースになるものを作っておくと、新しいWeb界隈のコードに触れる機会は増えるので、それはよかったかなと思っています。また、OSSプロジェクトへの参加方法や時間の活用方法など、考えるきっかけになったのは良かったです。</li>
				</ul>
				</li>
			</ul>
			<h4> Try</h4>
			<p>来年チャレンジしていきたいことは、やはりプライベートでサービスを作ることですね。</p>
			<ul>
				<li> プライベートでサービスを作ること
				<ul>
					<li> モジュールを作ったりというのも楽しいんですが、やはり作品としてのサービスを一つプライベートで作りたいですね。これは時間との兼ね合いもあるのですが、さくさくサービスを作るための下地作りも含めて来年は準備をしていきたいなぁと。</li>
				</ul>
				</li>
			</ul>
			<h4> 最後に</h4>
			<p>この1年も色々な方にお誘いいただいて、発表したり、hackathonに行ったりと、今年もとてもよい刺激を受けながら1年を過ごすことができました。来年もよろしくお願いします！</p>
		</div>
]]></description>

			<dc:creator>dann</dc:creator>

			<pubDate>Wed, 23 Dec 2009 15:00:00 GMT</pubDate>



		</item>

	</channel>
</rss>
