<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>HouseTect, JavaScript Blog</title>
      <link>http://hisasann.com/housetect/</link>
      <description>Javascript、Actionscriptあたりをメインに遊んでいるプログラマーのブログです。ちょっぴりアートでオモロ〜なものを作ってます。</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Sat, 13 Mar 2010 15:35:51 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

      
      <item>
         <title>space - HTML5 &amp; CSS3 DEMO</title>
         <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="space.jpg" src="http://hisasann.com/housetect/2010/03/13/space.jpg" width="500" height="343" class="mt-image-none" style="" /></span>

画像やFlashはいっさい使わずに何か中心に向かってアニメーションするものを作りたいと思って制作してみました。
今回も<strong>jsDeferrd.js</strong>を使用。

<a href="http://github.com/cho45/jsdeferred" target="_blank">cho45's jsdeferred at master - GitHub</a>

中心に向かって行くということで、何かが中心にないと面白くありません。
なので、疑似的な太陽をCSS3で作り、そこにHTML5の<strong>canvas</strong>が向かって行くという感じになりました。


<h2>サンプルコード - CSS3</h2>

実はまだこのgradientというCSSプロパティが良くわかっていなくて、Firefoxで出来るけど、Safariでどうやるのかな〜という部分を検証中です。
<strong>-moz-radial-gradient</strong>というプロパティを使って太陽を描いているんですが、これをWebkitでどう指定するのかが分からない！

なので、mozとwebkitでは別々の背景にしています。

またbodyタグに-moz-radial-gradientを指定するとなぜかうまく円が描かれなかったです。
divを画面のheight、widthに広げてそこにスタイルを当てるようにして回避しました。

