<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Glide Note]]></title>
  <link href="http://blog.glidenote.com/atom.xml" rel="self"/>
  <link href="http://blog.glidenote.com/"/>
  <updated>2012-02-06T01:07:58+09:00</updated>
  <id>http://blog.glidenote.com/</id>
  <author>
    <name><![CDATA[Akira Maeda]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Fedora16 systemctlコマンドのメモ]]></title>
    <link href="http://blog.glidenote.com/blog/2012/02/06/systemctl-zsh-completion/"/>
    <updated>2012-02-06T00:33:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/02/06/systemctl-zsh-completion</id>
    <content type="html"><![CDATA[<p>自宅サーバはFedora 16で構築してるんですが、systemctlコマンドが全く頭に入ってこないので自分用にメモ。
2回ググったらブログに書く。</p>

<h2 id="squid">たとえばsquidを管理する場合</h2>

<h3 id="section">起動</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo systemctl start squid.service</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-1">停止</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo systemctl stop squid.service</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-2">再起動</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo systemctl restart squid.service</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-3">自動起動設定</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo systemctl enable squid.service</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-4">自動起動の解除</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo systemctl disable squid.service</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="status">statusを確認</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
</pre></td><td class="code"><pre><code class=""><span class="line">[akira@mini9] $ sudo systemctl status squid.service
</span><span class="line">squid.service - Sqid caching proxy
</span><span class="line">      Loaded: loaded (/lib/systemd/system/squid.service; enabled)
</span><span class="line">          Active: active (running) since Mon, 06 Feb 2012 00:41:33 +0900; 3min 53s ago
</span><span class="line">             Process: 3410 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
</span><span class="line">                 Process: 3400 ExecReload=/usr/sbin/squid $SQUID_OPTS -k reconfigure -f $SQUID_CONF (code=exited, status=0/SUCCESS)
</span><span class="line">                     Process: 3418 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
</span><span class="line">                         Process: 3412 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
</span><span class="line">                            Main PID: 3419 (squid)
</span><span class="line">                                  CGroup: name=systemd:/system/squid.service
</span><span class="line">                                          ├ 3419 /usr/sbin/squid -f /etc/squid/squid.conf
</span><span class="line">                                                  ├ 3421 (squid-1) -f /etc/squid/squid.conf
</span><span class="line">                                                          ├ 3426 (logfile-daemon) /var/log/squid/access.log
</span><span class="line">                                                                  └ 3427 (unlinkd)</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="section-5">その他のコマンド</h2>
<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
<span class="line-number">24</span>
<span class="line-number">25</span>
<span class="line-number">26</span>
<span class="line-number">27</span>
<span class="line-number">28</span>
<span class="line-number">29</span>
<span class="line-number">30</span>
<span class="line-number">31</span>
<span class="line-number">32</span>
<span class="line-number">33</span>
<span class="line-number">34</span>
<span class="line-number">35</span>
<span class="line-number">36</span>
<span class="line-number">37</span>
<span class="line-number">38</span>
<span class="line-number">39</span>
<span class="line-number">40</span>
</pre></td><td class="code"><pre><code class=""><span class="line">[akira@mimi9] $ systemctl
</span><span class="line">systemctl command
</span><span class="line">cancel                               -- Cancel all, one, or more jobs
</span><span class="line">daemon-reexec                        -- Reexecute systemd manager
</span><span class="line">daemon-reload                        -- Reload systemd manager configuration
</span><span class="line">default                              -- Enter system default mode
</span><span class="line">delete                               -- Remove one or more snapshots
</span><span class="line">disable                              -- Disable one or more unit files
</span><span class="line">dot                                  -- Dump dependency graph for dot(1)
</span><span class="line">dump                                 -- Dump server status
</span><span class="line">emergency                            -- Enter system emergency mode
</span><span class="line">enable                               -- Enable one or more unit files
</span><span class="line">exit                                 -- Ask for user instance termination
</span><span class="line">halt                                 -- Shut down and halt the system
</span><span class="line">is-active                            -- Check whether units are active
</span><span class="line">is-enabled                           -- Check whether unit files are enabled
</span><span class="line">isolate                              -- Start one unit and stop all others
</span><span class="line">kexec                                -- Shut down and reboot the system with kexec
</span><span class="line">kill                                 -- Send signal to processes of a unit
</span><span class="line">list-jobs                            -- List jobs
</span><span class="line">list-units                           -- List units
</span><span class="line">load                                 -- Load one or more units
</span><span class="line">monitor                              -- Monitor unit/job changes
</span><span class="line">poweroff                             -- Shut down and power-off the system
</span><span class="line">reboot                               -- Shut down and reboot the system
</span><span class="line">reload                               -- Reload one or more units
</span><span class="line">reload-or-restart                    -- Reload one or more units is possible, otherwise start or restart
</span><span class="line">reload-or-try-restart  force-reload  -- Reload one or more units is possible, otherwise restart if active
</span><span class="line">rescue                               -- Enter system rescue mode
</span><span class="line">reset-failed                         -- Reset failed state for all, one, or more units
</span><span class="line">restart                              -- Start or restart one or more units
</span><span class="line">set-environment                      -- Set one or more environment variables
</span><span class="line">show                                 -- Show properties of one or more units/jobs or the manager
</span><span class="line">show-environment                     -- Dump environment
</span><span class="line">snapshot                             -- Create a snapshot
</span><span class="line">start                                -- Start (activate) one or more units
</span><span class="line">status                               -- Show runtime status of one or more units
</span><span class="line">stop                                 -- Stop (deactivate) one or more units
</span><span class="line">try-restart            condrestart   -- Restart one or more units if active
</span><span class="line">unset-environment                    -- Unset one or more environment variables</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>systemdでは<code>/lib/systemd/system</code>に設定ファイルを用意して、
<code>/etc/systemd/system</code>配下の<code>xxxx.wants</code>へリンクを貼ると自動起動設定となる。</p>

<p>ちなみにzshのバージョンを4.3.15にあげたらsytemctlの補完が効いてくれるようになった</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[CobblerでScientific Linux 6.1を導入]]></title>
    <link href="http://blog.glidenote.com/blog/2012/02/03/cobbler-scientific-linux-6.1/"/>
    <updated>2012-02-03T22:57:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/02/03/cobbler-scientific-linux-6.1</id>
    <content type="html"><![CDATA[<p>CobblerでScientific Linux 6.1を導入出来るようにしたのでメモ。
同僚の<a href="https://twitter.com/#!/tnmt">@tnmt</a>の書いた情報を6.1用に書き換えて流用ですが。いつも有益な情報ありがとう！</p>

<ul>
  <li><a href="http://blog.tnmt.info/2011/07/06/scientific-linux-kvm-with-cobbler-koan/">Cobbler+KoanでScientific Linux 6.0なKVMのVMをコマンド一発で作成する - blog.tnmt.info</a></li>
</ul>

<p>利用したCobblerサーバはCentOS 5.7でCobblerのバージョンは1.6.6です。</p>

<h2 id="scientific-linux-61">Scientific Linux 6.1の必要ファイルのインポート</h2>

<p>30～40分くらいかかります。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo cobbler import --path=rsync://ftp.jaist.ac.jp/pub/Linux/scientific/6.1/x86_64/os/ --name=SL6.1-x86_64</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="section">設定の確認</h2>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo cobbler distro report --name SL6.1-x86_64
</span><span class="line">
</span><span class="line">distro               : SL6.1-x86_64
</span><span class="line">architecture         : x86_64
</span><span class="line">breed                : redhat
</span><span class="line">created              : Fri Feb  3 10:40:32 2012
</span><span class="line">comment              :
</span><span class="line">initrd               : /var/www/cobbler/ks_mirror/SL6.1-x86_64/images/pxeboot/initrd.img
</span><span class="line">kernel               : /var/www/cobbler/ks_mirror/SL6.1-x86_64/images/pxeboot/vmlinuz
</span><span class="line">kernel options       : {}
</span><span class="line">ks metadata          : {'tree': 'http://@@http_server@@/cblr/links/SL6.1-x86_64'}
</span><span class="line">tree build time      : Thu Jan  1 09:00:00 1970
</span><span class="line">modified             : Fri Feb  3 10:45:35 2012
</span><span class="line">mgmt classes         : []
</span><span class="line">os version           :
</span><span class="line">owners               : ['admin']
</span><span class="line">post kernel options  : {}
</span><span class="line">redhat mgmt key      : &lt;&lt;inherit&gt;&gt;
</span><span class="line">redhat mgmt server   : &lt;&lt;inherit&gt;&gt;
</span><span class="line">template files       : {}</span></code></pre></td></tr></table></div></figure></notextile></div>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
<span class="line-number">24</span>
<span class="line-number">25</span>
<span class="line-number">26</span>
<span class="line-number">27</span>
<span class="line-number">28</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo cobbler profile report --name SL6.1-x86_64
</span><span class="line">
</span><span class="line">profile              : SL6.1-x86_64
</span><span class="line">distro               : SL6.1-x86_64
</span><span class="line">comment              :
</span><span class="line">created              : Fri Feb  3 10:40:33 2012
</span><span class="line">dhcp tag             : default
</span><span class="line">enable menu          : True
</span><span class="line">kernel options       : {}
</span><span class="line">kickstart            : /var/lib/cobbler/kickstarts/default.ks
</span><span class="line">ks metadata          : {}
</span><span class="line">mgmt classes         : []
</span><span class="line">modified             : Fri Feb  3 10:40:33 2012
</span><span class="line">name servers         : []
</span><span class="line">name servers search  : []
</span><span class="line">owners               : ['admin']
</span><span class="line">post kernel options  : {}
</span><span class="line">redhat mgmt key      : &lt;&lt;inherit&gt;&gt;
</span><span class="line">redhat mgmt server   : &lt;&lt;inherit&gt;&gt;
</span><span class="line">repos                : []
</span><span class="line">server               : &lt;&lt;inherit&gt;&gt;
</span><span class="line">template_files       : {}
</span><span class="line">virt bridge          : xenbr0
</span><span class="line">virt cpus            : 1
</span><span class="line">virt file size       : 5
</span><span class="line">virt path            :
</span><span class="line">virt ram             : 512
</span><span class="line">virt type            : qemu</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="kickstart">kickstartファイルの用意</h2>

<p><code>/var/lib/cobbler/kickstarts/SL61-x86_64-basic.ks</code>とかを適当に用意して、ksファイルをデフォルトの<code>/var/lib/cobbler/kickstarts/default.ks</code>から変更</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo cobbler profile edit --name=SL6.1-x86_64 --kickstart=/var/lib/cobbler/kickstarts/SL61-x86_64-basic.ks</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="os">OSのインストール</h2>

<p>とりあえず、<code>cobbler system add</code> 無しでサーバに電源投入。
下記のようにcobblerが走って、SL6.1を選べばOSインストール完了。</p>

<p><img src="http://blog.glidenote.com/images/2012/02/cobbler.png" alt="" />
<img src="http://blog.glidenote.com/images/2012/02/cobbler2.png" alt="" /></p>

<p><code>cobbler system add</code> して事前にサーバの各種固有情報を登録しておけば電源投入するだけ。</p>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Filesystem Hierarchy Standard]]></title>
    <link href="http://blog.glidenote.com/blog/2012/02/01/filesystem-hierarchy-standard/"/>
    <updated>2012-02-01T22:10:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/02/01/filesystem-hierarchy-standard</id>
    <content type="html"><![CDATA[<ul>
  <li><a href="http://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">Filesystem Hierarchy Standard</a></li>
  <li><a href="http://www.itmedia.co.jp/help/howto/linux/0007master/14/">エンタープライズ： - 第14回：FHSによるディレクトリの規格化</a></li>
</ul>

<p>FHS守りましょう。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[ソーシャルブックマークのデータをPinboardに集約して一元管理]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/29/pinboard/"/>
    <updated>2012-01-29T02:07:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/29/pinboard</id>
    <content type="html"><![CDATA[<p><img src="http://blog.glidenote.com/images/2012/01/pinboard.png" width="200" height="150" align="right" /></p>

<ul>
  <li><a href="http://pinboard.in/">Pinboard: social bookmarking for introverts</a></li>
</ul>

<p>気になった情報をMac、iPhone、iPad、Androidと各種端末、
各種アプリのTwitter連携、ソーシャルブックマーク連携を使ってPostしていたら、
どこに何の情報があるか分からなくなってカオス化してきたので、
すべての情報が最終的に一つになるようにPinboardを利用し始めました。  </p>

<p>そもそもMac、iPhoneとAndroidのRSSリーダ、Twitterクライアントなどはアプリごとで、連携出来るソーシャルサービスが違うので、
Deliciousに突っ込んだり、Twitterに投稿したり、じっくりKindleで読むようにInstapaperに送ったり適当に利用してたのが原因。</p>

<p>Pinboardの何が良いかまとめると</p>

<h2 id="pinboard">Pinboardの良い点</h2>

<ul>
  <li>動作がとにかく速い</li>
  <li>見た目がシンプル</li>
  <li><a href="http://delicious.com/">Delicious</a>、<a href="http://www.instapaper.com/">Instapaper</a>、<a href="http://www.readability.com/">Readability</a>から新規に追加したデータを
自動インポートしてくれるので、各種端末、各種アプリのソーシャル連携機能はそのままの利用方法でOK。ブックマークレットとかも使い回し可。</li>
  <li>Twitter連携機能。URL付きの自分のtweet、favoritesをブックマークに追加してくれる</li>
</ul>

<p>Pinboardの自動インポート機能のおかげで、これまでと同じように、Deliciousに投げたり、Twitterに送ったりと、
使い方を特に意識しなくても最終的に全部Pinboardに同期集約されるのが素晴らしい。</p>

<p>利用するのに登録料$9.63がかかりますが、情報が一元管理出来てスッキリです。
<a href="http://ifttt.com/">ifttt</a>を活用すれば他にも情報をPinboardに集約できそうです。</p>

<h2 id="section">参考</h2>

<ul>
  <li><a href="http://shigeya.org/blog/archives/2011/03/deliciouspinboard.html">Deliciousの代替にはPinboardがオススメ - LocalScope::</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Githubで利用されているボットシステムHUBOTを動かしてみた]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/24/install-hubot/"/>
    <updated>2012-01-24T23:58:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/24/install-hubot</id>
    <content type="html"><![CDATA[<p><img src="http://blog.glidenote.com/images/2012/01/hubot.png" alt="" /></p>

<ul>
  <li><a href="http://hubot.github.com/">HUBOT</a></li>
</ul>

<p>Githubで利用されているらしいボットシステム<a href="http://hubot.github.com/">HUBOT</a>を触ってみました。
HUBOTを動かすのに、node.jsとnpmが必要なので先に導入。導入環境はScientific Linux6.1です</p>

<h2 id="nodejs">node.jsの導入</h2>

<p><a href="http://nodejs.org/">node.js</a>から最新版0.6.8(2012年1月23日現在)を導入。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
</pre></td><td class="code"><pre><code class=""><span class="line">mkdir ~/src
</span><span class="line">cd ~/src
</span><span class="line">wget http://nodejs.org/dist/v0.6.8/node-v0.6.8.tar.gz
</span><span class="line">tar zxvf node-v0.6.8.tar.gz
</span><span class="line">cd node-v0.6.8
</span><span class="line">./configure
</span><span class="line">make
</span><span class="line">sudo make install</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="npm">npmの導入</h2>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo -s
</span><span class="line">curl http://npmjs.org/install.sh | sh
</span><span class="line">exit</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="section">依存ライブラリの導入</h2>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
</pre></td><td class="code"><pre><code class=""><span class="line">cd ~
</span><span class="line">git clone git://github.com/github/hubot.git
</span><span class="line">cd hubot
</span><span class="line">npm install</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="hubot">HUBOTの起動</h2>

<p>このままだとcoffee-scriptのpathが見つけられないので、exportで一時的にpathを通す。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">export PATH="node_modules/.bin:$PATH"</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>HUBOTを起動</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">bin/hubot</span></code></pre></td></tr></table></div></figure></notextile></div>

<p><code>hubot help</code> を打ってみると下記のような感じ</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
</pre></td><td class="code"><pre><code class=""><span class="line">$ bin/hubot
</span><span class="line">[Tue, 24 Jan 2012 09:47:47 GMT] INFO Loading scripts from /home/akira/src/node-v0.6.8/hubot/scripts
</span><span class="line">[Tue, 24 Jan 2012 09:47:47 GMT] INFO Loading scripts from /home/akira/src/node-v0.6.8/hubot/src/scripts
</span><span class="line">Hubot&gt; hubot help
</span><span class="line">Hubot&gt; &lt;user&gt; is a badass guitarist - assign a role to a user
</span><span class="line">&lt;user&gt; is not a badass guitarist - remove a role from a user
</span><span class="line">animate me &lt;query&gt;  - The same thing as `image me`, except adds a few
</span><span class="line">convert me &lt;expression&gt; to &lt;units&gt; - Convert expression to given units.
</span><span class="line">help - Displays all of the help commands that Hubot knows about.
</span><span class="line">help &lt;query&gt; - Displays all help commands that match &lt;query&gt;.
</span><span class="line">image me &lt;query&gt;    - The Original. Queries Google Images for &lt;query&gt; and
</span><span class="line">map me &lt;query&gt; - Returns a map view of the area returned by `query`.
</span><span class="line">math me &lt;expression&gt; - Calculate the given expression.
</span><span class="line">mustache me &lt;query&gt; - Searches Google Images for the specified query and
</span><span class="line">mustache me &lt;url&gt;   - Adds a mustache to the specified URL.
</span><span class="line">pug bomb N - get N pugs
</span><span class="line">pug me - Receive a pug
</span><span class="line">show storage - Display the contents that are persisted in redis
</span><span class="line">show users - Display all users that hubot knows about
</span><span class="line">translate me &lt;phrase&gt; - Searches for a translation for the &lt;phrase&gt; and then
</span><span class="line">translate me from &lt;source&gt; into &lt;target&gt; &lt;phrase&gt; - Translates &lt;phrase&gt; from &lt;source&gt; into &lt;target&gt;. Both &lt;source&gt; and &lt;target&gt; are optional
</span><span class="line">who is &lt;user&gt; - see what roles a user has
</span><span class="line">youtube me &lt;query&gt; - Searches YouTube for the query and returns the video</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>渋谷の地図を聞いてみると</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Hubot&gt; hubot map me shibuya
</span><span class="line">Hubot&gt; http://maps.google.com/maps/api/staticmap?markers=shibuya&amp;size=400x400&amp;maptype=roadmap&amp;sensor=false&amp;format=png
</span><span class="line">Hubot&gt; http://maps.google.com/maps?q=shibuya&amp;hl=en&amp;sll=37.0625,-95.677068&amp;sspn=73.579623,100.371094&amp;vpsrc=0&amp;hnear=shibuya&amp;t=m&amp;z=11</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>とりあえず動かすのは簡単にできた。<br />
CoffeeScriptで機能拡張するようなので勉強しよう</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[ERROR Invalid kernel: xc_dom_find_loader: no loader found]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/23/invalid-kernel-xc_dom_find_loader-no-loader-found/"/>
    <updated>2012-01-23T10:15:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/23/invalid-kernel-xc_dom_find_loader-no-loader-found</id>
    <content type="html"><![CDATA[<p>オフィスが入ってるビルの法令停電の関係で、開発サーバのXen母艦のサーバを再起動したら、ゲストOSが起動しなくなって少しハマったのでメモ。</p>

<p>自動起動にしているVMが起動していなかったので、試しに<code>xm create hogehoge</code>とかやったら</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Error: (2, 'Invalid kernel', 'xc_dom_find_loader: no loader found\n')</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>続けて、<code>xm create mogemoge</code>と別のVMを起動しても</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Error: (1, 'Internal error', 'xc_dom_do_gunzip: inflate failed (rc=-5)\n')</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>とエラーが出て起動しなかった、いろいろググってみて対応してみるも現象変わらず。</p>

<p>xenのログをよく見返してみたら、上のエラーに埋もれて</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">IOError: [Errno 28] No space left on device</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>が出ており、<code>df</code>を打ってみたら<code>/var</code>が100%になっていたので、
<code>/var</code>配下の不要なファイルを削除し、<code>xm create hogehoge</code>を再度実行したら正常に起動。</p>

<p>単なる容量不足のエラーなんですが、表示が紛らわしい。</p>

<p>先週の法令停電では問題無かったので、甘く見ててハマりました。<br />
早めに出社して、始業前に解決したので良かった</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[みんな、Vimpusherで便利なVim pluginを共有しようぜ!!]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/15/vimpusher/"/>
    <updated>2012-01-15T10:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/15/vimpusher</id>
    <content type="html"><![CDATA[<p><a href="http://www.vimpusher.com/"><img src="http://blog.glidenote.com/images/2012/01/vimpusher.png" align="right" /></a></p>

<ul>
  <li><a href="http://www.vimpusher.com/">Vimpusher</a></li>
  <li><a href="http://d.hatena.ne.jp/bannyan/20120104/1325689087">Vimpusher という Web サービスをリリースしました - 写経日記</a></li>
</ul>

<p>同僚の@banyanさんが作った<a href="http://www.vimpusher.com/">Vimpusher</a>がスゲー良いんです!!<br />
何が良いかまとめると</p>

<h2 id="section">すごい点</h2>

<ul>
  <li>今みんなが利用している、いわゆる流行のVim pluginを知ることが出来る。未知のPluginを発見出来る</li>
  <li>トップエンジニアの使っているVim pluginが分かる。（開発環境が垣間見れる!!)</li>
  <li>他の人の.vimrcをリンクから辿って参考に出来る(カオスになりがちな.vimrcの記述方法を参考に出来る)</li>
</ul>

<p>たとえばVimの整形Pluginといえば、<a href="http://www.vimpusher.com/plugins/9">Align</a>しか知らなかったんですが、
Vimpusherのおかげで<a href="http://www.vimpusher.com/plugins/11">vim-alignta</a>というものがあると知ることが出来ました。  </p>

<p>そのほかにもVim Pluginを通じて、今どんな言語、技術にみんなが感心を持って
取り組んでいるのかも認識出来て素晴らしいです。(<a href="http://www.vimpusher.com/plugins/34">vim-coffee-script</a>使ってる人多いすね)</p>

<h2 id="section-1">俺が考える、あればもっと便利と思う機能(要望)</h2>

<ul>
  <li>.vimrcを直接入力させ集計(.vimrcを非公開にしている人も結構いると思うので)</li>
  <li>ユーザ検索</li>
  <li>ホッテントリ的な人気急上昇Pluginの表示(RSSとかあるとうれしい)</li>
  <li><a href="http://www.vimpusher.com/plugins/50">この画面</a>で<code>Bundle 'hogemoge.vim'</code>とか.vimrcにすぐ記載出来る表記の表示</li>
</ul>

<p>Vimpusherは仕組み的にVim使ってる人が、.vimrcを登録していかないと統計としては廃れていってしまうので、
魅力あるサービス成長のためにみんなで広めていきましょう!!</p>

<p>ちなみに私のVimpusherはこちら  </p>

<ul>
  <li><a href="http://www.vimpusher.com/glidenote">http://www.vimpusher.com/glidenote</a></li>
</ul>

<p>ステマなので、ユーザが増えたら@banyanさんから寿司を奢ってもらいます</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[パケットリピータstoneでVNC接続を中継する]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/08/vnc-with-stone/"/>
    <updated>2012-01-08T12:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/08/vnc-with-stone</id>
    <content type="html"><![CDATA[<ul>
  <li><a href="http://www.gcd.org/sengoku/stone/Welcome.ja.html">Simple Repeater `stone’</a></li>
</ul>

<p>普段MacとLinuxを利用しているので、ほとんどがsshしてコマンド操作(CUI)で用が足りるんですが、
たまに遠隔地にあるWindows上でGUI操作をしないといけないことがあるので、stoneとvncで解決させました。
いろいろと方法はあると思いますが、stoneが一番手軽だったので。<br />
(普段利用している<a href="http://utvpn.tsukuba.ac.jp/ja/">UT-VPN</a>はWin用とLinux用のクライアントはあるんですが、Mac用クライアントが無いので、こんな面倒なことをしてます。)</p>

<h2 id="section">現在の状態</h2>

<ul>
  <li>MacbookAirとServerAは同じネットワーク(192.168.11.0/24)</li>
  <li>ServerAとWindowsPCはVPN(UT-VPN)環境を構築済みで通信可能(172.16.100.0/24)</li>
  <li>Macbook AirとWindowsPCは直接通信不可(WindowsPCは遠隔地でNAT配下)</li>
</ul>

<h2 id="osip">環境(OS、IPアドレス)</h2>

<ul>
  <li>MacbookAir(Lion) 192.168.11.20</li>
  <li>ServerA(Fedora16) 192.168.11.30,172.16.100.50</li>
  <li>WindowsPC(XP) 172.16.100.10</li>
</ul>

<h2 id="section-1">実現したいこと</h2>

<ul>
  <li>stoneでパケットを中継して、MacBookAirからWindowsPCへのVNC接続を可能にする</li>
  <li>MacbookAirからServerAの5910ポート(192.168.11.30:5910)にVNC接続すると、stoneで中継されWindowsPCの5900ポート(172.16.100.10:5900)に接続される</li>
  <li>VPN(UT-VPN)上の通信で既に暗号化されているので、今回stoneでSSL化の必要は無し</li>
</ul>

<p><img src="http://blog.glidenote.com/images/2012/01/stone-vnc.png" alt="" /></p>

<h2 id="stone">stoneの導入</h2>
<p>stoneはServerA(Fedora16)に導入</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
</pre></td><td class="code"><pre><code class=""><span class="line">mkdir ~/src ~/bin
</span><span class="line">cd ~/src
</span><span class="line">wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz
</span><span class="line">tar zxvf stone-2.3e.tar.gz
</span><span class="line">cd stone-2.3d-2.3.2.7
</span><span class="line">curl -o stone.diff -LO "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=stone.diff;att=1;bug=517574"
</span><span class="line">patch &lt; stone.diff
</span><span class="line">make linux
</span><span class="line">cp stone ~/bin</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>デフォルトのままだと<code>make linux</code>でこけるので、<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517574">ここのpatch</a>も適用してます。patchの内容は下記のような感じで<code>-D_GNU_SOURCE</code>を追加している感じ</p>

<div><script src="https://gist.github.com/1573695.js?file="></script>
<noscript><pre><code>--- Makefile	2008-02-05 08:00:00.000000000 +0900
+++ Makefile	2009-08-19 08:59:00.000000000 +0900
@@ -97,7 +97,7 @@
 	$(MAKE) FLAGS=&quot;-DNT_SERVICE $(FLAGS)&quot; LIBS=&quot;$(LIBS) $(SVC_LIBS) -ladvapi32 -luser32 -lshell32 -lkernel32&quot; $(TARGET)
 
 linux:
-	$(MAKE) FLAGS=&quot;-O -Wall -DCPP='\&quot;/usr/bin/cpp -traditional\&quot;' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL $(FLAGS)&quot; LIBS=&quot;-lpthread $(LIBS)&quot; stone
+	$(MAKE) FLAGS=&quot;-O -Wall -DCPP='\&quot;/usr/bin/cpp -traditional\&quot;' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)&quot; LIBS=&quot;-lpthread $(LIBS)&quot; stone
 
 linux-pop:
 	$(MAKE) TARGET=linux pop_stone</code></pre></noscript></div>

<h2 id="stone-1">stoneの起動</h2>
<p>5910ポートで待ち受けて、WindowsPC(172.16.100.10)の5900ポートに中継させます</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
</pre></td><td class="code"><pre><code class=""><span class="line">~/bin/stone 172.16.100.10:5900 5910
</span><span class="line">
</span><span class="line">Jan  7 12:33:43.735910 3078318336 start (2.3e) [11176]
</span><span class="line">Jan  7 12:33:43.759207 3078318336 stone 3: colinux:rfb &lt;- 0.0.0.0:cm</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>常用するなら、supervisordとかで起動を管理するのがいいと思いますが、一時的に利用するだけなので、フォアグランドで起動。</p>

<h2 id="macbookairvnc">MacbookAirからVNC接続</h2>

<p>Macの画面共有だとうまく接続できないので、<a href="http://www.macupdate.com/app/mac/9517/chicken-of-the-vnc">Chicken of the VNC</a>を利用。<br />
うまくVNC接続出来ました。</p>

<h2 id="section-2">参考</h2>

<ul>
  <li><a href="http://biokids.org/?%A4%C9%A4%D6%A4%AA%2FLinux%A4%C7%CD%B7%A4%DC%A4%A6%A1%AA%2F%A5%D1%A5%B1%A5%C3%A5%C8%A5%EA%A5%D4%A1%BC%A5%BFstone">どぶお/Linuxで遊ぼう！/パケットリピータstone - BioKids Wiki</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Rails3.1 Could not find a JavaScript runtime.]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/07/rails3.1-could-not-find-a-javascript-runtime./"/>
    <updated>2012-01-07T20:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/07/rails3.1-could-not-find-a-javascript-runtime.</id>
    <content type="html"><![CDATA[<p>普段業務で使ってる環境以外も勉強しないとやばいなーと思って、Railsを触ってるんですが、
Ruby力も、Rails力もなさ過ぎでいきなりつまずいたのでメモ。</p>

<p>環境</p>

<ul>
  <li>ruby 1.9.2p290 (2011-07-09 revision 32553) [x86 64-linux] </li>
  <li>Rails 3.1.3</li>
</ul>

<p><code>rails new</code>で新規アプリを作成</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
</pre></td><td class="code"><pre><code class=""><span class="line">rails new hoge
</span><span class="line">cd hoge
</span><span class="line">rake about</span></code></pre></td></tr></table></div></figure></notextile></div>

<p><code>rake about</code>で環境を確認すると</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
</pre></td><td class="code"><pre><code class=""><span class="line">rake aborted!
</span><span class="line">Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
</span><span class="line">
</span><span class="line">(See full trace by running task with --trace)</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>JavaScriptのランタイムが検出できないとのエラーとのエラー。エラーでググってみると
<code>execjs</code>と<code>therubyracer</code>を導入すれば解決するとのことなので導入</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
</pre></td><td class="code"><pre><code class=""><span class="line">echo "gem 'execjs'" &gt;&gt; Gemfile
</span><span class="line">echo "gem 'therubyracer'" &gt;&gt; Gemfile
</span><span class="line">bundle install</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>再度<code>rake about</code>を実行すると</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
</pre></td><td class="code"><pre><code class=""><span class="line">rake about
</span><span class="line">
</span><span class="line">About your application's environment
</span><span class="line">Ruby version              1.9.2 (x86_64-linux)
</span><span class="line">RubyGems version          1.8.10
</span><span class="line">Rack version              1.3
</span><span class="line">Rails version             3.1.3
</span><span class="line">JavaScript Runtime        therubyracer (V8)
</span><span class="line">Active Record version     3.1.3
</span><span class="line">Action Pack version       3.1.3
</span><span class="line">Active Resource version   3.1.3
</span><span class="line">Action Mailer version     3.1.3
</span><span class="line">Active Support version    3.1.3
</span><span class="line">Middleware                ActionDispatch::Static, Rack::Lock, #&lt;ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x0000001c986b58&gt;, Rack::Runtime, Rack::MethodOverride, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::RemoteIp, Rack::Sendfile, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, ActionDispatch::Head, Rack::ConditionalGet, Rack::ETag, ActionDispatch::BestStandardsSupport
</span><span class="line">Application root          /home/akira/work/hoge
</span><span class="line">Environment               development
</span><span class="line">Database adapter          sqlite3
</span><span class="line">Database schema version   </span></code></pre></td></tr></table></div></figure></notextile></div>

<p>ちゃんと動作するようになりました。今年はRuby力とRails力を鍛えていきたいと思います。</p>

<h2 id="section">参考</h2>

<ul>
  <li><a href="http://stackoverflow.com/questions/6282307/rails-3-1-execjs-and-could-not-find-a-javascript-runtime">Rails 3.1 execjs and Could not find a JavaScript runtime - Stack Overflow</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Shellでヒアドキュメント利用時に変数展開を抑制する]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/05/here-document-tips/"/>
    <updated>2012-01-05T21:43:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/05/here-document-tips</id>
    <content type="html"><![CDATA[<p>zshやbashでヒアドキュメントを利用するときに、いつも忘れてやらかすのでメモ</p>

<h2 id="section">変数展開してしまう例</h2>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
</pre></td><td class="code"><pre><code class=""><span class="line">cat &lt;&lt; EOF &gt;/etc/yum.repos.d/nginx.repo
</span><span class="line">[nginx]
</span><span class="line">name=nginx repo
</span><span class="line">baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
</span><span class="line">gpgcheck=0
</span><span class="line">enabled=1
</span><span class="line">EOF</span></code></pre></td></tr></table></div></figure></notextile></div>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
</pre></td><td class="code"><pre><code class=""><span class="line">cat /etc/yum.repos.d/nginx.repo
</span><span class="line">
</span><span class="line">[nginx]
</span><span class="line">name=nginx repo
</span><span class="line">baseurl=http://nginx.org/packages/centos///
</span><span class="line">gpgcheck=0
</span><span class="line">enabled=1</span></code></pre></td></tr></table></div></figure></notextile></div>

<p><code>$releasever</code>と<code>$basearch</code>が変数として展開されてしまう。</p>

<h2 id="section-1">変数展開しない例</h2>

<p>区切りシンボルをシングルクオート<code>'</code>かバッククオート<code>"</code>することで
変数展開を抑制出来る。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
</pre></td><td class="code"><pre><code class=""><span class="line">cat &lt;&lt; 'EOF' &gt;/etc/yum.repos.d/nginx.repo
</span><span class="line">[nginx]
</span><span class="line">name=nginx repo
</span><span class="line">baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
</span><span class="line">gpgcheck=0
</span><span class="line">enabled=1
</span><span class="line">EOF</span></code></pre></td></tr></table></div></figure></notextile></div>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
</pre></td><td class="code"><pre><code class=""><span class="line">cat /etc/yum.repos.d/nginx.repo
</span><span class="line">
</span><span class="line">[nginx]
</span><span class="line">name=nginx repo
</span><span class="line">baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
</span><span class="line">gpgcheck=0
</span><span class="line">enabled=1</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="section-2">参考記事</h2>

<ul>
  <li><a href="http://shellscript.sunone.me/input_output.html">入力と出力 - UNIX &amp; Linux コマンド・シェルスクリプト リファレンス</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[OctopressでRelated Posts(関連エントリー)を表示させるようにした]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/04/octopress-related-posts/"/>
    <updated>2012-01-04T20:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/04/octopress-related-posts</id>
    <content type="html"><![CDATA[<p>Octopressというか<a href="http://jekyllrb.com/">jekyll</a>自体に関連エントリーを表示させる<code>site.related_posts</code>というTemplate Dataがあるんですが、
利用してみると、内容的に似ている関連エントリーを表示するわけでは無く、単に最近のエントリーを表示するだけ。<br />
設定の問題なのかと思って調べていたら、</p>

<ul>
  <li><a href="http://techtinkering.com/2011/08/17/improving-related-posts-on-jekyll/">Improving the related_posts feature of jekyll</a></li>
</ul>

<p>に同様な記載があり、どうやらそういう挙動のようで、その挙動を改善するプラグインがあったので導入</p>

<h2 id="relatedposts-jekyllplugin">related_posts-jekyll_pluginの導入</h2>
<p>関連エントリーを表示させるために、related_posts-jekyll_pluginを利用</p>

<ul>
  <li><a href="https://github.com/LawrenceWoodman/related_posts-jekyll_plugin">LawrenceWoodman/related_posts-jekyll_plugin - GitHub</a></li>
</ul>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
</pre></td><td class="code"><pre><code class=""><span class="line">mkdir ~/tmp
</span><span class="line">cd ~/tmp
</span><span class="line">git clone https://github.com/LawrenceWoodman/related_posts-jekyll_plugin.git
</span><span class="line">cp related_posts-jekyll_plugin/_plugins/related_posts.rb ~/octopress/plugins/</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>octopressのpluginsディレクトリのパス<code>~/octopress/plugins</code>の部分は自分の環境に読み替えて下さい。
ソースを見ると関連したカテゴリーのエントリーを、最新の順に表示してくれるようになってます。
つまり個々のエントリーでちゃんとカテゴリーを指定しないと機能してくれません。</p>

<h2 id="octopresssourceincludespostrelatedpostshtml-">octopress/source/_includes/post/related_posts.html を用意</h2>
<p>下記のような関連エントリー表示用のhtmlを作成。<br />
limitを指定しないと、同じカテゴリーのエントリーが全部表示されてしまうので、<code>limit:5</code>で制限。  </p>

<div><script src="https://gist.github.com/1554272.js?file=related_posts.html"></script>
<noscript><pre><code>&lt;div class=&quot;related_posts&quot;&gt;&lt;h1&gt;Related Posts&lt;/h1&gt;&lt;ul&gt;
{% for post in site.related_posts limit:5 %}
  &lt;li&gt;&lt;a href=&quot;{{ post.url }}&quot;&gt;{{post.title }}&lt;/a&gt;&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></noscript></div>

<h2 id="octopresssourcelayoutsposthtml-">octopress/source/_layouts/post.html の修正</h2>
<p>上記で作成したhtmlをpost.htmlでinclude</p>

<div><script src="https://gist.github.com/1554272.js?file=post.html.diff"></script>
<noscript><pre><code>index d3c42e3..cd4c710 100644                                                                                                                                            
--- a/source/_layouts/post.html                                                                                                                                          
+++ b/source/_layouts/post.html                                                                                                                                          
@@ -15,6 +15,9 @@ single: true                                                                                                                                           
     {% unless page.sharing == false %}                                                                                                                                  
       {% include post/sharing.html %}                                                                                                                                   
     {% endunless %}                                                                                                                                                     
+    {% unless page.related_posts == false %}                                                                                                                            
+      {% include post/related_posts.html %}                                                                                                                             
+    {% endunless %}                                                                                                                                                     
     &lt;p class=&quot;meta&quot;&gt;                                                                                                                                                    
       {% if page.previous.url %}</code></pre></noscript></div>

<p>これで個々のエントリーに<code>Related Posts</code>として関連エントリーが表示されるようになりました。</p>

<p><img src="http://blog.glidenote.com/images/2012/01/related_posts.png" alt="" /></p>

<h2 id="section">参考</h2>
<ul>
  <li><a href="http://techtinkering.com/2011/08/17/improving-related-posts-on-jekyll/">Improving the related_posts feature of jekyll</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Octopressで構築されているCoolなサイト8選]]></title>
    <link href="http://blog.glidenote.com/blog/2012/01/03/cool-design-octopress-sites/"/>
    <updated>2012-01-03T20:07:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2012/01/03/cool-design-octopress-sites</id>
    <content type="html"><![CDATA[<p><a href="http://brandonmathis.com/"><img src="http://blog.glidenote.com/images/2012/01/Brandon_Mathis_Blog.png" width="324" height="162" align="right" /></a>
<a href="http://octopress.org/">Octopress</a>の唯一の弱点とも言えるのがデザインテンプレートの少なさ。自分で作れば下記みたいなシャレオツなサイトが構築できます。</p>

<ul>
  <li><a href="http://brandonmathis.com/">Brandon Mathis :: Design Enthusiast :: Blog</a></li>
  <li><a href="http://125px.com/">125px</a></li>
  <li><a href="http://aron.cedercrantz.com/">Aron Cedercrantz</a></li>
  <li><a href="http://www.saewitz.com/">Daniel Saewitz</a></li>
  <li><a href="http://paradoxdgn.com/">Paradox Designs</a></li>
  <li><a href="http://physiciancaredirect.com/employers/">Physician Care Direct for Employers - Affordable Healthcare - Physician Care Direct</a></li>
  <li><a href="http://practiceovertheory.com/">Practice Over Theory</a></li>
  <li><a href="http://blog.skaiciuokim.lt/">Skaičiuokim.lt :: Blog</a></li>
</ul>

<p>テンプレートをいじるとHTML5+CSS3+SASSの勉強にもなります。<br />
Wordpressのデザインテーマと比較するとかなり見劣りしますが、Octopressが普及すればもっといろんなシャレオツなサイトが出てくるでしょう。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sony Ericsson mini(S51SE)をRootedのまま4.0.2.A.0.61へアップデート]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/29/s51se-4.0.2.a.0.61-rooted/"/>
    <updated>2011-12-29T23:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/29/s51se-4.0.2.a.0.61-rooted</id>
    <content type="html"><![CDATA[<p><img src="http://blog.glidenote.com/images/2011/12/s51se_rooted.png" width="240" height="320" align="right" />
以前、<a href="http://blog.glidenote.com/blog/2011/11/15/ericsson-mini-rooted/">Sony Ericsson mini(S51SE)のroot権限を取得 - Glide Note - グライドノート</a>で
Sony Ericsson mini（S51SE）のroot権限を取得していたのですが、4.0.2.A.0.61にアップデートしたらroot権限が無くなってしまい、
再度root権限取得のために作業したのでメモ。毎度のことながら自己責任で。</p>

<p>細かい手順は端折りますが、下記のような流れでうまくいきました。下記の作業はWindowsじゃないと作業が出来ません。    </p>

<ol>
  <li><a href="http://www.wotanserver.com/en">WotanServer.com</a>に登録</li>
  <li><a href="http://www.wotanserver.com/en/sony-ericsson/se/xperia-mini-s51se/unlock-tool/debranding-flash">Sony Ericsson Xperia mini S51SE Unlock Tool</a>から下記2ツールをダウンロード
    <ul>
      <li>USB Flash Driver</li>
      <li>WotanClient 3</li>
    </ul>
  </li>
  <li>WotanClient 3を利用して、Sony Ericsson miniを工場出荷時の4.0.2.A.0.58に戻す(当然ですがデータが全部消えます)</li>
  <li>DooMLoRD’s Easy Rooting Toolkitを用いて<a href="http://blog.glidenote.com/blog/2011/11/15/ericsson-mini-rooted/">以前と同じ手順</a>でroot権限取得</li>
  <li>root権限取得したら、Sony Ericsson mini単体で4.0.2.A.0.61にアップデートする(輝度調整無効のためにファイル差し替えとかしてるとアップデートが出来なかったので、デフォの状態でアップデートをかける)</li>
  <li>4.0.2.A.0.61のなってもrootedの状態なのを確認</li>
  <li>Titanium Backup(要root権限)で取得しておいたバックアップからアプリのデータを復元で以前の以前のRootedの状態に元通り</li>
</ol>

<p>ちなみにWotanServerからS51SEのファームウェアは登録が必要ですが無料で取得できます。</p>

<h2 id="section">関連記事</h2>

<ul>
  <li><a href="http://blog.glidenote.com/blog/2011/11/15/ericsson-mini-rooted/">Sony Ericsson mini(S51SE)のroot権限を取得 - Glide Note - グライドノート</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Rudixを利用して、Xcodeの無いMacにUnix系ソフトウェアを導入する]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/29/rudix-on-mac/"/>
    <updated>2011-12-29T11:34:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/29/rudix-on-mac</id>
    <content type="html"><![CDATA[<p><a href="http://rudix.org/"><img src="http://blog.glidenote.com/images/2011/12/rudix.jpg" width="315" height="216" align="right" /></a>
<a href="http://rudix.org/">Rudix: The hassle-free way to get Unix programs on Mac OS X</a>  </p>

<p>MacでUnix系のソフトウェアを利用するときはHomebrewかMacPortsなどを利用するのが一般的かと思いますが、
両方ともXCodeを必要として、MBAといったディスク容量の少ないモデルだと、容量バカ食いのXCodeを入れるのはためらわれます。</p>

<p>私自身、HDD容量に余裕のあるMac miniにはXCodeとHomebrewを入れていますが、MBAにはディスク容量の問題からXcodeを入れていません。
(そもそも外部サーバにssh接続して、作業しているのでMacでコンパイル作業しないってのもありますが)</p>

<p>しかしながらXcodeを入れてないMacでもrsync3系やtmuxなど、Unix系のソフトウェアを利用したい事が少なからずあるので、
そんな時に利用するのが<a href="http://rudix.org/">Rudix</a>です。  </p>

<p>Rudixの仕組みとしてはあらかじめMac用にコンパイルされたUnix系ソフトのpkg、dmgファイルを用いてソフトウェアを導入するので
非常に軽快に動作し、Xcode自体も不要です。</p>

<h2 id="rudix">Rudixの特徴</h2>

<p>Rudixの特徴としては下記のような事項が挙げられています。</p>

<ul>
  <li>LionとSnow Leopard用に設計</li>
  <li>すべてのパッケージが依存関係を解決している(必要なライブラリなどはパッケージに含まれているので、インストールするだけで利用可能)</li>
  <li>幅広いパッケージの選択肢</li>
  <li>パッケージがすぐに利用可能(コンパイル作業不要)</li>
  <li>Webとコマンドラインの両方で利用可能</li>
</ul>

<p>イメージとしては私が普段利用しているRHEL系OSのyumに近いです。</p>

<h2 id="rudix-1">Rudixの導入</h2>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
</pre></td><td class="code"><pre><code class=""><span class="line">mkdir ~/src
</span><span class="line">cd ~/src
</span><span class="line">curl -O http://rudix.googlecode.com/hg/Ports/rudix/rudix.py
</span><span class="line">sudo python rudix.py install rudix</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>zshの場合は下記を実行して、rudixを認識させましょう</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">exec $SHELL</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="rudix-2">Rudixの利用方法</h2>

<h3 id="section">ソフトウェアの検索</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix search &lt;package-name&gt;</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>たとえばrsyncを検索してみると下記のような感じ。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix search rsync</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-1">ソフトウェアのインストール</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix install &lt;package-name&gt;</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>Rudixを利用してrsyncを導入してみた場合は下記のような感じ。
あらかじめコンパイルされたパッケージを導入しているので、早いです。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix install rsync
</span><span class="line">
</span><span class="line">Downloading rudix.googlecode.com/files/rsync-3.0.9-0.pkg
</span><span class="line">######################################################################## 100.0%
</span><span class="line">installer: Package name is Rsync 3.0.9
</span><span class="line">installer: Installing at base path /
</span><span class="line">installer: The install was successful.
</span><span class="line">All done</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>すると/usr/local/bin/ の下に導入されます。</p>

<p>zshを利用している場合は</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">exec $SHELL</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>とか実行しないとpathを認識しないです。</p>

<h3 id="rudix-3">Rudixで管理しているソフト一覧表示</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix list</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="section-2">ソフトウェアのアンインストール</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix remove パッケージ名</span></code></pre></td></tr></table></div></figure></notextile></div>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sudo rudix remove rsync
</span><span class="line">
</span><span class="line">もしくは
</span><span class="line">
</span><span class="line">sudo rudix remove org.rudix.pkg.rsync</span></code></pre></td></tr></table></div></figure></notextile></div>

<h3 id="rudix-4">Rudixのオプション</h3>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
<span class="line-number">24</span>
<span class="line-number">25</span>
<span class="line-number">26</span>
<span class="line-number">27</span>
<span class="line-number">28</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Rudix Package Manager -- RPM ;D
</span><span class="line">
</span><span class="line">Usage:
</span><span class="line">rudix [help|version|list|remove-all|verify-all|update|interactive]
</span><span class="line">      [info &lt;package-id&gt;|files &lt;package-id&gt;|install &lt;package-id&gt;|remove &lt;package-id&gt;|search &lt;package-id&gt;|owner &lt;path&gt;|verify &lt;package-id&gt;|fix &lt;package-id&gt;]
</span><span class="line">
</span><span class="line">rudix [-h|-v|-l|-R|-K|-u|-z]
</span><span class="line">      [-I &lt;package-id&gt;|-L &lt;package-id&gt;|-i &lt;package-id&gt;|-r &lt;package-id&gt;|-s &lt;package-id&gt;|-S &lt;path&gt;|-V &lt;package-id&gt;|-f &lt;package-id&gt;|-n &lt;package-id&gt;]
</span><span class="line">
</span><span class="line">List all installed packages (package-id) unless options are given, like:
</span><span class="line">  -h    This help message
</span><span class="line">  -v    Print version
</span><span class="line">  -l    List all installed packages (package-id, version and install date)
</span><span class="line">  -I    Print package information (package-id, version and install date)
</span><span class="line">  -L    List package content
</span><span class="line">  -i    Install package (download if not a file)
</span><span class="line">  -r    Remove package
</span><span class="line">  -R    Remove *all* Rudix packages installed (ask to confirm)
</span><span class="line">  -s    List available versions for package-id
</span><span class="line">  -S    Search for &lt;path&gt; in all packages and print if matched
</span><span class="line">  -V    Verify package
</span><span class="line">  -K    Verify all installed packages
</span><span class="line">  -f    Fix (repair) package
</span><span class="line">  -n    Download and install package (remote install)
</span><span class="line">  -u    Download and install all updated packages (remote update)
</span><span class="line">  -z    Interactive mode (type exit to quit)
</span><span class="line">
</span><span class="line">Where &lt;package-id&gt; is either org.rudix.pkg.&lt;name&gt; or &lt;name&gt;.</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>パッケージ数がHomebrewに比べると少ないですが、下記のようにもっとパッケージ欲しいなら他のパッケージ管理システムを利用しろと公式でも書いてありますし、
主要なUnix系のソフトはRudixに揃っているので、私はだいたいはこれで十分です。</p>

<blockquote><p>I dislike Rudix. Is there any alternative?</p><p>We recommend Homebrew if you need more packages than we have or just dislike Rudix. There are other package systems for Mac OS X if you want also:</p><p> * MacPorts<br /> * Fink</p><footer><strong>FAQ - rudix - Frequently Asked Questions</strong><cite><a href="http://code.google.com/p/rudix/wiki/FAQ">code.google.com/p/rudix/wiki/&hellip;</a></cite></footer></blockquote>

<p>また下記ページから各種pkgとdmgの検索とダウンロードも出来ます。</p>

<ul>
  <li><a href="http://code.google.com/p/rudix/downloads/list">Downloads - rudix - Rudix: The hassle-free way to get Unix programs on Mac OS X - Google Project Hosting</a></li>
</ul>

<p>yumやaptのような使い方でわかりやすいですし、Xcodeも必要無いので、ローカル環境をクリーンに保つという意味でもSSD容量の少ないMacBook Airでめちゃくちゃ重宝してます。</p>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[DynamicDNSを利用し、iptablesとhosts.allowのルールに自宅IPを自動で追加する]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/28/dyndns-iptables-hosts.allow/"/>
    <updated>2011-12-28T20:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/28/dyndns-iptables-hosts.allow</id>
    <content type="html"><![CDATA[<p>最近急に自宅のIPがころころ変わるようになって、さくらのVPSでhosts.allowとiptablesで接続元のIP制限をかけてると
ssh接続出来なくなるので自動でルールが変更になるように対応。環境はCentOS 5.7です</p>

<h2 id="section">やりたいこと</h2>

<ul>
  <li>iptablesとhosts.allowの両方で接続元のIPを制限したい</li>
  <li>自宅に割り当てられているIPが変更になったら自動でルールを変更</li>
</ul>

<h2 id="section-1">前提条件</h2>

<p>私はダイナミックDNSを利用して、自宅IPとドメインを紐付けしているので、ISPから割り当てられているIPが変わっても、
ダイナミックDNSで利用しているドメインは変わりません。以前書いているので、参考にしてください。<br />
そのほかにsshd.configやiptablesの設定は完了済みです。</p>

<ul>
  <li><a href="http://www.glidenote.com/archives/1255">ダイナミックDNSを利用して自宅サーバにアクセスする | Glide Note - グライドノート</a></li>
  <li>sshは鍵認証、rootログイン禁止とか設定済み</li>
  <li>iptablesの基本ルールは/etc/sysconfig/iptablesで用意済み</li>
</ul>

<h2 id="etchostsallow-">/etc/hosts.allow の動的変更</h2>

<p><a href="https://twitter.com/#!/tnmt">@tnmt</a>に教えてもらった、hosts.allowのinclude設定を利用して、自宅IPを動的に登録</p>

<ul>
  <li><a href="http://blog.tnmt.info/2011/11/30/hosts-allow-include/">/etc/hosts.allowで外部ファイルをincludeして使う - blog.tnmt.info</a> </li>
</ul>

<h3 id="etchostsallow-include">/etc/hosts.allow にinclude設定</h3>

<p>hosts.allowを下記のように設定。hosts.allowを直接変更するのではなく、includeしているファイルに変更をかけます。</p>

<div><script src="https://gist.github.com/1524517.js?file=hosts.allow"></script>
<noscript><pre><code>sshd:    /etc/hosts.allow.d/my_home_ip</code></pre></noscript></div>

<p>cronに下記のように設定。hostコマンドで自宅IPを割り出し、ファイルに書き込み。
hogehoge.comは自分のダイナミックDNSで利用しているドメインを指定</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">00 * * * * /usr/bin/host hogehoge.com | awk '{print $4}' &gt; /etc/hosts.allow.d/my_home_ip</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="iptables">iptablesのルールを動的に追加</h2>

<p>下記のようなスクリプトを用意し、これもcronに追加</p>

<div><script src="https://gist.github.com/1524517.js?file=allow_ip.sh"></script>
<noscript><pre><code>#!/bin/sh

ALLOW_IP=`host hogehoge.com | awk '{print $4}'`

PORT_LIST=&quot;
22 
80 
443 
3000 
4000 
4949 
9821
&quot;

# condrestartで設定をリセット
/etc/rc.d/init.d/iptables condrestart

for port in ${PORT_LIST}
do
echo &quot;/sbin/iptables -I RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp -s ${ALLOW_IP} --dport ${port} -j ACCEPT&quot;
/sbin/iptables -I RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp -s ${ALLOW_IP} --dport ${port} -j ACCEPT
done

/sbin/iptables -L -n</code></pre></noscript></div>

<p>cronの設定は下記のような感じ</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
</pre></td><td class="code"><pre><code class=""><span class="line">@reboot    /bin/sh /root/bin/allow_ip.sh
</span><span class="line">00 * * * * /bin/sh /root/bin/allow_ip.sh</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>これで自宅IPが変わっても、iptablesとhosts.allowで許可されるようになりました。</p>

<h2 id="section-2">参考</h2>

<ul>
  <li><a href="http://d.hatena.ne.jp/kazuhooku/20080502/1209704193">Dynamic DNS を使って SSH アクセスを制限する方法 - kazuhoのメモ置き場</a></li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[/etc/hosts.deny, missing newline or line too long]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/27/hosts-deny-error/"/>
    <updated>2011-12-27T20:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/27/hosts-deny-error</id>
    <content type="html"><![CDATA[<p>普段iptablesとTCP Wrapperrでアクセス制限をかけているんですが、hosts.denyの設定見直しをしていて、
/var/log/secureに下記のようなログが吐かれて動作していないサーバがあったのでメモ</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">sshd[20929]: warning: /etc/hosts.deny, line 0: missing newline or line too long</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="etchostsdeny">/etc/hosts.denyの設定</h2>

<p>問題のhosts.denyは下記のような設定で一見問題が無さそうに見える</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">ALL : ALL</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="section">機能しなかった原因</h2>

<p>原因は下記の通り、設定行に改行コードが含まれていないことが原因でした</p>

<blockquote><p>ホストアクセスファイルの最後の行が、改行マーク([Enter]キーを 押して出るマーク)でなければ、そのファイル内の最後の規則は、失敗してエラーが /var/log/messages又は/var/log/secureに ログされます。これは、規則の行が逆スラッシュを使用することなく、複数行に跨ぐ場合にも 同様の問題となります。以下の例では、以上のどちらかの状況による規則違反のログメッセージ の関連する部分を表示しています：</p><footer><strong>TCPラッパーの設定ファイル</strong><cite><a href="http://www.jp.redhat.com/manual/Doc9/rhl-rg-ja-9/s1-tcpwrappers-access.html">www.jp.redhat.com/manual/Doc9/&hellip;</a></cite></footer></blockquote>

<h2 id="etchostsdeny-1">修正後の/etc/hosts.deny</h2>

<p>下記のように改行を入れて</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
</pre></td><td class="code"><pre><code class=""><span class="line">ALL : ALL
</span><span class="line">
</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>としたらちゃんと動作してくれました。調べていたら改行コードがLFでない場合でも発生するようです。</p>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2011 Photo taken by Sony Alpha NEX-5]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/26/photo-2011/"/>
    <updated>2011-12-26T00:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/26/photo-2011</id>
    <content type="html"><![CDATA[<h2 id="nara">Nara</h2>

<p><img src="http://farm7.staticflickr.com/6161/6258271128_b4b54a19f2_b.jpg" width="1024" height="681" alt="DSC01131" /></p>

<!-- more -->

<p><img src="http://farm7.staticflickr.com/6103/6258324938_e8e415e454_b.jpg" width="1024" height="681" alt="DSC01167" /></p>

<h2 id="shinjuku">Shinjuku</h2>

<p><img src="http://farm8.staticflickr.com/7035/6498828743_de80e8475f_b.jpg" width="1024" height="681" alt="DSC01603" /></p>

<h2 id="odaiba">Odaiba</h2>

<p><img src="http://farm7.staticflickr.com/6189/6160837032_246ce77f67_b.jpg" width="1024" height="681" alt="DSC00580" /></p>

<h2 id="kyoto">Kyoto</h2>

<p><img src="http://farm7.staticflickr.com/6019/6258571782_40968cd580_b.jpg" width="1024" height="681" alt="DSC01314" /></p>

<p><img src="http://farm7.staticflickr.com/6091/6257443037_9ccfafc8c4_b.jpg" width="1024" height="681" alt="DSC00916" /></p>

<h2 id="yokohama">Yokohama</h2>

<p><img src="http://farm7.staticflickr.com/6085/6061776488_6b583348cd_b.jpg" width="1024" height="681" alt="DSC00385" /></p>

<p><img src="http://farm7.staticflickr.com/6087/6061203461_e35dce6d99_b.jpg" width="1024" height="681" alt="DSC00342" /></p>

<h2 id="shibuya">Shibuya</h2>

<p><img src="http://farm7.staticflickr.com/6067/6050497689_7e8be6d33a_b.jpg" width="1024" height="681" alt="DSC00213" /></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[jekyll.vim を Octopressで利用出来るようにした]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/23/modify-jekyll.vim-for-octopress/"/>
    <updated>2011-12-23T23:08:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/23/modify-jekyll.vim-for-octopress</id>
    <content type="html"><![CDATA[<p>jekyll.vimを修正して、Octopressでも利用出来るように。</p>

<ul>
  <li><a href="https://github.com/csexton/jekyll.vim">csexton/jekyll.vim - GitHub</a></li>
</ul>

<h2 id="jekyllvim">jekyll.vimの導入</h2>

<p>.vimrcに下記を書いてBundleInstallで導入</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Bundle "csexton/jekyll.vim"</span></code></pre></td></tr></table></div></figure></notextile></div>

<h2 id="vimbundlejekyllvimpluginjekyllvim-">~/.vim/bundle/jekyll.vim/plugin/jekyll.vim の修正</h2>

<p>templateにdateとcommentsが無いので追加。Octopressのデフォの書式にも合わせた</p>

<div><script src="https://gist.github.com/1510443.js?file=jekyll.vim.diff"></script>
<noscript><pre><code>diff --git a/plugin/jekyll.vim b/plugin/jekyll.vim
index 3cd3790..ec9cb20 100644
--- a/plugin/jekyll.vim
+++ b/plugin/jekyll.vim
@@ -27,8 +27,8 @@ if !exists('g:jekyll_post_published')
   let g:jekyll_post_published = &quot;true&quot;
 endif
 
-if !exists('g:jekyll_post_created')
-  let g:jekyll_post_created = &quot;&quot;
+if !exists('g:jekyll_post_date')
+  let g:jekyll_post_date = &quot;&quot;
 endif
 
 if !exists('g:jekyll_title_pattern')
@@ -43,6 +43,10 @@ if !exists('g:jekyll_prompt_categories')
   let g:jekyll_prompt_categories = &quot;&quot;
 endif
 
+if !exists('g:jekyll_comments')
+  let g:jekyll_comments = &quot;&quot;
+endif
+
 function s:esctitle(str)
   let str = a:str
   let str = tolower(str)
@@ -108,14 +112,15 @@ command! -nargs=0 JekyllList :call JekyllList()
 
 function JekyllPost(title)
   let published = g:jekyll_post_published
-  let created = g:jekyll_post_created
+  let date = g:jekyll_post_date
   let tags = g:jekyll_prompt_tags
   let categories = g:jekyll_prompt_categories
+  let comments = g:jekyll_comments
 
-  if created == &quot;epoch&quot;
-    let created = localtime() 
-  elseif created != &quot;&quot;
-    let created = strftime(created)
+  if date == &quot;epoch&quot;
+    let date = localtime() 
+  elseif date != &quot;&quot;
+    let date = strftime(date)
   endif
   let title = a:title
   if title == ''
@@ -132,15 +137,18 @@ function JekyllPost(title)
     echo &quot;Making that post &quot; . file_name
     exe &quot;e &quot; . g:jekyll_path . &quot;/_posts/&quot; . file_name
 
-    let template = [&quot;---&quot;, &quot;layout: post&quot;, &quot;title: \&quot;&quot; . title . &quot;\&quot;&quot;, &quot;published: &quot; . published]
-    if created != &quot;&quot;
-      call add(template, &quot;created:  &quot;  . created)
+    let template = [&quot;---&quot;, &quot;layout: post&quot;, &quot;title: \&quot;&quot; . title . &quot;\&quot;&quot; ]
+    if date != &quot;&quot;
+      call add(template, &quot;date: &quot;  . date)
     endif
     if tags != &quot;&quot;
-      call add(template, &quot;tags: [&quot; . tags . &quot;]&quot;)
-    endif
+      call add(template, &quot;tags: &quot; . tags)
+               endif
+    if comments != &quot;&quot;
+      call add(template, &quot;comments: &quot; . comments)
+               endif
     if categories != &quot;&quot;
-      call add(template, &quot;categories: [&quot; . categories . &quot;]&quot;)
+      call add(template, &quot;categories: &quot; . categories )
     endif
     call extend(template,[&quot;---&quot;, &quot;&quot;])</code></pre></noscript></div>

<h2 id="vimrc-">~/.vimrc を設定</h2>

<p>.vimrcに下記のように設定。新規記事を作成したときにOctoprssの書式になります。</p>

<div><script src="https://gist.github.com/1510443.js?file=.vimrc"></script>
<noscript><pre><code>Bundle &quot;csexton/jekyll.vim&quot;
let g:jekyll_path = &quot;~/octopress/source/&quot;
let g:jekyll_post_date = &quot;%Y-%m-%d %H:%M&quot;
let g:jekyll_prompt_categories = &quot;true&quot;
let g:jekyll_comments = &quot;true&quot;
map &lt;Leader&gt;jb  :JekyllBuild&lt;CR&gt;
map &lt;Leader&gt;jn  :JekyllPost&lt;CR&gt;
map &lt;Leader&gt;jl  :JekyllList&lt;CR&gt;</code></pre></noscript></div>

<ul>
  <li>新規記事を作成するときは&lt;Leader&gt;jn</li>
  <li>記事一覧を見るときは&lt;Leader&gt;jl</li>
  <li>アップロードするときはjekyll_post_publishedをtrueに変更(falseは下書きの状態)</li>
</ul>

<p><img src="http://blog.glidenote.com/images/2011/12/jekyll_vim.jpg" alt="" /></p>

<p>一覧表示が出来るおかげで記事のpathを追わなくて良いので、管理が楽になりました。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Octopress用Vimプラグイン、vim-octopressを導入した]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/23/vim-octopress/"/>
    <updated>2011-12-23T01:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/23/vim-octopress</id>
    <content type="html"><![CDATA[<p>Octopress用のvimプラグインが公開されたので導入。</p>

<ul>
  <li><a href="https://github.com/tangledhelix/vim-octopress">tangledhelix/vim-octopress - GitHub</a></li>
</ul>

<h2 id="vimrc">.vimrcに設定</h2>

<p>下記を.vimrに書いてbundleinstall</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Bundle 'tangledhelix/vim-octopress'
</span><span class="line">autocmd BufNewFile,BufRead *.markdown setfiletype octopress</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>.markdownというファイルを開くと自動で色分けと、補完が効きます</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[opensslコマンドで証明書情報を確認する]]></title>
    <link href="http://blog.glidenote.com/blog/2011/12/22/show-certs-with-openssl/"/>
    <updated>2011-12-22T14:00:00+09:00</updated>
    <id>http://blog.glidenote.com/blog/2011/12/22/show-certs-with-openssl</id>
    <content type="html"><![CDATA[<p>SSL証明書の更新作業をした際などに利用する、opensslコマンドで証明書情報を確認する方法をいつも忘れて、
自分で書いた社内wikiを見直しているのでいつでも参照出来るようにメモ</p>

<p>ブラウザからだと中間証明書の確認が出来ないので、私はいつもopensslコマンドで確認してます。</p>

<p>たとえばtwitterの証明書を確認する場合は下記のような感じ</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
</pre></td><td class="code"><pre><code class=""><span class="line">openssl s_client -connect twitter.com:443 -showcerts &lt;&lt; EOF
</span><span class="line">HEAD / HTTP/1.0
</span><span class="line">EOF</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>すると下記のような感じで応答が。</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
<span class="line-number">24</span>
<span class="line-number">25</span>
<span class="line-number">26</span>
<span class="line-number">27</span>
<span class="line-number">28</span>
<span class="line-number">29</span>
<span class="line-number">30</span>
<span class="line-number">31</span>
<span class="line-number">32</span>
<span class="line-number">33</span>
<span class="line-number">34</span>
<span class="line-number">35</span>
<span class="line-number">36</span>
<span class="line-number">37</span>
<span class="line-number">38</span>
<span class="line-number">39</span>
<span class="line-number">40</span>
<span class="line-number">41</span>
<span class="line-number">42</span>
<span class="line-number">43</span>
<span class="line-number">44</span>
<span class="line-number">45</span>
<span class="line-number">46</span>
<span class="line-number">47</span>
<span class="line-number">48</span>
<span class="line-number">49</span>
<span class="line-number">50</span>
<span class="line-number">51</span>
<span class="line-number">52</span>
<span class="line-number">53</span>
<span class="line-number">54</span>
<span class="line-number">55</span>
<span class="line-number">56</span>
<span class="line-number">57</span>
<span class="line-number">58</span>
<span class="line-number">59</span>
<span class="line-number">60</span>
<span class="line-number">61</span>
<span class="line-number">62</span>
<span class="line-number">63</span>
<span class="line-number">64</span>
<span class="line-number">65</span>
<span class="line-number">66</span>
<span class="line-number">67</span>
<span class="line-number">68</span>
<span class="line-number">69</span>
<span class="line-number">70</span>
<span class="line-number">71</span>
<span class="line-number">72</span>
<span class="line-number">73</span>
<span class="line-number">74</span>
<span class="line-number">75</span>
<span class="line-number">76</span>
<span class="line-number">77</span>
<span class="line-number">78</span>
<span class="line-number">79</span>
<span class="line-number">80</span>
<span class="line-number">81</span>
<span class="line-number">82</span>
<span class="line-number">83</span>
<span class="line-number">84</span>
<span class="line-number">85</span>
<span class="line-number">86</span>
<span class="line-number">87</span>
<span class="line-number">88</span>
<span class="line-number">89</span>
<span class="line-number">90</span>
<span class="line-number">91</span>
<span class="line-number">92</span>
<span class="line-number">93</span>
<span class="line-number">94</span>
<span class="line-number">95</span>
<span class="line-number">96</span>
<span class="line-number">97</span>
<span class="line-number">98</span>
<span class="line-number">99</span>
<span class="line-number">100</span>
<span class="line-number">101</span>
<span class="line-number">102</span>
<span class="line-number">103</span>
<span class="line-number">104</span>
<span class="line-number">105</span>
<span class="line-number">106</span>
<span class="line-number">107</span>
<span class="line-number">108</span>
<span class="line-number">109</span>
<span class="line-number">110</span>
<span class="line-number">111</span>
</pre></td><td class="code"><pre><code class=""><span class="line">CONNECTED(00000003)
</span><span class="line">depth=2 /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
</span><span class="line">verify return:1
</span><span class="line">depth=1 /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
</span><span class="line">verify return:1
</span><span class="line">depth=0 /1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/2.5.4.15=Private Organization/serialNumber=4337446/C=US/postalCode=94107/ST=California/L=San Francisco/streetAddress=795 Folsom St, Suite 600/O=Twitter, Inc./OU=Twitter Operations
</span><span class="line">verify return:1
</span><span class="line">---
</span><span class="line">Certificate chain
</span><span class="line"> 0 s:/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/2.5.4.15=Private Organization/serialNumber=4337446/C=US/postalCode=94107/ST=California/L=San Francisco/streetAddress=795 Folsom St, Suite 600/O=Twitter, Inc./OU=Twitter Operations/CN=twitter.com
</span><span class="line">   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
</span><span class="line">-----BEGIN CERTIFICATE-----
</span><span class="line">MIIGfjCCBWagAwIBAgIQFyfdZD5CNvh/ebsEa8GYAjANBgkqhkiG9w0BAQUFADCB
</span><span class="line">ujELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
</span><span class="line">ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
</span><span class="line">YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE0MDIGA1UEAxMr
</span><span class="line">VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBDQTAeFw0x
</span><span class="line">MTA3MDcwMDAwMDBaFw0xMjA3MjcyMzU5NTlaMIIBGTETMBEGCysGAQQBgjc8AgED
</span><span class="line">EwJVUzEZMBcGCysGAQQBgjc8AgECEwhEZWxhd2FyZTEdMBsGA1UEDxMUUHJpdmF0
</span><span class="line">ZSBPcmdhbml6YXRpb24xEDAOBgNVBAUTBzQzMzc0NDYxCzAJBgNVBAYTAlVTMQ4w
</span><span class="line">DAYDVQQRFAU5NDEwNzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxQNU2Fu
</span><span class="line">IEZyYW5jaXNjbzEhMB8GA1UECRQYNzk1IEZvbHNvbSBTdCwgU3VpdGUgNjAwMRYw
</span><span class="line">FAYDVQQKFA1Ud2l0dGVyLCBJbmMuMRswGQYDVQQLFBJUd2l0dGVyIE9wZXJhdGlv
</span><span class="line">bnMxFDASBgNVBAMUC3R3aXR0ZXIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
</span><span class="line">MIIBCgKCAQEAmiGqkw9ArpnvvWnom/W+HxNDKXf0cFCrjErr0tfFs10UzA12xxOE
</span><span class="line">gI0WmWM5B/0W8f5ueEY3/ziPO3i+jJvHDJUQqQaH8LJAhOyEr6EpVWncfaMK2Ufd
</span><span class="line">y1s+iQzcQLZqpB3W/J+5mf7dhy1F/tUWyP2cvxC7dWJQjv3RY2ca/PDzy7a4bcqT
</span><span class="line">Bg9bx42t4c5LmjkpOsckevS9lpuwBc0I1+1Nshm+sdfJKKIWwQ4+ylshom/d0S2a
</span><span class="line">e+pRxoRiPbjXkqEcOAQjmHaz4U5gavPjVq5Uk0Sw96z90gGo/WxtOvJ584NJtiiQ
</span><span class="line">erP9fbAefJGqCgcsE3x+IjrJymlvVUgs0QIDAQABo4ICHDCCAhgwJwYDVR0RBCAw
</span><span class="line">HoIPd3d3LnR3aXR0ZXIuY29tggt0d2l0dGVyLmNvbTAJBgNVHRMEAjAAMB0GA1Ud
</span><span class="line">DgQWBBToMED2PZslwbExjhP13omUFc0GPzALBgNVHQ8EBAMCBaAwQgYDVR0fBDsw
</span><span class="line">OTA3oDWgM4YxaHR0cDovL0VWU2VjdXJlLWNybC52ZXJpc2lnbi5jb20vRVZTZWN1
</span><span class="line">cmUyMDA2LmNybDBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBxcGMCowKAYIKwYBBQUH
</span><span class="line">AgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwHQYDVR0lBBYwFAYIKwYB
</span><span class="line">BQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFPyKULqeuSVae1WFT5UAY4/pWGtD
</span><span class="line">MHwGCCsGAQUFBwEBBHAwbjAtBggrBgEFBQcwAYYhaHR0cDovL0VWU2VjdXJlLW9j
</span><span class="line">c3AudmVyaXNpZ24uY29tMD0GCCsGAQUFBzAChjFodHRwOi8vRVZTZWN1cmUtYWlh
</span><span class="line">LnZlcmlzaWduLmNvbS9FVlNlY3VyZTIwMDYuY2VyMG4GCCsGAQUFBwEMBGIwYKFe
</span><span class="line">oFwwWjBYMFYWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFEtruSiWBgy70FI4myms
</span><span class="line">SweLIQUYMCYWJGh0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28xLmdpZjAN
</span><span class="line">BgkqhkiG9w0BAQUFAAOCAQEACNvSG4VmJCidoFDNgMmsqJ5HAfXkoEuED7wBJcGQ
</span><span class="line">eLtQ8G/FLVrbsbXRiyxa/ytYWKqX1hkPrhgx9P9DlBlQvOl2/VHBznTqczhgxKnT
</span><span class="line">OXJeGwnr7IgCsgyd6vJ2g27Crv9954NRmrG0GttPbTHNkeEmQUJsgVEOkOdiQm+J
</span><span class="line">mVwTctfQe0W6WKdgIid+x5XvkfdYgYOrZTYBUUCz0eqZaSGliTiestyMnluZRBRG
</span><span class="line">hkOPeahGh/IWonrwil4hWDIx1Yas0pR/9Pzr4BeW0LlQqbvrFif2mdsJcqKSPQ4I
</span><span class="line">O4XIL3vqiJiv9GWRRIZl5DJAwjlPZ6W2X0KUeFAYGwvDDw==
</span><span class="line">-----END CERTIFICATE-----
</span><span class="line"> 1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
</span><span class="line">   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
</span><span class="line">-----BEGIN CERTIFICATE-----
</span><span class="line">MIIF5DCCBMygAwIBAgIQW3dZxheE4V7HJ8AylSkoazANBgkqhkiG9w0BAQUFADCB
</span><span class="line">yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
</span><span class="line">ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
</span><span class="line">U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
</span><span class="line">ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
</span><span class="line">aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBujEL
</span><span class="line">MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
</span><span class="line">ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
</span><span class="line">aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE0MDIGA1UEAxMrVmVy
</span><span class="line">aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBDQTCCASIwDQYJ
</span><span class="line">KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJjboFXrnP0XeeOabhQdsVuYI4cWbod2
</span><span class="line">nLU4O7WgerQHYwkZ5iqISKnnnbYwWgiXDOyq5BZpcmIjmvt6VCiYxQwtt9citsj5
</span><span class="line">OBfH3doxRpqUFI6e7nigtyLUSVSXTeV0W5K87Gws3+fBthsaVWtmCAN/Ra+aM/EQ
</span><span class="line">wGyZSpIkMQht3QI+YXZ4eLbtfjeubPOJ4bfh3BXMt1afgKCxBX9ONxX/ty8ejwY4
</span><span class="line">P1C3aSijtWZfNhpSSENmUt+ikk/TGGC+4+peGXEFv54cbGhyJW+ze3PJbb0S/5tB
</span><span class="line">Ml706H7FC6NMZNFOvCYIZfsZl1h44TO/7Wg+sSdFb8Di7Jdp91zT91ECAwEAAaOC
</span><span class="line">AdIwggHOMB0GA1UdDgQWBBT8ilC6nrklWntVhU+VAGOP6VhrQzASBgNVHRMBAf8E
</span><span class="line">CDAGAQH/AgEAMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRw
</span><span class="line">czovL3d3dy52ZXJpc2lnbi5jb20vY3BzMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6
</span><span class="line">Ly9FVlNlY3VyZS1jcmwudmVyaXNpZ24uY29tL3BjYTMtZzUuY3JsMA4GA1UdDwEB
</span><span class="line">/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZ
</span><span class="line">MFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7
</span><span class="line">GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwKQYDVR0R
</span><span class="line">BCIwIKQeMBwxGjAYBgNVBAMTEUNsYXNzM0NBMjA0OC0xLTQ3MD0GCCsGAQUFBwEB
</span><span class="line">BDEwLzAtBggrBgEFBQcwAYYhaHR0cDovL0VWU2VjdXJlLW9jc3AudmVyaXNpZ24u
</span><span class="line">Y29tMB8GA1UdIwQYMBaAFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqGSIb3DQEB
</span><span class="line">BQUAA4IBAQCWovp/5j3t1CvOtxU/wHIDX4u6FpAl98KD2Md1NGNoElMMU4l7yVYJ
</span><span class="line">p8M2RE4O0GJis4b66KGbNGeNUyIXPv2s7mcuQ+JdfzOE8qJwwG6Cl8A0/SXGI3/t
</span><span class="line">5rDFV0OEst4t8dD2SB8UcVeyrDHhlyQjyRNddOVG7wl8nuGZMQoIeRuPcZ8XZsg4
</span><span class="line">z+6Ml7YGuXNG5NOUweVgtSV1LdlpMezNlsOjdv3odESsErlNv1HoudRETifLriDR
</span><span class="line">fip8tmNHnna6l9AW5wtsbfdDbzMLKTB3+p359U64drPNGLT5IO892+bKrZvQTtKH
</span><span class="line">qQ2mRHNQ3XBb7a1+Srwi1agm5MKFIA3Z
</span><span class="line">-----END CERTIFICATE-----
</span><span class="line">---
</span><span class="line">Server certificate
</span><span class="line">subject=/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/2.5.4.15=Private Organization/serialNumber=4337446/C=US/postalCode=94107/ST=California/L=San Francisco/streetAddress=795 Folsom St, Suite 600/O=Twitter, Inc./OU=Twitter Operations/CN=twitter.com
</span><span class="line">issuer=/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
</span><span class="line">---
</span><span class="line">No client certificate CA names sent
</span><span class="line">---
</span><span class="line">SSL handshake has read 3338 bytes and written 435 bytes
</span><span class="line">---
</span><span class="line">New, TLSv1/SSLv3, Cipher is RC4-SHA
</span><span class="line">Server public key is 2048 bit
</span><span class="line">Secure Renegotiation IS supported
</span><span class="line">Compression: NONE
</span><span class="line">Expansion: NONE
</span><span class="line">SSL-Session:
</span><span class="line">    Protocol  : TLSv1
</span><span class="line">    Cipher    : RC4-SHA
</span><span class="line">    Session-ID: 6FDCD1481628FC839F16FD0AB956CA824BA1CBA68F17F58AA94CB0AFB9E1DE83
</span><span class="line">    Session-ID-ctx:
</span><span class="line">    Master-Key: A6E88340BBFE03D628B62103B4EF41551025DEC50408AF2B7728A8C581C0BF0ABE044D10B0EE93192C7BD58896EBA0E4
</span><span class="line">    Key-Arg   : None
</span><span class="line">    Krb5 Principal: None
</span><span class="line">    Start Time: 1324523394
</span><span class="line">    Timeout   : 300 (sec)
</span><span class="line">    Verify return code: 0 (ok)
</span><span class="line">---
</span><span class="line">DONE</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>証明書の期限が切れてると下記のような表示が出ます。お目にかからないように注意しましょう</p>

<div class="bogus-wrapper"><notextile><figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class=""><span class="line">Verify return code: 10 (Certificate has expired)</span></code></pre></td></tr></table></div></figure></notextile></div>

<p>ポート番号を変えれば、POPSやSMTPSで利用されてる証明書の確認も出来ます</p>

<ul>
  <li>HTTPS 443</li>
  <li>POP over SSL 995</li>
  <li>SMTP over SSL 465</li>
  <li>IMAPS 993</li>
</ul>

<h2 id="section">参考サイト</h2>

<ul>
  <li><a href="http://www.openssl.org/docs/apps/s_client.html">OpenSSL: Documents, s_client(1)</a></li>
</ul>
]]></content>
  </entry>
  
</feed>

