<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Memorize</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/" />
    <link rel="self" type="application/atom+xml" href="http://www.memorize-being.net/atom.xml" />
    <id>tag:www.memorize-being.net,2007-08-25://2</id>
    <updated>2010-02-23T13:29:56Z</updated>
    <subtitle>Mac使い・だめげー好き・日曜プログラマな情報系学生のblog。レビューや技術情報など</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.21-ja</generator>

<entry>
    <title>FreeBSD 8.0-RELEASEのZFSブートでハマる</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2010/02/23/a-problem-on-zfsroot-boot-at-freebsd-80-release.html" />
    <id>tag:www.memorize-being.net,2010://2.71</id>

    <published>2010-02-23T11:24:06Z</published>
    <updated>2010-02-23T13:29:56Z</updated>

    <summary>このたび、ホームサーバ用にとIntel Atom D510搭載のマザーボードIntel D510MOを購入し、ZFS上にFreeBSDを導入しました。そのときのトラブルおよび解決法をメモしておきます。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="FreeBSD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="技術情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="freebsd" label="FreeBSD" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gpt" label="GPT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="zfs" label="ZFS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>このたび、ホームサーバ用にとIntel Atom D510搭載のマザーボードIntel D510MOを購入し、ZFS上にFreeBSDを導入しました。そのときのトラブルおよび解決法をメモしておきます。</p>]]>
        <![CDATA[<p>大凡のインストール法は<a href="http://wirednoize.net/freebsd/index.php?FreeBSD%208.0RC2%20amd64%20pure%20ZFS%20install">FreeBSD 8.0RC2 amd64 pure ZFS install - PukiWiki</a>の通りで、また別のマザー(MSI K9A2 Platinum)ではうまくいったのですが、D510MOでは、再起動後</p>
 <pre><code>No bootable device -- insert boot disk and press any key
</code></pre>
<p>と出てブートできない事態が発生しました。</p>
<p>当初gpartコマンドのbootcodeサブコマンドがうまくいかなかったのかと思いFixitで再試行しましたが結果はかわらず。</p>
<p>調べてみると、<a href="http://groups.google.co.jp/group/mailing.freebsd.fs/browse_thread/thread/fa0172fed82892c7">google groupの投稿</a>に同様の問題のスレッドがありました。<a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=133493">Problem Report</a>によると、EFI以外の環境(BIOS)でのGPTパーティショニングの場合、旧来のMBRパーティションテーブル（いわゆる基本パーティション）でラップされるため、MBRパーティションテーブルで、該当するエントリをアクティブにせねばならないとのことです。</p>
<p>よってMBR専用パーティショニングツールfdiskを使って、</p>
<pre><code># fdisk -a ad4</code>（ドライブジオメトリがad4の場合）</pre>
<p>により、該当パーティション(EFI GPT)をアクティブにします。なお、私の場合memstick.imgを使ったのですがデフォルトではgeom_mbr.koが読み込まれていなかったようなので、/dist chroot下で、</p>
<pre><code># geom mbr load</code></pre>
 <p>を実行、上記fdiskを実行しました。</p>
<p>fdiskによると"Geom: not found "ad4""のような旨のメッセージが現れましたが、無視して再起動すると、無事インストールしたハードディスクからブート出来ました。</p>]]>
    </content>
</entry>

<entry>
    <title>Intel Mac版BOINCでCUDAを有効にする</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2009/11/18/enable-cuda-for-intel-mac-boinc.html" />
    <id>tag:www.memorize-being.net,2009://2.70</id>

    <published>2009-11-18T11:10:17Z</published>
    <updated>2009-11-18T11:11:05Z</updated>

    <summary> 正確なバージョン履歴は分かりませんが、Intel Macにおいて、現在配布されているBOINC 6.10.17ではnVidia CUDAデバイスを搭載していても、メッセージに&quot;No usable G...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="Mac OS X" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="技術情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="boinc" label="BOINC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cuda" label="CUDA" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[ <p>正確なバージョン履歴は分かりませんが、Intel Macにおいて、現在配布されているBOINC 6.10.17ではnVidia CUDAデバイスを搭載していても、メッセージに"No usable GPUs found"と表示されてしまうことがあります。これを修正して、BOINCが正常にCUDAデバイスを認識するようにできます。</p>
<p>なお、これはアプリケーションの改造の一種なので、自己責任でお願いいたします（おそらく、失敗してもBOINCの再インストールで直るかとは思います。）</p>]]>
        <![CDATA[<p>これは、<strong>BOINC本体は64ビットバイナリを含むUniversal Binary</strong>なのにもかかわらず、<strong>現行(2.3.1a)CUDAドライバが64ビットバイナリに対応していない</strong>ことが原因です。</p>
<p>Mac OS Xの実行ファイルローダはUniversal Binaryから、自機にとって最も適したアーキテクチャの実行ファイルを取り出して実行します。このとき、Core 2 Duo以降のMacは64ビットに対応しているため、x86_64アーキテクチャを優先します。一方、.frameworkなど動的ライブラリは、実行中アプリケーションと同じアーキテクチャのものしかロードできません。よって、BOINC起動時にx86_64バイナリが実行されると、CUDAのi386バイナリがロードできなくなってしまうのです。</p>
<p>これを直すには、BOINCのバイナリをi386のみ動作するようにします。具体的にはTerminalで以下のようにコマンドを実行します。</p>
<pre><code>$ cd /Application/BOINCManager.app/Contents/Resource/</code></pre>
<pre><code>$ sudo mv boinc boinc_old</code></pre>
<pre><code>$ sudo lipo -extract i386 boinc_old -output boinc</code></pre>
<pre><code>$ sudo chown boinc_master:boinc_master boinc</code></pre>
<p>これによりBOINCの実体である実行ファイルboincからi386バイナリのみを取り出して、かわりに使用させることが出来ます。これでBOINCがCUDAデバイスを認識するようになるかと思います。</p>
<p>ただし、知る限り、Macに対応したCUDA利用プロジェクトが見当たりません...ご存知の型はお教えいただけたら幸いです。</p>]]>
    </content>
</entry>

<entry>
    <title>デジカメ購入</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2009/07/05/bought-a-digital-camera.html" />
    <id>tag:www.memorize-being.net,2009://2.65</id>

    <published>2009-07-05T09:11:09Z</published>
    <updated>2009-07-05T09:11:15Z</updated>

    <summary>お久しぶりです。生きています。初のデジカメを購入しました。シグマのDP2です。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="カメラ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dp2" label="DP2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カメラ" label="カメラ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>お久しぶりです。生きています。初のデジカメを購入しました。<a href="http://www.sigma-photo.co.jp/">シグマ</a>の<a href="http://www.sigma-dp.com/DP2/jp/index.html">DP2</a>です。</p>]]>
        <![CDATA[<p>コンパクトデジカメで焦点距離24.2mm F2.8の標準レンズを搭載し、RAW撮影にも対応しています。（仕様は<a href="http://www.sigma-dp.com/DP2/jp/specification.html">http://www.sigma-dp.com/DP2/jp/specification.html</a>）</p>
<p>仕様を見ると、このカメラは他と比べあまりよいものに見えづらいです。カメラ性能の指標ともなる『画素数』や『光学ズーム』、『手ぶれ補正』などの機能が劣っており、また、仕様からは分からないものの、オートフォーカス合焦時間、画像記録時間も他に比べ長いと言われています（僕は他を余りよく知らないので何とも言えませんが...。）</p>
<p>このカメラの、最大の特長はFoveon X3というイメージセンサでしょう。Foveon X3センサは１ピクセルでRGB三色を同時にセンシング出来、またその面積は一眼レフに近い大きさです。</p>
<p>っと書いてみましたが僕はカメラ・光学は素人なので...とりあえず撮影してみた写真を掲載しておこうと思います。</p>
<p><a href="http://www.flickr.com/photos/39520300@N02/3686845268/" title="Green field by cotton00, on Flickr"><img src="http://farm4.static.flickr.com/3568/3686845268_75ee529d79.jpg" alt="Green field" height="111" width="167" /></a>
<a href="http://www.flickr.com/photos/39520300@N02/3686845912/" title="Statue by cotton00, on Flickr"><img src="http://farm3.static.flickr.com/2479/3686845912_0fd358b5c7.jpg" alt="Statue" height="111" width="167" /></a></p>
<p>このカメラの面白い所は、むしろシンプルな機能である所だと思います。携帯電話付属のカメラなどではAE当たり前、オートフォーカスあるいはパンフォーカス、ととても撮りやすくはありますが、あまり撮像そのものを意識する機会が少なかったように思います。一方DP2では（上級機では当たり前なのかもしれませんが）、絞り(F値)と露出補正値を元にシャッタースピードが決まる絞り優先AE、シャッタースピードと露出補正値を元に絞りが決まるシャッター優先AE、ひいてはマニュアル露出と、『絞りとシャッターによる露光』を意識することができます。また、オートフォーカスのみならずマニュアルフォーカスも可能で、意図的なピント調節がダイアルで出来るというのもかえって面白いと感じました。</p>
<p>個人的には、工夫と手間次第で色々な表現が出来そうなカメラだと感じています。あとは写真の腕と表現センスを、ですね...</p>]]>
    </content>
