BLE: Bluetooth Low Energy

技術的な特徴はこんな感じ。

  • BLE機器を低消費電力でつくれるため、ボタン電池で数年稼動
  • 免許不要の2.4GHz帯を利用して、最大1Mbpsの通信が可能
  • 通信距離は2.5mから50m

通信は2種類ある。

  • 1対1通信
    • Central (スマホなど) と Peripheral (BLE機器)の通信
    • アドバタイズメント・チャネルによる通信
      • Peripheral の発見と接続に使う
    • データ・チャネルによる通信
      • データ通信に使う
    • 暗号化通信可
  • N対1通信
    • Broadcaster (BLE機器) と Observer (スマホなど) の通信
    • アドバタイズメント・チャネルによる通信
      • Broadcaster の発見と接続に使う
    • 暗号化通信はできない

スマホ/タブレットの対応状況は、Android/iOS端末で下記の通り。

  • Android端末
    • OS: Android4.3(APIレベル18)以上
    • デバイス: 端末にBluetooth4.0が搭載されていること。端末メーカーの仕様を確認。
  • iOS端末
    • OS: iOS7以上
    • デバイス: iPhone 4S以降、iPad (第3世代)以降

用途は下記がある。

  • Beacon
    • スマホの位置情報を特定し、ロケーションに合わせて必要な情報を配信する
    • スマホを測位する距離モードは10メートル程度/数メートル程度/数センチ程度と3段階を判別できる

Cloudera Manager / CDH のメモ

Cloudera Manager 5

Cloudera Manager 5 を消して 4 を入れ直すときの罠

Cloudera Manager 5 をアンインストールした後、Cloudera Manager 4を入れる場合は /var/cache/yum/x86_64/6/cloudera-manager 配下を消す必要があるみたいだ。
残っていると、Cloudera Manager 4のインストーラが5のパッケージを参照してエラーになるため。

sudo rm -rf /var/cache/yum/x86_64/6/cloudera-manager 


また、各Agentホスト(Cloudera Manager Serverホストを除く)の /etc/yum.repos.d/cloudera-manager.repo が Cloudera Manager 5向けのものに変わっているので消す。

sudo rm /etc/yum.repos.d/cloudera-manager.repo
sudo rm /etc/yum.repos.d/cloudera-cdh.repo

なんか、ほかにも消さなきゃならんかもしれん。

http://[cloudera manager host]:7180/ へアクセスした後、インストールウィザードの「クラスタインストール」の画面で真っ白になって操作不能になって困っていたが、原因はブラウザのキャッシュだった。
クリアしたら治った。。

罠大杉だろう。

hbaseクライアント起動時に hbase-site.xml を参照できてなさそうなときの対処

hbaseクライアント起動時のクラスパスに hbase-site.xml を配置したディレクトリへの参照がない場合、下記のような例外が起こる。

java.lang.RuntimeException: java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@3801318b closed

hdfs コマンドで FileSystem file:/// is not a distributed file system とか出て困った

HDFS入れたし動作確認してみようと、下記コマンド実施。失敗。

$ sudo -u hdfs hdfs dfsadmin -report
[sudo] password for admin:
report: FileSystem file:/// is not a distributed file system
Usage: java DFSAdmin [-report]

原因は /etc/hadoop/conf が参照している設定が /etc/hadoop/conf.empty を参照してたため。

alternatives コマンドでHDFSの正しいクライアント設定を参照するように変更してやればいい。

HibernateのQueryクラス setDate(), setTime(), setTimestamp() の違い

java.util.Date インスタンスを Query#setDate() で格納して取り出したら時刻が00:00:00になってしまい困っていた。
時刻まで格納するには setTimestamp() を使えばいい。


java - What's the difference between setTime(...) and setTimestamp(...) in Hibernate Query? - Stack Overflow

BDZ-EX200が壊れた

年末年始の帰省から自宅へ戻り、帰省中に予約録画した番組をチェックしようとしたらHDDレコーダが故障していた。

2009年冬に買ったソニーBDZ-EX200、5年も使ってたらさすがに壊れるか。
毎日ひっきりなしに録画してたし。

実は特定の画面に移動するとフリーズするので、その画面を回避すれば操作できなくはないんだけど、
その画面というのがXMB(クロスメディアバー)の画面なんだなあ。。

