<?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>Yahoo &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/yahoo/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Tue, 24 Dec 2013 01:33:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>&#034;YQL&#034; &#8211; Alphabetical Advent Calendar 2013</title>
		<link>https://blog.mach3.jp/2013/12/24/jaac2013-y-yql.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 24 Dec 2013 01:33:27 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Advent Calendar 2013]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[YQL]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=3791</guid>

					<description><![CDATA[&#8220;Y&#8221; は YQL の &#8220;Y&#8221;。 YQL (Yahoo Query Language) YQL（Yahoo Query Language） は Yahoo が提供する開発者 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>&#8220;Y&#8221; は YQL の &#8220;Y&#8221;。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-wXGTXbO5yNs/UqR4nPMXEdI/AAAAAAAACYg/yIffyPI1E1k/s400/ac2013-y.png" alt="Y"/></figure>



<p></p>



<span id="more-3791"></span>



<h2 class="wp-block-heading">YQL (Yahoo Query Language)</h2>



<p><a href="http://developer.yahoo.com/yql/">YQL（Yahoo Query Language）</a> は Yahoo が提供する開発者向けのAPIで、 SQLライクなクエリを送ると様々な情報を取得する事が出来るサービスです。 受け取るデータは XML か JSON かを選択可能で、 JSONPにも対応しているのでクライアントJavaScriptからも簡単に利用できます。</p>



<p>例えば場所情報や地域の天気情報を取得したり、 Flickr から写真を検索したり、Webページのフィードを取得したりする事等が出来ます。</p>



<h3 class="wp-block-heading">利用方法</h3>



<p>パブリックAPIのエンドポイントは <strong>http://query.yahooapis.com/v1/public/yql</strong> です。 パラメータは、形式を指定する <strong>format</strong> 、クエリを送る <strong>q</strong>、JSONPのコールバック用の <strong>callback</strong> を渡す事ができます。 次のようなリクエストを送る事になりますね。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">http:<span class="hljs-comment">//query.yahooapis.com/v1/public/yql?format=json&amp;q=&#91;YQLクエリ]&amp;callback=&#91;コールバック関数]</span>
</code></span></pre>


<p>YQL の書き方については、公式の Yahoo Developper Network でテスト出来るコンソールを用意しているので、 どんな書式でどんな情報が得られるかを試してみると良いですね。</p>



<ul class="wp-block-list">
<li><a href="http://developer.yahoo.com/yql/console/">YQL Console: show tables</a></li>
</ul>



<p>テーブルによっては別途アプリケーションIDが必要です。 また、Flickr 関連のテーブルは flickr で登録したアプリケーションIDが必要な様です。</p>



<h3 class="wp-block-heading">位置情報から天気情報を取得してみる</h3>



<p>天気情報は <strong>weather.forecast</strong> から取得できますが、位置情報の指定に <strong>woeid</strong> という者が必要になります。 <a href="http://developer.yahoo.com/geo/geoplanet/guide/concepts.html">woeid</a> というのは &#8220;Where On Earth Identifier&#8221; の事で、 全世界の地域ごとに ID を振って管理をしています。</p>



<p>woeid は、<strong>geo.places</strong> テーブルから都市名で引く事が出来ます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">SELECT woeid FROM geo.places WHERE text = <span class="hljs-string">'神奈川県横浜市'</span>
</code></span></pre>


<p>そこで得られた woeid を使って、天気情報を引きます。ちなみに神奈川県横浜市の woeid は 1118550 です。</p>


<pre class="wp-block-code"><span><code class="hljs">SELECT * FROM weather.forecast WHERE woeid = 1118550
</code></span></pre>


<p>一通りの処理を jQuery で書いてみましょう。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> rest = <span class="hljs-string">"http://query.yahooapis.com/v1/public/yql"</span>;

$.ajax({
    <span class="hljs-attr">dataType</span>: <span class="hljs-string">"jsonp"</span>,
    <span class="hljs-attr">url</span>: rest,
    <span class="hljs-attr">data</span>: {
        <span class="hljs-attr">format</span>: <span class="hljs-string">"json"</span>,
        <span class="hljs-attr">q</span>: <span class="hljs-string">"SELECT woeid FROM geo.places WHERE text = '神奈川県横浜市'"</span>
    }
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>)</span>{
    <span class="hljs-keyword">var</span> woeid = data.query.results.place.woeid;
    <span class="hljs-keyword">return</span> $.ajax({
        <span class="hljs-attr">dataType</span>: <span class="hljs-string">"jsonp"</span>,
        <span class="hljs-attr">url</span>: rest,
        <span class="hljs-attr">data</span>: {
            <span class="hljs-attr">format</span>: <span class="hljs-string">"json"</span>,
            <span class="hljs-attr">q</span>: <span class="hljs-string">"SELECT * FROM weather.forecast WHERE woeid = "</span> + woeid
        }
    });
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>)</span>{
    $(<span class="hljs-string">"#widget-weather"</span>).html(data.query.results.channel.item.description);
});
</code></span></pre>


<p>結果のデータを辿って得られる <strong>description</strong> には出力用のHTMLが格納されているので、 それをそのままコンテナに表示しています。 ただ、内容は全て英語で温度の単位も華氏なので、実際に使う時は翻訳や換算をしてあげないといけません。</p>



<h3 class="wp-block-heading">RSSフィードを利用する</h3>



<p>YQL の <strong>feed</strong> テーブルでは、Web上にあるRSSフィードをJSONに変換して返す事が出来ます。 試しにJSONPで Mach3.laBlog のフィードを取得してみようと思います。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> query = <span class="hljs-string">"SELECT * FROM feed WHERE url = 'https://blog.mach3.jp/feed'"</span>;
<span class="hljs-keyword">var</span> rest = <span class="hljs-string">"http://query.yahooapis.com/v1/public/yql"</span>;

$.ajax({
    <span class="hljs-attr">dataType</span>: <span class="hljs-string">"jsonp"</span>,
    <span class="hljs-attr">url</span>: rest,
    <span class="hljs-attr">data</span>: { <span class="hljs-attr">format</span>: <span class="hljs-string">"json"</span>, <span class="hljs-attr">q</span>: query }
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>)</span>{
    <span class="hljs-built_in">console</span>.log(data); <span class="hljs-comment">// フィードのデータ出力</span>
});
</code></span></pre>


<p>自サイトのフィードを読む分には特に必要ないですが、クロスドメインでRSSを引っ張りたい時や、 サービスのAPIがXMLしか対応していない場合などに使えます。 勿論、利用規約はそのソースを提供しているコンテンツプロバイダの物に従う事になるので、 それに則って正しく利用しましょう。</p>



<h2 class="wp-block-heading">爆速YQL</h2>



<p>Yahoo! Japan デベロッパーネットワークのブログで <strong>「爆速YQL」</strong> なる物が紹介されていました。 これは何かというと、YQLの結果取得と出力をブログパーツのような感覚で出来てしまうコンポーネントです。</p>



<ul class="wp-block-list">
<li><a href="http://techblog.yahoo.co.jp/programming/bakusoku-yql/">XMLのWebAPIを爆速で使いこなせるフレームワーク &#8211; Yahoo! JAPAN Tech Blog</a></li>
</ul>



<p>上で挙げたフィードの取得を試してみましょう。なるほどこれは爆速です。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"http://i.yimg.jp/images/yjdn/js/bakusoku-yql-v1-min.js"</span>
    <span class="hljs-attr">data-yql</span>=<span class="hljs-string">"SELECT * FROM feed WHERE url='https://blog.mach3.jp/feed'"</span>&gt;</span><span class="handlebars"><span class="xml">
    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    </span><span class="hljs-template-tag">{{#<span class="hljs-name">query</span>.results.item}}</span><span class="xml">
        <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"</span></span></span><span class="hljs-template-variable">{{link}}</span><span class="xml"><span class="hljs-tag"><span class="hljs-string">"</span>&gt;</span></span><span class="hljs-template-variable">{{title}}</span><span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    </span><span class="hljs-template-tag">{{/<span class="hljs-name">query</span>.results.item}}</span><span class="xml">
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</span></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>script 要素の <strong>data-yql</strong> 属性に YQL のクエリを入力すると、 要素内のビューを使ってコンテンツを表示します。 ビュー部分には <a href="http://mustache.github.io/">Mustache</a> を採用しており、ループや条件分岐等もする事ができます。</p>



<p>こういう形でのウィジェットの公開も良いですね。</p>



<h2 class="wp-block-heading">参考資料</h2>



<ul class="wp-block-list">
<li><a href="http://developer.yahoo.com/yql/">Yahoo! Query Language &#8211; YDN</a></li>



<li><a href="http://developer.yahoo.com/yql/console/">YQL Console: show tables</a></li>



<li><a href="http://techblog.yahoo.co.jp/programming/bakusoku-yql/">XMLのWebAPIを爆速で使いこなせるフレームワーク &#8211; Yahoo! JAPAN Tech Blog</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>GoogleスプレッドシートとYahooPipesで簡易CMSを作る</title>
		<link>https://blog.mach3.jp/2011/02/14/cms-with-yahoopipes.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Mon, 14 Feb 2011 04:41:31 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleDocs]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jsdoit]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Yahoo!Pipes]]></category>
		<category><![CDATA[Yokohama.js]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1573</guid>

					<description><![CDATA[2/13に執り行なわれたYokohama.jsでしゃべらせて頂いたお題です。 資料等はjsdo.itにて公開していますが、ブログにも軽くまとめておきます。 ざっくりとした話はスライドで 要するに、Googleスプレッドシ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>2/13に執り行なわれたYokohama.jsでしゃべらせて頂いたお題です。<br />
資料等はjsdo.itにて公開していますが、ブログにも軽くまとめておきます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/_JJkNs5Ixl70/TVi0yNumdhI/AAAAAAAABLg/81TMGlPfqC0/201102141348.png" alt="GoogleスプレッドシートとYahooPipesで簡易CMSを作る "/></figure>



<p></p>



<span id="more-1573"></span>



<h2 class="wp-block-heading">ざっくりとした話はスライドで</h2>



<p><iframe src="https://docs.google.com/present/embed?id=dj4svm6_66hckbkbdc&amp;interval=5&amp;size=m" frameborder="0" width="555" height="451"></iframe></p>



<p>要するに、Googleスプレッドシートで作ったデータを元に、<br />
更新管理する仕組みをYahoo!Pipesを経由してやってみよう！という試みです。</p>



<h3 class="wp-block-heading">メリット</h3>



<ol class="wp-block-list">
<li>CMSはわからないけどExcelはわかるよ！という方が幸せになる</li>



<li>導入コスト/学習コストが安くて幸せ</li>



<li>表計算UIの方が更新しやすいコンテンツで幸せになれる</li>
</ol>



<p>特に、3番目。<br />
tableを使って表現したい物などはWordpressやMovableTypeでは更新しづらいですね。<br />
それならGoogleスプレッドシートのUIを利用して…と思った次第です。</p>



<h3 class="wp-block-heading">デメリット</h3>



<ol class="wp-block-list">
<li>アウトプットがちょっと不安定</li>



<li>リアルタイム性に欠ける</li>
</ol>



<p>恐らくPipes内のキャッシュの問題だと思うのですが、<br />
外部リソースを更新してもすぐに反映されるわけではなく、数分のタイムラグがあるようです。</p>



<h2 class="wp-block-heading">デモ＆ソースコード</h2>



<p><a href="http://jsdo.it/mach3/k27L">GoogleDocs + Yahoo!Pipes &#8211; jsdo.it &#8211; Share JavaScript, HTML5 and CSS</a></p>



<p>かいつまんで説明など。<br />
基本的にJSONPでYahooPipesの出力をとってきてるだけです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$.ajax({
    <span class="hljs-attr">url</span> : pipeUrl,
    <span class="hljs-attr">dataType</span> : <span class="hljs-string">"jsonp"</span>,
    <span class="hljs-attr">jsonp</span> : <span class="hljs-string">"_callback"</span>, <span class="hljs-comment">// "callback"じゃないよ！</span>
    <span class="hljs-attr">success</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> data </span>)</span>{ ... }
});
</code></span></pre>


<p>注意点としては、JSONP用のコールバックのパラメータが、<br />
jQueryデフォルトの「callback」ではなく、「_callback」だという点。<br />
successパラメータの関数の中身で、受け取ったデータを元にHTMLを生成します。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// アイテム数が0だった場合の処理</span>
<span class="hljs-keyword">if</span>( !data.count ){
    $(<span class="hljs-string">"&lt;p&gt;"</span>).addClass(<span class="hljs-string">"caution"</span>)
    .text(<span class="hljs-string">"おや？Yahoo!Pipesさんの機嫌が悪いようです…"</span>)
    .hide().appendTo( container ).fadeIn();
    <span class="hljs-keyword">return</span>;
}
</code></span></pre>


<h2 class="wp-block-heading">
  まとめ<br />
</h2>



<p>
  スライドにもありますが、実際のところサーバサイドで処理すべき場面が多いと思います。<br /> JavaScriptで書いたのは「Yokohama.js」のお題だったので。
</p>



<p>
  Pipesさんの機嫌に左右されまくった実験でしたが、<br /> この不安定さは書き方で改善出来るのだろうか…などと思案中です。
</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>
  （リソースまとめ）
</p>



<ul class="wp-block-list">
<li><br />    <a href="https://docs.google.com/present/view?id=dj4svm6_66hckbkbdc">プレゼンテーションスライド</a><br />  </li>



<li><br />    <a href="https://spreadsheets.google.com/ccc?key=0Ark6jIWYcmkLdE4wczRualZYOXR2T29lUHFtN283R2c&amp;hl=ja&amp;authkey=CO6o1NgJ#gid=0">スプレッドシート</a><br />  </li>



<li><br />    <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=5316f3735d5dc707bf07a090ecf3a9b6">パイプ</a><br />  </li>



<li><br />    <a href="http://jsdo.it/mach3/k27L">DEMO(jsdo.it)</a><br />  </li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>2010年に出会った愛すべきリソース達*11</title>
		<link>https://blog.mach3.jp/2010/12/29/lovely-resources-2010.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Wed, 29 Dec 2010 08:46:00 +0000</pubDate>
				<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Yahoo]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1284</guid>

					<description><![CDATA[2010年も残りわずか。CS5やらHTML5やらiナントカやら忙しい1年でしたが、 せっかくなので今年出会った素晴らしいリソースを振り返ってみます。 @anywhere Welcome to @Anywhere &#124; de [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>2010年も残りわずか。CS5やらHTML5やらiナントカやら忙しい1年でしたが、<br />
せっかくなので今年出会った素晴らしいリソースを振り返ってみます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TRrzte8LnJI/AAAAAAAABH4/5TZJ_Ar76fI/201012291739.png" alt="Great Resources 2010"/></figure>



<p></p>



<span id="more-1284"></span>



<h2 class="wp-block-heading">@anywhere</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TI-FvKGTMFI/AAAAAAAABB4/DWq3p5mDXQM/201009142322.png" alt="@anywhere"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://dev.twitter.com/anywhere">Welcome to @Anywhere | dev.twitter.com</a></h3>



<p>Twitterの機能がどのサイトでも活用出来るようになるJavaScriptリソース。<br />
認証からタイムライン読み込み、パーツのレンダリングまで。<br />
連携サービスを組むならおさえておきたい。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/04/twitter-anywhere.html">ブログで@anywhereを試してみた！ ～ どこでもTwitter | Mach3.laBlog</a></li>



<li><a href="/2010/09/auth-anywhere.html">@anywhereで認証してみる備忘録 | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">jsLint</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TAuiwlC67MI/AAAAAAAAA7k/f0V7_v6GCEM/s800/201006062143.png" alt="jsLint"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://www.jslint.com/">JSLint, The JavaScript Code Quality Tool</a></h3>



<p>JavaScriptをストリクトに書く為のチェックツール。<br />
前はWSH版がダウンロード出来たんですけど見つからなくなってますね。<br />
<a href="https://github.com/douglascrockford/JSLint">Github</a>のを使ってなんやかんやするんでしょうか。こんど試してみよう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/06/jslint.html">JSLintでストリクトなJavaScriptを書く | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">LESS</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TC9OtbZAqRI/AAAAAAAAA9c/UGfbYnLsdWc/s800/201007032351.png" alt="LESS"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://lesscss.org/">LESS &#8211; Leaner CSS</a></h3>



<p>変数に代入したり、ネストしたり、ミックスインしたり…<br />
CSSコーディングが素晴らしくスピードアップするCSS開発キット。<br />
エディタからも簡単に呼び出せるので重宝しています。<br />
似たようなプロジェクトに「<a href="http://sass-lang.com/">Sass</a>」というのもあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/07/less-on-ruby-windows.html">ゼロから導入する、Ruby LESS for Windows ～素晴らしいCSSソリューション | Mach3.laBlog</a></li>



<li><a href="/2010/08/css3-snippet-for-less.html">CSS3対応の為のLESSスニペットメモ | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">jsDoc Toolkit</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TExlCdWAOSI/AAAAAAAAA_Y/oT60gg9HcrM/s800/201007260122.png" alt="jsDoc Toolkit"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://code.google.com/p/jsdoc-toolkit/">jsdoc-toolkit &#8211; Project Hosting on Google Code</a></h3>



<p>JavaScript版のドキュメント生成ツール。<br />
こちらもエディタから使うと大変便利。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/07/jsdoctoolkit-from-notepad.html">エディタ（Notepad++）からJSDoc Toolkitを使ってみる | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">Modernizr</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TEb6RR1X0LI/AAAAAAAAA-4/_5uGmJsiuwg/s800/201007212239.png" alt="Modernizr"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://www.modernizr.com/">Modernizr</a></h3>



<p>HTML5の新機能等が使用可能かどうかを判別してくれるライブラリ。<br />
判別の結果はhtml要素のクラスとして出力してくれる他、<br />
メンバを直接参照する事でも結果を知ることが出来ます。</p>



<p>便利なスクリプトなのですが、最近<a href="http://headjs.com/">Head.js</a>に持って行かれた感が…<br />
こちらは未検証なのでまた後ほどレポートを。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/07/modernizr-js.html">「Modernizr」 モダンなクロスブラウザCSSの為の支援スクリプト | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">Raphael / gRaphael</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TDwr1qEithI/AAAAAAAAA-Q/6t9diGuL98g/s800/201007131656.png" alt="gRaphael"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://g.raphaeljs.com/">gRaphaël—Charting JavaScript Library</a></h3>



<p><a href="http://raphaeljs.com/index.html">Raphael</a>は、ベクターグラフィックを簡単に扱うためのJavaScriptライブラリ。<br />
gRaphaelはそれをグラフ描画用に拡張する為のプラグインです。<br />
投稿した時はまだドキュメントが不備でしたが…今見に行きましたがまだありませんでした！</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/07/graphael.html">実験室: gRaphaëlでインタラクティブなグラフを描いてみる | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">IE9.js</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TJLUD970GRI/AAAAAAAABCU/oxPr4vt8h9U/201009171134.png" alt="IE9.js"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://code.google.com/p/ie7-js/">ie7-js &#8211; Project Hosting on Google Code</a></h3>



<p>プロジェクト名としては「IE7.js」ですが、<br />
その中に含まれるIE8.js、IE9.jsやie7-squish.jsが結構便利。<br />
JavaScriptが動く事が前提になりますが、擬似クラスやHTML5の新要素の対応もしてくれます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/09/ie9js-clearfix.html">IE9.jsで実現するシンプルなclearfixとその他の恩恵 | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">YUI Compressor</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TMmzBvs9ayI/AAAAAAAABEs/ZY7JUy71f0w/201010290014.png" alt="YUI Compressor"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a></h3>



<p>Yahoo!がおくる、JavaScriptやCSSを圧縮するツール。<br />
Webページのパフォーマンス向上を図るのに欠かせません。<br />
ご一緒に<a href="http://developer.yahoo.com/yslow/">YSlow</a>（Firebugプラグイン）も是非。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/10/yui-compressor-bat.html">YUI Compressorをお手軽にするバッチファイルを書いてみる | Mach3.laBlog</a></li>



<li><a href="/2010/11/quick-tip-for-site-performance.html">今すぐ出来る、ちょこざいなサイトパフォーマンスアップ | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">mustache</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TKnnq0vc63I/AAAAAAAABDE/OOIY9hnndPo/201010042339.png" alt="mustache"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://mustache.github.com/">{{ mustache }}</a></h3>



<p>マルチランゲージテンプレートエンジン！（言い切った！）<br />
様々な言語に対応する、シンプルで使いやすいテンプレートエンジンです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/10/mustache-template-engine.html">どこでも活躍できるテンプレートエンジン「Mustache」 | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">Sammy.js</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TJjDmzzS06I/AAAAAAAABCw/rriMLBnT_6c/201009212338.png" alt="Sammy.js"/></figure>



<p></p>



<h3 class="wp-block-heading"><a href="http://code.quirkey.com/sammy/">Sammy.js</a></h3>



<p>Ajaxコンテンツのセッションを操る為のjQueryプラグイン。<br />
要するに、location.hashによるルーティングをウマイこと処理してくれるスクリプトです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/09/sammy-js.html">Sammy.jsでAjaxコンテンツのセッションを操る | Mach3.laBlog</a></li>
</ul>
</blockquote>



<h2 class="wp-block-heading">jQueryMobile</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TOIVnTG4iGI/AAAAAAAABFc/mpVknEjCqqU/201011161309.png" alt="jQueryMobile"/></figure>



<p></p>



<ul class="wp-block-list">
<li><a href="http://jquerymobile.com/">jQuery Mobile | jQuery Mobile</a></li>
</ul>



<p>jQueryの作者が送る、スマートフォン向けのjQueryUIのようなもの。<br />
ルールに従ったマークアップをするだけで、各要素をそれっぽくレンダリングしてくれます。<br />
1月に正式版がリリースされる予定。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a href="/2010/11/jquery-mobile-for-beginner.html">はじめてのjQueryMobile | Mach3.laBlog</a></li>
</ul>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>結構色々ありましたね、2010年。<br />
来年もまた素晴らしい技術に出会えますように。</p>



<p>皆様よいお年を！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>今すぐ出来る、ちょこざいなサイトパフォーマンスアップ</title>
		<link>https://blog.mach3.jp/2010/11/30/quick-tip-for-site-performance.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 30 Nov 2010 01:00:50 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Firebugs]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Yahoo]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1187</guid>

					<description><![CDATA[一言にサイトパフォーマンスアップと言っても、どこまで手をつけるか悩みどころ。 今日のお話は、出来るだけ忘れずにやっておきたいごくごく簡単なチューニングです。 フロントエンドで出来ること CSSは一番はじめにロードする ス [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>一言にサイトパフォーマンスアップと言っても、どこまで手をつけるか悩みどころ。<br />
今日のお話は、出来るだけ忘れずにやっておきたいごくごく簡単なチューニングです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TO9wt1cjx2I/AAAAAAAABGQ/rmZ_bSXzSQc/201011242016.png" alt="今すぐ出来るサイトパフォーマンスアップ"/></figure>



<p></p>



<span id="more-1187"></span>



<h2 class="wp-block-heading">フロントエンドで出来ること</h2>



<h3 class="wp-block-heading">CSSは一番はじめにロードする</h3>



<p>スタイルシートに含まれる背景画像のロードと、<br />
ページのレンダリングを出来るだけ早くおこなう為です。</p>



<h3 class="wp-block-heading">JavaScriptは一番最後にロードする</h3>



<p>JavaScriptは&lt;/body&gt;の直前あたりでロードするのがパフォーマンスが上がる様子。<br />
ただし、レンダリング前に処理したいケースもあるので、可能な限りで。</p>



<h3 class="wp-block-heading">CSS/JavaScriptは圧縮しよう</h3>



<p>ツールを使って、CSS/JavaScriptファイルを最小化してあげましょう。<br />
YahooライブラリにあるYUICompressorは、CSS/JS両方を圧縮出来るのと、<br />
ついでに軽くバリデートしてくれるのも助かりますね。</p>



<p>使用例など。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">java</span> <span class="hljs-selector-tag">-jar</span> <span class="hljs-selector-tag">yuicompressor-2</span><span class="hljs-selector-class">.4</span><span class="hljs-selector-class">.2</span><span class="hljs-selector-class">.jar</span> <span class="hljs-selector-tag">-v</span> <span class="hljs-selector-tag">--charset</span> <span class="hljs-selector-tag">UTF-8</span> <span class="hljs-selector-tag">-o</span> <span class="hljs-selector-tag">hoge</span><span class="hljs-selector-class">.min</span><span class="hljs-selector-class">.js</span> <span class="hljs-selector-tag">hoge</span><span class="hljs-selector-class">.js</span>
</code></span></pre>


<ul class="wp-block-list">
<li><a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> </li>



<li><a href="/2010/10/yui-compressor-bat.html">YUI Compressorをお手軽にするバッチファイルを書いてみる</a></li>
</ul>



<p>また、導入が面倒な場合はオンラインツールも公開されています。</p>



<ul class="wp-block-list">
<li><a href="http://www.minifycss.com/">Minify CSS &#8211; Compress CSS Code</a></li>



<li><a href="http://www.minifyjs.com/">Free Javascript Compression and Minify Javascript Resources &#8211; Minify JS</a></li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TO9wufBKpsI/AAAAAAAABGY/RcG_VhLapaU/201011242001.png" alt="Minify CSS"/></figure>



<p></p>



<h3 class="wp-block-heading">HTTPアクセスを減らす</h3>



<p>大量のJavaScriptやCSSをロードしているページはご注意を。<br />
可能な限りファイルを纏めて、HTTPアクセスを減らしてやると良いようです。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"hoge.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"fuga.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"foo.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"bar.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>

<span class="hljs-comment">&lt;!-- ↓ ファイルをまとめて圧縮 --&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"mylibraries.min.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>また、大量の画像を部品として使用する場合は、<br />
CSS Spriteなどを利用してまとめてあげると良いですね。</p>



<h3 class="wp-block-heading">CSSの@importを避ける</h3>



<p>@importによるインポートは、<link>に比べてパフォーマンスが落ちるそうなのでご注意を。<br />
むしろ、ひとつのCSSファイルにまとめてあげて圧縮するのがベストですね。<br />
それが面倒だと感じる場合は、LESSやSassのような開発ツールの導入も検討してみましょう。</p>



<ul class="wp-block-list">
<li><a href="http://lesscss.org/">LESS &#8211; Leaner CSS</a></li>



<li><a href="http://sass-lang.com/">Sass &#8211; Syntactically Awesome Stylesheets</a></li>
</ul>



<h3 class="wp-block-heading">DNSルックアップを減らす</h3>



<p>広告やGoogleAnalytics等で致し方ない場合の方が多いですが、<br />
出来るだけ別ドメインからのファイルインポートは避け、<br />
DNSルックアップを減らすのが吉です。</p>



<h2 class="wp-block-heading">サーバサイドで出来ること</h2>



<h3 class="wp-block-heading">Expiresを設定する</h3>



<p>ヘッダの有効期限を適正に設定する事で、更新頻度の低いファイルをキャッシュさせます。<br />
※ApacheのExpiresモジュールが有効になっている必要があります。<br />
cf) <a href="http://httpd.apache.org/docs/2.0/ja/mod/mod_expires.html">mod_expires &#8211; Apache HTTP サーバ</a></p>



<p>.htaccessでの設定例。<br />
有効期限の初期設定を1ヶ月に設定しています。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">ExpiresActive On
ExpiresDefault <span class="hljs-string">"access plus 1 month"</span>
</code></span></pre>


<p>もしくは、ファイルの種類毎に設定を変えたい場合の例がこちら。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">ExpiresActive On
ExpiresByType text/css <span class="hljs-string">"access plus 1 week"</span>
ExpiresByType applicdation/javascript <span class="hljs-string">"access plus 1 month"</span>
ExpiresByType image/png <span class="hljs-string">"access 3 month"</span>
</code></span></pre>


<h2 class="wp-block-heading">YSlowでチェックしてみる</h2>



<p>サイトパフォーマンス測定ツールとしては、こちらもYahooから提供されている、<br />
Firebugプラグインの<a href="http://developer.yahoo.com/yslow/">YSlow</a>が良い感じです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TO9wuMCaB2I/AAAAAAAABGU/0i7CnQvDDbk/201011242002.png" alt="YSlow"/></figure>



<p></p>



<p>インストールするとFirebugに「YSlow」タブが追加され、<br />
閲覧しているページのパフォーマンスを測定する事が出来ます。<br />
細かく項目別にA～F判定を行ってくれるので、<br />
チェックすべきところがすぐに分かり、目安として使えそうですね。</p>



<ul class="wp-block-list">
<li><a href="http://developer.yahoo.com/yslow/">Yahoo! YSlow for Firebug</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Webデザインは年々リッチになりつつありますが、<br />
その分フロントエンドのパフォーマンスは注意しておきたいですね。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>YUI Compressorをお手軽にするバッチファイルを書いてみる</title>
		<link>https://blog.mach3.jp/2010/10/29/yui-compressor-bat.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Fri, 29 Oct 2010 02:19:17 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Batchfile]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[YUI]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1010</guid>

					<description><![CDATA[CSSやJavaScriptを圧縮するのに便利なYUI Compressorですが、 少々パラメータがややこしくて覚えるのが面倒。 そこで、実行を簡略化する為のバッチファイルを書いてみました。 yuicompress.b [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>CSSやJavaScriptを圧縮するのに便利な<a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a>ですが、<br />
少々パラメータがややこしくて覚えるのが面倒。<br />
そこで、実行を簡略化する為のバッチファイルを書いてみました。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TMmzBvs9ayI/AAAAAAAABEs/ZY7JUy71f0w/201010290014.png" alt="YUI Compressorをお手軽にするバッチファイルを書いてみる"/></figure>



<p></p>



<span id="more-1010"></span>



<h2 class="wp-block-heading">yuicompress.bat</h2>



<p><a href="https://gist.github.com/74d81567a90504c95ad4">gist: 74d81567a90504c95ad4 &#8211; Windows Batch File to use YUI Compressor easily- GitHub</a></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">@echo off
<span class="hljs-keyword">if</span> <span class="hljs-string">"%1"</span> == <span class="hljs-string">""</span> goto error
setlocal
<span class="hljs-keyword">set</span> jarfile="C:\Program Files\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar"
<span class="hljs-keyword">set</span> infile=%1
<span class="hljs-keyword">set</span> ext=%~x1
if %ext% == .css <span class="hljs-keyword">set</span> outfile=%infile:.css=.min.css%
if %ext% == .js <span class="hljs-keyword">set</span> outfile=%infile:.js=.min.js%
java -jar %jarfile% -v --charset UTF-8 -o %outfile% %infile%
endlocal
goto end
:error
echo No Argument
:end
</code></span></pre>


<p>バッチファイルは書き慣れない為、あまりスマートに書けませんが…<br />
4行目のjarファイルのパスは環境にあわせて書き換えてください。<br />
文字コードはUTF-8に固定してしまっているのでご注意を！</p>



<h3 class="wp-block-heading">使い方</h3>



<p>例えば、パスの通ったディレクトリに<em>「yuicompress.bat」</em>という名前で保存をしておけば、<br />
引数ひとつで簡単に圧縮出来ます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>yuicompress hogehoge.js<br />
  yuicompress fugafuga.css</p>
</blockquote>



<p>JSもCSSも、拡張子の前に「.min」を追加したファイル名で出力されます。<br />
上の例ならば「hogehoge.min.js」と「fugafuga.min.css」ですね。</p>



<h3 class="wp-block-heading">エディタから使う</h3>



<p>エディタから使いたい場合も、パスが通っていれば簡単ですね。<br />
例えばNotepad++のNppExecに登録する場合は、次のように。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>yuicompress.bat $(FULL_CURRENT_PATH)</p>
</blockquote>



<p>GVimから使う場合は、次のように。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>:!yuicompress %</p>
</blockquote>



<h3 class="wp-block-heading">参考</h3>



<p>YUI Compressor本体のドキュメント/ダウンロードは公式へ！</p>



<ul class="wp-block-list">
<li><a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a></li>



<li><a href="http://yuilibrary.com/downloads/#yuicompressor">YUI Library :: Downloads</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
