<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>ディスコ探偵冬景色 &#187; Linux</title>
	<atom:link href="http://blog.udzura.jp/categories/tech/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.udzura.jp</link>
	<description>a coding class hero is something to be...</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:48:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/categories/tech/linux/feed/" />
		<item>
		<title>Ubuntuでkumofsのdebを作成する</title>
		<link>http://blog.udzura.jp/2010/07/20/kumofs-debuild-on-ubuntu/</link>
		<comments>http://blog.udzura.jp/2010/07/20/kumofs-debuild-on-ubuntu/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 11:06:10 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[DataBase]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=527</guid>
		<description><![CDATA[kumofsは、memcache互換のプロトコルをサポートする分散型KVS。
なぜかまだだれもdebを公開していなかったようなので、作り方を調べてみました。

基本手順
今時のデビアン系では、普通に「./configure &#038;&#038; make &#038;&#038; make install」で入るソフトウェアであれば、実質2コマンドでdeb化出来るようです。

ソースを落として、「ソフトウェア名-バージョン」の名のディレクトリに展開
dh_makeする
debuildする

依存ライブラリを入れる

1
sudo aptitude install build-essential ruby ruby-dev rubygems libtokyocabinet-dev

aptで入るのはこれぐらいだと思われる。http://hatotech.org/kumatch/archives/2010/03/04/ubuntu_kumofs.html http://d.hatena.ne.jp/irasya/20100120/1263936307 等参照
deb作成に必要なパッケージを入れる

1
sudo aptitude install dpkg-dev dh-make debhelper devscripts lintian

先に、GPG公開鍵を作っておく
http://gnupg.hclippr.com/gnupg%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/ のとおりの手順で作成しときましょう。乱数生成が大変ですが、頑張って。

1
2
sudo aptitude install gnupg
gpg --gen-key

参考：https://wiki.ubuntulinux.jp/UbuntuPackagingGuideJa/basic-scratch
gpg鍵を設定していない場合は、debuildからエラーが表示されるでしょう。gpg鍵を設定してもいいですが、debuildに-us -ucオプションを与えることで、署名をしないことも可能です。ただし、署名をしない限りUbuntuにパッケージをアップロードすることはできません。
つーことです。
まず、依存するライブラリであるMessagePackのdebを作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ tar xzf msgpack_0.5.2.tar.gz
$ cd msgpack-0.5.2/
$ dh_make -e udzura@udzura.jp -c apache -f ../msgpack-0.5.2.tar.gz 
&#160;
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kumofs.sourceforge.net/">kumofs</a>は、memcache互換のプロトコルをサポートする分散型KVS。</p>
<p>なぜかまだだれもdebを公開していなかったようなので、作り方を調べてみました。</p>
<p><span id="more-527"></span></p>
<h3>基本手順</h3>
<p>今時のデビアン系では、普通に「./configure &#038;&#038; make &#038;&#038; make install」で入るソフトウェアであれば、実質2コマンドでdeb化出来るようです。</p>
<ul>
<li>ソースを落として、「ソフトウェア名-バージョン」の名のディレクトリに展開</li>
<li>dh_makeする</li>
<li>debuildする</li>
</ul>
<h3>依存ライブラリを入れる</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential ruby ruby-dev rubygems libtokyocabinet-dev</pre></td></tr></table></div>

<p>aptで入るのはこれぐらいだと思われる。<a href="http://hatotech.org/kumatch/archives/2010/03/04/ubuntu_kumofs.html">http://hatotech.org/kumatch/archives/2010/03/04/ubuntu_kumofs.html</a> <a href="http://d.hatena.ne.jp/irasya/20100120/1263936307">http://d.hatena.ne.jp/irasya/20100120/1263936307</a> 等参照</p>
<h3>deb作成に必要なパッケージを入れる</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> dpkg-dev dh-make debhelper devscripts lintian</pre></td></tr></table></div>

<h3>先に、GPG公開鍵を作っておく</h3>
<p><a href="http://gnupg.hclippr.com/gnupg%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/">http://gnupg.hclippr.com/gnupg%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/</a> のとおりの手順で作成しときましょう。乱数生成が大変ですが、頑張って。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> gnupg
gpg <span style="color: #660033;">--gen-key</span></pre></td></tr></table></div>

<p>参考：<a href="https://wiki.ubuntulinux.jp/UbuntuPackagingGuideJa/basic-scratch">https://wiki.ubuntulinux.jp/UbuntuPackagingGuideJa/basic-scratch</a></p>
<blockquote><p>gpg鍵を設定していない場合は、debuildからエラーが表示されるでしょう。gpg鍵を設定してもいいですが、debuildに-us -ucオプションを与えることで、署名をしないことも可能です。ただし、署名をしない限りUbuntuにパッケージをアップロードすることはできません。</p></blockquote>
<p>つーことです。</p>
<h3>まず、依存するライブラリである<a href="http://msgpack.org/">MessagePack</a>のdebを作成</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">tar</span> xzf msgpack_0.5.2.tar.gz
$ <span style="color: #7a0874; font-weight: bold;">cd</span> msgpack-0.5.2<span style="color: #000000; font-weight: bold;">/</span>
$ dh_make <span style="color: #660033;">-e</span> udzura<span style="color: #000000; font-weight: bold;">@</span>udzura.jp <span style="color: #660033;">-c</span> apache <span style="color: #660033;">-f</span> ..<span style="color: #000000; font-weight: bold;">/</span>msgpack-0.5.2.tar.gz 
&nbsp;
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel <span style="color: #c20cb9; font-weight: bold;">patch</span> or cdbs?
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>s<span style="color: #000000; font-weight: bold;">/</span>i<span style="color: #000000; font-weight: bold;">/</span>m<span style="color: #000000; font-weight: bold;">/</span>l<span style="color: #000000; font-weight: bold;">/</span>k<span style="color: #000000; font-weight: bold;">/</span>n<span style="color: #000000; font-weight: bold;">/</span>b<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #666666; font-style: italic;">#=&gt; i</span>
&nbsp;
Maintainer name : Udzura Kondo
Email-Address   : udzura<span style="color: #000000; font-weight: bold;">@</span>udzura.jp 
Date            : Tue, <span style="color: #000000;">20</span> Jul <span style="color: #000000;">2010</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">35</span>:<span style="color: #000000;">28</span> +0900
Package Name    : msgpack
Version         : 0.5.2
License         : apache
Using dpatch    : no
Using quilt     : no
Type of Package : unknown
Hit <span style="color: #000000; font-weight: bold;">&lt;</span>enter<span style="color: #000000; font-weight: bold;">&gt;</span> to confirm: 
Done. Please edit the files <span style="color: #000000; font-weight: bold;">in</span> the debian<span style="color: #000000; font-weight: bold;">/</span> subdirectory now. msgpack
uses a configure script, so you probably don<span style="color: #ff0000;">'t have to edit the Makefiles.</span></pre></td></tr></table></div>

<p>メンテナがあなたになってしまいますが、まあ気にせずに。</p>
<p>バージョン0.5.2では make check でどうしても通りません（gtest.hを入れても通りません…）。いったん、make checkをしないように、 Makefile.in の617行目の以下をコメントアウト。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>617
</pre></td><td class="code"><pre class="makefile" style="font-family:monospace;">check: check-recursive</pre></td></tr></table></div>

<p>これで、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ debuild</pre></td></tr></table></div>

<p>終了後、親のフォルダに無事にdebファイルが生成されます。</p>
<h3>kumofsをdeb化</h3>
<p>まず、先ほど生成したてのdebをインストールしないとビルドできません。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ..
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> msgpack_0.5.2-<span style="color: #000000;">1</span>_all.deb
<span style="color: #666666; font-style: italic;"># 一緒にこちらも</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> msgpack</pre></td></tr></table></div>

<p>あとの手順は一緒です。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">tar</span> xzf kumofs-0.4.10.tar.gz
$ <span style="color: #7a0874; font-weight: bold;">cd</span> kumofs-0.4.10<span style="color: #000000; font-weight: bold;">/</span>
$ dh_make <span style="color: #660033;">-e</span> udzura<span style="color: #000000; font-weight: bold;">@</span>udzura.jp <span style="color: #660033;">-c</span> apache <span style="color: #660033;">-f</span> ..<span style="color: #000000; font-weight: bold;">/</span>kumofs-0.4.10.tar.gz 
$ debuild</pre></td></tr></table></div>

<h3>動くの？</h3>
<p>まっさらなUbuntuサーバ（OpenSSH ServerのみONでインストール）に入れてみましょう。</p>
<p>あらかじめSFTPか何かでdebを送り込みます。</p>
<p>今回、全然依存とか考えずにdebuildしたので、手動で依存するっぽいパッケージを入れます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ruby ruby-dev rubygems libtokyocabinet8</pre></td></tr></table></div>

<p>あれ、これだけ？</p>
<p>deb本体を入れてみます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> msgpack_0.5.2-<span style="color: #000000;">1</span>_all.deb
<span style="color: #666666; font-style: italic;"># このあと</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> msgpack
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> kumofs_0.4.10-<span style="color: #000000;">1</span>_all.deb</pre></td></tr></table></div>

<p>試運転します。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ kumo-manager <span style="color: #660033;">--usage</span>
usage: kumo-manager <span style="color: #660033;">-l</span> <span style="color: #000000; font-weight: bold;">&lt;</span>addr<span style="color: #7a0874; font-weight: bold;">&#91;</span>:<span style="color: #007800;">port</span>=<span style="color: #000000;">19700</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">&lt;</span>addr<span style="color: #7a0874; font-weight: bold;">&#91;</span>:<span style="color: #007800;">port</span>=<span style="color: #000000;">19700</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
  <span style="color: #660033;">-p</span>  <span style="color: #000000; font-weight: bold;">&lt;</span>addr<span style="color: #7a0874; font-weight: bold;">&#91;</span>:<span style="color: #007800;">port</span>=<span style="color: #000000;">19700</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">&gt;</span>   <span style="color: #660033;">--partner</span>        master-slave replication partner
  <span style="color: #660033;">-a</span>                        <span style="color: #660033;">--auto-replace</span>   <span style="color: #7a0874; font-weight: bold;">enable</span> auto replacing
  <span style="color: #660033;">-Rs</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">4</span><span style="color: #000000; font-weight: bold;">&gt;</span>            <span style="color: #660033;">--replace-delay</span>  delay <span style="color: #000000; font-weight: bold;">time</span> of auto replacing <span style="color: #000000; font-weight: bold;">in</span> sec.
  <span style="color: #660033;">-k</span>  <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--keepalive-interval</span>     keepalive interval <span style="color: #000000; font-weight: bold;">in</span> seconds
  <span style="color: #660033;">-Ys</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">&gt;</span>   <span style="color: #660033;">--connect-timeout</span>        connect timeout <span style="color: #000000; font-weight: bold;">time</span> <span style="color: #000000; font-weight: bold;">in</span> seconds
  <span style="color: #660033;">-Yn</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">4</span><span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--connect-retry-limit</span>    connect retry limit
  <span style="color: #660033;">-Ci</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--clock-interval</span>         clock interval <span style="color: #000000; font-weight: bold;">in</span> seconds
  <span style="color: #660033;">-TW</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--write-threads</span>          number of threads <span style="color: #000000; font-weight: bold;">for</span> asynchronous writing
  <span style="color: #660033;">-TR</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #007800;">number</span>=<span style="color: #000000;">8</span><span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--read-threads</span>           number of threads <span style="color: #000000; font-weight: bold;">for</span> asynchronous reading
  <span style="color: #660033;">-o</span>  <span style="color: #000000; font-weight: bold;">&lt;</span>path.log<span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--log</span>                    output logs to the <span style="color: #c20cb9; font-weight: bold;">file</span>
  <span style="color: #660033;">-g</span>  <span style="color: #000000; font-weight: bold;">&lt;</span>path.mpac<span style="color: #000000; font-weight: bold;">&gt;</span>   <span style="color: #660033;">--binary-log</span>             <span style="color: #7a0874; font-weight: bold;">enable</span> binary log
  <span style="color: #660033;">-v</span>                <span style="color: #660033;">--verbose</span>
  <span style="color: #660033;">-d</span>  <span style="color: #000000; font-weight: bold;">&lt;</span>path.pid<span style="color: #000000; font-weight: bold;">&gt;</span>    <span style="color: #660033;">--daemon</span>
&nbsp;
  v0.4.10 revision 0d4cb3a6797ce91ec8c1ee23fce6a3a1894ee618 Wed Jul <span style="color: #000000;">14</span> <span style="color: #000000;">19</span>:07:<span style="color: #000000;">35</span> <span style="color: #000000;">2010</span> +0900
&nbsp;
error: unexpected argument: <span style="color: #660033;">--usage</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> kumo-manager <span style="color: #660033;">-v</span> <span style="color: #660033;">-l</span> localhost <span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">4255</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">11</span> .<span style="color: #000000; font-weight: bold;">/</span>manager<span style="color: #000000; font-weight: bold;">/</span>init.h:<span style="color: #000000;">43</span>: start manager 127.0.0.1:<span style="color: #000000;">19700</span>
&nbsp;
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> kumo-server <span style="color: #660033;">-v</span> <span style="color: #660033;">-l</span> localhost <span style="color: #660033;">-m</span> localhost <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>kumodb.tch <span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">4270</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">20</span> .<span style="color: #000000; font-weight: bold;">/</span>server<span style="color: #000000; font-weight: bold;">/</span>init.h:<span style="color: #000000;">45</span>: start server 127.0.0.1:<span style="color: #000000;">19800</span>
&nbsp;
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">22</span> ..<span style="color: #000000; font-weight: bold;">/</span>rpc<span style="color: #000000; font-weight: bold;">/</span>client_tmpl.h:<span style="color: #000000;">157</span>: connecting to 127.0.0.1:<span style="color: #000000;">19700</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">22</span> ..<span style="color: #000000; font-weight: bold;">/</span>rpc<span style="color: #000000; font-weight: bold;">/</span>client_tmpl.h:<span style="color: #000000;">187</span>: connect success 127.0.0.1:<span style="color: #000000;">19700</span> fd<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">10</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">22</span> manager<span style="color: #000000; font-weight: bold;">/</span>framework.cc:<span style="color: #000000;">69</span>: new node <span style="color: #000000;">1</span> 127.0.0.1:<span style="color: #000000;">19800</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">22</span> server<span style="color: #000000; font-weight: bold;">/</span>framework.cc:<span style="color: #000000;">74</span>: new node <span style="color: #000000;">0</span> 127.0.0.1:<span style="color: #000000;">19700</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">22</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">35</span>: server connected 127.0.0.1:<span style="color: #000000;">19800</span>
&nbsp;
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ kumoctl localhost status
<span style="color: #7a0874; font-weight: bold;">hash</span> space timestamp:
  Thu Jan 01 09:00:00 +0900 <span style="color: #000000;">1970</span> clock <span style="color: #000000;">0</span>
attached node:
not attached node:
  127.0.0.1:<span style="color: #000000;">19800</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ kumoctl localhost attach
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">161</span>: update <span style="color: #7a0874; font-weight: bold;">hash</span> space at <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">173</span>: new server: 127.0.0.1:<span style="color: #000000;">19800</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">254</span>: start replace copy; <span style="color: #007800;">full</span>=<span style="color: #000000;">0</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">272</span>: active node: <span style="color: #000000;">1</span>
nil
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">189</span>: start replace copy <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">214</span>: dst active node: 127.0.0.1:<span style="color: #000000;">19800</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">218</span>: empty <span style="color: #7a0874; font-weight: bold;">hash</span> space. skip replacing.
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">386</span>: finish replace copy <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">365</span>: start replace delete <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">437</span>: start replace delete <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> server<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">459</span>: finish replace <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> manager<span style="color: #000000; font-weight: bold;">/</span>mod_replace.cc:<span style="color: #000000;">401</span>: replace finished <span style="color: #000000; font-weight: bold;">time</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">5495924397745111052</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ kumoctl localhost status
<span style="color: #7a0874; font-weight: bold;">hash</span> space timestamp:
  Tue Jul <span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">35</span> +0900 <span style="color: #000000;">2010</span> clock <span style="color: #000000;">12</span>
attached node:
  127.0.0.1:<span style="color: #000000;">19800</span>  <span style="color: #7a0874; font-weight: bold;">&#40;</span>active<span style="color: #7a0874; font-weight: bold;">&#41;</span>
not attached node:
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> kumo-gateway <span style="color: #660033;">-v</span> <span style="color: #660033;">-m</span> localhost <span style="color: #660033;">-t</span> <span style="color: #000000;">11211</span> <span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">4289</span>
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ <span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">47</span> ..<span style="color: #000000; font-weight: bold;">/</span>rpc<span style="color: #000000; font-weight: bold;">/</span>client_tmpl.h:<span style="color: #000000;">157</span>: connecting to 127.0.0.1:<span style="color: #000000;">19700</span>
<span style="color: #000000;">2010</span>-07-<span style="color: #000000;">20</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">47</span> ..<span style="color: #000000; font-weight: bold;">/</span>rpc<span style="color: #000000; font-weight: bold;">/</span>client_tmpl.h:<span style="color: #000000;">187</span>: connect success 127.0.0.1:<span style="color: #000000;">19700</span> fd<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">7</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ 
u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$</pre></td></tr></table></div>

<p>動いているようですが、、、</p>
<p>ホストOSからtelnetで繋いでみましょう。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ telnet 192.168.122.71 <span style="color: #000000;">11211</span>
Trying 192.168.122.71...
Connected to 192.168.122.71.
Escape character is <span style="color: #ff0000;">'^]'</span>.
get foo
VALUE foo <span style="color: #000000;">0</span> <span style="color: #000000;">5</span>
<span style="color: #000000;">12345</span>
END
<span style="color: #000000; font-weight: bold;">set</span> hogehoge <span style="color: #000000;">0</span> <span style="color: #000000;">0</span> <span style="color: #000000;">20</span>
hogehogehogehogehoge
STORED
get hogehoge
VALUE hogehoge <span style="color: #000000;">0</span> <span style="color: #000000;">20</span>
hogehogehogehogehoge
END
<span style="color: #7a0874; font-weight: bold;">exit</span>
Connection closed by foreign host.</pre></td></tr></table></div>

<p>kumofs側へ。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">u-kondo<span style="color: #000000; font-weight: bold;">@</span>ubuntu-test01:~$ kumohash <span style="color: #660033;">-m</span> localhost assign foo
db0f3feab5c7ee0b  foo
  <span style="color: #000000;">0</span>: 127.0.0.1:<span style="color: #000000;">19800</span></pre></td></tr></table></div>

<p>ちゃんと動いているようです！</p>
<p>スクラッチビルドよりはるかに手順が少なくなりました。</p>
<h3>今後</h3>
<p>元々の目的は「沢山のサーバにいれてためしたいのに、いちいちスクラッチビルドするのは面倒。。。」と思って適当でもdeb化して社内にでも配布仕様と思っていたのですが。</p>
<ul>
<li>もっとまともに依存関係を書く</li>
<li>libmsgpack-ruby的なdebも作る。RubyのGemだとどう作るんだろう？</li>
<li>PPAに公開する方法を調べる</li>
</ul>
<p>以上を頑張れば、僕のPPAにkumofsリポジトリを公開したりすることもできますね。</p>
<h3>もっと読む（俺が）</h3>
<ul>
<li><a href="https://wiki.ubuntulinux.jp/UbuntuPackagingGuideJa">The Ubuntu Packaging Guide 日本語版</a></li>
<li><a href="http://d.hatena.ne.jp/walf443/20090616/1245111017">■[debian]Debianパッケージ構築のメモ</a></li>
<li><a href="http://www.clear-code.com/blog/2010/1/18.html">Debianパッケージの作り方と公開方法: groongaを例にして</a></li>
<li><a href="http://gihyo.jp/admin/serial/01/ubuntu-recipe/0046?page=1">Ubuntu Weekly Recipe 第46回　PPAの活用</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/07/20/kumofs-debuild-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/07/20/kumofs-debuild-on-ubuntu/" />
	</item>
		<item>
		<title>Linux Commandline Ripping &#8211; Abcde</title>
		<link>http://blog.udzura.jp/2010/07/13/linux-commandline-ripping-abcde/</link>
		<comments>http://blog.udzura.jp/2010/07/13/linux-commandline-ripping-abcde/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:27:36 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[＜音楽＞]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=511</guid>
		<description><![CDATA[A Better CD Encoder via CDRipping。
Those who want a no-nosense, fast, customizable ripping solution should try ABCDE. 
mp3エンコーディングのためには、id3v2が要るって言われました。

1
sudo aptitude install id3v2 abcde

一応、lameとかも入れた方がいいかもしれません。いや、勝手に入るのかも。既に入れてたので確認できてませんが。。。
使ってみた感じ、コマンドラインなのでわりと軽い、何より速いです。AsunderとかRubyRipperとかも試したんですけど体感速度は全然違います。
/etc/abcde.conf で細かく設定します。以下、オプション設定例。

1
2
3
4
5
6
7
8
# デフォルトの出力フォーマット
OUTPUTTYPE=mp3
# lameに渡すオプションを直接記入
LAMEOPTS=&#34;--preset studio&#34;
# ファイル出力先の書式
OUTPUTFORMAT='/home/udzura/Music/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} - ${TRACKFILE}'
# リッピング終了後に、ディスクを取り出す
EJECTCD=y

あと、普通にコマンドラインのオプションを色々渡せます。

1
abcde -o 'mp3:--preset studio' -x # for example

ヘルプをガン見すればより細かい制御もできそうだし、しばらく使ってみようかと。ちなみに /usr/bin/abcde 自体はただのシェルスクリプトですね…。
# もしかしたら、WindowsでもCygwinとかで動くんじゃないですかね？
]]></description>
			<content:encoded><![CDATA[<p><a href="http://lly.org/~rcw/abcde/page/">A Better CD Encoder</a> via <a href="https://help.ubuntu.com/community/CDRipping">CDRipping</a>。</p>
<blockquote><p>Those who want a no-nosense, fast, customizable ripping solution should try ABCDE. </p></blockquote>
<p>mp3エンコーディングのためには、id3v2が要るって言われました。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> id3v2 abcde</pre></td></tr></table></div>

<p>一応、lameとかも入れた方がいいかもしれません。いや、勝手に入るのかも。既に入れてたので確認できてませんが。。。</p>
<p>使ってみた感じ、コマンドラインなのでわりと軽い、何より速いです。AsunderとかRubyRipperとかも試したんですけど体感速度は全然違います。</p>
<p>/etc/abcde.conf で細かく設定します。以下、オプション設定例。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># デフォルトの出力フォーマット</span>
<span style="color: #007800;">OUTPUTTYPE</span>=mp3
<span style="color: #666666; font-style: italic;"># lameに渡すオプションを直接記入</span>
<span style="color: #007800;">LAMEOPTS</span>=<span style="color: #ff0000;">&quot;--preset studio&quot;</span>
<span style="color: #666666; font-style: italic;"># ファイル出力先の書式</span>
<span style="color: #007800;">OUTPUTFORMAT</span>=<span style="color: #ff0000;">'/home/udzura/Music/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} - ${TRACKFILE}'</span>
<span style="color: #666666; font-style: italic;"># リッピング終了後に、ディスクを取り出す</span>
<span style="color: #007800;">EJECTCD</span>=y</pre></td></tr></table></div>

<p>あと、普通にコマンドラインのオプションを色々渡せます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">abcde <span style="color: #660033;">-o</span> <span style="color: #ff0000;">'mp3:--preset studio'</span> <span style="color: #660033;">-x</span> <span style="color: #666666; font-style: italic;"># for example</span></pre></td></tr></table></div>

<p>ヘルプをガン見すればより細かい制御もできそうだし、しばらく使ってみようかと。ちなみに <code>/usr/bin/abcde</code> 自体はただのシェルスクリプトですね…。</p>
<p># もしかしたら、WindowsでもCygwinとかで動くんじゃないですかね？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/07/13/linux-commandline-ripping-abcde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/07/13/linux-commandline-ripping-abcde/" />
	</item>
		<item>
		<title>sonydbでmp3 walkmanをコマンドライン管理（feat. xargs tips）</title>
		<link>http://blog.udzura.jp/2010/07/13/cui-walkman-manage-with-some-xargs-tips/</link>
		<comments>http://blog.udzura.jp/2010/07/13/cui-walkman-manage-with-some-xargs-tips/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 06:07:04 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[＜音楽＞]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=500</guid>
		<description><![CDATA[対象読者

Ubuntu等のデスクトップLinuxを利用している
MP3プレイヤーとしてSONYさんのMP3 Walkmanを愛用している

ということで、少なくとも僕は得をしますが、誰が得をするのかよく分からないTipsです。ワンライナーばっかりです。1行野郎最高！
あと、

xargsコマンド初心者～初級者ぐらいの方

にも、音楽とかソニー関係なく参考になると思われます。
動作確認
「NW-E026F」では、私の使用した限りでは問題なく動作することを確認しています。あくまでも公式の使い方から外れますので、自己責任でお願いします。

まず、sonydb自体のコマンドを確認しましょう

1
2
3
4
5
6
7
8
9
10
$ sonydb 
detected device /media/WALKMAN
usage...
	songs &#91;id&#93;
	songsdel &#91;id&#93;
	songsadd &#91;file&#93;
	songschk &#91;file&#93;
	plist &#91;id&#93;
	plistdel &#91;id&#93;
	plistadd &#91;file&#93;

任意のアーティスト/アルバムの曲をまとめて消す
sonydbはインストール済み、PATHの通ったところにある前提。

1
sonydb songs &#124; grep ${ARTIST_OR_ALBUM_NAME} &#124; cut -d, -f1 &#124; xargs -n1 -t sonydb songsdel

超UNIXっぽくて素敵ですね。
解説
前提として、sonydb songsdelはパラメータを一つしか取りません。なので、xargs -n1で「一つずつ」パラメータを送ってます。
grepやcutの解説は必要ないですよね……。
よく分からないときは、xargsに-tオプションを加えると実際に発行されるコマンドが分かります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ /opt/sonydb/bin/sonydb songs &#124; grep PANICSMILE &#124; cut -d, -f1 &#124; xargs -n1 -t /opt/sonydb/bin/sonydb songsdel
/opt/sonydb/bin/sonydb songsdel 0192 
Writing database files: OK
/opt/sonydb/bin/sonydb songsdel 0193 
Writing database files: [...]]]></description>
			<content:encoded><![CDATA[<h3>対象読者</h3>
<ul>
<li>Ubuntu等のデスクトップLinuxを利用している</li>
<li>MP3プレイヤーとしてSONYさんのMP3 Walkmanを愛用している</li>
</ul>
<p>ということで、少なくとも僕は得をしますが、誰が得をするのかよく分からないTipsです。ワンライナーばっかりです。1行野郎最高！</p>
<p>あと、</p>
<ul>
<li><code>xargs</code>コマンド初心者～初級者ぐらいの方</li>
</ul>
<p>にも、音楽とかソニー関係なく参考になると思われます。</p>
<h3>動作確認</h3>
<p>「NW-E026F」では、私の使用した限りでは問題なく動作することを確認しています。<strong>あくまでも公式の使い方から外れますので、自己責任でお願いします</strong>。</p>
<p><span id="more-500"></span></p>
<h3>まず、sonydb自体のコマンドを確認しましょう</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ sonydb 
detected device <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>WALKMAN
usage...
	songs <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	songsdel <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	songsadd <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">file</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	songschk <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">file</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	plist <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	plistdel <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
	plistadd <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">file</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<h3>任意のアーティスト/アルバムの曲をまとめて消す</h3>
<p>sonydbはインストール済み、PATHの通ったところにある前提。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">sonydb songs <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #800000;">${ARTIST_OR_ALBUM_NAME}</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -d, <span style="color: #660033;">-f1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-n1</span> <span style="color: #660033;">-t</span> sonydb songsdel</pre></td></tr></table></div>

<p>超UNIXっぽくて素敵ですね。</p>
<h4>解説</h4>
<p>前提として、<code>sonydb songsdel</code>はパラメータを一つしか取りません。なので、<code>xargs -n1</code>で「一つずつ」パラメータを送ってます。</p>
<p>grepやcutの解説は必要ないですよね……。</p>
<p>よく分からないときは、<code>xargs</code>に<code>-t</code>オプションを加えると実際に発行されるコマンドが分かります。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songs <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> PANICSMILE <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -d, <span style="color: #660033;">-f1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-n1</span> <span style="color: #660033;">-t</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0192 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0193 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0194 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0195 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0219 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0220 
Writing database files: OK
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>sonydb<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sonydb songsdel 0221 
Writing database files: OK
...</pre></td></tr></table></div>

<h3>あるフォルダにある曲をまとめて転送</h3>
<p>mp3のあるフォルダに入って、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.mp3&quot;</span> <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-n1</span> <span style="color: #660033;">-t</span> <span style="color: #660033;">-0</span> sonydb songsadd</pre></td></tr></table></div>

<h4>解説</h4>
<p>ファイル一覧を<code>xargs</code>でひとつずつ<code>sonydb songsadd</code>に流し込むだけです。のはずなんですが、多くの場合、曲名そのままファイル名にしたりしてますから、ファイル名には半角スペースが含まれてたりします。このままだと困るわけです。</p>
<p><code>find -print0</code>で、各ファイルパスを、改行ではなく0文字（null文字）でつなげて出力してくれます。それを、<code>xargs</code>の<code>-0</code>オプションで再度バラします。あとは一緒ですね。</p>
<h3>まとめ</h3>
<p><code>xargs</code>　すごく便利。あと普通の音楽クラスタはコマンドラインでmp3プレイヤーの中身を管理したりしない。</p>
<h3>参考</h3>
<p><a href="http://mattn.kaoriya.net/software/linux/20071121165107.htm">開発者さんの解説ページ</a>にインストール方法、普通の使い方など、色々詳しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/07/13/cui-walkman-manage-with-some-xargs-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/07/13/cui-walkman-manage-with-some-xargs-tips/" />
	</item>
		<item>
		<title>Ubuntuに、passenger-install-nginx-moduleした</title>
		<link>http://blog.udzura.jp/2010/07/06/passenger-install-nginx-module-on-ubuntu/</link>
		<comments>http://blog.udzura.jp/2010/07/06/passenger-install-nginx-module-on-ubuntu/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 03:26:33 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=485</guid>
		<description><![CDATA[Ubuntuは、aptitudeでNginxが入るんだけど、Passenger対応しているわけではない。ビルド時に指定しないとPassengerのモジュールが組み込まれないから。
以下は、passenger対応させた上でinitスクリプトの登録までする手順。

１．ビルド＋インストール
gem経由でpassengerを入れる

1
sudo gem install passenger

passenger-install-nginx-moduleする。依存するパッケージは、apacheの時と比べて多くない。C++コンパイラぐらい。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo passenger-install-nginx-module
&#160;
... # 以下が依存関係。通らないときは頑張って入れること
 * GNU C++ compiler... found at /usr/bin/g++
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * rack... found
 * OpenSSL development headers... found
 * Zlib development headers... found
...
&#160;
Enter your choice &#40;1 or 2&#41; or press Ctrl-C to [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntuは、aptitudeでNginxが入るんだけど、Passenger対応しているわけではない。ビルド時に指定しないとPassengerのモジュールが組み込まれないから。</p>
<p>以下は、passenger対応させた上でinitスクリプトの登録までする手順。</p>
<p><span id="more-485"></span></p>
<h3>１．ビルド＋インストール</h3>
<p>gem経由でpassengerを入れる</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> passenger</pre></td></tr></table></div>

<p>passenger-install-nginx-moduleする。依存するパッケージは、apacheの時と比べて多くない。C++コンパイラぐらい。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> passenger-install-nginx-module
&nbsp;
... <span style="color: #666666; font-style: italic;"># 以下が依存関係。通らないときは頑張って入れること</span>
 <span style="color: #000000; font-weight: bold;">*</span> GNU C++ compiler... found at <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">g++</span>
 <span style="color: #000000; font-weight: bold;">*</span> Ruby development headers... found
 <span style="color: #000000; font-weight: bold;">*</span> OpenSSL support <span style="color: #000000; font-weight: bold;">for</span> Ruby... found
 <span style="color: #000000; font-weight: bold;">*</span> RubyGems... found
 <span style="color: #000000; font-weight: bold;">*</span> Rake... found at <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rake
 <span style="color: #000000; font-weight: bold;">*</span> rack... found
 <span style="color: #000000; font-weight: bold;">*</span> OpenSSL development headers... found
 <span style="color: #000000; font-weight: bold;">*</span> Zlib development headers... found
...
&nbsp;
Enter your choice <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span> or <span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> or press Ctrl-C to abort: <span style="color: #666666; font-style: italic;">#=&gt; 1</span>
...
&nbsp;
Please specify a prefix directory <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #7a0874; font-weight: bold;">&#93;</span>: <span style="color: #666666; font-style: italic;">#=&gt; デフォルトのままでいいでしょう</span>
...
&nbsp;
<span style="color: #660033;">--------------------------------------------</span>
&nbsp;
Nginx with Passenger support was successfully installed.
...</pre></td></tr></table></div>

<h3>２．コンフィギュアー</h3>
<p>以下を設定する。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>gedit<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">vi</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>nginx.conf</pre></td></tr></table></div>


<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">...
# init script的に必要なのでpid fileを指定
pid /var/run/nginx.pid<span style="color: #666666; font-style: italic;">;</span>
&nbsp;
# passenger_root 等は最初から設定済みになっている
...
# 
server <span style="">&#123;</span>
  listen <span style="">8080</span><span style="color: #666666; font-style: italic;">;</span>
  server_name dev.local.udzura.jp<span style="color: #666666; font-style: italic;">;</span>
  # publicを指定してね
  root /var/www/dev-app/public<span style="color: #666666; font-style: italic;">;</span>
  passenger_enabled on<span style="color: #666666; font-style: italic;">;</span>
  # 必要であれば
  rails_env development<span style="color: #666666; font-style: italic;">;</span>
  #rails_env production<span style="color: #666666; font-style: italic;">;</span>
  ...
  # tips: error_page とかも指定しとくとそれっぽい
<span style="">&#125;</span></pre></div></div>

<h3>３．イニット・スクリプトの作成</h3>
<ul>
<li><a href="http://wiki.nginx.org/Nginx-init-ubuntu">Ubuntu Nginx Init Script Nginx-init-ubuntu </a></li>
</ul>
<p>以上のサイトをコピペし、 <code>/etc/init.d/nginx-passenger</code> に保存しましょう。</p>
<p>変更箇所：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">...
<span style="color: #007800;">DAEMON</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>nginx
...
<span style="color: #007800;">NGINX_CONF_FILE</span>=<span style="color: #ff0000;">&quot;/opt/nginx/conf/nginx.conf&quot;</span>
...
<span style="color: #666666; font-style: italic;"># 万一、あなたがaptで入れたgemのバージョンをアップデートして、</span>
<span style="color: #666666; font-style: italic;"># そのせいで「gemが見つからない」とか言われてRailsが起動しない場合は、</span>
<span style="color: #666666; font-style: italic;"># 以下の魔法の一行で解決する可能性があります。</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GEM_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>gems<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1.8</span>
...</pre></div></div>

<p>そして、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx-passenger
<span style="color: #c20cb9; font-weight: bold;">sudo</span> update-rc.d <span style="color: #660033;">-f</span> nginx-passenger defaults</pre></td></tr></table></div>

<p>あと、ディレクトリ構成がDebianっぽくないので、そこは好みで自分で設定しましょう。</p>
<p>以上です。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/07/06/passenger-install-nginx-module-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/07/06/passenger-install-nginx-module-on-ubuntu/" />
	</item>
		<item>
		<title>emacsにhowm / あと、debリポジトリのgpg公開鍵を取得する方法</title>
		<link>http://blog.udzura.jp/2010/06/11/homw-install-and-get-gpg-pubkey/</link>
		<comments>http://blog.udzura.jp/2010/06/11/homw-install-and-get-gpg-pubkey/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 10:24:08 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=448</guid>
		<description><![CDATA[EVERNOTE全盛の時代に敢えて入れてみた。

howm &#8211; Hitori Otegaru Wiki Modoki
unofficial howm package for debian

Ubuntuなので、普通にリポジトリを登録してaptitudeでいいんだけど、公開鍵を登録する際に困ったので、今後のためにメモする。
上記ページのとおり、apt-lineに以下を加える。
deb http://howm.sourceforge.jp/debian ./
vimとかでもいいけど、GUIで「システム-&#62;システム管理-&#62;ソフトウェア・ソース-&#62;他のソフトウェア-&#62;追加」でコピペ追加したほうが楽なんじゃないか。
でも、これだけだとaptitude updateしても以下の警告が出る。
W: GPG error: http://howm.sourceforge.jp ./ Release: 公開鍵を利用できないため、以下の署名は検証できませんでした:

公開鍵の情報も、上記debian向けパッケージのページにある。
gpgと言うコマンドを活用する。

1
2
gpg --keyserver subkeys.pgp.net --recv-key 8E632DCB
gpg --export &#124; sudo apt-key add -

以上で、

1
sudo aptitude update &#38;&#38; sudo aptitude install howm

ができます。
インストーレーション完了後は、~/.emacs に以下を追加。参考サイトそのまんま。

1
2
3
4
5
6
7
8
9
10
11
;; howm setting
&#40;setq howm-menu-lang 'ja&#41;
&#40;require 'howm-mode&#41;
&#40;global-set-key &#34;\C-c,,&#34; 'howm-menu&#41;
&#40;mapc
 &#40;lambda &#40;f&#41;
   &#40;autoload f
     &#34;howm&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>EVERNOTE全盛の時代に敢えて入れてみた。</p>
<ul>
<li><a href="http://howm.sourceforge.jp/index-j.html">howm &#8211; Hitori Otegaru Wiki Modoki</a></li>
<li><a href="http://howm.sourceforge.jp/debian/">unofficial howm package for debian</a></li>
</ul>
<p>Ubuntuなので、普通にリポジトリを登録してaptitudeでいいんだけど、公開鍵を登録する際に困ったので、今後のためにメモする。</p>
<p>上記ページのとおり、apt-lineに以下を加える。</p>
<blockquote><p><code>deb http://howm.sourceforge.jp/debian ./</code></p></blockquote>
<p>vimとかでもいいけど、GUIで「システム-&gt;システム管理-&gt;ソフトウェア・ソース-&gt;他のソフトウェア-&gt;追加」でコピペ追加したほうが楽なんじゃないか。</p>
<p>でも、これだけだとaptitude updateしても以下の警告が出る。</p>
<blockquote><p>W: GPG error: http://howm.sourceforge.jp ./ Release: 公開鍵を利用できないため、以下の署名は検証できませんでした:
</p></blockquote>
<p>公開鍵の情報も、上記debian向けパッケージのページにある。</p>
<p>gpgと言うコマンドを活用する。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--keyserver</span> subkeys.pgp.net <span style="color: #660033;">--recv-key</span> 8E632DCB
gpg <span style="color: #660033;">--export</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-key</span> add -</pre></td></tr></table></div>

<p>以上で、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> howm</pre></td></tr></table></div>

<p>ができます。</p>
<p>インストーレーション完了後は、~/.emacs に以下を追加。<a href="http://www.bookshelf.jp/soft/meadow_38.html#SEC560">参考サイトそのまんま</a>。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">;; howm setting</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> howm-menu-lang 'ja<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'howm-mode<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>global-set-key <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\C</span>-c,,&quot;</span> 'howm-menu<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapc</span>
 <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>f<span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#40;</span>autoload f
     <span style="color: #ff0000;">&quot;howm&quot;</span> <span style="color: #ff0000;">&quot;Hitori Otegaru Wiki Modoki&quot;</span> t<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
 '<span style="color: #66cc66;">&#40;</span>howm-menu howm-list-all howm-list-recent
            howm-list-grep howm-create
             howm-keyword-to-kill-ring<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>基本的キーバインド。</p>
<pre>
	C-c , ,		メニュー
	C-c , c		新規作成
	C-c , a		一覧表示
	C-c , l		最近のものを表示
	C-c , g		検索（Regexp）
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/06/11/homw-install-and-get-gpg-pubkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/06/11/homw-install-and-get-gpg-pubkey/" />
	</item>
		<item>
		<title>死んだAnthyを復活させた @ Ubuntu Lucid</title>
		<link>http://blog.udzura.jp/2010/05/29/anthy-strikes-back/</link>
		<comments>http://blog.udzura.jp/2010/05/29/anthy-strikes-back/#comments</comments>
		<pubDate>Sat, 29 May 2010 09:03:26 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=423</guid>
		<description><![CDATA[いつものことでFirefoxが不安定になり、電源ボタンで強制終了させて起動し直したら、Anthyが上がらなくなってた。
language-support-input-jaをインストールし直したりしたけど効果がなかった。が、以下の二つで何だか分からないが直った。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ls ~/.anthy/ -l
合計 56
-rw-r--r-- 1 u-kondo u-kondo 26016 2010-05-29 16:17 last-record1_default.utf8
-rw-r--r-- 1 u-kondo u-kondo 24576 2010-05-29 16:29 last-record2_default.utf8
-rw------- 1 u-kondo u-kondo     0 2010-03-29 14:36 lock-file_default
# 全部消してみる
$ rm ~/.anthy/*
$ ls ~/.config/ibus/bus/ -l
合計 8
-rw-r--r-- 1 u-kondo u-kondo 170 2010-05-29 17:45 1ae2fabd1ca381277fddbc954bcc4aaf-unix-0
-rw-r--r-- 1 u-kondo u-kondo 170 2010-04-16 10:51 300c16e57b9255cd2c984b614bb0364e-unix-0
# 本来一つしかあるべきでないものが二つ？
# 古い方を消す
$ rm ~/.config/ibus/bus/300c16e57b9255cd2c984b614bb0364e-unix-0
# [...]]]></description>
			<content:encoded><![CDATA[<p>いつものことでFirefoxが不安定になり、電源ボタンで強制終了させて起動し直したら、Anthyが上がらなくなってた。</p>
<p>language-support-input-jaをインストールし直したりしたけど効果がなかった。が、以下の二つで何だか分からないが直った。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ls</span> ~<span style="color: #000000; font-weight: bold;">/</span>.anthy<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-l</span>
合計 <span style="color: #000000;">56</span>
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> u-kondo u-kondo <span style="color: #000000;">26016</span> <span style="color: #000000;">2010</span>-05-<span style="color: #000000;">29</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">17</span> last-record1_default.utf8
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> u-kondo u-kondo <span style="color: #000000;">24576</span> <span style="color: #000000;">2010</span>-05-<span style="color: #000000;">29</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">29</span> last-record2_default.utf8
<span style="color: #660033;">-rw-------</span> <span style="color: #000000;">1</span> u-kondo u-kondo     <span style="color: #000000;">0</span> <span style="color: #000000;">2010</span>-03-<span style="color: #000000;">29</span> <span style="color: #000000;">14</span>:<span style="color: #000000;">36</span> lock-file_default
<span style="color: #666666; font-style: italic;"># 全部消してみる</span>
$ <span style="color: #c20cb9; font-weight: bold;">rm</span> ~<span style="color: #000000; font-weight: bold;">/</span>.anthy<span style="color: #000000; font-weight: bold;">/*</span>
$ <span style="color: #c20cb9; font-weight: bold;">ls</span> ~<span style="color: #000000; font-weight: bold;">/</span>.config<span style="color: #000000; font-weight: bold;">/</span>ibus<span style="color: #000000; font-weight: bold;">/</span>bus<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-l</span>
合計 <span style="color: #000000;">8</span>
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> u-kondo u-kondo <span style="color: #000000;">170</span> <span style="color: #000000;">2010</span>-05-<span style="color: #000000;">29</span> <span style="color: #000000;">17</span>:<span style="color: #000000;">45</span> 1ae2fabd1ca381277fddbc954bcc4aaf-unix-<span style="color: #000000;">0</span>
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> u-kondo u-kondo <span style="color: #000000;">170</span> <span style="color: #000000;">2010</span>-04-<span style="color: #000000;">16</span> <span style="color: #000000;">10</span>:<span style="color: #000000;">51</span> 300c16e57b9255cd2c984b614bb0364e-unix-<span style="color: #000000;">0</span>
<span style="color: #666666; font-style: italic;"># 本来一つしかあるべきでないものが二つ？</span>
<span style="color: #666666; font-style: italic;"># 古い方を消す</span>
$ <span style="color: #c20cb9; font-weight: bold;">rm</span> ~<span style="color: #000000; font-weight: bold;">/</span>.config<span style="color: #000000; font-weight: bold;">/</span>ibus<span style="color: #000000; font-weight: bold;">/</span>bus<span style="color: #000000; font-weight: bold;">/</span>300c16e57b9255cd2c984b614bb0364e-unix-<span style="color: #000000;">0</span>
<span style="color: #666666; font-style: italic;"># GNOMEインジケータアプレット経由でiBus再起動</span></pre></td></tr></table></div>

<p>これであっさり直った。。。うまくいかなくてもご勘弁を。</p>
<p>と言うか、64bit版UbuntuのFirefoxが不安定過ぎる気がする。ちょっとJavaScriptが重いページを多めにあげるだけで操作不能になるし。。</p>
<h3>追記＠06:10</h3>
<ul>
<li><a href="http://www.mmsp.nitech.ac.jp/~k09/edit.php?tips%2FVine%20Linux%20%E3%81%AB%E8%A6%AA%E3%81%97%E3%82%80">anthy（日本語変換）が機能しなくなる</a></li>
</ul>
<p>上記ページでも同様の現象と解決策が書いてあります。上の僕のログでもそうだけど、「last-record1_default」が存在してるのがダメっぽいですね。。Linuxユーザで共有したいTipsです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/05/29/anthy-strikes-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/05/29/anthy-strikes-back/" />
	</item>
		<item>
		<title>Ubuntu 10.04(64bit)では何か知らんけどRubyODBCでエラーが出る</title>
		<link>http://blog.udzura.jp/2010/05/07/ubuntu-10-04-64bit-error-on-ruby-odbc/</link>
		<comments>http://blog.udzura.jp/2010/05/07/ubuntu-10-04-64bit-error-on-ruby-odbc/#comments</comments>
		<pubDate>Fri, 07 May 2010 03:27:01 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[DataBase]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=385</guid>
		<description><![CDATA[INTERN (0) [RubyODBC]Cannot allocate SQLHENV
とか言って接続できません。すげー困ってました。
The only thing that worked was 0.9995-1 from the archives.  I&#8217;m not sure  if it has ever been done but the best way to fix this regression might  be to use the older version.

https://bugs.launchpad.net/ubuntu/+source/libodbc-ruby/+bug/447523


LaunchPadではこう言っていて、僕もまったくその通りに思うので微妙なんですけど、hardy（！）のlibodbc-ruby1.8(0.9995-1)を入れることで解決しました。
（※ 一応、Ruby-ODBCの公式から0.9995を落としてコンパイルしても、同じエラーが出ました。。）

http://packages.ubuntu.com/hardy/libodbc-ruby1.8


1
2
wget http://kr.archive.ubuntu.com/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_amd64.deb
sudo dpkg -i libodbc-ruby1.8_0.9995-1_amd64.deb

aptitudeで入れるunixodbc(-dev)や、gemのdbi、dbd-odbcには関係のないバグのようなので、その辺は普通に入れていいと思います。
あと、selectできることを確認しただけだったりするので。。。複雑なことをしようとするとやっぱり落ちるかも。
＊　＊　＊
そうそう、Ruby Enterprise Editionなら何の問題なく、最新版で接続できた、なんて情報が上記LaunchPadにはあります。僕は試してないですけど（環境が出来上がってる状態で、Ruby自体を切り替えるのは大変……）。
]]></description>
			<content:encoded><![CDATA[<blockquote><p><code>INTERN (0) [RubyODBC]Cannot allocate SQLHENV</code></p></blockquote>
<p>とか言って接続できません。すげー困ってました。</p>
<blockquote><p>The only thing that worked was 0.9995-1 from the archives.  I&#8217;m not sure  if it has ever been done but the best way to fix this regression might  be to use the older version.</p>
<ul>
<li><a href="https://bugs.launchpad.net/ubuntu/+source/libodbc-ruby/+bug/447523">https://bugs.launchpad.net/ubuntu/+source/libodbc-ruby/+bug/447523</a></li>
</ul>
</blockquote>
<p>LaunchPadではこう言っていて、僕もまったくその通りに思うので微妙なんですけど、hardy（！）のlibodbc-ruby1.8(0.9995-1)を入れることで解決しました。</p>
<p>（※ 一応、Ruby-ODBCの公式から0.9995を落としてコンパイルしても、同じエラーが出ました。。）</p>
<ul>
<li><a href="http://packages.ubuntu.com/hardy/libodbc-ruby1.8">http://packages.ubuntu.com/hardy/libodbc-ruby1.8</a></li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>kr.archive.ubuntu.com<span style="color: #000000; font-weight: bold;">/</span>ubuntu<span style="color: #000000; font-weight: bold;">/</span>pool<span style="color: #000000; font-weight: bold;">/</span>universe<span style="color: #000000; font-weight: bold;">/</span>libo<span style="color: #000000; font-weight: bold;">/</span>libodbc-ruby<span style="color: #000000; font-weight: bold;">/</span>libodbc-ruby1.8_0.9995-<span style="color: #000000;">1</span>_amd64.deb
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> libodbc-ruby1.8_0.9995-<span style="color: #000000;">1</span>_amd64.deb</pre></td></tr></table></div>

<p>aptitudeで入れるunixodbc(-dev)や、gemのdbi、dbd-odbcには関係のないバグのようなので、その辺は普通に入れていいと思います。</p>
<p>あと、selectできることを確認しただけだったりするので。。。複雑なことをしようとするとやっぱり落ちるかも。</p>
<h3>＊　＊　＊</h3>
<p>そうそう、<a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a>なら何の問題なく、最新版で接続できた、なんて情報が上記LaunchPadにはあります。僕は試してないですけど（環境が出来上がってる状態で、Ruby自体を切り替えるのは大変……）。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/05/07/ubuntu-10-04-64bit-error-on-ruby-odbc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/05/07/ubuntu-10-04-64bit-error-on-ruby-odbc/" />
	</item>
		<item>
		<title>開発者がUbuntuを使ってて良かったこと</title>
		<link>http://blog.udzura.jp/2010/04/30/ubuntu-goodness-for-developpers/</link>
		<comments>http://blog.udzura.jp/2010/04/30/ubuntu-goodness-for-developpers/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 03:22:25 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=363</guid>
		<description><![CDATA[
http://www.ubuntu.com/

10.04 LTSリリース記念に書いてみる。

無料
KVMが使いやすい上、高速。カジュアルな仮想化、コピペでサーバ複製
最初から高性能なパッケージマネージャが入っている
最初からGNU coreutilsとかGNU findutilsが入ってる
Linuxの知識がいやでも付く、なんかサーバいじりでは付かないような知識もたくさん付く

だんだん苦しくなっているような。。
逆に、困ることは超たくさんあるのでまあ、そこは気合でハック。
といいつつも、上3つはかなり助かる「長所」なわけで、本番環境同様の環境をローカルで破壊、再構築をカジュアルにできるってのはすごい生産性があがると思うし（VMWareは僕にはもっさりしすぎている。移植性はいいんだけど）、MacPortsを入れるのはちょっと手間だし、品揃えもaptitudeの方が豊富。GUI好きにはSynapticと言う、これまた素晴らしいソフトウェアが存在する。
でも、正直一番最初の特徴が最強なんだと思っている。下手をすれば5～6万円で十分に生産的な環境が手に入る。Macだと20万ぐらい（これでも異常に安くなった）のCore i7マシンも、10万前半で入手可能なわけで。しかも、強いCPUがあればたくさん仮想環境を立ち上げたりして。プライベートクラウドも夢じゃない。
まあ、新しすぎるアーキテクチャだと正常起動すら保証されないが。。。（こないだ、最近出たThinkpad T510にUbuntuを入れたが、9.10は画面が映らなかった。。でも、10.04で正常にインストールできたし、なんだかんだ大丈夫だとは思うよ）
一つ言えることは、僕のようなGUI大好きな人間でも、Ubuntu Desktopは実用に足りて余りある。
意外と困らなかったこと:

ネットとメール: どうせWindowsでもFirefoxとThunderbirdだった。まったく同じ使い勝手で使えるし、add-onも使える
ドキュメント: OpenOfficeがある。しかもWindows上のOpenOfficeと違ってもっさりしすぎていない
Adobe関連: ReaderもFlash PlayerもLinux対応しています
メッセンジャー: skypeとかMSNとか普通に使える
音楽: 取り込みも聴く方も出来る
動画: 観られるし、コーデックは自動で落としてくれる
MP3ウォークマン: コマンドラインで対応できたし充分だと思う（sonydbの紹介記事）。ちなみに、未確認だけどiPodとかは自動認識するって聞いている
開発環境: emacsがMac以上に馴染む。というか、そもそもJavaでできたものは動くのだから、NetBeansもEclipseも同じように動く
最悪: リモートデスクトップでWindowsに接続出来るので、誰かのマシンを借りれば良い（会社とかでの利用なら）

一応nanoとかWineとかもあるんですけど、あまり期待しないほうがいいです。エロゲとかはGNU Hentai Engine的なそういうのの出現に期待しましょう。
Macがダメとか言っていないし僕もMac欲しいです。でも、「エンジニアはMacじゃなければいけない！」　みたいな形にこだわって何もしないよりは、早く安価なPCとUbuntuを入手したほうがいいんじゃないかな、と思います。
]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.ubuntu.com/">http://www.ubuntu.com/</a></li>
</ul>
<p>10.04 LTSリリース記念に書いてみる。</p>
<ul>
<li>無料</li>
<li>KVMが使いやすい上、高速。カジュアルな仮想化、コピペでサーバ複製</li>
<li>最初から高性能なパッケージマネージャが入っている</li>
<li>最初からGNU coreutilsとかGNU findutilsが入ってる</li>
<li>Linuxの知識がいやでも付く、なんかサーバいじりでは付かないような知識もたくさん付く</li>
</ul>
<p>だんだん苦しくなっているような。。</p>
<p>逆に、困ることは超たくさんあるのでまあ、そこは気合でハック。</p>
<p>といいつつも、上3つはかなり助かる「長所」なわけで、本番環境同様の環境をローカルで破壊、再構築をカジュアルにできるってのはすごい生産性があがると思うし（VMWareは僕にはもっさりしすぎている。移植性はいいんだけど）、MacPortsを入れるのはちょっと手間だし、品揃えもaptitudeの方が豊富。GUI好きにはSynapticと言う、これまた素晴らしいソフトウェアが存在する。</p>
<p>でも、正直一番最初の特徴が最強なんだと思っている。下手をすれば5～6万円で十分に生産的な環境が手に入る。Macだと20万ぐらい（これでも異常に安くなった）のCore i7マシンも、10万前半で入手可能なわけで。しかも、強いCPUがあればたくさん仮想環境を立ち上げたりして。プライベートクラウドも夢じゃない。</p>
<p>まあ、新しすぎるアーキテクチャだと正常起動すら保証されないが。。。（こないだ、最近出たThinkpad T510にUbuntuを入れたが、9.10は画面が映らなかった。。でも、10.04で正常にインストールできたし、なんだかんだ大丈夫だとは思うよ）</p>
<p>一つ言えることは、僕のようなGUI大好きな人間でも、Ubuntu Desktopは実用に足りて余りある。</p>
<p>意外と困らなかったこと:</p>
<ul>
<li>ネットとメール: どうせWindowsでもFirefoxとThunderbirdだった。まったく同じ使い勝手で使えるし、add-onも使える</li>
<li>ドキュメント: OpenOfficeがある。しかもWindows上のOpenOfficeと違ってもっさりしすぎていない</li>
<li>Adobe関連: ReaderもFlash PlayerもLinux対応しています</li>
<li>メッセンジャー: skypeとかMSNとか普通に使える</li>
<li>音楽: 取り込みも聴く方も出来る</li>
<li>動画: 観られるし、コーデックは自動で落としてくれる</li>
<li>MP3ウォークマン: コマンドラインで対応できたし充分だと思う（<a href="http://makeorbreak.info/?p=2190">sonydbの紹介記事</a>）。ちなみに、未確認だけどiPodとかは自動認識するって聞いている</li>
<li>開発環境: emacsがMac以上に馴染む。というか、そもそもJavaでできたものは動くのだから、NetBeansもEclipseも同じように動く</li>
<li>最悪: リモートデスクトップでWindowsに接続出来るので、誰かのマシンを借りれば良い（会社とかでの利用なら）</li>
</ul>
<p>一応nanoとかWineとかもあるんですけど、あまり期待しないほうがいいです。エロゲとかはGNU Hentai Engine的なそういうのの出現に期待しましょう。</p>
<p>Macがダメとか言っていないし僕もMac欲しいです。でも、「エンジニアはMacじゃなければいけない！」　みたいな形にこだわって何もしないよりは、早く安価なPCとUbuntuを入手したほうがいいんじゃないかな、と思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/04/30/ubuntu-goodness-for-developpers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/04/30/ubuntu-goodness-for-developpers/" />
	</item>
		<item>
		<title>読んだ: 小さなチーム、大きな仕事—37シグナルズ成功の法則</title>
		<link>http://blog.udzura.jp/2010/04/14/bookreview-rework/</link>
		<comments>http://blog.udzura.jp/2010/04/14/bookreview-rework/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 10:01:28 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[＜本＞]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=358</guid>
		<description><![CDATA[
	
	小さなチーム、大きな仕事―37シグナルズ成功の法則 (ハヤカワ新書juice)
	著者／訳者：ジェイソン フリード デイヴィッド・ハイネマイヤー ハンソン 
	出版社：早川書房( 2010-02-25 )
	単行本 ( 185 ページ )

今更ながら標記の本を読んだ。読んだの自体は一ヶ月近く前なので、すごいエッセンスの部分しか頭に残っていないが、あえて書いてみる試み。

この本の重要なところは、いわゆる「UNIXの哲学（最初からいきなりエクスキューズだけど、このレビュー全体で、かなり広い意味で使わせていただく）」を「企業経営」にアプライした、その一部始終の、分かりやすい例であること、そしてあくまでも「ビジネス書」であること、だと思った。
（「ハヤカワ新書juice」と言うのは（ラインナップを見る限りは、Web企業の話に偏っている感じはあるけれど）あくまでも一般ビジネスパーソン向けの新書ラインナップだろう。）
本書は以下の短い主題を徹底して、様々な切り口から繰り返す。

組織は小さくあるべし
仕事の計画は短くあるべし
「やらない」ことをはっきりさせ、絶対にやらない
「変わる」こと、果ては「捨てる」ことを厭わない

この主題は、エンジニア職の一部の人には馴染み深いものだと思う。「アジャイル」の考え方そのものだし、また、「UNIXの哲学」の一種の変形だ。
僕はこの文章をノンエンジニア向けに書いている。
その上で説明すると、UNIXというのは、要するにWindowsと同じOSと呼ばれるソフトウェア（正確にはその総称めいたもの）で、各種サーバーで使われることが多いものだが、このソフトウェアは、以下の考え方で端的に表現される設計をしている。
一つのことを行い、またそれをうまくやるプログラムを書け。
必要と思われるあらゆる機能を揃えた大きな一つのプログラムより、たった一つのことしか出来ないが、その分小さいプログラムを組み合わせたほうが、結果的に大きな効率性と、変化への柔軟性、あらゆる環境で動作する移植性、などを得られる、という知見である。
これはプログラミングに限った話ではなく、コードを飛び越えた世界で、エンジニアは最初に「自分たちの行動のあり方」に適用 &#8211; アプライ &#8211; した。僕はそれが「アジャイル開発」だと思っている。つまり、アジャイル開発は、作る対象を小さなストーリーに分割し、一つ一つの開発を繰り返している。
＃そして僕のようなヌルい人がこんな思い切ったことを言ってしまうと、真のアジャイラーやUNIX Geekの皆様からたくさん反論があるんだろうと思いつつ。。。その際は、勉強させてください。
UNIXの哲学はWikipediaの当該ページにも詳しい。
で、この「小さいものは美しい」の哲学は、ソフトウェア開発だけに止まらない、多くの場面での、より普遍的な適用力を持っているのだろうし、その一つの表出がこの37シグナルズ社の活躍（日本の会社ならクックパッドが近いのかも？ こちらのブログの「クックパッドのものづくり」などを参照）なんじゃないかな、と思ったのだ。
この本、「Ruby on Rails」の37シグナルズの本なので、Ruby界隈とかアジャイル界隈、Web関係の人々の中で話題だった感もあるけど、逆にその辺の界隈、特にこんな本を読んじゃうような人たちとしては、「自分の考えの再確認」ぐらいの意味しかないんじゃないか、と思ったりもした。下手をしたら、本当に進取的な人ならば、「何を今更」とまで思ってしまうかもしれない。
異論反論あるだろうけれど、この本を読んで「目から鱗が落ちる」経験が必要なのは、多分技術者ではなく、「スーツ」 &#8211; ノンエンジニア、だと思っている。この本での主張は、むしろ、Webとかプログラミングとか全然関係ない世界にこそアプライされるべき「哲学」だと思った。
影響されるべき、と言うよりは、「まず知ってほしい」本（と考え方）。
]]></description>
			<content:encoded><![CDATA[<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E5%B0%8F%E3%81%95%E3%81%AA%E3%83%81%E3%83%BC%E3%83%A0%E3%80%81%E5%A4%A7%E3%81%8D%E3%81%AA%E4%BB%95%E4%BA%8B%E2%80%9537%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%E3%82%BA%E6%88%90%E5%8A%9F%E3%81%AE%E6%B3%95%E5%89%87-%E3%83%8F%E3%83%A4%E3%82%AB%E3%83%AF%E6%96%B0%E6%9B%B8juice-%E3%82%B8%E3%82%A7%E3%82%A4%E3%82%BD%E3%83%B3-%E3%83%95%E3%83%AA%E3%83%BC%E3%83%89/dp/4153200115%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4153200115"><img src="http://ecx.images-amazon.com/images/I/41uuWhm0XdL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E5%B0%8F%E3%81%95%E3%81%AA%E3%83%81%E3%83%BC%E3%83%A0%E3%80%81%E5%A4%A7%E3%81%8D%E3%81%AA%E4%BB%95%E4%BA%8B%E2%80%9537%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%E3%82%BA%E6%88%90%E5%8A%9F%E3%81%AE%E6%B3%95%E5%89%87-%E3%83%8F%E3%83%A4%E3%82%AB%E3%83%AF%E6%96%B0%E6%9B%B8juice-%E3%82%B8%E3%82%A7%E3%82%A4%E3%82%BD%E3%83%B3-%E3%83%95%E3%83%AA%E3%83%BC%E3%83%89/dp/4153200115%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4153200115">小さなチーム、大きな仕事―37シグナルズ成功の法則 (ハヤカワ新書juice)</a></p>
	<p><em>著者／訳者：</em>ジェイソン フリード デイヴィッド・ハイネマイヤー ハンソン </p>
	<p><em>出版社：</em>早川書房( 2010-02-25 )</p>
	<p>単行本 ( 185 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<p>今更ながら標記の本を読んだ。読んだの自体は一ヶ月近く前なので、すごいエッセンスの部分しか頭に残っていないが、あえて書いてみる試み。</p>
<p><span id="more-358"></span></p>
<p>この本の重要なところは、いわゆる「<strong>UNIXの哲学</strong><small>（最初からいきなりエクスキューズだけど、このレビュー全体で、かなり広い意味で使わせていただく）</small>」を「企業経営」にアプライした、その一部始終の、分かりやすい例であること、そしてあくまでも「ビジネス書」であること、だと思った。<br />
<small>（「ハヤカワ新書juice」と言うのは（ラインナップを見る限りは、Web企業の話に偏っている感じはあるけれど）あくまでも一般ビジネスパーソン向けの新書ラインナップだろう。）</small></p>
<p>本書は以下の短い主題を徹底して、様々な切り口から繰り返す。</p>
<ul>
<li>組織は小さくあるべし</li>
<li>仕事の計画は短くあるべし</li>
<li>「やらない」ことをはっきりさせ、絶対にやらない</li>
<li>「変わる」こと、果ては「捨てる」ことを厭わない</li>
</ul>
<p>この主題は、エンジニア職の一部の人には馴染み深いものだと思う。「アジャイル」の考え方そのものだし、また、「UNIXの哲学」の一種の変形だ。</p>
<p>僕はこの文章をノンエンジニア向けに書いている。</p>
<p>その上で説明すると、UNIXというのは、要するにWindowsと同じOSと呼ばれるソフトウェア（正確にはその総称めいたもの）で、各種サーバーで使われることが多いものだが、このソフトウェアは、以下の考え方で端的に表現される設計をしている。</p>
<blockquote><p>一つのことを行い、またそれをうまくやるプログラムを書け。</p></blockquote>
<p>必要と思われるあらゆる機能を揃えた大きな一つのプログラムより、たった一つのことしか出来ないが、その分小さいプログラムを組み合わせたほうが、結果的に大きな効率性と、変化への柔軟性、あらゆる環境で動作する移植性、などを得られる、という知見である。</p>
<p>これはプログラミングに限った話ではなく、コードを飛び越えた世界で、エンジニアは最初に「自分たちの行動のあり方」に適用 &#8211; アプライ &#8211; した。僕はそれが「アジャイル開発」だと思っている。つまり、アジャイル開発は、作る対象を小さなストーリーに分割し、一つ一つの開発を繰り返している。</p>
<p><em>＃そして僕のようなヌルい人がこんな思い切ったことを言ってしまうと、真のアジャイラーやUNIX Geekの皆様からたくさん反論があるんだろうと思いつつ。。。その際は、勉強させてください。</em></p>
<p>UNIXの哲学は<a href="http://ja.wikipedia.org/wiki/UNIX%E5%93%B2%E5%AD%A6">Wikipediaの当該ページ</a>にも詳しい。</p>
<p>で、この「小さいものは美しい」の哲学は、ソフトウェア開発だけに止まらない、多くの場面での、より普遍的な適用力を持っているのだろうし、その一つの表出がこの37シグナルズ社の活躍（日本の会社ならクックパッドが近いのかも？ <a href="http://www.sssg.org/blogs/naoya/archives/1126">こちらのブログの「クックパッドのものづくり」</a>などを参照）なんじゃないかな、と思ったのだ。</p>
<p>この本、「Ruby on Rails」の37シグナルズの本なので、Ruby界隈とかアジャイル界隈、Web関係の人々の中で話題だった感もあるけど、逆にその辺の界隈、特にこんな本を読んじゃうような人たちとしては、「自分の考えの再確認」ぐらいの意味しかないんじゃないか、と思ったりもした。下手をしたら、本当に進取的な人ならば、「何を今更」とまで思ってしまうかもしれない。</p>
<p>異論反論あるだろうけれど、この本を読んで「目から鱗が落ちる」経験が必要なのは、多分技術者ではなく、「スーツ」 &#8211; ノンエンジニア、だと思っている。この本での主張は、むしろ、Webとかプログラミングとか全然関係ない世界にこそアプライされるべき「哲学」だと思った。</p>
<p>影響されるべき、と言うよりは、「まず知ってほしい」本（と考え方）。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/04/14/bookreview-rework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/04/14/bookreview-rework/" />
	</item>
		<item>
		<title>emacs23始めました on Ubuntu 9.10</title>
		<link>http://blog.udzura.jp/2010/02/15/rails-settings-with-emacs23-on-ubuntu-910/</link>
		<comments>http://blog.udzura.jp/2010/02/15/rails-settings-with-emacs23-on-ubuntu-910/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:17:41 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=305</guid>
		<description><![CDATA[標記のとおり。遅まきながら，ですが。
普段，NetBeansのRailsモードで開発してたんですが，Rinariなる凄く便利なelispができたようなので，試すついでに色々設定してみました。emacsは23.1.1です。パッケージで言うとemacs23、と明示的に指定します。単純に23のほうが日本語フォントの設定がしやすいからです。。
インストールと設定
一部，emacsとRinariで快適Rails開発！ と言う素晴らしい記事を激しくコピペしつつ，以下の手順です。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo aptitude install \
  emacs23 emacs23-common emacs23-bin-common emacs23-el \
  emacs-goodies-el \
  ruby1.8-elisp \
  yaml-mode
cd ~/.emacs.d
&#160;
# install rinari
git clone git://github.com/eschulte/rinari.git
cd rinari
git submodule init
git submodule update
cd -
&#160;
# install rhtml mode
git clone git://github.com/eschulte/rhtml.git

「emacs-goodies-el」と言うパッケージをいれています。テーマが色々選べるようになって快適です。emacs22、23どちらでも使えてます。配色のサンプルページ（重め）もあったりします。
手動で変えるときは M-x color-theme-select です。その日の気分で変えてもいいぐらい手軽に変更できます。
~/.emacs は、こちらもコピペをしまくった結果、以下の設定で満足しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;; 言語設定とか
&#40;set-language-environment &#34;Japanese&#34;&#41;
&#40;set-terminal-coding-system 'utf-8&#41;
&#40;set-keyboard-coding-system 'utf-8&#41;
&#40;set-buffer-file-coding-system 'utf-8&#41;
&#40;setq default-buffer-file-coding-system 'utf-8&#41;
&#160;
;; フォント設定
;; ここが、emacs23じゃないとうまいこと行かなかった。。
&#40;set-face-attribute 'default nil
  :family &#34;VL Gothic&#34;
  [...]]]></description>
			<content:encoded><![CDATA[<p>標記のとおり。遅まきながら，ですが。</p>
<p>普段，NetBeansのRailsモードで開発してたんですが，<a href="http://rinari.rubyforge.org/">Rinari</a>なる凄く便利なelispができたようなので，試すついでに色々設定してみました。emacsは23.1.1です。パッケージで言うとemacs23、と明示的に指定します。単純に23のほうが日本語フォントの設定がしやすいからです。。</p>
<h3>インストールと設定</h3>
<p>一部，<a href="http://d.hatena.ne.jp/willnet/20090110/1231595231/">emacsとRinariで快適Rails開発！</a> と言う素晴らしい記事を激しくコピペしつつ，以下の手順です。</p>
<p><span id="more-305"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> \
  emacs23 emacs23-common emacs23-bin-common emacs23-el \
  emacs-goodies-el \
  ruby1.8-elisp \
  yaml-mode
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.emacs.d
&nbsp;
<span style="color: #666666; font-style: italic;"># install rinari</span>
git clone git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>eschulte<span style="color: #000000; font-weight: bold;">/</span>rinari.git
<span style="color: #7a0874; font-weight: bold;">cd</span> rinari
git submodule init
git submodule update
<span style="color: #7a0874; font-weight: bold;">cd</span> -
&nbsp;
<span style="color: #666666; font-style: italic;"># install rhtml mode</span>
git clone git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>eschulte<span style="color: #000000; font-weight: bold;">/</span>rhtml.git</pre></td></tr></table></div>

<p>「emacs-goodies-el」と言うパッケージをいれています。テーマが色々選べるようになって快適です。emacs22、23どちらでも使えてます。<a href="http://code.google.com/p/gnuemacscolorthemetest/">配色のサンプルページ（重め）</a>もあったりします。</p>
<p>手動で変えるときは <code>M-x color-theme-select</code> です。その日の気分で変えてもいいぐらい手軽に変更できます。</p>
<p><code>~/.emacs</code> は、こちらもコピペをしまくった結果、以下の設定で満足しました。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">;; 言語設定とか</span>
<span style="color: #66cc66;">&#40;</span>set-language-environment <span style="color: #ff0000;">&quot;Japanese&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>set-terminal-coding-system 'utf-<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>set-keyboard-coding-system 'utf-<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>set-buffer-file-coding-system 'utf-<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> default-buffer-file-coding-system 'utf-<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; フォント設定</span>
<span style="color: #808080; font-style: italic;">;; ここが、emacs23じゃないとうまいこと行かなかった。。</span>
<span style="color: #66cc66;">&#40;</span>set-face-attribute 'default <span style="color: #b1b100;">nil</span>
  <span style="color: #66cc66;">:</span><span style="color: #555;">family</span> <span style="color: #ff0000;">&quot;VL Gothic&quot;</span>
  <span style="color: #66cc66;">:</span><span style="color: #555;">height</span> <span style="color: #cc66cc;">130</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 起動時のフレームサイズ</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> initial-frame-alist '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>width <span style="color: #66cc66;">.</span> <span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>height <span style="color: #66cc66;">.</span> <span style="color: #cc66cc;">45</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; テーマ読み込み</span>
<span style="color: #66cc66;">&#40;</span>require 'color-theme<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; ここでテーマ設定、好きなものに変更</span>
<span style="color: #66cc66;">&#40;</span>color-theme-hober<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; Interactively Do Things (highly recommended, but not strictly required)</span>
<span style="color: #66cc66;">&#40;</span>require 'ido<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>ido-mode t<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Rinari</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/rinari&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'rinari<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; rhtml-mode</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/rhtml&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'rhtml-mode<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-hook 'rhtml-mode-hook
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>rinari-launch<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 何か最後がいいらしい</span>
<span style="color: #66cc66;">&#40;</span>set-default-coding-systems 'utf-<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>で，なんでまたこんなエントリをぶち上げたかといいますと，近いうちに開発環境をセットアップする必要があり，その時のためのメモです（w</p>
<h3>追記＠2010-03-05</h3>
<p>最新の.emacsファイルは以下にアップすることにしました。</p>
<p>＊ <a href="http://github.com/udzura/my-emacs/blob/master/.emacs">http://github.com/udzura/my-emacs/blob/master/.emacs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/02/15/rails-settings-with-emacs23-on-ubuntu-910/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/02/15/rails-settings-with-emacs23-on-ubuntu-910/" />
	</item>
		<item>
		<title>grub2のちょっと良い話</title>
		<link>http://blog.udzura.jp/2010/02/11/some-tips-about-grub2/</link>
		<comments>http://blog.udzura.jp/2010/02/11/some-tips-about-grub2/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 13:29:51 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=298</guid>
		<description><![CDATA[Ubuntu 9.10等，GRUB2を採用するディストリビューションも増えてきたこの頃，イカがお過ごしでしょうか。今日は，そんなGRUB2を色々いじっていて気づいたいくつかのtipsをメモしたりなんかします。
/boot/grub/menu.lst はもういない
GRUBのメニュー表示設定といえば /boot/grub/menu.lst という勢いで，インターネット上にもそのファイルの編集ノウハウがたくさん転がっていますが，GRUB2採用のUbuntu9.10にはそんなファイルありません。とっとと忘れましょう。

udzura@ubuntu-vaio:~$ ls /boot/grub/menu.lst
ls: /boot/grub/menu.lstにアクセスできません: No such file or directory
udzura@ubuntu-vaio:~$

デュアルブートしてるんだけど，起動画面で，正直Windowsが上にきてほしい
Windowsを入れているPCに，デュアルブート構成でUbuntuその他Linuxを入れると、「Ubuntu, Linux 2.6.31-19-generic」とかそういうエントリーが上のほうにきて，デフォルトでブート（ほっといてブート）するのもLinuxになります。 /boot/grub/menu.lst はもういないので，この順序を変えるにはどうすればいいの？？？
大丈夫！　実は簡単なんです。 /etc/grub.d と言うディレクトリをご覧ください

udzura@ubuntu-vaio:~$ ls /etc/grub.d
00_header        10_linux       30_os-prober  README
05_debian_theme  20_memtest86+  40_custom
udzura@ubuntu-vaio:~$

そう，実はこの順番でメニューが表示されるのです。10のlinux、20のmemtest、そしてやっと30のその他OS，と言う風に……
その他OSたるWindowsを上に持ち上げるには，30になってるos-proberを05より大きく10より小さい数に mv(1) すれば良いと思います。07とかいいんじゃないでしょうか。

1
sudo mv /etc/grub.d/30_os-prober /etc/grub.d/07_os-prober

そして、

1
sudo update-grub


udzura@ubuntu-vaio:~$ sudo update-grub
[sudo] password for udzura:
Generating grub.cfg ...
Found [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 9.10等，GRUB2を採用するディストリビューションも増えてきたこの頃，イカがお過ごしでしょうか。今日は，そんなGRUB2を色々いじっていて気づいたいくつかのtipsをメモしたりなんかします。</p>
<h3><code>/boot/grub/menu.lst</code> はもういない</h3>
<p>GRUBのメニュー表示設定といえば <code>/boot/grub/menu.lst</code> という勢いで，インターネット上にもそのファイルの編集ノウハウがたくさん転がっていますが，GRUB2採用のUbuntu9.10にはそんなファイルありません。とっとと忘れましょう。</p>
<pre>
udzura@ubuntu-vaio:~$ ls /boot/grub/menu.lst
ls: /boot/grub/menu.lstにアクセスできません: No such file or directory
udzura@ubuntu-vaio:~$
</pre>
<h3>デュアルブートしてるんだけど，起動画面で，正直Windowsが上にきてほしい</h3>
<p>Windowsを入れているPCに，デュアルブート構成でUbuntuその他Linuxを入れると、「Ubuntu, Linux 2.6.31-19-generic」とかそういうエントリーが上のほうにきて，デフォルトでブート（ほっといてブート）するのもLinuxになります。 <code>/boot/grub/menu.lst</code> はもういないので，この順序を変えるにはどうすればいいの？？？</p>
<p>大丈夫！　実は簡単なんです。 <code>/etc/grub.d</code> と言うディレクトリをご覧ください</p>
<pre>
udzura@ubuntu-vaio:~$ ls /etc/grub.d
00_header        10_linux       30_os-prober  README
05_debian_theme  20_memtest86+  40_custom
udzura@ubuntu-vaio:~$
</pre>
<p>そう，実はこの順番でメニューが表示されるのです。10のlinux、20のmemtest、そしてやっと30のその他OS，と言う風に……</p>
<p>その他OSたるWindowsを上に持ち上げるには，30になってるos-proberを05より大きく10より小さい数に <code>mv(1)</code> すれば良いと思います。07とかいいんじゃないでしょうか。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>grub.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">30</span>_os-prober <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>grub.d<span style="color: #000000; font-weight: bold;">/</span>07_os-prober</pre></td></tr></table></div>

<p>そして、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> update-grub</pre></td></tr></table></div>

<pre>
udzura@ubuntu-vaio:~$ sudo update-grub
[sudo] password for udzura:
Generating grub.cfg ...
Found Windows Vista (loader) on /dev/sda1
Found Windows Vista (loader) on /dev/sda2
Found linux image: /boot/vmlinuz-2.6.31-19-generic
Found initrd image: /boot/initrd.img-2.6.31-19-generic
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/initrd.img-2.6.31-15-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
done
udzura@ubuntu-vaio:~$
</pre>
<p>Windowsが先に認識されたのが分かります。</p>
<h3>Linuxのカーネルのバージョンがたくさん出てきてうっとうしい</h3>
<p>上記のとおり，<code>update-grub(8)</code>はインストールされているLinuxのカーネルをすべて引っ張り出してしまいます。なので、アップデートが為されるたびにエントリーが追加されていきます。</p>
<p>でも、正直行って最新のカーネルしか使いませんよね。。</p>
<p>実は<code>update-grub(8)</code>は、 <code>/boot/grub/grub.cfg</code> を生成しているだけに過ぎないのです。なので、最悪、直接いじってしまえばいいのです。</p>
<p>ここで要注意なのは，<code>/boot/grub/grub.cfg</code> はrootを含む全ユーザに対してしてリードオンリー属性なので，いったん<code> chmod(1)</code> してあげないと，編集しても保存できなかったりとか何かと都合が悪いという事です。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> u+<span style="color: #c20cb9; font-weight: bold;">w</span> <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>grub<span style="color: #000000; font-weight: bold;">/</span>grub.cfg
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>grub<span style="color: #000000; font-weight: bold;">/</span>grub.cfg
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> u-w <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>grub<span style="color: #000000; font-weight: bold;">/</span>grub.cfg</pre></td></tr></table></div>

<pre>
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
        ......
}
</pre>
<p>↑のカギカッコの塊を好きなだけ消しちゃいましょう（※ 消しすぎると起動できなくなります！）。</p>
<h3>＊　＊　＊</h3>
<p>以上，実施した結果は無保証ですが。。お役に立てば何より。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/02/11/some-tips-about-grub2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/02/11/some-tips-about-grub2/" />
	</item>
		<item>
		<title>今日のワンライナー: 例えばログ検索で</title>
		<link>http://blog.udzura.jp/2010/02/04/todays-one-loner-for-log-grep/</link>
		<comments>http://blog.udzura.jp/2010/02/04/todays-one-loner-for-log-grep/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 09:31:12 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=288</guid>
		<description><![CDATA[最近もっぱらGitを使用していますが、軽くて高機能ですし便利だと思います。でも今日はGitの話しません。
そんなGitのlogを見る際に、色々いじって手ワンライナーに便利そうなコマンドオプションを幾つか発見したので、鬼の首を取ったようにメモしときますね。
言っておきますが分かってる人には当然の内容ですよ。。

想定しているOSはLinux、GNU coreutilsとGNU grepです。他のOSに載っているやつで動くかは不明。
で。まずは単品の、

1
git log

これだとlessとかで見る事になります。それはそれでいいんですけど、

commit ac048f833ba3743a8d5ad313985f49571436ca57
Author: udzura &#60;udzura@hoge.udzura.jp&#62;
Date:   Thu Feb 4 15:05:13 2010 +0900

    バッチのtypo修正

commit ce9e4356c945f892b606b206534145845a9d6ce1
Author: udzura &#60;udzura@hoge.udzura.jp&#62;
Date:   Thu Feb 4 14:00:01 2010 +0900

    バッチ直した

commit 5197339ddbd701b1902c7d9b7ae9732c8b627750
Author: deadwinter &#60;deadwinter@hoge.udzura.jp&#62;
Date:   Tue Feb 2 13:37:56 2010 +0900

    app/models/hoge.rb typo直した

commit c10da34d0394415065efe4ee4d1e80eb3ae5bae7
Author: udzura &#60;udzura@hoge.udzura.jp&#62;
Date:   [...]]]></description>
			<content:encoded><![CDATA[<p>最近もっぱら<a href="http://git-scm.com/">Git</a>を使用していますが、軽くて高機能ですし便利だと思います。でも今日はGitの話しません。</p>
<p>そんなGitのlogを見る際に、色々いじって手ワンライナーに便利そうなコマンドオプションを幾つか発見したので、鬼の首を取ったようにメモしときますね。</p>
<p>言っておきますが分かってる人には当然の内容ですよ。。</p>
<p><span id="more-288"></span><br />
想定しているOSはLinux、GNU coreutilsとGNU grepです。他のOSに載っているやつで動くかは不明。</p>
<p>で。まずは単品の、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log</pre></td></tr></table></div>

<p>これだとlessとかで見る事になります。それはそれでいいんですけど、</p>
<pre>
commit ac048f833ba3743a8d5ad313985f49571436ca57
Author: udzura &lt;udzura@hoge.udzura.jp&gt;
Date:   Thu Feb 4 15:05:13 2010 +0900

    バッチのtypo修正

commit ce9e4356c945f892b606b206534145845a9d6ce1
Author: udzura &lt;udzura@hoge.udzura.jp&gt;
Date:   Thu Feb 4 14:00:01 2010 +0900

    バッチ直した

commit 5197339ddbd701b1902c7d9b7ae9732c8b627750
Author: deadwinter &lt;deadwinter@hoge.udzura.jp&gt;
Date:   Tue Feb 2 13:37:56 2010 +0900

    app/models/hoge.rb typo直した

commit c10da34d0394415065efe4ee4d1e80eb3ae5bae7
Author: udzura &lt;udzura@hoge.udzura.jp&gt;
Date:   Mon Feb 1 12:28:56 2010 +0900
......
</pre>
<p>「ワンライナーで必要な情報だけシュバッ！　と抜き出したい」、UN*Xユーザならみんなそう思うかと考えられますので。</p>
<h3>行番号を付けたい</h3>
<p>「シュバッ」と抜き出す前段階として、表示に行番号を付けましょう。 <code style="text-decoration:underline;">cat -n</code> です。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span></pre></td></tr></table></div>

<pre>
     1  commit ac048f833ba3743a8d5ad313985f49571436ca57
     2  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
     3  Date:   Thu Feb 4 15:05:13 2010 +0900
     4
     5      バッチのtypo修正
     6
     7  commit ce9e4356c945f892b606b206534145845a9d6ce1
     8  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
     9  Date:   Thu Feb 4 14:00:01 2010 +0900
    10
    11      バッチ直した
    12
    13  commit 5197339ddbd701b1902c7d9b7ae9732c8b627750
    14  Author: deadwinter &lt;deadwinter@hoge.udzura.jp&gt;
    15  Date:   Tue Feb 2 13:37:56 2010 +0900
    16
    17      app/models/hoge.rb typo直した
    18
    19  commit c10da34d0394415065efe4ee4d1e80eb3ae5bae7
    20  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
    21  Date:   Mon Feb 1 12:28:56 2010 +0900
......
</pre>
<p>でもコレで</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> udzura<span style="color: #000000; font-weight: bold;">@</span>hoge.udzura.jp</pre></td></tr></table></div>

<pre>
     2  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
     8  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
    20  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
......
</pre>
<p>とか抜き出しても、日付すら分かりませんね。。</p>
<h3>grepした行の回りも見たい</h3>
<p>grepには <code style="text-decoration:underline;">-C</code> オプションがあります。マッチした行の前後N行も一緒に表示してくれます。</p>
<p>git logとかはちょうど、ユーザ名の前後一行に必要な情報が入ってます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-C1</span> udzura<span style="color: #000000; font-weight: bold;">@</span>hoge.udzura.jp</pre></td></tr></table></div>

<pre>
     1  commit ac048f833ba3743a8d5ad313985f49571436ca57
     2  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
     3  Date:   Thu Feb 4 15:05:13 2010 +0900
--
     7  commit ce9e4356c945f892b606b206534145845a9d6ce1
     8  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
     9  Date:   Thu Feb 4 14:00:01 2010 +0900
--
    19  commit c10da34d0394415065efe4ee4d1e80eb3ae5bae7
    20  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
    21  Date:   Mon Feb 1 12:28:56 2010 +0900
......
</pre>
<p>ここからさらに、「2010年2月1日」のコミットを探したい時は、月日と年度が分かれてるせいで以下のようにしますね。grepコマンドでAND検索をする時は<strong style="text-decoration:underline;">ひたすらgrepをパイプで重ねる</strong>のが私のジャスティスです（OR検索したいアナタには、 <code style="text-decoration:underline;">-e</code> オプションというものがあります）。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-C1</span> udzura<span style="color: #000000; font-weight: bold;">@</span>hoge.udzura.jp <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;Thu Feb 4&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #000000;">2010</span></pre></td></tr></table></div>

<pre>
    21  Date:   Mon Feb 1 12:28:56 2010 +0900
</pre>
<p>今思ったんだけど曜日が入ってるんだから年度要らないかも。まあサンプルということで。</p>
<p>ともかく、見事、欲しい情報が「21行目あたりに入っているんだな」と判明しました。git logの仕様的には、きっと(21 &#8211; 2 = 19)～24行目の間に入っているのでしょう。</p>
<h3>N行目からM行を見たい</h3>
<p>こういう 21 &#8211; 2 行目から6行分を見たい、という際は、 <code style="text-decoration:underline;">head</code> と <code style="text-decoration:underline;">tail</code> を組み合わせるのが便利です。便利なんですよ。<strong style="text-decoration:underline;">ハイフン＋数字で「頭から|ケツから N 行を表示」</strong>という便利オプションを使いましょう。また、算数が面倒くさい向きには、 <code style="text-decoration:underline;">$((計算式))</code> という記法があって、これはこの中身の計算を展開してくれます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> -$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">21</span> - <span style="color: #000000;">2</span> + <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tail</span> <span style="color: #660033;">-6</span></pre></td></tr></table></div>

<pre>
    19  commit c10da34d0394415065efe4ee4d1e80eb3ae5bae7
    20  Author: udzura &lt;udzura@hoge.udzura.jp&gt;
    21  Date:   Mon Feb 1 12:28:56 2010 +0900
    22
    23      まあ適当に直した
    24
</pre>
<p>出来ましたね！</p>
<h3>まとめ</h3>
<p>以上をまとめ、バックスラッシュという便利記法を使用すると、以下のワンライナーになりますね。バックスラッシュ <code style="text-decoration:underline;">`コマンド`</code> は中身のコマンドを先に実行し、結果の出力を文字にして、その外側のコマンドを実行します。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> -$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span>git log <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #660033;">-n</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-C1</span> udzura<span style="color: #000000; font-weight: bold;">@</span>hoge.udzura.jp <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;Mon Feb 1&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #000000;">2010</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -f1<span style="color: #000000; font-weight: bold;">`</span> - <span style="color: #000000;">2</span> + <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tail</span> <span style="color: #660033;">-6</span></pre></td></tr></table></div>

<p>すいません、まとめといいながらさらにどさくさにまぎれて <code style="text-decoration:underline;">cut -f</code> なるコマンドを混入させています。これは、空白区切り（デフォルト；区切りは <code style="text-decoration:underline;">-d</code> で指定）のテキストの、任意の列を切り出してくれます。</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E3%80%90%E6%94%B9%E8%A8%82%E6%96%B0%E7%89%88%E3%80%91-Linux%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-Pocket-Reference/dp/4774138169%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774138169"><img src="http://ecx.images-amazon.com/images/I/51kWaJRnGVL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E3%80%90%E6%94%B9%E8%A8%82%E6%96%B0%E7%89%88%E3%80%91-Linux%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-Pocket-Reference/dp/4774138169%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774138169">【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)</a></p>
	<p><em>著者／訳者：</em>沓名 亮典 平山 智恵 </p>
	<p><em>出版社：</em>技術評論社( 2009-04-08 )</p>
	<p>単行本（ソフトカバー） ( 576 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<h3>総括</h3>
<p><a href="http://www.moongift.jp/2008/12/tortoisegit/">TortoiseGit</a>って便利なんですね。</p>
<h3>総括２</h3>
<p>ワンライナーのコツは：</p>
<ul>
<li>コマンド一回一回ごとの「標準出力」の状態を把握する</li>
<li>バックスラッシュ記法を活用</li>
<li>その他、「<code>[条件] &#038;&#038; ～</code>」「<code>&#038;&#038;</code>」「<code>;</code>」や各種制御構造をフル活用</li>
</ul>
<p>とかな気がする。でも多分、シェルスクリプト書いたほうがいいよ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/02/04/todays-one-loner-for-log-grep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/02/04/todays-one-loner-for-log-grep/" />
	</item>
		<item>
		<title>Gitorious入れたメモ</title>
		<link>http://blog.udzura.jp/2010/01/06/gitorious-installation-memo/</link>
		<comments>http://blog.udzura.jp/2010/01/06/gitorious-installation-memo/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 13:26:16 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=232</guid>
		<description><![CDATA[日ごろgithubさんにお世話になっておりますが、Gitoriousというサービスは自分のコードを公開し、個人でインストールできるようなので入れてみたメモ。
概要
ホストするOSはUbuntu 9.10。
手順は、9.04の場合のものが公式Wikiにあったりする（http://gitorious.org/gitorious/pages/UbuntuInstallation）のでそれを大幅に参照した。基本的にコレの通りで問題ないのだが、Gitorious自体のバージョンが上がったこともあって微妙に違う点もある。
以下、日本語Remix CDを入れたてのまっさらな状態からの構築を想定。

aptで入れたもの

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo aptitude install build-essential\
apache2 apache2-dev\
mysql-server mysql-client libmysqlclient15-dev\
git-core git-svn git-doc git-cvs\
apg\
geoip-bin libgeoip1 libgeoip-dev\
sqlite3 libsqlite3-dev\
imagemagick libmagickcore2 libmagickwand2 libmagickcore-dev libmagickwand-dev\
libpcre3 libpcre3-dev\
zlib1g zlib1g-dev\
libyaml-dev\
sendmail\
zip unzip\
memcached\
openssh-server

ログを見る限りこれらを入れていた。Synapticで入れてしまったものもあるかも。。デスクトップ版はデフォルトだとsshdも入ってないのよね。。
ソースインストール
onigurumaはソースインストールしないと、rubyバインディングをコンパイルできない。libonig2はヘッダが入らん。
（http://www.geocities.jp/kosako3/oniguruma/）
あと、sphinxという検索エンジンを使用するのでそれも入れる。
（http://www.sphinxsearch.com/downloads.html）
ImageMagickは、aptでMagick-configやヘッダファイルが入ってくれるのでソースは要らない。
あと、他の記事ではActiveMQを入れるとかいう手順もありますけど、今のバージョンでは使ってないようです。Rubyのstompserverとかいうものにメッセージングを任せてる、のかな。
Ruby周りとgemで入れたもの
rubyは、Ruby Enterprise Edition（http://www.rubyenterpriseedition.com/download.html）。ちょうど、1.8.7互換版が出ている。Ubuntuだとdebもあるので圧倒的に楽。
で、rubyバイナリのインストール先が /usr/local/bin になり、gem、gemで入れた実行ファイル（rake、stompserver）等もそこに行くので、実行ファイルを決め打ちにしている幾つかのスクリプトを修正する必要がある。なんかよく分からんけどコケた際はまずその辺を疑ってみよう。
gemは最終的に以下の如し。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
*** LOCAL GEMS ***
&#160;
actionmailer &#40;2.3.5&#41;
actionpack &#40;2.3.5&#41;
activerecord &#40;2.3.5&#41;
activeresource &#40;2.3.5&#41;
activesupport &#40;2.3.5&#41;
BlueCloth &#40;1.0.1&#41;
chronic &#40;0.2.3&#41;
daemons &#40;1.0.10&#41;
diff-lcs &#40;1.1.2&#41;
echoe &#40;4.1&#41;
eventmachine &#40;0.12.10&#41;
fastthread &#40;1.0.7&#41;
gemcutter &#40;0.2.1&#41;
geoip &#40;0.8.6&#41;
hoe &#40;2.4.0&#41;
json &#40;1.2.0&#41;
json_pure &#40;1.2.0&#41;
mime-types &#40;1.16&#41;
mysql &#40;2.8.1&#41;
oniguruma &#40;1.1.0&#41;
passenger &#40;2.2.5&#41;
pg &#40;0.8.0&#41;
plist &#40;3.0.0&#41;
rack &#40;1.0.1&#41;
rails &#40;2.3.5&#41;
rake &#40;0.8.7&#41;
rdiscount [...]]]></description>
			<content:encoded><![CDATA[<p>日ごろgithubさんにお世話になっておりますが、<a href="http://gitorious.org/">Gitorious</a>というサービスは<a href="http://gitorious.org/gitorious/">自分のコードを公開</a>し、個人でインストールできるようなので入れてみたメモ。</p>
<h3>概要</h3>
<p>ホストするOSはUbuntu 9.10。</p>
<p>手順は、9.04の場合のものが公式Wikiにあったりする（<a href="http://gitorious.org/gitorious/pages/UbuntuInstallation">http://gitorious.org/gitorious/pages/UbuntuInstallation</a>）のでそれを大幅に参照した。基本的にコレの通りで問題ないのだが、Gitorious自体のバージョンが上がったこともあって微妙に違う点もある。</p>
<p>以下、日本語Remix CDを入れたてのまっさらな状態からの構築を想定。</p>
<p><span id="more-232"></span></p>
<h3>aptで入れたもの</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential\
apache2 apache2-dev\
mysql-server mysql-client libmysqlclient15-dev\
git-core git-svn git-doc git-cvs\
apg\
geoip-bin libgeoip1 libgeoip-dev\
sqlite3 libsqlite3-dev\
imagemagick libmagickcore2 libmagickwand2 libmagickcore-dev libmagickwand-dev\
libpcre3 libpcre3-dev\
zlib1g zlib1g-dev\
libyaml-dev\
<span style="color: #c20cb9; font-weight: bold;">sendmail</span>\
<span style="color: #c20cb9; font-weight: bold;">zip</span> <span style="color: #c20cb9; font-weight: bold;">unzip</span>\
memcached\
openssh-server</pre></td></tr></table></div>

<p>ログを見る限りこれらを入れていた。Synapticで入れてしまったものもあるかも。。デスクトップ版はデフォルトだとsshdも入ってないのよね。。</p>
<h3>ソースインストール</h3>
<p>onigurumaはソースインストールしないと、rubyバインディングをコンパイルできない。libonig2はヘッダが入らん。<br />
（<a href="http://www.geocities.jp/kosako3/oniguruma/">http://www.geocities.jp/kosako3/oniguruma/</a>）</p>
<p>あと、sphinxという検索エンジンを使用するのでそれも入れる。<br />
（<a href="http://www.sphinxsearch.com/downloads.html">http://www.sphinxsearch.com/downloads.html</a>）</p>
<p>ImageMagickは、aptでMagick-configやヘッダファイルが入ってくれるのでソースは要らない。</p>
<p>あと、他の記事ではActiveMQを入れるとかいう手順もありますけど、今のバージョンでは使ってないようです。Rubyのstompserverとかいうものにメッセージングを任せてる、のかな。</p>
<h3>Ruby周りとgemで入れたもの</h3>
<p>rubyは、Ruby Enterprise Edition（<a href="http://www.rubyenterpriseedition.com/download.html">http://www.rubyenterpriseedition.com/download.html</a>）。ちょうど、1.8.7互換版が出ている。Ubuntuだとdebもあるので圧倒的に楽。</p>
<p>で、rubyバイナリのインストール先が /usr/local/bin になり、gem、gemで入れた実行ファイル（rake、stompserver）等もそこに行くので、実行ファイルを決め打ちにしている幾つかのスクリプトを修正する必要がある。なんかよく分からんけどコケた際はまずその辺を疑ってみよう。</p>
<p>gemは最終的に以下の如し。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">***</span> LOCAL GEMS <span style="color: #000000; font-weight: bold;">***</span>
&nbsp;
actionmailer <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
actionpack <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
activerecord <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
activeresource <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
activesupport <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
BlueCloth <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.0.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
chronic <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.2.3<span style="color: #7a0874; font-weight: bold;">&#41;</span>
daemons <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.0.10<span style="color: #7a0874; font-weight: bold;">&#41;</span>
diff-lcs <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.1.2<span style="color: #7a0874; font-weight: bold;">&#41;</span>
echoe <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">4.1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
eventmachine <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.12.10<span style="color: #7a0874; font-weight: bold;">&#41;</span>
fastthread <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.0.7<span style="color: #7a0874; font-weight: bold;">&#41;</span>
gemcutter <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.2.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
geoip <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.8.6<span style="color: #7a0874; font-weight: bold;">&#41;</span>
hoe <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.4.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
json <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.2.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
json_pure <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.2.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
mime-types <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.16</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
mysql <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.8.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
oniguruma <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.1.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
passenger <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.2.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
pg <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.8.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
plist <span style="color: #7a0874; font-weight: bold;">&#40;</span>3.0.0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rack <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.0.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rails <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.3.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rake <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.8.7<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rdiscount <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.3.1.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
RedCloth <span style="color: #7a0874; font-weight: bold;">&#40;</span>4.2.2<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rmagick <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.12.2<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rspec <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.2.9<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rspec-rails <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.2.9<span style="color: #7a0874; font-weight: bold;">&#41;</span>
ruby-hmac <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.3.2<span style="color: #7a0874; font-weight: bold;">&#41;</span>
ruby-openid <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.1.7<span style="color: #7a0874; font-weight: bold;">&#41;</span>
ruby-yadis <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.3.4<span style="color: #7a0874; font-weight: bold;">&#41;</span>
rubyforge <span style="color: #7a0874; font-weight: bold;">&#40;</span>2.0.3<span style="color: #7a0874; font-weight: bold;">&#41;</span>
sqlite3-ruby <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.2.5<span style="color: #7a0874; font-weight: bold;">&#41;</span>
stomp <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
stompserver <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.9.9<span style="color: #7a0874; font-weight: bold;">&#41;</span>
textpow <span style="color: #7a0874; font-weight: bold;">&#40;</span>0.10.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
ultrasphinx <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.11</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<h3>service関連の設定</h3>
<p>「<a href="http://gitorious.org/gitorious/pages/UbuntuInstallation">UbuntuInstallation</a>」の通り。git-daemon、git-ultrasphinxの起動スクリプトのrubyの場所をなどを変更。</p>
<p>stompは、Wikiのスクリプトではまったく動かなかったので、やっつけで以下のようなものを作成。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #666666; font-style: italic;"># Start/stop the stompserver</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">### BEGIN INIT INFO</span>
<span style="color: #666666; font-style: italic;"># Provides: stomp</span>
<span style="color: #666666; font-style: italic;"># Required-Start: $local_fs $remote_fs $network $syslog</span>
<span style="color: #666666; font-style: italic;"># Required-Stop:</span>
<span style="color: #666666; font-style: italic;"># Default-Start: 2 3 4 5</span>
<span style="color: #666666; font-style: italic;"># Default-Stop: 1</span>
<span style="color: #666666; font-style: italic;"># Short-Description: Stomp</span>
<span style="color: #666666; font-style: italic;"># Description: Stomp</span>
<span style="color: #666666; font-style: italic;">### END INIT INFO</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>stompserver <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
&nbsp;
. <span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>lsb<span style="color: #000000; font-weight: bold;">/</span>init-functions
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> $<span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">in</span>
start<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #666666; font-style: italic;"># log_daemon_msg “Starting stompserver” “stomp”</span>
&nbsp;
     <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious <span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp; <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> git <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>stompserver <span style="color: #000000; font-weight: bold;">&amp;</span>amp;
     log_end_msg <span style="color: #007800;">$?</span>
    <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
stop<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #666666; font-style: italic;"># log_daemon_msg “Stopping stompserver” “stomp”</span>
&nbsp;
     <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious <span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp; <span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #660033;">-INT</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> log<span style="color: #000000; font-weight: bold;">/</span>stompserver.pid<span style="color: #000000; font-weight: bold;">`</span>
     log_end_msg <span style="color: #007800;">$?</span>
     <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
restart<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #666666; font-style: italic;"># log_daemon_msg “Restarting stompserver” “stomp”</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious <span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp; <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> git <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>stompserver <span style="color: #000000; font-weight: bold;">&amp;</span>amp;
    <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious <span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp; <span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #660033;">-INT</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> log<span style="color: #000000; font-weight: bold;">/</span>stompserver.pid<span style="color: #000000; font-weight: bold;">`</span>
    log_end_msg <span style="color: #007800;">$?</span>
    <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
status<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>stompserver.pid <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;stompserver is running. pid: <span style="color: #780078;">`cat /var/www/gitorious/log/stompserver.pid`</span>&quot;</span>
    <span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;stompserver is not running.&quot;</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #666666; font-style: italic;"># log_action_msg “Usage: /etc/init.d/stomp {start|stop|restart|status}”</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">2</span>
    <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></td></tr></table></div>

<p>大変酷いスクリプトであることは自分でも知ってますが、まあ用には足ります。</p>
<p>gistに上げてるので、以下で落とせます。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>stomp http:<span style="color: #000000; font-weight: bold;">//</span>gist.github.com<span style="color: #000000; font-weight: bold;">/</span>raw<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">269240</span><span style="color: #000000; font-weight: bold;">/</span>ce6507d4387004040e73667586ee2b1ced1de9fa<span style="color: #000000; font-weight: bold;">/</span>stomp.sh <span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp; <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> a+x <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>stomp</pre></div></div>

<p>そしてpollerは、起動スクリプトはもちろん動かなくて、それも上手いこと直せない。。</p>
<p>とにかく使いたいなら、サーバ起動直後に以下のワンライナーで手動起動する運用で、対応できるかと思う。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">su</span> git <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;cd /var/www/gitorious &amp;amp;&amp;amp; RAILS_ENV=production ruby script/poller start &amp;amp;&amp;amp; sleep 10&quot;</span></pre></div></div>

<p>このコマンドを起動スクリプトに書いてもぜんぜんうまく行かないんだけど、何で？</p>
<p>Gitoriousの全機能が動く状態になっているか、各デーモンの状況を確認する際は以下のコマンドで。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ps-ef <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> git</pre></div></div>

<p>各デーモンは「<strong>git</strong>」ユーザで動いています。なお、Passengerの仕様として、Railsのプロセスは<code>$RAILS_ROOT/config/environment.rb</code>のオーナーなので、こっちのプロセスもgitになっているはず。</p>
<p>以下の4プロセスが存在すればOK。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">git       <span style="color: #000000;">2243</span>     <span style="color: #000000;">1</span>  <span style="color: #000000;">0</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">11</span> ?        00:00:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ruby <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious<span style="color: #000000; font-weight: bold;">/</span>script<span style="color: #000000; font-weight: bold;">/</span>git-daemon <span style="color: #660033;">-d</span>
git       <span style="color: #000000;">2547</span>     <span style="color: #000000;">1</span>  <span style="color: #000000;">0</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">12</span> ?        00:00:00 searchd <span style="color: #660033;">--config</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>gitorious<span style="color: #000000; font-weight: bold;">/</span>config<span style="color: #000000; font-weight: bold;">/</span>ultrasphinx<span style="color: #000000; font-weight: bold;">/</span>production.conf
git       <span style="color: #000000;">2925</span>     <span style="color: #000000;">1</span>  <span style="color: #000000;">0</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">18</span> ?        00:00:06 poller
git       <span style="color: #000000;">3213</span>     <span style="color: #000000;">1</span>  <span style="color: #000000;">0</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">26</span> pts<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>    00:00:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ruby <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>stompserver</pre></td></tr></table></div>

<p>上がってなかったらserviceコマンドで上げましょう（結局手動かよ！！！）。</p>
<h3>その他</h3>
<p>Wikiの通りやっていけば、Ubuntuならそれほど詰まらないかとは思います。</p>
<h3>細かい点</h3>
<ul>
<li>どうせローカルでしか使わないのでSSL要らない</li>
</ul>
<p><code>config/environment/production.rb</code>に、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">SslRequirement.<span style="color:#9900CC;">disable_ssl_check</span> = <span style="color:#0000FF; font-weight:bold;">true</span></pre></td></tr></table></div>

<p>を追記する</p>
<ul>
<li>cronがなんかコケる</li>
</ul>
<p>crontab -e する際に、環境変数 <code>PATH=/usr/local/bin:/usr/bin:/bin</code> を設定した方がいい気がする。あとgitユーザで設定してるか確認。</p>
<ul>
<li>ログインできない</li>
</ul>
<p>gitorious.ymlでのホスト名と、実際にブラウザでアクセスするホスト名が、一致してないとダメっぽいです。なので「localhost」とかで動作検証しようとするとダメだった。/etc/hosts使うとか、192.168.hoge.fugaをgitorious.ymlにちゃんと書くとか。</p>
<ul>
<li>tarballがダウンロードできない</li>
</ul>
<p>gitorious.ymlで設定してる<code>archive_cache_dir</code>の場所に、ちゃんとtarballはできてるんですけど、いざブラウザから落とそうとすると1kbの空ファイルになってしまう。。。</p>
<p>ソース見る限り「X-SendFile」という手段でファイルをダウンロードさせてるようなので、Apacheなら「mod_xsendfile」を入れなければいけない模様。</p>
<ul>
<li><a href="http://tn123.ath.cx/mod_xsendfile/">http://tn123.ath.cx/mod_xsendfile/</a></li>
<li><a href="http://packages.debian.org/ja/squeeze/i386/libapache2-mod-xsendfile/download">http://packages.debian.org/ja/squeeze/i386/libapache2-mod-xsendfile/download</a> (debもあった)</li>
<li><a href="http://www.ideaxidea.com/archives/2009/11/mod_xsendfile_installed.html">http://www.ideaxidea.com/archives/2009/11/mod_xsendfile_installed.html</a></li>
</ul>
<blockquote><p>ちなみに個人的には「XSendFile on」の記述を忘れていたため、ダウンロードはされるが空のファイル、というみっともないハマリ方をしちゃいましたよ。ご注意あれ。</p></blockquote>
<p>はい、私もでした。ということでソースがtarballでも落とせて便利。</p>
<h3>未解決</h3>
<ul>
<li>日本語検索できなくね</li>
</ul>
<p>sphinx search自体が日本語対応しているか怪しい。。と思ったが。</p>
<p>UltraSphinxプラグインが起動する検索デーモンの共通設定は、</p>
<p><code>${RAILS_ROOR}/config/ultrasphinx/default.base</code></p>
<p>via: <a href="http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/classes/Ultrasphinx.html">http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/classes/Ultrasphinx.html</a></p>
<p>見た感じ*.baseにはERB記法が使えそう。</p>
<p>そして、なにやら日本語対応のための記事っぽいものが英語であった。</p>
<ul>
<li><a href="http://crunchytoast.com/2009/04/14/sphinx-search-in-japanese/">http://crunchytoast.com/2009/04/14/sphinx-search-in-japanese/</a></li>
<li><a href="http://crunchytoast.com/2009/05/01/japanese-sphinx-explained/">http://crunchytoast.com/2009/05/01/japanese-sphinx-explained/</a></li>
</ul>
<p>この辺とか、あと <code>/usr/local/etc/sphinx.conf.dist</code> にもサンプルがあったりするのでそれを見ながら試行錯誤すれば出来るようになるのかも。でも時間無い。</p>
<p>取り急ぎは「カテゴリーは英語にする」とかそういう運用ルールでがんばるしかないか。</p>
<p>もしくは、UltraSphinx自体をハックする必要もあるかもしれない。<br />
<a href="http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/files/README.html">http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/files/README.html</a></p>
<h3>まとめ</h3>
<p>知らないライブラリを沢山使ってるので勉強になった。</p>
<p>日本語情報少なくて困惑する。</p>
<p>でも、トラブルがあるたびに、ソースを追っかけたりして対処していけば、なんとなく入れられるんではないでしょうか。というか毎日のようにPUSHがあるので、一ヵ月後ぐらいにはここに書いたtips意味無くなるんじゃあないか。</p>
<h3>大変参考になった先達</h3>
<p>Wikiの他、以下の方々</p>
<ul>
<li><a href="http://d.hatena.ne.jp/bannyan/20090131/1233399237">http://d.hatena.ne.jp/bannyan/20090131/1233399237</a></li>
<li><a href="http://d.hatena.ne.jp/Hirohiro/20090522/1243016921">http://d.hatena.ne.jp/Hirohiro/20090522/1243016921</a></li>
<li><a href="http://www.araki.net/wiki/araki-wiliki.cgi?araki%3AGitorious">http://www.araki.net/wiki/araki-wiliki.cgi?araki%3AGitorious</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/01/06/gitorious-installation-memo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/01/06/gitorious-installation-memo/" />
	</item>
		<item>
		<title>MySQL Query Browserが便利な気がする</title>
		<link>http://blog.udzura.jp/2009/12/14/mysql-query-browser-intro/</link>
		<comments>http://blog.udzura.jp/2009/12/14/mysql-query-browser-intro/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 05:50:02 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[DataBase]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=165</guid>
		<description><![CDATA[MySQL Query Browserというものがあります。Windowsだと「Common SQL Environment」とかあったりするんですが、ことLinuxだと、GUIツールがあまり無いので。。
Ubuntu 9.10では簡単にインストールできます。

1
sudo aptitude install mysql-query-browser

なお、他の環境についてはMySQL公式でインストール手順を教えてくれます。英語、ですけど。
諸機能

「アプリケーション」＞「プログラミング」に「MySQL Query Browser」が登録されます。

接続後の画面です。

基本的に、テーブルを上のSQL入力フォームにドラッグ＆ドロップすればいいです。
図解するとこうです！！

わかりますね！！！
SQLは「ctrl＋Enter」で実行できます。

なお、テーブルジョインをしたい際などは、四角い所の下の方にドラッグして持っていくとメニューが出ます。「Add Table」でFROM句に追加したりできます。

SELECT句やWHERE句に特定のフィールドを指定したい際は、フィールドをドラッグします。こんな感じで出ます。

ちなみに、結果表示はタブ表示できたり、タブをさらに分けたりできます。

あと、Explain Queryもできます。一旦実行後、「Query」＞「Explain Query」ですね。

＊　＊　＊
最近、高いMacBookを買わなくても、中古のThinkPadやLet&#8217;s NoteにでもUbuntuを入れれば比較的快適、かつモバイラブルな開発環境が構築できる気がしています。僕のようなユルいLinuxユーザでもUbuntuは充分使える。。
]]></description>
			<content:encoded><![CDATA[<p>MySQL Query Browserというものがあります。Windowsだと「<a href="http://www.vector.co.jp/soft/win95/business/se180732.html">Common SQL Environment</a>」とかあったりするんですが、ことLinuxだと、GUIツールがあまり無いので。。</p>
<p>Ubuntu 9.10では簡単にインストールできます。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> mysql-query-browser</pre></td></tr></table></div>

<p>なお、他の環境については<a href="http://dev.mysql.com/doc/query-browser/en/guitools-general.html">MySQL公式</a>でインストール手順を教えてくれます。英語、ですけど。</p>
<h3>諸機能</h3>
<p><span id="more-165"></span></p>
<p>「アプリケーション」＞「プログラミング」に「MySQL Query Browser」が登録されます。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mysql-query-browser-start.png"><img class="alignnone size-medium wp-image-167" title="mysql-query-browser-start" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mysql-query-browser-start-300x279.png" alt="mysql-query-browser-start" width="300" height="279" /></a></p>
<p>接続後の画面です。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-init.png"><img class="alignnone size-medium wp-image-166" title="mqb-init" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-init-300x225.png" alt="mqb-init" width="300" height="225" /></a></p>
<p>基本的に、テーブルを上のSQL入力フォームにドラッグ＆ドロップすればいいです。</p>
<p>図解するとこうです！！</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-dd.png"><img class="alignnone size-medium wp-image-168" title="mqb-dd" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-dd-300x225.png" alt="mqb-dd" width="300" height="225" /></a></p>
<p>わかりますね！！！</p>
<p>SQLは「ctrl＋Enter」で実行できます。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-exec.png"><img class="alignnone size-medium wp-image-169" title="mqb-exec" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-exec-300x223.png" alt="mqb-exec" width="300" height="223" /></a></p>
<p>なお、テーブルジョインをしたい際などは、四角い所の下の方にドラッグして持っていくとメニューが出ます。「Add Table」でFROM句に追加したりできます。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-tables.png"><img class="alignnone size-medium wp-image-170" title="mqb-tables" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-tables-300x225.png" alt="mqb-tables" width="300" height="225" /></a></p>
<p>SELECT句やWHERE句に特定のフィールドを指定したい際は、フィールドをドラッグします。こんな感じで出ます。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-columns.png"><img class="alignnone size-medium wp-image-171" title="mqb-columns" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-columns-300x208.png" alt="mqb-columns" width="300" height="208" /></a></p>
<p>ちなみに、結果表示はタブ表示できたり、タブをさらに分けたりできます。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-tabs.png"><img class="alignnone size-medium wp-image-172" title="mqb-tabs" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-tabs-300x201.png" alt="mqb-tabs" width="300" height="201" /></a></p>
<p>あと、Explain Queryもできます。一旦実行後、「<span style="text-decoration: underline;">Q</span>uery」＞「<span style="text-decoration: underline;">E</span>xplain Query」ですね。</p>
<p><a href="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-explain.png"><img class="alignnone size-medium wp-image-173" title="mqb-explain" src="http://blog.udzura.jp/wp-content/uploads/2009/12/mqb-explain-300x193.png" alt="mqb-explain" width="300" height="193" /></a></p>
<h3>＊　＊　＊</h3>
<p>最近、高いMacBookを買わなくても、中古のThinkPadやLet&#8217;s NoteにでもUbuntuを入れれば比較的快適、かつモバイラブルな開発環境が構築できる気がしています。僕のようなユルいLinuxユーザでもUbuntuは充分使える。。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2009/12/14/mysql-query-browser-intro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2009/12/14/mysql-query-browser-intro/" />
	</item>
		<item>
		<title>MARGL、という言葉を流行らせたい</title>
		<link>http://blog.udzura.jp/2009/11/27/mysql-apache-ruby-git-linux/</link>
		<comments>http://blog.udzura.jp/2009/11/27/mysql-apache-ruby-git-linux/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 12:53:42 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[DataBase]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=110</guid>
		<description><![CDATA[以前より思っていたことから入ります。
「初めてウェブアプリ作ろう！」　ってときの実行＋開発環境として、LAMPっていうのがあるけど（僕もはじめてはLAMPでしたよ）、その「P」にはRubyが入らない。そしてたいていPHPが入る。Web連携って考えるとPythonやPerlよりは適しているのかもしれないけれど、で、意外とLAMPって言葉がPHP普及に一役買ってるんじゃないかと思っていました。
今更ながら、LAMPとは。

Linux
Apache2
MySQL
PHP（多くの場合）

なわけで。ウェブ開発の鉄壁の包囲網ですね。このPHPを無理やりRubyに替えてもなあ、「LAMR」って読み方不明だし、「らむる」？　語感悪いし、って思っていたんですね。
で、急に、「じゃあ並び替えればよくね？」　って思い立って、

MARGL

という言葉を作りました。「まーぐる」と読みましょう。並び替えなので分かると思うけれど、

MySQL
Apache2
Ruby
Linux

です。で、肝心の「G」は何？　っていうと、

Git

です。僕は敢えて、バージョン管理システムをこの鉄壁の包囲網に導入したい。そしてRubyなら状況等諸々を考えて、Gitがいいでしょう、と。
別にPostgreSQLでPARGL、SQLite3でSARGL、SubversionやCVSでMARSL、MARCLでもいいと思いますけれど。語感極端に悪くなってないし（大事）。でもNginXにするととたんに発音ができないので、Apacheの「A」は大事だなって思った。
それはいいとして、このフラッシュアイデア、いくつか自己ツッコミしたいところです。

Git要るの？ なんでGitなの？
そもそも、バージョン管理システムは、プログラマ以外では全然普及してないんじゃないか？　例えば程近いところにいるはずのウェブな人たちの間でも？　と思う出来事が一つあったから、敢えて入れたいな、何て思ったわけで。
その出来事とは、「Web担当者フォーラム」のこの記事。

マルチプラットフォームなリスクヘッジ。Web2.0の命のために

もう1つが「世代管理」。別名保存するファイル名に「日付」を織りこみます。たとえば「datafile.txt」を作業する前に 「datafile091021.txt」と日付をいれ、プログラムファイルなら「test-v2-091021.php」と「v」の後にバージョンナン バーを配します。作成日付はプロパティをみればわかりますが、ファイル名で「いつ作業した、どのバージョンか」を明示し意識付けするのはヒューマンエラー 対策です。
この旧態依然な管理法を聞いて、プログラマならみんな思うと思うけど、「いや、バージョン管理ツール導入しなよ」と。あなたたちどうせMacなんだからSubversionもGitも簡単に入るじゃないか、と。WindowsでもTortoiseSVNとか使いやすいじゃない、GitもTortoiseGit出たし十分実用に足るし、と。
それもその辺の人がやってるブログならともかく、アクセスも多い影響力もでかいインプレス系のメディアで、いかにも「Web制作者代表です」みたいな雰囲気でこういうことぶちかまされちゃうと、ちょっとなあ、と思ったわけで。宮脇さんという方には個人的には共感する部分も多いんだけれど、この記事はいただけないぞ、と。
と同時に、例えばプログラマの先輩が、わざわざSubversion使ってるのになぜかFTPで本番環境にデプロイしてたりしてたのも見てきたし、「ああ、バージョン管理ツールって全然普及してなかったり、名前知ってても使いこなせてなかったりするのかなあ」とか思って。それなら、初心者にいきなりGitに触れてもらう、ってのも何かしら有益なのかなあ、と思い、「MARL」でも別に語感悪くないのに（とにかく語感重要）敢えて加えてみました。という流れ。
星の数ほどあるバージョン管理ソフトの中でGitを選んだ理由は、みんな使ってるから、ってだけでなく、具体的には。

軽い
少なくともgithubとHeroku.comを利用する際に便利だし、いろいろRuby界隈で便利
Ruby on Railsの多くのプラグインはGitで入れる

ぐらいが挙げられる気がします。まあ、「Git」であることにはそんなこだわってない。。でも、Gitの特性上、上述の「オールドテクノロジー」なリスクヘッジよりさらに安全ですよね。
あと、「バージョン管理システム入れるなら、エディタとかIDEとかなんでも入るくね？」　って声もあるかと思いますし、僕もあんま反論できない（w　ただ、IDEとかだと本当に人それぞれで、NetBeansで！　みたいに決め打ちされると困惑する人も出そうかなあ、とか。Gitなら決め打ちしてみるのはアリかなあ、何て思ったり（弱気）。
「MARGX」（まーぐえっくす）じゃないのはどうなの？
結論から言うと弱みだと思います。そもそも、1年ぐらい前まではMARGLの「A」が胡散臭かった。Apache2のmod_proxyとmongrelサーバを連携するとか、慣れないと頭の痛い設定なわけで、初心者がいきなり！　とか言ってられない感じだったわけです。
今は、Passenger（二つ名をmod_rails）のおかげでずいぶん楽です。インストールと設定にちょっと癖がありますが、mod_phpに比べて極端に難しいかといわれるとそうでもない（今日び、mod_phpの設定は勝手になされてるからそこはアレかもですね）。
しかし、Passengerは、Mac OS Xでも最近のUNIXでもちゃんと動くらしいんですが、Windowsをサポートしていません。これ、結構でかいと思うんですよね。いくらUbuntuやFedoraが使いやすくなっても、普段づかいはWindowsだろうし、簡単にはMARGLは試せない（ローカルで試すだけなら、Apache連携を切り捨ててもいいとは思うんですけど）。。
そうは言ってもLinuxは僕のようなユルい人でも簡単にインストール、設定できるようになっています。それにMac対応してるし（w
MARGLを流行らせて、どうするの？
すっごい大きくて個人的な話から入りますが。
僕、そもそもそんなにプログラミング得意じゃないんです。最初はPHPとかJavaScript覚えさせられて、フレームワークもなしにガリガリ書いてたんですけど。そうこうしてるうちにRubyに出会って。で、「作ること」より低レイヤーな「書くこと」「アルゴリズムや仕組みを考えること」が好きになったのは、Rubyのおかげだと思ってるんです。
作ってるモノ自体とかにあんま納得いかなかったりとか、納期きつくて延々とガリガリコーディングしたりとか、プログラマって辛いこといっぱいあるんですけど、でもそういうのを経験しても、「Rubyを書くこと自体」って全然嫌いにならなかったんですね。これってすごい言語なんじゃないかと思ったわけです。
そういうRubyがもっと普及するといいな、普及させるにはどうすればいいのかな、とかぼんやり思ってて（でもコミュニティ活動とか、全然してない、です。。；；）。
普及の一つの方法として、初心者を取り込むために（w　何だかんだでLAMPは有名だろうけれど、もう一つの選択肢として（って、違いは言語と、Gitが入ってることだけなんですけど）MARGLが有名になれば、半々でそっちを選んでくれるんじゃないかなー、そうしたら「3年後にRubyの勉強を始める人は、何を動機にしてるだろう？」って心配もされなくなるんじゃないかなーとか思うわけです。GeekyなHackerばかりじゃなくて、Webでデザイン寄りな人ももっと増えるだろうし。別にきしださんの記事を見て思いついたわけじゃないんですけど、便乗したいと思います！
そうそう、MARGLという言葉を作ったばっかりでこういうこと書くの、大言壮語過ぎるって自分でも分かっているので、あまり本気で怒らないで欲しいですよ（w
ということで、最初にやるべきこと
時間ある時にちょこちょこと「MARGLで始めるWeb開発」みたいなブログ記事を書いていこうと思ってます（宣言してしまった！）。
あと、まずは言葉を広めたいと思ってます。なので、使ってください（w　MARGLという言葉自体には何のライセンスもないですし。
というか、「MARGLっていんじゃね？」　って言いたいだけだったのにずいぶん長い記事に。。次回（いつのことやら）、具体的なこと書きます。今使ってるUbuntu 9.10がとてもとてもMARGLなので、どう構築したか、とかね。

合わせて読みたい（俺が）

	
	MySQL 徹底入門 第2版
	著者／訳者：遠藤 俊裕 坂井 恵 館山 聖司 鶴長 鎮一 とみた まさひろ 班石 悦夫 松信 嘉範 
	出版社：翔泳社( 2006-01-24 )
	単行本 ( 416 ページ )


	
	Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
	著者／訳者：Ken Coar Rich Bowen 
	出版社：オライリージャパン( 2008-09-26 )
	大型本 ( 308 ページ )


	
	基礎Ruby on Rails (IMPRESS KISO SERIES)
	著者／訳者：黒田 努 佐藤 和人 
	出版社：インプレスジャパン( 2007-10 )
	単行本 [...]]]></description>
			<content:encoded><![CDATA[<p>以前より思っていたことから入ります。</p>
<p>「初めてウェブアプリ作ろう！」　ってときの実行＋開発環境として、LAMPっていうのがあるけど（僕もはじめてはLAMPでしたよ）、その「P」にはRubyが入らない。そしてたいていPHPが入る。Web連携って考えるとPythonやPerlよりは適しているのかもしれないけれど、で、意外とLAMPって言葉がPHP普及に一役買ってるんじゃないかと思っていました。</p>
<p>今更ながら、LAMPとは。</p>
<ul>
<li>Linux</li>
<li>Apache2</li>
<li>MySQL</li>
<li>PHP（多くの場合）</li>
</ul>
<p>なわけで。ウェブ開発の鉄壁の包囲網ですね。このPHPを無理やりRubyに替えてもなあ、「LAMR」って読み方不明だし、「らむる」？　語感悪いし、って思っていたんですね。</p>
<p>で、急に、「じゃあ並び替えればよくね？」　って思い立って、</p>
<ul>
<li>MARGL</li>
</ul>
<p>という言葉を作りました。「まーぐる」と読みましょう。並び替えなので分かると思うけれど、</p>
<ul>
<li>MySQL</li>
<li>Apache2</li>
<li>Ruby</li>
<li>Linux</li>
</ul>
<p>です。で、肝心の「G」は何？　っていうと、</p>
<ul>
<li>Git</li>
</ul>
<p>です。僕は敢えて、バージョン管理システムをこの鉄壁の包囲網に導入したい。そしてRubyなら状況等諸々を考えて、Gitがいいでしょう、と。</p>
<p>別にPostgreSQLでPARGL、SQLite3でSARGL、SubversionやCVSでMARSL、MARCLでもいいと思いますけれど。語感極端に悪くなってないし（大事）。でもNginXにするととたんに発音ができないので、Apacheの「A」は大事だなって思った。</p>
<p>それはいいとして、このフラッシュアイデア、いくつか自己ツッコミしたいところです。</p>
<p><span id="more-110"></span></p>
<h3>Git要るの？ なんでGitなの？</h3>
<p>そもそも、バージョン管理システムは、プログラマ以外では全然普及してないんじゃないか？　例えば程近いところにいるはずのウェブな人たちの間でも？　と思う出来事が一つあったから、敢えて入れたいな、何て思ったわけで。</p>
<p>その出来事とは、<a href="http://web-tan.forum.impressrd.jp/">「Web担当者フォーラム」</a>のこの記事。</p>
<ul>
<li><a href="http://web-tan.forum.impressrd.jp/e/2009/10/21/6715">マルチプラットフォームなリスクヘッジ。Web2.0の命のために</a></li>
</ul>
<blockquote><p>もう1つが「世代管理」。別名保存するファイル名に「日付」を織りこみます。たとえば「datafile.txt」を作業する前に 「datafile091021.txt」と日付をいれ、プログラムファイルなら「test-v2-091021.php」と「v」の後にバージョンナン バーを配します。作成日付はプロパティをみればわかりますが、ファイル名で「いつ作業した、どのバージョンか」を明示し意識付けするのはヒューマンエラー 対策です。</p></blockquote>
<p>この旧態依然な管理法を聞いて、プログラマならみんな思うと思うけど、<strong>「いや、バージョン管理ツール導入しなよ」</strong>と。あなたたちどうせMacなんだからSubversionもGitも簡単に入るじゃないか、と。Windowsでも<a href="http://tortoisesvn.net/">TortoiseSVN</a>とか使いやすいじゃない、GitもTortoiseGit出たし十分実用に足るし、と。</p>
<p>それもその辺の人がやってるブログならともかく、アクセスも多い影響力もでかいインプレス系のメディアで、いかにも「Web制作者代表です」みたいな雰囲気でこういうことぶちかまされちゃうと、ちょっとなあ、と思ったわけで。宮脇さんという方には個人的には共感する部分も多いんだけれど、この記事はいただけないぞ、と。</p>
<p>と同時に、例えばプログラマの先輩が、わざわざSubversion使ってるのになぜかFTPで本番環境にデプロイしてたりしてたのも見てきたし、「ああ、バージョン管理ツールって全然普及してなかったり、名前知ってても使いこなせてなかったりするのかなあ」とか思って。それなら、初心者にいきなりGitに触れてもらう、ってのも何かしら有益なのかなあ、と思い、「MARL」でも別に語感悪くないのに（とにかく語感重要）敢えて加えてみました。という流れ。</p>
<p>星の数ほどあるバージョン管理ソフトの中でGitを選んだ理由は、みんな使ってるから、ってだけでなく、具体的には。</p>
<ul>
<li>軽い</li>
<li>少なくともgithubとHeroku.comを利用する際に便利だし、いろいろRuby界隈で便利</li>
<li>Ruby on Railsの多くのプラグインはGitで入れる</li>
</ul>
<p>ぐらいが挙げられる気がします。まあ、「Git」であることにはそんなこだわってない。。でも、Gitの特性上、上述の「オールドテクノロジー」なリスクヘッジよりさらに安全ですよね。</p>
<p>あと、「バージョン管理システム入れるなら、エディタとかIDEとかなんでも入るくね？」　って声もあるかと思いますし、僕もあんま反論できない（w　ただ、IDEとかだと本当に人それぞれで、NetBeansで！　みたいに決め打ちされると困惑する人も出そうかなあ、とか。Gitなら決め打ちしてみるのはアリかなあ、何て思ったり（弱気）。</p>
<h3>「MARGX」（まーぐえっくす）じゃないのはどうなの？</h3>
<p>結論から言うと弱みだと思います。そもそも、1年ぐらい前まではMARGLの「A」が胡散臭かった。Apache2のmod_proxyとmongrelサーバを連携するとか、慣れないと頭の痛い設定なわけで、初心者がいきなり！　とか言ってられない感じだったわけです。</p>
<p>今は、<a href="http://www.modrails.com/">Passenger</a>（二つ名をmod_rails）のおかげでずいぶん楽です。インストールと設定にちょっと癖がありますが、mod_phpに比べて極端に難しいかといわれるとそうでもない（今日び、mod_phpの設定は勝手になされてるからそこはアレかもですね）。</p>
<p>しかし、Passengerは、Mac OS Xでも最近のUNIXでもちゃんと動くらしいんですが、<strong>Windowsをサポートしていません。</strong>これ、結構でかいと思うんですよね。いくらUbuntuやFedoraが使いやすくなっても、普段づかいはWindowsだろうし、簡単にはMARGLは試せない（ローカルで試すだけなら、Apache連携を切り捨ててもいいとは思うんですけど）。。</p>
<p>そうは言ってもLinuxは僕のようなユルい人でも簡単にインストール、設定できるようになっています。それにMac対応してるし（w</p>
<h3>MARGLを流行らせて、どうするの？</h3>
<p>すっごい大きくて個人的な話から入りますが。</p>
<p>僕、そもそもそんなにプログラミング得意じゃないんです。最初はPHPとかJavaScript覚えさせられて、フレームワークもなしにガリガリ書いてたんですけど。そうこうしてるうちにRubyに出会って。で、「作ること」より低レイヤーな「書くこと」「アルゴリズムや仕組みを考えること」が好きになったのは、Rubyのおかげだと思ってるんです。</p>
<p>作ってるモノ自体とかにあんま納得いかなかったりとか、納期きつくて延々とガリガリコーディングしたりとか、プログラマって辛いこといっぱいあるんですけど、でもそういうのを経験しても、「Rubyを書くこと自体」って全然嫌いにならなかったんですね。これってすごい言語なんじゃないかと思ったわけです。</p>
<p>そういうRubyがもっと普及するといいな、普及させるにはどうすればいいのかな、とかぼんやり思ってて（でもコミュニティ活動とか、全然してない、です。。；；）。</p>
<p>普及の一つの方法として、初心者を取り込むために（w　何だかんだでLAMPは有名だろうけれど、もう一つの選択肢として（って、違いは言語と、Gitが入ってることだけなんですけど）MARGLが有名になれば、半々でそっちを選んでくれるんじゃないかなー、そうしたら<a href="http://d.hatena.ne.jp/nowokay/20091126#1259196233">「3年後にRubyの勉強を始める人は、何を動機にしてるだろう？」</a>って心配もされなくなるんじゃないかなーとか思うわけです。GeekyなHackerばかりじゃなくて、Webでデザイン寄りな人ももっと増えるだろうし。別にきしださんの記事を見て思いついたわけじゃないんですけど、便乗したいと思います！</p>
<p>そうそう、MARGLという言葉を作ったばっかりでこういうこと書くの、大言壮語過ぎるって自分でも分かっているので、あまり本気で怒らないで欲しいですよ（w</p>
<h3>ということで、最初にやるべきこと</h3>
<p>時間ある時にちょこちょこと「MARGLで始めるWeb開発」みたいなブログ記事を書いていこうと思ってます（宣言してしまった！）。</p>
<p>あと、まずは言葉を広めたいと思ってます。なので、使ってください（w　MARGLという言葉自体には何のライセンスもないですし。</p>
<p>というか、「MARGLっていんじゃね？」　って言いたいだけだったのにずいぶん長い記事に。。次回（いつのことやら）、具体的なこと書きます。今使ってるUbuntu 9.10がとてもとてもMARGLなので、どう構築したか、とかね。</p>
<hr />
<h3>合わせて読みたい（俺が）</h3>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/MySQL-%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E9%81%A0%E8%97%A4-%E4%BF%8A%E8%A3%95/dp/4798110256%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798110256"><img src="http://ecx.images-amazon.com/images/I/51Y8NYGMXRL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/MySQL-%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E9%81%A0%E8%97%A4-%E4%BF%8A%E8%A3%95/dp/4798110256%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798110256">MySQL 徹底入門 第2版</a></p>
	<p><em>著者／訳者：</em>遠藤 俊裕 坂井 恵 館山 聖司 鶴長 鎮一 とみた まさひろ 班石 悦夫 松信 嘉範 </p>
	<p><em>出版社：</em>翔泳社( 2006-01-24 )</p>
	<p>単行本 ( 416 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/Apache%E3%82%AF%E3%83%83%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-%E7%AC%AC2%E7%89%88-%E2%80%95Web%E3%82%B5%E3%83%BC%E3%83%90%E7%AE%A1%E7%90%86%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94%E9%9B%86-Ken-Coar/dp/4873113814%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113814"><img src="http://ecx.images-amazon.com/images/I/515t-Vj3AAL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/Apache%E3%82%AF%E3%83%83%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-%E7%AC%AC2%E7%89%88-%E2%80%95Web%E3%82%B5%E3%83%BC%E3%83%90%E7%AE%A1%E7%90%86%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94%E9%9B%86-Ken-Coar/dp/4873113814%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113814">Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集</a></p>
	<p><em>著者／訳者：</em>Ken Coar Rich Bowen </p>
	<p><em>出版社：</em>オライリージャパン( 2008-09-26 )</p>
	<p>大型本 ( 308 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E5%9F%BA%E7%A4%8ERuby-Rails-IMPRESS-KISO-%E9%BB%92%E7%94%B0/dp/4844324780%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844324780"><img src="http://ecx.images-amazon.com/images/I/41AK57H2iUL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E5%9F%BA%E7%A4%8ERuby-Rails-IMPRESS-KISO-%E9%BB%92%E7%94%B0/dp/4844324780%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844324780">基礎Ruby on Rails (IMPRESS KISO SERIES)</a></p>
	<p><em>著者／訳者：</em>黒田 努 佐藤 和人 </p>
	<p><em>出版社：</em>インプレスジャパン( 2007-10 )</p>
	<p>単行本 ( 558 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E5%85%A5%E9%96%80git-Travis-Swicegood/dp/427406767X%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D427406767X"><img src="http://ecx.images-amazon.com/images/I/41k7xonwpdL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E5%85%A5%E9%96%80git-Travis-Swicegood/dp/427406767X%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D427406767X">入門git</a></p>
	<p><em>著者／訳者：</em>Travis Swicegood</p>
	<p><em>出版社：</em>オーム社( 2009-08-12 )</p>
	<p>単行本（ソフトカバー） ( 208 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/Ubuntu9-10%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-INFOREST-MOOK-PC%E3%83%BBGIGA%E7%89%B9%E5%88%A5%E9%9B%86%E4%B8%AD%E8%AC%9B%E5%BA%A7-365/dp/4861905389%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4861905389"><img src="http://ecx.images-amazon.com/images/I/51Y5Qr40aNL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/Ubuntu9-10%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-INFOREST-MOOK-PC%E3%83%BBGIGA%E7%89%B9%E5%88%A5%E9%9B%86%E4%B8%AD%E8%AC%9B%E5%BA%A7-365/dp/4861905389%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4861905389">Ubuntu9.10完全ガイド (INFOREST MOOK PC・GIGA特別集中講座 365)</a></p>
	<p><em>出版社：</em>インフォレスト( 2009-11-18 )</p>
	<p>大型本 ( 95 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<p>あさましく！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2009/11/27/mysql-apache-ruby-git-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2009/11/27/mysql-apache-ruby-git-linux/" />
	</item>
	</channel>
</rss>