</entry>

<entry>
    <title>IMKitでSocial IMEのMac版を作ろうとしてた</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2009/02/28/socialime-on-mac-with-imkit.html" />
    <id>tag:www.memorize-being.net,2009://2.64</id>

    <published>2009-02-27T15:59:27Z</published>
    <updated>2009-02-27T16:58:12Z</updated>

    <summary> Social IMEというWebサービスがあります。こちらは「ユーザー参加型の新しい日本語入力ソフトウェア」というもので、Mac OS XのLeopardで搭載されたInput Method Kit...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="Objective-C" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="objectivec" label="Objective-C" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="socialime" label="Social IME" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[ <p><a href="http://www.social-ime.com/">Social IME</a>というWebサービスがあります。こちらは「ユーザー参加型の新しい日本語入力ソフトウェア」というもので、Mac OS XのLeopardで搭載されたInput Method Kitフレームワークを使ってMac版を開発しようと思ったのですが...</p>]]>
        <![CDATA[<p>すでにありました、Mac版。（汗）</p>
<p><a href="http://www7b.biglobe.ne.jp/%7Elifeaether/SocialIM/index.html">Social IM(beta)</a></p>
<p>いやー、作っている最中にInput Method Kitについて調べていたところ、たまたま見つけてしまいました。しかも、僕が作ろうとしていたクライアントも"SocialIM"という名前でした...もっとも、僕のは現状では変換結果問い合わせ部とローマ字をひらがなにする点しか出来ておりませんでしたが...</p>
<p>とりあえず、破れかぶれで<a href="http://www.memorize-being.net/x/dlcnt.php?type=dl&amp;path=../releases/socialim.tar.gz">Xcodeのプロジェクト</a>置いておきます。<strong>ただし、現状では完動する状態にはありません。ご注意ください。</strong>SIMInputControllerはIMKInputControllerを実装するクラスで、文字変換の中枢になっています。SIMWebAPIはSocial IMEのWebAPIのフロントエンドクラスで、"http://www.social-ime.com/api/?string=~~"の形式の呼び出しのみ実装していました。また、defaultRomanExpression.plistはユーザの文字入力をひらがな表記に変換する辞書となっています。</p>
<p>正直な所、後述するNumberInputからほとんど進歩していないような有様ですけれども、今後MacでIMEを開発される方の参考に、少しでもなれば幸いです...</p>
<p>ADCにおけるInput Method Kitのサンプルコードである<a href="http://developer.apple.com/samplecode/NumberInput_IMKit_Sample/index.html">NumberInput</a>、および<a href="http://park15.wakwak.com/%7Econcordia/cocoa_break/">Cocoa Break!様</a>の<a href="http://park15.wakwak.com/%7Econcordia/cocoa_break/dev/src/ADCSamples/NumberInput_IMKit_Sample/index.html">NumberInputの解説</a>を参考にさせていただきました。</p>]]>
    </content>
</entry>

