Bluemixを触ってみた。いつの間にか課金されててちょっと怖い。
ChatBotを作りたくて、Watsonを触ってみた。
QiitaでChatBotを作っている記事を参考に自分でもやってみたけど、どのタイミングからか、有償サービスっぽいものが追加されていた、、、。こういうのがあるとOpenShiftの方が分かりやすくて良いかなぁとか思う。
でも、なんでだろう。Liteのサービスが追加されてて、多分そこから発生しているであろう$0.77のサービス料が計上されていたので、早速サービスを削除。
この、$0.77はどう処理されるんだろう??
Android の構造の説明。
これまであまり裏側を意識させない授業をしていたが、裏側のトラブルで作業が止まる(ダウンロードしたソースのbuild.gradleではまるとか)ことが結構あったのと、ハードウェアが好きな人が多いので、今回の授業では構造や役割をある程度説明して見ることにした。
http://www.ytp.ne.jp/tech/java/sineruka/jarhowto.html
Jarまでは説明しなかったけど、コマンド打って、classファイルが出来る。というのを見せた後で、Android StudioでBuild APKをして、apkファイルが出来るというのを実演。その後、Developerのbuildの流れを説明。
https://developer.android.com/studio/build/index.html#build-process
次に、ここでいうソース、リソース、ライブラリは何か、DEXはclassに近いけどちょっと違うよという説明をして、最後にAPKが出来るんだよ~と説明した。
前回、APKからソースコードをリバースしてみせたのでなんとなく分かっている感じだったが、今回もソースからAPKを作って、それを戻してみせるという流れの方が良かったかも。
Arduino 導入。 Simulatorを使う。
Arduinoの授業の様子を少し見せてもらった。
Arduinoの導入としてシミュレーターを使うようにしているらしい。
UnoArduSimというツールで、なかなか使えそう。
このサイトからダウンロードできる。
Simulator Download - UnoArduSim
IoT用Webサービス XivelyとUbidots
『M2M/IoTシステム入門』という本を紹介されて読んでいる。
これが結構見通しが良くなる本で、IoTに出てくる話を整頓してくれている。
その中で、XivelyというWebサービスが紹介されていたので、ちょっと試してみた。位置付けとしては、ラズパイやArduinoでとったデータを、受け取って可視化してくれるサービスらしい。本の中ではどんな感じでデータがとれるかを試すならこのサービスがいいとのこと。
今手元に、LinkIt Oneというネットワークが充実しているIoT機器があるので、試してみようとした。が、Xivelyはバージョンアップでかなり洗練されていて、セキュリティも強化されているらしい。JWTというセキュリティ機能を使うので、お試しで作るにはつらい感じになっていた。
そこでほかのサービスを探してみた。Ubidotsというサービスが、結構分かりやすい。Adruinoのプログラムを使って送信はさくっとできた。(繰り返しがうまく行かないのはバグかな、、、。)
とりあえずの結論は、Raspberry PiならXively、AdruinoならUbidotsを使うとお試ししやすいかも。
Ubidotsでダッシュボード画面を作ったらこんな感じ。
Raspberry Pi 定期的にサーバーにJSONをアップロード。
在席情報を教えてくれるボットを作った。
Raspberry PiでProbe Requestを取って、MACアドレスを収集。
それを5分ごとにサーバーにあげる。最初cronが動かなかったが、設定漏れだった。
cronでも、カレントパスをちゃんと意識する必要がある。ちょっとうっかりしてた、、、。
ログインしてないとスケジュールタスクも実行してくれないみたいなので、自動ログインもするように設定。
Raspberry Piのログインを簡単にする設定(自動ログイン、デスクトップ表示) | そう いう わけさ
Mongooseでのあれこれ。(メモ)
Mongooseで列を指定したらエラーになった。
Mongooseで特定のフィールドだけ出そうと思って、引数に「この列は表示、この列は非表示」ってやってたらエラーが出た。表示するフィールドだけ、または表示しないフィールドだけという指定の仕方しか許されていないらしい。
Mongooseで1件のデータを更新する、なければInsert
upsertはないけど、findOneAndUpdateで同じことが出来るらしい。これが出来るとすごく楽。
Insert-or-Update with MongoDB and Mongoose
findOneAndUpdateでエラーが起きる、、、。Mongo2.4を使っているからか、、、。MongoDBをアップグレードすればと書いてあるけど、OpenShiftで公式カートリッジがない。個人の作ったカートリッジがあるっぽい。
Raspberry Pi で詰んだかと思った。常時稼働のプログラムを起動プロセスで実行、、、終わらない。
Raspberry PiでWi-Fiパケットをとるシステムを作っている。常時稼働のプログラムを作ったが、どうもいつの間にか落ちている。夜帰る時まではOK。翌朝来ると、しれっと再起動している。参考にしたアプリでもその辺りをinit.dで毎回起動するようにしていた。
同じように起動時にプログラムを実行させたい。Linuxではinit.dを使うのが通常らしい。Raspberry Piではrc.localに起動時に実行したいプログラムを書くことによってスタートアッププログラムを実行できる。
Linuxのスタートアップの処理についてはこの辺りが分かりやすかった。
ただ、そこに大きな落とし穴が、、、。
rc.localの記述の最後に & を書き忘れていた。これを書くとバックグラウンドで実行をしてくれるらしい。逆に言うと、書かないと終わるまで待つ、つまり待ちぼうけ。
終わりの見えない黒画面。とりあえず電源を落として、深呼吸してググル。
どうも、起動時にShift押しっぱなしで、BIOSみたいな画面に入り、起動オプションをいじって、スタートアップの手前で止めて、rc.localを編集すればいいらしい。
助かりました!!
皆さん本当にありがとうございました。