<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>買い物ログ別館/Kaimono-log bekkan</title>
    <link rel="alternate" type="text/html" href="http://www.skoji.jp/blog/" />
    
   <id>tag:www.skoji.jp,2012:/blog//2</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2" title="買い物ログ別館/Kaimono-log bekkan" />
    <updated>2012-02-24T12:13:15Z</updated>
    <subtitle>ソフトウェア技術っぽい話題を扱います。本館は[こちら]。I'll cover software related topics here. Most entries written in Japanese. Will write topics on EPUB in English(or Engrish).</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type  4.23-ja</generator>
 

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/kaimonolog-b" /><feedburner:info uri="kaimonolog-b" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>gepub 0.6.3 with GEPUB::Builder</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/O6LdFHpCbbk/gepub_063_with_gepubbuilder.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1354" title="gepub 0.6.3 with GEPUB::Builder" />
    <id>tag:www.skoji.jp,2012:/blog//2.1354</id>
    
    <published>2012-02-24T10:40:04Z</published>
    <updated>2012-02-24T12:13:15Z</updated>
    
    <summary>Released gepub 0.6.3. It includes GEPUB:...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="Ruby" />
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        Released &lt;a href="http://github.com/skoji/gepub"&gt;gepub&lt;/a&gt; 0.6.3. It includes GEPUB::Builder, easy and powerful way to create a EPUB3 file. 

gepub0.6.3をリリースしました。EPUB3生成の簡単(だけど、EPUB3メタデータの大部分が扱える)インタフェース、GEPUB::Builderが含まれています。

例は以下の通り。

&lt;h4&gt; simple example &lt;/h4&gt;
&lt;script src="https://gist.github.com/1878995.js?file=builder_simple_example.rb"&gt;&lt;/script&gt;

&lt;h4&gt; rather complicated example&lt;/h4&gt;
&lt;script src="https://gist.github.com/1878995.js?file=builder_sample.rb"&gt;&lt;/script&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/O6LdFHpCbbk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2012/02/gepub_063_with_gepubbuilder.html</feedburner:origLink></entry>

