<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>iandeth.</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/" />
   <link rel="self" type="application/atom+xml" href="http://iandeth.dyndns.org/mt/ian/atom.xml" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4</id>
   <updated>2008-05-22T11:26:28Z</updated>
   <subtitle>Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth.</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.32-ja</generator>

<entry>
   <title>The JUI Tokyo 2008 カンファレンス - iandeth プレゼン資料</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000674.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.674</id>
   
   <published>2008-05-22T09:24:29Z</published>
   <updated>2008-05-22T11:26:28Z</updated>
   
   <summary>先日、リクルートメディアテクノロジーラボ主催の JavaScript 系カンファレンス - The JUI Tokyo 2008 - にてプレゼンさせて頂きました。参加してくれた多くの方に感謝。僕のプレゼン資料＆当日の写真を共有します。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>先日、リクルートメディアテクノロジーラボ主催の <a href="http://mtl.recruit.co.jp/blog/2008/04/the_jui_2008_tokyo.html">JavaScript 系カンファレンス - The JUI Tokyo 2008 -</a> にてプレゼンさせて頂きました。参加してくれた多くの方に感謝。僕のプレゼン資料＆当日の写真を共有します。</p>]]>
      <![CDATA[<h2>プレゼン資料 - slides </h2>
<p style="text-align:center"><a href="/mt/ian/archives/jui-tokyo-2008/jui-tokyo-2008-rui-presentation.pdf"><img src="/mt/ian/archives/jui-tokyo-2008/rws-ui-library.jpg" alt="リクルート WEB サービス UI Library とは - 概要説明資料" width="450" height="349" border="0"/></a></p>
<p style="text-align:center"><a href="/mt/ian/archives/jui-tokyo-2008/jui-tokyo-2008-rui-presentation.pdf">リクルート WEBサービス UI Library でお手軽マッシュアップ開発<br/>fuss-free mashup with Recruit WebService UI Library</a><br/>( PDF document 2.9MB)</p>
<p style="text-align:center"><a href="/mt/ian/archives/jui-tokyo-2008/jui-tokyo-2008-rui-presentation.zip">※オリジナルの powerpoint 版はこちら (12.3MB)</a></p>
<h2>会場の様子 - photos</h2>
<h3>Paul Bakaus @メディアテクノロジーラボのオフィス</h3>
<p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/2510325362/" title="Paul at our office by iandeth, on Flickr"><img src="http://farm3.static.flickr.com/2322/2510325362_db97e176e2.jpg" width="500" height="333" alt="Paul at our office" border="0"/></a></p>
<h3>カンファレンス会場</h3>
<p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/2510326040/" title="JUI Tokyo 2008 開演前の風景 3 by iandeth, on Flickr"><img src="http://farm3.static.flickr.com/2206/2510326040_25488b5560.jpg" width="500" height="333" alt="JUI Tokyo 2008 開演前の風景 3" border="0"/></a></p>
<h3>amachang session</h3>
<p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/2510326340/" title="amachang session by iandeth, on Flickr"><img src="http://farm3.static.flickr.com/2232/2510326340_afb8534487.jpg" width="500" height="333" alt="amachang session" border="0"/></a></p>
<h3>iandeth (ishibashi) session</h3>
<p style="text-align:center"><a href="http://www.flickr.com/photos/takesako/2506242734/"><img src="http://farm4.static.flickr.com/3099/2506242734_d483750bc1.jpg" border="0"/></a></p>
<p style="text-align:center"><a href="http://www.flickr.com/photos/takesako/2506242734/">photo by takesako さん via Flickr</a></p>
<h3>懇親会</h3>
<p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/2510327294/" title="懇親会の風景 2 by iandeth, on Flickr"><img src="http://farm3.static.flickr.com/2040/2510327294_cdae183fdc.jpg" width="500" height="333" alt="懇親会の風景 2" border="0"/></a></p>
<p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/2510327740/" title="懇親会の風景 4 by iandeth, on Flickr"><img src="http://farm3.static.flickr.com/2030/2510327740_a4123ed1a4.jpg" width="500" height="333" alt="懇親会の風景 4" border="0"/></a></p>
<p style="text-align:center">そっぽ向いているツレない m 氏</p>
<blockquote><a href="http://www.flickr.com/photos/iandeth/sets/72157605165868154/">もっと見たい方はこちら - see more photos here</a></blockquote>]]>
   </content>
</entry>
<entry>
   <title>Web 2.0 Expo レポート part.3</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000673.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.673</id>
   
   <published>2008-05-15T08:53:58Z</published>
   <updated>2008-05-15T08:55:25Z</updated>
   
   <summary>前回 / 前々回 のエントリに引き続き、Web 2.0 Expo San Francisco のレポート記事を追加で2本、メディアテクノロジーラボブログの方に書きました: Microsoft Live Mesh とは - 仕組みを含め、わかり易くご説明 Web 2.0 Expo 参加後の感想と雑感 「Web 2.0 に対する2種類の期待」 これでレポーティングは終了っと。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="000671.html">前回</a> / <a href="000672.html">前々回</a> のエントリに引き続き、<a href="http://en.oreilly.com/webexsf2008/public/content/home">Web 2.0 Expo San Francisco</a> のレポート記事を追加で2本、メディアテクノロジーラボブログの方に書きました:</p>
<ul>
<li><a href="http://mtl.recruit.co.jp/blog/2008/05/microsoft_live_mesh.html">Microsoft Live Mesh とは - 仕組みを含め、わかり易くご説明</a></li>
<li><a href="http://mtl.recruit.co.jp/blog/2008/05/web_2_expo_report_bashi.html">Web 2.0 Expo 参加後の感想と雑感 「Web 2.0 に対する2種類の期待」</a></li>
</ul>
<p>これでレポーティングは終了っと。</p>]]>
      
   </content>
</entry>
<entry>
   <title>Web 2.0 Expo レポート part.2</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000672.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.672</id>
   
   <published>2008-05-02T03:04:19Z</published>
   <updated>2008-05-02T03:08:19Z</updated>
   
   <summary>前回のエントリに引き続き、Web 2.0 Expo San Francisco のレポート記事を追加で3本、メディアテクノロジーラボブログの方に書いたので共有します: Yahoo! OS (Open Strategy) - Yahoo! もプラットフォームを一般デベロッパーに開放する方向に 速報! Web 2.0 Expo 2008 全基調講演 (Keynote) のストリーミング動画が無料公開 - それぞれをコメント付きでご紹介 サンフランシスコ出張土産 - ワンランク上のアメリカン駄菓子をご紹介 オススメ！ ...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="000671.html">前回のエントリ</a>に引き続き、<a href="http://en.oreilly.com/webexsf2008/public/content/home">Web 2.0 Expo San Francisco</a> のレポート記事を追加で3本、メディアテクノロジーラボブログの方に書いたので共有します:</p>
<ul>
<li><a href="http://mtl.recruit.co.jp/blog/2008/04/yahoo_os_open_strategy.html">Yahoo! OS (Open Strategy) - Yahoo! もプラットフォームを一般デベロッパーに開放する方向に</a></li>
<li><a href="http://mtl.recruit.co.jp/blog/2008/04/web2expo08-keynote-movie.html">速報! Web 2.0 Expo 2008 全基調講演 (Keynote) のストリーミング動画が無料公開 - それぞれをコメント付きでご紹介</a></li>
<li><a href="http://mtl.recruit.co.jp/blog/2008/05/american-candy-souvenir.html">サンフランシスコ出張土産 - ワンランク上のアメリカン駄菓子をご紹介</a> <strong style="color:#FF0000">オススメ！</strong></li>
</ul>]]>
      
   </content>
