2013年7月2日火曜日

[OSX] "Google ドライブ"のフォルダ名を変更する方法

Outline

日本語環境のOSXにGoogle Driveアプリをインストールすると、
"~/Google ドライブ"という悲惨な名前のフォルダが作成され同期が始まってしまう。
Finderだけの利用ならば全然良いのだが、
terminalでの利用には適さないのでこれを英語化した。

手順

  1. 何もせずに"Google ドライブ"フォルダで同期
  2. Google Driveを一旦停止して、フォルダ名を変更(e.g. GoogleDrive)
  3. Google Driveを再起動
    ここで「フォルダがみつからない」というエラーが発生し、
    フォルダを選択する画面に移動できるようになる
  4. 先ほど作成したGoogleDriveを選択してOK
以上。
「インストール」or「Googleアカウントと同期」のタイミングで自由な名前が選択出来ればよいのだが現状出来なさそう。

2013年7月1日月曜日

[第一回] KOZOS勉強

Outline

組み込みを基本から勉強したいと思い、『組み込みOS自作入門』を購入した。
組み込みの勉強なんて今の時代を考えると流れに反していると自分でも感じるのだが、
仕組みを知りたいという思いの方が強く今年は下回りをじっくり勉強しようと決めた。

この本はH8/3069Fというマイコンを使って、12 ステップに分けてOSを作成するという内容である。そのため、秋月電子通商にてマイコンも購入した。

http://akizukidenshi.com/img/goods/C/K-01271.JPG

開発環境のセットアップ 

開発をするにあたりまずはUbuntuにて環境を構築した。
今日セットアップした内容は以下の項目。
  1. binutils
  2. gcc-h8300-hmc (クロスコンパイラ)
  3. h8write (ROM焼きツール)
1. binutils
 GNUからbinutils-2.19.1をダウンロードし、ビルド&インストール。
  $ ./configure --target=h8300-elf --disable-nls
  $ make
  $ sudo make install

2. クロスコンパイラ
 マイコンについてくるCD-Rにバイナリが用意されていたり、GCCをビルドして用意する
 と色々な方法がある。しかし、自分の環境ではどれも上手く行かなかった。
 色々調べた結果、apt-getで入れることが出来るようなので今回はそちらにした。
  $ sudo apt-get install gcc-h8300-hmc

3. h8write
 ここからソースコードをダウンロードしてビルド。
  $ gcc h8write.c -o h8write -Wall

まとめ

これで開発できる状態になったので、着々と進めていこう。

2013年6月25日火曜日

UbuntuとGoogle Driveを連携してみた

ことのほったん 

以前EC2にredmineを立てて技術系のtipsをそこで管理するという方法を紹介したが、
正直個人運用だとあまり使い勝手が宜しくなく全然利用せずに終わってしまった。

使い勝手が良くないと思った点は

 ・常時AWSを起動しておくとお金がかかる
 ・常時起動しておかないとメモる度に起動・終了を行わなければいけない

性格がまめでないので、1つのファイルにメモしたらどこででも見れるようにしたかった。

Evernote

そうなるとEvernoteが一番にぱっと思いつく。
そこでemacsとEvernoteを連携出来ないかググったところ、evernote-modeなるものを見つけた。
いざ入れてみたが、情報が古かったらしく今は使えないらしい。
正確に言えば、パッチを当ててくれている人がいてそれを当てれば使うことは出来る。
正直、面倒だったのでどうしようと色々悩んだ。

Google Drive

一番身近に使うクラウドサーバはGoogleDriveである。

「でもわざわざメモってアップロードしてってのは面倒臭いなー。」

(どうしようかなー、githubでも使って管理しちゃうかなー。)
(てっか、private repositoryってお金かかるの?駄目だ…)
(…暫く考える)
(…考える)
(…)
(!)

「あれ?そういえばGoogle DriveってWindows/Macで普通のフォルダとして見せることできたな。」
「Ubuntuでも同じことが出来たら、やりたいこと出来るじゃん!」
Ubuntuでもこれ出来れば、マウントしたフォルダの中でメモを取ればどこでも見ることが出来る。
そうすれば自分がやりたいと思っていたことを達成できる。

 Insync

そこで早速『ubuntu google drive』でググると、Insyncというのに行き着いた。
これを使うとUbuntuのフォルダの1つとしてGoogle Driveがマウントされる。
ダウンロードして早速インストールし、設定を終えるとホームディレクトリにInsyncというフォルダが出来ていた。
中身をみると自分のGmailのフォルダが出来ていて、中身にはDriveの内容が反映されていた。

