<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>
<channel>
	<title>gaspanik weblog</title>
	<atom:link href="http://blog.gaspanik.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.gaspanik.com</link>
	<description>beat one's brain</description>
	<lastBuildDate>Sun, 07 Feb 2010 06:41:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/feed" />
<cloud domain='blog.gaspanik.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>禅語 zengo</title>
		<link>http://blog.gaspanik.com/piebooks-zengo</link>
		<comments>http://blog.gaspanik.com/piebooks-zengo#comments</comments>
		<pubDate>Sun, 07 Feb 2010 04:08:51 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[lifehacks]]></category>
		<category><![CDATA[scribbling]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[recommendation]]></category>
		<category><![CDATA[zen]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2852</guid>
		<description><![CDATA[立て続けに本の紹介を。
先日久しぶりに新宿方面へ打ち合わせに出たついでに紀伊國屋書店に足をのばしました。まずは6階まで上がって洋書のコーナーから写真などのコーナーへと移動し、5階の国内のコンピュータ書籍の様子をうかがうと [...]]]></description>
			<content:encoded><![CDATA[<p>立て続けに本の紹介を。<br />
先日久しぶりに新宿方面へ打ち合わせに出たついでに紀伊國屋書店に足をのばしました。まずは6階まで上がって洋書のコーナーから写真などのコーナーへと移動し、5階の国内のコンピュータ書籍の様子をうかがうというのがお決まりのコースです（どうでもいいか、そんなこと 笑）。</p>
<p>で、あれも欲しいこれも欲しいなんて思いながらウロウロしたあげく、1冊だけ本を購入しました。それがピエ・ブックスから出ている「禅語 zengo」。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/zengo.jpg" alt="zengo" title="zengo" width="450" height="253" class="alignnone size-full wp-image-2851" /></p>
<p>ボクには38年ぐらい前に曹洞宗の寺にもらわれて育てられたというバックボーンがあるからか、どうしてもこの類の本にも興味があります（宗教どうこうではなく人生哲学的な部分で）。これまで何冊かの禅や禅語に関する本を買ってますが、このてのものは禅語とその解説、書などを並べて構成されてまして、解説自体は平易に書かれているといってもその道のプロというか僧侶や研究者が書いてることが多いものです。</p>
<p>今回買ったこちらの「禅語」は、禅語とその解説、内容にあう写真をあわせて展開するという<a href="http://www.piebooks.com/search/categories.php?SCID=102">ピエ・ブックスのシリーズ</a>のひとつです。本文執筆は、占いなどをされている石井ゆかりさんによるものです。お仕事柄だと思われますが、自分の経験や周囲の状況をまじえた柔らかい文章で書かれていて、非常に読みやすいものになっています。</p>
<p>毎日気を張って生きていくのも大変ですから、たまにはこんな本でも読んで心に安らぎでも与えてみてはどうですか？ 難しいことは何も書かれていませんから。</p>
<p>&rarr; <a href="http://www.amazon.co.jp/gp/product/4894448203?ie=UTF8&#038;tag=gaspanik-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4894448203">禅語</a><img src="http://www.assoc-amazon.jp/e/ir?t=gaspanik-22&#038;l=as2&#038;o=9&#038;a=4894448203" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" />（Amazon.co.jp）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/piebooks-zengo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/piebooks-zengo" />
	</item>
		<item>
		<title>自分を育てるのは自分</title>
		<link>http://blog.gaspanik.com/2010-02-books</link>
		<comments>http://blog.gaspanik.com/2010-02-books#comments</comments>
		<pubDate>Sat, 06 Feb 2010 02:28:41 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[scribbling]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[lifestyle]]></category>
		<category><![CDATA[recommendation]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2768</guid>
		<description><![CDATA[先日NHKの「追跡！AtoZ」という番組の「問われる日本人の“言語力”」の回を見てました。もともと多くを語らず察することは日本人の血としてあると思うんですが、最近ではメール文化の発展なんかもあり、余計に自分の気持ちや考え [...]]]></description>
			<content:encoded><![CDATA[<p>先日NHKの「<a href="http://www.nhk.or.jp/tsuiseki/">追跡！AtoZ</a>」という番組の「<a href="http://www.nhk.or.jp/tsuiseki/file/list/100130.html">問われる日本人の“言語力”</a>」の回を見てました。もともと多くを語らず察することは日本人の血としてあると思うんですが、最近ではメール文化の発展なんかもあり、余計に自分の気持ちや考えをわかりやすく人に伝えるということがうまくできない人が増えてきている、と。</p>
<p>サッカーの日本代表が勝てないのも技術どうこうというより、実はその辺に問題があるからではないかということが指摘された（今はそういった研修がおこなわれているらしい）、といった内容でした。</p>
<blockquote cite="http://www.nhk.or.jp/tsuiseki/file/list/100130.html"><p>言語力とは、物事を論理的に考え、それを書いたり話したりする力を指す。この検定が始まった背景には、今教育現場や企業など様々な現場で「話し言葉をそのまま作文に書く中学生」、「面接で想定外の質問をされると答えられない学生」、「営業報告書がまともに書けない若手社員」が相次ぎ、言語力の低下が進んでいることがある。<br /><cite>http://www.nhk.or.jp/tsuiseki/file/list/100130.html</cite></p>
</blockquote>
<p>ボクのことを知ってる方は「好きそうねえ…」って言いそうですが、人間とか思考とかその辺が大好きなボクはどうしても気になるので、例によってAmazonさんでいろいろ本を物色するという行動に出るわけですね。</p>
<p>と、そんな前振りから始めて、今回は最近買った本の紹介を。</p>
<p><span id="more-2768"></span></p>
<h3>こもりは2冊の本に出会った〜（ウルルン風で）</h3>
<p>「言語力」をキーワードに検索してみると、昨年から始まった「<a href="http://www.gengoryoku.jp/">言語力検定</a>」の対策テキスト、小中学校の教員用のテキストなどが出てきました。といっても、それを買ってもなんなので、それから繋がっていく本をパラパラとチェックしていくとある2冊の本に出会いました。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/201002books.jpg" alt="201002books" title="201002books" width="450" height="253" class="alignnone size-full wp-image-2767" /></p>
<p>ひとつは「<strong>自分を育てるのは自分</strong>」、もうひとつは「<strong>教え上手</strong>」という本です。</p>
<h3>10代の君たちへ　自分を育てるのは自分（東井義雄）</h3>
<p>「10代の君たちへ」というサブタイトルがついているように、この本は「教育界の国宝」とか「伝説の教師」と言われている東井義雄先生の講演をまとめたものになります。ボクは東井さんを存じ上げなかったわけですが、子供たちにむけて語られるその話は大人が聞いてもためになるというか、すっかり忘れていたことを思い出させてくれるかもしれません。</p>
<p>東井先生は「バカにはなるな」と子供たちに説くわけですが、その「バカ」とは決して勉強の出来不出来ではありません。当たり前の話です。学校の勉強ができるできないなんてどうでもいいことで、「自分を大事にしない人がバカ」ということです。</p>
<blockquote><p>道にいい道、悪い道というのがあるのではない。<br />
その道をどんな風に生きるかという、その生きざまによって、良く見える道も悪くなったり、悪く見える道も良くなったりするんですね。<br />
<cite>自分を育てるのは自分（東井義雄）</cite></p>
</blockquote>
<p>仰るとおりでございます（笑）。<br />
よく「自分は不幸だ」とか「何をやってもうまくいかない」なんて嘆いてる人がいますが、そもそもそうなってしまったのはこれまでの自分のやってきた結果であることの方が多いわけです。しかし、残念ながら大人であってもそれに気付けず、周りのせいにしたりする人も思いの外多い。</p>
<p>周りを変えられないのなら、自分が変わればいいだけです。いろいろな人がいてくれるおかげで自分が生きていられるということをちゃんと認識しましょう。</p>
<p>風邪をひきたくなければ、ひかないように日頃から注意したり予防線をはるような努力はできます。将来太りたくなければ、日頃から太らないように気をつけていればよいだけの話。酒で失敗したくなければ飲み過ぎないように自制しないと。良くするのも悪くするのも自分なんです。</p>
<blockquote><p>自分が自分の主人公。<br />
自分を立派に育てていく責任者。<br />
<cite>自分を育てるのは自分（東井義雄）</cite></p>
</blockquote>
<p>また、この本に書かれていることなんですが、人生を72年として自分の歳を3で割る。これを1日24時間にあてはめると36歳でお昼12時。</p>
<p>ボクはそろそろ38だから3で割ると12と2余ります。余りの2は1時間の2/3で40分となり、そろそろ12時40分です。こう考えるとのんびりはしてられません、がんばらないと日が暮れてしまう…。24歳なら朝の8時。寝て起きて朝の準備時間が終わった頃でしょうか。これから素敵な1日のはじまりですね。</p>
<p>とまぁ、大人であってもあらためて気付かされることがあるでしょう。ボーッと今をなんとなく生きてることが恥ずかしく感じられるようなエピソードもいっぱいです。お子さんがいらっしゃる方にも話のネタとしてオススメしたい一冊です。</p>
<p>&rarr;<a href="http://www.amazon.co.jp/gp/product/488474831X?ie=UTF8&#038;tag=gaspanik-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=488474831X">自分を育てるのは自分—10代の君たちへ</a><img src="http://www.assoc-amazon.jp/e/ir?t=gaspanik-22&#038;l=as2&#038;o=9&#038;a=488474831X" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" />（Amazon.co.jp）</p>
<h3>教え上手（有田和正）</h3>
<p>こちらは「教育界のカリスマ」という有田和正さんの本です。</p>
<blockquote><p>教えたいことがたくさんあるとき、初対面の相手に教えないといけないとき、どうしても叱らなければならないとき、何をどの順番で教えるか悩んだとき、——あなたの力量が、そこにあらわれる。<br />
<cite>教え上手（有田和正）</cite></p>
</blockquote>
<p>ボク自身もここ数年セミナーや講師として人前で話す機会が増えてきました。会社員だった頃は、後輩に何かを教えるのにどうすればいいか、なんてことも考えてたわけですが、人前で話すことはおろか「教える」といったことを習ったことはありません。それでも自分なりに試行錯誤しながらやってきたことは果たして良かったのか、って思いながらこの本を買ってみたというわけです。</p>
<p>このブログなんかでもそうなんですが、ボクは「すべてを教えない」傾向にあります。時としてそれは「中途半端」だの言われたりもしますが、すべてを手取り足取り教えるよりはヒントを与え、あとは自分自身の力で調べるなりやってみて欲しいからそうしています。実際、教えるどころかイラッとするようなことをわざと言ったりもするので（笑）、「むかつく」「くそー！」って思ってる人も多いんじゃないかと（もちろん人によって使ったり使わなかったりですが）。</p>
<p>いまどきはネットで検索すれば答えを見つけることもできます。しかし、「答えが見つかりませんでした」という人の多くは検索するという行為は知っていても、「<strong>どのような言葉を組み合わせれば求めるものが見つかるか</strong>」「<strong>書く人の立場になったら、どういう言い回しにするか</strong>」という風に思考を発展させることができてないようです。<strong>何かを知りたければ、その答えが見つかるように問わないと</strong>。</p>
<blockquote><p>答えばかりたくさん教わってる人に、問う力を備えることはできません。<br />
<cite>教え上手（有田和正）</cite></p>
</blockquote>
<p>つまり、答えだけを教わったとしても、そこに至るまでの過程がわからなければ応用には結びつきません。何事も基本をしっかり身につけて、自分の頭で考えて試してみることが大事なんです。</p>
<blockquote><p>答えをすぐには教えず、自分の頭で考えさせる。結論を急がず、即答を要求せず、ゆっくり考えさせる。あえて大事なポイントを隠してヒントだけ与える。わざとあいまいなことや間違ったことを提示して、固定観念や既成概念にゆさぶりをかける。<br />
<cite>教え上手（有田和正）</cite></p>
</blockquote>
<p>なんとなく後押しされてる気がします（笑）。</p>
<p>残念ながらボクの置かれている今の状況は、腰を据えて誰かを教え込むというより、限られた数時間の中でできるかぎり多くのことを伝えるという形になってしまうので「<strong>教え惜しみ</strong>」みたいなことはできないんですけどね…。</p>
<p>こちらの本、「教え上手」という人はどういう人をさすのか、といったことにはじまって人間性やらまでに話は及びます。「自ら考え、行動する人材をいかに育てるか」といった悩みを解決する手助けにもなってくれるでしょう。</p>
<p>教えることは人生のいろいろな場面で出てきます。学校教育だけでなく、社会人教育の場でもあてはまることが多く書かれていますが、決してそのような教える技術だけを解説した本ではありません。人を惹きつけるにはどうしたらいいか、そういった内容が多く含まれています。教える側はもちろん、教わる側の人にも読んで欲しいかな。こちらもいろいろな方にオススメします。</p>
<p>&rarr;<a href="http://www.amazon.co.jp/gp/product/4763199773?ie=UTF8&#038;tag=gaspanik-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4763199773">教え上手</a><img src="http://www.assoc-amazon.jp/e/ir?t=gaspanik-22&#038;l=as2&#038;o=9&#038;a=4763199773" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" />（Amazon.co.jp）</p>
<p>と、言語力の話はどこ行ったんだろう？って感じですが、どちらにも言語力が含まれていることだからいいですかね（笑）。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/2010-02-books/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/2010-02-books" />
	</item>
		<item>
		<title>Page Speedが1.6βになったようで</title>
		<link>http://blog.gaspanik.com/google-page-speed-16</link>
		<comments>http://blog.gaspanik.com/google-page-speed-16#comments</comments>
		<pubDate>Wed, 03 Feb 2010 07:08:24 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[scribbling]]></category>
		<category><![CDATA[works]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2717</guid>
		<description><![CDATA[昨年末にWeb Designingさんの特集に書いたWebサイトのパフォーマンスの話でも取り上げたGoogleさん謹製の最適化ツール「Page Speed」の1.6のβ版がリリースされてます（以前のエントリー）。
よく見 [...]]]></description>
			<content:encoded><![CDATA[<p>昨年末にWeb Designingさんの特集に書いた<a href="http://blog.gaspanik.com/web-designing-102-and-websites-performance">Webサイトのパフォーマンスの話</a>でも取り上げたGoogleさん謹製の最適化ツール「<a href="http://code.google.com/speed/page-speed/">Page Speed</a>」の1.6のβ版がリリースされてます（<a href="http://blog.gaspanik.com/how-to-use-page-speed">以前のエントリー</a>）。</p>
<p>よく見るといろいろ変わっているようです（※クリックで拡大）。</p>
<p><a href="http://blog.gaspanik.com/wp-content/uploads/2010/02/pagespeed16-003.png" rel="lightbox[ps16]"><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/pagespeed16.png" alt="pagespeed16" title="pagespeed16" width="450" height="253" class="alignnone size-full wp-image-2723" /></a></p>
<p>年末のエントリーでは表示パフォーマンスが大事かとか簡単な使い方程度しか書いてないので、今回は気が向いたのでPage Speed 1.6βをベースにそこに挙げられている項目をひとつひとつ取り上げてみようかと思います。</p>
<p>長いので気合いを入れてください（笑）。</p>
<p><span id="more-2717"></span></p>
<h3>Page Speed 1.6β、それぞれの項目はこんな感じですよ</h3>
<p>細かい改善手法についてまでは解説しませんが、Yahoo!さんのYSlow!同様日本語化されてるわけではないので、それぞれの項目がどういうことを言ってるのかぐらいがわかる程度の簡単なもので（笑）。</p>
<p>ちなみにうちのこのブログを使って検証した結果をもとに上の図にある順番になっています。これはサイト毎に全然変わった結果になると思いますので、ご自身のサイトで赤いエクスクラメーションマークがついてるとこを重点的に読んでみてくださいね。</p>
<h4>Minimize request size</h4>
<p>バージョン1.6βから新たに登場した「Minimize request size」は、HTTPリクエスト時のデータサイズを抑えようみたいなことでしょうか。これが大きい場合は遅延が起きてしまうみたいな話かと。解決方法としては、クッキーのサイズを少なくするとか、画像なんかはクッキーのつかないドメインから送るとかですね。</p>
<h4>Combine external JavaScript</h4>
<p>外部から読み込んでる複数のJavaScriptは、できれば結合しましょうってことです。ブラウザによっては、JavaScriptの並行ダウンロードができなかったりするので、複数のJavaScriptを読み込んでいる場合は速度低下を引き起こします（30個とか読んでたらそりゃ遅いっすよ、どことは言いませんけど 笑）。結合できるものはできるだけ結合した方が良いってことですね。数は少ない方が理想的です。</p>
<h4>Minimize DNS lookups</h4>
<p>DNSの参照を減らしましょうってこと。いまどきのWebサイトは自分とこのサーバ以外の外部サーバからいろいろなデータを取得していることもあるでしょう（バナーだったり）。外部のサーバへのリクエストが増えた場合は、どうしても接続時にそのサーバのDNSの問い合わせが発生しますから、これが結果的に遅延に繋がるということになります（※GoogleさんのPublic DNSは表向きこの遅延解消が目的のようです）。</p>
<h4>Use efficient CSS selectors</h4>
<p>効率的なCSSのセレクタを使いましょうってことです。簡単に言えば、冗長なというか長ったらしいCSSのセレクタはやめましょうって話。だらだら長い子孫セレクタとかね。CSSの継承とかclassをうまく使ってシンプルに。「ul#nav li.listitems（要素名+id 要素名.class）」のような書き方しないで「.listitems」でいいんじゃない？みたいな感じです。</p>
<h4>Leverage browser caching</h4>
<p>ブラウザのキャッシュが有効になるようにしようってことです。もちろん普通一度見たデータはローカルにキャッシュされますけど、他のサイトをみたら順繰りに入れ替わります（キャッシュの容量で）。画像などの更新頻度が少ないファイルに有効期限などを設定しておけば、再閲覧時にHTTPリクエストがきても「304 Not Modified」が返されてローカルのファイルが利用されると。ヘッダのやりとりだけで終われば、余計な転送もいらなくなって表示が速くなるわけです。有効期限の設定は、Apacheの場合は「mod_expire」なんかで設定できます（参考程度の<a href="http://blog.gaspanik.com/how-to-use-yslow-addon">設定例</a>）。</p>
<h4>Leverage proxy caching</h4>
<p>プロキシ経由の接続もあるので、ブラウザ同様にキャッシュが効くようにしておきましょうねってことです。「Cache-control」ヘッダをくっつけておこう的な話です。ただこれに関しては、条件次第ではCache-controlの値に注意が必要のようです。詳しくは<a href="http://code.google.com/speed/page-speed/docs/rules_intro.html">マニュアル</a>を参照で。</p>
<h4>Minify HTML</h4>
<p>「Minify」とは、余分な空白やコメントなどを除去することです。そうすることでデータの転送量を減らすことが可能です（Gzip圧縮がかけられるんだったら別にそこまでって気もしますが）。HTMLには、空白やいらない改行、コメントなども腐るほど入ってるでしょうから、その辺のゴミは取った方が転送データ量を減らすことができるってわけです（チリも積もればなんとやら 笑）。</p>
<h4>Minify CSS</h4>
<p>こちらもHTML同様です。チーム単位での作業などではCSSに成形のためのインデントなんかが含まれますね。そのようないらないスペースやセレクタに含まれる余分な空白（値の中も）は取っ払いましょうということです。ちなみにPage Speedでは、自動的にMinify化されたCSSが保存されてますので、それを見ればどういうことかわかるでしょうし、場合によってはそれを使えば話は早いです（笑）。</p>
<h4>Minify JavaScript</h4>
<p>こちらも同じですね。JavaScriptのコードもできたらMinify化しましょうねと。</p>
<h4>Remove unused CSS</h4>
<p>使ってないCSSは取り除きましょう。付け足し付け足ししてるといつの間にか使わなくなったスタイル指示なんかがゴミになってるはずです。</p>
<h4>Avoid bad requests</h4>
<p>いらないリクエストをなくそうということです。簡単に言えば、404なんかのことです。ファイルへのリンクがはずれてるにもかかわらずリクエストを送るのは無駄ってことです。いろんなWebサイトでたまに見かけます（笑）。</p>
<h4>Combine external CSS</h4>
<p>外部のCSSファイルを結合しましょうということです。JavaScriptとはちょっと話が違いますが、@importを使って多段階でCSSを読ませたりするとブラウザによっては遅くなります（IE6とか）。そんなことしてたらHTTPリクエストが何回も発生するわけで、いくら並行ダウンロードができるといっても遅くなるのは当然です（笑）。できるだけ読み込むCSSの数は減らしましょう。</p>
<h4>Enable compression</h4>
<p>可能であれば、HTMLやCSS、JavaScriptといったテキストベースのファイルはサーバ側でGzip圧縮をかけましょうということ。既に圧縮されている画像以外はまとめてどーんと。これはApacheだと「mod_gzip」や「mod_deflate」で設定すれば可能です。圧縮率にもよりますが、転送データ量は大体1/3ぐらいになるかなと。古い携帯電話とかだとGzipに対応してないのに対応してるヘッダを送ったりすることがあるようなので、そのような対象の場合は注意が必要です。</p>
<h4>Minimize redirects</h4>
<p>そのまんまでリダイレクトを減らしましょう。コンテンツが移動したりするとHTMLのヘッダとかで別ページに飛ばしたりしてるとこもあるようですが、サーバ側でリライトをかけてリダイレクトするとかした方が良いってことです。</p>
<h4>Optimize images</h4>
<p>画像を最適化しましょうということです。PhotoshopとかFireworksで書き出しただけのデータは、そのままではいらんもんがついていたりしてなにげにでかいのです。同じ画像でもGIFよりもPNGの方が最終的には軽くなります。Pagespeedでも自動的に最適化した画像が保存されます。それ以前に最初から最適化するなら、そのためのツールやオンラインサービス（<a href="http://developer.yahoo.com/yslow/smushit/index.html">Smush.it&#8482;</a>や<a href="http://www.gracepointafterfive.com/punypng">punypng</a>）があるので利用してみましょう。</p>
<h4>Optimize the order of styles and scripts</h4>
<p>HTMLの&lt;head&gt;の中のCSSとJavaScriptの順番にも注意しましょう。外部JavaScriptの読み込み指示がある場合は、そこで一旦並行ダウンロードが止まります。ソースを直接書いてる場合は、できることならCSSの読み込みの前にあった方が良いです。「&lt;link&gt;&rarr;&lt;script&gt;&rarr;&lt;script&gt;&rarr;&lt;link&gt;」みたいになってたらどういうことが起こるか想像できますね。ページの描画に直接関係のないJavaScriptなどは、&lt;/body&gt;の前で読ませると良いですね。そうしておけば、JavaScriptが読めないブラウザがみても困ることはありません（笑）。</p>
<h4>Put CSS in the document head</h4>
<p>CSSは&lt;head&gt;の中に。style要素にしてもlink要素の読み込みにしても。</p>
<h4>Serve resources from consistent URL</h4>
<p>「consistent」は「一貫した」とかそんな意味です。Webサイト中のいろんなページから参照するCSSだったりJSなんかは、バラバラとおかないで同じものを利用しましょうってことでしょうか。同じものを別場所からダウンロードさせるほどアホなことはありません。</p>
<h4>Serve scaled images</h4>
<p>実際の使用サイズの画像を使いましょうってことでしょうか。大きめの画像をHTML側でリサイズしたりするのはやめましょうってことです。画像データはテキストなんかに比べて大きいですから、実際の使用サイズできちんと貼っておいた方が良いのは当たり前ですね。</p>
<h4>Specify a character set early</h4>
<p>文字コードの指定は冒頭の方でってことでしょう。新しく追加された内容でヘルプもないようです（笑）。</p>
<h4>Specify image dimensions</h4>
<p>img要素には幅と高さを入れておきましょうということです。HTMLとCSSがダウンロードされれば、Webページは画像データのダウンロードが終わらなくてもページのレイアウトは可能です。その際、あらかじめ画像の大きさがわかっていた方がリフローなんかが起きないと。回線が速いとわかりにくいかもしれませんが、遅いとよくわかるんじゃないかなぁ。</p>
<h4>Avoid CSS expressions</h4>
<p>IEの7までで使える「CSS expressions」を使うのはやめましょうということです。</p>
<h4>Defer loading of JavaScript</h4>
<p>ページのロード時に呼び出されないJavaScriptのファンクションなどは後からロードしようってことでしょうかね。</p>
<h4>Parallelize downloads accross hostnames</h4>
<p>複数のホストを使って並行ダウンロードをしましょうってことですね。DNSの参照と相反する感じですが、ブラウザは1ホストあたりの並行ダウンロード数が決まっています（2だったり、4だったり、6だったり）。例えば大きめの画像は回線の速いサーバからダウンロードさせるとか、その並行ダウンロードの特徴を使えば工夫次第で速くなるってわけです。</p>
<h4>Serve static content from a cookieless domain</h4>
<p>静的なコンテンツといっていいかわかりませんが、画像やCSSのようなファイルはできるだけクッキーがくっつかないドメインから送りましょうと。冒頭のリクエストサイズに絡んだ話になってきますかね。うちも昨日からテンプレートで使い回すような画像はクッキーのないところから送るように変更しました。</p>
<h3>といった感じで、うちもできることはやってます</h3>
<p>といった感じでいかがでしょうか。真面目に翻訳するというよりは何となく意味が理解してもらいやすいように書いたつもりですが。</p>
<p>以前も書きましたが、必ずしもテストして点数が良ければいいってわけでもないです。自分たちでできることできないこと、やったほうがいいことそうでないことを見極めて最適化を図ってみてください。閲覧デバイスも多様化してきますし、回線品質が貧弱な環境はいっぱいありますよ、世の中には。</p>
<p>うちも最近は画像を大きめにしてるので、ファイルの配信構成などを見直しました（テンプレートの画像はクッキーのない別ホストから送るとかいろいろ）。今回紹介したPage Speedだけでなく、YSlow!でもどうぞご自由にお試しください（やれることはやってるつもりなので）。</p>
<p>Webサイトの表示パフォーマンスアップはどうすればいいのかとかのお悩み相談も承りますよ（笑）。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/google-page-speed-16/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/google-page-speed-16" />
	</item>
		<item>
		<title>標準ウェブ制作完全ガイドが発売されます</title>
		<link>http://blog.gaspanik.com/mdn-standard-web-production-complete-guide</link>
		<comments>http://blog.gaspanik.com/mdn-standard-web-production-complete-guide#comments</comments>
		<pubDate>Tue, 02 Feb 2010 08:12:37 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[works]]></category>
		<category><![CDATA[books]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2679</guid>
		<description><![CDATA[この2月23日にMdNさんから『標準ウェブ制作完全ガイド 〜プランニングからデザイン、そしてシステム構築まで。Webの「仕事」がトータルに理解できるプロフェッショナル養成講座』という、サブタイトルまで含めるとどえらい長い [...]]]></description>
			<content:encoded><![CDATA[<p>この2月23日にMdNさんから<strong>『標準ウェブ制作完全ガイド 〜プランニングからデザイン、そしてシステム構築まで。Webの「仕事」がトータルに理解できるプロフェッショナル養成講座』</strong>という、サブタイトルまで含めるとどえらい長いタイトルで、総ページ数344Pの書籍が発売されます。</p>
<p>内容は、Webサイトの企画立案的なことから制作や開発、公開後の話にいたるまで、いまどきのWeb制作において「これぐらいは知っておきたい」といったことを総合的にまとめた教科書とでもいいましょうか。今回は「これを覚えるならこういった本を読むといいかも」といった感じで参考書籍の紹介もしっかり入れてます。</p>
<p>発売されたらまた改めて取り上げたいと思いますが、情報が公開されていたので取り急ぎお知らせまで。インプレスダイレクトやAmazonなどで予約受付中です。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/swpcg.png" alt="標準ウェブ制作完全ガイド" title="swpcg" width="450" height="253" class="alignnone size-full wp-image-2681" /></p>
<dl>
<dt>標準ウェブ制作完全ガイド 〜プランニングからデザイン、そしてシステム構築まで。Webの「仕事」がトータルに理解できるプロフェッショナル養成講座</dt>
<dd>著者: 松岡清一 監修／MdN編集部 編　ページ数: 344p</dd>
</dl>
<p>&rarr; <a href="http://direct.ips.co.jp/book/Template/Goods/go_Bookstempmdn.cfm?GM_ID=6102&#038;CM_ID=004053031&#038;SPM_ID=2&#038;HN_NO=00405&#038;PM_No=&#038;PM_Class=">標準ウェブ制作完全ガイド</a>（impress Direct: 見本・目次あり）<br />
&rarr; <a href="http://www.amazon.co.jp/dp/4844361023/">標準ウェブ制作完全ガイド</a>（Amazon.co.jp）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/mdn-standard-web-production-complete-guide/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/mdn-standard-web-production-complete-guide" />
	</item>
		<item>
		<title>CodaにZen-Codingを入れてみると…</title>
		<link>http://blog.gaspanik.com/coda-with-tea-for-coda</link>
		<comments>http://blog.gaspanik.com/coda-with-tea-for-coda#comments</comments>
		<pubDate>Mon, 01 Feb 2010 08:45:49 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[scribbling]]></category>
		<category><![CDATA[coda]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2631</guid>
		<description><![CDATA[
前回、前々回とTextMateをベースにZen-Codingの話をしたわけですが、一番最初にも書いたようにTextMateは日本語の処理がうまくないので、導入したくても導入できない方も多いかもしれません。
でも、Ze [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://blog.gaspanik.com/textmate-with-zencoding-ext">前回</a>、<a href="http://blog.gaspanik.com/coding-with-textmate-and-zencoding">前々回</a>とTextMateをベースにZen-Codingの話をしたわけですが、一番最初にも書いたようにTextMateは日本語の処理がうまくないので、導入したくても導入できない方も多いかもしれません。</p>
<p>でも、Zen-CodingをTextMate以外で使おうとするとグッと選択肢が減ります。Mac使いの皆さんがお使いのエディタといえば、CodaやskEdit、miあたりが有名どころです。良かった！Codaならコマンドの違いはありますが、その恩恵にあずかれますよ（笑）。</p>
<p>（追記）Zen-CodingのDreamweaver用のMXP（<a href="http://code.google.com/p/zen-coding/downloads/list?q=label:Featured">ダウンロードはこの辺で</a>）でも、以下の操作と同じショートカットで略語や構造の展開はできるみたいです。</p>

<span id="more-2631"></span>
<h3>Codaでやるなら「TEA for Coda」をインストール</h3>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/tea-for-coda.png" alt="tea-for-coda" title="tea-for-coda" width="450" height="253" class="alignnone size-full wp-image-2630" /></p>
<p>前々回のエントリーにも書いておきましたが、現在Coda用のプラグインは「<a href="http://onecrayon.com/tea/coda/">TEA for Coda</a>」という名前で公開されていますので、とりあえず公開されているファイルをダウンロードしてダブルクリックなりでインストールしましょう。</p>

<p>このTEA for Codaは、もともとはテキストエディタのアクション集でZen-Codingも使えるようにしてるって感じなんでしょうか。細かい操作方法についてはマニュアルを読んでいただくとして、TextMate用のZen-Codingとは、ショートカットキーなどが若干違うとこがありますのでその辺のフォローをしてみましょう。</p>

<h3>展開のショートカットは、「Ctrl+,（カンマ）」</h3>
<p>一番最後に用意したデモの冒頭ではわざとらしく略語ベースのスニペットを展開できないフリを入れてしまってますが、CodaでZen-Codingの略語を展開するには「TAB」や「Cmd+E」ではなく「Ctrl+,（カンマ）」を入力します。</p>
<p>たとえば、link要素でCSSの参照を指定したければ、「link:css」と書いて「Ctrl+,」を入力すれば展開されます。それ以外の略語ベースの展開もこのショートカットを使います。「div」を展開すれば「&lt;div&gt;&lt;/div&gt;」が入るってわけです。</p>
<p>前のエントリーで紹介したHTMLの文書構造を書いてそれを展開する方法も同様です。記述さえ合っていればちゃんと展開されますので、<a href="http://onecrayon.com/tea/coda/#docs">オフィシャルサイトのマニュアル</a>（そもそものZen-Codingのも）を参照してください。</p>
<p>では、最後におまけでCodaでやってるとこを。<br />
※フルスクリーンにしてScalingをOFFにすると見やすいですよ</p>
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9123711&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9123711&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/9123711">Coda with TEA for Coda</a> from <a href="http://vimeo.com/cipher">komori, masaaki</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>＃余談ですが、TextMateのそれと違って、Coda版の略語や展開されるコードはプラグインのファイルの中に格納されてます。.pyになってるのでPythonでどうこうしないと書き換えられないかもしれませんね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/coda-with-tea-for-coda/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/coda-with-tea-for-coda" />
	</item>
		<item>
		<title>Zen-Codingでできるあんなことこんなこと</title>
		<link>http://blog.gaspanik.com/textmate-with-zencoding-ext</link>
		<comments>http://blog.gaspanik.com/textmate-with-zencoding-ext#comments</comments>
		<pubDate>Mon, 01 Feb 2010 06:21:41 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2564</guid>
		<description><![CDATA[
先日超速コーディング？としてTextMateにZen-Codingを追加したコーディング手法の概要を紹介しました。で、実はZen-Coding、前回紹介した入力方法だけではありません。
HTMLのストラクチャ的なもの [...]]]></description>
			<content:encoded><![CDATA[
<p>先日<a href="http://blog.gaspanik.com/coding-with-textmate-and-zencoding">超速コーディング？</a>としてTextMateにZen-Codingを追加したコーディング手法の概要を紹介しました。で、実はZen-Coding、前回紹介した入力方法だけではありません。</p>
<p>HTMLのストラクチャ的なものがわかっていれば、特定の記述をして展開すると一気にコードが書けちゃったりします（どちらかと言えば、こっちが本当のZen-Codingなんでしょう）。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/02/textmate-zen-001.png" alt="textmate-with-zen" title="textmate-with-zen" width="450" height="253" class="alignnone size-full wp-image-2563" /></p>
<p>ということで、今回はその特定の記述とやらの話をしてみましょう。ここまで使えるようになってくると実に速い…（はず 笑）。</p>

<span id="more-2564"></span>
<h3>文書構造がわかってれば、1行書いて一気に展開できる</h3>
<p>Zen-Codingは、前回紹介したような登録された略語を使ってHTMLとCSSのコードを展開する使い方だけでなく、特定の記述を使って構造を書き上げて一気に展開することができます。TextMateを使っている方は<a href="http://code.google.com/p/zen-coding/downloads/list">こちらのリスト</a>にある「Zen.Coding-TextMate.v0.5.zip」も忘れずに入れておきましょう。</p>

<p>たとえば、上図の中段下あたりにある</p>
<p><code>div#coding&gt;h1#textmate-with-zen+p.tagline</code></p>
<p>を入力して、「Cmd+E（<a href="http://onecrayon.com/tea/coda/">Coda版</a>とDWのMXP版は、Ctrl+,）」で展開すると下記のコードがどーんと入ります。</p>
<p><code>&lt;div id="coding"&gt;<br />
&nbsp;&lt;h1 id="textmate-with-zen"&gt;&lt;/h1&gt;<br />
&nbsp;&lt;p class="tagline"&gt;&lt;/p&gt;<br />
&lt;/div&gt;</code></p>
<p>この書式を見てすぐ気付く方もいると思いますが、まるでCSSのセレクタを書くかのように、「#」でid属性、「.」でclass属性、「&gt;」で階層、「+」で隣接している要素を繋げられます。つまり、HTMLの文書構造が明確で頭の中で書くことが決まっている場合は、1行で書いて展開した方が圧倒的に速いってわけです。<br />
※idは「Cmd+3」、classは「Cmd+2」のショートカットもある。</p>

<h3>同じ事の繰り返しは「*」、数字を付けるなら「$」</h3>
<p>構造がわかっていればこのように簡単に展開できますが、HTML文書というのは同じ要素の繰り返しというのも結構な確率で登場します。たとえば、ナビゲーションのli要素だったり、定型のdivとhとpの繰り返しだったり。</p>
<p>そんな時は「*繰り返す回数」を付け加えればオッケイ。</p>
<p><code>ul#nav&gt;li*3&gt;a</code></p>
<p>と書いて展開すれば、</p>
<p><code>&lt;ul id="nav"&gt;<br />
&nbsp;&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</code></p>
<p>こんな感じでコードが展開されます。TABキー（Shift+TAB）で、それぞれのhref属性とa要素の中身を移動できるので入力もスムーズィー。楽勝です（笑）。</p>
<p>まだあります。時には、連続する同じ要素にidやclass属性を割り当てて、それぞれの属性値に連番を付与しておきたい、といったことも考えられます。そんな時は変数的な意味の「$」を付ければ、自動的に番号が振られます。素敵ですね。</p>
<p>もろもろを組み合わせるとこんな感じになります。</p>
<p><code>div#box$*3&gt;h3+p*2</code></p>
<p>と書いて展開すれば、</p>
<p><code>&lt;div id="box1"&gt;<br />
&nbsp;&lt;h3&gt;&lt;/h3&gt;<br />
&nbsp;&lt;p&gt;&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div id="box2"&gt;<br />
&nbsp;&lt;h3&gt;&lt;/h3&gt;<br />
&nbsp;&lt;p&gt;&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div id="box3"&gt;<br />
&nbsp;&lt;h3&gt;&lt;/h3&gt;<br />
&nbsp;&lt;p&gt;&lt;/p&gt;<br />
&lt;/div&gt;<br />
</code></p>
<p>ほーら、使いたくなってきたでしょー（笑）。</p>
<p>というわけで、前回エントリーの続きということで、単純な略語ベースの展開だけではなくZen-Codingをさらに使いこなすためのいくつかの書式の紹介でした。ほかの記述については<a href="http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn">こちら</a>で確認してみてください。</p>
<p>※一応今回もまた簡単なデモをアップしておきました（どう書こうかなって思いながらなので、なかなか指が進んでませんが 笑）。</p>

<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9120994&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9120994&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/9120994">Zen-Coding Ext.</a> from <a href="http://vimeo.com/cipher">komori, masaaki</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/textmate-with-zencoding-ext/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/textmate-with-zencoding-ext" />
	</item>
		<item>
		<title>TextMate+Zen-Codingで超速コーディング？</title>
		<link>http://blog.gaspanik.com/coding-with-textmate-and-zencoding</link>
		<comments>http://blog.gaspanik.com/coding-with-textmate-and-zencoding#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:20:09 +0000</pubDate>
		<dc:creator>[cipher]</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[zen]]></category>
		<guid isPermaLink="false">http://blog.gaspanik.com/?p=2465</guid>
		<description><![CDATA[
先日の100の質問の答えにもちょっと書いたのですが、世の中には「Zen-Coding」なるものが存在しています。ちょっと前にWebデザイン関係の皆さんのTwitterでも「すげえ」とかってビデオが流れてましたけど、実は [...]]]></description>
			<content:encoded><![CDATA[
<p>先日の100の質問の答えにもちょっと書いたのですが、世の中には「<a href="http://code.google.com/p/zen-coding/">Zen-Coding</a>」なるものが存在しています。ちょっと前にWebデザイン関係の皆さんのTwitterでも「すげえ」とかってビデオが流れてましたけど、実はこれ相当前からあるんですよ（笑）。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-001.png" alt="zencoding-001" title="zencoding-001" width="450" height="253" class="alignnone size-full wp-image-2512" /></p>
<p>Zen-CodingとはもともとTextMateとNetBeans用に書かれたプラグインのことです。HTMLとCSSのコーディング作業をより高速におこなうための機能追加をしてくれるものですね。前述の2つ以外に、AptanaやCoda、Espressoといったエディタ、最近ではDreamweaverのMXPファイルもダウンロードできるようになってます（*1）。</p>
<p>というわけで、今回はボクが普段使っている「<a href="http://macromates.com/">TextMate</a>」とZen-Codingの組み合わせでコーディングがどう変わるのかをご紹介しようかと。タイトルに超速とか書いてますけど、まぁどうでしょうかね。</p>

<span id="more-2465"></span>
<h3>TextMateって何よ</h3>
<p>Zen-Codingの話の前に「TextMateがなんぞや」ってところから話しておきますか。TextMateは、欧米のプログラマさんやエンジニアの方の間では超有名なというか大好きな方が多いテキストエディタです（よくビデオのデモなんかでも登場します）。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-002.png" alt="zencoding-002" title="zencoding-002" width="450" height="253" class="alignnone size-full wp-image-2513" /></p>
<p>単純に入力補完ができるぐらいならDreamweaverや他のエディタでも十分なわけですが、このTextMateはあらかじめ登録された略語（といっても頭文字的な）を入力してタブキーで展開することで、必要なコードを一瞬で書ける素敵なエディタなんです。要は最初からマクロだスニペットだが入ってると。もちろん自分の登録したコードに書き換えることもできます。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-003.png" alt="zencoding-003" title="zencoding-003" width="450" height="253" class="alignnone size-full wp-image-2514" /></p>
<p>もちろんHTMLとCSSだけではなく、PHP、JavaScript、Ruby、Pythonなどをはじめ数え切れないほどの言語に対応してます。それぞれの言語毎にバンドル（プラグインみたいなもの）が公開されてるので、新規で追加したりアップデートすればどんどん拡張していくことができるのも特徴のひとつでしょうか。ちなみにこの方法を模したWindowsのエディタに「<a href="http://intype.info/home/index.php">InType</a>」ってのがあります。</p>
<p>ただ残念なことにこのTextMate、現在のバージョンでは日本語の取り扱いが下手でして…（*2）。それをどうにかするには、SafariStandなどでも有名なhetima.comさんで公開されているプラグイン「<a href="http://hetima.com/textmate/index.html">CJK-Input.tmplugin</a>」を導入してどうにか…なんですね。実際、骨組みだけ作る段階ではあんまり関係ないんですけどね、日本語。</p>
<p>とまぁ、そんなエディタです。</p>

<h3>TextMateの基本的な使い方</h3>
<p>このTextMateを使ってコーディングするとこういう風になります。</p>
<p>例えば、「doctype」と入力してTABキーをポチッと、</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-004.png" alt="zencoding-004" title="zencoding-004" width="450" height="253" class="alignnone size-full wp-image-2515" /></p>
<p>こんな感じで展開されます。ここまではDreamweaverなんかでも見慣れた感じではないでしょうか。で、このリストから目当てのものを選択すると、</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-005.png" alt="zencoding-005" title="zencoding-005" width="450" height="253" class="alignnone size-full wp-image-2516" /></p>
<p>こうなっちゃうんですね。</p>
<p>他にも、h1 &rarr; TABキーで「&lt;h1 id=&#8221;"&gt;&lt;/h1&gt;」が入力され、カーソルは開始タグと終了タグの間に移動します。その状態で文字列をちょちょっと入力すると自動的にid属性にも同じ内容が入っていくと。複数の属性間の移動もTABキーです。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-006.png" alt="zencoding-006" title="zencoding-006" width="450" height="253" class="alignnone size-full wp-image-2517" /></p>
<p>このような略語ベースの入力以外に、選択範囲を作って後から任意の要素でラップしたり、終了タグやコメントを挿入したりはショートカットでできます。できることを挙げ始めればキリがないぐらい。もちろんこれがHTMLやCSSだけじゃなくて、PHPやJavaScriptでも同様に動作します（*3）。</p>
<p>特定の要素を入れることでそれに適用できる属性が補完され、その中から選択して入力して〜みたいな流れよりは、おそらく数段早いかなぁと。Dreamweaverのスニペットをショートカットなどで反映させるのともちょっと違いますね。</p>
<p>そんなわけでボクは辞書登録（*4）もしてないし使い回しできるコードみたいなのも何も用意してません（作るモノは全部違うしね）。TextMateさまさまです（笑）。</p>

<h3>さらにZen-Codingを追加すると…</h3>
<p>TextMateにはもともとHTMLとCSSのバンドルがありますが、Zen-Codingはさらにそれらを拡張したものです。冒頭でも書いたようにプラグインの形で公開されているので、ファイルをダウンロードしてダブルクリックすれば自動的にインストールされます（TextMateでもCodaでも）。</p>
<p>では、拡張されてる例を。「html:4t」を展開すると、</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-007.png" alt="zencoding-007" title="zencoding-007" width="450" height="253" class="alignnone size-full wp-image-2518" /></p>
<p>こんな感じ。HTML 4.01のTransitionalの文書型からはじまる一連のコードが入ります。これを「html:5」とするとHTML 5のコードがどーんと入力されます（※軽くHTML5のコードも入ってる）。</p>
<p>この「略語:ほげほげ」の記述が良い働きをします。TextMateの標準バンドルでは「html」だけだと開始タグと終了タグしか入りません。「:ほげほげ」は言ってしまえばオプション指定。例えば「link:css」だとスタイルシート、「link:rss」だとRSSのコードが自動的に展開されます。</p>
<p><img src="http://blog.gaspanik.com/wp-content/uploads/2010/01/zencoding-008.png" alt="zencoding-008" title="zencoding-008" width="450" height="253" class="alignnone size-full wp-image-2519" /></p>
<p>同じ要領でCSSのスタイル指定もちゃっちゃっと書いていけちゃいます。</p>
<p>他にも標準のバンドルに足りない部分とかも補足されて至れり尽くせり。もう素敵すぎザマス。こういうものを公開してくださって誠にありがとうございます（多謝）。</p>
<p>と、こればっかりは使ってみるか目の前で実演でもされない限り、いまいちわかりにくいんですよね…。ってことで超簡単でのんびりですが4分弱のビデオを撮ってみましたのでそれでもご覧ください（コントローラーで大きくした方がわかりやすいかな）。</p>

<object width="400" height="300"><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=00adef&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=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300" /></embed></object>
<p><a href="http://vimeo.com/9067540">TextMate-and-ZenCoding</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>最後に。TextMateはOS Xのみですし有償です（トライアルはあり）。Windowsの皆さんはZen-Codingは使えないけどTextMateと同じスタイルで書けるInTypeなど（もう一個あるんだけど失念…）を使ってみると良いかも。</p>
<p>＃InTypeは今月発売のWeb creatorsにちろっと書いておきました。</p>
<hr />
<p>*1: Codaのプラグインは現在「<a href="http://onecrayon.com/tea/coda/">TEA for Coda</a>」としてメンテされてるのかな？、フルサポートとされてますがTextMateで使うのとは操作が異なります。MXPの方は一部サポートってことですが、<del datetime="2010-02-01T11:39:08+00:00">正直なところあんまり…（笑）</del>略語から展開する、<a href="http://blog.gaspanik.com/textmate-with-zencoding-ext">構造を展開する</a>などの機能は実装されているようです（うちのCS3ではもっさり動いてます 笑）</p>
<p>*2: 次期バージョンで2バイト文字にも対応するといった感じでしたが、残念ながらいつリリースされるかわかりません…</p>
<p>*3: PHPはSmarty、JavaScriptはjQueryやPrototype、YUIなど用のバンドルも公開されています。バンドルの追加やアップデートはSubversionでやると簡単です</p>
<p>*4: IMEへの単語登録とかは文字数制限とかがあるのでコードをまるっと全部入れることができなかったりします。OS Xな方は「<a href="http://www.smileonmymac.com/TextExpander/">TextExpander</a>（日本語化済）」というユーティリティを使えば、任意の略語を展開してカーソルを移動するといったことが可能です。<a href="http://www.smileonmymac.com/TextExpander/snippets.html">オフィシャルで公開されているHTMLやCSSのスニペットファイル</a>もあるので、これをベースに改良を加えればTextMateとZen-Codingライクなコーディングが可能かな？、たぶん</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaspanik.com/coding-with-textmate-and-zencoding/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gaspanik.com/coding-with-textmate-and-zencoding" />
	</item>
	</channel>
</rss>
