読者です 読者をやめる 読者になる 読者になる

Let Me Be Me

大道無門千差有路。透得此關乾坤獨歩。

SENNHEISER HD558

f:id:junsumida:20150322174138j:plain

以前は、audio-technicaの5000円くらいのやつを使っていたのだけど、いいヘッドホンを使いたいなあというふわふわした出来心で、つい買ってしまった。

SENNHEISER の HD558 を購入。

【国内正規品】ゼンハイザー オープン型ヘッドホン HD558

【国内正規品】ゼンハイザー オープン型ヘッドホン HD558

使用環境は PC/iPad Air 2 -> ONKYO DAC-HA200 -> HD558

前のATH-TAD500くらいしか比較対象を知らないけれど、どこが良くてどこが悪いかつらつらと書いてみる。

 まず良い所として挙げられるのは、「軽いこと」と「フィット感がとても良いこと」、お陰で長時間使っていても全然疲れない。前に使っていたやつは、重かったせいか長時間着けていると耳周りの痛みと首のこりがひどかったけれど、このヘッドホンは全然そういうところが無い。huluを勧められて、暫く前から使っているのだけれど、huluで映画2,3本とか見ても全然問題ない、可処分時間が奪われていて宜しくない。フィット感は抜群に良い。

 一方、悪いところとして、巷で言われているような音が篭ったような感じが確かにある。ただ、それがこのヘッドホンの良いところでもあり悪いところでもあるかなと。前のヘッドホンだと、軽くてパリパリした音だったのが、HD558は音に厚みが増して聴こえる。今のところ、映画やドラマを見るのと、ボーカルが強めの曲にはすごく良い。

 もう一つ悪いところを挙げると、ケーブルが長すぎるのとコネクタが大きくて邪魔なところ。ただ、これも簡単に付け替えられるので、あんまり問題にならないかな。いっそ全部ケーブル無くなれば最高なんだけどね。

これ以上を求めると、いくらお金があっても足りないので、とりあえず満足してる。

せっかくの正月休みだったので、仕事に関係無い本を沢山読んだ。

f:id:junsumida:20150101004143j:plain

photo credit: Ben Oh via photopin cc

せっかくの9連休なので、仕事に関係ない本を中心に読んだ。

この本のタイトルは完全に釣り。原題: "New Geography of Jobs" の通り、イノベーションと都市、雇用との関連性についての研究をわかりやすくまとめたもの。 未来学とかが好きで、投資やキャリアやイノベーションを考える上で色々妄想したい人にとってはすごく良い本。

↑の本の中にところどころ製造業の衰退について書いてある箇所があって、実際衰退していく製造業の中ってどういう感じなのかがはっきりとわかる本。 ポジティブな面にばかり焦点を当てていて、思ったほど、ドロドロした感じはなかった。でも、衰退していく企業の空気感みたいなものは間違いなく味わえる。

会社が消えた日 三洋電機10万人のそれから

会社が消えた日 三洋電機10万人のそれから

半沢直樹の最新作。まあ、漫画的な感じで。(個人的にはルーズヴェルト・ゲームが一番好き)

銀翼のイカロス

銀翼のイカロス

人口ボーナスとかその辺の話題が好きなので、この辺も新興国への長期投資とかに興味がある人は良いかも。

老いてゆくアジア―繁栄の構図が変わるとき (中公新書 1914)

老いてゆくアジア―繁栄の構図が変わるとき (中公新書 1914)

ベンチャー特集がよくまとまっていたので、初めてForbes買った。悔しいなあ。

ローマ帝国ビザンツ帝国厨としては読まざるをえなかった。 東ローマ人以外のいくつかの視点からビザンツ帝国の滅亡を見ることができる。自らの文化によって西地中海を制覇し、自らの文化によって滅亡していくところにイノベーションのジレンマ的なものを感じた。

コンスタンティノープルの陥落 (新潮文庫)

コンスタンティノープルの陥落 (新潮文庫)