まとめ

これはメモ以外も色々使えそう。
今までプライベートと仕事で開発をしていても、やっぱり設定ファイルや編集途中のものは共有しておきたいと思っていたので、ここを中心に考えれば今までの悩みも解決する。

すごい便利になった。

2013年6月19日水曜日

kernel $ make menuconfig の表示がおかしくなった

タイトルの通り、make menuconfigでconfigを弄ろうとしたら表示がおかしくなっていた。
具体的には、起動はするのだけれどもGUIではなく"@^@^@..." みたいのに囲まれていて、
文字は見えるけれど使い物にならない状態になってしまっていた。

ネットで調べても該当するような情報が得られず悩んでいたが、
一か八かでlibncurses5-devをアンインストールして再度インストールしなおしたら元に戻った。

よくわからないけど、良かった。

2013年5月9日木曜日

FirefoxOSにおけるInput

PandaboardでFirefoxOSを動作させてから暫くたってしまったが、未だにマウスカーソルの表示は出来ていない。
実現するにあたり色々調べたので、下記にまとめる。

 1. kernelは対応しているのか?

どこから対応しているかを区別したかったので、まずはここから調査した。
結論から言うとgitで取れるkernelは勿論HIDに対応していた。
確認方法はPandaboardにマウスを挿して、adbで下記を打つ

 $ getevent -lp /dev/input/event* (*は環境によって違うので適宜読み替えて下さい)

これはb2gが扱えるinput deviceの情報を出力してくれるコマンドである。

【出力確認部】
 EL (0002): REL_X REL_Y REL_HWHEEL REL_WHEEL

2. Input Dispatcher探し

上記のことから、input eventを受けている箇所があるはずなので探してみる。
gecko/widget/gonk/libui/InputDispatcher.cpp とそれらしいファイルを見つけた。
理想としては、inputから上がってくるx座標、y座標の情報を得たいだけなのだが、複雑そうなので一旦断念した。

3. nsAppShell

MDNでFirefoxOSのplatformアーキテクチャを眺めていたら、
めっちゃ該当箇所が書いてあったのでログを仕込んでみた。
gecko/widget/gonk/nsAppShell.cppのnsMouseEvent()内にx, yという引数があるのでこれを出力してみた。
結果、確かにマウスの動きに合わせて座標が変化していた。(1680x1280の範囲で動いていた。)
この情報をみれば、なんとか操作できないことは無いがやはり不便。

調査した内容は以上、widgetから描画に接続するのはどうしたらいいんだろう。
その辺りがわかれば、問題は解決するはず。

2013年4月26日金曜日

Galaxy NexusにFirefoxOSを入れてみた

Galaxy Nexusを買った目的の1つである『FirefoxOSのおさわり』を実践してみた。
今回はソースコードのダウンロードから、ビルドして焼くまでの一連の作業にトライしてみた。
MDNに書いてある手順通りに進めて、問題なく起動できた。
以下、備忘録。

 環境

  1. PC Ubuntu 12.04
  2. ビルドに必要なtoolchain
  3. Android SDK

手順

1. コードのダウンロード

$ git clone git://github.com/mozzila-b2g/B2G.git

2. ビルド

$ cd B2G
$ ./config.sh galaxy-nexus
$ ./build.sh

3. Flashに焼く

Galaxy Nexusの電源を一旦落とし、Volume Up/Donwを押下しながら電源を入れ、fastbootモードで立ち上げる。
PCとUSBで接続し、下記を実行。

$ flash.sh

以上で完了。
自分の環境は既にbootloaderをunlockしていたが、していなくても上手く行く。
予想以上にあっさりと終わってしまった。
起動してみると、ホームアプリの画面サイズがおかしいようで微妙な感じになっている笑
また、Galaxy Nexus物理キーのHomeボタンがなく、かつFirefoxOS自体もHome用のソフトキーが用意されていないので、一度アプリを立ち上げるとホームに戻れないという。。。
一応動作する、という程度の印象。色々ログを仕込んで挙動を見てみよ。



2013年4月24日水曜日

Xperia SolaでClockWorkModを使ってバックアップ

前回、Galaxy NexusでClockWorkModを使ってバックアップを取ったので、今回はXperia Solaでバックアップを取った。
※ Xperia Solaはbootloaderがunlock状態になっていることが条件です。

1. Xperia Sola用ClockWorkModの入手

