<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xml:lang="ja" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="http://www.kawa.net/xp/index-j.html">
<title>Kawa.net xp - Ajax＆Perl技術情報（川崎有亮）</title>
<link>http://www.kawa.net/xp/index-j.html</link>
<dc:date>2013-05-23T12:05:00+09:00</dc:date>
<dc:language>ja</dc:language>
<dc:rights>Copyright 1995-2010 Yusuke Kawasaki. All rights reserved.</dc:rights>
<description>川崎有亮の制作したプログラムのご紹介・技術情報など。ajax/JavaScript/Perl/CGI/...</description>
<image rdf:resource="http://www.kawa.net/xp/images/xp-title-128x32.gif" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20130421/1366538651" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20130112/1357928885" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20121222/1356188018" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20121130/1354271820" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20121120/1353402584" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20121120/1353339429" />
<rdf:li rdf:resource="http://kawanet.hatenablog.com/entry/20121102/1351795806" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201201/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201201/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201112/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201112/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201112/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201111/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201111/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201111/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201110/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201110/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201109/article_4.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201109/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201109/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201109/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201106/article_1.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/perl/feedpp/feedpp.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201104/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201103/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201103/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201103/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_6.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_5.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_4.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201102/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201101/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201101/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201101/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201011/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201011/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201011/article_1.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/perl/treepp/treepp.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201010/article_5.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201010/article_4.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201010/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201010/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201010/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_8.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_7.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_6.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_5.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_4.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_3.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_2.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201009/article_1.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_8.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_7.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_6.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_5.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_4.html" />
<rdf:li rdf:resource="http://kawa.at.webry.info/201008/article_3.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/jkl/parsexml.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/geo/html5geoform.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/geo/html5geomap.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/perl/romanize/romanize.html" />
<rdf:li rdf:resource="http://www.kawa.net/xp/mypage-j.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/perl/catch/news.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/jkl/calender.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/ajax/zip/ajaxzip.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/ajax/ajaxtb/ajaxtb.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/ajax/ajaxcom/ajaxcom.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/xml/objtree.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/animation/raster.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/animation/cube.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/passwd/gen-passwds.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/learn/basic.html" />
<rdf:li rdf:resource="http://www.kawa.net/works/js/jkl/dumper.html" />
<rdf:li rdf:resource="http://www.kawa.net/index-2001j.html" />
</rdf:Seq>
</items>
</channel>
<image rdf:about="http://www.kawa.net/xp/images/xp-title-128x32.gif">
<url>http://www.kawa.net/xp/images/xp-title-128x32.gif</url>
<title>Kawa.net xp - Ajax＆Perl技術情報（川崎有亮）</title>
<link>http://www.kawa.net/xp/index-j.html</link>
</image>
<item rdf:about="http://kawanet.hatenablog.com/entry/20130421/1366538651">
<title>100円で作れる「スマート赤外線リモコン」プロトタイプを発表＠台北 OSDC.TW 2013</title>
<link>http://kawanet.hatenablog.com/entry/20130421/1366538651</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2013-04-21T19:04:11+09:00</dc:date>
<description>&lt;p&gt;台北に来ています。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%D7%A5%F3%A5%BD%A1%BC%A5%B9&quot;&gt;オープンソース&lt;/a&gt;開発者イベント OSDC.TW に参加しました。3年ぶりに4回目。カンファレンスは無事に終了して、今日は恒例のハッカソンに参戦中。台北市内にも&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B3%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%A5%B9%A5%DA%A1%BC%A5%B9&quot;&gt;コワーキングスペース&lt;/a&gt;がいくつもできていて、最近オープンしたばかりの &lt;a href=&quot;http://clbc.tw&quot;&gt;慶隆商務俱樂部&lt;/a&gt; にお邪魔しています。&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;OSDC.TW 2013 Hackathon at Ching Long Business Club | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8668027908/in/photostream&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8519/8668027908_70b51f85b4_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;427&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;週末は&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B3%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%A5%B9%A5%DA%A1%BC%A5%B9&quot;&gt;コワーキングスペース&lt;/a&gt;も空いているから、こうやってカンファレンス後のハッカソンに会場を提供するのは、いいアイデアですね。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;OSDC.TW のカンファレンス本体の話に戻ると、今年も会場は  &lt;a href=&quot;http://www.sinica.edu.tw/&quot;&gt;中央研究院 Academia Sinica&lt;/a&gt;  でした。大中小のホール全てが全席電源付・有線 LAN ポート付きという、素晴らしい会場です。参加者は500人くらい。&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;OSDC.TW 2013 Auditorium | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8668027256/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8537/8668027256_7d4a7e530f_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;480&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;川崎は『IR light vs HEV light: 紅外線 vs 高能量可見光』と題して、 赤外線 LED を使った 2013 年の新テーマのプロトタイプ版を発表しました。 日本出発前日にようやく動くようになったばかりの、できたてホヤホヤでした。 今後、日本国内のカンファレンスでも発表していく予定なので詳細は内緒。お楽しみに。&lt;/p&gt;
&lt;p&gt;2013 年は、Maker でクラウドでスマート家電ですよ！&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;IR light vs HEV light: 紅外線 vs 高能量可見光 - OSDC.TW 2013 | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8661722409/in/photostream&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8240/8661722409_7dc5507e57_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;424&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;参加者みなさんの笑顔が嬉しい！&lt;/p&gt;
&lt;p&gt;今年のキーノート・スピーカー Selena さんもツイートしてくれてた。&lt;/p&gt;
&lt;p&gt;&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;ja&quot;&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/LOL&quot;&gt;LOL&lt;/a&gt;! control camera with TWO iPhones, Node.JS, two LEDs, a stereo plug and Sguru. thank you @&lt;a href=&quot;https://twitter.com/kawanet&quot;&gt;kawanet&lt;/a&gt; for amazing &lt;a href=&quot;https://twitter.com/search/%23osdctw2013&quot;&gt;#osdctw2013&lt;/a&gt; presentation&lt;/p&gt;&amp;mdash; Selena Deckelmannさん (@selenamarie) &lt;a href=&quot;https://twitter.com/selenamarie/status/325096304642506752&quot;&gt;2013年4月19日&lt;/a&gt;&lt;/blockquote&gt;&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;OSDC.TW のその他のトークでは、個人的には、Jesse が発表した &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/DIY&quot;&gt;DIY&lt;/a&gt; キーボードの話がイチバン響きました。 この１月から開発に取り組んでいるらしい。&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;@obra &amp;quot;Building a keyboard from scratch&amp;quot; OSDC.TW 2013 | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8666924637/in/photostream/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8541/8666924637_ced33f7e04_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;428&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下は試作品のバレンタイン用のキーボード。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/DIY&quot;&gt;DIY&lt;/a&gt; なのでキー配列も独自に決められます。&lt;a href=&quot;http://keyboard.io&quot;&gt;http://keyboard.io&lt;/a&gt; で販売していく計画もあるみたい。&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;@obra&apos;s Valentine Special DIY Keyboard | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8666924485/in/photostream&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8534/8666924485_49962d57a3_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;426&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今日のハッカソンでは、赤外線の受信機を制作しました。&lt;/p&gt;
&lt;p&gt;「台北の秋葉原」と呼ばれる &lt;a href=&quot;http://www.arclink.com.tw&quot;&gt;光華商場&lt;/a&gt; にある&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C0%E9%C0%D0%C5%C5%BE%A6&quot;&gt;千石電商&lt;/a&gt;みたいなお店で足りない部材を調達。 ハッカソンでは、Jesse に半田ゴテの当て方ノウハウなど教えてもらいました。 2人とも、元々 &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Perl&quot;&gt;Perl&lt;/a&gt; の開発者なのに、素人ながら半田ゴテ頑張ってる様子。（笑）&lt;/p&gt;
&lt;p&gt;OSDC ですから、近日中に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9&quot;&gt;ソースコード&lt;/a&gt;も公開します。&lt;/p&gt;
&lt;p&gt;ハッカソンでそうこうしている間に、発表本番で諦めていた一部のデモのバグの原因が判明！ 単純なことだった。これが動いたら、もっと分かりやすいデモにできたのに…残念！日本でリベンジするわ。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;しかし、いつも台湾の方はみんな優しくてありがたい。OSDC.TW は春に開催されているので、毎回、その年の新しい開発テーマのプロトタイプ版を発表させてもらっています。2008年から始まって、今年が４回目になりました。&lt;/p&gt;
&lt;p&gt;（参考）過去の OSDC.TW での発表&lt;br /&gt;OSDC.TW 2008 &lt;a href=&quot;http://kawa.at.webry.info/200804/article_6.html&quot;&gt;DOM manipulation by Wiimote/Gainer over HTTP&lt;/a&gt; &lt;br /&gt;OSDC.TW 2009 &lt;a href=&quot;http://kawa.at.webry.info/200904/article_3.html&quot;&gt;JSARToolKit ＆ Air Xiaolongbao&lt;/a&gt; &lt;br /&gt;OSDC.TW 2010 &lt;a href=&quot;http://kawa.at.webry.info/201004/article_4.html&quot;&gt;Live Pointers ＆ CSS3 3D Presentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20130112/1357928885">
<title>JavaScript プロパティ lazy build 遅延初期化 getter メソッド</title>
<link>http://kawanet.hatenablog.com/entry/20130112/1357928885</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2013-01-12T03:28:05+09:00</dc:date>
<description>&lt;p&gt;&lt;a href=&quot;http://commons.wikimedia.org/wiki/File:Geta.JPG&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; title=&quot;Haragayato (CC BY-SA 3.0)&quot; src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kawanet/20130112/20130112032316.jpg&quot; alt=&quot;Haragayato (CC BY-SA 3.0)&quot; width=&quot;160&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/JavaScript&quot;&gt;JavaScript&lt;/a&gt; で getter メソッド経由でプロパティの値を lazy build（lazy initialization／遅延初期化）する方法について。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://handlebarsjs.com&quot;&gt;handlebars&lt;/a&gt; とかのテンプレートエンジンに渡すオブジェクトで、テンプレート側で使う場合のみ必要に応じて lazy build したかった。予め getter を作っておけば、プロパティとしてテンプレートからアクセスできる。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;var seq = 0;
var Foo = function () {
    this.seq = ++ seq;
};
var Bar = function () {
    this.fooB = new Foo();
};
Bar.prototype = {
    fooA: new Foo(), &lt;span style=&quot;color: #008800;&quot;&gt;// shared&lt;/span&gt;
    get fooC() {
        return this._fooC = this._fooC || new Foo(); &lt;span style=&quot;color: #008800;&quot;&gt;// lazy build&lt;/span&gt;
    }
};

var bar1 = new Bar();
var bar2 = new Bar();
var bar3 = new Bar();

