<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>O&apos;Reilly Japan Community Blog</title>
        <link>http://www.oreilly.co.jp/community/blog/</link>
        <description>このblogには、オライリーWebサイト協力者からの寄稿記事や、独自のインタビュー、レポート記事などを掲載します。</description>
        <language>ja</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Tue, 15 Jun 2010 15:32:21 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>epollインタフェースとsignalfd（2）</title>
            <description><![CDATA[<img alt="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" />
<p class="lead">&gt;&gt;<a href="http://www.oreilly.co.jp/community/blog/2010/05/epoll-interface-and-signalfd-part1.html"> (1)よりつづく</a></p>
<p class="footnote docutils">
本記事のサンプルコードは、以下のリンクよりダウンロードすることができます。記事と合わせてご参照ください。<br />
[ <a class="reference external" href="http://www.oreilly.co.jp/pub/pg_high/ph20100223.tar.bz2">サンプルコード</a> ]</p>
<h2>子プロセスの同期/非同期</h2>
<p>4epoll、5epoll-multiへのダミー処理追加には、いくつかの注意点があります。1baseと同じように、epollによるイベントループがその場で子プロセスの終了を待つようにすると、1つのダミー処理の終了を他のセッションが待つことになってしまいます。
これはepollによる、イベントループのI/Oの多重性を損なう大きな問題です（ <a class="reference internal" href="#id16">図1.9</a> ）。</p>
<p><span class="target" id="id16">図1.9</span> epoll の多重性を損ねるダミー処理追加</p>
<img alt="epoll2-fig9.png" src="http://www.oreilly.co.jp/community/blog/2010/06/fig/epoll2-fig9.png" />
<p>（セッションCは割愛）</p>
]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/06/epoll-interface-and-signalfd-part2.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/06/epoll-interface-and-signalfd-part2.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
            <pubDate>Tue, 15 Jun 2010 15:32:21 +0900</pubDate>
        </item>
        
        <item>
            <title>epollインタフェースとsignalfd（1）</title>
            <description><![CDATA[<img alt="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" />
<p class="lead">「インターネットサーバでのPthreadとepoll」の記事（以下、前記事と呼びます）を書いた時点では、手元の環境がプアなためマルチプロセス/マルチスレッドを採用したサンプルプログラムの真価を発揮させられず、適切に比較できませんでしたが、その後デュアルコアマシンを借りることができたので、改めて比較してみました。
また、比較の際にサンプルプログラムに追加したダミー処理ではシグナルも使用したので、やはりLinuxに追加された <tt class="docutils literal">signalfd(2)</tt> もepollによるイベントループで処理してみました。</p>
<p class="footnote docutils">
本記事のサンプルコードは、以下のリンクよりダウンロードすることができます。記事と合わせてご参照ください。<br />
[ <a class="reference external" href="http://www.oreilly.co.jp/pub/pg_high/ph20100223.tar.bz2">サンプルコード</a> ]</p>
<h2>前記事のサンプルプログラム</h2>
<p><a class="reference external" href="http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part1.html">前記事</a> ではHTTPサーバを例に並列性/多重性のサンプル実装を5種類提示しました。簡単に振り返ります。サンプルプログラムがデュアルコアシステム上で動作しており、HTTPリクエストがほぼ同時に3件届いた場合のインタリーブ例を挙げてみます。毎回必ずこの通りにインタリーブされるわけではなく、あくまでもそれぞれの動作の違いを示すための一例です（ <a class="reference internal" href="#id4">図1.1</a> から <a class="reference internal" href="#id8">図1.5</a> ）。
また、5epoll-multiはCPU数-1個の4epoll（相当）を子プロセスとして起動しますが、デュアルコアシステムでは子プロセスの4epollを1つしか起動せず、4epollとの比較がしにくくなるため、今回は測定用にCPU数分の4epollの子プロセスを起動することにします。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/05/epoll-interface-and-signalfd-part1.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/05/epoll-interface-and-signalfd-part1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
            <pubDate>Mon, 17 May 2010 15:19:29 +0900</pubDate>
        </item>
        
        <item>
            <title>インターネットサーバでのPthreadとepoll（2）</title>
            <description><![CDATA[<img alt="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" />
<p class="lead"><a href="http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part1.html">&gt;&gt;（1）よりつづく</a><br />前回は単純な実装からマルチスレッド、スレッドプールと順に見て行きました。今回はいよいよepollを使った実装を紹介します。</p>
<div class="section" id="epoll-4epoll-c">
<h1>epoll例- 4epoll.c</h1>
<p>多重I/Oすなわち <tt class="docutils literal"><span class="pre">select(2)</span></tt> / <tt class="docutils literal"><span class="pre">poll(2)</span></tt> によるイベントループはマルチスレッドが普及する以前から利用されていました。 <tt class="docutils literal"><span class="pre">select(2)</span></tt> / <tt class="docutils literal"><span class="pre">poll(2)</span></tt> は複数のファイルディスクリプタ（ソケット）を調べ、I/O可能なものを返すシステムコールです。ソケットに対する読み取りはデフォルトではデータがなければブロック（データが到着するまで待つ）しますが、事前にI/O可能かを確認しておけばブロックすることはありません。1システムコールで複数のソケットを調べられる点も重要で、1プロセスで複数のクライアントに並行して対応できるようになります。しかし当然ながら、対象ソケット数の増加に応じて処理量が増えます。システムコールの実行時間がかかるだけではなく、ユーザ空間でもその結果を1ソケットづつ確認しながら処理を進めるため、性能劣化が問題となり、以前からこの問題が指摘されていました。Linuxでは <tt class="docutils literal"><span class="pre">poll(2)</span></tt> を拡張したepollインタフェース（ <tt class="docutils literal"><span class="pre">epol_create(2)</span></tt> , <tt class="docutils literal"><span class="pre">epoll_ctl(2)</span></tt> , <tt class="docutils literal"><span class="pre">epoll_wait(2)</span></tt> ）を実装しており、ファイルディスクリプタ数が多い場合の性能劣化を防いでいます。</p>
<p>前掲のもっとも単純なサンプル1base.cを、epollを用いて多重I/O化してみます。</p>
</div>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part2.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part2.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Tue, 30 Mar 2010 19:34:58 +0900</pubDate>
        </item>
        
        <item>
            <title>インターネットサーバでのPthreadとepoll（1）</title>
            <description><![CDATA[<img alt="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" />
<p class="lead">本連載ではシステムコールプログラミングの例も掲載していく予定ですが、本記事ではLinuxに追加されたepollを採りあげ、インターネットサーバでのPthread利用と比較してみます。</p>
<div class="section" id="id1">
<h1>はじめに</h1>
<p>マルチスレッドプログラミングが普及し、POSIX threadも制定され、Pthreadの利用は目新しいものではなくなりましたが、スレッドにまつわる迷信や誤った認識を、だいぶ減ったとはいえ、今でもたびたび耳にします。例として、</p>
<ul class="simple">
<li>スレッドはプロセスよりも軽いので、多数作成しても軽快に動作する</li>
<li>スレッドはプログラミングを簡単にしてくれ、1つの処理だけに集中できる</li>
</ul>
<p>などがあります。しかし、これらは常に真であるとは限りません。本記事ではマルチスレッドの概念や入門を繰り返すのではなく、その利用方法をHTTPサーバのサンプル実装を基に考察します。更にLinuxに追加された独自機能のepollインタフェースを用いて、マルチスレッドを見直すサンプルを実装してみます。</p>
</div>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part1.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server-part1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Thu, 18 Mar 2010 16:21:58 +0900</pubDate>
        </item>
        
        <item>
            <title>UnionMountとUnion-type Filesystem(2)</title>
            <description><![CDATA[<img class="mt-image-center" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" alt="[Programmer's High]" />
<h1>UnionMount</h1>
<p>AUFS/UnionFSがunion内のメンバをディレクトリとするのに対し、UnionMountでのメンバはブロックデバイス（すなわちマウントとしてunion機能実装)です。もっとも大きな違いはその実装方針にあり、UnionMountはより上位に位置するVFS内でunion機能を実現しようとしています( <a class="reference internal" href="#id14">図6</a> ）。</p>
<p>ファイルシステムとしてのunion実装と比較すると、VFS内でメンバ内から処理対象を選択決定する点が大きく異なります。このため、 <tt class="docutils literal"><span class="pre">vfs_mkdir()</span></tt> などVFSヘルパ関数を再度コールする必要がなくなります。</p>
]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/02/union-mount-uniontype-fs-part2.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/02/union-mount-uniontype-fs-part2.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Wed, 24 Feb 2010 17:58:04 +0900</pubDate>
        </item>
        
        <item>
            <title>UnionMountとUnion-type Filesystem(1)</title>
            <description><![CDATA[<img class="mt-image-center" src="http://www.oreilly.co.jp/community/blog/images/union/pg_high_logo.png" alt="[Programmer's High]" />
<div class="section" id="id1">
<h1>はじめに</h1>
<p>平成21年春のLinux Storage &amp; Filesystems Workshopで、LinuxカーネルにUnionMountという機能を実装することについて話し合われました。</p>
<p>UnionMountとは、かつてのSunOSに実装されていたTranslucent（Transparent）FilesystemやBSDのunion mountに相当する機能で、すでにディスクをマウントしているディレクトリ（マウントポイント）に別のディスクを重ねてマウントし、1つのマウントポイントから2台のディスクを同時に使用可能にするものです。例えばLiveCD（HDDへインストールせずにCD/DVD/FlashのみでLinuxを起動し、使用可能にする環境）などではこの機能を積極的に利用しています。</p>
<p>この記事ではLinuxカーネルにこの機能を実装するこれまでの試みと、前述の話し合いの結果としてLinux Kernel Mailing Listへ投稿されたパッチシリーズについて考察します。</p>
</div>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/02/union-mount-uniontype-fs-part-1.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/02/union-mount-uniontype-fs-part-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Contributors Post</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Wed, 03 Feb 2010 15:59:43 +0900</pubDate>
        </item>
        
        <item>
            <title>Keith Peters、日本での休日と知識の源泉について語る</title>
            <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="keith_peters.jpg" src="http://www.oreilly.co.jp/community/blog/images/keith_peters.jpg" width="286" height="400" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span><p class="lead">「神の書」として知られる『ActionScript 3.0 アニメーション』の著者、Keith Peters氏の最新作『<a href="http://www.oreilly.co.jp/books/9784873114378/">詳解 ActionScript 3.0アニメーション――衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック</a>』が、1月23日、ついにオライリー・ジャパンから発売されました。発売がアナウンスされた直後、なんと予約だけでAmazon.co.jpのPC書ランキング入りを果たすなど、ActionScriptユーザーの熱い注目を集めています。
昨年11月に来日された際には、オライリー・ジャパンのオフィスにも立ち寄っていただきました（写真はその際のものです。Keithさんの左胸に注目！）。とても物静かで真摯なお人柄に、オライリーのスタッフも一目でファンになってしまいました。<br />
今回、この『詳解 ActionScript 3.0アニメーション』刊行に先立って、Keithさんにメールインタビューを行いました。Keithさんのプライベートから、「神の書」と呼ばれるほどの書籍を書くまでに読んできた書籍や学習法などについてお話していただいております。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2010/01/interview-with-keith-peters.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2010/01/interview-with-keith-peters.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Interview and Report</category>
            
            
            <pubDate>Mon, 25 Jan 2010 14:30:23 +0900</pubDate>
        </item>
        
        <item>
            <title>第8回（最終回） lambda、YARV、そしてRuby 2.0へ</title>
            <description><![CDATA[<p class="lead">8回にわたってお届けしてきたこのシリーズも、いよいよ最終回。今回はその他の新しい機能、さらに、まつもとさんの口からは次のバージョンの話も飛び出します。</p>

<h2>ラムダ</h2>

<p>目立つ機能としては、「<code>-&gt;</code>」によるラムダ（<code>λ</code>）を入れたり、「<code>.()</code>」による呼び出しを入れたということですね、やっぱり関数型言語の影響が大きく、ラムダをこんな記号（<code>-&gt;</code>）で導入しました。</p>

<p class="dialogue">― まずこの話があったときは、まず最初に何があったかというと、「ラムダ」って書きづらいと。</p>

<p>1.8だとラムダメソッドってのがあって、lambdaだっけ、（綴りに）自信がないけど。Lispの人たちはそれこそ湯水のように使うけれど、普通のプログラマにはなじみがないし、読みにくい、書きにくい、長いメソッド名どうよって話があって。</p>

<p>あと、メソッドって再定義できるじゃないですか。「<code>lambda</code>」って書いても、本当にラムダを返すのか自信がない。ラムダじゃないものが返せてしまうかもしれない。いろんな最適化のことを考えると、こういうものは言語組み込みであった方がうれしいよねって思って、この2点から新しい記法を取り入れました。<br />
ただエライ不評で、「この記号<code>λ</code>に見えないじゃん」って。ターミナルっぽいフォントで表示して横に傾けると<code>λ</code>に見える、って言うとみんな笑ってくれるけど、それでも迫害は止まらないんです。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/06/8-lambda-yarv-ruby-20.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/06/8-lambda-yarv-ruby-20.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Thu, 04 Jun 2009 13:05:00 +0900</pubDate>
        </item>
        
        <item>
            <title>第7回 「M17N」が開く可能性</title>
            <description><![CDATA[<p class="lead">Ruby 1.9で注目の新機構、M17N（多言語化）を、まつもとさん、卜部さんのお二方が語ります。M17Nとは何か、どんなメリットがあるのか、M17Nが実装されたことで開かれる可能性とは？</p>

<h2>Ruby 1.9では文字列の抽象度が上がった</h2>

<p>Ruby 1.8ではすべてがバイト列だったんです。で、Ruby 1.9ではコードポイント<sup class="footnote"><a href="http://www.oreilly.co.jp/community/blog/2009/05/m17n-open-the-door-into.html#fn1">1</a></sup>と対になっている文字を表現するようになりました。ちょっと抽象度があがりました。</p>

<p>ですから、これからは"ABCあいう"という文字列の0番目を取ると「A」という文字を返します。で、3文字目から1文字を取ると、変なバイトではなくて「あ」という文字を返します。</p>

<p class="dialogue">― 3番目というのはゼロから数えて3番目のことですね。</p>

<p>ゼロから...皆さん分かりますよね。数字はゼロから数えますよね。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/05/m17n-open-the-door-into.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/05/m17n-open-the-door-into.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">m17n</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Thu, 28 May 2009 09:17:00 +0900</pubDate>
        </item>
        
        <item>
            <title>第6回 Ruby 1.9に起きた変化</title>
            <description><![CDATA[<p class="lead">書籍『プログラミング言語Ruby』を章ごとに語り終え、ここからはリリースされたばかりのRuby 1.9の変更点についてのお話が始まります。</p>

<p>Ruby 1.8とRuby 1.9は非互換です。その中には大きなものから小さなものまであって、その中でも重要なのは「ブロックパラメータ」「文字列」「M17N」です。</p>

<h2>ブロックパラメータ</h2>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="rubytalk01.jpg" src="http://www.oreilly.co.jp/community/blog/images/rubytalk01.jpg" width="280" height="260" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span></p>

<p>Rubyにはブロックというものがあります。縦棒（｜）の中に変数があって、（直前に書かれたイテレータの各要素が）渡されパラメータとして代入される。これはもともとループの抽象化として誕生したので、棒の間はループの各要素が代入される場所だったんです。（ブロックパラメータは）任意の変数、つまりグローバル変数でも、ローカル変数でも、配列でも大丈夫。何でも置けたんです。</p>

<p>ところが1.9からはちょっと変わっていて、グローバル変数を置こうとするともうダメ。これまではオブジェクトの属性に代入できたり、配列のスライスを呼び出せたのも、できなくなりました。それと同時に、（ブロックパラメータに指定された）ローカル変数のスコープは、ブロックの範囲内にとどまるということ。xに15を代入してループにパラメータを用意して、xに10を代入する。1.8では、ブロックの外側のxと内側のxは同じものなので、10に書き変わったんですね。だけど1．9からはブロックの中身なので、同じ名前だけど違うものになったとみなして数が変わらない。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/05/changes-on-ruby-1-9.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/05/changes-on-ruby-1-9.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Wed, 20 May 2009 15:11:30 +0900</pubDate>
        </item>
        
        <item>
            <title>第5回 ブレーキが外れた後半戦 5から10章</title>
            <description><![CDATA[<p class="lead">前回までのあらすじ<br />
『プログラミング言語Ruby』の生まれた経緯から書籍へと入ります。言語仕様の解説部分では、リリースマネジャーの卜部さんでさえ知らなかった内容が登場するなど、なかなか侮れない内容。Ruby初心者も上級者も楽しめる内容。今回はよりディープなRubyの世界へと移ります...</p>

<h2>5章 文と制御構造</h2>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="ch05.jpg" src="http://www.oreilly.co.jp/community/blog/images/ch05.jpg" width="250" height="188" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span></p>

<p>Rubyって文と式とあんまり区別がないんですけど、普通のプログラミング言語で文といわれているようなものとか、制御構造と言われているものについて解説しています。</p>

<p class="dialogue">―この辺から発展的内容って感じですね、4章までは、どちらかと言えばRubyの基礎的な内容でしたが、ここからですね、なんて言うんですかブレーキが外れてきて、</p>

<p>ははは。</p>

<p class="dialogue">―この章の一番最後の方にスレッドとかファイバとか継続について書いてあるんですけど、ファイバに関して言うと、この本の原著が最初に出たのが2008年1月。このころは、まだファイバが出てきたばかりで、これ本当に書くのか？ という感じで。2007年の11月に飛行機の中でドラフト版を読んで「ファイバに何ページも割いてある」と言ったら、（まつもとさんに）「ちょ、ちょっと見せて」とか言われて。まだ当時そんなに固まってないのに「こんなに書かれるとヤバい」と。</p>

<p>ファイバ作っている本人でさえ嫌がると。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/04/take-off-the-break-ch05-10.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/04/take-off-the-break-ch05-10.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Thu, 23 Apr 2009 10:05:00 +0900</pubDate>
        </item>
        
        <item>
            <title>第4回 上級者にも楽しめる入門編 1から4章</title>
            <description><![CDATA[<p class="lead">前回までのあらすじ<br />
「ヤギ」から「ハチドリ」へ至った経緯、そして本書がいかに変わっているかという話題から、これまた一風変わったRubyist、why_the_lucky_stiffへと話題は変わります。今回は1章から4章までを語ります。</p>

<p class="dialogue">―日本語版では、まつもとさんの「まえがき」という重要な部分が</p>

<p>日本語版ではまえがきを書いていて、すこし貢献度があがったと。</p>

<p>－みなさん、ぜひまつもとさんのまえがきを読んでいただいて...</p>

<p>はい。前書き作家としての（活躍を）ですね。僕がまえがき書くと本が売れるんですよ。『Googleを支える技術』<sup class="footnote"><a href="http://www.oreilly.co.jp/community/blog/2009/04/matz-talks-the-ruby-book-ch01-04.html#fn1">1</a></sup>、去年のベストセラー。その前は『Code Reading』<sup class="footnote"><a href="http://www.oreilly.co.jp/community/blog/2009/04/matz-talks-the-ruby-book-ch01-04.html#fn2">2</a></sup>、あれも前書き書いてるんですよ。今年はこれでベストセラーを狙います。まえがき書いても全然印税入んないんですけど。まえがきとオビ（の推薦文）で知名度を上げるべく頑張っております。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/04/matz-talks-the-ruby-book-ch01-04.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/04/matz-talks-the-ruby-book-ch01-04.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Thu, 16 Apr 2009 18:35:13 +0900</pubDate>
        </item>
        
        <item>
            <title>第3回 正体不明の人気者</title>
            <description><![CDATA[<p class="lead">前回までのあらすじ:<br />
ヤギが表紙の『Rubyデスクトップリファレンス』が、ハチドリ本こと『プログラミング言語Ruby』に変化した経緯をお話いただきました。今回からは監訳の卜部昇平さんと一緒に、『プログラミング言語Ruby』の章立てを順に追いつつ、本書とRubyにまつわる話がはじまります。が、まず書籍のタイトルやクレジットの話題から、まつもとさんがウォッチする「あの人」の話題に...</p>

<h2>『プログラミング言語Ruby』のヘンなところ</h2>

<p>この本って、結構オライリー的には変わった本で、とさっきオライリーの人から聞いたんですけど、1つはタイトルが『The Ruby Programing Language』って書いてあるんです。</p>

<p class="dialogue">―原著ですね。</p>

<p>こっち（日本語版）でも『プログラミング言語Ruby』となっていて、他の、オライリーの他の本で、こういう『Programing Language』というタイトルの本がほかにない。</p>

<p><img src="http://www.oreilly.co.jp/books/images/picture978-4-87311-394-4.gif" /></p>

<p class="dialogue">―例えばPerlだと『Programming Perl』ですね。</p>

<p>あれが原典ですね。Pythonは『Programming Python』。</p>

<p class="dialogue">―『JavaScript』とか『CVS』（のようなもの）もありますね。</p>

<p>そう、ソフトウェアの名前そのままというのはありますけど。</p>

<p class="dialogue">―そういえば『The Ruby Programing Language』みたいなのはあまりないですね。</p>

<p>そうですね。もっともピッケル本が「プログラミングRuby」なので、書名をとられちゃったという理由があるのかもしれないですけれど。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/04/unidentified-popular-figure.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/04/unidentified-popular-figure.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Mon, 06 Apr 2009 20:04:57 +0900</pubDate>
        </item>
        
        <item>
            <title>第2回 「ヤギ」と「ハチドリ」のあいだ（後編）</title>
            <description><![CDATA[<p class="lead">前回のあらすじ:<br />
「ポケットリファレンス」と呼ぶには分量の多かった『デスクトップリファレンス』。英語版への翻訳が進んだが、分量を倍に増やして『in a Nutshell』になることに。死にそうな思いで加筆をし、無事出版されるも、期待したほどの売れ行きをあげることはできなかった。フランス語版とロシア語版の計画は、フランス語版のみが形となる。</p>

<h2>驚きの共著者が登場『The Ruby Programming Language』</h2>

<p>それで『Ruby in a Nutshell』の後、そのまま長らくなかったことになっている感じだったのですが、ある日、2007年だったと思いますけれども、オライリーの編集者から久しぶりにメールが来てですね、「in a Nutshellの新しい本を作りたいんだ」と。Rubyも大分広まったし（今の）「in a Nutshell」は薄いからと。でも「お前が書くのは無理だろうから」って、分かってらっしゃる。</p>

<p>で、ですね、「共著者を用意するから」という風に言われて、まあ、僕が書けないのは分かっているので、「これをベースに誰か書いてくれればそれに越したことはないけれど」と思っていた。次のメールが来て「（共著者を）見つけて来たから。David Flanagan」。聞いたことのある名前だなあって。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/03/between-goat-and-hummingbird-2.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/03/between-goat-and-hummingbird-2.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Tue, 24 Mar 2009 16:28:08 +0900</pubDate>
        </item>
        
        <item>
            <title>第1回 「ヤギ」と「ハチドリ」のあいだ（前編）</title>
            <description><![CDATA[<p class="lead">読者のみなさんへ：<br />
この記事は東京、大阪で行われた『プログラミング言語Ruby』刊行記念トークイベントの内容をもとに構成されたものです。このトークイベントの動画はニコニコ動画で公開されていますので、よりリアルな雰囲気を味わいたい方は、[<a href="http://www.oreilly.co.jp/editors/archives/2009/02/ruby-4.html">こちら</a>]をご覧ください。</p>

<p>まつもとゆきひろです。Rubyというプログラミング言語を作った人です。『プログラミング言語Ruby』という本の共著者ということになっています。かなり名前だけですが。<br clear="all" /></p>

<h2>ここから始まった『Rubyデスクトップリファレンス』</h2>

<p>最初の最初から話をするとですね、奥付を調べたら2000年11月21日と書いてあったので、もう9年も前ですね。本を出したんです。『Rubyデスクトップリファレンス』っていう本です。本当はポケットリファレンスという、今でもあるのかな？ ポケットリファレンスという本（のシリーズ）が出てたんですけれど、妙に厚くなってポケットには入らないということで、デスクトップリファレンスに急遽なったという、いわくつきの本です。当時出たばかりのRuby 1.6というバージョンに対応していました。</p>]]></description>
            <link>http://www.oreilly.co.jp/community/blog/2009/03/between-goat-and-hummingbird.html</link>
            <guid>http://www.oreilly.co.jp/community/blog/2009/03/between-goat-and-hummingbird.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">まつもとゆきひろ『プログラミング言語Ruby』を大いに語る</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
            <pubDate>Mon, 23 Mar 2009 18:35:46 +0900</pubDate>
        </item>
        
    </channel>
</rss>