ClockWorkModの本家ではXperia Sola用のものはなく、xdaに落ちているものを取得してくる。
ファイル名のせいでちょっと「大丈夫か?」と疑ってしまったが、
試してみたら問題なかったので安心して使って大丈夫です。笑

2. Xperia Sola用標準kernelの入手

Galaxy Nexusの時は焼くことなく、一時的にClockWorkModを起動できたが、
Xperia Solaでは一度ROMに焼かなければいけないようなので、
元の状態に戻せるように標準のkernelをここからダウンロードしておく。

3. ClockWorkModをXperia Solaに焼く

Xperia Solaをfastbootモードにする。
# 電源を落とした状態のXpeira SolaのVolume Upを押下しながら、USBを接続する。
$ fastboot boot flash "1でダウンロードファイル"

4. ClockWorkModの起動

Xperia Solaを再起動した後に出る、"SONY"ロゴの画面でVolume Downを押し続ける。
本体が振動した後、ClockWorkModが起動する。

5. バックアップをとる

ClockWorkModで起動した後の手順は、通常のClockWorkModと同じなので割愛。
分からない方は、Galaxy Nexusの回の "4. ClockWorkModでバックアップ"を読んで頂けるとバックアップが取れると思います。


 


6. 標準kernelに戻す

バックアップ完了後、電源ボタン長押して本体の電源を一旦落とす。
fastbootモードでPCと接続してから、2でダウンロードしたファイルを展開した中にあるkernel.sinを焼く。

$ fastboot boot flash kernel.sin

7. バックアップした内容をPCに移す

6完了後に本体を再起動すると、通常通りandroidで起動する。
この状態で、USB接続してadbでバックアップした内容をPCに転送する。

$ adb pull /sdcard/clockworkmod/backup/"バックアップした日時"

以上で、Xperia Solaのバックアップが完了。

2013年4月22日月曜日

Galaxy Nexus(SC-04D) 初期ROM バックアップ

開発用端末として購入したGalaxy Nexus。
ROM焼きに失敗したとき用に、初期ROMをバックアップした時の備忘録。

バックアップにはClockWorkModを使うらしい。
ClockWorkModとはバックアップ&リストアが出来るカスタムのbootloaderなのかな?
以下手順。

1. Galaxy Nexusをfastbootモードで起動

Volume +/- を押しながら、電源投入。

2. ClockWorkMod Recoveryをダウンロード

ここから、Google Galaxy Nexus (GSM)のRecoveryをダウンロード。
# ファイル名は recovery-clockwork-6.0.3.1-maguro.img

3. ClockWorkMod Recoveryで起動

 fastboot状態のGalaxy NexusとPCを接続して、下記を打ち込む。

$ fastboot boot ~/***/recovery-clockwork-6.0.3.1-maguro.img

4. ClockWorkModでバックアップ

ClockWorkMod Recoveryで起動した画面で、"backup and restore"を選択。
(選択の移動にはVolumeキー +/- , 決定は電源ボタン)
続いて"backup"を選択すると、backupが始まる。

5. 再起動

バックアップが完了したら、"+++++Go Back+++++"を選択して前の画面に戻り、"reboot"を選択。

6. バックアップしたファイルをPCに保存

手順4で取ったバックアップは本体に保存されるので、これをPCにコピーする。

$ adb pull /sdcard/clockworkmod/backup/日付

以上で、バックアップ完了。

2013年4月20日土曜日

Xperia Sola root化 part2

前回に引き続き、Xperia Sola root化の備忘録。

まず必要なファイルをここから辿ってダウンロードする。
必要なファイルは
  1. Root_with_Restore_by_Bin4ry
  2. 6.1.1.B.1.10と6.1.1.B.1.54のkernel
  3. Flashtool
 手順は
  1. Flashtoolで6.1.1.B.1.10のkernelを焼く
  2. Root_with_Restore_by_Bin4ryでroot化
  3. Flashtoolで6.1.1.B.1.54のkernelを焼く

1. Flashtoolで6.1.1.B.1.10のkernelを焼く

今回はLinuxで試した。まずFlashtoolを起動する前に、
ダウンロードしたtftファイルをFlashtoolディレクトリにあるfirmwareにコピーしておく。
Flashtoolをrootで実行すると下記の画面になる
雷のようなマークをクリック。
そのままOKをクリック。
6.1.1.B.1.10のkernelを選んでOKをクリック。
電源を落としたXperia Solaを接続(Volume downを押しながら?)。
成功後に再起動すると、文字が崩れた状態で起動する。
感覚でロックを解除して次の手順に進む。