で、回避策としてBDZ-EX200をDLNAサーバとしてPS3で再生させることはできた。
なので全く視聴できなくなったわけではない。

とはいえ不便なので、代替機を検討中。

※2015/01/29追記: XMBを表示するとフリーズするんだが、XMBを回避してHDDのデータをBDに焼く方法がわかった。まず、本体起動にリモコンのらくらくスタートボタンを押す。BD-RをセットしてBDへダビングを選択。あとはコピーしたいタイトルを選んで実行。ひととおりコピーし終わったら修理に出すぞ。

代替機を購入

新宿西口のヨドバシカメラで候補としていたソニーのBDZ-EW/BDZ-ETシリーズの値段をチェック。

選ぶ基準として考えたのは、

  • メーカーは引き続きソニー。他メーカーで操作性が変わるのは嫌なので。
  • 多重録画は必須なので2チューナー以上、できれば3チューナー
  • 内蔵容量に余裕があること(前の機種は2TB)
  • 画像/音質ともにそこそこ性能がいいこと
  • スマートフォンPSPなどへ持ち出しやリモート視聴ができること
  • 価格

売り場をざっと見てBDZ-ET2100かBDZ-ET2200にしぼる。
BDZ-ET2100は2013年冬モデルで51000円の年始セール中。かなりお買い得。
BDZ-ET2200は2014年冬モデルで81000円と3万円も高いがリモート視聴向けの機能が若干向上している。
ちなみに共にポイント還元率10%である。

本当はBDZ-EX3000の後継機種が出てれば検討したかった。高いしどうせ買えないんだけど。。

で、悩んだが結局 BDZ-ET2200 を購入することにした。

帰宅後、リビングでセットアップ。BDZ-EX200はメディアサーバとしてはまだ使えるので残しつつ、BDZ-ET2200を小亀のように上に載せて配線した。

ざっと使ってみた感想(前に使っていた機種との比較)は、

  • スタンバイから操作可能になるまであまり待たせない
  • XMBの操作がサクサクになっている。リモコンの応答もいい。
  • 番組表が小さいフォントに対応して表示できる範囲が広くなった
  • 番組の予約ランキングを表示できる。人気番組がわかるので便利。仕組みとしてはBDZ-EW/BDZ-ETシリーズまたはnasneユーザーの予約情報を集約してランキングをつくっているようだ。
  • スマートフォン(Android/iOS)との連携がかなり便利
    • TV SideViewというアプリを使うことで番組表から予約したりリモート視聴できる
    • リモート視聴はかなり便利。録画した番組、放送中の番組をリモート視聴できる。
    • 試しに今朝の通勤途中にiPhone5s(回線はauLTE)で録画した番組を観てみた。回線が細いので画質は少し粗い(180p)。途中数回バッファリングで止まったがほとんどストレスなく観れた。
    • バックグラウンド再生にも対応している。音楽番組をよく録画するのでこれはうれしい機能。
    • 無線LAN経由なら、より高画質でリモート視聴できる

詳しいレビューとしては下記ブログがよくまとまってる。2013年冬モデルと2014年冬モデルの比較(リモート視聴の機能向上など)。

新型BDレコーダー『BDZ-ET2200』シリーズのショールーム展示レポート:ソニーショップ★テックスタッフ:So-netブログ

kakaku.comとかインプレスの小寺さんの記事とかだと、2014年冬モデルって酷評されてるんだけど、リモート視聴の利用シーンが多そうな人は2014年冬モデルおすすめ。

JavaのLombokとかいうツールを知らなくてハマった話

とあるJavaOSSライブラリをEclipseでビルドしようとして、うまくいかずハマっていたんだけど、エラーをよくみると存在しないメソッドを参照しようとしてエラーになっていた。

不思議なのがコマンドラインで mvn compile とか ant dist するときは問題なくビルドできること。

で、ビルドがこける状態(クラスパスの設定が壊れてるなど)のEclipseの設定ファイルが誤ってコミットされてるのかなー?とか一瞬思ったけど、それだったらフォーラムで誰かが指摘してるはずで、そんなことはないだろうと。

悩んだあげく、Lombokというクラスのgetter/setterをコンパイル時に補完してくれるツールがあり、これをEclipseに別途インストールする必要があるということがわかった。
へぇ。