レバノン13日共同

ずっとサバイバル。

VR映画コンテンツ用にバックエンドを作った

今年の8月に伊豆映画祭にて、土肥劇場で上映されるVR映画コンテンツに少し関わった。

https://izu-film-festival.themedia.jp/pages/1057540/page_201706110336

このコンテンツ、映像だけだと面白くないので、ToneDisplay(知り合いのVR向けUXソリューション)を組み合わせる事にした。

ToneDisplayはVRコンテンツに合わせて風圧や振動を発生・制御するソリューションだ。

ToneDisplay自体は、3DのVRゲームでも、360動画でも両方OK。

360動画の場合は、Google Spreadsheetsにシーケンスを書いておいて、それをアプリがロードして使う。

いづれの場合も、コンテンツに応じてMQTTで各デバイスに制御を送るイメージ。

これ、今は1ユーザーのみ想定で、かつネット必須だった。

今回、土肥という場所、映画祭というシチュエーションなどにより、既存のToneDisplayに対して以下の点が要望としてあった。

- ネットワーク接続は不安定なので、ローカルネットワークのみで動作する

- 複数人に対応するため、複数台での再生を可能にする

- オペレーションの簡素化のため、再生/停止は一斉にやりたい

これを実現すべく、大雑把にいうと以下のことをやった

1.ローカルにRaspberry Piで作ったサーバを設置し、MQTTのブローカーやら制御やらは全部こいつに任せる

2.プレイヤーアプリでシーケンスをロードしてMQTTに送出していたが、これを一箇所にまとめる

3.プレイヤーの再生停止制御をMQTTで行う

4.これらをスマホからリモコン的に制御できるようにする

システムイメージはこんな感じ。

僕の担当は1,2,3だった。あとハード的なインフラ。

で、これを実現するために、Node.jsでサーバアプリと、VueでWebアプリとを作った。

ソースはここに

https://github.com/TakuroFukamizu/mnk-server

正直、これだけだとシステム動かないので単なるログとして見て欲しい。

(READMEが無かったり、掘り下げると色々突っ込みどころが多いが、徹夜で仕上げてテストしてそのままの状態なんだ。整理したかったが、その後も忙しくて。)

ただ、中身は結構凝ってる。

ポイントは、集中管理するコンソールはスマホだけど、信号の送出処理などは全部サーバ側のデーモンに任せてるの点や、各種チェックなどの作り込み。

一度渡してしまうと、後の運営はノンエンジニアに委ねるので、可能な限り縮退しても動き続けるように頑張ってる。

ハッカソン的に数日で作ったけど、その割にはちゃんと動き続けるはず。

P.S.

そろそろES7時代のvueの正しい書き方を知りたい

Excel仕様書とGitbook

諸君 私はMarkdownが大好きだ (以下略) Fu*k you Excel仕様書な私としては、MarkdownでREADME.mdを書いてGitbookで作った仕様書のプルリクをレビューしてマージする瞬間が至福なわけで、Excel仕様書が世の中から消えてなくなるための礎になれればということで、Qiitaに幾つか記事を書いた (というか、ほぼmermaid.js万歳だけだけど) mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す Gitbook 3でmermaid.jsを使う ソースコード管理(git)の説明資料を作るのに gitgraph.js を使ってみた おかげさまで、一本目のmermaid.jsの紹介記事はすごい反響があって、かなりビビった。 実は、大きなお客さん向けのプロジェクトで実際にGitbookで仕様書を書いて開発&納品までいった約2年分の運用実績が溜まってたりするので、このあたりもどこかのタイミングで備忘録として書いておきたい。 で、そんな実運用でよく使うものをまとめて、Gitbook仕様書下ごしらえセットとしてBoilerplateを作ってみた。 gitbook-specification-boilerplate Gitbook3になってAPIが変わった関係で、いままで使っていたpluginが幾つか動かなくなっていたり、グローバルインストールめんどいよねとか色々あったので、環境とか整理しながら動作確認して作っていったら結局土日かかってしまった。 こんなものでも、何かの足しになればさいわいである。

waifu2xの UpRGBモデルとRGBモデルを比較してみる

自宅のWinデスクトップ(i7 6700, DDR4 16G, GTX970)をCUDA v8とcuDNN v5.1に更新したので、waifu2x-caffeもv1.1.8に更新した。

https://github.com/lltcggie/waifu2x-caffe/releases/tag/1.1.8

 

更新したところ、処理モデルにUpRGBというのが増えていたので試して見ることにした。