<entry>
    <title>gepub EPUB builder API</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/hG4ODpmur2k/gepub_epub_builder_api.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1353" title="gepub EPUB builder API" />
    <id>tag:www.skoji.jp,2012:/blog//2.1353</id>
    
    <published>2012-02-21T21:26:14Z</published>
    <updated>2012-02-21T21:32:53Z</updated>
    
    <summary>gepubにEPUB生成インタフェースを追加しようとしています(まだ実装してませ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        gepubにEPUB生成インタフェースを追加しようとしています(まだ実装してません!)。以下に、今の案での、使い方例を示します。基本的な考え方は
&lt;ol&gt;&lt;li&gt;まずアイテムを定義(titleとかfile)&lt;/li&gt;&lt;li&gt;続いてその属性を定義(alt, file_as, mime typeとか)&lt;/li&gt;&lt;/ol&gt; です。

ご意見いただけると嬉しいです。

 I'm planning to add EPUB builder interface to gepub(not implemented at all, yet). Here is my current idea how GEPUB::Builder interface looks like. Its style is: 
&lt;ol&gt;&lt;li&gt;define item (e.g. title, creator, etc) &lt;/li&gt;&lt;li&gt;set attributes to  last defined item (e.g. alt, file_as, mimetype, etc)&lt;/li&gt;&lt;/ol&gt; 

If you have any comment or suggestion, please tell me! 

&lt;h4&gt; simple example &lt;/h4&gt;
&lt;script src="https://gist.github.com/1878995.js?file=builder_simple_example.rb"&gt;&lt;/script&gt;

&lt;h4&gt; rather complicated example&lt;/h4&gt;
&lt;script src="https://gist.github.com/1878995.js?file=builder_sample.rb"&gt;&lt;/script&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/hG4ODpmur2k" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2012/02/gepub_epub_builder_api.html</feedburner:origLink></entry>

<entry>
    <title>gepub 0.6.1リリースしました: EPUB3対応、パース対応</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/4NLiwLM0Zs4/gepub_061_epub3.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1352" title="gepub 0.6.1リリースしました: EPUB3対応、パース対応" />
    <id>tag:www.skoji.jp,2012:/blog//2.1352</id>
    
    <published>2012-02-20T21:13:00Z</published>
    <updated>2012-02-20T22:14:14Z</updated>
    
    <summary>(English entry is here) 昨晩、gepub 0.6.1をリ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        (English entry is &lt;a href="http://www.skoji.jp/blog/2012/02/released_gepub_060_epub3.html"&gt;here&lt;/a&gt;)

昨晩、&lt;a href="http://github.com/skoji/gepub/"&gt;gepub 0.6.1をリリース&lt;/a&gt;しました。gepubは、rubyで書かれた汎用EPUBライブラリです。主にメタデータを取り扱うことを目的としています。

0.6の代表的な新機能は次のとおり。
&lt;ul&gt;&lt;li&gt;EPUB3対応。&lt;a href="http://idpf.org/epub/30/spec/epub30-publications.html"&gt;EPUB3 Publication&lt;/a&gt;で定義された全てのメタデータを扱えます(扱えないなら、それはバグです)&lt;/li&gt;&lt;li&gt;EPUBファイルのパース&lt;/li&gt;&lt;li&gt;新しいEPUB生成インタフェース&lt;/li&gt;&lt;/ul&gt;

詳しくは、&lt;a href="http://github.com/skoji/gepub/"&gt;github レポジトリ&lt;/a&gt;のREADMEやexamplesをどうぞ。

gepubはもともと、good-enough EPUB generatorを目指していました。が、「必要十分」を目標にすると、十分からほど遠いことになってしまう、ということにようやく気付きました。gepub0.5.0は「私には」必要十分でしたが、非常に貧弱な機能しかありませんでした。

あたらしいgepubは「汎用」EPUBライブラリを目指します。まだまだ汎用とはいえませんし、そもそもバグだらけですが、自分で使いながら改善していきたいなーと思っております。

        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/4NLiwLM0Zs4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2012/02/gepub_061_epub3.html</feedburner:origLink></entry>

<entry>
    <title>Released gepub 0.6.1: a generic EPUB library,  supports EPUB3</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/iMjqyT-joPk/released_gepub_060_epub3.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1351" title="Released gepub 0.6.1: a generic EPUB library,  supports EPUB3" />
    <id>tag:www.skoji.jp,2012:/blog//2.1351</id>
    
    <published>2012-02-20T14:10:00Z</published>
    <updated>2012-02-21T21:41:47Z</updated>
    
    <summary>Released new version of gepub. gepub is ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        Released &lt;a href="http://github.com/skoji/gepub"&gt;new version of gepub&lt;/a&gt;. gepub is a generic EPUB parser/generator for Ruby. Its main focus is to handle metadata in EPUB. 

New features in version 0.6.0 includes:
&lt;ul&gt;&lt;li&gt;supports EPUB3. It can(or should) handle every metadata defined in &lt;a href="http://idpf.org/epub/30/spec/epub30-publications.html"&gt;EPUB Publications 3.0&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Parse existing EPUB files.&lt;/li&gt;&lt;li&gt;New easy-to-use EPUB generating interface.&lt;/li&gt;&lt;/ul&gt;

Please check the readme and examples on the &lt;a href="http://github.com/skoji/gepub"&gt;github repository&lt;/a&gt; for more information.

The original goal of gepub was to be a  'good-enough' EPUB generator. But, if you set a goal like 'good-enough', it will be rearly enough. gepub 0.5.0 has very poor functionality on handling metadata, no parsing, and only supports EPUB2.0. 

Now, the new goal of the library is to be a 'generic' EPUB library.  It's not generic enough and not stable yet, but I'm willing to make it enough and stable.

&lt;div style="text-align: right;"&gt;KOJIMA Satoshi&lt;/div&gt;

        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/iMjqyT-joPk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2012/02/released_gepub_060_epub3.html</feedburner:origLink></entry>

<entry>
    <title>iBooks AuthorはEPUBオーサリングツールではない</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/4ClobYoV5d0/ibooks_authorepub.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1350" title="iBooks AuthorはEPUBオーサリングツールではない" />
    <id>tag:www.skoji.jp,2012:/blog//2.1350</id>
    
    <published>2012-01-20T09:25:00Z</published>
    <updated>2012-01-22T09:18:22Z</updated>
    
    <summary>Appleから電子書籍を作れるアプリ iBooks Author がでました。 ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        Appleから電子書籍を作れるアプリ iBooks Author がでました。

作った電書をibooks フォーマットという初耳のファイルに出力して中を眺めると、だいぶEPUBぽい。ということは、これはEPUBのオーサリングツールなんでしょうか? ibooksファイルとEPUBをざっくり比べてみました。

&lt;h4&gt;EPUBと同じところ&lt;/h4&gt;

&lt;ul&gt;&lt;li&gt;zipアーカイブである&lt;/li&gt;&lt;li&gt;mimetypeという名前のファイルがある&lt;/li&gt;&lt;li&gt;OEBPSで定義されたMETA-INF/container.xmlがある&lt;/li&gt;&lt;li&gt;opf2.0のファイルがある&lt;/li&gt;&lt;li&gt;ナビゲーション用にncxファイルがある&lt;/li&gt;&lt;li&gt;コンテンツは基本的にxhtmlである&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;EPUBと違うところ&lt;/h4&gt;

&lt;ul&gt;&lt;li&gt;拡張子がちがう&lt;/li&gt;&lt;li&gt;mimetypeの中身が違う。EPUBでは"application/epub+zip"、ibooksフォーマットでは"application/x-ibooks+zip"&lt;/li&gt;&lt;li&gt;opfのmanifestにapplication/x-ibooks+linehintsとかimage/x-thumb-jpegなんてmediatypeをもつitemがある(EPUBではmediatypeを限定していないので「違う」というのは正確ではないですが)&lt;/li&gt;&lt;li&gt;cssに-ibooks-というプレフィクスがついたものがある&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;違うフォーマットだよね&lt;/h4&gt;

拡張子が.epubじゃない上に、中のmimetypeがapplication/epub+zipじゃない。これは"ibooksフォーマットはEPUBじゃないよ"という意志の現れだとかんじました。これは拡張されたEPUBではなく、よく似ているけど全く別のフォーマットだと私は捉えました。

&lt;h4&gt;EPUBオーサリングツールじゃない&lt;/h4&gt;

つまり「iBooks AuthorはiPad iBooks専用電子書籍のオーサリングツール」なのであって、「変な拡張をしたEPUBを吐き出す困ったツール」ではないのだと思います。

もうちょっと乱暴に「電子書籍アプリの簡単作成ツール」といってしまってもよいのじゃないかなあ。

        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/4ClobYoV5d0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2012/01/ibooks_authorepub.html</feedburner:origLink></entry>

<entry>
    <title>GDD2011JP DevQuiz 私の書いた回答コードその2</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/-W1vaXGwLD8/gdd2011jp_devquiz_2.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1344" title="GDD2011JP DevQuiz 私の書いた回答コードその2" />
    <id>tag:www.skoji.jp,2011:/blog//2.1344</id>
    
    <published>2011-09-13T12:13:12Z</published>
    <updated>2011-09-13T21:57:57Z</updated>
    
    <summary>GDD DevQuiz、今年の本命はスライドパズル。拡張された15パズルです。ま...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="ソフトウェア開発" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        GDD DevQuiz、今年の本命はスライドパズル。拡張された15パズルです。まずはJavaで解いて、最後にgo言語で上積みしました。

&lt;a href="https://github.com/skoji/Gdd11jpSlidePuzzle_java"&gt;Java実装&lt;/a&gt;
&lt;a href="https://github.com/skoji/Gdd11jpSlidePuzzle_go"&gt;Go実装&lt;/a&gt;

問題文は以下のとおり。

&lt;blockquote&gt;幅が 3 マスから 6 マスで、高さが 3 マスから 6 マスのボードが与えられます。 各マスは、パネルが置かれているか、壁があるか、空白であるかのいずれかです。 パネルには 1 から 9 あるいは A から Z のいずれかの文字が書かれており、同じ文字の書かれたパネルは存在しません。 壁は 0 個以上存在し、空白のマスはただ 1 つだけ存在します。 例えば、次のようなボードが与えられます。ここで、壁は = で、空白は 0 で表されています。&lt;br /&gt;
&lt;br /&gt;
40=&lt;br /&gt;
215&lt;br /&gt;
=86&lt;br /&gt;
&lt;br /&gt;
空白は、上下左右のマスのパネルと入れ替えることができます。上のマスのパネルと入れ替えることを U とよび、同様に、下左右のマスのパネルと入れ替えることをそれぞれ D, L, R とよぶものとします。壁を空白やパネルと入れ替えることはできません。&lt;br /&gt;
パズルを解くというのは、与えられたボードの各マスを操作して、ゴール状態に持っていくことです。&lt;br /&gt;
ゴール状態とは、上の行から各行順番に、左から右に 1, 2, 3, 4, ..., 9, A, ..., Z という順にパネルが並び、最も右下のマスに空白が配置された状態のことです。壁のあるマスに対応するパネルは存在しません。例えば、左上のマスが壁であれば、ボード上に 1 のパネルは存在しません。&lt;br /&gt;
 (中略)&lt;br /&gt;
いま、使うことができる L, R, U, D それぞれの総数があたえられます。 この総数は全パズルで共有されています。 例えばあるパズルを解くために L を使い切ってしまった場合、 他のパズルでは L を使うことはできません。 この総数を超えないようにしながら、なるべくたくさんのパズルを解いてください。&lt;/blockquote&gt;

このパズル、5000問あるのです。そして一問が0.01点。100問といてやっと1点。手で解くことをある程度防ぐ設問ですね。

15パズルでの評価関数は各駒のゴールに対するマンハッタン距離合計を使うのがポピュラーな模様。その方向で、A*探索をRubyで試しに実装してみてあまりの遅さに音をあげてすぐにJavaにうつりました。

まずはメモリをじゃぶじゃぶつかって試みてみました。この時点で一晩で1000問程度回答。かなり厳しいです。

次はゴール状態から初期状態に向かってのA*探索を同時に走らせる双方向A*探索してみました。これでもくろみ通り、探索空間が小さくなってかなり成績があがり、3300問程度。その後はパラメータを少し調整し、メモリを増やすなどして、4300問まで頑張りました。

メモリ使いすぎで探索中にMacBook使えないのが辛くて、こんどはメモリをあんまり使わない反復深化深さ優先探索(IDDFS)を実装してみました。が、新たな解はほとんどみつけてくれません。

このあたりで飽きたのでgoでIDDFSを実装しなおして遊んでいたら「探索したノード数が一定数を超えたらその時点で評価値最良のノードひとつだけ残してそこから再度探索する」という乱暴な枝狩りをおもいつきました。これがそれなりに効果的で、最終的には4818問で終了しました。

この問題、30人近くが5000問すべてを解いています。そのひとたちは、そもそもメモリの使い方を最初からすごくしぼっていて、私の無駄遣い富豪プログラミングとは一線を画している様です。評価関数もいろいろ工夫されています。コード公開しているひと多数なので、後でじっくりみてみようと思ってます。

        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/-W1vaXGwLD8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2011/09/gdd2011jp_devquiz_2.html</feedburner:origLink></entry>

<entry>
    <title>GDD2011JP DevQuiz 私の書いた回答コードその1</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/HR5AusdSeCQ/gdd2011jp_devquiz_1_gdd11jp.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1343" title="GDD2011JP DevQuiz 私の書いた回答コードその1" />
    <id>tag:www.skoji.jp,2011:/blog//2.1343</id>
    
    <published>2011-09-13T03:38:57Z</published>
    <updated>2011-09-13T06:34:28Z</updated>
    
    <summary>今年の11月に、Google Developer's Dayというイベントがあり...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="ソフトウェア開発" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        今年の11月に、Google Developer's Dayというイベントがあります。
一昨年までは先着順で瞬間的にチケットがなくなっていたらしいです(参加してないので知りませんが)

昨年から参加者には基本的に「開発者向けクイズを解く」ことが課せられるようになりました。その得点上位のひとから順に、入場の権利が与えられるのです。開発者向けイベントなのだから、合理的ですね。

昨年にひきつづき、今年も挑戦しました。各問題のために書いたコードをここにだしておきます。まずは、簡単なほうの問題5つのうち、私がといた3つから。

(この5つの問題は、2つだけ点数にカウントされるのです)

&lt;h4&gt;Web Game&lt;/h4&gt;
&lt;blockquote&gt;シンプルな神経衰弱ゲームです。カードはクリックすることでめくることができます。全 64 セットを解くことで問題クリアとなります。&lt;/blockquote&gt;

色が違うだけのカードが、最大1024枚出てくる神経衰弱。これを手でやろうなんていうプログラマはほとんどいないでしょう。

親切なことに、「ヒント」としてGoogle Chromeの機能拡張の例が出ています。これをベースに使えばとても簡単。JavaScriptでDOMさわってクリックして色チェックして覚えて、というだけOKです。

manifestを含むコードはここに置いています。
&lt;a href="https://gist.github.com/1213056"&gt;https://gist.github.com/1213056&lt;/a&gt;

&lt;h4&gt;Go!&lt;/h4&gt;

&lt;blockquote&gt;Go 言語で、PNG 画像を入力として受け取り、その画像が何色使っているかを返す関数func CountColor(png io.Reader) intを実装してください。PNG 画像は io.Reader 型で与えられます。なお、入力の画像は R G B の各色の値が 0 から 255 までの 256 段階のいずれかであり、不透明（アルファチャンネルの値が常に 255）であることが保証されています。&lt;/blockquote&gt;

これも、goのimage/pngライブラリを使えば実に簡単です。

&lt;script src="https://gist.github.com/1213072.js?file=gopng.go"&gt;&lt;/script&gt;

&lt;h4&gt;一人ゲーム&lt;/h4&gt;

&lt;blockquote&gt;数がいくつか与えられます。なるべく少ない手数で数を全て取り除いてください。あなたは 1 手で、&lt;br /&gt;
- 全ての数を半分にする（端数は切り捨て）&lt;br /&gt;
- 5 の倍数 (0 を含む) を全て取り除く&lt;br /&gt;
のどちらかの操作をすることができます。&lt;/blockquote&gt;

簡単簡単、とおもったらちょっとだけひっかかりました。

「5で割りきれてかつ2で割りきれない数が残っている」ときに、その数を含めて5の倍数を取り除くのが良い場合と、良くない場合があるのです。

結局、こんなコード書きました。幅優先探索。

&lt;ol&gt;&lt;li&gt;キューから取り出した数セットの要素すべて5でわりきれれば終了&lt;/li&gt;&lt;li&gt;要素のなかに5で割り切れるが2で割りきれないものがあったら、5の倍数を取り除いたものをキューに入れる&lt;/li&gt;&lt;li&gt;全要素を2で割ったものをキューに入れる&lt;/li&gt;&lt;/ol&gt;

&lt;script src="https://gist.github.com/1213057.js?file=solve.rb"&gt;&lt;/script&gt;

        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/HR5AusdSeCQ" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2011/09/gdd2011jp_devquiz_1_gdd11jp.html</feedburner:origLink></entry>

<entry>
    <title>ウクレレ コードおぼえるアプリを作ってみた</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/PRIQ7yXRZ-I/post_11.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1342" title="ウクレレ コードおぼえるアプリを作ってみた" />
    <id>tag:www.skoji.jp,2011:/blog//2.1342</id>
    
    <published>2011-06-17T23:27:37Z</published>
    <updated>2011-06-17T23:42:42Z</updated>
    
    <summary>半年ほど前からウクレレ習っています。 我が師匠は突然「じゃあC9は?」と質問し、...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="webapp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        半年ほど前からウクレレ習っています。

我が師匠は突然「じゃあC9は?」と質問し、右往左往する我々をみてほくそ笑んでいるのです。ほくそ笑まれるだけでも悔しいので、コードをおぼえるためのWebアプリを作ってみました。

&lt;a href="http://www.skoji.jp/ukuchord"&gt;UkuChord&lt;/a&gt;

タップ(またはクリック)すると答えがでて、さらにタップすると次の問題が出ます。表示の向きを変えることもできます。まだコードのデータが不十分ですし、間違いもあるかもしれません。

iPhone向けです。PC/MacのSafariやChromeでも動作します。おそらくFirefoxでもじょうぶ。IE8では動かないはずです。Androidでも動くそうです。

iPhoneでは、「ホーム画面に登録」すると、本物のアプリみたいにふるまいます。タップすると単独のアプリであるかのように、Safariとは別に起動します。

コードは上のサイトから見放題ですが、一応githubにも入れました。つっこみご指導いただけると、とっても嬉しいです。

&lt;a href="https://github.com/skoji/ukuchord.js"&gt;https://github.com/skoji/ukuchord.js&lt;/a&gt;

実はHTML5なアプリをはじめて作ったのですが、あんまりにも簡単にできて驚きましたよ。
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/PRIQ7yXRZ-I" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2011/06/post_11.html</feedburner:origLink></entry>

<entry>
    <title>環境設定メモ: RVM + Ruby 1.9.2 + Rails3</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/JOp431J90Us/_rvm_ruby_192_rails3.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1333" title="環境設定メモ: RVM + Ruby 1.9.2 + Rails3" />
    <id>tag:www.skoji.jp,2011:/blog//2.1333</id>
    
    <published>2011-01-05T07:20:26Z</published>
    <updated>2011-01-05T07:31:28Z</updated>
    
    <summary>MacBook (SnowLeopard)でRails3の環境をつくりはじめまし...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="開発環境" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        MacBook (SnowLeopard)でRails3の環境をつくりはじめました。

&lt;h4&gt;readlineのインストール&lt;/h4&gt;
readline入れとかないとirbで日本語使えないということなので、readline-6.1をインストール。単純にconfigure/make/sudo make install。

&lt;h4&gt;RVMのインストール&lt;/h4&gt;
  &lt;a href="http://rvm.beginrescueend.com/"&gt;http://rvm.beginrescueend.com/&lt;/a&gt;の指示に基本的には従う、が、scripts/installが実行されなかったので手動で実行する。

 .bash_profileに、次の追記をする。

&lt;pre&gt; [[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; source "$HOME/.rvm/scripts/rvm" &lt;/pre&gt;

&lt;h4&gt;Ruby 1.9.2をインストールする&lt;/h4&gt;

&lt;pre&gt;rvm install ruby-1.9.2 --with-readline-dir=/usr/local &lt;/pre&gt;

&lt;h4&gt;Railsをインストール&lt;/h4&gt;

&lt;pre&gt;
rvm use 1.9.2
gem install rails
&lt;/pre&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/JOp431J90Us" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2011/01/_rvm_ruby_192_rails3.html</feedburner:origLink></entry>

<entry>
    <title>電書部マークアップvalidatorを作ってみた</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/ddF0MxX9sG4/ydml_validator.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1330" title="電書部マークアップvalidatorを作ってみた" />
    <id>tag:www.skoji.jp,2010:/blog//2.1330</id>
    
    <published>2010-11-12T09:07:10Z</published>
    <updated>2010-11-12T10:46:19Z</updated>
    
    <summary>電書部の技術班。今年はこればっかりやっていた気がする。 gihyo.jpで、電書...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="Ruby" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        電書部の技術班。今年はこればっかりやっていた気がする。

gihyo.jpで、電書部の技術解説の記事「&lt;a href="http://gihyo.jp/dev/serial/01/ebook-distribution-server"&gt;電書部技術班，電子書籍配信サーバーに挑む&lt;/a&gt;」がはじまっています。その中でEPUB変換まわりの原稿書きました。

&lt;a href="http://gihyo.jp/dev/serial/01/ebook-distribution-server/0004"&gt;第4回　電書用マークアップYDMLを使った原稿作成と，YDMLパーサ&lt;/a&gt;
&lt;a href="http://gihyo.jp/dev/serial/01/ebook-distribution-server/0005"&gt;第5回　電書原稿からEPUBをつくりだす&lt;/a&gt;

何気ないふうを装いつつも、少しどきどきしながらYDMLという言葉を出しました。でもどこからも何の突っ込みもなくてそれはそれでちょっとさみしいものです。

YDMLパーサ記事について「なんでXMLパーサでやらないの?」という趣旨のつっこみがtwitterで入りました。思い起こすとそもそもパーサジェネレータ作った理由は
&lt;ul&gt;&lt;li&gt;YDMLとは違うマークアップを目論んでいた&lt;/li&gt;&lt;li&gt;DSLぽいものをRubyで作ってみたかった&lt;/li&gt;&lt;li&gt;とにかく作ってみたかった&lt;/li&gt;&lt;/ul&gt;そんなことでした。が、何をぼけていたのか、テキスト混合ノードはXML的にはwell-formedじゃないからという恥ずかしい説明をしてしまいました。恥ずかしいのでその経緯はリンクしません。(tweet消してはいないので探せばみつかります)

XMLでのvalidateくらいやってみるかと思い立ってやってみましたら、RelaxNGの勉強からはじめたのに1時間くらいで出来てしまい愕然としました。

YDMLを少しだけ改変(ルートのエレメント定義して、書式が変なタグを修正)してwell-formed XMLにしたものにたいして、RelaxNG compact syntaxでスキーマを定義し、それをcompactじゃないsyntaxに変換したうえでNokogiri::XML::RelaxNGに喰わせています。

ちゃんとvalidateはできるのですが、validじゃなかったときのエラーメッセージが分かりづらい。場合によっては分かりづらいを通り越して意味不明なので実用性低めです。でもせっかく作ったのでgithubにあげました。

&lt;a href="https://github.com/skoji/ydml_simple_validator"&gt;https://github.com/skoji/ydml_simple_validator&lt;/a&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/ddF0MxX9sG4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/11/ydml_validator.html</feedburner:origLink></entry>

<entry>
    <title>gepub 0.1.1 をリリースしました。</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/fJ9yoY95jCQ/gepub_v01.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1325" title="gepub 0.1.1 をリリースしました。" />
    <id>tag:www.skoji.jp,2010:/blog//2.1325</id>
    
    <published>2010-07-07T03:30:00Z</published>
    <updated>2010-07-07T15:30:21Z</updated>
    
    <summary>必要十分を目指すrubyで書いたepubライブラリ・gepubのversion ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        必要十分を目指すrubyで書いたepubライブラリ・gepubのversion 0.1.1をリリースしました。はじめてminor versionが1になったよ。gem install gepub で降ってくるはず。

ソースはこちら。&lt;a href="http://github.com/skoji/gepub"&gt;http://github.com/skoji/gepub&lt;/a&gt;

主な変更点。

&lt;ol&gt;&lt;li&gt;インタフェースをいちから書き直して、itemを生成してbookに追加するというモデルにしました。だいぶシンプルになってる、といいなあ。&lt;/li&gt;&lt;li&gt;圧縮前epubのディレクトリを作成せずに、直接epubを生成するようにしました&lt;/li&gt;&lt;li&gt;ソースとなるデータをファイルではなくIOオブジェクトで渡すようにしました&lt;/li&gt;&lt;/ol&gt;

IOオブジェクトで渡すようになったのは地味な変更だけど、地味に使いやすいんじゃないかと思っております。


これまでのGEPUB::GeneratorではなくGEPUB::Bookをつかってください。

GEPUB::Generatorは0.2.0のタイミングで削除する予定です。使い方はgithubに置いてあるexample.rbをご参照ください。例は少しずつ充実させます。

この後は、

&lt;ul&gt;&lt;li&gt;メタデータをもうちょっとちゃんと書き込めるようにする&lt;/li&gt;&lt;li&gt;インタフェースがまだおかしい気がするのでみなおす&lt;/li&gt;&lt;li&gt;XMLライブラリをNokogiriにする&lt;/li&gt;&lt;/ul&gt;

などなどを考えていますが、予定は気まぐれに変わります。こうなるといいなー、なんていうのがあればお知らせください。ないだろうけど。

&lt;a href="http://densho.in/"&gt;電子書籍部&lt;/a&gt;でつかっているテキストto EPUBのコードも遠からず公開する予定です。
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/fJ9yoY95jCQ" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/07/gepub_v01.html</feedburner:origLink></entry>

<entry>
    <title>EPUB生成ライブラリを作ってみた</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/F0yW8Njwd5M/epub_creator.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1324" title="EPUB生成ライブラリを作ってみた" />
    <id>tag:www.skoji.jp,2010:/blog//2.1324</id>
    
    <published>2010-05-04T02:46:40Z</published>
    <updated>2010-05-05T08:22:53Z</updated>
    
    <summary>(2010/5/5 : githubにあげました)  EPUB生成のライブラリを...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="gepub" />
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        &lt;p&gt;(2010/5/5 : githubにあげました)&lt;/p&gt;

&lt;p&gt; EPUB生成のライブラリをrubyで作ってみました。ブツはこちら。&lt;a href="http://github.com/skoji/gepub"&gt;http://github.com/skoji/gepub&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;コンテンツ指定のファイルは/content.opfに固定 &lt;/li&gt;
&lt;li&gt;identifierのschemeはURLに固定&lt;/li&gt;
&lt;li&gt;identifierの名前はBookIDに固定&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;などなどいろいろ決め打ちにしています。&lt;/p&gt;

&lt;p&gt;利用例はこんなです。&lt;/p&gt;

&lt;pre&gt;
require 'rubygems'
require 'gepub'
require 'fileutils'


epubdir = "testepub" # epubのコンテンツを置くディレクトリ
title = "samplepub"  # epubのファイル名


FileUtils.rm_rf(epubdir)
FileUtils.mkdir(epubdir)

# epub メタデータ作成
epub = GEPUB::Generator.new(title)
epub.author="the author"
epub.publisher="the publisher"
epub.date = "2010-05-03"
epub.identifier = "http://www.skoji.jp/testepub/2010-05-03" # identifierはURLのみ

# サンプルのコンテンツ生成。通常は、別途作成しているはず。
[ 'coverpage', 'chapter1', 'chapter2' ].each {
  |name|
  File.open(epubdir + "/#{name}.html", 'w') {
    |file|
    file &amp;lt;&amp;lt; &amp;lt;&amp;lt;EOF
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;sample #{name} &amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
  &amp;lt;h1&amp;gt;#{name}&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;here comes the contents for #{name}&amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
EOF
  }
}

# "coverpage"は表紙を想定。従って目次のデータには入れない。
# spineに入れた順にリーダでは表示される。
epub.addManifest('cover', "coverpage.html", 'application/xhtml+xml')
epub.spine.push('cover')


epub.addManifest('chap1', "chapter1.html", 'application/xhtml+xml')
epub.spine.push('chap1')
epub.addNav('chap1', 'Chapter 1', "chapter1.html")

epub.addManifest('chap2', "chapter2.html", 'application/xhtml+xml')
epub.spine.push('chap2')
epub.addNav('chap1', 'Chapter 2', "chapter2.html")

# この他にcssとかイメージがあれば、それもManifestへ追加する。
# cssやイメージはspineやaddNavへの追加は不要。

# container.xml/contents.opf/toc.ncxなどのファイルを生成
epub.create(epubdir)

# 生成したディレクトリから、epubファイル作成
epub.create_epub(epubdir, ".")
&lt;/pre&gt;


&lt;p&gt;サンプル書いて気付きましたが、EPUB::Creatorというクラスの役割がぶれてるなあ。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/F0yW8Njwd5M" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/05/epub_creator.html</feedburner:origLink></entry>

<entry>
    <title>EPUB入門メモ</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/YbXapSkr2qI/epub.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1323" title="EPUB入門メモ" />
    <id>tag:www.skoji.jp,2010:/blog//2.1323</id>
    
    <published>2010-04-07T21:11:51Z</published>
    <updated>2010-04-08T03:57:23Z</updated>
    
    <summary>EPUBに関するメモ。 リンク 元締め International Digita...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="電子書籍" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        EPUBに関するメモ。

&lt;h4&gt;リンク&lt;/h4&gt;

元締め
&lt;a href="http://www.idpf.org/"&gt;International Digital Publishing Forum&lt;/a&gt;

EPUB仕様日本語訳をしている、ろすさんのサイト
&lt;a href="http://lost_and_found.lv9.org/"&gt; 厨二病棟&lt;/a&gt;

わかりやすげなまとめ
&lt;a href="http://www.hxa.name/articles/content/epub-guide_hxa7241_2007.html"&gt;Epub Format Construction Guide&lt;/a&gt;

ePubのメタデータはダブリンコア
&lt;a href="http://dublincore.org/documents/2004/12/20/dces/"&gt;dublin core metadata element &lt;/a&gt;

仕様でかいし、自前でつくるときはvalidatorがないと不安です
&lt;a href="http://www.threepress.org/document/epub-validate/"&gt;epub validator&lt;/a&gt;

Hello world的な、達人出版会の記事
&lt;a href="http://d.hatena.ne.jp/tatsu-zine/20100324/1269451084"&gt;はじめてのEPUB&lt;/a&gt;

&lt;h4&gt;その他&lt;/h4&gt;

コンテンツのXHTMLには、langやxml:langを指定しておく。そうしないとAdobe Digital Editionでは日本語文字化けする(validatorに怒られるのだけど...)

zipでつくるときは、こんなんがよい。

&lt;pre&gt;
zip -0X testbook.epub mimetype
zip -9rXD testbook.epub -x mimetype
&lt;/pre&gt;

mimetypeは非圧縮(-0)で先頭に。他のコンテンツは圧縮してよし(-9)。属性は不要なので-X。ディレクトリは保存しなくてよいので-D。など。


        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/YbXapSkr2qI" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/04/epub.html</feedburner:origLink></entry>

<entry>
    <title>The Art of Unit Testing</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/PHxZmBwzuL0/the_art_of_unit_testing.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1319" title="The Art of Unit Testing" />
    <id>tag:www.skoji.jp,2010:/blog//2.1319</id>
    
    <published>2010-01-28T03:50:49Z</published>
    <updated>2010-03-09T07:58:43Z</updated>
    
    <summary>最近読んだ"The Art of Unit Testing: With Exam...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="ソフトウェア開発" />
    
        <category term="本" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        &lt;p&gt;最近読んだ"&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1933988274/kaimonolog-22/ref=nosim/" name="amazletlink" target="_blank"&gt;The Art of Unit Testing: With Examples in .net&lt;/a&gt;"という本がとっても良かった。Unit Testをはじめようとしているひと、運用で悩んでいる人は今すぐ読め! ってくらい良かった。&lt;/p&gt;

&lt;p&gt;この本は、ユニットテストの基本的な考え方と基本的な書き方から始まります(Part 1)。&lt;/p&gt;&lt;p&gt;そして、ユニットテストで必須のテクニックである依存性の取り除きかたについて語られます(Part 2)。&lt;/p&gt;&lt;p&gt;その上で、ユニットテストをどう配置し走らせるか、どうやってリファクタするか、どんなふうに自動ビルドで運用するか、など実際に運用するときの考え方や方法論を解説します。そしてユニットテストのコードで陥りがちな罠(ひとつのテストにAssertion多すぎ、テストの名前が分からん、Setupに詰め込みすぎ、実行順序に依存、などなど)とその回避基準も明示します(Part 3)。&lt;/p&gt;&lt;p&gt;さらに、組織へのユニットテストを導入するにはどうするか(新しいことには抵抗がつきものです)を説明し、「タフ」な質問( 「これはどのくらい時間をとるの?」「これでほんとに効果がでるの?」など)にどう応えるか、回答例のカタログとともに説明します。最後の章では所謂"レガシーコード"に、どのようにユニットテストを適用していくのか、という話題に切り込みます(Part 4)。&lt;/p&gt;

&lt;p&gt;上記で要約したとおり、「ユニットテスト」の話題に関する1から10までをカバーしてる本です。これだけ盛りだくさんで、厚さは300ページ程度と薄いのもよいです。でも内容は決して薄くないですよ。これからユニットテストを学ぶひとが最初から通読するのにはとても向いていますし、ある程度実践してるけど、いろいろうまくいっていない人(それは私)にも読み応えあります。&lt;/p&gt;
&lt;p&gt;テスト駆動開発ベースの本や、JUnitの使い方の本はいままでもいろいろありましたが、ユニットテストの話題を網羅した、適切なサイズの本はこれまでなかったのではないかと思います。&lt;/p&gt;

&lt;p&gt;"&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0131495054/kaimonolog-22/ref=nosim/" name="amazletlink" target="_blank"&gt;xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series)&lt;/a&gt;"や、"&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798116831/kaimonolog-22/ref=nosim/" name="amazletlink" target="_blank"&gt;レガシーコード改善ガイド (Object Oriented SELECTION)&lt;/a&gt;"を読む前に読むのもよいのではないかと推測します(推測なのは、どっちも未だ読んでいないので...)&lt;/p&gt;

&lt;p&gt;翻訳されていないのが惜しいです。もし誰も版権とっていないのならば、翻訳したいなー、と本気で思っています。アンオフィシャルに蠢き中ですが、既に翻訳はじまってるよ、などの情報ご存じの方いらっしゃったら教えてください。&lt;/p&gt;

&lt;p&gt;そして、ひろってくださる出版社募集中。&lt;/p&gt;

&lt;p&gt; 
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;npa=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=kaimonolog-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=1933988274" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/PHxZmBwzuL0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/01/the_art_of_unit_testing.html</feedburner:origLink></entry>

<entry>
    <title>アレグザンダー祭りで印象に残った一言など</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/kaimonolog-b/~3/_6NrzOwZvE8/alexander.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.skoji.jp/mtbin/mt-atom.cgi/weblog/blog_id=2/entry_id=1316" title="アレグザンダー祭りで印象に残った一言など" />
    <id>tag:www.skoji.jp,2010:/blog//2.1316</id>
    
    <published>2010-01-24T10:40:58Z</published>
    <updated>2010-01-24T10:34:00Z</updated>
    
    <summary>先日、オブジェクト俱楽部のイベントアレグザンダー祭りに行ってきました。もりだくさ...</summary>
    <author>
        <name>こじま</name>
        <uri>http://www.skoji.jp/movabletype/</uri>
    </author>
    
        <category term="イベント" />
    
        <category term="ソフトウェア開発" />
    
        <category term="休むに似たり" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.skoji.jp/blog/">
        &lt;p&gt;先日、オブジェクト俱楽部のイベント&lt;a href="http://www.objectclub.jp/event/2010alexander/"&gt;アレグザンダー祭り&lt;/a&gt;に行ってきました。もりだくさんすぎて、未だに消化しきれていないのですが、一点強烈に印象に残ったのは、メインスピーカのJim Coplien氏による、おおむねつぎのような発言です。&lt;/p&gt;

&lt;blockquote&gt;
俺たちは有用性が証明されたかどうかでなく、流行や気持ちよさ、直観、「のみ」で技術や方法論を追いかけている(ことが多い)
&lt;/blockquote&gt;

&lt;p&gt;今週になってからtwitterでの議論の中で、&lt;a href="http://twitter.com/RoyOsherove/status/8023363413"&gt;こんな発言&lt;/a&gt;がありました:&lt;/p&gt;

&lt;blockquote&gt;
if your only learning comes from asking other people what *they* think - how can you claim to personally know anything?
&lt;/blockquote&gt;

&lt;span class="note"&gt;(このひとは、&lt;a href="http://www.amazon.co.jp/gp/product/1933988274?ie=UTF8&amp;tag=kaimonolog-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=1933988274"&gt;The Art of Unit Testing: With Examples in .net&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=kaimonolog-22&amp;l=as2&amp;o=9&amp;a=1933988274" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;
の著者です。良書なので近々紹介します&lt;/span&gt;)

&lt;p&gt;これは開発関連のツールに関連した議論の中で出てきた発言です。意図は、先のJim Coplienの発言と同じだと、私は理解しました。&lt;/p&gt;

&lt;p&gt;
肝に銘じます。
&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/kaimonolog-b/~4/_6NrzOwZvE8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.skoji.jp/blog/2010/01/alexander.html</feedburner:origLink></entry>

</feed>