console.log(&apos;bar1&apos;, bar1.fooA.seq, bar1.fooB.seq, bar1.fooC.seq); &lt;span style=&quot;color: #008800;&quot;&gt;// 1 2 5&lt;/span&gt;
console.log(&apos;bar3&apos;, bar3.fooA.seq, bar3.fooB.seq, bar3.fooC.seq); &lt;span style=&quot;color: #008800;&quot;&gt;// 1 4 6&lt;/span&gt;
console.log(&apos;bar2&apos;, bar2.fooA.seq, bar2.fooB.seq, bar2.fooC.seq); &lt;span style=&quot;color: #008800;&quot;&gt;// 1 3 7&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Foo の seq プロパティは、Foo &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;を生成したシリアル番号。&lt;br /&gt;Bar の fooA・fooB・fooC プロパティは、いずれも Foo の&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;を持つ。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;（prototype に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;を持たせる場合）&lt;/p&gt;
&lt;p&gt;fooA プロパティは、Bar.prototype 定義時に Foo &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;ができていて、&lt;br /&gt;全ての Bar &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;で共有されるので、bar1/bar2/bar3 いずれも 1 となる。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;（通常のプロパティ値に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;を持たせる場合）&lt;/p&gt;
&lt;p&gt;fooB プロパティは、Bar &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;作成時に Foo &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;ができるので、&lt;br /&gt;Bar &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;の生成順から、bar1=2→bar3=4→bar2=3 という結果になる。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;（プロパティ値を lazy build する場合）※今回の主旨&lt;/p&gt;
&lt;p&gt;fooC プロパティは、fooB プロパティを呼び出した際に Foo &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;ができるので、&lt;br /&gt;fooC プロパティのアクセス順から、bar1=5→bar3=6→bar2=7 という結果になる。&lt;br /&gt;実際の Foo &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9&quot;&gt;インスタンス&lt;/a&gt;は _fooC というプライベート風味プロパティに置いた。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;get fooC() のゲッター定義が使えない古い環境では以下を使う。&lt;/p&gt;
&lt;pre&gt;Bar.prototype.__defineGetter__(&apos;fooC&apos;, function(){
    return this._foo = this._foo || new Foo();
});&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;（参考記事）&lt;br /&gt;&lt;a href=&quot;http://news.mynavi.jp/articles/2010/09/09/ie9-ie8-getter-setter-javascript/index.html&quot;&gt;http://news.mynavi.jp/articles/2010/09/09/ie9-ie8-getter-setter-javascript/index.html&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;http://d.hatena.ne.jp/amachang/20090115/1231989477&quot;&gt;http://d.hatena.ne.jp/amachang/20090115/1231989477&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineGetter&quot;&gt;https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineGetter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;サンクス！＞@mitsumitsu123 &lt;/div&gt;
&lt;p&gt;CC BY-SA 3.0 の &lt;a href=&quot;http://commons.wikimedia.org/wiki/File:Geta.JPG&quot;&gt;下駄&lt;/a&gt; は Haragayato さん。&lt;/p&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20121222/1356188018">
<title>Xmas クリスマス気分になれるブックマークレット</title>
<link>http://kawanet.hatenablog.com/entry/20121222/1356188018</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2012-12-22T23:53:38+09:00</dc:date>
<description>&lt;p&gt;クリスマスシーズンがやって来ました。街中は赤と緑のクリスマ&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B9%A5%AB%A5%E9%A1%BC&quot;&gt;スカラー&lt;/a&gt;ばかりなのに、&lt;br /&gt;こうしていつものように PC 作業しているあなたに贈るクリスマスプレゼント、&lt;br /&gt;「Xmas &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8&quot;&gt;ブックマークレット&lt;/a&gt;」です。試しに、&amp;darr;のボタンをポチッと押してみて下さい。&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a style=&quot;font-size: 200%; font-weight: bold; padding: 4px 8px; border: 1px solid #000099; background-color: #ccccff;&quot; href=&quot;javascript:(function(){var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);var buf = [/* null */];while(walker.nextNode()) {var src = walker.currentNode;if (! src) continue;var text = src.data;if (! text.length) continue;text = text.replace(/[\s\r\n\t]+/g, &apos;&apos;);if (text.length &amp;lt; 1) continue;if (! src.parentNode) continue;var tag = src.parentNode.tagName;if (tag.toUpperCase() == &apos;SCRIPT&apos;) continue;if (tag.toUpperCase() == &apos;STYLE&apos;) continue;var cls = src.parentNode.getAttribute(&apos;class&apos;);if (cls == &apos;xmas-red&apos;) continue;if (cls == &apos;xmas-green&apos;) continue;buf.push(src);}var cnt = 0;var loop;loop = function () {for(var j=0; j&amp;lt;10; j++) {var src = buf.shift();if (! src) return;var fg = document.createDocumentFragment();var list = src.data.split(&apos;&apos;);var len = list.length;for(var i=0; i&amp;lt;len; i++){var chr = list[i];if (chr.match(/[\s\r\n\t]/)) {var space = document.createTextNode(chr);fg.appendChild(space);} else {var tn = document.createTextNode(chr);var span = document.createElement(&apos;span&apos;);cls = (cnt ++ % 2) ? &apos;xmas-red&apos; : &apos;xmas-green&apos;;span.setAttribute(&apos;class&apos;, cls);span.appendChild(tn);fg.appendChild(span);}}src.parentNode.replaceChild(fg, src);}setTimeout(loop, 1);};var rule = &amp;quot;span.xmas-red, span.xmas-green { display: inline ! important; font-weight: bold; margin: 0 ! important; padding: 0 ! important; }\n&amp;quot;;rule += &amp;quot;li { font-weight: bold; }\n&amp;quot;;rule += &amp;quot;span.xmas-red, li:nth-child(even) { color: #F00000 ! important; }\n&amp;quot;;rule += &amp;quot;span.xmas-green, li:nth-child(odd) { color: #008000 ! important; }\n&amp;quot;;var style = document.createElement(&apos;style&apos;);var sn = document.createTextNode(rule);style.appendChild(sn);document.body.appendChild(style);setTimeout(loop, 1);})()&quot;&gt;Xmas&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このボタンをブックマークバー等にドラッグ＆ドロップしておけば、&lt;br /&gt;どこのサイトにいるときでも使える&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8&quot;&gt;ブックマークレット&lt;/a&gt;になります。&lt;br /&gt;普通にブラウザを見ているだけで、街中のようなクリスマス気分を味わえる！&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;例えば、ヤフーのトップページはもともとクリスマスなのに、もっとクリスマスぽくなる。&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span&gt;&lt;img class=&quot;hatena-fotolife&quot; style=&quot;width: 500px; border: 1px solid gray;&quot; title=&quot;f:id:kawanet:20121222234222j:plain&quot; src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kawanet/20121222/20121222234222.jpg&quot; alt=&quot;f:id:kawanet:20121222234222j:plain&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;いつもと変わらないグーグルの検索結果だって、クリスマス気分で楽しめます。&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; style=&quot;width: 500px; border: 1px solid gray;&quot; title=&quot;f:id:kawanet:20121222234214p:plain&quot; src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kawanet/20121222/20121222234214.png&quot; alt=&quot;f:id:kawanet:20121222234214p:plain&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Gmail&quot;&gt;Gmail&lt;/a&gt; でも &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Facebook&quot;&gt;Facebook&lt;/a&gt; でも、どこでも動きます。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Safari&quot;&gt;Safari&lt;/a&gt;・&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Chrome&quot;&gt;Chrome&lt;/a&gt;・&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Firefox&quot;&gt;Firefox&lt;/a&gt; で動作確認済です。IE では動かないや。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/JavaScript&quot;&gt;JavaScript&lt;/a&gt; の&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9&quot;&gt;ソースコード&lt;/a&gt;は以下の通り。&lt;/p&gt;
&lt;pre&gt;var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
var buf = [];
while(walker.nextNode()) {
    var src = walker.currentNode;
    if (! src) continue;
    var text = src.data;
    if (! text.length) continue;
    text = text.replace(/[\s\r\n\t]+/g, &apos;&apos;);
    if (text.length &amp;lt; 1) continue;
    if (! src.parentNode) continue;
    var tag = src.parentNode.tagName;
    if (tag.toUpperCase() == &apos;SCRIPT&apos;) continue;
    if (tag.toUpperCase() == &apos;STYLE&apos;) continue;
    var cls = src.parentNode.getAttribute(&apos;class&apos;);
    if (cls == &apos;xmas-red&apos;) continue;
    if (cls == &apos;xmas-green&apos;) continue;
    buf.push(src);
}

var cnt = 0;
var loop;
loop = function () {
    for(var j=0; j&amp;lt;10; j++) {
        var src = buf.shift();
        if (! src) return;
        var fg = document.createDocumentFragment();
        var list = src.data.split(&apos;&apos;);
        var len = list.length;
        for(var i=0; i&amp;lt;len; i++){
            var chr = list[i];
            if (chr.match(/[\s\r\n\t]/)) {
                var space = document.createTextNode(chr);
                fg.appendChild(space);
            } else {
                var tn = document.createTextNode(chr);
                var font = document.createElement(&apos;font&apos;);
                cls = (cnt ++ % 2) ? &apos;xmas-red&apos; : &apos;xmas-green&apos;;
                font.setAttribute(&apos;class&apos;, cls);
                font.appendChild(tn);
                fg.appendChild(font);
            }
        }
        src.parentNode.replaceChild(fg, src);
    }
    setTimeout(loop, 1);
};