(UpRGBモデルの中身については詳しく調べてないので、あくまで結果論のみ)

 

左がUpRGB、右がRGB モデル以外のパラメータは共通で、16bit, 10倍拡大, ノイズ除去&拡大モード。

曲線の表現とかがかなり自然になったと思う。

にしても、今までこのPCは動画編集用だったからcuDNNまでは入れてなかったけど、入れてみたら処理時間すげー早くなった。

 

Raspberry Pi 3のBluetoothでBLE Peripheral(bleno)を試してみる

タイトルままなのだが、Raspberry Pi 3にBluetooth 4.0が内蔵されたので、BLE Peripheralの実装を試してみた。

Get Startedな部分をQiitaにまとめた。

Raspberry Pi 3のBluetoothでBLE Peripheral(bleno)を試してみるhttp://qiita.com/uzuki_aoba/items/346e28b6e9170ce85a6c

実際、node.jsのバージョン周りで難儀してここが一番辛かった。

都合の悪いことに、raspbianにはnode-redが入っている関係で、v0.11付近(バージョンは忘れた)が入っている。

blenoがビクともしないので、nodebrewを入れてバージョン変更を試みるも、当初はnode-red用に入っている方からnodebrewの方に切り替わらず、キーー〜となった。

まぁ、rebootしたら解決という、初歩ではあるのだが。

nodebrewで切り替えて、v0.12〜v5.xで試して、とりあえず安定して動いたのがv4.4.3だった。

この辺りは知見がないので、もっと明確な情報があるかも。

動いてからは何もせずともOKなレベル。

