離島プログラマの雑記

島根県の離島、隠岐・西ノ島に移住して子育て中のフリープログラマです。

離島暮らし雑感

f:id:k-aeg:20150505120351j:plain

とある事情により、7年ほど勤めていた会社を退職し、島根県の離島・西ノ島に移住しました。 これからしばらくはフリーランスとしてアプリ開発などをやっていきます。

移住してから一週間ほど経過しましたが、引越し後の整理や仕事場の構築に時間がかかっており、まだあまり島らしいことはしていません...

自分は生まれてこのかた、関東圏でしか暮らしたことがありませんでしたが、離島暮らしについて一週間で分かったことなどを書き出してみます。

西ノ島について

西ノ島は、島根県の松江から北に60kmほどに位置する、隠岐諸島に属する島です(噴火で絶賛成長中の西之島と間違えられますが、あれは小笠原諸島無人島なので東京都です)。

隠岐諸島はさらに島前(どうぜん)、島後(どうご)という地域に大別されます。島前は西ノ島(西ノ島町)、中ノ島(海士町)、知夫里島(知夫村)の3島で構成され、島後は隠岐の島(隠岐の島町)1島のみです。

西ノ島の人口は3,000人ほどですが、半数くらいが65歳以上でけっこう高齢化がすすんでいます。一方でIターンやUターンの移住政策によって若い人も増えつつはあるようです。

主な産業は漁業と畜産で、それぞれイカ漁と牛馬の放牧(繁殖経営)が中心のようです。島のPRキャラクターは特産品のイカにちなんで「活イカ活っちゃん」がいて、ツイッターアカウント(活イカかっちゃん (@katsuikakacchan) | Twitter)もありますが、ツイート数が3つしかなかったりであまりやる気が見られません。そもそも名前に地名入ってないけどいいの?とかのつっこみは置いておくとして、キャラクターはかわいいと思います。Tシャツ欲しい。

交通

西ノ島までは、松江の七類港または鳥取県の境港からフェリーで3時間くらいかかります。高速船を使うと1〜2時間くらい(季節により航路が変わる)で着きますが、料金はフェリーの倍です。 また、島前の各島間もフェリーや内航船で結ばれています。おとなりの海士町までは数分です。奥さんはフェリー通勤してます。

島内はアップダウンが多く、移動は車必須なかんじです。軽自動車を買いました。

住宅事情

民間のアパートなどが無いため、公営住宅か空き家になりますが空きがない場合もあります。家賃は関東都市部の1/5〜1/10くらいとかなりリーズナブル。 プログラマにとっては生命線となるインターネッツは、ちゃんと光ファイバーが来ております。

引っ越しはフェリー経由したりがあるので、2tロング車1台分で50万ほどかかりました。驚きびっくりプライスですが、最初の見積もりでは4tで90万と言われておりました。が、さすがにツラいので、家具類を全部バラしたり大物を廃棄したりで2tロングになんとか収めました。おかげで組み立てにかなり時間がかかっています。

お買い物

島内にはコンビニなどチェーン店ぽいものはありません。食料品はスーパーが1件とコンビニ的ポジションの個人商店があります。物価はモノによりますが、乾物系は本土とほとんど変わらず、ナマモノ系は1〜5割増しくらい。お肉は冷凍しかなくてちょい高めです。あと、魚介類は豊富かとおもいきや、島でとれたものは流通しておらず(本土で売ったほうが高く売れるとか)、わりと高めです。個人商店では日用品もかなり品揃え豊富なので、買い物に困ることはまずないです。しかし、服屋はないので通販や本土で買ってくるそうな。

送料

離島で気になるのが通販などの送料ですが、ぶっちゃけ高いです。ソファを買おうとしたら1万ウン千円の送料がかかりますし、小物でもすぐに数千円になります。が、Amazon Prime を使うと離島でも送料無料になることが分かりました。送料無料なのが Amazon Prime 対応の商品に限定されることと、年会費4000円くらいかかりますが、あっという間に元がとれます。ちなみに Amazon の回し者ではありませんです。

娯楽

娯楽施設的なものはスナック的なもの以外はほとんどないですが、自然豊かというか自然まみれなので、釣りしたり山に登ったり、海でクシクラゲを眺めたりで十分楽しいです。

観光

西ノ島はスケールの大きい国賀海岸など見どころが多いです。これはまた後日。

Google Cardboard を作ってみた

f:id:k-aeg:20140721131316j:plain

先日の Google I/O での発表後から気になっていましたが、時間ができたので作ってみました。出来上がりは上の写真の通り、あまり見栄えが良いとは言い難いけれど、案外ちゃんと使えます。

