Profile cover photo
Profile photo
Takahiko Kawasaki
Takahiko's posts

Post has attachment
How to parse Eddystone packets (Android)
It's easy if you use nv-bluetooth library. onLeScan method would be implemented like the following. public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
// Parse the payload part of an advertisement packet.
List<ADStructure> s...

Post has attachment
Eddystone パケットをパースする (Android)
nv-bluetooth ライブラリを使えば簡単。 onLeScan メソッドの実装例は次のようになる。 public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
// アドバータイジングパケットのペイロードをパースする。
List structures =

// アドバータイ...

Post has attachment
ZooKeeper でリーダー選出を実装する
『 ZooKeeper による分散システム管理 』 を買って読みました。 書籍では、 ZooKeeper を使う典型的な例として 「複数のマシンの中から一台をマスターとして選ぶ」 というユースケース、いわゆる 「 リーダー選出 」を挙げ、3 章以降でコーディング例を示しています。しかし、 コールバック やら Watcher やらの組み合わせ方がややこしいため、コードのフローは追いにくいものになっています。 8 章では 「ZooKeeper の高レベル API」 として Curator フレームワークを紹介し、...

Post has attachment
ZooKeeper の起動に苦労した点
ZooKeeper クライアントを起動して、「Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect」というエラーが出たら、これは単純に ZooKeeper サーバーが起動していない可能性が高い。私の場合、ZooKeeper のソースコードを追っていって、 の 361 行目 (version 3.4.6) の sc.fini...

Post has attachment
undefined method `path2class'
直接の原因 ファイルが適切な場所に置かれていない。 問題回避方法 私のケースでは、 cp /usr/local/share/ruby/gems/2.0/gems/psych-2.0.13/lib/ \
/usr/share/ruby/vendor_ruby/2.0/ 詳細 path2class メソッドは psych_to_ruby.c 内で定義され、 rb_define_private_method() により Psych::ClassLoader クラスのプライベー...

Post has attachment
WebSocket client library (Java SE 1.5+, Android)
This page explains nv-websocket-client , a WebSocket client library written in Java. Its JavaDoc is here . Overview High-quality WebSocket client implementation in Java which complies with RFC 6455 (The WebSocket Protocol) works on Java SE 1.5+ and Android,...

Post has attachment
WebSocket クライアントライブラリ (Java SE 1.5+, Android)
WebSocket クライアントライブラリ (Java) nv-websocket-client の説明です。 特長 RFC 6455 (The WebSocket Protocol) に準拠している。 Java SE 1.5+, Android で動く。 全てのフレームタイプ (continuation/binary/text/close/ping/pong) をサポートしている。 分割されたフレームを送信するメソッドを提供している。 WebSocket が使用しているソケットを取得して設定できる。 Bas...

Post has attachment
Rails をインストールする (Ubuntu/VirtualBox/Windows)
Windows 上に Rails をインストールしようとしたところ、簡単に解決しなさそうな問題がいろいろ出てきたので、Windows に直接 Rails をインストールすることは諦め、Windows に仮想化ソフト VirtualBox を入れてその上で Ubuntu を動かし、そこに Rails をインストールすることにした。しかしそれでも、幾つも問題に遭遇したので、手順を書き残しておく。 1. 仮想ハードディスクイメージのダウンロード VirtualBox で作成する仮想マシンの仮想ハードドライブとして使...

Post has attachment
Function to define a namespace in JavaScript (namespace.js)
Sample Code: // Define a namespace 'aaa.bbb.ccc' and add a function 'hello'
// under the namespace which prints 'Hello, world.'.
namespace('aaa.bbb.ccc').hello = function() {
print('Hello, world.');

// Execute the function.
aaa.bbb.ccc.hello(); Sour...

Post has attachment
iBeacon as a kind of AD structures
First of all, iBeacon should be parsed as a kind of AD structure s . Any library that is not implemented that way is just "usable" at best. The AD structure format is described in "11 ADVERTISING AND SCAN RESPONSE DATA FORMAT" of "Bluetooth Core Specificati...
Wait while more posts are being loaded