</entry>
<entry>
   <title>Web 2.0 Expo レポート</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000671.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.671</id>
   
   <published>2008-04-24T06:26:38Z</published>
   <updated>2008-04-24T06:33:40Z</updated>
   
   <summary>Web 2.0 Expo San Francisco に来ています。初日のレポート記事をメディアテクノロジーラボブログの方に書いたので、ここでも共有: シリコンバレーの投資家と起業家 双方が伝える Web 2.0 企業のリアルなお話 - 投資家編 シリコンバレーの投資家と起業家 双方が伝える Web 2.0 企業のリアルなお話 - 起業家編 ...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="http://en.oreilly.com/webexsf2008/public/content/home">Web 2.0 Expo San Francisco</a> に来ています。初日のレポート記事をメディアテクノロジーラボブログの方に書いたので、ここでも共有:</p>
<ul>
<li><a href="http://mtl.recruit.co.jp/blog/2008/04/web_venture_capitalist.html">シリコンバレーの投資家と起業家 双方が伝える Web 2.0 企業のリアルなお話 - 投資家編</a></li>
<li><a href="http://mtl.recruit.co.jp/blog/2008/04/web_entrepreneur.html">シリコンバレーの投資家と起業家 双方が伝える Web 2.0 企業のリアルなお話 - 起業家編</a></li>
</ul>]]>
      
   </content>
</entry>
<entry>
   <title>Mac OS X Leopard 辞書ツール (Dictionary) の使い方</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000670.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.670</id>
   
   <published>2008-03-14T17:25:07Z</published>
   <updated>2008-03-16T09:22:57Z</updated>
   
   <summary>先週末に MacBook を会社に買って貰い、ごにょごにょヘルプ読みつつ触っているのですが、辞書ツールの出来のよさに感動。ショートカットキー一発で、カーソル下の単語の意味やら和訳やらがポップアップする、その使い勝手の良さったら無いですね。Apple++。 そこで、Leopard登場から数ヶ月経過後、今更ながら簡単な使い方ガイダンスをご紹介。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>先週末に MacBook を会社に買って貰い、ごにょごにょヘルプ読みつつ触っているのですが、辞書ツールの出来のよさに感動。ショートカットキー一発で、カーソル下の単語の意味やら和訳やらがポップアップする、その使い勝手の良さったら無いですね。Apple++。</p>
<p style="text-align:center"><img class="img_B" src="/mt/ian/archives/mac-leopard-dictionary/dict-show-1.png" alt="国語辞典で調べる" width="400" height="200" /></p>
<p>そこで、Leopard登場から数ヶ月経過後、今更ながら簡単な使い方ガイダンスをご紹介。</p>]]>
      <![CDATA[<p style="font-weight: bold;" id="top">目次</p>
<ol>
	<li><a href="#howto">使い方 - 基本</a></li>
	<li><a href="#howto-easy">使い方 - もっと簡単に</a></li>
	<li><a href="#howto-typing">使い方 - 直接単語を入力して検索</a></li>
	<li><a href="#dict">使える辞書の種類</a></li>
	<li><a href="#shortcuts">全画面表示時のショートカット</a></li>
	<li><a href="#firefox">Firefox等では動作しない件</a></li>	
	<li><a href="#url-bar">URL &quot;dict://単語&quot; でも辞書検索が可能</a></li>
	<li><a href="#windows">羨ましいと感じたWindowsユーザな彼方へ</a></li>
	<li><a href="#info">関連情報</a></li>
</ol>
<h2 id="howto">使い方 - 基本</h2>
<p>WebページやPDF / テキストファイル等を表示中、調べたい単語の上にマウスカーソルを乗せた状態で、キーボードの以下の3つのキーを同時に押す事で...</p>
<pre>command + control + D</pre>
<p>辞書での検索結果がポップアップ表示されます:</p>
<p style="text-align:center"><img class="img_B" src="/mt/ian/archives/mac-leopard-dictionary/dict-show-2.png" alt="英単語の和訳を表示" width="400" height="200" /></p>
<p>キー3つで手軽に辞書で調べられる、しかもOS標準搭載の機能なんて素敵すぎ。</p>
<p>この後、キーは押しっぱなしのまま、マウスでポップアップ左下のプルダウンを開く事で「和訳を表示」「国語辞典で表示」「英英辞書で表示」といったように辞書を切り替える事ができる模様。</p>
<p>また、ポップアップ右下の「詳細...」ボタンを押すとより見やすい全画面表示になります:</p>
<p style="text-align:center"><img src="/mt/ian/archives/mac-leopard-dictionary/dict-wikipedia.png" alt="wikipediaでの検索結果を表示" width="400" height="444" /></p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="howto-easy">使い方 - もっと簡単に</h2>
<p>押すキーを3つも覚えられるわけ無いでしょ、という方に。調べたい単語の上にマウスを持っていき、そこで</p>
<pre>1. control キーを押しながらクリック
2. 出てきたメニューの中から「辞書で調べる」を選択</pre>
<p style="text-align:center"><img class="img_B" src="/mt/ian/archives/mac-leopard-dictionary/dict-context-menu.png" alt="右クリックで「辞書で調べる」" width="400" height="190" /></p>
<p>これで辞書が全画面表示で開きます。これならまだ覚えやすいかと。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="howto-typing">使い方 - 直接単語を入力して検索</h2>
<p>自分で単語を入力したい場合にお手軽なのが Spotlight を使う方法。Spotlight は入力された単語で辞書も検索してくれるみたいです。すばやく Spotlight に単語を入力するには、Finderだろうが他のアプリ使用中だろうが関係なく、おもむろに</p>
<pre>1. control + スペースバーを押す
2. 単語を入力</pre>
<p>とこれだけで検索結果がズラズラ表示されます。その中で「定義」カテゴリに表示されている項目をマウスオーバーするとポップアップで意味が表示され、クリックで全画面表示になります。お手軽。</p>
<p style="text-align:center"><img class="img_B" src="/mt/ian/archives/mac-leopard-dictionary/dict-spotlight.png" alt="spotlightで辞書を検索" width="400" height="288" /></p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="dict">使える辞書の種類</h2>
<p>Mac OS X のバージョン 10.5.2 ではデフォルトで</p>
<ul>
	<li>国語辞典 - 大辞泉</li>
	<li>英和／和英辞典 - プログレッシブ英和・和英中辞典</li>
	<li>類義語辞典 - 類語例解辞典</li>
	<li>Apple - Apple 用語辞典</li>
</ul>
<p>が検索対象ONになっていますが、<strong>メニューバー &gt; 辞書 &gt; 環境設定...</strong> ウィンドウにて項目にチェックを入れる事で、以下の辞書を追加する事もできるようです:</p>
<ul>
	<li>Dictionary - New Oxford American Dictionary</li>
	<li>Thesaurus - Oxford American Writer's Thesaurus</li>
	<li>Wikipedia - 英/日 他、世界中の wikipedia を利用可</li>
</ul>
<p style="text-align:center"><img src="/mt/ian/archives/mac-leopard-dictionary/dict-preference.png" alt="辞書の環境設定" width="400" height="375" /></p>
<p>ついでに、このウィンドウで辞書リストをドラッグする事で並び順を変えられ、一番上にある辞書が command + control + D でポップアップさせた時に使用される辞書になります。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="shortcuts">全画面表示時のショートカット</h2>
<p>タブバーに表示されている辞書名をクリックする事で使う辞書を切り替えられますが、これはキーボードショートカット:</p>
<pre>command + shift + ] で次の辞書を選択
command + shift + [ で前の辞書を選択</pre>
<p>でラクチン操作が可能です。</p>
<p style="text-align:center"><img src="/mt/ian/archives/mac-leopard-dictionary/dict-search-all.png" alt="タブで辞書を移動" width="400" height="444" /></p>
<p>ついでに shift を押さずに command + ] または [ だと、単語検索履歴の next / back になりますので混同注意。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="firefox">Firefox等では動作しない件</h2>
<p>OS標準のテキストエディットやSafari等、cocoaアプリは問題無く command + control + D でポップアップ辞書引きが出来ますが、Mozilla Firefox等の一部のアプリではポップアップ辞書も、control + クリック &gt; 「辞書で調べる」も共に使えません orz</p>
<p>対応策は以下の方々の記事を参照の事:</p>
<ul>
<li><a href="http://wildlifesanctuary.blog38.fc2.com/blog-entry-157.html">鳥獣保護区 - Firefox で選択した文字を Dictionary.app で引く userChrome.js スクリプト</a></li>
<li><a href="http://f48.aaa.livedoor.jp/~zennin/dict.html">Zennin's Blog - FirefoxでLeopardの辞書アプリで検索</a></li>
<li><a href="http://d.hatena.ne.jp/tanemori/20080224/LookUpDictionary">soundscape out - Firefoxから辞書.appを使う</a></li>
</ul>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="url-bar">URL &quot;dict://単語&quot; でも辞書検索が可能</h2>
<p><a href="http://www.usingmac.com/2007/12/23/leopard-tricks-dictionary">UsingMac.com - Leopard Tricks : Dictionary</a>より。Safari または Firefox のURLバーに</p>
<pre>dict://第二次世界大戦</pre>
<p>なんて入力して return キーを押せば、全画面で辞書が表示されるようです。Firefox の場合、初めて実行した際にダイアログが出ますが「今後同様の処理をする」にチェックを入れておけば2回目以降はOK。Firefox で辞書を使う最短策はこれでしょうか。</p><p>※ちなみにブラウズ中にURLバーにカーソルを移動させるショートカットは command + L です。併用するとイイ感じです。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="windows">羨ましいと感じたWindowsユーザな彼方へ</h2>
<p>windows でも同じように英語サイト読んでる際に単語の和訳を調べる方法は、同僚の寺井くんが素敵にまとめたこちらの記事をどうぞ</p>
<blockquote><a href="http://www.trick7.com/blog/2007/02/09-075041.php">trick7.com - 英辞郎第三版と&quot;Mouseover Dictionary&quot;アドオンで海外サイトを読みまくる</a></blockquote>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="info">関連情報</h2>
<ul>
<li><a href="http://journal.mycom.co.jp/column/osx/252/index.html">マイコミジャーナル - OS X ハッキング！ Leopard解体新書(3) ?俺流の辞典をつくる?</a></li>
</ul>
<p>* Mac いいわー。某 major OS には無い軽快なUIレスポンスとかも含めて。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>]]>
   </content>
