<?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>Engine Yard Blog JP</title>
	<atom:link href="http://www.engineyard.co.jp/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.engineyard.co.jp/blog</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Thu, 23 Jan 2014 07:22:41 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>Chefを拡張する3つの方法</title>
		<link>http://www.engineyard.co.jp/blog/2014/custom-chef/</link>
		<comments>http://www.engineyard.co.jp/blog/2014/custom-chef/#comments</comments>
		<pubDate>Thu, 23 Jan 2014 07:22:41 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2336</guid>
		<description><![CDATA[<p><p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Chef___IT_automation_for_speed_and_awesomeness___Chef-2.png"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Chef___IT_automation_for_speed_and_awesomeness___Chef-2-1024x579.png" alt="Chef___IT_automation_for_speed_and_awesomeness___Chef-2" width="1024" height="579" class="alignnone size-large wp-image-2337" /></a></p>
<p>Chefを使ってサーバの管理運用をする際に作りこむ対象としてまっさきに思いつくのがクックブックです。コミュニティクックブックを組み合わせたり自作のクックブックを書くことで作り込みを行っている人は多いのではないでしょうか。しかしクックブックばかりを作りこむだけがChefを拡張する方法ではありません。</p>
<h3>knifeプラグイン</h3>
<p>knifeプラグインはknifeコマンドのサブコマンドを追加する形でさまざまな拡張を行う機構です。<code>knife-solo</code>もknifeプラグインの１つです。knifeプラグインはrubyを使って開発する事が出来、Amazon Web ServiceやDigital Oceanなどのパブリッククラウド環境のサポートを追加するものや、KVMやVMwareなどの仮想化環境をサポートを追加するものが多数公開されています。またコミュニティクックブックの公開や開発を支援するようなプラグインも公開されています。下記のプラグインは<a href="http://docs.opscode.com/plugin_knife.html">Chefが公式にメンテナンス</a>しているプラグインです。</p>
<table>
<tbody>
<tr>
<th>名称</th>
<th>機能</th>
</tr>
<tr>
<td>knife-azure</td>
<td>Windows Azureでホストされたクラウドサーバーを管理する。同時にknife-windowsプラグインも必要になる。</td>
</tr>
<tr>
<td>knife-ec2</td>
<td>Amazon EC2でホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-google</td>
<td>Google Compute Engineでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-linode</td>
<td>Linodeでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-openstack</td>
<td>OpenStackでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-rackspace</td>
<td>Rackspaceでホストされたクラウドサーバーを管理する。</td>
</tr>
</tbody>
</table>
<p>上記の他にはknife-eucalyptus knife-hp knife-terremark knife-blueboxなどのプラグインがあり様々な仮想化環境のAPIへ対応する機能を提供します。</p>
<p>また、<a href="http://docs.opscode.com/community_plugin_knife.html">コミュニティプラグイン公式ドキュメント</a> にも50個以上のコミュニティによって作成されたプラグインがリストアップされています。コミュニティプラグインにはChef公式プラグインでサポートしない様々な仮想化環境への対応や、パブリッククラウドのAPI、Chef利用のワークフローそのものを拡張するものなど幅広いプラグインが存在します。その中でも代表的なプラグインはつぎのとおりです。</p>
<table>
<tbody>
<tr>
<th>名称</th>
<th>機能</th>
</tr>
<tr>
<td>knife-solo</td>
<td>chef-solo、search、data bagsを行う為のノードの初期化(bootstrap)を行う。</td>
</tr>
<tr>
<td>knife-lastrun</td>
<td>各ノードで最後にChefを実行した際の情報を表示する。</td>
</tr>
<tr>
<td>knife-github-cookbooks</td>
<td>GitHubからクックブックをインストールする。</td>
</tr>
<tr>
<td>knife-esx</td>
<td>VMWareをサポートする。</td>
</tr>
<tr>
<td>knife-kvm</td>
<td>KVMをサポートする。</td>
</tr>
</tbody>
</table>
<p>knifeプラグインはRubyGemsとして作られており、gemコマンドを使ってインストールを行います。</p>
<pre lang="cmd">
$ /opt/chef/embedded/bin/gem install knife-azure
</pre>
<p>標準ではChefに同梱されているgemの配下にプラグインがあるとChefクライアントはみなしています。その為、インストールしたRubyGemsが同じ場所に入るようにgemコマンドもChefに埋め込まれたコマンドを使います。gemの配置先を自分自身でコントロールしている場合は<code>/opt/chef/embedded/bin/</code>のパスを省略してインストールする事で普段使っているRuby環境と同じ場所に配置されます。</p>
<pre lang="cmd">
$ gem install knife-azure
</pre>
<p>上記の場合は利用しているRuby環境に見合った場所にRubyGemsがインストールされます。複数の方法を併用した場合に状況がわかりづらくなる事もあるので注意してください。特に理由がなければ開発者のPCなどワークステーションでは通常のgemコマンドを使い、実際の実行環境になるノード側ではChefに同梱されたGemを使うのが良いでしょう。</p>
<h3>ohaiプラグイン</h3>
<p>ノードのさまざまな情報を収集するohaiはプラグインを利用する事で独自の項目を収集し、Chef Server上に集約したり、クックブック内で参照できます。ohaiプラグインも簡単なRubyコードを記述する事で任意の処理をohai実行時に実行し結果を情報としてChefに提供できます。<br />
ohaiのプラグインはgemなどの形にはなっていませんが、コミュニティによってさまざまなプラグインが作成されており<a href="http://docs.opscode.com/ohai.html">公式ドキュメント</a>内にリストアップされています。</p>
<table>
<tbody>
<tr>
<th>プラグイン名</th>
<th>内容</th>
</tr>
<tr>
<td>dell.rb</td>
<td>サービスタグ、エクスプレスサービスコードなどのDellサーバーの有用な情報を取得する。OMSAとSMBIOSのインストールが必要。</td>
</tr>
<tr>
<td>dpkg.rb</td>
<td>Debianパッケージのdpkgの情報を取得する。</td>
</tr>
<tr>
<td>ipmi.rb</td>
<td>MACアドレスとIPアドレスを取得する。</td>
</tr>
<tr>
<td>kvm_extensions.rb</td>
<td>KVMのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>advd.rb</td>
<td>ladvdの情報を取得する。</td>
</tr>
<tr>
<td>lxc_virtualization.rb</td>
<td>LXCのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>network_addr.rb</td>
<td>ネットワークインターフェースの情報を扱いやすく拡張する。</td>
</tr>
<tr>
<td>network_ports.rb</td>
<td>各ネットワークインターフェースのTCPとUDPの状況を取得する。</td>
</tr>
<tr>
<td>parse_host_plugin.rb</td>
<td>ホスト名を3段階、5段階でパースする。</td>
</tr>
<tr>
<td>r.rb</td>
<td>Rプロジェクトに関する情報を取得する。</td>
</tr>
<tr>
<td>rpm.rb</td>
<td>RPMパッケージマネージャーの情報を取得する。</td>
</tr>
<tr>
<td>sysctl.rb</td>
<td>sysctlの情報を取得する。</td>
</tr>
<tr>
<td>vserver.rb</td>
<td>Linux VServerの情報を取得する。</td>
</tr>
<tr>
<td>wtf.rb</td>
<td>wtfismyip.com を使ってホストの外部IPアドレスと地理情報を取得する。</td>
</tr>
<tr>
<td>xenserver.rb</td>
<td>Citrix XenServerのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>win32_software.rb</td>
<td>Windows Management Instrumentation (WMI)を使いWindowsノード上にインストールされたソフトウェアの情報を取得する。</td>
</tr>
<tr>
<td>win32_svc.rb</td>
<td>Windows Management Instrumentation (WMI)を使いWindowsノード上で稼働するサービスの情報を取得する。</td>
</tr>
</tbody>
</table>
<h3>chefプラグイン</h3>
<p>knifeやohaiではなくChefクライアントの実行時の挙動を拡張するプラグインもRubyGemsとして公開されています。<a href="http://docs.opscode.com/community_plugin_chef.html">公式ドキュメント</a>にリストアップされている以外のRubyGemsも日々公開されていますので用途にあったものがあれば導入したり、拡張するのがよいでしょう。</p>
<table>
<tbody>
<tr>
<th>プラグイン名</th>
<th>内容</th>
</tr>
<tr>
<td>chef-deploy</td>
<td>Rubyアプリケーションのデプロイを行うリソースとプロバイダを追加する。</td>
</tr>
<tr>
<td>
chef-gelf</td>
<td>Graylog2サーバーへの通知を行う。</td>
</tr>
<tr>
<td>chef-handler-twitter</td>
<td>ツイートを行うハンドラーを追加する。</td>
</tr>
<tr>
<td>chef-handler-librato</td>
<td>Libratoへ統計情報を送信する。</td>
</tr>
<tr>
<td>chef-hatch-repo</td>
<td>サーバーを仮想マシンやAmazon EC2へ起動するVagrantプロビジョナーを追加するknifeプラグイン。</td>
</tr>
<tr>
<td>chef-irc-snitch</td>
<td>chefクライアント実行時の例外をIRCに通知する。</td>
</tr>
<tr>
<td>chef-jenkins</td>
<td>Jenkinsを利用した継続的なデプロイをGitリポジトリから行う。</td>
</tr>
<tr>
<td>chef-rundeck</td>
<td>Rundeckのリソースエンドポイントを追加する。</td>
</tr>
<tr>
<td>chef-solo-search</td>
<td>chef-soloでもdata-bagやenvironmentへの検索を行う。</td>
</tr>
<tr>
<td>chef-trac-hacks</td>
<td>AWSとchefクライアントの間の差を埋める。</td>
</tr>
<tr>
<td>chef-vim</td>
<td>クックブックのナビゲーションを素早く行う。</td>
</tr>
<tr>
<td>chef-vpc-toolkit</td>
<td>仮想サーバーのグループを管理するRakeタスクを追加する。</td>
</tr>
<tr>
<td>
ironfan</td>
<td>スケーラブルなクラスタの構築と設定を補助する。</td>
</tr>
<tr>
<td>jclouds-chef</td>
<td>Chef SeverのRest APIへのJavaとClojureのコンポーネントを追加する。</td>
</tr>
</tbody>
</table>
<h3>もちろん自作も可能</h3>
<p>knifeプラグイン、ohaiプラグイン、chefプラグインのいずれも自作できます。コミュニティで公開されているプラグインの内容は公式ドキュメントの内容を参考にすればChefの細かな挙動をカスタマイズし、よりスムーズな運用ができるでしょう。</p>
<ul>
<li><a href="http://docs.opscode.com/plugin_knife_custom.html">Custom Knife Plugins — Chef Docs</a></li>
<li><a href="http://docs.opscode.com/ohai.html#custom-plugins">About Ohai — Chef Docs</a></li>
</ul>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2014/custom-chef/">Chefを拡張する3つの方法</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Chef___IT_automation_for_speed_and_awesomeness___Chef-2.png"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Chef___IT_automation_for_speed_and_awesomeness___Chef-2-1024x579.png" alt="Chef___IT_automation_for_speed_and_awesomeness___Chef-2" width="1024" height="579" class="alignnone size-large wp-image-2337" /></a></p>
<p>Chefを使ってサーバの管理運用をする際に作りこむ対象としてまっさきに思いつくのがクックブックです。コミュニティクックブックを組み合わせたり自作のクックブックを書くことで作り込みを行っている人は多いのではないでしょうか。しかしクックブックばかりを作りこむだけがChefを拡張する方法ではありません。</p>
<h3>knifeプラグイン</h3>
<p>knifeプラグインはknifeコマンドのサブコマンドを追加する形でさまざまな拡張を行う機構です。<code>knife-solo</code>もknifeプラグインの１つです。knifeプラグインはrubyを使って開発する事が出来、Amazon Web ServiceやDigital Oceanなどのパブリッククラウド環境のサポートを追加するものや、KVMやVMwareなどの仮想化環境をサポートを追加するものが多数公開されています。またコミュニティクックブックの公開や開発を支援するようなプラグインも公開されています。下記のプラグインは<a href="http://docs.opscode.com/plugin_knife.html">Chefが公式にメンテナンス</a>しているプラグインです。</p>
<table>
<tbody>
<tr>
<th>名称</th>
<th>機能</th>
</tr>
<tr>
<td>knife-azure</td>
<td>Windows Azureでホストされたクラウドサーバーを管理する。同時にknife-windowsプラグインも必要になる。</td>
</tr>
<tr>
<td>knife-ec2</td>
<td>Amazon EC2でホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-google</td>
<td>Google Compute Engineでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-linode</td>
<td>Linodeでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-openstack</td>
<td>OpenStackでホストされたクラウドサーバーを管理する。</td>
</tr>
<tr>
<td>knife-rackspace</td>
<td>Rackspaceでホストされたクラウドサーバーを管理する。</td>
</tr>
</tbody>
</table>
<p>上記の他にはknife-eucalyptus knife-hp knife-terremark knife-blueboxなどのプラグインがあり様々な仮想化環境のAPIへ対応する機能を提供します。</p>
<p>また、<a href="http://docs.opscode.com/community_plugin_knife.html">コミュニティプラグイン公式ドキュメント</a> にも50個以上のコミュニティによって作成されたプラグインがリストアップされています。コミュニティプラグインにはChef公式プラグインでサポートしない様々な仮想化環境への対応や、パブリッククラウドのAPI、Chef利用のワークフローそのものを拡張するものなど幅広いプラグインが存在します。その中でも代表的なプラグインはつぎのとおりです。</p>
<table>
<tbody>
<tr>
<th>名称</th>
<th>機能</th>
</tr>
<tr>
<td>knife-solo</td>
<td>chef-solo、search、data bagsを行う為のノードの初期化(bootstrap)を行う。</td>
</tr>
<tr>
<td>knife-lastrun</td>
<td>各ノードで最後にChefを実行した際の情報を表示する。</td>
</tr>
<tr>
<td>knife-github-cookbooks</td>
<td>GitHubからクックブックをインストールする。</td>
</tr>
<tr>
<td>knife-esx</td>
<td>VMWareをサポートする。</td>
</tr>
<tr>
<td>knife-kvm</td>
<td>KVMをサポートする。</td>
</tr>
</tbody>
</table>
<p>knifeプラグインはRubyGemsとして作られており、gemコマンドを使ってインストールを行います。</p>
<pre lang="cmd">
$ /opt/chef/embedded/bin/gem install knife-azure
</pre>
<p>標準ではChefに同梱されているgemの配下にプラグインがあるとChefクライアントはみなしています。その為、インストールしたRubyGemsが同じ場所に入るようにgemコマンドもChefに埋め込まれたコマンドを使います。gemの配置先を自分自身でコントロールしている場合は<code>/opt/chef/embedded/bin/</code>のパスを省略してインストールする事で普段使っているRuby環境と同じ場所に配置されます。</p>
<pre lang="cmd">
$ gem install knife-azure
</pre>
<p>上記の場合は利用しているRuby環境に見合った場所にRubyGemsがインストールされます。複数の方法を併用した場合に状況がわかりづらくなる事もあるので注意してください。特に理由がなければ開発者のPCなどワークステーションでは通常のgemコマンドを使い、実際の実行環境になるノード側ではChefに同梱されたGemを使うのが良いでしょう。</p>
<h3>ohaiプラグイン</h3>
<p>ノードのさまざまな情報を収集するohaiはプラグインを利用する事で独自の項目を収集し、Chef Server上に集約したり、クックブック内で参照できます。ohaiプラグインも簡単なRubyコードを記述する事で任意の処理をohai実行時に実行し結果を情報としてChefに提供できます。<br />
ohaiのプラグインはgemなどの形にはなっていませんが、コミュニティによってさまざまなプラグインが作成されており<a href="http://docs.opscode.com/ohai.html">公式ドキュメント</a>内にリストアップされています。</p>
<table>
<tbody>
<tr>
<th>プラグイン名</th>
<th>内容</th>
</tr>
<tr>
<td>dell.rb</td>
<td>サービスタグ、エクスプレスサービスコードなどのDellサーバーの有用な情報を取得する。OMSAとSMBIOSのインストールが必要。</td>
</tr>
<tr>
<td>dpkg.rb</td>
<td>Debianパッケージのdpkgの情報を取得する。</td>
</tr>
<tr>
<td>ipmi.rb</td>
<td>MACアドレスとIPアドレスを取得する。</td>
</tr>
<tr>
<td>kvm_extensions.rb</td>
<td>KVMのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>advd.rb</td>
<td>ladvdの情報を取得する。</td>
</tr>
<tr>
<td>lxc_virtualization.rb</td>
<td>LXCのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>network_addr.rb</td>
<td>ネットワークインターフェースの情報を扱いやすく拡張する。</td>
</tr>
<tr>
<td>network_ports.rb</td>
<td>各ネットワークインターフェースのTCPとUDPの状況を取得する。</td>
</tr>
<tr>
<td>parse_host_plugin.rb</td>
<td>ホスト名を3段階、5段階でパースする。</td>
</tr>
<tr>
<td>r.rb</td>
<td>Rプロジェクトに関する情報を取得する。</td>
</tr>
<tr>
<td>rpm.rb</td>
<td>RPMパッケージマネージャーの情報を取得する。</td>
</tr>
<tr>
<td>sysctl.rb</td>
<td>sysctlの情報を取得する。</td>
</tr>
<tr>
<td>vserver.rb</td>
<td>Linux VServerの情報を取得する。</td>
</tr>
<tr>
<td>wtf.rb</td>
<td>wtfismyip.com を使ってホストの外部IPアドレスと地理情報を取得する。</td>
</tr>
<tr>
<td>xenserver.rb</td>
<td>Citrix XenServerのホストとゲストの情報を取得する。</td>
</tr>
<tr>
<td>win32_software.rb</td>
<td>Windows Management Instrumentation (WMI)を使いWindowsノード上にインストールされたソフトウェアの情報を取得する。</td>
</tr>
<tr>
<td>win32_svc.rb</td>
<td>Windows Management Instrumentation (WMI)を使いWindowsノード上で稼働するサービスの情報を取得する。</td>
</tr>
</tbody>
</table>
<h3>chefプラグイン</h3>
<p>knifeやohaiではなくChefクライアントの実行時の挙動を拡張するプラグインもRubyGemsとして公開されています。<a href="http://docs.opscode.com/community_plugin_chef.html">公式ドキュメント</a>にリストアップされている以外のRubyGemsも日々公開されていますので用途にあったものがあれば導入したり、拡張するのがよいでしょう。</p>
<table>
<tbody>
<tr>
<th>プラグイン名</th>
<th>内容</th>
</tr>
<tr>
<td>chef-deploy</td>
<td>Rubyアプリケーションのデプロイを行うリソースとプロバイダを追加する。</td>
</tr>
<tr>
<td>
chef-gelf</td>
<td>Graylog2サーバーへの通知を行う。</td>
</tr>
<tr>
<td>chef-handler-twitter</td>
<td>ツイートを行うハンドラーを追加する。</td>
</tr>
<tr>
<td>chef-handler-librato</td>
<td>Libratoへ統計情報を送信する。</td>
</tr>
<tr>
<td>chef-hatch-repo</td>
<td>サーバーを仮想マシンやAmazon EC2へ起動するVagrantプロビジョナーを追加するknifeプラグイン。</td>
</tr>
<tr>
<td>chef-irc-snitch</td>
<td>chefクライアント実行時の例外をIRCに通知する。</td>
</tr>
<tr>
<td>chef-jenkins</td>
<td>Jenkinsを利用した継続的なデプロイをGitリポジトリから行う。</td>
</tr>
<tr>
<td>chef-rundeck</td>
<td>Rundeckのリソースエンドポイントを追加する。</td>
</tr>
<tr>
<td>chef-solo-search</td>
<td>chef-soloでもdata-bagやenvironmentへの検索を行う。</td>
</tr>
<tr>
<td>chef-trac-hacks</td>
<td>AWSとchefクライアントの間の差を埋める。</td>
</tr>
<tr>
<td>chef-vim</td>
<td>クックブックのナビゲーションを素早く行う。</td>
</tr>
<tr>
<td>chef-vpc-toolkit</td>
<td>仮想サーバーのグループを管理するRakeタスクを追加する。</td>
</tr>
<tr>
<td>
ironfan</td>
<td>スケーラブルなクラスタの構築と設定を補助する。</td>
</tr>
<tr>
<td>jclouds-chef</td>
<td>Chef SeverのRest APIへのJavaとClojureのコンポーネントを追加する。</td>
</tr>
</tbody>
</table>
<h3>もちろん自作も可能</h3>
<p>knifeプラグイン、ohaiプラグイン、chefプラグインのいずれも自作できます。コミュニティで公開されているプラグインの内容は公式ドキュメントの内容を参考にすればChefの細かな挙動をカスタマイズし、よりスムーズな運用ができるでしょう。</p>
<ul>
<li><a href="http://docs.opscode.com/plugin_knife_custom.html">Custom Knife Plugins — Chef Docs</a></li>
<li><a href="http://docs.opscode.com/ohai.html#custom-plugins">About Ohai — Chef Docs</a></li>
</ul>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2014/custom-chef/">Chefを拡張する3つの方法</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2014/custom-chef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Travis CI上でPHPアプリのWebベースのテストを自動化する</title>
		<link>http://www.engineyard.co.jp/blog/2014/testing-php-app-with-selenium-on-travis/</link>
		<comments>http://www.engineyard.co.jp/blog/2014/testing-php-app-with-selenium-on-travis/#comments</comments>
		<pubDate>Mon, 13 Jan 2014 13:36:43 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2304</guid>
		<description><![CDATA[<p><p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2.png"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2-1024x509.png" alt="Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2" width="1024" height="509" class="alignnone size-large wp-image-2305" /></a></p>
<p>PHPなどのさまざまな言語のオープンソースプロジェクトのCI環境として利用されているTravis CIでWebベースのテストを実行してみました。<br />
通常は純粋なコードベースのユニットテストを実行する事が多いかと思いますが、CMSやEコマースエンジンなどオープンソースで配布し、インストールして使うようなソフトウェアではWebブラウザベースでの機能テストを自動化したいというニーズがあるでしょう。Travis CIにはfirefoxがインストールされておりブラウザベースのテストが出来る事は知っていたのですが、今回年末年始の宿題的にテストを実行する為の設定をひと通り行ってみました。</p>
<p>説明を抜きにして動作が見たい方はGitHubとTravis CIへどうぞ</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>yandod/candycane</strong><br />
<a href="https://github.com/yandod/candycane">https://github.com/yandod/candycane</a><br />
<strong>candycane on Travis CI</strong><br />
<a href="https://travis-ci.org/yandod/candycane">https://travis-ci.org/yandod/candycane</a>
</p>
<h3>テストの対象</h3>
<p>今回はCakePHPに移植されたRedmine,CandyCaneのインストーラーを使ったインストールと管理画面へのログインをテストします。これにより機能の追加変更が初期のインストールプロセスを壊さないことを継続的に確認する事を目的としています。インストーラー及び管理画面へのログインには下記のような要素があります。</p>
<ul>
<li>Webブラウザからインストール画面にアクセス</li>
<li><strong>AJAXを利用した実行環境の確認、次のステップへのリンクのクリック</strong></li>
<li>初期データベースの自動作成</li>
<li>管理者ユーザーでのログイン</li>
<li>管理者画面からの設定変更</li>
</ul>
<p>今回は簡単なフローになっていますが、インストーラーと管理画面それぞれにJavaScriptを使った動的な画面制御が存在しています。この部分はブラウザでのテストを行わないと自動化できない部分でこれまで、自動化したテストができていませんでした。</p>
<h3>ローカル環境でのテスト環境の構築</h3>
<p>まずはローカル側でSeleniumとfirefoxを使ったテストの実行環境を構築する必要があります。検索したのですが残念ながら目的にあうChefのクックブックは見つからず、(中途半端なものは存在)今回はクックブックを作成しました。このクックブックをBerkshelfを経由してVagrantのVMに適用することでXvfbとfirefoxにSeleniumを使ったテスト環境が構築できます。またSeleniumの実行に必要なJavaは動けばいいのでこれもコミュニティクックブックをBerkshelfから突っ込んで適用します。クックブックの記述にあたっては下記のような試行錯誤がありましたが、皆様につきましては完成したクックブックを適用して頂ければ4メートル級の巨人の肩に乗れます。</p>
<ul>
<li>PhantomJSのビルドにかかる様々な手間</li>
<li>SeleniumとFirefoxのバージョンの相性。</li>
<li>xvfbのセッションのサービス化</li>
<li>java -jarで起動したプロセスの再起動</li>
</ul>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>yandod/selenium-grid</strong><br />
<a href="https://github.com/yandod/selenium-grid">https://github.com/yandod/selenium-grid</a>
</p>
<p><strong>Vagrantfile</strong></p>
<pre lang="ruby">
Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  src_dir = './'
  doc_root = '/vagrant_data/app/webroot'
  app_name = 'candycane'
  config.vm.network :forwarded_port, guest: 80, host: 8080
  config.vm.synced_folder src_dir, "/vagrant_data", :create => true, :owner=> 'vagrant', :group=>'www-data', :mount_options => ['dmode=775,fmode=775']
  config.berkshelf.enabled = true
  File.open('Berksfile', 'w').write <<-EOS
    cookbook 'apt'
    cookbook 'php5_ppa', '~> 0.1.1'
    cookbook 'omusubi', git: "https://github.com/yandod/omusubi.git"
    cookbook 'java'
    cookbook 'selenium-grid', git: "https://github.com/yandod/selenium-grid.git"
  EOS
  config.vm.provision :chef_solo do |chef|
    chef.add_recipe "apt"
    chef.add_recipe "php5_ppa::from_ondrej"
    chef.add_recipe "omusubi"
    chef.add_recipe "java"
    chef.add_recipe "selenium-grid"
  end
end
</pre>
<p><strong>余談：</strong><br />
自分しかやっているのを見たことがないですが、<code>Berksfile</code>をむりやり<code>Vagrantfile</code>に埋め込むやり方が管理が楽なので気に入っています。あくまで<code>Vagrantfile</code>だけでBerkshelfの恩恵を受けられます。</p>
<p><strong>コミュニティクックブックについての衝撃的な知見</strong></p>
<p>https://twitter.com/sawanoboly/status/418726580152573952</p>
<h3>Seleniumのテストケースの記述</h3>
<p>Seleniumを使ったテストケースについてはPHPUnitのサブパッケージであるPHPUnit_SeleniumをComposerで導入して記述しました。SeleniumIDEで生成したテストケースを使ってPhantomJSから実行する方法はテスト結果の出力があまり美しくありませんが、PHPUnit経由で実行すれば通常のPHPUnitのテスト結果と同様にCIに組み込むことができます。PHPUnit_Seleniumの利用方法については公式ドキュメントがあります。</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>PHPUnit Manual – 第17章 PHPUnit と Selenium</strong><br />
<a href="http://phpunit.de/manual/3.7/ja/selenium.html">http://phpunit.de/manual/3.7/ja/selenium.html</a>
</p>
<p>実際にテストを記述してみて分かった間違いやすい点は下記の通りです。</p>
<ul>
<li>PHPUnit_Extensions_SeleniumTestCase<br/>Selenium RCの古いAPIを使ったテストケース。スクリーンショットの取得やさまざまなアサーションが実装されている。</li>
<li>PHPUnit_Extensions_Selenium2TestCase<br/>Selenium WebDriverの新しいAPIを使ったテストケース。<strong><del datetime="2014-01-14T04:18:07+00:00">スクリーンショットの取得やアサーションなどは設計が変わった事で廃止されている。</del>フラグを立てるだけの方法から<a href="http://blog.a-way-out.net/blog/2014/01/14/phpunit-seleniumu2-screenshot-on-failure/" target="_blank">コールバックとリスナーを使った実装に変更</a>。</strong></li>
<li>適度なウェイトを設定しないとコード変更をしていなくてもテストが失敗する。</li>
<li>一定の条件を満たすまで待機する場合はコールバックを利用する。</li>
<li>URLは絶対パスで指定する</li>
</ul>
<p>最大の落とし穴は<code>PHPUnit_Extensions_SeleniumTestCase</code>と<code>PHPUnit_Extensions_Selenium2TestCase</code>が全くの別物である点です。クラス名は1文字違いですが、共通するメソッドはほぼ無い別クラスです。Selenium RCがメンテナンスされていない現状からすると、基本的には<code>PHPUnit_Extensions_Selenium2TestCase</code>を利用するべきという事になります。</p>
<p>また所定のDOMなどが出現するまで動的に待機する場合にはコールバックを使った待機をしますが、ドキュメントにこの方法の記載がありません。<a href="https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCase/WaitUntilTest.php" target="_blank">PHPUnit自身のテストケース内</a>に実例があるのでこれを参考に実装しました。</p>
<pre lang="php">
    public function testImplicitWaitIsRestoredAfterFailure()
    {
        $this->url('html/test_wait.html');
        $this->timeouts()->implicitWait(7000);

        try {
            $this->waitUntil(function($testCase) {
                $testCase->byId('testBox');
                return TRUE;
            });
            $this->fail('Should fail because of the element not exists there yet');
        } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {}

        // in this case - element should be found, because of the implicitWait
        $element = $this->byId('testBox');
        $this->assertEquals('testBox', $element->attribute('id'));
    }
</pre>
<p>実際にCandyCaneのインストーラーを実行するテストは下記のようになりました。インストーラーにアクセス後、ページのタイトルや次の画面へのリンクの表示を確認しながらステップを進めていく形です。また引用では省略していますが、最終的には管理者ユーザーでログインし、メール配信の設定を変更して保存するという管理者機能の挙動をテストしています。</p>
<p><a href="https://github.com/yandod/candycane/blob/master/app/Test/Case/Selenium/InstallerTest.php">candycane/app/Test/Case/Selenium/InstallerTest.php at master · yandod/candycane</a></p>
<pre lang="php">
        $this->url('http://127.0.0.1/cc_install/cc_install/');

        $this->waitUntil(function($testCase){
            return $testCase->title();
        });

        $this->assertEquals('Installation: Welcome - CandyCane', $this->title());

        $this->timeouts()->implicitWait(3000);
        $this->waitUntil(function($testCase){
            $str = $testCase->byId('next-link')->text();
            return !empty($str);
         },100000);


        $link = $this->byId('next-link');
        $this->assertEquals('Click here to begin installation', $link->text());
        $this->moveto($link);
        $this->click();

        $this->assertEquals('Step 1: Database - CandyCane', $this->title());

        $this->select($this->byId('InstallDatasource'))->selectOptionByValue("mysql");
        $input = $this->byId('InstallDatabase');
        $input->clear();
        $input->value('test_candycane');
        $form = $this->byId('InstallDatabaseForm');
        $form->submit();
</pre>
<p><code>vagrant up</code>し、下記のコマンドを実行する事でテストが実行できるようになりました。</p>
<pre lang="cmd">
cd /vagrant_data ;\
mysql -u root -e "drop database if exists test_candycane; \
create database test_candycane;";\
./vendor/bin/phpunit app/Test/Case/Selenium/InstallerTest.php
PHPUnit 3.7.28 by Sebastian Bergmann.

Configuration read from /vagrant_data/phpunit.xml.dist

.

Time: 9.12 seconds, Memory: 3.25Mb

OK (1 test, 9 assertions)
</pre>
<h3>Travis CI上でのテストの実行</h3>
<p>最後にTravis CI上で同じようなテストを実行できるように<code>.travis.yml</code>を調整します。Travis CIのインスタンスにはfirefoxやXvfbなどは導入済みですので、Selenium Serverのダウンロード、Xvfbの起動などを before_scriptに設定します。</p>
<pre lang="txt">
before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
  - "wget http://selenium.googlecode.com/files/selenium-server-standalone-2.39.0.jar"
  - "java -jar selenium-server-standalone-2.39.0.jar > /tmp/selenium.log 2> /tmp/selenium.error &"
</pre>
<p>また、Webからのアクセスを受けるにはApache2を経由してphp-fpmにアクセスする形になります。この際にvhostsの設定ファイルなどをリポジトリに含めておき、同じくスクリプトから設定します。</p>
<pre lang="txt">
before_script:
  - sudo apt-get install apache2 libapache2-mod-fastcgi
  - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
  - sudo a2enmod rewrite actions fastcgi alias
  - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
  - mkdir build
  - cp app/Test/travis/travis-ci-apache build/travis-ci-apache
  - sudo cp -f build/travis-ci-apache /etc/apache2/sites-available/default
  - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/default
  - sudo service apache2 restart
</pre>
<p>これでVagrantのVMと同様の方法でテストが実行可能になりました。</p>
<p>今回の方法はやや泥臭い部分もありますが、PHPで動作するアプリケーションをSeleniumから自動でエンドツーエンドのテストを実行できる面白い方法です。オープンソースのプロダクトを公開している方はぜひテストの組み込みとTravis CIへのタスクの登録をしてみては如何でしょうか。コードを変更してもインストーラーや初期のログインなどの重要な機能が動作している事が担保されるというのはとても良いですよ。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2014/testing-php-app-with-selenium-on-travis/">Travis CI上でPHPアプリのWebベースのテストを自動化する</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2.png"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2014/01/Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2-1024x509.png" alt="Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community-2" width="1024" height="509" class="alignnone size-large wp-image-2305" /></a></p>
<p>PHPなどのさまざまな言語のオープンソースプロジェクトのCI環境として利用されているTravis CIでWebベースのテストを実行してみました。<br />
通常は純粋なコードベースのユニットテストを実行する事が多いかと思いますが、CMSやEコマースエンジンなどオープンソースで配布し、インストールして使うようなソフトウェアではWebブラウザベースでの機能テストを自動化したいというニーズがあるでしょう。Travis CIにはfirefoxがインストールされておりブラウザベースのテストが出来る事は知っていたのですが、今回年末年始の宿題的にテストを実行する為の設定をひと通り行ってみました。</p>
<p>説明を抜きにして動作が見たい方はGitHubとTravis CIへどうぞ</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>yandod/candycane</strong><br />
<a href="https://github.com/yandod/candycane">https://github.com/yandod/candycane</a><br />
<strong>candycane on Travis CI</strong><br />
<a href="https://travis-ci.org/yandod/candycane">https://travis-ci.org/yandod/candycane</a>
</p>
<h3>テストの対象</h3>
<p>今回はCakePHPに移植されたRedmine,CandyCaneのインストーラーを使ったインストールと管理画面へのログインをテストします。これにより機能の追加変更が初期のインストールプロセスを壊さないことを継続的に確認する事を目的としています。インストーラー及び管理画面へのログインには下記のような要素があります。</p>
<ul>
<li>Webブラウザからインストール画面にアクセス</li>
<li><strong>AJAXを利用した実行環境の確認、次のステップへのリンクのクリック</strong></li>
<li>初期データベースの自動作成</li>
<li>管理者ユーザーでのログイン</li>
<li>管理者画面からの設定変更</li>
</ul>
<p>今回は簡単なフローになっていますが、インストーラーと管理画面それぞれにJavaScriptを使った動的な画面制御が存在しています。この部分はブラウザでのテストを行わないと自動化できない部分でこれまで、自動化したテストができていませんでした。</p>
<h3>ローカル環境でのテスト環境の構築</h3>
<p>まずはローカル側でSeleniumとfirefoxを使ったテストの実行環境を構築する必要があります。検索したのですが残念ながら目的にあうChefのクックブックは見つからず、(中途半端なものは存在)今回はクックブックを作成しました。このクックブックをBerkshelfを経由してVagrantのVMに適用することでXvfbとfirefoxにSeleniumを使ったテスト環境が構築できます。またSeleniumの実行に必要なJavaは動けばいいのでこれもコミュニティクックブックをBerkshelfから突っ込んで適用します。クックブックの記述にあたっては下記のような試行錯誤がありましたが、皆様につきましては完成したクックブックを適用して頂ければ4メートル級の巨人の肩に乗れます。</p>
<ul>
<li>PhantomJSのビルドにかかる様々な手間</li>
<li>SeleniumとFirefoxのバージョンの相性。</li>
<li>xvfbのセッションのサービス化</li>
<li>java -jarで起動したプロセスの再起動</li>
</ul>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>yandod/selenium-grid</strong><br />
<a href="https://github.com/yandod/selenium-grid">https://github.com/yandod/selenium-grid</a>
</p>
<p><strong>Vagrantfile</strong></p>
<pre lang="ruby">
Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  src_dir = './'
  doc_root = '/vagrant_data/app/webroot'
  app_name = 'candycane'
  config.vm.network :forwarded_port, guest: 80, host: 8080
  config.vm.synced_folder src_dir, "/vagrant_data", :create => true, :owner=> 'vagrant', :group=>'www-data', :mount_options => ['dmode=775,fmode=775']
  config.berkshelf.enabled = true
  File.open('Berksfile', 'w').write <<-EOS
    cookbook 'apt'
    cookbook 'php5_ppa', '~> 0.1.1'
    cookbook 'omusubi', git: "https://github.com/yandod/omusubi.git"
    cookbook 'java'
    cookbook 'selenium-grid', git: "https://github.com/yandod/selenium-grid.git"
  EOS
  config.vm.provision :chef_solo do |chef|
    chef.add_recipe "apt"
    chef.add_recipe "php5_ppa::from_ondrej"
    chef.add_recipe "omusubi"
    chef.add_recipe "java"
    chef.add_recipe "selenium-grid"
  end
end
</pre>
<p><strong>余談：</strong><br />
自分しかやっているのを見たことがないですが、<code>Berksfile</code>をむりやり<code>Vagrantfile</code>に埋め込むやり方が管理が楽なので気に入っています。あくまで<code>Vagrantfile</code>だけでBerkshelfの恩恵を受けられます。</p>
<p><strong>コミュニティクックブックについての衝撃的な知見</strong></p>
<p>https://twitter.com/sawanoboly/status/418726580152573952</p>
<h3>Seleniumのテストケースの記述</h3>
<p>Seleniumを使ったテストケースについてはPHPUnitのサブパッケージであるPHPUnit_SeleniumをComposerで導入して記述しました。SeleniumIDEで生成したテストケースを使ってPhantomJSから実行する方法はテスト結果の出力があまり美しくありませんが、PHPUnit経由で実行すれば通常のPHPUnitのテスト結果と同様にCIに組み込むことができます。PHPUnit_Seleniumの利用方法については公式ドキュメントがあります。</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>PHPUnit Manual – 第17章 PHPUnit と Selenium</strong><br />
<a href="http://phpunit.de/manual/3.7/ja/selenium.html">http://phpunit.de/manual/3.7/ja/selenium.html</a>
</p>
<p>実際にテストを記述してみて分かった間違いやすい点は下記の通りです。</p>
<ul>
<li>PHPUnit_Extensions_SeleniumTestCase<br/>Selenium RCの古いAPIを使ったテストケース。スクリーンショットの取得やさまざまなアサーションが実装されている。</li>
<li>PHPUnit_Extensions_Selenium2TestCase<br/>Selenium WebDriverの新しいAPIを使ったテストケース。<strong><del datetime="2014-01-14T04:18:07+00:00">スクリーンショットの取得やアサーションなどは設計が変わった事で廃止されている。</del>フラグを立てるだけの方法から<a href="http://blog.a-way-out.net/blog/2014/01/14/phpunit-seleniumu2-screenshot-on-failure/" target="_blank">コールバックとリスナーを使った実装に変更</a>。</strong></li>
<li>適度なウェイトを設定しないとコード変更をしていなくてもテストが失敗する。</li>
<li>一定の条件を満たすまで待機する場合はコールバックを利用する。</li>
<li>URLは絶対パスで指定する</li>
</ul>
<p>最大の落とし穴は<code>PHPUnit_Extensions_SeleniumTestCase</code>と<code>PHPUnit_Extensions_Selenium2TestCase</code>が全くの別物である点です。クラス名は1文字違いですが、共通するメソッドはほぼ無い別クラスです。Selenium RCがメンテナンスされていない現状からすると、基本的には<code>PHPUnit_Extensions_Selenium2TestCase</code>を利用するべきという事になります。</p>
<p>また所定のDOMなどが出現するまで動的に待機する場合にはコールバックを使った待機をしますが、ドキュメントにこの方法の記載がありません。<a href="https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCase/WaitUntilTest.php" target="_blank">PHPUnit自身のテストケース内</a>に実例があるのでこれを参考に実装しました。</p>
<pre lang="php">
    public function testImplicitWaitIsRestoredAfterFailure()
    {
        $this->url('html/test_wait.html');
        $this->timeouts()->implicitWait(7000);

        try {
            $this->waitUntil(function($testCase) {
                $testCase->byId('testBox');
                return TRUE;
            });
            $this->fail('Should fail because of the element not exists there yet');
        } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {}

        // in this case - element should be found, because of the implicitWait
        $element = $this->byId('testBox');
        $this->assertEquals('testBox', $element->attribute('id'));
    }
</pre>
<p>実際にCandyCaneのインストーラーを実行するテストは下記のようになりました。インストーラーにアクセス後、ページのタイトルや次の画面へのリンクの表示を確認しながらステップを進めていく形です。また引用では省略していますが、最終的には管理者ユーザーでログインし、メール配信の設定を変更して保存するという管理者機能の挙動をテストしています。</p>
<p><a href="https://github.com/yandod/candycane/blob/master/app/Test/Case/Selenium/InstallerTest.php">candycane/app/Test/Case/Selenium/InstallerTest.php at master · yandod/candycane</a></p>
<pre lang="php">
        $this->url('http://127.0.0.1/cc_install/cc_install/');

        $this->waitUntil(function($testCase){
            return $testCase->title();
        });

        $this->assertEquals('Installation: Welcome - CandyCane', $this->title());

        $this->timeouts()->implicitWait(3000);
        $this->waitUntil(function($testCase){
            $str = $testCase->byId('next-link')->text();
            return !empty($str);
         },100000);


        $link = $this->byId('next-link');
        $this->assertEquals('Click here to begin installation', $link->text());
        $this->moveto($link);
        $this->click();

        $this->assertEquals('Step 1: Database - CandyCane', $this->title());

        $this->select($this->byId('InstallDatasource'))->selectOptionByValue("mysql");
        $input = $this->byId('InstallDatabase');
        $input->clear();
        $input->value('test_candycane');
        $form = $this->byId('InstallDatabaseForm');
        $form->submit();
</pre>
<p><code>vagrant up</code>し、下記のコマンドを実行する事でテストが実行できるようになりました。</p>
<pre lang="cmd">
cd /vagrant_data ;\
mysql -u root -e "drop database if exists test_candycane; \
create database test_candycane;";\
./vendor/bin/phpunit app/Test/Case/Selenium/InstallerTest.php
PHPUnit 3.7.28 by Sebastian Bergmann.

Configuration read from /vagrant_data/phpunit.xml.dist

.

Time: 9.12 seconds, Memory: 3.25Mb

OK (1 test, 9 assertions)
</pre>
<h3>Travis CI上でのテストの実行</h3>
<p>最後にTravis CI上で同じようなテストを実行できるように<code>.travis.yml</code>を調整します。Travis CIのインスタンスにはfirefoxやXvfbなどは導入済みですので、Selenium Serverのダウンロード、Xvfbの起動などを before_scriptに設定します。</p>
<pre lang="txt">
before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
  - "wget http://selenium.googlecode.com/files/selenium-server-standalone-2.39.0.jar"
  - "java -jar selenium-server-standalone-2.39.0.jar > /tmp/selenium.log 2> /tmp/selenium.error &"
</pre>
<p>また、Webからのアクセスを受けるにはApache2を経由してphp-fpmにアクセスする形になります。この際にvhostsの設定ファイルなどをリポジトリに含めておき、同じくスクリプトから設定します。</p>
<pre lang="txt">
before_script:
  - sudo apt-get install apache2 libapache2-mod-fastcgi
  - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
  - sudo a2enmod rewrite actions fastcgi alias
  - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
  - mkdir build
  - cp app/Test/travis/travis-ci-apache build/travis-ci-apache
  - sudo cp -f build/travis-ci-apache /etc/apache2/sites-available/default
  - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/default
  - sudo service apache2 restart
</pre>
<p>これでVagrantのVMと同様の方法でテストが実行可能になりました。</p>
<p>今回の方法はやや泥臭い部分もありますが、PHPで動作するアプリケーションをSeleniumから自動でエンドツーエンドのテストを実行できる面白い方法です。オープンソースのプロダクトを公開している方はぜひテストの組み込みとTravis CIへのタスクの登録をしてみては如何でしょうか。コードを変更してもインストーラーや初期のログインなどの重要な機能が動作している事が担保されるというのはとても良いですよ。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2014/testing-php-app-with-selenium-on-travis/">Travis CI上でPHPアプリのWebベースのテストを自動化する</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2014/testing-php-app-with-selenium-on-travis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>商用アプリケーションにおけるパッチ適用</title>
		<link>http://www.engineyard.co.jp/blog/2014/apply-patch-to-commercial-apps/</link>
		<comments>http://www.engineyard.co.jp/blog/2014/apply-patch-to-commercial-apps/#comments</comments>
		<pubDate>Mon, 06 Jan 2014 01:19:35 +0000</pubDate>
		<dc:creator><![CDATA[今中 崇泰]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2159</guid>
		<description><![CDATA[<p><h3></h3>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/patch_top_image.png"><img class="alignnone size-large wp-image-1935" style="border: 1px solid black;" alt="Patch" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/patch_top_image.png" /></a></p>
<h3>商用アプリケーションにおけるパッチ適用</h3>
<p>安定稼働しているアプリケーションシステムに対して、パッチを適用することほど億劫な作業はない、と思ったことのある保守・運用の担当者の方は多いのではないでしょうか。</p>
<p>私はERP/CRMパッケージを開発・販売する米国のベンダーの立場として、パッケージ導入に10数年にわたってお客様やビジネスパートナーを支援してきましたが、安定稼働しているシステムへのパッチ適用はまったく歓迎されるものではありませんでした。特にイントラネットでの利用が多いERPをご利用のお客様は、その傾向が強かったと言えます。</p>
<p>そのような状況を知りつつも、以下のような種類のパッチをお客様に提供し、それらの適用を促し続けていました。</p>
<ul>
<li>セキュリティアップデートパッチ (四半期に一度)</li>
<li>法改正用メンテナンスパッチ (半年に一度)</li>
<li>不具合修正のメンテナンスパッチ (随時)</li>
<li>アップグレードパッチ (随時)</li>
</ul>
<p>それは、パッチ適用を行っていただかなくては、不具合による障害や(たとえイントラネットのERPであったとしても)セキュリティの脆弱性によってサイバー攻撃の標的になりかねないことが理由としてあります。しかしそれだけではなく、パッチ適用をしないことで製品のアップグレードが保証されなくなり、保守費用をベンダーに支払っても、正規の技術サポートが受けられなくなる、もしくはサポートの範囲が限られるなどのベンダー都合の制約につながるためです。</p>
<p>オンプレミス形態のERP/CRMシステムの場合、OS層、ミドルウェア層(DBサーバー、APサーバー、開発ツール)、ランタイム層、アプリケーション層(共通基盤、会計、製造、人事など)といった、ありとあらゆるレイヤーへのパッチ適用が必要でその数も膨大になるため、どのレイヤーにどのレベルまでパッチを適用するかを、パッチ適用実施の半年前に定めるプロジェクトもある程です。それほどまでに骨の折れる大変な保守作業です。</p>
<p>そういう意味で、SaaS形態のアプリケーションを採用する利用者の視点に立てば、すべてのレイヤーのパッチ適用をSaaSベンダーに完全に委任できる画期的なソリューションであると言えるでしょう。</p>
<p>そしてまた、SaaS形態でアプリケーションを提供する先進的なアプリケーション開発ベンダーの視点に立てば、主なPaaSでアプリケーションを稼働させることで、プラットフォーム層(OS層、ミドルウェア層、ランタイム層)までのパッチ適用の保守作業をPaaSベンダーに委任でき、アプリケーションの継続的な開発保守に専念できるという大きなメリットを享受できます。</p>
<p>&nbsp;</p>
<h3>PaaSを用いた場合のパッチ適用</h3>
<p>主なPaaSベンダーは、OS層、ミドルウェア層(DBサーバー、APサーバー、開発ツール)、ランタイム層における保守運用サービスを提供しています。つまり、そのレイヤーに対する各種パッチの検証はPaaSベンダー側で予め行い、それらのパッチ適用までベンダーで行うか、もしくは容易に適用できる仕組みを提供するかのいずれかに分かれます。</p>
<p>PaaSと称するサービスベンダーの中には、仮想マシンのプロビジョニングとアプリケーションのデプロイの仕組みを提供しつつも、プラットフォーム層に対するパッチ適用、もしくはそれを支援する仕組みの提供まで行っていないものもあります。そのようなPaaSは、本当の意味でPaaSとは言えないでしょう。</p>
<p>ここでは本当の意味でPaaSと言えるサービスにフォーカスを置いて話しを続けます。</p>
<p>一般的に「<strong>パッチ適用までベンダーで行う形態</strong>」は「<strong>マルチテナント PaaS</strong>」を提供しているPaaSベンダーとされます。それに対して「<strong>パッチ適用を簡易的に行う仕組みを提供する形態</strong>」は「<strong>シングルテナント PaaS</strong>」を提供しているPaaSベンダーとされています。</p>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/Single_vs_Multi_for_PaaS.png"><img class="alignnone size-large wp-image-1794" alt="Single_vs_Multi_for_PaaS" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/Single_vs_Multi_for_PaaS-1024x555.png" width="1024" height="555" /></a></p>
<p>※「<strong>シングルテナント PaaS</strong>」と「<strong>マルチテナント PaaS</strong>」の優位性については、ブログ記事「<strong><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></strong>」をご参照ください。</p>
<p>ではここで、パッチ適用という観点で「<strong>シングルテナント PaaS</strong>」と「<strong>マルチテナント PaaS</strong>」の長所と短所をご紹介します。</p>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Single_vs_Multi_comptable_for_patch.png"><img class="alignnone size-large wp-image-1794" alt="Single_vs_Multi_for_PaaS" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Single_vs_Multi_comptable_for_patch.png" /></a></p>
<p>ブログ記事「<strong><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></strong>」でご紹介しているとおり、Engine Yardは「<strong>シングルテナント PaaS</strong>」を提供するベンダーであり、われわれのお客様が『<strong>Engine Yardは商用で利用するのに適しているPaaSである</strong>』と評価してくださる理由がこの表に込められています。</p>
<p>商用のアプリケーションに対するパッチ適用のタイミングは、PaaSベンダーにコントロールされるべきものではありません。プラットフォーム層のパッチを適用することによって、動作していたアプリケーションに障害が起きては、お客様のビジネスの大きな機会損失にも繋がりかねないためです。</p>
<p>そこでEngine Yardでは、パッチ適用のベストプラクティスとして、クローン環境を構築する機能と組み合わせて、以下の手順を定めています。</p>
<p><strong>パッチ適用のベストプラックティス：</strong></p>
<ol>
<li>クローン環境を構築する</li>
<li>クローン環境にパッチ適用を行う</li>
<li>クローン環境でアプリケーションの検証を行い、障害が発生しないことを確認する</li>
<li>本番環境をアップグレードする</li>
<li>クローン環境を停止して削除する</li>
</ol>
<p>ステップ3のパッチ適用後の動作検証については、お客様ご自身で行っていただく必要がありますが、ステップ1、2、4、5については、簡単に実施できる仕組みを提供しています。</p>
<p>※ クローン環境の構築に関しては、ブログ記事「<strong><a title="アプリケーション環境のクローン機能" href="http://www.engineyard.co.jp/blog/2013/application-clone/" target="_blank">アプリケーション環境のクローン機能</a></strong>」をご参照ください。</p>
<p>&nbsp;</p>
<h3>Engine Yardのパッチ適用</h3>
<p>Engine Yard Cloudでは、ダッシュボードと呼ばれるGUIの画面から次の手順で簡単にパッチ適用を行うことができます。</p>
<ol>
<li><strong>パッチ適用が必要であることを確認</strong><br />
Engine Yard Cloudのアプリケーション環境の詳細ページに表示される「<strong>Upgrade</strong>」ボタンが青くなり「<strong>▲</strong>」マークが表示されている場合、パッチ適用が必要であることを意味します。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_button_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step1" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_button_clone.png" /></a></li>
<p><br></p>
<li><strong>どのようなパッチを適用する必要があるかを確認</strong><br />
「<strong>Upgrade</strong>」ボタンをクリックすると、ご利用のアプリケーション環境に対して適用が必要なパッチがリストされます。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_list_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step2" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_list_clone.png" width="780" height="894" /></a></li>
<p><br></p>
<li><strong>パッチ適用を実施</strong><br />
「<strong>Upgrade Environment</strong>」ボタンをクリックし、適用の完了を待ちます。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step3" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_clone.png" /></a><br><br>本番環境にパッチ適用を行う場合には、CLIを用いてメンテナンスモードに切り替えてから実施することをご検討ください。メンテナンスモードの切り替えコマンドについては、「<strong><a title="eyコマンドの基本" href="https://support.cloud.engineyard.com/entries/25068712?locale=67" target="_blank">eyコマンドの基本</a></strong>」をご参照ください。</li>
</ol>
<p>なお、この機能で適用されるパッチとしては以下のような種類が含まれます。</p>
<ul>
<li>プラットフォームのバグ修正</li>
<li>プラットフォームの新機能追加</li>
<li>プラットフォームの既存コンポーネントのチューニング</li>
<li>プラットフォームの既存コンポーネントのアップデート</li>
<li>プラットフォームの既存コンポーネントのセキュリティ脆弱性</li>
<li>プラットフォームの新規コンポーネントの追加</li>
<li>新規の仮想インスタンス種類への追加対応</li>
<li>アドオンとの連携設定の追加・修正<br />
など</li>
</ul>
<p>&nbsp;</p>
<h3>参考情報</h3>
<p>ここでは、本トピックに関連して参考になる情報のリンクをご紹介します。必要に応じて、ご覧いただければと思います。</p>
<ul>
<li><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></li>
<li><a title="アプリケーション環境のクローン機能" href="http://www.engineyard.co.jp/blog/2013/application-clone/" target="_blank">アプリケーション環境のクローン機能</a></li>
<li><a title="環境のアップグレード" href="https://support.cloud.engineyard.com/entries/22329867?locale=67" target="_blank">環境のアップグレード</a></li>
<li><a title="eyコマンドの基本" href="https://support.cloud.engineyard.com/entries/25068712?locale=67" target="_blank">eyコマンドの基本</a></li>
<li><a title="Upgrade an Environment (英語版)" href="https://support.cloud.engineyard.com/entries/21009922?locale=67" target="_blank">Upgrade an Environment (英語版)</a></li>
<li><a title="Using Application Maintenance Pages (英語版)" href="https://support.cloud.engineyard.com/entries/21016428?locale=67" target="_blank"> Using Application Maintenance Pages (英語版)</a></li>
</ul>
<p>&nbsp;</p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2014/apply-patch-to-commercial-apps/">商用アプリケーションにおけるパッチ適用</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<h3></h3>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/patch_top_image.png"><img class="alignnone size-large wp-image-1935" style="border: 1px solid black;" alt="Patch" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/patch_top_image.png" /></a></p>
<h3>商用アプリケーションにおけるパッチ適用</h3>
<p>安定稼働しているアプリケーションシステムに対して、パッチを適用することほど億劫な作業はない、と思ったことのある保守・運用の担当者の方は多いのではないでしょうか。</p>
<p>私はERP/CRMパッケージを開発・販売する米国のベンダーの立場として、パッケージ導入に10数年にわたってお客様やビジネスパートナーを支援してきましたが、安定稼働しているシステムへのパッチ適用はまったく歓迎されるものではありませんでした。特にイントラネットでの利用が多いERPをご利用のお客様は、その傾向が強かったと言えます。</p>
<p>そのような状況を知りつつも、以下のような種類のパッチをお客様に提供し、それらの適用を促し続けていました。</p>
<ul>
<li>セキュリティアップデートパッチ (四半期に一度)</li>
<li>法改正用メンテナンスパッチ (半年に一度)</li>
<li>不具合修正のメンテナンスパッチ (随時)</li>
<li>アップグレードパッチ (随時)</li>
</ul>
<p>それは、パッチ適用を行っていただかなくては、不具合による障害や(たとえイントラネットのERPであったとしても)セキュリティの脆弱性によってサイバー攻撃の標的になりかねないことが理由としてあります。しかしそれだけではなく、パッチ適用をしないことで製品のアップグレードが保証されなくなり、保守費用をベンダーに支払っても、正規の技術サポートが受けられなくなる、もしくはサポートの範囲が限られるなどのベンダー都合の制約につながるためです。</p>
<p>オンプレミス形態のERP/CRMシステムの場合、OS層、ミドルウェア層(DBサーバー、APサーバー、開発ツール)、ランタイム層、アプリケーション層(共通基盤、会計、製造、人事など)といった、ありとあらゆるレイヤーへのパッチ適用が必要でその数も膨大になるため、どのレイヤーにどのレベルまでパッチを適用するかを、パッチ適用実施の半年前に定めるプロジェクトもある程です。それほどまでに骨の折れる大変な保守作業です。</p>
<p>そういう意味で、SaaS形態のアプリケーションを採用する利用者の視点に立てば、すべてのレイヤーのパッチ適用をSaaSベンダーに完全に委任できる画期的なソリューションであると言えるでしょう。</p>
<p>そしてまた、SaaS形態でアプリケーションを提供する先進的なアプリケーション開発ベンダーの視点に立てば、主なPaaSでアプリケーションを稼働させることで、プラットフォーム層(OS層、ミドルウェア層、ランタイム層)までのパッチ適用の保守作業をPaaSベンダーに委任でき、アプリケーションの継続的な開発保守に専念できるという大きなメリットを享受できます。</p>
<p>&nbsp;</p>
<h3>PaaSを用いた場合のパッチ適用</h3>
<p>主なPaaSベンダーは、OS層、ミドルウェア層(DBサーバー、APサーバー、開発ツール)、ランタイム層における保守運用サービスを提供しています。つまり、そのレイヤーに対する各種パッチの検証はPaaSベンダー側で予め行い、それらのパッチ適用までベンダーで行うか、もしくは容易に適用できる仕組みを提供するかのいずれかに分かれます。</p>
<p>PaaSと称するサービスベンダーの中には、仮想マシンのプロビジョニングとアプリケーションのデプロイの仕組みを提供しつつも、プラットフォーム層に対するパッチ適用、もしくはそれを支援する仕組みの提供まで行っていないものもあります。そのようなPaaSは、本当の意味でPaaSとは言えないでしょう。</p>
<p>ここでは本当の意味でPaaSと言えるサービスにフォーカスを置いて話しを続けます。</p>
<p>一般的に「<strong>パッチ適用までベンダーで行う形態</strong>」は「<strong>マルチテナント PaaS</strong>」を提供しているPaaSベンダーとされます。それに対して「<strong>パッチ適用を簡易的に行う仕組みを提供する形態</strong>」は「<strong>シングルテナント PaaS</strong>」を提供しているPaaSベンダーとされています。</p>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/Single_vs_Multi_for_PaaS.png"><img class="alignnone size-large wp-image-1794" alt="Single_vs_Multi_for_PaaS" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/Single_vs_Multi_for_PaaS-1024x555.png" width="1024" height="555" /></a></p>
<p>※「<strong>シングルテナント PaaS</strong>」と「<strong>マルチテナント PaaS</strong>」の優位性については、ブログ記事「<strong><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></strong>」をご参照ください。</p>
<p>ではここで、パッチ適用という観点で「<strong>シングルテナント PaaS</strong>」と「<strong>マルチテナント PaaS</strong>」の長所と短所をご紹介します。</p>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Single_vs_Multi_comptable_for_patch.png"><img class="alignnone size-large wp-image-1794" alt="Single_vs_Multi_for_PaaS" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Single_vs_Multi_comptable_for_patch.png" /></a></p>
<p>ブログ記事「<strong><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></strong>」でご紹介しているとおり、Engine Yardは「<strong>シングルテナント PaaS</strong>」を提供するベンダーであり、われわれのお客様が『<strong>Engine Yardは商用で利用するのに適しているPaaSである</strong>』と評価してくださる理由がこの表に込められています。</p>
<p>商用のアプリケーションに対するパッチ適用のタイミングは、PaaSベンダーにコントロールされるべきものではありません。プラットフォーム層のパッチを適用することによって、動作していたアプリケーションに障害が起きては、お客様のビジネスの大きな機会損失にも繋がりかねないためです。</p>
<p>そこでEngine Yardでは、パッチ適用のベストプラクティスとして、クローン環境を構築する機能と組み合わせて、以下の手順を定めています。</p>
<p><strong>パッチ適用のベストプラックティス：</strong></p>
<ol>
<li>クローン環境を構築する</li>
<li>クローン環境にパッチ適用を行う</li>
<li>クローン環境でアプリケーションの検証を行い、障害が発生しないことを確認する</li>
<li>本番環境をアップグレードする</li>
<li>クローン環境を停止して削除する</li>
</ol>
<p>ステップ3のパッチ適用後の動作検証については、お客様ご自身で行っていただく必要がありますが、ステップ1、2、4、5については、簡単に実施できる仕組みを提供しています。</p>
<p>※ クローン環境の構築に関しては、ブログ記事「<strong><a title="アプリケーション環境のクローン機能" href="http://www.engineyard.co.jp/blog/2013/application-clone/" target="_blank">アプリケーション環境のクローン機能</a></strong>」をご参照ください。</p>
<p>&nbsp;</p>
<h3>Engine Yardのパッチ適用</h3>
<p>Engine Yard Cloudでは、ダッシュボードと呼ばれるGUIの画面から次の手順で簡単にパッチ適用を行うことができます。</p>
<ol>
<li><strong>パッチ適用が必要であることを確認</strong><br />
Engine Yard Cloudのアプリケーション環境の詳細ページに表示される「<strong>Upgrade</strong>」ボタンが青くなり「<strong>▲</strong>」マークが表示されている場合、パッチ適用が必要であることを意味します。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_button_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step1" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_button_clone.png" /></a></li>
<p><br></p>
<li><strong>どのようなパッチを適用する必要があるかを確認</strong><br />
「<strong>Upgrade</strong>」ボタンをクリックすると、ご利用のアプリケーション環境に対して適用が必要なパッチがリストされます。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_list_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step2" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_list_clone.png" width="780" height="894" /></a></li>
<p><br></p>
<li><strong>パッチ適用を実施</strong><br />
「<strong>Upgrade Environment</strong>」ボタンをクリックし、適用の完了を待ちます。<a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_clone.png"><img class="alignnone size-full wp-image-1943" style="border: 1px solid black;" alt="Patch_Apply_Step3" src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/upgrade_items_clone.png" /></a><br><br>本番環境にパッチ適用を行う場合には、CLIを用いてメンテナンスモードに切り替えてから実施することをご検討ください。メンテナンスモードの切り替えコマンドについては、「<strong><a title="eyコマンドの基本" href="https://support.cloud.engineyard.com/entries/25068712?locale=67" target="_blank">eyコマンドの基本</a></strong>」をご参照ください。</li>
</ol>
<p>なお、この機能で適用されるパッチとしては以下のような種類が含まれます。</p>
<ul>
<li>プラットフォームのバグ修正</li>
<li>プラットフォームの新機能追加</li>
<li>プラットフォームの既存コンポーネントのチューニング</li>
<li>プラットフォームの既存コンポーネントのアップデート</li>
<li>プラットフォームの既存コンポーネントのセキュリティ脆弱性</li>
<li>プラットフォームの新規コンポーネントの追加</li>
<li>新規の仮想インスタンス種類への追加対応</li>
<li>アドオンとの連携設定の追加・修正<br />
など</li>
</ul>
<p>&nbsp;</p>
<h3>参考情報</h3>
<p>ここでは、本トピックに関連して参考になる情報のリンクをご紹介します。必要に応じて、ご覧いただければと思います。</p>
<ul>
<li><a title="PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？" href="http://www.engineyard.co.jp/blog/2013/singletenancy-vs-mutitenancy/" target="_blank">PaaSレイヤーの「シングルテナント」と「マルチテナント」はどちらが優位か？</a></li>
<li><a title="アプリケーション環境のクローン機能" href="http://www.engineyard.co.jp/blog/2013/application-clone/" target="_blank">アプリケーション環境のクローン機能</a></li>
<li><a title="環境のアップグレード" href="https://support.cloud.engineyard.com/entries/22329867?locale=67" target="_blank">環境のアップグレード</a></li>
<li><a title="eyコマンドの基本" href="https://support.cloud.engineyard.com/entries/25068712?locale=67" target="_blank">eyコマンドの基本</a></li>
<li><a title="Upgrade an Environment (英語版)" href="https://support.cloud.engineyard.com/entries/21009922?locale=67" target="_blank">Upgrade an Environment (英語版)</a></li>
<li><a title="Using Application Maintenance Pages (英語版)" href="https://support.cloud.engineyard.com/entries/21016428?locale=67" target="_blank"> Using Application Maintenance Pages (英語版)</a></li>
</ul>
<p>&nbsp;</p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2014/apply-patch-to-commercial-apps/">商用アプリケーションにおけるパッチ適用</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2014/apply-patch-to-commercial-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2013年Rubyの話題を一挙に振り返るまとめ</title>
		<link>http://www.engineyard.co.jp/blog/2013/year-of-ruby/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/year-of-ruby/#comments</comments>
		<pubDate>Sun, 29 Dec 2013 06:35:36 +0000</pubDate>
		<dc:creator><![CDATA[Yu Kitazume]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2219</guid>
		<description><![CDATA[<p><p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/2013-11-07-15.21.37.jpg"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/2013-11-07-15.21.37-1024x768.jpg" alt="2013-11-07 15.21.37" width="1024" height="768" class="alignnone size-large wp-image-2269" /></a><br />
<em>サンフランシスコのEngine Yard オフィス</em></p>
<p><a href="http://www.engineyard.co.jp/blog/2013/year-of-chef/">Chef</a>、 <a href="http://www.engineyard.co.jp/blog/2013/year-of-php/">PHP</a>につづき、Rubyの今年2013年を今年人気を集めた記事をテーマ別にまとめました。<a href="http://b.hatena.ne.jp/">はてなブックマーク</a>の数と一緒に振り返っていきます。今年の2月24日にRuby20周年を迎え、<a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/">ruby-2.0.0がリリース</a>されました。他にもRails4のリリース、<a href="http://www.atmarkit.co.jp/ait/articles/1306/03/news057.html">RubyKaigiの再開</a>など多くのトピックがありました。</p>
<p><strong>目次</strong></p>
<ul>
<li><a href="#cruby-relesed">Ruby20周年！そしてruby-2.0.0, ruby-2.1.0のリリース</a></li>
<li><a href="#cruby">言語実装への興味、ガベージコレクションほか</a></li>
<li><a href="#spread">Rubyのひろがり</a></li>
<li><a href="#rails">Rails4のリリースとRailsの成熟</a></li>
<li><a href="#testci">テスト、CI</a></li>
<li><a href="#newways">開発環境、手法、デザイン</a></li>
<li><a href="#start">チュートリアル、Ruby, Railsを始める</a></li>
<li><a href="#books">Ruby 話題の本</a></li>
<li><a href="#maked">作りました！</a></li>
<li><a href="#opp">新しいライブラリ</a></li>
<li><a href="#fluentd">ログ・マネージメント fluentd</a></li>
<li><a href="#tips">Tips! コーディング</a></li>
<li><a href="#clientbackend">クライアントサイドとバックエンド</a></li>
<li><a href="#env">Rubyを取り巻く環境、組織</a></li>
<li><a href="#func">TwitterがRubyからJVM 言語群へ。関数型言語のトレンド<br />
</a></li>
</ul>
<h3 id="cruby-relesed">Ruby20周年！そしてruby-2.0.0, ruby-2.1.0のリリース</h3>
<p>Rubyが20周年を迎え、その丁度記念日となる2月24日に<a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/">ruby-2.0.0-p0がリリース</a>。クリスマスには<a href="http://www.ruby-lang.org/ja/news/2013/12/25/ruby-2-1-0-is-released/">2.1.0がリリース</a>されました。そして、長らくお世話になったruby-1.8.7が引退しました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/" target="_blank">Ruby 2.0.0-p0 リリース</a></td>
<td>400</td>
<td>2013/02/24/</td>
</tr>
<tr>
<td><a href="http://jp.rubyist.net/magazine/?0041-200Special" target="_blank">Rubyist Magazine - Ruby 2.0.0 リリース特集</a></td>
<td>123</td>
<td>2013/02/24</td>
</tr>
<tr>
<td><a href="http://mrkn.hatenablog.com/entry/2013/03/19/232728" target="_blank">大江戸 Ruby 会議03で、某レシピサイトの Ruby 1.9.3 対応で苦労した点を共有しました - mrkn's diary</a></td>
<td>186</td>
<td>2013/03/19</td>
</tr>
<tr>
<td><a href="http://www.infoq.com/jp/news/2013/09/ruby-2-1-gc-revamp" target="_blank">Ruby 2.1がガベージコレクションを変更，大規模システムでの批判に対処</a></td>
<td>142</td>
<td>2013/09/24</td>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/12/25/ruby-2-1-0-is-released/ " target="_blank">Ruby 2.1.0-p0 リリース</a></td>
<td>-</td>
<td>2013/12/25</td>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/" target="_blank">Ruby 1.8.7 は引退しました</a></td>
<td>144</td>
<td>2013/06/30</td>
</tr>
</tbody>
</table>
<h3 id="cruby">言語実装への興味、ガベージコレクションほか</h3>
<p>言語そのものの実装にも多くの興味が寄せました。Crubyのコミッターの方々のブログを中心に多くのブックマークが付けれれました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://loveruby.net/ja/rhg/book/gc.html" target="_blank">第5章 ガ−ベージコレクション</a></td>
<td>179</td>
<td>2013/06/15</td>
</tr>
<tr>
<td><a href="http://shyouhei.tumblr.com/post/64498820681/10-ruby" target="_blank">卜部昌平のあまりreblogしないtumblr - '10年代のRubyコア用語集</a></td>
<td>287</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/65317231718/ruby-python" target="_blank">RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp</a></td>
<td>325</td>
<td>2013/10/28</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20131209/1386583244" target="_blank">パーフェクトなCRubyを目指して - 1行のバグ修正に潜む苦労 - - I am Cruby!</a></td>
<td>184</td>
<td>2013/12/09</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/kazuhooku/20131221/1387603305" target="_blank">「今日使われているプログラミング言語の多くは、なぜ1990年前後に誕生したものなのか」に関する一考察 - kazuhoのメモ置き場</a></td>
<td>346</td>
<td>2013/12/21</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20130317/1363476355" target="_blank">桐島、Rubyやめるってよ #odrk03 - I am Cruby!</a></td>
<td>281</td>
<td>2013/03/17</td>
</tr>
</tbody>
</table>
<h3 id="spread">Rubyのひろがり</h3>
<p>iOSアプリ、任天堂3DS、OpenFlow、エクセル、結婚式からダジャレまでRubyで作られたものは様々な所に広がっています。さらにユーザも中学生から女優までさまざま。mruby, RubyMotionの話題も追加し、人気を集めたRubyでつくらたものを集めてみました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/laiso+iphone/20130624/1372093093" target="_blank">Objective-Cを絶対書きたくない人向けのiOSアプリ開発ソリューションの総括 - laiso</a></td>
<td>605</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/yuyarin/ll2013-yuyarin-distpptx" target="_blank">Rubyで創るOpenFlowネットワーク - LLまつり</a></td>
<td>181</td>
<td>2013/08/24</td>
</tr>
<tr>
<td><a href="http://blog.64p.org/entry/2013/01/04/114443" target="_blank">ちょっとした GUI アプリケーションをつくるのに MacRuby はよい選択肢となりうる - tokuhirom's blog.</a></td>
<td>175</td>
<td>2013/01/04</td>
</tr>
<tr>
<td><a href="http://blog.katsuma.tv/2013/01/siriproxy-iremocon.html" target="_blank">SiriProxyのプラグインとしてSiriで家電を操作するSiriProxy-iRemocon - blog.katsuma.tv</a></td>
<td>170</td>
<td>2013/01/05</td>
</tr>
<tr>
<td><a href="http://blog.64p.org/entry/2013/01/08/102032" target="_blank">MacRuby でメニューバーのステータスメニューに常駐するアプリを作るための雛形をつくりました! - tokuhirom's blog.</a></td>
<td>229</td>
<td>2013/01/08</td>
</tr>
<tr>
<td><a href="http://webos-goodies.jp/archives/migrating_to_amazon_s3_static_web_hosting.html" target="_blank">サイトを Amazon S3 に移行しました - WebOS Goodies</a></td>
<td>262</td>
<td>2013/01/10</td>
</tr>
<tr>
<td><a href="http://tutorial.rubymotion.jp/" target="_blank">RubyMotion Tutorial: Ruby で iOS アプリを作ろう</a></td>
<td>285</td>
<td>2013/03/03</td>
</tr>
<tr>
<td><a href="http://blog.supermomonga.com/articles/jruby/javafx-rawr.html" target="_blank">RubyでGUIアプリを作るならJRuby+JavaFX+Rawrで決まり！ | かなりすごいブログ</a></td>
<td>323</td>
<td>2013/08/10</td>
</tr>
<tr>
<td><a href="http://www.nintendo.co.jp/3ds/interview/streetpass_relay/vol1/index4.html" target="_blank">ニンテンドー3DS｜社長が訊く「すれちがい通信中継所」｜Nintendo</a></td>
<td>238</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://portal.nifty.com/kiji/130921161837_1.htm" target="_blank">@nifty：デイリーポータルZ：コンピューターにダジャレを教える</a></td>
<td>133</td>
<td>2013/09/22</td>
</tr>
<tr>
<td><a href="http://mamipeko.hatenablog.com/entry/happy-wedding-s" target="_blank">「ご結婚おめでとう」親友に贈ったコードとデザインの話 - はぁはぁブログ</a></td>
<td>620</td>
<td>2013/10/23</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/11/11/your-data-from-excel-to-the-web/" target="_blank">Excelデータを最速でWebアプリ(Heroku)にする１０のステップ</a></td>
<td>254</td>
<td>2013/11/11</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20131205/1386237472" target="_blank">RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー</a></td>
<td>408</td>
<td>2013/12/05</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130110/p1" target="_blank">仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記</a></td>
<td>276</td>
<td>2013/01/10</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130113/ruby_oneliner" target="_blank">Rubyワンライナー入門 - maeharinの日記</a></td>
<td>223</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://blog.masuidrive.jp/index.php/2013/01/24/diff-cruby-mruby/" target="_blank">軽量Ruby – mrubyとRubyの違い - @masuidrive blog</a></td>
<td>173</td>
<td>2013/01/25</td>
</tr>
<tr>
<td><a href="http://blog.matsumoto-r.jp/?p=3588" target="_blank">mrubyによるWebサーバの機能拡張支援機構を一緒に開発しませんか？</a></td>
<td>150</td>
<td>2013/07/01</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1303/04/news119.html" target="_blank">Rails Girls Tokyo レポート：キラッキラな「Ruby on Rails」の世界へ――Rails Girls 25人が集結 - ＠IT</a></td>
<td>103</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href="http://blog.layer8.sh/ja/2013/05/30/ruby-girl-01/" target="_blank">【インタビュー】女子大生Webデザイナーが独学でRubyプログラマーへ転身！Ruby認定試験Goldを2ヶ月で取得したコツ</a></td>
<td>146</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130627/488123/" target="_blank">ニュース - 松江市が中学生Ruby教室用ソフト一式をGitHubで公開、テキストもCCで無償配布：ITpro</a></td>
<td>191</td>
<td>2013/06/27</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130807/497268/" target="_blank">ニュース - 中学生Ruby教室“Mac編”のテキストとサンプルプログラム、松江市が無償公開：ITpro</a></td>
<td>103</td>
<td>2013/08/07</td>
</tr>
<tr>
<td><a href="http://weekly.ascii.jp/elem/000/000/162/162420/" target="_blank">ガチでギークな女優、池澤あやかがアメブロからTumblrに移行したワケ｜Mac</a></td>
<td>192</td>
<td>2013/08/08</td>
</tr>
<tr>
<td><a href="http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002298" target="_blank">Ｒｕｂｙの女神降臨！池澤あやかのプログラミング｜【Tech総研】</a></td>
<td>468</td>
<td>2013/02/28</td>
</tr>
</tbody>
</table>
<h3 id="rails">Rails4のリリースとRailsの成熟</h3>
<p>Railsの話題はつきません。今年はRails4がリリースされ、たくさんのノウハウが共有されました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://kray.jp/blog/must-know-about-turbolinks/" target="_blank">Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc</a></td>
<td>288</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/draper-ruby-gem-code-clear/" target="_blank">Draperで驚くほどRailsコードがわかりやすくなったよ！ - 酒と泪とRubyとRailsと</a></td>
<td>142</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/04/10/chanko200/" target="_blank">プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました | クックパッド開発者ブログ</a></td>
<td>332</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/2923" target="_blank">Railsで作ったサービスの速度改善方法について教えて下さい - QA@IT</a></td>
<td>402</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/mirakui/high-performance-rails-long-edition" target="_blank">High Performance Rails (long edition) // Speaker Deck</a></td>
<td>167</td>
<td>2013/05/31</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/52191914259/rails" target="_blank">「壊れてねぇなら直すな」という発想はRailsにはないのかも - QA@IT公式ブログ</a></td>
<td>227</td>
<td>2013/06/05</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/07/rubykaigi-high-performance-rails/" target="_blank">Rails アプリケーションのパフォーマンスについて RubyKaigi 2013 で発表しました | クックパッド開発者ブログ</a></td>
<td>280</td>
<td>2013/06/07</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/3005" target="_blank">rails で params に対して複雑な処理をするときのベストプラクティスは？ - QA@IT</a></td>
<td>112</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/06/25/124043" target="_blank">Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes</a></td>
<td>490</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/" target="_blank">Riding Rails: Rails 4.0: Final version released!</a></td>
<td>140</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/07/05/231752" target="_blank">Rails のモデルはどうあるべきか - tomykaira makes love with codes</a></td>
<td>230</td>
<td>2013/07/05</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_07_12/12482" target="_blank">Rails3アプリケーション開発で良く使うgemまとめ | TechRacho</a></td>
<td>170</td>
<td>2013/07/12</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/masuidrive/ruby-and-railsfalsezui-xin-ji-shu-dong-xiang-to-jin-hou-falseyu-xiang" target="_blank">Ruby&amp;Railsの最新技術動向と 今後の予想 // Speaker Deck</a></td>
<td>291</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/techscore/ruby-on-rails-40-26007378" target="_blank">Ruby on rails 4.0 勉強会資料</a></td>
<td>134</td>
<td>2013/09/09</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/20130923/1379930345" target="_blank">Rails 4 へ移行してあらためて大切だと思ったこと + 役に立ったリンクを全力まとめ - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>309</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href="http://oauth.jp/blog/2013/09/26/rails-session-cookie/" target="_blank">Rails SessionにCookieStore使った時の問題点 - OAuth.jp</a></td>
<td>119</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/2013/10/20/132928" target="_blank">Rails でつくる API のドキュメントを自動生成してくれる autodoc がすごい - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>242</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/yusabana/items/8ce54577d959bb085b37" target="_blank">Ruby - Rails4 今のところ最強なデバッグツール達 - Qiita [キータ]</a></td>
<td>285</td>
<td>2013/10/24</td>
</tr>
<tr>
<td><a href="http://docs.komagata.org/5138" target="_blank">俺の被害妄想でrailsが死ぬ時 - komagata</a></td>
<td>145</td>
<td>2013/10/27</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/baba/2013_11_02/14645" target="_blank">Ruby on Rails 4.0.1リリース！大量のバグ修正、3系からの移行も少し簡単になりました | TechRacho</a></td>
<td>200</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/kwatch/db-28097225" target="_blank">DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738" target="_blank">肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho</a></td>
<td>276</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://rosylilly.hatenablog.com/entry/2013/12/03/184748" target="_blank">speed_gun で Rails のパフォーマンスを測定する - 鳩舎</a></td>
<td>131</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://qiita.com/joker1007/items/2a03500017766bdb0234" target="_blank">Ruby - てめえらのRailsはオブジェクト指向じゃねえ！まずはCallbackクラス、Validatorクラスを活用しろ！ - Qiita [キータ]</a></td>
<td>272</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href="http://kray.jp/blog/must-know-about-turbolinks/" target="_blank">Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc</a></td>
<td>288</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/draper-ruby-gem-code-clear/" target="_blank">Draperで驚くほどRailsコードがわかりやすくなったよ！ - 酒と泪とRubyとRailsと</a></td>
<td>142</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/04/10/chanko200/" target="_blank">プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました | クックパッド開発者ブログ</a></td>
<td>332</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/2923" target="_blank">Railsで作ったサービスの速度改善方法について教えて下さい - QA@IT</a></td>
<td>402</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/mirakui/high-performance-rails-long-edition" target="_blank">High Performance Rails (long edition) // Speaker Deck</a></td>
<td>167</td>
<td>2013/05/31</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/52191914259/rails" target="_blank">「壊れてねぇなら直すな」という発想はRailsにはないのかも - QA@IT公式ブログ</a></td>
<td>227</td>
<td>2013/06/05</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/07/rubykaigi-high-performance-rails/" target="_blank">Rails アプリケーションのパフォーマンスについて RubyKaigi 2013 で発表しました | クックパッド開発者ブログ</a></td>
<td>280</td>
<td>2013/06/07</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/3005" target="_blank">rails で params に対して複雑な処理をするときのベストプラクティスは？ - QA@IT</a></td>
<td>112</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/06/25/124043" target="_blank">Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes</a></td>
<td>490</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/" target="_blank">Riding Rails: Rails 4.0: Final version released!</a></td>
<td>140</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/07/05/231752" target="_blank">Rails のモデルはどうあるべきか - tomykaira makes love with codes</a></td>
<td>230</td>
<td>2013/07/05</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_07_12/12482" target="_blank">Rails3アプリケーション開発で良く使うgemまとめ | TechRacho</a></td>
<td>170</td>
<td>2013/07/12</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/masuidrive/ruby-and-railsfalsezui-xin-ji-shu-dong-xiang-to-jin-hou-falseyu-xiang" target="_blank">Ruby&amp;Railsの最新技術動向と 今後の予想 // Speaker Deck</a></td>
<td>291</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/techscore/ruby-on-rails-40-26007378" target="_blank">Ruby on rails 4.0 勉強会資料</a></td>
<td>134</td>
<td>2013/09/09</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/20130923/1379930345" target="_blank">Rails 4 へ移行してあらためて大切だと思ったこと + 役に立ったリンクを全力まとめ - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>309</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href="http://oauth.jp/blog/2013/09/26/rails-session-cookie/" target="_blank">Rails SessionにCookieStore使った時の問題点 - OAuth.jp</a></td>
<td>119</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/2013/10/20/132928" target="_blank">Rails でつくる API のドキュメントを自動生成してくれる autodoc がすごい - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>242</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/yusabana/items/8ce54577d959bb085b37" target="_blank">Ruby - Rails4 今のところ最強なデバッグツール達 - Qiita [キータ]</a></td>
<td>285</td>
<td>2013/10/24</td>
</tr>
<tr>
<td><a href="http://docs.komagata.org/5138" target="_blank">俺の被害妄想でrailsが死ぬ時 - komagata</a></td>
<td>145</td>
<td>2013/10/27</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/baba/2013_11_02/14645" target="_blank">Ruby on Rails 4.0.1リリース！大量のバグ修正、3系からの移行も少し簡単になりました | TechRacho</a></td>
<td>200</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/kwatch/db-28097225" target="_blank">DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738" target="_blank">肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho</a></td>
<td>276</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://rosylilly.hatenablog.com/entry/2013/12/03/184748" target="_blank">speed_gun で Rails のパフォーマンスを測定する - 鳩舎</a></td>
<td>131</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://qiita.com/joker1007/items/2a03500017766bdb0234" target="_blank">Ruby - てめえらのRailsはオブジェクト指向じゃねえ！まずはCallbackクラス、Validatorクラスを活用しろ！ - Qiita [キータ]</a></td>
<td>272</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href="http://bussorenre.hatenablog.jp/entry/2013/02/13/022739" target="_blank">上級者向け：Ruby on Rails 勉強法 - ぶっそれんれ研究室</a></td>
<td>262</td>
<td>2013/02/13</td>
</tr>
<tr>
<td><a href="http://el.jibun.atmarkit.co.jp/rails/2013/01/post-6025.html" target="_blank">Rails Hub情報局: プログラミング地獄への道は“ベストプラクティス”で敷き詰められている</a></td>
<td>242</td>
<td>2013/01/17</td>
</tr>
</tbody>
</table>
<h3 id="testci">テスト、CI</h3>
<p>開発は終わるものではなく、継続的に続けていくものに変わりました。効率よく効果的に開発していく必要があります。Ruby、Railsと切っても切り離せない、テスト、CIについて人気を集めた記事をまとめました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://qiita.com/awakia/items/d880250adc8cdbe7a32f" target="_blank">RSpecのshouldはもう古い！新しい記法expectを使おう！ #Ruby #Rspec - Qiita</a></td>
<td>143</td>
<td>2013/03/25</td>
</tr>
<tr>
<td><a href="http://qiita.com/unosk/items/c2e2bbc31d97e92803dc" target="_blank">Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!] - Qiita [キータ]</a></td>
<td>147</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href="http://qiita.com/sawanoboly/items/48fe830d2ee3b6c87bf5" target="_blank">"Cucumber,ChefSpecとchefでテスト駆動のサーバ構築管理 #infrastructure #Cucumber #Ruby #chef #chefspec - Qiita"</a></td>
<td>120</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1302/20/news032.html" target="_blank">フレームワークで実践！ JavaScriptテスト入門（5）：Capybara-Webkit＋Cucumber＋Sinon.JSでJavaScriptのテストはここまで変わる (1/3) - ＠IT</a></td>
<td>176</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/cloud/aws/install-gitlab-amazon-vpc/" target="_blank">社内 GitHub を実用的に構築！ Amazon VPC 環境に GitLab サーバを構築してみた ｜ クラスメソッド開発ブログ</a></td>
<td>152</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href="http://magazine.rubyist.net/?0042-FromCucumberToTurnip" target="_blank">Rubyist Magazine - エンドツーエンドテストの自動化は Cucumber から Turnip へ</a></td>
<td>261</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/13/how-we-deal-with-examples-fail-sometime/" target="_blank">CI で稀に失敗してしまうテストへの対処方法 | クックパッド開発者ブログ</a></td>
<td>276</td>
<td>2013/06/13</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/sasata299/archives/51925482.html" target="_blank">Spring無しでRailsを使おうだなんて正気ですかッ！？ - (ﾟ∀ﾟ)o彡 sasata299's blog</a></td>
<td>111</td>
<td>2013/08/06</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/the-rspec-book-review-rails/" target="_blank">Rspec/Capybara/Turnipの入門記事を全力でまとめてみた - 酒と泪とRubyとRailsと</a></td>
<td>156</td>
<td>2013/08/30</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/kenchan/tdd-will-always-be-in-your-heart" target="_blank">TDD will always be in your heart // Speaker Deck</a></td>
<td>112</td>
<td>2013/08/31</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/koba04/20131128/1385568428" target="_blank">Webアプリケーションのテストを書くときに考えていること - 車輪を再発明 / koba04の日記</a></td>
<td>387</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href="http://r7kamura.github.io/2013/12/01/autodoc.html" target="_blank">Autodoc - r7kamura blog</a></td>
<td>128</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href="http://labs.gree.jp/blog/2013/12/10084/" target="_blank">入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineers' Blog</a></td>
<td>274</td>
<td>2013/12/21</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/mikeda/20130608/1370661384" target="_blank">サーバのリソース使用状況レポートを作る - IT 東京 楽しいと思うこと</a></td>
<td>111</td>
<td>2013/06/08</td>
</tr>
<tr>
<td><a href="http://blog.glidenote.com/blog/2013/05/20/working-with-irc-bot/" target="_blank">IRC BOTを作って仕事をさせるようにした - Glide Note - グライドノート</a></td>
<td>196</td>
<td>2013/05/20</td>
</tr>
</tbody>
</table>
<h3 id="newways">開発環境、手法、デザイン</h3>
<p>プログラマは常に開発環境、手法について疑問を持ち改善していきます。また、プログラマがデザインを学ぶというテーマも見られました。年末年始に自分の開発環境を見直すのもいいかもしれません。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/ken_c_lo/20130115/1358269474" target="_blank">東京Ruby会議10で、Rubyistのためのデザイン講座ワークショップやらせていただきました #p4d #tkrk10 - 納豆には卵を入れる派です。</a></td>
<td>116</td>
<td>2013/01/16</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/ken_c_lo/rubyistfalsetamefalsezuruidezainhanzuon-in-rubyhiroba-p4d-wakusiyotupu" target="_blank">Rubyistのためのズルいデザインハンズオン in RubyHiroba P4D ワークショップ // Speaker Deck</a></td>
<td>121</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://qiita.com/emadurandal/items/a60886152a4c99ce1017" target="_blank">Rails開発環境の構築（rbenvでRuby導入からBundler、Rails導入まで） #Rails #rbenv #Mac #macports #Ruby - Qiita</a></td>
<td>123</td>
<td>2013/01/29</td>
</tr>
<tr>
<td><a href="http://blog.kyanny.me/entry/2013/05/10/rbenv_%E3%81%AE%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0" target="_blank">rbenv のメカニズム - @kyanny's blog</a></td>
<td>120</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/etc/modern-dev-environment-by-homebrew/" target="_blank">Homebrew で作るモダンなフロントエンド開発環境 (Git + zsh + apache + MySQL + Ruby) ｜ Developers.IO</a></td>
<td>112</td>
<td>2013/09/30</td>
</tr>
<tr>
<td><a href="http://blog.wktk.co.jp/ja/entry/2013/10/30/gdbruby" target="_blank">CoreからRubyのバックトレースを表示するgdbruby.rbを作った</a></td>
<td>128</td>
<td>2013/10/31</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/etc/github-homesick-dotfiles/" target="_blank">GitHub と homesick を使って複数 Mac 間で dotfiles を同期する ｜ Developers.IO</a></td>
<td>174</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/01/20130113/" target="_blank">Rails開発を補助するGoogle Chrome機能拡張「RailsPanel」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>110</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/deeeki/20130301/modern_rails_dev" target="_blank">モダンなRails開発をしてみての振り返り - 130単位</a></td>
<td>159</td>
<td>2013/03/01</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/42010504223/github-qa-it" target="_blank">GitHub時代の開発委託とは？ デブサミでQA@ITの事例の話をします - QA@IT公式ブログ</a></td>
<td>228</td>
<td>2013/02/01</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20131013/1381651545" target="_blank">Webサービス開発現場から / 近頃の開発のやり方 ･･･ Github と Pull Request とコードレビュー - naoyaのはてなダイアリー</a></td>
<td>1201</td>
<td>2013/10/13</td>
</tr>
<tr>
<td><a href="http://slides.redmine.jp/" target="_blank">Redmine Slides — Redmineを知るためのスライド集</a></td>
<td>141</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href="http://cflat-inc.hatenablog.com/entry/2013/10/15/214715" target="_blank">Redmine裏技！複雑なチケット管理をカスタムクエリで超簡単に - まるちゃんブログ</a></td>
<td>236</td>
<td>2013/10/15</td>
</tr>
</tbody>
</table>
<h3 id="start">チュートリアル、Ruby, Railsを始める</h3>
<p>新しいことをはじめるために必要な情報、自分が始めた時に困ったこと、役に立ったことをまとめた記事も多く投稿されました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="https://gist.github.com/hsbt/5318109" target="_blank">2013 年の新卒研修メニュー</a></td>
<td>391</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href="http://blog.satooshi.jp/blog/2013/04/08/before-you-get-started-ruby-programming/" target="_blank">2013年新学期にRubyを始めるエンジニアが読むべきサイトまとめ - satooshi@blog</a></td>
<td>516</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://railstutorial-ja.herokuapp.com/index.html" target="_blank">Ruby on Rails Tutorial (第２版) - 日本語</a></td>
<td>464</td>
<td>2013/06/04</td>
</tr>
<tr>
<td><a href="http://railstutorial.jp/" target="_blank">Ruby on Rails チュートリアル：実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)</a></td>
<td>657</td>
<td>2013/06/12</td>
</tr>
<tr>
<td><a href="http://creive.me/archives/2896/" target="_blank">「学びたい、全ての人へ」creiveより</a></td>
<td>2000</td>
<td>2013/06/30</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/shokai/130715-ruby-intro" target="_blank">Ruby初級入門</a></td>
<td>189</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href="http://commte.net/blog/archives/3403" target="_blank">ひとりでWeb制作できた！「知識０から学ぶ」すごいスライドやサイト２７ | コムテブログ</a></td>
<td>1409</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href="http://railstutorial.jp/?version=4.0" target="_blank">Ruby on Rails チュートリアル：実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)</a></td>
<td>221</td>
<td>2013/07/26</td>
</tr>
<tr>
<td><a href="https://www.bloc.io/ruby-warrior/#/" target="_blank">RubyWarrior - Bloc</a></td>
<td>178</td>
<td>2013/07/28</td>
</tr>
<tr>
<td><a href="http://techacademy.jp/magazine/807" target="_blank">Ruby作者まつもとゆきひろ氏も動画で解説！NaCl運営のRuby学習サービス「ミニツク」をやってみた！ | TechAcademyマガジン</a></td>
<td>344</td>
<td>2013/08/06</td>
</tr>
<tr>
<td><a href="http://hiroyukim.hatenablog.jp/entry/2013/10/02/030629" target="_blank">Rubyの入門書でいいものを知りませんかね？という質問に対してどう答えるべきだったか？ - (ヽ´ω`)　</a></td>
<td>118</td>
<td>2013/10/02</td>
</tr>
<tr>
<td><a href="http://nigohiroki.hatenablog.com/entry/2013/10/17/001754" target="_blank">これからWeb系のベンチャーで起業しようと思っている人へ考慮しなければいけないリストを作成した - nigoblog</a></td>
<td>1185</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href="http://sanjose.main.jp/home/2013/10/28/getting-started-with-rails/" target="_blank">初心者から3ヶ月でRailsアプリ開発を身に付けるための地道な3ステップ | Designing Myself</a></td>
<td>591</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href="http://u-note.me/note/47486703" target="_blank">Ruby on Ralisをこれから学ぶ人が絶対に知ってくべき本・サイトまとめ | U-NOTE【ユーノート】- ビジネスマンのためのノウハウまとめを無料で</a></td>
<td>133</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/ruby-books" target="_blank">これからRubyを勉強する人が絶対読んでおきたい書籍9冊＋α | Find Job ! Startup</a></td>
<td>608</td>
<td>2013/11/06</td>
</tr>
<tr>
<td><a href="https://gist.github.com/udzura/7548163" target="_blank">やわらかRuby</a></td>
<td>430</td>
<td>2013/11/20</td>
</tr>
<tr>
<td><a href="http://blog.supermomonga.com/articles/ruby/sugoi-learning-way.html" target="_blank">今年こそRubyを始めたいあなたに！ももんが流・最強のRuby学習法 | かなりすごいブログ</a></td>
<td>141</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href="http://shgam.hatenadiary.jp/entry/2013/12/18/160438" target="_blank">Ruby on Railsでブログを作成するときに役立った情報まとめ - 文系学生のプログラミング入門</a></td>
<td>126</td>
<td>2013/12/18</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/12/24/why-not-start-ruby/" target="_blank">僕が考えた最速・最小投資でRubyを学ぶ方法またはステマ乙</a></td>
<td>620</td>
<td>2013/12/24</td>
</tr>
</tbody>
</table>
<h3 id="books">Ruby 話題の本</h3>
<p>学ぶためのソースはウェブだけではありません。Rubyについて話題になった本とその感想も人気を集めました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/naruhounix" target="_blank">なるほどUnixプロセス ー Rubyで学ぶUnixの基礎 - 達人出版会</a></td>
<td>550</td>
<td>2013/04/06</td>
</tr>
<tr>
<td><a href="http://www.oreilly.co.jp/books/9784873116150/" target="_blank">O'Reilly Japan - RとRubyによるデータ解析入門</a></td>
<td>254</td>
<td>2013/04/12</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/scheme-in-ruby" target="_blank">つくって学ぶプログラミング言語 RubyによるScheme処理系の実装 - 達人出版会</a></td>
<td>278</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href="http://hakobe932.hatenablog.com/entry/2013/04/28/210815" target="_blank">なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - HAKOBE blog ♨</a></td>
<td>121</td>
<td>2013/04/28</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/mruby" target="_blank">まつもとゆきひろ直伝　組込Ruby「mruby」のすべて 総集編【委託】 - 達人出版会</a></td>
<td>101</td>
<td>2013/06/29</td>
</tr>
<tr>
<td><a href="http://gihyo.jp/book/2013/978-4-7741-5879-2" target="_blank">パーフェクトRuby　：書籍案内｜技術評論社</a></td>
<td>118</td>
<td>2013/07/29</td>
</tr>
<tr>
<td><a href="http://sugamasao.hatenablog.com/entry/2013/08/11/121217" target="_blank">パーフェクトRubyという本を（共著で）書きました - すがブロ</a></td>
<td>204</td>
<td>2013/08/11</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/railstutorial" target="_blank">Ruby on Rails チュートリアル: 実例を使ってRailsを学ぼう - 達人出版会</a></td>
<td>118</td>
<td>2013/11/21</td>
</tr>
<tr>
<td><a href="http://snoozer05.org/?date=20131129#p01" target="_blank">[naruhounix]『なるほどUnixプロセス』という本を出しました - but its up to us to change(2013-11-29)</a></td>
<td>113</td>
<td>2013/11/29</td>
</tr>
</tbody>
</table>
<h3 id="maked">作りました！</h3>
<p>実践を大事にするプログラマー。ハッカソン、ゴールデンウィーク、休職中などに、作りその苦労や楽しかったことを共有した記事にもたくさんブックマークがされました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://sue445.hatenablog.com/entry/2013/12/16/000011" target="_blank">Rubyでプリキュアを作った #cure_advent - くりにっき</a></td>
<td>151</td>
<td>2013/12/16</td>
</tr>
<tr>
<td><a href="http://havelog.ayumusato.com/develop/ruby/e555-rails_on_heroku_app.html" target="_blank">Rails + Heroku で俺専用RSSリーダー作った ::ハブろぐ</a></td>
<td>225</td>
<td>2013/03/31</td>
</tr>
<tr>
<td><a href="http://blog.masuidrive.jp/index.php/2013/06/03/wripe-app/" target="_blank">個人でメモ帳アプリ wri.pe リリースしてみました。 - @masuidrive blog</a></td>
<td>243</td>
<td>2013/06/03</td>
</tr>
<tr>
<td><a href="http://toyoshi.hatenablog.com/entry/2013/06/15/005102" target="_blank">土日で作るWebサービス入門 - 30 to 30</a></td>
<td>1539</td>
<td>2013/06/15</td>
</tr>
<tr>
<td><a href="http://qiita.com/tumf@github/items/918ef218eeade512012c" target="_blank">Ruby - 遺伝的アルゴリズム(GA)によるサーバの自動チューニング - Qiita [キータ]</a></td>
<td>165</td>
<td>2013/06/18</td>
</tr>
<tr>
<td><a href="http://willnet.in/105" target="_blank">ランダムで日本人の名前を返す gem を作った - willnet.in</a></td>
<td>146</td>
<td>2013/07/09</td>
</tr>
<tr>
<td><a href="http://codeiq.hatenablog.com/entry/2013/07/23/104943" target="_blank">いまさらですが、増井雄一郎さんのメモ帳サービス「wri.pe」がすごい件　#HTML5 #プログラミング #wri.pe #markdown - CodeIQ Blog</a></td>
<td>838</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href="http://shokai.org/blog/archives/8012" target="_blank">橋本商会 » ArduinoとRubyで赤外線リモコン作ってWebから操作できるようにした</a></td>
<td>140</td>
<td>2013/07/24</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130801/1375357430" target="_blank">HBFav2 をリリースしました - naoyaのはてなダイアリー</a></td>
<td>163</td>
<td>2013/08/01</td>
</tr>
<tr>
<td><a href="http://www.lastday.jp/2013/08/26/beginner-programmming-geekhouse-web-develop" target="_blank">プログラミング出来ないのにギークハウスを始めたら、420万円の出資を受けて1人でウェブサービスを開発することになった。 | Last Day. jp</a></td>
<td>282</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href="http://vividcode.hatenablog.com/entry/morphana/kuromoji-cli-app" target="_blank">日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない</a></td>
<td>222</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href="http://anime-osusume.hatenablog.com/entry/2013/08/04/174436" target="_blank">PFI の推薦エンジンを使っておすすめアニメを探すサイトを作ってみた - アニメおすすめDB運営ブログ</a></td>
<td>131</td>
<td>2013/09/22</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130925/506807/" target="_blank">ニュース - 3社が共同開発したRuby製プロジェクト管理システム「JJ」、OSSとして無償公開へ：ITpro</a></td>
<td>173</td>
<td>2013/09/25</td>
</tr>
<tr>
<td><a href="http://anond.hatelabo.jp/20131026145638" target="_blank">ローンチしたサイトに人がこない。</a></td>
<td>362</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/syuu1228/20131113/1384332111" target="_blank">mruby専用クラウドOS「μOSv」を作りました - 驟雨のカーネル探検隊（只今遭難中ｗ</a></td>
<td>111</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href="http://blog.riywo.com/2013/01/07/040947" target="_blank">MyrokuというHerokuっぽいものを実装してみた - As a Futurist...</a></td>
<td>158</td>
<td>2013/01/07</td>
</tr>
</tbody>
</table>
<h3 id="opp">新しいライブラリ</h3>
<p>昔先輩のプログラマーにこんなことを言われました。「自分が解決したい悩みがあったらまず、同じことで困っている人がいて、解法を持ってないか調べてみなさい」と。「もしそれで、解法が見つからないならばそれをライブラリーやサービスにしたらいい。ただ、ほとんどの問題はすでに誰かが壁にあったっているから、解法はすでに世の中にある」と。<br />
ライブラリーの紹介などなど、どんなものがあるのかチェック！</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/02/20130205/" target="_blank">社内で立てられるGistサーバ「Gistub」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>190</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href="http://sixeight.hatenablog.com/entry/2013/02/05/033345" target="_blank">RubyJSを試しました - ちなみに</a></td>
<td>127</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href="http://liginc.co.jp/designer/archives/11623" target="_blank">CSSの常識が変わる！「Compass」、基礎から応用まで！ | 株式会社LIG</a></td>
<td>1188</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://el.jibun.atmarkit.co.jp/rails/2013/02/5-pythonrubytop-0220.html" target="_blank">Rails Hub情報局: 本家の5倍速？ Pythonで実装したRuby処理系の「Topaz」が登場</a></td>
<td>197</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/tool/gitlab-install-mac-os-x-mountain-lion/" target="_blank">ローカルで GitHub を構築！ Git リポジトリ管理ツール「GitLab」を Mac OS X にインストールしてみた ｜ クラスメソッド開発ブログ</a></td>
<td>349</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://phpspot.org/blog/archives/2013/02/fnordmetric.html" target="_blank">どんなデータもリアルタイムなグラフにできるフレームワーク「FnordMetric」:phpspot開発日誌</a></td>
<td>103</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href="http://blog.mirakui.com/entry/2013/02/20/003401" target="_blank">「全自動パラメータチューニングさん」は何であって何でないのか - 昼メシ物語</a></td>
<td>211</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/bash0C7/20130313/cosmicrawler" target="_blank">Rubyで複数並行なクローラをすっきりと書けるライブラリ「cosmicrawler」をgemとして公開した - koeだめ</a></td>
<td>101</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130415/" target="_blank">iOSアプリで必要なサーバサイドの機能をまとめて提供！「Helios」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>128</td>
<td>2013/04/15</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130415-9/" target="_blank">エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる「Skull」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>128</td>
<td>2013/04/15</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130428-2/" target="_blank">Rubyのコードをもっと美しく書くために使いたい「rubocop」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>207</td>
<td>2013/04/28</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/05/20/now-the-time-to-start-jekyll/" target="_blank">Jekyllいつやるの？ジキやルの？今でしょ！</a></td>
<td>161</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href="http://yuroyoro.hatenablog.com/entry/2013/05/29/160912" target="_blank">gfspark: GrowthForecastのグラフをターミナルに表示する - ( ꒪⌓꒪) ゆるよろ日記</a></td>
<td>104</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href="http://gihyo.jp/dev/clip/01/groonga/0005" target="_blank">第5回　Rubyでサーバ要らずの高速全文検索！ - rroongaの紹介：隔週連載groonga｜gihyo.jp … 技術評論社</a></td>
<td>109</td>
<td>2013/06/04</td>
</tr>
<tr>
<td><a href="http://heartbeats.jp/hbblog/2013/06/use-ohai.html" target="_blank">ohaiを使ってサーバの情報をプログラムで扱おう - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>123</td>
<td>2013/06/11</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1306/14/news002.html" target="_blank">特集　DevOps時代の必須知識：まとめてたくさん処理したい！ を解決する「Capistrano」 - ＠IT</a></td>
<td>200</td>
<td>2013/07/04</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130912/1378963649" target="_blank">Helios - naoyaのはてなダイアリー</a></td>
<td>240</td>
<td>2013/09/12</td>
</tr>
<tr>
<td><a href="http://blog.mogya.com/2013/10/ruby-geocoder.html" target="_blank">Ruby geocoderがすごい - もぎゃろぐ</a></td>
<td>356</td>
<td>2013/10/11</td>
</tr>
<tr>
<td><a href="http://blog.glidenote.com/blog/2013/11/26/sensu/" target="_blank">監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note - グライドノート</a></td>
<td>560</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href="https://rails-assets.org/" target="_blank">Rails Assets</a></td>
<td>120</td>
<td>2013/12/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/dkfj/20131215/1387093204" target="_blank">Markdown記法+Git+md2review+ReVIEWで原稿・ドキュメント管理 - プログラマになりたい</a></td>
<td>111</td>
<td>2013/12/15</td>
</tr>
<tr>
<td><a href="http://takkkun.hatenablog.com/entry/2013/10/12/Capistrano_3%E3%81%B8%E3%81%AE%E6%89%8B%E5%BC%95%E3%81%8D" target="_blank">Capistrano 3への手引き - 今日のごはんは素麺です</a></td>
<td>160</td>
<td>2013/10/12</td>
</tr>
</tbody>
</table>
<h3 id="fluentd">ログ・マネージメント fluentd</h3>
<p>今年の人気ブックマークを調べていてダントツで人気があったのが、ログ・マネージメントのライブラリfluentd。クラウドの普及によるサーバの非固定化、またデータ解析の重要性などの傾向の結果かもしれません。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/tagomoris/20130612/1371030356" target="_blank">ruby 2.0.0-p195 + fluentd v0.10.35 + msgpack v0.5.5 の組合せが素敵という話 - tagomorisのメモ置き場</a></td>
<td>136</td>
<td>2013/06/12</td>
</tr>
<tr>
<td><a href="http://codezine.jp/article/detail/6958" target="_blank">Fluentdで始めるリアルタイムでのログ有効活用 （1/4）：CodeZine</a></td>
<td>376</td>
<td>2013/02/14</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/dkfj/20130407/1365330503" target="_blank">何故、fluentdなのか？ - プログラマになりたい</a></td>
<td>221</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/harukayon/fluentd-22317236" target="_blank">Fluentdがよくわからなかった話</a></td>
<td>133</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://saisa.hateblo.jp/entry/2013/08/17/182700" target="_blank">FluentdとRiakの話 - After Coding</a></td>
<td>262</td>
<td>2013/08/17</td>
</tr>
<tr>
<td><a href="http://keisukenishida.hatenablog.com/entry/2013/08/20/005026" target="_blank">fluentd で集めたログを Splunk で可視化する - 技術ノート</a></td>
<td>101</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href="http://jedipunkz.github.io/blog/2013/09/07/kibana-plus-elasticsearch-plus-fluentd/" target="_blank">Kibana + ElasticSearch + fluentd を試してみた - jedipunkz' blog</a></td>
<td>100</td>
<td>2013/09/07</td>
</tr>
<tr>
<td><a href="http://y310.hatenablog.com/entry/2013/09/11/232137" target="_blank">Kibana 3 + Rails + Fluentdのサンプルアプリを作ってみた - y_310's diary</a></td>
<td>170</td>
<td>2013/09/12</td>
</tr>
<tr>
<td><a href="http://techblog.raccoon.ne.jp/archives/35031163.html" target="_blank">fluentd(td-agent) の導入 : Raccoon Tech Blog [株式会社ラクーン 技術戦略部ブログ]</a></td>
<td>105</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href="http://tagomoris.hatenablog.com/entry/2013/12/03/150656" target="_blank">Fluentdとはどのようなソフトウェアなのか - たごもりすメモ</a></td>
<td>565</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://knowledge.sakura.ad.jp/tech/1336/" target="_blank">柔軟なログ収集を可能にする「fluentd」入門 - さくらのナレッジ</a></td>
<td>301</td>
<td>2013/12/09</td>
</tr>
</tbody>
</table>
<h3 id="tips">Tips! コーディング</h3>
<p>まとめきれなかったけど、人気のあるTips、コーディングについての記事です。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/03/04/ruby-trivias-you-should-know-4/" target="_blank">知って得する！５５のRubyのトリビアな記法</a></td>
<td>632</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href="http://shokai.org/blog/archives/7262" target="_blank">橋本商会 » Ruby書くならBundler使え</a></td>
<td>159</td>
<td>2013/03/29</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/sasata299/archives/51889303.html" target="_blank">Redisでランキング機能を実装してみる - (ﾟ∀ﾟ)o彡 sasata299's blog</a></td>
<td>121</td>
<td>2013/04/24</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130503/1367581629" target="_blank">昨今の自分用Webアプリケーションひな形 - naoyaのはてなダイアリー</a></td>
<td>514</td>
<td>2013/05/03</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2011/06/22/21-Ruby-21-Trivia-Notations-you-should-know-in-Ruby/" target="_blank">知って得する21のRubyのトリビアな記法</a></td>
<td>106</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_05_16/8664" target="_blank">RubyでExcelデータをJSON形式に変換するには | TechRacho</a></td>
<td>109</td>
<td>2013/05/16</td>
</tr>
<tr>
<td><a href="http://tech.a-listers.jp/2013/05/20/sandi-metz/" target="_blank">綺麗な設計を身に付けるためのSandi Metzルール | A-Listers</a></td>
<td>199</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/camelmasa/items/5ca27ab398f105f86c76" target="_blank">Ruby - Bundlerで並列処理？？bundle installを爆速で処理する方法。 - Qiita [キータ]</a></td>
<td>158</td>
<td>2013/08/10</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/09/04/is-that-a-yet-another-rdoc/" target="_blank">メソッドの使い方もRubyに教えてほしい</a></td>
<td>111</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href="http://makimoto.hatenablog.com/entry/2013/10/20/Ruby_Hacking_Guide_%E3%82%92_Kindle_%E3%81%A7%E8%AA%AD%E3%82%81%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B" target="_blank">Ruby Hacking Guide を Kindle で読めるようにする - Stats of the Rivers</a></td>
<td>189</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/jnchito/items/dedb3b889ab226933ccf" target="_blank">[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita [キータ]</a></td>
<td>286</td>
<td>2013/11/05</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/english-for-engineers-naming-conventions" target="_blank">正しいコーディングが身につくエンジニア英語の手引き 〜文法とクラス／メソッド、命名規則〜 | Find Job ! Startup</a></td>
<td>1140</td>
<td>2013/11/05</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/tmtms/ben-dang-hakowaienkodeingufalsehua" target="_blank">本当はこわいエンコーディングの話 // Speaker Deck</a></td>
<td>197</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130118/php_ruby_love" target="_blank">PHPを愛する試み - maeharinの日記</a></td>
<td>190</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/01/24/csv-table-method-is-awesome/" target="_blank">Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について</a></td>
<td>146</td>
<td>2013/01/24</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/shokai/ruby-24925828" target="_blank">Ruby中級入門</a></td>
<td>541</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/shim0mura/20130117/1358436466" target="_blank">読みやすいコードってどんなものか考えてみた -抽象化と名前重要- - 馬鹿と天才は紙一重</a></td>
<td>517</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href="http://nekogata.hatenablog.com/entry/2013/02/09/233540" target="_blank">"状態管理用の変数をインスタンスに持たせるなこのタコって話 - life.should be_happy # =&gt; 1 examples</a></td>
<td>? failures"</td>
<td>399,2013/02/09</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/02/25/i-wanna-say-something-about-rubys-case/" target="_blank">Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい</a></td>
<td>516</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20130120/1358676294" target="_blank">SPDYと「やったー、net-http-spdyできたよー」の話 - I am Cruby!</a></td>
<td>139</td>
<td>2013/01/20</td>
</tr>
</tbody>
</table>
<h3 id="clientbackend">クライアントサイドとバックエンド</h3>
<p>Backborn.js, Ember.js, Angular.js, Meteorなど、たくさんのクライアントサイドJavascript Frameworkがでて、人気を集めています。RubyやRailsのプログラマはそれをどのように捉えているのでしょうか。バックエンドについての記事と一緒に紹介します。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/64057743910/mvc-gogaruco-2013" target="_blank">ダブルMVCの意味するところ [GoGaRuCo 2013] - ワザノバ | wazanova.jp</a></td>
<td>130</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href="https://gist.github.com/tily/1362110" target="_blank">サバクラ両方で動く JavaScript の大規模開発を行うために</a></td>
<td>368</td>
<td>2013/02/09</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/client-side/language-client-side/backbonejs-mvp/" target="_blank">Backbone.jsにおけるModel-View-Presenterアーキテクチャパターン ｜ クラスメソッド開発ブログ</a></td>
<td>162</td>
<td>2013/02/26</td>
</tr>
<tr>
<td><a href="http://blog.riywo.com/2013/05/29/151321" target="_blank">「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...</a></td>
<td>256</td>
<td>2013/05/29</td>
</tr>
</tbody>
</table>
<h3 id="env">Rubyを取り巻く環境、組織</h3>
<p>Rubyを取り巻く環境について、イノベーション、OSS、他の言語やモバイル。そして働く組織の話も多くのブックマークを集めました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://engineer.typemag.jp/article/matzxmasuidrive" target="_blank">まつもとゆきひろ×増井雄一郎のオープンソース談義 「1人の熱烈なフォロワーがいれば、OSSで世界を変えられる」 - エンジニアtype</a></td>
<td>168</td>
<td>2013/03/25</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1304/16/news133.html" target="_blank">日本はもっと、エンジニアを大切に：まつもとゆきひろ氏の「新経済サミット2013」語録 - ＠IT</a></td>
<td>264</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href="http://internet.watch.impress.co.jp/docs/event/20130417_596169.html" target="_blank">LINE、グリー、GMOのトップが激論――日本でイノベーションを起こすには？ -INTERNET Watch</a></td>
<td>144</td>
<td>2013/04/17</td>
</tr>
<tr>
<td><a href="http://tadachi.txt-nifty.com/blog/2013/05/post-176e.html" target="_blank">まつもとゆきひろ氏の「世界に通用する技術者になるためには」を聴講してきた: tadachi-net 出張所</a></td>
<td>251</td>
<td>2013/05/19</td>
</tr>
<tr>
<td><a href="http://eed3si9n.com/ja/simplicity-matters" target="_blank">シンプルさの必要性 | eed3si9n</a></td>
<td>146</td>
<td>2013/06/24</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/kuromatu/rubykaraphphe-enziniafalsetamefalsesi-kao-yi-xing-gaido" target="_blank">RubyからPHPへ -エンジニアのための思考移行ガイド- // Speaker Deck</a></td>
<td>103</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href="http://ds.freee.co.jp/2013/11/18/google/" target="_blank">僕が Google を辞めた理由 | クラウド会計ソフト freee - 佐々木大輔のブログ</a></td>
<td>467</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href="http://internet.watch.impress.co.jp/docs/news/20131203_626035.html" target="_blank">まつもとゆきひろ氏「プログラミングコミュニティーは終わらない文化祭」 -INTERNET Watch</a></td>
<td>177</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://www.publickey1.jp/blog/13/sfdc2013.html" target="_blank">PR：伊藤直也×まつもとゆきひろ。ポストPC時代のモバイル開発を語る － Publickey</a></td>
<td>190</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/robotvert/about-cookpad-2013-11" target="_blank">About COOKPAD (2013-11) // Speaker Deck</a></td>
<td>143</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/items/675" target="_blank">Githubの組織が成長する過程で変えたことと変えなかったこと - ワザノバ | wazanova</a></td>
<td>638</td>
<td>2013/11/20</td>
</tr>
</tbody>
</table>
<h3 id="func">TwitterがRubyからJVM 言語群へ。関数型言語のトレンド</h3>
<p>最後にTwitterがRubyからJVM 言語群への移行をおこなった（おこなっている）。また、クロック数の限界とCPUコア数の増加から、関数型言語への注目が集まりました。これからのRubyやプログラミングについて考えるのにいいトピックだとおもい、このトピックで今年2013年の話題の振り返りを終わりにします。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://2013.8-p.info/japanese/09-28-languages.html" target='_blank'>はじめの言語の賞味期限 - Kato Kazuyoshi</a></td>
<td>359</td>
<td>2013/09/28</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/itsoku/archives/33671593.html" target='_blank'>GitHubがRubyとMVCの限界を悟り、C#とMVVMに全面移行！！ : IT速報</a></td>
<td>167</td>
<td>2013/10/05</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/architecture-2013" target='_blank'>国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 | Find Job ! Startup</a></td>
<td>1169</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/66950939518/twitter" target='_blank'>Twitter: 大きなトラフィックに耐えうるアーキテクチャーへの変更 - ワザノバ | wazanova.jp</a></td>
<td>119</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href="http://www.infoq.com/jp/news/2013/08/scaling-twitter" target='_blank'>Twitterのスケーリング，新たなピークへ</a></td>
<td>258</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/camlspotter/20130117/1358406799" target='_blank'>"関数型言語を独学で勉強している学生です への答 - Oh</a></td>
<td> you `re no (fun _ → more)"</td>
<td>118,2013/01/17</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/01/21/why-fp-with-ruby/" target='_blank'>Rubyを使って「なぜ関数プログラミングは重要か」を読み解く（改定）─ 前編 ─ 但し後編の予定なし</a></td>
<td>186</td>
<td>2013/01/21</td>
</tr>
<tr>
<td><a href="http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html" target='_blank'>Rubyによる関数型プログラミング</a></td>
<td>295</td>
<td>2013/02/03</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20130112/449223/" target='_blank'>Javaはもう古い！次の主流は「関数型」 - ［関数型言語のトレンド］国内でも採用企業が増加：ITpro</a></td>
<td>270</td>
<td>2013/02/04</td>
</tr>
<tr>
<td><a href="http://yuroyoro.hatenablog.com/entry/2013/03/27/190640" target='_blank'>Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記</a></td>
<td>166</td>
<td>2013/03/27</td>
</tr>
</tbody>
</table>
<p>2013年人気のあった記事を話題別にまとめてみました。トレンドや見逃していた記事、やり残したことが見つかると幸いです。
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-ruby/">2013年Rubyの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/2013-11-07-15.21.37.jpg"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/2013-11-07-15.21.37-1024x768.jpg" alt="2013-11-07 15.21.37" width="1024" height="768" class="alignnone size-large wp-image-2269" /></a><br />
<em>サンフランシスコのEngine Yard オフィス</em></p>
<p><a href="http://www.engineyard.co.jp/blog/2013/year-of-chef/">Chef</a>、 <a href="http://www.engineyard.co.jp/blog/2013/year-of-php/">PHP</a>につづき、Rubyの今年2013年を今年人気を集めた記事をテーマ別にまとめました。<a href="http://b.hatena.ne.jp/">はてなブックマーク</a>の数と一緒に振り返っていきます。今年の2月24日にRuby20周年を迎え、<a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/">ruby-2.0.0がリリース</a>されました。他にもRails4のリリース、<a href="http://www.atmarkit.co.jp/ait/articles/1306/03/news057.html">RubyKaigiの再開</a>など多くのトピックがありました。</p>
<p><strong>目次</strong></p>
<ul>
<li><a href="#cruby-relesed">Ruby20周年！そしてruby-2.0.0, ruby-2.1.0のリリース</a></li>
<li><a href="#cruby">言語実装への興味、ガベージコレクションほか</a></li>
<li><a href="#spread">Rubyのひろがり</a></li>
<li><a href="#rails">Rails4のリリースとRailsの成熟</a></li>
<li><a href="#testci">テスト、CI</a></li>
<li><a href="#newways">開発環境、手法、デザイン</a></li>
<li><a href="#start">チュートリアル、Ruby, Railsを始める</a></li>
<li><a href="#books">Ruby 話題の本</a></li>
<li><a href="#maked">作りました！</a></li>
<li><a href="#opp">新しいライブラリ</a></li>
<li><a href="#fluentd">ログ・マネージメント fluentd</a></li>
<li><a href="#tips">Tips! コーディング</a></li>
<li><a href="#clientbackend">クライアントサイドとバックエンド</a></li>
<li><a href="#env">Rubyを取り巻く環境、組織</a></li>
<li><a href="#func">TwitterがRubyからJVM 言語群へ。関数型言語のトレンド<br />
</a></li>
</ul>
<h3 id="cruby-relesed">Ruby20周年！そしてruby-2.0.0, ruby-2.1.0のリリース</h3>
<p>Rubyが20周年を迎え、その丁度記念日となる2月24日に<a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/">ruby-2.0.0-p0がリリース</a>。クリスマスには<a href="http://www.ruby-lang.org/ja/news/2013/12/25/ruby-2-1-0-is-released/">2.1.0がリリース</a>されました。そして、長らくお世話になったruby-1.8.7が引退しました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/" target="_blank">Ruby 2.0.0-p0 リリース</a></td>
<td>400</td>
<td>2013/02/24/</td>
</tr>
<tr>
<td><a href="http://jp.rubyist.net/magazine/?0041-200Special" target="_blank">Rubyist Magazine - Ruby 2.0.0 リリース特集</a></td>
<td>123</td>
<td>2013/02/24</td>
</tr>
<tr>
<td><a href="http://mrkn.hatenablog.com/entry/2013/03/19/232728" target="_blank">大江戸 Ruby 会議03で、某レシピサイトの Ruby 1.9.3 対応で苦労した点を共有しました - mrkn's diary</a></td>
<td>186</td>
<td>2013/03/19</td>
</tr>
<tr>
<td><a href="http://www.infoq.com/jp/news/2013/09/ruby-2-1-gc-revamp" target="_blank">Ruby 2.1がガベージコレクションを変更，大規模システムでの批判に対処</a></td>
<td>142</td>
<td>2013/09/24</td>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/12/25/ruby-2-1-0-is-released/ " target="_blank">Ruby 2.1.0-p0 リリース</a></td>
<td>-</td>
<td>2013/12/25</td>
</tr>
<tr>
<td><a href="http://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/" target="_blank">Ruby 1.8.7 は引退しました</a></td>
<td>144</td>
<td>2013/06/30</td>
</tr>
</tbody>
</table>
<h3 id="cruby">言語実装への興味、ガベージコレクションほか</h3>
<p>言語そのものの実装にも多くの興味が寄せました。Crubyのコミッターの方々のブログを中心に多くのブックマークが付けれれました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://loveruby.net/ja/rhg/book/gc.html" target="_blank">第5章 ガ−ベージコレクション</a></td>
<td>179</td>
<td>2013/06/15</td>
</tr>
<tr>
<td><a href="http://shyouhei.tumblr.com/post/64498820681/10-ruby" target="_blank">卜部昌平のあまりreblogしないtumblr - '10年代のRubyコア用語集</a></td>
<td>287</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/65317231718/ruby-python" target="_blank">RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp</a></td>
<td>325</td>
<td>2013/10/28</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20131209/1386583244" target="_blank">パーフェクトなCRubyを目指して - 1行のバグ修正に潜む苦労 - - I am Cruby!</a></td>
<td>184</td>
<td>2013/12/09</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/kazuhooku/20131221/1387603305" target="_blank">「今日使われているプログラミング言語の多くは、なぜ1990年前後に誕生したものなのか」に関する一考察 - kazuhoのメモ置き場</a></td>
<td>346</td>
<td>2013/12/21</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20130317/1363476355" target="_blank">桐島、Rubyやめるってよ #odrk03 - I am Cruby!</a></td>
<td>281</td>
<td>2013/03/17</td>
</tr>
</tbody>
</table>
<h3 id="spread">Rubyのひろがり</h3>
<p>iOSアプリ、任天堂3DS、OpenFlow、エクセル、結婚式からダジャレまでRubyで作られたものは様々な所に広がっています。さらにユーザも中学生から女優までさまざま。mruby, RubyMotionの話題も追加し、人気を集めたRubyでつくらたものを集めてみました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/laiso+iphone/20130624/1372093093" target="_blank">Objective-Cを絶対書きたくない人向けのiOSアプリ開発ソリューションの総括 - laiso</a></td>
<td>605</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/yuyarin/ll2013-yuyarin-distpptx" target="_blank">Rubyで創るOpenFlowネットワーク - LLまつり</a></td>
<td>181</td>
<td>2013/08/24</td>
</tr>
<tr>
<td><a href="http://blog.64p.org/entry/2013/01/04/114443" target="_blank">ちょっとした GUI アプリケーションをつくるのに MacRuby はよい選択肢となりうる - tokuhirom's blog.</a></td>
<td>175</td>
<td>2013/01/04</td>
</tr>
<tr>
<td><a href="http://blog.katsuma.tv/2013/01/siriproxy-iremocon.html" target="_blank">SiriProxyのプラグインとしてSiriで家電を操作するSiriProxy-iRemocon - blog.katsuma.tv</a></td>
<td>170</td>
<td>2013/01/05</td>
</tr>
<tr>
<td><a href="http://blog.64p.org/entry/2013/01/08/102032" target="_blank">MacRuby でメニューバーのステータスメニューに常駐するアプリを作るための雛形をつくりました! - tokuhirom's blog.</a></td>
<td>229</td>
<td>2013/01/08</td>
</tr>
<tr>
<td><a href="http://webos-goodies.jp/archives/migrating_to_amazon_s3_static_web_hosting.html" target="_blank">サイトを Amazon S3 に移行しました - WebOS Goodies</a></td>
<td>262</td>
<td>2013/01/10</td>
</tr>
<tr>
<td><a href="http://tutorial.rubymotion.jp/" target="_blank">RubyMotion Tutorial: Ruby で iOS アプリを作ろう</a></td>
<td>285</td>
<td>2013/03/03</td>
</tr>
<tr>
<td><a href="http://blog.supermomonga.com/articles/jruby/javafx-rawr.html" target="_blank">RubyでGUIアプリを作るならJRuby+JavaFX+Rawrで決まり！ | かなりすごいブログ</a></td>
<td>323</td>
<td>2013/08/10</td>
</tr>
<tr>
<td><a href="http://www.nintendo.co.jp/3ds/interview/streetpass_relay/vol1/index4.html" target="_blank">ニンテンドー3DS｜社長が訊く「すれちがい通信中継所」｜Nintendo</a></td>
<td>238</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://portal.nifty.com/kiji/130921161837_1.htm" target="_blank">@nifty：デイリーポータルZ：コンピューターにダジャレを教える</a></td>
<td>133</td>
<td>2013/09/22</td>
</tr>
<tr>
<td><a href="http://mamipeko.hatenablog.com/entry/happy-wedding-s" target="_blank">「ご結婚おめでとう」親友に贈ったコードとデザインの話 - はぁはぁブログ</a></td>
<td>620</td>
<td>2013/10/23</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/11/11/your-data-from-excel-to-the-web/" target="_blank">Excelデータを最速でWebアプリ(Heroku)にする１０のステップ</a></td>
<td>254</td>
<td>2013/11/11</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20131205/1386237472" target="_blank">RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー</a></td>
<td>408</td>
<td>2013/12/05</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130110/p1" target="_blank">仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記</a></td>
<td>276</td>
<td>2013/01/10</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130113/ruby_oneliner" target="_blank">Rubyワンライナー入門 - maeharinの日記</a></td>
<td>223</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://blog.masuidrive.jp/index.php/2013/01/24/diff-cruby-mruby/" target="_blank">軽量Ruby – mrubyとRubyの違い - @masuidrive blog</a></td>
<td>173</td>
<td>2013/01/25</td>
</tr>
<tr>
<td><a href="http://blog.matsumoto-r.jp/?p=3588" target="_blank">mrubyによるWebサーバの機能拡張支援機構を一緒に開発しませんか？</a></td>
<td>150</td>
<td>2013/07/01</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1303/04/news119.html" target="_blank">Rails Girls Tokyo レポート：キラッキラな「Ruby on Rails」の世界へ――Rails Girls 25人が集結 - ＠IT</a></td>
<td>103</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href="http://blog.layer8.sh/ja/2013/05/30/ruby-girl-01/" target="_blank">【インタビュー】女子大生Webデザイナーが独学でRubyプログラマーへ転身！Ruby認定試験Goldを2ヶ月で取得したコツ</a></td>
<td>146</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130627/488123/" target="_blank">ニュース - 松江市が中学生Ruby教室用ソフト一式をGitHubで公開、テキストもCCで無償配布：ITpro</a></td>
<td>191</td>
<td>2013/06/27</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130807/497268/" target="_blank">ニュース - 中学生Ruby教室“Mac編”のテキストとサンプルプログラム、松江市が無償公開：ITpro</a></td>
<td>103</td>
<td>2013/08/07</td>
</tr>
<tr>
<td><a href="http://weekly.ascii.jp/elem/000/000/162/162420/" target="_blank">ガチでギークな女優、池澤あやかがアメブロからTumblrに移行したワケ｜Mac</a></td>
<td>192</td>
<td>2013/08/08</td>
</tr>
<tr>
<td><a href="http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002298" target="_blank">Ｒｕｂｙの女神降臨！池澤あやかのプログラミング｜【Tech総研】</a></td>
<td>468</td>
<td>2013/02/28</td>
</tr>
</tbody>
</table>
<h3 id="rails">Rails4のリリースとRailsの成熟</h3>
<p>Railsの話題はつきません。今年はRails4がリリースされ、たくさんのノウハウが共有されました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://kray.jp/blog/must-know-about-turbolinks/" target="_blank">Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc</a></td>
<td>288</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/draper-ruby-gem-code-clear/" target="_blank">Draperで驚くほどRailsコードがわかりやすくなったよ！ - 酒と泪とRubyとRailsと</a></td>
<td>142</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/04/10/chanko200/" target="_blank">プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました | クックパッド開発者ブログ</a></td>
<td>332</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/2923" target="_blank">Railsで作ったサービスの速度改善方法について教えて下さい - QA@IT</a></td>
<td>402</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/mirakui/high-performance-rails-long-edition" target="_blank">High Performance Rails (long edition) // Speaker Deck</a></td>
<td>167</td>
<td>2013/05/31</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/52191914259/rails" target="_blank">「壊れてねぇなら直すな」という発想はRailsにはないのかも - QA@IT公式ブログ</a></td>
<td>227</td>
<td>2013/06/05</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/07/rubykaigi-high-performance-rails/" target="_blank">Rails アプリケーションのパフォーマンスについて RubyKaigi 2013 で発表しました | クックパッド開発者ブログ</a></td>
<td>280</td>
<td>2013/06/07</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/3005" target="_blank">rails で params に対して複雑な処理をするときのベストプラクティスは？ - QA@IT</a></td>
<td>112</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/06/25/124043" target="_blank">Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes</a></td>
<td>490</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/" target="_blank">Riding Rails: Rails 4.0: Final version released!</a></td>
<td>140</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/07/05/231752" target="_blank">Rails のモデルはどうあるべきか - tomykaira makes love with codes</a></td>
<td>230</td>
<td>2013/07/05</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_07_12/12482" target="_blank">Rails3アプリケーション開発で良く使うgemまとめ | TechRacho</a></td>
<td>170</td>
<td>2013/07/12</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/masuidrive/ruby-and-railsfalsezui-xin-ji-shu-dong-xiang-to-jin-hou-falseyu-xiang" target="_blank">Ruby&amp;Railsの最新技術動向と 今後の予想 // Speaker Deck</a></td>
<td>291</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/techscore/ruby-on-rails-40-26007378" target="_blank">Ruby on rails 4.0 勉強会資料</a></td>
<td>134</td>
<td>2013/09/09</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/20130923/1379930345" target="_blank">Rails 4 へ移行してあらためて大切だと思ったこと + 役に立ったリンクを全力まとめ - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>309</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href="http://oauth.jp/blog/2013/09/26/rails-session-cookie/" target="_blank">Rails SessionにCookieStore使った時の問題点 - OAuth.jp</a></td>
<td>119</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/2013/10/20/132928" target="_blank">Rails でつくる API のドキュメントを自動生成してくれる autodoc がすごい - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>242</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/yusabana/items/8ce54577d959bb085b37" target="_blank">Ruby - Rails4 今のところ最強なデバッグツール達 - Qiita [キータ]</a></td>
<td>285</td>
<td>2013/10/24</td>
</tr>
<tr>
<td><a href="http://docs.komagata.org/5138" target="_blank">俺の被害妄想でrailsが死ぬ時 - komagata</a></td>
<td>145</td>
<td>2013/10/27</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/baba/2013_11_02/14645" target="_blank">Ruby on Rails 4.0.1リリース！大量のバグ修正、3系からの移行も少し簡単になりました | TechRacho</a></td>
<td>200</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/kwatch/db-28097225" target="_blank">DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738" target="_blank">肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho</a></td>
<td>276</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://rosylilly.hatenablog.com/entry/2013/12/03/184748" target="_blank">speed_gun で Rails のパフォーマンスを測定する - 鳩舎</a></td>
<td>131</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://qiita.com/joker1007/items/2a03500017766bdb0234" target="_blank">Ruby - てめえらのRailsはオブジェクト指向じゃねえ！まずはCallbackクラス、Validatorクラスを活用しろ！ - Qiita [キータ]</a></td>
<td>272</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href="http://kray.jp/blog/must-know-about-turbolinks/" target="_blank">Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc</a></td>
<td>288</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/draper-ruby-gem-code-clear/" target="_blank">Draperで驚くほどRailsコードがわかりやすくなったよ！ - 酒と泪とRubyとRailsと</a></td>
<td>142</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/04/10/chanko200/" target="_blank">プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました | クックパッド開発者ブログ</a></td>
<td>332</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/2923" target="_blank">Railsで作ったサービスの速度改善方法について教えて下さい - QA@IT</a></td>
<td>402</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/mirakui/high-performance-rails-long-edition" target="_blank">High Performance Rails (long edition) // Speaker Deck</a></td>
<td>167</td>
<td>2013/05/31</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/52191914259/rails" target="_blank">「壊れてねぇなら直すな」という発想はRailsにはないのかも - QA@IT公式ブログ</a></td>
<td>227</td>
<td>2013/06/05</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/07/rubykaigi-high-performance-rails/" target="_blank">Rails アプリケーションのパフォーマンスについて RubyKaigi 2013 で発表しました | クックパッド開発者ブログ</a></td>
<td>280</td>
<td>2013/06/07</td>
</tr>
<tr>
<td><a href="http://qa.atmarkit.co.jp/q/3005" target="_blank">rails で params に対して複雑な処理をするときのベストプラクティスは？ - QA@IT</a></td>
<td>112</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/06/25/124043" target="_blank">Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes</a></td>
<td>490</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/" target="_blank">Riding Rails: Rails 4.0: Final version released!</a></td>
<td>140</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href="http://tomykaira.hatenablog.com/entry/2013/07/05/231752" target="_blank">Rails のモデルはどうあるべきか - tomykaira makes love with codes</a></td>
<td>230</td>
<td>2013/07/05</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_07_12/12482" target="_blank">Rails3アプリケーション開発で良く使うgemまとめ | TechRacho</a></td>
<td>170</td>
<td>2013/07/12</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/masuidrive/ruby-and-railsfalsezui-xin-ji-shu-dong-xiang-to-jin-hou-falseyu-xiang" target="_blank">Ruby&amp;Railsの最新技術動向と 今後の予想 // Speaker Deck</a></td>
<td>291</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/techscore/ruby-on-rails-40-26007378" target="_blank">Ruby on rails 4.0 勉強会資料</a></td>
<td>134</td>
<td>2013/09/09</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/20130923/1379930345" target="_blank">Rails 4 へ移行してあらためて大切だと思ったこと + 役に立ったリンクを全力まとめ - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>309</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href="http://oauth.jp/blog/2013/09/26/rails-session-cookie/" target="_blank">Rails SessionにCookieStore使った時の問題点 - OAuth.jp</a></td>
<td>119</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href="http://blog.inouetakuya.info/entry/2013/10/20/132928" target="_blank">Rails でつくる API のドキュメントを自動生成してくれる autodoc がすごい - 彼女からは、おいちゃんと呼ばれています</a></td>
<td>242</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/yusabana/items/8ce54577d959bb085b37" target="_blank">Ruby - Rails4 今のところ最強なデバッグツール達 - Qiita [キータ]</a></td>
<td>285</td>
<td>2013/10/24</td>
</tr>
<tr>
<td><a href="http://docs.komagata.org/5138" target="_blank">俺の被害妄想でrailsが死ぬ時 - komagata</a></td>
<td>145</td>
<td>2013/10/27</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/baba/2013_11_02/14645" target="_blank">Ruby on Rails 4.0.1リリース！大量のバグ修正、3系からの移行も少し簡単になりました | TechRacho</a></td>
<td>200</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/kwatch/db-28097225" target="_blank">DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738" target="_blank">肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho</a></td>
<td>276</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://rosylilly.hatenablog.com/entry/2013/12/03/184748" target="_blank">speed_gun で Rails のパフォーマンスを測定する - 鳩舎</a></td>
<td>131</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://qiita.com/joker1007/items/2a03500017766bdb0234" target="_blank">Ruby - てめえらのRailsはオブジェクト指向じゃねえ！まずはCallbackクラス、Validatorクラスを活用しろ！ - Qiita [キータ]</a></td>
<td>272</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href="http://bussorenre.hatenablog.jp/entry/2013/02/13/022739" target="_blank">上級者向け：Ruby on Rails 勉強法 - ぶっそれんれ研究室</a></td>
<td>262</td>
<td>2013/02/13</td>
</tr>
<tr>
<td><a href="http://el.jibun.atmarkit.co.jp/rails/2013/01/post-6025.html" target="_blank">Rails Hub情報局: プログラミング地獄への道は“ベストプラクティス”で敷き詰められている</a></td>
<td>242</td>
<td>2013/01/17</td>
</tr>
</tbody>
</table>
<h3 id="testci">テスト、CI</h3>
<p>開発は終わるものではなく、継続的に続けていくものに変わりました。効率よく効果的に開発していく必要があります。Ruby、Railsと切っても切り離せない、テスト、CIについて人気を集めた記事をまとめました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://qiita.com/awakia/items/d880250adc8cdbe7a32f" target="_blank">RSpecのshouldはもう古い！新しい記法expectを使おう！ #Ruby #Rspec - Qiita</a></td>
<td>143</td>
<td>2013/03/25</td>
</tr>
<tr>
<td><a href="http://qiita.com/unosk/items/c2e2bbc31d97e92803dc" target="_blank">Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!] - Qiita [キータ]</a></td>
<td>147</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href="http://qiita.com/sawanoboly/items/48fe830d2ee3b6c87bf5" target="_blank">"Cucumber,ChefSpecとchefでテスト駆動のサーバ構築管理 #infrastructure #Cucumber #Ruby #chef #chefspec - Qiita"</a></td>
<td>120</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1302/20/news032.html" target="_blank">フレームワークで実践！ JavaScriptテスト入門（5）：Capybara-Webkit＋Cucumber＋Sinon.JSでJavaScriptのテストはここまで変わる (1/3) - ＠IT</a></td>
<td>176</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/cloud/aws/install-gitlab-amazon-vpc/" target="_blank">社内 GitHub を実用的に構築！ Amazon VPC 環境に GitLab サーバを構築してみた ｜ クラスメソッド開発ブログ</a></td>
<td>152</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href="http://magazine.rubyist.net/?0042-FromCucumberToTurnip" target="_blank">Rubyist Magazine - エンドツーエンドテストの自動化は Cucumber から Turnip へ</a></td>
<td>261</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href="http://techlife.cookpad.com/2013/06/13/how-we-deal-with-examples-fail-sometime/" target="_blank">CI で稀に失敗してしまうテストへの対処方法 | クックパッド開発者ブログ</a></td>
<td>276</td>
<td>2013/06/13</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/sasata299/archives/51925482.html" target="_blank">Spring無しでRailsを使おうだなんて正気ですかッ！？ - (ﾟ∀ﾟ)o彡 sasata299's blog</a></td>
<td>111</td>
<td>2013/08/06</td>
</tr>
<tr>
<td><a href="http://morizyun.github.io/blog/the-rspec-book-review-rails/" target="_blank">Rspec/Capybara/Turnipの入門記事を全力でまとめてみた - 酒と泪とRubyとRailsと</a></td>
<td>156</td>
<td>2013/08/30</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/kenchan/tdd-will-always-be-in-your-heart" target="_blank">TDD will always be in your heart // Speaker Deck</a></td>
<td>112</td>
<td>2013/08/31</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/koba04/20131128/1385568428" target="_blank">Webアプリケーションのテストを書くときに考えていること - 車輪を再発明 / koba04の日記</a></td>
<td>387</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href="http://r7kamura.github.io/2013/12/01/autodoc.html" target="_blank">Autodoc - r7kamura blog</a></td>
<td>128</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href="http://labs.gree.jp/blog/2013/12/10084/" target="_blank">入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineers' Blog</a></td>
<td>274</td>
<td>2013/12/21</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/mikeda/20130608/1370661384" target="_blank">サーバのリソース使用状況レポートを作る - IT 東京 楽しいと思うこと</a></td>
<td>111</td>
<td>2013/06/08</td>
</tr>
<tr>
<td><a href="http://blog.glidenote.com/blog/2013/05/20/working-with-irc-bot/" target="_blank">IRC BOTを作って仕事をさせるようにした - Glide Note - グライドノート</a></td>
<td>196</td>
<td>2013/05/20</td>
</tr>
</tbody>
</table>
<h3 id="newways">開発環境、手法、デザイン</h3>
<p>プログラマは常に開発環境、手法について疑問を持ち改善していきます。また、プログラマがデザインを学ぶというテーマも見られました。年末年始に自分の開発環境を見直すのもいいかもしれません。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/ken_c_lo/20130115/1358269474" target="_blank">東京Ruby会議10で、Rubyistのためのデザイン講座ワークショップやらせていただきました #p4d #tkrk10 - 納豆には卵を入れる派です。</a></td>
<td>116</td>
<td>2013/01/16</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/ken_c_lo/rubyistfalsetamefalsezuruidezainhanzuon-in-rubyhiroba-p4d-wakusiyotupu" target="_blank">Rubyistのためのズルいデザインハンズオン in RubyHiroba P4D ワークショップ // Speaker Deck</a></td>
<td>121</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://qiita.com/emadurandal/items/a60886152a4c99ce1017" target="_blank">Rails開発環境の構築（rbenvでRuby導入からBundler、Rails導入まで） #Rails #rbenv #Mac #macports #Ruby - Qiita</a></td>
<td>123</td>
<td>2013/01/29</td>
</tr>
<tr>
<td><a href="http://blog.kyanny.me/entry/2013/05/10/rbenv_%E3%81%AE%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0" target="_blank">rbenv のメカニズム - @kyanny's blog</a></td>
<td>120</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/etc/modern-dev-environment-by-homebrew/" target="_blank">Homebrew で作るモダンなフロントエンド開発環境 (Git + zsh + apache + MySQL + Ruby) ｜ Developers.IO</a></td>
<td>112</td>
<td>2013/09/30</td>
</tr>
<tr>
<td><a href="http://blog.wktk.co.jp/ja/entry/2013/10/30/gdbruby" target="_blank">CoreからRubyのバックトレースを表示するgdbruby.rbを作った</a></td>
<td>128</td>
<td>2013/10/31</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/etc/github-homesick-dotfiles/" target="_blank">GitHub と homesick を使って複数 Mac 間で dotfiles を同期する ｜ Developers.IO</a></td>
<td>174</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/01/20130113/" target="_blank">Rails開発を補助するGoogle Chrome機能拡張「RailsPanel」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>110</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/deeeki/20130301/modern_rails_dev" target="_blank">モダンなRails開発をしてみての振り返り - 130単位</a></td>
<td>159</td>
<td>2013/03/01</td>
</tr>
<tr>
<td><a href="http://qa-it.tumblr.com/post/42010504223/github-qa-it" target="_blank">GitHub時代の開発委託とは？ デブサミでQA@ITの事例の話をします - QA@IT公式ブログ</a></td>
<td>228</td>
<td>2013/02/01</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20131013/1381651545" target="_blank">Webサービス開発現場から / 近頃の開発のやり方 ･･･ Github と Pull Request とコードレビュー - naoyaのはてなダイアリー</a></td>
<td>1201</td>
<td>2013/10/13</td>
</tr>
<tr>
<td><a href="http://slides.redmine.jp/" target="_blank">Redmine Slides — Redmineを知るためのスライド集</a></td>
<td>141</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href="http://cflat-inc.hatenablog.com/entry/2013/10/15/214715" target="_blank">Redmine裏技！複雑なチケット管理をカスタムクエリで超簡単に - まるちゃんブログ</a></td>
<td>236</td>
<td>2013/10/15</td>
</tr>
</tbody>
</table>
<h3 id="start">チュートリアル、Ruby, Railsを始める</h3>
<p>新しいことをはじめるために必要な情報、自分が始めた時に困ったこと、役に立ったことをまとめた記事も多く投稿されました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="https://gist.github.com/hsbt/5318109" target="_blank">2013 年の新卒研修メニュー</a></td>
<td>391</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href="http://blog.satooshi.jp/blog/2013/04/08/before-you-get-started-ruby-programming/" target="_blank">2013年新学期にRubyを始めるエンジニアが読むべきサイトまとめ - satooshi@blog</a></td>
<td>516</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href="http://railstutorial-ja.herokuapp.com/index.html" target="_blank">Ruby on Rails Tutorial (第２版) - 日本語</a></td>
<td>464</td>
<td>2013/06/04</td>
</tr>
<tr>
<td><a href="http://railstutorial.jp/" target="_blank">Ruby on Rails チュートリアル：実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)</a></td>
<td>657</td>
<td>2013/06/12</td>
</tr>
<tr>
<td><a href="http://creive.me/archives/2896/" target="_blank">「学びたい、全ての人へ」creiveより</a></td>
<td>2000</td>
<td>2013/06/30</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/shokai/130715-ruby-intro" target="_blank">Ruby初級入門</a></td>
<td>189</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href="http://commte.net/blog/archives/3403" target="_blank">ひとりでWeb制作できた！「知識０から学ぶ」すごいスライドやサイト２７ | コムテブログ</a></td>
<td>1409</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href="http://railstutorial.jp/?version=4.0" target="_blank">Ruby on Rails チュートリアル：実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)</a></td>
<td>221</td>
<td>2013/07/26</td>
</tr>
<tr>
<td><a href="https://www.bloc.io/ruby-warrior/#/" target="_blank">RubyWarrior - Bloc</a></td>
<td>178</td>
<td>2013/07/28</td>
</tr>
<tr>
<td><a href="http://techacademy.jp/magazine/807" target="_blank">Ruby作者まつもとゆきひろ氏も動画で解説！NaCl運営のRuby学習サービス「ミニツク」をやってみた！ | TechAcademyマガジン</a></td>
<td>344</td>
<td>2013/08/06</td>
</tr>
<tr>
<td><a href="http://hiroyukim.hatenablog.jp/entry/2013/10/02/030629" target="_blank">Rubyの入門書でいいものを知りませんかね？という質問に対してどう答えるべきだったか？ - (ヽ´ω`)　</a></td>
<td>118</td>
<td>2013/10/02</td>
</tr>
<tr>
<td><a href="http://nigohiroki.hatenablog.com/entry/2013/10/17/001754" target="_blank">これからWeb系のベンチャーで起業しようと思っている人へ考慮しなければいけないリストを作成した - nigoblog</a></td>
<td>1185</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href="http://sanjose.main.jp/home/2013/10/28/getting-started-with-rails/" target="_blank">初心者から3ヶ月でRailsアプリ開発を身に付けるための地道な3ステップ | Designing Myself</a></td>
<td>591</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href="http://u-note.me/note/47486703" target="_blank">Ruby on Ralisをこれから学ぶ人が絶対に知ってくべき本・サイトまとめ | U-NOTE【ユーノート】- ビジネスマンのためのノウハウまとめを無料で</a></td>
<td>133</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/ruby-books" target="_blank">これからRubyを勉強する人が絶対読んでおきたい書籍9冊＋α | Find Job ! Startup</a></td>
<td>608</td>
<td>2013/11/06</td>
</tr>
<tr>
<td><a href="https://gist.github.com/udzura/7548163" target="_blank">やわらかRuby</a></td>
<td>430</td>
<td>2013/11/20</td>
</tr>
<tr>
<td><a href="http://blog.supermomonga.com/articles/ruby/sugoi-learning-way.html" target="_blank">今年こそRubyを始めたいあなたに！ももんが流・最強のRuby学習法 | かなりすごいブログ</a></td>
<td>141</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href="http://shgam.hatenadiary.jp/entry/2013/12/18/160438" target="_blank">Ruby on Railsでブログを作成するときに役立った情報まとめ - 文系学生のプログラミング入門</a></td>
<td>126</td>
<td>2013/12/18</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/12/24/why-not-start-ruby/" target="_blank">僕が考えた最速・最小投資でRubyを学ぶ方法またはステマ乙</a></td>
<td>620</td>
<td>2013/12/24</td>
</tr>
</tbody>
</table>
<h3 id="books">Ruby 話題の本</h3>
<p>学ぶためのソースはウェブだけではありません。Rubyについて話題になった本とその感想も人気を集めました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/naruhounix" target="_blank">なるほどUnixプロセス ー Rubyで学ぶUnixの基礎 - 達人出版会</a></td>
<td>550</td>
<td>2013/04/06</td>
</tr>
<tr>
<td><a href="http://www.oreilly.co.jp/books/9784873116150/" target="_blank">O'Reilly Japan - RとRubyによるデータ解析入門</a></td>
<td>254</td>
<td>2013/04/12</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/scheme-in-ruby" target="_blank">つくって学ぶプログラミング言語 RubyによるScheme処理系の実装 - 達人出版会</a></td>
<td>278</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href="http://hakobe932.hatenablog.com/entry/2013/04/28/210815" target="_blank">なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - HAKOBE blog ♨</a></td>
<td>121</td>
<td>2013/04/28</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/mruby" target="_blank">まつもとゆきひろ直伝　組込Ruby「mruby」のすべて 総集編【委託】 - 達人出版会</a></td>
<td>101</td>
<td>2013/06/29</td>
</tr>
<tr>
<td><a href="http://gihyo.jp/book/2013/978-4-7741-5879-2" target="_blank">パーフェクトRuby　：書籍案内｜技術評論社</a></td>
<td>118</td>
<td>2013/07/29</td>
</tr>
<tr>
<td><a href="http://sugamasao.hatenablog.com/entry/2013/08/11/121217" target="_blank">パーフェクトRubyという本を（共著で）書きました - すがブロ</a></td>
<td>204</td>
<td>2013/08/11</td>
</tr>
<tr>
<td><a href="http://tatsu-zine.com/books/railstutorial" target="_blank">Ruby on Rails チュートリアル: 実例を使ってRailsを学ぼう - 達人出版会</a></td>
<td>118</td>
<td>2013/11/21</td>
</tr>
<tr>
<td><a href="http://snoozer05.org/?date=20131129#p01" target="_blank">[naruhounix]『なるほどUnixプロセス』という本を出しました - but its up to us to change(2013-11-29)</a></td>
<td>113</td>
<td>2013/11/29</td>
</tr>
</tbody>
</table>
<h3 id="maked">作りました！</h3>
<p>実践を大事にするプログラマー。ハッカソン、ゴールデンウィーク、休職中などに、作りその苦労や楽しかったことを共有した記事にもたくさんブックマークがされました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://sue445.hatenablog.com/entry/2013/12/16/000011" target="_blank">Rubyでプリキュアを作った #cure_advent - くりにっき</a></td>
<td>151</td>
<td>2013/12/16</td>
</tr>
<tr>
<td><a href="http://havelog.ayumusato.com/develop/ruby/e555-rails_on_heroku_app.html" target="_blank">Rails + Heroku で俺専用RSSリーダー作った ::ハブろぐ</a></td>
<td>225</td>
<td>2013/03/31</td>
</tr>
<tr>
<td><a href="http://blog.masuidrive.jp/index.php/2013/06/03/wripe-app/" target="_blank">個人でメモ帳アプリ wri.pe リリースしてみました。 - @masuidrive blog</a></td>
<td>243</td>
<td>2013/06/03</td>
</tr>
<tr>
<td><a href="http://toyoshi.hatenablog.com/entry/2013/06/15/005102" target="_blank">土日で作るWebサービス入門 - 30 to 30</a></td>
<td>1539</td>
<td>2013/06/15</td>
</tr>
<tr>
<td><a href="http://qiita.com/tumf@github/items/918ef218eeade512012c" target="_blank">Ruby - 遺伝的アルゴリズム(GA)によるサーバの自動チューニング - Qiita [キータ]</a></td>
<td>165</td>
<td>2013/06/18</td>
</tr>
<tr>
<td><a href="http://willnet.in/105" target="_blank">ランダムで日本人の名前を返す gem を作った - willnet.in</a></td>
<td>146</td>
<td>2013/07/09</td>
</tr>
<tr>
<td><a href="http://codeiq.hatenablog.com/entry/2013/07/23/104943" target="_blank">いまさらですが、増井雄一郎さんのメモ帳サービス「wri.pe」がすごい件　#HTML5 #プログラミング #wri.pe #markdown - CodeIQ Blog</a></td>
<td>838</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href="http://shokai.org/blog/archives/8012" target="_blank">橋本商会 » ArduinoとRubyで赤外線リモコン作ってWebから操作できるようにした</a></td>
<td>140</td>
<td>2013/07/24</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130801/1375357430" target="_blank">HBFav2 をリリースしました - naoyaのはてなダイアリー</a></td>
<td>163</td>
<td>2013/08/01</td>
</tr>
<tr>
<td><a href="http://www.lastday.jp/2013/08/26/beginner-programmming-geekhouse-web-develop" target="_blank">プログラミング出来ないのにギークハウスを始めたら、420万円の出資を受けて1人でウェブサービスを開発することになった。 | Last Day. jp</a></td>
<td>282</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href="http://vividcode.hatenablog.com/entry/morphana/kuromoji-cli-app" target="_blank">日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない</a></td>
<td>222</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href="http://anime-osusume.hatenablog.com/entry/2013/08/04/174436" target="_blank">PFI の推薦エンジンを使っておすすめアニメを探すサイトを作ってみた - アニメおすすめDB運営ブログ</a></td>
<td>131</td>
<td>2013/09/22</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/NEWS/20130925/506807/" target="_blank">ニュース - 3社が共同開発したRuby製プロジェクト管理システム「JJ」、OSSとして無償公開へ：ITpro</a></td>
<td>173</td>
<td>2013/09/25</td>
</tr>
<tr>
<td><a href="http://anond.hatelabo.jp/20131026145638" target="_blank">ローンチしたサイトに人がこない。</a></td>
<td>362</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/syuu1228/20131113/1384332111" target="_blank">mruby専用クラウドOS「μOSv」を作りました - 驟雨のカーネル探検隊（只今遭難中ｗ</a></td>
<td>111</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href="http://blog.riywo.com/2013/01/07/040947" target="_blank">MyrokuというHerokuっぽいものを実装してみた - As a Futurist...</a></td>
<td>158</td>
<td>2013/01/07</td>
</tr>
</tbody>
</table>
<h3 id="opp">新しいライブラリ</h3>
<p>昔先輩のプログラマーにこんなことを言われました。「自分が解決したい悩みがあったらまず、同じことで困っている人がいて、解法を持ってないか調べてみなさい」と。「もしそれで、解法が見つからないならばそれをライブラリーやサービスにしたらいい。ただ、ほとんどの問題はすでに誰かが壁にあったっているから、解法はすでに世の中にある」と。<br />
ライブラリーの紹介などなど、どんなものがあるのかチェック！</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/02/20130205/" target="_blank">社内で立てられるGistサーバ「Gistub」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>190</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href="http://sixeight.hatenablog.com/entry/2013/02/05/033345" target="_blank">RubyJSを試しました - ちなみに</a></td>
<td>127</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href="http://liginc.co.jp/designer/archives/11623" target="_blank">CSSの常識が変わる！「Compass」、基礎から応用まで！ | 株式会社LIG</a></td>
<td>1188</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://el.jibun.atmarkit.co.jp/rails/2013/02/5-pythonrubytop-0220.html" target="_blank">Rails Hub情報局: 本家の5倍速？ Pythonで実装したRuby処理系の「Topaz」が登場</a></td>
<td>197</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/tool/gitlab-install-mac-os-x-mountain-lion/" target="_blank">ローカルで GitHub を構築！ Git リポジトリ管理ツール「GitLab」を Mac OS X にインストールしてみた ｜ クラスメソッド開発ブログ</a></td>
<td>349</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href="http://phpspot.org/blog/archives/2013/02/fnordmetric.html" target="_blank">どんなデータもリアルタイムなグラフにできるフレームワーク「FnordMetric」:phpspot開発日誌</a></td>
<td>103</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href="http://blog.mirakui.com/entry/2013/02/20/003401" target="_blank">「全自動パラメータチューニングさん」は何であって何でないのか - 昼メシ物語</a></td>
<td>211</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/bash0C7/20130313/cosmicrawler" target="_blank">Rubyで複数並行なクローラをすっきりと書けるライブラリ「cosmicrawler」をgemとして公開した - koeだめ</a></td>
<td>101</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130415/" target="_blank">iOSアプリで必要なサーバサイドの機能をまとめて提供！「Helios」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>128</td>
<td>2013/04/15</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130415-9/" target="_blank">エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる「Skull」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>128</td>
<td>2013/04/15</td>
</tr>
<tr>
<td><a href="http://www.moongift.jp/2013/04/20130428-2/" target="_blank">Rubyのコードをもっと美しく書くために使いたい「rubocop」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>207</td>
<td>2013/04/28</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/05/20/now-the-time-to-start-jekyll/" target="_blank">Jekyllいつやるの？ジキやルの？今でしょ！</a></td>
<td>161</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href="http://yuroyoro.hatenablog.com/entry/2013/05/29/160912" target="_blank">gfspark: GrowthForecastのグラフをターミナルに表示する - ( ꒪⌓꒪) ゆるよろ日記</a></td>
<td>104</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href="http://gihyo.jp/dev/clip/01/groonga/0005" target="_blank">第5回　Rubyでサーバ要らずの高速全文検索！ - rroongaの紹介：隔週連載groonga｜gihyo.jp … 技術評論社</a></td>
<td>109</td>
<td>2013/06/04</td>
</tr>
<tr>
<td><a href="http://heartbeats.jp/hbblog/2013/06/use-ohai.html" target="_blank">ohaiを使ってサーバの情報をプログラムで扱おう - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>123</td>
<td>2013/06/11</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1306/14/news002.html" target="_blank">特集　DevOps時代の必須知識：まとめてたくさん処理したい！ を解決する「Capistrano」 - ＠IT</a></td>
<td>200</td>
<td>2013/07/04</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130912/1378963649" target="_blank">Helios - naoyaのはてなダイアリー</a></td>
<td>240</td>
<td>2013/09/12</td>
</tr>
<tr>
<td><a href="http://blog.mogya.com/2013/10/ruby-geocoder.html" target="_blank">Ruby geocoderがすごい - もぎゃろぐ</a></td>
<td>356</td>
<td>2013/10/11</td>
</tr>
<tr>
<td><a href="http://blog.glidenote.com/blog/2013/11/26/sensu/" target="_blank">監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note - グライドノート</a></td>
<td>560</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href="https://rails-assets.org/" target="_blank">Rails Assets</a></td>
<td>120</td>
<td>2013/12/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/dkfj/20131215/1387093204" target="_blank">Markdown記法+Git+md2review+ReVIEWで原稿・ドキュメント管理 - プログラマになりたい</a></td>
<td>111</td>
<td>2013/12/15</td>
</tr>
<tr>
<td><a href="http://takkkun.hatenablog.com/entry/2013/10/12/Capistrano_3%E3%81%B8%E3%81%AE%E6%89%8B%E5%BC%95%E3%81%8D" target="_blank">Capistrano 3への手引き - 今日のごはんは素麺です</a></td>
<td>160</td>
<td>2013/10/12</td>
</tr>
</tbody>
</table>
<h3 id="fluentd">ログ・マネージメント fluentd</h3>
<p>今年の人気ブックマークを調べていてダントツで人気があったのが、ログ・マネージメントのライブラリfluentd。クラウドの普及によるサーバの非固定化、またデータ解析の重要性などの傾向の結果かもしれません。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/tagomoris/20130612/1371030356" target="_blank">ruby 2.0.0-p195 + fluentd v0.10.35 + msgpack v0.5.5 の組合せが素敵という話 - tagomorisのメモ置き場</a></td>
<td>136</td>
<td>2013/06/12</td>
</tr>
<tr>
<td><a href="http://codezine.jp/article/detail/6958" target="_blank">Fluentdで始めるリアルタイムでのログ有効活用 （1/4）：CodeZine</a></td>
<td>376</td>
<td>2013/02/14</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/dkfj/20130407/1365330503" target="_blank">何故、fluentdなのか？ - プログラマになりたい</a></td>
<td>221</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/harukayon/fluentd-22317236" target="_blank">Fluentdがよくわからなかった話</a></td>
<td>133</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href="http://saisa.hateblo.jp/entry/2013/08/17/182700" target="_blank">FluentdとRiakの話 - After Coding</a></td>
<td>262</td>
<td>2013/08/17</td>
</tr>
<tr>
<td><a href="http://keisukenishida.hatenablog.com/entry/2013/08/20/005026" target="_blank">fluentd で集めたログを Splunk で可視化する - 技術ノート</a></td>
<td>101</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href="http://jedipunkz.github.io/blog/2013/09/07/kibana-plus-elasticsearch-plus-fluentd/" target="_blank">Kibana + ElasticSearch + fluentd を試してみた - jedipunkz' blog</a></td>
<td>100</td>
<td>2013/09/07</td>
</tr>
<tr>
<td><a href="http://y310.hatenablog.com/entry/2013/09/11/232137" target="_blank">Kibana 3 + Rails + Fluentdのサンプルアプリを作ってみた - y_310's diary</a></td>
<td>170</td>
<td>2013/09/12</td>
</tr>
<tr>
<td><a href="http://techblog.raccoon.ne.jp/archives/35031163.html" target="_blank">fluentd(td-agent) の導入 : Raccoon Tech Blog [株式会社ラクーン 技術戦略部ブログ]</a></td>
<td>105</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href="http://tagomoris.hatenablog.com/entry/2013/12/03/150656" target="_blank">Fluentdとはどのようなソフトウェアなのか - たごもりすメモ</a></td>
<td>565</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://knowledge.sakura.ad.jp/tech/1336/" target="_blank">柔軟なログ収集を可能にする「fluentd」入門 - さくらのナレッジ</a></td>
<td>301</td>
<td>2013/12/09</td>
</tr>
</tbody>
</table>
<h3 id="tips">Tips! コーディング</h3>
<p>まとめきれなかったけど、人気のあるTips、コーディングについての記事です。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/03/04/ruby-trivias-you-should-know-4/" target="_blank">知って得する！５５のRubyのトリビアな記法</a></td>
<td>632</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href="http://shokai.org/blog/archives/7262" target="_blank">橋本商会 » Ruby書くならBundler使え</a></td>
<td>159</td>
<td>2013/03/29</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/sasata299/archives/51889303.html" target="_blank">Redisでランキング機能を実装してみる - (ﾟ∀ﾟ)o彡 sasata299's blog</a></td>
<td>121</td>
<td>2013/04/24</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/naoya/20130503/1367581629" target="_blank">昨今の自分用Webアプリケーションひな形 - naoyaのはてなダイアリー</a></td>
<td>514</td>
<td>2013/05/03</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2011/06/22/21-Ruby-21-Trivia-Notations-you-should-know-in-Ruby/" target="_blank">知って得する21のRubyのトリビアな記法</a></td>
<td>106</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href="http://techracho.bpsinc.jp/morimorihoge/2013_05_16/8664" target="_blank">RubyでExcelデータをJSON形式に変換するには | TechRacho</a></td>
<td>109</td>
<td>2013/05/16</td>
</tr>
<tr>
<td><a href="http://tech.a-listers.jp/2013/05/20/sandi-metz/" target="_blank">綺麗な設計を身に付けるためのSandi Metzルール | A-Listers</a></td>
<td>199</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/camelmasa/items/5ca27ab398f105f86c76" target="_blank">Ruby - Bundlerで並列処理？？bundle installを爆速で処理する方法。 - Qiita [キータ]</a></td>
<td>158</td>
<td>2013/08/10</td>
</tr>
<tr>
<td><a href="http://melborne.github.io/2013/09/04/is-that-a-yet-another-rdoc/" target="_blank">メソッドの使い方もRubyに教えてほしい</a></td>
<td>111</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href="http://makimoto.hatenablog.com/entry/2013/10/20/Ruby_Hacking_Guide_%E3%82%92_Kindle_%E3%81%A7%E8%AA%AD%E3%82%81%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B" target="_blank">Ruby Hacking Guide を Kindle で読めるようにする - Stats of the Rivers</a></td>
<td>189</td>
<td>2013/10/20</td>
</tr>
<tr>
<td><a href="http://qiita.com/jnchito/items/dedb3b889ab226933ccf" target="_blank">[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita [キータ]</a></td>
<td>286</td>
<td>2013/11/05</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/english-for-engineers-naming-conventions" target="_blank">正しいコーディングが身につくエンジニア英語の手引き 〜文法とクラス／メソッド、命名規則〜 | Find Job ! Startup</a></td>
<td>1140</td>
<td>2013/11/05</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/tmtms/ben-dang-hakowaienkodeingufalsehua" target="_blank">本当はこわいエンコーディングの話 // Speaker Deck</a></td>
<td>197</td>
<td>2013/01/13</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/maeharin/20130118/php_ruby_love" target="_blank">PHPを愛する試み - maeharinの日記</a></td>
<td>190</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/01/24/csv-table-method-is-awesome/" target="_blank">Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について</a></td>
<td>146</td>
<td>2013/01/24</td>
</tr>
<tr>
<td><a href="http://www.slideshare.net/shokai/ruby-24925828" target="_blank">Ruby中級入門</a></td>
<td>541</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/shim0mura/20130117/1358436466" target="_blank">読みやすいコードってどんなものか考えてみた -抽象化と名前重要- - 馬鹿と天才は紙一重</a></td>
<td>517</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href="http://nekogata.hatenablog.com/entry/2013/02/09/233540" target="_blank">"状態管理用の変数をインスタンスに持たせるなこのタコって話 - life.should be_happy # =&gt; 1 examples</a></td>
<td>? failures"</td>
<td>399,2013/02/09</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/02/25/i-wanna-say-something-about-rubys-case/" target="_blank">Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい</a></td>
<td>516</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/authorNari/20130120/1358676294" target="_blank">SPDYと「やったー、net-http-spdyできたよー」の話 - I am Cruby!</a></td>
<td>139</td>
<td>2013/01/20</td>
</tr>
</tbody>
</table>
<h3 id="clientbackend">クライアントサイドとバックエンド</h3>
<p>Backborn.js, Ember.js, Angular.js, Meteorなど、たくさんのクライアントサイドJavascript Frameworkがでて、人気を集めています。RubyやRailsのプログラマはそれをどのように捉えているのでしょうか。バックエンドについての記事と一緒に紹介します。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/64057743910/mvc-gogaruco-2013" target="_blank">ダブルMVCの意味するところ [GoGaRuCo 2013] - ワザノバ | wazanova.jp</a></td>
<td>130</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href="https://gist.github.com/tily/1362110" target="_blank">サバクラ両方で動く JavaScript の大規模開発を行うために</a></td>
<td>368</td>
<td>2013/02/09</td>
</tr>
<tr>
<td><a href="http://dev.classmethod.jp/client-side/language-client-side/backbonejs-mvp/" target="_blank">Backbone.jsにおけるModel-View-Presenterアーキテクチャパターン ｜ クラスメソッド開発ブログ</a></td>
<td>162</td>
<td>2013/02/26</td>
</tr>
<tr>
<td><a href="http://blog.riywo.com/2013/05/29/151321" target="_blank">「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...</a></td>
<td>256</td>
<td>2013/05/29</td>
</tr>
</tbody>
</table>
<h3 id="env">Rubyを取り巻く環境、組織</h3>
<p>Rubyを取り巻く環境について、イノベーション、OSS、他の言語やモバイル。そして働く組織の話も多くのブックマークを集めました。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://engineer.typemag.jp/article/matzxmasuidrive" target="_blank">まつもとゆきひろ×増井雄一郎のオープンソース談義 「1人の熱烈なフォロワーがいれば、OSSで世界を変えられる」 - エンジニアtype</a></td>
<td>168</td>
<td>2013/03/25</td>
</tr>
<tr>
<td><a href="http://www.atmarkit.co.jp/ait/articles/1304/16/news133.html" target="_blank">日本はもっと、エンジニアを大切に：まつもとゆきひろ氏の「新経済サミット2013」語録 - ＠IT</a></td>
<td>264</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href="http://internet.watch.impress.co.jp/docs/event/20130417_596169.html" target="_blank">LINE、グリー、GMOのトップが激論――日本でイノベーションを起こすには？ -INTERNET Watch</a></td>
<td>144</td>
<td>2013/04/17</td>
</tr>
<tr>
<td><a href="http://tadachi.txt-nifty.com/blog/2013/05/post-176e.html" target="_blank">まつもとゆきひろ氏の「世界に通用する技術者になるためには」を聴講してきた: tadachi-net 出張所</a></td>
<td>251</td>
<td>2013/05/19</td>
</tr>
<tr>
<td><a href="http://eed3si9n.com/ja/simplicity-matters" target="_blank">シンプルさの必要性 | eed3si9n</a></td>
<td>146</td>
<td>2013/06/24</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/kuromatu/rubykaraphphe-enziniafalsetamefalsesi-kao-yi-xing-gaido" target="_blank">RubyからPHPへ -エンジニアのための思考移行ガイド- // Speaker Deck</a></td>
<td>103</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href="http://ds.freee.co.jp/2013/11/18/google/" target="_blank">僕が Google を辞めた理由 | クラウド会計ソフト freee - 佐々木大輔のブログ</a></td>
<td>467</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href="http://internet.watch.impress.co.jp/docs/news/20131203_626035.html" target="_blank">まつもとゆきひろ氏「プログラミングコミュニティーは終わらない文化祭」 -INTERNET Watch</a></td>
<td>177</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href="http://www.publickey1.jp/blog/13/sfdc2013.html" target="_blank">PR：伊藤直也×まつもとゆきひろ。ポストPC時代のモバイル開発を語る － Publickey</a></td>
<td>190</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href="https://speakerdeck.com/robotvert/about-cookpad-2013-11" target="_blank">About COOKPAD (2013-11) // Speaker Deck</a></td>
<td>143</td>
<td>2013/11/19</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/items/675" target="_blank">Githubの組織が成長する過程で変えたことと変えなかったこと - ワザノバ | wazanova</a></td>
<td>638</td>
<td>2013/11/20</td>
</tr>
</tbody>
</table>
<h3 id="func">TwitterがRubyからJVM 言語群へ。関数型言語のトレンド</h3>
<p>最後にTwitterがRubyからJVM 言語群への移行をおこなった（おこなっている）。また、クロック数の限界とCPUコア数の増加から、関数型言語への注目が集まりました。これからのRubyやプログラミングについて考えるのにいいトピックだとおもい、このトピックで今年2013年の話題の振り返りを終わりにします。</p>
<table>
<tbody>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href="http://2013.8-p.info/japanese/09-28-languages.html" target='_blank'>はじめの言語の賞味期限 - Kato Kazuyoshi</a></td>
<td>359</td>
<td>2013/09/28</td>
</tr>
<tr>
<td><a href="http://blog.livedoor.jp/itsoku/archives/33671593.html" target='_blank'>GitHubがRubyとMVCの限界を悟り、C#とMVVMに全面移行！！ : IT速報</a></td>
<td>167</td>
<td>2013/10/05</td>
</tr>
<tr>
<td><a href="http://www.find-job.net/startup/architecture-2013" target='_blank'>国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 | Find Job ! Startup</a></td>
<td>1169</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href="http://wazanova.jp/post/66950939518/twitter" target='_blank'>Twitter: 大きなトラフィックに耐えうるアーキテクチャーへの変更 - ワザノバ | wazanova.jp</a></td>
<td>119</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href="http://www.infoq.com/jp/news/2013/08/scaling-twitter" target='_blank'>Twitterのスケーリング，新たなピークへ</a></td>
<td>258</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href="http://d.hatena.ne.jp/camlspotter/20130117/1358406799" target='_blank'>"関数型言語を独学で勉強している学生です への答 - Oh</a></td>
<td> you `re no (fun _ → more)"</td>
<td>118,2013/01/17</td>
</tr>
<tr>
<td><a href="http://melborne.github.com/2013/01/21/why-fp-with-ruby/" target='_blank'>Rubyを使って「なぜ関数プログラミングは重要か」を読み解く（改定）─ 前編 ─ 但し後編の予定なし</a></td>
<td>186</td>
<td>2013/01/21</td>
</tr>
<tr>
<td><a href="http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html" target='_blank'>Rubyによる関数型プログラミング</a></td>
<td>295</td>
<td>2013/02/03</td>
</tr>
<tr>
<td><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20130112/449223/" target='_blank'>Javaはもう古い！次の主流は「関数型」 - ［関数型言語のトレンド］国内でも採用企業が増加：ITpro</a></td>
<td>270</td>
<td>2013/02/04</td>
</tr>
<tr>
<td><a href="http://yuroyoro.hatenablog.com/entry/2013/03/27/190640" target='_blank'>Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記</a></td>
<td>166</td>
<td>2013/03/27</td>
</tr>
</tbody>
</table>
<p>2013年人気のあった記事を話題別にまとめてみました。トレンドや見逃していた記事、やり残したことが見つかると幸いです。
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-ruby/">2013年Rubyの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/year-of-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2013年PHPの話題を一挙に振り返るまとめ</title>
		<link>http://www.engineyard.co.jp/blog/2013/year-of-php/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/year-of-php/#comments</comments>
		<pubDate>Wed, 25 Dec 2013 06:00:26 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2152</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2012/12/php-logo.jpeg" alt="php-logo" width="578" height="406" class="alignnone size-full wp-image-424" /></p>
<p>2013年も本当にあとわずかになりました。<br />
本日は今年話題になったPHPについての記事を公式のリリースやはてなブックマークから抽出してきた内容を元に今年を振り返ってみましょう。PHPにとって今年はどのような一年だったのでしょうか。</p>
<p>参考：<br />
<a href="http://www.engineyard.co.jp/blog/2012/a-year-of-php/">2012年のPHP周辺の話題振り返り | Engine Yard Blog JP</a></p>
<h3>PHPのバージョン</h3>
<p>2013年中にリリースされたPHPのバージョンは5.3、5.4、5.5の3系統で合計29のリリースが行われました。リリースサイクルはほぼ毎月という形でした。またPHPの公式サイトがレスポンシブ対応の新しいデザインに切り替わりました。詳細は下記の通りです。</p>
<table>
<tr>
<th>Version 5.4.11</th>
<td>2013/1/17</td>
</tr>
<tr>
<th>Version 5.3.21</th>
<td>2013/1/17</td>
</tr>
<tr>
<th>Version 5.4.12</th>
<td>2013/2/21</td>
</tr>
<tr>
<th>Version 5.3.22</th>
<td>2013/2/21</td>
</tr>
<tr>
<th>Version 5.4.13</th>
<td>2013/3/14</td>
</tr>
<tr>
<th>Version 5.3.23</th>
<td>2013/3/14</td>
</tr>
<tr>
<th>Version 5.4.14</th>
<td>2013/4/11</td>
</tr>
<tr>
<th>Version 5.3.24</th>
<td>2013/4/11</td>
</tr>
<tr>
<th>Version 5.4.15</th>
<td>2013/5/9</td>
</tr>
<tr>
<th>Version 5.3.25</th>
<td>2013/5/9</td>
</tr>
<tr>
<th>Version 5.4.16</th>
<td>2013/6/6</td>
</tr>
<tr>
<th>Version 5.3.26</th>
<td>2013/6/6</td>
</tr>
<tr>
<th>Version 5.5.0</th>
<td>2013/6/20</td>
</tr>
<tr>
<th>Version 5.4.17</th>
<td>2013/7/4</td>
</tr>
<tr>
<th>Version 5.3.27</th>
<td>2013/7/11</td>
</tr>
<tr>
<th>Version 5.5.1</th>
<td>2013/7/18</td>
</tr>
<tr>
<th>Version 5.5.2</th>
<td>2013/8/15</td>
</tr>
<tr>
<th>Version 5.4.18</th>
<td>2013/8/15</td>
</tr>
<tr>
<th>Version 5.5.3</th>
<td>2013/8/22</td>
</tr>
<tr>
<th>Version 5.4.19</th>
<td>2013/8/22</td>
</tr>
<tr>
<th>Version 5.5.4</th>
<td>2013/9/19</td>
</tr>
<tr>
<th>Version 5.4.20</th>
<td>2013/9/19</td>
</tr>
<tr>
<th>Version 5.5.5</th>
<td>2013/10/17</td>
</tr>
<tr>
<th>Version 5.4.21</th>
<td>2013/10/17</td>
</tr>
<tr>
<th>Version 5.5.6</th>
<td>2013/11/14</td>
</tr>
<tr>
<th>Version 5.4.22</th>
<td>2013/11/14</td>
</tr>
<tr>
<th>Version 5.5.7</th>
<td>2013/12/12</td>
</tr>
<tr>
<th>Version 5.4.23</th>
<td>2013/12/12</td>
</tr>
<tr>
<th>Version 5.3.28</th>
<td>2013/12/12</td>
</tr>
</table>
<p style="background:#99EE99;border: black dotted 1px; padding:15px">
<strong>[重要] 頻繁にバージョンアップされるPHPを最新の状態に保つにはEngine Yard Cloudの利用をお奨めします。</strong>
</p>
<h3>PHP5.5の新機能</h3>
<p>上記のとおり、6月にPHP5.5がリリースされました。機能の追加や廃止を含むリリースでメジャーバージョンアップではありませんが、重要なリリースです。PHP5.5で追加された新機能は下記の通りです。</p>
<ul>
<li>ジェネレータの追加</li>
<li>finally キーワードの追加</li>
<li>新しいパスワードハッシュ API</li>
<li>foreach が list() に対応</li>
<li>empty() が任意の式に対応</li>
<li>array リテラルと string リテラルのデリファレンス</li>
<li>::class によるクラス名の解決</li>
<li>OPcache 拡張モジュールの追加</li>
<li>foreach が非スカラーのキーに対応</li>
<li>Apache 2.4 ハンドラが Windows に対応</li>
<li>GD の改良</li>
</ul>
<p>その他、廃止される機能などの詳細は<a href="http://www.php.net/manual/ja/migration55.php" target="_blank">PHPの公式ドキュメント</a>をご覧ください。</p>
<h3>ブログ記事の総評</h3>
<p>今年話題になったPHPに関する記事から厳選した記事が下記の20個の記事です。見逃した記事があればぜひともチェックしてみてください。</p>
<ul>
<li><a href="https://gist.github.com/masakielastic/5457174" target="_blank">すぐれた PHP ライブラリとリソース</a></li>
<li><a href="http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php" target="_blank">Vagrant で作る PHP 開発環境</a></li>
<li><a href="http://www.slideshare.net/ockeghem/phpconf2013" target="_blank">安全なPHPアプリケーションの作り方2013</a></li>
<li><a href="http://qiita.com/mpyw/items/b00b72c5c95aac573b71" target="_blank">PHPでデータベースに接続するときのまとめ - Qiita [キータ]</a></li>
<li><a href="http://www.slideshare.net/yoku0825/devsdba" target="_blank">Devsの常識、DBAは非常識</a></li>
<li><a href="http://dqn.sakusakutto.jp/2013/11/php51to54.html" target="_blank">ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></li>
<li><a href="http://tech.a-listers.jp/2013/05/06/web-framework-benchmark/" target="_blank">16の言語と57のフレームワークを比較したベンチマークが凄い | A-Listers</a></li>
<li><a href="http://www.slideshare.net/techblogyahoo/phpcon2013-performance" target="_blank">本当に怖いパフォーマンスが悪い実装 #phpcon2013</a></li>
<li><a href="http://www.slideshare.net/ockeghem/xssreintroduction" target="_blank">XSS再入門</a></li>
<li><a href="https://speakerdeck.com/yandod/modanphptiyutoriaru-llmaturiban" target="_blank">モダンPHPチュートリアル (LLまつり版) // Speaker Deck</a></li>
<li><a href="http://cloverstudioceo.hatenablog.com/entry/2013/10/21/033700" target="_blank">Spikaを公開して起こった事 - ヨーロッパで働く社長のブログ</a></li>
<li><a href="http://www.msng.info/archives/2013/08/php-engineer-book.php" target="_blank">いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ - 頭ん中</a></li>
<li><a href="http://d.hatena.ne.jp/Kenji_s/20130221/php_regexp" target="_blank">PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis</a></li>
<li><a href="http://blog.tojiru.net/article/377526320.html" target="_blank">PHPのinterfaceとは何か - 泥のように</a></li>
<li><a href="http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html" target="_blank">PHP開発環境のサンプルVagrantfile - Shin x blog</a></li>
<li><a href="http://kaz29.hatenablog.com/entry/2013/04/30/122642" target="_blank">「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29</a></li>
<li><a href="http://www.atmarkit.co.jp/ait/articles/1308/20/news004.html" target="_blank">PHP 5.5の新機能：さっくり理解するPHP 5.5の言語仕様と「いい感じ」の使い方 (1/2) - ＠IT</a></li>
<li><a href="http://d.hatena.ne.jp/thk/20131221" target="_blank">「WEB+DB PRESS」で艦これで有名なDMMの開発体制の全貌が明らかに - 東洋黒客の凱旋</a></li>
<li><a href="http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/" target="_blank">PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP</a></li>
<li><a href="http://blog.sarabande.jp/post/48522241291" target="_blank">2013年において注目すべき PHP フレームワークは Laravel - Sarabande.jp</a></li>
</ul>
<p>それぞれの月の記事と概要は下記の通りです。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<hr/>
<h3>1月:PhpStormについてのスライドが話題に</h3>
<p>1月の話題で特に注目すべきなのはFacebookが開発し公開しているPHPの仮想マシン、HipHopVMについての記事とPHPStormについて触れたスライドではないでしょうか。HipHopはPHPをC++に変換して実行するというコードトランスレーターをJITコンパイラへと近づけていく意欲的な試みです。この機能は最終的にはPHP本体に取り込まれるような可能性もあり今後も注目が集まりそうです。</p>
<p>また今年はPhpStormの利用が広がりましたが、その背景が@hisaterutanakaさんのスライドに述べられています。</p>
<blockquote><p>「PHPはJavaの次に静的解析しやすい言語。これはRubyが気付いていないPHPの長所」 ―PHPメンターズと朝まで過ごしたときの言</p></blockquote>
<p>PHPは言語としての弱さを指摘されることも多いですが、上記のようにコード生成や解析がしやすいという側面が先進的な取り組みの基礎になっているとも言えるでしょう。また年末年始の時間を利用したのかサイトを作ってみたという話題も（掲載できないようなサイトも含めて）話題になっていたのが特徴です。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130104184115' target='_blank'>ド素人が完全自作SNSを作ってみてわかったこと。</a></td>
<td>1568</td>
<td>2013/01/04</td>
</tr>
<tr>
<td><a href='http://japan.cnet.com/sp/businesslife/35026228/' target='_blank'>2013年、開発者が注目すべき10のスキル - CNET Japan</a></td>
<td>257</td>
<td>2013/01/07</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/01/googlefacebookt.html' target='_blank'>Google,Facebook,Twitter,Tumblr等のAPIを簡単に扱える機能豊富なPHPライブラリセット「Eden」:phpspot開発日誌</a></td>
<td>132</td>
<td>2013/01/08</td>
</tr>
<tr>
<td><a href='http://wp-d.org/2013/01/14/1938/' target='_blank'>新春座談会 このコンピュータ書がすごい！ 2013年版 | WP-D</a></td>
<td>347</td>
<td>2013/01/14</td>
</tr>
<tr>
<td><a href='http://tech.a-listers.jp/2013/01/16/speeding-up-php-based-development-with-hiphop-vm/' target='_blank'>Facebookが開発したPHPを超高速で実行する仮想マシン HipHop VM « A-Listers</a></td>
<td>181</td>
<td>2013/01/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/maeharin/20130118/php_ruby_love' target='_blank'>PHPを愛する試み - maeharinの日記</a></td>
<td>190</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130118212733' target='_blank'>ド素人が完全自作SNSを二週間運営してみてわかったこと（後始末編、技術編、モチベーション編）</a></td>
<td>662</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href='http://blog.xao.jp/blog/cakephp/how-to-access-to-a-variaty-of-objects/' target='_blank'>CakePHPで様々なオブジェクトへのアクセスの仕方 | X->A->O</a></td>
<td>165</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/tanakahisateru/jetbrains2-phpstorm' target='_blank'>PhpStormを使おう --高槻からは快速急行が早くなります</a></td>
<td>105</td>
<td>2013/01/30</td>
</tr>
</table>
<h3>2月:正規表現の話題とセキュリティ</h3>
<p>2月はさまざまなTIPS系の話題が多く、何度か登場する正規表現の話題とセキュリティについての話題が出ています。また今年は一年を通じてエディタの話題も多かったのですが2月にVimの話題が出ています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://photoshopvip.net/archives/45206' target='_blank'>[技術] nginxを利用した、高速サーバー構築マニュアル - Photoshop VIP</a></td>
<td>607</td>
<td>2013/02/11</td>
</tr>
<tr>
<td><a href='http://chantk-twi.pupu.jp/archives/747' target='_blank'>短期間でプログラミングを習得してWebサービスをつくるための知識と方法まとめ | らふらく ^^</a></td>
<td>1441</td>
<td>2013/02/11</td>
</tr>
<tr>
<td><a href='http://densho.hatenablog.com/entry/dendenconverter' target='_blank'>EPUBを作成するウェブサービス作ったよ - 電書ちゃんねる</a></td>
<td>268</td>
<td>2013/02/14</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html' target='_blank'>ログアウト機能の目的と実現方法 | 徳丸浩の日記</a></td>
<td>297</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://liginc.co.jp/programmer/archives/4921' target='_blank'>PHPでjQueryチックにWebサイトをクローリングする方法 | 株式会社LIG</a></td>
<td>123</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://runnable.com/' target='_blank'>Edit, run, & share server-side code in your browser - Make your code Runnable</a></td>
<td>156</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://tumblr.tokumaru.org/post/43394245031/web-11' target='_blank'>勝手に査読:Webアプリにおける11の脆弱性の常識と対策 - 徳丸浩のtumblr</a></td>
<td>320</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/do_aki/20130218/1361197742' target='_blank'>Excel は Editor ですか？ いいえ、Image Viewer です。 - do_akiの徒然想記</a></td>
<td>114</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/murishinai/20130220/p1' target='_blank'>三項演算子である条件演算子が右結合であることの利点・妥当性と可読性について - Guinea Pig</a></td>
<td>171</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/Kenji_s/20130221/php_regexp' target='_blank'>PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis</a></td>
<td>273</td>
<td>2013/02/21</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/02/codebird-php.html' target='_blank'>PHPからTwitter APIを叩くなら『codebird-php』が便利そう | IDEA*IDEA</a></td>
<td>116</td>
<td>2013/02/21</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/02/security-measures-of-own-way-are-unsafe.html' target='_blank'>自己流のSQLインジェクション対策は危険 | 徳丸浩の日記</a></td>
<td>224</td>
<td>2013/02/23</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/sifue/20130224/1361713497' target='_blank'>ssh上でマウススクロールも使える大規模PHP開発向けvim+tmux環境の構築 - しふーのブログ</a></td>
<td>356</td>
<td>2013/02/24</td>
</tr>
<tr>
<td><a href='http://matome.naver.jp/odai/2136185347913005301' target='_blank'>【初心者向け】最速でphpを学ぶための厳選記事集 - NAVER まとめ</a></td>
<td>730</td>
<td>2013/02/26</td>
</tr>
<tr>
<td><a href='http://c-brains.jp/blog/wsg/13/02/27-102230.php' target='_blank'>Vim で PHP 開発するためにやってる設定 3 つほど | バシャログ。</a></td>
<td>108</td>
<td>2013/02/27</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/perlcodesample/20130227/1361928810' target='_blank'>変数に型がないということの利点について考える - サンプルコードによるPerl入門</a></td>
<td>405</td>
<td>2013/02/27</td>
</tr>
</table>
<h3>3月:PHPを何故使うのか</h3>
<p>3月はPHPを何故使うのか、という意義について述べた記事が話題になっています。言語仕様の至らない点を指摘するといういつもの流れもある一方でとにかく動くサービスやプロダクトを作るべしという事を述べた体験談が見受けられます。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://ameblo.jp/nikko-inma/entry-11122429825.html' target='_blank'>PHPとかいう糞言語｜いんまのブログ</a></td>
<td>210</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/bravewood/20130307' target='_blank'>PHPは代入と参照の違い | 2013-03-07 - bravewood の日記</a></td>
<td>135</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://blogs.itmedia.co.jp/fukuyuki/2013/03/php-57de.html' target='_blank'>カネと時間考えるならPHPやっとけ。たぶｎ ：村上福之の「ネットとケータイと俺様」：ITmedia オルタナティブ・ブログ</a></td>
<td>435</td>
<td>2013/03/08</td>
</tr>
<tr>
<td><a href='http://suzuki.tdiary.net/20130309.html#p01' target='_blank'>PHPUnit と Selenium2 を使ってブラウザベースの自動テストを実行するための最初の一歩的な何かを発表してきた - 雑文発散(2013-03-09)</a></td>
<td>174</td>
<td>2013/03/09</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/dankogai/archives/51858766.html' target='_blank'>404 Blog Not Found:ついに顕在化しはじめたArrayリスク</a></td>
<td>107</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/03/20130313-2/' target='_blank'>Facebook製。プログラマー向けのプロジェクト管理「Phabricator」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>147</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://knoh.jp/answers/22cc7d73' target='_blank'>メジャーなプログラミング言語とそれらの役割を、素人でも分かるように教えてください。 - Knoh</a></td>
<td>1211</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://blog.champierre.com/973' target='_blank'>Vagrant 入門 - Windows 上に Linux の仮想マシンを簡単に用意する - 僕は発展途上技術者</a></td>
<td>416</td>
<td>2013/03/16</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/obama_for_america_1.html' target='_blank'>「Obama For America」の開発チームが作り上げた大規模な選挙キャンペーンシステムの舞台裏（後編） － Publickey</a></td>
<td>117</td>
<td>2013/03/18</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130322031333' target='_blank'>プログラミング出来ない奴ちょっと来い</a></td>
<td>2024</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://www.compileonline.com/' target='_blank'>Compile and Execute Programs Online| Online IDE</a></td>
<td>121</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/kazuhooku/20130323/1364039729' target='_blank'>なぜPHPでrequire("http://...")したらセキュリティホールなのに、Goならいいのか - kazuhoのメモ置き場</a></td>
<td>153</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://blog.verygoodtown.com/2013/03/development-user-style-guide/' target='_blank'>プログラマのための言語別コーディング規約まとめ | Web活メモ帳</a></td>
<td>1248</td>
<td>2013/03/29</td>
</tr>
<tr>
<td><a href='http://uzulla.hateblo.jp/entry/2013/03/31/223143' target='_blank'>一行でも書け、倒れるときは前のめり（または書かないで済ませる話） - uzullaがブログ</a></td>
<td>103</td>
<td>2013/04/01</td>
</tr>
</table>
<h3>4月:LaravelとZend OPCache</h3>
<p>4月はLaravelとZend OPCacheについての記事が話題になっています。軽量さで人気が高まってきているLaravelとAPCに変わるキャッシュとして標準化されるOPCacheは今後は実際に利用されるケースが増えてくるでしょう。<br />
また有用なライブラリのリストを翻訳して紹介したエントリが話題になっていました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.kaasan.info/archives/2623' target='_blank'>PHPを勉強するならこれだけは言いたい！PHPのオススメ勉強法-ITかあさん</a></td>
<td>506</td>
<td>2013/04/01</td>
</tr>
<tr>
<td><a href='http://shukatsu-mirai.com/shukatsu/web-ap/' target='_blank'>初心者でも3か月でwebサービスを必ず作れるようになる！Webサービス学習資料5選 | 就活の未来 大学生のための就活支援サイト</a></td>
<td>815</td>
<td>2013/04/03</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/04/php-displayerrors-xss.html' target='_blank'>PHPのdisplay_errorsが有効だとカジュアルにXSS脆弱性が入り込む | 徳丸浩の日記</a></td>
<td>115</td>
<td>2013/04/04</td>
</tr>
<tr>
<td><a href='http://blog.kenjiskywalker.org/blog/2013/04/04/tweets_zip_big_data/' target='_blank'>tweets.zipをMySQLに突っ込んでSQLを学ぶ(導入編) - さよならインターネット</a></td>
<td>275</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/04/20130406/' target='_blank'>意外と便利？PHP製のHTML用問い合わせ言語「htmlSQL」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>159</td>
<td>2013/04/06</td>
</tr>
<tr>
<td><a href='http://coliss.com/articles/build-websites/operation/javascript/jquery-plugin-superbox.html' target='_blank'>[JS]lightboxの進化形、レスポンシブ対応で画像を拡大表示するスクリプト -SuperBox | コリス</a></td>
<td>270</td>
<td>2013/04/08</td>
</tr>
<tr>
<td><a href='http://wp.yat-net.com/?p=3662' target='_blank'>AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順 - YATのBLOG</a></td>
<td>211</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/moto_maka/20130412/1365708877' target='_blank'>iPhoneアプリにPush通知機能を実装する方法のまとめ - もとまか日記</a></td>
<td>130</td>
<td>2013/04/12</td>
</tr>
<tr>
<td><a href='http://kirinblog.com/tool/sublimetext2-emmet.html' target='_blank'>Sublime Text 2とEmmetで制作効率アップ！@福岡マークアップ勉強会 | キリンブログ</a></td>
<td>100</td>
<td>2013/04/14</td>
</tr>
<tr>
<td><a href='http://techacademy.jp/magazine/620' target='_blank'>日本語も対応！ブラウザでプログラミングが学べる「Codecademy」を実際にやってみた | TechAcademyマガジン</a></td>
<td>375</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href='http://coliss.com/articles/web-services/online-regexp-playground.html' target='_blank'>正規表現と文字列がマッチしているか簡単にチェックできるオンラインツール -RegExp playground | コリス</a></td>
<td>206</td>
<td>2013/04/19</td>
</tr>
<tr>
<td><a href='http://blog.sarabande.jp/post/48522241291' target='_blank'>2013年において注目すべき PHP フレームワークは Laravel - Sarabande.jp</a></td>
<td>233</td>
<td>2013/04/21</td>
</tr>
<tr>
<td><a href='http://blog.1dz.jp/?eid=805' target='_blank'>Sublime Textの地味に便利なショートカット5つ | Webデザインのタネ</a></td>
<td>213</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/t_wada/sql-antipatterns-digest' target='_blank'>SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)</a></td>
<td>479</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://blog.asial.co.jp/1152' target='_blank'>PHPからChromeにログ出力「Chrome Logger」 : アシアルブログ</a></td>
<td>126</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='https://gist.github.com/masakielastic/5457174' target='_blank'><strong>すぐれた PHP ライブラリとリソース</strong></a></td>
<td>798</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/04/php55_replace_apc_with_zend_opcache.html' target='_blank'>PHP5.5 のコードキャッシュは APC から Zend OPcache へ - Shin x blog</a></td>
<td>188</td>
<td>2013/04/29</td>
</tr>
<tr>
<td><a href='http://kaz29.hatenablog.com/entry/2013/04/30/122642' target='_blank'>「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29</a></td>
<td>244</td>
<td>2013/04/30</td>
</tr>
</table>
<h3>5月:ベンチマークに関する記事とPaaS</h3>
<p>5月で目を引くのはベンチマークに関する記事とGoogle AppEngineのPHP対応の記事でしょう。ベンチマークについては随時情報が更新されており、PHPはどちらかというと遅い部類に分類されていますがPhalconが特に高いパフォーマンスを出しており注目されました。以降、実際にPhalconを使っているという話題や使ってみたいという声の引き金になった話題と言ってよいでしょう。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/05/20130506/' target='_blank'>MySQL/SQLiteのER図を描くPHPスクリプト「mysqlviz」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>144</td>
<td>2013/05/06</td>
</tr>
<tr>
<td><a href='http://tech.a-listers.jp/2013/05/06/web-framework-benchmark/' target='_blank'>16の言語と57のフレームワークを比較したベンチマークが凄い | A-Listers</a></td>
<td>555</td>
<td>2013/05/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/kazuk_i/20130508/1368018346' target='_blank'>弊社エンジニア職の求人に、日本から一向に応募が無い件 - Tous Les Jours 攻防記</a></td>
<td>434</td>
<td>2013/05/08</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130513092207' target='_blank'>素人がそこそこのWebサービスをつくる方法</a></td>
<td>598</td>
<td>2013/05/13</td>
</tr>
<tr>
<td><a href='http://rosylilly.hatenablog.com/entry/2013/05/13/231447' target='_blank'>プログラミングの話 - 鳩舎</a></td>
<td>213</td>
<td>2013/05/13</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/tdak/yurukawalinux' target='_blank'>ゆるかわLinux // Speaker Deck</a></td>
<td>109</td>
<td>2013/05/14</td>
</tr>
<tr>
<td><a href='http://monosy.com/blog/1' target='_blank'>ゆとり文系も一人でWebサービスを作ってみました｜Monosyブログ</a></td>
<td>648</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/google_app_enginephpphpsdk.html' target='_blank'>Google App EngineがPHPに対応、限定プレビューを開始。ローカルでPHP環境を再現するSDKも公開 － Publickey</a></td>
<td>219</td>
<td>2013/05/17</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130517213002' target='_blank'>アフィリエイトで勘違いした大学生の末路</a></td>
<td>613</td>
<td>2013/05/17</td>
</tr>
<tr>
<td><a href='http://uiureo.hatenablog.com/entry/2013/05/19/030414' target='_blank'>GIFアニメ生成にImageMagickはオワコン、情強は高速なGraphicsMagickを使う - 海峡</a></td>
<td>473</td>
<td>2013/05/19</td>
</tr>
<tr>
<td><a href='http://plus.find-job.net/programming-learning-site' target='_blank'>手遅れになる前に！Webディレクターがプログラミングを学ぶ時に使いたいサイト10選</a></td>
<td>948</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/05/JSON-information-disclosure-vulnerability-CVE-2013-1297.html' target='_blank'>JSONをvbscriptとして読み込ませるJSONハイジャック(CVE-2013-1297)に注意 | 徳丸浩の日記</a></td>
<td>237</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1305/23/news004.html' target='_blank'>NoSQLを使うなら知っておきたいセキュリティの話（1）：「演算子のインジェクション」と「SSJI」 (1/2) - ＠IT</a></td>
<td>216</td>
<td>2013/05/22</td>
</tr>
<tr>
<td><a href='http://liginc.co.jp/web/tool/30371' target='_blank'>意外と知らない？サイトの更新が便利なCMSまとめ15選 | 株式会社LIG</a></td>
<td>200</td>
<td>2013/05/23</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/05/phprubyjshtmlcs.html' target='_blank'>PHP,Ruby,JS,HTML,CSSをブラウザ上で開発できるオープンソースIDEエディタ「ICEcoder」:phpspot開発日誌</a></td>
<td>199</td>
<td>2013/05/24</td>
</tr>
<tr>
<td><a href='http://knoh.jp/answers/d65c7a82' target='_blank'>Evan Priestley 氏がどうやってプログラミングを学んだかを教えてください | Knoh</a></td>
<td>347</td>
<td>2013/05/28</td>
</tr>
<tr>
<td><a href='http://codezine.jp/article/detail/7141' target='_blank'>PHP::Haruで基本的なPDFを作成する （1/3）：CodeZine</a></td>
<td>159</td>
<td>2013/05/28</td>
</tr>
<tr>
<td><a href='http://monosy.com/blog/4' target='_blank'>Webサイトを作りたい人へ。一歩踏み出すために知りたい3つのこと｜Monosyブログ</a></td>
<td>109</td>
<td>2013/05/29</td>
</tr>
</table>
<h3>6月:学習への関心</h3>
<p>6月の記事は個別のトピックというよりも体験談や学習方法といった内容が多いです。見返してみると今年はどのように学習しどのように使うのかといった話題やオンラインで学習できるコンテンツへの言及が多かったように思います。<br />
実際に勉強会などでお会いする方でもドットインストールで勉強しているというような方に会う機会が増えたなと感じました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cloned/php-kansai2013-lt' target='_blank'>一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~</a></td>
<td>102</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130608120106' target='_blank'>アマゾン商品をいい感じに検索できる「あまけん」をリリースしました</a></td>
<td>100</td>
<td>2013/06/08</td>
</tr>
<tr>
<td><a href='http://ginpen.com/2013/06/17/start-dash/' target='_blank'>Dashを入れてみたらjQueryやらのドキュメントを見るのが想像以上に快適だったよ。 | Ginpen.com</a></td>
<td>135</td>
<td>2013/06/17</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/yutakikuchi/20130617/1371425713' target='_blank'>誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記</a></td>
<td>620</td>
<td>2013/06/17</td>
</tr>
<tr>
<td><a href='http://blog.asial.co.jp/1175' target='_blank'>PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回 : アシアルブログ</a></td>
<td>136</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href='http://blog.generace.co.jp/2013/06/21/894' target='_blank'>あなたのコード、激遅ぷんぷん丸？今すぐできる7つのチェック項目 PHP編 | GeNERACE labo</a></td>
<td>252</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/luminhacker/web-23310333' target='_blank'>Webクローリング＆スクレイピングの最前線 公開用</a></td>
<td>472</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://tech.basicinc.jp/PHP/2013/06/17/vim-php/' target='_blank'>VimをPHP用にカスタマイズする - vim使いこなしたいvim初心者へ</a></td>
<td>210</td>
<td>2013/06/23</td>
</tr>
<tr>
<td><a href='http://yoonchulkoh.hatenablog.com/entry/2013/06/25/083305' target='_blank'>新卒エンジニアのための先輩エンジニアによる一目置かれるエンジニアとして成長していくために必要なこと。 - 悪あがきプログラマー</a></td>
<td>476</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href='http://creive.me/archives/2896/' target='_blank'>「学びたい、全ての人へ」creiveより</a></td>
<td>2000</td>
<td>2013/06/30</td>
</tr>
<tr>
<td><a href='http://www.100shiki.com/archives/2013/06/learn_x_in_y_minutes.html' target='_blank'>プログラミング言語を最速で学ぶための『Learn X in Y minutes』 | 100SHIKI</a></td>
<td>169</td>
<td>2013/06/30</td>
</tr>
</table>
<h3>7月:Vagrant、Phalcon、浮動小数点</h3>
<p>7月あたりからはPHPの開発にVagrantを使うという話題を聞くことが増えてきます。実際にPHPカンファレンス関西などでの講演を受けて試してみようという人が増えてきたのでしょう。またPhalconについてまとまった資料が出てきた事で注目が集まりました。<br />
一方で浮動小数点というPHPにとっては伝統芸といってもよい話題も出てきています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/07/20130706-2/' target='_blank'>これは凄い！iOSアプリ内で動作するPHP「iPHP」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>393</td>
<td>2013/07/06</td>
</tr>
<tr>
<td><a href='http://www.find-job.net/startup/api-2013' target='_blank'>日本の全エンジニアに捧ぐ！現在公開されているAPI一覧【2013年版】 | Find Job ! Startup</a></td>
<td>3837</td>
<td>2013/07/10</td>
</tr>
<tr>
<td><a href='http://webnaut.jp/markup/606.html' target='_blank'>【業務効率が変わる！】こんな時に役に立つ「正規表現」の使い所 | Markup | WebNAUT</a></td>
<td>270</td>
<td>2013/07/11</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/07/20130715/' target='_blank'>データベース無し、Markdownでコンテンツを作成するCMS「Pico」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>192</td>
<td>2013/07/15</td>
</tr>
<tr>
<td><a href='http://btwael.github.io/mammouth/' target='_blank'>Mammouth</a></td>
<td>117</td>
<td>2013/07/15</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/07/grepgrepack.html' target='_blank'>grepをよく使うプログラマはどう考えても乗り換えるべき新しいgrepコマンド「ack」:phpspot開発日誌</a></td>
<td>325</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.infiniteloop.co.jp/blog/2013/07/phpmatsuri-db-partition/' target='_blank'>PHPMatsuri2013で発表した資料を公開しました「ソーシャルゲーム案件におけるDB分割のPHP実装～とにかく分割ですよ。10回じゃ足りない。20回くらい分割。～」 | 株式会社インフィニットループ</a></td>
<td>131</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php' target='_blank'>もう XAMPP / MAMP はいらない！ Vagrant で作る PHP 開発環境</a></td>
<td>733</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/30593028.html' target='_blank'>２ｃｈの天才「YouTube動画をリアルタイムで共有できるチャットつくったった」 : IT速報</a></td>
<td>525</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='http://melpon.org/wandbox/' target='_blank'>wandbox</a></td>
<td>135</td>
<td>2013/07/19</td>
</tr>
<tr>
<td><a href='http://commte.net/blog/archives/3403' target='_blank'>ひとりでWeb制作できた！「知識０から学ぶ」すごいスライドやサイト２７ | コムテブログ</a></td>
<td>1408</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://k1low.hatenablog.com/entry/2013/07/22/185615' target='_blank'>さくらVPSセットアップ用のシェルスクリプトを今話題の「Ansible」で書き直してみた - Copy/Cut/Paste/Hatena</a></td>
<td>262</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/hnw/20130723' target='_blank'>第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記</a></td>
<td>102</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/07/jennifer_dewalt.html' target='_blank'>プログラミング経験ゼロから『180日連続で毎日1個サイト作るぞ！』を実践しているJenifferさんの作品群がすごい | IDEA*IDEA</a></td>
<td>706</td>
<td>2013/07/25</td>
</tr>
<tr>
<td><a href='http://www.rodeo.jp.net/tech/phalcon-php-framework/' target='_blank'>RODEO.inc » 爆速フレームワーク!! Phalcon PHP Framework</a></td>
<td>142</td>
<td>2013/07/26</td>
</tr>
<tr>
<td><a href='http://shgam.hatenadiary.jp/entry/2013/07/24/181230' target='_blank'>Webサービス作るの難しすぎるよう... - 文系学生のプログラミング入門</a></td>
<td>222</td>
<td>2013/07/28</td>
</tr>
</table>
<h3>8月:モダンPHPとムック本</h3>
<p>8月はLLまつりで行ったモダンPHPチュートリアルの記事と資料が話題になりました。このセッションではComposerの利用を強く勧めていますが、Composerも今年特に利用が進んだツールでしょう。またそういったさまざまなノウハウをまとめた「PHPエンジニア養成読本」が出版され、今年出版されたPHPの書籍の中でも特に注目が集まりました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://commte.net/blog/archives/3459' target='_blank'>ここまで出来る！覚えとくと便利な「プログラム」サンプルまとめ | コムテブログ</a></td>
<td>299</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/08/1.html' target='_blank'>パスワードの定期的変更について徳丸さんに聞いてみた(1) | 徳丸浩の日記</a></td>
<td>564</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href='http://codeiq.hatenablog.com/entry/2013/08/07/162935' target='_blank'>『PHPでオブジェクト指向的FizzBuzz』問題の解説記事～PHPが書けてオブジェクト指向がわかるとイケてるエンジニアになれる!? #php #オブジェクト指向 - CodeIQ Blog</a></td>
<td>302</td>
<td>2013/08/07</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/takyam1213/php-meets-nodejs' target='_blank'>PHP meets NodeJS</a></td>
<td>104</td>
<td>2013/08/12</td>
</tr>
<tr>
<td><a href='http://code-plus.jp/tools/sublime-text-2-plugin/' target='_blank'>使用中のSublime Text 2のプラグインをまとめてみた | CodePlus</a></td>
<td>153</td>
<td>2013/08/15</td>
</tr>
<tr>
<td><a href='http://stocker.jp/diary/useful-usage-of-php/' target='_blank'>Webデザイナーやコーダーの方でも知っておきたいPHPの便利な使い方 | Stocker.jp / diary</a></td>
<td>516</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1308/20/news004.html' target='_blank'>PHP 5.5の新機能：さっくり理解するPHP 5.5の言語仕様と「いい感じ」の使い方 (1/2) - ＠IT</a></td>
<td>244</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/darkm/archives/51507584.html' target='_blank'>サイトを作って２ヶ月でサイト収入が2万/月になった話 : はれぞう</a></td>
<td>288</td>
<td>2013/08/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/ss-25447896' target='_blank'>いまさら聞けないパスワードの取り扱い方</a></td>
<td>587</td>
<td>2013/08/21</td>
</tr>
<tr>
<td><a href='http://plus.vc/web/php/6850/' target='_blank'>入力フォームの迷宮。全角数字を強要するフォームを理解できません。 | PLUS</a></td>
<td>282</td>
<td>2013/08/22</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yandod/modanphptiyutoriaru-llmaturiban' target='_blank'>モダンPHPチュートリアル (LLまつり版) // Speaker Deck</a></td>
<td>368</td>
<td>2013/08/24</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/xssreintroduction' target='_blank'>XSS再入門</a></td>
<td>422</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/modern-php-tutorial/' target='_blank'>モダンPHPチュートリアルを開催しました | Engine Yard Blog JP</a></td>
<td>133</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://webnaut.jp/markup/628.html' target='_blank'>一度書いたコードは二度と探さない！スニペットを究めて快適コーディング！【HTML, CSS, JavaScript】 | Markup | WebNAUT</a></td>
<td>715</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://blog.glidenote.com/blog/2013/08/26/ojt-with-wemux/' target='_blank'>新卒OJTにwemux(multi-user terminal multiplexing)を使って画面共有することにした - Glide Note - グライドノート</a></td>
<td>255</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://arukeba.jp/everbeautify.html' target='_blank'>ソースコードをEvernoteに保存するならEverbeautifyがオススメ！PHPもRubyもPythonも、どんと来い！ | 歩けば僕の足跡</a></td>
<td>162</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://blog.wktk.co.jp/ja/entry/2013/08/27/diff-of-maru-moritapo' target='_blank'>2chの情報流出にあたって、●とモリタポとbe2ちゃんねるの違い</a></td>
<td>232</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://mawatari.jp/archives/backbonejs-todos-with-cakephp-restful-api' target='_blank'>CakePHPでRESTful APIを作って、Backbone.jsのデータの永続化をサーバサイドで行う | mawatari.jp</a></td>
<td>101</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://www.msng.info/archives/2013/08/php-engineer-book.php' target='_blank'>いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ - 頭ん中</a></td>
<td>297</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://ssl.japanknowledge.jp/hougen/' target='_blank'>出身地鑑定!! 方言チャート</a></td>
<td>1166</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://qiita.com/mpyw/items/b00b72c5c95aac573b71' target='_blank'>PHPでデータベースに接続するときのまとめ - Qiita [キータ]</a></td>
<td>672</td>
<td>2013/08/28</td>
</tr>
<tr>
<td><a href='http://blog.webcreativepark.net/2013/08/28-010250.html' target='_blank'>Gruntで始めるWeb制作の自動化 - to-R</a></td>
<td>232</td>
<td>2013/08/28</td>
</tr>
<tr>
<td><a href='http://lolipop.jp/info/news/4149/' target='_blank'>【最重要】ロリポップ！レンタルサーバーで発生している不正ログインについて / 新着情報 / お知らせ - レンタルサーバーならロリポップ！</a></td>
<td>175</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/08/20130829-3/' target='_blank'>PHP専用のデバッグツールバー「DebugBar」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>104</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://wonderpla.net/blog/engineer/Vim_plugin' target='_blank'>開発言語に関わらず入れとくべきVimプラグイン3つ | ワンダープラネットエンジニア Blog</a></td>
<td>100</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://k-holy.hatenablog.com/entry/2013/08/30/192243' target='_blank'>Windows7にVirtualBoxとVagrantをインストールしたメモ - k-holyのPHPとか諸々メモ</a></td>
<td>197</td>
<td>2013/08/30</td>
</tr>
</table>
<h3>9月:セキュリティ問題とカンファレンス</h3>
<p>8月の末にWordPressを利用しているユーザをターゲットにした大規模な攻撃が行われ、その問題についての考察が話題を呼びました。また9月にはPHPカンファレンスが開催されさまざまな資料が公開されました。PHPカンファレンスについてはこちらのページに資料が集まっています。</p>
<p><a href="http://lanyrd.com/2013/php-conference-japan/"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/PHP_Conference_Japan_2013__14th_September_2013___Lanyrd-2-1024x678.png" alt="PHP_Conference_Japan_2013__14th_September_2013___Lanyrd-2" width="1024" height="678" class="alignnone size-large wp-image-2202" /></a></p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/09/symlink-attack.html' target='_blank'>ロリポップのサイト改ざん事件に学ぶシンボリックリンク攻撃の脅威と対策 | 徳丸浩の日記</a></td>
<td>954</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href='http://tanaka.sakura.ad.jp/2013/09/symlink-attack.html' target='_blank'>共用サーバにおけるSymlink Attacksによる攻撃とその対策について - さくらインターネット創業日記</a></td>
<td>648</td>
<td>2013/09/03</td>
</tr>
<tr>
<td><a href='http://phpy.readthedocs.org/en/latest/' target='_blank'>php プログラマのための Python チュートリアル — phpy 0.1 documentation</a></td>
<td>217</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href='http://careerbaito.com/column/detail/570' target='_blank'>PHPを始めたばかりの学生へ！代表的な7つのPHPフレームワークの違いと特徴｜キャリアバイトコラム</a></td>
<td>506</td>
<td>2013/09/13</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cubicdaiya/inside-pixiv-infrastructure' target='_blank'>Inside pixiv's infrastructure〜application cluster side〜</a></td>
<td>154</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/yoku0825/devsdba' target='_blank'>Devsの常識、DBAは非常識</a></td>
<td>626</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/phpconf2013' target='_blank'>安全なPHPアプリケーションの作り方2013</a></td>
<td>675</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/09/14/205810' target='_blank'>「PHPアプリケーションの継続的バージョンアップ」という題でPHPカンファレンス2013でトークしてきた #phpcon2013 - delirious thoughts</a></td>
<td>175</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/kuromatu/rubykaraphphe-enziniafalsetamefalsesi-kao-yi-xing-gaido' target='_blank'>RubyからPHPへ -エンジニアのための思考移行ガイド- // Speaker Deck</a></td>
<td>103</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/ken_c_lo/pull-request-4-designers-githubwoshi-tutapuroguramatodezainafalseitereteibunakai-fa-huro' target='_blank'>Pull Request 4 Designers - GitHubを使ったプログラマとデザイナーのイテレーティブな開発フロー // Speaker Deck</a></td>
<td>140</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://unsolublesugar.com/20130915/005329/' target='_blank'>PHPカンファレンス2013 & WordCamp Tokyo 2013 講演資料まとめ #phpcon2013 #wctokyo | Time to live forever</a></td>
<td>123</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://sho.tdiary.net/20130915.html#p01' target='_blank'>HTTPでHashやArrayを送る手法に仕様は存在しない……の? - ただのにっき(2013-09-15)</a></td>
<td>151</td>
<td>2013/09/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/ozuma/20130916/1379332757' target='_blank'>phpMyAdminを狙った攻撃観察 - ろば電子が詰まっている</a></td>
<td>122</td>
<td>2013/09/16</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/09/php-enviroment-with-vagrant.html' target='_blank'>Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた - Shin x blog</a></td>
<td>223</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/techblogyahoo/phpcon2013-performance' target='_blank'>本当に怖いパフォーマンスが悪い実装 #phpcon2013</a></td>
<td>458</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/33268831.html' target='_blank'>2ちゃんねらー‎「PHPでアプリのまとめサイト作ったんだが・・・・」 : IT速報</a></td>
<td>102</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookmysqlmysql_connect_2013.html' target='_blank'>FacebookにおけるMySQLを用いた大規模システムアーキテクチャの現実～MySQL Connect 2013 － Publickey</a></td>
<td>485</td>
<td>2013/09/27</td>
</tr>
<tr>
<td><a href='http://2013.8-p.info/japanese/09-28-languages.html' target='_blank'>はじめの言語の賞味期限 - Kato Kazuyoshi</a></td>
<td>359</td>
<td>2013/09/28</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/09/cookie-manipulation-is-possible-even-on-ssl.html' target='_blank'>HTTPSを使ってもCookieの改変は防げないことを実験で試してみた | 徳丸浩の日記</a></td>
<td>611</td>
<td>2013/09/30</td>
</tr>
</table>
<h3>10月:オープンソースのメッセンジャーが話題に</h3>
<p>PHPでバックエンドを実装したメッセンジャーアプリが公開され話題を呼んでいます。当初は炎上的な展開でしたがGitHubを利用してソーシャルにコードが改善され、またその際にはVagrantや継続的テスト、Composer、Symfonyなどのナレッジが効果的に活用されケーススタディとしても価値があるエピソードになりました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://jp.techcrunch.com/2013/10/03/20131002runnable-wants-to-become-the-youtube-of-code/' target='_blank'>「プログラムコードのYouTube」を目指すRunnable。サンプルはサイト内で編集・実行可 | TechCrunch Japan</a></td>
<td>421</td>
<td>2013/10/03</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/yujiotani16/redis-26851700' target='_blank'>Redis勉強会資料</a></td>
<td>210</td>
<td>2013/10/04</td>
</tr>
<tr>
<td><a href='http://dekokun.github.io/posts/2013-10-06.html' target='_blank'>ISUCON予選にPHP実装で参加して3位になりましたーやったことなどまとめ</a></td>
<td>171</td>
<td>2013/10/06</td>
</tr>
<tr>
<td><a href='http://techwave.jp/archives/spika_launching.html' target='_blank'>世界初 メッセンジャーアプリ「Spika」を完全オープンソースで公開、フロントからバックエンドまで提供 【増田 @maskin】 | TechWave</a></td>
<td>450</td>
<td>2013/10/08</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html' target='_blank'>PHP開発環境のサンプルVagrantfile - Shin x blog</a></td>
<td>266</td>
<td>2013/10/09</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/10/20131013/' target='_blank'>フリーランサー/小規模向けのプロジェクト管理「Solo」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>327</td>
<td>2013/10/13</td>
</tr>
<tr>
<td><a href='http://blog.tojiru.net/article/377526320.html' target='_blank'>PHPのinterfaceとは何か - 泥のように</a></td>
<td>270</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href='http://nigohiroki.hatenablog.com/entry/2013/10/17/001754' target='_blank'>これからWeb系のベンチャーで起業しようと思っている人へ考慮しなければいけないリストを作成した - nigoblog</a></td>
<td>1185</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href='http://www.find-job.net/startup/architecture-2013' target='_blank'>国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 | Find Job ! Startup</a></td>
<td>1167</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href='http://hitch.jp/blog/pixiv/' target='_blank'>月間38億PVを6人でさばくpixivインフラチーム久保氏のパフォーマンス向上術 | Hitch Blog</a></td>
<td>211</td>
<td>2013/10/18</td>
</tr>
<tr>
<td><a href='http://cloverstudioceo.hatenablog.com/entry/2013/10/21/033700' target='_blank'>Spikaを公開して起こった事 - ヨーロッパで働く社長のブログ</a></td>
<td>311</td>
<td>2013/10/21</td>
</tr>
<tr>
<td><a href='http://mkkn.hatenablog.jp/entry/2013/04/13/212100' target='_blank'>いつまでPHPerはMVCを間違い続けるのか…? - どうにもならない日々@mkkn</a></td>
<td>274</td>
<td>2013/10/21</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookphpjithhvm_2217cpulinux.html' target='_blank'>FacebookがPHPのJITコンパイラ「HHVM 2.2」リリース。17％のCPU効率改善。Linuxディストリビューション用パッケージを用意 － Publickey</a></td>
<td>140</td>
<td>2013/10/22</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/hinakano/json-schema' target='_blank'>JSON SchemaとPHP</a></td>
<td>213</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href='http://bugrammer.hateblo.jp/entry/2013/10/30/013451' target='_blank'>一人でコードを書きなさんな - Line 1: Error: Invalid Blog('by Esehara' )</a></td>
<td>218</td>
<td>2013/10/30</td>
</tr>
</table>
<h3>11月:正しい手法への関心</h3>
<p>11月は大規模なマイグレーションの事例やセキュリティ関連の話題に注目があつまりました。また採用市場というちょっとかわった観点の話題も登場しています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/11/apache-magica-attack.html' target='_blank'>CGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました | 徳丸浩の日記</a></td>
<td>150</td>
<td>2013/11/01</td>
</tr>
<tr>
<td><a href='http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636' target='_blank'>「MVCの勘違い」について、もう一度考えてみる - 圧倒亭グランパのブログ</a></td>
<td>639</td>
<td>2013/11/01</td>
</tr>
<tr>
<td><a href='http://f-shin.net/fsgarage/638' target='_blank'>MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage＠fshin2000</a></td>
<td>344</td>
<td>2013/11/02</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/hnw/20131102' target='_blank'>PHPのジェネレータはイテレータより速い - hnwの日記</a></td>
<td>118</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/j_nakada/aws-27835913' target='_blank'>モバイルゲームにおけるAWSの泥臭い使い方</a></td>
<td>363</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href='http://phpmentors.jp/post/66318980165/mock-behaviors-not-states' target='_blank'>PHPメンターズ -> 状態ではなく、振る舞いをモックせよ</a></td>
<td>131</td>
<td>2013/11/08</td>
</tr>
<tr>
<td><a href='http://f-shin.net/fsgarage/751' target='_blank'>PHP vs Ruby 把握できていない人材採用市場 | F's Garage＠fshin2000</a></td>
<td>147</td>
<td>2013/11/09</td>
</tr>
<tr>
<td><a href='http://mizchi.hatenablog.com/entry/2013/11/10/081026' target='_blank'>ウェブエンジニアの生存戦略 - mizchi's blog</a></td>
<td>642</td>
<td>2013/11/10</td>
</tr>
<tr>
<td><a href='http://blogos.com/forum/70150/response/508799/' target='_blank'>PHP vs Ruby 把握できていない人材採用市場へのKrihalo - ソフトウェア相談などさんの意見</a></td>
<td>138</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/kwatch/db-28097225' target='_blank'>DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrant-and-berkshelf/' target='_blank'>nanapi勉強会でVagrant + Berkshelfについて発表しました | Engine Yard Blog JP</a></td>
<td>109</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href='http://blog.ohgaki.net/fastest-php-framework-phalcon' target='_blank'>PHP最速フレームワークPhalconのインストール</a></td>
<td>102</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href='http://slywalker.hateblo.jp/entry/2013/11/15/115907' target='_blank'>#CakePHP 爆速でAPIを実装するチュートリアル - 忍び歩く男 - SLYWALKER</a></td>
<td>183</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='http://luccafort.hatenablog.com/entry/2013/11/15/013842' target='_blank'>我輩、激おこプンプン丸で御座候 - 坊主の日記</a></td>
<td>178</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='http://blog.ohgaki.net/json-escape' target='_blank'>JSONのエスケープ</a></td>
<td>219</td>
<td>2013/11/16</td>
</tr>
<tr>
<td><a href='http://dqn.sakusakutto.jp/2013/11/php51to54.html' target='_blank'>ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></td>
<td>568</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='https://codeiq.jp/magazine/2013/11/1475/' target='_blank'>これであなたもテスト駆動開発マスター！？和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します～現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd｜CodeIQ MAGAZI</a></td>
<td>796</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='http://sclo.hatenablog.com/entry/2013/11/28/185901' target='_blank'>「将来に向けて節約をしながらも、今の暮らしを楽しむ方法」に、私、感動する。 - 僭越ながら</a></td>
<td>398</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href='http://www.sophos.com/ja-jp/press-office/press-releases/2013/11/ns-serious-security-how-to-store-your-users-passwords-safely.aspx' target='_blank'>ユーザーのパスワードを安全に保管する方法について - 11 - 2013 - Sophos Press Releases, Security News and Press Coverage - Sophos Press Office | Sophos News and Press Releases - ソフォス</a></td>
<td>180</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/11/xsssqlrfc5322.html' target='_blank'>XSSとSQLインジェクションの両方が可能なRFC5322適合のメールアドレス | 徳丸浩の日記</a></td>
<td>438</td>
<td>2013/11/29</td>
</tr>
</table>
<h3>12月:新機能の利用が進む</h3>
<p>12月も引き続きセキュリティ関連の話題などがありましたが、PHP5.5の新機能であるジェネレータについての記事が印象的です。カンファレンスなどでも機能の概要は紹介されていましたが、実際に利用する中で得た知見について耳にする機会が増えてきました。<br />
PHP5.5もリリースから約半年が経過していますが、まだ利用していない方は早めの導入とジェネレータなどの新機能を効果的に活用する事をご検討ください。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/' target='_blank'>PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP</a></td>
<td>235</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href='http://www.msng.info/archives/2013/12/php-array-magic.php' target='_blank'>PHP の配列を使った手品とその種明かし - 頭ん中</a></td>
<td>149</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href='http://c-note.chatwork.com/post/68781816704/phest-php-easy-static-site-generator' target='_blank'>黒い画面不要！デザイナ向け静的サイトジェネレーター「Phest」を公開しました</a></td>
<td>157</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/12/recent_php_news_201312.html' target='_blank'>6分でわかる最近のPHP 2013年冬 - Shin x blog</a></td>
<td>148</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/35414119.html' target='_blank'>PHP勉強してアフィで稼ごうと掲示板作ってみた結果ｗｗｗｗｗｗ : IT速報</a></td>
<td>137</td>
<td>2013/12/06</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/12/varnish-cache.html' target='_blank'>とある CMS を使ったサイトに Varnish を導入した話 - Shin x blog</a></td>
<td>170</td>
<td>2013/12/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/yayugu/20131207/1386407295' target='_blank'>そして老害になる - yayuguのにっき</a></td>
<td>397</td>
<td>2013/12/07</td>
</tr>
<tr>
<td><a href='http://developer.cybozu.co.jp/tech/?p=6527' target='_blank'>yrmcds 1.0.0 をリリースしました | Cybozu Inside Out | サイボウズエンジニアのブログ</a></td>
<td>110</td>
<td>2013/12/09</td>
</tr>
<tr>
<td><a href='http://qiita.com/Hiraku/items/0db9a8fed4743c1f00a4' target='_blank'>PHP - コードをまとめる技術としてのイテレータとジェネレータ - Qiita [キータ]</a></td>
<td>201</td>
<td>2013/12/10</td>
</tr>
<tr>
<td><a href='http://nekogata.hatenablog.com/entry/2013/12/11/142939' target='_blank'>PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く</a></td>
<td>326</td>
<td>2013/12/11</td>
</tr>
<tr>
<td><a href='http://tanakahisateru.hatenablog.jp/entry/2013/12/12/012728' target='_blank'>PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ</a></td>
<td>501</td>
<td>2013/12/12</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/12/php12sql.html' target='_blank'>PHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた | 徳丸浩の日記</a></td>
<td>336</td>
<td>2013/12/13</td>
</tr>
<tr>
<td><a href='http://wp-d.org/2013/12/19/5456/' target='_blank'>2013年Web制作に使い始めてよかったツール・サービスまとめ 〜そして時は2014年へ〜 | WP-D</a></td>
<td>516</td>
<td>2013/12/19</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/thk/20131221' target='_blank'>「WEB+DB PRESS」で艦これで有名なDMMの開発体制の全貌が明らかに - 東洋黒客の凱旋</a></td>
<td>238</td>
<td>2013/12/22</td>
</tr>
</table>
<p>まとめてみるといかに最新のトピックをキャッチアップし続けるのが大変なのかという気もしてきますが、このタイミングで一気に追いついて2014年に備えましょう。みなさん、良いお年を。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-php/">2013年PHPの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2012/12/php-logo.jpeg" alt="php-logo" width="578" height="406" class="alignnone size-full wp-image-424" /></p>
<p>2013年も本当にあとわずかになりました。<br />
本日は今年話題になったPHPについての記事を公式のリリースやはてなブックマークから抽出してきた内容を元に今年を振り返ってみましょう。PHPにとって今年はどのような一年だったのでしょうか。</p>
<p>参考：<br />
<a href="http://www.engineyard.co.jp/blog/2012/a-year-of-php/">2012年のPHP周辺の話題振り返り | Engine Yard Blog JP</a></p>
<h3>PHPのバージョン</h3>
<p>2013年中にリリースされたPHPのバージョンは5.3、5.4、5.5の3系統で合計29のリリースが行われました。リリースサイクルはほぼ毎月という形でした。またPHPの公式サイトがレスポンシブ対応の新しいデザインに切り替わりました。詳細は下記の通りです。</p>
<table>
<tr>
<th>Version 5.4.11</th>
<td>2013/1/17</td>
</tr>
<tr>
<th>Version 5.3.21</th>
<td>2013/1/17</td>
</tr>
<tr>
<th>Version 5.4.12</th>
<td>2013/2/21</td>
</tr>
<tr>
<th>Version 5.3.22</th>
<td>2013/2/21</td>
</tr>
<tr>
<th>Version 5.4.13</th>
<td>2013/3/14</td>
</tr>
<tr>
<th>Version 5.3.23</th>
<td>2013/3/14</td>
</tr>
<tr>
<th>Version 5.4.14</th>
<td>2013/4/11</td>
</tr>
<tr>
<th>Version 5.3.24</th>
<td>2013/4/11</td>
</tr>
<tr>
<th>Version 5.4.15</th>
<td>2013/5/9</td>
</tr>
<tr>
<th>Version 5.3.25</th>
<td>2013/5/9</td>
</tr>
<tr>
<th>Version 5.4.16</th>
<td>2013/6/6</td>
</tr>
<tr>
<th>Version 5.3.26</th>
<td>2013/6/6</td>
</tr>
<tr>
<th>Version 5.5.0</th>
<td>2013/6/20</td>
</tr>
<tr>
<th>Version 5.4.17</th>
<td>2013/7/4</td>
</tr>
<tr>
<th>Version 5.3.27</th>
<td>2013/7/11</td>
</tr>
<tr>
<th>Version 5.5.1</th>
<td>2013/7/18</td>
</tr>
<tr>
<th>Version 5.5.2</th>
<td>2013/8/15</td>
</tr>
<tr>
<th>Version 5.4.18</th>
<td>2013/8/15</td>
</tr>
<tr>
<th>Version 5.5.3</th>
<td>2013/8/22</td>
</tr>
<tr>
<th>Version 5.4.19</th>
<td>2013/8/22</td>
</tr>
<tr>
<th>Version 5.5.4</th>
<td>2013/9/19</td>
</tr>
<tr>
<th>Version 5.4.20</th>
<td>2013/9/19</td>
</tr>
<tr>
<th>Version 5.5.5</th>
<td>2013/10/17</td>
</tr>
<tr>
<th>Version 5.4.21</th>
<td>2013/10/17</td>
</tr>
<tr>
<th>Version 5.5.6</th>
<td>2013/11/14</td>
</tr>
<tr>
<th>Version 5.4.22</th>
<td>2013/11/14</td>
</tr>
<tr>
<th>Version 5.5.7</th>
<td>2013/12/12</td>
</tr>
<tr>
<th>Version 5.4.23</th>
<td>2013/12/12</td>
</tr>
<tr>
<th>Version 5.3.28</th>
<td>2013/12/12</td>
</tr>
</table>
<p style="background:#99EE99;border: black dotted 1px; padding:15px">
<strong>[重要] 頻繁にバージョンアップされるPHPを最新の状態に保つにはEngine Yard Cloudの利用をお奨めします。</strong>
</p>
<h3>PHP5.5の新機能</h3>
<p>上記のとおり、6月にPHP5.5がリリースされました。機能の追加や廃止を含むリリースでメジャーバージョンアップではありませんが、重要なリリースです。PHP5.5で追加された新機能は下記の通りです。</p>
<ul>
<li>ジェネレータの追加</li>
<li>finally キーワードの追加</li>
<li>新しいパスワードハッシュ API</li>
<li>foreach が list() に対応</li>
<li>empty() が任意の式に対応</li>
<li>array リテラルと string リテラルのデリファレンス</li>
<li>::class によるクラス名の解決</li>
<li>OPcache 拡張モジュールの追加</li>
<li>foreach が非スカラーのキーに対応</li>
<li>Apache 2.4 ハンドラが Windows に対応</li>
<li>GD の改良</li>
</ul>
<p>その他、廃止される機能などの詳細は<a href="http://www.php.net/manual/ja/migration55.php" target="_blank">PHPの公式ドキュメント</a>をご覧ください。</p>
<h3>ブログ記事の総評</h3>
<p>今年話題になったPHPに関する記事から厳選した記事が下記の20個の記事です。見逃した記事があればぜひともチェックしてみてください。</p>
<ul>
<li><a href="https://gist.github.com/masakielastic/5457174" target="_blank">すぐれた PHP ライブラリとリソース</a></li>
<li><a href="http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php" target="_blank">Vagrant で作る PHP 開発環境</a></li>
<li><a href="http://www.slideshare.net/ockeghem/phpconf2013" target="_blank">安全なPHPアプリケーションの作り方2013</a></li>
<li><a href="http://qiita.com/mpyw/items/b00b72c5c95aac573b71" target="_blank">PHPでデータベースに接続するときのまとめ - Qiita [キータ]</a></li>
<li><a href="http://www.slideshare.net/yoku0825/devsdba" target="_blank">Devsの常識、DBAは非常識</a></li>
<li><a href="http://dqn.sakusakutto.jp/2013/11/php51to54.html" target="_blank">ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></li>
<li><a href="http://tech.a-listers.jp/2013/05/06/web-framework-benchmark/" target="_blank">16の言語と57のフレームワークを比較したベンチマークが凄い | A-Listers</a></li>
<li><a href="http://www.slideshare.net/techblogyahoo/phpcon2013-performance" target="_blank">本当に怖いパフォーマンスが悪い実装 #phpcon2013</a></li>
<li><a href="http://www.slideshare.net/ockeghem/xssreintroduction" target="_blank">XSS再入門</a></li>
<li><a href="https://speakerdeck.com/yandod/modanphptiyutoriaru-llmaturiban" target="_blank">モダンPHPチュートリアル (LLまつり版) // Speaker Deck</a></li>
<li><a href="http://cloverstudioceo.hatenablog.com/entry/2013/10/21/033700" target="_blank">Spikaを公開して起こった事 - ヨーロッパで働く社長のブログ</a></li>
<li><a href="http://www.msng.info/archives/2013/08/php-engineer-book.php" target="_blank">いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ - 頭ん中</a></li>
<li><a href="http://d.hatena.ne.jp/Kenji_s/20130221/php_regexp" target="_blank">PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis</a></li>
<li><a href="http://blog.tojiru.net/article/377526320.html" target="_blank">PHPのinterfaceとは何か - 泥のように</a></li>
<li><a href="http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html" target="_blank">PHP開発環境のサンプルVagrantfile - Shin x blog</a></li>
<li><a href="http://kaz29.hatenablog.com/entry/2013/04/30/122642" target="_blank">「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29</a></li>
<li><a href="http://www.atmarkit.co.jp/ait/articles/1308/20/news004.html" target="_blank">PHP 5.5の新機能：さっくり理解するPHP 5.5の言語仕様と「いい感じ」の使い方 (1/2) - ＠IT</a></li>
<li><a href="http://d.hatena.ne.jp/thk/20131221" target="_blank">「WEB+DB PRESS」で艦これで有名なDMMの開発体制の全貌が明らかに - 東洋黒客の凱旋</a></li>
<li><a href="http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/" target="_blank">PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP</a></li>
<li><a href="http://blog.sarabande.jp/post/48522241291" target="_blank">2013年において注目すべき PHP フレームワークは Laravel - Sarabande.jp</a></li>
</ul>
<p>それぞれの月の記事と概要は下記の通りです。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<hr/>
<h3>1月:PhpStormについてのスライドが話題に</h3>
<p>1月の話題で特に注目すべきなのはFacebookが開発し公開しているPHPの仮想マシン、HipHopVMについての記事とPHPStormについて触れたスライドではないでしょうか。HipHopはPHPをC++に変換して実行するというコードトランスレーターをJITコンパイラへと近づけていく意欲的な試みです。この機能は最終的にはPHP本体に取り込まれるような可能性もあり今後も注目が集まりそうです。</p>
<p>また今年はPhpStormの利用が広がりましたが、その背景が@hisaterutanakaさんのスライドに述べられています。</p>
<blockquote><p>「PHPはJavaの次に静的解析しやすい言語。これはRubyが気付いていないPHPの長所」 ―PHPメンターズと朝まで過ごしたときの言</p></blockquote>
<p>PHPは言語としての弱さを指摘されることも多いですが、上記のようにコード生成や解析がしやすいという側面が先進的な取り組みの基礎になっているとも言えるでしょう。また年末年始の時間を利用したのかサイトを作ってみたという話題も（掲載できないようなサイトも含めて）話題になっていたのが特徴です。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130104184115' target='_blank'>ド素人が完全自作SNSを作ってみてわかったこと。</a></td>
<td>1568</td>
<td>2013/01/04</td>
</tr>
<tr>
<td><a href='http://japan.cnet.com/sp/businesslife/35026228/' target='_blank'>2013年、開発者が注目すべき10のスキル - CNET Japan</a></td>
<td>257</td>
<td>2013/01/07</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/01/googlefacebookt.html' target='_blank'>Google,Facebook,Twitter,Tumblr等のAPIを簡単に扱える機能豊富なPHPライブラリセット「Eden」:phpspot開発日誌</a></td>
<td>132</td>
<td>2013/01/08</td>
</tr>
<tr>
<td><a href='http://wp-d.org/2013/01/14/1938/' target='_blank'>新春座談会 このコンピュータ書がすごい！ 2013年版 | WP-D</a></td>
<td>347</td>
<td>2013/01/14</td>
</tr>
<tr>
<td><a href='http://tech.a-listers.jp/2013/01/16/speeding-up-php-based-development-with-hiphop-vm/' target='_blank'>Facebookが開発したPHPを超高速で実行する仮想マシン HipHop VM « A-Listers</a></td>
<td>181</td>
<td>2013/01/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/maeharin/20130118/php_ruby_love' target='_blank'>PHPを愛する試み - maeharinの日記</a></td>
<td>190</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130118212733' target='_blank'>ド素人が完全自作SNSを二週間運営してみてわかったこと（後始末編、技術編、モチベーション編）</a></td>
<td>662</td>
<td>2013/01/18</td>
</tr>
<tr>
<td><a href='http://blog.xao.jp/blog/cakephp/how-to-access-to-a-variaty-of-objects/' target='_blank'>CakePHPで様々なオブジェクトへのアクセスの仕方 | X->A->O</a></td>
<td>165</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/tanakahisateru/jetbrains2-phpstorm' target='_blank'>PhpStormを使おう --高槻からは快速急行が早くなります</a></td>
<td>105</td>
<td>2013/01/30</td>
</tr>
</table>
<h3>2月:正規表現の話題とセキュリティ</h3>
<p>2月はさまざまなTIPS系の話題が多く、何度か登場する正規表現の話題とセキュリティについての話題が出ています。また今年は一年を通じてエディタの話題も多かったのですが2月にVimの話題が出ています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://photoshopvip.net/archives/45206' target='_blank'>[技術] nginxを利用した、高速サーバー構築マニュアル - Photoshop VIP</a></td>
<td>607</td>
<td>2013/02/11</td>
</tr>
<tr>
<td><a href='http://chantk-twi.pupu.jp/archives/747' target='_blank'>短期間でプログラミングを習得してWebサービスをつくるための知識と方法まとめ | らふらく ^^</a></td>
<td>1441</td>
<td>2013/02/11</td>
</tr>
<tr>
<td><a href='http://densho.hatenablog.com/entry/dendenconverter' target='_blank'>EPUBを作成するウェブサービス作ったよ - 電書ちゃんねる</a></td>
<td>268</td>
<td>2013/02/14</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html' target='_blank'>ログアウト機能の目的と実現方法 | 徳丸浩の日記</a></td>
<td>297</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://liginc.co.jp/programmer/archives/4921' target='_blank'>PHPでjQueryチックにWebサイトをクローリングする方法 | 株式会社LIG</a></td>
<td>123</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://runnable.com/' target='_blank'>Edit, run, & share server-side code in your browser - Make your code Runnable</a></td>
<td>156</td>
<td>2013/02/15</td>
</tr>
<tr>
<td><a href='http://tumblr.tokumaru.org/post/43394245031/web-11' target='_blank'>勝手に査読:Webアプリにおける11の脆弱性の常識と対策 - 徳丸浩のtumblr</a></td>
<td>320</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/do_aki/20130218/1361197742' target='_blank'>Excel は Editor ですか？ いいえ、Image Viewer です。 - do_akiの徒然想記</a></td>
<td>114</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/murishinai/20130220/p1' target='_blank'>三項演算子である条件演算子が右結合であることの利点・妥当性と可読性について - Guinea Pig</a></td>
<td>171</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/Kenji_s/20130221/php_regexp' target='_blank'>PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis</a></td>
<td>273</td>
<td>2013/02/21</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/02/codebird-php.html' target='_blank'>PHPからTwitter APIを叩くなら『codebird-php』が便利そう | IDEA*IDEA</a></td>
<td>116</td>
<td>2013/02/21</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/02/security-measures-of-own-way-are-unsafe.html' target='_blank'>自己流のSQLインジェクション対策は危険 | 徳丸浩の日記</a></td>
<td>224</td>
<td>2013/02/23</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/sifue/20130224/1361713497' target='_blank'>ssh上でマウススクロールも使える大規模PHP開発向けvim+tmux環境の構築 - しふーのブログ</a></td>
<td>356</td>
<td>2013/02/24</td>
</tr>
<tr>
<td><a href='http://matome.naver.jp/odai/2136185347913005301' target='_blank'>【初心者向け】最速でphpを学ぶための厳選記事集 - NAVER まとめ</a></td>
<td>730</td>
<td>2013/02/26</td>
</tr>
<tr>
<td><a href='http://c-brains.jp/blog/wsg/13/02/27-102230.php' target='_blank'>Vim で PHP 開発するためにやってる設定 3 つほど | バシャログ。</a></td>
<td>108</td>
<td>2013/02/27</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/perlcodesample/20130227/1361928810' target='_blank'>変数に型がないということの利点について考える - サンプルコードによるPerl入門</a></td>
<td>405</td>
<td>2013/02/27</td>
</tr>
</table>
<h3>3月:PHPを何故使うのか</h3>
<p>3月はPHPを何故使うのか、という意義について述べた記事が話題になっています。言語仕様の至らない点を指摘するといういつもの流れもある一方でとにかく動くサービスやプロダクトを作るべしという事を述べた体験談が見受けられます。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://ameblo.jp/nikko-inma/entry-11122429825.html' target='_blank'>PHPとかいう糞言語｜いんまのブログ</a></td>
<td>210</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/bravewood/20130307' target='_blank'>PHPは代入と参照の違い | 2013-03-07 - bravewood の日記</a></td>
<td>135</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://blogs.itmedia.co.jp/fukuyuki/2013/03/php-57de.html' target='_blank'>カネと時間考えるならPHPやっとけ。たぶｎ ：村上福之の「ネットとケータイと俺様」：ITmedia オルタナティブ・ブログ</a></td>
<td>435</td>
<td>2013/03/08</td>
</tr>
<tr>
<td><a href='http://suzuki.tdiary.net/20130309.html#p01' target='_blank'>PHPUnit と Selenium2 を使ってブラウザベースの自動テストを実行するための最初の一歩的な何かを発表してきた - 雑文発散(2013-03-09)</a></td>
<td>174</td>
<td>2013/03/09</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/dankogai/archives/51858766.html' target='_blank'>404 Blog Not Found:ついに顕在化しはじめたArrayリスク</a></td>
<td>107</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/03/20130313-2/' target='_blank'>Facebook製。プログラマー向けのプロジェクト管理「Phabricator」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>147</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://knoh.jp/answers/22cc7d73' target='_blank'>メジャーなプログラミング言語とそれらの役割を、素人でも分かるように教えてください。 - Knoh</a></td>
<td>1211</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://blog.champierre.com/973' target='_blank'>Vagrant 入門 - Windows 上に Linux の仮想マシンを簡単に用意する - 僕は発展途上技術者</a></td>
<td>416</td>
<td>2013/03/16</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/obama_for_america_1.html' target='_blank'>「Obama For America」の開発チームが作り上げた大規模な選挙キャンペーンシステムの舞台裏（後編） － Publickey</a></td>
<td>117</td>
<td>2013/03/18</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130322031333' target='_blank'>プログラミング出来ない奴ちょっと来い</a></td>
<td>2024</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://www.compileonline.com/' target='_blank'>Compile and Execute Programs Online| Online IDE</a></td>
<td>121</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/kazuhooku/20130323/1364039729' target='_blank'>なぜPHPでrequire("http://...")したらセキュリティホールなのに、Goならいいのか - kazuhoのメモ置き場</a></td>
<td>153</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://blog.verygoodtown.com/2013/03/development-user-style-guide/' target='_blank'>プログラマのための言語別コーディング規約まとめ | Web活メモ帳</a></td>
<td>1248</td>
<td>2013/03/29</td>
</tr>
<tr>
<td><a href='http://uzulla.hateblo.jp/entry/2013/03/31/223143' target='_blank'>一行でも書け、倒れるときは前のめり（または書かないで済ませる話） - uzullaがブログ</a></td>
<td>103</td>
<td>2013/04/01</td>
</tr>
</table>
<h3>4月:LaravelとZend OPCache</h3>
<p>4月はLaravelとZend OPCacheについての記事が話題になっています。軽量さで人気が高まってきているLaravelとAPCに変わるキャッシュとして標準化されるOPCacheは今後は実際に利用されるケースが増えてくるでしょう。<br />
また有用なライブラリのリストを翻訳して紹介したエントリが話題になっていました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.kaasan.info/archives/2623' target='_blank'>PHPを勉強するならこれだけは言いたい！PHPのオススメ勉強法-ITかあさん</a></td>
<td>506</td>
<td>2013/04/01</td>
</tr>
<tr>
<td><a href='http://shukatsu-mirai.com/shukatsu/web-ap/' target='_blank'>初心者でも3か月でwebサービスを必ず作れるようになる！Webサービス学習資料5選 | 就活の未来 大学生のための就活支援サイト</a></td>
<td>815</td>
<td>2013/04/03</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/04/php-displayerrors-xss.html' target='_blank'>PHPのdisplay_errorsが有効だとカジュアルにXSS脆弱性が入り込む | 徳丸浩の日記</a></td>
<td>115</td>
<td>2013/04/04</td>
</tr>
<tr>
<td><a href='http://blog.kenjiskywalker.org/blog/2013/04/04/tweets_zip_big_data/' target='_blank'>tweets.zipをMySQLに突っ込んでSQLを学ぶ(導入編) - さよならインターネット</a></td>
<td>275</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/04/20130406/' target='_blank'>意外と便利？PHP製のHTML用問い合わせ言語「htmlSQL」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>159</td>
<td>2013/04/06</td>
</tr>
<tr>
<td><a href='http://coliss.com/articles/build-websites/operation/javascript/jquery-plugin-superbox.html' target='_blank'>[JS]lightboxの進化形、レスポンシブ対応で画像を拡大表示するスクリプト -SuperBox | コリス</a></td>
<td>270</td>
<td>2013/04/08</td>
</tr>
<tr>
<td><a href='http://wp.yat-net.com/?p=3662' target='_blank'>AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順 - YATのBLOG</a></td>
<td>211</td>
<td>2013/04/10</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/moto_maka/20130412/1365708877' target='_blank'>iPhoneアプリにPush通知機能を実装する方法のまとめ - もとまか日記</a></td>
<td>130</td>
<td>2013/04/12</td>
</tr>
<tr>
<td><a href='http://kirinblog.com/tool/sublimetext2-emmet.html' target='_blank'>Sublime Text 2とEmmetで制作効率アップ！@福岡マークアップ勉強会 | キリンブログ</a></td>
<td>100</td>
<td>2013/04/14</td>
</tr>
<tr>
<td><a href='http://techacademy.jp/magazine/620' target='_blank'>日本語も対応！ブラウザでプログラミングが学べる「Codecademy」を実際にやってみた | TechAcademyマガジン</a></td>
<td>375</td>
<td>2013/04/16</td>
</tr>
<tr>
<td><a href='http://coliss.com/articles/web-services/online-regexp-playground.html' target='_blank'>正規表現と文字列がマッチしているか簡単にチェックできるオンラインツール -RegExp playground | コリス</a></td>
<td>206</td>
<td>2013/04/19</td>
</tr>
<tr>
<td><a href='http://blog.sarabande.jp/post/48522241291' target='_blank'>2013年において注目すべき PHP フレームワークは Laravel - Sarabande.jp</a></td>
<td>233</td>
<td>2013/04/21</td>
</tr>
<tr>
<td><a href='http://blog.1dz.jp/?eid=805' target='_blank'>Sublime Textの地味に便利なショートカット5つ | Webデザインのタネ</a></td>
<td>213</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/t_wada/sql-antipatterns-digest' target='_blank'>SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)</a></td>
<td>479</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://blog.asial.co.jp/1152' target='_blank'>PHPからChromeにログ出力「Chrome Logger」 : アシアルブログ</a></td>
<td>126</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='https://gist.github.com/masakielastic/5457174' target='_blank'><strong>すぐれた PHP ライブラリとリソース</strong></a></td>
<td>798</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/04/php55_replace_apc_with_zend_opcache.html' target='_blank'>PHP5.5 のコードキャッシュは APC から Zend OPcache へ - Shin x blog</a></td>
<td>188</td>
<td>2013/04/29</td>
</tr>
<tr>
<td><a href='http://kaz29.hatenablog.com/entry/2013/04/30/122642' target='_blank'>「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29</a></td>
<td>244</td>
<td>2013/04/30</td>
</tr>
</table>
<h3>5月:ベンチマークに関する記事とPaaS</h3>
<p>5月で目を引くのはベンチマークに関する記事とGoogle AppEngineのPHP対応の記事でしょう。ベンチマークについては随時情報が更新されており、PHPはどちらかというと遅い部類に分類されていますがPhalconが特に高いパフォーマンスを出しており注目されました。以降、実際にPhalconを使っているという話題や使ってみたいという声の引き金になった話題と言ってよいでしょう。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/05/20130506/' target='_blank'>MySQL/SQLiteのER図を描くPHPスクリプト「mysqlviz」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>144</td>
<td>2013/05/06</td>
</tr>
<tr>
<td><a href='http://tech.a-listers.jp/2013/05/06/web-framework-benchmark/' target='_blank'>16の言語と57のフレームワークを比較したベンチマークが凄い | A-Listers</a></td>
<td>555</td>
<td>2013/05/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/kazuk_i/20130508/1368018346' target='_blank'>弊社エンジニア職の求人に、日本から一向に応募が無い件 - Tous Les Jours 攻防記</a></td>
<td>434</td>
<td>2013/05/08</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130513092207' target='_blank'>素人がそこそこのWebサービスをつくる方法</a></td>
<td>598</td>
<td>2013/05/13</td>
</tr>
<tr>
<td><a href='http://rosylilly.hatenablog.com/entry/2013/05/13/231447' target='_blank'>プログラミングの話 - 鳩舎</a></td>
<td>213</td>
<td>2013/05/13</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/tdak/yurukawalinux' target='_blank'>ゆるかわLinux // Speaker Deck</a></td>
<td>109</td>
<td>2013/05/14</td>
</tr>
<tr>
<td><a href='http://monosy.com/blog/1' target='_blank'>ゆとり文系も一人でWebサービスを作ってみました｜Monosyブログ</a></td>
<td>648</td>
<td>2013/05/15</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/google_app_enginephpphpsdk.html' target='_blank'>Google App EngineがPHPに対応、限定プレビューを開始。ローカルでPHP環境を再現するSDKも公開 － Publickey</a></td>
<td>219</td>
<td>2013/05/17</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130517213002' target='_blank'>アフィリエイトで勘違いした大学生の末路</a></td>
<td>613</td>
<td>2013/05/17</td>
</tr>
<tr>
<td><a href='http://uiureo.hatenablog.com/entry/2013/05/19/030414' target='_blank'>GIFアニメ生成にImageMagickはオワコン、情強は高速なGraphicsMagickを使う - 海峡</a></td>
<td>473</td>
<td>2013/05/19</td>
</tr>
<tr>
<td><a href='http://plus.find-job.net/programming-learning-site' target='_blank'>手遅れになる前に！Webディレクターがプログラミングを学ぶ時に使いたいサイト10選</a></td>
<td>948</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/05/JSON-information-disclosure-vulnerability-CVE-2013-1297.html' target='_blank'>JSONをvbscriptとして読み込ませるJSONハイジャック(CVE-2013-1297)に注意 | 徳丸浩の日記</a></td>
<td>237</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1305/23/news004.html' target='_blank'>NoSQLを使うなら知っておきたいセキュリティの話（1）：「演算子のインジェクション」と「SSJI」 (1/2) - ＠IT</a></td>
<td>216</td>
<td>2013/05/22</td>
</tr>
<tr>
<td><a href='http://liginc.co.jp/web/tool/30371' target='_blank'>意外と知らない？サイトの更新が便利なCMSまとめ15選 | 株式会社LIG</a></td>
<td>200</td>
<td>2013/05/23</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/05/phprubyjshtmlcs.html' target='_blank'>PHP,Ruby,JS,HTML,CSSをブラウザ上で開発できるオープンソースIDEエディタ「ICEcoder」:phpspot開発日誌</a></td>
<td>199</td>
<td>2013/05/24</td>
</tr>
<tr>
<td><a href='http://knoh.jp/answers/d65c7a82' target='_blank'>Evan Priestley 氏がどうやってプログラミングを学んだかを教えてください | Knoh</a></td>
<td>347</td>
<td>2013/05/28</td>
</tr>
<tr>
<td><a href='http://codezine.jp/article/detail/7141' target='_blank'>PHP::Haruで基本的なPDFを作成する （1/3）：CodeZine</a></td>
<td>159</td>
<td>2013/05/28</td>
</tr>
<tr>
<td><a href='http://monosy.com/blog/4' target='_blank'>Webサイトを作りたい人へ。一歩踏み出すために知りたい3つのこと｜Monosyブログ</a></td>
<td>109</td>
<td>2013/05/29</td>
</tr>
</table>
<h3>6月:学習への関心</h3>
<p>6月の記事は個別のトピックというよりも体験談や学習方法といった内容が多いです。見返してみると今年はどのように学習しどのように使うのかといった話題やオンラインで学習できるコンテンツへの言及が多かったように思います。<br />
実際に勉強会などでお会いする方でもドットインストールで勉強しているというような方に会う機会が増えたなと感じました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cloned/php-kansai2013-lt' target='_blank'>一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~</a></td>
<td>102</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href='http://anond.hatelabo.jp/20130608120106' target='_blank'>アマゾン商品をいい感じに検索できる「あまけん」をリリースしました</a></td>
<td>100</td>
<td>2013/06/08</td>
</tr>
<tr>
<td><a href='http://ginpen.com/2013/06/17/start-dash/' target='_blank'>Dashを入れてみたらjQueryやらのドキュメントを見るのが想像以上に快適だったよ。 | Ginpen.com</a></td>
<td>135</td>
<td>2013/06/17</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/yutakikuchi/20130617/1371425713' target='_blank'>誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記</a></td>
<td>620</td>
<td>2013/06/17</td>
</tr>
<tr>
<td><a href='http://blog.asial.co.jp/1175' target='_blank'>PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回 : アシアルブログ</a></td>
<td>136</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href='http://blog.generace.co.jp/2013/06/21/894' target='_blank'>あなたのコード、激遅ぷんぷん丸？今すぐできる7つのチェック項目 PHP編 | GeNERACE labo</a></td>
<td>252</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/luminhacker/web-23310333' target='_blank'>Webクローリング＆スクレイピングの最前線 公開用</a></td>
<td>472</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://tech.basicinc.jp/PHP/2013/06/17/vim-php/' target='_blank'>VimをPHP用にカスタマイズする - vim使いこなしたいvim初心者へ</a></td>
<td>210</td>
<td>2013/06/23</td>
</tr>
<tr>
<td><a href='http://yoonchulkoh.hatenablog.com/entry/2013/06/25/083305' target='_blank'>新卒エンジニアのための先輩エンジニアによる一目置かれるエンジニアとして成長していくために必要なこと。 - 悪あがきプログラマー</a></td>
<td>476</td>
<td>2013/06/25</td>
</tr>
<tr>
<td><a href='http://creive.me/archives/2896/' target='_blank'>「学びたい、全ての人へ」creiveより</a></td>
<td>2000</td>
<td>2013/06/30</td>
</tr>
<tr>
<td><a href='http://www.100shiki.com/archives/2013/06/learn_x_in_y_minutes.html' target='_blank'>プログラミング言語を最速で学ぶための『Learn X in Y minutes』 | 100SHIKI</a></td>
<td>169</td>
<td>2013/06/30</td>
</tr>
</table>
<h3>7月:Vagrant、Phalcon、浮動小数点</h3>
<p>7月あたりからはPHPの開発にVagrantを使うという話題を聞くことが増えてきます。実際にPHPカンファレンス関西などでの講演を受けて試してみようという人が増えてきたのでしょう。またPhalconについてまとまった資料が出てきた事で注目が集まりました。<br />
一方で浮動小数点というPHPにとっては伝統芸といってもよい話題も出てきています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/07/20130706-2/' target='_blank'>これは凄い！iOSアプリ内で動作するPHP「iPHP」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>393</td>
<td>2013/07/06</td>
</tr>
<tr>
<td><a href='http://www.find-job.net/startup/api-2013' target='_blank'>日本の全エンジニアに捧ぐ！現在公開されているAPI一覧【2013年版】 | Find Job ! Startup</a></td>
<td>3837</td>
<td>2013/07/10</td>
</tr>
<tr>
<td><a href='http://webnaut.jp/markup/606.html' target='_blank'>【業務効率が変わる！】こんな時に役に立つ「正規表現」の使い所 | Markup | WebNAUT</a></td>
<td>270</td>
<td>2013/07/11</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/07/20130715/' target='_blank'>データベース無し、Markdownでコンテンツを作成するCMS「Pico」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>192</td>
<td>2013/07/15</td>
</tr>
<tr>
<td><a href='http://btwael.github.io/mammouth/' target='_blank'>Mammouth</a></td>
<td>117</td>
<td>2013/07/15</td>
</tr>
<tr>
<td><a href='http://phpspot.org/blog/archives/2013/07/grepgrepack.html' target='_blank'>grepをよく使うプログラマはどう考えても乗り換えるべき新しいgrepコマンド「ack」:phpspot開発日誌</a></td>
<td>325</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.infiniteloop.co.jp/blog/2013/07/phpmatsuri-db-partition/' target='_blank'>PHPMatsuri2013で発表した資料を公開しました「ソーシャルゲーム案件におけるDB分割のPHP実装～とにかく分割ですよ。10回じゃ足りない。20回くらい分割。～」 | 株式会社インフィニットループ</a></td>
<td>131</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php' target='_blank'>もう XAMPP / MAMP はいらない！ Vagrant で作る PHP 開発環境</a></td>
<td>733</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/30593028.html' target='_blank'>２ｃｈの天才「YouTube動画をリアルタイムで共有できるチャットつくったった」 : IT速報</a></td>
<td>525</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='http://melpon.org/wandbox/' target='_blank'>wandbox</a></td>
<td>135</td>
<td>2013/07/19</td>
</tr>
<tr>
<td><a href='http://commte.net/blog/archives/3403' target='_blank'>ひとりでWeb制作できた！「知識０から学ぶ」すごいスライドやサイト２７ | コムテブログ</a></td>
<td>1408</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://k1low.hatenablog.com/entry/2013/07/22/185615' target='_blank'>さくらVPSセットアップ用のシェルスクリプトを今話題の「Ansible」で書き直してみた - Copy/Cut/Paste/Hatena</a></td>
<td>262</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/hnw/20130723' target='_blank'>第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記</a></td>
<td>102</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/07/jennifer_dewalt.html' target='_blank'>プログラミング経験ゼロから『180日連続で毎日1個サイト作るぞ！』を実践しているJenifferさんの作品群がすごい | IDEA*IDEA</a></td>
<td>706</td>
<td>2013/07/25</td>
</tr>
<tr>
<td><a href='http://www.rodeo.jp.net/tech/phalcon-php-framework/' target='_blank'>RODEO.inc » 爆速フレームワーク!! Phalcon PHP Framework</a></td>
<td>142</td>
<td>2013/07/26</td>
</tr>
<tr>
<td><a href='http://shgam.hatenadiary.jp/entry/2013/07/24/181230' target='_blank'>Webサービス作るの難しすぎるよう... - 文系学生のプログラミング入門</a></td>
<td>222</td>
<td>2013/07/28</td>
</tr>
</table>
<h3>8月:モダンPHPとムック本</h3>
<p>8月はLLまつりで行ったモダンPHPチュートリアルの記事と資料が話題になりました。このセッションではComposerの利用を強く勧めていますが、Composerも今年特に利用が進んだツールでしょう。またそういったさまざまなノウハウをまとめた「PHPエンジニア養成読本」が出版され、今年出版されたPHPの書籍の中でも特に注目が集まりました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://commte.net/blog/archives/3459' target='_blank'>ここまで出来る！覚えとくと便利な「プログラム」サンプルまとめ | コムテブログ</a></td>
<td>299</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/08/1.html' target='_blank'>パスワードの定期的変更について徳丸さんに聞いてみた(1) | 徳丸浩の日記</a></td>
<td>564</td>
<td>2013/08/05</td>
</tr>
<tr>
<td><a href='http://codeiq.hatenablog.com/entry/2013/08/07/162935' target='_blank'>『PHPでオブジェクト指向的FizzBuzz』問題の解説記事～PHPが書けてオブジェクト指向がわかるとイケてるエンジニアになれる!? #php #オブジェクト指向 - CodeIQ Blog</a></td>
<td>302</td>
<td>2013/08/07</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/takyam1213/php-meets-nodejs' target='_blank'>PHP meets NodeJS</a></td>
<td>104</td>
<td>2013/08/12</td>
</tr>
<tr>
<td><a href='http://code-plus.jp/tools/sublime-text-2-plugin/' target='_blank'>使用中のSublime Text 2のプラグインをまとめてみた | CodePlus</a></td>
<td>153</td>
<td>2013/08/15</td>
</tr>
<tr>
<td><a href='http://stocker.jp/diary/useful-usage-of-php/' target='_blank'>Webデザイナーやコーダーの方でも知っておきたいPHPの便利な使い方 | Stocker.jp / diary</a></td>
<td>516</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1308/20/news004.html' target='_blank'>PHP 5.5の新機能：さっくり理解するPHP 5.5の言語仕様と「いい感じ」の使い方 (1/2) - ＠IT</a></td>
<td>244</td>
<td>2013/08/20</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/darkm/archives/51507584.html' target='_blank'>サイトを作って２ヶ月でサイト収入が2万/月になった話 : はれぞう</a></td>
<td>288</td>
<td>2013/08/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/ss-25447896' target='_blank'>いまさら聞けないパスワードの取り扱い方</a></td>
<td>587</td>
<td>2013/08/21</td>
</tr>
<tr>
<td><a href='http://plus.vc/web/php/6850/' target='_blank'>入力フォームの迷宮。全角数字を強要するフォームを理解できません。 | PLUS</a></td>
<td>282</td>
<td>2013/08/22</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yandod/modanphptiyutoriaru-llmaturiban' target='_blank'>モダンPHPチュートリアル (LLまつり版) // Speaker Deck</a></td>
<td>368</td>
<td>2013/08/24</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/xssreintroduction' target='_blank'>XSS再入門</a></td>
<td>422</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/modern-php-tutorial/' target='_blank'>モダンPHPチュートリアルを開催しました | Engine Yard Blog JP</a></td>
<td>133</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://webnaut.jp/markup/628.html' target='_blank'>一度書いたコードは二度と探さない！スニペットを究めて快適コーディング！【HTML, CSS, JavaScript】 | Markup | WebNAUT</a></td>
<td>715</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://blog.glidenote.com/blog/2013/08/26/ojt-with-wemux/' target='_blank'>新卒OJTにwemux(multi-user terminal multiplexing)を使って画面共有することにした - Glide Note - グライドノート</a></td>
<td>255</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://arukeba.jp/everbeautify.html' target='_blank'>ソースコードをEvernoteに保存するならEverbeautifyがオススメ！PHPもRubyもPythonも、どんと来い！ | 歩けば僕の足跡</a></td>
<td>162</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://blog.wktk.co.jp/ja/entry/2013/08/27/diff-of-maru-moritapo' target='_blank'>2chの情報流出にあたって、●とモリタポとbe2ちゃんねるの違い</a></td>
<td>232</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://mawatari.jp/archives/backbonejs-todos-with-cakephp-restful-api' target='_blank'>CakePHPでRESTful APIを作って、Backbone.jsのデータの永続化をサーバサイドで行う | mawatari.jp</a></td>
<td>101</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://www.msng.info/archives/2013/08/php-engineer-book.php' target='_blank'>いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ - 頭ん中</a></td>
<td>297</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://ssl.japanknowledge.jp/hougen/' target='_blank'>出身地鑑定!! 方言チャート</a></td>
<td>1166</td>
<td>2013/08/27</td>
</tr>
<tr>
<td><a href='http://qiita.com/mpyw/items/b00b72c5c95aac573b71' target='_blank'>PHPでデータベースに接続するときのまとめ - Qiita [キータ]</a></td>
<td>672</td>
<td>2013/08/28</td>
</tr>
<tr>
<td><a href='http://blog.webcreativepark.net/2013/08/28-010250.html' target='_blank'>Gruntで始めるWeb制作の自動化 - to-R</a></td>
<td>232</td>
<td>2013/08/28</td>
</tr>
<tr>
<td><a href='http://lolipop.jp/info/news/4149/' target='_blank'>【最重要】ロリポップ！レンタルサーバーで発生している不正ログインについて / 新着情報 / お知らせ - レンタルサーバーならロリポップ！</a></td>
<td>175</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/08/20130829-3/' target='_blank'>PHP専用のデバッグツールバー「DebugBar」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>104</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://wonderpla.net/blog/engineer/Vim_plugin' target='_blank'>開発言語に関わらず入れとくべきVimプラグイン3つ | ワンダープラネットエンジニア Blog</a></td>
<td>100</td>
<td>2013/08/29</td>
</tr>
<tr>
<td><a href='http://k-holy.hatenablog.com/entry/2013/08/30/192243' target='_blank'>Windows7にVirtualBoxとVagrantをインストールしたメモ - k-holyのPHPとか諸々メモ</a></td>
<td>197</td>
<td>2013/08/30</td>
</tr>
</table>
<h3>9月:セキュリティ問題とカンファレンス</h3>
<p>8月の末にWordPressを利用しているユーザをターゲットにした大規模な攻撃が行われ、その問題についての考察が話題を呼びました。また9月にはPHPカンファレンスが開催されさまざまな資料が公開されました。PHPカンファレンスについてはこちらのページに資料が集まっています。</p>
<p><a href="http://lanyrd.com/2013/php-conference-japan/"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/PHP_Conference_Japan_2013__14th_September_2013___Lanyrd-2-1024x678.png" alt="PHP_Conference_Japan_2013__14th_September_2013___Lanyrd-2" width="1024" height="678" class="alignnone size-large wp-image-2202" /></a></p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/09/symlink-attack.html' target='_blank'>ロリポップのサイト改ざん事件に学ぶシンボリックリンク攻撃の脅威と対策 | 徳丸浩の日記</a></td>
<td>954</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href='http://tanaka.sakura.ad.jp/2013/09/symlink-attack.html' target='_blank'>共用サーバにおけるSymlink Attacksによる攻撃とその対策について - さくらインターネット創業日記</a></td>
<td>648</td>
<td>2013/09/03</td>
</tr>
<tr>
<td><a href='http://phpy.readthedocs.org/en/latest/' target='_blank'>php プログラマのための Python チュートリアル — phpy 0.1 documentation</a></td>
<td>217</td>
<td>2013/09/06</td>
</tr>
<tr>
<td><a href='http://careerbaito.com/column/detail/570' target='_blank'>PHPを始めたばかりの学生へ！代表的な7つのPHPフレームワークの違いと特徴｜キャリアバイトコラム</a></td>
<td>506</td>
<td>2013/09/13</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cubicdaiya/inside-pixiv-infrastructure' target='_blank'>Inside pixiv's infrastructure〜application cluster side〜</a></td>
<td>154</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/yoku0825/devsdba' target='_blank'>Devsの常識、DBAは非常識</a></td>
<td>626</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/ockeghem/phpconf2013' target='_blank'>安全なPHPアプリケーションの作り方2013</a></td>
<td>675</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/09/14/205810' target='_blank'>「PHPアプリケーションの継続的バージョンアップ」という題でPHPカンファレンス2013でトークしてきた #phpcon2013 - delirious thoughts</a></td>
<td>175</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/kuromatu/rubykaraphphe-enziniafalsetamefalsesi-kao-yi-xing-gaido' target='_blank'>RubyからPHPへ -エンジニアのための思考移行ガイド- // Speaker Deck</a></td>
<td>103</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/ken_c_lo/pull-request-4-designers-githubwoshi-tutapuroguramatodezainafalseitereteibunakai-fa-huro' target='_blank'>Pull Request 4 Designers - GitHubを使ったプログラマとデザイナーのイテレーティブな開発フロー // Speaker Deck</a></td>
<td>140</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://unsolublesugar.com/20130915/005329/' target='_blank'>PHPカンファレンス2013 & WordCamp Tokyo 2013 講演資料まとめ #phpcon2013 #wctokyo | Time to live forever</a></td>
<td>123</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://sho.tdiary.net/20130915.html#p01' target='_blank'>HTTPでHashやArrayを送る手法に仕様は存在しない……の? - ただのにっき(2013-09-15)</a></td>
<td>151</td>
<td>2013/09/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/ozuma/20130916/1379332757' target='_blank'>phpMyAdminを狙った攻撃観察 - ろば電子が詰まっている</a></td>
<td>122</td>
<td>2013/09/16</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/09/php-enviroment-with-vagrant.html' target='_blank'>Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた - Shin x blog</a></td>
<td>223</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/techblogyahoo/phpcon2013-performance' target='_blank'>本当に怖いパフォーマンスが悪い実装 #phpcon2013</a></td>
<td>458</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/33268831.html' target='_blank'>2ちゃんねらー‎「PHPでアプリのまとめサイト作ったんだが・・・・」 : IT速報</a></td>
<td>102</td>
<td>2013/09/23</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookmysqlmysql_connect_2013.html' target='_blank'>FacebookにおけるMySQLを用いた大規模システムアーキテクチャの現実～MySQL Connect 2013 － Publickey</a></td>
<td>485</td>
<td>2013/09/27</td>
</tr>
<tr>
<td><a href='http://2013.8-p.info/japanese/09-28-languages.html' target='_blank'>はじめの言語の賞味期限 - Kato Kazuyoshi</a></td>
<td>359</td>
<td>2013/09/28</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/09/cookie-manipulation-is-possible-even-on-ssl.html' target='_blank'>HTTPSを使ってもCookieの改変は防げないことを実験で試してみた | 徳丸浩の日記</a></td>
<td>611</td>
<td>2013/09/30</td>
</tr>
</table>
<h3>10月:オープンソースのメッセンジャーが話題に</h3>
<p>PHPでバックエンドを実装したメッセンジャーアプリが公開され話題を呼んでいます。当初は炎上的な展開でしたがGitHubを利用してソーシャルにコードが改善され、またその際にはVagrantや継続的テスト、Composer、Symfonyなどのナレッジが効果的に活用されケーススタディとしても価値があるエピソードになりました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://jp.techcrunch.com/2013/10/03/20131002runnable-wants-to-become-the-youtube-of-code/' target='_blank'>「プログラムコードのYouTube」を目指すRunnable。サンプルはサイト内で編集・実行可 | TechCrunch Japan</a></td>
<td>421</td>
<td>2013/10/03</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/yujiotani16/redis-26851700' target='_blank'>Redis勉強会資料</a></td>
<td>210</td>
<td>2013/10/04</td>
</tr>
<tr>
<td><a href='http://dekokun.github.io/posts/2013-10-06.html' target='_blank'>ISUCON予選にPHP実装で参加して3位になりましたーやったことなどまとめ</a></td>
<td>171</td>
<td>2013/10/06</td>
</tr>
<tr>
<td><a href='http://techwave.jp/archives/spika_launching.html' target='_blank'>世界初 メッセンジャーアプリ「Spika」を完全オープンソースで公開、フロントからバックエンドまで提供 【増田 @maskin】 | TechWave</a></td>
<td>450</td>
<td>2013/10/08</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html' target='_blank'>PHP開発環境のサンプルVagrantfile - Shin x blog</a></td>
<td>266</td>
<td>2013/10/09</td>
</tr>
<tr>
<td><a href='http://www.moongift.jp/2013/10/20131013/' target='_blank'>フリーランサー/小規模向けのプロジェクト管理「Solo」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ</a></td>
<td>327</td>
<td>2013/10/13</td>
</tr>
<tr>
<td><a href='http://blog.tojiru.net/article/377526320.html' target='_blank'>PHPのinterfaceとは何か - 泥のように</a></td>
<td>270</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href='http://nigohiroki.hatenablog.com/entry/2013/10/17/001754' target='_blank'>これからWeb系のベンチャーで起業しようと思っている人へ考慮しなければいけないリストを作成した - nigoblog</a></td>
<td>1185</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href='http://www.find-job.net/startup/architecture-2013' target='_blank'>国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 | Find Job ! Startup</a></td>
<td>1167</td>
<td>2013/10/17</td>
</tr>
<tr>
<td><a href='http://hitch.jp/blog/pixiv/' target='_blank'>月間38億PVを6人でさばくpixivインフラチーム久保氏のパフォーマンス向上術 | Hitch Blog</a></td>
<td>211</td>
<td>2013/10/18</td>
</tr>
<tr>
<td><a href='http://cloverstudioceo.hatenablog.com/entry/2013/10/21/033700' target='_blank'>Spikaを公開して起こった事 - ヨーロッパで働く社長のブログ</a></td>
<td>311</td>
<td>2013/10/21</td>
</tr>
<tr>
<td><a href='http://mkkn.hatenablog.jp/entry/2013/04/13/212100' target='_blank'>いつまでPHPerはMVCを間違い続けるのか…? - どうにもならない日々@mkkn</a></td>
<td>274</td>
<td>2013/10/21</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookphpjithhvm_2217cpulinux.html' target='_blank'>FacebookがPHPのJITコンパイラ「HHVM 2.2」リリース。17％のCPU効率改善。Linuxディストリビューション用パッケージを用意 － Publickey</a></td>
<td>140</td>
<td>2013/10/22</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/hinakano/json-schema' target='_blank'>JSON SchemaとPHP</a></td>
<td>213</td>
<td>2013/10/29</td>
</tr>
<tr>
<td><a href='http://bugrammer.hateblo.jp/entry/2013/10/30/013451' target='_blank'>一人でコードを書きなさんな - Line 1: Error: Invalid Blog('by Esehara' )</a></td>
<td>218</td>
<td>2013/10/30</td>
</tr>
</table>
<h3>11月:正しい手法への関心</h3>
<p>11月は大規模なマイグレーションの事例やセキュリティ関連の話題に注目があつまりました。また採用市場というちょっとかわった観点の話題も登場しています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/11/apache-magica-attack.html' target='_blank'>CGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました | 徳丸浩の日記</a></td>
<td>150</td>
<td>2013/11/01</td>
</tr>
<tr>
<td><a href='http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636' target='_blank'>「MVCの勘違い」について、もう一度考えてみる - 圧倒亭グランパのブログ</a></td>
<td>639</td>
<td>2013/11/01</td>
</tr>
<tr>
<td><a href='http://f-shin.net/fsgarage/638' target='_blank'>MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage＠fshin2000</a></td>
<td>344</td>
<td>2013/11/02</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/hnw/20131102' target='_blank'>PHPのジェネレータはイテレータより速い - hnwの日記</a></td>
<td>118</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/j_nakada/aws-27835913' target='_blank'>モバイルゲームにおけるAWSの泥臭い使い方</a></td>
<td>363</td>
<td>2013/11/03</td>
</tr>
<tr>
<td><a href='http://phpmentors.jp/post/66318980165/mock-behaviors-not-states' target='_blank'>PHPメンターズ -> 状態ではなく、振る舞いをモックせよ</a></td>
<td>131</td>
<td>2013/11/08</td>
</tr>
<tr>
<td><a href='http://f-shin.net/fsgarage/751' target='_blank'>PHP vs Ruby 把握できていない人材採用市場 | F's Garage＠fshin2000</a></td>
<td>147</td>
<td>2013/11/09</td>
</tr>
<tr>
<td><a href='http://mizchi.hatenablog.com/entry/2013/11/10/081026' target='_blank'>ウェブエンジニアの生存戦略 - mizchi's blog</a></td>
<td>642</td>
<td>2013/11/10</td>
</tr>
<tr>
<td><a href='http://blogos.com/forum/70150/response/508799/' target='_blank'>PHP vs Ruby 把握できていない人材採用市場へのKrihalo - ソフトウェア相談などさんの意見</a></td>
<td>138</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/kwatch/db-28097225' target='_blank'>DBスキーマもバージョン管理したい！</a></td>
<td>491</td>
<td>2013/11/12</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrant-and-berkshelf/' target='_blank'>nanapi勉強会でVagrant + Berkshelfについて発表しました | Engine Yard Blog JP</a></td>
<td>109</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href='http://blog.ohgaki.net/fastest-php-framework-phalcon' target='_blank'>PHP最速フレームワークPhalconのインストール</a></td>
<td>102</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href='http://slywalker.hateblo.jp/entry/2013/11/15/115907' target='_blank'>#CakePHP 爆速でAPIを実装するチュートリアル - 忍び歩く男 - SLYWALKER</a></td>
<td>183</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='http://luccafort.hatenablog.com/entry/2013/11/15/013842' target='_blank'>我輩、激おこプンプン丸で御座候 - 坊主の日記</a></td>
<td>178</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='http://blog.ohgaki.net/json-escape' target='_blank'>JSONのエスケープ</a></td>
<td>219</td>
<td>2013/11/16</td>
</tr>
<tr>
<td><a href='http://dqn.sakusakutto.jp/2013/11/php51to54.html' target='_blank'>ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></td>
<td>568</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='https://codeiq.jp/magazine/2013/11/1475/' target='_blank'>これであなたもテスト駆動開発マスター！？和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します～現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd｜CodeIQ MAGAZI</a></td>
<td>796</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='http://sclo.hatenablog.com/entry/2013/11/28/185901' target='_blank'>「将来に向けて節約をしながらも、今の暮らしを楽しむ方法」に、私、感動する。 - 僭越ながら</a></td>
<td>398</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href='http://www.sophos.com/ja-jp/press-office/press-releases/2013/11/ns-serious-security-how-to-store-your-users-passwords-safely.aspx' target='_blank'>ユーザーのパスワードを安全に保管する方法について - 11 - 2013 - Sophos Press Releases, Security News and Press Coverage - Sophos Press Office | Sophos News and Press Releases - ソフォス</a></td>
<td>180</td>
<td>2013/11/28</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/11/xsssqlrfc5322.html' target='_blank'>XSSとSQLインジェクションの両方が可能なRFC5322適合のメールアドレス | 徳丸浩の日記</a></td>
<td>438</td>
<td>2013/11/29</td>
</tr>
</table>
<h3>12月:新機能の利用が進む</h3>
<p>12月も引き続きセキュリティ関連の話題などがありましたが、PHP5.5の新機能であるジェネレータについての記事が印象的です。カンファレンスなどでも機能の概要は紹介されていましたが、実際に利用する中で得た知見について耳にする機会が増えてきました。<br />
PHP5.5もリリースから約半年が経過していますが、まだ利用していない方は早めの導入とジェネレータなどの新機能を効果的に活用する事をご検討ください。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/' target='_blank'>PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP</a></td>
<td>235</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href='http://www.msng.info/archives/2013/12/php-array-magic.php' target='_blank'>PHP の配列を使った手品とその種明かし - 頭ん中</a></td>
<td>149</td>
<td>2013/12/02</td>
</tr>
<tr>
<td><a href='http://c-note.chatwork.com/post/68781816704/phest-php-easy-static-site-generator' target='_blank'>黒い画面不要！デザイナ向け静的サイトジェネレーター「Phest」を公開しました</a></td>
<td>157</td>
<td>2013/12/03</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/12/recent_php_news_201312.html' target='_blank'>6分でわかる最近のPHP 2013年冬 - Shin x blog</a></td>
<td>148</td>
<td>2013/12/04</td>
</tr>
<tr>
<td><a href='http://blog.livedoor.jp/itsoku/archives/35414119.html' target='_blank'>PHP勉強してアフィで稼ごうと掲示板作ってみた結果ｗｗｗｗｗｗ : IT速報</a></td>
<td>137</td>
<td>2013/12/06</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/12/varnish-cache.html' target='_blank'>とある CMS を使ったサイトに Varnish を導入した話 - Shin x blog</a></td>
<td>170</td>
<td>2013/12/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/yayugu/20131207/1386407295' target='_blank'>そして老害になる - yayuguのにっき</a></td>
<td>397</td>
<td>2013/12/07</td>
</tr>
<tr>
<td><a href='http://developer.cybozu.co.jp/tech/?p=6527' target='_blank'>yrmcds 1.0.0 をリリースしました | Cybozu Inside Out | サイボウズエンジニアのブログ</a></td>
<td>110</td>
<td>2013/12/09</td>
</tr>
<tr>
<td><a href='http://qiita.com/Hiraku/items/0db9a8fed4743c1f00a4' target='_blank'>PHP - コードをまとめる技術としてのイテレータとジェネレータ - Qiita [キータ]</a></td>
<td>201</td>
<td>2013/12/10</td>
</tr>
<tr>
<td><a href='http://nekogata.hatenablog.com/entry/2013/12/11/142939' target='_blank'>PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く</a></td>
<td>326</td>
<td>2013/12/11</td>
</tr>
<tr>
<td><a href='http://tanakahisateru.hatenablog.jp/entry/2013/12/12/012728' target='_blank'>PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ</a></td>
<td>501</td>
<td>2013/12/12</td>
</tr>
<tr>
<td><a href='http://blog.tokumaru.org/2013/12/php12sql.html' target='_blank'>PHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた | 徳丸浩の日記</a></td>
<td>336</td>
<td>2013/12/13</td>
</tr>
<tr>
<td><a href='http://wp-d.org/2013/12/19/5456/' target='_blank'>2013年Web制作に使い始めてよかったツール・サービスまとめ 〜そして時は2014年へ〜 | WP-D</a></td>
<td>516</td>
<td>2013/12/19</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/thk/20131221' target='_blank'>「WEB+DB PRESS」で艦これで有名なDMMの開発体制の全貌が明らかに - 東洋黒客の凱旋</a></td>
<td>238</td>
<td>2013/12/22</td>
</tr>
</table>
<p>まとめてみるといかに最新のトピックをキャッチアップし続けるのが大変なのかという気もしてきますが、このタイミングで一気に追いついて2014年に備えましょう。みなさん、良いお年を。</p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-php/">2013年PHPの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/year-of-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2013年Chefの話題を一挙に振り返るまとめ</title>
		<link>http://www.engineyard.co.jp/blog/2013/year-of-chef/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/year-of-chef/#comments</comments>
		<pubDate>Wed, 18 Dec 2013 04:55:24 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2104</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/iStock_000020118226XSmall.jpg" alt="iStock_000020118226XSmall" width="425" height="282" class="alignnone size-full wp-image-2117" /><br />
早いもので2013年もまもなく終わります。特にChefについては今年は大きな飛躍の1年になりました。Chefについては話題の流れも多く、自身としても何があったのかを即座には思い出せません。今回はすでにChefを使っている人の話題の復習や、Chefをまだキャッチアップしていない人が今からでも間に合う情報収集としてまとめてみます。</p>
<p>はてなブックマーク上でも2013年の記事でChefタグが付けられた3ブックマーク以上の記事が<strong>800エントリを超え、ブックマークの回数は3万2千回を超えるというとてつもない状況です</strong>。今回はその中でも100ブックマーク以上が付いた記事の中から特に注目が集まった話題を時系列で振り返ります。</p>
<h3>2013年1月:「兆し」</h3>
<p>2013年早々にChefの大躍進の契機になるエントリが@naoya_itoさんのブログに投稿されます。「開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決」と題されたエントリでchef-soloを使ってEC2のスナップショットに新しいIPアドレスを反映するというような流れが紹介されています。今の時点ので考えるとこれはプロビジョニングというよりもオーケストレーションのような部分に近く、ソフトウェアのインストールなどではなく動作環境に適切な情報を埋め込む為の利用用途になっています。</p>
<p>ただすでにこの時点でツールチェインとしてレシピに対するテストを実行する事が示唆されています。</p>
<blockquote>
<ul>
<li> ローカルでレシピ (chef) をがりがり書く</li>
<li> chef レシピの lint <a href="http://acrmp.github.com/foodcritic/">foodcritic</a> でチェック</li>
<li> git commit して github に push</li>
<li> chef-solo を Cinnamon を使って、リモートで実行</li>
<li> リモートでは git fetch で最新のレシピを取ってきて、chef-solo が実行される</li>
</ul>
</blockquote>
<p>foodcriticは実際にクックブックを動作させるのではなく、シンタックスベースでのテストを行いますがすでにテストの必要性が提起されています。またこのエントリ内でも言及されていますが、@sawanobolyさんによる「Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理」と題されたエントリが公開されておりサーバーの構成を継続的にテストする手法が提示されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.riywo.com/2013/01/07/040947' target='_blank'>MyrokuというHerokuっぽいものを実装してみた - As a Futurist...</a></td>
<td>158</td>
<td>2013/01/07</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/01/chef-cookbook-tips.html' target='_blank'>ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - powered by HEARTBEATS</a></td>
<td>186</td>
<td>2013/01/23</td>
</tr>
<tr>
<td><a href='http://qiita.com/sawanoboly/items/48fe830d2ee3b6c87bf5' target='_blank'><strong>Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理 #infrastructure #Cucumber #Ruby #chef #chefspec - Qiita</strong></a></td>
<td>120</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130131/1359614077' target='_blank'><strong>開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決 - naoyaのはてなダイアリー</strong></a></td>
<td>139</td>
<td>2013/01/31</td>
</tr>
</table>
<h3>2013年2月:「勉強会、AWS OpsWorksの発表」</h3>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/02/859294_277535169044078_1639743555_o.jpg"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/02/859294_277535169044078_1639743555_o-1024x768.jpg" alt="859294_277535169044078_1639743555_o" width="1024" height="768" class="alignnone size-large wp-image-603" /></a></p>
<p>2月はEngine Yardで開催した「初めてのChefの教室」でのコンテンツなどに注目が集まり、方法論の交流が活発になりました。またFacebookでの大規模な採用事例やその知見を反映したChef11が公開されました。<br />
Chefとセットで使われる事の多いツール、Vagrantが@naoya_itoさんのブログで紹介され事実上Chefを使う際の必須ツールになったのも2月の出来事でした。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130204/1359971408' target='_blank'>開発メモ#5 : Amazon Linux で knife-solo を使って chef-solo 実行 - naoyaのはてなダイアリー</a></td>
<td>107</td>
<td>2013/02/04</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookchefcheferlangopscode.html' target='_blank'>Facebook、データセンター自動化ツールにChefの新バージョンを全面採用、Erlangでスケーラビリティ拡大。OpsCodeが発表 － Publickey</a></td>
<td>167</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130205/1360062070' target='_blank'><strong>Vagrant - naoyaのはてなダイアリー</strong></a></td>
<td>962</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130205/1360088927' target='_blank'>LTSVフォーマットなログを fluentd + GrowthForecast で料理 - naoyaのはてなダイアリー</a></td>
<td>266</td>
<td>2013/02/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130207/1360240992' target='_blank'>【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリー</a></td>
<td>328</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/mirakui/quan-zi-dong-parametatiyuningusan' target='_blank'>全自動パラメータチューニングさん // Speaker Deck</a></td>
<td>353</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130219/1361262854' target='_blank'>開発メモ#6 : ログの取り扱い : GrowthForecast, Amazon S3, Treasure Data で心労ゼロ - naoyaのはてなダイアリー</a></td>
<td>244</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://aws.typepad.com/aws_japan/2013/02/aws-opsworks-flexible-application-management-in-the-cloud.html' target='_blank'>Amazon Web Services ブログ: 【AWS発表】AWS OpsWorks - Chefを使って柔軟にクラウド内のアプリケーション管理ができる新サービスを発表</a></td>
<td>332</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/amazonaws_opsworkschef.html' target='_blank'>Amazonクラウド、デプロイの自動化ツール「AWS OpsWorks」公開。Chefのレシピ利用 － Publickey</a></td>
<td>109</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/' target='_blank'><strong>「初めてのChefの教室」を開催しました。(動画&資料) - Engine Yard Blog JP</strong></a></td>
<td>399</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://www.akiyan.com/blog/archives/2013/02/chef-is-the-technology-in-which-study-cost-performance-is-the-highest-now.html' target='_blank'>今もっとも学習コスパの高い技術はChefだと、Chef勉強会に行って確信した - akiyan.com</a></td>
<td>599</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://dann.g.hatena.ne.jp/dann/20130225/p1' target='_blank'>ChefでMacを開発マシンとしてセットアップ - dann's blog - #</a></td>
<td>219</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6371' target='_blank'>ChefのrecipeをJenkinsで継続的インテグレーションする方法 | Ryuzee.com</a></td>
<td>119</td>
<td>2013/02/27</td>
</tr>
</table>
<h3>2013年3月: 「入門 Chef Soloとserverspecの登場」</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Kindle向けに『入門Chef_Solo_-_Infrastructure_as_Code』を出版しました_-_naoyaのはてなダイアリー.png" alt="Kindle向けに『入門Chef_Solo_-_Infrastructure_as_Code』を出版しました_-_naoyaのはてなダイアリー" width="821" height="356" class="alignnone size-full wp-image-2128" /></p>
<p>3月の出来事はなんといっても電子書籍「入門Chef Solo」の出版が大きいです。KDP上での出版という動きの中でもかなり早期のものでランキング上位に今でも入っています。一方で「Chefに挫折した」という層も出始めたのかFabricについての記事にも注目が集まりました。現在でも話題になっているserverspecに注目が集まったのも3月の出来事です。</p>
<p>Chefが中心の記事ではないですが「同僚の外国人プログラマ観察記録」はVagrantやBerkshelf、SublimeText2、NewRelicなどを使って楽をしていた外国人プログラマの姿が紹介されています。この時点ではある種「未来的なプログラマ像」のように描かれていたように思いますが、同じようなスタイルを取っている人は増えてきているかもしれません。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/int128/20130302/1362153651' target='_blank'>GitとJenkinsを使ってChefを運用する - GeekFactory</a></td>
<td>265</td>
<td>2013/03/02</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/YukihikoSawanobori/what-is-chef201303' target='_blank'>What is chef</a></td>
<td>257</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href='http://tk0miya.hatenablog.com/entry/2013/03/07/121438' target='_blank'>開発サーバに chef を入れるときの 11個の方法 - Hack like a rolling stone</a></td>
<td>233</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://hozumi.github.com/2013/03/chef-fabric-ja.html' target='_blank'><strong>Chefに挫折したあなたへ。Fabricのすすめ</strong></a></td>
<td>232</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130313/1363129532' target='_blank'><strong>Kindle向けに『入門Chef Solo - Infrastructure as Code』を出版しました - naoyaのはてなダイアリー</strong></a></td>
<td>347</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130315/1363340698' target='_blank'>Vagrant 1.1 で EC2 を vagrant up - naoyaのはてなダイアリー</a></td>
<td>195</td>
<td>2013/03/15</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130317/1363485034' target='_blank'>手動でサーバの設定をすることを禁ずる。入門Chef Solo - プログラマになりたい</a></td>
<td>213</td>
<td>2013/03/17</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/masudaK/20130320/1363794789' target='_blank'>Chefのテストスイーツを色々試してみた （1） - カイワレの大冒険</a></td>
<td>145</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://banyan.github.com/2013/03/21/1/' target='_blank'>社内で Chef 勉強会をして色々教えてもらった - banyan.github.com</a></td>
<td>120</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130321/1363838408' target='_blank'>宮川さんPodcast ep6、KDP での本の作り方 - naoyaのはてなダイアリー</a></td>
<td>142</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/03/vagrant.html' target='_blank'>こりゃ便利！Vagrant で自分の PC に「作って、壊して、元に戻せる」サーバを作る - Shin x blog</a></td>
<td>577</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://tatsu-zine.com/books/chef-solo' target='_blank'>入門Chef Solo - Infrastructure as Code - 達人出版会</a></td>
<td>191</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://tsuchikazu.net/chef_solo_start/' target='_blank'>Chef Soloの正しい始め方 | tsuchikazu blog</a></td>
<td>158</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://rinu.hatenablog.com/entry/2013/03/17/164151' target='_blank'><strong>同僚の外国人プログラマ観察記録 - rinu's blog</strong></a></td>
<td>1766</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/03/23/1/' target='_blank'>Puppet や Chef で構築したサーバを RSpec でテストする - Gosuke Miyashita</a></td>
<td>169</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/03/24/3/' target='_blank'>構築済みサーバを RSpec でテストする serverspec という gem をつくった - Gosuke Miyashita</a></td>
<td>210</td>
<td>2013/03/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/ntaku/20130324/1364132658' target='_blank'>入門Chef-Soloを片手にRailsアプリを動作させるところまでやってみた - プログラミングノート</a></td>
<td>119</td>
<td>2013/03/24</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/03/chef-recipe-and-lib.html' target='_blank'>「写経」から始めるChefクックブックの作成 - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>284</td>
<td>2013/03/27</td>
</tr>
<tr>
<td><a href='http://serverspec.org/' target='_blank'><strong>serverspec - home</strong></a></td>
<td>139</td>
<td>2013/03/30</td>
</tr>
</table>
<h3>2013年4月: 「研修での採用事例とAnsible」</h3>
<p>4月ということで研修の一環としてChefなどを使う事例が紹介されるようになります。サーバーの設定作業をChefなどを使って行うのが当たり前というエンジニアが続々と誕生していったという事でこれは後に繋がりそうです。またChefに馴染みにくかった方の中でAnsibleやFabricなどの同種のツールの活用も紹介されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130404/1365048462' target='_blank'>運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた - プログラマになりたい</a></td>
<td>135</td>
<td>2013/04/04</td>
</tr>
<tr>
<td><a href='https://gist.github.com/hsbt/5316074' target='_blank'><strong>2013 年の新卒研修メニュー - gist:5316074</strong></a></td>
<td>108</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href='http://apatheia.info/blog/2013/04/06/about-ansible/' target='_blank'><strong>構成管理ツール Ansible について - apatheia.info</strong></a></td>
<td>254</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130407/1365330503' target='_blank'>何故、fluentdなのか？ - プログラマになりたい</a></td>
<td>220</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/thinkAmi/20130407/1365310673' target='_blank'>Windows7上で Vagrant + Chef solo + knife-soloを使い、Ubuntu + ubuntu-desktopの環境を構築してみた - メモ的な思考的な</a></td>
<td>145</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/shiumachi/20130414/1365920515' target='_blank'>今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮</a></td>
<td>360</td>
<td>2013/04/14</td>
</tr>
<tr>
<td><a href='http://tech.kayac.com/archive/2013training.html' target='_blank'><strong>2013年の新卒研修と社内ISUCONやりました - (1) 研修編 | tech.kayac.com - KAYAC engineers' blog</strong></a></td>
<td>246</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://steps.dodgson.org/b/2013/04/24/recent-happenings-on-elders/' target='_blank'>最近のおっさんたち - steps to phantasien</a></td>
<td>291</td>
<td>2013/04/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130425/1366852899' target='_blank'>サーバ構築・デプロイの自動化の話。或いはChefとCapistranoの素敵な関係 - プログラマになりたい</a></td>
<td>111</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/04/30/225404' target='_blank'>『入門Puppet - Automate Your Infrastructure』という電子書籍を出版しました - delirious thoughts</a></td>
<td>182</td>
<td>2013/04/30</td>
</tr>
</table>
<h3>2013年5月: 「serverspecを使ったCIが定着」</h3>
<p>5月の時点ではこれまでに話題になってきた技術の組み合わせが普及する時期だったようです。さまざまな場面でserverspecとChefを組み合わせた事例が紹介されており、ChefSpecなどを使ってテストを行うという人よりもserverspecから始める人が主流になっていったようです。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://takatoshimaeda.github.io/blog/2013/05/07/create-server-30-minutes/' target='_blank'>[Chef][serverspec]ChefSoloを使ってnginx+mysql+rubyサーバー(VPS)を30分で作る - takatoshi blog</a></td>
<td>129</td>
<td>2013/05/07</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/naoya/ru-men-chef-sololuo-tisui-shi-i' target='_blank'>入門Chef Solo落ち穂拾い // Speaker Deck</a></td>
<td>188</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href='http://blog.inouetakuya.info/entry/20130511/1368271417' target='_blank'><strong>Chef と Puppet の勉強会というよりも、むしろ時代は serverspec だった #pfcasual - 彼女からは、おいちゃんと呼ばれています</strong></a></td>
<td>314</td>
<td>2013/05/11</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/news/lesson8-done/' target='_blank'>【勉強会】AWS管理を自動化する奥義を開催しました！ ｜ Developers.IO</a></td>
<td>116</td>
<td>2013/05/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130520/1369054828' target='_blank'><strong>Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー</strong></a></td>
<td>427</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130521/1369102714' target='_blank'>Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー</a></td>
<td>174</td>
<td>2013/05/21</td>
</tr>
<tr>
<td><a href='http://tk0miya.hatenablog.com/entry/2013/05/24/153325' target='_blank'>chef で mysql のユーザやデータベースを管理する - Hack like a rolling stone</a></td>
<td>127</td>
<td>2013/05/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/rx7/20130526/p1' target='_blank'>Chef 11 での client/server/knife のセットアップ手順(+α) - 元RX-7乗りの適当な日々</a></td>
<td>186</td>
<td>2013/05/27</td>
</tr>
<tr>
<td><a href='http://qiita.com/tumf/items/bb90e266016e0dc85c4e' target='_blank'>CentOSの要らないサービスを無効にするレシピ - Qiita [キータ]</a></td>
<td>102</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href='http://blog.riywo.com/2013/05/29/151321' target='_blank'>「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...</a></td>
<td>256</td>
<td>2013/05/29</td>
</tr>
</table>
<h3>2013年6月:「VPSでの事例とDocker」</h3>
<p>引き続き利用が拡大し、AWSやVirtualBox以外の環境での利用例が話題になっています。また最近の話題をさらっているDockerが@naoya_itoさんによって紹介されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cloned/php-kansai2013-lt' target='_blank'>一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~</a></td>
<td>102</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href='http://orangain.hatenablog.com/entry/multi-node-serves-using-lxc-on-sakura-vps' target='_blank'>さくらVPSでLXCを使って安価に複数台構成を実現する - orangain flavor</a></td>
<td>437</td>
<td>2013/06/06</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/06/use-ohai.html' target='_blank'>ohaiを使ってサーバの情報をプログラムで扱おう - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>122</td>
<td>2013/06/11</td>
</tr>
<tr>
<td><a href='http://qiita.com/tumf@github/items/918ef218eeade512012c' target='_blank'>Ruby - 遺伝的アルゴリズム(GA)によるサーバの自動チューニング - Qiita [キータ]</a></td>
<td>165</td>
<td>2013/06/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130620/1371729625' target='_blank'><strong>Docker (土曜日に podcast します) - naoyaのはてなダイアリー</strong></a></td>
<td>105</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/AmazonWebServicesJapan/20130506-23096544' target='_blank'>AWS上でのWebアプリケーションデプロイ</a></td>
<td>353</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/tnmt/puppet-and-chef' target='_blank'>Puppet & Chef // Speaker Deck</a></td>
<td>140</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/mizzy/serverspec-hbstudy45' target='_blank'>Serverspec at hbstudy #45</a></td>
<td>137</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6690' target='_blank'>ChefのCookbookのベストプラクティス | Ryuzee.com</a></td>
<td>108</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://www.creationline.com/lab/3080' target='_blank'>[和訳] 初心者Chefアンチパターン by Julian Dunn #opschef_ja « CREATIONLINE, INC.</a></td>
<td>166</td>
<td>2013/06/25</td>
</tr>
</table>
<hr/>
Engine Yard CloudはAWSやWindows Azureなどのクラウド環境をChefで構築するPaaSです。有人運用などをサポートで提供しています。<br />
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<hr/>
<h3>2013年7月: 「メディアへの露出」</h3>
<p><a href="http://www.flickr.com/photos/yandod/9302868729/" title="Untitled by yandod, on Flickr"><img src="http://farm4.staticflickr.com/3771/9302868729_56cd0a01ca_c.jpg" width="800" height="534" alt="Untitled"></a></p>
<p>7月にはVagrantの作者のMitchell Hashimotoさんが来日し講演した事がメディアにも掲載されました。DevOpsの流れの中でChefはツールセットの中の一部として定着し引き続き注目されています。またPHPカンファレンス関西での紹介がきっかけにPHPの開発にVagrantを使うという話題が出始めたころでもあります。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1307/02/news002.html' target='_blank'>特集　DevOps時代の必須知識：いまさら聞けない「DevOps」 (1/2) - ＠IT</a></td>
<td>160</td>
<td>2013/07/02</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1305/24/news003.html' target='_blank'>特集　DevOps時代の必須知識：インフラストラクチャ自動化フレームワーク「Chef」の基本 (1/2) - ＠IT</a></td>
<td>329</td>
<td>2013/07/03</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/tool/vagrant/' target='_blank'>Vagrantを使って仮想OSを簡単に作成しよう ｜ Developers.IO</a></td>
<td>104</td>
<td>2013/07/03</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1306/14/news002.html' target='_blank'>特集　DevOps時代の必須知識：まとめてたくさん処理したい！ を解決する「Capistrano」 - ＠IT</a></td>
<td>200</td>
<td>2013/07/04</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/' target='_blank'><strong>「初めてのChefの教室」をアップデートしました | Engine Yard Blog JP</strong></a></td>
<td>185</td>
<td>2013/07/06</td>
</tr>
<tr>
<td><a href='http://developer.smartnews.be/blog/2013/07/08/cloud-service-management-using-chef-and-fabric/' target='_blank'>chef + fabricを用いたクラウドサービス管理 | SmartNews開発者ブログ</a></td>
<td>288</td>
<td>2013/07/08</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/vagrantvagrant_meetup_2013.html' target='_blank'><strong>「Vagrant」は仮想環境をプログラミングするツール。同一環境をどこにでも、いくつでもすぐに作成可能。Vagrant meetup 2013 － Publickey</strong></a></td>
<td>402</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php' target='_blank'><strong>もう XAMPP / MAMP はいらない！Vagrant で作る PHP 開発環境</strong></a></td>
<td>733</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/naoya/devopsfalsejin-tokorekara-number-init-devops' target='_blank'>DevOpsの今とこれから #init_devops // Speaker Deck</a></td>
<td>280</td>
<td>2013/07/19</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yandod/chu-metefalsecheffalsejiao-shi-v1-dot-2-chef11dui-ying-ban' target='_blank'>初めてのChefの教室 (v1.2 Chef11対応版) // Speaker Deck</a></td>
<td>186</td>
<td>2013/07/20</td>
</tr>
<tr>
<td><a href='http://tily.hatenablog.com/entry/2013/07/21/150404' target='_blank'>Chef のレシピから serverspec のテストを自動生成する chef-serverspec-handler という gem を作ってみた - DevOps について書くブログ</a></td>
<td>143</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://k1low.hatenablog.com/entry/2013/07/22/185615' target='_blank'>さくらVPSセットアップ用のシェルスクリプトを今話題の「Ansible」で書き直してみた - Copy/Cut/Paste/Hatena</a></td>
<td>262</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6729' target='_blank'>[資料公開]Vagrant (+Amazon EC2) #init_devops | Ryuzee.com</a></td>
<td>101</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/csouls/inhuratimuwochi-tanaihui-she-defalseinhurayun-yong' target='_blank'>インフラチームを持たない会社でのインフラ運用 // Speaker Deck</a></td>
<td>304</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/07/basic_chef.html' target='_blank'>『Chef入門 (全14回)』をドットインストールに追加しました #dotinstall | IDEA*IDEA</a></td>
<td>137</td>
<td>2013/07/24</td>
</tr>
<tr>
<td><a href='http://yteraoka.github.io/ansible-tutorial/' target='_blank'>Ansible Tutorial</a></td>
<td>138</td>
<td>2013/07/25</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/cloud/aws/aws-jenkins-run-ec2-and-chef-cooking/' target='_blank'>【AWS】JenkinsとserverspecでChefのテストを自動化する ｜ Developers.IO</a></td>
<td>241</td>
<td>2013/07/30</td>
</tr>
</table>
<h3>2013年8月: 「Immutable Infrastracture」</h3>
<p>8月は引き続き活用の事例が話題になっています。特に印象的なのは現在のバズワードである「Immutable Infrastracture」についてのエントリが話題になっていた点です。f440さんのこの記事の書き出しの部分は簡潔にImmutable Infrastractureとはなにか、どのような経緯で話題に上がったかを述べています。</p>
<blockquote><p>
Immutable Server や Immutable Infrastracture っていう単語がいろんなところで目に入るようになった。とくに Chad Fowler がブログで取り上げたり、Food Fight に出たり して、世間でも関心が高まった感じがある。</p>
<p>プログラムを書く人にはご存じの通り、この Immutable っていうのは状態が変更出来ないことを指している。Immutable な Infrastracture っていうのは、ざっくり言うと「運用中のサーバーに変更を加えない」っていうアプローチでサーバーを管理しているスタイルのこと。
</p></blockquote>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.physalis.net/2013/08/09/java-webapp-dev-environment-with-vagrant.html' target='_blank'>Vagrant + Chef で Java Web アプリケーション開発環境を作る - Secret Staircase</a></td>
<td>117</td>
<td>2013/08/09</td>
</tr>
<tr>
<td><a href='http://apatheia.info/blog/2013/08/10/immutable-infrastructure/' target='_blank'><strong>Immutable Infrastracture について - apatheia.info</strong></a></td>
<td>189</td>
<td>2013/08/11</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar311555' target='_blank'>Chef Soloと Knife Soloでの　ニコニコサーバー構築 (1):dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>120</td>
<td>2013/08/12</td>
</tr>
<tr>
<td><a href='http://yuuki.hatenablog.com/entry/2013/08/13/220330' target='_blank'>Chefがつらい人のためのAnsibleのはなし - ゆううきブログ</a></td>
<td>337</td>
<td>2013/08/13</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar322283' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (2) 〜導入編〜:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>278</td>
<td>2013/08/22</td>
</tr>
<tr>
<td><a href='http://knowledge.sakura.ad.jp/tech/867/' target='_blank'>サーバー設定ツール「Chef」の概要と基礎的な使い方 - さくらのナレッジ</a></td>
<td>448</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar325738' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (3) 〜実行編〜:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>123</td>
<td>2013/08/26</td>
</tr>
</table>
<h3>2013年9月: 「アプリケーションエンジニアへのVagrantの普及」</h3>
<p>9月は新しい話題というよりも対象者がChefを使う必要のあるインフラ寄りのエンジニアではなく実際にアプリケーションの開発をするためにVagrantを使うというナレッジが数多く出てきています。アプリケーション開発に実際にVagrantを使い始めたのがこの辺りの時期だった方は結構居るのではないでしょうか。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://hnakamur.github.io/blog/2013/09/01/tried-chef-ansible-fabric/' target='_blank'>Chef-soloとAnsibleとFabricを試した感想 - hnakamur's blog at github</a></td>
<td>148</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar334285' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (4) ～コツ編～:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>153</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/server-side/chef-vagrant-ruby/' target='_blank'>Chef、Vagrantに興味があるけどRubyをやったことない技術者が最低限知っておいた方がいい知識　まとめ ｜ Developers.IO</a></td>
<td>293</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/marcyterui/aws-2' target='_blank'>小規模SI案件で、 AWS + Chefを使ってみて</a></td>
<td>193</td>
<td>2013/09/11</td>
</tr>
<tr>
<td><a href='http://shibayu36.hatenablog.com/entry/2013/09/14/192829' target='_blank'>AWS, chef, Cinnamon等を使った無停止デプロイ(PrePAN carton 1.0化の裏側) - $shibayu36->blog;</a></td>
<td>101</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/09/14/205810' target='_blank'>「PHPアプリケーションの継続的バージョンアップ」という題でPHPカンファレンス2013でトークしてきた #phpcon2013 - delirious thoughts</a></td>
<td>175</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/tool/jenkins/jenkins-refactoring-jobs/' target='_blank'>Jenkinsの使い勝手をよくするための見直し6点 ｜ Developers.IO</a></td>
<td>163</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://qiita.com/taiki45/items/b46a2f32248720ec2bae' target='_blank'>Ruby - 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]</a></td>
<td>394</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/09/php-enviroment-with-vagrant.html' target='_blank'>Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた - Shin x blog</a></td>
<td>223</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yuukit/hatenafalsesabaguan-li-turufalsehua' target='_blank'>はてなのサーバ管理ツールの話 // Speaker Deck</a></td>
<td>251</td>
<td>2013/09/21</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/referencecat/aws-special/' target='_blank'>AWS 振り返り特集 ｜ Developers.IO</a></td>
<td>330</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href='http://tmtk75.github.io/2013/09/28/docker-jenkins-serverspec-puppet.ja.html' target='_blank'>Docker + Jenkins + serverspecでpuppetのmanifestをCIする</a></td>
<td>152</td>
<td>2013/09/29</td>
</tr>
</table>
<h3>2013年10月: 「メディアで報じられる普及」</h3>
<p>10月に話題になっていた記事にはメディアの記事が2つ含まれています。センセーショナルな見出しだった事もあって多くの方の目を引いたのではないでしょうか。記事には具体的に日本の企業がChefを導入して活用しようとしている事が報じられています。</p>
<blockquote><p>
サイバーエージェントで消費者向けWebサービスを手がけるアメーバ事業本部では、現時点で20人いるOS/ミドルウエアの運用担当者を、2年後の2015年までにゼロにする計画だ。</p>
<p>　彼らは現在、OS/ミドルウエアをサーバーにインストールしたり、パッチを適用したり、アプリケーションの負荷に応じてサーバー台数を増減したりする業務を行っている。これらの業務を、オープンソースソフトウエアの運用管理ツール「Chef」を導入することで、自動化する計画だ。
</p></blockquote>
<blockquote><p>
要注目のツールとして浮かび上がったのが、「Redmine」「Jenkins」「Chef」という三つのオープンソースソフトである。<br />
日経SYSTEMSはこれらを、IT現場の「新3種の神器」と定める。いずれも本格的な普及はこれからという段階だ。しかし、統合開発環境（ビルドツールを含む）やソースコード管理ツールが今どのIT現場でも使われているのと同じように、Redmine、Jenkins、Chefも数年の間に必須のツールとなると予測する。
</p></blockquote>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html' target='_blank'>PHP開発環境のサンプルVagrantfile - Shin x blog</a></td>
<td>266</td>
<td>2013/10/09</td>
</tr>
<tr>
<td><a href='http://itpro.nikkeibp.co.jp/article/COLUMN/20131002/508384/' target='_blank'><strong>さあ、運用を変えよう - 運用担当者、激減中：ITpro</strong></a></td>
<td>298</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href='http://firegoby.jp/archives/5141' target='_blank'>WordPressのプラグインやテーマ、ウェブサイトの開発に超便利なVagrantつくりました。 | firegoby</a></td>
<td>372</td>
<td>2013/10/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/pfi/pfi-20130919-linux' target='_blank'>PFIセミナー 2013/09/19 「Linux開発環境の自動構築」</a></td>
<td>199</td>
<td>2013/10/19</td>
</tr>
<tr>
<td><a href='http://itpro.nikkeibp.co.jp/article/COLUMN/20131017/511814/' target='_blank'><strong>調査で分かった！ITの現場「新3種の神器」 - 新3種の神器を導入しよう：ITpro</strong></a></td>
<td>124</td>
<td>2013/10/28</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/10/29/1/' target='_blank'>インフラ系技術の流れ - Gosuke Miyashita</a></td>
<td>1036</td>
<td>2013/10/29</td>
</tr>
</table>
<h3>2013年11月: 「加速するImmutable Infrastructure」</h3>
<p>11月になると明確にImmutable Infrastructureへの言及が増加します。これによりChefの役割は実際のインスタンスの設定ではなく、Dockerなどのベースを作る為のプロビジョニングツールという形にスライドしていきます。また同時にオーケストレーションツールとしてのSerfにも注目が集まるようになります。<br />
とはいえChefのレシピを記述している人は引き続き多いようで、クックブックの実行サイクルについて解説した記事にアクセスを頂きました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrant-and-berkshelf/' target='_blank'>nanapi勉強会でVagrant + Berkshelfについて発表しました | Engine Yard Blog JP</a></td>
<td>108</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href='http://orangain.hatenablog.com/entry/jenkins-docker' target='_blank'>Dockerを使ってJenkinsのジョブごとにテスト実行環境を分離する - orangain flavor</a></td>
<td>155</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href='http://suzuken.hatenablog.jp/entry/2013/11/15/171803' target='_blank'>re:InventでのParseのDevOps話がとても良かったのでまとめておく - すずけんメモ</a></td>
<td>136</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/mizzy/future-of-server-provisioning' target='_blank'>Future of server provisioning // Speaker Deck</a></td>
<td>145</td>
<td>2013/11/16</td>
</tr>
<tr>
<td><a href='http://dqn.sakusakutto.jp/2013/11/php51to54.html' target='_blank'>ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></td>
<td>568</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='http://codezine.jp/article/detail/7484' target='_blank'>構成管理ツール「Chef」の概要とインストール手順 （1/4）：CodeZine</a></td>
<td>464</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='http://blog.mirakui.com/entry/2013/11/21/reinvent-immutable-infrastructure' target='_blank'>AWS re:Invent と Immutable Infrastructure - 昼メシ物語</a></td>
<td>178</td>
<td>2013/11/21</td>
</tr>
<tr>
<td><a href='http://togetter.com/li/594684' target='_blank'>Immutable Infrastructure の有用性 - Togetter</a></td>
<td>144</td>
<td>2013/11/25</td>
</tr>
<tr>
<td><a href='http://blog.glidenote.com/blog/2013/11/26/sensu/' target='_blank'>監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note - グライドノート</a></td>
<td>548</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='http://blog.mirakui.com/entry/2013/11/26/231658' target='_blank'>今さら聞けない Immutable Infrastructure - 昼メシ物語</a></td>
<td>514</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/aereal/vagrant-to-chef-detukuruhatenabutukumakufalsekai-fa-huan-jing' target='_blank'>Vagrant と Chef でつくるはてなブックマークの開発環境 // Speaker Deck</a></td>
<td>201</td>
<td>2013/11/27</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/' target='_blank'><strong>Chefのレシピは上から下に実行されるという誤解 | Engine Yard Blog JP</strong></a></td>
<td>255</td>
<td>2013/11/28</td>
</tr>
</table>
<h3>2013年12月: 「OpsCode社の社名がChefに」</h3>
<p>そして現在でもある12月。Chefが脚光を浴びたことで始まった一連の流れは改めて「Infrastructure as Code」の文脈で整理されています。これまでの流れを見てもわかるように、Chefを単体で使う事に意味があるのではなくプロビジョニングをコード化し、継続的にテストし、Immutable Infrastructureのような運用性を実現する事が肝要です。<br />
直接話題になる事はすくなった部分もありますがクックブックを継続的にテストする事やワークフローの改善が今後も浸透していくのではないでしょうか。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/12/01/221729' target='_blank'>Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - delirious thoughts</a></td>
<td>172</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/KojiHasebe/2-v2-28915618' target='_blank'>プライベートクラウド作ってみました</a></td>
<td>278</td>
<td>2013/12/05</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/chefopscodechef.html' target='_blank'><strong>Chef開発元のOpscode、社名をChefに変更。「検索が難しくなる」とあちこちで悲鳴が － Publickey</strong></a></td>
<td>105</td>
<td>2013/12/11</td>
</tr>
<tr>
<td><a href='http://wadap.hatenablog.com/entry/2013/12/15/155024' target='_blank'>さくらVPSを使って便利な開発環境を構築する - UNIX的なアレ</a></td>
<td>525</td>
<td>2013/12/15</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20131215/1387090668' target='_blank'><strong>Infrastructure as Code - naoyaのはてなダイアリー</strong></a></td>
<td>462</td>
<td>2013/12/15</td>
</tr>
</table>
<h3>おまけ：Chefに関する情報源</h3>
<p>短期的に話題になった情報ではないですが、特に下記のコンテンツは量も豊富かつ正確なので参照するとよいでしょう。</p>
<ul>
<li>Rubyist Magazine - Chef でサーバ管理を楽チンにしよう！ (第 1 回)<br />
<a href="http://magazine.rubyist.net/?0035-ChefInDECOLOG" target="_blank">http://magazine.rubyist.net/?0035-ChefInDECOLOG</a></li>
<li>Opscode Open Source Wiki(情報が古いが日本語の情報)<br />
<a href="https://wiki.opscode.com/pages/viewpage.action?pageId=24019581" target="_blank">https://wiki.opscode.com/pages/viewpage.action?pageId=24019581</a></li>
<li>Chefについてのドキュメント(英語)<br />
<a href="http://docs.opscode.com/" target="_blank">http://docs.opscode.com/</a></li>
<li>Resources and Providers Reference — Chef<br />
<a href="http://docs.opscode.com/chef/resources.html" target="_blank">http://docs.opscode.com/chef/resources.html</a></li>
<li>Recipe DSL — Chef<br />
<a href="http://docs.opscode.com/chef/dsl_recipe.html" target="_blank">http://docs.opscode.com/chef/dsl_recipe.html</a></li>
<li>Esseintials nodes chef run<br />
<a href="http://docs.opscode.com/essentials_nodes_chef_run.html" target="_blank">http://docs.opscode.com/essentials_nodes_chef_run.html</a></li>
</ul>
<h3>動画で振り返る「Chef ゆく年くる年」</h3>
<p><iframe width="853" height="480" src="//www.youtube.com/embed/zuw2kwZOAjA" frameborder="0" allowfullscreen></iframe></p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-chef/">2013年Chefの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/iStock_000020118226XSmall.jpg" alt="iStock_000020118226XSmall" width="425" height="282" class="alignnone size-full wp-image-2117" /><br />
早いもので2013年もまもなく終わります。特にChefについては今年は大きな飛躍の1年になりました。Chefについては話題の流れも多く、自身としても何があったのかを即座には思い出せません。今回はすでにChefを使っている人の話題の復習や、Chefをまだキャッチアップしていない人が今からでも間に合う情報収集としてまとめてみます。</p>
<p>はてなブックマーク上でも2013年の記事でChefタグが付けられた3ブックマーク以上の記事が<strong>800エントリを超え、ブックマークの回数は3万2千回を超えるというとてつもない状況です</strong>。今回はその中でも100ブックマーク以上が付いた記事の中から特に注目が集まった話題を時系列で振り返ります。</p>
<h3>2013年1月:「兆し」</h3>
<p>2013年早々にChefの大躍進の契機になるエントリが@naoya_itoさんのブログに投稿されます。「開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決」と題されたエントリでchef-soloを使ってEC2のスナップショットに新しいIPアドレスを反映するというような流れが紹介されています。今の時点ので考えるとこれはプロビジョニングというよりもオーケストレーションのような部分に近く、ソフトウェアのインストールなどではなく動作環境に適切な情報を埋め込む為の利用用途になっています。</p>
<p>ただすでにこの時点でツールチェインとしてレシピに対するテストを実行する事が示唆されています。</p>
<blockquote>
<ul>
<li> ローカルでレシピ (chef) をがりがり書く</li>
<li> chef レシピの lint <a href="http://acrmp.github.com/foodcritic/">foodcritic</a> でチェック</li>
<li> git commit して github に push</li>
<li> chef-solo を Cinnamon を使って、リモートで実行</li>
<li> リモートでは git fetch で最新のレシピを取ってきて、chef-solo が実行される</li>
</ul>
</blockquote>
<p>foodcriticは実際にクックブックを動作させるのではなく、シンタックスベースでのテストを行いますがすでにテストの必要性が提起されています。またこのエントリ内でも言及されていますが、@sawanobolyさんによる「Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理」と題されたエントリが公開されておりサーバーの構成を継続的にテストする手法が提示されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.riywo.com/2013/01/07/040947' target='_blank'>MyrokuというHerokuっぽいものを実装してみた - As a Futurist...</a></td>
<td>158</td>
<td>2013/01/07</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/01/chef-cookbook-tips.html' target='_blank'>ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - powered by HEARTBEATS</a></td>
<td>186</td>
<td>2013/01/23</td>
</tr>
<tr>
<td><a href='http://qiita.com/sawanoboly/items/48fe830d2ee3b6c87bf5' target='_blank'><strong>Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理 #infrastructure #Cucumber #Ruby #chef #chefspec - Qiita</strong></a></td>
<td>120</td>
<td>2013/01/27</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130131/1359614077' target='_blank'><strong>開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決 - naoyaのはてなダイアリー</strong></a></td>
<td>139</td>
<td>2013/01/31</td>
</tr>
</table>
<h3>2013年2月:「勉強会、AWS OpsWorksの発表」</h3>
<p><a href="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/02/859294_277535169044078_1639743555_o.jpg"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/02/859294_277535169044078_1639743555_o-1024x768.jpg" alt="859294_277535169044078_1639743555_o" width="1024" height="768" class="alignnone size-large wp-image-603" /></a></p>
<p>2月はEngine Yardで開催した「初めてのChefの教室」でのコンテンツなどに注目が集まり、方法論の交流が活発になりました。またFacebookでの大規模な採用事例やその知見を反映したChef11が公開されました。<br />
Chefとセットで使われる事の多いツール、Vagrantが@naoya_itoさんのブログで紹介され事実上Chefを使う際の必須ツールになったのも2月の出来事でした。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130204/1359971408' target='_blank'>開発メモ#5 : Amazon Linux で knife-solo を使って chef-solo 実行 - naoyaのはてなダイアリー</a></td>
<td>107</td>
<td>2013/02/04</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/facebookchefcheferlangopscode.html' target='_blank'>Facebook、データセンター自動化ツールにChefの新バージョンを全面採用、Erlangでスケーラビリティ拡大。OpsCodeが発表 － Publickey</a></td>
<td>167</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130205/1360062070' target='_blank'><strong>Vagrant - naoyaのはてなダイアリー</strong></a></td>
<td>962</td>
<td>2013/02/05</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130205/1360088927' target='_blank'>LTSVフォーマットなログを fluentd + GrowthForecast で料理 - naoyaのはてなダイアリー</a></td>
<td>266</td>
<td>2013/02/06</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130207/1360240992' target='_blank'>【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリー</a></td>
<td>328</td>
<td>2013/02/07</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/mirakui/quan-zi-dong-parametatiyuningusan' target='_blank'>全自動パラメータチューニングさん // Speaker Deck</a></td>
<td>353</td>
<td>2013/02/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130219/1361262854' target='_blank'>開発メモ#6 : ログの取り扱い : GrowthForecast, Amazon S3, Treasure Data で心労ゼロ - naoyaのはてなダイアリー</a></td>
<td>244</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://aws.typepad.com/aws_japan/2013/02/aws-opsworks-flexible-application-management-in-the-cloud.html' target='_blank'>Amazon Web Services ブログ: 【AWS発表】AWS OpsWorks - Chefを使って柔軟にクラウド内のアプリケーション管理ができる新サービスを発表</a></td>
<td>332</td>
<td>2013/02/19</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/amazonaws_opsworkschef.html' target='_blank'>Amazonクラウド、デプロイの自動化ツール「AWS OpsWorks」公開。Chefのレシピ利用 － Publickey</a></td>
<td>109</td>
<td>2013/02/20</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/' target='_blank'><strong>「初めてのChefの教室」を開催しました。(動画&資料) - Engine Yard Blog JP</strong></a></td>
<td>399</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://www.akiyan.com/blog/archives/2013/02/chef-is-the-technology-in-which-study-cost-performance-is-the-highest-now.html' target='_blank'>今もっとも学習コスパの高い技術はChefだと、Chef勉強会に行って確信した - akiyan.com</a></td>
<td>599</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://dann.g.hatena.ne.jp/dann/20130225/p1' target='_blank'>ChefでMacを開発マシンとしてセットアップ - dann's blog - #</a></td>
<td>219</td>
<td>2013/02/25</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6371' target='_blank'>ChefのrecipeをJenkinsで継続的インテグレーションする方法 | Ryuzee.com</a></td>
<td>119</td>
<td>2013/02/27</td>
</tr>
</table>
<h3>2013年3月: 「入門 Chef Soloとserverspecの登場」</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/Kindle向けに『入門Chef_Solo_-_Infrastructure_as_Code』を出版しました_-_naoyaのはてなダイアリー.png" alt="Kindle向けに『入門Chef_Solo_-_Infrastructure_as_Code』を出版しました_-_naoyaのはてなダイアリー" width="821" height="356" class="alignnone size-full wp-image-2128" /></p>
<p>3月の出来事はなんといっても電子書籍「入門Chef Solo」の出版が大きいです。KDP上での出版という動きの中でもかなり早期のものでランキング上位に今でも入っています。一方で「Chefに挫折した」という層も出始めたのかFabricについての記事にも注目が集まりました。現在でも話題になっているserverspecに注目が集まったのも3月の出来事です。</p>
<p>Chefが中心の記事ではないですが「同僚の外国人プログラマ観察記録」はVagrantやBerkshelf、SublimeText2、NewRelicなどを使って楽をしていた外国人プログラマの姿が紹介されています。この時点ではある種「未来的なプログラマ像」のように描かれていたように思いますが、同じようなスタイルを取っている人は増えてきているかもしれません。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/int128/20130302/1362153651' target='_blank'>GitとJenkinsを使ってChefを運用する - GeekFactory</a></td>
<td>265</td>
<td>2013/03/02</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/YukihikoSawanobori/what-is-chef201303' target='_blank'>What is chef</a></td>
<td>257</td>
<td>2013/03/04</td>
</tr>
<tr>
<td><a href='http://tk0miya.hatenablog.com/entry/2013/03/07/121438' target='_blank'>開発サーバに chef を入れるときの 11個の方法 - Hack like a rolling stone</a></td>
<td>233</td>
<td>2013/03/07</td>
</tr>
<tr>
<td><a href='http://hozumi.github.com/2013/03/chef-fabric-ja.html' target='_blank'><strong>Chefに挫折したあなたへ。Fabricのすすめ</strong></a></td>
<td>232</td>
<td>2013/03/11</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130313/1363129532' target='_blank'><strong>Kindle向けに『入門Chef Solo - Infrastructure as Code』を出版しました - naoyaのはてなダイアリー</strong></a></td>
<td>347</td>
<td>2013/03/13</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130315/1363340698' target='_blank'>Vagrant 1.1 で EC2 を vagrant up - naoyaのはてなダイアリー</a></td>
<td>195</td>
<td>2013/03/15</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130317/1363485034' target='_blank'>手動でサーバの設定をすることを禁ずる。入門Chef Solo - プログラマになりたい</a></td>
<td>213</td>
<td>2013/03/17</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/masudaK/20130320/1363794789' target='_blank'>Chefのテストスイーツを色々試してみた （1） - カイワレの大冒険</a></td>
<td>145</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://banyan.github.com/2013/03/21/1/' target='_blank'>社内で Chef 勉強会をして色々教えてもらった - banyan.github.com</a></td>
<td>120</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130321/1363838408' target='_blank'>宮川さんPodcast ep6、KDP での本の作り方 - naoyaのはてなダイアリー</a></td>
<td>142</td>
<td>2013/03/21</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/03/vagrant.html' target='_blank'>こりゃ便利！Vagrant で自分の PC に「作って、壊して、元に戻せる」サーバを作る - Shin x blog</a></td>
<td>577</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://tatsu-zine.com/books/chef-solo' target='_blank'>入門Chef Solo - Infrastructure as Code - 達人出版会</a></td>
<td>191</td>
<td>2013/03/22</td>
</tr>
<tr>
<td><a href='http://tsuchikazu.net/chef_solo_start/' target='_blank'>Chef Soloの正しい始め方 | tsuchikazu blog</a></td>
<td>158</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://rinu.hatenablog.com/entry/2013/03/17/164151' target='_blank'><strong>同僚の外国人プログラマ観察記録 - rinu's blog</strong></a></td>
<td>1766</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/03/23/1/' target='_blank'>Puppet や Chef で構築したサーバを RSpec でテストする - Gosuke Miyashita</a></td>
<td>169</td>
<td>2013/03/23</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/03/24/3/' target='_blank'>構築済みサーバを RSpec でテストする serverspec という gem をつくった - Gosuke Miyashita</a></td>
<td>210</td>
<td>2013/03/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/ntaku/20130324/1364132658' target='_blank'>入門Chef-Soloを片手にRailsアプリを動作させるところまでやってみた - プログラミングノート</a></td>
<td>119</td>
<td>2013/03/24</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/03/chef-recipe-and-lib.html' target='_blank'>「写経」から始めるChefクックブックの作成 - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>284</td>
<td>2013/03/27</td>
</tr>
<tr>
<td><a href='http://serverspec.org/' target='_blank'><strong>serverspec - home</strong></a></td>
<td>139</td>
<td>2013/03/30</td>
</tr>
</table>
<h3>2013年4月: 「研修での採用事例とAnsible」</h3>
<p>4月ということで研修の一環としてChefなどを使う事例が紹介されるようになります。サーバーの設定作業をChefなどを使って行うのが当たり前というエンジニアが続々と誕生していったという事でこれは後に繋がりそうです。またChefに馴染みにくかった方の中でAnsibleやFabricなどの同種のツールの活用も紹介されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130404/1365048462' target='_blank'>運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた - プログラマになりたい</a></td>
<td>135</td>
<td>2013/04/04</td>
</tr>
<tr>
<td><a href='https://gist.github.com/hsbt/5316074' target='_blank'><strong>2013 年の新卒研修メニュー - gist:5316074</strong></a></td>
<td>108</td>
<td>2013/04/05</td>
</tr>
<tr>
<td><a href='http://apatheia.info/blog/2013/04/06/about-ansible/' target='_blank'><strong>構成管理ツール Ansible について - apatheia.info</strong></a></td>
<td>254</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130407/1365330503' target='_blank'>何故、fluentdなのか？ - プログラマになりたい</a></td>
<td>220</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/thinkAmi/20130407/1365310673' target='_blank'>Windows7上で Vagrant + Chef solo + knife-soloを使い、Ubuntu + ubuntu-desktopの環境を構築してみた - メモ的な思考的な</a></td>
<td>145</td>
<td>2013/04/07</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/shiumachi/20130414/1365920515' target='_blank'>今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮</a></td>
<td>360</td>
<td>2013/04/14</td>
</tr>
<tr>
<td><a href='http://tech.kayac.com/archive/2013training.html' target='_blank'><strong>2013年の新卒研修と社内ISUCONやりました - (1) 研修編 | tech.kayac.com - KAYAC engineers' blog</strong></a></td>
<td>246</td>
<td>2013/04/22</td>
</tr>
<tr>
<td><a href='http://steps.dodgson.org/b/2013/04/24/recent-happenings-on-elders/' target='_blank'>最近のおっさんたち - steps to phantasien</a></td>
<td>291</td>
<td>2013/04/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/dkfj/20130425/1366852899' target='_blank'>サーバ構築・デプロイの自動化の話。或いはChefとCapistranoの素敵な関係 - プログラマになりたい</a></td>
<td>111</td>
<td>2013/04/25</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/04/30/225404' target='_blank'>『入門Puppet - Automate Your Infrastructure』という電子書籍を出版しました - delirious thoughts</a></td>
<td>182</td>
<td>2013/04/30</td>
</tr>
</table>
<h3>2013年5月: 「serverspecを使ったCIが定着」</h3>
<p>5月の時点ではこれまでに話題になってきた技術の組み合わせが普及する時期だったようです。さまざまな場面でserverspecとChefを組み合わせた事例が紹介されており、ChefSpecなどを使ってテストを行うという人よりもserverspecから始める人が主流になっていったようです。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://takatoshimaeda.github.io/blog/2013/05/07/create-server-30-minutes/' target='_blank'>[Chef][serverspec]ChefSoloを使ってnginx+mysql+rubyサーバー(VPS)を30分で作る - takatoshi blog</a></td>
<td>129</td>
<td>2013/05/07</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/naoya/ru-men-chef-sololuo-tisui-shi-i' target='_blank'>入門Chef Solo落ち穂拾い // Speaker Deck</a></td>
<td>188</td>
<td>2013/05/10</td>
</tr>
<tr>
<td><a href='http://blog.inouetakuya.info/entry/20130511/1368271417' target='_blank'><strong>Chef と Puppet の勉強会というよりも、むしろ時代は serverspec だった #pfcasual - 彼女からは、おいちゃんと呼ばれています</strong></a></td>
<td>314</td>
<td>2013/05/11</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/news/lesson8-done/' target='_blank'>【勉強会】AWS管理を自動化する奥義を開催しました！ ｜ Developers.IO</a></td>
<td>116</td>
<td>2013/05/16</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130520/1369054828' target='_blank'><strong>Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー</strong></a></td>
<td>427</td>
<td>2013/05/20</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130521/1369102714' target='_blank'>Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー</a></td>
<td>174</td>
<td>2013/05/21</td>
</tr>
<tr>
<td><a href='http://tk0miya.hatenablog.com/entry/2013/05/24/153325' target='_blank'>chef で mysql のユーザやデータベースを管理する - Hack like a rolling stone</a></td>
<td>127</td>
<td>2013/05/24</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/rx7/20130526/p1' target='_blank'>Chef 11 での client/server/knife のセットアップ手順(+α) - 元RX-7乗りの適当な日々</a></td>
<td>186</td>
<td>2013/05/27</td>
</tr>
<tr>
<td><a href='http://qiita.com/tumf/items/bb90e266016e0dc85c4e' target='_blank'>CentOSの要らないサービスを無効にするレシピ - Qiita [キータ]</a></td>
<td>102</td>
<td>2013/05/29</td>
</tr>
<tr>
<td><a href='http://blog.riywo.com/2013/05/29/151321' target='_blank'>「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...</a></td>
<td>256</td>
<td>2013/05/29</td>
</tr>
</table>
<h3>2013年6月:「VPSでの事例とDocker」</h3>
<p>引き続き利用が拡大し、AWSやVirtualBox以外の環境での利用例が話題になっています。また最近の話題をさらっているDockerが@naoya_itoさんによって紹介されています。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.slideshare.net/cloned/php-kansai2013-lt' target='_blank'>一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~</a></td>
<td>102</td>
<td>2013/06/02</td>
</tr>
<tr>
<td><a href='http://orangain.hatenablog.com/entry/multi-node-serves-using-lxc-on-sakura-vps' target='_blank'>さくらVPSでLXCを使って安価に複数台構成を実現する - orangain flavor</a></td>
<td>437</td>
<td>2013/06/06</td>
</tr>
<tr>
<td><a href='http://heartbeats.jp/hbblog/2013/06/use-ohai.html' target='_blank'>ohaiを使ってサーバの情報をプログラムで扱おう - インフラエンジニアway - Powered by HEARTBEATS</a></td>
<td>122</td>
<td>2013/06/11</td>
</tr>
<tr>
<td><a href='http://qiita.com/tumf@github/items/918ef218eeade512012c' target='_blank'>Ruby - 遺伝的アルゴリズム(GA)によるサーバの自動チューニング - Qiita [キータ]</a></td>
<td>165</td>
<td>2013/06/18</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20130620/1371729625' target='_blank'><strong>Docker (土曜日に podcast します) - naoyaのはてなダイアリー</strong></a></td>
<td>105</td>
<td>2013/06/20</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/AmazonWebServicesJapan/20130506-23096544' target='_blank'>AWS上でのWebアプリケーションデプロイ</a></td>
<td>353</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/tnmt/puppet-and-chef' target='_blank'>Puppet & Chef // Speaker Deck</a></td>
<td>140</td>
<td>2013/06/21</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/mizzy/serverspec-hbstudy45' target='_blank'>Serverspec at hbstudy #45</a></td>
<td>137</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6690' target='_blank'>ChefのCookbookのベストプラクティス | Ryuzee.com</a></td>
<td>108</td>
<td>2013/06/22</td>
</tr>
<tr>
<td><a href='http://www.creationline.com/lab/3080' target='_blank'>[和訳] 初心者Chefアンチパターン by Julian Dunn #opschef_ja « CREATIONLINE, INC.</a></td>
<td>166</td>
<td>2013/06/25</td>
</tr>
</table>
<hr/>
Engine Yard CloudはAWSやWindows Azureなどのクラウド環境をChefで構築するPaaSです。有人運用などをサポートで提供しています。<br />
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<hr/>
<h3>2013年7月: 「メディアへの露出」</h3>
<p><a href="http://www.flickr.com/photos/yandod/9302868729/" title="Untitled by yandod, on Flickr"><img src="http://farm4.staticflickr.com/3771/9302868729_56cd0a01ca_c.jpg" width="800" height="534" alt="Untitled"></a></p>
<p>7月にはVagrantの作者のMitchell Hashimotoさんが来日し講演した事がメディアにも掲載されました。DevOpsの流れの中でChefはツールセットの中の一部として定着し引き続き注目されています。またPHPカンファレンス関西での紹介がきっかけにPHPの開発にVagrantを使うという話題が出始めたころでもあります。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1307/02/news002.html' target='_blank'>特集　DevOps時代の必須知識：いまさら聞けない「DevOps」 (1/2) - ＠IT</a></td>
<td>160</td>
<td>2013/07/02</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1305/24/news003.html' target='_blank'>特集　DevOps時代の必須知識：インフラストラクチャ自動化フレームワーク「Chef」の基本 (1/2) - ＠IT</a></td>
<td>329</td>
<td>2013/07/03</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/tool/vagrant/' target='_blank'>Vagrantを使って仮想OSを簡単に作成しよう ｜ Developers.IO</a></td>
<td>104</td>
<td>2013/07/03</td>
</tr>
<tr>
<td><a href='http://www.atmarkit.co.jp/ait/articles/1306/14/news002.html' target='_blank'>特集　DevOps時代の必須知識：まとめてたくさん処理したい！ を解決する「Capistrano」 - ＠IT</a></td>
<td>200</td>
<td>2013/07/04</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/' target='_blank'><strong>「初めてのChefの教室」をアップデートしました | Engine Yard Blog JP</strong></a></td>
<td>185</td>
<td>2013/07/06</td>
</tr>
<tr>
<td><a href='http://developer.smartnews.be/blog/2013/07/08/cloud-service-management-using-chef-and-fabric/' target='_blank'>chef + fabricを用いたクラウドサービス管理 | SmartNews開発者ブログ</a></td>
<td>288</td>
<td>2013/07/08</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/vagrantvagrant_meetup_2013.html' target='_blank'><strong>「Vagrant」は仮想環境をプログラミングするツール。同一環境をどこにでも、いくつでもすぐに作成可能。Vagrant meetup 2013 － Publickey</strong></a></td>
<td>402</td>
<td>2013/07/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php' target='_blank'><strong>もう XAMPP / MAMP はいらない！Vagrant で作る PHP 開発環境</strong></a></td>
<td>733</td>
<td>2013/07/18</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/naoya/devopsfalsejin-tokorekara-number-init-devops' target='_blank'>DevOpsの今とこれから #init_devops // Speaker Deck</a></td>
<td>280</td>
<td>2013/07/19</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yandod/chu-metefalsecheffalsejiao-shi-v1-dot-2-chef11dui-ying-ban' target='_blank'>初めてのChefの教室 (v1.2 Chef11対応版) // Speaker Deck</a></td>
<td>186</td>
<td>2013/07/20</td>
</tr>
<tr>
<td><a href='http://tily.hatenablog.com/entry/2013/07/21/150404' target='_blank'>Chef のレシピから serverspec のテストを自動生成する chef-serverspec-handler という gem を作ってみた - DevOps について書くブログ</a></td>
<td>143</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://k1low.hatenablog.com/entry/2013/07/22/185615' target='_blank'>さくらVPSセットアップ用のシェルスクリプトを今話題の「Ansible」で書き直してみた - Copy/Cut/Paste/Hatena</a></td>
<td>262</td>
<td>2013/07/22</td>
</tr>
<tr>
<td><a href='http://www.ryuzee.com/contents/blog/6729' target='_blank'>[資料公開]Vagrant (+Amazon EC2) #init_devops | Ryuzee.com</a></td>
<td>101</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/csouls/inhuratimuwochi-tanaihui-she-defalseinhurayun-yong' target='_blank'>インフラチームを持たない会社でのインフラ運用 // Speaker Deck</a></td>
<td>304</td>
<td>2013/07/23</td>
</tr>
<tr>
<td><a href='http://www.ideaxidea.com/archives/2013/07/basic_chef.html' target='_blank'>『Chef入門 (全14回)』をドットインストールに追加しました #dotinstall | IDEA*IDEA</a></td>
<td>137</td>
<td>2013/07/24</td>
</tr>
<tr>
<td><a href='http://yteraoka.github.io/ansible-tutorial/' target='_blank'>Ansible Tutorial</a></td>
<td>138</td>
<td>2013/07/25</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/cloud/aws/aws-jenkins-run-ec2-and-chef-cooking/' target='_blank'>【AWS】JenkinsとserverspecでChefのテストを自動化する ｜ Developers.IO</a></td>
<td>241</td>
<td>2013/07/30</td>
</tr>
</table>
<h3>2013年8月: 「Immutable Infrastracture」</h3>
<p>8月は引き続き活用の事例が話題になっています。特に印象的なのは現在のバズワードである「Immutable Infrastracture」についてのエントリが話題になっていた点です。f440さんのこの記事の書き出しの部分は簡潔にImmutable Infrastractureとはなにか、どのような経緯で話題に上がったかを述べています。</p>
<blockquote><p>
Immutable Server や Immutable Infrastracture っていう単語がいろんなところで目に入るようになった。とくに Chad Fowler がブログで取り上げたり、Food Fight に出たり して、世間でも関心が高まった感じがある。</p>
<p>プログラムを書く人にはご存じの通り、この Immutable っていうのは状態が変更出来ないことを指している。Immutable な Infrastracture っていうのは、ざっくり言うと「運用中のサーバーに変更を加えない」っていうアプローチでサーバーを管理しているスタイルのこと。
</p></blockquote>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.physalis.net/2013/08/09/java-webapp-dev-environment-with-vagrant.html' target='_blank'>Vagrant + Chef で Java Web アプリケーション開発環境を作る - Secret Staircase</a></td>
<td>117</td>
<td>2013/08/09</td>
</tr>
<tr>
<td><a href='http://apatheia.info/blog/2013/08/10/immutable-infrastructure/' target='_blank'><strong>Immutable Infrastracture について - apatheia.info</strong></a></td>
<td>189</td>
<td>2013/08/11</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar311555' target='_blank'>Chef Soloと Knife Soloでの　ニコニコサーバー構築 (1):dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>120</td>
<td>2013/08/12</td>
</tr>
<tr>
<td><a href='http://yuuki.hatenablog.com/entry/2013/08/13/220330' target='_blank'>Chefがつらい人のためのAnsibleのはなし - ゆううきブログ</a></td>
<td>337</td>
<td>2013/08/13</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar322283' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (2) 〜導入編〜:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>278</td>
<td>2013/08/22</td>
</tr>
<tr>
<td><a href='http://knowledge.sakura.ad.jp/tech/867/' target='_blank'>サーバー設定ツール「Chef」の概要と基礎的な使い方 - さくらのナレッジ</a></td>
<td>448</td>
<td>2013/08/26</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar325738' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (3) 〜実行編〜:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>123</td>
<td>2013/08/26</td>
</tr>
</table>
<h3>2013年9月: 「アプリケーションエンジニアへのVagrantの普及」</h3>
<p>9月は新しい話題というよりも対象者がChefを使う必要のあるインフラ寄りのエンジニアではなく実際にアプリケーションの開発をするためにVagrantを使うというナレッジが数多く出てきています。アプリケーション開発に実際にVagrantを使い始めたのがこの辺りの時期だった方は結構居るのではないでしょうか。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://hnakamur.github.io/blog/2013/09/01/tried-chef-ansible-fabric/' target='_blank'>Chef-soloとAnsibleとFabricを試した感想 - hnakamur's blog at github</a></td>
<td>148</td>
<td>2013/09/02</td>
</tr>
<tr>
<td><a href='http://ch.nicovideo.jp/dwango-engineer/blomaga/ar334285' target='_blank'>Chef Soloと Knife Soloでの ニコニコサーバー構築 (4) ～コツ編～:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活</a></td>
<td>153</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/server-side/chef-vagrant-ruby/' target='_blank'>Chef、Vagrantに興味があるけどRubyをやったことない技術者が最低限知っておいた方がいい知識　まとめ ｜ Developers.IO</a></td>
<td>293</td>
<td>2013/09/04</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/marcyterui/aws-2' target='_blank'>小規模SI案件で、 AWS + Chefを使ってみて</a></td>
<td>193</td>
<td>2013/09/11</td>
</tr>
<tr>
<td><a href='http://shibayu36.hatenablog.com/entry/2013/09/14/192829' target='_blank'>AWS, chef, Cinnamon等を使った無停止デプロイ(PrePAN carton 1.0化の裏側) - $shibayu36->blog;</a></td>
<td>101</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/09/14/205810' target='_blank'>「PHPアプリケーションの継続的バージョンアップ」という題でPHPカンファレンス2013でトークしてきた #phpcon2013 - delirious thoughts</a></td>
<td>175</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/tool/jenkins/jenkins-refactoring-jobs/' target='_blank'>Jenkinsの使い勝手をよくするための見直し6点 ｜ Developers.IO</a></td>
<td>163</td>
<td>2013/09/14</td>
</tr>
<tr>
<td><a href='http://qiita.com/taiki45/items/b46a2f32248720ec2bae' target='_blank'>Ruby - 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]</a></td>
<td>394</td>
<td>2013/09/15</td>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/09/php-enviroment-with-vagrant.html' target='_blank'>Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた - Shin x blog</a></td>
<td>223</td>
<td>2013/09/17</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/yuukit/hatenafalsesabaguan-li-turufalsehua' target='_blank'>はてなのサーバ管理ツールの話 // Speaker Deck</a></td>
<td>251</td>
<td>2013/09/21</td>
</tr>
<tr>
<td><a href='http://dev.classmethod.jp/referencecat/aws-special/' target='_blank'>AWS 振り返り特集 ｜ Developers.IO</a></td>
<td>330</td>
<td>2013/09/26</td>
</tr>
<tr>
<td><a href='http://tmtk75.github.io/2013/09/28/docker-jenkins-serverspec-puppet.ja.html' target='_blank'>Docker + Jenkins + serverspecでpuppetのmanifestをCIする</a></td>
<td>152</td>
<td>2013/09/29</td>
</tr>
</table>
<h3>2013年10月: 「メディアで報じられる普及」</h3>
<p>10月に話題になっていた記事にはメディアの記事が2つ含まれています。センセーショナルな見出しだった事もあって多くの方の目を引いたのではないでしょうか。記事には具体的に日本の企業がChefを導入して活用しようとしている事が報じられています。</p>
<blockquote><p>
サイバーエージェントで消費者向けWebサービスを手がけるアメーバ事業本部では、現時点で20人いるOS/ミドルウエアの運用担当者を、2年後の2015年までにゼロにする計画だ。</p>
<p>　彼らは現在、OS/ミドルウエアをサーバーにインストールしたり、パッチを適用したり、アプリケーションの負荷に応じてサーバー台数を増減したりする業務を行っている。これらの業務を、オープンソースソフトウエアの運用管理ツール「Chef」を導入することで、自動化する計画だ。
</p></blockquote>
<blockquote><p>
要注目のツールとして浮かび上がったのが、「Redmine」「Jenkins」「Chef」という三つのオープンソースソフトである。<br />
日経SYSTEMSはこれらを、IT現場の「新3種の神器」と定める。いずれも本格的な普及はこれからという段階だ。しかし、統合開発環境（ビルドツールを含む）やソースコード管理ツールが今どのIT現場でも使われているのと同じように、Redmine、Jenkins、Chefも数年の間に必須のツールとなると予測する。
</p></blockquote>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.1x1.jp/blog/2013/10/vagrant-lapp-sample.html' target='_blank'>PHP開発環境のサンプルVagrantfile - Shin x blog</a></td>
<td>266</td>
<td>2013/10/09</td>
</tr>
<tr>
<td><a href='http://itpro.nikkeibp.co.jp/article/COLUMN/20131002/508384/' target='_blank'><strong>さあ、運用を変えよう - 運用担当者、激減中：ITpro</strong></a></td>
<td>298</td>
<td>2013/10/15</td>
</tr>
<tr>
<td><a href='http://firegoby.jp/archives/5141' target='_blank'>WordPressのプラグインやテーマ、ウェブサイトの開発に超便利なVagrantつくりました。 | firegoby</a></td>
<td>372</td>
<td>2013/10/16</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/pfi/pfi-20130919-linux' target='_blank'>PFIセミナー 2013/09/19 「Linux開発環境の自動構築」</a></td>
<td>199</td>
<td>2013/10/19</td>
</tr>
<tr>
<td><a href='http://itpro.nikkeibp.co.jp/article/COLUMN/20131017/511814/' target='_blank'><strong>調査で分かった！ITの現場「新3種の神器」 - 新3種の神器を導入しよう：ITpro</strong></a></td>
<td>124</td>
<td>2013/10/28</td>
</tr>
<tr>
<td><a href='http://mizzy.org/blog/2013/10/29/1/' target='_blank'>インフラ系技術の流れ - Gosuke Miyashita</a></td>
<td>1036</td>
<td>2013/10/29</td>
</tr>
</table>
<h3>2013年11月: 「加速するImmutable Infrastructure」</h3>
<p>11月になると明確にImmutable Infrastructureへの言及が増加します。これによりChefの役割は実際のインスタンスの設定ではなく、Dockerなどのベースを作る為のプロビジョニングツールという形にスライドしていきます。また同時にオーケストレーションツールとしてのSerfにも注目が集まるようになります。<br />
とはいえChefのレシピを記述している人は引き続き多いようで、クックブックの実行サイクルについて解説した記事にアクセスを頂きました。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/vagrant-and-berkshelf/' target='_blank'>nanapi勉強会でVagrant + Berkshelfについて発表しました | Engine Yard Blog JP</a></td>
<td>108</td>
<td>2013/11/13</td>
</tr>
<tr>
<td><a href='http://orangain.hatenablog.com/entry/jenkins-docker' target='_blank'>Dockerを使ってJenkinsのジョブごとにテスト実行環境を分離する - orangain flavor</a></td>
<td>155</td>
<td>2013/11/14</td>
</tr>
<tr>
<td><a href='http://suzuken.hatenablog.jp/entry/2013/11/15/171803' target='_blank'>re:InventでのParseのDevOps話がとても良かったのでまとめておく - すずけんメモ</a></td>
<td>136</td>
<td>2013/11/15</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/mizzy/future-of-server-provisioning' target='_blank'>Future of server provisioning // Speaker Deck</a></td>
<td>145</td>
<td>2013/11/16</td>
</tr>
<tr>
<td><a href='http://dqn.sakusakutto.jp/2013/11/php51to54.html' target='_blank'>ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ - DQNEO起業日記</a></td>
<td>568</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='http://codezine.jp/article/detail/7484' target='_blank'>構成管理ツール「Chef」の概要とインストール手順 （1/4）：CodeZine</a></td>
<td>464</td>
<td>2013/11/18</td>
</tr>
<tr>
<td><a href='http://blog.mirakui.com/entry/2013/11/21/reinvent-immutable-infrastructure' target='_blank'>AWS re:Invent と Immutable Infrastructure - 昼メシ物語</a></td>
<td>178</td>
<td>2013/11/21</td>
</tr>
<tr>
<td><a href='http://togetter.com/li/594684' target='_blank'>Immutable Infrastructure の有用性 - Togetter</a></td>
<td>144</td>
<td>2013/11/25</td>
</tr>
<tr>
<td><a href='http://blog.glidenote.com/blog/2013/11/26/sensu/' target='_blank'>監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note - グライドノート</a></td>
<td>548</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='http://blog.mirakui.com/entry/2013/11/26/231658' target='_blank'>今さら聞けない Immutable Infrastructure - 昼メシ物語</a></td>
<td>514</td>
<td>2013/11/26</td>
</tr>
<tr>
<td><a href='https://speakerdeck.com/aereal/vagrant-to-chef-detukuruhatenabutukumakufalsekai-fa-huan-jing' target='_blank'>Vagrant と Chef でつくるはてなブックマークの開発環境 // Speaker Deck</a></td>
<td>201</td>
<td>2013/11/27</td>
</tr>
<tr>
<td><a href='http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/' target='_blank'><strong>Chefのレシピは上から下に実行されるという誤解 | Engine Yard Blog JP</strong></a></td>
<td>255</td>
<td>2013/11/28</td>
</tr>
</table>
<h3>2013年12月: 「OpsCode社の社名がChefに」</h3>
<p>そして現在でもある12月。Chefが脚光を浴びたことで始まった一連の流れは改めて「Infrastructure as Code」の文脈で整理されています。これまでの流れを見てもわかるように、Chefを単体で使う事に意味があるのではなくプロビジョニングをコード化し、継続的にテストし、Immutable Infrastructureのような運用性を実現する事が肝要です。<br />
直接話題になる事はすくなった部分もありますがクックブックを継続的にテストする事やワークフローの改善が今後も浸透していくのではないでしょうか。</p>
<table>
<tr>
<th>記事</th>
<th>users数</th>
<th>登録日</th>
</tr>
<tr>
<td><a href='http://blog.kentarok.org/entry/2013/12/01/221729' target='_blank'>Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - delirious thoughts</a></td>
<td>172</td>
<td>2013/12/01</td>
</tr>
<tr>
<td><a href='http://www.slideshare.net/KojiHasebe/2-v2-28915618' target='_blank'>プライベートクラウド作ってみました</a></td>
<td>278</td>
<td>2013/12/05</td>
</tr>
<tr>
<td><a href='http://www.publickey1.jp/blog/13/chefopscodechef.html' target='_blank'><strong>Chef開発元のOpscode、社名をChefに変更。「検索が難しくなる」とあちこちで悲鳴が － Publickey</strong></a></td>
<td>105</td>
<td>2013/12/11</td>
</tr>
<tr>
<td><a href='http://wadap.hatenablog.com/entry/2013/12/15/155024' target='_blank'>さくらVPSを使って便利な開発環境を構築する - UNIX的なアレ</a></td>
<td>525</td>
<td>2013/12/15</td>
</tr>
<tr>
<td><a href='http://d.hatena.ne.jp/naoya/20131215/1387090668' target='_blank'><strong>Infrastructure as Code - naoyaのはてなダイアリー</strong></a></td>
<td>462</td>
<td>2013/12/15</td>
</tr>
</table>
<h3>おまけ：Chefに関する情報源</h3>
<p>短期的に話題になった情報ではないですが、特に下記のコンテンツは量も豊富かつ正確なので参照するとよいでしょう。</p>
<ul>
<li>Rubyist Magazine - Chef でサーバ管理を楽チンにしよう！ (第 1 回)<br />
<a href="http://magazine.rubyist.net/?0035-ChefInDECOLOG" target="_blank">http://magazine.rubyist.net/?0035-ChefInDECOLOG</a></li>
<li>Opscode Open Source Wiki(情報が古いが日本語の情報)<br />
<a href="https://wiki.opscode.com/pages/viewpage.action?pageId=24019581" target="_blank">https://wiki.opscode.com/pages/viewpage.action?pageId=24019581</a></li>
<li>Chefについてのドキュメント(英語)<br />
<a href="http://docs.opscode.com/" target="_blank">http://docs.opscode.com/</a></li>
<li>Resources and Providers Reference — Chef<br />
<a href="http://docs.opscode.com/chef/resources.html" target="_blank">http://docs.opscode.com/chef/resources.html</a></li>
<li>Recipe DSL — Chef<br />
<a href="http://docs.opscode.com/chef/dsl_recipe.html" target="_blank">http://docs.opscode.com/chef/dsl_recipe.html</a></li>
<li>Esseintials nodes chef run<br />
<a href="http://docs.opscode.com/essentials_nodes_chef_run.html" target="_blank">http://docs.opscode.com/essentials_nodes_chef_run.html</a></li>
</ul>
<h3>動画で振り返る「Chef ゆく年くる年」</h3>
<p><iframe width="853" height="480" src="//www.youtube.com/embed/zuw2kwZOAjA" frameborder="0" allowfullscreen></iframe></p>
<hr/>
<a href="http://ey.io/noyakshave"><img src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png"></a></p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/year-of-chef/">2013年Chefの話題を一挙に振り返るまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/year-of-chef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Relic on Engine Yard Cloud</title>
		<link>http://www.engineyard.co.jp/blog/2013/new-relic-on-engine-yard-cloud/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/new-relic-on-engine-yard-cloud/#comments</comments>
		<pubDate>Mon, 16 Dec 2013 06:32:36 +0000</pubDate>
		<dc:creator><![CDATA[吉田 浩士]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2083</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/10586982624_6f0b906a6c_h-1024x682.jpg" alt="10586982624_6f0b906a6c_h" width="1024" height="682" class="alignnone size-large wp-image-2101" /></p>
<div class="note">
<a href="http://www.esm.co.jp/index.html" target="_blank">株式会社 永和システムマネジメント</a>はEngine Yardのデベロップメント パートナーであり、さまざまな案件でEngine Yard Cloudをお使い頂いています。今回は実際にEngine Yard Cloudを使う際に必要になったNew Relicのカスタマイズの方法について、永和システムマネジメントの吉田 浩士様にゲストブロガーとして寄稿して頂きました。
</div>
<p>私は<a href="http://www.engineyard.co.jp/products/cloud">Engine Yard Cloud</a>上で稼働しているRailsアプリケーション上でパフォーマンス監視のために<a href="http://newrelic.com/">New Relic</a>を使っています。<br />
Engine Yard Cloudではアドオンとして様々な外部サービスを簡単に使用することができます。New Relicもその一つです。 本記事ではNew Relicを使う上での「メトリクスのカスタマイズ」と「デプロイの記録」という2つのTipsを紹介したいと思います。</p>
<h2>メトリクスのカスタマイズ</h3>
<p>New Relic は標準で以下のようにレスポンスにかかった時間の内訳を表示します。<br />
それはController、View、Databaseといったメトリクスという単位で分かれています。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1704945/7cd3adc4-60d4-11e3-86ee-8ae3bad67921.png" alt="default_result" /></p>
<p>標準の結果では不十分だった場合に、NewRelicではControllerやViewにまとめて計測されている結果をより細かくカスタマイズする手段を提供しています。</p>
<h3>Gem を使用する</h3>
<p>いくつかのライブラリ向けにはすでに Gem が提供されていて、Gemfileに追加するだけで計測することができます。それがRedisだった場合、<a href="https://github.com/evanphx/newrelic-redis">newrelic-redis</a> を使うことで実現ができます。</p>
<pre lang="ruby">
gem 'newrelic-redis'
</pre>
<p>実際にRedisとのやりとりにかかる時間を独立したメトリクスとして計測することができます。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1704944/7cd2b54a-60d4-11e3-8ff0-92a390ec8d1e.png" alt="use_gem" /></p>
<p>他にも <a href="https://github.com/stevebartholomew/newrelic_moped">Mongoid</a>, <a href="https://github.com/Viximo/newrelic-faraday">Faraday</a>用の Gem があります。詳しくは、<a href="https://github.com/newrelic/extends_newrelic_rpm">こちらのリポジトリ</a>を参照してください。</p>
<h3>自分で追加する</h3>
<p>対応する Gem がないライブラリ、特定のメソッド等を計測したい場合、コードを書くことで実現できます。</p>
<p>例えば、コントローラ内で使っているメソッドを計測したい場合、以下のようなコードで実現することができます。</p>
<pre lang="ruby">
require 'new_relic/agent/method_tracer'

class SampleController < ApplicationController
  include NewRelic::Agent::MethodTracer

  def index
    do_something
  end

  private

  def do_something
    # do somthing...
  end

  add_method_tracer :do_somethiing
end
</pre>
<p><code>newrelic_rpm</code> にはメトリクスを追加するためのモジュール<code>NewRelic::Agent::MethodTracer</code>が含まれています。<br />
このモジュールに定義されている <code>add_method_tracer</code> メソッドに計測の対象にしたいメソッド名をシンボルで指定します。<br />
これにより、指定したメソッド（この例では<code>do_something</code>）が独立したメトリクスとして表示されます。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1731354/c073143a-6303-11e3-8063-8bba185a7a6f.png" alt="add_custom_metrics" /></p>
<h2>デプロイを記録する</h2>
<p>New Relic にはデプロイがどの時間に行われたか記録する仕組みがあります。これを使うと、デプロイ前後でのパフォーマンスの変化を比較しやすくなります。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1681471/696825aa-5d94-11e3-94a5-42c1b142f983.png" alt="image" /></p>
<p>Engine Yard Cloudへのデプロイから、NewRelicへ自動でデプロイを記録するのは簡単です。<br />
<code>newrelic_rpm</code>に含まれている<code>newrelic</code>コマンドとデプロイフックを組み合わせることで、自動でデプロイの記録ができます。</p>
<ul>
<li>deploy/after_restart.rb</li>
</ul>
<pre lang="ruby">
require 'shellwords'
require 'yaml'

# Shell コマンドとして実行されるためエスケープをしている
def q(str)
  Shellwords.escape(str)
end

# アドオンの設定情報を読む
services = YAML.load_file("#{config.release_path}/config/ey_services_config_deploy.yml")
key      = services['NewRelic']['license_key']

# デプロイの説明を渡せるので、最新のコミットメッセージを使っている
message = `git log -1 --pretty='%s'`.chomp

run %(echo 'notify to newrelic...')
run %(cd #{config.release_path} && bundle exec newrelic deployments -a #{config.app} -u #{q config.deployed_by} -r #{config.revision} -l #{key} #{q message})
</pre>
<p>さらに、New Relic は Webhook をサポートしていて、デプロイが記録されたタイミングで <a href="https://www.hipchat.com/">HipChat</a>、<a href="https://campfirenow.com/">Campfire</a>、<a href="https://idobata.io/">Idobata</a> といった外部のサービスに通知することができます。（<a href="https://docs.newrelic.com/docs/alert-policies/alert-channels">参考</a>）</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1692375/dbb6d60c-5e79-11e3-8d88-539119f65401.png" alt="selection_013" /></p>
<h3>まとめ</h3>
<p>本記事では私が実際に使っている2つのTipsを紹介いたしました。<br />
New Relic は手軽にパフォーマンスを監視できますが、 少し手を加えることでより自分のアプリケーションに合った結果を見ることができます。<br />
本記事で紹介した以外にも便利なAPIが用意されているので、興味があれば調べてみるといいかもしれません。</p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/new-relic-on-engine-yard-cloud/">New Relic on Engine Yard Cloud</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/10586982624_6f0b906a6c_h-1024x682.jpg" alt="10586982624_6f0b906a6c_h" width="1024" height="682" class="alignnone size-large wp-image-2101" /></p>
<div class="note">
<a href="http://www.esm.co.jp/index.html" target="_blank">株式会社 永和システムマネジメント</a>はEngine Yardのデベロップメント パートナーであり、さまざまな案件でEngine Yard Cloudをお使い頂いています。今回は実際にEngine Yard Cloudを使う際に必要になったNew Relicのカスタマイズの方法について、永和システムマネジメントの吉田 浩士様にゲストブロガーとして寄稿して頂きました。
</div>
<p>私は<a href="http://www.engineyard.co.jp/products/cloud">Engine Yard Cloud</a>上で稼働しているRailsアプリケーション上でパフォーマンス監視のために<a href="http://newrelic.com/">New Relic</a>を使っています。<br />
Engine Yard Cloudではアドオンとして様々な外部サービスを簡単に使用することができます。New Relicもその一つです。 本記事ではNew Relicを使う上での「メトリクスのカスタマイズ」と「デプロイの記録」という2つのTipsを紹介したいと思います。</p>
<h2>メトリクスのカスタマイズ</h3>
<p>New Relic は標準で以下のようにレスポンスにかかった時間の内訳を表示します。<br />
それはController、View、Databaseといったメトリクスという単位で分かれています。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1704945/7cd3adc4-60d4-11e3-86ee-8ae3bad67921.png" alt="default_result" /></p>
<p>標準の結果では不十分だった場合に、NewRelicではControllerやViewにまとめて計測されている結果をより細かくカスタマイズする手段を提供しています。</p>
<h3>Gem を使用する</h3>
<p>いくつかのライブラリ向けにはすでに Gem が提供されていて、Gemfileに追加するだけで計測することができます。それがRedisだった場合、<a href="https://github.com/evanphx/newrelic-redis">newrelic-redis</a> を使うことで実現ができます。</p>
<pre lang="ruby">
gem 'newrelic-redis'
</pre>
<p>実際にRedisとのやりとりにかかる時間を独立したメトリクスとして計測することができます。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1704944/7cd2b54a-60d4-11e3-8ff0-92a390ec8d1e.png" alt="use_gem" /></p>
<p>他にも <a href="https://github.com/stevebartholomew/newrelic_moped">Mongoid</a>, <a href="https://github.com/Viximo/newrelic-faraday">Faraday</a>用の Gem があります。詳しくは、<a href="https://github.com/newrelic/extends_newrelic_rpm">こちらのリポジトリ</a>を参照してください。</p>
<h3>自分で追加する</h3>
<p>対応する Gem がないライブラリ、特定のメソッド等を計測したい場合、コードを書くことで実現できます。</p>
<p>例えば、コントローラ内で使っているメソッドを計測したい場合、以下のようなコードで実現することができます。</p>
<pre lang="ruby">
require 'new_relic/agent/method_tracer'

class SampleController < ApplicationController
  include NewRelic::Agent::MethodTracer

  def index
    do_something
  end

  private

  def do_something
    # do somthing...
  end

  add_method_tracer :do_somethiing
end
</pre>
<p><code>newrelic_rpm</code> にはメトリクスを追加するためのモジュール<code>NewRelic::Agent::MethodTracer</code>が含まれています。<br />
このモジュールに定義されている <code>add_method_tracer</code> メソッドに計測の対象にしたいメソッド名をシンボルで指定します。<br />
これにより、指定したメソッド（この例では<code>do_something</code>）が独立したメトリクスとして表示されます。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1731354/c073143a-6303-11e3-8063-8bba185a7a6f.png" alt="add_custom_metrics" /></p>
<h2>デプロイを記録する</h2>
<p>New Relic にはデプロイがどの時間に行われたか記録する仕組みがあります。これを使うと、デプロイ前後でのパフォーマンスの変化を比較しやすくなります。</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1681471/696825aa-5d94-11e3-94a5-42c1b142f983.png" alt="image" /></p>
<p>Engine Yard Cloudへのデプロイから、NewRelicへ自動でデプロイを記録するのは簡単です。<br />
<code>newrelic_rpm</code>に含まれている<code>newrelic</code>コマンドとデプロイフックを組み合わせることで、自動でデプロイの記録ができます。</p>
<ul>
<li>deploy/after_restart.rb</li>
</ul>
<pre lang="ruby">
require 'shellwords'
require 'yaml'

# Shell コマンドとして実行されるためエスケープをしている
def q(str)
  Shellwords.escape(str)
end

# アドオンの設定情報を読む
services = YAML.load_file("#{config.release_path}/config/ey_services_config_deploy.yml")
key      = services['NewRelic']['license_key']

# デプロイの説明を渡せるので、最新のコミットメッセージを使っている
message = `git log -1 --pretty='%s'`.chomp

run %(echo 'notify to newrelic...')
run %(cd #{config.release_path} && bundle exec newrelic deployments -a #{config.app} -u #{q config.deployed_by} -r #{config.revision} -l #{key} #{q message})
</pre>
<p>さらに、New Relic は Webhook をサポートしていて、デプロイが記録されたタイミングで <a href="https://www.hipchat.com/">HipChat</a>、<a href="https://campfirenow.com/">Campfire</a>、<a href="https://idobata.io/">Idobata</a> といった外部のサービスに通知することができます。（<a href="https://docs.newrelic.com/docs/alert-policies/alert-channels">参考</a>）</p>
<p><img src="https://f.cloud.github.com/assets/1663465/1692375/dbb6d60c-5e79-11e3-8d88-539119f65401.png" alt="selection_013" /></p>
<h3>まとめ</h3>
<p>本記事では私が実際に使っている2つのTipsを紹介いたしました。<br />
New Relic は手軽にパフォーマンスを監視できますが、 少し手を加えることでより自分のアプリケーションに合った結果を見ることができます。<br />
本記事で紹介した以外にも便利なAPIが用意されているので、興味があれば調べてみるといいかもしれません。</p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/new-relic-on-engine-yard-cloud/">New Relic on Engine Yard Cloud</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/new-relic-on-engine-yard-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AngularJS 勉強会のまとめ (動画・スライド) #ng_jp</title>
		<link>http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/#comments</comments>
		<pubDate>Wed, 04 Dec 2013 05:47:57 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2031</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06688-1024x682.jpg" alt="DSC06688" width="1024" height="682" class="alignnone size-large wp-image-2059" /><br />
AngularJSの勉強会に参加して来ました。300人の定員があっという間に満席になるという事で注目の高さが伺える勉強会でした。参加者も発表の内容もバラエティに富んでいてこれから大きな飛躍があるであろう事を期待させる盛りだくさんの内容でした。<br />
今回はEngine Yardから懇親会のスポンサードをさせて頂くと同時にPHPとAngularJSの連携のLTや動画の撮影を行ってきましたので紹介させて頂きます。</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>ng-mtg#4 AngularJS 勉強会 | 集客ならイベントアテンド</strong><br/><a href="http://atnd.org/event/E0021975/" target="_blank">http://atnd.org/event/E0021975/</a><br />
<strong>ng-mtg#4 AngularJS 勉強会 #ng_jp - Togetterまとめ</strong><br/><a href="http://togetter.com/li/598391" target="_blank">http://togetter.com/li/598391</a>
</p>
<h3>AngularJS 20min</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06699.jpg" alt="DSC06699" width="1280" height="853" class="alignnone size-full wp-image-2035" /></p>
<p>@naoya_itoさんによるAngularJSの入門講座。おなじみの軽妙語り口でAngularJSを始める際に理解するべきポイントや注意点を紹介していました。個人的に印象に残ったのは下記の点。</p>
<ul>
<li>最初のサンプルがモンハンのスキルシミュレーターｗ <a href="https://github.com/naoya/mh4sim" target="_blank">https://github.com/naoya/mh4sim</a></li>
<li>「お前らのMVCは間違ってるなんて言ってないでコード書けよ = MVW」</li>
<li>双方向バインディングでリアルタイムにHTMLを更新</li>
<li>DOM操作はしないという制約によりマークアップの変更の影響を受けない！</li>
<li>引数を勝手に変えると動かないよ(文字列的にAngularが扱うので)</li>
</ul>
<p><script async class="speakerdeck-embed" data-id="4a73f2603e5d0131084906af3ff5da10" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h3>OnsenUIについて ~Angular.js+Topcoat~</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06726-1024x682.jpg" alt="DSC06726" width="1024" height="682" class="alignnone size-large wp-image-2040" /></p>
<p>アシアルのお二人からはMonacaでも使われているOnsen UIにとても講演。Monaca自体はPhoneGapを利用したプロダクトですが、それと同様にAngularJSとTopcoatを活用して新しいコンポーネントを開発しているという意欲的な事例です。<br />
OnsenUIについては公式サイトのドキュメント内で実際のデモを見ることもできます。<br />
Reveal.jsを使ったスライドはスライド内でも実際のアプリが動いていてインパクトがあります。下記のIFRAME内でも動いていますので試してみてください。アプリがあるスライドで下向きの三角を押すとデモが始まります。</p>
<p><a href="http://monaca.github.io/slides/2013-ng-jp/index.html#/" target="_blank">http://monaca.github.io/slides/2013-ng-jp/index.html</a><br />
<iframe src="http://monaca.github.io/slides/2013-ng-jp/index.html#/" width="100%" height="430"></iframe></p>
<p>Home | Onsen UI<br />
<a href="http://docs.monaca.mobi/onsen/ja/" target="_blank">http://docs.monaca.mobi/onsen/ja/</a></p>
<p>WebAudioを利用したデモなどはとてもパワフルで印象的でした。今後はGUIで開発できるBuilderの開発を予定しているという事でコードを触らずにAngularJSの利点が活用できるようになりそうです。</p>
<h3>AngularJS を実サービスで使ってみて</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06736-1024x682.jpg" alt="DSC06736" width="1024" height="682" class="alignnone size-large wp-image-2044" /><br />
@sakatamさんによる実案件での採用事例の紹介。GILTでユーザー側にAngularを採用した話。すぐに開発を進めるのでなく評価や学習の期間をしっかりととっていた点が注目を集めていたように思います。</p>
<p><script async class="speakerdeck-embed" data-id="8915a1603e3f0131482c4e52bac46bd2" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h3>Angularでよくある質問とその回答</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06765-1024x682.jpg" alt="DSC06765" width="1024" height="682" class="alignnone size-large wp-image-2057" /><br />
ほぼフリーディスカッション形式に移行したセッション。悩んだ際に直接開発者に聞けるといううらやましすぎる境遇とエピソードがとても印象的です。</p>
<p><a href="https://docs.google.com/presentation/d/1TMXfovfEioWD570EmLXobncV5tR96zgZd70DfFn2BVo/pub?start=false&amp;loop=false&amp;delayms=3000#slide=id.p"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/あなたの知りたかったAngularJS_-_Google_ドライブ-2-1024x720.png" alt="あなたの知りたかったAngularJS_-_Google_ドライブ-2" width="1024" height="720" class="alignnone size-large wp-image-2066" /></a></p>
<h3>LT:PHPとAngularの!ポンキーな関係</h3>
<p><script async class="speakerdeck-embed" data-id="10cd06a03ed30131bf09467a3fdfc5a9" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script><br />
こちらはPHPでのAngularJSの実装例としてCakePHPとLithiumの２例を紹介しました。比較した中で特に強調したかったのは下記の点です。時間が不足していたので、同様のネタでまたどこかで話そうと思います。</p>
<ul>
<li>PHPとJavaScriptを合成したスクリプトはレガシーコード化する。(ポンキー)</li>
<li>CakePHPの例: <a href="https://github.com/yandod/angularjs-cakephp-sample" target="_blank">https://github.com/yandod/angularjs-cakephp-sample</a></li>
<li>Lithiumの例: <a href="https://github.com/nateabele/li3-angular-presentation" target="_blank">https://github.com/nateabele/li3-angular-presentation</a></li>
<li>バックエンドはRESTを実装、フロントエンドは$resoucesを使うことでコード量が削減できる</li>
<li>この記事もおすすめです。 <a href="http://www.engineyard.co.jp/blog/2013/resource-oriented-webapp/">リソース指向のWebアプリ 〜Nate Abele氏 来日講演〜 | Engine Yard Blog JP</a></li>
</ul>
<h3>動画</h3>
<p>HD版への切り替えや再生速度(1.5倍　２倍速など)の変更が可能です！</p>
<p><strong>AngularJS 20min, OnsenUIについて ~Angular.js+Topcoat~</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/ZehPqvoUEYk" frameborder="0" allowfullscreen></iframe></p>
<p><strong>AngularJS を実サービスで使ってみて, Angularでよくある質問とその回答</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/1isSFQyUQVc" frameborder="0" allowfullscreen></iframe></p>
<p><strong>LT</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/s7zSWXjNa04" frameborder="0" allowfullscreen></iframe></p>
<p><strong>[PR] Engine YardのPaaSを利用すればクラウドの運用を強力にサポート。AngularJSを使ったインタフェースもあります。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/">AngularJS 勉強会のまとめ (動画・スライド) #ng_jp</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06688-1024x682.jpg" alt="DSC06688" width="1024" height="682" class="alignnone size-large wp-image-2059" /><br />
AngularJSの勉強会に参加して来ました。300人の定員があっという間に満席になるという事で注目の高さが伺える勉強会でした。参加者も発表の内容もバラエティに富んでいてこれから大きな飛躍があるであろう事を期待させる盛りだくさんの内容でした。<br />
今回はEngine Yardから懇親会のスポンサードをさせて頂くと同時にPHPとAngularJSの連携のLTや動画の撮影を行ってきましたので紹介させて頂きます。</p>
<p style="background-color: #ffffcc; border: dotted black 1px; padding: 5px;">
<strong>ng-mtg#4 AngularJS 勉強会 | 集客ならイベントアテンド</strong><br/><a href="http://atnd.org/event/E0021975/" target="_blank">http://atnd.org/event/E0021975/</a><br />
<strong>ng-mtg#4 AngularJS 勉強会 #ng_jp - Togetterまとめ</strong><br/><a href="http://togetter.com/li/598391" target="_blank">http://togetter.com/li/598391</a>
</p>
<h3>AngularJS 20min</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06699.jpg" alt="DSC06699" width="1280" height="853" class="alignnone size-full wp-image-2035" /></p>
<p>@naoya_itoさんによるAngularJSの入門講座。おなじみの軽妙語り口でAngularJSを始める際に理解するべきポイントや注意点を紹介していました。個人的に印象に残ったのは下記の点。</p>
<ul>
<li>最初のサンプルがモンハンのスキルシミュレーターｗ <a href="https://github.com/naoya/mh4sim" target="_blank">https://github.com/naoya/mh4sim</a></li>
<li>「お前らのMVCは間違ってるなんて言ってないでコード書けよ = MVW」</li>
<li>双方向バインディングでリアルタイムにHTMLを更新</li>
<li>DOM操作はしないという制約によりマークアップの変更の影響を受けない！</li>
<li>引数を勝手に変えると動かないよ(文字列的にAngularが扱うので)</li>
</ul>
<p><script async class="speakerdeck-embed" data-id="4a73f2603e5d0131084906af3ff5da10" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h3>OnsenUIについて ~Angular.js+Topcoat~</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06726-1024x682.jpg" alt="DSC06726" width="1024" height="682" class="alignnone size-large wp-image-2040" /></p>
<p>アシアルのお二人からはMonacaでも使われているOnsen UIにとても講演。Monaca自体はPhoneGapを利用したプロダクトですが、それと同様にAngularJSとTopcoatを活用して新しいコンポーネントを開発しているという意欲的な事例です。<br />
OnsenUIについては公式サイトのドキュメント内で実際のデモを見ることもできます。<br />
Reveal.jsを使ったスライドはスライド内でも実際のアプリが動いていてインパクトがあります。下記のIFRAME内でも動いていますので試してみてください。アプリがあるスライドで下向きの三角を押すとデモが始まります。</p>
<p><a href="http://monaca.github.io/slides/2013-ng-jp/index.html#/" target="_blank">http://monaca.github.io/slides/2013-ng-jp/index.html</a><br />
<iframe src="http://monaca.github.io/slides/2013-ng-jp/index.html#/" width="100%" height="430"></iframe></p>
<p>Home | Onsen UI<br />
<a href="http://docs.monaca.mobi/onsen/ja/" target="_blank">http://docs.monaca.mobi/onsen/ja/</a></p>
<p>WebAudioを利用したデモなどはとてもパワフルで印象的でした。今後はGUIで開発できるBuilderの開発を予定しているという事でコードを触らずにAngularJSの利点が活用できるようになりそうです。</p>
<h3>AngularJS を実サービスで使ってみて</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06736-1024x682.jpg" alt="DSC06736" width="1024" height="682" class="alignnone size-large wp-image-2044" /><br />
@sakatamさんによる実案件での採用事例の紹介。GILTでユーザー側にAngularを採用した話。すぐに開発を進めるのでなく評価や学習の期間をしっかりととっていた点が注目を集めていたように思います。</p>
<p><script async class="speakerdeck-embed" data-id="8915a1603e3f0131482c4e52bac46bd2" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h3>Angularでよくある質問とその回答</h3>
<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/DSC06765-1024x682.jpg" alt="DSC06765" width="1024" height="682" class="alignnone size-large wp-image-2057" /><br />
ほぼフリーディスカッション形式に移行したセッション。悩んだ際に直接開発者に聞けるといううらやましすぎる境遇とエピソードがとても印象的です。</p>
<p><a href="https://docs.google.com/presentation/d/1TMXfovfEioWD570EmLXobncV5tR96zgZd70DfFn2BVo/pub?start=false&amp;loop=false&amp;delayms=3000#slide=id.p"><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/12/あなたの知りたかったAngularJS_-_Google_ドライブ-2-1024x720.png" alt="あなたの知りたかったAngularJS_-_Google_ドライブ-2" width="1024" height="720" class="alignnone size-large wp-image-2066" /></a></p>
<h3>LT:PHPとAngularの!ポンキーな関係</h3>
<p><script async class="speakerdeck-embed" data-id="10cd06a03ed30131bf09467a3fdfc5a9" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script><br />
こちらはPHPでのAngularJSの実装例としてCakePHPとLithiumの２例を紹介しました。比較した中で特に強調したかったのは下記の点です。時間が不足していたので、同様のネタでまたどこかで話そうと思います。</p>
<ul>
<li>PHPとJavaScriptを合成したスクリプトはレガシーコード化する。(ポンキー)</li>
<li>CakePHPの例: <a href="https://github.com/yandod/angularjs-cakephp-sample" target="_blank">https://github.com/yandod/angularjs-cakephp-sample</a></li>
<li>Lithiumの例: <a href="https://github.com/nateabele/li3-angular-presentation" target="_blank">https://github.com/nateabele/li3-angular-presentation</a></li>
<li>バックエンドはRESTを実装、フロントエンドは$resoucesを使うことでコード量が削減できる</li>
<li>この記事もおすすめです。 <a href="http://www.engineyard.co.jp/blog/2013/resource-oriented-webapp/">リソース指向のWebアプリ 〜Nate Abele氏 来日講演〜 | Engine Yard Blog JP</a></li>
</ul>
<h3>動画</h3>
<p>HD版への切り替えや再生速度(1.5倍　２倍速など)の変更が可能です！</p>
<p><strong>AngularJS 20min, OnsenUIについて ~Angular.js+Topcoat~</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/ZehPqvoUEYk" frameborder="0" allowfullscreen></iframe></p>
<p><strong>AngularJS を実サービスで使ってみて, Angularでよくある質問とその回答</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/1isSFQyUQVc" frameborder="0" allowfullscreen></iframe></p>
<p><strong>LT</strong><br />
<iframe width="853" height="480" src="//www.youtube.com/embed/s7zSWXjNa04" frameborder="0" allowfullscreen></iframe></p>
<p><strong>[PR] Engine YardのPaaSを利用すればクラウドの運用を強力にサポート。AngularJSを使ったインタフェースもあります。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/">AngularJS 勉強会のまとめ (動画・スライド) #ng_jp</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPの開発に使えるVagrantfileのまとめ</title>
		<link>http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/#comments</comments>
		<pubDate>Sat, 30 Nov 2013 16:23:24 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=2003</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/名称未設定-21.png" alt="名称未設定-2" width="951" height="501" class="alignnone size-full wp-image-2005" /></p>
<p>このエントリは<a href="http://qiita.com/advent-calendar/2013/php">PHP Advent Calendar 2013 - Qiita [キータ]</a>の1日目です。</p>
<p>PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileが<strong>GitHub上だけでも300件以上と色々とある</strong>のでまとめておこうと思います。</p>
<div class="note">
GitHubでの検索結果<br />
<a href="https://github.com/search?o=desc&q=Vagrant+php&ref=searchresults&s=stars&type=Repositories" target="_blank">Search · Vagrant php</a></p>
<p>Vagrantの基本について知りたい方は過去の記事をどうぞ<br />
<a href="http://www.engineyard.co.jp/blog/2013/chef-and-vagrant-gives-you-next-dev/">Chef + VagrantによるPHP5.3 + MySQL + nginxの開発環境 | Engine Yard Blog JP</a>
</div>
<h3><a href="https://github.com/yandod/php5-nginx-vagrant-sample" target="_blank">yandod/php5-nginx-vagrant-sample</a></h3>
<p>こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPやPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。<br />
またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。<br />
クックブックは当初は同梱していましたが、再利用性を高める為に「<a href="https://github.com/yandod/omusubi" target="_blank">omusubi</a>」クックブックとして分離し、Berkshelfを使って導入する形に改善しました。</p>
<h3><a href="https://github.com/10up/varying-vagrant-vagrants" target="_blank">10up/varying-vagrant-vagrants</a></h3>
<p>通称、「VVV」と呼ばれるVagrantfileでWordPressのコア開発をするために作られています。実際にコア開発者がコントリビュートしているという事で半公式のVagrantfileです。<br />
PHPは5.4.20、nginx1.4.3になっています。</p>
<h3><a href="https://github.com/dirkaholic/vagrant-php-dev-box" target="_blank">dirkaholic/vagrant-php-dev-box</a></h3>
<p> Nginx, php-fpm, MongoDBの組み合わせをベースにしたVagrantfile。プロビジョニングにはPuppetが使われています。他にもNode.jsやless、MySQL、Capistranoなどがインストールされています。</p>
<h3>r8/vagrant-lamp</h3>
<p>各種CMSなどとセットでLAMP環境が作られています。メールのデバッグを行うMailCatcherが導入されているのが特徴的です。Apacheのvhostsベースの運用を想定しています。</p>
<pre>
Apache
MySQL
php
phpMyAdmin
Xdebug with Webgrind
zsh with oh-my-zsh
git, subversion
mc, vim, screen, tmux, curl
MailCatcher
Composer
Phing
Drupal utils:
Drush
Wordpress utils:
WP-Cli
wp2github.py
Magento utils:
n98-magerun
modman
modgit
Node.js with following packages:
CoffeeScript
Grunt
Bower
Yeoman
LESS
CSS Lint
</pre>
<h3><a href="https://github.com/bryannielsen/Laravel4-Vagrant" target="_blank">bryannielsen/Laravel4-Vagrant</a></h3>
<p>その名の通りLaravel4を使った開発の為のVagrantfile。Apacheベースになっています。</p>
<pre>
OS - Ubuntu 12.04
Apache - 2.4.6
PHP - 5.5.4
MySQL - 5.5.32
PostgreSQL - 9.1
Beanstalkd - 1.4.6
Redis - 2.2.12
Memcached - 1.4.13
</pre>
<h3><a href="https://github.com/MiniCodeMonkey/Vagrant-LAMP-Stack" target="_blank">MiniCodeMonkey/Vagrant-LAMP-Stack</a></h3>
<p>こちらもその名の通りLAMPスタックを作るVagrantfile。postfixが入っている点が特徴的なのと簡易的な情報表示を実装しています。</p>
<pre>
Apache 2
MySQL
PHP 5.4 (with mysql, curl, mcrypt, memcached, gd)
memcached
postfix
vim, git, screen, curl, composer
</pre>
<h3><a href="https://github.com/shin1x1/vagrant-phpenv-phpbuild" target="_blank">shin1x1/vagrant-phpenv-phpbuild</a></h3>
<p>shin1x1さん作のVagrantfile。3系統のPHPをポート番号で分けて利用できるようになっています。ベースになるOSがCentOSになっている点も特徴です。</p>
<h3><a href="https://github.com/ramsey/vagrant-php-src-dev" target="_blank">ramsey/vagrant-php-src-dev</a></h3>
<p>こちらはPHPのコアコミュニティのBen Ramsey氏のVagrantfileでPHPコアの開発をする事を目的に作られています。またCakePHPやLithiumで活動していたJoel Perras氏のコードも入っています。</p>
<p><strong>追記</strong></p>
<h3><a href="http://share.ez.no/blogs/bruce-morrison/ez-publish-5-virtual-machine" target="_blank">brucem/vagrant-puppet-ezpublish</a></h3>
<p>CMSのeZ Publishがすぐに使えるVagrantfileです。Puppetを使ってプロビジョニングを行い、UbuntuかAWSを使うようになっています。</p>
<hr>
Vagrantfileはプロジェクト毎に作成する性格のものですので、各自自分のプロジェクトに合ったものを作るなり利用する事になりますが、それにしてもよくもまぁ乱立したものですね。細かいカスタマイズはするにせよ、かなり参考になるものがあるのではと思います。</p>
<p>2日目は@msngさんです。お楽しみに！</p>
<p><strong>[PR] Engine YardのPaaSを利用すればChefを使った運用の強力にサポート。クックブックのコンサルティングも提供しています。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/">PHPの開発に使えるVagrantfileのまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/名称未設定-21.png" alt="名称未設定-2" width="951" height="501" class="alignnone size-full wp-image-2005" /></p>
<p>このエントリは<a href="http://qiita.com/advent-calendar/2013/php">PHP Advent Calendar 2013 - Qiita [キータ]</a>の1日目です。</p>
<p>PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileが<strong>GitHub上だけでも300件以上と色々とある</strong>のでまとめておこうと思います。</p>
<div class="note">
GitHubでの検索結果<br />
<a href="https://github.com/search?o=desc&q=Vagrant+php&ref=searchresults&s=stars&type=Repositories" target="_blank">Search · Vagrant php</a></p>
<p>Vagrantの基本について知りたい方は過去の記事をどうぞ<br />
<a href="http://www.engineyard.co.jp/blog/2013/chef-and-vagrant-gives-you-next-dev/">Chef + VagrantによるPHP5.3 + MySQL + nginxの開発環境 | Engine Yard Blog JP</a>
</div>
<h3><a href="https://github.com/yandod/php5-nginx-vagrant-sample" target="_blank">yandod/php5-nginx-vagrant-sample</a></h3>
<p>こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPやPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。<br />
またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。<br />
クックブックは当初は同梱していましたが、再利用性を高める為に「<a href="https://github.com/yandod/omusubi" target="_blank">omusubi</a>」クックブックとして分離し、Berkshelfを使って導入する形に改善しました。</p>
<h3><a href="https://github.com/10up/varying-vagrant-vagrants" target="_blank">10up/varying-vagrant-vagrants</a></h3>
<p>通称、「VVV」と呼ばれるVagrantfileでWordPressのコア開発をするために作られています。実際にコア開発者がコントリビュートしているという事で半公式のVagrantfileです。<br />
PHPは5.4.20、nginx1.4.3になっています。</p>
<h3><a href="https://github.com/dirkaholic/vagrant-php-dev-box" target="_blank">dirkaholic/vagrant-php-dev-box</a></h3>
<p> Nginx, php-fpm, MongoDBの組み合わせをベースにしたVagrantfile。プロビジョニングにはPuppetが使われています。他にもNode.jsやless、MySQL、Capistranoなどがインストールされています。</p>
<h3>r8/vagrant-lamp</h3>
<p>各種CMSなどとセットでLAMP環境が作られています。メールのデバッグを行うMailCatcherが導入されているのが特徴的です。Apacheのvhostsベースの運用を想定しています。</p>
<pre>
Apache
MySQL
php
phpMyAdmin
Xdebug with Webgrind
zsh with oh-my-zsh
git, subversion
mc, vim, screen, tmux, curl
MailCatcher
Composer
Phing
Drupal utils:
Drush
Wordpress utils:
WP-Cli
wp2github.py
Magento utils:
n98-magerun
modman
modgit
Node.js with following packages:
CoffeeScript
Grunt
Bower
Yeoman
LESS
CSS Lint
</pre>
<h3><a href="https://github.com/bryannielsen/Laravel4-Vagrant" target="_blank">bryannielsen/Laravel4-Vagrant</a></h3>
<p>その名の通りLaravel4を使った開発の為のVagrantfile。Apacheベースになっています。</p>
<pre>
OS - Ubuntu 12.04
Apache - 2.4.6
PHP - 5.5.4
MySQL - 5.5.32
PostgreSQL - 9.1
Beanstalkd - 1.4.6
Redis - 2.2.12
Memcached - 1.4.13
</pre>
<h3><a href="https://github.com/MiniCodeMonkey/Vagrant-LAMP-Stack" target="_blank">MiniCodeMonkey/Vagrant-LAMP-Stack</a></h3>
<p>こちらもその名の通りLAMPスタックを作るVagrantfile。postfixが入っている点が特徴的なのと簡易的な情報表示を実装しています。</p>
<pre>
Apache 2
MySQL
PHP 5.4 (with mysql, curl, mcrypt, memcached, gd)
memcached
postfix
vim, git, screen, curl, composer
</pre>
<h3><a href="https://github.com/shin1x1/vagrant-phpenv-phpbuild" target="_blank">shin1x1/vagrant-phpenv-phpbuild</a></h3>
<p>shin1x1さん作のVagrantfile。3系統のPHPをポート番号で分けて利用できるようになっています。ベースになるOSがCentOSになっている点も特徴です。</p>
<h3><a href="https://github.com/ramsey/vagrant-php-src-dev" target="_blank">ramsey/vagrant-php-src-dev</a></h3>
<p>こちらはPHPのコアコミュニティのBen Ramsey氏のVagrantfileでPHPコアの開発をする事を目的に作られています。またCakePHPやLithiumで活動していたJoel Perras氏のコードも入っています。</p>
<p><strong>追記</strong></p>
<h3><a href="http://share.ez.no/blogs/bruce-morrison/ez-publish-5-virtual-machine" target="_blank">brucem/vagrant-puppet-ezpublish</a></h3>
<p>CMSのeZ Publishがすぐに使えるVagrantfileです。Puppetを使ってプロビジョニングを行い、UbuntuかAWSを使うようになっています。</p>
<hr>
Vagrantfileはプロジェクト毎に作成する性格のものですので、各自自分のプロジェクトに合ったものを作るなり利用する事になりますが、それにしてもよくもまぁ乱立したものですね。細かいカスタマイズはするにせよ、かなり参考になるものがあるのではと思います。</p>
<p>2日目は@msngさんです。お楽しみに！</p>
<p><strong>[PR] Engine YardのPaaSを利用すればChefを使った運用の強力にサポート。クックブックのコンサルティングも提供しています。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/">PHPの開発に使えるVagrantfileのまとめ</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chefのレシピは上から下に実行されるという誤解</title>
		<link>http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/</link>
		<comments>http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/#comments</comments>
		<pubDate>Thu, 28 Nov 2013 08:12:40 +0000</pubDate>
		<dc:creator><![CDATA[安藤 祐介]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.engineyard.co.jp/blog/?p=1965</guid>
		<description><![CDATA[<p><p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/名称未設定-300x254.png" alt="名称未設定" width="300" height="254" class="alignnone size-medium wp-image-1989" /></p>
<p>Engine Yardを含むさまざまな場面で利用が広がったChefですが、その動作原理やアーキテクチャについてご存じない方もいることに気が付きました。細かなアーキテクチャを理解しなくても使うことができるというChefの長所を示しているともいえますが、細かな挙動を制御する際にはやはり動作原理などの知識があると役立ちます。<br />
今回は表題のとおりレシピが実行される際のサイクルについてあまり知られていない部分を紹介します。</p>
<h3>Chefの実行サイクルとリソースコレクション</h3>
<p>Chef(Chef Client、Chef Solo)が実行された際には直ちにサーバの設定が始まるわけではなく、さまざまなステップ毎に処理が実行されます。大まかには下記のようなステップになります。</p>
<ol>
<li>Chef Serverとの通信、認証処理</li>
<li>Chef Serverからのクックブック、データの取得</li>
<li>クックブックのコンパイル</li>
<li>ノードの設定、収束(Converge)</li>
<li>通知(Notification)の実行</li>
</ol>
<p>上記の内、最初の2つはChef Soloの場合は存在しないか、その他のツールを使って自力で済ませる事になります。ここでポイントになるのが3つ目のクックブックのコンパイルです。クックブックはRubyで書かれたレシピの集合体です。レシピの中ではChefが提供するリソースという仕組みを使ってサーバへのパッケージの導入や設定ファイルの操作などを行います。例えば下記の例では<code>execute</code>リソースや<code>package</code>リソース、<code>service</code>リソースなどを使ってvimのインストールやデーモンの再起動を行っている例です。また合間合間でデバッグ用のメッセージを出力しています。</p>
<pre lang="ruby">
p "One"
execute "apt-get update" do
  action :run
end

p "Two"
package "vim" do
  action :install
end

p "Three"
service "ssh" do
  action :restart
end
</pre>
<p>上記のレシピは実行時にそれぞれのリソース部分が対応するオブジェクトに変換されコレクションに格納して<code>Converge</code>のフェーズまで保持されます。つまり利用する全てのクックブック内で使ったリソースがコレクションに格納されるまで実際のサーバの設定作業は一切開始されない点に注意してください。実際の実行ログを見ると、下記のようにデバッグ用の出力は実際のリソースの実行よりも先になっています。</p>
<pre lang="cmd">
INFO: *** Chef 10.14.2 ***
WARN: Run List override has been provided.
WARN: Original Run List: []
WARN: Overridden Run List: [recipe[scott]]
INFO: Run List is [recipe[scott]]
INFO: Run List expands to [scott]
INFO: Starting Chef Run for precise64
INFO: Running start handlers
INFO: Start handlers complete.
"One"
"Two"
"Three"
INFO: Processing execute[apt-get update] action run (scott::default line 10)
INFO: execute[apt-get update] ran successfully
INFO: Processing package[vim] action install (scott::default line 15)
INFO: Processing service[ssh] action restart (scott::default line 20)
INFO: service[ssh] restarted
INFO: Chef Run complete in 6.449472 seconds
Running report handlers
INFO: Report handlers complete
</pre>
<p>リソースの処理を直ちに実行させる必要がある場合はコンパイルされたオブジェクトを操作する下記のような記述も出来ます。</p>
<pre lang="ruby">
e = execute "apt-get update" do
  action :nothing
end

e.run_action(:run)
</pre>
<p><strong>追記</strong><br />
リソースコレクションの中のオブジェクトは<code>resources</code>メソッドで取得できます。下記の例ではどこかで定義されたFileリソースの設定を後から変更しています。</p>
<pre lang="ruby">
f = resources("file[/etc/hosts]")
f.mode 00644
</pre>
<h3>Rubyスクリプトはコンパイル時に実行される</h3>
<p>次に注意すべき点がレシピ内に書かれたRubyスクリプトの部分はコンパイル時に実行されるという点です。先ほども触れたようにリソースの実際の処理はコンパイル時ではなく収束(Converge)の際に行われますので、Rubyスクリプトの部分でリソースの実行によって起きた変化を前提とするような処理はできません。</p>
<pre lang="ruby">
file "/var/hoge4" do
  action :create
end

#コンパイルの時点ではファイルは作成されていない
if !File.exist?("/var/hoge4") then
  p "File not found"
end
</pre>
<p>しかもこの上記の例は2回目以降の実行では前回実行時にファイルが作成されている為、挙動が変わります。条件比較の記述ミスなどが重なると何が起きているかを誤解する可能性の高い状況になりますので注意が必要です。<br />
Rubyのスクリプトによる処理をコンパイル時ではなく収束時に行いたい場合は<code>ruby_block</code>リソースを使います。</p>
<pre lang="ruby">
file "/var/hoge5" do
  action :create
end

#リソースとして実行されればはファイルは作成されている
ruby_block "check_file" do
  block do if File.exist?("/var/hoge5") then
      p "found"
    end
  end
end
</pre>
<p>そのままRubyを記述できるのに、なぜこのようなリソースが存在するのかがお分かり頂けたでしょうか？もちろんこのリソースもリソースコレクションに格納されるので別のレシピなどから挙動に関与する事も可能です。Rubyスクリプトの実行タイミングを遅らせたい場合にはこの方法が必要になります。</p>
<h3>通知(Notification)を使っていますか？</h3>
<p>次に注意したいのが収束(Converge)の後に行われる通知の実行です。設定ファイルなどが変更された際はサービスの再起動が必要になります。そういった際は設定ファイルの変更が行われる処理の後にサービスの再起動などを記述するでしょう。しかし関連する設定ファイルが複数あったり、複数のレシピから変更されている場合はどうでしょうか？<br />
単純に記述してしまうと、一回のChefの実行で何度も同じサービスが再起動されてしまいますが、通知を使うことで全ての設定作業が終わった後にまとめてサービスの再起動を行うような記述が出来ます。</p>
<p>通知として実行されたいリソースにはアクションとして:nothingを設定します。そして設定ファイルなどを変更するリソースから<code>notifies</code>アトリビュートを使ってアクションやリソースコレクション名、タイミングを指定します。<br />
下記の例では<code>file</code>リソースを使って2つのファイルを作成し、1つのリソースからはsshサービスの再起動を行っています。</p>
<pre lang="ruby">
service "ssh" do
  action :nothing
end

file "/var/hoge" do
  action :create
  notifies :restart, "service[ssh]", :delayed
end

file "/var/hoge2" do
  action :create
end
</pre>
<p>上記のレシピは記述の順番と実行の順が異なり、sshの再起動は最後になっている事がログで確認出来ます。</p>
<pre lang="cmd">
INFO: *** Chef 10.14.2 ***
WARN: Run List override has been provided.
WARN: Original Run List: []
WARN: Overridden Run List: [recipe[scott]]
INFO: Run List is [recipe[scott]]
INFO: Run List expands to [scott]
INFO: Starting Chef Run for precise64
INFO: Running start handlers
INFO: Start handlers complete.
INFO: Processing service[ssh] action nothing (scott::default line 10)
INFO: Processing file[/var/hoge] action create (scott::default line 14)
INFO: file[/var/hoge] created file /var/hoge
INFO: Processing file[/var/hoge2] action create (scott::default line 19)
INFO: file[/var/hoge2] created file /var/hoge2
INFO: file[/var/hoge] sending restart action to service[ssh] (delayed)
INFO: Processing service[ssh] action restart (scott::default line 10)
INFO: service[ssh] restarted
INFO: Chef Run complete in 1.332552 seconds
INFO: Running report handlers
INFO: Report handlers complete
</pre>
<h3>まとめ</h3>
<p>なんとなく記述すれば動作するのはChefの利点ですが、実行サイクルを理解する事で意図しない挙動や冪等性のないレシピになってしまう状況を防ぐ事ができます。<br />
特に実行順などを制御する方法は数多くのレシピを組み合わせる際などに有用ですので是非覚えておきましょう。</p>
<h3>おまけ：Chefに関する情報源</h3>
<p>ブログ記事などが多く見つかる状況ですが、取りまとめられたコンテンツもあります。特に下記のコンテンツは量も豊富かつ正確なので参照するとよいでしょう。</p>
<ul>
<li>「初めてのChefの教室」を開催しました。(動画&資料) | Engine Yard Blog JP<br />
<a href="http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/" target="_blank">http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/</a></li>
<li>Rubyist Magazine - Chef でサーバ管理を楽チンにしよう！ (第 1 回)<br />
<a href="http://magazine.rubyist.net/?0035-ChefInDECOLOG" target="_blank">http://magazine.rubyist.net/?0035-ChefInDECOLOG</a></li>
<li>Opscode Open Source Wiki(情報が古いが日本語の情報)<br />
<a href="https://wiki.opscode.com/pages/viewpage.action?pageId=24019581" target="_blank">https://wiki.opscode.com/pages/viewpage.action?pageId=24019581</a></li>
<li>Chefについてのドキュメント(英語)<br />
<a href="http://docs.opscode.com/" target="_blank">http://docs.opscode.com/</a></li>
<li>Resources and Providers Reference — Chef<br />
<a href="http://docs.opscode.com/chef/resources.html" target="_blank">http://docs.opscode.com/chef/resources.html</a></li>
<li>Recipe DSL — Chef<br />
<a href="http://docs.opscode.com/chef/dsl_recipe.html" target="_blank">http://docs.opscode.com/chef/dsl_recipe.html</a></li>
<li>Esseintials nodes chef run<br />
<a href="http://docs.opscode.com/essentials_nodes_chef_run.html" target="_blank">http://docs.opscode.com/essentials_nodes_chef_run.html</a></li>
</ul>
<p><strong>[PR] Engine YardのPaaSを利用すればChefを使った運用の強力にサポート。クックブックのコンサルティングも提供しています。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
</p><p>The post <a href="http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/">Chefのレシピは上から下に実行されるという誤解</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.engineyard.co.jp/blog/wp-content/uploads/2013/11/名称未設定-300x254.png" alt="名称未設定" width="300" height="254" class="alignnone size-medium wp-image-1989" /></p>
<p>Engine Yardを含むさまざまな場面で利用が広がったChefですが、その動作原理やアーキテクチャについてご存じない方もいることに気が付きました。細かなアーキテクチャを理解しなくても使うことができるというChefの長所を示しているともいえますが、細かな挙動を制御する際にはやはり動作原理などの知識があると役立ちます。<br />
今回は表題のとおりレシピが実行される際のサイクルについてあまり知られていない部分を紹介します。</p>
<h3>Chefの実行サイクルとリソースコレクション</h3>
<p>Chef(Chef Client、Chef Solo)が実行された際には直ちにサーバの設定が始まるわけではなく、さまざまなステップ毎に処理が実行されます。大まかには下記のようなステップになります。</p>
<ol>
<li>Chef Serverとの通信、認証処理</li>
<li>Chef Serverからのクックブック、データの取得</li>
<li>クックブックのコンパイル</li>
<li>ノードの設定、収束(Converge)</li>
<li>通知(Notification)の実行</li>
</ol>
<p>上記の内、最初の2つはChef Soloの場合は存在しないか、その他のツールを使って自力で済ませる事になります。ここでポイントになるのが3つ目のクックブックのコンパイルです。クックブックはRubyで書かれたレシピの集合体です。レシピの中ではChefが提供するリソースという仕組みを使ってサーバへのパッケージの導入や設定ファイルの操作などを行います。例えば下記の例では<code>execute</code>リソースや<code>package</code>リソース、<code>service</code>リソースなどを使ってvimのインストールやデーモンの再起動を行っている例です。また合間合間でデバッグ用のメッセージを出力しています。</p>
<pre lang="ruby">
p "One"
execute "apt-get update" do
  action :run
end

p "Two"
package "vim" do
  action :install
end

p "Three"
service "ssh" do
  action :restart
end
</pre>
<p>上記のレシピは実行時にそれぞれのリソース部分が対応するオブジェクトに変換されコレクションに格納して<code>Converge</code>のフェーズまで保持されます。つまり利用する全てのクックブック内で使ったリソースがコレクションに格納されるまで実際のサーバの設定作業は一切開始されない点に注意してください。実際の実行ログを見ると、下記のようにデバッグ用の出力は実際のリソースの実行よりも先になっています。</p>
<pre lang="cmd">
INFO: *** Chef 10.14.2 ***
WARN: Run List override has been provided.
WARN: Original Run List: []
WARN: Overridden Run List: [recipe[scott]]
INFO: Run List is [recipe[scott]]
INFO: Run List expands to [scott]
INFO: Starting Chef Run for precise64
INFO: Running start handlers
INFO: Start handlers complete.
"One"
"Two"
"Three"
INFO: Processing execute[apt-get update] action run (scott::default line 10)
INFO: execute[apt-get update] ran successfully
INFO: Processing package[vim] action install (scott::default line 15)
INFO: Processing service[ssh] action restart (scott::default line 20)
INFO: service[ssh] restarted
INFO: Chef Run complete in 6.449472 seconds
Running report handlers
INFO: Report handlers complete
</pre>
<p>リソースの処理を直ちに実行させる必要がある場合はコンパイルされたオブジェクトを操作する下記のような記述も出来ます。</p>
<pre lang="ruby">
e = execute "apt-get update" do
  action :nothing
end

e.run_action(:run)
</pre>
<p><strong>追記</strong><br />
リソースコレクションの中のオブジェクトは<code>resources</code>メソッドで取得できます。下記の例ではどこかで定義されたFileリソースの設定を後から変更しています。</p>
<pre lang="ruby">
f = resources("file[/etc/hosts]")
f.mode 00644
</pre>
<h3>Rubyスクリプトはコンパイル時に実行される</h3>
<p>次に注意すべき点がレシピ内に書かれたRubyスクリプトの部分はコンパイル時に実行されるという点です。先ほども触れたようにリソースの実際の処理はコンパイル時ではなく収束(Converge)の際に行われますので、Rubyスクリプトの部分でリソースの実行によって起きた変化を前提とするような処理はできません。</p>
<pre lang="ruby">
file "/var/hoge4" do
  action :create
end

#コンパイルの時点ではファイルは作成されていない
if !File.exist?("/var/hoge4") then
  p "File not found"
end
</pre>
<p>しかもこの上記の例は2回目以降の実行では前回実行時にファイルが作成されている為、挙動が変わります。条件比較の記述ミスなどが重なると何が起きているかを誤解する可能性の高い状況になりますので注意が必要です。<br />
Rubyのスクリプトによる処理をコンパイル時ではなく収束時に行いたい場合は<code>ruby_block</code>リソースを使います。</p>
<pre lang="ruby">
file "/var/hoge5" do
  action :create
end

#リソースとして実行されればはファイルは作成されている
ruby_block "check_file" do
  block do if File.exist?("/var/hoge5") then
      p "found"
    end
  end
end
</pre>
<p>そのままRubyを記述できるのに、なぜこのようなリソースが存在するのかがお分かり頂けたでしょうか？もちろんこのリソースもリソースコレクションに格納されるので別のレシピなどから挙動に関与する事も可能です。Rubyスクリプトの実行タイミングを遅らせたい場合にはこの方法が必要になります。</p>
<h3>通知(Notification)を使っていますか？</h3>
<p>次に注意したいのが収束(Converge)の後に行われる通知の実行です。設定ファイルなどが変更された際はサービスの再起動が必要になります。そういった際は設定ファイルの変更が行われる処理の後にサービスの再起動などを記述するでしょう。しかし関連する設定ファイルが複数あったり、複数のレシピから変更されている場合はどうでしょうか？<br />
単純に記述してしまうと、一回のChefの実行で何度も同じサービスが再起動されてしまいますが、通知を使うことで全ての設定作業が終わった後にまとめてサービスの再起動を行うような記述が出来ます。</p>
<p>通知として実行されたいリソースにはアクションとして:nothingを設定します。そして設定ファイルなどを変更するリソースから<code>notifies</code>アトリビュートを使ってアクションやリソースコレクション名、タイミングを指定します。<br />
下記の例では<code>file</code>リソースを使って2つのファイルを作成し、1つのリソースからはsshサービスの再起動を行っています。</p>
<pre lang="ruby">
service "ssh" do
  action :nothing
end

file "/var/hoge" do
  action :create
  notifies :restart, "service[ssh]", :delayed
end

file "/var/hoge2" do
  action :create
end
</pre>
<p>上記のレシピは記述の順番と実行の順が異なり、sshの再起動は最後になっている事がログで確認出来ます。</p>
<pre lang="cmd">
INFO: *** Chef 10.14.2 ***
WARN: Run List override has been provided.
WARN: Original Run List: []
WARN: Overridden Run List: [recipe[scott]]
INFO: Run List is [recipe[scott]]
INFO: Run List expands to [scott]
INFO: Starting Chef Run for precise64
INFO: Running start handlers
INFO: Start handlers complete.
INFO: Processing service[ssh] action nothing (scott::default line 10)
INFO: Processing file[/var/hoge] action create (scott::default line 14)
INFO: file[/var/hoge] created file /var/hoge
INFO: Processing file[/var/hoge2] action create (scott::default line 19)
INFO: file[/var/hoge2] created file /var/hoge2
INFO: file[/var/hoge] sending restart action to service[ssh] (delayed)
INFO: Processing service[ssh] action restart (scott::default line 10)
INFO: service[ssh] restarted
INFO: Chef Run complete in 1.332552 seconds
INFO: Running report handlers
INFO: Report handlers complete
</pre>
<h3>まとめ</h3>
<p>なんとなく記述すれば動作するのはChefの利点ですが、実行サイクルを理解する事で意図しない挙動や冪等性のないレシピになってしまう状況を防ぐ事ができます。<br />
特に実行順などを制御する方法は数多くのレシピを組み合わせる際などに有用ですので是非覚えておきましょう。</p>
<h3>おまけ：Chefに関する情報源</h3>
<p>ブログ記事などが多く見つかる状況ですが、取りまとめられたコンテンツもあります。特に下記のコンテンツは量も豊富かつ正確なので参照するとよいでしょう。</p>
<ul>
<li>「初めてのChefの教室」を開催しました。(動画&資料) | Engine Yard Blog JP<br />
<a href="http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/" target="_blank">http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/</a></li>
<li>Rubyist Magazine - Chef でサーバ管理を楽チンにしよう！ (第 1 回)<br />
<a href="http://magazine.rubyist.net/?0035-ChefInDECOLOG" target="_blank">http://magazine.rubyist.net/?0035-ChefInDECOLOG</a></li>
<li>Opscode Open Source Wiki(情報が古いが日本語の情報)<br />
<a href="https://wiki.opscode.com/pages/viewpage.action?pageId=24019581" target="_blank">https://wiki.opscode.com/pages/viewpage.action?pageId=24019581</a></li>
<li>Chefについてのドキュメント(英語)<br />
<a href="http://docs.opscode.com/" target="_blank">http://docs.opscode.com/</a></li>
<li>Resources and Providers Reference — Chef<br />
<a href="http://docs.opscode.com/chef/resources.html" target="_blank">http://docs.opscode.com/chef/resources.html</a></li>
<li>Recipe DSL — Chef<br />
<a href="http://docs.opscode.com/chef/dsl_recipe.html" target="_blank">http://docs.opscode.com/chef/dsl_recipe.html</a></li>
<li>Esseintials nodes chef run<br />
<a href="http://docs.opscode.com/essentials_nodes_chef_run.html" target="_blank">http://docs.opscode.com/essentials_nodes_chef_run.html</a></li>
</ul>
<p><strong>[PR] Engine YardのPaaSを利用すればChefを使った運用の強力にサポート。クックブックのコンサルティングも提供しています。</strong></p>
<div><a href="http://ey.io/noyakshave"><img class="alignnone size-full wp-image-1889" style="border: 1px solid black;" alt="noyakshave_seminar_small" src="http://s3.amazonaws.com/engineyard.com/media_files/files/85/original/noyakshave_seminar_landscape.png" /></a></div>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
<p>The post <a href="http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/">Chefのレシピは上から下に実行されるという誤解</a> appeared first on <a href="http://www.engineyard.co.jp/blog">Engine Yard Blog JP</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.engineyard.co.jp/blog/2013/chef-recipe-lifecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
