satetsu888のブログ

アラサーwebエンジニアのブログ

paymoのソーシャル機能をみて思ったこと色々

この間 Kyash の話と kyash-button を作った話をしたところだけど、paymoにソーシャル機能が実装されて面白かったので今日はpaymoの話をしたい。

paymo.life

先日のアップデートで、割り勘アプリのpaymoにソーシャル機能が実装されたようで、割り勘したことない人とも友達になったり、ブロックしたりできるようになった。しかも友達のpaymo利用履歴もホーム画面(この呼び方でいいのか?)に出てくるみたいだし、請求する時や支払う時のデフォルト公開範囲設定として「友だちの友だちまで」というSNSで見慣れた表現が出てくるようになった。

そして、個人的にはこの友人機能と公開範囲設定機能を独自実装するのはめちゃくちゃハードルが高いと思っていて、急いで作ったせいであとでスケールが辛くなったりしないかなぁと勝手に心配している。

paymoは最初のリリース時からfacebookアカウントと接続することによって、facebookの友人とはpaymoでも自動的に繋がるようになっていて、友人がpaymoを始めたタイミングでご丁寧にフィード(この呼び方でいいのか?)を流してくれていた。 このフィードをみた時に、昔はSNSでよく流れていた「〇〇さんがXXをはじめました」みたいなお知らせメッセージぽいなぁと思って、謎の懐かしみがあったと同時に、それ(同じアプリを使っている友人を表示してアプリへのエンゲージメントを高める)をやりたいんなら、最初からfacebookアプリとして実装する方が筋が良さそうだなぁと思っていた。 ただ、個人間割り勘アプリとして新しいフィールドを抑えに行く以上は、SNSプラットフォームに乗って自由を奪われるのを嫌って独自アプリで作るというビジネス的判断なんだろうと思っていた。

その後paymoは、アプリを入れてなくても割り勘ができる機能を発表する。 jp.techcrunch.com スマホにアプリをダウンロードするハードルが高いので、webでも割り勘体験をして便利さを知ってもらう戦略だろうとは思うんだけど、この時も僕はそれ(友人からURLを共有されてそこで友人と一緒にアプリを利用する体験)をやりたいんならfacebookアプリの方が筋が良さそうだなぁと思った。facebookイベントと割り勘機能の相性めっちゃ良さそうだし。 インターネット人口の大半がサンシャイン牧場の友人の畑に毛虫を入れていたかつての時代であれば、paymoはまず間違いなくSNSのアプリとして作られてたと思うし、その方がユーザに受け入れられやすかった可能性すら感じる。

ずっとそういう目線で見ていたら、ついに友人管理機能とフィードの公開範囲機能が出てきて、それ(アプリの利用状況を特定の範囲に向けて公開)をやりたいならそれこそfacebookアプリの方がよかったのではとまた思ってしまった。 だって友人の友人かどうかの判定って愚直に実装するとN:Nの友人関係テーブルのself-joinしないといけないだろうし、ユーザが数万人でそれぞれ10人しか友達いないならなんとでもなるけど、ユーザ700万人でそれぞれ100人友達がいるような規模になった時に本当に辛い気持ちになるんじゃないかなぁ。餅は餅屋、ソーシャルグラフソーシャルグラフ屋。

まあ利用者を広げた後のビジネスモデル的なところとか、対象ユーザが使っているSNSとかいろんなことを考えはじめると、きっと独自でソーシャルグラフを形成して頑張っていくしか道はないんだろうなぁ。

他所のアプリの心配してないで、facebook eventと連携して割り勘集金するツール自分で作ってみるのはありかもしれない。

Kyashを使ってWebでお金を受け取りやすくするKyash-button作ってみた

みなさんお手軽に個人間で送金ができるアプリ Kyash はもうインストールしましたか? まだしてない人は続きを読む前に今すぐインストールしましょう。ちなみに僕の招待コードは 4EKVVT です。