Raspberry Pi 3ではBLEとともにWiFiが使えるので、IoT的なサムシングをプロトタイピングするには最適だと思う(小並感

余談だが、node.js のv0.12系はarmv7用のバイナリがnodejs.orgにあがっていなかったので、渋々 nodebrew install してビルドからやった。

やったところ、Raspberry Pi3の SoCが70℃近くまで行った。。。

PATCHWORKSの石なケース

Jonathan Iveのデザインに敬意を表して(本当は複数端末ポケットに入れるから邪魔になるので)、基本的にiPhoneはハダカのまま派なのですが、それでも時々気まぐれでケースを使う時があります。 そういう時は、往々にして”おもしろい”ケースがあった場合なんですが。 今回はこれ。石です。石。 ガチの天然火山石を、うすーく切り出して、FRPっぽい土台の上に敷いてからケースに貼り付けてる感じ。 なので、石だけど、少し捻ったくらいでは割れそうにない。安心。 それに、内側もすこししっとりしたような触感で高級感ある。 話をしているときとかイライラしてるときに携帯をいじる(操作ではなく、表面をさわったりする)癖があるんですが、しばらくはこのゴツゴツとした天然石の触感で癒されそうです。 あと、ケールのボディ部分もポリカーボネート製でクリアー&うっすうすなので、iPhone5Sのデザインとかサイズ感を邪魔しない感じでGOOD. PATCHWORKS Classique Snap Case - Stone Slate for iPhone 5/5S http://shop.i-showcase.jp/?pid=75573464 iPhoneは旧世代になると店頭でのケースの取り扱いが一気になくなっちゃいますが、セレクトショップ系の通販だと、変わり種でも旧世代用のものがちゃんと置いてあるので、いいですね!

3月の強行帰郷

戻っておちついたらblogに書きますーと言ったまま、なんだかんだバタバタしっぱなしでこのままだと来年Apple Store並んでる時でもないと書けなさそうなので、一気に書き上げてみる。

まずはこちらを見ていただきたい。

私の3月第1週くらいのGoogleアカウントのロケーション履歴である。

自宅に置いてきたNexus7の所為で毎回東京に戻っているので若干見づらいが、意味は伝わると思う。

このうち、木〜土をGoogleカレンダーで見てみよう。

ご覧の有様である。

いやぁ。

月〜火で札幌に出張した同じ週に

九州行ってるってのもなかなかロマンがあるんですが。

木曜以降を書き出すとこんな感じですね。

<木曜日>

- 客先会議後、横浜で寝台特急サンライズ瀬戸に乗車、夜を使って岡山へ移動

<金曜日>

- 岡山から山陽/九州新幹線みずほ(N700系)を使って飛行機より早く熊本入り

- 熊本の母校にてデモンストレーション&講演?

- コワーキングスペースにて翌日のLTの資料作成

- 後輩の実家のうなぎ屋さんで夕食(最近恒例になっている

- 後輩宅でご厄介になりつつ一泊

<土曜日>

- セキュリティーさくらの前イベントでスリランカカレー屋さんにてヌードルカレーを食す。辛し。

- セキュリティーさくら(さくらの感想等は別記事に。)&懇親会

- ガジェットの付属品を紛失した疑惑が発生し、危うく新幹線を逃す事態になるも。。。

- 終電近い九州新幹線つばめ(800系)を使って鹿児島中央へ。

- 東横イン一泊

<日曜日>

- ソフトプラザ鹿児島さんをお借りしてガジェットのデモ&プチ勉強会

- 九州新幹線さくら(N700系)を使って博多へ。←九州新幹線全コンプ!

- 博多駅にて先輩方と思い出話など。

- 大名にてApple Lover User Groupの方々と飲み飲み。

- 終電の九州新幹線つばめ(800系)で実家へ。

<月曜日>

- 実家で墓参りやら親戚と会ったりやら色々。

- 最終のジェットスターで成田へ

- ジェットスター遅延につき自宅に帰れないことが確定。

- 成田脱出も危うくなるが、辛くもJRの最終にギリギリ(本気)間に合い、御茶ノ水までは移動。

- 仕方ないので奇跡的に空いてた水道橋のホテルに入り、Apple WatchとMacbookの発表を見守りながら一泊。

<火曜日>

- そして仕事へ。。。

おっぷ。。。。

土〜月は九州新幹線三昧なわけですが、乗車券+新幹線特急券だけでもこんな感じ。

熊本駅のみどりの窓口がよきに計らってくれました。

以下、思い出のワンシーンなどなど。

------------

前日の朝から予定が入ってて時間的に厳しかったりする場合はサンライズ号を使ってます。

お値段は張りますが、移動中に作業ができること、飛行機より圧倒的にゆっくりできること、そして何と言っても飛行機の最終より遅く出て、目的に始発より早く到着できるのがGOOD。

RICOH THETAの映像でその素晴らしさをどうぞ。

サンライズ瀬戸の素晴らしさ① #theta360 - Spherical Image - RICOH THETA

サンライズ瀬戸の素晴らしさ③ #theta360 - Spherical Image - RICOH THETA

サンライズ瀬戸の素晴らしさ② #theta360 - Spherical Image - RICOH THETA

------------

熊本で資料作成に使用したコワーキングスペースは、未来会議室さんです。

http://mirai-k.or.jp/

熊本初のコワーキングスペース(正直、今まで無かったことのほうにビックリだが。。)ということで、前々から気になってた。

いやぁ、良いよ。未来会議室さん。

広いし、綺麗。

作りもなかなか使いやすい。設備も良いし。

小さいけどFabスペースまでちゃんとあるところが、イマドキって感じがしてステキ!

月額だけじゃなくて、当日のみで使えるのもGOOD。

------------

セキュリティさくら前の、スリランカ家庭料理レストラン「ルワニ」さんのヌードルカレー

------------

東横インの朝食が、やけに鹿児島のおふくろの味てきな感じで、珍しく食べ過ぎてしまった。。。

でも、味噌漬けおいしい・・・

------------

熊本の母校と、ソフトプラザ鹿児島さんの2箇所でガジェットの紹介をしてきました。

主にカリフォルニアで買いまくった私物のガジェットetcetc...

いやぁ、やっぱり物買って、使い倒して、こうやってアウトプットしないとダメですわ。

買わずに/触らずに、スペック表だけ見てあーだーこーだ言って批評家気取ってちゃダメ。

自分もよくやってしまうので、気をつけたいところ。

そういう意味では、今回はこの帰郷を通して、アウトプットまで回せたのでとても満足です。

作った資料も、公私含めていろんな方に展開できたので、とても活用できている。

------------

Apple Lover User Group飲みでは、2014年、2015年とApple Store 銀座でLucky Bagご一緒した(のは今年だけだけど)歩恋さんのお誘いで、Apple Store 天神で一番を取られた女性の方や、他にも福岡界隈でHotな方々と飲み飲み。

いやぁ、やっぱり福岡はいろんな意味で活気があって良いです。

------------

最終日は予算がすでにカツカツなので(地元にできるだけ長く居る為でもありますが)、ジェットスターを使って成田経由で戻る計画。

定刻で到着すればスカイライナーにギリ間に合う、遅れてもエアポートシャトル含めて2本くらい余裕があるので、大丈夫だろうというところでしたが。

甘かったよ。

正直、自分の交通関連の運の無さを過小評価してたよ。

機材トラブルで離陸遅れ。

この段階でバッファを含めて自宅に戻る手段は全滅。

到着しても預け荷物がなかなか出てこず。

20分待って、いよいよJRの最終(=成田脱出の最終手段)まで残り2分というところで荷物回収。

成田空港を全力失踪、エスカレータまじごめん。

キャリーバッグ抱えた状態で、ほとんど転がり落ちる勢いのまま、JR総武線快速最終に乗車。

でも、御茶ノ水までが限界だったので、総武線乗車中に奇跡的に予約の取れた水道橋のホテルへ。

ここで幸運だったのは、お任せプラン(ホテルが空き部屋を適当に充てる)にしてたら、全自動洗濯機付きの部屋だったこと。

当然、服の予備は無かったからね。助かったよ。

というわけで、ホテルに到着後は、わりとゆったりしながらAppleの発表会をリアルタイムで見れました。

------------

いやぁ、今回、移動の多さ(距離の遠さ)もだけど、予定の間のバッファが無さすぎてつらかった。

あるにはあるんだけど、各予定の前後の振れ幅に対して少なすぎて。。。

たまにはゆっくり帰郷してみたいなぁ。

「第12回セキュリティさくら」に参加しました。

熊本での2日間の日程を終えて、鹿児島中央の東横INNからブログ書いてます。

今回、ちょっとお茶目な日程で動いているので、日程全体のまとめは明後日以降に書きたいと思います。

3/7は、「第12回セキュリティさくら」に参加しました。

https://atnd.org/events/61150

熊本にいた頃に2回参加、LTのみ1回参加した勉強会ですので、ある意味同窓会のような感覚で参加しました。オンラインでは絡みがあるけど会ったことない系の方々とリアルでお会いすることができたので、そういう意味でも有意義な勉強会でした。

メインは中村さんによるソーシャルゲームのチートについて、守る側からのお話。

内容は厚みがあって、ここに私の稚拙な文章で感想を書くのはおこがましいのですが、一番重要な点の一つは、なぜ利己的なチートによる利益享受がいけないのかというトークだったように思います。

チートによって場が荒れると、運営する側、ゲームが好きでプレイしているユーザの両方が(チートに対するスタンスにより経緯は変わるものの)疲弊し、不利益を被り、チートによって利己的に利益享受をした一部の人のみが一人勝ちをしてしまう。

ゲームが好きであれば、そこらへんのモラルをしっかり持つべきだと感じました。

LTでは、私もお話をさせていただきました。

内容は、ローレイヤーのセキュリティ(物理)ということで、米国のホームセキュリティー関連のプロダクト、特にネットワークカメラのお話です。

主にはDropcamの紹介でしたが、

- クラウド型のネットワークカメラが今までのネットワークカメラとどう違うか

- クラウドにすることのメリット、デメリット

- 動体検知、音声検知、CVR、ナイトビジョン等の機能紹介

- 製品として未成熟な部分

- 競合製品

- スマホで代替するためのアプリ(manything app)

あたりをまとめさせていただきました。

諸般の事情で資料公開は見送ろうかと思いますが、基本はググれば見つかる情報であったり、イメージをお伝えすることが重要だったりするものですので。

他の方のLTでは、

- @EiM_GTPE_君の同人誌製作におけるセキュリティインシデント(謝罪会見)

- @y1r96さんのホームVLAN構築の話

- @kikuchan98せんせいのCTF不況活動(怖い)

などなど、メインスピーカーの中村さんもですが、全体的にバラエティーに富みすぎだろうという面々&内容でした。

懇親会では、席が近かった方にはFLIR Oneの紹介を勝手にさせていただきましたが、皆さんとてもご興味持っていただいて、こういう新しいものに対して興味を持って、利用用途を考えることが重要な事だなと再認識しました。

ということで、とても好評ですので、CESで発表された新型のほうを、是非とも日本で発売してほしいところです。

お願い偉い人各位・・・

東京も面白いですが、地方の勉強会も意外な方が居たりしてその時々の魅力があるので、今後も年1回くらいはこれるように旅費とスケジュールのほうを頑張りたいなーと、思う所でした。

また、熊本での移動をアシストしてくれた荒木さん、事前会のカレーランチを企画してくださったななみんさん、ありがとうございました。

メインスピーカーの中村さん、主催の@greenz_greenzさんにおかれましては、本当にお疲れさまでした。

さて、日曜は主催する側なので、そろそろ寝ましょう。