<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>ゆめ技：ゆめみスタッフブログ</title>
      <link>http://yumewaza.yumemi.co.jp/</link>
      <description>携帯・モバイルの技術情報はもちろんその他色々な技を発信する株式会社ゆめみの社員によるブログです。</description>
      <language>ja</language>
      <copyright>Copyright 2012</copyright>
      <lastBuildDate>Thu, 24 May 2012 12:30:45 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>OpenCV2.4.0でHAAR分類器を学習させるときの問題と対策</title>
         <description><![CDATA[<p>
こんにちは、ちきん(@mokemokechicken)です。
今回は、OpenCV2.4でHAAR-Like分類器などを新たに自分で構築する際に発生することがある問題と対策についてです。
</p>]]></description>
         <link>http://yumewaza.yumemi.co.jp/2012/05/opencv240_haar_classifier_problems.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2012/05/opencv240_haar_classifier_problems.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">OpenCV</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">OpenCV</category>
        
         <pubDate>Thu, 24 May 2012 12:30:45 +0900</pubDate>
      </item>
            <item>
         <title>iOSシミュレータでメモリ警告を定期的に発生させる</title>
         <description>こんにちは、ちきん(@mokemokechicken)です。
iOSでは不意に発生するメモリ警告(Memory Warning)に対応する必要がありますが、意外と実装ミスがあったり、検証漏れがあったりする部分でもあります。
iOSシミュレータでは、メモリ警告をシミュレートするメニューがありますが、毎度それをクリックするのも面倒です。

そこで、定期的に自動的にメモリ警告を送るPluginを作りましたのでご紹介します。
これを常にONにして開発をしていると、自然とある程度テストが為されるというわけです。</description>
         <link>http://yumewaza.yumemi.co.jp/2012/03/memorywarningsender_in_ios_simulatorios.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2012/03/memorywarningsender_in_ios_simulatorios.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iOS</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">iOS</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">tool</category>
        
         <pubDate>Thu, 29 Mar 2012 13:14:39 +0900</pubDate>
      </item>
            <item>
         <title>Objective-CのPropertyの解放忘れを見つけるスクリプト</title>
         <description>こんにちは、ちきん(@mokemokechicken)です。
最近は、iPhoneアプリの開発に携わっていまして、そこで「Objective-CのPropertyの解放忘れを見つけるスクリプト」を作ったのでご紹介します。

Objective-C で開発しているときに、一つ頭を悩ますのはメモリの解放周りです。
何に悩むかというと、以下の2パターンです。

(a) オブジェクトを解放し過ぎることによるアプリの異常終了
(b) オブジェクトを解放しないことによるメモリリーク