<entry>
    <title>OpenCL概要：ホストとデバイス、カーネルについて</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/12/11/opencl-abstracts-kernel.html" />
    <id>tag:www.memorize-being.net,2008://2.63</id>

    <published>2008-12-10T15:19:40Z</published>
    <updated>2008-12-15T07:03:17Z</updated>

    <summary>まだ処理系も無いのにフライング気味にOpenCL仕様書の私的解釈を述べてみたいと思います。非常に部分的な説明ですがご容赦ください。例の如く、勘違いや問題等あればご指摘いただければ幸いです。 ...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="OpenCL" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gpgpu" label="GPGPU" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opencl" label="OpenCL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>まだ処理系も無いのにフライング気味にOpenCL仕様書の私的解釈を述べてみたいと思います。非常に部分的な説明ですがご容赦ください。例の如く、勘違いや問題等あればご指摘いただければ幸いです。</p> ]]>
        <![CDATA[<h4>ホストとデバイス、コマンドキューについて</h4>
<p>OpenCLにおいて、OpenCL APIを呼び出し計算を指示する方をホスト(host)、計算を行う装置をデバイス(device)と呼びます（仕様書ページ18）。ホストではOpenCLリソースを管理するコンテキストを生成し、さらにホスト側からOpenCLを通じてデバイス操作（計算を実行する、メモリ操作をする、同期をとる）を調停するためのコマンドキューを生成します（仕様書ページ21）。コマンドキューはインオーダ実行、アウトオブオーダ実行ともにサポートしています（仕様書ページ22）。</p>
<h4>カーネルについて</h4>
<p>OpenCLでは、C言語でいうところの関数のような処理単位をカーネル(kernel)と表現します。しかし、カーネルは並列で実行される前提であり、特定の計算の一部分のみを計算するように記述すべきでしょう。これはデバイスで並列処理を行う為です。</p>
<p>OpenCLにおいて、カーネルはワークアイテム(work-item)として、N次元のインデックス空間(index space)で（例えば２次元で4,5と指定すれば4×5の計20アイテムが）実行されます。そしてワークアイテムにはグローバルIDが設定されます。これはC言語における配列と同様に0からサイズ-1の範囲で、かつ各インデックス空間次元ごとの直積のようになるので、先述の例ではそれぞれのワークアイテムに対し(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3),(2,0),(2,1),(2,2),(2,3),(3,0),(3,1),(3,2),(3,3),(4,0),(4,1),(4,2),(4,3)が割り当てられます。</p>
<p>さらにOpenCLにはワークグループ(work-group)という概念があります。これは複数ワークアイテムをグループ化するものです。このとき各ワークグループにはワークグループID、ワークグループ内ワークアイテムにはローカルIDが割り当てられます。</p>
<p>例えばワークアイテムが２次元で6×3=18だけ実行し、ワークグループ内ワークアイテム数を2×3=6とした場合、グローバルIDとワークグループIDおよびローカルIDの対応は、</p>
<table>
<tbody><tr><th>グローバルID</th><th>ワークグループID, ローカルID</th></tr>
<tr><td>(0,0)</td><td>(0,0),(0,0)</td></tr>
<tr><td>(0,1)</td><td>(0,0),(0,1)</td></tr>
<tr><td>(0,2)</td><td>(0,0),(0,2)</td></tr>
<tr><td>(1,0)</td><td>(0,0),(1,0)</td></tr>
<tr><td>(1,1)</td><td>(0,0),(1,1)</td></tr>
<tr><td>(1,2)</td><td>(0,0),(1,2)</td></tr>
<tr><td>(2,0)</td><td>(1,0),(0,0)</td></tr>
<tr><td>(2,1)</td><td>(1,0),(0,1)</td></tr>
<tr><td>(2,2)</td><td>(1,0),(0,2)</td></tr>
<tr><td>(3,0)</td><td>(1,0),(1,0)</td></tr>
<tr><td>(3,1)</td><td>(1,0),(1,1)</td></tr>
<tr><td>(3,2)</td><td>(1,0),(1,2)</td></tr>
<tr><td>(4,0)</td><td>(2,0),(0,0)</td></tr>
<tr><td>(4,1)</td><td>(2,0),(0,1)</td></tr>
<tr><td>(4,2)</td><td>(2,0),(0,2)</td></tr>
<tr><td>(5,0)</td><td>(2,0),(1,0)</td></tr>
<tr><td>(5,1)</td><td>(2,0),(1,1)</td></tr>
<tr><td>(5,2)</td><td>(2,0),(1,2)</td></tr>
</tbody></table>
<p>となります（仕様書ページ20, 21）。</p>
<p>すなわち、カーネルのOpenCLプログラムではグローバルIDおよびローカルIDをもとに、全く同じプログラムながらも並列に異なる計算を行うことができるのです。</p>
<h4>カーネルの実行</h4>
<p>kernelを実行するためのホスト側OpenCL APIがclEnqueueNDRangeKernel関数です。これはカーネル実行コマンドをコマンドキューにエンキューします（仕様書103ページ）。</p>
<pre><code>cl_int clEnqueueNDRangeKernel (cl_command_queue command_queue, cl_kernel kernel, cl_uint  work_dim, const size_t *global_work_offset, const size_t *global_work_size, const size_t *local_work_size, cl_uint num_events_in_wait_list,  const cl_event *event_wait_list, cl_event *event);</code></pre>
<p>各引数について説明します。command_queueにはこのカーネルをエンキューするコマンドキューを、kernelはカーネルを指定します。</p>
<p>work_dimには先述のインデックス空間の次元数を指定します。現状の仕様では1か2か3かのいずれかのみとなっているようです。</p>
<p>global_work_offsetはインデックス空間におけるグローバルIDの開始インデックスを指定する...ようですが、現在の仕様ではNULL固定です。</p>
<p>global_work_sizeにはインデックス空間各次元におけるワークアイテム数を配列で指定します。例えばwork_dimが2で、4×5だけカーネルを実行する場合、size_t w_size[] = {4,5}のような配列を与えます。同様にlocal_work_sizeはワークグループ内のワークアイテム数を指定します。NULLの場合OpenCL実装が適当にカーネルをワークグループに分割します。</p>
<p>num_events_in_wait_listおよびevent_wait_listには、このコマンドを実行する上で待機したいイベントの数および配列のアドレスを指定します。待機する必要がない場合、0およびNULLを指定します。</p><p>
</p><p>eventは出力用引数で、このカーネル実行そのものを示すイベントを返します。</p>
<p>clEnqueueNDRangeKernel関数を簡略化したものがclEnqueueTask関数です。これは単一ワークアイテムのみのカーネル実行コマンドをエンキューします（仕様書106ページ）。</p>
<pre><code>cl_int clEnqueueTask (cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event);</code></pre>
<p>引数はclEnqueueNDRangeKernelのものと等価で、動作そのものもclEnqueueNDRangeKernelにおいてwork_dimを1、global_work_offsetをNULLにglobal_work_size[0]およびlocal_work_size[0]を1としたものと等価です。 </p>
<h4>ベクトル加算プログラムの説明</h4>
<p>実例として、任意次元のベクトルの加算をOpenCLで考えてみます。これは<a href="http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf">http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf</a>の"Vector Addition"にも示されています。</p>
<pre><code>__kernel void vec_add (__global const float *a, 
                       __global const float *b,  
                       __global       float *c) 
{ 
	int gid = get_global_id(0); 
	c[gid] = a[gid] + b[gid]; 
}
</code></pre>
<p>このカーネルvec_addはほぼC言語における関数として解釈して差し支えありません。つまり、float型配列a,b,cを受けとり、変数gidを元に、aの要素およびbの要素の加算結果をcの要素に代入します。</p>
<p>ここでポイントは、変数gidにget_global_id(0)の戻り値を代入している点です。この関数get_global_idは仕様書の"6.11.1 Work-Item Functions"（ページ159）に定義されており、現在のワークアイテムのグローバルIDのうち、引数の次元の値を返します。すなわちこのカーネルのワークアイテムが１次元でn個実行された場合、get_global_id(0)の戻り値はそれぞれのワークアイテムで0からn-1の固有の数値となります。</p>
<p>以上の事からvec_addカーネルを同一引数で、１次元n個だけ並行に実行する事でn次元ベクトルの加算が実現できるのです。</p>
<h4>終わりに</h4>
<p>ここではカーネルについてのみ記述しましたが、Latest SC08 Overviewを見る限り、実際に計算を行うにはメモリ構成やメモリ入出力について、またコンテキスト生成やバッファ生成、プログラムビルドなどの前処理や、計算結果の取得のような後処理が必要なようです。この記事では触れませんでしたが今後別記事にて記述するかもしれません。</p>
<dl>
<dt>参考文献</dt>
<dd>OpenCL 1.0 Specification (<a href="http://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf">http://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf</a>)</dd>
<dd>Latest SC08 Overview (<a href="http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf">http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf</a>)</dd>
</dl>]]>
    </content>
</entry>

<entry>
    <title>OpenCL 1.0 仕様書が公開</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/12/10/opencl10-spec-released.html" />
    <id>tag:www.memorize-being.net,2008://2.62</id>

    <published>2008-12-10T11:21:35Z</published>
    <updated>2008-12-10T15:04:02Z</updated>

    <summary>2008年12月9日、ついにKhronos GroupからOpenCL(Open Computing Language)1.0の仕様書が公開されました。（プレスリリース：http://www.khro...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="OpenCL" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="テクニカル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gpgpu" label="GPGPU" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opencl" label="OpenCL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>2008年12月9日、ついにKhronos GroupからOpenCL(Open Computing Language)1.0の仕様書が公開されました。（プレスリリース：<a href="http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/">http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/</a>）</p>]]>
        <![CDATA[<p><a href="http://www.memorize-being.net/2008/06/10/can-opencl-take-a-standard.html">以前取り上げていた</a>OpenCLの仕様書がようやく公開されました。KhronosにおけるOpenCLのサイトは<a href="http://www.khronos.org/opencl/">http://www.khronos.org/opencl/</a>に、仕様書(PDF)は<a href="http://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf">http://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf</a>にあります。</p>
<p>302ページにも及ぶ巨大文書ですので、把握し切れていないのですが、これを元に以前から公開されていたスライド(<a href="http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf">http://www.khronos.org/opencl/presentations/OpenCL_Summary_Nov08.pdf</a>)のサンプルコードを読んでみたいと思います。</p>
<p>また、仕様書やスライドをざっと見る限りOpenGLとの連携が重視されているようで、OpenGLにおけるテクスチャやレンダバッファを扱うことができそうです(<a href="http://www.khronos.org/registry/cl/api/1.0/cl_gl.h">cl_gl.h</a>)。また、仕様書の６．１．３ではimage2d_tやimage3d_tなど２次元／３次元イメージを示す組み込み型も用意していることが示されています。</p>
<p>現状、予定されているOpenCL実装はMac OS X 1.6 Snow Leopardのみで、他システムサポートは未定です。しかし各OS,グラフィックスチップメーカが対応を進めれば、OpenCLとOpenGLでプラットフォーム独立のGPGPU環境、および可視化環境が出来るのではないでしょうか。</p>]]>
    </content>
</entry>

<entry>
    <title>I&apos;ve in BUDOKAN 2009チケットを購入</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/11/16/bought-a-ticket-ive-in-budokan-2009.html" />
    <id>tag:www.memorize-being.net,2008://2.61</id>

    <published>2008-11-16T06:45:28Z</published>
    <updated>2008-12-10T15:05:03Z</updated>

    <summary>先日、予約していたI&apos;ve in BUDOKAN 2009(公式サイト、ファンの方の応援サイト)のチケットを購入しました。アニメイト特典によりCDも入手しました。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="雑記" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="音楽" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ive" label="I&apos;ve" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="武道館" label="武道館" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>先日、予約していたI've in BUDOKAN 2009(<a href="http://budokan2009.prpage.jp/">公式サイト</a>、<a href="http://www.ivesound.jp/budokan/index.html">ファンの方の応援サイト</a>)のチケットを購入しました。アニメイト特典によりCDも入手しました。</p>]]>
        <![CDATA[<blockquote cite="http://budokan2009.prpage.jp/" title="I've in BUDOKAN 2009 公演概要について"><p>1月2日、日本武道館『I'VE in BUDOKAN 2009』のゲスト第一弾を近日発表予定！</p>
<p>今回の公演チケットに同梱されるCD "HYDIAN WAY" は、彼らとのコラボレーションを意識して制作されたインストゥメント・サウンドであり、彼らの持つテイストとI'veテイストが融合されたミクスド・チューンに仕上がっている！</p>
</blockquote>
<p><cite><a href="http://budokan2009.prpage.jp/">I've in BUDOKAN 2009 公式サイト</a></cite>より</p>
<p>とのことで、これがその"HYDIAN WAY"です。</p>
<a href="http://www.memorize-being.net/2008/11/16/081116-142531a.jpg">
<img alt="HYDIAN WAY" src="http://www.memorize-being.net/2008/11/16/081116-142531a.jpg" class="mt-image-left" style="margin: 0pt 20px 20px 0pt; float: left;" height="175" width="196" /></a>
<p>特典CD"HYDIAN WAY"のジャケット写真</p>
<p style="clear: left;">上記引用文のとおり「ゲストとのコラボレーション」だそうですが、聴いてみたところ、<strong>残念ながら自分には誰だか分かりません</strong>でした...</p>
<p>一方、曲名"HYDIAN WAY"の意味を調べようと思ったのですが、英和辞書では見つけられませんでした。Web検索した所、スターウォーズに関する文脈で出てきましたが、関係あるんですかね...？（英：<a href="http://starwars.wikia.com/wiki/Hydian_Way">http://starwars.wikia.com/wiki/Hydian_Way</a>、日：<a href="http://ja.starwars.wikia.com/wiki/%E3%83%8F%E3%82%A4%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3%E3%83%BB%E3%82%A6%E3%82%A7%E3%82%A4">http://ja.starwars.wikia.com/wiki/%E3%83%8F%E3%82%A4%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3%E3%83%BB%E3%82%A6%E3%82%A7%E3%82%A4</a>）</p>
<dl>
<dt>関連リンク集</dt>
<dd>
<ul>
<li><a href="http://ive.mu/">I've 公式サイト(LOW TRANCE ASSEMBLY)</a></li>
<li><a href="http://budokan2009.prpage.jp/">I've in BUDOKAN 2009 公式サイト</a></li>
<li><a href="http://www.ivesound.jp/budokan/index.html">I've in BUDOKAN 2009 特設応援サイト(I've Sound Explorer×I've Search)</a></li>
</ul>
</dd>
</dl>

]]>
    </content>
</entry>

<entry>
    <title>OpenGLのカメラ位置行列の計算</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/08/16/calc-camera-matrix-at-opengl.html" />
    <id>tag:www.memorize-being.net,2008://2.60</id>

    <published>2008-08-16T06:28:51Z</published>
    <updated>2008-08-16T06:39:35Z</updated>

    <summary>OpenGLにおいて、視点を設定する為によくgluLookAt()関数が用いられます。ですがモデルビュー行列をアプリケーション内部で持つ為、同様の計算をしてみます。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="テクニカル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="opengl" label="OpenGL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="数学" label="数学" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>OpenGLにおいて、視点を設定する為によくgluLookAt()関数が用いられます。ですがモデルビュー行列をアプリケーション内部で持つ為、同様の計算をしてみます。</p>]]>
        <![CDATA[<p>OpenGLはかなり低レベルな3D描画ライブラリで、各種変換行列を変化させてポリゴンを出力するのが基本です。例えば射影行列（Projection）やモデルビュー行列（Model-View）などです。</p>
<p>ですが、それではあまりに面倒だという事で、GLU内にはヘルパー関数が用意されています。例えばgluPerspective()関数は射影行列を設定する事で透視図法を実現します。</p>
<p>同様にgluLookAt()関数はモデルビュー行列に「カメラ」のような設定をする事が出来ます。具体的には引数に１．視点位置ベクトル、２．対象位置ベクトル、３．「上」を示す方向ベクトルを与える事でモデルビュー行列を設定します。</p>
<p>一般的にはこれらの関数をそのまま用いて問題ないのですが、4x4行列をアプリケーション自身で管理したいときには厄介になります。射影行列やモデルビュー行列はOpenGL内部で管理されるため直接各要素にアクセスする事ができない為です。glGetFloatvでモデルビュー行列の中身を取得する事も出来ますが、どうにも二度手間な気もするので、gluLookAtを自前で計算してみます。</p>
<p>はじめに<a href="http://d.hatena.ne.jp/ousttrue/20070514/1179147922">gluLookAtをglLoadMatrixで置き換えてみる - 三次元日誌</a>を参考に実装したのですが、当環境では<strong>どうやらカメラのX、Y方向の移動が考慮されない</strong>ようでしたので、独自に改良してみました。</p>
<p>先述ページでは視点位置ベクトルをpos、対象位置ベクトルをtarget、方向ベクトルをdirとして、</p>
 <span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="x, y, zのベクトル定義" src="http://www.memorize-being.net/2008/07/18/vecdefine.png" class="mt-image-none" style="" height="138" width="165" /></span>
<p>と置き、</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="変更前の行列" src="http://www.memorize-being.net/2008/07/18/mat1.png" class="mt-image-none" style="" height="101" width="330" /></span>
<p>としています。こうすると先述の通りうまくいかなかったため、変更した結果、</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="変更後の行列" src="http://www.memorize-being.net/2008/07/18/mat2.png" class="mt-image-none" style="" height="101" width="363" /></span>
<p>としました。ただし、<strong>数学的根拠がある訳ではなく経験的です。</strong>GLUの仕様の方も調べましたが、どのような行列にするかという定義が無いようでした。どなたか詳しい方がおりましたらご指摘いただければ幸いです。</p>
]]>
    </content>