2. Root_with_Restore_by_Bin4ryでroot化

これは前回の手順と同じなので省略。
ただ、今回も復元の途中でエラーが起きて再起動になってしまって「失敗か?」と思ったが、
再起動後無事にSuperSuがアプリ一覧に追加されていた。
しかも、再起動後は文字の崩れも治っていて、そのまま利用できる状態になっていた。
# 6.1.1.B.1.54のkernelの焼き直しは必要ないのかしら?

root化自体はこれで完了。
端末情報を見るとkernelのバージョンは6.1.1.B.1.54になっているが、6.1.1.B.1.10を焼いて起動
した直後にも確認したところ6.1.1.B.1.54となっていたので、焼き直してもこの部分の情報は更新がかからないようだ。
なので、多分root化が成功して、画面もちゃんと映るようになっていてもkernel自体は古いままなのだろう。

 3. Flashtoolで6.1.1.B.1.54のkernelを焼く

手順1のkernel選択画面で、6.1.1.B.1.54を選択して、同じ手順を行う。

以上で、Xperia solaのroot化は完了。

Xperia Sola root化

Xperia Solaをroot化した時の備忘録。


android端末のroot化をしたことがなかったので、
色々調べてみるとXperiaのroot化ツールとしてRoot_with_Restore_by_Bin4ryといものが一般的みたい。
早速ダウンロードして、解凍してみるとファイル構成は以下の通り。

              / ---  RunMe.bat
                  |-- RunMe.sh
                  |-- stuff
                  |-- z_rootkit

LinuxでやるにはRunMe.shを使うみたいなので、XperiaをUSBデバッギング状態で接続して早速実行。


 $ chmod +x RunMe.sh 
 $ ./RunMe.sh

エラーが起きて終了してしまう、原因はRunMe.shの改行コードがCRLFになっていること。
なので、LFに変更してから再度実行。

 $ nkf -Lu RunMe.sh > MyRunMe.sh
 $ mv MyRunMe.sh RunMe.sh
 $ chmod +x RunMe.sh
 $ ./RunMe.sh

実行すると入力を促されるので"1"を打ってenter。
するとXperiaで「バックアップと復元」のアプリが起動されるので、「復元」を押下。
何もなく再起動がかかればroot化成功らしいが、エラーが起きて再起動がかかりroot化出来なかった。

ぐぐってみると、kernelのビルドバージョンが「6.1.1.B.1.154」だとこの方法は塞がれてしまっているとのこと。
別の方法でkernelを書き換えてから、root化し、kernelを戻すやり方があるみたいなので、次回はそれを試してみようと思う。

2013年4月17日水曜日

Unlock the boot loader on Xperia Sola

去年xperia solaを購入したが、特に利用機会がなかったので、開発用端末にした際の備忘録。
xperiaは2011年以降の端末だったら公式でunlock方法があるので、それを参考にした。http://unlockbootloader.sonymobile.com/instructions

前提条件

  1. Windows or Linuxに既にAndroid SDKが入っていて、fastbootが打てる状態になっている
  2. 公式手順ではあるが何が起きても自己責任でお願いします

手順

  1. Service Menuの表示
    発信画面で *#*#7378423#*#* を入力
  2. Unlock可能端末か確認
    Service Info -> Configuration -> Rooting Status
    [Bootloader unlock allowed] の項目がYesであればunlock可能。
    Noである場合はunlock不可の端末。
  3. unlock boot loader keyの入手
    ここまできたら、上記のsonyの手順サイトの下にある[continue]を押して次のページに移動する。
    チェックを入れて進んでいくと、ポップアップ画面が出て情報入力を促される。
    IMEIはRooting Statusでも書いてあるし、発信画面で *#06# と入力すると出てくる。
    出てきたIMEIが15文字だったら、最後の1文字を消したものを入力する。
    [OK]を押すと、入力したメールアドレスにkeyが送られてくる。
  4. unlock
    Xperia Solaの電源を落とし、Volume Upを押しながらmicro-usbを挿す。
    ※ この時、もう一方の口をPCと接続しておくことを忘れずに。
    電源ランプが紫に点灯したら成功。続いて下記のコマンドを入力。

    $ fastboot devices

    で端末が認識されていることを確認した後、

    $ fastboot -i 0x0fce oem unlock 0x"先ほど入手したキー"

    成功すると

    ...
    (bootloader) Unlock phone requested
    OKAY[   *.***s]
    finished. total time: *.***s

    と画面に出る。コマンドを打って一瞬で終わる。
