プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

伊勢ギーク・フェア2019 に出展しました

先日、三重県伊勢市で開催された伊勢ギーク・フェアに出展してきました。 私自身は数年ぶりの参加でした。

公式のFacebookページはこちら

https://www.facebook.com/igfaire/

会場の様子

当日、準備しながら撮った会場の様子はこんな感じでした。

f:id:junichim:20191126140657j:plain

f:id:junichim:20191126140716j:plain

実際に現場にいると写真で見るより、ずっと人が多い感じでした。 小さい子供も多くて、ゲームしたりロボット動かしたりと楽しそうです。私の子供も短い時間ですが、ご多分に漏れず、ロボットを動かしてご満悦のようでした。

出展内容

当日出展したのは、

blog.mori-soft.com

blog.mori-soft.com

で作った、LINEボットからラズパイカメラで撮影する、というものです。

ブースの様子はこんな感じです。

f:id:junichim:20191126143549j:plain

(写真中のQRコードでボットと友達になっても、現在はなにもできないです。悪しからず。)

ラズパイ zero は小さくて気に入ってるんですが、ブースに置くと・・・迫力ないですね。 ちなみに、後ろ向きのディスプレイは設定作業やトラブル対応のために持っていったものです。こっちのほうが目立ってますね。

あと、個人的に一番モノづくりしたのは、机の上においてある段ボールの看板だったりしました。

振り返り

がっつりモノづくりしている方が多数いるのでが、来場者もそういうものを求めてるんだろうと予想し、 こちらにはあんまり人来ないだろうなと思っていたのですが、思ったより興味を持ってみてくれていた方が いらっしゃいました。
ありがとうございます。

さて、今回は、LINEボットからラズパイカメラで撮影するというのを出しましたが、実際に会場で 使ってみるといくつか気づいた点がありました。

写真を1回リクエストしたにも関わらず、3~4枚まとめて写真が送られてくる

イベント会場で試すと、このような現象が発生していました。

もっとも、これは私の仕込んだバグでした。

ラメラサーバー側の処理(node.js)をsetIntervalを使った繰り返し処理として書いたのですが、 呼び出した関数が非同期で戻ってくるのに気づいておりませんでした。

また、呼び出した関数の処理(写真撮影と画像アップロードとLINEへの投稿)が完了したら、 撮影指示を削除するという流れとしていました。

このため、最初に呼び出した撮影指示が終わらないうちに、またsetintervalから関数が呼ばれてしまい、 この時点では撮影指示ファイルがまだ残っているので、もう一度写真撮影の処理が呼ばれて・・・ というのを何度か繰り返した結果、複数枚の画像が返送される、という現象になっていました。

仕事場のWiFi環境だと気づかなかったのですが、イベント会場では、テザリング経由で ネットワークにつないでいたので、処理に時間がかかり、 問題が発覚したという次第です。

古い撮影指示が実行される

これはイベント時の問題ではないのですが、気になったのでメモを残しておきます。

上記の問題をイベント会場で手直ししていたので、イベント翌日、リポジトリに 反映させようとして、ラズパイに電源をつなぎました。

そうすると、ラズパイ側のカメラサーバーが自動起動して、S3 上の撮影指示を読みにいってしまいました(これ自体は動作としては正しいです)。

どうもイベント後や夜中に撮影指示を送った方もいたようで、カメラサーバー起動により、 朝一番に私の事務所の壁や天井の写真が送られたようです。 いきなり変なタイミングで変な写真が送られてしまいすいませんでした。

まあ、こんな事故が起こらないように、撮影指示のタイムスタンプを見て、 一定以上の時間が経過している場合は無視するようなロジックをいれる必要があることに気づきました。

動かさないとわからないことですね。 おいおい組み込んでいこうと思います。

まとめ

やっぱり、イベントは見るのもいいけど参加するほうがおもしろいですね。
来年も頑張って何か出したいな。