</entry>

<entry>
    <title>Flex 3 SDKで&quot;pong&quot;もどきを作りつつ、AIRでのゲームについて考えてみた。</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/06/27/make-a-game-from-flex3-sdk.html" />
    <id>tag:www.memorize-being.net,2008://2.59</id>

    <published>2008-06-27T12:41:48Z</published>
    <updated>2008-06-27T13:04:30Z</updated>

    <summary> Flex 3の練習がてら、Adobe AIR向けに伝統的コンピュータゲームであるpongの劣化版を製作してみました。折角なんでソースコードおよびバイナリを公開しておきたいと思います。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Flex/ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="actionscript" label="ActionScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="air" label="AIR" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flex" label="Flex" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mxml" label="MXML" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[ <p>Flex 3の練習がてら、Adobe AIR向けに伝統的コンピュータゲームであるpongの劣化版を製作してみました。折角なんでソースコードおよびバイナリを公開しておきたいと思います。</p>]]>
        <![CDATA[<p>以下にソースコード、AIRパッケージを示します。UNIX互換系ならばmakeでいけるかと思います。途中自己署名のためパスワードを２度要求されますが、両方同じ適当な文字列を入力してください。</p>
<dl>
<dt><a href="http://www.memorize-being.net/2008/06/27/pong-air.tar.gz">pong-air.tar.gz</a></dt>
<dd>(ソースコード, tar+gz, 30,589byte, SHA1 : 3b27215e214c255e8700ff17938ca5609c4c835f)</dd>
<dt><a href="http://www.memorize-being.net/2008/06/27/pong.air">pong.air</a></dt>
<dd>(AIRパッケージ, 281,379byte, SHA1 : 4ff9b4905c6209322caad6a35fda2e4b0a5c8207)</dd>
</dl>

<a href="http://www.memorize-being.net/2008/06/27/pong-ss.png"><img src="http://www.memorize-being.net/2008/06/27/pong-ss.png" alt="pongもどき" class="mt-image-left" style="margin: 0pt 20px 20px 0pt; float: left;" height="224" width="334" /></a>
<p>左のバーがプレイヤー、右のバーがコンピュータです。↑キーで上へ、↓キーで下へ移動出来ます。</p>
<div style="clear: left;"></div>
<p><strong>得点・勝敗判定ありません。コンピュータ側は確実に失敗しません。</strong>そういった点でゲームとしては成り立ちませんので、むしろ一種のサンプルやバリエーションとしてお考えいただければ幸いです。</p>
<p>また当環境では、自機の操作中、各オブジェクト（ボールやバー）の動作が遅くなる現象が確認されています。現在原因不明なため、わかり次第追記します。</p>
<h4>実装についての解説</h4>
<p>このAIRアプリケーションは単一SWF"pong.swf"のみからなっています。またこのSWFは"pong.mxml"により生成されています。</p>
<p>さらにpong.mxmlについて見ていきます。特徴はUIコンポーネント系のタグが１つもないこと、WindowedApplicationタグのlayout属性がabsoluteになっていることです。</p>
<p>単なるグラフィックスでしかない為、ボールやバー、コートはUIComponentのインスタンスで表現しています。一方、UIComponentはMXMLタグで記述出来ない為、applicationCompleteイベントのハンドラ、applicationCompleteHandlerメソッドで生成しています。さらに、今回はボールやバーなど、座標を特定出来るオブジェクトにする必要がある為、absolute指定となっています。</p>
<p>このゲームでは、ゲーム制作では常套手段となっている、フレームベースの制御を行っています。具体的にはflash.utils.Timerを使い20msごとにイベントを発生させ、そのハンドラであるmovingメソッドでフレーム計算を行っています。</p>
<h4>その他</h4>
<p>元来FlexやMXMLはUIを開発する為の技術ですので、不得意とすることを無理矢理やらせて見た形です。しかし実際のところ、このアプリケーションそのものはつまらないゲームでしかありません。もっともそれは私がブラッシュアップしていない為なのですが...</p>
<p>FlashはWeb上のミニゲームで多くの実績があります。ですが現在、AIRのゲームは（例えば<a href="http://creative-g.mints.ne.jp/tto/">点つなぎオンライン</a>や<a href="http://store1.adobe.com/cfusion/exchange/index.cfm?from=1&amp;o=asc&amp;exc=24&amp;event=productHome&amp;s=5&amp;l=-1&amp;cat=268">Adobe AIR Marketplace Games</a>）少数しか確認しておりません。これはAIRプラットフォームそのもの、そのコミュニティ全般やゲーム開発コミュニティが成熟していないことが原因の一つにあるような気がします。AIRでは既存SWFをそのままデスクトップアプリケーションへ持ってくる事が出来ますが、<strong>それだけではAIRという価値を発揮出来ない</strong>と思っています。</p>
<p>ブラウザからデスクトップへ、というのは重大な変化です。現在各所でAIRによるWebアプリケーションのフロントエンドが開発されていますが、これらはそのWebアプリケーションが、ブラウザでは不便に感じるような規模に成長した為であると思います。</p>
<p>一方ミニゲームの場合、それそのものが一般的に小規模、やりたいときに開いて少し遊ぶといった形かと思います。このようなアプリケーションの場合、ダウンロードし、ゲーム用の記憶領域を確保してまでプレイしたいのか、という事が問題になります。そして、それこそがFlashのミニゲームを単純にAIRに持ってくる事が出来ないと思う理由です。</p>
<p>ただし、Flashそのものに、例えば最先端3Dゲームのようなキャパシティはありません。しかし、BlazeDSのプッシュ配信、AIRではローカルファイルの読み書きなど一定の環境が整っています。ですのでビジュアルで魅了するのではなく、しかしシンプルに遊ぶのではない、<strong>やり込める中規模ゲーム</strong>が向いているように思います。</p>
<p>もっとも前述の通り、まだまだAIRが成熟しておらず、独自のノウハウは十分に蓄積されたとはいえません。またFlashについてもWebプラグインの時代が長く、Webブラウザという前提や先入観が拭いきれていないのが現状だと思います。</p>
<p>しかも現在では、何かをするには何々という開発環境、ということはなく、各開発環境で殆ど何でも出来るようになっています。つまり無理にAIRを選ぶ必要は無い、代替はいくらでもある、
ということです。そしてプラットフォームの進化の方向は、それを使用するカスタマーにより左右されることと思います。</p>
<p>ですので、今回はゲームについてでしたが、それに限らず色々なAIRのバリエーションが出てくる事を期待しています。そしてより盛り上がり、浸透したプラットフォームへと成長してほしいなと思います。</p>]]>
    </content>