以上で完了。

2013年4月16日火曜日

Galaxy Nexus

今更ながらGalaxy Nexusを購入。


FirefoxOSを勉強するにあたり、Pandaboardだと限界があったため。
また、UbuntuPhoneも試してみたかったので今更感が半端ないが購入。
今日届いたばかりで、これから色々試してみよう。

2013年3月13日水曜日

firefoxOS について

今日は firefoxOS についてつらつら、結論もなく書いてみようと思う。

動機

FirefoxOS が思いの外、話題になって、しまいには有名ニュースサイトのトップまで飾るようになっていて正直驚いたことが発端である。
私の見解では FirefoxOS は非常にグレーな mobile OS であって、個人的には一部のギークに受けるが、一般的には全く受けないと思う。
理由は色々あり後日まとめようと思うが、私が思う流行らない理由は以下の 3 つだ。

流行らないと思う理由

  1. OSS の不透明性
    FirefoxOS は media 関連の module 等(native)はまんま android のソースコードだ。あんまり詳しくみてないが、まんま android なんじゃないかな?と思う。
    android は OSS  と言われているが、メーカーが脱 Google と言っているのを耳にすれば、自然と OSS(笑) というのは安易に想像できる。
    個人的にはいつまで Google が黙っているのだろうかと思う、と同時に、Google に指摘された時点でアウトだと思っている。
  2. Eco System
    アプリが書きやすいのは納得できるし、開発者が楽なことはいいことだ。
    しかし、iOS / android でさえ「ハイブリッドアプリは…」となっている時代に、わざわざ違う環境で、しかもあんまり母体数が少ない端末のアプリ開発に情熱を注ぐ人はどれほどいるのだろう?と個人的に思う。
    「HTML5 だから流用できるだろ、情弱が…」と思われるかもしれないし、自分でも流用性の面は全面的にその認識である。
    ただ、現在 HTML5 を使ったアプリが十分な速度で動作するハードウェアが登場するまでに、FirefoxOS は生き残っているのだろうか…と思う。
  3. Apple / Google の脅威
    とここまで、FirefoxOS 観点で理由を説明したが、個人的に一番流行らないと思う理由はこれである。
    現在、HTML5 と native をつなぐ手段を用意していない両者が、「あーっ!Mozilla にやられたわー。もうお手上げだわー。」みたいな状態になるとも思えない。
    個人的には、しれっとそのパスを用意して、FirefoxOS の強みであるアプリの作りやすさを実現してしまいそうな気がしている。

まとめ

以上、ネイティブな話をつらつらと語ってみたが、個人的には非常に面白い OS だと思っている。ただ、トップニュースになるような話かどうかっていうのは疑問だったので、この記事を書いた。
正直、脱 Google と言っているが、もうそれが出来ない状況になっていると思う。ならば、素直に仲良くやっていたほうがよいと思うし、冷静に判断した方がよいと思います。

2013年2月26日火曜日

FirefoxOS on RaspberryPi

Outline

RaspberryPi 上で FirefoxOS を動かした時の備忘録。

手順

まずは大まかな手順を下記に示し、その後、各手順に関して説明する。
  1. RaspberryPi で Raspbian "wheezy" を起動する。
  2. コマンドライン画面になったら B2G をダウンロード
  3. 起動用プロファイルのダウンロード
  4. 起動
という感じである。以下、詳細を記していく。

 1. RaspberryPi で Raspbian "wheezy" を起動する

  Raspbian wheezy とは RasbperryPi 上で動く Debian wheezy である。
  本家の http://www.raspberrypi.org/downloads からダウンロードできる。
  ダウンロードしたら、解凍して出来る img を SD カードに焼く。以下、sdb と認識された場合の手順。
   $ unzip 2013-02-09-wheezy-raspbian.zip
   $ umount sdb*
   $ dd bs=4M if=2013-02-09-wheezy-raspbian.img of=/dev/sdb
  しばらくすると書き込みが終わる。一連の手順は http://elinux.org/RPi_Easy_SD_Card_Setup に記されていて、
  Windows / OSX での焼き方も書いてあるので適宜参考にして下さい。

  上記で作成した SD カードを RaspberryPi に挿入し、microUSB で電源を入れ起動。
  初期設定画面が出てくるが、今回は何もせずに Finish を選択。
  ※ ここで何もしないと、英語配列のキーボードになってしまうので、
  ※ 日本語配列にしたい場合は キーボードレイアウトを変更して下さい。

 2. コマンドライン画面になったら B2G をダウンロード

  コマンドラインが立ち上がったら、以下のコマンドを実行。
   $ mkdir work & cd work
   $tar xvzf b2g-17.0a1.linuxgl-gnueabi-armhf_v6.tar.gz
   $cd b2g/
   $ldd b2g

 3. 起動用プロファイルをダウンロード

  b2g のディレクトリで以下のコマンドを実行。
   $tar xvzf profile.tar.gz

 4. 起動

   b2g のディレクトリに実行バイナリで b2g コマンドがあるので、
  先ほど落としたプロファイルで起動するようオプションを設定し起動。
   $ ./b2g -profile profile