Kyashは基本的にLINEやFacebookの友達同士でお金をやりとりしあうような使い方をメインに想定してそうだけど、 このツイートを見て以来、個人的には新時代のWeb投げ銭としての活躍をかなり期待している。

Twitchの配信を見ている人からのカンパにKyashを使うというアイデア自体は、非常にイケてるんだけど運用上ちょっと微妙だと思ったのは、 PCで配信を見ている人はQRコードを読み込めばいいけど、スマホで見ている人は直接Kyashアプリを開く方がいいよねというところ。 LINEbotなんかの時も思ったけど、スマホで見ている時に画面にQRコードだけを出されると開きにくくて絶望する感じあると思う。 今後Twitchだけでなく、いろんなサイトでカンパ機能のデファクトとして使っていくにはKyashのQRコードベタ張りというのはあんまり親切ではない。

じゃあ、PCだとQRコード出してiPhoneだと直接Kyashアプリ開くようなものを作ってみるかと思ってKyashアプリの挙動を調べていたんだけど、

アプリが落ちる問題があって、すぐには作れなかった。

対応してくれることを祈ることおよそ1ヶ月、ついに最近アップデートで特定のユーザへの送金リンクを踏んでアプリを起動することができるようになったので、ガッと作ってみた。 もちろんはてなブログにも設置できるので早速置いてみる。

↓↓↓これ↓↓↓

Kyash

↑↑↑これ↑↑↑

Twitterとかfacebookのボタンと同じような感じで、サイト内にスクリプトタグさえ設置できればどこでも置ける。 PCで見るとQRコードが開くのでKyashアプリで読み取ってカンパできて、iOSだと直接Kyashアプリが開くのでそのままカンパできる。 動作確認のために僕に好きなだけ送金してくれて大丈夫ですよ!!

設置の仕方とかソースコードとかはここ github.com

そこそこいい感じにできたと思う。みんながあちこちにこれ設置してくれるようになると色々面白くなってくるんじゃないかなぁ。

本当はボタンに公式のロゴを載せたかったけど勝手に使うのはアウトだし、そもそもこういうのを公開するのはどこかでアウトなことしてないかちょっと心配だったりはしてる。 以上、よろしくお願いいたします。

Raspberry Pi 3 とタッチパネルで1タッチリマインダーを作った話

とある機会にプレゼントとしてRaspberry Pi 3 とタッチパネルをもらった。

せっかくなので以前から我が家の中で不便だと思っていたことを、流行りのIoT的なやつで解決してみようと思って、ワンタッチで特定の単語をiOSのリマインダーに追加できるやつを作った。

以前から不便だと思っていたこと

我が家では、僕と嫁さんの買い物のバッティングを防ぐために、iOSのリマインダーの共有機能を活用している。 二人で買うものリストを共有して、スーパーやドラッグストアに行くたびに開くだけで非常に便利で、生活に溶け込んだITの威力を感じる。

またリマインダーの良いところとしてSiriから簡単にタスクを追加できるというのがある。 iPhoneの中の特定のアプリを探して起動して文字入力する手間に比べると、Siriを呼び出して「◯◯をリマインド」と言う方が格段に楽だし、片手しか空いてないかつ数秒以上注意をそらせないような状況(家に小さい子どもがいるとよくある)でも問題なく使える。

ただこの Siri x リマインダー にも弱点があって、

  • 料理中、掃除中など片手すら離せない状況

  • お風呂の中などiPhoneを所持していない状況

では使えなくて困っていた。 iPhoneがたまごや肉の脂でベトベトになったり、水没したりするリスクを取ってまでリマインダーを使いたくはないが、一区切りついてから「たまご」や「シャンプー」を登録しておこうと思っていても、なかなか高い確率で忘れてしまう。

大抵のものは1日くらい買い忘れていても問題ないのだが、食料系などは無くなった時に買い忘れると困ることもある。我が家の場合「たまご」「チーズ」「食パン」あたりのものは、基本的に毎日消費するかつ賞味期限が比較的短くて買いだめしにくいため、無くなった時に忘れず確実にリマインダーに登録してやる必要性が高い。