<textarea class="css" name="code">
.radial1 {
	background: -moz-radial-gradient(red, yellow, #1E90FF);
	background: -moz-radial-gradient(#FF0000 5%, #FFFF00 30%, #333333 50%);
	background: -webkit-gradient(linear, left top, left bottom, from(#66ff00), color-stop(0.3, #ffff00), color-stop(0.7, #ff00ff), to(#00aaff));
}

.radial2 {
	background: -moz-radial-gradient(red, yellow, #1E90FF);
	background: -moz-radial-gradient(#FF3535 6%, #F5FF35 30%, #333333 50%);
	background: -webkit-gradient(linear, left top, left bottom, from(#66ff00), color-stop(0.3, #ffff00), color-stop(0.7, #ff00ff), to(#00aaff));
}
</textarea>

あとHTML5の<strong>video</strong>タグも使って音楽を出しています。
使っている曲は、HoldenのA Break in The Clouds - Main Mixです。（怒られたら使用するのやめますw）
宇宙っぽさが演出できる名曲です。


Firefoxで見ていただくのが一番いいです。
Chrome、Safariの場合は円ではなくグラデーションになってます。
以下からどうぞ。
<a href="http://lab.hisasann.com/space/" target="_blank">space - HTML5 & CSS3 DEMO</a>


<h2>プログラムコード</h2>
・<a href="http://gist.github.com/331165" target="_blank">gist: 331165 - GitHub</a>]]></description>
         <link>http://hisasann.com/housetect/2010/03/space_-_html5_css3_demo.html</link>
         <guid>http://hisasann.com/housetect/2010/03/space_-_html5_css3_demo.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">CSS3</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Firefox</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">HTML5</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jsDeferred</category>
        
         <pubDate>Sat, 13 Mar 2010 15:35:51 +0900</pubDate>
      </item>
      
      <item>
         <title>squareDeferred</title>
         <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="squareDeferred.jpg" src="http://hisasann.com/housetect/2010/03/13/squareDeferred.jpg" width="500" height="320" class="mt-image-none" style="" /></span>

なんとなく思い立って、jsDeferred.jsでアニメーションのループがしてみたいってなったので作ってみた。
この手のアニメーションを考えるときは、どちらかというと間違ったコードが面白さを生み出す。
つまり、不意に間違って2回ループしたら面白いや、ストーリーの組み直しなどで型にハマらない動きができたりする。

ここ最近は拙作の<a href="http://lab.hisasann.com/addCommand/" target="_blank">addCommand - jQuery Plugin</a>でアニメーションを書いていたんですが、jsDeferredも便利ですね〜。

処理の割り込みや、setTimeoutで待たせるときに使ったりしてましたが、アニメーションでも十分に使いやすい。

<a href="http://github.com/cho45/jsdeferred" target="_blank">cho45's jsdeferred at master - GitHub</a>


<h2>サンプルコード - jsDeferred.js</h2>

ストーリーのループは以下のようにfunctionのcalleeを最後のnextで呼ぶようにしてあげてます。
これで疑似無限ループの完成。

<textarea class="js" name="code">
// jsDeferred
(function() {
	var callee = arguments.callee;
	
	wait(2).
	next(function() {
		return story1();
	}).
	wait(2).
	next(function() {
		return story2();
	}).
	wait(2).
	next(function() {
		callee();
	});
})();
</textarea>


あとjQuery1.4以降の機能でeasingをCSSプロパティ毎に指定できるので、それで少し気持ち悪い動きをくわえてみたりしてます。

Firefoxでも頑張って動いてくれますが、ChromeかSafariのほうが軽快に動作します。
以下からどうぞ。
<a href="http://lab.hisasann.com/squareDeferred/" target="_blank">squareDeferred</a>


<h2>プログラムコード</h2>
・<a href="http://gist.github.com/331150" target="_blank">gist: 331150 - GitHub</a>]]></description>
         <link>http://hisasann.com/housetect/2010/03/squaredeferred.html</link>
         <guid>http://hisasann.com/housetect/2010/03/squaredeferred.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jQuery</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jsDeferred</category>
        
         <pubDate>Sat, 13 Mar 2010 15:21:25 +0900</pubDate>
      </item>
      
      <item>
         <title>flickrダラ見サイト - flickrer作ってみた</title>
         <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Flickrer-1.jpg" src="http://hisasann.com/housetect/2010/03/08/Flickrer-1.jpg" width="500" height="321" class="mt-image-none" style="" /></span>

自分がflickrをダラ見することが多いので、それっぽい感じのサイトを自分用に作ってみた。
特に難しいことはしてなくて、

<ul>
	<li>$.jOpening</li>
	<li>$.flickr</li>
	<li>$.fn.jCurtain</li>
</ul>

という<strong>3つのプラグイン</strong>を作って制作してます。
あと、miyagawaさんの<a href="http://github.com/miyagawa/jquery-fitimage" target="_blank">miyagawa's jquery-fitimage at master - GitHub</a>を使って<strong>拡大画像の調整</strong>をしています。

実は単にカーテンのようなスライドを作ってみたくて、何か面白いことできないかな〜と思っていたらflickrでやったらいいかもと思って試しに作ったのがこのサイトになります。
初めのオープニング部分では、左右からラインが伸びてくるのですが、この当たりはFlashを意識して作っています。

今後もうちょい機能増やして、ダラ見しやすくする予定。
autoでスライドしていくとか。

対応ブラウザは以下（試したのが以下w）

<ul>
	<li>IE7</li>
	<li>Safari4</li>
	<li>Firefox3.6</li>
	<li>Chrome5</li>
</ul>


もしよかったら使ってみてくださいな。
<a href="http://hisasann.com/flickrer/" target="_blank">flickrer - flickrダラ見サイト</a>


追記：
<blockquote>
<p>@<a rel="nofollow" href="http://twitter.com/hisasann" class="tweet-url username">hisasann</a> マウスオーバーで画像を読むまでに間が空くのがもったいないので裏で呼んでおいたほうがいいんじゃないかと。</p>
<cite>via: <a href="http://twitter.com/edvakf/status/10133163585" target="_blank">Twitter / edvakf</a></cite>
</blockquote>

との意見をいただいたので、拡大画像部分の画像を先読みするように修正しました。]]></description>
         <link>http://hisasann.com/housetect/2010/03/flickr_-_flickrer.html</link>
         <guid>http://hisasann.com/housetect/2010/03/flickr_-_flickrer.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">CSS3</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Flickr</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Image</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jQuery</category>
        
         <pubDate>Mon, 08 Mar 2010 04:33:49 +0900</pubDate>
      </item>
      
      <item>
         <title>TextMateにZen-Codingを導入して遊んでみる</title>
         <description><![CDATA[つい最近<a href="http://www.ustream.tv/user/cipher" target="_blank">cipher @ Ustream.TV - こもりです</a>さんがZen-Codingのやり方をustで流していたのが新しいですが、TextMateを使うと簡単にZen-Codingが楽しめるのでその導入方法をまとめときます。（ほぼ自分用ｗ）

Zen-Codingとは<strong>HTML</strong>や<strong>CSS</strong>のコーディング作業を快適に、そして高速におこなうための追加機能のようです。
なので、Editorに追加でプラグインを入れてZenなCoding環境を構築する必要がありそうですね。

では一応<a href="http://macromates.com/" target="_blank">TextMate</a>の日本語化の部分から解説します。


<h2>TextMateを日本語化</h2>

TextMateはデフォルトではマルチバイトに対応していません。
なので、プラグインを入れて日本語を打てるようにする必要があります。

以下のリンクに詳しくまとめてありますので、参考にしてみてください。
<a href="http://hisasann.com/housetect/2008/05/railstextmate.html">Railsに最適なテキストエディター「TextMate」を入れて日本語化してみた</a>


<h2>TextMateにZen-Codingを導入する</h2>

ではZen-Codingを行うためのプラグインを導入してみましょう！

まずは以下のサイトからzipファイルをダウンロードし解凍しときます。

<ul>
	<li>TextMate.Zen.CSS.1.3.1.zip</li>
	<li>TextMate.Zen.HTML.1.3.1.zip</li>
</ul>

<a href="http://code.google.com/p/zen-coding/" target="_blank">zen-coding - Project Hosting on Google Code</a>


<ul>
	<li>Zen.Coding-TextMate.v0.6.zip</li>
</ul>

<a href="http://code.google.com/p/zen-coding/downloads/list" target="_blank">Downloads - zen-coding - Project Hosting on Google Code</a>


そして以下のディレクトリに3つの<strong>tmbundle</strong>ファイルを配置します。

<blockquote>
/Users/hoge/Library/Application Support/TextMate/Bundles
</blockquote>

これでZen-Codingのプラグインの導入はおわりです。


<h2>Zen-Codingしてみる</h2>

まずはTextMateを起動します。
そしてHTMLを入力するので、<strong>Option + Command + h</strong>を押します。

これでZenなHTMLモードになります。

ためしに「<strong>html:4t</strong>」と入力してみます。

すると。。。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="textmate1.jpg" src="http://hisasann.com/housetect/2010/03/01/textmate1.jpg" width="500" height="109" class="mt-image-none" style="" /></span>

と<strong>HTML 4.01 Transitional</strong>で展開されます。

また、「<strong>html:5</strong>」と入力すると。。。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="textmate2.jpg" src="http://hisasann.com/housetect/2010/03/01/textmate2.jpg" width="500" height="169" class="mt-image-none" style="" /></span>

と<strong>HTML5</strong>モードで展開されます。

実は今までも、メニューから「File -&gt; New From Templete -&gt; HTML」と選択していけば同じようなテンプレートを呼び出せたんですが、
毎回新しいhtmlを作成するときにメニューに行くのは面倒でした。
なので、Zen-Codingでhtmlの雛形を一気に生成できることは、htmlコーダーやJavaScripterの人に大きな恩恵をもたらすと思います。

さらに適当なhtmlを入力してみます。

div#ならid指定、div.ならclass指定の要素が展開されます。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="textmate3.jpg" src="http://hisasann.com/housetect/2010/03/01/textmate3.jpg" width="500" height="360" class="mt-image-none" style="" /></span>

なかでもやっぱりうれしいのが、table+やdl+でしょう。
いちいちtableタグを作ってその中にtr作ってとやっていた作業が1パツで展開されます。
グルーピング系のhtmlタグはBlogの記事を書くときにも使うので、非常に楽になるのではないでしょうか。

ちなみに僕はBlogの記事をすべてTextMateで作成しています。
<strong>blockquote</strong>と入力してタブを押せばタグが展開されたり、もう便利なのです！


<h2>
	動画でZen-Codingを体感してみる。
</h2>

こもりさんのブログ<a href="http://blog.gaspanik.com/" target="_blank">gaspanik weblog</a>に動画があり非常に参考になりますので、ここに掲載させていただきます。

<object width="470" height="370"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9067540&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9067540&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="470" height="370"></embed></object>

[via]
<a href="http://blog.gaspanik.com/coding-with-textmate-and-zencoding" target="_blank">TextMate+Zen-Codingで超速コーディング？  |  gaspanik weblog</a>
<a href="http://blog.gaspanik.com/textmate-with-zencoding-ext" target="_blank">Zen-Codingでできるあんなことこんなこと  |  gaspanik weblog</a>


<h2>TextMateのcolorについて</h2>

全然関係ないんですが、僕のTextMateのtheme colorは<a href="http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/" target="_blank">Monokai » Blog Archive » Textmate color theme</a>を使っています。

JavaScriptとか結構かっこよく色分けしてくれるので、ずうっとこれ使ってます。

他の色にしたいなら
<a href="http://wiki.macromates.com/Themes/UserSubmittedThemes" target="_blank">Themes / UserSubmittedThemes browse -- TextMate Wiki</a>
がオススメです、すごい量のtheme colorがあるので、自分色を探してみるのもよいかもしれません。

■関連リンク
・<a href="http://hisasann.com/housetect/2010/02/textmategetbundle.html">TextMateのGetBundleがうまくいかないときの対処方法 at HouseTect, JavaScript Blog</a>
・<a href="http://hisasann.com/housetect/2009/04/textmate.html">よく使うTextMateショートカット at HouseTect, JavaScript Blog</a>]]></description>
         <link>http://hisasann.com/housetect/2010/03/textmatezen-coding.html</link>
         <guid>http://hisasann.com/housetect/2010/03/textmatezen-coding.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">TextMate</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Zen-Coding</category>
        
         <pubDate>Mon, 01 Mar 2010 12:36:54 +0900</pubDate>
      </item>
      
      <item>
         <title>Macで半角カタカナを入力する方法</title>
         <description><![CDATA[入力できないというのは知っていたんですが、半角カタカナを有効にする設定がどこにあるのか分からなかったので、メモメモ。


<h2>
	システム環境設定を開く
</h2>

まずはシステム環境設定を開き、言語環境をクリックします。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="システム環境設定.jpg" src="http://hisasann.com/housetect/2010/02/27/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A.jpg" width="500" height="255" class="mt-image-none" style="" /></span>


<h2>
	半角カタカナを有効にする
</h2>

入力メニューのタブをクリックして、あとはことえりの設定のところで、半角カタカナにチェックを付けるだけ。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="言語環境.jpg" src="http://hisasann.com/housetect/2010/02/27/%E8%A8%80%E8%AA%9E%E7%92%B0%E5%A2%83.jpg" width="500" height="224" class="mt-image-none" style="" /></span>


<h2>
	半角カタカナを入力するとき
</h2>

適当に日本語で文字を打ってから、「<strong>Ctrl + ;</strong>」で半角カタカナに変換できます。
僕はあんまり半角カタカナを使わないんですが、システムのテストで必要になるかもしれません。

[via]
<a href="http://macmac.cocolog-nifty.com/blog/2006/03/mac_16b1.html" target="_blank">macで半角カナ: たなごころ</a>]]></description>
         <link>http://hisasann.com/housetect/2010/02/mac_2.html</link>
         <guid>http://hisasann.com/housetect/2010/02/mac_2.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
         <pubDate>Sat, 27 Feb 2010 22:47:08 +0900</pubDate>
      </item>
      
      <item>
         <title>Macに複数MySQLをインストールする方法</title>
         <description><![CDATA[MacPortsでインストールする方法<a href="http://www.fraction.jp/log/archives/2007/10/31/install_mysql_to_leopard" target="_blank">MacPortsでMySQLをインストール -- BONNOH FRACTION 13</a>や、pkgでインストールする方法<a href="http://www.o-hiro.net/blog/2008/03/mac_os_105mysql.html" target="_blank">素晴らしき哉、人生！: Mac OS 10.5にMySQLインストール</a>を見てみたんですが、どうもこれらの方法では複数のMySQLを同居させるのがむずかしそうだったので、ソースからコンパイルして入れてみた。

そしてうまく複数のMySQLが動いたので、そのときのメモメモ。。。


<h2>
	ソースをダウンロードする
</h2>

以下のリンクからtar.gzをダウンロードします。

今回僕は<strong>mysql-5.0.33</strong>をインストールしましたので、適宜自分のバージョンに置き換えて読んでいただけたらと思います。

<a href="http://dev.mysql.com/downloads/mysql/5.1.html#source" target="_blank">MySQL :: Download MySQL Community Server</a>

そして適当なディレクトリに解凍する。

<blockquote>
tar zxvf mysql-5.0.33.tar.gz 
</blockquote>

Macだと基本的にmysql-5.0.33.tar.gzをダブルクリックすれば解凍ソフトが起動するので、ターミナルでなくてもOKだと思います。

今回は<strong>/usr/local/src</strong>ディレクトリに解凍しました。

そしてディレクトリに潜る。

<blockquote>
cd mysql-5.0.33
</blockquote>


<h2>
	コンパイルする
</h2>

まずは<strong>configure</strong>を実行します。
このときのコンパイルオプションは結構重要で、とりあえず以下の感じに落ち着きました。

<strong>--with-mysqld-user=hoge</strong>のところは、<a href="http://blog.bornneet.com/Entry/257/" target="_blank">Macにユーザ権限でmysqlをソースから（あと、DBD::mysqlも） - Born Neet</a>を参考にして、今ログインしているユーザーを記述してみました。

<strong>--prefix=/usr/local/mysql3306</strong>は複数のMySQLを/usr/local/に同居させるので、mysqlの後に僕はport番号をサフィックスとして付与しています。

<blockquote>
./configure --with-charset=utf8 --with-mysqld-user=hoge --with-unix-socket-path=/usr/local/mysql3306/var/mysql.sock --prefix=/usr/local/mysql3306 --with-blackhole-storage-engine --with-federated-storage-engine
</blockquote>

configureがうまくいけば、あとはmakeで終わり。

<blockquote>
make
make install
</blockquote>


<h2>
	データベースを初期化する
</h2>

<blockquote>
/usr/local/mysql3306/bin/mysql_install_db --user=hoge
</blockquote>

もしここで「<strong>unknown option '--skip-federated'</strong>」のようなエラーが出てしまう場合は、

以下のファイルの

<blockquote>
/etc/my.cnf
</blockquote>

この部分をコメントアウトしてください。

<blockquote>
#skip-federated
</blockquote>

[via]
<a href="http://d.hatena.ne.jp/hogem/20090513/1242202292" target="_blank">mysql 5.1のmysql_install_dbがこける - うまい棒blog</a>

初期化が終わるとデータディレクトリのvarが作成されます。

<blockquote>
/usr/local/mysql3306/var/
</blockquote>

そして今回の重要なポイントですが、MySQLを別ポートで複数起動するので、この<strong>my.cnf</strong>が1つだとうまくいきません。
my.cnfに<strong>port</strong>を指定する箇所があるので、別々のMySQLは別々のmy.cnfを見に行って欲しいわけです。

なので、今回は

<blockquote>
cp /etc/my.cnf /usr/local/mysql3306/var
</blockquote>

を実行してmy.cnfをデータディレクトリにコピーしました。
これで順番的に自分自身のmy.cnfを見に行くようになります。
また、<strong>mysql.sock</strong>というMySQLが起動したときに作成されるファイルも別々にしたいので、これもデータディレクトリに作ってねっ！と記述しています。
一般的には<strong>/tmp/mysql.sock</strong>に作成されるようです。

<blockquote>
[client]
default-character-set=utf8
#password       = your_password
port            = 3306
socket          = /usr/local/mysql3306/var/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
port            = 3306
socket          = /usr/local/mysql3306/var/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
</blockquote>


<h2>MySQLを起動する</h2>

起動コマンドは以下のとおり。

<blockquote>
cd /usr/local/mysql3306/bin
./mysqld_safe &
</blockquote>

これでバックグラウンドでMySQLが起動します。

ちょっと教えてもらった操作をメモ。
もし以下のように<strong>&</strong>を付けずに起動した場合、

<blockquote>
./mysqld_safe
</blockquote>

<strong>Ctrl + z</strong>で一旦プロセスを落として、

<blockquote>
bg
</blockquote>

と叩くと

<blockquote>
./mysqld_safe & 
</blockquote>

をしたときと同じ動作になるみたい。

最後に、プロセスが立ち上がっているかを以下で確認する。

<blockquote>
ps ax | grep mysql
</blockquote>


<h2>MySQLを停止する</h2>

以下で止まる。

<blockquote>
./mysqladmin shutdown --socket=/usr/local/mysql3306/var/mysql.sock
</blockquote>


<h2>
	まとめ
</h2>

これで、もうひとつmysqlを作りたい場合は、「<strong>コンパイルする</strong>」の部分から--prefixを変えて実行すればよい。

結構手順としては面倒だが、プロジェクトが複数のMySQLを必要としている場合に、この手順が参考になれば幸いです。

■関連リンク
・<a href="http://dev.mysql.com/doc/refman//5.1/ja/mac-os-x-installation.html" target="_blank">MySQL :: MySQL 5.1 リファレンスマニュアル :: 2.5 Mac OS X に MySQL をインストールする</a>
・<a href="http://www.hi-ho.ne.jp/tsumiki/book_sup2.html" target="_blank">「Can't connect to local MySQL server through socket」エラーについて</a>
・<a href="http://dev.mysql.com/doc/refman/4.1/ja/mysqld-multi.html" target="_blank">MySQL :: MySQL 4.1 リファレンスマニュアル :: 4.8.3 mysqld_multi（複数の MySQL サーバを管理するプログラム）</a>
・<a href="http://www.pleiades.or.jp/misc/mac/MySQL.html" target="_blank">MySQL / Mac OS X</a>
・<a href="http://blog.bornneet.com/Entry/257/" target="_blank">Macにユーザ権限でmysqlをソースから（あと、DBD::mysqlも） - Born Neet</a>
・<a href="http://dev.mysql.com/doc/refman/4.1/ja/mysql-install-db.html" target="_blank">MySQL :: MySQL 4.1 リファレンスマニュアル :: 2.4.1 mysql_install_db の実行に関する問題</a>
・<a href="http://blog.mikuriya.biz/archives/106" target="_blank">1台のサーバに複数のMySQLをインストールしてみた。 | RwJ</a>
・<a href="http://dev.mysql.com/doc/refman/5.1/ja/configure-options.html" target="_blank">MySQL :: MySQL 5.1 リファレンスマニュアル :: 2.9.2 典型的な configure オプション</a>
・<a href="http://dev.mysql.com/doc/refman/4.1/ja/problems-with-mysql-sock.html" target="_blank">MySQL :: MySQL 4.1 リファレンスマニュアル :: A.4.5 MySQL ソケットファイル /tmp/mysql.sock の保護または変更方法</a>]]></description>
         <link>http://hisasann.com/housetect/2010/02/macmysql.html</link>
         <guid>http://hisasann.com/housetect/2010/02/macmysql.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">MySql</category>
        
         <pubDate>Tue, 23 Feb 2010 16:59:43 +0900</pubDate>
      </item>
      
      <item>
         <title>MacにImageMagickをインストールする方法</title>
         <description><![CDATA[いろいろググッた結果、MacPortsからインストールするのが速そう。
ということでまずはMacPortsのインストールから解説します。

すでに入っているかたは、読み飛ばしてください。


<h2>MacPortsをインストールする</h2>

まずは、Xcode ToolsをMacに付属しているインストールディスクからインストールします。
終わったら、<a href="http://svn.macosforge.org/repository/macports/downloads/" target="_blank">http://svn.macosforge.org/repository/macports/downloads/</a>からバージョンを選んでダウンロードする。

僕のローカルにはすでに、<strong>MacPorts-1.7.1</strong>が入っていたので、このバージョンでも問題ないと思います。

次に環境変数にパスを追加しときます。

<blockquote>
cd
vim .bash_profile

export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH
</blockquote>

一応リフレッシュしとく。

<blockquote>
source .bash_profile
</blockquote>


あとはMacPortsをアップデートしておわり。

<blockquote>
$ sudo port -d selfupdate
$ sudo port -d sync
</blockquote>


[via]
<a href="http://d.hatena.ne.jp/hakobe932/20061208/1165646618" target="_blank">MacPortsでステキなUNIXツールをインストール - はこべにっき#</a>


<h2>ImageMagickをインストールする</h2>

ここまで来るとあとは楽チンで、

<blockquote>
$ sudo port install ImageMagick
</blockquote>

これで終わり！
いろんなものを一緒にインストールするので、だいたい30分くらいはかかるかも。

すでに、MacPortsでインストールされているものを確認するなら、

<blockquote>
$ port installed
</blockquote>

と叩けば、ゾロゾロと表示されます。

[via]
<a href="http://chalow.net/2008-08-15-3.html" target="_blank">[を] Mac に ImageMagick を入れた</a>

■関連リンク
・<a href="http://hisasann.com/housetect/2009/06/macbook_pro_1.html" target="_blank">新しいMacbook Proにインストールしたものメモ</a>
・<a href="http://openlab.dino.co.jp/2008/08/18/220655330.html" target="_blank">MacPortsのコマンド逆引き一覧 -- ディノオープンラボラトリ</a>]]></description>
         <link>http://hisasann.com/housetect/2010/02/macimagemagick.html</link>
         <guid>http://hisasann.com/housetect/2010/02/macimagemagick.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Java</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
         <pubDate>Tue, 23 Feb 2010 16:50:28 +0900</pubDate>
      </item>
      
      <item>
         <title>Wordpressの画像アップロードを激的に便利にする方法</title>
         <description><![CDATA[以下の<strong>JavaScript</strong>ファイルに

<blockquote>
wp-admin/js/media-upload.js
</blockquote>

<strong>send_to_editor</strong>という関数があるので、その中の以下の部分を書き換えると<strong>アップロード</strong>後や<strong>投稿に挿入</strong>後に再び画像アップロードのレイヤーが表示される。

<textarea class="js" name="code">
	//tb_remove();
	window.history.back();
</textarea>

これで、

<ul>
	<li>
		複数ファイルをアップロード
	</li>
	<li>
		名前を変更する
	</li>
	<li>
		変更を保存する
	</li>
	<li>
		ひとつずつ画像を投稿に挿入する
	</li>
</ul>

という手順ができるので、激的に作業が速くなる。


Wordpressを使っているとどうしても画像のアップロードのところの面倒くささがあって、記事を書くのが少しおっくうになるが、これで少しでもブログを書くのが楽しくなれば幸いです。

■関連リンク
<a href="http://ja.forums.wordpress.org/topic/1662#post-7107" target="_blank">WordPress › フォーラム » 画像の「投稿に挿入」の効率化</a>]]></description>
         <link>http://hisasann.com/housetect/2010/02/wordpress.html</link>
         <guid>http://hisasann.com/housetect/2010/02/wordpress.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">ブログ</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Blog</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">WordPress</category>
        
         <pubDate>Mon, 15 Feb 2010 19:24:06 +0900</pubDate>
      </item>
      
      <item>
         <title>TextMateのGetBundleがうまくいかないときの対処方法</title>
         <description><![CDATA[<strong>TextMate</strong>を使っていると基本的には<strong>デフォルトのBundle</strong>でことが足りるんですが、<strong>jQueryBundle</strong>入れたり、<strong>MootoolsBundle</strong>入れたりと何かしらBundleを自分でインストールする機会があります。

このときにBundleを簡単にインストールできるGetBundleを使えば、簡単にインストールできるんですが、不調なのかアップデートが必要なのかうまくいかない場合があり、
こんなときはBundleの<strong>svnリポジトリ</strong>から自分でインストールしちゃうと早いです。


<h2>
	Bundlesから選んでインストールする方法
</h2>

以下のリンクから欲しいバンドルリンクをクリックします。

<a href="http://svn.textmate.org/trunk/Bundles/" target="_blank">http://svn.textmate.org/trunk/Bundles/</a>

そのときのURLをコピーして、以下のように直接TextMateのBundlesディレクトリに<strong>チェックアウト</strong>する。

僕は自分のUserの下にTextMateのBundlesを入れているのでこんな感じ。

<textarea class="js" name="code">
cd /Users/hoge/Library/Application Support/TextMate/Bundles
svn co http://svn.textmate.org/trunk/Bundles/JavaScript%20jQuery.tmbundle/
</textarea>


システム全体で共通に使っている人は/Libraryから始めるみたい。

<textarea class="js" name="code">
cd /Library/Application Support/TextMate/Bundles
svn co http://svn.textmate.org/trunk/Bundles/JavaScript%20jQuery.tmbundle/
</textarea>


Bundlesは死ぬほど便利なので、入れまくって使いまくりましょう！！]]></description>
         <link>http://hisasann.com/housetect/2010/02/textmategetbundle.html</link>
         <guid>http://hisasann.com/housetect/2010/02/textmategetbundle.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">TextMate</category>
        
         <pubDate>Fri, 05 Feb 2010 16:01:16 +0900</pubDate>
      </item>
      
      <item>
         <title>Apple iPadが欲しくなる映像</title>
         <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="アップル - iPad - デザイン - 革命的なマルチタッチデバイス。-1.jpg" src="http://hisasann.com/housetect/2010/02/04/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20iPad%20-%20%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%20-%20%E9%9D%A9%E5%91%BD%E7%9A%84%E3%81%AA%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BF%E3%83%83%E3%83%81%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%80%82-1.jpg" width="500" height="150" class="mt-image-none" style="" /></span>

始め、いろんな方のエントリーを読んで僕は買わないかな〜と思っていましたが、どうにもこうにも徐々に買いたい欲が湧いてきてしまった。
そもそも<strong>家でもMac</strong>、<strong>職場でもMac</strong>を使って作業をしていて、<strong>ケイタイはiPhone</strong>だしともうMac漬けなので、iPadも欲しくなってしまう。

まずは以下のApple iPadのビデオからどうぞ。
毎回思いますが、この作り手たちの声は卑怯！ｗ

<strong>Apple iPad</strong>
<object width="500" height="325"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9031647&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9031647&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="325"></embed></object>


こちらは実際にiPadに触った人たちのビデオ。
ますます欲しくなります。。

<strong>Apple iPad: iLounge.com's Complete Interface Walkthrough (720p HD)</strong>
<object width="500" height="325"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9037933&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9037933&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="325"></embed></object>

<strong>Apple iPad: Hands On</strong>
<object width="500" height="325"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9028871&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9028871&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="325"></embed></object>

<strong>iPad first impressions</strong>
<object width="500" height="325"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9048681&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9048681&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="325"></embed></object>

いやはや後すこし待ちますかっ！

<a href="http://www.apple.com/jp/ipad/" target="_blank">アップル - iPad - ウェブ、メール、写真を体験する最高の方法。</a>]]></description>
         <link>http://hisasann.com/housetect/2010/02/apple_ipad.html</link>
         <guid>http://hisasann.com/housetect/2010/02/apple_ipad.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">iPad</category>
        
         <pubDate>Thu, 04 Feb 2010 12:51:51 +0900</pubDate>
      </item>
      
      <item>
         <title>JavaScript変態複雑化文法最速マスター</title>
         <description><![CDATA[<a href="http://d.hatena.ne.jp/Nagise/20100202/1265131791" target="_blank">Java変態文法最速マスター - プログラマーの脳みそ</a>をリスペクト。
<a href="http://d.hatena.ne.jp/hasegawayosuke/20100203/p1" target="_blank">JavaScript変態文法最速マスター - 葉っぱ日記</a>をリスペクト。

特に技法的なことではないんですが、functionをいろんなところで絡めて<strong>わかりにくくする</strong>ポイントをいくつか紹介。


<h2>if文にfunctionを絡めてみる</h2>

単純なifなはずなのに、条件式に即時実行のfunctionを絡めることによってよりわかりにくくできます。
さらに<strong>クロージャ</strong>をreturnして()で実行し、より複雑にする技法もとりいれてます。

<textarea class="js" name="code">
if (function(a, b) {
	return (function(a, b) {
		return a < b;
	})(1, 2);
}()) {
	console.log(1);
}
</textarea>


<h2>for文にfunctionを絡めてみる</h2>

そもそもfor文の回りにfunctionを絡めてわかりにくくし、for文の条件式にもfunctionを絡めます。
さらに<strong>クロージャ</strong>をreturnして()で実行し、より複雑にする技法もとりいれてます。

「ちなみにここでやっていることは引数の[1, 2, 3]という配列を受け取って、新しい配列にコピーしてreturnしているだけです。」

<textarea class="js" name="code">
var array = (function(arr) {
	return function() {
		var i=0,
			ret = new Array;

		for (; i < function(arr) {return arr.length;}(arr);)(function(object) {
			ret.push(object);

			(function() {++i;})();
		})(arr[i]);

		return ret;
	}
})([1, 2, 3])();
console.log(array);
</textarea>


<h2>出力結果</h2>

<blockqute>
	 [1, 2, 3]
</blockqute>


<h2>
	Objectに上記やり方を絡めてみる
</h2>

aというプロパティはただaを返せば終わりなはずなのに、わざわざfunctionでネストしてわかりにくくしています。
bというプロパティは上記<strong>if文複雑化</strong>と<strong>for文複雑化</strong>を応用して、解読が困難な状態を実現しています。

<textarea class="js" name="code">
var Hoge = {
	a: function() {
		return function() {
			return (function() {
				return "a"
			})();
		}
	},
	
	b: function() {
		if (function(a) {
			return (function(a) {
				return a == "a";
			})("a");
		}()) {
			var array = (function(arr) {
				return function() {
					var i=0,
						ret = new Array;
			
					for (; i < function(arr) {return arr.length;}(arr);)(function(object) {
						ret.push(object);
			
						(function() {++i;})();
					})(arr[i]);
			
					return ret;
				}
			})([1, 2, 3])();
			
			return array;
		}
	}
}
console.log(Hoge.b());
</textarea>


<h2>出力結果</h2>

<blockqute>
	 [1, 2, 3]
</blockqute>


<h2>
	複雑化で気を付ける点
</h2>

iをインクリメントする部分の複雑化で

<textarea class="js" name="code">
(function() {++i;})();
</textarea>

という部分がありますが、ここで

<textarea class="js" name="code">
(function(i) {++i;})(i);
</textarea>

このように引数で渡してはいけません。
外側のスコープにいるiではなく、このfunctionの関数スコープ内のiをインクリメントすることになるので無限ループになります。

これ以外にも<strong>curry化</strong>をうまく使いまくって、複雑にすることができますが、だいたい上記のことが応用できれば特に問題はありません。

<strong>※注意 function絡めは節度と必要度合いを見て実装しましょうね！</strong>]]></description>
         <link>http://hisasann.com/housetect/2010/02/javascript_12.html</link>
         <guid>http://hisasann.com/housetect/2010/02/javascript_12.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Program</category>
        
         <pubDate>Wed, 03 Feb 2010 16:20:40 +0900</pubDate>
      </item>
      
      <item>
         <title>エラトステネスの篩 - JavaScript版</title>
         <description><![CDATA[<a href="http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9" target="_blank">エラトステネスの篩 - Wikipedia</a>

こんな感じなのかな。。


<h2>サンプルコード</h2>

<textarea class="js" name="code">
console.log(makePrime(100));

function makePrime(maxCount) {
	var max = maxCount + 1,
		primes = new Array(max),
		ret = new Array();

	// 一旦すべて素数とする
	for (var i=1; i < max; ++i) { primes[i] = true; };

	// 素数だけ抽出
	for (var i=2; i < max; ++i) {
		if (primes[i]) {
			ret.push(i);
		
			for (var j=i; j*i <= max; ++j) {
				// 素数以外にfalseを入れる
				primes[j*i] = false;
			};
		}
	};
	
	return ret;
}
</textarea>


<h2>
	出力結果
</h2>

<blockquote>
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
</blockquote>

勉強になりました！]]></description>
         <link>http://hisasann.com/housetect/2010/01/_-_javascript.html</link>
         <guid>http://hisasann.com/housetect/2010/01/_-_javascript.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Algorithm</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
         <pubDate>Fri, 29 Jan 2010 11:25:38 +0900</pubDate>
      </item>
      
      <item>
         <title>JavaScriptライブラリを使っていてIEで余計なリクエストが発生してしまうケース</title>
         <description><![CDATA[ここ最近フロントエンドのパフォーマンスチェックで<a href="http://www.httpwatch.com/?gclid=CKXKlrHXw58CFZAwpAodEWmxEQ" target="_blank">HttpWatch</a>を使っているんですが、これはかなり調子がいい！
特にインストールするとIEとFirefoxに追加され、Firebugのように画面の下のほうに表示されるので違和感なく使えます。

んで、このソフトを使ってサイトのパフォーマンスチェックをしていたら、IEの場合だけ

「<strong>ERROR_INTERNET_INVALID_URL</strong>」

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="httpwatch1.jpg" src="http://hisasann.com/housetect/2010/01/27/httpwatch1.jpg" width="500" height="94" class="mt-image-none" style="" /></span>

というRequestの結果が返ってきて、これってなんだろうと調べてみたら、<strong>jQuery</strong>・<strong>prototype.js</strong>・<strong>YUI</strong>を使っている場合に
IEで<strong>DomContentLoaded</strong>（DCL）判定するときに発生しているようです。

これでだいたい3〜6ミリ秒のオーバヘッドがあるよう。
ほんのちょびっとですがねｗ


<h2>jQueryの場合（ver1.2.1）</h2>

bindReady関数の中にIEだったらという分岐があり、その中で<strong>src=//:</strong>なscriptタグをdocument.writeしているのが原因。

<textarea class="js" name="code">
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
else if ( jQuery.browser.msie ) {

	// Only works if you document.write() it
	document.write("<scr" + "ipt id=__ie_init defer=true " + 
		"src=//:><\/script>");
</textarea>

このscriptがdocument.writeされたタイミングでsrc属性のURLをGETする際に、よくわからんURLじゃ〜と言っているんでしょうね。
jQueryがこの判定方法を使っているのはおそらく<strong>1.2.1</strong>以前だと思うので、1.2.6や1.3.X、または1.4を使っている場合は問題ありません。

ちなみに1.4のDCLの判定は以下のようになっています。

<textarea class="js" name="code">
if ( document.attachEvent ) {
	// ensure firing before onload,
	// maybe late but safe also for iframes
	document.attachEvent("onreadystatechange", DOMContentLoaded);
	
	// A fallback to window.onload, that will always work
	window.attachEvent( "onload", jQuery.ready );

	// If IE and not a frame
	// continually check to see if the document is ready
	var toplevel = false;

	try {
		toplevel = window.frameElement == null;
	} catch(e) {}

	if ( document.documentElement.doScroll && toplevel ) {
		doScrollCheck();
	}
}
</textarea>

onreadystatechangeとonload、あとは今までにもあったdoScrollで判定しているようです。


<h2>prototype.jsの場合（1.6）</h2>

このprototype.jsを使っている場合が、今回の<strong>ERROR_INTERNET_INVALID_URL</strong>なRequestを送信してしまうパターンになります。
実際のコードは以下のとおり。

<textarea class="js" name="code">
document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
$("__onDOMContentLoaded").onreadystatechange = function() {
  if (this.readyState == "complete") {
    this.onreadystatechange = null;
    fireContentLoadedEvent();
  }
};
</textarea>

deferで遅延評価させて、readyStateがcompleteになったらfireしています。
この方法個人的に面白くて好きなんですが、無駄なRequestが発生してしまうのが難点ですね。

■関連記事
<a href="http://hisasann.com/housetect/2008/11/prototypejsdomloadedie.html">Prototypejsのdom:loadedを検証（IEの場合） </a>


<h2>YUIの場合</h2>

<a href="http://blog.httpwatch.com/2007/11/20/error_internet_invalid_url-httpwatch/" target="_blank">ERROR_INTERNET_INVALID_URL & HttpWatch - HttpWatch Blog</a>にはYUIでも起こると書かれていましたが、YUI2・YUI3の両方でscriptをdeferさせる方法はなかったので大丈夫でしょう。
もっと古い時代に書かれていたと思われます。

以下YUI3のDomContentLoaded判定。

<textarea class="js" name="code">
if (navigator.userAgent.match(/MSIE/)) {

    if (self !== self.top) {
        document.onreadystatechange = function() {
            if (document.readyState == 'complete') {
                document.onreadystatechange = null;
                _ready();
            }
        };
    } else {

        GLOBAL_ENV._dri = setInterval(function() {
            try {
                // throws an error if doc is not ready
                document.documentElement.doScroll('left');
                clearInterval(GLOBAL_ENV._dri);
                GLOBAL_ENV._dri = null;
                _ready();
            } catch (ex) { 
            }
        }, POLL_INTERVAL); 
    }
}
EU._simpleAdd(window, "load", EU._load);
</textarea>

ほとんどjQueryと同じです。


<h2>まとめ</h2>

今回の<strong>ERROR_INTERNET_INVALID_URL</strong>が発生してしまう可能性があるのは以下、

<ul>
	<li>jQueryは1.2.1以前を使っている場合</li>
	<li>prototype.js1.6以前を使っている場合</li>
	<li>YUI2よりも前のものを使っている場合</li>
</ul>

の3点かな。
他のライブラリも含めたらもっとあるでしょうが、とりあえず調べたのはこんだけ。
Firefoxとかだとこの現象は発生しないので、なかなか発見しずらいものではありますが、たまたま発見したのでログとして残しました。

<a href="http://www.httpwatch.com/?gclid=CKXKlrHXw58CFZAwpAodEWmxEQ" target="_blank">HttpWatch</a>以外に僕が使っているパフォーマンスチェックツールは、

<a href="https://addons.mozilla.org/ja/firefox/addon/5369" target="_blank">YSlow :: Add-ons for Firefox</a>

<a href="http://code.google.com/p/page-speed/" target="_blank">page-speed - Project Hosting on Google Code</a>

あと、

<a href="http://ajax.dynatrace.com/pages/" target="_blank">Diagnose and Prevent AJAX Performance Issues - dynaTrace AJAX Edition</a>

これIEだけなんですが、CLASS指定の個数とかID指定の個数とかわかるので、どこで遅くなっているかがわかりやすいです。

ではでは。

■関連リンク
・<a href="http://blog.httpwatch.com/2007/11/20/error_internet_invalid_url-httpwatch/" target="_blank">ERROR_INTERNET_INVALID_URL & HttpWatch - HttpWatch Blog</a>]]></description>
         <link>http://hisasann.com/housetect/2010/01/javascriptie.html</link>
         <guid>http://hisasann.com/housetect/2010/01/javascriptie.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">YUI</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jQuery</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">prototypeJS</category>
        
         <pubDate>Wed, 27 Jan 2010 12:57:01 +0900</pubDate>
      </item>
      
      <item>
         <title>JavaScript遅延ロード - jLazyLoader</title>
         <description><![CDATA[<a href="http://d.hatena.ne.jp/kagigotonet/20091221/1261355472" target="_blank">Gmailチームが明かすHTMLアプリケーション起動の高速化テクニック - TechTalkManiacs</a>を読んでて、こんな方法があるのか〜と関心した。
scriptタグの中をコメントアウトにしているので、初めのJavaScriptが解析されるときは無視されて、あとで<strong>eval</strong>させるという面白い方法。

<h2>
	ソースコード
</h2>

<textarea class="js" name="code">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"&gt;

&lt;html lang="en"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
	&lt;title&gt;untitled&lt;/title&gt;
	&lt;script src="lib/jquery.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;
	&lt;script type="text/javascript" charset="utf-8" id="lazy1"&gt;
	/*
	// Make sure you strip out (or replace) comment blocks in your JavaScript first.
	window.lazy = function() {
		alert("lazy!!");
	}
	*/
	&lt;/script&gt;
	&lt;script type="text/javascript" charset="utf-8" id="lazy2"&gt;
	/*
	lazy();
	*/
	&lt;/script&gt;
	&lt;script type="text/javascript" charset="utf-8"&gt;
	// jLazyLoader
	// 後からJavaScriptをロードするためのjQueryPlugin
	(function($) {
		$.jLazyLoader = function() {}
		$.jLazyLoader.load = function(selector) {
			load(selector);
		}

		function load(selector) {
		    eval(stripOutCommentBlock($(selector).html()));
		}

		// [via] http://d.hatena.ne.jp/kagigotonet/20091221/1261355472
		function stripOutCommentBlock(code) {
		    return code.replace(/^[\s\xA0]+\/\*|\*\/[\s\xA0]+$/g, "")
		}
	})(jQuery);

	// DCL
	$(function() {
		$("#lazyLoader").click(function() {
			$.jLazyLoader.load("#lazy1");
			$.jLazyLoader.load("#lazy2");
		});
	});
	&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;

	&lt;div id="lazyLoader"&gt; Lazy Load &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</textarea>


<h2>
	ダウンロード
</h2>

<a href="http://gist.github.com/270994" target="_blank">gist: 270994 - GitHub</a>


コメントアウトにしちゃっているので可読性は低いですが、このテクニックはいつか使って速度の検証をしてみたいところ。

■関連リンク
・<a href="http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html" target="_blank">Google Code Blog: Gmail for Mobile HTML5 Series: Reducing Startup Latency</a>]]></description>
         <link>http://hisasann.com/housetect/2010/01/javascript_-_jlazyloader.html</link>
         <guid>http://hisasann.com/housetect/2010/01/javascript_-_jlazyloader.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">Plugin</category>
        
          <category domain="http://www.sixapart.com/ns/types#tag">jQuery</category>
        
         <pubDate>Thu, 07 Jan 2010 13:35:21 +0900</pubDate>
      </item>
      
      <item>
         <title>eclipseの起動画面を変えて楽しむ方法</title>
         <description><![CDATA[<a href="http://d.hatena.ne.jp/torazuka/20100104/splash" target="_blank">eclipseたんスプラッシュ画像 - 虎塚</a>を見て、普段使うeclipseの起動画面で遊びたいという欲求が生まれた。

だいたい15秒から30秒くらいしか表示されないeclipseの起動画面ですが、何か自分オリジナルで面白い画像にすると幸せになるかもしれませんね。

以下オリジナルな起動画面いろいろ。


<h2>eclipse3.2</h2>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="splash3.2.jpg" src="http://hisasann.com/housetect/2010/01/05/splash3.2.jpg" width="455" height="295" class="mt-image-none" style="" /></span>


<h2>eclipse3.4 - GANYMEDE</h2>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="" src="http://hisasann.com/housetect/2010/01/05/splash3.4.jpg" width="455" height="295" class="mt-image-none" style="" /></span>


<h2>eclipse3.5 - GALILEO</h2>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="splash3.5.jpg" src="http://hisasann.com/housetect/2010/01/05/splash3.5.jpg" width="455" height="295" class="mt-image-none" style="" /></span>


そして、<a href="http://d.hatena.ne.jp/torazuka/" target="_blank">虎塚</a>さんが作った画像が以下。


<h2>eclipseたん</h2>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="splashtan.jpg" src="http://hisasann.com/housetect/2010/01/05/splashtan.jpg" width="455" height="295" class="mt-image-none" style="" /></span>


<h2>eclipseの起動画面を変更する方法</h2>

「eclipse/plugins/org.eclipse.platform_X.X.XXX」というディレクトリの中に、<strong>splash.bmp</strong>ファイルがあるので、これを自分の好きな、或いはアレンジした画像に置き換えてあげるだけ。
これで次回の起動のときに表示されます。

かなり簡単ですね。
さぁて、画像作ろう。。。

■関連リンク
・<a href="http://d.hatena.ne.jp/torazuka/20100102/p1" target="_blank">世話焼き系IDE：eclipseたん - 虎塚</a>
・<a href="http://www.confrage.com/eclipse/others/chg_opening_bmp/chg_opening_bmp.html" target="_blank">Eclipse起動時に表示される画像を変更する</a>]]></description>
         <link>http://hisasann.com/housetect/2010/01/eclipse_8.html</link>
         <guid>http://hisasann.com/housetect/2010/01/eclipse_8.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">技術</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Eclipse</category>
        
         <pubDate>Tue, 05 Jan 2010 15:11:52 +0900</pubDate>
      </item>
      
   </channel>
</rss>