オペレーションまわりの仕事をすることが増えたので、その辺に絡んで買ってみた。 良い本だけど、もっと早く買えばよかったと後悔。業務でAWSとかDockerとか普通に使っている人は正直いらないかなあ。

サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)

サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)

なあなあにしてきたところだったので、筋トレ的な感じで。Haskellの復習になったのも良かった。

アルゴリズムを、はじめよう

アルゴリズムを、はじめよう

Cも適当にしかやってなかったので、ちゃんとCの入門的なところを抑えられた。 RubyのC拡張とかその辺もできるようになりたかったので、ちょうど良いタイミング。次は「ふつうのLinuxプログラミング」に進む予定。

Head First C ―頭とからだで覚えるCの基本

Head First C ―頭とからだで覚えるCの基本

各所で紹介されている本なので、省略。

ゼロ・トゥ・ワン―君はゼロから何を生み出せるか

ゼロ・トゥ・ワン―君はゼロから何を生み出せるか

本当に"ありそうな"クラッカーの漫画、業界の人が見ても(むしろ業界の人が見た方が)楽しめると思う。

王様達のヴァイキング 1 (ビッグコミックス)

王様達のヴァイキング 1 (ビッグコミックス)

Raspberry Pi でWiFiの設定をする

前回の記事でRaspberry PiにRaspbianを入れるところまでやったので、今回はWiFiでアクセスするところまでやります。

f:id:junsumida:20141123224255j:plain

(photo credit: mista stagga lee via photopin cc)

無線子機が認識されているかの確認

$ sudo raspi-config
# root partitionの拡張だけ
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ dmesg
[ 7770.741286] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[ 7770.857327] usb 1-1.2: New USB device found, idVendor=0411, idProduct=01a2
[ 7770.857361] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7770.857377] usb 1-1.2: Product: 802.11 n WLAN
[ 7770.857391] usb 1-1.2: Manufacturer: Ralink
[ 7770.857404] usb 1-1.2: SerialNumber: 1.0
[ 7770.965567] cfg80211: Calling CRDA to update world regulatory domain
[ 7771.151314] usb 1-1.2: reset high-speed USB device number 4 using dwc_otg
[ 7771.260613] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 7771.299159] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected
[ 7771.331996] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 7771.338409] usbcore: registered new interface driver rt2800usb
[ 7771.502034] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 7771.505254] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29

ifconfig 
wlan0 Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

WiFi接続の設定

ググると結構Raspberry PiのWiFi接続の情報は出てくるのですが、どれも単体ではうまくいかなかったので、若干の試行錯誤が必要でした。

前提の確認
  • wpa_supplicantというWPAクライアントを使う
  • Raspberry Pi (Raspbian) にはデフォルトでwpa_supplicantが入っている
CCMP
TKIP
WPA2-PSK
  • WPA/WPA2のパーソナルモード

設定ファイルの編集と反映

$ wpa_passphrase SSID PASS_PHRASE
network={
    ssid="SSID"
    #psk="PASS_PHRASE"
    psk=aeba1e8bc9ea7d811c3b069053c54538d262cf070268ec42f600bd8325dbf419
}
# #pskの行は不要
# 生成した設定を下記のファイルに追記します

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf 
network={
    proto=WPA # プロトコル, WPAの場合 (WPA2の場合は RSN) 
    key_mgmt=WPA-PSK # ルーターの設定によります 
    pairwise=CCMP # AES (unicast: one-to-one の通信時の暗号化方式)
    group=CCMP # AES (multicast, broadcat: one-to-manyの暗号化方式)
    ssid="SSID"
    psk=aeba1e8bc9ea7d811c3b069053c54538d262cf070268ec42f600bd8325dbf419
}

$ chmod 0600 /etc/network/interfaces
# pre-shared key (PSK) 流出防止
$ sudo vi /etc/network/interfaces


auto wlan0 # 起動時にinterfaceをupする
allow-hotplug wlan0 # カーネルがnetwork interfaceを認識した時にup
iface wlan0 inet dhcp 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf # wpa-roamだったのをwpa-confにしました。違いはよくわかってないです...汗