つまり、たまごを割って手がベトベトかつフライパンの上ではたまごが刻一刻と焼けていっている状況において絶対に忘れずにリマインダーに「たまご」と登録したいのにできなくて不便、ということだ。

理想の解決方法

この困りごとの理想の解決方法は、実はアメリカにはすでに存在していて Amazon Dash Button があればそれで済む。

gigazine.net

たまごやシャンプーがなくなった瞬間にボタンを押せば届けてくれるというのは非常にクールで、このボタンがiPhoneのアプリとしてではなく独立したデバイスである点がサイコーである。 ただしこの理想の解決方法、まだ日本ではサービスが提供されていない。悲しい。 早く日本でもサービス開始して欲しいと思いつつ、同じようなことができるボタンを自作して設置したい。

IoTのプロダクトはなぜかみんな常時センサーデータを記録してクラウドビッグデータをやりたがる傾向がある気がするが、Amazon Dash Buttonみたいな環境中に場所に応じたシンプルなインタフェースを配置する方向もかなり大きな可能性があるように個人的には思う。

設計方針

僕のやりたいことはリマインダーに「たまご」を追加するだけではあるが、せっかく作るので汎用性をもたせたい。

ラズパイに表示されたボタンをタッチすると、登録しておいたタスクが実行される仕組みを作って、「リマインダーにたまごを追加する」タスクを登録できるように作れば、リマインダー以外のことがやりたい時にも対応できそうだ。将来的に1タッチでたまごが注文できるようになった時にもうまく使いまわせる気がする。 というわけで、ボタンを押すとIF by IFTTTのMaker Channelにリクエストを送るだけのインタフェースをラズパイにのせて、ボタンの種類の追加とIF側のルールの追加を行えばいろんな便利機能が1タッチで呼び出せちゃう感じで作る。

ちなみに IFTTT はまさしく僕が作りたいものに近い Do Button というやつも提供しているが、今の所スマホアプリにしか対応していない。 ラズパイにAndroidをのせてこの Do Button アプリを動かすという方針もありっちゃありだが、自作する方がいろいろつぶしが効きそうなので自作することにする。

よくわかるシステム構成図はこちら f:id:satetsu888:20160505214504p:plain

実装

本当にとりあえず動くようになっただけでREADMEも書いてないものがこれ

github.com

遊びなので使ったこともないPyramidとReactのチュートリアルを組み合わせたみたいな感じになったけど、どうにかこうにかボタンを押すとMaker ChannelにPOSTリクエストを送るだけのものができた。 各ボタンを押した時に送るPOSTリクエストの内容は、ラズパイのローカルに置いたDBで管理している。管理ツールはまだ作ってないがデバッグ用のリロードボタンだけ必要だったので置いた。

gyazo.com

しかし!

IFTTTからiOS Reminderの連携が全く同じリクエストを送ってもうまくいく時と行かない時があって詰んだ。 せっかく忙しい合間を縫って必死に投げたリマインダー登録が虚空に消えてしまうのは残念すぎる。

そこで、しぶしぶ汎用性を捨てて、スクレイピングiCloudを使うライブラリを取り込んで、リマインダーの追加はそっちを通して行うことにした。 IFTTT側の実装は今の所使い道を思いついてないけど残してある。

あとはこれをラズパイのローカルで立ち上げて表示して、本体を冷蔵後の側面に貼り付けて完成。 これで如何なる時でもあっという間にたまごをリマインダーに登録できる。便利。

f:id:satetsu888:20160505215102j:plain

まとめと今後の課題

昨日設置して今日2、3回使ってみたが、地味に便利さを感じた。 もう少し使いながら登録する単語を精査して利便性を上げていきたい。