</entry>
<entry>
   <title>CNET Japan デビュー！</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000669.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.669</id>
   
   <published>2008-03-03T05:41:55Z</published>
   <updated>2008-03-03T06:27:27Z</updated>
   
   <summary> うちのオフィスのタタミ部屋にて。CNETに顔掲載。やったー！。ちなみにひざ枕は女性社員の私物。 CNET Japan - やわらか茶室、めもですく--チームラボ猪子氏が語る「情報化時代のアートとオフィス」...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="趣味・興味" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p style="text-align:center"><a href="http://japan.cnet.com/news/tech/story/0,2000056025,20367989-15,00.htm"><img src="http://japan.cnet.com/story_media/20367989/080222_teamlab_15.jpg"  border="0"/></a></p>
<p>うちのオフィスのタタミ部屋にて。CNETに顔掲載。やったー！。ちなみにひざ枕は女性社員の私物。</p>
<p><a href="http://japan.cnet.com/news/tech/story/0,2000056025,20367989-15,00.htm">CNET Japan - やわらか茶室、めもですく--チームラボ猪子氏が語る「情報化時代のアートとオフィス」</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>jQuery 1.2.3 にて JSONP 方式の $.getJSON() が動作しないバグについて</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000668.html" />
   <id>tag:iandeth.dyndns.org,2008:/mt/ian//4.668</id>
   
   <published>2008-02-19T05:14:25Z</published>
   <updated>2008-02-20T02:40:34Z</updated>
   
   <summary>2008/02/07にリリースされたばかりの jQuery v1.2.3 をさっそく試してみたところ、偶然不具合を発見。$.getJSON() メソッドを以下のように、第二引数の parameter hash に callback を指定して実行すると、コールバック関数が一切呼ばれません: $.getJSON( &apos;http://.../api&apos;, { callback: &apos;?&apos; }, function (){} );...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>2008/02/07にリリースされたばかりの <a href="http://docs.jquery.com/Release:jQuery_1.2.3">jQuery v1.2.3</a> をさっそく試してみたところ、偶然不具合を発見。$.getJSON() メソッドを以下のように、第二引数の parameter hash に callback を指定して実行すると、コールバック関数が一切呼ばれません:</p>
<pre>$.getJSON( 'http://.../api', { callback: '?' }, function (){} );</pre>]]>
      <![CDATA[<p>一方、第一引数のURL文字列に callback 指定をする方式だと今までどおり問題なく動作する模様:</p>
<pre>$.getJSON( 'http://.../api?callback=?', function (){} );</pre>
<p>引数の書式で動作が異なるのでトリッキーすね。僕の環境 Windows x Mozilla Firefox 2.0.0.12 にてバグ確認できています。<a href="/mt/ian/archives/jquery-1.2.3-JSONP-bug/">検証用のデモページはこちら</a>。</p>
<h2>バグ解消版 jQuery 1.2.3 はこちら </h2>
<p><a href="http://webservice.recruit.co.jp/">リクルートWEBサービス</a>なんてのを作って、JSONP利用を推進したい気満々な自分からしたら、このバグは痛いので慌てて jQuery コード読み漁ってなんとなく原因特定した次第。<a href="http://dev.jquery.com/ticket/2363">本家 jQuery な方々にはバグレポートを投げてみた</a>ので、そのうち解消される(といいな)はずですが、とりあえず今すぐ JSONP な v1.2.3 を使いたい方のために、僕の稚拙なコード修正を加えた解消版をここに晒しておきます。ご利用は自己責任で...</p>
<blockquote style="text-align:center"><a href="/mt/ian/archives/jquery-1.2.3-JSONP-bug/jquery-1.2.3.patched.js">download jQuery 1.2.3 - with JSONP bug fix</a></blockquote>
<p>ちなみに改修箇所は<a href="/mt/ian/archives/jquery-1.2.3-JSONP-bug/patch.txt">これです(diff patch)</a>。 </p>
<p>オマエそれ既出だっつーの、なんて本家 Resig さん達に突っ込まれたらかっこ悪いなあ...</p>
<h2 style="color:#880000">既出でした（照</h2>
<p style="color:#880000">2008/02/20 追記</p>
<p>やっぱり既出でした。<br />
<a href="http://dev.jquery.com/ticket/2020">http://dev.jquery.com/ticket/2020</a></p>
<p>$.getJSON() 第二引数の param hash に文字列として '?' が混在した際に、jQuery が勝手に jsonp callback だと認識してしまって困る！という事象が過去にあって、件の param hash を使った jsonp 指定は depricate (機能削除) したそうです。<br />
なるほどー！</p>
<p>developer メーリングリストに一声かけずに、いきなり trac ticket 登録しちゃって恥ずかしすぎ orz</p>]]>
   </content>