今回の話は(b)を発見する補助ツールのご紹介です。
何かのお役に立てば幸いです。
</description>
         <link>http://yumewaza.yumemi.co.jp/2012/01/objectivecproperty.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2012/01/objectivecproperty.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iOS</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">iOS</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Objective-C</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Property</category>
        
         <pubDate>Mon, 16 Jan 2012 13:11:03 +0900</pubDate>
      </item>
            <item>
         <title>Git-Redmine: GitのコミットとRedmineを連携する。チケット駆動開発にも。</title>
         <description><![CDATA[おひさしぶりです。
kaoruです。

今回は、日常のGitの利用シーンでRedmineと連携できるGit-Redmineという小さなツールを作ってみたのでご紹介します。
（ツールは後ろのリンクからダウンロードできるので、ぜひお試しください。）

作業管理にRedmine、ソースコードの管理にGitを使っているプロジェクトは最近増えてきていると思います。

Redmineのチケットを見て作業内容を確認、該当するソースコードを修正、最後にGitでコミットしますよね。

Gitでコミットする時には、コミットメッセージというのを書きます。ここには、作業内容や変更点を簡単に記録します。

でも、Redmineを使って作業管理をしているプロジェクトでは、作業内容や変更点はRedmineのチケットの内容と基本的に同じですよね。

だからコミットメッセージを入力するとき、いままで、ウインドウを２つ並べて、Redmineからコミットメッセージの入力欄へのコピペを繰り返し・・・、チケットの番号を書き加えて・・・、とういうことをしていませんでしたか？

これだと、毎回、単純な作業にうんざりだし、コピペミスも怖い。

しかも、コミットメッセージが書くのが面倒で、ついつい２，３文字で済ませちゃった経験ありませんか？

<img alt="git-redmine-nailbook3.jpg" src="http://yumewaza.yumemi.co.jp/img/postfile/git-redmine-nailbook3.jpg" width="500" height="624" />


面倒くさいことはツールで解決！

Git-Redmineを使うと、こんな問題を解決できます。

コミット時に作業の流れでチケットを確認できるので、巷で流行りのチケット駆動開発にもぴったりです。


<h4>できること</h4>

コマンドラインから、Redmineに登録されているチケットを確認できます。
Gitコミット時に、Redmineのチケットのタイトルをコミットメッセージに利用できます。

このツールは、Redmineが用意しているREST APIを利用しています。また、ソースコードをカスタマイズしやすいようにPythonで書いています。


<h4>インストール方法</h4>

1. 本ツール(Git-Redmine)のソースファイルを取得します。

(例)
<pre>$ git clone git://github.com/coiled-coil/git-redmine.git</pre>


2. git-redmineというファイルを実行パスの通った場所にコピーします。

(例)
<pre>$ cd git-redmine
$ mkdir -p $HOME/bin
$ cp src/git-redmine $HOME/bin/</pre>

git-redmineファイルの１行目にpythonのパスが書かれています。
/usr/bin/python以外を利用する場合はパスを書き換えてください。
Python 2.6 以降が必要です。CentOS5では、/usr/bin/python26 などに書き換えてください。


3. RedmineのAPIキーを設定します

APIキーは、Redmineログイン後に、個人設定の中に表示されます。（下の赤線部分）

<img alt="git-redmine-apikey.png" src="http://yumewaza.yumemi.co.jp/img/postfile/git-redmine-apikey.png" width="500" height="502" />

もし、表示されない場合はREST API機能がオフになっている可能性がありますので、
管理者にお問い合わせください。また、古いRedmineでは利用できない可能性があります。


(例)
<pre>$ git config --global redmine.apiKey xxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>


4. プロジェクトのGitレポジトリに、プロジェクトのRedmineのURLを設定します。

(例)
<pre>$ cd /repos/YOUR-PROJECT
$ git config redmine.projectUrl http://SAMPLE.COM/repos/YOUR-PROJECT</pre>


<h4>使い方</h4>

1. チケットの一覧を表示する。
<pre>$ git redmine</pre>

2. あるチケットの詳細を表示する。
<pre>$ git redmine 1234</pre>

3. あるチケットの情報を利用して、コミットを行う。
<pre>$ git redmine commit 1234</pre>

4. あるチケットの情報を利用して、コミットを行う。同時にチケットの達成率を90%に更新する。
<pre>$ git redmine commit 1234 --done-ratio=90</pre>

5. あるチケットの情報を利用して、コミットを行う。同時にチケットの達成率を100%、ステータスを解決済みに更新する。
<pre>$ git redmine commit 1234 --done-ratio=100 --status=3</pre>


<h4>ソースコード</h4>

こちらにソースコードを置いています。
<a href="https://github.com/coiled-coil/git-redmine" target="_blank">https://github.com/coiled-coil/git-redmine</a>]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/08/git-redmine-integration-using-rest-api-python.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/08/git-redmine-integration-using-rest-api-python.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Git</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">API</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Git</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Python</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Redmine</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">REST</category>
        
         <pubDate>Thu, 04 Aug 2011 09:59:38 +0900</pubDate>
      </item>
            <item>
         <title>完全公開！ソーシャルゲーム設計事例：後編</title>
         <description><![CDATA[<h1>はじめに</h1>
<p>
こんにちは。樽八です。<br />
この記事は、前記事「完全公開！ソーシャルゲーム設計事例：前編」の続きになります。
</p>
<p>
まだの方は是非合わせてお読みください。<br/>
○<a href="http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html">完全公開！ソーシャルゲーム設計事例：プロローグ編</a><br/>
○<a href="http://yumewaza.yumemi.co.jp/2011/07/social_game_develop02.html">完全公開！ソーシャルゲーム設計事例：前編</a><br/>
</p>
前編では、弊社構築ソーシャルゲームにおける。コンテンツ生成Webサーバの構成とキャッシュまわりについて紹介いたしました。<br/>
いよいよ後編では、データベース構成とシステム全体の冗長化に関して記述させていただきます。<br/>
本丸であり、少々長くなりますがお付き合い下さい。<br/>
<br/>]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop03.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop03.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
                  <category domain="http://www.sixapart.com/ns/types#category">携帯/モバイル</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">ソーシャルゲーム</category>
        
         <pubDate>Wed, 27 Jul 2011 11:00:00 +0900</pubDate>
      </item>
            <item>
         <title>完全公開！ソーシャルゲーム設計事例：前編</title>
         <description><![CDATA[<h1>はじめに</h1>
<p>
こんにちは。樽八です。<br />
この記事は、前記事「<a href="http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html">完全公開！ソーシャルゲーム設計事例：プロローグ編</a>」の続きになります。
</p>
<h3>おさらいとして、今回要求されたシステム要件(機能要件および非機能要件)</h3>
<ul>
<li>2000万PV/日のアクセスに耐えるシステムを作ること。</li>
<li>会員数の増減に合わせて速やかにシステム全体の構成を変更出来ること。</li>
<li>予期される障害発生に関しては、たとえスループットが落ちた状態状態であったとしても通常サービスの継続が可能であること。</li>
<li>特定の機器が障害によって復旧不可能な状態に陥っても、サービス継続に必要なデータが復旧可能であること。</li>
<li>負荷のピーク時においても、各ページの応答時間が5秒を超えないこと。</li>
<li>サービスを動かしながらの頻繁なアップデートおよびデータ更新が可能であること。</li>
</ul>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop02.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop02.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
                  <category domain="http://www.sixapart.com/ns/types#category">携帯/モバイル</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">ソーシャルゲーム</category>
        
         <pubDate>Tue, 26 Jul 2011 11:00:00 +0900</pubDate>
      </item>
            <item>
         <title>完全公開！ソーシャルゲーム設計事例：プロローグ</title>
         <description><![CDATA[<h1>はじめに</h1>
<p>
こんにちは。樽八です。
</p>
<p>
ちょうど1年ほど前になりますが、弊社にてGREEプラットフォームにおけるソーシャルアプリ携帯ゲーム「偉人伝心」のリリースを致しました。<br />
その時のシステムに対する機能要求および非機能要求に対してできたこと、できなかったことをエンジニア視点で列挙したいと思います。
</p>
<h1>システムに対する要求と、達成、未達成状況</h1>
<h2>ほぼ達成された要求項目(４項目)</h2>
<h3>2000万PV/日のアクセスに耐えるシステムを作ること。</h3>
<p>
&nbsp;&nbsp;&rarr;負荷試験時において、画像合成、Flash合成ページを含めて、webサーバ１０台時の構成において、1400リクエスト/秒(単純計算だと1億2000万PV/日)以上のスループットを達成。<br />
　（※残念なことに、これだけの負荷が実際に掛かることはありませんでした。）
</p>
<h3>会員数の増減に合わせて速やかにシステム全体の構成を変更出来ること。</h3>
<p>
&nbsp;&nbsp;&rarr;サーバの追加に応じてシステム全体のスループットを上げることのできる、スケールアウト可能な構成としました。<br />
&nbsp;&nbsp;&rarr;上記負荷試験時の数字もWebサーバの追加によりさらに引き上げることが出来る事を確認しました。<br />
</p>
<h3>予期される障害発生に関しては、たとえスループットが落ちた状態状態であったとしても通常サービスの継続が可能であること。</h3>
<p>
&nbsp;&nbsp;&rarr;全てのHW機器を冗長化して構築しました。
</p>
<h3>特定の機器が障害によって復旧不可能な状態に陥っても、サービス継続に必要なデータが復旧可能であること。</h3>
<p>
&nbsp;&nbsp;&rarr;上記、HW機器の冗長化に加えて、データの保有に関しても冗長化を行いました。
</p>]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
                  <category domain="http://www.sixapart.com/ns/types#category">携帯/モバイル</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">ソーシャルアプリ</category>
        
         <pubDate>Mon, 25 Jul 2011 10:44:07 +0900</pubDate>
      </item>
            <item>
         <title>Android NFCとNexusSで MifareClassic を読み書きする（後編）</title>
         <description><![CDATA[<p>
こんにちは、ちきんです。今回も引き続きMifareClassicの話です。<br/>
今回は、入手した真っさらな MifareClassic(Mifare Standard)のカードに NdefFormatable#format() をしたところ、
NDEF_DISCOVERED で intentが発生したり、Ndef の instanceが使えるようになりましたのでその辺りのお話と、<br/>
MifareClassicシリーズ最終回ということでMifareClassicに関するまとめをしてみたいと思います。
</p>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_3.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_3.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">android</category>
        
         <pubDate>Mon, 07 Mar 2011 14:51:10 +0900</pubDate>
      </item>
            <item>
         <title>Android NFCとNexusSで MifareClassic を読み書きする（中編）</title>
         <description><![CDATA[<p>
こんにちは、ちきんです。<br/>
<a href="http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_1.html">前回</a>に続き、 MifareClassicの話です。<br/>
今回は、 NdefFormatable を使って、 MifareClassic にデータを書き込めるか調査しました。<br/>
結果は、 (おそらく)検証に用いたカードの問題で「中途半端に書込みが成功」というものでした。きっとまっさらなカードなら成功したのではないかと思います。<br/>
色々興味深いこともいくつかわかったので、以下、その状況について説明していきます。<br/>
</p>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_2.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_2.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">android</category>
        
         <pubDate>Fri, 04 Mar 2011 15:51:41 +0900</pubDate>
      </item>
            <item>
         <title>Android NFCとNexusSで MifareClassic を読み書きする（前編）</title>
         <description><![CDATA[<p>
こんにちは、ちきんです。<br/>
<a href="http://yumewaza.yumemi.co.jp/2011/03/nexuss_nfc_gettechlist.html">前回のエントリ</a>で「MifareClassicにNdefFormatableで書きこむとどうなるのか？」という疑問がありましたので、調査を続けていきます。<br/>
今回は準備として MifareClassic カードに読み書きをしたり、データのバックアップやリストアを実装してみました。<br/>
しかし、その過程でいつものようにトラブルが発生し、 解決のためにMifareClassicの仕様を調べてみたところ、
MifareClassicは後戻りできない書込みもできてしまうことなども判明しましたので、その辺りを共有したいと思います。<br/>
<br/>
何せこのカードは私物の保育園の入館証なので、再起不能にしてしまったかと色々冷や汗物語はありましたが、
無駄に長くなるので、なるべく要点を記述していきたいと思います。<br/>
<br/>
</p>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_1.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/03/android_nfc_nexuss_mifare_classic_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">android</category>
        
         <pubDate>Tue, 01 Mar 2011 22:17:55 +0900</pubDate>
      </item>
            <item>
         <title>NexusSによるNFC調査： getTechList 編</title>
         <description><![CDATA[<p>
こんにちは、ちきん(mokemokechicken)です。<br/>
さて、私のNexusSでもやっとAPI10が利用可能になったので、現在色々調査中なのですが、
今回は、 getTechList() という「AndroidがNFC系カードをどのような種別として認識するか」という結果について簡単にメモしておきます。
</p>
<h2>getTechList()の結果</h2>
<p>
<a href="http://developer.android.com/reference/android/nfc/Tag.html#getTechList%28%29">android.nfc.Tag#getTechList()</a>は、
Android端末がNFC系カードを発見したIntentに含まれるTagインスタンスのメソッドで、
<pre>
Tag tag = (Tag)intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String[] techList = tag.getTechList();
</pre>
などで取得できる値です。<br/>
この techList に入る値は、 android.nfc.tech の TagTechnology を ImplementしたClassの(fully-qualifiedな)名前になります。<br/>
</p>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/03/nexuss_nfc_gettechlist.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/03/nexuss_nfc_gettechlist.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">android</category>
        
         <pubDate>Tue, 01 Mar 2011 22:14:42 +0900</pubDate>
      </item>
            <item>
         <title>Android2.3.2(rooted)→2.3.3 への手動Update ＆ root化失敗による起動不能からの復旧メモ・・・</title>
         <description><![CDATA[<h1>はじめに</h1>
<p>
こんにちは、ちきん(mokemokechicken)です。<br/>
NexusS の2.3.3のOTAが始まりましたが、root化しているので、ちゃんと適用されるかわからないので、手動でやってみました。<br/>
2.3.3へのUpdateは無事上手くいったのですが、再度のRoot化で見事にハマりました。<br/>
私のようなAndroid初心者の方も多いと思われ、こういう失敗の共有もそれなりに有意義だと思ったので、その顛末を公開しておきたいと思います。<br/>
メモベースなので、乱文乱筆すみません。
</p>

<h1>UpdateとRoot化</h1>
<h2>NexusS 2.3.2(rooted) -> 2.3.3 への手動Update</h2>
<h3>Update前の環境</h3>
NexsusS＆Android2.3.2で

<ul>
<li>oem unlock</li>
<li>root化(boot.superboot.img という 2.3.2専用のimgを入れた。そしてこれが後々仇になる・・・)</li>
<li>ClockworkMod(=CWM) 3.0.0.5 導入済み</li>
</ul>
という状態でした。]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/02/android_nexuss_update_rooted_recovery.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/02/android_nexuss_update_rooted_recovery.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Android</category>
        
         <pubDate>Mon, 28 Feb 2011 11:51:58 +0900</pubDate>
      </item>
            <item>
         <title>VirtualBoxでVolume group &quot;VolGroup00&quot; not found というエラーが発生した場合の対処方法</title>
         <description><![CDATA[<p>
  こんにちは<br />
  kaoruです
</p>

<p>
  今回は、ちょっとしたTipsです。VirtualBoxでCentOSのイメージファイルをコピーした際などに発生することがある、Volume group "VolGroup00" not foundというエラーの対処方法についてご紹介します。
</p>

<p>
  あるひとつのエラーに対する対処方法ですが、VirtualBoxやvmwareなどの仮想環境を開発環境に利用することは一般的ですので、意外と同じ問題で困っている方がいらっしゃるのでは・・・と思います。

</p>
<p>
  私も英語サイトも含めて対処方法を検索してみましたが、同じエラーメッセージが出て質問されている方は何人かいらっしゃったものの、ずばり解決という回答を掲載しているWebサイトは発見できませんでしたので、この記事がご参考になればと思います。
</p>

<h4>エラーが発生するシチュエーション</h4>
<p>
  CentOSがインストールされたVirtualBoxのイメージファイルをクローニングした場合、ホスト間で移動した場合、vmwareのイメージファイルをVirtualBoxにコンバートした場合などに発生するようです。今回発生したCentOSのバージョンは5.4です。発生する原因については、下記の参考になるサイトにあるVirtualBoxのしくみの説明が参考になります。
</p>

<h4>解決方法</h4>

<h5>rescueモードで起動する</h5>
<p>
  CentOSのイメージファイル(ISOイメージファイル)をダウンロードします。
  VirtualBoxの仮想メディアマネージャーに登録します。
  仮想環境設定のストレージに割り当てをします。
  そのまま仮想環境を起動します。
  linux rescueと入力してrescueモードで起動すればOKです。
</p>

<h5>initrdを再作成</h5>
<p>
  以下のコマンドを実行してinitrdを再作成します。なお、<a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/572scsion.html" target="_blank">@ITの記事</a>を参考にしています。***の部分は環境によって異なります。uname -rで得られる結果を利用してください。
</p>
<pre>
  chroot /mnt/sysimage
  depmod -a
  uname -r
  mv /boot/initrd-******.img /boot/initrd-******.img.org
  mkinitrd /boot/initrd-*****.img *******
</pre>

<h5>/boot/grub/grub.cfgを確認</h5>
<p>
  上記で作成した*.imgファイルがinitrdに指定されていることを確認します。
</p>

<h5>/etc/fstabを確認</h5>
<p>
  ディスクのマウント情報が正しいかどうか確認します。
</p>

<h5>仮想環境を再起動</h5>
<p>
  仮想環境設定のストレージに割り当てを解除してから、仮想環境を再起動すればOKです。
</p>

<h4>補足：VirtualBoxの仮想イメージファイルを変換・クローニングする方法</h4>
<p>
  VirtualBoxの仮想イメージファイルは単にコピーしてリネームしてもうまく動作しません。
  正しくは、VBoxManege clonehdコマンドを利用します。
</p>
<pre>
  VBoxManege clonehd old.vdi new.vdi
</pre>
<p>
  また、入力・出力はvmwareの仮想イメージファイル(*.vmdk)など、他のファイルの種類を指定することも出来ます。
</p>
<pre>
  VBoxManege clonehd old.vmdk new.vdi
</pre>

<h4>参考になるサイト</h4>
<ul>
    <li><a href="http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi" target="_blank">http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi</a></li>
    <p>VBoxManageコマンドのリファレンス</p>

    <li><a href="http://www.virtualbox.org/manual/ch05.html#cloningvdis" target="_blank">http://www.virtualbox.org/manual/ch05.html#cloningvdis</a></li>
    <p>VirtualBoxでディスクイメージをクローンする際の注意点</p>

    <li><a href="http://www.gnu.org/software/grub/" target="_blank">http://www.gnu.org/software/grub/</a></li>
    <p>GNU GRUBのリファレンス</p>

    <li><a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/572scsion.html" target="_blank">http://www.atmarkit.co.jp/flinux/rensai/linuxtips/572scsion.html</a></li>
    <p>initrdの作成方法</p>

    <li><a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/572scsion.html" target="_blank">http://www.atmarkit.co.jp/flinux/rensai/linuxtips/572scsion.html</a></li>
    <p>initrdの作成方法</p>
</ul>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/02/virtualbox_grub_fstab_volgroup00_not_found.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/02/virtualbox_grub_fstab_volgroup00_not_found.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Kernel</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">fstab</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">grub</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">initrd</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">linux rescue</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">mkinitrd</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">vbox</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">VirtualBox</category>
        
         <pubDate>Wed, 16 Feb 2011 16:26:54 +0900</pubDate>
      </item>
            <item>
         <title>AndroidのNFC機能でFeliCaの読み書きをする</title>
         <description><![CDATA[<p>
初めまして、ちきん(mokemokechicken)です。 今回は、NexusSを使って、FeliCaデータの読み書きをするAndroidアプリを作ったのでそのご紹介をします。
</p>
<p>
AndroidOSの2.3から NFC(Near Field Communication)用のAPIがサポートされるようになりました。 NFCの特徴については<a target="_blank" href="http://goo.gl/tiCIH">この@ITの記事</a>が参考になります。<br />
<br />
NFCの通信規格は、日本で普及しているFeliCaの通信規格を含んでいるので、大抵のNFCリーダー・ライターで物理的にはFeliCaにアクセスすることがでそうですが、 現在の標準NFC APIでは、NDEFデータ以外にアクセスはできません(IDmは取得できますが)。<br />
<br />
しかし、先人たちの努力によって遂に隠しClassを通して、FeliCaのコマンドを発行できるようになり、<a target="_blank" href="http://goo.gl/G9vAI">そのソースコードが公開</a>されました。<br />
<br />
ちょうどその時、kouさんがNexusSを調達されており、Android,NFC,FeliCaについて遊ぶ・・ぢゃなくて調査することになりました。
</p>
<p>
その結果、NexusSと隠しClassによって、FeliCaに対して以下の操作ができることがわかりました。
</p>
<ul>
<li>システムコード一覧の取得： システムコードは、アプリケーション毎に定義されたシステム領域です。</li>
<li>サービスコード一覧の取得： サービスコードは、システム領域内の「ファイル識別子」のようなもの？です。</li>
<li>サービスコード内のデータの読みこみ： 但し、非暗号化領域に限ります。</li>
<li>サービスコード内のデータの書きこみ： 但し、非暗号化＆書込み可能領域に限ります。</li>
</ul>
ただし、隠しClass(@hide)を用いての実装なので、NexusS以外のAndroid2.3端末や、今後のAndroidOSのVersionUP次第ではできなくなる可能性もありますので、一般サービスとしては使えないです。<br />
ですが、どのFeliCaカードがどういう領域を持っているか調べたり、書込み可能領域を編集できるのは、今後色々役に立ちそうなので、今回アプリを作ってみました。
<p>
&nbsp;
</p>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/02/androidnfcfelica.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/02/androidnfcfelica.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Android</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">NFC</category>
        
         <pubDate>Thu, 10 Feb 2011 11:02:22 +0900</pubDate>
      </item>
            <item>
         <title>Tweepon開発でGoogle App Engineに初挑戦</title>
         <description><![CDATA[<style>
.yumewaza_20110207 li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
</style>
<div class="yumewaza_20110207">
<p>
  少し、間が空いてしまいました。<br />
  kaoruです。
</p>

<img alt="iPhone-tweepon-dev-300px.jpg" src="/img/postfile/iPhone-tweepon-dev-300px.jpg" width="300" height="402" style="float:right;margin-left:1em;margin-bottom:1em;" />

<p>
  このところ、Twitter連携サービス「Tweepon」の開発に携わっています。<br />
</p>

<p>
  Tweeponはまだ生まれたばかりのサービスですが、無料でお店情報やお得なクーポンをGet！！できるサービスですので、是非ご利用ください。<br />
</p>

<p>
  Tweepon iPhoneアプリ<br />
  <a href="http://tweepon.jp/app_store" target="_blank"><img alt="app_dl.png" border="0" src="/img/postfile/app_dl.png" width="200" height="62" /></a><br />
  <a href="http://tweepon.jp/yumemi" target="_blank">http://yumemi.co.jp/tweepon/</a><br />
</p>

<p>
  Twitterもはじめました！<br />
  <a href="http://tweepon.jp/tweepon_appli" target="_blank">@tweepon_appli</a>
</p>

<p>
  この開発では、仕事では初めてGoogle App Engineを利用してみました。<br />
</p>

<p>
  今回は、Google App Engineでの開発をはじめるにあたって色々と調べたノウハウをご紹介します。<br />
  なお、開発言語はJavaとPythonが選べるのですが、今回はPythonを利用しました。<br />
</p>

<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  1. Google App EngineのサイトからSDKをダウンロードしてインストール
</h4>

<p>
  Google App Engineのサイトはぐぐるとすぐに出てきます。<br />
  後ほど紹介するのですが、慣れてくると英語版のサイトの方がお勧めです。<br />
  まずはSDKをダウンロードしてインストールしましょう<br />
</p>

<p>
  <a href="http://code.google.com/intl/ja/appengine/downloads.html" target="_blank">http://code.google.com/intl/ja/appengine/downloads.html</a>
</p>

<p>
  その後のGoogle App Engine設定はこちらに解説があります。
</p>

<p>
  <a href="http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/devenvironment.html" target="_blank">http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/devenvironment.html</a>
</p>


<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  2. Pythonをダウンロードしてインストール
</h4>

<p>
  Google App Engine SDKにはPythonはついてきませんので、自分でPythonをインストールする必要があります。<br />
  ここで注意しないといけないのは、今後変わるかもしれませんが、このブログの執筆段階ではPythonのバージョンが2.5でないといけない点です。
</p>

<p>
  Pythonのダウンロードページに行くと、一見2.7しかおいてありません。
</p>

<p>
  私はここで一旦あきらめて、Active Python (<a href="http://www.activestate.com/activepython/downloads" target="_blank">http://www.activestate.com/activepython/downloads</a>) を入れてみたのですが、なぜかエラーが出てGoogle App Engineの開発環境が起動できず。（これは私のやりかたが悪かったのかもしれません）
</p>

<p>
  結局こちらからwww.python.org版の2.5系をダウンロードしてインストールするとうまくいきました。
</p>

<p>
  <a href="http://www.python.org/download/releases/2.5/" target="_blank">http://www.python.org/download/releases/2.5/</a>
</p>

<p>
  気がついたら、2.5のありかを探すのに少し時間がかかってしまいました。
</p>

<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  3. Google App Engine Launcher に Python のありかを登録
</h4>

<p>
  Google App Engine Launcherを起動して、メニューの中の Edit &gt; Preferences... の中で、Pythonのパスの設定をします。<br />
  <code>例： C:\Python25\pythonw.exe</code>
</p>


<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  4. Eclipse + PyDev をインストール
</h4>

<p>
  1-3までの設定で、あとはテキストエディターがあれば一通りの開発が出来ます。
  しかし、本格的に開発をしたいならばデバッガーで変数の中を見たり、ステップ実行をしたりしたいところです。
</p>

<p>
  Eclipse用のPython開発環境であるPyDevは、Google App Engineに対応しているためデバッグ作業に非常に便利です。
  また、文法チェックやコード補完機能もあります。
</p>

<p>
  インストール方法はこちらに詳しく書いてあります。
</p>

<p>
  <a href="http://code.google.com/appengine/articles/eclipse.html" target="_blank">http://code.google.com/appengine/articles/eclipse.html</a>
</p>

<p>
  英語なので簡単に説明すると、
  <ol>
    <li>まずはEclipseをインストール</li>
    <li>ヘルプの中のInstall New Software...を選択</li>
    <li>Available Software Siteを選択</li>
    <li><code>http://pydev.sourceforge.net/updates/</code> を追加</li>
    <li>PyDevにチェックを入れてプラグインをインストール</li>
    <li>Window &gt; Preferences の中の PyDev &gt; Interpreter Python の中の Python Interpreters に Pythonのパスを追加</li>
  </ol>
</p>

<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  5. EclipseからGoogle App Engineのプロジェクトを作成
</h4>

<p>
  新規プロジェクトの作成ウィザードで PyDev &gt; PyDev Google App Engine Project を選択します。
  Nextを選んでいくとGoogle App Engineの場所を入力するように言われますので、インストールした場所を選択します。
</p>

<p>
  <code>例：C:\Program Files (x86)\Google\google_appengine</code>
</p>

<p>
  はじめは、Hello world プロジェクトなどを作ってみるとよいでしょう。
</p>

<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  6. デバッグ実行の方法
</h4>

<p>
  せっかくEclipse上で開発をするのですから、ステップ実行したりブレークポイントを使ったりしたいですよね！
</p>

<p>
  そこで、デバッグ実行の方法を説明します。
</p>

<ol>
    <li>メニューから Run &gt; Debug Configurations を選択</li>
    <li>PyDev Google App Runを選びます。</li>
    <li>ProjectにはGoogle App Engine用のプロジェクトを選択</li>
    <li>Main Module には、Google App Engine のdev_appserver.py を選択します。</li>
    例：${GOOGLE_APP_ENGINE}/dev_appserver.py
    <img alt="pyDev-debug-config.png" src="/img/postfile/pyDev-debug-config.png" width="344" height="289"   style="clear:both;margin-left:1em;margin-bottom:1em; margin-top:1em;" align="center" />

    <li>Argumentsにはdev_appserver.pyの起動オプションを書きます。</li>
    <p>
      こちらを参考にしてください。<br />
    </p>
    <p>
      <a href="http://code.google.com/intl/ja/appengine/docs/python/tools/devserver.html" target="_blank">http://code.google.com/intl/ja/appengine/docs/python/tools/devserver.html</a>
    </p>
    ここでは、
    <p>
      <code>${project_loc}/src</code>
    </p>
    と設定しました。
    <li>Applyを押して保存します。</li>
    <li>Debugボタンを押します。</li>
    <li>EclipseのConsoleに起動メッセージが出ればOKです。</li>
    <li>さっそくソースコードにブレークポイントを置いて、正しくデバッグできるかどうかみてみましょう。ブレークポイントはソースファイルの左の余白のところをダブルクリックすると置けます。</li>
    <li>Webブラウザから <code>http://localhost:8080/</code> にアクセスしてみてください。それからEclipseの画面を確認すると、ちゃんとブレークポイントが機能していますね。</li>
</ol>

<img alt="stop_on_break_point.jpg" src="/img/postfile/stop_on_break_point.jpg" width="400" height="172"  style="clear:both;margin-left:1em;margin-bottom:1em; margin-top:1em;" align="center" />

<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  7. Google App Engine 本番環境 (appspot.com)へのアップロード
</h4>

<p>
  開発が終了したら、Google App Engine 本番環境へアップロードします。<br />
  Google App Engine LauncherにあるDeploy機能を使うのが簡単です。
</p>


<!-- ///////////////////////////////////////////////////////////////////////////// -->
<h4>
  おわりに
</h4>

<p>
  いかがでしたでしょうか。<br />
  今回は、Google App Engineの開発環境の構築方法を中心にご紹介しました。
</p>

<p>
  Google App Engineを利用すると小規模なサイトなら無料で運営でき、開発環境も整っていて、とても簡単にサービスが作れます。
</p>

<p>
  是非、お試しください。
</p>
</div>
]]></description>
         <link>http://yumewaza.yumemi.co.jp/2011/02/tweepon-google-app-engine.html</link>
         <guid>http://yumewaza.yumemi.co.jp/2011/02/tweepon-google-app-engine.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Google App Engine</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Google App Engine</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">PyDev</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Python</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Tweepon</category>
        
         <pubDate>Tue, 08 Feb 2011 11:33:06 +0900</pubDate>
      </item>
      
   </channel>
</rss>