また、実際に配置して使ってみると、かなり多くの問題が発見できた。

  • タッチエリアが意外と小さい、ボタンが離れてなくて誤タップする

  • onClickイベントで拾うと、タッチパネルの感度の問題でわずかにドラッグしてしまった時にボタンがおせなくて辛い。すぐにonMouseDownに修正した。

  • 一定時間で画面がスリープする、その復帰のためのタップによって誤タップが起きる

また、登録されていない単語をリマインドするために音声認識機能もつけたいし、 リマインダーとは関係なく、今日の天気や何のゴミを出す日かを喋って教えてくれる機能をつけて欲しいとのリクエストも嫁さんからもらった。 もとはキッチンコンピューティングくらいの予定だったけど、リビングコンピューティングくらいまで範囲を広げて、便利に使える機能を搭載していきたい。

[asin:B01D1FR2WE:detail]

地方創生ってモヤモヤする話

いまこそ地方創生、東京一極集中の状態を打開しようって論調を耳にするたびに、お前らちゃんと考えてから喋ってんの?って気持ちになってモヤモヤするので、思いついたことを適当に書く。

若者を中心に地方から労働力が流出している、高齢化が進む、人口が減る、税収も減る、このまま立ちいかなくなる前に、新しい産業を作って、人口を呼び込んで、税収も増やしていまこそ地方創生だって理屈はわかる。他に選択肢がないという意味ではむしろよくわかる。 ただ、「地方が立ちいかなくなるから」というのは、地方に産業を「作りたい」理由でしかなくて、地方に「作るべき」とか「作るメリットがある」とかいう相当に重要な視点がすっぽり抜けてると思う。

そもそもなぜ産業が東京に集まるのかというと、いろいろ理由はあるだろうがその一つとして人口が挙げられると思う。 人口がいるということは、何か商売をはじめた時にそのお客さんになってくれる人がいるということであるのと同時に、ビジネスを拡大していくために必要な労働力も確保しやすいということだ。 この「人口がいる」ということが、何かをはじめたい人から見た東京の「地の利」になると思う。 もう少し範囲を絞るなら、オタク向けビジネスをはじめるなら秋葉原が良さそうだし、高齢者向けになにかやるなら巣鴨だろう(ちゃんと調査したわけではなくイメージで書いてるけど意図は伝わるからいいでしょ)。この判断はどちらも、ビジネスのターゲットになる人がたくさんいるという地の利を元に行われている。

人口以外の視点で見ても、基本的に産業は地の利を活かして発生していると思う。 産油国では石油を掘るし、労働単価が諸外国より安ければオフショア開発拠点が作られる。湿度が高い日本では小麦ではなく稲を植えるし、中華街は港のあった横浜と神戸に発生している。 チグリス・ユーフラテス川が肥沃な土壌を作ってメソポタミア文明ができた時から現代に至るまでずっーーと、いつだって地の利をもつ方が勝利を収めてきた。

そんな中で話を地方創生に戻すと、ちゃんとそこで産業をやることにメリットがあるのかという疑問に真っ向から挑める回答はほとんどなさそうに思われる。 もちろん空気がきれいとか村の人が親切とか自然が多いとか田舎としての良さがあることは間違いないが、その利は田舎であることに依存しているせいで全くスケールが効かない。人口を10人増やしてもまだ良さは残るかもしれないが、千人とか一万人増やした時に何か利が残っているとはあまり思えない。

いまこそ地方創生を声高に叫ぶ人には、ぜひ考えに考え抜かれた「東京ではなくうちでやるメリット」を語って欲しいところだが、それが空気がきれいとか新鮮な野菜が食べられるなんて寝ぼけたことを言ってるうちは地方は創生しないだろう。とりあえず人を呼ぶためのお金をかけてる暇があったら、明確な地の利を打ち出すための投資を進めてちゃんと地方創生して欲しいと切に思う。

スチームオーブンレンジが欲しい人のための数理問題入門

サンドラッグが1000店舗記念だとかで、キャンペーンをやっている。