起動画面



起動が成功すると、こんな感じでディスプレイに対して、左下にちょこっと映し出される。

ちなみに、何度が起動に失敗することもあったり、設定アプリケーションを選択した時点で落ちることもあったので不安定な印象。

FirefoxOS を終了させたい時は、Ctrl + c でターミナルに戻ることが出来る。

まとめ

今回は RaspberryPi で FirefoxOS を起動してみた。
すごい簡単に起動できてしまったし、マウスも効くのでとりあえず動かしてみたいという人にはおすすめ。
まぁ、Firefox のアドオンで動かすこともできるので、そっちの方がお手軽ではあるが。
最近 MWC において FirefoxOS が注目を集めているので、今後の動向に注目してみよう。

2013年2月25日月曜日

0 dark 13

今日はアカデミー賞発表の日であり、『アルゴ』が作品賞を取ったようだ。
とせっかくなので、触れてみたが、今日の本題は惜しくも作品賞を逃した『ゼロ・ダーク・サーティ』である。

先週公開といことで、アカデミー賞の前に観にこうと思い行って来ました。

内容は超簡単に言うと、9.11からビンラディンの殺害までのお話。
言葉にすると一瞬で、誰もが結末を知っている内容ではあるが、
その舞台裏を事細かく描いており、これを見れば簡単ではあるが一連結末までの流れを把握することが出来る。

個人的にはニュースで報道される断片的な話題の舞台裏の一部を、
こうした映画という媒体で観ることが出来て非常に良かった。
内容もどこまで本当かは不明であるが、
結末はわかってるのにドキドキハラハラさせられてしまった。

ジェシカ・チャステインもとても綺麗で満足でした。

2013年2月24日日曜日

Eternal Zero

『永遠の0』を先日読み終えた。
前々から読もう読もうと思いつつも、後回しにしてしまっていたが、
映画化もされるということで、このビッグウェーブに乗るしかないと思い購入。

以下、ネタバレを含む感想です。

私は所謂、戦争を知らない世代の人間であり、
社会化の授業で戦争のことを学んだことがある程度の知識レベルだ。
今思えば、人生経験が浅く、まだ世の中を知らない小学校時代に戦争のことを話されても正直、
ピンと来るはずもなく、社会科の授業で学ぶ知識の1つ以上で、それ以下でもなかった。

しかし、歳を重ねる毎に様々な経験をすることで、考え方も変わってくる。
昔では泣かなかったドラマのシーンで、泣いたりすることもある。

と前置きが長くなってしまったが、この本は、私のような戦争を知らない世代で、
大人になった人々に読んでほしいと思う一冊である。

百田さんの文章は読みやすく、読んでいるうちにどんどん引きこまれていく。
ページ数は500ページ以上と長編ではあるが、この本はそれを感じさせないくらい、一気に読めてしまった。

宮部久蔵を巡る、様々な語り手から語られる当時の記憶は、様々な切り口で構成され、
各話どれをとっても当時の悲惨さ、人々の心の強さが描かれている。
なんて壮絶な時代だったんだろう、自分よりも若い世代がここまで立派だったのかと、
今の自分の環境、立場と比較して、なんだか後ろめたい気持ちを感じざる負えなかった。

ただ、最後だけは自分としては正直納得のいかないところもあった。
この本を通しての大きな謎である、「宮部の特攻の理由」である。
※ 別にこれは批評とかでなく、単純になんでだろう?と疑問が残ったので書いている
※ 否定すれば勝ってるつもりになってる中二病的な感覚ではないことはご容赦

この本の半ばで、宮部は「特攻を命じられたら、どこの島でもいいから不時着しろ」と部下に対して諭す場面がある。
それに対して、最後にあっさりと宮部は特攻してしまう。

