この記事は Eject Advent Calender 2013 4日目です.
自己紹介
こんにちは,そして多分はじめまして.polamjag と申します.
本来なら今日はあっきいさんが2度目の登板の予定だったのですが,急遽ネタができてしまったので参加させていただくことにしました.
モバイル Eject meets Nexus 7
突然ですが,あなたの部屋のその辺で Nexus 7 は余っていませんか? (もしくは現役で使っているかもしれませんね)
もし持っているのなら,今すぐに Ubuntu Desktop をインストールしてみましょう.1時間半くらいで終わります.MultiROM を使って,既存の ROM と共存させるといいでしょう.やり方は http://androidlover.net/tablet/nexus7/dualboot-ubuntu.html に詳しいです.
Ubuntu Desktop をインストールした nexus 7 は,大抵の光学ドライブを認識することが出来ます.試しに,USB ホストケーブルを使って,適当なドライブを接続して Eject してみてください.聞き慣れた機械音と共に,ディスクトレイが排出されるのを目の当たりに出来るでしょう.ちなみに,セルフパワーな USB ハブがあれば,キーボードやマウスを光学ドライブと同時に接続することが出来ます.
というわけで,nexus 7 単体で Eject が難なく出来てしまうことがわかりました.ついでなので,Nexus 7 が遠隔 Eject サーバにならないか試してみました.
端末で,以下のコマンドを実行して Ruby とかをインストールして,アジャイルな Eject デベロップメントに備えましょう.
sudo apt-get install ruby ruby-dev git
そして,
git clone https://github.com/polamjag/ejectweb-sinatra.git cd ejectweb-sinatra bundle install ruby server.rb
と実行してください.ちなみに Nexus 7 で bundle install するのはけっこう時間がかかります.
全部実行すると,おそらく端末には Sinatra が ポート 4567 で listen しているといったことが書かれているのではないでしょうか.環境によっては,標準の状態では localhost からのアクセスしか受け付けないようになっているようです.ejectweb-sinatra/server.rb の require のとこの後に
set :bind '0.0.0.0'
と追記すると,LAN 内のデバイスからアクセスが出来るようになります.
ここで示した Web アプリケーションは Ruby 製の Web アプリケーションフレームワークである Sinatra でできた非常にシンプルなものですが,これを適当に改造していけばうまいこといろいろ出来るのではないでしょうか.ちなみに Nexus 7 は Ubuntu 13.04 をインストールしても Android の時とあんまりバッテリの持ち時間変わらない気がします.
というわけで,Nexus 7 を無事遠隔 Eject サーバにできました.革命とか書きましたがそんなに大したことなかったですね.反省してますん.
今後の Eject Advent Calender 先生の活躍にご期待下さい!