サンドラッググループ1000店舗達成ご愛顧感謝キャンペーン-TOP-

どうやら、5000円分以上または3000円分以上のレシートを送るとスチームオーブンレンジをはじめいろいろ当たるらしい。 最近オーブンレンジを買い換えようかと思っていて、なおかつ家の目の前にあるサンドラッグに日々生活費を落としている身としてはこれほど好都合なキャンペーンはない。 これは応募するしかないと思いつつも、1回の買い物は5000円もいかないので、日々の買い物レシートを貯めていたらずいぶんいっぱいになってしまった。

キャンペーンに応募するために、レシートの合計金額が5000円を越えるようにグループを作る必要があって、なおかつできるだけたくさん応募したい。 そして最後にあまるレシートは、中途半端な金額になってしまうよりは3000円コースに応募できるようにあまって欲しい。

これはいわゆる集合分割問題というやつを解く必要があるようだ。 集合分割問題の概要については下記のQiitaを眺めるのが手っ取り早い。

qiita.com

集合{M}とか部分集合{S}とかコスト{c_j}とかにカジュアルに出てこられると、スチームオーブンレンジドリブンなエンジョイ勢としては早くも投げだしたくなるが、ざっくりいうとこういうことだ、

  • 集合{M} → 全部のレシート
  • 部分集合{S} →応募するレシートの組み合わせ
  • コスト{c_j}{S}の組み合わせとしての良さ
    • 合計5000円ぴったりだと最高だし、8000円だと微妙でもっと無駄がない組み合わせがありそう、2000円しかないとダメ みたいな感じ

そして、レシートの組み合わせそれぞれについての良さを{weight}としてデータ構造を作ってやれば、あとは紹介されているライブラリ(このQiita書いた人がつくったっぽい)が組み合わせを適切に計算してくれるという話。

さて、僕の手元にあるレシートの各金額は下記の通りだ。

https://raw.githubusercontent.com/satetsu888/partition-of-a-set-for-sundrug/master/data.txt

これくらいの数なら手で適当に組み合わせてもそれなりにいい感じにできそうな気もしたが、まだ応募期間が終わってなくて期限ギリギリまでレシートが増え続けることを考えると、機械的に組み合わせを決定できるにこしたことはない。 世の中のたいていの手でやったほうが早そうに見えることというのは、わりと低くない確率でちょっとだけ条件が変わってもう一度やりなおしたり、計算したのに間違えててもう一度やり直したり、せっかくはじき出した結果をなくしてもう一度やりなおしたりすることになるし、なんでも再現性高くコンピュータでやってくのがよい。21世紀だし。

そしてスチームオーブンレンジ欲しさに初めて書いたPythonコードを晒しておく

calc partition of a set for sundrug

今回やらなくてはいけない主な処理はだいたい汎用的なものなので、見よう見まねで既存ライブラリを繋げば動く

itertools.combinations で各レシートの組み合わせを簡単に列挙できて大変便利。 その組み合わせについてcalc_weightで各グループのスコアを計算している、5000を越えると1ずつ上がっていく、3000~4999の間は3000からの距離の50倍をスコアにした。 そして計算量をがんばって押さえ込むために、upper_limitを設定し、それを超えているグループは最初から組み合わせ計算にいれない。 できた組み合わせの元データ上のindex、と重みをセットにして組み合わせ計算ライブラリに放り込む。

当初は全体の最適解を計算しようと思ったのに、組み合わせが膨大すぎてスーパーコンピュータでもないと終わらない感じだったので、 諦めてレシートを3分割してそれぞれの中で組み合わせを作っている。 しかも順序が固定だとそれなりの解にも到達しないことがあったのでランダムソートまでしていて、stableな結果は出力されない。 まあ今回は最適解よりレシートが追加された時に機械的に何度でも解を出すのが目的だし、良いことにしよう(負け惜しみ)。