これに関して、「特攻を命じられた時には宮部は仲間の死を見すぎて生への後ろめたさがあった」、
「自分を救った部下との運命の再会に自分の命を捧げてもよいと感じた」、
「自分以外の命で誰かが救えるならばそちらの道を選んだ」、など色々な解釈はあると思う。

ただ、なぜ不時着を選ばなかったのかという明確な理由は記されていない。
読者の想像に任されている部分なのだと思う一方で、やっぱり納得がいかないと思う自分もいる。
自分がこの納得の行かない感覚に陥ったのも、この宮部という人物に引きこまれていたからだと思う。
この人には生きていた欲しかった、死ぬならばちゃんとした理由を知りたかった、というのが本音なのである。

長々と書いてしまったが、個人的には非常に素晴らしい本だったと感じています。
色々考えさせられる内容もあり、これからの自分の人生に活力を与えてくれる一冊となった。
映画も今年の12月に公開予定とのことなので、是非映画館に観に行きたいと思う。



2013年2月23日土曜日

zsh における $ source build/envsetup.sh 時のエラー対処

Outline

android ソースコードビルド前の準備で、 zsh を使っていると
$ source build/envsetup.sh がうまく行かないので、それの対処法を記す。

問題

android のソースコードを build する際に、 zsh を使っていると、
$ source build/envsetup.sh 時に下記のメッセージが出力される。

 WARNING: Only bash is supported, use of other shell would lead to erroneous results
build/envsetup.sh:1154: no matches found: vendor/*/vendorsetup.sh
tail: `dir' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません
tail: `f' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません

確かに vendor/*/vendorsetup.sh というファイルが存在しないので、
このエラーメッセージ自体は正しい。
ただ、 envsetup.sh を見てみると本来、この行でやりたかった処理は下記の一行である。
$ /bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorsetup.sh device/*/*/vendorsetup.sh 2> /dev/null

