Pages

2011年11月13日日曜日

Androidアプリ開発環境

Androidアプリケーションの開発に興味が出たので,Androidアプリケーションの開発環境を構築しました.

Androidの開発環境を導入する手順[1][2]は要約すると以下の通りです.

① "JRE"のインストール(eclipse実行用)
② "Eclipse IDE for Java EE Developers"をダウンロード
③ Eclipseに"ADT Plugin"をインストール
④ "Android SDK"をダウンロード
⑤ "Android NDK"をダウンロード(使わない人は導入しなくて良い)

Androidの開発環境の導入が終わると,EclipseからAndroidエミュレータを起動することができます.

しかし,このエミュレータの起動が遅い!
起動コストが高すぎる!

この対処法として,VirtualBoxにAndroidOSをインストールして起動コストを下げる方法[3]を実行しました.
これの導入には少し手間取ったので,次の投稿に導入の詳しい説明を記述しようと思います.


[参考資料]
[1] 安生真, 柴田文彦, 藤枝崇史: 初歩からわかるAndroid最新プログラミング, インプレスジャパン(2010)
[2] マンガで分かるAndroid開発環境構築方法: http://crocro.com/write/android/wiki.cgi?p=%A5%DE%A5%F3%A5%AC%A4%C7%CA%AC%A4%AB%A4%EBAndroid%B3%AB%C8%AF%B4%C4%B6%AD%B9%BD%C3%DB%CA%FD%CB%A1
[3] 仮想環境へAndroidをインストールしてエミュレートを高速化する: http://sites.google.com/site/technoute/android/emulator/virtualbox

タイトル・デザインを変更

タイトルとデザインを変更しました.

デザインは「Bloggerのお勧め」をポチポチクリックしていった所,こんな感じになりました.
Twitterとかアクセスカウンターのガジェットは消えたけど\(^o^)/

問題無し.

2011年8月9日火曜日

モンティ・ホール問題

確率の本を読んでいるとモンティ・ホール問題に出会ったので,暇つぶしにプログラムを作ってみる.

モンティ・ホール問題 ~進行の手順~
①三つの扉が用意される.このうち,一つが当たり.残りの二つがはずれである.
②あなたが一つの扉を選ぶ.
③司会者が残りの二つの扉のうち,はずれの扉を開ける.
④この時点で,あなたに扉を選び直す権限を与えられる.
⑤「あなたは扉を選び直しますか?」

こんな感じの問題.


Javaで作成.
import java.util.Random;

public class MontyHall {

    boolean chengedoor;
    int loopcount;
    int success = 0;
    Random rand= new Random();

    MontyHall(boolean changedoor, int loopcount){
        this.chengedoor = changedoor;
        this.loopcount = loopcount;

        execute();
        printResult();
    }

    private void execute(){
        for(int i=0 ; i<this.loopcount ; i++){
            //答えをセット
            int answerNo = this.rand.nextInt(3);

            //ユーザが選択
            int userNo = this.rand.nextInt(3);

            //司会者が一つ選ぶ(答えの扉以外)
            int obserNo = -1;
            if(answerNo == userNo){
                int r = this.rand.nextInt(2);
                switch(answerNo){
                case 0:
                    if(r==0) obserNo=1;
                    else obserNo=2;
                    break;
                case 1:
                    if(r==0) obserNo=0;
                    else obserNo=2;
                    break;
                case 2:
                    if(r==0) obserNo=0;
                    else obserNo=1;
                    break;
                }
            }
            else{
                obserNo = 3-(answerNo+userNo);
            }

            //回答チェンジ!
            if(this.chengedoor)
                userNo = 3-(userNo+obserNo);

            // 答え合わせ
            if(userNo == answerNo)
                this.success++;
        }
    }

    private void printResult() {
        String type = "";
        double sucper = (this.success / (double)this.loopcount)*100;
        if(this.chengedoor){
            type="Change! ";
        }
        else{
            type="NoChange";
        }
        System.out.println(type+":"+sucper+"%");
    }

    public static void main(String args[]){
        int loopcount = 100000;
        new MontyHall(true,loopcount);
        new MontyHall(false,loopcount);
    }

}

上記の通り,10万回試行してみる.
結果は…

Change! :66.982%
NoChange:33.283%

この通り.
当たりの扉を選びたいならChange!

2011年7月28日木曜日

JSONObjectでサンプルを作成

JSONObjectの使用方法を(Steins;Gateを見ている人に)説明するための,サンプルを作成した.


   // 研究所json
   JSONObject lab = new JSONObject();


   // 人物情報json
   JSONObject okabe = new JSONObject();
   okabe.put("name", "岡部 倫太郎");
   okabe.put("nickname", "オカリン");

   JSONObject mayusii = new JSONObject();
   mayusii.put("name", "椎名 まゆり");
   mayusii.put("nichname", "まゆしぃ");

   JSONObject daru = new JSONObject();
   daru.put("name", "橋田 至");
   daru.put("nichname", "ダル");

   JSONObject chris = new JSONObject();
   chris.put("name", "牧瀬 紅莉栖");
   chris.put("nickname", "助手");


   // らぼめんjson
   JSONObject labmember[] = new JSONObject[4];
   labmember[0] = okabe;
   labmember[1] = mayusii;
   labmember[2] = daru;
   labmember[3] = chris;

   lab.put("研究所名","未来ガジェット研究所");
   lab.put("所在地" ,"東京");
   lab.put("タイトル", "Steins;Gate");
   lab.put("ラボメン",labmember);


   print(lab);

