<?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>Born Too Late &#187; Software</title>
	<atom:link href="http://blog.yuyat.jp/archives/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.yuyat.jp</link>
	<description>Yuya&#039;s tech blog.</description>
	<lastBuildDate>Sat, 04 Feb 2012 11:25:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>小さなチームでの Redmine 運用で気をつけている 3 つのこと</title>
		<link>http://blog.yuyat.jp/archives/1202</link>
		<comments>http://blog.yuyat.jp/archives/1202#comments</comments>
		<pubDate>Wed, 06 Jul 2011 23:59:31 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[Redmine]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=1202</guid>
		<description><![CDATA[日々なんとなく利用している Redmine ですが, ここらで一度振り返ってみることにしました. 一応一般論のつもりで書いていますが, 前提として以下のような環境を想定しています. メインとなるメンバーが 5 名前後の小 [...]]]></description>
			<content:encoded><![CDATA[<p>日々なんとなく利用している <a href="http://redmine.jp/">Redmine</a> ですが, ここらで一度振り返ってみることにしました.<br />
一応一般論のつもりで書いていますが, 前提として以下のような環境を想定しています.</p>
<ul>
<li>メインとなるメンバーが 5 名前後の小規模なプロジェクト</li>
<li>そのうち何名かは非エンジニア</li>
</ul>
<p>目新しい話は無いと思います.<br />
様々な機能を使い倒していたりもしません.<br />
あまり学習・運用コストをかけずに, いかに効率よく使うか, という方向性です.</p>
<p><strong>ルールは少なく</strong></p>
<p>チームの全員が Redmine に対して肯定的であることは稀です.<br />
Redmine よりもメールや Excel で管理したい, という信じられないことを言う人も少なくありません.</p>
<p>そんな人たちも含むであろうチームで Redmine を楽しく運用するには, とにかく<strong>ルールを簡単にする</strong>ことが大事だと考えます.<br />
優先度, 予定工数, カテゴリなど, 記入できる項目はたくさんありますが, その全てについてルールを設け, 意味を理解しない状態で記入させることで, 一体何が得られるでしょう?</p>
<p>まずは最低限「作業依頼はチケットに書く」ということだけ守ってもらうだけで, ToDo 管理にはなります.</p>
<p>最低限のラインでもいいので, とにかく Redmine を使い続けていると, 段々と<strong>不便さ</strong>が気になりだします.<br />
そういう不便さがチーム内で明確になってくれば, 各項目を細かく記入する意味もわかってくるので, そこで初めてルールを決めましょう.</p>
<p>と, ここまでルールという単語を使ってきましたが, 基本的には文化として自然に醸成されていくのに任せるのがいいと考えています.<br />
プロジェクトの大規模化・複雑化などといった事情が無い限りは, ゆるく柔軟に運用していきたいものです.<br />
これは XP における <a href="http://ja.wikipedia.org/wiki/YAGNI"><strong>YAGNI の原則</strong></a>にも通じると思います.</p>
<p><strong>期日を記入する</strong></p>
<p>ToDo 管理としての Redmine から一歩先に進めるとしたら, まずはここから始めるのが効果的だと思います.</p>
<p>チケットに期日を入れることで, Redmine の重要な機能である<strong>ガントチャート</strong>にタスクが表示されるようになります.<br />
ガントチャートを活用することで, 進捗状況は一気にわかりやすくなるので, これはエンジニア以外の人にも比較的理解されやすい機能だと思います.</p>
<p>また, 期日はチケットだけでなく対象バージョンにも設定できます.<br />
こちらでは, より大きな単位で, ざっくりと俯瞰できるようになります.</p>
<div id="attachment_1206" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.yuyat.jp/archives/1202/redmine_1" rel="attachment wp-att-1206"><img src="http://blog.yuyat.jp/wp-content/uploads/redmine_1-300x162.png" alt="" title="ガントチャート 期日設定無し" width="300" height="162" class="size-medium wp-image-1206" /></a><p class="wp-caption-text">チケット期日設定無し</p></div>
<div id="attachment_1209" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.yuyat.jp/archives/1202/redmine_2" rel="attachment wp-att-1209"><img src="http://blog.yuyat.jp/wp-content/uploads/redmine_2-300x222.png" alt="" title="ガントチャート 期日設定あり" width="300" height="222" class="size-medium wp-image-1209" /></a><p class="wp-caption-text">チケット期日設定あり</p></div>
<div id="attachment_1210" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.yuyat.jp/archives/1202/redmine_3" rel="attachment wp-att-1210"><img src="http://blog.yuyat.jp/wp-content/uploads/redmine_3-300x193.png" alt="" title="ガントチャート 対象バージョンにも期日設定" width="300" height="193" class="size-medium wp-image-1210" /></a><p class="wp-caption-text">対象バージョンにも期日設定</p></div>
<p><strong>ゴールを明確に</strong></p>
<p>どこまでやればそのチケットをクローズできるのかが明確になるように, 注意を払います.<br />
依頼者と作業者の意思疎通を明確にするためです.</p>
<p>逆に, ゴールが明確になりにくい議論をチケット上で繰り広げても, よくわからないうちに流れてしまいがちです.</p>
<p>議論には, チケットよりもフォーラムを活用するのが好ましいと考えます.<br />
もちろん, Redmine を離れて実際にミーティングするのもいいでしょう.</p>
<p>議論の中で<strong>やることが決まったら</strong>, そこで初めてチケット化しましょう.</p>
<p>チケット名が「~~~ について」といった曖昧な形式になっているのは, 良くない兆候です.<br />
多少説明的でも, チケット名だけで作業のイメージができるような命名を心がけましょう.<br />
<strong>名前重要</strong>.</p>
<p><strong>まとめ</strong></p>
<p>Redmine はとても魅力的なソフトウェアですが, 導入コストは決して安くありません.<br />
まずは無理なく使い, 楽しくタスク管理ができるようになることが大事だと思っています.</p>
<p>今回はタスク管理ツールとしての Redmine に着目し, 最低限のルールで効果的にチケット機能を利用する方法を紹介しました.</p>
<p><strong>See also</strong></p>
<ul>
<li><strong><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4798121622/yuyat-22/">Redmineによるタスクマネジメント実践技法</a></span></strong><br />
Redmine を用いたプロジェクト管理について実践的に解説している書籍. 良書.</li>
<li><strong><a href="http://daipresents.com/2011/redmine%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%A9%A6%E8%A1%8C%E9%8C%AF%E8%AA%A4%E3%81%97%E3%81%9F10%E3%81%AE%E3%81%93%E3%81%A8/">3年使ったRedmineの使い方について共有したい10のこと</a></strong><br />
こちらは大規模プロジェクトでの話のようですが, プロジェクトの規模に関係なく適用できそうなことは参考にさせていただきました.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/1202/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Social Bookmarking Light にはてブボタンを対応させる</title>
		<link>http://blog.yuyat.jp/archives/850</link>
		<comments>http://blog.yuyat.jp/archives/850#comments</comments>
		<pubDate>Thu, 25 Nov 2010 15:02:02 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Hatena Bookmark]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=850</guid>
		<description><![CDATA[新「はてなブックマークボタン」をリリースしました。 はてなブックマーク日記 Facebook や Twitter によく似たインターフェイスのボタンではてブできるようになったようなので、早速対応させてみました。 ./wp [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://hatena.g.hatena.ne.jp/hatenabookmark/20101125/1290661499">新「はてなブックマークボタン」をリリースしました。</a></strong> はてなブックマーク日記</p>
<p>Facebook や Twitter によく似たインターフェイスのボタンではてブできるようになったようなので、早速対応させてみました。</p>
<p><strong>./wp-content/plugins/wp-social-bookmarking-light/wp-social-bookmarking-light.php</strong> に以下の関数を追加して、設定画面で <strong>Services</strong> に <strong>hatena_button</strong> を加えるだけで OK です。</p>
<p><script src="https://gist.github.com/715490.js?file=wp-social-bookmarking-light.diff.php"></script></p>
<p>とりあえず表示できる、という程度なので、週末にでも微調整したいと思います。</p>
<p><strong>See also</strong></p>
<ul>
<li><a href="http://www.ninxit.com/blog/2010/06/13/wp-social-bookmarking-light/"><strong>WP Social Bookmarking Light</strong></a> NINXIT-BLOG</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/850/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress の Permalink における title フォーマットの変更</title>
		<link>http://blog.yuyat.jp/archives/592</link>
		<comments>http://blog.yuyat.jp/archives/592#comments</comments>
		<pubDate>Wed, 17 Nov 2010 08:43:11 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Findability]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=592</guid>
		<description><![CDATA[非常に些細なことですが、 Permalink ごとの title タグのフォーマットを変更しました。 旧 Born Too Late &#187; 記事タイトル 新 記事タイトル &#8211; Born Too La [...]]]></description>
			<content:encoded><![CDATA[<p>非常に些細なことですが、 Permalink ごとの title タグのフォーマットを変更しました。</p>
<p><strong>旧</strong><br />
Born Too Late &raquo; 記事タイトル<br />
<strong>新</strong><br />
記事タイトル &#8211; Born Too Late</p>
<p>変更はこれだけ。</p>
<p><script src="https://gist.github.com/703127.js?file=change_title_format_of_coogee.patch"></script></p>
<p><a href="http://blog.yuyat.jp/archives/592/ugly_sidebar" rel="attachment wp-att-596"><img src="http://blog.yuyat.jp/wp-content/uploads/ugly_sidebar.png" alt="残念なタイトルの例" title="ugly_sidebar" width="183" height="205" class="alignright size-full wp-image-596" /></a>変更した理由は以下の通り。</p>
<ul>
<li><strong>&#8220;&raquo;&#8221;</strong> (&amp;raquo;) だと、うまくコピペ時に失敗して文字化けすることがある。</li>
<li>Permalink において主張すべきは<strong>「その記事が何であるか」</strong>であって、ブログの名前ではない。</li>
</ul>
<p>このスクリーンショットを見てもらうとわかるとおもいますが、タイトルにも気を配らないと、ブラウザのサイドバー等で残念なことになります。</p>
<p>些細な変更でも、ユーザビリティ (ファインダビリティ ?) 的に大きな違いが出ることはよくあるものです。</p>
<p><strong>See also</strong></p>
<ul>
<li><a href="http://blog.crdts.net/seo19.html"><strong>ページタイトルの変更</strong></a> WordPressを使ってみた<br />この記事を参考にしました。</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/592/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CUI な Git ブラウザ tig を入れてみた</title>
		<link>http://blog.yuyat.jp/archives/557</link>
		<comments>http://blog.yuyat.jp/archives/557#comments</comments>
		<pubDate>Sun, 14 Nov 2010 15:14:37 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[tig]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=557</guid>
		<description><![CDATA[Git をなかなか使いこなせずにいる私ですが、これはいい ! コンソールから使える git ブラウザ、tig が超便利 Vim に近い操作感で使えるのが Vim 使いには非常に嬉しいところです。以下で、インストール方法と [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.yuyat.jp/archives/557/screenshot-yuyaubuntu-dev-php-php5-text_ngram-1" rel="attachment wp-att-556"><img src="http://blog.yuyat.jp/wp-content/uploads/ad78a3528d2673a3cfbfad12155e6d92-300x200.png" alt="tig" title="Screen shot of tig" width="300" height="200" class="alignleft size-medium wp-image-556" /></a>Git をなかなか使いこなせずにいる私ですが、これはいい !</p>
<p><strong><a href="http://subtech.g.hatena.ne.jp/secondlife/20101114/1289736508">コンソールから使える git ブラウザ、tig が超便利</a></strong></p>
<p>Vim に近い操作感で使えるのが Vim 使いには非常に嬉しいところです。以下で、インストール方法と基本操作について紹介します。</p>
<p><strong>インストール</strong></p>
<p>インストールは、まずソースコードからやってみたのですが、パッケージが存在することに気づいたので、 aptitude で入れ直しました。</p>
<pre class="brush:bash">sudo aptitude install tig</pre>
<p>はい、簡単ですね。</p>
<p><strong>起動する</strong></p>
<p>カレントディレクトリを Git のワークツリーに移動して、 tig コマンドを実行します。</p>
<pre class="brush:bash">
$ cd /path/to/work-tree
$ tig
</pre>
<p><strong>ヘルプを表示する: h</strong></p>
<p>何はともあれ、わからないことがあればとりあえず <strong>h</strong> を押してヘルプを調べましょう。</p>
<p><strong>カーソルの移動: j, k</strong></p>
<p>Vim ユーザなら、何の問題もないでしょう。 <strong>j</strong> で下へ、 <strong>k</strong> で上へ移動します。</p>
<p><strong>メイン画面の表示: m</strong></p>
<p>tig 起動時のデフォルト画面です。カーソルを移動して、詳細を確認したいコミットを選択し、 <strong>Enter</strong> キーで diff が表示されます。</p>
<p><strong>Enter</strong> キーを押すと、上にコミットリスト、下には diff という 2 ペイン表示です。ちょうど上に載せたスクリーンショットの画面です。</p>
<p><strong>フォーカスを移動する: Tab</strong></p>
<p>2 ペイン表示時に <strong>Tab</strong> キーを押すと、カーソルのフォーカスがコミットリストと diff とで交互に移動します。</p>
<p><strong>リポジトリ上のファイルツリーを表示する: t</strong></p>
<p>リポジトリ上のファイルを参照するのに使います。カーソルを上下に移動して <strong>Enter</strong> キーで選択するとことで、ディレクトリを潜ったり、ファイルの中身を表示することができます。</p>
<p>これも 2 ペイン表示なので、 <strong>Tab</strong> キーでフォーカスの移動ができます。</p>
<p><strong>キーワード検索: /,?</strong></p>
<p>これも Vim ユーザにはお馴染みの操作ですね。 foo というキーワードで検索するときは、 <strong>/foo</strong> と入力して <strong>Enter</strong> キーを押せば、下へ向かって検索できます。</p>
<p>逆に、上へ向かって検索するときは <strong>?foo</strong> と入力して <strong>Enter</strong> キーです。</p>
<p>また、これまた Vim と同じく、 <strong>n</strong> で最後に検索したキーワードで繰り返し下へ向かって検索し、 <strong>N</strong> で上へ向かって検索できます。</p>
<p>その他にもたくさんの機能があるようなので、Git ユーザの皆さんは是非使ってみましょう !</p>
<p><strong>See also</strong></p>
<ul>
<li><a href="http://jonas.nitro.dk/tig/"><strong>Index of /tig</strong></a><br />ソースコードはこちらから。</li>
<li><a href="http://jonas.nitro.dk/tig/manual.html"><strong>The tig Manual</strong></a><br />公式ドキュメント。英語。</li>
<li><a href="http://subtech.g.hatena.ne.jp/secondlife/20101114/1289736508"><strong>コンソールから使える git ブラウザ、tig が超便利</strong></a> って、なんでですか〜<br />ネタ元。</li>
<li><a href="http://kwappa.txt-nifty.com/blog/2010/11/tigtext-mode-in.html"><strong>Tig(text-mode interface for git)を使う</strong></a> Kwappa開発室<br />分かりやすい解説付き</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/557/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WP Social Bookmarking Light をトップにも表示</title>
		<link>http://blog.yuyat.jp/archives/548</link>
		<comments>http://blog.yuyat.jp/archives/548#comments</comments>
		<pubDate>Sat, 13 Nov 2010 07:12:53 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[MOD]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=548</guid>
		<description><![CDATA[このブログでは、はてなブックマーク、 Twitter, Facebook に記事を推薦するためのボタンを表示するのに、 WP Social Bookmarking Light というのを使っています。 基本的に最小限の機 [...]]]></description>
			<content:encoded><![CDATA[<p>このブログでは、はてなブックマーク、 Twitter, Facebook に記事を推薦するためのボタンを表示するのに、 <a href="http://www.ninxit.com/blog/2010/06/13/wp-social-bookmarking-light/">WP Social Bookmarking Light</a> というのを使っています。</p>
<p>基本的に最小限の機能が揃っている上、対応するウェブサービスも多いのでいい感じなのですが、ボタン表示されるのが記事個別の Permalink で参照しているときのようです。</p>
<p>というわけで、トップページでもボタンが表示されるよう、微修正を加えました。<br />
<strong>YOUR_TWITTER_ACCOUNT</strong> の所は自分のものに書き換えてください。</p>
<p><script src="https://gist.github.com/675159.js?file=wp-social-bookmarking-light.patch"></script></p>
<p>ただし、個別のウェブサービスについては、 Twitter のみしか修正を行っていないのでご注意ください。このサイトで使用している hatena, hatena_users, facebook, facebook_like については特に修正がいらないようなのですが、その他のものについては特に確認しておりません。</p>
<p>このプラグインには公式の Tweet Button というのが使われています。パラメータによっていろいろ調整できるので、自分好みに修正が必要な方は、下記のページが参考になります。<br />
<a href="http://twitter.com/about/resources/tweetbutton">Twitter / ツイートボタン</a></p>
<p>Enjoy !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/548/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript ファイルの結合・難読化によるフロントエンド高速化</title>
		<link>http://blog.yuyat.jp/archives/486</link>
		<comments>http://blog.yuyat.jp/archives/486#comments</comments>
		<pubDate>Thu, 04 Nov 2010 17:33:55 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=486</guid>
		<description><![CDATA[このブログでは、記事中のプログラムの文法ハイライトに、 Syntax Highlighter and Code Colorizer for WordPress というプラグインを使用しています。 JavaScript と [...]]]></description>
			<content:encoded><![CDATA[<p>このブログでは、記事中のプログラムの文法ハイライトに、 <a href="http://wordpress.org/extend/plugins/syntax-highlighter-and-code-prettifier/"><strong><em>Syntax Highlighter and Code Colorizer for WordPress</em></strong></a> というプラグインを使用しています。 JavaScript と CSS で、プログラムを見易くしてくれる素敵なプラグインなのですが、 JavaScript ファイルだけで 1 度に 18 ものファイルを読むのが気になるところです。</p>
<p>外部のリソースが増えると、当然 HTTP リクエストも増え、ページ全体の表示時間に影響が出ます。</p>
<p>というわけで、以下のようなスクリプトを用意しました。</p>
<p><script src="https://gist.github.com/662740.js?file=syntax-highlighter-minimizer.rb"></script></p>
<p><strong>使い方</strong></p>
<p>まずは、上記 Ruby スクリプトを syntax-highlighter-minimizer.rb といった適当な名前で保存します。</p>
<p>このスクリプトの動作には、 <strong><em>JSMin</em></strong> という Rubygems が必要なので、インストールします。</p>
<pre class="brush:bash">$ gem install jsmin --no-rdoc --no-ri</pre>
<p>スクリプトは以下のように使用します。</p>
<pre class="brush:bash">$ ruby syntax-highlighter-minimizer.rb /path/to/syntax-highlighter-and-code-prettifier/script</pre>
<p>プログラムの引数として、 <strong>sh***.js といったファイルの含まれるディレクトリのパス</strong>を渡して実行します。すると、ディレクトリ内に以下のようなファイルが保存されます。</p>
<ul>
<li><strong>syntax-highlighter-all.js</strong> &#8230; sh***.js をすべて結合したもの</li>
<li><strong>syntax-highlighter-all-min.js</strong> &#8230; ***.js をすべて結合し、難読化したもの</li>
</ul>
<p>仕上げとして、 JavaScript ファイルの読み込み部分を書き換え、ファイルを結合・難読化したものと置き換えます。</p>
<p><em>./wp-content/plugins/syntax-highlighter-and-code-prettifier/syntax-highlighter.php</em></p>
<p><script src="https://gist.github.com/662740.js?file=syntax-highlighter.php.diff"></script></p>
<p>18 もあった JavaScript ファイルがひとつにまとまりました !</p>
<p><strong>難読化とは</strong></p>
<p>文字通りに言えば、プログラムを読みにくくすることですが、実際は<strong>ソースコードの圧縮</strong>が目的です。インデント等を極力少なくすることで、圧縮されます。</p>
<p><strong>どれぐらいの効果があるか</strong></p>
<p>以下のようなページを作って測定してみました。</p>
<ul>
<li><a href="/test/20101105/default.html">default.html</a> &#8230; 元の 18 の JavaScript が読み込まれる</li>
<li><a href="/test/20101105/all.html">all.html</a> &#8230; 18 の JavaScript を 1 つのファイルに結合したものが読み込まれる</li>
<li><a href="/test/20101105/all-min.html">all-min.html</a> &#8230; 1 つのファイルに結合したのち、難読化したものが読み込まれる</li>
</ul>
<p>いずれも、 script タグにより JavaScript が読み込まれるだけのシンプルなページです。 FireFox で Ctrl + F5 の強制更新で、 onload イベントの発生までの時間を計測しています。</p>
<table style="text-align:center;">
<tbody>
<tr>
<th style="width: 10%;"></th>
<th style="width: 30%;">default.html</th>
<th style="width: 30%;">all.html</th>
<th style="width: 30%;">all-min.html</th>
</tr>
<tr>
<td>1</td>
<td>379ms</td>
<td>140ms</td>
<td>180ms</td>
</tr>
<tr>
<td>2</td>
<td>375ms</td>
<td>148ms</td>
<td>168ms</td>
</tr>
<tr>
<td>3</td>
<td>556ms</td>
<td>131ms</td>
<td>133ms</td>
</tr>
<tr>
<td>4</td>
<td>365ms</td>
<td>135ms</td>
<td>124ms</td>
</tr>
<tr>
<td>5</td>
<td>370ms</td>
<td>146ms</td>
<td>137ms</td>
</tr>
<tr>
<td>6</td>
<td>363ms</td>
<td>128ms</td>
<td>133ms</td>
</tr>
<tr>
<td>7</td>
<td>370ms</td>
<td>257ms</td>
<td>132ms</td>
</tr>
<tr>
<td>8</td>
<td>397ms</td>
<td>122ms</td>
<td>133ms</td>
</tr>
<tr>
<td>9</td>
<td>411ms</td>
<td>127ms</td>
<td>136ms</td>
</tr>
<tr>
<td>10</td>
<td>362ms</td>
<td>135ms</td>
<td>135ms</td>
</tr>
<tr>
<th>Avg.</th>
<td>394.8ms</td>
<td>146.9ms</td>
<td style="color: #f44;"><strong>141.1ms</strong></td>
</tr>
</tbody>
</table>
<p>難読化による効果は誤差程度に止まりましたが、 JavaScript ファイルをまとめることは、絶大な効果があるようです。今回の例でいえば、 <strong>2.8 倍近い高速化</strong>が実現できました。</p>
<p>ただし、実際のウェブサイトは、 JavaScript 以外にもたくさんの要素を含み、キャッシュ等の要因も絡むため、ここまでのインパクトは無いと思いますが、ページの表示時間が気になるときは、是非検討してみるべきでしょう。</p>
<p><strong>今後の予定</strong></p>
<p>今回は特定のプラグインに標的を絞りましたが、 WordPress といった CMS を使用する場合、プラグインで JavaScript や CSS の数がもの凄いことになっていた ! というのはよくあると思います。それらを 1 つ 1 つ潰していくことで、案外バカにできない効果が期待できそうです。</p>
<p>あと、 JavaScript ファイルを減らそう ! とかいいながら、この記事には GitHub の Gist が 2 つも貼り付けられています。これらは JavaScript の外部リソースによるものなので、ページ全体の読み込み時間に影響します。ページの読み込み時に読み込むのではなく、「このコードは読んでみたいな」と思ってクリックするまで、読み込みを遅延させる、という仕組みもアリかもしれません。</p>
<p><strong>参考文献</strong></p>
<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/487311361X/yuyat-22/"><img src="http://ecx.images-amazon.com/images/I/51hIDIWHmYL._SL160_.jpg" />ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール</a></span></p>
<p>Yahoo ! のフロントエンド最適化チームによるノウハウ集で、 JavaScript の結合・難読化についてはほとんどこの書籍に書いてあります。</p>
<p>その他にも様々なテクニックが紹介されていますが、その中でも特に敷居が低いのが、この JavaScript についての最適化です。</p>
<p>是非試してみてはいかがでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/486/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git で自らの苦労を台無しにする方法</title>
		<link>http://blog.yuyat.jp/archives/92</link>
		<comments>http://blog.yuyat.jp/archives/92#comments</comments>
		<pubDate>Sat, 16 Jan 2010 18:42:21 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=92</guid>
		<description><![CDATA[危険なので真似しないでください！ git rm -r . 職場では Subversion だけど、来るべきときに備えて、ローカルに Git をインストール。ひとりで作っているプログラムを Git のバージョン管理下に置い [...]]]></description>
			<content:encoded><![CDATA[<p><strong>危険なので真似しないでください！</strong></p>
<pre class=”brush:bash”>
git rm -r .
</pre>
<p>職場では Subversion だけど、来るべきときに備えて、ローカルに Git をインストール。ひとりで作っているプログラムを Git のバージョン管理下に置いてみた。そのときに、バージョン管理したくないファイルも一緒に git add してしまったので、ヘルプを見ながら上記のコマンドを打ってみたところ、ワークツリーのファイルが跡形もなく消え去ってしまった・・・。</p>
<blockquote cite="http://blog.s21g.com/articles/960">
<p>git rmは、Working Tree (作業コピー)と index からファイルを削除するコマンドですが、 &#8211;cachedを指定する事で、 indexからのみファイルを削除する事ができます。</p>
<div class="from">s21g  :: Hello, world!「<a href="http://blog.s21g.com/articles/960">Gitで間違えたgit addをキャンセルする方法</a>」</div>
</blockquote>
<p>正しくはこうするべきだったようです。</p>
<pre class=”brush:bash”>
git rm -r --cached .
</pre>
<p>不幸中の幸いは、消失したプログラムは数行程度だったこと、完全に個人的なプログラムだったこと、そしてこれが仕事ではなくプライベートだったこと。これを仕事でやってしまったら、と考えると眠れなくなる。やっぱり、プライベートでこういう遊びをやっておくのは大事だと思った。</p>
<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4798023809/yuyat-22/"><img src="http://ecx.images-amazon.com/images/I/41R5gj5VRFL._SL160_.jpg" />入門Git</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/92/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XREA で WP の「いますぐインストール」を有効にする</title>
		<link>http://blog.yuyat.jp/archives/10</link>
		<comments>http://blog.yuyat.jp/archives/10#comments</comments>
		<pubDate>Sun, 10 Jan 2010 04:46:47 +0000</pubDate>
		<dc:creator>yuya</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.yuyat.jp/?p=10</guid>
		<description><![CDATA[WordPress は初めて使うのですが、こういう CMS は楽チンでいいですね。 ただ、公式サイトの右下で Code Is Poetry とか謳ってるわりには、グローバル変数とかいっぱい使ってて正直いただけないコードか [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress は初めて使うのですが、こういう CMS は楽チンでいいですね。</p>
<p>ただ、公式サイトの右下で Code Is Poetry とか謳ってるわりには、グローバル変数とかいっぱい使ってて正直いただけないコードかと・・・。</p>
<p>あと PHP は、オブジェクト指向的な表現力が格段にアップした、5 以降がいいと思うのですが、これについては世の中の PHP5 移行状況とか、そもそもの WP の開発状況とかも関わってくるところなので、まぁしょうがないのでしょう。というか、会社でやってるサービスの、PHP4 -&gt; PHP5 移行作業で色々トラブった私としては、「4 でも 5 でも動くってすげえ！」と言わざるを得ないところでもあります。</p>
<p>さて、本題ですが、これは別に PHP のバージョンが関係しているわけではなく、凄く簡単に解決できます。</p>
<p>XREA では、WordPress をボタン一発でインストールしてくれる機能もありますが、最新版が使いたかったので、公式サイトからダウンロードして、自分でインストールしています。</p>
<p>/tmp というディレクトリに書き込み権限がない、ということが原因なので、書き込み権限のあるディレクトリを作成し、プログラム側の設定を変えれば OK です。ディレクトリ名は、./tp-temp として、WP のディレクトリ直下に置いたと仮定します。パーミッションは 707 にしましょう。</p>
<p>プログラム上の修正は以下の通り。</p>
<pre name="code" class="php">
// ./wp-config.php 一番下あたり

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

// ↓この 2 行を追加してあげれば OK。
/** Absolute path to temporary files directory. */
define('WP_TEMP_DIR', ABSPATH . 'wp-temp/');
</pre>
<p>これで、あとはテーマなりプラグインなりを、「いますぐインストール」できるようになります。ブラウザ上で検索して、いくつかボタン押すだけで設定が完了するのはとても楽しいですね。</p>
<p>if 文の実行式を { /** ~~~ */ } で囲んでいなかったりと、コードはちょいとアレですが、機能美という点では素晴らしいツールだと思いました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yuyat.jp/archives/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