</entry>
<entry>
   <title>Google Code に svn import するには subversion の SSL (https) オプションが必要</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000667.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.667</id>
   
   <published>2007-12-22T16:19:20Z</published>
   <updated>2007-12-25T03:32:53Z</updated>
   
   <summary>Google Code Project Hosting にて俺プロジェクトを作成した後、用意された subversion repository にファイルを import / commit するには、こちら側の svn コマンドが SSL (https) 通信機能付きでコンパイルされている必要がある模様。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="http://code.google.com/hosting/">Google Code Project Hosting</a> にて俺プロジェクトを作成した後、用意された subversion repository にファイルを import / commit するには、こちら側の svn コマンドが SSL (https) 通信機能付きでコンパイルされている必要がある模様。</p>]]>
      <![CDATA[<pre>$ svn import . <strong>https://</strong>bashi.googlecode.com/svn/trunk/
svn: SSL is not supported.</pre>
<p>自分のsvnクライアントがSSL対応しているかどうかを調べる方法:</p>
<pre>$ svn --version
...
* ra_dav : Module for accessing ...
  - handles 'http' schema
  - handles <strong>'https'</strong> schema  // この記述があればOK
...</pre>
<p>CentOS4.xの yum 使って入れた subversion (subversion.i386 1.1.4-2.ent) にはきちんとSSLオプションがついていたので、ディストリビューション提供モノは心配無用なのかも。今回は自前で make したやつを使っていたので再インストールして対処。以下、SSL対応させる為の configure オプション:</p>
<p>1. neon (必要ライブラリ):</p>
<pre>$ cd neon-0.26.1/<br />$ ./configure <strong>--with-ssl</strong><br />$ make install</pre>
<p>2. subversion</p>
<pre>$ cd subversion-1.4.4/<br />$ ./configure --with-apxs <strong>--with-ssl</strong><br />$ make install</pre>
<p>※職場の先輩曰く以前に同サービスを試した際は、普通に http:// なURLで svn import できていたそうな。</p>]]>
   </content>
</entry>
<entry>
   <title>The way to &quot;get there&quot; is to &quot;be there&quot; - quotes from Neale Donald Walsch</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000665.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.665</id>
   
   <published>2007-12-19T12:55:08Z</published>
   <updated>2007-12-22T15:49:43Z</updated>
   
   <summary>Facebook知り合いから貰ったナイス引用文。元気貰えたので、ここにも貼り付けておく事に。英文ですが、適当に作った和訳文も添えて。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Way Of Living" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="http://www.facebook.com/">Facebook</a>知り合いから貰ったナイス引用文。元気貰えたので、ここにも貼り付けておく事に。英文ですが、適当に作った和訳文も添えて。</p>]]>
      <![CDATA[<h2>Quotes from Neale Donald Walsch's words:</h2>
<blockquote>There's nothing I have to have, there's nothing I have to do, and there's nothing I have to be, except exactly what I am being right now. That does not mean that &quot;having&quot; and &quot;doing&quot; will be eliminated from your life. It means that what you experience yourself having or doing will spring from your being - not lead you to it.</blockquote>
<blockquote>When you come from &quot;happiness&quot;, you do certain things because you are happy - as opposed to the old paradigm in which you did things that you hoped would make you happy. When you come from &quot;wisdom&quot;, you do certain things because you are wise, not because you are trying to get to wisdom. When you come from &quot;love&quot;, you do certain things because you are love, not because you want to have love.</blockquote>
<blockquote>Everything changes; everything turns around, when you come from &quot;being&quot;, rather than seeking to &quot;be.&quot; You cannot &quot;do&quot; your way to &quot;being&quot;. Whether you are trying to &quot;be&quot; happy, be wise, be love - or be God - you cannot &quot;get there&quot; by doing. And yet, it is true that you will be doing wonderful things once you &quot;get there.&quot;</blockquote>
<blockquote>Here is the Divine Dichotomy. The way to &quot;get there&quot; is to &quot;be there.&quot; Just be where you choose to get! It's that simply. There's nothing you have to do. You want to be happy? Be happy. You want to be wise? Be wise. You want to be love?<br />
Be love.<br />
That is Who You Are in any event. <br />
- Neale Donald Walsch -</blockquote>
<p>Thanks for sharing, Francesca.</p>
<h2>ニール・ドナルド・ウォルシュの言葉</h2>
<blockquote>得なければならない物なんて無く、<br />
やらなければならない事なんて無く、<br />
成らなければならない姿だって無い。<br />
今の自分で在る事で、すべてが満ち足りています。<br />
でもそれは&quot; 何かを得る&quot; 事や &quot;何かをやる&quot; 事を抑制するわけではありません。それらの体験は、あくまであなたが &quot;在る&quot; 事の結果であり、過程では無いというだけの事。</blockquote>
<blockquote>満ち足りた心が在ると、あなたは幸せと思うがゆえに行動を起こす。従来の考え方: 幸せを感じられるだろうと思い行動を起こすのとは反対に。<br />
英知が在ると、あなたは賢いがゆえに行動を起こす。英知を習得すべく行動するわけでは無く。<br />
愛が在ると、あなたはその愛情のゆえに行動を起こす。愛が欲しくて行動するわけでは無く。</blockquote>
<blockquote>すべてが変わります。<br />
&quot;成りたい&quot; では無く &quot;在る&quot; を郷とする事で、すべてが逆転します。何かを成した末の &quot;在る&quot; はありません。幸せも、英知も、愛も、成ろうとしても辿り着けません。神に成る事もできません。でも、そこに辿り着く事で、あなたが素晴らしい行動を起こすであろう事は間違いありません。</blockquote>
<blockquote>神の二分法はここなんです。<br />
そこに辿り着く方法とは、そこに &quot;在る&quot; 事。<br />
選んで、後はただそう在れば良い。<br />
それほど簡単な事。何かしなければならない事は何も無い。<br />
幸せになりたい？ならば幸せで在ればいい。<br />
賢くなりたい？ならば賢く在ればいい。<br />
愛を表したい？<br />
愛で在ればいい。<br />
何が起きようとも、あなたはそういう存在なのです。<br />
- ニール・ドナルド・ウォルシュ - </blockquote>]]>
   </content>
</entry>
<entry>
   <title>Javascriptで快適・お手軽OOP - オレ的まとめ</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000664.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.664</id>
   
   <published>2007-12-16T16:20:38Z</published>
   <updated>2007-12-16T18:09:12Z</updated>
   
   <summary>Javascriptでオブジェクト指向なコードを書くには、prototypeベースな言語ゆえ、他のOO言語と異なり多少の小細工が必要になります。やり方は幾つもあるようですが、自分であれこれ試してみたうえでのまとめをここで共有してみます。 ...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>Javascriptでオブジェクト指向なコードを書くには、prototypeベースな言語ゆえ、他のOO言語と異なり多少の小細工が必要になります。やり方は幾つもあるようですが、自分であれこれ試してみたうえでのまとめをここで共有してみます。 </p>]]>
      <![CDATA[<p>OOPと言っても、あくまで個人的に最低限必要だと思うこれら機能の実現を目的にしています:</p>
<dl>
	<dt>子クラスのコンストラクタにて、親のコンストラクタを実行</dt>
	<dd>他のOO言語では空気を吸うがごとく実装されている機能</dd>
	<dt>メソッドの継承</dt>
	<dd>Child.prototype = new Parent() なんて親インスタンスを作る事無くなんとかする</dd>
</dl>
<p>これらをいかに少ない手間で実現できるか。hacker諸氏ならばちょろっと頭使えばできるのでしょうが、自分はウダウダ時間かけて悩んでしまいました orz。以下3通りの解決策です。</p>
<p style="font-weight:bold" id="top">目次</p>
<ol>
	<li><a href="#extend-func">専用のextend関数を使う</a>
		<ul>
		<li><a href="#extend-func-howto">使い方</a></li>
		<li><a href="#extend-func-sample">サンプルおよびテストコード</a></li>
		</ul>
	</li>
	<li><a href="#class-create">prototype.js v1.6.0 の Class.create() を抽出して利用</a>
		<ul>
		<li><a href="#class-create-howto">使い方</a></li>
		<li><a href="#class-create-sample">サンプルおよびテストコード</a></li>
		<li><a href="#class-create-file">Class.create() だけを抽出した単独ファイルを作ってみた</a></li>
		</ul>
	</li>
	<li><a href="#myclass">ライブラリに頼らず、書き方を工夫して実現</a>
		<ul>
		<li><a href="#myclass-howto">使い方</a></li>
		<li><a href="#myclass-sample">サンプルおよびテストコード</a></li>
		<li><a href="#myclass-point1">ポイント1) メソッドはすべて *.prototype にて定義する</a></li>
		<li><a href="#myclass-point2">ポイント2) メソッド継承は *.prototype 同士のプロパティコピーで</a></li>
		<li><a href="#myclass-yodan">その他余談</a></li>
		</ul>
	</li>
	<li><a href="#at-last">終わりに</a></li>
	<li><a href="#other-info">関連情報</a></li>
	<li><a href="#downloads">おまけ Download</a></li>
	</ol>