$ sudo /etc/init.d/networking restart

$ ifconfig
wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.11.15  Bcast:192.168.11.255  Mask:255.255.255.0

基本的には、これで設定完了です。

Troubleshooting

Raspberry Piにsshが通らない

Raspberry Pi側でipアドレスが取得できているのに、Raspberry Pi <---> Macbook Air 間でpingが通らない、sshもできないで困りました。こちらの記事によると、BUFFALOのルーターを使っていて、ファームウェアが古い場合、この現象が起きているようだったので、v1.8.2 => v1.8.6にアップデートしたところ解決しました。

時間が経つとWiFiの接続が切れる?

WiFiの接続が切れた場合に再接続しないことがあるようですが、この辺(wireless - How to automatically reconnect WiFi? - Raspberry Pi Stack Exchange)を参考にすると良さそうですね。

WHR-G301N での設定

自宅のWiFiルーターが、WHR-G301Nなのですが、SSID1が、WPA/WPA2-Mixedだったため、上記の設定ではダメでした。SSID2 (WPA-PSK-AES)を使うことで、上記の設定で解決しました。

WPA/WPA2-Mixedだと WPA-TKIPとWPA2-AESしかダメなんだろうか...。

参考文献

Raspberry Piを買った話 + Raspbian を Raspberry Piで使う

前の記事でハッカソンに参加してきたことを書いたのですが、そこでIoT熱が高まってしまい、気づいたらRaspberry Piをポチってしまいました。

f:id:junsumida:20141123014634j:plain

photo credit: Johan Larsson via photopin cc

 届いてから気づいたのですが、その大きさの小さいこと。名刺サイズよりやや大きいくらいの筐体で、全然その辺に置いといても気にならないサイズです。(本体が小さいだけに、ケーブル類をつなぐとすごく気になる...)

購入したもの

Raspberry Pi本体

本体に電源が付属してないので、注意が必要です。 (micro USBの電源が使えます) 自宅でNAS代わりに使っているサーバーとの置き換えも考慮して、USBのコネクタの数が多いB+を買いました。RS Componentsのほうが安いので、そちらで購入しました。ついでにケースも購入してます。

Raspberry Pi Model B+ (Plus)

Raspberry Pi Model B+ (Plus)

micro SDカード

実際に買うまで誤解してたのですが、Raspberry Piに使えるのは、micro SDカードです。(普通のSDカードだと思ってた)

WiFi子機

ググってみるとこれを使って人が多かったので、互換性に問題なさそうなこれに。

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

Raspberry Piの設定をする (Raspbian)

Raspbianのimageをダウンロードする

Raspberry Piの公式サイトもありますが、JAISTのRaspbian mirrorが高速なのでそちらを使います。imagesに行って、その中で最新のものを選ぶのが良いかと思います。

SDカードにイメージを書き込む

ダウンロードしたイメージをSDカードに書き込みます。以下はMac OSXでの例です。一応、GUIツールもあるみたいです。( RPi Easy SD Card Setup )

df -h
/dev/disk2s1    56Mi  9.6Mi   46Mi    18%     512        0  100%   /Volumes/boot

sudo diskutil umount /dev/disk2s1
Volume boot on disk2s1 unmounted

sudo dd if=2014-09-09-wheezy-raspbian.img of=/dev/rdisk2  bs=1m
3125+0 records in
3125+0 records out
3276800000 bytes transferred in 245.893198 secs (13326111 bytes/sec)
# rawdiskで書き込む必要があるので、rdisk2に書き換えます
# bs=1mがないと書き込みが終わりませんでした

sshでアクセス

  • 先にルーターなどで払い出しているip addressを確認します
  • user nameはpi、passwordはraspberryが設定されています。
ssh pi@192.168.11.15

これで、モニター、キーボード、マウスなどがなくても、アクセスできます。

References

Techcrunch Hackathon 2014に参加してきた話