var rule = &quot;font.xmas-red, font.xmas-green { font-weight: bold; display: inline !important; margin: 0 !important; padding: 0 !important; border: none !important; background: none !important; }\n&quot;;
rule += &quot;li { font-weight: bold; }\n&quot;;
rule += &quot;font.xmas-red, li:nth-child(even) { color: #F00000 !important; }\n&quot;;
rule += &quot;font.xmas-green, li:nth-child(odd) { color: #008000 !important; }\n&quot;;
var style = document.createElement(&apos;style&apos;);
var sn = document.createTextNode(rule);
style.appendChild(sn);
document.body.appendChild(style);

setTimeout(loop, 1);&lt;/pre&gt;
&lt;p&gt;span タグには &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CSS&quot;&gt;CSS&lt;/a&gt; が設定されて何かの用途で使われてしまうことが多いので、&lt;br /&gt;数年ぶりに font タグを使ってみました。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/HTML5&quot;&gt;HTML5&lt;/a&gt; には入っていないけど。&lt;/p&gt;
&lt;p&gt;この&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8&quot;&gt;ブックマークレット&lt;/a&gt;は、12/22 開催のおばかアプリ選手権で Blue Light Filter と合わせて&lt;br /&gt;発表しました。28ページ目くらいからです。&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;iframe style=&quot;border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/15734223?rel=0&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; width=&quot;512&quot; height=&quot;421&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center; margin-bottom: 5px;&quot;&gt;&lt;strong&gt; &lt;a title=&quot;Blue Light Filter 〜 おばかアプリ選手権&quot; href=&quot;http://www.slideshare.net/kawa0117/blue-light-filter&quot; target=&quot;_blank&quot;&gt;Blue Light Filter 〜 おばかアプリ選手権&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/kawa0117&quot; target=&quot;_blank&quot;&gt;Yusuke Kawasaki&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20121130/1354271820">
<title>2012年 #yjica Creative Hack賞は『チュッチュTune』！グランプリは AIR 作品</title>
<link>http://kawanet.hatenablog.com/entry/20121130/1354271820</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2012-11-30T19:37:00+09:00</dc:date>
<description>&lt;p&gt;&amp;nbsp;昨日 11/29 は、Yahoo! JAPAN インターネット クリエイティブアワードの贈賞式でした。今年も特別賞審査員として参加させて頂きました。今回の&amp;nbsp;Creative Hack 賞の受賞作品は、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt; アプリの&lt;a href=&quot;http://tyo-id.jp/chuchutune/&quot;&gt;『音楽で相性診断！？チュッチュTune』&lt;/a&gt;でした。おめでとうございます！&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a title=&quot;Yahoo! JAPAN Internet Creative Award 2012 | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8231246479/in/photostream&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8070/8231246479_278e2f9e4d_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;480&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Creative Hack 賞は2009年に始まり、今回で4年目になります。&lt;br /&gt;例年、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%AB%A5%E4%A5%C3%A5%AF&quot;&gt;カヤック&lt;/a&gt;の柳澤さんとともに、審査を担当させてもらっています。&lt;/p&gt;
&lt;p&gt;今年のヤフーは新体制となって、「スマホファースト」を掲げています。&lt;br /&gt;それに伴い今回の Award はすべての部門で、対象がスマホ作品に絞られています。&lt;/p&gt;
&lt;p&gt;スマートデバイスでは、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Bluetooth&quot;&gt;Bluetooth&lt;/a&gt;・&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/NFC&quot;&gt;NFC&lt;/a&gt; あるいは音声を使った通信方式や、&lt;br /&gt;GPS・加速度・ジャイロ・可視光（カメラ）といった各種のセンサー類が、&lt;br /&gt;標準的に使えるようになってきて、アプリ開発者のチャレンジの幅を広げています。&lt;br /&gt;従来の PC では一般ユーザ向けでは容易には利用できなかった機能を使うことで、&lt;br /&gt;今までなかった新しいユーザ体験を手軽に提供できるようになりました。&lt;/p&gt;
&lt;p&gt;『音楽で相性診断！？チュッチュTune』はスマホならではの機能と、&lt;br /&gt;それをうまく演出したクリエイティブも大変、優れています。&lt;br /&gt;柳澤さんと一致で Creative Hack 賞として選出させて頂きました。&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://itunes.apple.com/jp/app/id481662342?mt=8&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; style=&quot;border: 1px solid gray;&quot; title=&quot;f:id:kawanet:20121130192629j:plain&quot; src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kawanet/20121130/20121130192629.jpg&quot; alt=&quot;f:id:kawanet:20121130192629j:plain&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;AIR for &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt; 作品がグランプリ！&lt;/h3&gt;
&lt;p&gt;一般部門のグランプリ作品は、&lt;a href=&quot;http://iro.pico-app.jp&quot;&gt;『いろぴこ』&lt;/a&gt;でした。とっても素敵な作品です。&lt;br /&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Adobe%20AIR&quot;&gt;Adobe AIR&lt;/a&gt; で開発されているため、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt;・&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Android&quot;&gt;Android&lt;/a&gt; の両方に対応しています。&lt;br /&gt;一般部門のブロンズを受賞した &lt;a href=&quot;http://twitter.com/sakusan393&quot;&gt;@sakusan393&lt;/a&gt; さんの&lt;a href=&quot;http://app.393.bz/livewiththewind_ios/&quot;&gt;『Live with the Wind.』&lt;/a&gt;も AIR 製です。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CS6 になって、AIR 3.5 なら特殊なテクニックを使わなくても、かなり速く動くし、&lt;br /&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Xcode&quot;&gt;Xcode&lt;/a&gt; の &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt; シミュレーターも使えて、快適に開発できるようになりました。&lt;br /&gt;&amp;nbsp;もちろん、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone%205&quot;&gt;iPhone 5&lt;/a&gt; 対応アプリも開発できます。（Default-568h@2x.png を追加するだけ）&lt;br /&gt;Native Extension で、iOS 専用機能も使える。&lt;br /&gt;僕が CS5&amp;beta;時代の Packager for &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt; を試していた頃は相当に苦労しましたし、&lt;br /&gt;AppStore から Ban された際もかなり焦ったけど、最近は意外なほど使えます。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;昨日の贈賞式の審査コメントでも「神は細部に宿る」という話がありました。&lt;br /&gt;Flash なら微妙な表現まで作りこみやすいし、それを使いこなせるクリエイターの層も厚い。&amp;nbsp;&lt;br /&gt;AIR 作品がこう受賞しているのは、やはり一日の長があるということですね。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;（参考リンク）&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yahoo! JAPAN Internet Creative Award 過去の&amp;nbsp;Creative Hack 賞&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2011年度：Creative Hack 賞『tweetree』&lt;br /&gt;&lt;a href=&quot;http://kawa.at.webry.info/201111/article_3.html&quot;&gt;http://kawa.at.webry.info/201111/article_3.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2010年度：Creative Hack 賞『&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%CA%A5%AC%A5%B5%A5%AD&quot;&gt;ナガサキ&lt;/a&gt;・アーカイブ』&lt;br /&gt;&lt;a href=&quot;http://creative-award.yahoo.co.jp/prize/2010/g16.html&quot;&gt;http://creative-award.yahoo.co.jp/prize/2010/g16.html&lt;/a&gt; &amp;rarr;あれブログ書いてなかった&amp;hellip;。&lt;/p&gt;
&lt;p&gt;2009年度：Creative Hack 賞『ToriSat』&lt;br /&gt;&lt;a href=&quot;http://kawa.at.webry.info/200911/article_10.html&quot;&gt;http://kawa.at.webry.info/200911/article_10.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20121120/1353402584">
<title>unescape - ページ中の&amp;#xHHHH;や\uHHHHのエスケープを展開するブックマークレット</title>
<link>http://kawanet.hatenablog.com/entry/20121120/1353402584</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2012-11-20T18:09:44+09:00</dc:date>
<description>&lt;p&gt;特に海外の &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/API&quot;&gt;API&lt;/a&gt; のレスポンスで、2バイト文字が &lt;tt&gt;&amp;amp;#xHHHH;&lt;/tt&gt; とか &lt;tt&gt;\uHHHH&lt;/tt&gt; といった形式にエスケープされていて、中身が読めずに面倒なことって、ありますよね。それをブラウザ上で展開してくれる&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8&quot;&gt;ブックマークレット&lt;/a&gt;を書いてみた。&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a style=&quot;font-size: 200%; font-weight: bold; padding: 4px 8px; border: 1px solid #000099; background-color: #ccccff;&quot; href=&quot;javascript:(function(){var cache = {};var regex = /\\u[0-9a-f]{4}|\&amp;amp;(\w+|\#([0-9]+|x[0-9a-f]+))\;/g;var ignore = /[\x00-\x20\&amp;gt;\&amp;lt;\&amp;amp;\&amp;quot;\&apos;]/;var func = function (match) {var ret = cache[match];if (! ret) {var head = match.charAt(0);if (head == &amp;quot;&amp;amp;&amp;quot;) {var p = document.createElement(&amp;quot;p&amp;quot;);p.innerHTML = match;ret = p.firstChild ? p.firstChild.data : match;} else {var src = match.substr(2, 4);var cd = parseInt(src, 16);ret = String.fromCharCode(cd);}if (ret.match(ignore)) ret = match;cache[match] = ret;}return ret;};var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);while(walker.nextNode()) {var src = walker.currentNode.data;if (! src) continue;var dst = src.replace(regex, func);if (src != dst) walker.currentNode.data = dst;}})()&quot;&gt;unescape&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記のリンクを、リンクバー等にドラッグ＆ドロップしてから使います。&lt;br /&gt;とりあえず&amp;uarr;をクリックするだけでも、&amp;darr;で動作を試せます。&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;利用例（１）&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/XML&quot;&gt;XML&lt;/a&gt; 等で使われる &lt;tt&gt;&amp;amp;#xHHHH;&lt;/tt&gt; や &lt;tt&gt;&amp;amp;#DDDDD;&lt;/tt&gt; 等に対応&lt;/p&gt;
&lt;pre&gt;&amp;lt;title&amp;gt;&amp;amp;#24536;&amp;amp;#24180;&amp;amp;#20250;&amp;amp;#12398;&amp;amp;#21442;&amp;amp;#21152;&amp;amp;#32773;&amp;amp;#24773;&amp;amp;#22577;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;darr;&lt;br /&gt;&amp;lt;title&amp;gt;忘年会の参加者情報&amp;lt;/title&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;利用例（２）JSON 等で使われる &lt;tt&gt;\uHHHH&lt;/tt&gt; に対応&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&quot;message&quot;: &quot;\u4eca\u65e5\u8a95\u751f\u65e5(*^_^*)\n22\u6b73\u304b\u3041\u301c(&amp;gt;_\u003C)\n&quot;,&lt;br /&gt;&amp;darr;&lt;br /&gt;&quot;message&quot;: &quot;今日誕生日(*^_^*)\n22歳かぁ〜(&amp;gt;_\u003C)\n&quot;,&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ただし、&lt;tt&gt;&amp;lt; &amp;gt; &quot; &apos;&lt;/tt&gt; などは念の為にエスケープされたまま残します。&lt;br /&gt;&lt;tt&gt;%HH&lt;/tt&gt; の URL &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C9&quot;&gt;エンコード&lt;/a&gt;のデコードには対応していません。&lt;br /&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9&quot;&gt;ソースコード&lt;/a&gt;は以下の通り。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;var cache = {};
var &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/regex&quot;&gt;regex&lt;/a&gt; = /\\u[0-9a-f]{4}|\&amp;amp;(\w+|\#([0-9]+|x[0-9a-f]+))\;/g;
var ignore = /[\x00-\x20\&amp;gt;\&amp;lt;\&amp;amp;\&quot;\&apos;]/;
var func = function (match) {
&amp;nbsp;&amp;nbsp;var ret = cache[match];
&amp;nbsp;&amp;nbsp;if (! ret) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var head = match.charAt(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (head == &quot;&amp;amp;&quot;) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var p = document.createElement(&quot;p&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.innerHTML = match;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret = p.firstChild ? p.firstChild.data : match;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var src = match.substr(2, 4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var cd = parseInt(src, 16);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret = String.fromCharCode(cd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ret.match(ignore)) ret = match;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache[match] = ret;
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;return ret;
};

var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
while(walker.nextNode()) {
&amp;nbsp;&amp;nbsp;var src = walker.currentNode.data;
&amp;nbsp;&amp;nbsp;if (! src) continue;
&amp;nbsp;&amp;nbsp;var dst = src.replace(&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/regex&quot;&gt;regex&lt;/a&gt;, func);
&amp;nbsp;&amp;nbsp;if (src != dst) walker.currentNode.data = dst;
}&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;未だに US-ASCII しか考慮しない人・環境には、エスケープした方が安全なのだろうけど。。。&lt;/p&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20121120/1353339429">
<title>『愛のあるユニークで豊かな書体』TypeSquare ￥0キャンペーン</title>
<link>http://kawanet.hatenablog.com/entry/20121120/1353339429</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2012-11-20T00:37:09+09:00</dc:date>
<description>&lt;p style=&quot;text-align: center; font-size: 200%; font-family: Ryumin Bold KL;&quot;&gt;愛のあるユニークで豊かな書体&lt;/p&gt;
&lt;p style=&quot;text-align: center; font-size: 200%; font-family: Shin Go Regular;&quot;&gt;愛のあるユニークで豊かな書体&lt;/p&gt;
&lt;p style=&quot;text-align: center; font-size: 200%; font-family: Haruhi Gakuen;&quot;&gt;愛のあるユニークで豊かな書体&lt;/p&gt;
&lt;p style=&quot;text-align: center; font-size: 200%; font-family: Kanteiryu;&quot;&gt;愛のあるユニークで豊かな書体&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E2%A5%EA%A5%B5%A5%EF&quot;&gt;モリサワ&lt;/a&gt;の Web フォントが12月いっぱいまで無料で使える&amp;nbsp;&lt;a href=&quot;http://typesquare.com&quot;&gt;TypeSquare&lt;/a&gt; ￥0キャンペーンが実施中。試してみました。Web フォントが適用されるまで、少しだけ表示にタイムラグがあるけど、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/JavaScript&quot;&gt;JavaScript&lt;/a&gt; を１行入れるだけで、簡単に使うことができました。&lt;/p&gt;
&lt;p&gt;&amp;uarr;はテキストデータなので、コピー＆ペーストできます。非対応のブラウザだと、普通のフォントで表示されちゃっていると思いますが、対応ブラウザでは以下のように表示されます。（&amp;darr;は画像です）&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://typesquare.com&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; style=&quot;border: 1px solid gray;&quot; title=&quot;f:id:kawanet:20121120003821p:plain&quot; src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kawanet/20121120/20121120003821.png&quot; alt=&quot;f:id:kawanet:20121120003821p:plain&quot; width=&quot;425&quot; height=&quot;290&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみにここで使っているフォント名は以下のとおりです。&lt;/p&gt;
&lt;pre&gt;font-family: Ryumin Bold KL
font-family: Shin Go Regular
font-family: Haruhi Gakuen
font-family: Kanteiryu&lt;/pre&gt;
&lt;p&gt;JS 実行時にページ中で使われている文字のフォントデータのみをダウンロードするようでその後でダイナミックにテキストを追加しても新しい文字はデフォルトのフォントで表示されてしまいます。（ただし、既に本文中で使われている文字については、ダウンロード済のフォントがそのまま適用されるので、ダイナミックに追加しても問題なく表示される）&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt; でも大丈夫だったから、これは使えそう。&lt;/p&gt;
&lt;script charset=&quot;utf-8&quot; type=&quot;text/javascript&quot; src=&quot;//typesquare.com/accessor/script/typesquare.js?9OiLcVZ0YUo%3D&quot;&gt;&lt;/script&gt;</description>
</item>
<item rdf:about="http://kawanet.hatenablog.com/entry/20121102/1351795806">
<title>Plug and Play Tech Center で活動開始［釣り］</title>
<link>http://kawanet.hatenablog.com/entry/20121102/1351795806</link>
<dc:creator>kawanet</dc:creator>
<dc:date>2012-11-02T03:50:06+09:00</dc:date>
<description>&lt;p&gt;今日は、Sunnyvale の Plug and Play Tech Center で作業中。&lt;br /&gt;この夏に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B7%A5%EA%A5%B3%A5%F3%A5%D0%A5%EC%A1%BC&quot;&gt;シリコンバレー&lt;/a&gt;オフィスを開設した ChatWork 社に &lt;span style=&quot;color: #cc0000;&quot;&gt;&lt;strong&gt;今日だけゲスト&lt;/strong&gt;&lt;/span&gt; でお邪魔しています。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;PlugAndPlayTechCenter.com | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/6658546545/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7018/6658546545_26f4b067fa_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;425&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;世界各国から集まった300社のスタートアップ企業がこの１つのビルにひしめいています。&lt;br /&gt;（今日は曇っていて残念な感じなので、この写真は１年くらいに撮影したものです&amp;hellip;）&lt;br /&gt;Plug and Play Tech Center については、&lt;a href=&quot;http://mtl.recruit.co.jp/blog/2012/05/coworking.html&quot;&gt;MTL ブログの記事&lt;/a&gt; でもご紹介しました。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Ii-san working at ChatWork Sunnyvale | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/8145333357/in/photostream&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8465/8145333357_06f7edf062_z.jpg&quot; alt=&quot;photo&quot; width=&quot;640&quot; height=&quot;428&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ご案内いただいた ChatWork Inc の COO 井伊さん。&lt;br /&gt;昨年の MA7 でもお世話になりました。ありがとうございました。&lt;br /&gt;US だと、オフィスで立って仕事している人もままいます。集中できるらしい。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;EC Studio「インナーサークルに紛れ込む？！」#itnomikai | Flickr - Photo Sharing!&quot; href=&quot;http://www.flickr.com/photos/u-suke/6152210496/in/datetaken/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm7.staticflickr.com/6193/6152210496_d78d350c46_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;478&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;昨年9月にサンフランシスコで開催された日本人 IT 飲み会（&amp;uarr;）で ChatWork の社長の山本さんにお会いした際に『アメリカ法人設立！』と『マウンテンビューの物件決定！』と発表されて、その前のめりな積極姿勢に驚いたのですが、その後 US で、アジアでと、着実に活動を広げられているようです。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ChatWork 社の US での活動については &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Facebook&quot;&gt;Facebook&lt;/a&gt; の &lt;a href=&quot;http://www.facebook.com/silicon.valley.challenge&quot;&gt;ChatWork シリコンバレー挑戦日記&lt;/a&gt; を参照下さい。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;すみません、タイトルは釣りです。&lt;br /&gt;来週いっぱい&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B7%A5%EA%A5%B3%A5%F3%A5%D0%A5%EC%A1%BC&quot;&gt;シリコンバレー&lt;/a&gt;におります。&lt;/p&gt;</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201201/article_2.html">
<title>インターネット FAX サービス比較（初期費用無料キャンペーン限定）</title>
<link>http://kawa.at.webry.info/201201/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2012-01-03T12:33:23+09:00</dc:date>
<dc:subject>IP電話</dc:subject>
<dc:subject>Skype</dc:subject>
<dc:subject>Fax</dc:subject>
<description>今でもまだ、FAX のやりとりがどうしても必要になることが、ときどきあります。自宅の FAX 専用機は受信はできるものの、スキャナ部が壊れてて送信ができず、Windows の FAX 機能から送信してるけど、PC 用モデムを調達するのが大変だった。FAX が送信できるコンビニに行くのも面倒です。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201201/article_1.html">
<title>ドコモOptimus brightに1円乗り換え（L-07C/SIMロック解除対応）</title>
<link>http://kawa.at.webry.info/201201/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2012-01-02T14:03:52+09:00</dc:date>
<dc:subject>SIM</dc:subject>
<dc:subject>docomo</dc:subject>
<dc:subject>Android</dc:subject>
<description>iPhone 3GS の契約から2年経って更新月になったので、docomo に乗り換えました。SIM フリー端末＋テザリング利用を前提するなら、Xi（クロッシィ）契約するのが良いみたいですが、Xi は次回にして、今回は FOMA 契約にしました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201112/article_3.html">
<title>MacBook Pro メモリ交換（4GB→8GB）13inch mid-2009 MB990J/A</title>
<link>http://kawa.at.webry.info/201112/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-12-30T12:43:00+09:00</dc:date>
<dc:subject>Mac</dc:subject>
<description>（続報）メモリを入れ替えたところ、どうも 30分～4時間おきくらいに Mac がシステムエラーで停止してしまう事例が発症。手元の MacBook Pro のメモリ仕様は PC3-8500 1066MHz であり、店員さんに聞くと『今回購入した PC3-10600 1333MHz のメモリとは相性が悪いかも？』とのこと。メモリが多いと快適だけど、このエラー頻度だと仕事にならないので、いったん外してます。。。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201112/article_2.html">
<title>《これはすごい》ATH-ANC23 ノイズキャンセリングヘッドホン（イヤホン）QuietPoint</title>
<link>http://kawa.at.webry.info/201112/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-12-30T12:13:49+09:00</dc:date>
<dc:subject /><description>飛行機の機内とか、騒音の波形を打ち消す「ノイズキャンセリング」のヘッドホンは関心があったけど、３～５万円くらいで高いイメージがありました。今は安いイヤホンタイプのものも出ているんですね。衝動買いしてしまいました。　ヨドバシカメラ AKIBA のアクティブノイズキャンセリングヘッドホンのコーナーで各製品を試して、audio-technica（オーディオテクニカ）ATH-ANC23 を購入。これ、いいです。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201112/article_1.html">
<title>MacBook Pro HDD 換装（2.5インチ9.5mm厚） </title>
<link>http://kawa.at.webry.info/201112/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-12-10T15:45:00+09:00</dc:date>
<dc:subject>HDD</dc:subject>
<dc:subject>Mac</dc:subject>
<description>2009年に買った 13インチ MacBook Pro (MB990J/mid 2009) の内蔵 HDD は 160GB。Adobe 製品を入れて、Xcode を入れて・・・とやっていると容量が足りなくなります。今回 Mac OS X 10.7 Lion にアップグレードするのに合わせて、HDD を交換してみました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201111/article_3.html">
<title>今年の #yjica Creative Hack賞は『tweetree』おめでとうございます！</title>
<link>http://kawa.at.webry.info/201111/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-11-25T16:48:15+09:00</dc:date>
<dc:subject>Yahoo</dc:subject>
<description>今日11月25日（金）は、東京ミッドタウンの Billboard Live TOKYO で開催中の Yahoo! JAPAN インターネットクリエイティブアワード 2011 (Yahoo! Japan Internet Creative Award 2011) の贈賞式に参加しています。今年も、カヤック柳澤さんとCreative Hack賞の特別賞審査員として参加させて頂きました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201111/article_2.html">
<title>[Mac] [Perl] MySQL 5.5.17＋DBD::mysql インストール手順メモ</title>
<link>http://kawa.at.webry.info/201111/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-11-06T11:19:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<dc:subject>MySQL</dc:subject>
<dc:subject>Mac</dc:subject>
<description>Mac OS X 10.6 (Leopard) のローカル環境に MySQL サーバとPerl の DBD::mysql モジュールをインストールしてみたメモ。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201111/article_1.html">
<title>#MA7 締切直前36時間耐久ハッカソン（11/6夜まで）開催中！</title>
<link>http://kawa.at.webry.info/201111/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-11-05T20:36:01+09:00</dc:date>
<dc:subject /><description>MA7 の〆切が、来週11月7日（月）夜24時に迫って来ました。皆さん、作品の応募はもうお済みでしょうか？</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201110/article_2.html">
<title>形態素解析 MeCab を Perl モジュール Text::MeCab から使う</title>
<link>http://kawa.at.webry.info/201110/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-10-29T18:08:00+09:00</dc:date>
<dc:subject>形態素解析</dc:subject>
<dc:subject>Perl</dc:subject>
<dc:subject>MeCab</dc:subject>
<description>久しぶりに MeCab をインストールしてみた手順メモ。Perl バインディングは、前回（2006年!）は標準の MeCab.pm モジュールを利用しましたが、今なら牧さんの Text::MeCab の方がいいらしい。環境は、Mac OS X 10.6.8 と Amazon EC2 Amazon Linux で試しました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201110/article_1.html">
<title>米国T-MobileのSIMで、unlocked Android携帯で定額データ通信（テザリング）</title>
<link>http://kawa.at.webry.info/201110/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-10-23T12:32:00+09:00</dc:date>
<dc:subject>SIM</dc:subject>
<dc:subject>Android</dc:subject>
<description>今月は出張でボストンとサンフランシスコ・シリコンバレーに行ってきました。先月の出張は短期だったので、SoftBank の海外パケットし放題（2,980円／日）で済ませたけど、今回は期間も少し長いので、現地の SIM カードを入手してパケ放題してきました。携帯電話会社（キャリア）は T-Mobile にしました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201109/article_4.html">
<title>Tieroid - Android Marketのアプリ販売価格を揃えるBookmarklet</title>
<link>http://kawa.at.webry.info/201109/article_4.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-09-25T22:55:00+09:00</dc:date>
<dc:subject>iOS</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<dc:subject>Android</dc:subject>
<description>少し前から日本でも Android Market でのアプリ価格を販売地域ごとに設定できるようになりました。各国ごとに「1.99」みたいな値付けができて、より魅力的にみえる値段設定ができる半面、30地域くらいあるので、それぞれに値を入れるのは、結構、面倒な作業です。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201109/article_3.html">
<title>9/15『IT 飲み会 in サンフランシスコ』に参加してます #itnomikai</title>
<link>http://kawa.at.webry.info/201109/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-09-16T14:38:00+09:00</dc:date>
<dc:subject>SF</dc:subject>
<description>IT 飲み会 in サンフランシスコ に参加してます。ジャパンタウンに来たのは初めてかも。New Poeple という会場です。TechCrunch Disrupt 参加のために日本から来て SF 滞在中の日本人の方、こちらに在住されている日本人の方が集まっています。日本からの US 進出をテーマに、トーク＋パネルディスカッションがありました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201109/article_2.html">
<title>TechCrunch Disrupt Hackathon ハッカソン開発者の食事 #tcdisrup</title>
<link>http://kawa.at.webry.info/201109/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-09-12T21:49:00+09:00</dc:date>
<dc:subject>tcdisrupt</dc:subject>
<dc:subject>Hackathon</dc:subject>
<description>MTL ブログに TechCrunch Disrupt Hackathon ハッカソンに参加・発表してきました。 をポストしたので、こちらにはオマケで、会場で開発しているハッカーの食糧事情を紹介します。あまり開発作業に集中していると、ついついご飯を食べずに何時間も開発しちゃうことって、ありますよね？このイベントでは、常に食事が提供されて、空腹を知らずに、開発作業に没頭できる環境が提供されていました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201109/article_1.html">
<title>San Francisco の TechCrunch Hackathon に来ています</title>
<link>http://kawa.at.webry.info/201109/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-09-11T10:11:00+09:00</dc:date>
<dc:subject>SF</dc:subject>
<dc:subject>tcdisrupt</dc:subject>
<dc:subject>Hackathon</dc:subject>
<description>今朝到着の飛行機で、サンフランシスコにやってきました。時差ボケです。現在、TechCrunch SF 2011 のハッカソン に参加しています。広い会場に数百人のハッカーが集まって、ワシャワシャと開発していっています。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201106/article_1.html">
<title>配列内の値の合計値をワンライナーで書く (sum of array) #perl</title>
<link>http://kawa.at.webry.info/201106/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-06-11T17:18:00+09:00</dc:date>
<dc:subject>Moscow</dc:subject>
<dc:subject>Perl</dc:subject>
<description>Perl と言えばタマネギ、タマネギといえばロシアはモスクワ。Moscow.pm のメーリングリスト の話題が面白かった。Perl には、map や grep みたいに美しく配列処理できる強力な関数があるのに、sum とか avg みたいな集約系の関数は用意されておらず、自前で書く必要がある。</description>
</item>
<item rdf:about="http://www.kawa.net/works/perl/feedpp/feedpp.html">
<title>[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合</title>
<link>http://www.kawa.net/works/perl/feedpp/feedpp.html</link>
<dc:date>2011-05-08T22:07:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<description>XML::FeedPP モジュールは、
RSS 2.0、RSS 1.0 (RDF)、Atom 0.3（および1.0）フィードの
XML ファイルを解析・生成・変換・結合するための
Perl モジュールです。
RSS ベースの1種類の共通 API で RSS・RDF・Atom の各フォーマットの処理に対応しているため、
手軽に扱えます。
フィードの読み出し・書き込みはもちろん、
RSSからRDFへ、RDFからAtomへといった各フォーマット間の相互変換も可能です。
他サイトからダウンロードした複数のファイルを結合して、
まとめて1つのファイルとして出力することもできます。
公開版アーカイブ：
XML-FeedPP-0.43.tar.gz
TARGZ
CPAN
 ←通常パッケージ
最新版ソースファイル：
lib/XML/FeedPP.pm
PM
Subversion レポジトリ：
http://xml-treepp.googlecode.com/svn/trunk/XML-FeedPP/
SVN
※ XML::FeedPP バージョン 0.30 から、Atom 1.0 に対応しました。（デフォルトは Atom 0.3 です）</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201104/article_1.html">
<title>openFrameworks ワークショップでバージョン 0.07 を使ってみた</title>
<link>http://kawa.at.webry.info/201104/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-04-30T20:17:00+09:00</dc:date>
<dc:subject>openFrameworks</dc:subject>
<description>openFrameworks の作者ザッカリー・リバーマン（Zachary Lieberman）さんの来日に合わせて開催されたワークショップ『Flying Tokyo #5 Special: openFrameworks Workshop』で、実際に作ってみたデモを紹介します。イベントについては、MTL ブログ にも書きました。（書き換えたソースコードは、どうやって公開するのがいいかなあ…）</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201103/article_3.html">
<title>staticMaplet - Google Mapsの静的地図画像HTMLが取れるブックマークレット</title>
<link>http://kawa.at.webry.info/201103/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-03-20T23:33:10+09:00</dc:date>
<dc:subject>Google Maps</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<description>Google Static Maps API を利用して、Google Maps で表示している地図の静的地図を取得するブックマークレットを作成しました。ブログに静的地図を貼るのに便利です。下記のリンクをブラウザのブックマークバーにドラッグ＆ドロップしてご利用下さい。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201103/article_2.html">
<title>AIR for Android・iOS で、ASからソフトウェアキーボードを扱う</title>
<link>http://kawa.at.webry.info/201103/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-03-04T01:06:00+09:00</dc:date>
<dc:subject>ActionScript</dc:subject>
<dc:subject>iOS</dc:subject>
<dc:subject>Android</dc:subject>
<description>ActionScript のリファレンス で公開されていますが、AIR 2.6 (Flash Player 10.2) からはAndroid・iOS のソフトウェアキーボード関連の API が追加されています。needsSoftKeyboard など、使いそうなものをピックアップしてみます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201103/article_1.html">
<title>Capabilities.os で AIR for Android＆iOS の OS バージョン判定</title>
<link>http://kawa.at.webry.info/201103/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-03-04T00:17:14+09:00</dc:date>
<dc:subject>ActionScript</dc:subject>
<dc:subject>iOS</dc:subject>
<dc:subject>Android</dc:subject>
<description>AIR 2.6 for Android が公開されました。稼働している OS バージョンを返す ActionScript の Capabilities.os プロパティ は、AIR for Android や AIR for iOS でも利用できます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_6.html">
<title>iPhone・iPadの搭載CPU・メモリ容量・GPU・OSバージョンまとめ</title>
<link>http://kawa.at.webry.info/201102/article_6.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-17T09:18:52+09:00</dc:date>
<dc:subject>iPad</dc:subject>
<dc:subject>iOS</dc:subject>
<dc:subject>iPhone</dc:subject>
<description>iPhone・iPod touch・iPad 各機種に搭載されている CPU・周波数・メモリ容量、GPU（OpenGL-ES バージョン）をまとめました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_5.html">
<title>iPhone・iPad のソフトウェアキーボードのサイズ・縦横比まとめ</title>
<link>http://kawa.at.webry.info/201102/article_5.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-16T23:20:00+09:00</dc:date>
<dc:subject>iPad</dc:subject>
<dc:subject>iOS</dc:subject>
<dc:subject>iPhone</dc:subject>
<description>iPhone・iPad のソフトウェアキーボードのサイズは機種ごとに固定で、どの言語でも同じサイズ・縦横比になります。表にまとめておきます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_4.html">
<title>Flash 製 iPad アプリをリリースしました（Asia Alphabets HD シリーズ）</title>
<link>http://kawa.at.webry.info/201102/article_4.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-16T23:08:00+09:00</dc:date>
<dc:subject /><description>昨年2～9月にリリースした iPhone アプリに続けて、iPad 版アプリをリリースしました。Asian Alphabet シリーズ5本とも、App Store からダウンロードできるようになりました。iPhone 版と iPad 版は、同じ ActionScript のソースコードを完全に共有しています。次期バージョンの AIR for iOS を使っています。GPU を活用し、快適に動作します。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_3.html">
<title>KDrawSprite: AIR for iOSでcacheAsBitmap不要の高速GPU描画</title>
<link>http://kawa.at.webry.info/201102/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-14T22:58:00+09:00</dc:date>
<dc:subject>Flash</dc:subject>
<dc:subject>ActionScript</dc:subject>
<dc:subject>iPhone</dc:subject>
<description>Packager for iPhone 改め次期 AIR for iOS 向けアプリや、AIR for Android 向けアプリの開発時に、デバイスの GPU 性能を引き出す ActionScript ライブラリ KDrawSprite をリリースしました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_2.html">
<title>電源要らずでラジオが聴ける！鉱石ラジオを作ってみた</title>
<link>http://kawa.at.webry.info/201102/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-14T00:15:00+09:00</dc:date>
<dc:subject>ラジオ</dc:subject>
<dc:subject>ピュルピュル</dc:subject>
<description>先日、愛宕山にある NHK 放送博物館 で見た「さぐり式鉱石ラジオ」に触発されて、秋葉原でゲルマニウムダイオードを買ってきて、鉱石ラジオ を作ってみました。なんと電源不要でラジオが聴けるという謎の仕組み。戦前は結構使われたらしい。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201102/article_1.html">
<title>Androidアプリ用にシティバンクの銀行口座を登録してみた Google Checkout</title>
<link>http://kawa.at.webry.info/201102/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-02-10T21:29:13+09:00</dc:date>
<dc:subject>Google</dc:subject>
<dc:subject>Citibank</dc:subject>
<dc:subject>Android</dc:subject>
<description>Android Market でアプリを販売するために、Google Checkout で販売アカウントの入金先の銀行口座情報（Bank information）を登録してみました。口座登録してなくても、有料アプリの販売は開始できますが、入金されません。今回は、シティバンクの口座を使ってみました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201101/article_3.html">
<title>openFrameworks＋ofxiPhoneでiPhone・iPad用Hello, world!</title>
<link>http://kawa.at.webry.info/201101/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-01-12T02:55:00+09:00</dc:date>
<dc:subject>Xcode</dc:subject>
<dc:subject>openFrameworks</dc:subject>
<dc:subject>iPhone</dc:subject>
<description>openFrameworks では、Windows・Mac 向けアプリに限らず、ofxiPhone アドオンでiPhone・iPod touch・iPad 上で稼働するアプリケーションを開発することができます。OpenCV など openFrameworks のライブラリを手軽に iPhone 上で使えるらしい。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201101/article_2.html">
<title>openFrameworks＋ofxKinect アドオンで Kinect の深度センサーを試す </title>
<link>http://kawa.at.webry.info/201101/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-01-09T08:06:00+09:00</dc:date>
<dc:subject>Kinect</dc:subject>
<dc:subject>openFrameworks</dc:subject>
<dc:subject>Xbox</dc:subject>
<description>前回のポスト で、Mac OS X の openFrameworks の開発環境ができました。今度は、マイクロソフトの Kinect を使ってみます。Kinect は、距離が測れる深度センサーが付いています。単品で買うと USB 接続のアダプタが付いてくるので、Mac・Windows からも使えます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201101/article_1.html">
<title>openFrameworks で Hello, world! してみる (Mac OS X) </title>
<link>http://kawa.at.webry.info/201101/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2011-01-09T02:35:00+09:00</dc:date>
<dc:subject>C++</dc:subject>
<dc:subject>Xcode</dc:subject>
<dc:subject>openFrameworks</dc:subject>
<description>openFrameworks http://www.openframeworks.cc/ が格好いいらしい。プログラムのコードをあんまり書かなくてもネイティブアプリが簡単に作れて、TrueType フォントを表示したり、Arduino を操ったり、音声再生したり、ビデオ再生したり、Web カメラを使ったり、OpenCV で画像認識するためのライブラリがセットになって配布されていて、しかも手軽に使える。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201011/article_3.html">
<title>ImageMagickでAndroidアプリ用にiPhone風の角丸アイコン画像を生成する</title>
<link>http://kawa.at.webry.info/201011/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-11-23T15:19:05+09:00</dc:date>
<dc:subject>ImageMagick</dc:subject>
<dc:subject>PNG</dc:subject>
<dc:subject>Android</dc:subject>
<description>iPhone アプリのアイコンは、アプリ内の PNG に対して iOS が角丸を付けて表示しますが、Android アプリのアイコンは、アプリ内の PNG ファイルがそのまま表示されます。Android アプリ用に、iPhone アプリみたいな角丸アイコンを作成する手順をまとめました。ImageMagick の convert コマンドを使うので、無料で作れます。角丸は、αチャンネルを使っているので、ジャギーが目立たずに、スムーズに表示されます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201011/article_2.html">
<title>次世代テレビ勉強会（第1回）に参加。Google TVでウェブコンテンツも16:9時代</title>
<link>http://kawa.at.webry.info/201011/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-11-13T16:12:00+09:00</dc:date>
<dc:subject>UI</dc:subject>
<dc:subject>Google</dc:subject>
<dc:subject>TV</dc:subject>
<description>六本木ヒルズのテレビ朝日の会議室で開催された 次世代テレビ勉強会 に行ってきました。会場には、SONY 製の米国販売の Google TV が３台も並んでます。メディアテクノロジーラボ のオフィスで STB は見ましたが、TV 本体は初めてです。Wi-Fi は電波法の問題があるので使わず、今回は e-mobile 経由の有線 LAN を使いました。すぐに定員になって、参加できなかった方も多数。また次回も開催されるそうです。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201011/article_1.html">
<title>BackType APIでURL毎のTwitterのツイート数を取得する</title>
<link>http://kawa.at.webry.info/201011/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-11-04T22:41:00+09:00</dc:date>
<dc:subject>BackType</dc:subject>
<dc:subject>Twitter</dc:subject>
<dc:subject>API</dc:subject>
<description>Twitter で、そのページが何回言及されたかツイート数を取得する API の使い方を紹介します。このブログにも導入 している DISQUS COMMENTS は、コメント機能を提供するだけでなくて、「Reactions」として Twitter でそのページが言及されたツイートも合わせて表示してくれます。BackType という別サービスと連携して実現されている機能です。この BackType の API を使うと、Twitter APIを使わずに URL ごとのツイート...</description>
</item>
<item rdf:about="http://www.kawa.net/works/perl/treepp/treepp.html">
<title>[Perl] XML::TreePP - Pure Perl実装によるXMLファイル展開モジュール</title>
<link>http://www.kawa.net/works/perl/treepp/treepp.html</link>
<dc:date>2010-10-31T20:15:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<description>XML::TreePP モジュールは、
XML ファイルを解析してツリー構造の多次元変数（ハッシュ／配列）に展開します。
XML テキストと Perl オブジェクト（ハッシュ＆配列）間の相互変換が可能です。
コンパイル不要の Pure Perl 実装モジュールなので、
プロバイダのレンタルサーバ環境でも
.pm ファイル単体のコピーのみで手軽に利用できます。
（Ajax で利用する JavaScript の XMLHttpRequest オブジェクトのように）
サーバからの XML ファイルのダウンロード処理にも対応しています。
安定版アーカイブ：
XML-TreePP-0.41.tar.gz
TARGZ
CPAN
←通常パッケージ
最新版ソースファイル：
lib/XML/TreePP.pm
PM
←.pmファイルのみ必要な場合
Subversion レポジトリ：
http://xml-treepp.googlecode.com/svn/trunk/XML-TreePP/
SVN</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201010/article_5.html">
<title>ミッドタウンで Ars Electronica と新 MacBook Air にタッチ！</title>
<link>http://kawa.at.webry.info/201010/article_5.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-10-30T20:52:00+09:00</dc:date>
<dc:subject>UI</dc:subject>
<dc:subject>タッチ</dc:subject>
<dc:subject>Mac</dc:subject>
<description>ミッドタウンで Tokyo Midtown DESIGN TOUCH というのをやっていたので、タッチしてきました。10月28日～11月3日まで、ミッドタウン内で複数のデザイン系イベントが同時開催されています。そのメインコンテンツとなる DESIGN TOUCH Exhibition は、オーストリアのリンツにある「アルスエレクトロニカ」Ars Electronica とのコラボ企画です。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201010/article_4.html">
<title>日経ソフトウエア（2010年12月号）に JavaScript のコラムを寄稿</title>
<link>http://kawa.at.webry.info/201010/article_4.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-10-30T18:35:47+09:00</dc:date>
<dc:subject>JavaScript</dc:subject>
<dc:subject>HTML5</dc:subject>
<description>今月23日に発売された 日経ソフトウエア（2010年12月号） に2ページの短い記事を寄稿させて頂きました。特集１『HTML5 時代が目前！本気で学ぶ JavaScript』の中で、『HTML5 は JavaScript プログラムをスマートにする』というコラムです。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201010/article_3.html">
<title>YAPC::Asia 2010 前夜祭～本編～ハッカソンに参加しました</title>
<link>http://kawa.at.webry.info/201010/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-10-27T18:58:05+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<dc:subject>YAPC</dc:subject>
<description>2010年10月15～16日に開催された YAPC::Asia 2010 に参加しました。今年も大岡山の東工大の会場です。発表資料と写真を交えてレポートします。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201010/article_2.html">
<title>Encode::JP::Emoji の携帯絵文字コード変換マッピングまとめ</title>
<link>http://kawa.at.webry.info/201010/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-10-24T21:12:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<dc:subject>絵文字</dc:subject>
<dc:subject>Unicode</dc:subject>
<description>Encode::JP::Emoji モジュールは、多数のエンコーディングを提供しています。ここでも解説しています が、ちょっと複雑なので改めて紹介します。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201010/article_1.html">
<title>Unicode 6.0絵文字対応Encode::JP::Emoji 0.60をリリース(Perl)</title>
<link>http://kawa.at.webry.info/201010/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-10-24T19:56:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<dc:subject>絵文字</dc:subject>
<dc:subject>Unicode</dc:subject>
<description>今月10月11日 に Unicode Version 6.0 がリリースされたのに対応して、川崎がメンテしている Perl モジュール Encode::JP::Emoji もバージョンアップして、Unicode 6.0 で追加された絵文字を正式サポートしました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_8.html">
<title>Bookmarklet Maker - JavaScriptからブックマークレットHTMLタグ生成</title>
<link>http://kawa.at.webry.info/201009/article_8.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-26T21:59:00+09:00</dc:date>
<dc:subject>JavaScript</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<description>JavaScript のソースコードをフォームに記入すると、ブックマークレットの a 要素からなるHTML コードを生成してくれるページ Bookmarklet Maker を作りました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_7.html">
<title>img2html - 写真をブログに貼るためのHTMLソースを生成するブックマークレット</title>
<link>http://kawa.at.webry.info/201009/article_7.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-26T21:09:00+09:00</dc:date>
<dc:subject>picasa</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<dc:subject>flickr</dc:subject>
<description>先日の flickr の写真をブログに貼り付ける際に便利なブックマークレット では、flickr の写真ページを表示させた状態でブックマークレットを起動すると写真ページへの a タグ＋写真の img タグからなる HTML ソースを生成するものでした。今回の img2html は、flickr 以外のどのサイトでも使える汎用版です。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_6.html">
<title>Vox → TypePad → Blogger とブログを移行した（Twitter ログ置き場）</title>
<link>http://kawa.at.webry.info/201009/article_6.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-24T02:07:00+09:00</dc:date>
<dc:subject>OAuth</dc:subject>
<dc:subject>Twitter</dc:subject>
<dc:subject>Blogger</dc:subject>
<description>Six Apart の無料ブログサービス Vox が2010年10月1日にサービス終了してしまいます。僕も 2006年にアカウントを作って、http://kawanet.vox.com/ を使わせてもらっていました。実際には、いわゆるブログ としては使わずに、Twitter のツイートのログ置き場にしてました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_5.html">
<title>Cantonese Alphabet - 広東語に香港方式のローマ字ルビを振るiPhoneアプリ</title>
<link>http://kawa.at.webry.info/201009/article_5.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-13T02:41:00+09:00</dc:date>
<dc:subject>Flash</dc:subject>
<dc:subject>iPhone</dc:subject>
<dc:subject>香港</dc:subject>
<description>iPhone アプリ Cantonese Alphabet（カントニーズ・アルファベット） をリリースしました。香港などで使われる広東語の読み方・発音をローマ字のルビとして表示するアプリケーションです。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_4.html">
<title>Japanese Alphabet - 日本語の読み方をローマ字表示するiPhoneアプリを公開</title>
<link>http://kawa.at.webry.info/201009/article_4.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-13T01:59:00+09:00</dc:date>
<dc:subject>Flash</dc:subject>
<dc:subject>ActionScript</dc:subject>
<dc:subject>iPhone</dc:subject>
<description>iPhone アプリ Japanese Alphabet（ジャパニーズ・アルファベット） をリリースしました。日本語の読み方・発音をローマ字のルビとして表示するアプリケーションです。漢字・ひらがな・カタカナを含む、漢字仮名交じり文に対応しています。（9月9日発売開始）</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_3.html">
<title>Mashup Camp で「MAP★THE★RAPPER」を５時間で開発してみた。#MA6</title>
<link>http://kawa.at.webry.info/201009/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-12T04:13:00+09:00</dc:date>
<dc:subject>Yahoo</dc:subject>
<dc:subject>MA6</dc:subject>
<dc:subject>地図</dc:subject>
<description>今年も、Mashup Awards のシーズンがやってきました。MA6 では、開発者向けイベント の新企画として、『Mashup Camp』を始めました。9月11日（土）にその第１回 Maps Day を開催しました。開発者が同じ会場に集まって時間と場所を共有し、チームごとに協力して、あるいは個人個人で、と思い思いに集中して開発に取り組む日帰り開発合宿形式のイベントです。「ハッカソン」ともいいます。もちろん、自称ハッカーでない方も参加歓迎です。　今回の Mash...</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_2.html">
<title>祝！共著『ソーシャルストリーム・ビジネス』重版決定♪　好評発売中！ </title>
<link>http://kawa.at.webry.info/201009/article_2.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-01T03:17:00+09:00</dc:date>
<dc:subject>ソーシャルストリーム</dc:subject>
<dc:subject>リクルート</dc:subject>
<description>川崎がリクルートの メディアテクノロジーラボ が執筆した書籍『ソーシャルストリーム・ビジネスTwitter、Facebook、iPhone時代の消費者を巻き込むビジネスの新ルール』の増刷が決定しました！8888!</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201009/article_1.html">
<title>ウェブリブログに、はてなスターを貼る手順</title>
<link>http://kawa.at.webry.info/201009/article_1.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-09-01T01:19:00+09:00</dc:date>
<dc:subject>ウェブリブログ</dc:subject>
<dc:subject>はてな</dc:subject>
<dc:subject>JavaScript</dc:subject>
<description>ウェブリブログに、はてなスター を貼ってみた手順メモ。はてなスターは、最近話題の『いいね！』『Like！』みたいなレイティング・投票機能の一種です。はてなダイヤリーに限らず、他のサイトにも 簡単な JavaScript だけで手軽に★機能を追加できます。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_8.html">
<title>DISQUS CommentsのTwitterコメント投稿・表示欄を掲載する手順</title>
<link>http://kawa.at.webry.info/201008/article_8.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-28T19:41:00+09:00</dc:date>
<dc:subject>ウェブリブログ</dc:subject>
<dc:subject>Twitter</dc:subject>
<dc:subject>JavaScript</dc:subject>
<description>TechCrunch でも使われている DISQUS COMMETNS が便利です。JavaScript のコードを貼るだけで、自分のブログやウェブサイトにコメント欄を追加できます。コメントを投稿する人は、Twitter アカウントで認証できるのでラク。（OpenIDも可）投稿されたコメントは、そのまま Twitter で流れる。Twitter 上でその URL について言及された他のツイートも、コメントとして表示してくれる。Twitter のリアルタイム検索ではツイー...</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_7.html">
<title>ウェブリブログでトラックバックの表示を削除するスクリプト</title>
<link>http://kawa.at.webry.info/201008/article_7.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-28T18:49:00+09:00</dc:date>
<dc:subject>ウェブリブログ</dc:subject>
<dc:subject>JavaScript</dc:subject>
<dc:subject>trackback</dc:subject>
<description>トラックバックは死んだ と言われて久しいですが、ウェブリブログは「ブログ」サービスなので、今もトラックバック機能が付いています。表示エリアも結構大きい。ときどきは便利なんですが、最近は滅多に使われないので、『トラックバック　（0件）』の表示エリアをまるごと削除してしまうスクリプトを書いてみました。ウェブリブログの表示が少しスッキリします。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_6.html">
<title>8/21『Google Wave追悼会』に参列させて頂きました #googlewave</title>
<link>http://kawa.at.webry.info/201008/article_6.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-22T17:46:00+09:00</dc:date>
<dc:subject>googlewave</dc:subject>
<dc:subject>Google</dc:subject>
<description>Google からの突然の開発中止の発表 で、久しぶりにその存在を思い出させてくれた Google Wave。GDD で初めて聞いたときは、JS のみでブラウザ間でリアルタイムに相互通信する技術面については、こりゃスゴいのが出た、と思ったものの、実際に試すと使い道がイマイチ分からなかった。　正式サービス開始後、たった2ヶ月で開発中止が発表されたこの不運なサービスを追悼するため、ATND で告知されていた Google Wave追悼会 に参加してきました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_5.html">
<title>Google Mapsで短めのパーマリンクURLを取得するブックマークレット</title>
<link>http://kawa.at.webry.info/201008/article_5.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-16T02:32:00+09:00</dc:date>
<dc:subject>Google</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<dc:subject>地図</dc:subject>
<description>Google Maps（Google マップ）の検索結果画面から cid と ftid を取得して、短めのパーマリンク(URL)を生成するブックマークレットを書きました。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_4.html">
<title>Google Mapsはワイルドーカード『*』で付近の全店舗検索ができる</title>
<link>http://kawa.at.webry.info/201008/article_4.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-09T01:22:00+09:00</dc:date>
<dc:subject>Google</dc:subject>
<dc:subject>地図</dc:subject>
<description>iPad で Google Maps を見ると本当に便利ですね。紙（地図帳をめくる）よりもむしろ直感的な操作？3G 回線経由だとタイル表示が少し遅いけど、ブロードバンド＋Wi-Fi なら快適。</description>
</item>
<item rdf:about="http://kawa.at.webry.info/201008/article_3.html">
<title>非公式retweet形式『RT @kawanet:』でツイートを引用するブックマークレット</title>
<link>http://kawa.at.webry.info/201008/article_3.html</link>
<dc:creator>Kawanet Blog II</dc:creator>
<dc:date>2010-08-07T02:17:00+09:00</dc:date>
<dc:subject>Twitter</dc:subject>
<dc:subject>ブックマークレット</dc:subject>
<description>他人のツイート tweet に対して、リツイート retweet するときに、『RT @元の発言者名: 元の発言内容』の形式で元ツイートを引用してくれるブックマークレットを書いてみました。</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/jkl/parsexml.html">
<title>[ajax] JKL.ParseXML／ajax通信処理ライブラリ</title>
<link>http://www.kawa.net/works/js/jkl/parsexml.html</link>
<dc:date>2010-05-29T22:58:00+09:00</dc:date>
<dc:subject>ajax</dc:subject>
<description>JKL.ParseXML クラスは、サーバ上の XML 形式ファイルをダウンロード〜解析して、
JavaScript オブジェクト（配列やマップ）に変換するライブラリです。
複雑な DOM 操作なく簡単なスクリプトで XML 形式ファイルを扱えるため、
Amazon など XML を出力する既存の Web サービスや、
CGI と連携することで ajax ページを手軽に構築できます。
IE・Firefox・Opera・Safari のクロスブラウザに対応しています。
XML を JSONのように手軽に扱える他、
JSON／CSV／LoadVars 形式ファイルなどのテキストファイルも利用可能です。</description>
</item>
<item rdf:about="http://www.kawa.net/works/geo/html5geoform.html">
<title>HTML5 GeoLocation APIで現在地住所の自動入力（ジオデコード）</title>
<link>http://www.kawa.net/works/geo/html5geoform.html</link>
<dc:date>2010-05-10T12:36:00+09:00</dc:date>
<description>以下の「現在地の取得」ボタンをクリックすると、
HTML5 GeoLocation API を利用して現在地の緯度経度を取得し、
Google Maps API の Reverse Geocoding（逆ジオコーディング、ジオデコード）により住所文字列に変換します。</description>
</item>
<item rdf:about="http://www.kawa.net/works/geo/html5geomap.html">
<title>HTML5 GeoLocation API + Maps Demo（地図表示）</title>
<link>http://www.kawa.net/works/geo/html5geomap.html</link>
<dc:date>2010-05-09T13:09:00+09:00</dc:date>
<description>以下をクリックすると、HTML5 GeoLocation API を利用して現在地の緯度経度を取得して、
Google Maps API の Static Map により地図を表示します。
（地図をクリックすると、Google Maps に飛びます）</description>
</item>
<item rdf:about="http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html">
<title>AjaxZip 2.0 - Ajax郵便番号→住所自動入力フォーム（CGI不要版）</title>
<link>http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html</link>
<dc:date>2009-03-22T12:14:00+09:00</dc:date>
<description>AjaxZip2は、昨年公開した
『ajaxな住所入力フォーム』
の新バージョンです。
郵便番号を入力すると、該当する都道府県名・住所が自動的に入力されます。
Ajaxと
JSON フォーマットを利用するJavaScriptライブラリとして公開しました。
JavaScript のみで稼動するため、サーバサイドで稼動するCGIプログラムは不要です。
郵便番号→住所変換処理は全てクライアントサイドのJavaScriptで行います。
既存 HTML の住所入力フォームをたった3行書き換えるだけで利用できます。
簡単に設置できるため、プログラムに詳しくない方でも導入していただけると思います。
以下の住所入力フォームに、7桁の郵便番号を入力してみてください。
【2007/12/09 追記】
jQuery にも対応しました！</description>
</item>
<item rdf:about="http://www.kawa.net/works/perl/romanize/romanize.html">
<title>[Perl] Lingua::*::Romanize::* 日中韓／ローマ字変換モジュール</title>
<link>http://www.kawa.net/works/perl/romanize/romanize.html</link>
<dc:date>2008-01-20T19:30:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<description>Lingua::*::Romanize::* は、日本語・中国語・韓国語の UTF-8 文字列の各国語の読みを
ローマ字化するPerlモジュール群です。
Lingua::JA::Romanize::Japanese は、
日本語（漢字かな混じり文）
をローマ字化します。→詳細
Japanese 付属の Juman・MeCab モジュールで、形態素解析を利用した読み下しにも対応します。
Lingua::ZH::Romanize::Pinyin は、
中国語（標準語読み）
をローマ字（ピンイン）化します。→詳細
Pinyin 付属の Cantonese モジュールで、香港などの広東語読みをサポートします。
Lingua::KO::Romanize::Hangul は、
韓国語（ハングル文字）
をローマ字化します。→詳細</description>
</item>
<item rdf:about="http://www.kawa.net/xp/mypage-j.html">
<title>マイページ URL 備忘録</title>
<link>http://www.kawa.net/xp/mypage-j.html</link>
<dc:date>2008-01-14T06:11:00+09:00</dc:date>
<description>各サービスのマイページの URL を忘れると探すのが面倒なので、並べておきます。</description>
</item>
<item rdf:about="http://www.kawa.net/works/perl/catch/news.html">
<title>[Perl] KCatch.pm／CGI エラーメッセージをブラウザに表示</title>
<link>http://www.kawa.net/works/perl/catch/news.html</link>
<dc:date>2007-12-23T15:07:00+09:00</dc:date>
<dc:subject>Perl</dc:subject>
<description>KCatch.pm は Perl CGI で発生する Internal Server Error を補足して、
エラー内容を HTML としてブラウザ画面に表示してくれるモジュールです。
エラーの発生した行番号なども表示されるので、サーバ上での開発に最適です。</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/jkl/calender.html">
<title>[JavaScript] JKL.Calendar／ポップアップするカレンダー表示クラス</title>
<link>http://www.kawa.net/works/js/jkl/calender.html</link>
<dc:date>2006-12-01T10:17:00+09:00</dc:date>
<dc:subject>JavaScript</dc:subject>
<description>JKL.Calendar は、ポップアップでカレンダー表示を行うクラスです。
2006年10月にクラス名を変更しましたが、2005年4月のリリース当初のクラス名 JKL.Calender も
別名定義してあるので、こちらも利用可能です。半年前にご指摘いただいた typo でした。
合わせて、選択可能な日付範囲指定用のプロパティ min_date／max_date を追加しました。
Yahoo! UI ライブラリのカレンダー機能がかなり強力なので、
最近なら YUI もオススメできそうですが、
実は JKL.Calendar の方が日本語環境では使いやすかったりするかもしれません。</description>
</item>
<item rdf:about="http://www.kawa.net/works/ajax/zip/ajaxzip.html">
<title>ajaxな住所入力フォーム</title>
<link>http://www.kawa.net/works/ajax/zip/ajaxzip.html</link>
<dc:date>2006-09-24T00:15:00+09:00</dc:date>
<description>いっけんすると普通の住所入力フォームですが、郵便番号7桁を入力すると・・・。</description>
</item>
<item rdf:about="http://www.kawa.net/works/ajax/ajaxtb/ajaxtb.html">
<title>[ajax] AjaxTB／トラックバック機能を静的HTMLページに追加するJavaScript</title>
<link>http://www.kawa.net/works/ajax/ajaxtb/ajaxtb.html</link>
<dc:date>2006-09-19T00:38:00+09:00</dc:date>
<dc:subject>ajax</dc:subject>
<description>本サイト(kawa.net)が最初にトラックバックに対応したのは、2004年11月でした。
その後、ソーシャルブックマークの普及や SPAM の増加によって
トラックバックは死んだは
とまで言われて地位はだいぶ下がっていますが、
今ごろになって、また本サイトのトラックバック機能を実装し直してみました。
本サイトは CMS／ブログ等を使ってない静的な HTML ファイルばかりなのですが、
旧バージョンでは、トラックバックpingの届いたページの HTML ファイルを
自動的に書き換える仕組みで実装していました。
ただし、nobody 権限で HTML ファイルを書き換えるのは嫌いなので、cron で回しています。
新バージョンは ajax を利用して実装しています(正確にはresponseTextを使用)。
CGI 呼び出しはトラックバック到着時のみで、ページの表示時には静的テキストファイルを
使用して CGI は起動しないため、サーバへの負荷も軽いです。
もちろん、ページ自体も静的 HTML ファイルのままです。
トラックバックが増えても（見た目はともかく）ページ本体の HTML コードには影響がないので、
トラックバックの当初の繁栄理由の1つだった Google ページランクのアップは期待できません。
しかしその分トラックバック SPAM の意欲をいくらか削ぐことは出来るかも？
新着コメントは、
RSS形式 および
JSON形式 でも
参照できます。
この RSS ファイル・JSON ファイルは、
ajaxtb.cgi?__mode=rss
にアクセスすると、強制更新できます。</description>
</item>
<item rdf:about="http://www.kawa.net/works/ajax/ajaxcom/ajaxcom.html">
<title>[ajax] AjaxCom／静的HTMLページに1行コメントを書き込める掲示板</title>
<link>http://www.kawa.net/works/ajax/ajaxcom/ajaxcom.html</link>
<dc:date>2006-09-19T00:37:00+09:00</dc:date>
<dc:subject>ajax</dc:subject>
<description>AjaxCom は、静的HTMLページに1行コメントを書き込める掲示板機能を追加できます。
このページも単なるHTMLファイルですが、
【コメントはこちらへ】のエリアにメッセージを書き込めます。
サーバ側の CGI を起動するのはコメント書き込み時のみで、毎回のコメント表示時は CGI 不要のため、サーバ負荷も軽いです。
新着コメントは、
RSS形式 および
JSON形式 でも
参照できます。
この RSS ファイル・JSON ファイルは、
ajaxcom.cgi?__mode=rss
にアクセスすると、強制更新できます。
コメントの送信・表示には ajax（responseText）を利用しています。
お試し投稿・練習・フリートーク用のページを作成しました。
⇒こちらへ</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/xml/objtree.html">
<title>[JSAN] XML.ObjTree - XML〜JavaScriptオブジェクト変換クラス</title>
<link>http://www.kawa.net/works/js/xml/objtree.html</link>
<dc:date>2006-08-14T01:39:00+09:00</dc:date>
<dc:subject>JSAN</dc:subject>
<description>XML.ObjTree クラスは、Perl 用の
XML::TreePP
モジュールの JavaScript 版です。
XML ファイルと JavaScript オブジェクト（連想配列）間の相互変換を行います。
prototype.js または
JSAN の
HTTP.Request
クラスと併用することで、
JKL.ParseXML の
後継
としても利用できます。
ECMA-357 の普及を待たずに、
ECMAScript for XML (E4X)
風のXMLのオブジェクト利用が可能になります。
Intel Mac 版の Safari で、
DOMParser オブジェクトの async プロパティが read-only となる点にも対応しています。
IE で（サーバ上でなく）ローカルのXMLファイルを開きやすくなりました。（2006/08/14）</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/animation/raster.html">
<title>[JavaScript] Animation.Raster - ラスタスクロールだ！</title>
<link>http://www.kawa.net/works/js/animation/raster.html</link>
<dc:date>2006-05-31T10:32:00+09:00</dc:date>
<dc:subject>JavaScript</dc:subject>
<description>Animation.Raster クラスは、
JavaScript で
擬似ラスタースクロール
するためのライブラリです。
10年以上前のゲームみたいに、「うねうね」するエフェクトを楽しめます。
CPU の速いマシンでも遅いマシンでも、同じ実時間内でアニメ表示します。
速いマシンの方がスムーズに表示されます。（GHzクラスのCPUが必要です）
Internet Explorer 7.0、Firefox 1.5、Opera 8.5、Safari 2.0.3、OmniWeb 5.1.3 で
動作確認しています。
ただし、IE は『ページを表示するごとに確認する』にはしないでください。</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/animation/cube.html">
<title>[JavaScript] Animation.Cube - サイコロ回転エフェクト (rotating cube animation)</title>
<link>http://www.kawa.net/works/js/animation/cube.html</link>
<dc:date>2006-04-23T16:19:00+09:00</dc:date>
<dc:subject>JavaScript</dc:subject>
<description>Animation.Cube クラスは、JavaScript のみでサイコロ回転風の
アニメーションエフェクト(rotating cube animation)を実現するライブラリです。
事前に画像ファイルを加工(拡大縮小や分割処理)せず、JavaScript のみで
リアルタイムにアニメーション処理を行います。
2画像の切替えエフェクト処理用、または、
サイコロの4面に貼り付けた画像をループで回転させるような処理に利用できます。
画像の拡大縮小処理が入っているため、
ラスタスクロール
よりもマシン負荷が高いようです。
Opera だと少しスムーズなようです。
画像サイズを抑えれば、Celeron 2.4GHz 機でも十分に回転してくれます。
英語版ページが
diggされました。（2006/04/22）</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/passwd/gen-passwds.html">
<title>�����̗����p�X���[�h�������������� JavaScript</title>
<link>http://www.kawa.net/works/js/passwd/gen-passwds.html</link>
<dc:date>2005-10-27T01:11:00+09:00</dc:date>
</item>
<item rdf:about="http://www.kawa.net/works/js/learn/basic.html">
<title>JavaScript ことはじめ</title>
<link>http://www.kawa.net/works/js/learn/basic.html</link>
<dc:date>2005-09-22T12:50:00+09:00</dc:date>
<description>JavaScript の基本をまとめておきます。</description>
</item>
<item rdf:about="http://www.kawa.net/works/js/jkl/dumper.html">
<title>JKL.Dumper - JSONデータダンプクラス</title>
<link>http://www.kawa.net/works/js/jkl/dumper.html</link>
<dc:date>2005-06-07T15:00:00+09:00</dc:date>
<description>JSON形式テキストに変数の内容をダンプするクラスです。
JavaScript の開発時にデータ構造を確認するのに使えます。</description>
</item>
<item rdf:about="http://www.kawa.net/index-2001j.html">
<title>KAWA.NET 2001</title>
<link>http://www.kawa.net/index-2001j.html</link>
<dc:date>2002-03-25T19:58:00+09:00</dc:date>
</item>
</rdf:RDF>