<h2 id="extend-func">1. 専用のextend関数を使う</h2>
<p>Thousand Yearsさんの記事 <a href="http://d.hatena.ne.jp/shogo4405/20070121/1169394889">JavaScript継承パターンまとめ</a> にて紹介されていたエクステンドなる関数を使った手法が一番お手軽な模様:</p>
<pre>function extend( s, c ){
    function f(){};
    f.prototype = s.prototype;
    c.prototype = new f();
    c.prototype.__super__ = s.prototype;
    c.prototype.__super__.initialize = s;
    c.prototype.initialize = c;
    return c;
};</pre>
<h3 id="extend-func-howto">使い方</h3>
<pre>// 親クラス
Animal = extend( Object, function ( arg ){
    this.name  = arg.name || 'unknown';
    this.voice = 'grunt';
});
Animal.prototype.bark = function (){
    return this.voice;
};

// 子クラス
Dog = extend( Animal, function ( arg ){
    this.__super__.initialize( arg );
    this.voice = 'bow wow';
});

// 孫クラス
Chiwawa = extend( Dog, function ( arg ){
    this.__super__.initialize( arg );
    this.voice = 'pow pow';
});</pre>
<p>子/孫クラスのコンストラクタ内にて this.__super__.initialize() を実行することで、親のコンストラクタが呼び出される仕組み。Chiwawa の中では this.__super__ == Dog.prototype を、 Dog の中では this.__super__ == Animal.prototype をきちんと指し示す辺りが無名Function + prototype プロパティの妙技かと。<a href="http://d.hatena.ne.jp/shogo4405/">Thousand Yearsさん</a>に感謝。正直まだ把握しきれていません orz</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="extend-func-sample">サンプルおよびテストコード</h3>
<p>ある程度きっちりと親・子・孫クラスの実装をした上で、一通りのテストコードを走らせてみたところ問題は無い模様。以下ソースです:</p>
<ul>
	<li><a href="/mt/ian/archives/javascript_oop/myclass-extend.js">親・子・孫クラスを定義した javascript サンプルコード</a></li>
	<li><a href="/mt/ian/archives/javascript_oop/myclass-extend.html">それらのテストコード</a></li>
</ul>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="class-create">2. prototype.js v1.6.0 の Class.create() を抽出して利用</h2>
<p>v1.5.x までの <a href="http://www.prototypejs.org/">prototype.js</a> で提供されていた Class.create() は特に何をしてくれるわけでは無かったのに対し、v1.6.0 ではググッと機能が充実して、今回の目的にぴったりなモノに仕上がっていました。こら使わない手は無い。</p>
<p>新 Class.create() の追加機能:</p>
<ul>
	<li>第一引数に親クラスを指定可能</li>
	<li>任意のクラスメソッドにて、第一引数の変数名を $super にする事で親クラスの同メソッドを実行可能</li>
	</ul>
<h3 id="class-create-howto">使い方</h3>
<p>簡単なコードで表すとこんな感じになります:</p>
<pre>// 親クラス
Animal = Class.create({
    initialize: function ( arg ){
        this.name  = arg.name || 'unknown';
        this.voice = &quot;hi i'm animal&quot;;
    },
    bark: function {
        return this.voice;
    }
});

// 子クラス
Dog = Class.create( Animal, {
    initialize: function ( $super, arg ){
        $super( arg );
        this.voice = 'bow wow';
    }
});</pre>
<p>Dogクラスを定義する際、Class.create() の第一引数に Animal を渡す事で親クラスを指定。これでメソッドの継承はOK。さらに、Dogクラスのコンストラクタ - initialize() - の第一引数名を $super にしておくと、$super に親クラスの同名メソッドが typeof $super == 'function' な形で渡ってくる。これを実行すると Animal.initialize.apply( this, arguments ) と同じように、this スコープは Dog なままに親の initialize を実行することができます。まあ便利。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="class-create-sample">サンプルおよびテストコード</h3>
<p>親・子・孫クラスまで用意して、一通りのテストコードを書いてみたところすんなり通ったので、特にイレギュラーな問題は無い模様。以下ソースです:</p>
<ul>
	<li><a href="/mt/ian/archives/javascript_oop/myclass-pt.js">親・子・孫クラスを定義した javascript サンプルコード</a></li>
	<li><a href="/mt/ian/archives/javascript_oop/myclass-pt.html">それらのテストコード</a></li>
</ul>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="class-create-file">Class.create() だけを抽出した単独ファイルを作ってみた</h3>
<p>Class.create() の為に prototype.js ファイルをまるごと読み込むのは気が進まない...。v1.6.0 の prototype.js は通常サイズで122KB、改行等を除去したミニ版で90KBと、それなりのファイルサイズを毎回ブラウザにて読み込む事が必要になってきます。まぁユーザ的には大して気にならないのかもしれませんが、Class.create() 使いたいだけなのに、代償が100KB前後のファイル読み込みと言われると・・・開発者としてはちょっと気が進まないので、prototype.js のコードから Class.create() に必要な部分だけを抽出して単独ファイルを作ってみました。</p>
<p>Class.create() だけを抽出した単独ファイル:</p>
<ul>
	<li><a href="/mt/ian/archives/javascript_oop/lib/prototype.class.js">prototype.class.js - 通常版</a> 5.4KB</li>
	<li><a href="/mt/ian/archives/javascript_oop/lib/prototype.class.min.js">prototype.class.min.js - ミニ(改行コード等除去)版</a> 4.2KB</li>
	</ul>
<p>もとの122KBに比べると5.4KBと劇的なサイズ減。これなら心的不安は一気に解消！かと。あるいは自身の js ファイルの冒頭辺りに上記ファイル中のコードをまるっとコピペして使うのもOKですね。イイと思って貰えるならば、どうぞご活用くださいませ。 </p>
<p>※ついでに <a href="http://dean.edwards.name/packer/">packer</a> で圧縮したバージョンは<a href="/mt/ian/archives/javascript_oop/lib/prototype.class.pack.js">こちら</a> (3.0KB) <br />※抽出の副産物として、Class.create() の他にも Object.extend() と $A() が利用可能になっています。それと変数 $ には一切触れていません。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="myclass">3. ライブラリに頼らず、書き方を工夫して実現</h2>
<h3 id="myclass-howto">使い方</h3>
<p>あるいは Class.create() とか、自作した専用の俺 class_extend() 関数とかには一切頼らず、クラス定義の書き方を工夫するだけで実現する方法はこちら:</p>
<pre>// 親クラス
Animal = function (){
    this.init.apply( this, arguments );
};
Animal.prototype.init = function ( arg ){
    this.name  = arg.name || 'unknown';
    this.voice = 'grunt';
};
Animal.prototype.bark = function (){
    return this.voice;
};

