<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
  <title>iddy.jp - RSS feeds by from_kyushu</title> 
  <link>http://iddy.jp/rss/blog/from_kyushu/</link> 
  <description>RSS feeds by from_kyushu hosted at http://iddy.jp/</description>
  <language>ja</language>
  <item>
    <title>[Ruby][Linux][openSUSE] openSUSE 11.2 + rvm + ruby 1.9.1 p378 + atig.rb + god + tiarra</title> 
    <description>
    <![CDATA[
    
<div class="section">
<p>これだけ色々あったら動かない原因とか分からんよ！</p>
<h4> rvmのインストール</h4>
<pre class="syntax-highlight">
git clone http://github.com/wayneeseguin/rvm.git
<span class="synStatement">cd</span> rvm
./<span class="synStatement">install</span>
</pre>

<p>パッケージ版Rubyとかも入れ出すと訳が分からなくなってくるので、githubから直接持ってくることにしました。</p>
<h4> Ruby 1.9.1 p378のインストール</h4>
<pre class="syntax-highlight">
sudo zypper <span class="synError">in</span> libopenssl-devel zlib-devel readline-devel sqlite3-devel
rvm <span class="synStatement">install</span> <span class="synConstant">1</span>.<span class="synConstant">9</span>.<span class="synConstant">1</span>
</pre>

<p>libopenssl-develはopenssl拡張ライブラリに、zlib-develはzlib拡張ライブラリに、readline-develはirb使うときに便利(というかないと超不便)なのでそれぞれ先に入れておきます。</p>
<p>あとatig.rbで使うsqlite3-rubyがsqlite3-develを必要とします。</p>
<h4> 必要gemのインストール</h4>
<pre class="syntax-highlight">
gem <span class="synStatement">install</span> rspec oauth sqlite3-ruby god
</pre>

<p>specを動かすためrspec入れていますが、openSUSEで動かす場合他の環境(Mac,Ubuntu,Debian)では出なかった問題で変になるのでやらなくてもいいかもです。修正めんどい。</p>
<p>sqlite3-rubyとgodはちょっとコンパイル入ります。</p>
<h4> atig.rbのダウンロード</h4>
<pre class="syntax-highlight">
<span class="synStatement">cd</span> /opt
git clone http://github.com/mzp/atig
</pre>

<p>パスは /opt/atig だということにします。</p>
<h4> atig.rbの修正</h4>
<p>自分の環境の場合、spec動かすとこんなエラーが出ます。</p>
<pre class="syntax-highlight">
rake spec
<span class="synStatement">(</span>in /opt/atig<span class="synStatement">)</span>
/opt/atig/atig/command/thread.rb:<span class="synConstant">8</span>:<span class="synError">in</span> <span class="synSpecial">`&#60;module:Command&#62;</span><span class="synStatement">'</span><span class="synConstant">: uninitialized constant Atig::Command::Command (NameError)</span>
<span class="synConstant">        from /opt/atig/atig/command/thread.rb:7:in `&#60;module:Atig&#62;</span><span class="synStatement">'</span>
<span class="synSpecial">        from /opt/atig/atig/command/thread.rb:</span><span class="synConstant">6</span><span class="synSpecial">:in `</span><span class="synStatement">&#60;</span>top <span class="synStatement">(</span>required<span class="synStatement">)&#62;'</span>
<span class="synConstant">        from /opt/atig/atig/command/thread_spec.rb:4:in `require</span><span class="synStatement">'</span>
        from /opt/atig/atig/command/thread_spec.rb:<span class="synConstant">4</span>:<span class="synError">in</span> <span class="synSpecial">`&#60;top </span><span class="synStatement">(</span><span class="synSpecial">required</span><span class="synStatement">)</span><span class="synSpecial">&#62;</span><span class="synStatement">'</span>
<span class="synConstant">        from /home/koutarou/.rvm/gems/ruby-1.9.1-p378/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:15:in `load</span><span class="synStatement">'</span>
<span class="synSpecial">        from /home/koutarou/.rvm/gems/ruby</span><span class="synConstant">-1</span><span class="synSpecial">.</span><span class="synConstant">9</span><span class="synSpecial">.</span><span class="synConstant">1</span><span class="synSpecial">-p378/gems/rspec</span><span class="synConstant">-1</span><span class="synSpecial">.</span><span class="synConstant">3</span><span class="synSpecial">.</span><span class="synConstant">0</span><span class="synSpecial">/lib/spec/runner/example_group_runner.rb:</span><span class="synConstant">15</span><span class="synSpecial">:in `</span>block <span class="synError">in</span> load_files<span class="synStatement">'</span>
<span class="synConstant">        from /home/koutarou/.rvm/gems/ruby-1.9.1-p378/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:14:in `each</span><span class="synStatement">'</span>
        from /home/koutarou/.rvm/gems/ruby<span class="synConstant">-1</span>.<span class="synConstant">9</span>.<span class="synConstant">1</span>-p378/gems/rspec<span class="synConstant">-1</span>.<span class="synConstant">3</span>.<span class="synConstant">0</span>/lib/spec/runner/example_group_runner.rb:<span class="synConstant">14</span>:<span class="synError">in</span> <span class="synSpecial">`load_files</span><span class="synStatement">'</span>
<span class="synConstant">        from /home/koutarou/.rvm/gems/ruby-1.9.1-p378/gems/rspec-1.3.0/lib/spec/runner/options.rb:133:in `run_examples</span><span class="synStatement">'</span>
<span class="synSpecial">        from /home/koutarou/.rvm/gems/ruby</span><span class="synConstant">-1</span><span class="synSpecial">.</span><span class="synConstant">9</span><span class="synSpecial">.</span><span class="synConstant">1</span><span class="synSpecial">-p378/gems/rspec</span><span class="synConstant">-1</span><span class="synSpecial">.</span><span class="synConstant">3</span><span class="synSpecial">.</span><span class="synConstant">0</span><span class="synSpecial">/lib/spec/runner/command_line.rb:</span><span class="synConstant">9</span><span class="synSpecial">:in `</span>run<span class="synStatement">'</span>
<span class="synConstant">        from /home/koutarou/.rvm/gems/ruby-1.9.1-p378/gems/rspec-1.3.0/bin/spec:5:in `&#60;main&#62;</span><span class="synStatement">'</span>
rake aborted<span class="synStatement">!</span>
</pre>

<p>これは atig/command/ 以下のクラス類が全て atig/command/command.rb で定義されている Atig::Command::Command を継承しているのにも関わらず、require の順序のせいで NameError が出ているっぽいです。</p>
<p>ちなみに spec を動かさずに直で ruby atig.rb としても同様のエラーが出るので、 atig/command/*rb を require する前段階で atig/command/command.rb を require してやれば解決します。 spec では解決していませんので、もっとちゃんとした対応するべきかもしれません。</p>
<p>17行目から20行目辺りまでを抜粋。</p>
<pre class="syntax-highlight">
<span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">atig/twitter</span><span class="synSpecial">'</span>
<span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">atig/scheduler</span><span class="synSpecial">'</span>
<span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">atig/command/command</span><span class="synSpecial">'</span>
</pre>

<p>ちなみにこの問題、MacやUbuntu、Debianで同様にrvmで入れたRuby 1.9.1 p378を使った場合は再現しません。何が問題なのかは分かりませんが、openSUSEでビルドしたRubyは他のものと若干挙動が異なるようです。と理解するしかない。</p>
<h4> tiarraのダウンロード</h4>
<pre class="syntax-highlight">
<span class="synStatement">cd</span> /opt
svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra
</pre>

<p>パスは /opt/tiarra だということにします。</p>
<h4> tiarraの設定</h4>
<pre class="syntax-highlight">
networks {
  <span class="synSpecial">(</span>snip<span class="synSpecial">)</span>
  name: atig
  <span class="synSpecial">(</span>snip<span class="synSpecial">)</span>
}

atig {
  server: localhost <span class="synConstant">16668</span>
  name: from_kyushu sid
}
</pre>

<p><a href="http://mzp.github.com/atig/options.html" target="_blank">クライアントオプション</a>を付けていますが、これはお好みで。</p>
<p>あと tiarra のパスワードもお忘れなく。</p>
<pre class="syntax-highlight">
tiarra <span class="synSpecial">--make-password</span>
</pre>

<p>出てきたものを general ブロックの tiarra-password に書いておきます。</p>
<h4> tiarraの起動</h4>
<pre class="syntax-highlight">
./tiarra <span class="synSpecial">--quiet</span>
</pre>

<h4> godの設定ファイル作成</h4>
<p>なんか色々やるの面倒だったので、とりあえずバックグラウンドで起動するものです。監視している意味は一切ありませんので、なんか好きなようにアクションを書き加えてください。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">God</span>.watch <span class="synStatement">do</span> |<span class="synIdentifier">w</span>|
  w.name = <span class="synSpecial">&#34;</span><span class="synConstant">atig.rb</span><span class="synSpecial">&#34;</span>
  w.interval = <span class="synConstant">30</span>.seconds
  w.start = <span class="synSpecial">&#34;</span><span class="synConstant">ruby /opt/atig/atig.rb -h '127.0.0.1' -l /opt/atig/atig.log</span><span class="synSpecial">&#34;</span>

  w.start_if <span class="synStatement">do</span> |<span class="synIdentifier">start</span>|
    start.condition(<span class="synIdentifier">:process_running</span>) <span class="synStatement">do</span> |<span class="synIdentifier">c</span>|
      c.running = <span class="synConstant">false</span>
    <span class="synStatement">end</span>
  <span class="synStatement">end</span>
<span class="synStatement">end</span>
</pre>

<p>ミソは -h オプション。これないとダメっぽいです。ちゃんと指定しましょう。</p>
<h4> atig.rbの起動</h4>
<pre class="syntax-highlight">
god <span class="synSpecial">-c</span> atig.god
</pre>

<h4> oauth</h4>
<p>#oauth@atig で示されたURLを開いて認証してください。もしURLも何も示されていなかった場合、 god の設定の atig.rb 起動しているオプションに -d を加えて、ログに出力されたURLを使用してください。</p>
<p>あとは #twitter@atig できゃっきゃうふふするといいと思います。</p>
</div>

    ]]>
    </description>
    <link>http://d.hatena.ne.jp/from_kyushu/20100503/1272827658</link> 
    <pubDate>Sun, 02 May 2010 19:14:18 GMT</pubDate>
   </item>
  <item>
    <title>[Linux][VPS][openSUSE] LinodeのopenSUSEを11.2にアップグレードする</title> 
    <description>
    <![CDATA[
    
<div class="section">
<p>LinodeではopenSUSEがVMとして選択できるのですが、11.0のままです。調べてみたら11.1は動くとの情報があったので11.2も動くはずだと思い、やってみることにしました。</p>
<h4> 11.0から11.1へ</h4>
<p>11.1から11.2へのライブアップグレードはサポートされているので、まずは11.1にアップグレードします。参考: <a href="http://abock.org/2009/05/18/opensuse-111-on-linode-ala-zypper-dup" target="_blank">openSUSE 11.1 on Linode ala zypper dup | Aaron Bockover</a></p>

<ul>
<li> openSUSE 11.0をデプロイし、ブートする</li>
<li> sshを用いてrootでログインする</li>
<li> 11.0のレポジトリリストを削除する: /etc/zypp/repos.d</li>
</ul>
<pre class="syntax-highlight">
<span class="synStatement">rm</span> /etc/zypp/repos.d/*
</pre>

<p>これでやりました。ただ、こっちが動くならzypperの機能だしこっちがいいかも。</p>
<pre class="syntax-highlight">
zypper modifyrepo <span class="synSpecial">--all</span> <span class="synSpecial">--disable</span>
</pre>


<ul>
<li> 11.1のレポジトリを追加する</li>
</ul>
<pre class="syntax-highlight">
zypper ar http://download.opensuse.org/distribution/<span class="synConstant">11</span>.<span class="synConstant">1</span>/repo/oss openSUSE<span class="synConstant">-11</span>.<span class="synConstant">1</span>
</pre>

<p>参考ページでは -f オプションついているけど、unknown optionとして怒られてしまったので削除しました。削除していても問題なし。</p>

<ul>
<li> zypperを先にアップデートする</li>
</ul>
<pre class="syntax-highlight">
zypper <span class="synError">in</span> zypper
</pre>


<ul>
<li> レポジトリをアップデート</li>
</ul>
<pre class="syntax-highlight">
zypper refresh
</pre>

<p>必ずしも必要ではなさそうですが、やっていて損はないでしょう。</p>

<ul>
<li> 11.1へアップグレード</li>
</ul>
<pre class="syntax-highlight">
zypper dup
</pre>

<p>ディスク容量が不安な人はこちらで先にパッケージだけダウンロードしておいて、ディスクを確認の上やってみるといいかも。</p>
<pre class="syntax-highlight">
zypper dup <span class="synSpecial">-d</span>
zypper dup
</pre>


<ul>
<li> ここで一度再起動。</li>
<li> 再起動後、アップデートレポジトリを追加する</li>
</ul>
<pre class="syntax-highlight">
zypper ar <span class="synSpecial">-f</span> http://download.opensuse.org/update/<span class="synConstant">11</span>.<span class="synConstant">1</span>/ openSUSE<span class="synConstant">-11</span>.<span class="synConstant">1</span>-Updates
</pre>

<p>ここでは -f オプションは怒られませんでした。</p>

<ul>
<li> 11.1の最新版にアップデートする</li>
</ul>
<pre class="syntax-highlight">
zypper up
</pre>

<p>11.2へのライブアップグレードのために最新版に上げておく必要があるようです。</p>
<h4> 11.1から11.2へ</h4>
<p>この作業はopenSUSEのWikiに日本語で情報があるので、こっちを参考にするといいかもです。<a href="http://ja.opensuse.org/Upgrade/Supported" target="_blank">Upgrade/Supported - openSUSE</a></p>
<p>まぁ、ほぼ11.0から11.1への作業と一緒のようです。ぶっちゃけ11.0から11.2に直でやってもよかったのかもしれません。</p>
<p>ちなみに、ここまでやって転送量は約700MB程度でした。Linodeは月200GBなので、これを多いと見るか少ないと見るかは用途次第かと思います。自分は自分用のサービスしか動かしていないので全く問題ありませんが。</p>
</div>

    ]]>
    </description>
    <link>http://d.hatena.ne.jp/from_kyushu/20100502/1272741735</link> 
    <pubDate>Sat, 01 May 2010 19:22:15 GMT</pubDate>
   </item>
  <item>
    <title>[Windows][Linux]Windows7にcoLinuxをインストールする</title> 
    <description>
    <![CDATA[
    
<div class="section">
<p>お久しぶりです。ずいぶんと長い間更新していませんでしたが、またメモ書き程度に更新しようと思います。</p>
<p>使用するイメージはDebian Lennyで、coLinuxのインストールパスとディスクイメージを置くパスは違うところにしています。</p>
<h4> coLinux及びディスクイメージをダウンロード</h4>
<p><a href="http://sourceforge.net/projects/colinux/files/" target="_blank">sourceforge</a>からcoLinux-0.7.6.exeとDebian-5.0r2-lenny.7zをダウンロードします。coLinuxはC:\Program Files\coLinuxに、ディスクイメージはD:\opt\colinux_imagesに置きます。配置する際はlenny.imgにリネームしました。confファイルは違うパスに置いていいか分からなかったのでcoLinuxのインストールパスに置いておきます。</p>
<h5> ファイル配置</h5>

<ul>
<li> C:

<ul>
<li> Program Files

<ul>
<li> coLinux

<ul>
<li> colinux-daemon.exe</li>
<li> lenny.conf</li>
<li> (その他色々)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li> D:

<ul>
<li> opt

<ul>
<li> colinux_images

<ul>
<li> lenny.img</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4> swap用イメージ、リサイズ用イメージの準備</h4>
<p>sourceforgeで配布されているディスクイメージは2GBなので、色々していたらすぐいっぱいになります。なので早いところサイズ変更を行おうと思います。とりあえず10GBほど準備してみました。</p>
<p>swap用のイメージも一緒に準備します。今回は512MB準備します。</p>
<p>イメージの準備にはfsutilを使いますが、これを使うには管理者権限が必要なので管理者権限付でcmdを起動します。スタートボタンの"プログラムとファイルの検索"にcmdで検索して、出てきたものを右クリックして"管理者として実行(A)"をすればOKです。</p>
<pre class="syntax-highlight">
d:
<span class="synStatement">cd</span> D:\opt\colinux_images
fsutil file createnew lenny_10gb.img <span class="synConstant">10737418240</span>
fsutil file createnew swap.img <span class="synConstant">536870912</span>
</pre>

<p>ただ、このままだとlenny_10gb.imgとswap.imgはAdministrator所有のものになるので、取り扱いがやや面倒。なので所有者を自分のアカウントに指定します。参考:<a href="http://www.atchfactory.com/mvt/archives/2009/10/windows7-9.html" target="_blank">         Windows7 でアクセス権を変える - やまねこのあしあと      </a></p>
<blockquote>
<p>ターゲットフォルダを右クリック→プロパティ</p>
<p>セキュリティ タブの中にある [詳細設定] をクリック</p>
<p>セキュティの詳細設定 が開くので、所有者 タブの中にある [編集] をクリック</p>
<p>所有者の変更 の枠内から自分のアカウントを選び、下の方にある サブコンテナーとオブジェクトの所有者を置き換える にチェックを入れて [適用]</p>
</blockquote>
<p>参考にしたところではフォルダを指定していますが、今回の対象はファイルなので一番最後のサブコンテナー云々は不要です。</p>
<br>

<h5> ファイル配置</h5>

<ul>
<li> C:

<ul>
<li> Program Files

<ul>
<li> coLinux

<ul>
<li> colinux-daemon.exe</li>
<li> lenny.conf</li>
<li> (その他色々)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li> D:

<ul>
<li> opt

<ul>
<li> colinux_images

<ul>
<li> lenny.img</li>
<li> lenny_10gb.img</li>
<li> swap.img</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4> lenny.confの編集</h4>
<p>lenny.confを弄るには管理者権限が必要なので、管理者権限で実行したエディタで編集する必要があります。自分はGVim使っているので、管理者権限付で実行したGVimから開きました。そして以下のように編集しました。</p>
<pre class="syntax-highlight">
kernel=vmlinux
cobd0=<span class="synConstant">&#34;D:\opt\colinux_images\lenny.img&#34;</span>
cobd1=<span class="synConstant">&#34;D:\opt\colinux_images\swap.img&#34;</span>
cobd2=<span class="synConstant">&#34;D:\opt\colinux_images\lenny_10gb.img&#34;</span>
root=/dev/cobd0
ro
initrd=initrd.gz
mem=256
eth0=pcap-bridge,<span class="synConstant">&#34;Local Network&#34;</span>
</pre>

<p>cobd云々は使用するディスクイメージを使用する分だけ指定します。例えば/homeだけ別イメージにするのでしたらそれを更に増やしてください。ここで指定したcobd0などは/dev/cobd0などになるので、それをマウントすれば使えるようになります。</p>
<p>memにメモリを指定します。増やしたければその分増やしてください。今回は256MB指定にしました。</p>
<p>eth0にはネットワークの接続方法を指定します。tuntapを指定するのが定番っぽいのですが、今回はWinPcapを使ったブリッジ接続を行うのでこのような感じにしました。要WinPcap。複数のネットワークアダプタがあるので使用するアダプタ名を指定していますが、アダプタがひとつしかない場合は自動で認識してくれるらしいので指定は不要です。もし指定する際は名称はマルチバイト文字が使えないらしいので適当にリネームしてください。</p>
<h4> coLinuxの起動</h4>
<pre class="syntax-highlight">
colinux-<span class="synStatement">daemon</span>.exe @lenny.conf
</pre>

<p>無事ログイン画面が表示されたら成功。rootでログインする場合、パスワードはcolinuxになっているのでログイン後にさっさと変更しておきます。</p>
<h4> ネットワークの確認</h4>
<pre class="syntax-highlight">
ifconfig
eth0      Link encap:Ethernet  HWaddr <span class="synConstant">00</span>:ff:3c:5e:f0:<span class="synConstant">00</span>
          inet addr:<span class="synConstant">192</span>.<span class="synConstant">168</span>.<span class="synConstant">1</span>.<span class="synConstant">10</span>  Bcast:<span class="synConstant">192</span>.<span class="synConstant">168</span>.<span class="synConstant">1</span>.<span class="synConstant">255</span>  Mask:<span class="synConstant">255</span>.<span class="synConstant">255</span>.<span class="synConstant">255</span>.<span class="synConstant">0</span>
          inet6 addr: fe80::2ff:3cff:fe5e:f000/<span class="synConstant">64</span> Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:<span class="synConstant">1500</span>  Metric:<span class="synConstant">1</span>
          RX packets:<span class="synConstant">124362</span> errors:<span class="synConstant">0</span> dropped:<span class="synConstant">0</span> overruns:<span class="synConstant">0</span> frame:<span class="synConstant">0</span>
          TX packets:<span class="synConstant">57939</span> errors:<span class="synConstant">0</span> dropped:<span class="synConstant">0</span> overruns:<span class="synConstant">0</span> carrier:<span class="synConstant">0</span>
          collisions:<span class="synConstant">0</span> txqueuelen:<span class="synConstant">1000</span>
          RX bytes:<span class="synConstant">147246696</span> <span class="synStatement">(</span><span class="synConstant">140</span>.<span class="synConstant">4</span> MiB<span class="synStatement">)</span>  TX bytes:<span class="synConstant">4469694</span> <span class="synStatement">(</span><span class="synConstant">4</span>.<span class="synConstant">2</span> MiB<span class="synStatement">)</span>
          Interrupt:<span class="synConstant">10</span>

lo        Link encap:Local Loopback
          inet addr:<span class="synConstant">127</span>.<span class="synConstant">0</span>.<span class="synConstant">0</span>.<span class="synConstant">1</span>  Mask:<span class="synConstant">255</span>.<span class="synConstant">0</span>.<span class="synConstant">0</span>.<span class="synConstant">0</span>
          inet6 addr: ::<span class="synConstant">1</span>/<span class="synConstant">128</span> Scope:Host
          UP LOOPBACK RUNNING  MTU:<span class="synConstant">16436</span>  Metric:<span class="synConstant">1</span>
          RX packets:<span class="synConstant">0</span> errors:<span class="synConstant">0</span> dropped:<span class="synConstant">0</span> overruns:<span class="synConstant">0</span> frame:<span class="synConstant">0</span>
          TX packets:<span class="synConstant">0</span> errors:<span class="synConstant">0</span> dropped:<span class="synConstant">0</span> overruns:<span class="synConstant">0</span> carrier:<span class="synConstant">0</span>
          collisions:<span class="synConstant">0</span> txqueuelen:<span class="synConstant">0</span>
          RX bytes:<span class="synConstant">0</span> <span class="synStatement">(</span><span class="synConstant">0</span>.<span class="synConstant">0</span> B<span class="synStatement">)</span>  TX bytes:<span class="synConstant">0</span> <span class="synStatement">(</span><span class="synConstant">0</span>.<span class="synConstant">0</span> B<span class="synStatement">)</span>
</pre>

<p>デフォルトではDHCPで取得するようになっています。IP固定にする場合なんかは /etc/network/interfaces を適当に編集します。この辺coLinuxでなくてDebianの領域なのでパス。</p>
<p>coLinux -&#62; Windows と Windows -&#62; coLinux 双方でping投げて繋がっているかを確認しておくと更に安全かと思います。</p>
<h4> データのコピー及びswapの準備</h4>
<p>lenny.imgの内容をlenny_10gb.imgに移動します。dd便利。参考:<a href="http://www.uetyi.mydns.jp/wordpress/colinux-setting/entry-93.html" target="_blank">coLinuxパーティションサイズ拡張 - Linuxで自宅サーバ構築（新森からの雑記）</a></p>
<pre class="syntax-highlight">
dd <span class="synIdentifier">if</span>=/dev/cobd0 <span class="synIdentifier">of</span>=/dev/cobd2
e2fsck <span class="synSpecial">-f</span> /dev/cobd2
resize2fs <span class="synSpecial">-p</span> /dev/cobd2
</pre>

<p>次はswapの準備。</p>
<pre class="syntax-highlight">
mkswap /dev/cobd1
</pre>

<p>そして /etc/fstab を以下のようにする。</p>
<pre class="syntax-highlight">
<span class="synComment"># &#60;file system&#62; &#60;mount point&#62;   &#60;type&#62;  &#60;options&#62;       &#60;dump&#62;  &#60;pass&#62;</span>
proc            /proc           proc    defaults        0       0
/dev/cobd0      /               ext3    errors=remount-ro 0       1
/dev/cobd1      swap            swap    defaults        0       0
</pre>

<br>

<h4> 再度lenny.confの編集</h4>
<p>lenny.imgの中身はlenny_10gb.imgの中に入ったのでlenny.imgは不要になりました。lenny.imgを削除してlenny_10gb.imgをlenny.imgにリネーム、cobd2の設定を削除します。これで容量10GBのディスクイメージができあがりました。</p>
<h5> ファイル配置</h5>

<ul>
<li> C:

<ul>
<li> Program Files

<ul>
<li> coLinux

<ul>
<li> colinux-daemon.exe</li>
<li> lenny.conf</li>
<li> (その他色々)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li> D:

<ul>
<li> opt

<ul>
<li> colinux_images

<ul>
<li> lenny.img</li>
<li> swap.img</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4> サービス登録</h4>
<p>要管理者権限。</p>
<pre class="syntax-highlight">
colinux-<span class="synStatement">daemon</span>.exe @lenny.conf <span class="synSpecial">--install-service</span>
</pre>

<p>[コントロールパネル] -&#62; [システムとセキュリティ] -&#62; [管理ツール] -&#62; [サービス] でサービスの設定が出るので、適当にほげほげします。</p>
<p>これで大体準備は整ったので、あとはssh入れてputtyでつないで、adduserでユーザー作って、きゃっきゃうふふするといいと思います。</p>
</div>

    ]]>
    </description>
    <link>http://d.hatena.ne.jp/from_kyushu/20100427/1272322273</link> 
    <pubDate>Mon, 26 Apr 2010 22:51:13 GMT</pubDate>
   </item>
  <item>
    <title>[ruby] mixiボイスに書き込むスクリプト</title> 
    <description>
    <![CDATA[
    
<div class="section">
<p>とりあえずRuby1.9.1とRuby1.8.7で動いたので載せる。特に設計とか考えずに書いたのでまだ改善の余地あり。</p>
<pre class="syntax-highlight">
<span class="synComment"># vim:set fileencoding=UTF-8:</span>

<span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">net/http</span><span class="synSpecial">'</span>
<span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">uri</span><span class="synSpecial">'</span>

<span class="synPreProc">class </span><span class="synType">MixiVoice</span>
  <span class="synPreProc">def </span><span class="synIdentifier">initialize</span> mail,pass,key
    <span class="synIdentifier">@cookie</span> = <span class="synSpecial">&#34;&#34;</span>
    <span class="synIdentifier">@key</span> = key
    <span class="synIdentifier">@req</span> = <span class="synIdentifier">Net</span>::<span class="synIdentifier">HTTP</span>.start <span class="synSpecial">&#34;</span><span class="synConstant">mixi.jp</span><span class="synSpecial">&#34;</span>
    login mail,pass
  <span class="synPreProc">end</span>

  <span class="synPreProc">def </span><span class="synIdentifier">login</span> mail,pass
    res = <span class="synIdentifier">@req</span>.post <span class="synSpecial">&#34;</span><span class="synConstant">/login.pl</span><span class="synSpecial">&#34;</span>, <span class="synSpecial">&#34;</span><span class="synConstant">email=</span><span class="synSpecial">#{mail}</span><span class="synConstant">&#38;password=</span><span class="synSpecial">#{pass}</span><span class="synConstant">&#38;next_url=/home.pl</span><span class="synSpecial">&#34;</span>
    <span class="synIdentifier">@cookie</span> = res[<span class="synSpecial">&#34;</span><span class="synConstant">set-cookie</span><span class="synSpecial">&#34;</span>].split(<span class="synSpecial">&#34;</span><span class="synConstant">,</span><span class="synSpecial">&#34;</span>).join(<span class="synSpecial">&#34;</span><span class="synConstant">;</span><span class="synSpecial">&#34;</span>)
  <span class="synPreProc">end</span>

  <span class="synPreProc">def </span><span class="synIdentifier">add_echo</span> text
    res = <span class="synIdentifier">@req</span>.post <span class="synSpecial">&#34;</span><span class="synConstant">/add_echo.pl</span><span class="synSpecial">&#34;</span>, <span class="synSpecial">&#34;</span><span class="synConstant">body=</span><span class="synSpecial">#{encode_text(text)}</span><span class="synConstant">&#38;post_key=</span><span class="synSpecial">#{@key}</span><span class="synConstant">&#38;redirect=recent_echo</span><span class="synSpecial">&#34;</span>, <span class="synSpecial">&#34;</span><span class="synConstant">cookie</span><span class="synSpecial">&#34;</span> =&#62; <span class="synIdentifier">@cookie</span>
    res.code
  <span class="synPreProc">end</span>

  <span class="synPreProc">def </span><span class="synIdentifier">encode_text</span> text
    euc = <span class="synSpecial">&#34;&#34;</span>
    <span class="synStatement">if</span> <span class="synIdentifier">RUBY_VERSION</span> &#62; <span class="synSpecial">&#34;</span><span class="synConstant">1.9</span><span class="synSpecial">&#34;</span>
      euc = text.encode <span class="synSpecial">&#34;</span><span class="synConstant">EUC-JP</span><span class="synSpecial">&#34;</span>
    <span class="synStatement">else</span>
      <span class="synPreProc">require</span> <span class="synSpecial">'</span><span class="synConstant">kconv</span><span class="synSpecial">'</span>
      euc = <span class="synIdentifier">Kconv</span>.toeuc text
    <span class="synStatement">end</span>
    <span class="synIdentifier">URI</span>.encode(euc)
  <span class="synPreProc">end</span>
<span class="synPreProc">end</span>

<span class="synStatement">if</span> <span class="synConstant">__FILE__</span> == <span class="synIdentifier">$0</span>
  <span class="synPreProc">require</span> <span class="synSpecial">&#34;</span><span class="synConstant">rubygems</span><span class="synSpecial">&#34;</span>
  <span class="synPreProc">require</span> <span class="synSpecial">&#34;</span><span class="synConstant">pit</span><span class="synSpecial">&#34;</span>

  conf = <span class="synIdentifier">Pit</span>.get <span class="synSpecial">&#34;</span><span class="synConstant">mixi</span><span class="synSpecial">&#34;</span>
  vo = <span class="synIdentifier">MixiVoice</span>.new conf[<span class="synSpecial">&#34;</span><span class="synConstant">mail</span><span class="synSpecial">&#34;</span>],conf[<span class="synSpecial">&#34;</span><span class="synConstant">pass</span><span class="synSpecial">&#34;</span>],conf[<span class="synSpecial">&#34;</span><span class="synConstant">post_key</span><span class="synSpecial">&#34;</span>]
  res = vo.add_echo <span class="synSpecial">&#34;</span><span class="synConstant">Hello,world!</span><span class="synSpecial">&#34;</span>
  puts res
<span class="synStatement">end</span>
</pre>

<p>MixiVoice#add_echoは302が返ってきたらOKです。200だと失敗。</p>
</div>

    ]]>
    </description>
    <link>http://d.hatena.ne.jp/from_kyushu/20090924/1253802026</link> 
    <pubDate>Thu, 24 Sep 2009 14:20:26 GMT</pubDate>
   </item>
  <item>
    <title>[Ruby][Mac] gem serverをlaunchdで動かしておく</title> 
    <description>
    <![CDATA[
    
<div class="section">
<blockquote title="http://d.hatena.ne.jp/rubyco/20090824/doc" cite="http://d.hatena.ne.jp/rubyco/20090824/doc">
<p>Rubyで、gem installした後、ざっとドキュメントを見たいとき、どうするのが良いでしょうか？</p>
<p>（→解決しました「gem serverを動かして、表示されたURLをブラウザで見る」らしいです）</p>
<cite><a href="http://d.hatena.ne.jp/rubyco/20090824/doc" target="_blank">Rubyで、gem installした後、ざっとドキュメントを見たいとき、どうするのが良いでしょうか？→gem serverで解決 - rubyco（るびこ）の日記</a></cite></blockquote>
<p>というエントリを見て、割と便利に使っているのですがあんまりみんなが使ってないのかもしれない方法があるのでご紹介。</p>
<h4> launchdでサービスとして動かす</h4>
<p>Macにはlaunchdというものがあります。おいらもman読んだぐらいしか知識がないので説明はうまくできません。大体Linuxで言うinitみたいなもんです。<a href="http://www.itmedia.co.jp/enterprise/articles/0704/26/news009.html" target="_blank"> Undocumented Mac OS X：第1回　initを置き換えるlaunchd【前編】 (1/3) - ITmedia エンタープライズ</a>や<a href="http://www.itmedia.co.jp/enterprise/articles/0704/29/news004.html" target="_blank"> Undocumented Mac OS X：第2回　initを置き換えるlaunchd【後編】 (1/3) - ITmedia エンタープライズ</a>という記事もありますので併せてご一読ください。</p>
<p>で、このlaunchdで予めgem serverをサービスとして動かしておくとちょくちょくgemに含まれているrdocを読む際には結構便利になります。</p>
<h4> 設定ファイルの置き場所</h4>

<ul>
<li> $HOME/Library/LaunchAgents</li>
<li> /Library/LaunchAgents</li>
<li> /Library/LaunchDaemons</li>
<li> /System/Library/LaunchAgents</li>
<li> /System/Library/LaunchDaemons</li>
</ul>
<p>この辺りらしいです。</p>
<h5> LaunchAgentsとLaunchDaemonsの違い</h5>
<blockquote title="http://www.itmedia.co.jp/enterprise/articles/0704/26/news009_2.html" cite="http://www.itmedia.co.jp/enterprise/articles/0704/26/news009_2.html">
<p>　launchdが起動するサービスは大きく分けて2つ、AgentとDaemonに分類される。</p>
<p>　Daemonはいわゆるデーモンであり、root権限での動作を前提としている。これはログインしているユーザーが誰であるか、そもそもログインしているユーザーがいるかといったこととは関係を持たないサービスを意味する。</p>
<p>　一方AgentはDaemonとは異なり、現在ログインしているユーザーごとに起動される各ユーザー向けのサービスを意味する。例えば「ことえり」やATOKのような入力プログラム、iCalやiTunesのヘルパープログラムといったユーザーごとに実行されるバックエンドサービスを起動するのに使用できる。</p>
<cite><a href="http://www.itmedia.co.jp/enterprise/articles/0704/26/news009_2.html" target="_blank"> Undocumented Mac OS X：第1回　initを置き換えるlaunchd【前編】 (2/3) - ITmedia エンタープライズ</a></cite></blockquote>
<p>という訳でとりあえず自分のところだけで動かしたいので $HOME/Library/LaunchAgents に置きましょう。</p>
<h4> 設定ファイル launchd.plist を書く</h4>
<p>おいらが使っているのは以下。名前は org.rubygems.server.plist とか適当に名付けています。</p>
<pre class="syntax-highlight">
<span class="synComment">&#60;?</span><span class="synType">xml version</span>=<span class="synConstant">&#34;1.0&#34;</span><span class="synType"> encoding</span>=<span class="synConstant">&#34;UTF-8&#34;</span><span class="synComment">?&#62;</span>                
<span class="synIdentifier">&#60;!</span><span class="synStatement">DOCTYPE</span> plist <span class="synStatement">PUBLIC</span> <span class="synConstant">&#34;-//Apple//DTD PLIST 1.0//EN&#34;</span> <span class="synConstant">&#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;</span><span class="synIdentifier">&#62;</span>
<span class="synIdentifier">&#60;plist </span><span class="synType">version</span>=<span class="synConstant">&#34;1.0&#34;</span><span class="synIdentifier">&#62;</span>
<span class="synIdentifier">&#60;dict&#62;</span>                                                
  <span class="synIdentifier">&#60;key&#62;</span>Label<span class="synIdentifier">&#60;/key&#62;</span>                                    
  <span class="synIdentifier">&#60;string&#62;</span>org.rubygems.server<span class="synIdentifier">&#60;/string&#62;</span>                
  <span class="synIdentifier">&#60;key&#62;</span>OnDemand<span class="synIdentifier">&#60;/key&#62;</span>                                 
  <span class="synIdentifier">&#60;false/&#62;</span>                                            
  <span class="synIdentifier">&#60;key&#62;</span>ProgramArguments<span class="synIdentifier">&#60;/key&#62;</span>                         
  <span class="synIdentifier">&#60;array&#62;</span>                                             
    <span class="synIdentifier">&#60;string&#62;</span>/opt/local/bin/gem<span class="synIdentifier">&#60;/string&#62;</span>               
    <span class="synIdentifier">&#60;string&#62;</span>server<span class="synIdentifier">&#60;/string&#62;</span>                           
    <span class="synIdentifier">&#60;string&#62;</span>--daemon<span class="synIdentifier">&#60;/string&#62;</span>                         
  <span class="synIdentifier">&#60;/array&#62;</span>                                            
<span class="synIdentifier">&#60;/dict&#62;</span>                                               
<span class="synIdentifier">&#60;/plist&#62;</span>
</pre>

<h4> launchctlで設定ファイルを読み込み起動する</h4>
<p>上のplistをorg.rubygems.server.plistで保存した場合</p>
<pre class="syntax-highlight">
launchctl load <span class="synSpecial">-w</span> org.rubygems.server.plist
launchctl <span class="synStatement">start</span> org.rubygems.server
</pre>

<h5> load</h5>
<pre class="syntax-highlight">
launchctl load <span class="synStatement">[-w]</span> launchd.plist
</pre>

<p>wオプションは強制読み込み</p>
<h5> unload</h5>
<pre class="syntax-highlight">
launchctl unload <span class="synStatement">[-w]</span> launchd.plist
</pre>

<p>wオプションは強制的に無効に</p>
<h5> start</h5>
<pre class="syntax-highlight">
launchctl <span class="synStatement">start</span> jobname
</pre>

<p>jobname = launchd.plistのLabel要素で指定したもの</p>
<h5> stop</h5>
<pre class="syntax-highlight">
launchctl <span class="synStatement">stop</span> jobname
</pre>

<p>jobname = launchd.plistのLabel要素で指定したもの</p>
<h4> ブラウザで表示してみる</h4>
<p>start した状態で <a href="http://localhost:8808" target="_blank">http://localhost:8808</a> を表示して表示を確認する。表示できれば成功。</p>
<h4> [おまけ] Firefoxのスマートキーワードに検索ボックスを登録しておく</h4>
<p>Firefoxのスマートキーワードを設定しておくと、rdoc表示がさらに素早く行えます。おいらは gems というキーワードで登録しています。</p>
<p>Let's Enjoy!</p>
</div>

    ]]>
    </description>
    <link>http://d.hatena.ne.jp/from_kyushu/20090828/1251394695</link> 
    <pubDate>Thu, 27 Aug 2009 17:38:15 GMT</pubDate>
   </item>
  <item>
    <title>[Rubygems] Ruby 1.9.1で $HOME/.gem/ruby/1.9.1 以下のGemパッケージを使う方法</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<p>正しい方法かは知らないけど、とりあえず使うために頑張ってみる。</p>
			<h4> <a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/require">require</a> "rubygems/custom_require" をする</h4>
			<p>デフォルトで<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/Kernel">Kernel</a>.#<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/require">require</a>を上書きするとかそんなことをやらないようにか、rubygems.rb内で、<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/RUBY_VERSION">RUBY_VERSION</a>が1.9以上の場合はrubygems/custom_requireを読まないようになっています。なのでこいつを明示的に読むようにしてやれば一応は動きます。</p>
			<h4> <a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/Kernel">Kernel</a>#gem を使う</h4>
			<p>詳しくは<a href="http://doc.okkez.net/191/view/method/Kernel/i/gem" target="_blank">instance method Kernel#gem</a>辺りを参照。</p>
			<blockquote title="http://doc.okkez.net/191/view/method/Kernel/i/gem" cite="http://doc.okkez.net/191/view/method/Kernel/i/gem">
			<p>指定された Gem をロードする前にその Gem が必要とする Gem をロードします。バージョン情報を省略した場合は、最も高いバージョンの Gem をロードします。指定された Gem やその Gem が必要とする Gem が見つからなかった場合は Gem::<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/LoadError">LoadError</a> が発生します。 </p>
			<cite><a href="http://doc.okkez.net/191/view/method/Kernel/i/gem" target="_blank">instance method Kernel#gem</a></cite></blockquote>
			<p>ただ、るりまには上のように書いてあるのですが、バージョン情報を省略したらGem::<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/LoadError">LoadError</a>が発生しました。仕方がないので最新バージョンの Gem をロードするためにひと手間かけました。</p>
<pre class="syntax-highlight">
spec = <span class="synIdentifier">Gem</span>.searcher.find <span class="synSpecial">&quot;</span><span class="synConstant">hoge</span><span class="synSpecial">&quot;</span> <span class="synComment"># &quot;hoge&quot;に使用する Gem の名前を指定する</span>
gem spec.name, <span class="synSpecial">&quot;</span><span class="synConstant">= </span><span class="synSpecial">#{spec.version}&quot;</span>
<span class="synPreProc">require</span> spec.name
</pre>

			<p>やっている事は rubygems/custom_require でやっていることと変わりありません。Gem.activateを使うか<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/Kernel">Kernel</a>#gemを使うかの違い。</p>
			<h4> Gem::QuickLoader.load_full_rubygems_library を使う方法</h4>
			<p>これはRuby 1.8.x以下で<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/require">require</a> "rubygems"としたのと全く同じ状態になるもの、だと思う。</p>
			<p>多分各々が呼ぶべきものではないと思うのだけど、Ruby 1.9.1のソース内を探索していたらこんなものを見つけたので、せっかくなので使ってみる。</p>
		</div>

    ]]>
    </description>
    <link>http://rubyist.g.hatena.ne.jp/from_kyushu/20090611/1244705926</link> 
    <pubDate>Thu, 11 Jun 2009 07:38:46 GMT</pubDate>
   </item>
  <item>
    <title>[Rubygems] Rubygemsパッケージとか $HOME/.gem 以下にインストールするだろjk</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<blockquote title="http://wota.jp/ac/?date=20090604#p01" cite="http://wota.jp/ac/?date=20090604#p01">
			<p>/usr/bin/<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%2A">*</a> を勝手に荒らされるという話。</p>
			<cite><a href="http://wota.jp/ac/?date=20090604#p01" target="_blank">ヽ( ・∀・)ノくまくまー(2009-06-04)</a></cite></blockquote>
			<p>Rubygems 1.3.0から Gem.user_dir というメソッドが追加されていて、gemコマンドでインストールされるディレクトリにデフォルトで <a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%24">$</a>HOME/.gem 以下も追加してくれています。しかもこれ、Rubyの処理系ごと(1.8.x,1.9.x,JRuby等)にディレクトリを分けてくれます。</p>
			<p>例えば1.8.xの場合</p>
			<blockquote>
			<p><a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%24">$</a>HOME/.gem/ruby/1.8</p>
			</blockquote>
			<p>1.9.xの場合</p>
			<blockquote>
			<p><a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%24">$</a>HOME/.gem/ruby/1.9.1</p>
			</blockquote>
			<p>JRubyの場合</p>
			<blockquote>
			<p><a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%24">$</a>HOME/.gem/jruby/1.8</p>
			</blockquote>
			<p>となります。</p>
			<p>ただ、JRubyに<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%2D">-</a><a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%2D">-</a>1.9オプションを付けてgemを実行しても、 <a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/%24">$</a>HOME/.gem/jruby/1.8 になってしまう問題はあります。Rubygemsはバージョン指定の部分はRbConfig::<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/CONFIG">CONFIG</a>['<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/ruby_version">ruby_version</a>']を取って指定しているだけなので、1.9.1でなくて1.8を返しているJRuby側の問題っぽいです。</p>
			<p>デフォルト以外の場所にインストールする場合、環境変数GEM_HOMEを指定しちゃう方法が一番有名かもしれません。</p>
			<blockquote title="http://d.hatena.ne.jp/kitamomonga/20090605/ruby_rubygems_bins_install_to_user_dir" cite="http://d.hatena.ne.jp/kitamomonga/20090605/ruby_rubygems_bins_install_to_user_dir">
			<p>たぶん、環境変数 GEM_HOME をローカルのどこかに設定してユーザー権限で gem install すればうまくいくんじゃないでしょか。</p>
			<cite><a href="http://d.hatena.ne.jp/kitamomonga/20090605/ruby_rubygems_bins_install_to_user_dir" target="_blank"> Rubygems に /usr/bin を触らせないためには gem をユーザーディレクトリで運用する++ - きたももんががきたん。</a></cite></blockquote>
			<p>これだと1.8.xだろうが1.9.xだろうがJRubyだろうが同じディレクトリのgemを参照することになり、なんとも気持ち悪いことになってしまいます。単一処理系しか動かさないのなら問題はありませんが、複数処理系を動かす場合問題が起きてしまうことがあります。</p>
			<p>なので僕は基本GEM_HOMEも何も設定せずにユーザ権限で gem install するようにしています。ただ、この場合、処理系の数だけ<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/PATH">PATH</a>に追加しないといけないので、結構面倒かもしれません。</p>
		</div>

    ]]>
    </description>
    <link>http://rubyist.g.hatena.ne.jp/from_kyushu/20090605/1244189125</link> 
    <pubDate>Fri, 05 Jun 2009 08:05:25 GMT</pubDate>
   </item>
  <item>
    <title>[IRC] Mibbit: Embeddable widget使って #1986@freenode にブラウザからアクセスできるようにしたよ！</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<p><a class="keyword" href="http://generation1986.g.hatena.ne.jp/keyword/IRC">IRC</a>をWebブラウザから使える<a href="http://mobbit.com/" target="_blank">mobbit</a>を使って、<a href="http://generation1986.g.hatena.ne.jp/keyword/IRC" target="_blank">IRCのキーワードページ</a>から<a class="keyword" href="http://generation1986.g.hatena.ne.jp/keyword/IRC">IRC</a>を覗けるようにしてみたよ！</p>
			<p>Google Gadgetが貼付けられるってのは便利だね。</p>
			<p><script src="http://gmodules.com/ig/ifr?url=http://gimite.net/rails/iframe_gadget/xml%3Fscrolling%3Dtrue%26url%3Dhttp://embed.mibbit.com/%253Fserver%253Dirc.freenode.net%2526channel%253D%2525231986&#38;synd=open&#38;w=600&#38;h=300&#38;title=&#38;border=%23ffffff%7C3px%2C1px+solid+%23999999&#38;output=js"></script></p>
		</div>

    ]]>
    </description>
    <link>http://generation1986.g.hatena.ne.jp/from_kyushu/20081009/1223544431</link> 
    <pubDate>Thu, 09 Oct 2008 09:27:11 GMT</pubDate>
   </item>
  <item>
    <title>[日記]某T大クラスタとのオフ</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<p>東京に着いて早々本郷に向かうなどして、某T大クラスタな方々とオフ会を敢行しました。</p>
			<p>場所はハンバーガー店の<a href="http://www.firehouse.co.jp/" target="_blank">fire house</a>なるところでハンバーガーオフ。朝から何も食っていなかったおいらですが、fire houseのハンバーガーのデカさに驚いて腹が膨れるなどしました。誰かが「アボカドバーガー」に「アボカド」のトッピングを頼んだアボカド充がいたのですが、彼は間食できたんだろうか......。</p>
			<p>その後某T大クラスタな方の家に行ったのですが、なんだかそこでは驚きの連続でした。というか途中でネット目的でPCつけてしまってごめんなさい＞＜</p>
		</div>

    ]]>
    </description>
    <link>http://generation1986.g.hatena.ne.jp/from_kyushu/20080621/1213981438</link> 
    <pubDate>Fri, 20 Jun 2008 17:03:58 GMT</pubDate>
   </item>
  <item>
    <title>[日記]Tsukuba now.</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<p>Ruby会議に参加する為に現在つくばにやってきているfkです。長崎からはるばるやってきましたよ。</p>
		</div>

    ]]>
    </description>
    <link>http://generation1986.g.hatena.ne.jp/from_kyushu/20080621/1213981437</link> 
    <pubDate>Fri, 20 Jun 2008 17:03:57 GMT</pubDate>
   </item>
  <item>
    <title>[日記]もなぽん(o^冖^o)</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<blockquote>
			<p>[21:57:47] ******:の発言: も</p>
			<p>[21:57:49] *********の発言: な</p>
			<p>[21:57:50] *******の発言: ぽ</p>
			<p>[21:57:51] ***********の発言: ん</p>
			</blockquote>
		</div>

    ]]>
    </description>
    <link>http://generation1986.g.hatena.ne.jp/from_kyushu/20080221/1203598749</link> 
    <pubDate>Thu, 21 Feb 2008 12:59:09 GMT</pubDate>
   </item>
  <item>
    <title>[日記]第4回イケテルRails勉強会＠福岡</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<blockquote title="http://qwik.rubybizcommons.jp/members/327.html" cite="http://qwik.rubybizcommons.jp/members/327.html">
			<p>隔月開催のイケテルRails勉強会＠福岡。次回開催が決定しました。</p>
			<p>今回は、Webサービスにフォーカスしたシステム開発に挑戦したいと思います。</p>
			<p>世界中には、とても面白いWebサービスが沢山あります。</p>
			<p>この中からAPIが公開されているサービスをマッシュアップする方法。</p>
			<p>そしてそうしたコンテンツを配信する仕組みをつくりあげます。</p>
			<p>さらに今回は、Rubyで学ぶオブジェクト指向。誰でもできるプラグインの作り方。</p>
			<p>そして、メンバーからの事例発表と、盛りだくさんの内容です。</p>
			<p>実戦的な内容が学べるこの機会。お見逃しなく！</p>
			<cite><a href="http://qwik.rubybizcommons.jp/members/327.html" target="_blank">no title</a></cite></blockquote>
			<p>今回はプラグインを作るとのことですので、＠名古屋でやった「はじめてのプラグイン」を充実させたような内容なのかな、と予想。今回もチーム制作の時間があるみたいなので楽しみです。まぁ、その前にノートPCを調達しなければならんのですが、給料日後だからどうにかなるでしょう。</p>
			<h4>日時</h4>
			<p>3月15日（土）</p>
			<p>10時～18時</p>
			<h4>場所</h4>
			<p>特定非営利活動法人 高度IT人材アカデミー（予定）</p>
			<p>〒819-0006</p>
			<p>福岡県福岡市西区 姪浜駅南1丁目9番20号</p>
			<p>姪浜電気ビル10階</p>
			<p><a href="http://www.npo-aip.or.jp/about/map.asp" target="_blank">http://www.npo-aip.or.jp/about/map.asp</a></p>
			<h4>内容</h4>
			<ol>
				<li>Rubyで学ぶオブジェクト指向</li>
				<li>誰でもわかるWebサービス</li>
				<li>マッシュアップサイトを作ろう</li>
				<li>プラグインを作ってみよう</li>
				<li>チームでアイディアを考え、作ってみよう</li>
				<li>事例発表</li>
			</ol>
			<h4>申し込み</h4>
			<p><a href="http://form1.fc2.com/form/?id=278986" target="_blank">こちらのフォームより申し込んでください</a>だそうです。</p>
		</div>

    ]]>
    </description>
    <link>http://generation1986.g.hatena.ne.jp/from_kyushu/20080219/1203396747</link> 
    <pubDate>Tue, 19 Feb 2008 04:52:27 GMT</pubDate>
   </item>
  <item>
    <title>[日記]間違って日記の内容を消してしまった</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<p>今日の分の更新の際に昨日の日記の内容を消してしまいました。どうにかうろ覚えの内容を元に再現っぽく書いてみましたが、なんだか違う気がします。</p>
		</div>

    ]]>
    </description>
    <link>http://rubyist.g.hatena.ne.jp/from_kyushu/20071202/1196534673</link> 
    <pubDate>Sat, 01 Dec 2007 18:44:33 GMT</pubDate>
   </item>
  <item>
    <title>[日記]始めましてのご挨拶</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<h4>初めまして、<a href="http://rubyist.g.hatena.ne.jp/from_kyushu/">id:from_kyushu</a>です</h4>
			<p>プログラム初心者の職業PGです。詳しいプロフィールは<a href="http://d.hatena.ne.jp/from_kyushu/about" target="_blank">はてなダイアリーのプロフィール</a>にまとめていますので、そちらをご覧ください。</p>
			<p>Rubyビジネスコモンズ及びRBC長崎の会員です。Rubyistに書くのはちょっと違うかなー、と思いますのでこっちではあまり触れることはないかと思います。</p>
			<h4>この日記について</h4>
			<p>下記の教本やRuby,Railsを勉強していく上でのメモとして書き残していく予定です。しばらくは本当に勉強メインですが、アプリケーションを開発していく上でのメモなども残せていけるようにしたいなぁ、なんて妄想中。</p>
			<h4>教本</h4>
			<p>最近やりはじめました。超わかりやすいです。でも超分厚い。</p>
			<div class="hatena-asin-detail">
  <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066967/hatena-hamazou-22/"><img src="http://ecx.images-amazon.com/images/I/51Y%2BviLzM5L._SL160_.jpg" class="hatena-asin-detail-image" alt="RailsによるアジャイルWebアプリケーション開発 第2版" title="RailsによるアジャイルWebアプリケーション開発 第2版"></a>
  <div class="hatena-asin-detail-info">
    <p class="hatena-asin-detail-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066967/hatena-hamazou-22/">RailsによるアジャイルWebアプリケーション開発 第2版</a></p>
    <ul>
      
      <li><span class="hatena-asin-detail-label">作者:</span> <a href="http://d.hatena.ne.jp/keyword/Dave%20Thomas" class="okeyword">Dave Thomas</a>,<a href="http://d.hatena.ne.jp/keyword/David%20Heinemeier%20Hansson" class="okeyword">David Heinemeier Hansson</a>,<a href="http://d.hatena.ne.jp/keyword/Leon%20Breedt" class="okeyword">Leon Breedt</a>,<a href="http://d.hatena.ne.jp/keyword/Mike%20Clark" class="okeyword">Mike Clark</a>,<a href="http://d.hatena.ne.jp/keyword/Andreas%20Schwarz" class="okeyword">Andreas Schwarz</a>,<a href="http://d.hatena.ne.jp/keyword/James%20Duncan%20Davidson" class="okeyword">James Duncan Davidson</a>,<a href="http://d.hatena.ne.jp/keyword/Justin%20Gehtland" class="okeyword">Justin Gehtland</a>,<a href="http://d.hatena.ne.jp/keyword/%C1%B0%C5%C4%BD%A4%B8%E3" class="okeyword">前田修吾</a></li>
      
      <li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a href="http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%E0%BC%D2" class="okeyword">オーム社</a></li>
      
      <li><span class="hatena-asin-detail-label">発売日:</span> 2007/10/26</li>
                                                      <li><span class="hatena-asin-detail-label">メディア:</span> 大型本</li>
      <li><span class="hatena-asin-detail-label">購入</span>: 17人 <span class="hatena-asin-detail-label">クリック</span>: 273回</li>
      <li><a href="http://d.hatena.ne.jp/asin/4274066967" target="_blank">この商品を含むブログ (137件) を見る</a></li>
    </ul>
  </div>
  <div class="hatena-asin-detail-foot"></div>
</div>

			<p>以前やっていたのですがちょっと分かりづらい？正誤表と併せてやらないと痛い目に合います。</p>
			<div class="hatena-asin-detail">
  <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756147739/hatena-hamazou-22/"><img src="http://ecx.images-amazon.com/images/I/51YGZHFHJWL._SL160_.jpg" class="hatena-asin-detail-image" alt="はじめよう Ruby on Rails" title="はじめよう Ruby on Rails"></a>
  <div class="hatena-asin-detail-info">
    <p class="hatena-asin-detail-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756147739/hatena-hamazou-22/">はじめよう Ruby on Rails</a></p>
    <ul>
      
      <li><span class="hatena-asin-detail-label">作者:</span> <a href="http://d.hatena.ne.jp/keyword/%B9%E2%B6%B6%C0%AC%B5%C1" class="okeyword">高橋征義</a>,<a href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%BA%A4%D2%A4%B3" class="okeyword">かずひこ</a>,<a href="http://d.hatena.ne.jp/keyword/%B4%EE%C2%BF%C0%EE%B9%EB" class="okeyword">喜多川豪</a></li>
      
      <li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%B9%A5%AD%A1%BC" class="okeyword">アスキー</a></li>
      
      <li><span class="hatena-asin-detail-label">発売日:</span> 2006/07/03</li>
                                                      <li><span class="hatena-asin-detail-label">メディア:</span> 大型本</li>
      <li><span class="hatena-asin-detail-label">購入</span>: 2人 <span class="hatena-asin-detail-label">クリック</span>: 53回</li>
      <li><a href="http://d.hatena.ne.jp/asin/4756147739" target="_blank">この商品を含むブログ (85件) を見る</a></li>
    </ul>
  </div>
  <div class="hatena-asin-detail-foot"></div>
</div>

		</div>

    ]]>
    </description>
    <link>http://rubyist.g.hatena.ne.jp/from_kyushu/20071201/1196534574</link> 
    <pubDate>Sat, 01 Dec 2007 18:42:54 GMT</pubDate>
   </item>
  <item>
    <title>[Rails]RailsによるアジャイルWebアプリケーション開発 第2版 1日目</title> 
    <description>
    <![CDATA[
    
		<div class="section">
			<h4>進捗状況</h4>
			<p>6.4 イテレーションA4(～P77)まで終わった。イテレーションA3の検証の実装はあまりのシンプルさにちょっと感動した。</p>
			<h4>疑問</h4>
			<p>本書ではテストデータを用意するのにマイグレーションを使っているけど、フィクスチャじゃダメなのかな？索引見る限りではdb:fixtures:<a class="keyword" href="http://rubyist.g.hatena.ne.jp/keyword/load">load</a>は出てきていないようだけど･･････。こういうテストデータはマイグレーションで用意して、フィクスチャはテスト時のみに使うものなのかな。このまま勉強を進めたら分かりそうだから一時保留。</p>
		</div>

    ]]>
    </description>
    <link>http://rubyist.g.hatena.ne.jp/from_kyushu/20071201/1196534573</link> 
    <pubDate>Sat, 01 Dec 2007 18:42:53 GMT</pubDate>
   </item>
</channel>
</rss>
