<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ピクスログ &#187; WEB開発</title>
	<atom:link href="http://picslog.picsmate.net/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://picslog.picsmate.net</link>
	<description>みずがめのラクガキはじめました。（あと、写真とか日記とか）</description>
	<lastBuildDate>Thu, 15 Apr 2010 08:30:35 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>javascriptでの値の比較結果を表にまとめてみた</title>
		<link>http://picslog.picsmate.net/2009/02/12/717/</link>
		<comments>http://picslog.picsmate.net/2009/02/12/717/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 14:20:34 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[比較]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/?p=717</guid>
		<description><![CDATA[
この間のNaNの判定で、ちょっとJavascriptの値の比較を整理しときたいと思ったので表にまとめた。
NaNってホント独特なんだなぁ・・・（￣□￣；）

比較
簡単な比較。
PHPでいう「2a問題」はないけど、型を [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2009/02/2009-2-12_js_check_sheet.jpg" alt="Javascript-比較結果" rel="lightbox[2009-2-12]" title="Javascript-比較結果"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2009/02/2009-2-12_js_check_sheet.thumbnail.jpg" alt="Javascript-比較結果" width="240" height="150" class="attachment wp-att-716 " /></a><br />
この間の<a href="http://picslog.picsmate.net/2009/02/05/698/">NaNの判定</a>で、ちょっとJavascriptの値の比較を整理しときたいと思ったので表にまとめた。</p>
<p>NaNってホント独特なんだなぁ・・・（￣□￣；）<br />
<span id="more-717"></span></p>
<p class="sub">比較</p>
<p>簡単な比較。<br />
PHPでいう「<a href="http://www.google.co.jp/search?hl=ja&#038;q=2a%E5%95%8F%E9%A1%8C&#038;btnG=%E6%A4%9C%E7%B4%A2&#038;lr=" rel="external">2a問題</a>」はないけど、型を意識しない比較。</p>
<p>falseとかは結構広範囲に対応できてしまう。</p>
<p>ちなみにNaNはすべてにおいてfalse。<br />
自分自身でさえも・・・（＞_＜）</p>
<table border="1">
<tr>
<th>比較(==)</th>
<th>true</th>
<th>false</th>
<th>null</th>
<th>undefined</th>
<th>NaN</th>
<th>&#8220;&#8221;</th>
<th>0</th>
<th>&#8220;0&#8243;</th>
<th>&#8220;0a&#8221;</th>
</tr>
<tr>
<th>true</th>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>false</th>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
</tr>
<tr>
<th>null</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>undefined</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>NaN</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>&#8220;&#8221;</th>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>0</th>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
</tr>
<tr>
<th>0</th>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="yellow">true</td>
<td class="red">false</td>
</tr>
<tr>
<th>&#8220;0a&#8221;</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
</tr>
</table>
<p class="sub">型比較</p>
<p>より厳密な比較(*°∀°)=3<br />
簡単の比較のようにfalseは柔軟でなくなる。</p>
<p>相変わらずNaNはすべてに対して偽。</p>
<table border="1">
<tr>
<th>型比較(===)</th>
<th>true</th>
<th>false</th>
<th>null</th>
<th>undefined</th>
<th>NaN</th>
<th>&#8220;&#8221;</th>
<th>0</th>
<th>&#8220;0&#8243;</th>
<th>&#8220;0a&#8221;</th>
</tr>
<tr>
<th>true</th>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>false</th>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>null</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>undefined</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>NaN</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>&#8220;&#8221;</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>0</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
<td class="red">false</td>
</tr>
<tr>
<th>0</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
<td class="red">false</td>
</tr>
<tr>
<th>&#8220;0a&#8221;</th>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="red">false</td>
<td class="yellow">true</td>
</tr>
</table>
<p>正確な各比較結果を確認できるように、<a href="http://picsmate.net/sample/js/check_sheet/" rel="sample">実際にJavascriptを走らせる比較表</a>を置いときます。</p>
<p class="sub">おまけに数値のオーバーフローをちょこっと</p>
<p>phpの時もそうだけど、やっぱり数値のオーバーフローは発生する。</p>
<p>「11111111111111111」を境に結果がおかしくなったりし始める。<br />
とにかく当てにならない(＞_＜);;;</p>
<ul>
<li>「11111111111111110」 は「11111111111111110」<br />
  [<a href="javascript:alert(11111111111111110);" rel="javascript">実行して確認</a>]</li>
<li>「11111111111111111」 は「11111111111111112」<br />
  [<a href="javascript:alert(11111111111111111);" rel="javascript">実行して確認</a>]</li>
<li>「11111111111111112」 は「11111111111111112」・・・ってあれ？<br />
  [<a href="javascript:alert(11111111111111112);" rel="javascript">実行して確認</a>]</li>
<li>「11111111111111113」 は「11111111111111112」<br />
  [<a href="javascript:alert(11111111111111113);" rel="javascript">実行して確認</a>]</li>
<li>「11111111111111124」 は「11111111111111124」・・・正常？？？<br />
  [<a href="javascript:alert(11111111111111124);" rel="javascript">実行して確認</a>]</li>
<li>「11111111111111125」 は「11111111111111124」・・・ってオイオイ（￣□￣；）<br />
  [<a href="javascript:alert(11111111111111125);" rel="javascript">実行して確認</a>]</li>
</ul>
<p>ついでに、parseIntによる変換。</p>
<ul>
<li>「&#8221;0&#8243;」 は「0」 [<a href="javascript:alert(parseInt('0'));" rel="javascript">実行して確認</a>]</li>
<li>「&#8221;1&#8243;」 は「1」 [<a href="javascript:alert(parseInt('1'));" rel="javascript">実行して確認</a>]</li>
<li>「&#8221;0a&#8221;」 は「0」  [<a href="javascript:alert(parseInt('0a'));" rel="javascript">実行して確認</a>]</li>
<li>「&#8221;a0&#8243;」 は「NaN」 [<a href="javascript:alert(parseInt('a0'));" rel="javascript">実行して確認</a>]</li>
</ul>
<p>いろいろ抑えとかないと(´･ω･`)</p>
<p>関連情報：<br />
<a href="http://picslog.picsmate.net/2009/02/05/698/">javascriptでNaNを判定してみる</a><br />
<a href="http://picslog.picsmate.net/2008/12/28/652/">JavascriptでindexOfとmatchの速度がちょっと気になった</a><br />
<a href="http://picslog.picsmate.net/2008/12/20/645/">[MDIEスクリプト] select2zip.jsを更新</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2009/02/12/717/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascriptでNaNを判定してみる</title>
		<link>http://picslog.picsmate.net/2009/02/05/698/</link>
		<comments>http://picslog.picsmate.net/2009/02/05/698/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:28:52 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/?p=698</guid>
		<description><![CDATA[
javascriptでparseIntやparseFloatなんかで文字列型を数値に変換したりするんですが、ちょっとNaNが来たときなんかは判定があやしくなっちゃうんですよね。
例えば
alert(parseInt(' [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2009/02/2009-2-5_javascript_nan.jpg" alt="javascriptでNaNを判定したい" width="345" height="134" class="attachment wp-att-697 " /><br />
javascriptでparseIntやparseFloatなんかで文字列型を数値に変換したりするんですが、ちょっとNaNが来たときなんかは判定があやしくなっちゃうんですよね。</p>
<p>例えば</p>
<pre><code class="color">alert(parseInt('a') ? 'Number' : 'NaN');</code></pre>
<p>みたいな安直なことはできないわけですよ。</p>
<pre><code class="color">alert(parseInt('0') ? 'Number' : 'NaN');</code></pre>
<p>みたいに文字列が「0」の場合、ちゃんと0が返ってきてもNaN判定になっちゃうから。</p>
<p>ググっても「NaN」そのものを判定するのが見つからなかったので、正常にNaNを判定する方法を考えてみた。<br />
・・・検索が下手なだけかもしれないどヽ（´ー｀）┌<br />
<span id="more-698"></span></p>
<p class="sub">Number.NaNを判定</p>
<pre><code class="color">javascript:alert(parseInt('a').toString() == 'NaN');</code></pre>
<p>なんだかパースしながら、さらに文字列に戻しちゃうわけですが(＞▽＜);;;<br />
遠まわしだけど、今のとこ思いつく確実な方法。</p>
<pre><code class="color">alert(parseInt('a') == NaN);</code></pre>
<p>とか</p>
<pre><code class="color">alert(parseInt('a') == Number.NaN);</code></pre>
<p>でいけるかなとか思ってたんだけど、どうも偽が返ってきちゃったので。</p>
<p>もっといい方法を知ってる人がいたら、ぜひ教えてください。</p>
<p>ともかくNaNを文字列に戻すと空になるかなと思ったけど、NaNって文字が返ってくるんだね。</p>
<p class="sub">ちょこっと追記</p>
<p>関数として使うなら<br />
※isNaNって関数がそもそも存在するみたいなのでis_NaNに微変更</p>
<pre><code class="color">function is_NaN($value)
{
  return (typeof $value == 'number' &#038;&#038; $value.toString() == 'NaN');
}

alert(is_NaN(1)); //false
alert(is_NaN('a')); //false
alert(is_NaN(parseInt('a'))); //true
</code></pre>
<p>ってとこだろうか。</p>
<p class="sub">さらに追記</p>
<p>いろいろやってたら、そもそもisNaNって関数があるみたい（￣□￣；<br />
で、全くの無駄記事になるかと思ったら・・・(＞_＜);;;</p>
<pre><code class="color">alert(isNaN(NaN)); //true （これはOK）
alert(isNaN(1)); //false （これもOK）
alert(isNaN(Infinity)); //false （OK）
alert(isNaN(undefined)); //true （あれ？）
alert(isNaN('text')); //true （あれれ？）
alert(isNaN('')); //false （OK）
alert(isNaN('1')); //false （これもOKだけど、キャストされてる？）
alert(isNaN('Infinity')) //false (これもキャストされてる？)
</code></pre>
<p>ダメじゃん。</p>
<p>isNaNだとundefinedとかまでNaNと判定されるらしい。<br />
なんか基準もよくわからないし。</p>
<p>やっぱ正確にはnumber型でかつ文字列に変換後にNaNとなるものを判定するのがいいみたい。<br />
まぁ、勉強になりました(＞_＜);;;</p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/12/28/652/">JavascriptでindexOfとmatchの速度がちょっと気になった</a><br />
<a href="http://picslog.picsmate.net/2008/12/20/645/">[MDIEスクリプト] select2zip.jsを更新</a><br />
<a href="http://picslog.picsmate.net/2008/12/08/577/">[clipFolder.js] MDIEでクリップボードからサクッとフォルダを作成</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2009/02/05/698/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHPクラスの継承でオーバーライドしてしまった値を取得！</title>
		<link>http://picslog.picsmate.net/2009/01/05/657/</link>
		<comments>http://picslog.picsmate.net/2009/01/05/657/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 12:24:04 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/?p=657</guid>
		<description><![CDATA[
あけましておめでとうございます(＞_＜)
なんだかんだで、ずるずると公開から２回目の新年を迎えてしまいました！
結構な勢いで更新さぼっちゃいましたが、今年もよろしくお願いいたします！！！
と、本題。
少し前にPHPプロ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2009/01/2009-1-5_php_class_cast.jpg" alt="ソース-オブジェクトをキャスト" rel="lightbox[2009-1-5]" title="ソース-オブジェクトをキャスト"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2009/01/2009-1-5_php_class_cast.thumbnail.jpg" alt="ソース-オブジェクトをキャスト" width="240" height="112" class="attachment wp-att-658 " /></a><br />
あけましておめでとうございます(＞_＜)<br />
なんだかんだで、ずるずると公開から２回目の新年を迎えてしまいました！</p>
<p>結構な勢いで更新さぼっちゃいましたが、今年もよろしくお願いいたします！！！</p>
<p>と、本題。</p>
<p>少し前にPHPプロの質問で、「<a href="http://www.phppro.jp/qa/1722" rel="external">親クラスのメソッドをクラス外から呼びたい</a>」って質問があがっていました。</p>
<p>オブジェクトを配列へキャストするとこうなるんだぁ・・・（￣□￣；）<br />
オーバーライドで上書きしちゃってても、プライベート変数だっても関係ないじゃん・・・っていう話。</p>
<p>質問が解決されてから日が経っちゃってるけど、完全に忘れる前にメモ。</p>
<p>というわけで、自分の中では驚愕の事実だった手法は以下から。<br />
<span id="more-657"></span></p>
<p class="sub">紹介されていたコード</p>
<p>どうやら<a href="http://www.phpunit.de/" rel="external">PHPUnit</a>内の処理を参考にされた模様。</p>
<blockquote cite="http://www.phppro.jp/qa/1722#6994">
<pre><code class="color">&lt;?php 

/**
 * privateな属性の値を参照する。
 * 参考: PHPUnit_Framework_Assert::getObjectAttribute($object, $attributeName)
 */
function get_private_value($obj,$attributeName,$class=false) {
  if( $class===false) {
    $class = get_class($obj);
  }
  $objArray = (array) $obj;
  $privateName = sprintf(" %s %s",$class,$attributeName);
  if( array_key_exists($privateName,$objArray) ) {
    return $objArray[$privateName];
  }
  return null; 

}
  $test=new testClass3(); 

  $ret = get_private_value($test,'a','testClass3');
  var_dump($ret);
  $ret = get_private_value($test,'a','testClass');
  var_dump($ret); 

?&gt;
</code></pre>
</blockquote>
<p>まぁ、これだけだと途中の処理が省略されて、何をやってるのか分からないから、簡単にまとめます。</p>
<p class="sub">まとめ</p>
<p>まずプライベート変数を持った親クラスを作り、オーバーライドさせるために同じ名前のプライベート変数を持たせた子クラスで継承させる。</p>
<pre><code class="color">&lt;?php
//親クラス
class ParentClass {
  private $value = 'ParentClass Value!';
}
//子クラス
class ChildClass extends ParentClass {
  private $value = 'ChildClass Value!';
}
?&gt;
</code></pre>
<p>余計なことは省いて変数を上書きするだけ。</p>
<p>で、オブジェクトを作ってから<strong>配列にキャスト</strong>！(゜∀゜)</p>
<pre><code class="color">&lt;?php
$object = new ChildClass();
var_dump((array)$object);
?&gt;
</code></pre>
<p>ドキドキの結果は・・・。</p>
<pre><code class="color">array(2) {
  ["ChildClass�value"]=>
  string(17) "ChildClass Value!"
  ["ParentClass�value"]=>
  string(18) "ParentClass Value!"
}
</code></pre>
<p>うわーーーー∩(≧∇≦)∩<br />
なにか気持ち悪いものが見えてるけど、各プライベート変数が存在する配列になってるっぽい！</p>
<p>それから元記事で紹介されている</p>
<pre><code class="color">sprintf(" %s %s",$class,$attributeName);</code></pre>
<p>を参考に、質問者の方が回答されている実用的（？）な方法で記述すると。</p>
<pre><code class="color">&lt;?php
$object = new ChildClass();
$arrayObject = (array)$object;

echo "ParentClass Value : ",
  $arrayObject[" ParentClass value"],
  "nChildClass Value : ",
  $arrayObject[" ChildClass value"];
?&gt;</code></pre>
<p>ワクワクの結果は・・・。</p>
<pre><code class="color">ParentClass Value : ParentClass Value!
ChildClass Value : ChildClass Value!
</code></pre>
<p>うはぁ(＞▽＜)／<br />
取り出せたよ！！！</p>
<p>PHPすげぇ(＞_＜);;;<br />
全く使い所がわかんねぇ！！！</p>
<p>すごいんだけど、こういう力技が必要になった時点で設計ミスってる気が・・・。</p>
<p>質問内容もスゴイけど、解決できちゃうところがスゲェ！<br />
・・・そうかぁ、オブジェクトは配列にキャストかぁ(´･ω･`)</p>
<p>PHP4あたりでは<a href="http://www.php.net/manual/ja/function.get-object-vars.php" rel="external">get_object_vars</a>なんかを使って、メンバー変数を確認したりはしたけど、プライベートとか抜き出せないし、まぁメンバー変数を上書きしちゃったら１つの変数だしで、ちょっとどうしようもなかったんだけど。</p>
<p>まだまだPHPには未知の領域が存在しそうです(゜∀゜)</p>
<p>追記（2008-1-5 21：34：12）：<br />
<a href="http://d.hatena.ne.jp/shimooka/searchdiary?word=%2a%5bPHP%5d" rel="external">オブジェクトをarrayにキャストする &#8211; Do You PHP はてな</a><br />
うはぁ、わりと有名なのかな(＞_＜)<br />
いろいろスゲェ。</p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/12/28/652/">JavascriptでindexOfとmatchの速度がちょっと気になった</a><br />
<a href="http://picslog.picsmate.net/2008/12/20/645/">[MDIEスクリプト] select2zip.jsを更新</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2009/01/05/657/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>「Aptana Studio」のインストール手順まとめ</title>
		<link>http://picslog.picsmate.net/2008/11/28/522/</link>
		<comments>http://picslog.picsmate.net/2008/11/28/522/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 17:22:14 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[ソフト]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[日記]]></category>
		<category><![CDATA[Aptana Studio]]></category>
		<category><![CDATA[まとめ]]></category>
		<category><![CDATA[半角スペース]]></category>
		<category><![CDATA[可視化]]></category>
		<category><![CDATA[インデント]]></category>
		<category><![CDATA[インストール]]></category>
		<category><![CDATA[設定]]></category>
		<category><![CDATA[開発環境]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/?p=522</guid>
		<description><![CDATA[
xamppに続いて、Aptana Studioのインストールと、設定についてもまとめ。
JavaScriptの開発には、非常に便利だもんね！(≧∇≦)/

Aptana Studioをインストール

まず「ダウンロード [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_1.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_1.thumbnail.jpg" alt="Aptana Studio" width="240" height="180" class="attachment wp-att-509 " /></a><br />
xamppに続いて、Aptana Studioのインストールと、設定についてもまとめ。</p>
<p>JavaScriptの開発には、非常に便利だもんね！(≧∇≦)/<br />
<span id="more-522"></span></p>
<p class="sub">Aptana Studioをインストール</p>
<ol>
<li>まず「<a href="http://www.aptana.com/studio/download" rel="external">ダウンロードページ</a>」のページから、Aptana Studioをダウンロード。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_2.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-ダウンロード"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_2.thumbnail.jpg" alt="Aptana Studio-ダウンロード" width="240" height="145" class="attachment wp-att-510 " /></a><br />
  インストーラー版でも、zip版でもどっちでもいい。</li>
<li>インストーラー版を使った場合は、表示に従いインストール。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_3.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-インストール"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_3.thumbnail.jpg" alt="Aptana Studio-インストール" width="240" height="186" class="attachment wp-att-511 " /></a><br />
  zip版は解凍するだけなので、実はこっちの方が簡単かも（・∀・）</li>
<li>インストールが終わったから即起動・・・じゃなくて、とりあえず日本語化！（　ﾟ Дﾟ）</li>
</ol>
<p class="sub">Aptana Studioを日本語化</p>
<p>Aptana Studioの初期設定では英語表示なので、Eclipseの言語パック「Pleiades」を利用して日本語化します。</p>
<ol>
<li>まず「<a href="http://mergedoc.sourceforge.jp/" rel="external">Pleiades (プレアデス)</a>」サイトに行って、言語パックをダウンロード。
<p>  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_4.jpg" rel="lightbox[pics-1227804460]" title="Pleiades"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_4.thumbnail.jpg" alt="Pleiades" width="240" height="112" class="attachment wp-att-512 " /></a><br />
  とりあえず「Pleiades」をクリックすると・・・。</p>
<p>  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_5.jpg" rel="lightbox[pics-1227804460]" title="Pleiades-ダウンロード"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_5.thumbnail.jpg" alt="Pleiades-ダウンロード" width="240" height="121" class="attachment wp-att-513 " /></a><br />
  大きいボタンがあるのでついつい押してみたくなるけど、そこはグッ（　ﾟ Дﾟ）・・・とこらえて。<br />
  「<q cite="http://mergedoc.sourceforge.jp/pleiades.html">Pleiades 本体ダウンロード</q>」項目の「安定版 1.2.3（2008-11-28日現在）」のテキストリンクをクリックしてダウンロード。</li>
<li>ダウンロードしたzipファイルを解凍して、出てきた「features」と「plugins」フォルダごと、Aptana Studioのインストールディレクトリに移動。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_6.jpg" rel="lightbox[pics-1227804460]" title="Pleiades-Aptanaフォルダに移動"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_6.thumbnail.jpg" alt="Pleiades-Aptanaフォルダに移動" width="240" height="155" class="attachment wp-att-514 " /></a><br />
  同名ファイルがあるので確認が出るけど、そのまま上書きコピー。</li>
<li>次にAptana Studioのインストールディレクトリにある「AptanaStudio.ini」ファイルをテキストエディタで開き、最終行に以下の記述を追加。
<pre><code class="color">-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash</code></pre>
</li>
<li>次に言語パックを反映させるのに、Aptana Studioを「-clean」コマンドで起動させる。
<p>  たまにこの「-clean」コマンドが必要なんだけど、いちいちコマンド起動は面倒！<br />
  なのでPleiadesの中に同梱されているバッチファイルを利用(≧∇≦)/<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_7.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-バッチファイル"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_7.thumbnail.jpg" alt="Aptana Studio-バッチファイル" width="240" height="63" class="attachment wp-att-515 " /></a><br />
  まずファイル名が「eclipse.exe -clean.cmd」なのを、「AptanaStudio.exe -clean.cmd」と変更し、Aptana Studioのインストールディレクトリに移動。</li>
<li>次にテキストエディタで開いて、「start .\eclipse.exe -clean %*」と記述されている行を
<pre><code class="color">start .\AptanaStudio.exe -clean %*</code></pre>
<p>  と変更して保存。</p>
<p>  これで次回から「-clean」コマンドが必要な場合でも、簡単に実行できます。</li>
<li>バッチファイルからAptana Studioを起動させて、日本語化されてれば成功。</li>
</ol>
<p class="sub">JavaScriptのエラー検証を有効化</p>
<p>Aptana Studioの初期設定ではJavaScriptの構文チェックが無効化されているので、チェックを有効化します。<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_8.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-初期JavaScriptチェック"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_8.thumbnail.jpg" alt="Aptana Studio-初期JavaScriptチェック" width="240" height="143" class="attachment wp-att-516 " /></a></p>
<ol>
<li>Aptana Studioを起動させて、メニューのウィンドウ &gt; 設定をクリックします。</li>
<li>次に設定画面の左側のツリーからAtpana &gt; エディター &gt; JavaScript &gt; 検証とたどって、バリデーター項目にチェックを入れ設定完了。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_9.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-JavaScriptチェック設定"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_9.thumbnail.jpg" alt="Aptana Studio-JavaScriptチェック設定" width="240" height="232" class="attachment wp-att-517 " /></a></li>
<li>あらめて文法エラーのあるJSファイルを確認。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_10.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-JavaScriptチェック有効化"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_10.thumbnail.jpg" alt="Aptana Studio-JavaScriptチェック有効化" width="240" height="143" class="attachment wp-att-518 " /></a><br />
    構文エラーが出力されるようになったよ！(*°∀°)=3</li>
</ol>
<p class="sub">タブと半角スペースを表示</p>
<p>Aptana Studioの初期設定ではタブと半角スペースが見えないので、可視化します。<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_11.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-インデント非表示"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_11.thumbnail.jpg" alt="Aptana Studio-インデント非表示" width="240" height="143" class="attachment wp-att-519 " /></a></p>
<p>今回は説明を省略しますが、全角スペースも可視化する場合は、プラグインの「<a href="http://mergedoc.sourceforge.jp/jstyle.html" rel="external">jStyle</a>」を追加します。</p>
<ol>
<li>Aptana Studioを起動させて、メニューのナビゲートの下あたりにある、なんて言うのかわからないツールボタンをクリックするだけ。<br />
  タブや半角スペース、改行コードまで可視化できます。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_12.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-インデント可視化"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_12.thumbnail.jpg" alt="Aptana Studio-インデント可視化" width="240" height="143" class="attachment wp-att-520 " /></a><br />
  ボタンはキャプチャ画像を参考にしてください(´･ω･`)</li>
<li>ついでに、その横のリストのようなボタンをクリックすると、エディタのピアノキーが有効になって、1行毎に色が変わります。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_13.jpg" rel="lightbox[pics-1227804460]" title="Aptana Studio-ピアノキー有効化"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-28_aptana_13.thumbnail.jpg" alt="Aptana Studio-ピアノキー有効化" width="240" height="143" class="attachment wp-att-521 " /></a><br />
  初期設定のままだから、色が薄くて分かりにくいけど(＞_＜)</li>
</ol>
<p>いくつかプラグインの導入方法も載せようかと思ったけど、以外と長くなったのでここまで。</p>
<p>また気が向いたら載せるかもです( ・ω・)</p>
<p>関連情報：<br />
<a href="http://www.aptana.com/" rel="external">Aptana</a><br />
<a href="http://mergedoc.sourceforge.jp/" rel="external">MergeDoc Project (Eclipse 日本語化)</a><br />
<a href="http://mergedoc.sourceforge.jp/jstyle.html" rel="external">JStyle (Eclipse 改行、タブ、全角空白を表示)</a></p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/11/27/500/">xamppのインストール手順まとめ</a><br />
<a href="http://picslog.picsmate.net/2008/11/26/480/">Windows XPを再インストール中</a><br />
<a href="http://picslog.picsmate.net/2008/11/21/447/">コマンドプロンプトの覚え書き</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/11/28/522/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>xamppのインストール手順まとめ</title>
		<link>http://picslog.picsmate.net/2008/11/27/500/</link>
		<comments>http://picslog.picsmate.net/2008/11/27/500/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 19:18:09 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ソフト]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[まとめ]]></category>
		<category><![CDATA[インストール]]></category>
		<category><![CDATA[環境変数]]></category>
		<category><![CDATA[設定]]></category>
		<category><![CDATA[開発環境]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[xampp]]></category>
		<category><![CDATA[文字コード]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/?p=500</guid>
		<description><![CDATA[
OSの再インストールに伴い、開発環境も再構築中。
まずは「xampp」と「Aptana Studio」をインストール。
いろいろ入れ直すのが面倒なので、いろいろ詰め込まれた「Pleiades All in One パッ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_1.jpg" rel="lightbox[pics-1227725241]" title="xampp-コントロールパネル"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_1.thumbnail.jpg" alt="xampp-コントロールパネル" width="240" height="193" class="attachment wp-att-488 " /></a><br />
<a href="http://picslog.picsmate.net/2008/11/26/480/">OSの再インストール</a>に伴い、開発環境も再構築中。</p>
<p>まずは「xampp」と「Aptana Studio」をインストール。</p>
<p>いろいろ入れ直すのが面倒なので、いろいろ詰め込まれた「<a href="http://mergedoc.sourceforge.jp/" rel="external">Pleiades All in One パッケージ</a>」のEclipseでも入れちゃおうかとも思ったりもしたけど。</p>
<p>とりあえず「xampp」セットアップから、PHP、Mysqlの設定手順についてまとめ。<br />
<span id="more-500"></span></p>
<p class="sub">xamppをインストール</p>
<ol>
<li>今回は「<a href="http://www.apachefriends.org/jp/xampp-windows.html" rel="external">apache friends</a>」からxamppのインストーラー版をダウンロード。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_2.jpg" rel="lightbox[pics500]" title="xampp-ダウンロード"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_2.thumbnail.jpg" alt="xampp-ダウンロード" width="240" height="162" class="attachment wp-att-489 " /></a><br />
  別にzip版でも、そんなに作業内容は変わんないので、好みで( ・ω・)</li>
<li>表示に従って、さくさくインストール。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_3.jpg" rel="lightbox[pics500]" title="xampp-インストール"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_3.thumbnail.jpg" alt="xampp-インストール" width="240" height="149" class="attachment wp-att-490 " /></a></p>
<p>  インストール後に起動確認。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_1.jpg" rel="lightbox[pics-1227725241]" title="xampp-コントロールパネル"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_1.thumbnail.jpg" alt="xampp-コントロールパネル" width="240" height="193" class="attachment wp-att-488 " /></a></li>
<li>今回は業務専用のパソコンでないので、パソコン起動毎にApacheとMysqlを立ち上げる必要はないから、スタートアップを手動に変える。
<p>  コントロールパネル &gt; 管理ツールから、サービスを起動してApacheとMysqlの「スタートアップの種類」を「手動」に変更。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_4.jpg" rel="lightbox[pics500]" title="Apache-スタートアップを手動"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_4.thumbnail.jpg" alt="Apache-スタートアップを手動" width="240" height="219" class="attachment wp-att-491 " /></a></li>
</ol>
<p class="sub">Apacheの設定</p>
<p>「httpd.conf」を書き換えるんだけど、ある程度ファイルを分けてたほうが設定を間違った場合に修正しやすいので、「<a href="http://httpd.apache.org/docs/2.2/ja/mod/core.html#include" rel="external">Include</a>」を使って、自分設定を分けておく方が便利(*°∀°)=3</p>
<ol>
<li>xamppのインストールディレクトリ &gt; apache &gt; confディレクトリに移動。</li>
<li>「httpd.conf」をテキストエディタで開く。<br />
  ついでに「httpd.conf」を別名でバックアップとかしてた方がいいかも(≧∇≦)/</li>
<li>「httpd.conf」の最終行に移動して、
<pre><code class="color">#自分設定 (2008-11-26更新)
Include "C:\自分のconfを置くディレクトリ\*.conf"</code></pre>
<p>  みたいに記述しておき保存。</p>
<p>  あとは自分設定の保存予定地に、ファイル名.confの要領で好きなだけ設定を追加する。</p>
<p>  Apacheが動かなくなった時は、拡張子をtxtなんかにでも書き換えれば、どれが不具合起してるのか見つけやすくていいよ(゜∀゜)</li>
<li>最後にApacheサービスを再起動して、ブラウザで「http://locslhost/」を叩いて、お約束の確認。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_5.jpg" rel="lightbox[pics500]" title="xampp-スタートページ"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_5.thumbnail.jpg" alt="xampp-スタートページ" width="240" height="110" class="attachment wp-att-492 " /></a></li>
</ol>
<p class="sub">PHPとMysqlのパスを通す</p>
<p>コマンドラインからサクッと実行できるように、PHPとMysqlのパスを通しておきます（・∀・）</p>
<p>Mysqlはサービスを起動しないと実行できないけど、PHPはパスさえ通しておけば実行できるので簡単便利。<br />
（php.iniのパスを渡してやらないと設定が違ってたりするけどね）</p>
<ol>
<li>コントロールパネル &gt; システム &gt; 詳細設定から、環境変数をクリック。</li>
<li>システム環境変数の新規ボタンをクリックし、とりあえずxamppのパスを変数登録してあげる。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_6.jpg" rel="lightbox[pics500]" title="xampp-パスを環境変数に登録"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_6.thumbnail.jpg" alt="xampp-パスを環境変数に登録" width="240" height="82" class="attachment wp-att-493 " /></a><br />
  ※画像はCドライブ直下にxamppをインストールした場合。</p>
<p>  必須じゃないけど、パスを通した時に少しでも見通しを良くするための俺仕様(^_^;)</li>
<li>システム変数の「Path」をダブルクリックしてパスを通す。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_7.jpg" rel="lightbox[pics500]" title="php、mysqlのパスを通す"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_xampp_7.thumbnail.jpg" alt="php、mysqlのパスを通す" width="240" height="200" class="attachment wp-att-494 " /></a></p>
<p>  今回はxamppのパスを登録しているので、Path変数の最後に</p>
<pre><code class="color">;%XAMPP%\php;%XAMPP%\mysql\bin</code></pre>
<p>  を追加。</p>
<p>  ちょっと読みやすくなった！・・・よね？(＞_＜)</li>
<li>変数が通ったか確認するのに、コマンドラインからPHPを実行。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_php_1.jpg" rel="lightbox[pics500]" title="PHP-コマンドプロンプトで確認"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_php_1.thumbnail.jpg" alt="PHP-コマンドプロンプトで確認" width="240" height="175" class="attachment wp-att-495 " /></a><br />
  問題なし！(*°∀°)=3</p>
<p>  コピペ用にコードも載せておきます。</p>
<pre><code class="color">php -r "echo phpversion();";</code></pre>
</li>
</ol>
<p class="sub">PHPの設定</p>
<p>これは好きにすればいいんだけど、とりあえずxamppバンドルのphp.iniは「magic_quotes_gpc」がOnになってるので、とりあえずこれだけ修正。</p>
<ol>
<li>xamppのインストールディレクトリ &gt; apache &gt; binディレクトリに移動。<br />
  ※xamppの場合、phpディレクトリのphp.iniはダミーなので注意！(＞_＜)</li>
<li>「php.ini」をテキストエディタで開く。<br />
  Apache設定同様に別名でバックアップとかしてた方がいいかもね！</li>
<li>テキストファイルから「magic_quotes_gpc」を検索。</li>
<li>「On」から「Off」に書き換える。</li>
</ol>
<p class="sub">Mysqlの設定</p>
<p>基本UTF-8で使ってるので、とりあえず文字コードをUTF-8に統一。</p>
<ol>
<li>xamppのインストールディレクトリ &gt; mysql &gt; binディレクトリに移動</li>
<li>「my」と見えている短縮ダイヤルファイルヽ（´ー｀）┌<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_1.jpg" rel="lightbox[pics500]" title="mysql-設定ファイル"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_1.thumbnail.jpg" alt="mysql-設定ファイル" width="240" height="133" class="attachment wp-att-496 " /></a><br />
  これがMysqlの設定ファイルなので、テキストエディタで開く。<br />
  必要ならバックアップ（・∀・）</p>
<p>  windowsでは「cnf」拡張子が短縮ダイヤルファイルとして設定されてるんだね( ・ω・)</li>
<li>[mysqld]項目の直後に以下の記述を追加。
<pre><code class="color">default-character-set = utf8
skip-character-set-client-handshake </code></pre>
</li>
<li>mysqlを起動し確認。<br />
  だけど、このまま書くと読みにくいので、いったん切り上げます(゜∀゜)</li>
</ol>
<p class="sub">Mysqlの文字コードを確認</p>
<ol>
<li>xamppコントロールパネルなどから、Mysqlサービスを起動。</li>
<li>コマンドプロンプトでMysqlに接続するのに、以下コード実行。
<pre><code class="color">mysql -u root</code></pre>
<p>  ※最初はMysqlのroot権限にパスワードがないので、この後でパスワード設定に移ります。</li>
<li>次にデータベースの文字コードを列挙させる。
<pre><code class="color">show variables like "char%";</code></pre>
</li>
<li>filesystem項目以外がUTF-8になっていることを確認して終了。<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_2.jpg" rel="lightbox[pics500]" title="mysql-文字コード確認"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_2.thumbnail.jpg" alt="mysql-文字コード確認" width="240" height="175" class="attachment wp-att-497 " /></a></li>
</ol>
<p class="sub">Mysqlにパスワードを設定</p>
<p>Mysqlのインストール直後は、rootユーザにパスワードが設定されてない(*°∀°)=3<br />
このまま放置するわけにいかないので、パスワードを設定。</p>
<ol>
<li>xamppコントロールパネルなどから、Mysqlサービスを起動。</li>
<li>コマンドプロンプトでmysqladminを使って、パスワードを設定。
<pre><code class="color">mysqladmin -u root -p パスワードに設定する文字列</code></pre>
</li>
<li>パスワード設定後に、そのパスワードを使ってログイン。
<pre><code class="color">mysqladmin -u root -p</code></pre>
</li>
<li>実行後、パスワードを聞いてくるので、設定したパスワードを入力<br />
  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_3.jpg" rel="lightbox[pics500]" title="mysql-パスワード設定"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_3.thumbnail.jpg" alt="mysql-パスワード設定" width="240" height="175" class="attachment wp-att-498 " /></a><br />
  ログインできれば成功。</li>
</ol>
<p class="sub">Mysqlにパスワードを設定２</p>
<p>一度パスワードを設定してしまうと、mysqladminから前に使ったコマンドでパスワードを再設定できないので、通常のパスワード設定方法も紹介。</p>
<ol>
<li>xamppコントロールパネルなどから、Mysqlサービスを起動。</li>
<li>コマンドプロンプトから、とりあえずmysqlにログイン。
<pre><code class="color">mysql -u root</code></pre>
<p>  すでにパスワードを設定している場合は、「-p」コマンドも付け加えてパスワードも入力。</li>
<li>ログイン後、以下コマンドを実行。
<pre><code class="color">set password for root@localhost=password('設定するパスワード');</code></pre>
<p>  <a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_4.jpg" rel="lightbox[pics500]" title="mysql-パスワード設定2"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/11/2008-11-27_mysql_4.thumbnail.jpg" alt="mysql-パスワード設定2" width="240" height="175" class="attachment wp-att-499 " /></a><br />
  こっちだと何度でも再設定できる。</li>
</ol>
<p>ちょっと1ページに詰め込みすぎたかもしれない。</p>
<p>明日、<a href="http://picslog.picsmate.net/2008/11/28/522/">「Aptana」の初期設定方法</a>も書く予定。</p>
<p>関連情報：<br />
<a href="http://www.apachefriends.org/jp/xampp-windows.html" rel="external">apache friends &#8211; xampp for windows</a></p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/11/26/480/">Windows XPを再インストール中</a><br />
<a href="http://picslog.picsmate.net/2008/11/21/447/">コマンドプロンプトの覚え書き</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/11/27/500/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR用のSQLiteライブラリ「AirDB.js」</title>
		<link>http://picslog.picsmate.net/2008/06/03/324/</link>
		<comments>http://picslog.picsmate.net/2008/06/03/324/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 17:11:28 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/2008/06/03/324/</guid>
		<description><![CDATA[
AIRでSQLiteをもう少し簡単に使えるように、叩き台用にライブラリ化してみた。
久しぶりのプログラム記事かもしれない。。。（゜◇゜）
AS(Action Script)ではなく、JS(Java Script)用なの [...]]]></description>
			<content:encoded><![CDATA[<div class="imageframe" style="width:320px;"><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/06/20080602_airdbjs.jpg" rel="lightbox[pics-1212414840]" title="AirDB.js"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/06/20080602_airdbjs.thumbnail.jpg" width="320" height="240" alt="AirDB.js" /></a></div>
<p>AIRでSQLiteをもう少し簡単に使えるように、叩き台用にライブラリ化してみた。<br />
久しぶりのプログラム記事かもしれない。。。（゜◇゜）</p>
<p>AS(Action Script)ではなく、JS(Java Script)用なので注意。</p>
<p>とりあえず、使い方とかを紹介。<br />
<span id="more-324"></span></p>
<p class="sub">ファイルの入手</p>
<p><a href="http://picsmate.net/sample/AirDB/AirDB.v010.zip" rel="zip">AirDB.v010.zip</a>からjsファイルを入手。</p>
<p>内容は以下の通り。</p>
<ul>
<li>AirDB.v010.js （オリジナルファイル）</li>
<li>AirDB.v010.pack.js （pack圧縮ファイル）</li>
</ul>
<p>ソースコードは「<a href="http://picsmate.net/sample/AirDB/" rel="external">AIR SQLiteライブラリ AirDB.js ソースコード [ピクスメイト]</a>」で確認できます。</p>
<p class="sub">まずは読み込む</p>
<p>AIRプロジェクトのhtmlファイルのヘッダー要素に以下を追加。</p>
<pre><code class="color">&lt;script type="text/javascript" src="AIRAliases.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="AirDB.v010.js"&gt;&lt;/script&gt;
</code></pre>
<p>AIRのJS用のアクションスクリプトエイリアス群を使うので、「AIRAliases.js」も読み込みます。</p>
<p class="sub">使う準備をする</p>
<p>AirDBオブジェクトを読み込む。今回は「$DB」という変数で初期化することとします。</p>
<pre><code class="color">var $DB = new AirDB;
window.addEventListener('unload', $DB.close);
</code></pre>
<p>例としてAIRが閉じられるときに、一応データベースを閉じるようにイベントを登録したけど、多分いらない。</p>
<p class="sub">データベースをファイルから読み込んで、テーブルを作成</p>
<p>AirDB.connectでファイルからSQLiteに接続、AirDB.createでテーブルを作成します。</p>
<pre><code class="color">try {
  $DB.connect("app:sample.db");
  $DB.create("test", {
    id: 'INTEGER PRIMARY KEY',
    message: 'TEXT'
  });
} catch (error) {
  alert(error.toString());
}
</code></pre>
<p>$DB.createでは常にテーブルの存在を確認する「CREATE TABLE IF NOT EXISTS ～」の文法でSQLを組み立てます。</p>
<p>上記の例では結果が返ってくるまで待つ「同期」状態でSQLiteに接続していますが、非同期で接続する場合はAirDB.connectの第2引数にtrueを与えます。</p>
<p>また、AirDB.connectの第3引数には接続直後に実行する関数を与えることができます。</p>
<p>具体的には以下のような感じ。</p>
<pre><code class="color">try {
  $DB.connect("app:sample.db",true, function(){
    $DB.create("test", {
      id: 'INTEGER PRIMARY KEY',
      message: 'TEXT'
    });
  });
} catch (error) {
  alert(error.toString());
}
</code></pre>
<p>個人的に長い関数名を打ち込むのがめんどくさいので、AirDB.connectはAirDB.con、AirDB.createはAirDB.creのように短い関数名のエイリアスを張っています。</p>
<p>エイリアスについては、AirDB.v010.jsか<a href="http://picsmate.net/sample/AirDB/" rel="external">ソースコード</a>の終わりのほうを見てください（投げやり）</p>
<p class="sub">データの挿入とか更新</p>
<p>同期か非同期で、エラーイベントとかの取得とかのタイミングが変わるので、ここからは同期で接続した場合の例です。</p>
<p>データ入力の例</p>
<pre><code class="color">function insertData()
{
  try {
    $DB.insert('test', {
      message : 'message'
    });
  } catch(error) {
    alert(error.toString());
  }
}
</code></pre>
<p>こんな感じ。</p>
<p>AirDB.insert(テーブル名:string,インサートデータ:object)で使えます。</p>
<p>トランザクション処理を入れる場合は、AirDB.begin()、AirDB.commit()、AirDB.rollback()が利用できます。</p>
<p>データ更新の例</p>
<pre><code class="color">function updateData()
{
  try {
    $DB.update('test', {
        message : 'update message'
      },
      "WHERE" +
      "  id = '1'"
    );
  } catch(error) {
    alert(error.toString());
  }
}
</code></pre>
<p>AirDB.update(テーブル名:string,アップデートデータ:object,絞込条件とか:string)で使えます。</p>
<p>同じ要領で、AirDB.Delete(テーブル名:string,絞込条件とか:string)でデータの削除ができます。<br />
(関数名がdeleteではなくDeleteになってるのは間違いではなく、jsのdeleteと被るから)</p>
<p>とりあえず、AirDB.insertとAirDB.updateは、内部でパラメータを登録してプリペアードで実行するようにしています。<br />
（ただし、AirDB.updateの絞込みとかのWHERE句とかはそのまま）</p>
<p class="sub">登録データの取得</p>
<p>データ取得の例</p>
<pre><code class="color">function selectData()
{
  try {
    $DB.select('test',
      ['id','message'],
      "WHERE" +
      "  message not NULL"
    );
  } catch(error) {
    alert(error.toString());
  }

  //ここから結果の表示処理
  result = $DB.getRows();
  if (result != null) {
    var data = new String();
    for (row in result) {
      data += "[" + row + "] " +
              "id: \"" + result[row].id + "\" " +
              "message: \"" + result[row].message + "\"\n";
    }
    alert(data);
  } else {
    alert('データが見つかりません！');
  }
}
</code></pre>
<p>こんな感じ。</p>
<p>AirDB.select(テーブル名:string,取得対象カラム:string or array,絞込条件とか:string)で使えます。</p>
<p class="sub">まとめ</p>
<p>いろいろ解説サイトとか見て思ったけど、ローカルで扱うのを前提としているためか、意外とプリペアードクエリもエスケープもやってないもの多いね。</p>
<p>一応、エスケープ用にAirDB.escapeも作ったものの、プリペアードの方が便利な気もするし、大雑把にしか対応させてない。<br />
バイナリセーフとか、JSでどうやってるんだろう。</p>
<p>あと、AIRのSQLStatement.textの中にバックスラッシュ(￥)が入ったSQL文を入れた場合、SQLStatement.textを確認するとバックスラッシュが改行になっちゃうのはなぜなんだろう・・・バグ？（￣□￣；）</p>
<p>おかげで、LIKE文用のワイルドカード（%と_）のエスケープができねぇ。</p>
<p>ものすごくハマった上、解決してないんだけど。<br />
・・・そもそもやり方が間違ってる？</p>
<p>そんなわけなんで、AirDB.escapePatternって関数を今のところ残してるんだけど、まったく役に立ちません！</p>
<p>作っててずーっと思ってたけど、やっぱりSQLStatement周りは、中途半端なのでどうにかしないと。</p>
<pre><code class="color">var select = new $DB.select('table', '*');
  select.where(条件);
  select.or(条件);
  select.order(条件);
  select.param('name', 'value');
  select.query();
</code></pre>
<p>みたいに操作できるように、個別にオブジェクト化しておきたい。</p>
<p>・・・とりあえず、めんどくさいので。<br />
更新する気になったら、大幅に改造するかも・・・くらいの。</p>
<p>ワイルドカードもパラメータ登録にすれば、どうにかなるかしら？</p>
<p>それにしても、思ったよりAIRの解説サイトって少ないね。<br />
最初はもっと流行るかなと思ってたのに。</p>
<p>お世話になったサイト：<br />
<a href="http://www.hakkaku.net/series/api-%e3%81%a7%e8%a6%9a%e3%81%88%e3%82%8b-adobe-air" rel="external">八角研究所  : Series: API で覚える Adobe AIR &laquo;</a><br />
<a href="http://www.atmarkit.co.jp/fwcr/rensai/air02/air02_1.html" rel="external">AIRとSQLiteで学ぶ ローカルDB操作の基本 （1/3） ─ ＠IT</a></p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/04/02/223/" rel="external">GMapをXMLで初期化するjQueryプラグイン「jquery.xmap.js」</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/06/03/324/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>モバゲータウンのフレームワーク「MobaSiF」がオープンソース化</title>
		<link>http://picslog.picsmate.net/2008/05/19/318/</link>
		<comments>http://picslog.picsmate.net/2008/05/19/318/#comments</comments>
		<pubDate>Mon, 19 May 2008 07:09:44 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/2008/05/19/318/</guid>
		<description><![CDATA[
モバゲータウンで使用されているフレームワーク「MobaSiF」がDeNAから公開されたようです。
同時期に「TypePadの絵文字アイコン画像と、携帯コンテンツ表示モジュールをフリー（自由）ライセンスで公開」のようなこ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/20080519.jpg" rel="lightbox[pics-1211180357]" title="モバゲータウン"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/20080519.thumbnail.jpg" width="320" height="240" alt="モバゲータウン" class="imageframe" /></a><br />
<a href="http://www.mbga.jp/" rel="external">モバゲータウン</a>で使用されているフレームワーク「MobaSiF」が<a href="http://www.dena.jp/" rel="external">DeNA</a>から公開されたようです。</p>
<p>同時期に「<a href="http://start.typepad.jp/typecast/" rel="external">TypePadの絵文字アイコン画像と、携帯コンテンツ表示モジュールをフリー（自由）ライセンスで公開</a>」のようなことがあったり、一気に携帯向けのツールがそろいだした感じですね。</p>
<p>どちらもperlベースですが。<br />
<span id="more-318"></span></p>
<p>「MobaSiF」は「SourceForge.JP」で公開されているようです。<br />
<a href="http://sourceforge.jp/projects/moba" rel="external">SourceForge.JP- Project Info &#8211; MobaSiF (Moba-Mobile Simple Framework)</a></p>
<p>とりあえず、特徴としては早いらしい。</p>
<p>組み込まれているテンプレートエンジン「MTemplate」は、「Template Toolkit」よりも22倍早くて、絵文字変換も「Encode::JP::Mobile」より3倍早いらしい。</p>
<p>まだ公開されたばかりなので、資料がなくて、どんな使い方なのかなぁ・・・と思ってたら、SourceForgeからダウンロードした「moba-0.9.0.tar.gz」の中のdocsフォルダの中に、使い方の書いてあるドキュメントが入っています。</p>
<p class="sub">いろいろと書いてありますが、使う前に注意しないといけないところ</p>
<ul>
<li>セキュリティー対策関連のコードは抜いてある</li>
</ul>
<p>とあるので、当然ながらこのフレームワークを使ったからといって、モバゲータウンと同等のセキュリティを確保することができない。</p>
<p>仕様もあるだろうし、必要な対策は各自しろってことですね。</p>
<p class="sub">対応端末</p>
<ul>
<li>docomo : FOMA 90x,70x</li>
<li>au : WIN</li>
<li>softbank : 3GC 型</li>
</ul>
<p>比較的新しい端末ってことですね。</p>
<p>モバイルでネットするユーザがターゲットだから、この辺りは問題なさそう。</p>
<p class="sub">文字コードなど</p>
<ul>
<li>ソース : euc</li>
<li>テンプレ : sjis</li>
<li>DB : sjis</li>
</ul>
<p>文字コードがソースとテンプレで違うのがちょっと気になるけど、無駄に変換するタイミングを増やさない方が安心ってことか。</p>
<p>携帯向けってのが一番大きい理由なんだろうけど。<br />
場合よってはクエリチェックがめんどくさそう。</p>
<p>テンプレートエンジンとかは比較的使いやすそうなので、携帯サイトを作るときは利用してみてもいいかもしれない。<br />
とりあえず、もう少し運用サイトが出てくるまで待ってみて、反応を見たいところ。</p>
<p>なんにしても実績のある企業から、フレームワークをオープンソースとして出してくれるのはありがたい。</p>
<p>また時間があれば、じっくり中身を覗いてみよう。</p>
<p>関連情報：<br />
<a href="http://codezine.jp/a/article/aid/2528.aspx" rel="external">【YAPC&#8211;Asia 2008】モバゲータウンのフレームワーク「MobaSiF」公開：CodeZine</a><br />
<a href="http://builder.japan.zdnet.com/news/story/0,3800079086,20373375,00.htm" rel="external">DeNA、「モバゲー」のウェブアプリフレームワークをオープンソースとして公開 &#8211; builder by ZDNet Japan</a></p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/05/14/299/">YouTubeを簡単に表示できるwordpressプラグイン「EasyTube」</a><br />
<a href="http://picslog.picsmate.net/2008/05/02/298/">CSSとテキストを駆使して描画された「ザ・シンプソンズ」のホーマー</a><br />
<a href="http://picslog.picsmate.net/2008/04/02/223/">GMapをXMLで初期化するjQueryプラグイン「jquery.xmap.js」</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/05/19/318/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTubeを簡単に表示できるwordpressプラグイン「EasyTube」</title>
		<link>http://picslog.picsmate.net/2008/05/14/299/</link>
		<comments>http://picslog.picsmate.net/2008/05/14/299/#comments</comments>
		<pubDate>Tue, 13 May 2008 17:39:32 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/2008/05/14/299/</guid>
		<description><![CDATA[
「菓子博の記事」でYouTubeのムービーを差し込んでいたんですが、YouTubeで発行されたタグをwordpressにそのまま差し込むと、どうもサイト表示が崩れるらしいです。
IEは無事だったんですが、FireFox [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/easytube.jpg" rel="lightbox[pics299]" title="EasyTube設定画面"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/easytube.thumbnail.jpg" width="320" height="240" alt="EasyTube設定画面" class="imageframe" /></a><br />
「<a href="http://picslog.picsmate.net/2008/04/18/260/">菓子博の記事</a>」でYouTubeのムービーを差し込んでいたんですが、YouTubeで発行されたタグをwordpressにそのまま差し込むと、どうもサイト表示が崩れるらしいです。</p>
<p>IEは無事だったんですが、FireFoxで崩れていました・・・チェックミス（￣□￣；）</p>
<p>崩れているのを気づかず、しばらく記事を晒した上、崩れているのを確認してからさらにしばらく放置しましたが、YouTubeの動画を超簡単に差し込め、サイトも崩れないプラグイン、「<strong>EasyTube</strong>」があったので導入しました。<br />
<span id="more-299"></span></p>
<p class="sub">プラグインの配布ページ</p>
<p><a href="http://www.ejump.co.uk/wordpress/easytube-plugin-for-wordpress/" rel="external">eJump.co.uk &raquo; EasyTube &#8211; YouTube Plugin for WordPress</a></p>
<p class="sub">導入手順</p>
<p>簡単なので、それほど説明することはないんですが一応。</p>
<ol>
<li><a href="http://www.ejump.co.uk/wordpress/easytube-plugin-for-wordpress/" rel="external">プラグイン配布ページ</a>の下のほうにあるDownload EasyTubeをクリックして、プラグインをダウンロード</li>
<li>ダウンロードしたzipファイルを解凍して、出てきた「easytube」フォルダごとwordpressの「/wp-content/plugins」フォルダの中にアップロード</li>
<li>wordpressの管理画面のプラグイン項目から「Easy Tube」を有効化</li>
<li>自動再生やボーダーカラーとか、初期設定を行いたい場合は、wordpressの管理画面の各種設定項目の「EasyTube」で設定</li>
</ol>
<p>以上で導入完了。</p>
<p>後は投稿記事内に、</p>
<pre><code class="color"><b>[</b>youtube:YouTubeのムービーページのアドレス<b>]</b>
</code></pre>
<p>を入れるだけでムービーを差し込むことができます。</p>
<p>すばらしく簡単！</p>
<p>さらに、プラグインの配布先のサンプルにあるように</p>
<pre><code class="color"><b>[</b>youtube:http://www.youtube.com/watch?v=rF_czeyN2Vo&amp;autoplay=1 150 150<b>]</b>
</code></pre>
<p>アドレスの最後についている「autoplay」パラメータを渡すことで、自動再生を有効にしたり、ムービーの大きさを調整することも可能なようです。</p>
<p>とりあえず簡単に使えるので、YouTubeをサイトに貼り付ける場合には導入したいプラグイン。</p>
<p>なんか、久々のwordpressネタでした(＞_＜ )</p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2007/11/25/156/">Word Pressの携帯閲覧用プラグイン「Mobile Eye＋」を更新しました</a><br />
<a href="http://picslog.picsmate.net/2007/05/16/31/">Lightbox 2 WordPress Plugin をインストールしました </a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/05/14/299/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSSとテキストを駆使して描画された「ザ・シンプソンズ」のホーマー</title>
		<link>http://picslog.picsmate.net/2008/05/02/298/</link>
		<comments>http://picslog.picsmate.net/2008/05/02/298/#comments</comments>
		<pubDate>Fri, 02 May 2008 11:26:01 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[アート]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/2008/05/02/298/</guid>
		<description><![CDATA[
テキストをCSSで整形して、「ザ・シンプソンズ」のお父さん、ホーマーを見事に描いている記事です。
ちなみに上のイラストは、「ザ・シンプソンズ」のサイトのキャプチャなので、CSSで描いたものではありません。
ちょっと衝撃 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/homer_1.jpg" rel="lightbox[pics-1209717095]" title="ザ・シンプソンズ"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/homer_1.thumbnail.jpg" width="320" height="240" alt="ザ・シンプソンズ" class="imageframe" /></a><br />
テキストをCSSで整形して、「<a href="http://www.foxjapan.com/tv/bangumi/the_simpsons/contents.html" rel="external">ザ・シンプソンズ</a>」のお父さん、ホーマーを見事に描いている記事です。</p>
<p>ちなみに上のイラストは、「<a href="http://www.foxjapan.com/tv/bangumi/the_simpsons/contents.html" rel="external">ザ・シンプソンズ</a>」のサイトのキャプチャなので、CSSで描いたものではありません。</p>
<p>ちょっと衝撃的だったので紹介(*°∀°)=3<br />
<span id="more-298"></span></p>
<p>元記事は以下。<br />
<a href="http://www.romancortes.com/blog/homer-css/" rel="external">Roman Cortes ≫ Homer CSS</a></p>
<p>これがそのページで描画されているCSSホーマー。<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/homer_2.jpg" rel="lightbox[pics-1209717095]" title="ホーマーCSS"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/05/homer_2.thumbnail.jpg" width="320" height="240" alt="CSSホーマー" class="imageframe" /></a><br />
・・・尋常じゃない。</p>
<p>一瞬、ただの画像化と疑ってしまいますが、ページをドラッグして範囲選択などしてみると、やっぱりテキストで描かれています。</p>
<p>できる、できないじゃなく、こんなことやる気がしない（　ﾟ Дﾟ）</p>
<p>ザ・シンプソンズのキャプチャと見比べると、再現性の高さをヒシヒシと感じ取ることができます。</p>
<p>しかも、クロスブラウザ対応を意識しているらしく、結構ブラウザに対応していたり。<br />
（まぁ、absoluteで固めているだけだから、あまりクロスブラウザとか意識しないでいいのかもしれない）</p>
<p>フォントがトゥルータイプだから、フォントサイズの指定さえ均等にすればベクターアートと同じようにも使えるか。<br />
ポジショニングもem指定にしているところが賢い。</p>
<p>マルチバイト文字を一切使ってないところも驚愕・・・フォントの都合かな。</p>
<p>テーブルでドット絵を描いたり、アスキーアートだったり、いろんな表現方法がありますが、まだまだいろんな表現方法があるものですね(≧∇≦)/</p>
<p>関連記事：<br />
<a href="http://picslog.picsmate.net/2008/04/09/238/">フォントの作成できるオンラインサービス「FontStruct」</a><br />
<a href="http://picslog.picsmate.net/2007/09/27/134/">Webデザインで知っておいたほうが便利なCSSハックの紹介サイト</a><br />
<a href="http://picslog.picsmate.net/2007/08/15/100/">簡単にブロック要素の高さを統一できる「heightLine.js」</a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/05/02/298/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>フォントの作成できるオンラインサービス「FontStruct」</title>
		<link>http://picslog.picsmate.net/2008/04/09/238/</link>
		<comments>http://picslog.picsmate.net/2008/04/09/238/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 08:18:05 +0000</pubDate>
		<dc:creator>Mizugame</dc:creator>
				<category><![CDATA[WEB開発]]></category>
		<category><![CDATA[フリー素材]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[ラクガキ]]></category>

		<guid isPermaLink="false">http://picslog.picsmate.net/2008/04/09/238/</guid>
		<description><![CDATA[
「phpspot開発日誌」さんのところで、オリジナルフォントを作成できる、オンラインサービス「FontStruct」が紹介されていました。
ドット打ち感覚でフォントが作成できます。
触ってみて、ちょっとテンションがあが [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_1.jpg" rel="lightbox[pics-1207723658]" title="FontStruct"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_1.thumbnail.jpg" width="320" height="240" alt="FontStruct" class="imageframe" /></a><br />
「<a href="http://phpspot.org/blog/archives/2008/04/fontstruct.html" rel="colleague external">phpspot開発日誌</a>」さんのところで、オリジナルフォントを作成できる、オンラインサービス「<a href="http://fontstruct.fontshop.com/" rel="external">FontStruct</a>」が紹介されていました。</p>
<p>ドット打ち感覚でフォントが作成できます。</p>
<p>触ってみて、ちょっとテンションがあがりました！<br />
これ、ちょっと面白いよ！<br />
<span id="more-238"></span></p>
<p>FontStructへは以下から。<br />
<a href="http://fontstruct.fontshop.com/" rel="external">FontStruct &#8211; Build, Share, Download Fonts</a></p>
<p class="sub">使ってみる</p>
<p>感じとしてはドット打ちですが、打ち込める図形が四角だけでなく、いろんなパーツが用意されているので、比較的柔軟なフォントが作成できるようです。<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_2.jpg" rel="lightbox[pics-1207723658]" title="使用できる図形"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_2.thumbnail.jpg" width="73" height="240" alt="使用できる図形" class="imageframe" /></a></p>
<p>ちょっと、遊んでみました。<br />
素直じゃないのでフォントではなく、ラクガキみたいなのを描いていますがw<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_3.jpg" rel="lightbox[pics-1207723658]" title="人っぽいもの"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_3.thumbnail.jpg" width="320" height="240" alt="人っぽいもの" class="imageframe" /></a></p>
<p>ちょっと可愛いのも作れそうだなー。と思って鳥っぽいものを描こうとしましたが、微妙なことに・・・(^^;<br />
<a href="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_4.jpg" rel="lightbox[pics-1207723658]" title="鳥っぽいもの"><img src="http://picslog.picsmate.net/wp/wp-content/uploads/2008/04/fontstruct_4.thumbnail.jpg" width="320" height="240" alt="鳥っぽいもの" class="imageframe" /></a></p>
<p>まだ、ちょろちょろっとしか触ってないのですが、Flashベースで、割と操作感もいいので、結構作りやすいかもしれません。</p>
<p>スペースをおして画面をスクロールすることに慣れていたので、このあたり対応していてうれしい。</p>
<p>コピーや反転といった機能が見当たらなかったので、そういうのがあれば、すばらしく作業効率があがるのですが・・・。</p>
<p>あと、できればアンドゥもほしいかも。</p>
<p>実は見落としてるだけで、存在するのかもしれないですが。</p>
<p class="sub">まとめ</p>
<p>とりあえず、フォントを作ったり、<a href="http://fontstruct.fontshop.com/gallery" rel="external">ギャラリー</a>でみんなが作ったフォントをダウンロードしたい場合には、アカウントが必要です。</p>
<p>すでに、結構ギャラリーにフォントが並んでいるので、眺めていても面白いですが。</p>
<p>ギャラリーでのダウンロードは、ダウンロード後になぜかサインアウト状態になっちゃって、ちょっとめんどくさい（私だけ？）</p>
<p>作成したフォントはTTF形式でダウンロードできるので、結構重宝できそう。<br />
サイトのロゴとか、タイトルとかちょっとしたものを作るのに便利かも。</p>
<p>アウトラインタイプのフォントがオンラインで作成できるってすごいね！</p>
<p>関連情報：<br />
<a href="http://picslog.picsmate.net/2007/10/07/136/" rel="external">フリーのベクターアートの配布サイト「FreeVectors.net」 </a><br />
<a href="http://picslog.picsmate.net/2007/05/21/53/" rel="external">Gigazine.netでフリーのベクターアートの配布サイトが紹介されています。 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://picslog.picsmate.net/2008/04/09/238/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