結果以下のようなものが得られて、5000円コースに7本、3000円コースに3本応募できることがわかった。

calc partition of a set for...
[383, 2217, 518, 412, 760, 1387, 1964, 4944, 1281, 579, 1084, 2017, 306, 1008]
create 16383 groups
finish calc weight
cut lower
317
cut upper
14885
calc
1181
=RESULT=
[518, 4944]
sum:5462

[2217, 1964, 1008]
sum:5189

[383, 760, 1281, 579]
sum:3003

[412, 1387, 1084, 2017, 306]
sum:5206


calc partition of a set for...
[2985, 888, 794, 417, 898, 1661, 659, 1370, 537, 880, 977, 1615, 949]
create 8191 groups
finish calc weight
cut lower
245
cut upper
6911
calc
1035
=RESULT=
[2985, 794, 1661, 537]
sum:5977

[417, 659, 977, 949]
sum:3002

[888, 898, 1370, 880, 1615]
sum:5651


calc partition of a set for...
[2819, 178, 1068, 1965, 1125, 810, 851, 1090, 563, 500, 414, 1381, 813]
create 8191 groups
finish calc weight
cut lower
369
cut upper
6618
calc
1204
=RESULT=
[2819, 1068, 851, 414]
sum:5152

[1125, 563, 500, 813]
sum:3001

[178, 1965, 810, 1090, 1381]
sum:5424

手作業でもなんでも、これより良い組み合わせを作れるぞという方は至急連絡いただきたい。(キャンペーンの応募は12/7までだよ!)

コードの実行が終わらなくて、並列計算とかクラウドの計算リソースとかも考えたけど、集合分割問題に特化したアルゴリズムが並列計算できるのかどうか全然知らないのと、組み合わせ爆発したデータの計算はクラウドに重課金くらいじゃ済まない気がするのでやめた。 そこにお金使うなら普通にスチームオーブンレンジ買うよね・・・

更新が簡単なしくみを考えつつサイト作ってみた

同僚とランチしてたら、ポートフォリオサイト作ればエンジニア的価値が伝わってイケてるし作るしかないっしょ、みたいな感じだったので影響されてずらずらと情報並べるだけのサイトを作った。

並べ「た」だけのサイトではなくて、並べ「る」とあえて書いたのがミソ。
 
 
昔からホームページ的なものは何回も作ったことあって、それこそ掲示板とリンク集と箱庭諸島が並んでるページから、ちょっと技術的なやつ、ネトゲのギルドサイト、サークルのとかいろいろ。ホスティングの方法もレンタルサーバーFFFTPでアップロードしてたり、bitbacketでマージボタン押せばjenkinsが走ってテストして簡易なデプロイをしてくれたりしてたんだけど、どんな時でも必ず共通して言えることがあってそれは
 
更新がめんどくさい
 
そもそもコンテンツ生成めんどくさいってのはまあそれぞれケースバイケースなのでなんとかしてもらうとして、あるコンテンツをサイトに追加するためにHTML書いたりCSS書いたりする作業自体のめんどくささがハードルとして残っている状態はよくないと思う。blogとかCMS的なものを使えば記事書くだけでいいんだけど自由度がガクッと下がるので、今回ポートフォリオ的なサイトを作るにあたって自由度を保ちつつコンテンツをサイトに変換するくだらない作業をしなくてもいいようなことを考えてみた。
 
作ったサイトはこれ
 
下までスクロールしてもらえればわかるんだけど、このサイト上のコンテンツは全部jsonで書かれていて、それをvue.jsでコンポーネント化されてるページのそれぞれの要素に渡していってレンダリングするみたいなことをした。
 
やりはじめた当初は、jsフレームワークでやるんだし、各コンポーネントにjs的な動き要素をいっぱいつめこもうかと思ってたんだけど、ちょっとやってみて全然良さがなかったのでやめた。
 
考えながら適当に作ったから、いったい何ができるのかあんまり考えてなかったけど、出来上がった感じをみると、blogみたいでもありblogパーツみたいでもあるよくわからないものになった。
 