作り方や型紙のダウンロードは公式サイト(https://developers.google.com/cardboard/)で。

ダンボールは家に転がっていたサラダスピナーの箱を使用。 他の材料はダイソーで調達しました。

  • レンズ用に「とげ抜きルーペ」× 2
  • マジックテープ(手芸用)
  • マグネット

レンズはネットで見る限り、国内ではダイソーのミニルーペを使用している人が多いようですが、お店で見つからなかったので「とげ抜きルーペ」で代用しました。このレンズの実際の焦点距離はよくわからないですが、自分の視力(0.7)ではほぼピントは合っているように見えます(Cardboard 推奨は焦点距離 45mm です)。ちょっとダンボールのレンズ穴より径が小さいので、グルーガンで固定するなどしました。また、レンズが小さいせいかピントの合う領域は若干狭めで、画面端の方はボケてしまいます。

Cardboard に対応する Android 4.1 以上の端末は持っていなかったので、わざわざ秋葉原で調達しました。2013年発売の AQUOS PHONE 203SH を買いましたが 1万程度で売っていたのは少し驚きです。画面は 4.9インチの IGZO でなかなか綺麗だし、CPU も APQ8064 1.5GHz(クアッドコア)が載っているので VR 用途にもパワーは十分です。

難点は 、203SH が Cardboard の動作検証済み端末でないせいか、CardBoard 公式アプリでは視差が大きく取られてしまって 3D に見えない点です。最初はレンズの焦点距離などの問題かと思って色々試行錯誤していましたが、Youtube に上がっている CardBoard アプリの動画では正常に見えたので、どうも Cardboard のアプリ側に何か問題があるようです。

また、マグネットによるスイッチが、デフォルトの設置場所だと全然反応してくれませんでしたが、試しに反対側にマグネットを設置してみたところ反応するようになりました。この辺は、使用する機種によって差がありそうです。

とはいえ、その他の VR 対応 Android アプリは正常に動作しているので十分に実用的です。ちなみに Google Play には、Cardboard と同じ動作原理の Durovis Dive という製品向けのアプリがそこそこリリースされているので、それらも体験できます。対応ゲームの一覧も用意されていてナイスです(http://www.divegames.com/games.html) 単に VR というキーワードでも結構見つかります。

また、Durovis Dive の SDK を使用すると、Unity 無料版でも VR 対応アプリが作れるようなので、今度試してみようと思います。

UnityでGoogle Cardboard用のコンテンツを作成する : エイバースの中の人

最後におすすめのアプリをいくつか。

Tuscany Dive 1.0
カテゴリ: ライブラリ&デモ
Google Playで詳細を見る
家と庭を歩き回れます。足元にあるスイッチを見ると進んだり止まったりを制御できます。

Dive City Rollercoaster 1.6
カテゴリ: アーケード
Google Playで詳細を見る
VR 定番のジェットコースターです。立ったまま見ていると、落ちるときにフラッと来ます。

Dive Deep 1.0
カテゴリ: アドベンチャー
Google Playで詳細を見る
イルカやシャチが突進してきます。結構迫力があります。

背景の透明化

GIMP 2.8 (for Mac) で画像の背景を透明化する方法のメモ。

準備として以下の操作をする。

  1. レイヤにアルファチャンネルを追加([レイヤー]→[透明部分]→[アルファチャンネルの追加])
  2. 画像のモードを RGB にする([画像]→[モード]→[RGB])

ここからのやり方は主に2つ。

色を透明度に

背景が単色の場合はこのやり方が楽。

  1. レイヤーを選択
  2. [色]→[色を透明度に]を選択
  3. ダイアログで背景色を選択して[OK]

選択ツールで削除

元が JPEG だったりして背景が完全に単色でない場合はこっち。

  1. ツールボックスから[ファジー選択]を選択
  2. 透明化したい背景部分を選択
  3. もし綺麗に選択できなければ、ツールオプションで[しきい値]を増やして調節
  4. delete キーを押して選択部分を削除

Raspberry Pi 無線 LAN 設定おぼえ書き

設定前の準備


Raspberry Pi の OS

Raspbian を使用。ホスト側は Mac

無線 LAN アダプタ

ヨドバシで700円ちょいで売っているちっこい無線 LAN アダプタを買ってみた。
最近のは安いし速いしちっこいしですごいなぁ。

[asin:B003NSAMW2:detail]

構成

Raspberry Pi の USB ポートに無線 LAN アダプタとキーボードを接続。

設定


無線 LAN の設定

/etc/wpa_supplicant/wpa_supplicant.conf に ESSID とパスワードを登録する。
wpa_passphrase コマンドを使うと、設定に記述するフォーマットで出力してくれる。
コマンドの出力はそのまま /etc/wpa_supplicant/wpa_supplicant.conf に追記すればOK。
ESSID には無線 LAN の ESSID、pass にはパスフレーズを指定。

#sudo wpa_passphrase ESSID pass | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf

変更後の内容を確認。

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

中身が以下のようになっていれば成功。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="ESSID"
    #psk="password"
    psk=907998845ecfdc66f243ac57e6a5aab06c864049caf01a671a179358da6808e1
}

これにいくつか設定を書き足す。
以下は認証方式: WPA-PSK、暗号方式: TKIP の場合の例。

network={
    ssid="ESSID"
    proto=WPA
    pairwise=TKIP
    group=TKIP
    psk=907998845ecfdc66f243ac57e6a5aab06c864049caf01a671a179358da6808e1
}

各方式毎の設定値は以下の通り。

  • 認証方式
    • WPA-PSK
      • proto=WPA
    • WPA2-PSK
      • proto=RSN
  • 暗号方式
    • TKIP
      • pairwise=TKIP
      • group=TKIP
    • AES
      • pairwise=CCMP
      • group=CCMP

起動時に無線 LAN に接続する設定

以下のファイルを編集。

sudo vi /etc/network/interfaces

内容を以下のように変更(DHCP で IP が振られる場合)

auto lo
 
iface lo inet loopback
iface eth0 inet dhcp
 
auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

設定の反映

reboot で再起動して設定を反映。

sudo reboot

動作確認

ifconfig で wlan0 に IP が振られていれば設定完了。

ホスト名でのリモート接続


DHCP だと ssh 接続するために Raspberry Pi の IP を調べる必要があるので、ホスト名で接続できるようにする。
Raspberry Pi に avahi-daemon をインストール。

 $ sudo apt-get update
 $ sudo apt-get install avahi-daemon

デフォルトのホスト名は raspberrypi.local になっているので、

ping raspberrypi.local

で返答があれば設定完了。

これでホスト側からは、

$ ssh ユーザ名@raspberrypi.local

でリモートログインできる。

ちなみに、無線 LAN アダプタは消費電力が大きく、Raspberry Pi は電源周りが弱いらしいので結構動作が不安定になる。 これを解決するには、以下の方法でなんとかしてやる必要がある。


参考にさせてもらったページ
http://openrtm.org/openrtm/ja/node/266
http://www.youchikurin.com/blog/2007/06/linuxlan_1.html

Gakken WORLDEYE

球体ディスプレイが前々から欲しかったのだけど、ちゃんとしたやつだと数百万するのでとても手がでないなと思っていたら、学研から WORLDEYE という球体型のおもちゃ教材が4万円くらい出ているのを知って衝動買いしてみた。

f:id:k-aeg:20140105174842p:plain

基本的には球体ディスプレイ + USB メモリに入った動画教材という構成なんだけど、球体ディスプレイに HDMI 入力がついているのがミソで、PC などから画面を出力して色々遊べるようになっている。 解像度は 480 x 480 (640 x 480 の横がトリミングされる)と高くは無いのでちょっとぼやっとした画像になってしまうけど、実際そんなに細かいものを映すわけじゃないので特に気にならない。

最初から入っているコンテンツを再生するだけでもなかなか楽しい。
部屋を暗くすると月がそこに浮かんでいるかのよう。


学研ワールドアイ スペック - YouTube

さて、HDMI でつないで色々やってみたシリーズ。


Google Earth on Gakken WORLDEYE - YouTube

球体なのでやっぱり地球を映してみたくなったので、PC 経由で Google Earth を映してみた。ただ映すだけなのも味気ないので、コントローラに Leap Motion を使って地球をぐるぐる回せるようにしてみた。操作性に若干難はあるものの、わりとイメージ通りに動いてくれたので満足。

Leap Motion はそれぞれの指の動き(空間上の位置)を認識して PC に入力できるデバイスで、Amazon で 1 万円くらいで買った。Leap Motion 単体でも専用アプリいろいろあって楽しい。

さて、次は Processing で描いたスケッチで WORLDEYE をインテリア化してみる。


Processing on Gakken WORLDEYE - YouTube

うん、それっぽくなった。 ずっと PC をつないでおく訳にも行かないので、今度は Raspberry Pi で openFrameworks (Processing ぽい C++ ライブラリ) を動かして常設できるようにしてみたい。 Raspberry Pi は直接 HDMI 出力できるので WORLDEYE とは相性が良さげ。