</entry>

<entry>
    <title>OpenCL(!)はスタンダードとなるか</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/06/10/can-opencl-take-a-standard.html" />
    <id>tag:www.memorize-being.net,2008://2.57</id>

    <published>2008-06-10T07:52:17Z</published>
    <updated>2008-12-10T15:04:16Z</updated>

    <summary>先日、米西海岸時刻６月９日にAppleのCEOであるSteve JobsはWWDCにおいてキーノートスピーチを行いました。例年通りAppleの新製品のプレビューが行われましたが、その中でもGPGPU用...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="C言語／C++" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Mac OS X" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OpenCL" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="テクニカル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gpgpu" label="GPGPU" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opencl" label="OpenCL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>先日、米西海岸時刻６月９日にAppleのCEOであるSteve JobsはWWDCにおいてキーノートスピーチを行いました。例年通りAppleの新製品のプレビューが行われましたが、その中でもGPGPU用のオープンな技術"OpenCL"に注目してみます。</p>]]>
        <![CDATA[<p>どうやらGoogle等で検索しても公式の情報がないようなので、アップルジャパンによるニュースリリースを引用させていただきます。</p>
<blockquote cite="http://www.apple.com/jp/news/2008/jun/10leopard.html" title="アップル、Mac OS X Snow Leopardをデベロッパにプレビュー">
<p>Snow Leopardはまた、Open Computing Language (OpenCL) でモダンなハードウェアへのサポートをさらに拡大します。OpenCLは、これまでグラフィックスアプリケーションでしか利用できなかった膨大なギガフロップスものGPU計算能力をどのアプリケーションでも利用できるようにします。OpenCLはC言語をベースとしており、オープンスタンダードとして提案されています。</p>
</blockquote>
<p><cite><a href="http://www.apple.com/jp/news/2008/jun/10leopard.html">アップルジャパン　プレスリリース</a></cite>より</p>
<p>また、米Appleのサイトには既にSnow Leopardのページが作成されているので、そこからも引用させていただきます。</p>
<blockquote cite="http://www.apple.com/macosx/snowleopard/" title="Apple - Mac OS Leopard - Snow Leopard">
<p>OpenCL</p>
<p>Another powerful Snow Leopard technology, OpenCL (Open Compute Library), makes it possible for developers to efficiently tap the vast gigaflops of computing power currently locked up in the graphics processing unit (GPU). With GPUs approaching processing speeds of a trillion operations per second, they're capable of considerably more than just drawing pictures. OpenCL takes that power and redirects it for general-purpose computing.</p>
</blockquote>
<p><cite><a href="http://www.apple.com/macosx/snowleopard/">Apple - Mac OS Leopard - Snow Leopard</a></cite>より</p>
<p>どちらもほぼ同じ内容で、要するところGPUによる汎用計算、すなわちGPGPU(General Purpose GPU)のための技術であるという記述で、それ以上技術的な詳細は描かれていません。</p>
<p>さて、GPGPUそのものは新たな発想ではなく、GPUは以前から高性能ベクトルプロセッサとして注目されていました。最近のGPUはプログラマブルシェーダーを持っており、テクスチャや頂点などグラフィクスデータの代わりに任意の数値を与え、計算させる事となります。</p>
<p>GPGPUとしての実装方法はいくつかあり、GPUに対する所謂アセンブリ、グラフィクスライブラリを使用した場合、NVIDIA社のCg、OpenGLではGLSL、DirectXではHLSLなどがあります。</p>
<p>ただし、上記の実装は本来グラフィクス用である、という前提があり、プログラマはデータをテクスチャ等に変換した後、プログラムに与える必要があります。GPGPUとして利用する場合にもグラフィクスプログラミング特有のデータ構造を利用しなければならないという事です。一方、GPGPUに特化した手法も登場しており、NVIDIA社のCUDAが代表的です。今回の"OpenCL"も同様のものでしょう。</p>
<p>一方、Wikipediaで<a href="http://ja.wikipedia.org/wiki/CUDA">CUDAの項</a>を見るとOpenCLとCUDAは同一であるという記述があります。自分はWikipedia以外のソースを見つける事が出来なかったため真偽は不明です。（ソースをご存知の方はお知らせくださると幸いです。）どちらにせよ、現状ではまだ大きな課題があるように思います。</p>
<p>OpenCL=CUDAであると仮定すると、</p>
<ul>
<li>現状のCUDAはNVIDIA製のGPUおよびGPGPUでしか動作しない。MacBook Pro、Mac ProおよびハイエンドのiMacでは実行可能だが、MacBookやローエンドiMacはIntel製やATI製のGPUなので、各製造元が対応ドライバを開発しなければならない。</li>
</ul>
<p>OpenCL≠CUDAであると仮定すると、</p>
<ul>
<li>Mac OS Xに搭載される事となるが、他のプラットフォームではどうなるか。各OSベンダやGPUベンダを巻き込まなければならない。特にNVIDIAは既にCUDAを持っているので、あらたにOpenCLに対応するのか。</li>
</ul>
<p>どちらのケースでも要点は同じで、OS／GPU／デベロッパなど、各ベンダを巻き込んで盛り上げていき、スタンダードとなれるかどうか、となります。恐らく各社間でしがらみのようなものもあるかと思いますので一筋縄ではいかないような気がします。</p>
<p>しかしGPGPUはコンシューマ向けでも活用がある技術です。オープンスタンダードを目指す、とのことなので参入し易くなるような土壌作りを期待したいと思います。</p>
<p>2008/06/11追記</p>
<p>米AppleのMac OS X Snow Leopardのページが一部訂正されていましたので再度引用させていただきます。</p>
<blockquote cite="http://www.apple.com/macosx/snowleopard/" title="Apple - Mac OS Leopard - Snow Leopard">
<p>OpenCL</p>
<p>Another powerful Snow Leopard technology, OpenCL (Open Computing Language), makes it possible for developers to efficiently tap the vast gigaflops of computing power currently locked up in the graphics processing unit (GPU). With GPUs approaching processing speeds of a trillion operations per second, they're capable of considerably more than just drawing pictures. OpenCL takes that power and redirects it for general-purpose computing.</p>
</blockquote>
<p><cite><a href="http://www.apple.com/macosx/snowleopard/">Apple - Mac OS Leopard - Snow Leopard</a></cite>より</p>
<p>OpenCLがOpen Compute Libraryか、Open Computing Languageかが各ページで不安定でしたが、Open Computing Languageが正しいようです。</p>
<p>また、Wikipediaで<a href="http://ja.wikipedia.org/wiki/OpenCL">OpenCLの項</a>が出来ていました。</p>]]>
    </content>