スタッフとして参加したことはあるのですが、参加者としては初めてHackathonに行ってきました。 残念ながら上位5には入れませんでしたが、企業賞として、Twilio賞をいただきました。

 参加者130名 30数チーム、お台場のオフィスビルのワンフロアを殆ど貸し切っての大規模なイベントでした。

 ハッカソンというと「スポンサー企業から提供されているAPIマッシュアップ」というイメージが強いかと思うのですが、今回はAPIに加えて、 IntelEdisonGalileoEpsonGoogle Glassみたいなやつ ( Moverio ) 、自動車部品メーカーのDENSOが参加していたりと、最近のWeb業界のIoT熱の高まりを反映した内容になっていました。

 そんなトレンドをガン無視して、僕らが作ったのは、こちら。かかってくる電話に応えると日記をつけられて、感情分析までしてくれるアプリ。シンプルですが、その分高い完成度に仕上がりました。

f:id:junsumida:20141121130530j:plain

 他のチームメンバーが全員、高品質&超速でデザイン/実装する人外の様な連中だったので、プロダクトに使えそうな技術をいくつか選んでテストしたり、各種Web APIの仕様とにらめっこして自前ライブラリを淡々と書いたり、泥臭いところばかりやっていました。笑

そんなすごい人達の記事はこちら、

 個人的なところを振り返ると、「散漫な思考をプロダクトに落としこむところ」があまり伸びてないなと、そこは猛省しつつも、音声認識、音声処理やWindows Azureなど普段触れる機会のない技術に触れられて、プロダクトにつなぐところまでできたのは良かったかなあと思います。

f:id:junsumida:20141121124619j:plain

また機会があれば参加したいですね! (疲れたので、できれば半年後くらいに...! 笑)

Yosemiteをクリーンインストールした後の設定

Yosemiteクリーンインストールで入れなおしたので、最初から設定をやり直す。

1. 最低限必要なアプリケーションを直接インストールする

基本的には、bundle install系のコマンドをまとめた shellscript一発でやりたいのだけれど、それをするにも色々必要なので、最低限必要なものを先に手動で入れる。

2. 必須のアプリケーションを自動で入れる

3. 開発環境を構築する

rbenv install 2.1-3
gem install bundler
rbenv rehash

4. その他

ruby + rbenv + nodebrewの開発環境の入れ直し

YosemiteでぐちゃぐちゃになってしまったMacの開発環境を入れなおす。

  1. homebrew/FAQ.md at master · Homebrew/homebrew · GitHubのgistにあるshellscriptを落としてきて実行 homebrewを抹殺する

curl https://gist.githubusercontent.com/mxcl/1173223/raw/a833ba44e7be8428d877e58640720ff43c59dbad/uninstall_homebrew.sh > uninstall_homebrew.sh
bash uninstall_homebrew.sh
rm -rf /usr/local/Cellar /usr/local/.git
  1. $HOMEのいらないファイルを抹殺する
rm -rf ~/.nodebrew
rm -rf ~/.rbenv
  1. export CC=cc

export CC=cc~/.zshrcに追加 (他のshellならよしなに)

  1. homebrewを入れて、新しくrubyを入れなおす
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew install rbenv ruby-build
rbenv install 2.1.2
  1. bundle install
gem install bundler
rbenv rehash
bundle
  1. nodebrew + nodejsのインストール
curl -L git.io/nodebrew | perl - setup
export PATH=$HOME/.nodebrew/current/bin:$PATH
nodebrew install stable
nodebrew use stable
npm install bower -g
  1. オマケ (libv8が入らない場合)
gem install libv8 -v '3.16.14.3' -- --with-system-v8 #これはいらないかも
bundle config build.libv8 --with-system-v8
bundle

...とここまで書いたのだけど、therubyracerがどう頑張っても入らないので、クリーンインストールします。。。

追記

v8まわりでハマってたのは、gemのversionが古かったせいで、Yosemiteと相性が悪かったのが原因ぽい。

references