出力結果(chromeで表示)

GAE/J JSON出力

GAE/Jを操作する上でのメモ.

GAE/J上でJSONを出力させるために,JSONICライブラリを使用しようとすると以下のように注意される.
net.arnx.jsonic.JSON is not supported by Google App Engine's Java runtime environment
どうやらサポート対象外らしい.

仕方なく他のライブラリを探していたところ,GAEのAPIにJSONObjectを扱うものを見つけたので使ってみる.(パッケージ名:com.google.appengine.repackaged.org.json)

結果,問題なくPOJO⇔JSONへ変換できました.やったね!

おしまい.

2011年4月28日木曜日

iPad2 発売!

本日やっとiPad2が発売されました。
朝のテレビニュースで紹介されているのを見たところ,カメラ機能が搭載されてるようです。

あー、ソフマップに触りに行きたい!

なんでiPad2が欲しいの?と父親に聞かれたので理由を挙げると、
・ノートPCより軽い
・起動が早い
・PDFを印刷する手間とコストを省くことができる
・楽しそう
・触りたい

といった感じ。
この中では、後者二つの理由が大きな要因かな。
タッチパネル操作の処理がスムーズだと、触ってるだけで楽しいもんね。

2011年4月25日月曜日

腰痛の結果

午前中に整形外科へ行き、レントゲンを4枚取ってもらったところ、
「運動不足による筋力低下が原因ですねー。骨には全く異常ないですよー。」
とのこと。

あれー?ヘルニアかなーとか思ってたのは何だったのか。
ただの運動不足でした。良かったー!
よく柔軟しときます。


それにしても、レントゲンの写真を見たところ、人間の背骨は本当に太いということを実感した。
こんな太い骨が折れるなんて、KOFのクラークさんのアルゼンチンバックブリーカーぐらいしか想像できない。

2011年4月22日金曜日

腰痛?

前から慢性的に腰痛かなーと思っていた痛みが昨日から悪化した。
足を伸ばしながらだと、20度ぐらいしか腰が曲げられない。
この場合は、どこで診てもらえば良いんだろう?整骨院?整体?
整体は中学生の頃に行ってぼったくられた感があったので、あまり行きたくないなぁ。

2011年4月18日月曜日

仮想マシンの導入

授業でLinuxが必要となったので、仮想マシンを導入することにしました。
(あと、eclipse, ruby, emacs も導入)

仮想化用のソフト:VMware Player(v3.1.4)
仮想OS:ubuntu-ja-8.04-vmware

ちゃちゃっとインストールして、ubuntuを起動。
この壁紙はセンスが良いと思う。やるなうぶんつ。

[以下、導入の設定メモ]
・ubuntuのアップデート。
#  sudo apt-get update
#  sudo apt-get upgrade

・Emacsのインストール
#  sudo apt-get install emacs

・Emacsでの漢字入力にAnthyを使用
#  sudo apt-get install language-env
#  set-language-env (Emacsに適用するようにY/Nに応える)

・EmacsでAnthyを使用するために必要なものをインストール
#  sudo apt-get install uim-anthy, uim-xim, ja-trans, manpages-ja, jless, kterm, anthy-el


と、ここまで導入してから以下のサイトで神ツール「Synaptic」の存在を知る。
個人的Linux: Ubuntu で Eclipse (←本当に助かりました!感謝!)
どんなツールかと言うと、パッケージのインストールと管理を行ってくれるものである。


Synapticで以下のものをインストール
Eclipse
・eclipse
・eclipse-common-nls
・eclipse-jdt
・eclipse-pde
・eclipse-platform
・eclipse-rcp
Ruby
・ruby
ボタンにチェック入れるだけでインストール完了。
便利すぎわろたwww

emacsもこれでインストールできるので、Synapticだけで今日の作業が終わるね。
神だわ…

よし、これで授業に出れるぞー



2011年4月17日日曜日

Nintendo 3DS

先月(だっけ?)発売した3DSを体験プレイしに、日本橋のソフマップへ行ってきました。
まだ置いてるかなーとドキドキしながら到着してみると、体験プレイに8台用意してありました。

やったー!さすが任天堂さんやでー!

全部に違うソフトが入ってるみたいだったので、空いてる台からやっていくことに。
最初にプレイしたのは「ウイニングイレブン 3Dサッカー」。



サッカーゲームはあまり好きじゃないけど、フィールドが立体的に見えたので「スゲー!!」と、つい興奮してしまった。
あまりに興奮しすぎたせいで、相手の足に殺人スライディングをかまして一発退場。

この試合は次の人に任せて他のゲームへ。


次は「スーパーストリートファイターIV 3D EDITION」