</entry>

<entry>
    <title>UNIX(Mac OS X)におけるFlex 3 SDKによるAIRプログラミング　環境設定</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/05/21/flex3sdk-air-environsettings-on-macosx-or-unix.html" />
    <id>tag:www.memorize-being.net,2008://2.56</id>

    <published>2008-05-20T16:08:20Z</published>
    <updated>2008-05-20T16:11:56Z</updated>

    <summary>このエントリでFlex 3 SDKを導入してAIRプログラミングを開始してみたのですが、意外と包括的なイントロが無いようなので記しておこうと思います。Mac OS Xを除く各種UNIX系では現状対応す...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Flex/ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="テクニカル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="adobe" label="Adobe" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="air" label="AIR" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flex" label="Flex" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p><a href="http://www.memorize-being.net/2008/02/29/introduce-for-flex-sdk-and-air.html">このエントリ</a>でFlex 3 SDKを導入してAIRプログラミングを開始してみたのですが、意外と包括的なイントロが無いようなので記しておこうと思います。Mac OS Xを除く各種UNIX系では<strong>現状対応するAIRはない</strong>のでAIRは導入出来ませんが、Flex 3 SDKの設定はMac OS Xでの場合とほぼ同一です。</p>]]>
        <![CDATA[<h4>前提</h4>
<p>解説する上で、いくつか前提を設けさせていただきたいと思います。ただし、この前提が関係するところでは適宜、この条件以外の場合についても解説します。</p>
<ul>
<li>プラットフォームはMac OS X (10.5)。</li>
<li>システム全体ではなく、特定ユーザのみで使用する。今回はflexuserユーザが使用する。</li>
<li>プログラミングは任意のエディタで行い、コマンドラインでコンパイル、パッケージングする。</li>
</ul>
<h4>ソフトウェアの入手</h4>
<p>始めにプログラミング環境および実行環境を整える必要があります。以下に開発環境となるFlex 3 SDK(AIR SDK含む)、実行環境であるAdobe AIRの入手先を示します。</p>
<dl>
<dt>Flex 3 SDK</dt>
<dd><a href="http://www.adobe.com/go/flex3_sdk">http://www.adobe.com/go/flex3_sdk</a></dd>
<dt>AIR</dt>
<dd><a href="http://get.adobe.com/air/">http://get.adobe.com/air/</a></dd>
</dl>
<p>Flex 3 SDKはページ下部にある"Flex 3.0 SDK"の項でダウンロード出来ます。"Adobe Flex 3.0 SDK License"に同意されましたらダウンロードしてください。同様にAIRも該当ページの"Download now"でダウンロード出来ます。</p>
<h4>インストール</h4>
<p>Flex 3 SDKはPKZIP形式で圧縮されていますので何らかのアーカイバで展開します。Flex 3 SDKはJavaで記述されていてマルチプラットフォームとなっており、システム固有のインストーラのようなものはありません。ですので用途に応じて自由に設置してかまいません。複数ユーザで共用する場合、Unix系であれば/usr/以下とか、WindowsであればC:\以下とかでしょうか。</p>
<p>今回はプラットフォームがMac OS Xで、ユーザflexuserのみ限定です。ホームディレクトリは/Users/以下にありますので、Flex 3 SDKを/Users/flexuser/flex_3_sdk/に設置します。Linuxであれば/Usersを適宜/homeに読み替えれば問題ないと思います。</p>
<p>次にAIRをインストールします。今回はMac OS X上という事で、Macintosh版のディスクイメージを想定します。ダウンロードしたこのディスクイメージをマウントすると"Adobe AIR Installer.app"というインストーラがありますのでこれを実行し指示に従えばよいです。</p>
<h4>パスの設定</h4>
<p>Flex 3 SDKはコマンドラインのコンパイラです。通常のswfを生成するコンパイラはmxmlc、AIR用のswfを生成するコンパイラはamxmlcというコマンド名です。今回はシェル起動時にそのまま使えるようパスを通します。名前の衝突等、問題があれば必要ありません。</p>
<p>今回はホームディレクトリの.profileを編集してパスを設定します。他のUNIX環境によっては違う可能性もあります。.profileのどこかに以下の行を追加します。</p>
<pre>export PATH=/Users/flexuser/flex_sdk_3/bin:$PATH</pre>
<p>上記はMac OS X 10.4/10.5で標準のシェルであるbashの場合で、シェルが異なれば記法が異なります。例えばcshであれば、</p>
<pre>setenv PATH /Users/flexuser/flex_sdk_3/bin:$PATH</pre>
<p>のようになります。Windowsの場合はマイコンピュータのプロパティの方で設定可能かと思います。</p>
<p>.profileは単なるシェルスクリプトで、編集しただけでは適用されません。以下の行をターミナルで実行します。</p>
<pre>$ ./.profile</pre>
<p>きちんと実行パスが設定されたかどうかを確認する為に、試しにmxmlcを実行します。"Error: a target file must be specified"のような旨が出力されれば成功です。</p>
<h4>AIRアプリケーション生成準備</h4>
<p>適当なMXMLを用意し、AIRアプリケーションを生成してみます。例として以下にhello.mxmlというMXMLコードを示します。</p>
<pre><code>&lt;?xml version="1.0" encoding='utf-8'?&gt;
&lt;mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"&gt;
	&lt;mx:Text text="Hello." /&gt;
	&lt;mx:Button label="Button1" id="button1" /&gt;
	&lt;mx:Button label="Button2" id="button2" /&gt;
	&lt;mx:Button label="Button3" id="button3" /&gt;
&lt;/mx:WindowedApplication&gt;
</code></pre>
<p>hello.mxmlは単純なアプリケーションで、ウィンドウの中に"Hello."と書かれたラベルおよび３つのボタンを表示するだけです。XMLとして階層的に記述されています。</p>
<p>次に、このhello.mxmlを<strong>AIR用に</strong>コンパイルします。次のコマンド、</p>
<pre>$ amxmlc hello.mxml</pre>
<p>を実行すると、hello.swfが生成されるかと思います。ちなみに、AIR用ではなくWeb上などでの単なるFlashと同様のものを生成する場合、</p>
<pre>$ mxmlc hello.mxml</pre>
<p>を実行します。</p>
<p>次に、AIRアプリケーションの場合、そのアプリケーションの情報を記述するADF(Application Descriptor File)とよばれるXMLファイルを用意する必要があります。例として以下にhello-app.xmlというADFを示します。</p>
<pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;application xmlns="http://ns.adobe.com/air/application/1.0" minimumPatchLevel="1047"&gt;
	&lt;id&gt;net.memorize-being.flex-air.hello&lt;/id&gt;
	&lt;name&gt;Hello&lt;/name&gt;
	&lt;version&gt;1.0&lt;/version&gt;
	&lt;filename&gt;hello&lt;/filename&gt;
	&lt;description&gt;Hello first application&lt;/description&gt;
	&lt;copyright&gt;(c) 2008 &lt;/copyright&gt;
	&lt;initialWindow&gt;
		&lt;content&gt;hello.swf&lt;/content&gt;
		&lt;title&gt;Hello&lt;/title&gt;
		&lt;systemChrome&gt;none&lt;/systemChrome&gt;
		&lt;transparent&gt;true&lt;/transparent&gt;
		&lt;visible&gt;true&lt;/visible&gt;
		&lt;minimizable&gt;true&lt;/minimizable&gt;
		&lt;maximizable&gt;false&lt;/maximizable&gt;
		&lt;resizable&gt;false&lt;/resizable&gt;
		&lt;x&gt;150&lt;/x&gt;
		&lt;y&gt;150&lt;/y&gt;
	&lt;/initialWindow&gt; 
	&lt;installFolder&gt;memorize-being/Hello&lt;/installFolder&gt;
	&lt;programMenuFolder&gt;memorize-being/Hello&lt;/programMenuFolder&gt;
	&lt;customUpdateUI&gt;false&lt;/customUpdateUI&gt;
	&lt;allowBrowserInvocation&gt;false&lt;/allowBrowserInvocation&gt;
&lt;/application&gt;
</code></pre>
<p>重要な要素のみ解説します。初めにid要素は、このアプリケーションの識別子を示します。これはこのアプリケーションのアップデートなどに使われますので、他と重複してはいけません。この例ではこのサイトのドメインを利用しnet.memorize-being.flex-air.helloとしていますが、この形式に従う必要は無く、特にテスト用途であれば自由で結構です。</p>
<p>次にinitialWindow要素はこのアプリケーション起動時に呼び出されるウィンドウ(=swfファイル)を示します。この中ではswfファイル名やウィンドウタイトル、形態などを指定します。</p>
<p>最後にinstallFolder要素ではインストール先フォルダ、programMenuFolder要素ではプログラムメニュー（Windowsでいうところのスタートメニュー）内フォルダを指定します。AIRアプリケーションは生成時は.airというパッケージになりますが、それを各プラットフォームでインストールすると、Mac OS Xでは.app、Windowsでは.exeなど、そのプラットフォームネイティブの実行形式でラッピングされます。インストール先フォルダにその実行形式が格納され、ユーザはプログラムメニュー内フォルダから実行する事となります。</p>
<h4>AIRアプリケーションの生成</h4>
<p>実際にAIRアプリケーションのパッケージを生成します。ですがその前に、生成前でも実行することが可能なので実際に試してみます。以下のコマンド、</p>
<pre>$ adl hello-app.xml</pre>
<p>を実行し、次のようなウィンドウが現れたら成功です。</p>
<a href="http://www.memorize-being.net/2008/05/21/airapphello.png"><img src="http://www.memorize-being.net/2008/05/21/airapphello.png" alt="実際にAIRアプリケーションを表示させた図" class="mt-image-left" style="margin: 0pt 20px 20px 0pt; float: left;" height="150" width="200" /></a>
<p>Helloアプリケーションのウィンドウ</p>
<p style="clear: left;">次に、パッケージを生成する場合、セキュリティの問題によりディジタル証明書を使ってディジタル署名をする必要があります。公的なディジタル証明書を入手するのは大変ですが、勝手に証明書を発行する事も出来ます。ただし、この証明書はCAにより認証されていないためインストール時に警告が表示されます。次のコマンドで証明書"hello.pfx"を生成します。</p>
<pre>$ adt -certificate -cn ＜証明書名＞ 1024-RSA hello.pfx ＜パスワード＞</pre>
<p>＜証明書名＞および＜パスワード＞には任意の文字列を入れてください。特にパスワードは次のステップで使用するので記憶しておいてください。1024-RSA、つまり鍵長1024ビットですが、2048ビットにする事も可能です。</p>
<p>ついに、全ての準備が整いましたので、AIRアプリケーションのパッケージを生成します。生成するパッケージ名を"hello.air"とすると以下のようなコマンドになります。</p>
<pre>adt -package -storetype pkcs12 -keystore hello.pfx hello.air hello-app.xml hello.swf</pre>
<p>上記コマンドはいくつかの部分に分けて理解する事が出来ます。先頭の"adt -package"はパッケージを生成するコマンドそのものです。</p>
<p>次に、"-storetype pkcs12 -keystore hello.pfx"はディジタル署名に関するオプションで、ディジタル証明書がhello.pfxで、形式がPKCS#12であることを示しています。</p>
<p>その後の"hello.air hello-app.xml"は順に、生成パッケージ名、ADFファイル名を示しています。順番はこの通りである必要があります。</p>
<p>それ以降、この場合の"hello.swf"はこのパッケージに含めるファイル一覧を示します。アイコンを指定する場合はアイコンの格納されたフォルダを、複数ウィンドウを持つのであれば複数swfファイルを連ねる事になるかと思います。成功すれば、次の画像のようにhello.airが生成されているはずです。</p>
<a href="http://www.memorize-being.net/2008/05/21/airappgen.png"><img src="http://www.memorize-being.net/2008/05/21/airappgen.png" alt="AIRアプリケーションが出現している" class="mt-image-left" style="margin: 0pt 20px 20px 0pt; float: left;" height="150" width="350" /></a>
<p>hello.airが新たに現れている。</p>
<p style="clear: left;"></p>
<h4>生成されたパッケージのテスト</h4>
<p>前項で生成したパッケージを実際にテストしてみます。初めに、hello.airを開くとAIR Application Installerが起動するので、指示に従ってインストールします。"Start application after installation"のチェックを入れておくと、インストール終了後にAIRアプリケーションが起動します。</p>
<p>次に、どのようにインストールされているかを確認してみます。hello-app.xml(ADF)で標準のインストール先を"memorize-being/Hello"にしましたので、Mac OS Xでは標準で/Applications/memorize-being/Helloにhello.appが格納されているかと思います。また、このhello.appを実行すれば、先に示した、実行ウィンドウと同様の画面が現れるはずです。</p>
<h4>あとがき</h4>
<p>ある程度細かく書こうと思っていたら随分長くなったような気がします。ですが不足部分やむしろ冗長な部分があるかもしれません。</p>
<p>また、記述してみて改めて思ったのは、Flex 3 SDKにしろAIRにしろOS固有部分が少なくマルチプラットフォームになっているんだな、ということです。特にFlex 3 SDKについてパス設定を行ってしまえば、基本的にその先はOSごとで差異がありません。Javaの威力とAdobeの努力の賜物だと思う次第です。</p>]]>
    </content>
