カテゴリー別アーカイブ: プログラミング

JSONPとJSON RPCについて

実は先日、ちょっとしたご縁で『SMARTHOUSE HACKERS』というイベントに参加させていただきました。

アイデアもプログラミング能力も一般的なHacker(?)の皆様には遥かに劣る自分なので、全然大した成績は残せなかったのですが、なかなかに得るものがあったと思います。

とにかく感心したのが、家電をHackするための敷居の低さ。Kadecotサーバ(KadecotCore)というAndroidアプリサーバに対して、URLを書いて投げるだけでいろんな機器を制御可能。仕組みを知らなくても、基本ほぼコピペでOKなのはすごいです。でもこれぐらい敷居低くないと、いろんな人に参加してもらうハッカソンをやるのは難しいのだろうな、きっと。

さて、そのあたりのWebAPI云々に絡んで、自分の周りではJSONPやらJSON RPCやらを耳にすることが多くなりました。未だにちゃんと理解していないので、それぞれいったいどんなものなのかを、簡単にメモしておくことにします。いつものごとく、間違ったことを書いている可能性は大いにあるので、その辺はご了承ください。 続きを読む

RAPIROのサンプルソースコードを読む

これからRAPIROを色々いじっていこうと思ったら、とにもかくにもRAPIROの動きを制御しているArduinoのソースを理解しないといけません。ソースコードはこちらで公開されています…が、うーん、要所要所、よくわかりません。サーボモータとかもこれまでいじったことがないから、基本的なお作法も全然わかりません。

でもわからないはわからないなりに何とかしないと進まないので、ソースコードを眺めながら、とにもかくにもメモしていきます。理解が間違っている箇所も大いにあるかと思いますが、ご了承ください。 続きを読む

バイトと16進数 〜OpenECHOを扱うための基礎の基礎〜

OpenECHOという、Javaのライブラリがあります。これは宅内の機器間通信のプロトコルであるECHONET LiteをJavaで実装したもので、使いこなすことができれば、自分のおウチを自分でどんどんスマートハウス化できてしまうという、Makerの人にとってはとても素敵なシロモノです。

このライブラリを扱う上で避けては通れないのが、バイトの扱い。なぜなら、ECHONET Liteの仕様で、機器間通信のパラメータや戻り値はバイトでやりとりすることになっているから。おそらく、プログラム大好きな人や、コンピュータの誕生と進化と共にプログラムを学んできた人からすればどうってことない問題なのでしょうけれど、初めて触った言語が大学の授業でのJavaで、しかもその後特にプログラムにハマるようなこともなかった自分からすれば、文字列、バイト、int、2進数、16進数等々の関係が良くわからないのです。

というわけで、わからないなりに整理。以下、おそらくもっと良い方法もあるのかもしれないけれど、とりあえず動けばいいや、の精神で記載しておりますのであしからず。 続きを読む