これとエラーメッセージを比較すると、
$ /bin/ls vendor/*/vendorsetup.sh
がコマンドとして打たれた時に、出力されるエラーメッセージと同じである。
つまり、 zsh では複数の引数を与えた時に、どれか1つでも実行できなかったものがあると、
全体がエラーとなってしまうらしい。
この状態では android を build するときの target を選べない。

解決策

.zshrc に以下の一行を加え、反映させれば解決する。

setopt nonomatch

これを追記した後の実行結果は以下の通り。

 WARNING: Only bash is supported, use of other shell would lead to erroneous results
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
tail: `dir' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません
tail: `f' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません




2013年2月16日土曜日

FirefoxOS on Pandaboard

FirefoxOS on Pandaboard

Outline

Pandaboard で FirefoxOS を動かすための手順の備忘録。

FirefoxOS に関して

最近話題なので説明の必要は無いと思うが、Mozilla Foundation が開発する
HTML5 base の application platform である。
去年まではそこまで情報がなかったが、最近は話題にも上がることが多くなり、
情報も気軽に手に入れられるようになっている。下記の GitHub が色々な情報
がまとまっているので一読しておくと概要は把握できると思う。
https://github.com/dynamis/firefoxos/wiki

準備

今回は FirefoxOS のソースコードを落としてきて、build したものを起動させる
ことが目標であるが、それをするには以下の項目が必須条件となっている。

 (a) FirefoxOS を build できるマシンと Pandaboard  (※書く必要は無いと思うが一応)
 (b) Pandaboard で起動できる Android ICS イメージ

現状ではまだソースコードを落としてきて、
それを build してイメージを SD に焼くという手順は公開されていないため、
今回は fastboot を利用した起動までの手順を説明する。
ちなみに、メインは FirefoxOS の話なので、今回は (b) の準備は既に行なっている
ものとして話をしていく。
(b) に関しては OMAP のサイトや、ぐぐれば結構出てくるのでそちらを参考にしてほしい。

ソースコードの取得

$ git clone git://github.com/mozilla-b2g/B2G.git

configuration

$ cd B2G
$ ./config.sh pandaboard

build

$ ./build.sh
普通ならば  build 完了なのだが、最近 imgtec の graphics library を取得できず、
エラーですぐに build が止まってしまう。
そのため、 /device/ti/panda/download-blobs.sh を以下のように編集して回避する。
+ download-blobs.sh:PANDA_BLOBS="imgtec-panda-20120430-67545da7.tgz" 
- download-blobs.sh:#PANDA_BLOBS="imgtec-panda-imm76i-67545da7.tgz" 

+ cd ../../..
- cd ../../.. &
- install_blobs panda "$PANDA_BLOBS" "$CSUM_LIST" 

また、prlog.h がないためにエラーになったら libnspr4-dev を入れると解決する。
(追記)
 2013/04の時点で上記は修正されているので、特になにもしなくてもbuild出来る。

起動

まず Pandaboard で Android (ICS) を起動する。
その状態で、PC(USB) と Panda (mini-USB) を接続する、このとき $ lsusb で
Texas Instruments(Pandaboard) が認識されていることをきちんと確認しておく。
Android が立ち上がり、かつ接続も確認できたなら

$ ./flash.sh

で fastboot での処理が始まるので、しばらく待ち処理が完了すると、自動で再起動が行われ
FirefoxOS が立ち上がる。
画面が横向きで、かつマウス等のインプットも受け付けないので、残念ならがここまでしか試せない。

まとめ

マウス操作が出来ず、どんな具合かをみることが出来ないのが非常に残念。
最近では Raspberry Pi で動かしている人もいるようで、その動画をみるとマウスも
つながっているっぽいので、今度はそっちで試してみよう。
また、時間があるときにコードを読みがてらマウスを繋ぐ実装をしてみよう。

2013年2月6日水曜日

ヒャダイン



youtube でたまたま引っかかったので見てしまった。
話してる姿を見るのは初めてだったけど、すごい共感できる内容だった。
「日本は歌が下手な人でも歌える」のを良い方面から見ているのは、すごい新鮮な視点だった。
今度、CD聞いてみよ。

2013年1月5日土曜日

[aws] EC2にredmineをたてる

Outline

溜まっていく tips を redmine で見やすく、記録しておきたいので、
いつ・どこからでも参照できる様に EC2 に redmine をたてたので以下メモ。

手順

以下の3つの項目に分けて作業を行った。
EC2 Instance 作成や、Web サーバを既に立ている場合は 1 及び 2 のステップは省略可。
  1. EC2 Instance 作成
  2. Web サーバ動作確認
  3. redmine インストール

1. EC2 Instance 作成

EC2 のインスタンスをほぼ default のスペックで作成する。
この時、セキュリティモデルで http アクセスを許可しておく。
詳細なやりかたは、
ドットインストール 『Amazon Web Service の基礎』のレッスン#2 ~ #5 を見れば丁寧に解説してくれているので、
それを参考にすれば特に問題はないと思う。

2. Web サーバ動作確認

いきなりredmineを立ててアクセスするのでも問題ないが、
着実なところをしっかりとミスしないで構築して行きたかったので、
まずは EC2 上の Web ページにアクセスできるかを確認した。
これも先ほどの、ドットインストール『Amazon Web Serviceの基礎』レッスン#6で行われているので、
それを参考にすれば特に問題はないと思う。

3. redmine  インストール

今回作成した Instance は OS に Amazon Linux ami を選択しているので、
redmine 公式ページにある CentOS へのインストールの仕方を全て行えば
すんなりとインストールすることが可能。
ただ、何点か CentOS とは異なる、または必要ない箇所があるのでその点だけ下記に記す。
  1. SELinuxを無効にする
    ⇒ 必要なし(?)
  2. iptables で HTTP を許可
    ⇒ 必要なし
  3. 日本語フォントのインストール
    ipa-pgothic-fonts をインストールしようとすると no such package でインストールできない。
    これは多分 rpm とかで直接インストールすればいいのだろうけど、面倒だったので
    vlgothic-p-fonts をインストールし代用した。
  4. ruby のビルド
    doc 込で build しようとするとエラーが出るので、説明の通り--disable-install-doc オプションをつけて build した。
    エラーが出ていても doc 以外は build 完了しているので、無視してもいいが一応。
  5. 設定ファイル config/configuration.yml の作成
    ipa-pgothic-fonts の指定をしている箇所を vlgothic-p-fonts に変更。
以上。
すべての手順がうまく行っていれば、『2. Webサーバ動作確認』でアクセスしたURL
にアクセスしなおせば redmine が立っている。

まとめ

個人的に redmine のインストールは苦手。
理由は明白で、ruby on rails / apache 等の知識がないからだ。
詳細な解説があるから、なんだかんだで立ち上がってしまうが、
根本原理を理解していないので問題が起きた時に突き止めるのが非常に手間がかかる。
時間がある時に、勉強しなければ。