// 子クラス
Dog = function (){
    this.init.apply( this, arguments );
};
for ( var k in Animal.prototype ){  // メソッド継承
    Dog.prototype[ k ] = Animal.prototype[ k ];
}
Dog.prototype.init = function ( arg ){
    Animal.prototype.init.apply( this, arguments );
    this.voice = 'bow wow';
};</pre>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="myclass-sample">サンプルおよびテストコード</h3>
<p>Class.create()の時と同様、親・子・孫クラスを用意したうえで同じようなテストコードを流しても問題は無い模様。以下ソースです:</p>
<ul>
	<li><a href="/mt/ian/archives/javascript_oop/myclass.js">親・子・孫クラスを定義した javascript サンプルコード</a></li>
	<li><a href="/mt/ian/archives/javascript_oop/myclass.html">それらのテストコード</a></li>
</ul>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="myclass-point1">ポイント1) メソッドはすべて *.prototype にて定義する</h3>
<p>書こうと思えば *.prototype は使わずにコンストラクタやらメソッドやらをまとめて定義する事も可能ですが:</p>
<pre class="other">// NGパターン
Animal = function ( arg ){
    this.init = function ( arg ){
        this.name = arg.name;
        this.voice = 'hello';
    };
    this.bark = function (){
        return this.voice;
    };
    this.init( arg ); // コンストラクタ実行
};</pre>
<p>↑こう書いてしまうと、後で子クラス側でこれらメソッドを Animal.init() のように、インスタンス化せずに引っ張ってこれなくなってしまうのでNG。特にコンストラクタ init() は子クラスから呼び出す事が必須なので *.prototype オブジェクトの中で定義したうえで、apply() を使って実行すべし。</p>
<pre>Animal = function ( arg ){
    this.init.apply( this, arguments );
};
Animal.prototype.init = function ( arg ){
    this.name = arg.name;
    this.voice = 'hello';
};
Animal.prototype.bark = function (){
    return this.voice;
};</pre>
<p>apply()は本来関数の this スコープを一時的に変更させる為の機能(いわゆるdelegate)ですが、ここでは単に「引数をそのまま init() に渡しなおす」為に使っています。</p>
<p>コンストラクタが Animal.prototype.init の形で引っ張ってこれる状態であれば、子クラス Dog のコンストラクタにてこれを実行させることができるようになります。よっしゃ。</p>
<pre class="other">Dog.prototype.init = function ( arg ){
    Animal.prototype.init.apply( this, arguments );
    this.voice = 'bow wow';
};</pre>
<p>this.super.init.apply() みたいにカッコよく呼べないのが難ですが。巧いやり方思いつかなかった orz</p>
<p>こっちの apply() こそ、this スコープを Dog として親の init() を実行するという本来の使い方ですね。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="myclass-point2">ポイント2) メソッド継承は *.prototype 同士のプロパティコピーで  </h3>
<p>よく見かける継承の記述:</p>
<pre class="other">Dog.prototype = new Animal();</pre>
<p>はお手軽な反面、Animal のコンストラクタでやれることが限られてしまうのでNG。たとえば Animal コンストラクタの中で、引数で渡されたID値のエレメントの存在をチェックする... なんて実装:</p>
<pre class="other">Animal.prototype.init = function ( id ){
    if( !document.getElementById( id ) ){
        alert( '指定された要素は存在しません' );
    }
};</pre>
<p>を書いてしまうと、前述の継承記述のタイミングで id == undefined な状態で init() が実行されて alert が出てしまいます。あるいは継承時の実行を示す何かを引数に渡すように書けば解決しますが:</p>
<pre class="other">Animal.prototype.init = function ( arg ){
    if( arg.is_extends ){
        return; // 継承時なら何もしない
    }
    // 以降、通常の処理
};
Dog.prototype = new Animal({ is_extends: true });</pre>
<p>これもやや面倒くさい気が。なのでこれらを避ける為にも、継承の記述は:</p>
<pre>for ( var k in Animal.prototype ){
    Dog.prototype[ k ] = Animal.prototype[ k ];
}</pre>
<p>と、for ループで親のメソッドやらプロパティやらをコピーしてあげるべし。<br />※継承関係を設定するのに Animal インスタンスを作るって、なんか気持ち悪るいかな、なんて。<br />※ただしこの方法はすべてのメソッド・プロパティを *.prototype として定義しておく前提のお話。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h3 id="myclass-yodan">その他余談</h3>
<p><a href="http://blog.livedoor.jp/dankogai/archives/50808279.html">この amachang with danさんな記事</a>を読んでいて、以下の簡略的な書き方でもいけるか？と思ったけど</p>
<pre class="other">Dog.prototype = Animal.prototype;</pre>
<p>これだとプロパティコピーでは無く、両方とも同じオブジェクトを指す形ゆえ、Dog.prototype.init = function (){ ... } と書き換えた時点で Animal.prototype.init も書き換わってしまう為、孫クラスの init() の中で Dog.prototype.init.apply() しようとすると deep recursion が起きちゃってNG。<a href="/mt/ian/archives/javascript_oop/myclass-ng.html">テストコードはこちら</a>。む、残念。</p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="at-last">4. 終わりに</h2>
<p>以上、現時点で僕が調べた限りの情報をうだうだ書き連ねてみました。まだ javascript の事を良くわかっていないので、間違いやら勘違いやらを見つけた際には、こっそりコメント欄にて指摘していただけると幸いです m(_ _)m </p>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="other-info">5. 関連情報</h2>
<dl>
	<dt><a href="http://www.prototypejs.org/learn/class-inheritance">Defining classes and inheritance</a> - prototype.js</dt>
	<dd>prototype.js 本家サイトの Class.create() チュートリアル記事(英語)</dd>
	<dt><a href="http://www.ivy.fr/extend/">Extend.js</a></dt>
	<dd>似たような事を実現する為のライブラリ。いろいろ多機能。<a href="http://fnya.cocolog-nifty.com/blog/2007/01/extend_for_prot_67a6.html">あるＳＥのつぶやきさんの記事</a>経由。</dd>
	<dt><a href="http://d.hatena.ne.jp/guccyon/20071109/name">__proto__とprototypeについて</a> - guccyonikkiさん</dt>
	<dd>勉強させて貰いました。</dd>
	<dt><a href="http://dean.edwards.name/packer/">javascript packer</a></dt>
	<dd>javascriptファイルを圧縮</dd>
	<dt><a href="http://openjsan.org/doc/t/th/theory/Test/Simple/">JSAN - Test.Simple</a></dt>
	<dd>Javascriptでユニットテスト。今回のテストコードはこれを使っています。</dd>
