<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/ME2.2.3" -->
<rss version="0.92">
<channel>
	<title>widgetown 開発チームブログ(仮)</title>
	<link>http://blog.widgetown.com/tech</link>
	<description>widgetown 開発チームブログ(仮)</description>
	<lastBuildDate>Tue, 27 May 2008 10:55:39 +0900</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>ja</language>
	
	<item>
		<title>AS2 RSSをストリングでパース</title>
		<description><![CDATA[あるベテランCプログラマーの人が
「XMLだけはめんどくさいからハッシュ化しちゃうよね」
といったかいわないかは定かではありませんが。
男ならStringのメソッドでRSSをパース

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
&#160;
import mx.utils.Delegate;
var lv:LoadVars = new LoadVars &#40;&#41;;
&#160;
lv.onData = Delegate.create&#40;this,function&#40;str:String&#41;:Void
&#123;
	var result:Array=&#91;&#93;;
	str = str.split&#40;' '&#41;.join&#40;&#34;&#34;&#41;.split&#40;'\t'&#41;.join&#40;''&#41;.split&#40;'\r\n'&#41;.join&#40;''&#41;;
&#160;
	var items:Array = str.split&#40;'&#60;item&#62;'&#41;;
	items.shift&#40;&#41;;
&#160;
	var len:Number = items.length;
&#160;
	for&#40;var i=0;i&#60;len ;++i&#41;
	&#123;
		var item:String = items&#91;i&#93;;
&#160;
		var title:String = item.substring&#40;item.indexOf&#40;'&#60;title&#62;'&#41;,item.indexOf&#40;''&#41;&#41;;
		var description:String = item.substring&#40;item.indexOf&#40;'&#60;description&#62;'&#41;,item.indexOf&#40;'&#60;/description&#62;'&#41;&#41;;
&#160;
		var link:String  = item.substring&#40;item.indexOf&#40;'&#60;link&#62;'&#41;,item.indexOf&#40;'&#60;/link&#62;'&#41;&#41;;
		var guid:String = item.substring&#40;item.indexOf&#40;'&#60;guid&#62;'&#41;,item.indexOf&#40;'&#60;/guid&#62;'&#41;&#41;;
		//CDATAを削除;
		description = description.split&#40;'&#60; ![CDATA['&#41;.join&#40;''&#41;.split&#40;']]&#62;'&#41;.join&#40;''&#41;;
&#160;
		var o:Object = &#123;&#125;;
		o.title = title;
		o.description = description;
		o.link = link;
		o.guid = guid;
&#160;
		result.push&#40;o&#41;;
&#160;
	&#125;;
	trace&#40;mx.data.binding.ObjectDumper.toString&#40;result&#41;&#41;;
&#125;&#41;;
&#160;
lv.load &#40;'http://weblogs.macromedia.com/akamijo/index.xml'&#41;;
&#160;
&#60;/len&#62;&#60;/item&#62;

かなりきちんとパースできて正直ワロタ。
コッシーにindexOfを使えといわれて使ったら高速になったよコッシー！！
]]></description>
		<link>http://blog.widgetown.com/tech/?p=23</link>
			</item>
	<item>
		<title>AS2 でyoutubeパース</title>
		<description><![CDATA[あるベテランCプログラマーの方が
「正規表現が内部的にどれくらい効率悪い処理をしてるかわかってるの？」
といったかどうかは知りませんがAS2.0では正規表現がありません。
男だったらString.splitで気合でパース。
基本的には中のjsのURL記述から必要なパラメータをとってきているのですが、パラメータの順番がころころ変わるので変わっても対応できるようにしました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function parseYoutubeHTML&#40;htmlString:String&#41;:String
&#123;
  var line:String = str.split&#40;'watch_fullscreen'&#41;&#91;1&#93;.split&#40;';'&#41;&#91;0&#93;;
  var ar:Array = line.split&#40;'&#38;'&#41;;
&#160;
  var video_id:String;
  var t:String;
  var l:String;
&#160;
  var i:Number = ar.length;
  var b:Boolean = true;
&#160;
  while&#40; i-- &#62; 0 &#38;&#38; b &#41;
  &#123;
    b =  video_id == undefined &#124;&#124; t == undefined &#124;&#124; [...]]]></description>
		<link>http://blog.widgetown.com/tech/?p=22</link>
			</item>
	<item>
		<title>AS3　tips</title>
		<description><![CDATA[いいTipsみつけた。Widnow上でのルート検索に使えそう。
ルートを健作
//rootを検索
var target: DisplayObject = this;
while (target.parent.parent)target = target.parent;
trace(&#8217;root:&#8217; + target);
]]></description>
		<link>http://blog.widgetown.com/tech/?p=21</link>
			</item>
	<item>
		<title>オープン系のアナタに送るFlexマスター最短ルート</title>
		<description><![CDATA[とりあえず、コンポーネントのスキニング（デザインカスタマイズ）には手を出さないことをお勧め。
・環境構築
http://gihyo.jp/dev/feature/01/flash-sdk/0001?page=1
ここでSDKで環境構築＆ビルドをマスター。慣れてきたらRascutを試してみるとよいかも知れない。
・Flex quick start guide for PHP developers
http://www.adobe.com/devnet/flex/articles/php_getstarted.html
英語だが、ここを写経すれば簡単なサーバー、クライアント間のアプリはできると思う。
FlexとPHPのJASON連携
http://www.adobe.com/jp/devnet/flex/articles/flex_php_json.html
あと、最初につまずきやすいところを何点か。
MXML→クラスファイル。
MXMLはコンパイル時にすべてActionScriptに変換される。
そこそこのFlexアプリならActionScriptの知識はあまり要らない。javascriptが分かっていれば分かる。
それよりMXMLに慣れること。
]]></description>
		<link>http://blog.widgetown.com/tech/?p=20</link>
			</item>
	<item>
		<title>番外編 AIRのHTMLLoader</title>
		<description><![CDATA[今更ですが AIRのHTMLLoaderです。今更ですが。
早い話が、Webブラウザ。レンダリング機能だけではなくJavaScriptインタプリタとしてもしっかり機能します。
さて、興味本位で、IE、FireFox、AIRのHTMLLoaderぞれぞれで、
確認君（http://www.ugtop.com/spill.shtml）を踏んでみました。
以下、気になったことを…。
・サポート言語（Accept-Language）
送られていないっぽく、情報が空です。
「en-us」ぐらい送ってくれてもいいのに…。
・リファラ（Referer）
：app:/htmlloader_test.swf
デフォルトでは実行中のswfのパスになるようです。
・Cookie（Set-Cookie）
ちゃんとクッキー処理にも対応してますね。
こんなところでしょうか。
ついでにCapabilitiesも確認してみたのですが、なんだか普通でした。
playerTypeが“PlugIn”な点ぐらいですかね。
]]></description>
		<link>http://blog.widgetown.com/tech/?p=19</link>
			</item>
	<item>
		<title>flash作っていて幸せなとき</title>
		<description><![CDATA[GWは会社でがっつり実装です。
そんな中、ふと思ったことがあります。
やっぱ、flashってたのまれてもないViewの作り込みをしているときが一番幸せですよね～。
だけど、次回以降まったく同じものが仕様に入るとめんどくさく感じるのはなぜ？七不思議ですね。
]]></description>
		<link>http://blog.widgetown.com/tech/?p=18</link>
			</item>
	<item>
		<title>意図的な偏り（傾向）付きの乱数を手軽に生成する</title>
		<description><![CDATA[便利なライブラリ情報や 最新の動向系のエントリは 他の方が書きまくっていますので、私からは少し違う毛色のエントリを。
ウィジェット、ブログパーツ、或いはサイトFlashの全てにおいて出てくる、「表現」系のお話です。
ちょっとした表現を行おうとすると、例えば「座標」であったり「速度」であったり「角度」であったり「継続時間」であったり「縮尺」であったりの各パラメータに 乱数を使うことが多々あります。
さて、おなじみのMath.random()で生成した乱数というのは、（生成アルゴリズムのマズさから来る偏りという面を除けば）一様に分布します。
ですが、上で挙げたような いわゆる連続量に乱数を適用する際は、意図的な「偏り」というか「傾向」が欲しい場合も多いワケです。
例えば「大きい数の方が小さい数より出やすい」など。
これらを真面目に実装しようとすると、数学の時間にやった 確率密度関数などを復習する必要が出てくるワケですが、「数学キライー！」「だってボク☆文系だもん♪」という方のために、簡単に実装する方法を紹介いたします。
一言で言えば、
「普通に乱数を生成し、そこから “今生成した乱数を最大値とする乱数”を引く」ことで、小さい方に偏る乱数を生成できます。
…文章で説明してもややこしいので、以下コード例。
function inclinationalRandom (max :Number) :Number
{
var result :Number = Math.random();
result -= Math.random() * result;
return (result * max);
}
この方法で、「0以上 10未満」の乱数を8000回生成して適当に整数化した際の出現回数がこちら。

偏ってますねー。「小さい数が出やすい傾向を持った乱数」の生成、完了です。
しかしこれではいくら何でも偏り過ぎ！…という意見もあるでしょうから、もう少しマイルドにしてみましょう。
ついでに「マイルド度」も指定できるようにしてみましょう。
function inclinationalRandom (max :Number, rate :Number) :Number
{
var result :Number = Math.random();
var incl :Number = result - (Math.random() * result);
result = (result + (incl * rate)) / (1.0 + rate);
return (result);
}
基本的に先程のコードと考え方は同じなのですが
、「偏らせる（小さくい方へ引っ張る）ための数」に倍率を掛けています。
rateを弄ることで「偏り」を調節できます。
rate = 1.0でこんな感じ。

rate = [...]]]></description>
		<link>http://blog.widgetown.com/tech/?p=16</link>
			</item>
	<item>
		<title>Google App Engine</title>
		<description><![CDATA[港で話題のGoogle App Engineですが早速土日にいろいろ調べてみました。
こちらの記事がよく引用されています。
「Google App Engine」の登場とPaaS&#8211;Web 2.5がもたらす変化
インフラ整備を泥仕事といったら、泥仕事している人に失礼じゃないか！というのは置いておいて、超ざっくり説明するとAPI込みのレンタルサーバーのようなものでしょうか。
主な機能はこんな具合
・500MBまでのストレージ提供
・500万PV程度の帯域を提供
・言語は今のところPython
・SDKの中に開発サーバーが入っている。
・Pythonで書いたアプリとyaml形式の設定ファイルを同梱しSDKを用いてアップして公開。
・Python2.52の標準ライブラリで書かれているのでPythonのライブラリをアップして使える。
・DBはリレーショナルではない。datastore APIを経由しSQLの代わりにGQLというものを用いて書く。
・Google  Accountを利用できる。自分のアプリにGoogle  Account APIを利用しログインさせる機能をつけれる。
・ほかのドメインのリソースにアクセスする場合はURL Fetch APIを利用する。sendMailも可能
さて、ここからが本題
このGoogle App Engine対応アプリケーションをFlash,Flexから利用する際のフレームワークが早くも登場。開発者はSWXのAral Balkan氏
・The GAE SWF Project version 1.34
デモは下記
http://gaeswf.appspot.com/examples/initial/flex#/mousewheel
ログインとかしっかり動作していますね。GWはこれをちょっといろいろいじってみたいと思います。では連休後のエントリーをお楽しみに。
]]></description>
		<link>http://blog.widgetown.com/tech/?p=11</link>
			</item>
	<item>
		<title>degrafa</title>
		<description><![CDATA[degrafa
SVGデータが扱えるグラフィックライブラリ。
http://code.google.com/p/degrafa/
sampleの中のviewsourceでどんな感じか見れます。
http://samples.degrafa.com/ 
非常に興味深い特徴としてはMXMLでコーディングしていく点。
MXMLはActionScriptのクラスをコンポーネントとしてカプセル化する際すばらしく便利なので、もっと普及してほしいですね。
]]></description>
		<link>http://blog.widgetown.com/tech/?p=10</link>
			</item>
	<item>
		<title>AS3 casaframework , lowRA　</title>
		<description><![CDATA[勉強のために casaframework とかlowRAとか眺めたりしてます。
casaframeworkはAS2でもあった便利系ライブラリ。Trick7のTeraさんがブログで紹介してからすごく広まった感ありますね。これは僕の中ではやっつけ仕事のお供に重宝しています。
lowRAはpixLibのAS3版。Util系ライブラリ+FrontContorollerパターンのMVCフレームワーク込みの超絶ライブラリ。
ClassUtilだけは便利すぎるのでAS2.0時代も使わせてもらいました。
どちらもスゴク参考になるのですが、SVNをチェックアウトしたところ目下開発中でちょくちょくコミットされています。casaframeworkにいたっては4/15にcasaframework/collectionパッケージのクラスをほぼ全部削除するなど臨場感満点で楽しめます。
casaframework　http://svn.as3.casaframework.org/dev/code/org/casaframework
lowra　http://lowra.googlecode.com/svn/trunk
]]></description>
		<link>http://blog.widgetown.com/tech/?p=9</link>
			</item>
</channel>
</rss>