よかったこととしては、とりあえずこれでなんらかの方法でjsonを更新すればサイトになるよって雰囲気はつかめた。
cronとかwebhookとかでAPI叩いて情報取得して自動更新みたいなこともできるけど、コンテンツ自体については自分で書かなとただのキュレーションになってしまって面白くない気がしている。
 
逆にあんまりよくなかったのは、情報はそれぞれのコンポーネントで持つ、と決まってたんだけど、デザイン情報についてはもうどうしようと思いながら適当に配置していったのであっというまに技術的負債が積み上がった感じになった。
このまま大規模化は厳しいので、サイトの構造、コンテンツ、デザイン情報、あたりはそれぞれどう独立してどう依存するべきなのか作戦を練り直す必要がありそう。
 
 
 

中華製IPカメラを買ったらプライバシーが非常に怪しかった話

先日ベビーモニター用にIPカメラを買った。

 
これ
 なんかいろいろ細かい機能を書いてあるが、選んだ基準としては
  • VGAよりはマシな画質
  • 寝てる様子を見たいので赤外線投光器つき
  • その中で一番「安い」やつ!
 
説明が不親切すぎて設定が大変という低めのレビューがそこそこついてるが、まあ設定くらいどうにかなるもんだろうと思って購入。
 
届いた箱を開けてみると、確かにレビューにあった通り乱雑な説明書が一枚入ってるだけ
 
ざっくり書いてあることとしては、とりあえず繋げ、PCで見たければ付属のCD使え、スマホで見たければ "iSmartViewPro" 入れろ、後は admin と 123456(初期パスワード) 打て、ということらしい。
 
無線LANの設定はどうやるのかとか、初期パスワード変更の方法とか、LANの外からも見れるのかとか、大事な説明を見事に全部省略してカメラの映像が見れればあとはなんでもいいだろ見たいなスタンスっぽい。これがリーンスタートアップの説くMVPってやつか(震え)
 
僕の用途としては、同一LAN内からスマホで見られれば十分なので、とりあえずカメラをケーブルで繋いで指定のアプリを入れて、アプリ内にあった設定画面から初期パスワードを変更して、無線で使うためにWifiの設定した。
 
さあこれで同じLAN内のスマホアプリから見れるようになった。カメラも動かせるし良い感じ。説明は不親切だけど、全く問題ないじゃん、と思ったら…
 
 
スマホWifiを切ってキャリアの回線から繋いでも…見れる…!
申し訳程度のパスワード認証はかかっているとは言え、インターネットへ公開状態はあまり気持ちいいものではない。
このカメラを買って初期設定のまま使っちゃってる人がいたら、実質お部屋の中大公開しちゃってるんだろうなぁと心配しつつ、設定画面からそれらしい部分を探す。
 
なんか初期設定のドメイン的なものがあった。これかな?(そもそもこのドメインにアクセスしたらうちに繋がるのどうなってんの?カメラが勝手にDNS登録したの?)
しかし、OFFにしてもまだ外から見れる。
他にもUPnP切ったりルータのUPnPで設定されたルール初期化したり、rtspにも認証かけたりして見たけどやっぱり外からも見れる。
 
もしかしてインターネットへ公開する前提の設計?もしかしてどうやっても切れない?もしかして中国から監視してる?もしかしてすでに水面下でサイバー戦争は始まってる??
 
ふざけてるようなちょっとリアリティがあるような心配をしながら、とりあえずルーターでカメラからの通信が外へ出ないようにフィルターかける、指定されてるスマホアプリもなんか嫌なのでVLC Player で rtsp ストリーミングを拾って使うことにした。
 
やっぱりプライバシーに関わるようなものは信頼できるメーカーのもの買わなきゃいけないんだろうか。これから来るであろうIoT時代にお金ないからって怪しくて安いもの買うと碌な目に合わなそうだなぁ。