2016年4月18日月曜日

SPAJAM2016とこれからの彼女の作り方

おばんです、最近白髪も増えて徹夜のできない体になってきたしょぼしょぼの田中です。

2016/4/16-4/17にSPAJAM2016というハッカソンの東京B予選に友人と参加してきました。
残念ながら受賞できませんでしたが、その時実装した設計と得た知見の共有とポエミーなこと書きます。(サーバーサイド担当が友人で、僕はフロントiOSだったので詳しくは語れませんが)




前提

ハッカソンのテーマが「不注意にそなえる」というテーマでした。
僕のチームは居眠り運転などの不注意から起こる交通事故 -> 突然の死など大きな問題ではなく、夜更かしや会議中トイレに行きたいなどの普段意識から外れがちな低レイヤーな不注意を防ぐという目標を持ちました。
夜更かしなどの低レイヤーの不注意にそなえることは心の余裕を持つことにつながり、結果として大きな不注意、危険度の高い高レイヤーな不注意も防ぐことができます。一石二鳥。


作ったもの

ということで作ったものが以下。





黄色が特に可愛い。うちのチームのデザイナー神。




メッセンジャーはオウム返しまでできた。




コビトさんがグーグルカレンダーから前後の予定を見て、予定にない低レイヤーな不注意をおしらせしてくれるリマインダー。アプリには実装されてないけれど、「トイレ行っといた方がいいよ!」とか注意を促してくれます。




リマインダーをこなしていくとアプリ上でポイントをもらえて、それでガチャを引くと新しい個性的なコビトさんがもらえるというもの。もらったコビトさんは設定するとbotに反映される。口調とか性格がそれぞれ違う。
キャラクターに小人さんを選んだのは、寝落ちして気付くとバグがいつの間にか直っているという奇跡が小人さんの仕業だというエンジニア界隈の都市伝説から。


アーキテクチャ

これで利用したアーキテクチャが以下の図になります。



仕組みとしては難しくありません。

FB Messengerアプリ, Lineアプリを使ってbotと会話します。
そのbotはサーバー側で管理していて、メッセージのやりとりを見ています。
メッセージのやりとりが行われたら、その情報を拾って自分のアプリとデータのやりとりをします。
アプリ側からはコンソールのような形でキャラクターを変えるとかでbotの設定を変えてやるもよし、ゲーム要素を取り入れてなんらかのパラメータをやりとりするもよし。
今回はプラスアルファとしてGoogle Calendarの情報も同じように自分のアプリとサーバー側で共通のカレンダーを参照するようにして一つのデータベースのような形で扱いました。
それによって、botが自分の予定を知っていて注意喚起してくれるという状況を作り出しました。

使っているのが普段使っているMessengerやLineなところにリアリティが生まれました。


彼女が欲しい

この例を使うとなんと彼女が作れます。


(まだ実際には作ってないけど)

やはりFacebook MessengerやLineなどのリアルと密接したメッセンジャーの結果がアプリに反映されるリアル感が良いですし、そこにゲーミフィケーションの要素を自作アプリにつけることも可能です。
もうギャルゲですね。

日常的な会話をしたいじゃないですか。
予定を共有して把握していてほしいじゃないですか。
そこからの会話の発展とか、自分のことを知ってほしいじゃないですか。

このアーキテクチャなら彼女が出来ます。


展望

以下が実現できるとよりアツいと思う
・蓄積したデータによるキャラの学習
・蓄積したデータによるユーザーとの関係性の変化
・「「自発的に」」情報の取得、ニュースの情報を拾ったりして日常会話へ反映
・プラットフォーム化(Bot ShopやSDK)

ツンデレライブラリ、ヤンデレライブラリ、ケモミミライブラリ、ドジっ子ライブラリなどアツくないですか。
耳があることによる身体的な常識から生じる日常会話の変化や、ドジなので約束したことをGoogle Calendarに入れ忘れるとか。
あ、ヤンデレだったらカレンダーから誰と何してるかの情報が筒抜けですね。とかとか...。

さいごに

途中からbotとしてなら普通のこととか色々ノイズが入っちゃってましたが、いいんです、真姫ちゃんが可愛いです。

技術的には、Line botはLine側とのSSL関係で1〜3日かかってしまうケースもあるようなので注意が必要です。
Facebook Messenger botは初回の設定項目が多くて大変なようです。

なお、現実彼女を作ることに関してはそもそも女性の分母が少ないエンジニア界隈をターゲットにするのは間違っていると友人に指摘されました。料理教室通うとかデザイナーのいる勉強会に行くとかその他の施策をオススメされました。

2016年4月9日土曜日

東京来て一週間

おばんです、田中です。
入社から1週間が経ちました。

ゆっくりではありますが、会社の人の顔と名前を覚え始めてきました。
仕事も順調なように感じてとても良いです。

まだ聞き慣れない用語が飛び交っているように感じはしますが、コーディングやgitの運用方法などこれまでやってきたことは軽くすり合わせをした程度の段階ではありますが、なんとかやれそうな気がしています。

これまで一人で取り掛かる案件・開発がほとんどだったりしたので複数人が同じ場所で仕事をするということにとてつもない安心感と安定感があります。
一人だとあれもこれも、とタスクの分野のスイッチの切り替えを多くしなくてはいけなかったのですが、それがいかに脳内のメモリとCPUの処理に負荷をかけてたかがわかります。

プログラミング、開発の手法・手順、お客さんとのやり取りの仕方などプロが揃ってる中で安定したスキルの吸収ができるのがすごく贅沢。


最近は個人でもまた勉強会の開催を企んでいたり、技術ではSwiftでこれまでと違うアプローチでコードを書いてみたり、Unityに触れてみたり、AWSにも手をつけようかとしていたりするような感じです。
仕事を始めると時間が無いと周りの人に言われていたのは本当で、なかなかブログでまとめられる単位までもっていくのに時間と体力のバランスをとるのが難しくも感じます。ブログの更新頻度も加速せにゃあならん。
無理せず、だんだんと慣れながらやっていこう〜。


料理も徐々に始める感じで。
調味料と作業スペースの机が無いのがとても難しい。
実家最強説。実家最強といえば、あとは湯船に浸かりたい。


田中家式ではないカレー


あと方々から、amazonのwishlistで救援物資をいろいろと頂いています!
wishlistすごい便利〜。
みなさんありがとうございます!