</entry>

<entry>
    <title>OpenALの仕様書を翻訳してみた。</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/04/27/openal11-spec-translating.html" />
    <id>tag:www.memorize-being.net,2008://2.55</id>

    <published>2008-04-27T02:57:58Z</published>
    <updated>2008-04-27T02:58:07Z</updated>

    <summary> オープンなオーディオライブラリであるOpenAL(Open Audio Library)の仕様書を和訳してみています。まだまだ部分的（というかほぼ未完）ですが......</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="C言語／C++" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="テクニカル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="openal" label="OpenAL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プログラミング" label="プログラミング" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[ <p>オープンなオーディオライブラリである<a href="http://www.openal.org/">OpenAL(Open Audio Library)</a>の仕様書を<a href="http://www.memorize-being.net/releases/openal11-spec-and-reference.html">和訳</a>してみています。まだまだ部分的（というかほぼ未完）ですが...</p>]]>
        <![CDATA[<p>現状、どうやらOpenALの仕様書の和訳はなさそうなので、翻訳を始めてみました。正直なところあまり英語が得意ではないので誤訳がありそうですが...</p>
<p>しかし、国内におけるOpenALの普及率はかなり低そうですねぇ。僕はMac/Linux/Windowsで動作するマルチメディアAPIが欲しくてSDLやOpenGL、OpenALに足を踏み入れた口ですが、そのうちでも特にOpenALの情報は少ないような気がします。</p>
<p>Web上ではいくつかtipsは見かけますが、チュートリアルや入門のようなのは見かけた記憶がありません。</p>
<p>そういう状況もあり自分もOpenALについてなかなか理解出来ずに居るので、仕様を訳しながら読んで理解していけたらと思っています。</p>]]>
    </content>
</entry>

