<?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; DataBase</title>
	<atom:link href="http://blog.udzura.jp/categories/tech/db/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/db/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>僕とデータベーススペシャリストと勉強法</title>
		<link>http://blog.udzura.jp/2010/06/29/study-tips-for-db/</link>
		<comments>http://blog.udzura.jp/2010/06/29/study-tips-for-db/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 11:44:06 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[DataBase]]></category>
		<category><![CDATA[勉強記録]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=463</guid>
		<description><![CDATA[2010年4月に実施された、データベーススペシャリスト試験に合格しました。
いやまあ、未だに「採点ミス？　隣の人の答案じゃないの？」　とか疑ってたりもするんですが（w　さすがに普通に合格したと思います。今回は、DBスペシャリストを目指す皆様のため、私がやってきた勉強の記録を（僭越ながら、さらに言うとうろ覚えながら）列挙してみます。

10月～11月半ば

数年単位の大きな目標をでっち上げる
「応用情報」試験終了の帰りに、参考書を買う
データベースそもそもについての知見を蓄える。僕は『楽々ERDレッスン』を買った

最初の「でっち上げる」ってところなんですが、僕はそもそも「XXXX年までにシステムアーキテクトとDBスペシャリストを取って、足元を固めておく」というゴールを打ち立てて勉強していたんですね。なので、応用情報に関しては、去年10月の時点で落ちていても受かっていても、その次の4月はDBスペシャリストを受けよう、と決めていました。ということで、応用情報の試験から開放されてすぐ次の試験に取りかかったのは自然なことだったんですね。
こういう大きな目標を立てるメリットの一つとして、「資格を目標ではなく手段の中に組み込みやすくなる」ということがあるのかな、と思います。「試験に合格する」ではなく「足元を固める」、というところを念頭に置くということです。
3つ目の項目のような動きもその流れで始めました。
で、これって特にDBスペシャリスト固有のtipsなんですけど、あの試験はDB設計と事例分析が配点の多くを占めます。DB設計って、別に試験のためだけの技術じゃないですし、一般の設計ノウハウ本を読んでおくことはものすごい為になった気がします。試験のための設計と実業務の設計はむろん違いますが、ことDB回りに関しては基本的な考えは一緒（具体的にはとにかく正規化）かな、と。

	
	楽々ERDレッスン (CodeZine BOOKS)
	著者／訳者：(株)スターロジック 羽生 章洋
	出版社：翔泳社( 2006-04-18 )
	単行本 ( 240 ページ )

この本は、そのへんの「理想」と「実務」のバランスがすごくよく取れていて、また実際の例に即して（レッスンなので）設計手順を解説してますんで、業務経験を補うという意味でも勧めます。発行年は古いですけど、その間にRDBMSの考え方が劇的に変化したわけじゃないですから。僕にとっては充分役立ちました。
11月後半～

早期に、「範囲全体」の見渡しをする
見渡したら、最初に過去問第に「体当たり」し、「ショック」を受ける

全体を見渡す、というのは、基本情報を受け始めたときからの癖なんですけど、そもそも全体のゴールが分かっていないとモチベーションが保ちにくいこと、範囲が区切られているとはいえ、各分野は結局どこかでつながっていること、以上2点からまず全体像を把握することを勧めたいと思います。
応用情報ぐらい範囲が広いと逆に辛いかもしれませんが。。。でも、高度試験は特に、各分野が密接に関連しているわけですから。僕は一ヶ月ぐらいで参考書の全範囲を一通り読みました。
ポイントとしては、この「素読み」の段階では、別に問題を解かなくても、着実に一項目ずつ進めなくてもいいということです。マジで意味不明だったら飛ばせばいいという話です。そもそもこの時点で4ヶ月以上残ってるので定着には充分余裕があります。早い段階で全体が見渡せれば、余裕が生まれます。
それに、僕はSQLはほとんど勉強してないです。実務だけで充分な知識がついていたようです。こういう得意不得意が見えてくる、というのも全体を見渡すメリットですね。
で、全部見終わってから一旦実際に出た問題に飛び込んでみる。それも、午前から通しで解くのをお勧めします。
「実問題を解く」のが大事で、上記の得意不得意の分析というのもそうですが、多くの場合、実はそれ以前の問題で、そもそも解ける訳ないんですよね。全体が見えても定着してないんですから。「まだ解けない」という事実を体で理解しましょう。でも、分からないなりに考えてみるのが大事です。
この早期失敗の擬似体験は、試験であがいてみる感じをつかむということと、全体を見渡せたからと言って安心してしまわないようにすること、の二つが大きな狙いです。

	
	情報処理教科書 データベーススペシャリスト 2010年度版 (CD-ROM付)
	著者／訳者：松田 幹子 山下 真吾 三好康 之 
	出版社：翔泳社( 2009-09-18 )
	単行本（ソフトカバー） ( 576 ページ )

僕は素直に、翔泳社の教科書シリーズをメインに使いました。皆さんは2011年度版ですね。。
12月後半～

午前問題はとっとと潰す、そして時間を取られ過ぎない
午後1を脚元固めする

一度一通り解いてみて、ようやく問題を解きまくるフェーズに入るわけですが……。
情報処理の高度試験では、一番大事なのは「午後1」です。午後2は、午後1が完璧に出来ればその知識とコツで解けます。ただ、午前2はちょっと範囲が違ったりするんで（DBスペシャリストなら、セキュリティやネットワークの問題も出てくる）、専用の対策が必要になります。
そうは言ってもあくまでメインディッシュは午後1です。午前2はぶっちゃけ同じ問題を使いまわしているので、ちゃんと対策すれば数週間で8割は安定して取れるようになるでしょう。そうしたら、もう対策は要りません。6割でいいんですから。むろん、直前にもう一度解いてみるのはアリですが、時間を掛けすぎる必要は全然無いですよね。
あと、午前1を受けざるを得ない状況の人は、いっそ思い切って応用情報技術者を取りましょう。午前1の問題範囲は、DBとほとんどかぶらない一般的な内容で（というか、全高度系試験共通）、ここを対策するのは結構な負担です。それならば、どうせ多くの試験は1年に一度しか受けられないのですし、秋の時間で応用情報の浅くとも広い知識を押さえた方がいいんじゃないでしょうか。応用情報処理資格取得者は午前1免除です。これは大きいということです。
午前2が安定してきたら、午後1の対策に入りましょう。まずは無心で、3～4年分の過去問を解いてください。
1月～

午後1のパターンに慣れる
午後2からも逃げ出さない

午後1を3～4年分解けば、以下の事実に気づくと思います。つまり、パターンがあるよね、と。

事例分析（これは第何正規形？とかをしつこく尋ねる）
DB設計（E-R図とかを書かせる）
SQL（穴埋めとかスクラッチとか）
何だか訳の分からないことをさせる問題（インデックスとかリカバリとか）

これ、午後1が4問だったころのパターンなんですけど、3問になってからをふりかえって、2009年度は「1, 2, 3」、今年は「1, 2, 4」でしたね。パターンがまったく無になったということは無いです。
4はDBというか、多分旧アプリケーションエンジニアやシステムアーキテクト的なセンスが要る感じがするんで、ちょっと対策し辛い気がします。1、2、3は対策すれば結果が返ってくる問題形式です。DBスペシャリスト独特の変な作図も慣れればつっかえない程度には書けるようになります（はず。。。）。
過去問は4問時代のものをやるウェイトが増えるでしょうけど、中問1つあたり30分を切る、を目標に頑張りましょう。
同時に、午後2も少しずつ問題を解いていきましょう。何せ全然形式が違うし、大問一つ解くという形式も慣れが必要ですから。理想は午後1は6~8年分、午後2も5年分はやっておきたいところ。
3月～

ちゃんと、使いやすい問題集を買う。資料や書籍をケチらない
毎日何かする


	
	データベーススペシャリスト「専門知識+午後問題」の重点対策〈2010〉 (情報処理技術者試験対策書)
	著者／訳者：山本 森樹
	出版社：アイテック( 2009-12 )
	単行本 ( 506 ページ )

翔泳社の教科書もよかったんですけど、過去問がPDFだったりしたので、印刷とかいろいろ面倒でした。なので、思い切って、改めて問題集を買いました。
この問題集は、午後1、午後2がテーマごとに固まっていて、僕の勉強法では使いやすかったです。特に午後2、印刷したペラペラのハンドアウトでやるのは辛い。。。冊子がいいです。
3月ぐらいになるともう基本知識を一から付けようとか無理なんですが。でも、ちょっとずつでも毎日何かを積み上げましょう。小手先な知識を少しでも付けるのはすごく大事です。59点は不合格ですが60点は合格です。
そして何より、毎日何かしてきた、という実績を積むことで、本試験での精神的余裕が生まれます。
あとは……対策しても落ちる時は落ちます（w　対策不足だ～とかクヨクヨしてても意味ないです。どうせ数年掛けて取るつもり、と割り切って、本試験では余裕の態度で受けましょう。
全体のふりかえり
Keep

「しないこと」を決めたのはよかった。午前問題はもうやらない、とか
全体を最初に見通したのは、プレッシャーの軽減につながった気がした
勉強の目的は「合格＝３」：「知識、知見の取得＝７」の割合で

何だかんだで範囲が広いですから、優先順位を付けましょう。午前問題は後半はほとんどやりませんでした（直前ぐらい）。　この「やらない」って勇気が要りますが、実際午前2が100点でも65点ぐらいでも通過点は通過点なのですから……。大事なこと、よりハードなことにリソースを集中させるべきです。
全体を見渡すことの重要性は、前述の通り。
あと、「知識の足元固めをする」方でモチベーションをコントロールすべきなんですが、そうはいっても「資格を得る」ってでかいですし、何より合格すると気持ちいいですよね（w　合格のための小手先の技も積極的に身につけましょう。でもそっちに走りすぎても目的がブレます。なので、３：７。
Problem

最初から飛ばしすぎて、後半息切れした感がある
「何もしてない」期間がちょっと出てしまった

この二点は密接で、3月頭とかは息切れでほとんど何もしていなかった気がします。。。
継続性とか習慣性が大事な気がします。あと、建て直し。一週間ぐらいサボっても平気な顔で学習継続のループに戻っていけるといいですね。再起動を恐れないというか。
ダメループを自分の意志で断つのには気合が要りますが、重要です。何でもいいから再開してみる、例えば午後2の対策がとっくに終わっていても、とりあえず午後2を久しぶりに解いてみる、とかそういうのがコツでしょうか。
Try

自覚的なモチベーションコントロール
論文対策をする
進捗をメモ程度のものでも記録する
「直前対策勉強会」的なものに一回は行ってみる？

試験対策って要するに勉強なんですけど。でも、何のために資格という形で一つの体系立った知識を勉強するかっていうと、勉強したこと業務とキャリアに生かしたいからですよね。何が言いたいかというと、くどい感じですけど、僕等の仕事は勉強が日々の業務で、日々の業務が勉強だと思うんです。
資格勉強で覚えた正規化理論を仕事で使ったり、逆に実務経験で覚えたSQLで点を稼いだり、そういう感じだと思うんです。
勉強の自己目的化は一番避けたいことだ。
モチベーションコントロールというか、「何のために？」「どうやって？」「何を？」っていうのを念頭に置きつづけることが、最大のパフォーマンスを出すコツなのかなと思います。5W1H(2H)って大事ですけど、僕はその中でも「What」「How」「Why」が特に大事で、後ろに行くほどより大事、そう思っています。
精神論臭くなってしまいましたが。。。
一応常々気をつけてはいますけれど、この辺のモチベーションコントロールに自覚的になりたいんですよね。2010年度SA試験は、そこが一番のTryになると思ってます。
あとのTryは細々としたものですが、「論文」はいままで受けたことのない形式なので普通にチャレンジで、あと進捗記録も、前回はここはいい加減だったのでやってみたいということ。
それから、せっかく対策している人はたくさん居るんですから、同じ目的の人たちでなんらかの人のつながりを作れたらな～とも思います。論文対策勉強会とか、ちゃんと調べて行ってみたいです。
＊　＊　＊
うまくまとめられた気がしないし、参考になるのかはなはだ不明瞭ですが書いてみました。ぼちぼちと直すかもしれません。
取り急ぎ、右サイドバーに「バーンダウンチャート」が出現しています。。。どうなることやら。
]]></description>
			<content:encoded><![CDATA[<p>2010年4月に実施された、データベーススペシャリスト試験に合格しました。</p>
<p>いやまあ、未だに「採点ミス？　隣の人の答案じゃないの？」　とか疑ってたりもするんですが（w　さすがに普通に合格したと思います。今回は、DBスペシャリストを目指す皆様のため、私がやってきた勉強の記録を（僭越ながら、さらに言うとうろ覚えながら）列挙してみます。</p>
<p><span id="more-463"></span></p>
<h3>10月～11月半ば</h3>
<ul style="font-weight:bold;">
<li>数年単位の大きな目標をでっち上げる</li>
<li>「応用情報」試験終了の帰りに、参考書を買う</li>
<li>データベースそもそもについての知見を蓄える。僕は『楽々ERDレッスン』を買った</li>
</ul>
<p>最初の「でっち上げる」ってところなんですが、僕はそもそも<strong>「XXXX年までにシステムアーキテクトとDBスペシャリストを取って、足元を固めておく」というゴールを打ち立てて勉強していた</strong>んですね。なので、応用情報に関しては、去年10月の時点で落ちていても受かっていても、その次の4月はDBスペシャリストを受けよう、と決めていました。ということで、応用情報の試験から開放されてすぐ次の試験に取りかかったのは自然なことだったんですね。</p>
<p>こういう大きな目標を立てるメリットの一つとして、「資格を目標ではなく手段の中に組み込みやすくなる」ということがあるのかな、と思います。<strong>「試験に合格する」ではなく「足元を固める」、というところを念頭に置く</strong>ということです。</p>
<p>3つ目の項目のような動きもその流れで始めました。</p>
<p>で、これって特にDBスペシャリスト固有のtipsなんですけど、あの試験はDB設計と事例分析が配点の多くを占めます。DB設計って、別に試験のためだけの技術じゃないですし、一般の設計ノウハウ本を読んでおくことはものすごい為になった気がします。試験のための設計と実業務の設計はむろん違いますが、ことDB回りに関しては基本的な考えは一緒（具体的にはとにかく正規化）かな、と。</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E6%A5%BD%E3%80%85ERD%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B3-CodeZine-BOOKS-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF-%E7%BE%BD%E7%94%9F/dp/4798110663%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798110663"><img src="http://ecx.images-amazon.com/images/I/513Y4RJ7R8L._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E6%A5%BD%E3%80%85ERD%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B3-CodeZine-BOOKS-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF-%E7%BE%BD%E7%94%9F/dp/4798110663%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798110663">楽々ERDレッスン (CodeZine BOOKS)</a></p>
	<p><em>著者／訳者：</em>(株)スターロジック 羽生 章洋</p>
	<p><em>出版社：</em>翔泳社( 2006-04-18 )</p>
	<p>単行本 ( 240 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<p>この本は、そのへんの「理想」と「実務」のバランスがすごくよく取れていて、また実際の例に即して（レッスンなので）設計手順を解説してますんで、業務経験を補うという意味でも勧めます。発行年は古いですけど、その間にRDBMSの考え方が劇的に変化したわけじゃないですから。僕にとっては充分役立ちました。</p>
<h3>11月後半～</h3>
<ul style="font-weight:bold;">
<li>早期に、「範囲全体」の見渡しをする</li>
<li>見渡したら、最初に過去問第に「体当たり」し、「ショック」を受ける</li>
</ul>
<p>全体を見渡す、というのは、基本情報を受け始めたときからの癖なんですけど、そもそも全体のゴールが分かっていないとモチベーションが保ちにくいこと、範囲が区切られているとはいえ、各分野は結局どこかでつながっていること、以上2点からまず全体像を把握することを勧めたいと思います。</p>
<p>応用情報ぐらい範囲が広いと逆に辛いかもしれませんが。。。でも、高度試験は特に、各分野が密接に関連しているわけですから。僕は一ヶ月ぐらいで参考書の全範囲を一通り読みました。</p>
<p>ポイントとしては、この「素読み」の段階では、<strong>別に問題を解かなくても、着実に一項目ずつ進めなくてもいい</strong>ということです。マジで意味不明だったら飛ばせばいいという話です。そもそもこの時点で4ヶ月以上残ってるので定着には充分余裕があります。<strong>早い段階で全体が見渡せれば、余裕が生まれます。</strong></p>
<p>それに、僕はSQLはほとんど勉強してないです。実務だけで充分な知識がついていたようです。こういう得意不得意が見えてくる、というのも全体を見渡すメリットですね。</p>
<p>で、全部見終わってから一旦実際に出た問題に飛び込んでみる。それも、午前から通しで解くのをお勧めします。</p>
<p>「実問題を解く」のが大事で、上記の得意不得意の分析というのもそうですが、多くの場合、実はそれ以前の問題で、<strong>そもそも解ける訳ない</strong>んですよね。全体が見えても定着してないんですから。「まだ解けない」という事実を体で理解しましょう。でも、分からないなりに考えてみるのが大事です。</p>
<p>この<strong>早期失敗</strong>の擬似体験は、試験であがいてみる感じをつかむということと、全体を見渡せたからと言って安心してしまわないようにすること、の二つが大きな狙いです。</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%95%99%E7%A7%91%E6%9B%B8-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88-2010%E5%B9%B4%E5%BA%A6%E7%89%88-CD-ROM%E4%BB%98-%E6%9D%BE%E7%94%B0/dp/4798120448%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798120448"><img src="http://ecx.images-amazon.com/images/I/51fIdAe4HOL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%95%99%E7%A7%91%E6%9B%B8-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88-2010%E5%B9%B4%E5%BA%A6%E7%89%88-CD-ROM%E4%BB%98-%E6%9D%BE%E7%94%B0/dp/4798120448%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798120448">情報処理教科書 データベーススペシャリスト 2010年度版 (CD-ROM付)</a></p>
	<p><em>著者／訳者：</em>松田 幹子 山下 真吾 三好康 之 </p>
	<p><em>出版社：</em>翔泳社( 2009-09-18 )</p>
	<p>単行本（ソフトカバー） ( 576 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<p>僕は素直に、翔泳社の教科書シリーズをメインに使いました。皆さんは2011年度版ですね。。</p>
<h3>12月後半～</h3>
<ul style="font-weight:bold;">
<li>午前問題はとっとと潰す、そして時間を取られ過ぎない</li>
<li>午後1を脚元固めする</li>
</ul>
<p>一度一通り解いてみて、ようやく問題を解きまくるフェーズに入るわけですが……。</p>
<p>情報処理の高度試験では、<strong>一番大事なのは「午後1」です</strong>。午後2は、午後1が完璧に出来ればその知識とコツで解けます。ただ、午前2はちょっと範囲が違ったりするんで（DBスペシャリストなら、セキュリティやネットワークの問題も出てくる）、専用の対策が必要になります。</p>
<p>そうは言ってもあくまでメインディッシュは午後1です。午前2はぶっちゃけ同じ問題を使いまわしているので、ちゃんと対策すれば数週間で8割は安定して取れるようになるでしょう。そうしたら、もう対策は<strong>要りません</strong>。<strong>6割でいい</strong>んですから。むろん、直前にもう一度解いてみるのはアリですが、時間を掛けすぎる必要は全然無いですよね。</p>
<p>あと、午前1を受けざるを得ない状況の人は、<strong>いっそ思い切って応用情報技術者を取りましょう</strong>。午前1の問題範囲は、DBとほとんどかぶらない一般的な内容で（というか、全高度系試験共通）、ここを対策するのは結構な負担です。それならば、どうせ多くの試験は1年に一度しか受けられないのですし、秋の時間で応用情報の浅くとも広い知識を押さえた方がいいんじゃないでしょうか。応用情報処理資格取得者は午前1免除です。これは大きいということです。</p>
<p>午前2が安定してきたら、午後1の対策に入りましょう。<strong>まずは無心</strong>で、3～4年分の過去問を解いてください。</p>
<h3>1月～</h3>
<ul style="font-weight:bold;">
<li>午後1のパターンに慣れる</li>
<li>午後2からも逃げ出さない</li>
</ul>
<p>午後1を3～4年分解けば、以下の事実に気づくと思います。つまり、パターンがあるよね、と。</p>
<ol>
<li>事例分析（これは第何正規形？とかをしつこく尋ねる）</li>
<li>DB設計（E-R図とかを書かせる）</li>
<li>SQL（穴埋めとかスクラッチとか）</li>
<li>何だか訳の分からないことをさせる問題（インデックスとかリカバリとか）</li>
</ol>
<p>これ、午後1が4問だったころのパターンなんですけど、3問になってからをふりかえって、2009年度は<strong>「1, 2, 3」</strong>、今年は<strong>「1, 2, 4」</strong>でしたね。<strong>パターンがまったく無になったということは無い</strong>です。</p>
<p>4はDBというか、多分旧アプリケーションエンジニアやシステムアーキテクト的なセンスが要る感じがするんで、ちょっと対策し辛い気がします。<strong>1、2、3は対策すれば結果が返ってくる問題形式です</strong>。DBスペシャリスト独特の変な作図も慣れればつっかえない程度には書けるようになります（はず。。。）。</p>
<p>過去問は4問時代のものをやるウェイトが増えるでしょうけど、中問1つあたり30分を切る、を目標に頑張りましょう。</p>
<p>同時に、午後2も少しずつ問題を解いていきましょう。何せ全然形式が違うし、大問一つ解くという形式も慣れが必要ですから。理想は午後1は6~8年分、午後2も5年分はやっておきたいところ。</p>
<h3>3月～</h3>
<ul style="font-weight:bold;">
<li>ちゃんと、使いやすい問題集を買う。資料や書籍をケチらない</li>
<li>毎日何かする</li>
</ul>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88%E3%80%8C%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98-%E5%8D%88%E5%BE%8C%E5%95%8F%E9%A1%8C%E3%80%8D%E3%81%AE%E9%87%8D%E7%82%B9%E5%AF%BE%E7%AD%96%E3%80%882010%E3%80%89-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93%E5%AF%BE%E7%AD%96%E6%9B%B8-%E5%B1%B1%E6%9C%AC-%E6%A3%AE%E6%A8%B9/dp/4872687949%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4872687949"><img src="http://ecx.images-amazon.com/images/I/51MpH2w5jzL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88%E3%80%8C%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98-%E5%8D%88%E5%BE%8C%E5%95%8F%E9%A1%8C%E3%80%8D%E3%81%AE%E9%87%8D%E7%82%B9%E5%AF%BE%E7%AD%96%E3%80%882010%E3%80%89-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93%E5%AF%BE%E7%AD%96%E6%9B%B8-%E5%B1%B1%E6%9C%AC-%E6%A3%AE%E6%A8%B9/dp/4872687949%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4872687949">データベーススペシャリスト「専門知識+午後問題」の重点対策〈2010〉 (情報処理技術者試験対策書)</a></p>
	<p><em>著者／訳者：</em>山本 森樹</p>
	<p><em>出版社：</em>アイテック( 2009-12 )</p>
	<p>単行本 ( 506 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
<p>翔泳社の教科書もよかったんですけど、過去問がPDFだったりしたので、印刷とかいろいろ面倒でした。なので、思い切って、改めて問題集を買いました。</p>
<p>この問題集は、午後1、午後2がテーマごとに固まっていて、僕の勉強法では使いやすかったです。特に午後2、印刷したペラペラのハンドアウトでやるのは辛い。。。冊子がいいです。</p>
<p>3月ぐらいになるともう基本知識を一から付けようとか無理なんですが。でも、ちょっとずつでも毎日何かを積み上げましょう。小手先な知識を少しでも付けるのはすごく大事です。<strong>59点は不合格ですが60点は合格です</strong>。</p>
<p>そして何より、毎日何かしてきた、という実績を積むことで、本試験での精神的余裕が生まれます。</p>
<p>あとは……対策しても落ちる時は落ちます（w　対策不足だ～とかクヨクヨしてても意味ないです。どうせ数年掛けて取るつもり、と割り切って、本試験では余裕の態度で受けましょう。</p>
<h3>全体のふりかえり</h3>
<h4>Keep</h4>
<ul style="font-weight:bold;">
<li>「しないこと」を決めたのはよかった。午前問題はもうやらない、とか</li>
<li>全体を最初に見通したのは、プレッシャーの軽減につながった気がした</li>
<li>勉強の目的は「合格＝３」：「知識、知見の取得＝７」の割合で</li>
</ul>
<p>何だかんだで範囲が広いですから、優先順位を付けましょう。午前問題は後半はほとんどやりませんでした（直前ぐらい）。　この「やらない」って勇気が要りますが、実際午前2が100点でも65点ぐらいでも通過点は通過点なのですから……。大事なこと、よりハードなことにリソースを集中させるべきです。</p>
<p>全体を見渡すことの重要性は、前述の通り。</p>
<p>あと、「知識の足元固めをする」方でモチベーションをコントロールすべきなんですが、そうはいっても「資格を得る」ってでかいですし、何より合格すると気持ちいいですよね（w　合格のための小手先の技も積極的に身につけましょう。でもそっちに走りすぎても目的がブレます。なので、３：７。</p>
<h4>Problem</h4>
<ul style="font-weight:bold;">
<li>最初から飛ばしすぎて、後半息切れした感がある</li>
<li>「何もしてない」期間がちょっと出てしまった</li>
</ul>
<p>この二点は密接で、3月頭とかは息切れでほとんど何もしていなかった気がします。。。</p>
<p>継続性とか習慣性が大事な気がします。あと、建て直し。一週間ぐらいサボっても平気な顔で学習継続のループに戻っていけるといいですね。再起動を恐れないというか。</p>
<p>ダメループを自分の意志で断つのには気合が要りますが、重要です。<strong>何でもいいから再開してみる</strong>、例えば午後2の対策がとっくに終わっていても、とりあえず午後2を久しぶりに解いてみる、とかそういうのがコツでしょうか。</p>
<h4>Try</h4>
<ul style="font-weight:bold;">
<li>自覚的なモチベーションコントロール</li>
<li>論文対策をする</li>
<li>進捗をメモ程度のものでも記録する</li>
<li>「直前対策勉強会」的なものに一回は行ってみる？</li>
</ul>
<p>試験対策って要するに勉強なんですけど。でも、何のために資格という形で一つの体系立った知識を勉強するかっていうと、<strong>勉強したこと業務とキャリアに生かしたい</strong>からですよね。何が言いたいかというと、くどい感じですけど、僕等の仕事は勉強が日々の業務で、日々の業務が勉強だと思うんです。</p>
<p>資格勉強で覚えた正規化理論を仕事で使ったり、逆に実務経験で覚えたSQLで点を稼いだり、そういう感じだと思うんです。</p>
<p>勉強の自己目的化は一番避けたいことだ。</p>
<p>モチベーションコントロールというか、「何のために？」「どうやって？」「何を？」っていうのを念頭に置きつづけることが、最大のパフォーマンスを出すコツなのかなと思います。5W1H(2H)って大事ですけど、僕はその中でも<strong>「What」「How」「Why」が特に大事で、後ろに行くほどより大事</strong>、そう思っています。</p>
<p>精神論臭くなってしまいましたが。。。</p>
<p>一応常々気をつけてはいますけれど、この辺のモチベーションコントロールに自覚的になりたいんですよね。2010年度SA試験は、そこが一番のTryになると思ってます。</p>
<p>あとのTryは細々としたものですが、「論文」はいままで受けたことのない形式なので普通にチャレンジで、あと進捗記録も、前回はここはいい加減だったのでやってみたいということ。</p>
<p>それから、せっかく対策している人はたくさん居るんですから、同じ目的の人たちでなんらかの人のつながりを作れたらな～とも思います。論文対策勉強会とか、ちゃんと調べて行ってみたいです。</p>
<h3>＊　＊　＊</h3>
<p>うまくまとめられた気がしないし、参考になるのかはなはだ不明瞭ですが書いてみました。ぼちぼちと直すかもしれません。</p>
<p>取り急ぎ、右サイドバーに「バーンダウンチャート」が出現しています。。。どうなることやら。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2010/06/29/study-tips-for-db/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2010/06/29/study-tips-for-db/" />
	</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>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>