</dl>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>
<h2 id="downloads">6. おまけ Download</h2>
<p><a href="http://www.prototypejs.org/">prototype.js</a>のミニ(改行除去)版やらpack版を本家サイトで見かけなかったので、別途作成したものをここでついでに共有しておきます。さらに記事では触れなかった<a href="http://jquery.com/">jQuery</a>も。ついでにww</p>
<ul>
<li><a href="/mt/ian/archives/javascript_oop/lib/prototype.js">prototype.js 1.6.0 通常版</a> 122K</li>
<li><a href="/mt/ian/archives/javascript_oop/lib/prototype.min.js">prototype.js 1.6.0 ミニ版</a> 90K</li>
<li><a href="/mt/ian/archives/javascript_oop/lib/prototype.pack.js">prototype.js 1.6.0 pack版</a> 49K</li>
<li><a href="/mt/ian/archives/javascript_oop/lib/jquery.js">jQuery 1.2.1 通常版</a> 79K</li>
<li><a href="/mt/ian/archives/javascript_oop/lib/jquery.min.js">jQuery 1.2.1 ミニ版</a> 46K</li>
<li><a href="/mt/ian/archives/javascript_oop/lib/jquery.pack.js">jQuery 1.2.1 pack版</a> 27K</li>
</ul>
<p class="back-to-top"><a href="#top">▲RETURN TO TOP</a></p>]]>
   </content>
</entry>
<entry>
   <title>息子が生まれました</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000663.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.663</id>
   
   <published>2007-12-08T15:15:15Z</published>
   <updated>2007-12-08T15:18:36Z</updated>
   
   <summary>我が家に新しい家族が増えました。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Way Of Living" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>我が家に新しい家族が増えました。</p><p style="text-align:center"><a href="http://www.flickr.com/photos/iandeth/1348989276/" title="嫁出産 - ママお疲れ様。 by iandeth, on Flickr"><img src="http://farm2.static.flickr.com/1056/1348989276_cce8b07fd4.jpg" width="500" height="374" alt="嫁出産 - ママお疲れ様。" /></a></p>]]>
      <![CDATA[<p>深夜1:00に陣痛が来て、一晩中ヨメは唸ったまま格闘が続き、分娩室に入ったのが翌日13:30、そこから出てくるまで苦戦してさらに1時間半と、合計14時間くらいかかったものの、母子共に無事出産できました。ヨメさん良く頑張った (T T)</p>
<p><a href="http://www.flickr.com/photos/iandeth/2062570710/" title="baby talk by iandeth, on Flickr"><img class="img_L" style="margin-bottom:20px" src="http://farm3.static.flickr.com/2394/2062570710_60c12dd724_m.jpg" width="160" height="240" alt="baby talk" /></a></p><p>3,500g のでっかい息子でした。名前は</p>
<p><strong>　　悠　月<br />　　ゆ　づ　き</strong></p>
<p>です。ウサギのエッセンス (月) と、悠々・悠久 辺りのイメージをあわせつつ、呼びやすい名前 (yuzu) という事で。</p>
<p>生まれてはや3ヶ月、毎日チビ中心の生活を送ってます。料理を覚えて、ヨメの代わりに夕飯なんぞ作ってみたり。朝早起きするようになったり。いろいろな変化を楽しみつつ。</p>
<p style="clear:both"><a href="http://www.flickr.com/photos/iandeth/2094535761/" title="コレもウマー by iandeth, on Flickr"><img class="img_R" src="http://farm3.static.flickr.com/2336/2094535761_e524db8e5a_m.jpg" width="240" height="160" alt="コレもウマー" /></a></p>
<p>なにより、子供なんて興味無かった自分がすっかりデレデレオヤジと化していることが一番の驚き。コレは本能から込み上げて来るものみたいです。ああ、愛しのゆづたん・・・。</p>
<p>というわけで息子をどうぞよろしくです。</p>
<h2>and more</h2>
<p><a href="http://www.flickr.com/photos/iandeth/1775160748/" title="母子 sleeping by iandeth, on Flickr"><img class="img_L" src="http://farm3.static.flickr.com/2334/1775160748_e1b0d3e4b9_m.jpg" width="240" height="179" alt="母子 sleeping" /></a></p>
<dl>
<dt><a href="http://www.flickr.com/photos/iandeth/">息子 photos on Flickr</a></dt>
<dd>写真撮ってはメールで両家のジージバーバに共有。すっかり家族コミュニケーションツールとして使わせてもらってます。ありがとうFlickr。</dd>
<dt>ヨメの出産日記</dt>
<dd><a href="http://iandeth.dyndns.org/mt/michi/archives/000656.html">1. ご報告</a></dd>
<dd><a href="http://iandeth.dyndns.org/mt/michi/archives/000657.html">2. 立会い出産</a></dd>
<dd><a href="http://iandeth.dyndns.org/mt/michi/archives/000659.html">3. 男の育児休暇</a></dd>
</dl>]]>
   </content>
</entry>
<entry>
   <title>jQuery Tooltip plugin の基本的な使い方メモ</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000662.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.662</id>
   
   <published>2007-12-07T10:01:30Z</published>
   <updated>2007-12-07T10:03:25Z</updated>
   
   <summary>jQuery Plugins: Tooltip (jquery.tooltip.js)  このデモページのように、テキスト等にマウスを乗せると噴出しを表示させる事が出来るようになる便利プラグイン。配布元のサイトにもドキュメンテーションはあるものの、すぐに使い始めてみたいヒトや頻繁に再利用したいヒト (自分) の為に最低限必要な要素をまとめたサンプルページをここに置いておきます。 ...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="http://jquery.com/plugins/project/tooltip">jQuery Plugins: Tooltip (jquery.tooltip.js) </a></p>
<p><a href="http://jquery.bassistance.de/tooltip/">このデモページ</a>のように、テキスト等にマウスを乗せると噴出しを表示させる事が出来るようになる便利プラグイン。<a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/">配布元のサイトにもドキュメンテーション</a>はあるものの、すぐに使い始めてみたいヒトや頻繁に再利用したいヒト (自分) の為に最低限必要な要素をまとめたサンプルページをここに置いておきます。 </p>]]>
      <![CDATA[<blockquote style="text-align:center"><a href="/mt/ian/archives/jquery_tooltip/sample/">jQuery Tooltip プラグイン サンプルページ</a></blockquote>
<h2>解説</h2>
<h3>必要な javascript ファイル</h3>
<dl>
	<dt>jquery.js</dt>
	<dd>jQuery本体。 <a href="http://jquery.com">[link]</a> </dd>
	<dt>jquery.dimensions.js</dt>
	<dd>DOM要素の表示系情報 (x/y座標, width, height) をjQuery で扱う為のプラグイン。 <a href="http://jquery.com/plugins/project/dimensions">[link]</a> </dd>
	<dt>jquery.tooltip.js</dt>
	<dd>Tooltip プラグイン本体。 <a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/">[link]</a> </dd>
</dl>
<h3>必要な CSS Style 設定 </h3>
<p>以下の css 設定にする事で、カスタマイズが容易な基本レイアウトになります:</p>
<pre>#tooltip {<br />    position:   absolute;<br />    width:      12em;<br />    background: #999;<br />    padding:    10px;<br />}<br />#tooltip h3, #tooltip div {<br />    font-size:   1em;<br />    font-weight: normal;<br />    margin:      0;<br />}</pre>
<p>#tooltip &gt; width で噴出しの横幅を設定できるので、お好みで。</p>
<h3>噴出しを表示させたいHTML要素の準備</h3>
<p>title属性にテキストを格納しておく事で、tooltip pluginがそれを噴出しにして表示してくれます。 </p>
<pre>&lt;a href=&quot;hoge.html&quot; title=&quot;my tooltip text&quot;&gt;link&lt;/a&gt;</pre>
<pre>&lt;span class=&quot;memo&quot; title=&quot;some text&quot;&gt;メモ書き&lt;/span&gt;</pre>
<p>今のところ、噴出しで表示可能なのはテキストのみっぽい。</p>
<h3>最後に javascript にて噴出しを作成</h3>
<p>$().Tooltip() メソッドを実行する事により、マウスオーバー時に噴出しが表示されるようになります。</p>
<pre>$( 'a' ).Tooltip();
$( 'span.memo' ).Tooltip();</pre>
<p>引数にいろいろ渡す事で、噴出しごとに挙動を変える事も可能な模様。詳しくは<a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/">ドキュメントを参照</a>。</p>
<h2>関連情報</h2>
<p>その他の Tooltip/噴出し系 jQuery Plugin:
<ul>
	<li><a href="http://www.codylindley.com/blogstuff/js/jtip/">jTip</a></li>
	<li><a href="http://jquery.com/plugins/project/cluetip">clueTip</a></li>
	<li><a href="http://jquery.com/plugins/project/levitip">leviTip</a></li>
</ul>]]>
   </content>