<entry>
    <title>リトルバスターズ！エクスタシーの発売日が７月２５日に</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/04/19/littlebusters-ecstasy-release-date.html" />
    <id>tag:www.memorize-being.net,2008://2.53</id>

    <published>2008-04-18T15:49:11Z</published>
    <updated>2008-04-25T04:17:53Z</updated>

    <summary>こちらにある通り、リトルバスターズ！エクスタシーの発売日が２００８年７月２５日に決定したようです。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="ゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="key" label="Key" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p><a href="http://key.visualarts.gr.jp/info/2008/04/post_5.html">こちら</a>にある通り、リトルバスターズ！エクスタシーの発売日が２００８年７月２５日に決定したようです。</p>]]>
        <![CDATA[ <p>リトルバスターズ！の発売日は２００７年７月２７日でしたのでほぼ丸１年後の発売となった形です。</p>
<p>全年齢版であるリトルバスターズ！を購入したため、エクスタシーのほうはどうしようか、と考えていますが、<a href="http://key.visualarts.gr.jp/newsoft/index.html">新キャラなんかもいるようで</a>、買いたいなあ、と思っている次第です。</p>
<p><strike><small>あと、まあ、発売延期しない事をお祈りしております...</small></strike></p>
]]>
    </content>
</entry>

<entry>
    <title>Keyが新作「Rewrite」発表</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/04/02/key-will-release-rewrite.html" />
    <id>tag:www.memorize-being.net,2008://2.52</id>

    <published>2008-04-02T10:13:40Z</published>
    <updated>2008-04-02T10:16:46Z</updated>

    <summary> ４月１日、美少女ゲームブランドKeyが完全新作として「Rewrite」を発表しました。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="key" label="Key" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[ <p>４月１日、美少女ゲームブランド<a href="http://key.visualarts.gr.jp/">Key</a>が完全新作として「<a href="http://key.visualarts.gr.jp/rewrite/rewrite.html">Rewrite</a>」を発表しました。</p>]]>
        <![CDATA[<p>正直、エイプリルフールのネタなのかと思っておりましたが...（笑）</p>
<p><a href="http://key.visualarts.gr.jp/diary/2008/04/post_6.html">こちらで折戸伸治氏がマジ宣言（Key 不定期スタッフ日誌）</a>をされていました。僕は４月１日の午前１時頃と、一応ネタかと思い４月２日にも午前１時頃にアクセスしたのですが、確かに随分サーバが重かったようです。やはり僕と同じようなタイミングが多かったのでしょうか。</p>
<p>さて、マジだと判明したところで気になるのは内容と時期。現状公表されているデータでは具体的なところは何も分かりそうにないです。</p>
<p>内容について推測するさい、材料となりそうなのはタイトル「Rewrite」（書き直す、書き換える）、「書き換える事が出来るのだろうか。彼女の、その運命を。」という下り、中心に立つ少女そのもの、でしょうか。</p>
<p>書き換え、で連想してしまったのはいわゆるループもの。ループものというと広い類型ですが、特に一旦悲劇が判明した後にやり直しに戻るような類いを想像しました。</p>
<p>また発売時期については、恐らく先に出るであろう<a href="http://key.visualarts.gr.jp/newsoft/index.html">リトルバスターズ！エクスタシー</a>すら発売日が未定であるという現状があるので、大胆に言ってしまうと、年内は厳しいような気がします。</p>
<p>またスタッフで一番気になるのが原案が樋上いたる氏、シナリオが田中ロミオ氏、竜騎士０７氏、都乃河勇人氏、QC(Quality Control：品質管理)が麻枝准氏というところです。</p>
<p>Wikipediaで<a href="http://ja.wikipedia.org/wiki/Kanon_%28%E3%82%B2%E3%83%BC%E3%83%A0%29">Kanon</a>、<a href="http://ja.wikipedia.org/wiki/AIR_%28%E3%82%B2%E3%83%BC%E3%83%A0%29">AIR</a>、<a href="http://ja.wikipedia.org/wiki/CLANNAD_%28%E3%82%B2%E3%83%BC%E3%83%A0%29">CLANNAD</a>、<a href="http://ja.wikipedia.org/wiki/Planetarian_%E3%80%9C%E3%81%A1%E3%81%84%E3%81%95%E3%81%AA%E3%81%BB%E3%81%97%E3%81%AE%E3%82%86%E3%82%81%E3%80%9C">planetarian 〜ちいさなほしのゆめ〜</a>、<a href="http://ja.wikipedia.org/wiki/%E6%99%BA%E4%BB%A3%E3%82%A2%E3%83%95%E3%82%BF%E3%83%BC_%E3%80%9CIt%27s_a_Wonderful_Life%E3%80%9C">智代アフター 〜It's a Wonderful Life〜</a>、<a href="http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%88%E3%83%AB%E3%83%90%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%BA%21">リトルバスターズ!</a>を見ると、リトルバスターズ!をのぞいた全ての作品で、企画はシナリオと兼任しています（リトルバスターズ!は明記なし。）この事から原画であるところの樋上いたる氏が企画を兼任するのはイレギュラーです。</p>
<p>また、<a href="http://ja.wikipedia.org/wiki/%E9%BA%BB%E6%9E%9D%E5%87%86">Wikipediaの麻枝准の項</a>でも書かれている通り、麻枝准氏はシナリオライタを引退してQCに移り、CROSS†CHANNELで有名な田中ロミオ氏、「ひぐらしのなく頃に」で有名な竜騎士０７氏が起用されています。</p>
<p>新規に起用された両氏はそれぞれ大変活躍なさっていますが、Keyというフィールドでどういった形になるのか、良くも悪くも予想を裏切る作品になりそうだと思います。もちろんファンの一人としては良い意味期待を裏切ってほしい限りですが！</p>]]>
    </content>
</entry>

<entry>
    <title>だめげーのエイプリルフール&apos;08</title>
    <link rel="alternate" type="text/html" href="http://www.memorize-being.net/2008/04/01/adults-aprilfool-2008.html" />
    <id>tag:www.memorize-being.net,2008://2.51</id>

    <published>2008-04-01T07:00:56Z</published>
    <updated>2008-04-01T18:04:31Z</updated>

    <summary>さて今年もやって参りましたエイプリルフール(Wikipedia)。各界で嘘が繰り広げられる本日ですが、2008年の美少女ゲーム（主に年齢制限あり）について、知る限りのエイプリルフールをまとめてみます。...</summary>
    <author>
        <name>cotton</name>
        <uri>http://www.memorize-being.net/</uri>
    </author>
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ネタ" label="ネタ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.memorize-being.net/">
        <![CDATA[<p>さて今年もやって参りましたエイプリルフール(<a href="http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%97%E3%83%AA%E3%83%AB%E3%83%95%E3%83%BC%E3%83%AB">Wikipedia</a>)。各界で嘘が繰り広げられる本日ですが、2008年の美少女ゲーム（主に年齢制限あり）について、知る限りのエイプリルフールをまとめてみます。</p>]]>
        <![CDATA[<p>各ページ、年齢制限がある場合がありますのでご注意ください。</p>
<dl>
<dt><a href="http://www.typemoon.com/">TYPE-MOON</a>の場合</dt>
<dd>「闘魂ムーン」という雑誌風のサイトになっており、TYPE-MOONの月姫・Fate各キャラがレスラーになっています。レスラー風の衣装や試合の光景まで載せており、かなり気合いが入っています。</dd>
<dt><a href="http://cotton-soft.com/">コットンソフト</a>の場合</dt>
<dd>50年後の未来からやってきたという海富一（68歳）が掲示板を作り、そこで質問に答えるという体裁になっています。<strike>現在のところ２スレ目のようです。</strike>最終的に３スレ半ばまでいきました。最後は503が出まくりましたが、ウナトミーさんおつかれさまでした！</dd>
<dt><a href="http://www.candysoft.jp/">きゃんでぃそふと</a>の場合</dt>
<dd>新作「強気無双」が2008年4月1日（今日！）発売と告知されています。年齢制限はGという謎指定、64bit専用でありメディアはHD-DVD、CPUはCore　2　Quad　3.5GHz以上を要求する等、とんでもないことになっています。</dd>
<dt><a href="http://www.lievre.jp/">May-Be SOFT</a>の場合</dt>
<dd>「メイドさんと大きな剣」のファンディスク？として「ANOTHER ONE」が発表されています。しかし20008年ってどれだけ未来ですか。</dd>
<dt><a href="http://www.minori.ph/">minori</a>の場合</dt>
<dd><strong>むしろエイプリルフール中止を宣言しています。</strong>ですがLast Updatedが2008.03.32ってこれ嘘じゃ。</dd>
</dl>
<p>とりあえず明確にネタだと分かったのは以上です。他にも少々怪しいのはありますが...</p>
<p>おまけ。<a href="http://www.mozilla.gr.jp/20080401/">もえじら組</a>。ふぉくすこさぁああん！</p>
]]>
    </content>
</entry>

</feed>