キャラクターが3Dで見れるという状況だったのに、何で俺は「ケン」でプレイしてたんだろ…と今更後悔。
操作感としては、タッチパネルを触るだけで技が出て面白かった。
CPU相手に余裕のノーダメ勝利。

格ゲーに十字キーなんて必要なかったんだな…


と、こんな感じでなかなか面白かったです!!
何か批判的な内容になってる気がするけど、気のせいにしよう。

2011年4月15日金曜日

コーヒー -マクドナルド編-

通学中に電車の乗り換えをミスってしまった…。
次の電車まで時間があるので、周りを見渡したところ、駅の正面にマクドナルドを発見したので久々に行ってみる。
そこで、プレミアムローストコーヒー(120円)のみを購入。

久々にマクドナルドのコーヒーを飲んだけど、120円にしては美味しく感じる。
安さのせいだろうか?

2011年4月14日木曜日

カフェインと睡眠

このブログは、タイトル通りに「脳を改造する」…
簡単に言えば、人間の体のことを理解して活動の質を高めよう! ということを書こうと思っていたので一つ。

・カフェインと睡眠について

カフェインを摂取すると眠らなくなる、ということはよく聞くけど、持続時間については知りませんでした。
どうやらカフェインの効果は5~7時間は続くようです。

そんなに長続きするの…

なかなか入眠できない人は、夕方以降にはカフェインの摂取を控えた方がよさそうですね。

ただ、カフェインの効果は個人差が大きいと思います。
うちの母親はコーヒーを飲んで30分後には寝てるんで(笑)



参考にした本はこちら



本の内容としては、睡眠の重要さを主に、夜中に目が覚める、朝起きれない、眠気が取れない、なんで目覚ましで2度寝しちゃうのなどの原因を説明し、解消方法も提案してくれています。

また、睡眠薬についても書かれており、「自殺するために睡眠薬を大量に飲んで病院のベッドに寝て帰る人がいる。現在の睡眠薬では死ぬことはないんです」
という内容には、思わず笑ってしまった(笑)

生活する上での最低限の睡眠に関する知識を得るのには、なかなか良い本じゃないかな。




2011年3月8日火曜日

形態素解析器GoSenを使ってみる

Javaで使用できる形態素解析器を探していたところ,GoSenというものを発見。
どうやらMeCabをJavaに移植したものらしい。
では、早速使わせて頂くことにしよう。

GoSenを使用するのに以下のサイトを参考にさせて頂きました。

このサイトの通りにやれば上手く導入できるのですが、いくつかの注意点だけ書いてみる。


・Windows環境にApache Antのインストールする
  こちらに分かりやすい手順が説明されています。

・antコマンドを使用すると"Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar"という出力を返す
確かにjreの中にtools.jarが無いので解決策を探していると、こちらのページに書かれていたので 参考にさせて頂きました。
jdkをインストールして、パスを通したところ正常にコマンドを実行できました。


辞書を作成して,実行したところ…
おおー、良いね!
やはりJavaで使えると嬉しいもんだ。


追記
Eclipseの標準入力をUTF-8にするために eclipse.ini ファイルに-Dfile.encoding=utf-8の記述を追加

2011年3月1日火曜日

Pythonをさわってみる

以前に@sskmpと「TwitterのBotを作成しよう」と言っていたので、取り組み始めました。

Pythonでプログラムを書くみたいなので、便乗させてもらって俺もPythonに手を突っ込んでみたり…。
新しい言語を覚えるときってドキドキするよね(笑)。

Eclipseで開発環境は整うので、以下のサイトを参考にしながら早速導入してみる。

Pythonでの開発のためにEclipseとPyDevをインストールする - Layer8 Reference

EclipseにPydevをインストールしようとすると、http://pydev.sf.net/updatesからリモートインストールできない… と思ったらページが無いではないか。
PyDevのサイトへ行くと、どうやらアドレスはhttp://pydev.org/updates  へ変わってたみたい。皆気をつけろー!


インストールが完了したので,簡単な出力を実行してみる。


うひょー、よろしくPython!


図書館にPythonの入門書を借りにいこうとしたら,全部貸し出し中だった(笑) なんでやねん!
皆Python好きすなぁ




2011年2月10日木曜日

音声認識の精度

ブログを開設しつつ,何を書こうかな~と思いながら数日が経ってる…まぁいいよね。

先日,スマートフォンのGoogle音声検索を使わせてもらいました。感想は,「すごい!」の一言に尽きます。認識精度が高すぎる…。
音声認識はフリーで使用できるJulianで試したことがありますが,これがなかなか正しく認識してくれない。こちらの発音を良くして認識させようと頑張ったりしました(笑)。
それに比べてGoogle音声検索はこちらの発音が多少悪くても正しく認識している感じがします。誤認識というストレスがほとんどない。音声認識のアプリが本格的にいろいろ出てくると思うとテンションが上がってきますね。けど,電車の中で携帯に向かって声を出している人が多くなってくるのかなーって思うとなんとも…(笑)


2011年2月6日日曜日

開設完了

とりあえず開設しました!
私の感じたままのことを投稿していこうと思っています。
よろしくね。