</entry>
<entry>
   <title>javascriptで数値をカンマ区切り文字列に変換する関数メモ</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000661.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.661</id>
   
   <published>2007-12-03T04:08:46Z</published>
   <updated>2007-12-07T02:43:28Z</updated>
   
   <summary>何回もコードコピペを繰り返している事に気付いたので、ここにメモっておく事に。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p>何回もコードコピペを繰り返している事に気付いたので、ここにメモっておく事に。</p>]]>
      <![CDATA[<pre>function to_comma ( from ){<br />    var to = String( from );<br />    var tmp = &quot;&quot;;<br />    while (to != (tmp = to.replace(/^([+-]?\d+)(\d\d\d)/,&quot;$1,$2&quot;))){<br />        to = tmp;<br />    }<br />    return to;<br />}</pre>
<p>もともとコレを書いてくれていたページがどこだったか忘れた。作者さん申し訳ない m(_ _)m</p>]]>
   </content>
</entry>
<entry>
   <title>英語のタイピング速度を計測してみた</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000660.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.660</id>
   
   <published>2007-11-24T18:22:09Z</published>
   <updated>2007-11-26T07:16:09Z</updated>
   
   <summary>プログラマは英語に強いのか？英語のタイピング速度チェッカーゲーム - ホームページを作る人のネタ帳 を見て、自分もレッツトライ。 10-fast-fingers.com - speedtest 何回か試してみて大体この辺りが限界でした： 中学生の頃は誰よりもブッチぎりで速かったんだけどなぁ・・・はてブ見るともっとブッチぎりな方々がいらっしゃる。リスペクト++。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><a href="http://e0166.blog89.fc2.com/blog-entry-344.html">プログラマは英語に強いのか？英語のタイピング速度チェッカーゲーム - ホームページを作る人のネタ帳</a> を見て、自分もレッツトライ。</p>
<blockquote style="text-align:center"><a href="http://speedtest.10-fast-fingers.com/">10-fast-fingers.com - speedtest</a></blockquote>
<p>何回か試してみて大体この辺りが限界でした：</p>
<p style="text-align:center"><img class="img_B" src="/mt/ian/archives/20071125.gif"/></p>
<p>中学生の頃は誰よりもブッチぎりで速かったんだけどなぁ・・・<a href="http://b.hatena.ne.jp/entry/http://e0166.blog89.fc2.com/blog-entry-344.html">はてブ見る</a>ともっとブッチぎりな方々がいらっしゃる。リスペクト++。</p>]]>
      
   </content>
</entry>
<entry>
   <title>リクルートメディアコミュニケーションズ社がWeb技術に強い人材を募集しています</title>
   <link rel="alternate" type="text/html" href="http://iandeth.dyndns.org/mt/ian/archives/000658.html" />
   <id>tag:iandeth.dyndns.org,2007:/mt/ian//4.658</id>
   
   <published>2007-11-06T01:29:29Z</published>
   <updated>2006-11-23T02:00:00Z</updated>
   
   <summary>僕の所属している会社がめずらしく、というか初めて、真剣に「WEB技術およびWEBサイト構築・運用に詳しいエンジニアまたはディレクター」の人材募集をしています。この会社には、クリエイティブディレクターと呼ばれる「広告プロモーションの企画屋さん」がたくさん居て、多くの企業の採用コンテンツ(リクナビ含む)を作っています。その多くはFLASHやら動画やらを駆使したイカしたコンテンツなんですが、そんな彼らはぶっちゃけ「今の世の中にどんなWEB技術があって、それぞれ実装・活用がどの程度難しいのか、よーわからん」という悩みを抱えています。簡単なCGMサイトを作りたくて、パートナーの開発会社さんに見積もりをお願いしたら一千万級の金額が返ってきてヘコんだりもしています。相場観が判らない。気軽に試せない。...</summary>
   <author>
      <name>bashi</name>
      
   </author>
         <category term="Web And Technology" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://iandeth.dyndns.org/mt/ian/">
      <![CDATA[<p><img src="/mt/ian/archives/20071106.jpg" alt="SoftwareDesign2007年10月号" class="img_L img_B" height="200" width="150" />僕の所属している会社がめずらしく、というか初めて、真剣に「WEB技術およびWEBサイト構築・運用に詳しいエンジニアまたはディレクター」の人材募集をしています。</p><p>この会社には、クリエイティブディレクターと呼ばれる「広告プロモーションの企画屋さん」がたくさん居て、多くの企業の採用コンテンツ(リクナビ含む)を作っています。その多くはFLASHやら動画やらを駆使したイカしたコンテンツなんですが、そんな彼らはぶっちゃけ「今の世の中にどんなWEB技術があって、それぞれ実装・活用がどの程度難しいのか、よーわからん」という悩みを抱えています。簡単なCGMサイトを作りたくて、パートナーの開発会社さんに見積もりをお願いしたら一千万級の金額が返ってきてヘコんだりもしています。相場観が判らない。気軽に試せない。</p>]]>
      <![CDATA[<p style="clear:both">彼らの仕事例：</p>
<ul>
	<li><a href="http://www.searchmengine.jp">Search Mengine</a> - RMC新卒採用サイト</li>
	<li><a href="http://www.1-click.jp/">1-Click Award </a> - クリエイティブコンテスト</li>
	<li><a href="http://www.r-rmc.jp/rinen/ce_sakuhin/takisada/index.html">流行を操る</a> - 繊維専門メーカーの新卒採用コンテンツ</li>
	<li><a href="http://rikunabi2009.yahoo.co.jp/RN/KDBG/29/0118829001/DETAILA/I001/index.html">出動！第一カッター興業</a> - 工事会社の新卒採用コンテンツ</li>
</ul>
<p>今回募集しているのは、そんな彼らのすぐ隣で、随時「そのアイディアだったら、これら技術の組み合わせでいけるんじゃね？」「それだったら、こんなサーバ構成でお手軽に実装できますよ」「じゃあ来週までにプロトタイプ作ってみますね」なんて役回りで、共にイカしたサイト／コンテンツをバシバシ作っていけるような人みたいです。技術オリエンテッドなディレクター職？</p>
<p>詳しくは<a href="http://rikunabi-next.yahoo.co.jp/rnc/docs/cp_s01800.jsp?rqmt_id=0005104006" onclick="urchinTracker('/mt/ian/archives/000658.html')">こちらのリクナビ募集詳細ページ</a>を見てみてくださいませ。大きな会社ですので、給与・待遇うんぬんは良いと思います。今がチャンス！っつーことで、ぜひ。</p>
<h2>関連情報</h2>
<p><a href="http://www.r-rmc.jp/">リクルートメディアコミュニケーションズ</a></p>
<p><a href="http://www.r-rmc.jp/new/">リクルートメディアコミュニケーションズ 2009年度新卒採用サイト </a></p>]]>
   </content>
</entry>

</feed>
