ラベル イベント の投稿を表示しています。 すべての投稿を表示
ラベル イベント の投稿を表示しています。 すべての投稿を表示

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年3月7日月曜日

try! Swiftに参加してきました!感想編

おばんです、田中です。
3月2日から4日の三日間にかけてtry! Swiftという、プログラミング言語のSwiftの世界的カンファレンスに参加してきました!
そのレポートです!

今回はgihyo.jpさんの方で一日目のオフィシャルレポーターもさせていただきましたので、後ほど記事はアップされると思います!ありがとうございます!


参加のきっかけ

父から報告されたRealmの岸川さんのTweetから知る。



即断即決、これ大事。




try! Swiftに向けて予習した

参加者と値段を見る限り圧倒的に濃い内容であることは明白でした。
今の自分のSwift力ではとても技術を吸収しきれないと......。
そこで予習することを決めて、同じく参加予定だった@totottiさんと予習として勉強会を開催しました。



Sendai.swift第0回 Protocol-Oriented Programming in Swift
Sendai.swift第1回 Reactive Programming in Swift
Reactiveは哲学だ! with Swift

内容はProtocol-Oriented ProgrammingとReactiveについてだったのですが、参加してみて予想通り、予習によって理解できる範囲が広がってとてもよかったです。

@totottiさんとは復習会もやろうと話をしているので、仙台開催ですが興味あるか方は是非参加してください!


try! Swiftの様子

参加費の3万円の中に朝食と昼食、そして最終日は懇親会が開催されたのですが、これも参加無料だったので含まれてるのかと。
美味しかった!




電源スポットとWi-fiもあってかなりの充実っぷりです。
電源は人気すぎてブレーカー落ちたりしてました。




挙手

僕はイベントに参加した時は極力挙手して質問するようにと心がけています。

・登壇者の方・参加者の方と話すきっかけを持てる
・会場が盛り上がる
・自分の技術的な疑問の解消

の三つに役立つからと思っています。

あとTwitterも盛り上がったのでよかった。
話しかけてくれる方がいたりして実際効果がありました。楽しかった。
「あのダンボールの人ね」って後で言ってもらって嬉しかった。w

それと挙手して質問した時の"That's a good question."と質問内容のリピートをしてくれることの安心感は半端なかった。


積極的Q&A

あとはセッション後のQ&Aも活用させていただきました。
一日目のオフィシャルレポーターとして、聞き逃した部分や疑問点の解消に役立ちました。

try! Englishで技術的質問

try!なのでエラーで落ちるかと思いきや、相手の海外の方が意図を汲み取ってくれて助かりました、ありがとう!
二日目最後にSwiftらしいTableViewの話をしてくれたChrisさんにセッションについて質問した内容でした。


僕「How do you use tableview on storyboard?
宣言ってどう言うんだっけ...、宣言時にジェネリクスだと使えないやんって聞きたい...(ぼそっ
You can't use tableview on storyboard yesterday's your session approach.」

Chrisさん「Ok, give me a paper and a pen.」


みたいなやり取りをしてこんな図を書いてくれました。(写真がアレだけど)



意図を組んでくれて、コードと図で説明してくれたのでわかりました!
ソースコードは共通言語だよやっぱり!!


オフィシャルレポーターになったこと

またまた岸川さんのTweet。


このTweetを見て自分がオフィシャルとして務まるだろうかと、不安もありましたが、今後ともレポーターの立ち位置や、こういうイベントで役に立てるようにと思って頑張ってみました。


フラグ立てた

来年は登壇者として参加できたらいいな...!と思ったので予行演習とフラグ立てしました。
<>でジェネリクスを説明するイメージ



頑張って勉強します!勉強しますから!


いろんな人と話せた

ネット上で知っていたあの人やこの人と会って話ができたのがよかった!
自分にとってはそんな人たちが目標なので。


Swiftのアツさ、OSSのアツさ、エンジニア道のアツさ

JesseさんのオープンソースのSwiftに貢献することについてのお話。
自分自身正直コンパイラや技術的なところへの貢献は難しいと感じています。しかし貢献できるポイントはそこに限らず、今後のSwiftに実装してほしいことの意見を出すことや、Typoの修正など、貢献できるポイントはいくつもあります。
プログラミング経験の差に関係なく意見を出して議論することに意味があって、初心者だとしてもその意見は初心者にとってSwiftが使いやすい言語になっていく糧となるということです。
やさしさと思いやり、そして助けを求めていくことでSwiftへのContributeをしていってください。仮にRejectされたからといって、たまたまそのタイミングでは利害が合わなかっただけで、そんなに気にすることはないと。

Swiftは一プログラミング言語に限らず、コミュニティである。各々が活発にContributeを続けていくことで、Swiftの利用範囲は広がっていき、みんなにとって利益のある素晴らしいエコシステムが出来上がっていくというお話でした。

日々のエンジニアとしての生活を勇気付けられた、とても感動したセッションでした。
ということでSwiftのメーリングリストに登録してもメールボックスが蹂躙されなくて済むというHirundoを落としてみました。
Contributeしていこう。




かっこよかったこと

「ドーン!!!」が面白すぎたのでアプリ名が聞きたくて、Chrisさんに質問しました。
そうしたらこんな返答でした。

かっこよすぎ。


みんな楽しそうだった

今はSwiftといえばiOSやMacOSのアプリの開発に使われている言語ですが、オープンソース化によってサーバーサイドや、リナックス上で動くことで活躍の幅を広げているように感じます。
また、ソフト開発やチーム開発やテストなど、単純に言語としてどうこうというトピック以外も取り上げられていました。
人それぞれ抱える課題は違えど、技術・開発共々幅広くカバーした構成になっていてみんな楽しめる内容だったので素晴らしいと感じました。


イベント自体の振り返り

・シングルトラックがよかった!マルチトラックだと被りが悲しいので。
・Q&Aセッションの被りがつらかったけれど、仕方ないかとも思った。


まとめ

try! Swift 2017がもし本当に開催されるなら、また参加したいです。
Awayokuba、登壇者として参加したいです。
本当に楽しく充実した三日間でした。

2016年1月21日木曜日

(仮)Sendai.swift 第0回に参加してきました!

こんにちは、田中です。
3月のtry! Swiftもだんだんと近づいてきましたね、今から楽しみで仕方ありません。
ですが、予習しないとヤバそうな内容の濃さだろうなという危機感も感じています。

仙台のiOS勉強会ではおなじみの@totottiさんもtry! Swiftに出陣するとのことで、同じように「予習したいよね」という話になりこの度try! Swiftに向けたSwiftの予習勉強会として(仮)Sendai.swift 第0回を開催する運びとなりました。



エレベーター脇に貼っていただいていた案内の紙。
うん、シンプルでわかりやすい。


勉強会について

「そろそろ本格的にSwiftをやろうかな」という方が多くなってきたのかはわかりませんが、8名の方にご参加いただき満員御礼でした。ありがとうございます。

今回第0回のテーマはProtocol-Oriented Programming in Swiftでした。
「Swiftではクラスではなく積極的にProtocolを使っていこうぜ!」という感じです。
公式のWWDCのビデオとスライドを見ながら解説や議論をしていきましたので、このエントリの内容もそれに沿った内容になります。
なので、このエントリはビデオとスライド一緒に追いながら見るとより理解が捗るかと思われます。

解説・参考は以下の二つの記事を活用させていただきました。
Swift 2で提唱されているProtocol Oriented ProgrammingをWWDCセッションから学ぶ
Swiftにおけるプロトコル指向プログラミング

初回としてはなかなか重めの内容でしたが(自分自身理解がまだ追いついてないです;)、Swiftに関してこういった設計寄りで濃い内容を語らう場というのは仙台では初めてだったのでとても楽しかったです!





議論されたこと

継承問題

Swiftは継承できる親クラスは一つで限られています。
そのため継承するクラスは慎重に選ばなくてはいけません。
それに対してProtocolは複数採用することができるため、Protocolで代替できるところはProtocolで書いていく方が良いのかもしれません。

実装内容はサブクラスで定義したい場合

クラスでメソッドを定義する場合は実装内容を書かなくてはいけません。
しかしその具体的な内容はサブクラスで定義したい、ということがあるかと思います。
クラスで書く場合は親クラスの実装で
func hoge() { fatalError("implement me!") }
などと記述したりするのはよくしがちです。
fatalError()がカッコ悪い!
実装しないなら実装しないでおきたい!
そんな時はProtocolでメソッドの定義だけにとどめておいて、実装はそのプロトコルを採用した先でやればいいですね。

heterogeneous(adj. 異種の)とhomogeneous(adj. 同種の)

┌(┌^o^)┐ホモォ...

公式のスライドを引用します。



それぞれで定義した場合の比較です。
違いとしては引数がOrdered型かSelf型かというところ。
そしてジェネリクスを用いたソートを行っているか否かという点です。

heterogeneousの方はOrderedプロトコルを採用した型ならなんでも引数に取り、homogeneousではOrderedプロトコルを採用したSelf型を引数に取り、さらにジェネリクスで定義してあるためその型で統一されている型である必要があります。

どちらが良いかというのは時と場合にはよると思いますが、最適化具合に差があります
heterogeneousではなんでも引数に取ります。これは何か問題があった場合は実行時にエラーが起こります。(= Dynamic dispatch)
homogeneousでは統一されている型が入ることになっている場合、異なったものを入れるようなことがあればそれはコンパイル時のエラーとなります。(= Static dispatch)

ここがheterogeneousとhomogeneousの違いです。
このあたりに関してはSwift Whole Module Optimizationの話題も出ました。
僕自身詳しくはまだ追えていないので深く言及はしませんが、最適化具合のコンパイラの設定の話かな?

Protocol Extensionっょぃ

既存のプロトコルに対して追加実装を行えるというSwift2からの機能。
Appleの標準フレームワークなどに対してもExtensionできるため、便利です。
よくStringにBase64の実装を追加するときなんかとかに使うよねーという話も出ました。
さらにExtensionで書く場合、デフォルトの実装部分も書けるためまた便利です。
デフォルト実装ができるとどこかに変更が必要になった時、クラッシュしたりすることも減ってよりセーフにプログラムが書けるのかなぁということも個人的には考えてました。

where便利そう

制約によって細かく内容を分岐させられるので便利そう。
使ってみようじゃないか。

その他

class vs structでどっちを使うべきか?
Swiftはできるだけimmutableなものを使って書いていくべき?
など。


懇親会

というかお腹空いたのでご飯と酒を摂取しに、Lucy&Gluttonに行きました。
ランチでは前から度々来てましたが、夜は初めてです。



なぜか知的飲料があった。
しかも缶で出た!
ふむ、なかなかやるではないか...!

次回はどうしようとか、シュタゲ話に花を咲かせたり、秋葉原散策の話をしたり、某アイドルグループのメンバーがタイムリープしてるネタ話をしたり...。
とても楽しいディナーでしたw


まとめ

Protocolといえば今まではDelegateを定義するときにしか使ってきませんでしたが、本来のProtocolの使い方としてはこちらの方がメインだよなぁと思いました。
ある程度予習も挟んだので濃い内容で議論できてとても充実した勉強会でした!

会場準備やイベント立てなど@totottiさんにおまかせの形になってしまったので、次回開催時はもっといろいろやらせていただきます申し訳ないです;;
次回はもう少しやさしいところから手を動かしながら入って、テーマに沿った内容で実装していくというのも面白いかななんて考えてます。
try! Swiftまでにあと2回くらいはやっておきたいところだ...。



参考リンク

以下二つは公式の内容に沿って解説されています。とてもわかりやすい。
Swift 2で提唱されているProtocol Oriented ProgrammingをWWDCセッションから学ぶ
Swiftにおけるプロトコル指向プログラミング

もうちょっとやさしい内容でSwiftのProtocolを触りたいという方はこちらの動画がわかりやすいかと思いました。
Swift Tutorial: Protocol Oriented Programming - Introduction

2015年11月2日月曜日

Swiftのライブラリハッカソン、「Swift2 UI/UXチャレンジ」に参加してきた

おばんです、田中です。
2, 3ヶ月ぶりに東京に行ってきました。
今回の旅の目的は主にSwiftのOSSライブラリ開発武者修行です。
最近OSSに興味があって、GitHubのTrending Repositoriesを眺めたり、Trending RrepositoriesのクライアントアプリをOSSとして作って練習してみていたりという経緯がありました。
ちなみにそのクライアントアプリはまだ開発途中だけどこちら。ほんと全然開発進んでないけど...。

TrendingGitHub
https://github.com/ktanaka117/TrendingGitHub



Swift2 UI/UXチャレンジ



サイバーエージェントさん主催のSwift2 UI/UXチャレンジという、1日でSwift製OSSライブラリ作ろうぜ!って会に行ってきました。
リンクこれ。
https://www.cyberagent.co.jp/recruit/fresh/program_detail/id=10992



なに作ったの?

綺麗で楽しい、季節そのものとか、季節性のあるイベントをテーマにしたPull to RefreshのUIライブラリを作りました。(テーブルビューとかを下に引っ張るとテーブルの中身更新するおなじみのやつ)

その名も

SeasonalRefresh


今回はちょうど10/31開催だったのでハロウィンのテーマを作ろうとしました。
こんな感じ。


Pull to Refreshでよくある、UITableViewを引っ張った分だけIndicatorが増えるようなものに火時計みたいな鬼火を順に灯していって、ロード中はジャックオランタンが灯っている、みたいな感じです。朝イチのトイレで思いつきました。

このほかにも今後クリスマス、正月、バレンタインなんかも今後対応していくとして、春夏秋冬、季節そのもののテーマも作りたいなと思っています。

どうですか、リア充っぽいライブラリでしょう!
10/31に一日こもりきりでライブラリ開発!

圧倒的リア充感!!!




SeasonalRefreshの設計




管理クラスであるSeasonalRefreshがUIScrollViewインスタンスのcontentOffsetをKVOで監視して、都度SeasonalRefreshViewに描画させたりするのが基本となっています。


依存性を低くする

最初設計を考えていた時は「contentOffsetを取れば簡単に実装できるだろー(鼻ほじ」くらいに考えていて、UITableViewのラッパークラスを作ってあげたらすぐ作れるだろうなーくらいの考えでいました。

しかしメンターさんからのアドバイスは違いました。

「優秀なライブラリは汎用性を保つためにできるだけそれ単体で機能するように作るべきである」


さっき言ったようにUITableViewのラッパークラスを作るような設計だとRefreshを実装したいだけなのにそのラッパークラスを使わなきゃいけないことになってRefreshとUITableViewの依存性が高くなってしまいます。利用する人にとって、自分で実装したいUITableViewでそれを使わなくてはいけないのは中でなにをやってるのか気にしなくてはいけなくなってストレスになります。
なので今回はRefresh部分だけ切り出して、上の説明の設計にしました。


簡単に使いやすくする

実装するのに行数が少ないと導入しやすいよねー。
ということで今回はクロージャ部分は考えないとすれば一行で実装できるライブラリにしました。




デザイン

今回こちらを参考にさせていただいてリッチにしようかななんて思ってました。
[iOS] SpriteKitとUIKitを組み合わせて、ちょっとリッチなウォークスルー画面 を作りたい

しかし実際やってみるとパーティクルとUIKitのデザインはミスマッチ。逆にチープになってしまいました。



炎をパーティクルで表現するのは良くないのかも?というのも、どうしてやればそれらしく見えるかを画像検索して考えてみたけれど、リアルな炎を空間に浮かべる時は背景や周辺環境が大切になるかも?
まわりの煙や靄、夜闇の色合いなど。
あるいはそもそも炎をパーティクルで表現するというのはそれらしく見えないのかもしれないです。あるいはめちゃむずい。

雪や桜が舞うように、パーティクルの密度を低くして、画面全体に散るような表現の方が良いのかもしれない。
ジャックオランタンの実装方法考えてないけど、同じように靄がかかったような表現が出来たら捗りそう。
レイヤーをかぶせるか、もしくは画面自体に靄のパーティクルを表現させる。smoke。とか。

ちょっとこの辺は方針転換を考えるか、微調整しまくる感じになりそうです。



まとめ

世の中そんなに甘くない!



世の中そんなに甘くないことはすでに穂乃果ちゃんが一期第3話で証明してくれています。
UITableViewを引っ張った値取れりゃそのまんま出来るなんて甘い設計では良くないんだなってわかりました。
いやむしろ良い設計は難しいけど楽しく、その難しい設計に挑戦してそれなりに実装出来たので満足感がすごいです。
今までこんな綺麗に切り分けられて書けたかなーと、ワクワク楽しい最高の気分です。
仕事でもこんな実装を、サクサクサク〜っと出来たら強いな、良いな、目指す。
直接メンターさんがついてもらって、相談に乗ってもらって講評もいただける、大満足のイベントでした。ありがとうございました!



今後

ハロウィンのテーマは残念ながら一日では北米時間なんかで考えても間に合わなかった、残念。
基本の部分は大体できたのでこれからテーマを増やしていって、クリスマスまでにリリースする目標です。
設計としてはユーザーが新たにテーマを拡張して作りやすい機構にすると良いと思いました。
ある程度のフォーマットに沿う形で、リソース突っ込んで少し書き換えるだけで自分独自のテーマが作れる、とか。
人の顔をリソースに使ったりするようなネタテーマも面白いかもしれませんww
背景なんかにアニメーションを入れられるようにしてそれも簡単にできるようにするとか、そんな感じで展開していこうかななんて妄想しています。
仕事でも使えるグラフィカルなpull to refreshの定番になれるように頑張っていきます。
が、まずは綺麗なテーマ作るところが第一段階ですね。^^)


2015年10月11日日曜日

DevLOVE現場甲子園2015「東北大会」に参加してきましたよ!



イベント前に日本酒の試飲を一杯ひっかける大学生の図。

おばんです、田中です。
今日はDevLOVE現場甲子園2015「東北大会」に参加してきました。
具体的な詳細は上記リンクから見られますが、簡単に説明すると様々な現場に関する激アツな話が10本ぶっとおしで話される激アツなイベントです。
今日はその中でも個人的に刺激を受けたトラックを紹介し、今の自分、将来の自分に活かせるであろうと受け取ったヒントを書いてきます。

前提として自分が今やっていること、考えていることとして以下のことがあります。

自分は今個人で仕事を受けていて、金額や契約に関して交渉したりしています。
それをまとめたり考えたりするときにヒントになるものが欲しいです。
エンジニアとして仕事をするときにどんなことが重要であるかということも模索しています。
仕事とは別なところでもプロジェクトを進めていて、チームとプロジェクト自体をうまく回すにはどうしていくことが必要かなども関心事です。
プロジェクトの中でメンバーにどこをまかせてどこに注意を払って進めるか、やっていて楽しい・ためになる環境を作るにはどうするか、などです。

また大学の卒業を控えていて、どんなキャリアをたどるかもいくつか考えています。
最初は大きく余裕のあるところに就職し、先述した仕事の良い進め方や開発の技術力をつけていく。
あるいは大きくはないけれども組織として成っているところに入り、裁量の幅の広いところで力をつけていく。
はたまた最初から個人として独立し、フリーランスや起業という形をとってチャレンジしていくのか。
それぞれどのパターンを取りたいとなっても共通する考えるべきことはあると思うし、もしそれぞれ個々で特に必要なスキルがあるのであればそこについてもかいつまんで知識を得ていきたい。
そんな考えがあります。



「主人がギルド開発をするようになって1年が過ぎました」

ギルドワークス株式会社 佐々木将之さん



発表の流れとしては、佐々木さんのこれまでの略歴とどんな生き方をしてきたか、それらの点がどうつながって今ギルドワークスで仕事をしているかという内容でした。
キーワードは「ギルドワークスは開発もしています!」

発表の中で気になったのが、ギルドワークスの掲げる「正しい開発」というビジョン。
そこに関して発表の後にこんな質問させていただきました。

「正しさとは?」


僕は勉強会に参加して色々な人に会ったりしてきました。
ITという畑の中でよく聞くような愚痴であったり、自分で体験したわけではないので声を大きくして言えることではないですが、業界の「闇」のような話なども聞いてきて、常日頃それについて疑問を感じたり考えたりしていました。

  • なんでそんな条件で働くのか?
  • なんでそこで働くのか?
  • 楽しいのだろうか?
  • 労働環境過酷すぎじゃない?
など。

佐々木さんの回答の「正しさ」というのは
事実に忠実であること
正直であること
でした。

そして正しさは人や場によって変わるということ。

今へのヒント

正しさは時と場合と状況によってその時々人の中で変わるもので、常に自分がどうありたいかを問い続ける必要がある事項だと思いました。
そして正しくあるということは心身ともに健康的で気持ちのよいものであると感じるので、その正しさを遂行できる状況をできるだけ作っていくことが良い生き方につながる。
逆に言えば正しくない、なにか気持ちの悪いことは早く清算しきってしまうことが大事で、それが正直であるということにつながると考えました。
人間関係、プロジェクト、ソースコード、何にでも当てはまることかもしれません。

将来へのヒント

今へのヒントのところに書いてあることの継続が先々を考える上で一番必要かも。
いずれそれが経験値の積み上げによって、パターン化されて見えたり、自分の中で固まったものとして出来上がってくるとそれが生活や仕事をしていく上でのビジョンや哲学になっていく。
今へのヒントで書いたようなことに常にセンサーを貼っていきます。





「プロジェクト管理しないという提案」

株式会社ZIG 森 英寿さん



森さんが株式会社Zigで積んだリーン・スタートアップの経験の紹介とプロセス、良いところ向かないところなどが凝縮された内容でした。
なかなかスタートアップから抽出されたエッセンス的な話を聞く機会はないのでとてもレアでためになりました。

スタートアップはチキンレースである。
お金の数字として会社が無くなる時点が見えて、そこまでにどう金を得るかを考えてという繰り返しになる、のかな。
そんな中でもっとも追求しないといけないものは価値
徹底的に無駄を排除して、価値にフォーカスしていく。
再現する確率が1%以下のバグへの対応は捨て、使われていない機能を捨てて価値を追求する。などなど

プロジェクト管理することとしないことにはそれぞれメリットとデメリットがあり、プロジェクト管理をしないやり方はスタートアップでチームでの意思決定や共通認識を早いサイクルで回すことには向いているやり方のようでした。
それは受託と自社サービスという違いもあり、フォーカスすべきところが違うからという話。
そしてそれをする場合は前提条件として以下が必要。

  • 絶対的なメンバーの信頼
  • 価値あるモノづくりの意識
  • ホラクラシー型組織構造

絶対的なメンバーの信頼がすごく難しく、うらやましく、目指したい境地...。
シビアな経験は、濃く人を惹きつけるというのがよくわかる発表でした。

今へのヒント

今やっているプロジェクトの見直すべき点が再確認されました。
最近思っていることとして、良いチーム・良いメンバーで仕事がしたい気持ちが強くあります。
森さんと会社のチームメンバーの関係性を見ていてうらやましい感覚があって、自分もそんな仲間が持てるように目指したい。

将来へのヒント

良いチーム・良いメンバーで仕事がしたいということと、さらに自分たちのサービスで飯を食うということがしたいという気持ちがあります。
それが今すぐなのかはわからないけれど、条件が整ったと思える時があればやりたいです。
それは以前行ったWantedlyでのインターンの経験が深く印象に残っているからというのが理由な感じです。
自分の考えるサービスが人に使われて、自分の書いたソースコードが生に、生きた状態でサービスにそのまま反映される責任感と楽しさ、そんな感覚の片鱗を味わったインターンだったので深く刻まれています。

Zigの方々と話をさせていただいて感じたのはそれの難しさときつさ。
新たな何かを生み出すのに足る自分であるか、仲間がいるかというのを常に観察しながらでないと機会を見失うだろうというヒントを得られました。


まとめ

上の二つ以外にもこんな感じの発表が8本、合計10本ある激アツなイベントでした。
数として現場を渡り歩いてるわけではないので今はまだまだですが、また今度開催されるのであれば、次のころにはまた少し現場を経験していると思われるので登壇側で喋ってみたいです!

あと嬉しかった点。
イベントの最後に今回のイベントで得たものを参加者同士で話し合って共有するという時間で、森さんに「喋り慣れたね、うまくなったね」と言ってもらえたこと!!
以前から森さんとは知り合いで、度々イベントでお会いさせてもらったりしていた(ハッカソンで同じチームだったり、TDDBCでテストコード書いたり。あの時はなにもできなさすぎて申し訳なかったです...。)ので、少しは成長できたかなと嬉しくなりました。よかった。がんばろ。

2015年9月21日月曜日

Dokugaku-Dojoに入門してみた

こんにちは、田中です。
先日知り合いのFacebook経由でDokugaku Dojoというものの存在を知り、面白そうなので入門してみました。




Dokugaku Dojoってなに?

詳しくはサイトの方を見てもらったほうがいいと思うのですが、独学仲間で集まって一緒に独学したり情報共有したり、成果発表したりするグループのようです。
Google SpreadSheetを使って自己紹介したり、Slackを使って日頃の独学状況を共有したりしています。
appear.inを使って同じ時間帯に集まる人たちで画面共有をして一緒に独学していったりもしています。
適度な緊張感のもと作業しないとグダる傾向が自分にはあるので、ここに特に魅かれました。

月一でミートアップを行って実際に会って成果発表したりなども行っているようです。
基本的には東京のほうでやるそうですが、オンラインでの参加もできるそうで仙台在住の自分としても嬉しいところです。


参加時の面接について

サイトで参加申込をすると主催の深山 雄太さんからSkype面接をしていただけます。
自分と深山さんの間にはWantedlyでお世話になっていたというつながりがありました。
内容はDokugaku Dojoに何を求めて参加するの?っていうことをすり合わせたり、Dokugaku Dojoを良くする上でのアンケートみたいな感じでした。
あとは簡単な自己紹介をしたり、最近独学なにやってますかの独学状況の話とか、影響を受けた本はなんですかーとかの楽しい世間話。
深山さんは物静かでダンディズムある感じの方でした。


感想

自分もまだ昨日面接しただけでオンライン独学道場はまだ参加していないという状況ですが、深山さんとお話させていただいた感じだと良いグループそうだと思いました。
作業効率高まりそうというのと、参加者はなにかしら独学したくて集まってるので良い意味で意識の高い人たちが集まっていそうだという点が良いです。

あと昨日話をしていて、自分の学習を振り返っていたらあんまり独学っぽくも無いのかなと思ったり(:^^)
自分はいろんな人のお世話になっていろんな場でゲリラ的に経験値積んでいったタイプなのかなと。
今まではそんな感じでしたが勉強の仕方はその時々で変化します。
最近はある程度一人でやっていく方法がわかってきたので、もくもくと一人で本を読んだりコードを書くフェーズに入ってきたのかなと思います。
なのでDokugaku Dojo、利用させていただいていこうと思います!

2015年8月31日月曜日

2015/08 太極拳推手倶楽部講習会in仙台 感想

おばんです、田中です。
昨日、一昨日と江口博先生をお迎えしての呉式太極拳の講習会がありました。



今回の講習会もいろいろありました。
その中で推手、呉式太極拳、護身術、健康の四つについて、感じたことがあるので書いていきます。



推手

正直にいうとよろしくないのですが前回講習会からあまり練習をしていなかったので、先生に見てもらうのも若干ガクブル状態でした。
講習会直前に熱心に練習するフリをして拳譜(型の動作の順番を書いたもの)を見て型の順番を確かめていたのは、先生にはナイショだよ!!
練習はあまりしていなかったのですが、推手(お互いのバランスを崩し合う対人練習。太極拳の技のやりとり)の力はなぜか増している感じがしました。
練習してないのに褒めてもらったりもして、よろしくないことですが嬉しかったです!
以前まで推手の中で引っかかっていた先生の技も、ある程度ひっかからず耐えられるようになってきているのも嬉しいです。
そんなやりとりの中でまだやられてしまう部分もあるけれど、そんな部分がやっていて楽しくなります。「なんでやられるんだろう!(歓喜)」って感じで。
推手は奥が深くて本当に面白い。



呉式太極拳

伝統武術の呉式太極拳。
1, 2年ほど前から少しずつやっていますが、昨日ようやく108式の套路(108個の動作の型)を通しで覚えることができました!
108は大変ですよ、多い!圧倒的に多い。
呉式太極拳はまだ表演の長拳、太極拳をやっていた頃から少しずつやっていました。
それまでやっていたものとは目指すところが違かったので、当時は駆け出しの不安というものもあったり、自分の未熟さ故に人から理解を得られなかったりもしました。
しかしやっているうちに自分の求めるところが健康や生き方、考え方をより太極拳を通して感じていくことであるとわかっていきました。
だから続いたように思います。
まだまだ奥の深い太極拳のほんの端っこを感じはじめた程度ですが、これからも江口先生に習いながら父や練習仲間の方々と楽しんで練習していきます。



護身術

最近の太極拳推手倶楽部の講習会で定番になってきました護身術教室。
今回も護身の心得と実技について教えていただきました。
平和な日本でも女性や子供が被害に遭うような犯罪があったり、本当にひどいようなことも起きていたりします。
江口先生の語り口からはそういうところを意識しての内容であることも伝わってきました。
自分はまだどうにかできる、あるいは被害に遭ったりすることも女性や子供に比べたら少ないと思いつつも、ふと彼女の顔を思い浮かべるとやはり不安になったりしました。
そのうち彼女にも一回でいいから受けてみて欲しいと思ったり。

そんな想いもありつつ、楽しくもある内容でした。
というのも先生が大阪出身なので、大阪あるあるのあれやこれやな護身にまつわる例え話なども笑える内容でした。
「そんなんマンガの中の話でしょww」というような話も体験して来てらっしゃるのでリアルが違います。

わかりやすい話として肘と膝は護身の時は有効という話があって、こんな写真。





『ヤられ役のケン』とは僕のことです。


内容はあくまでもっとマイルドで痛くない感じですので安心して参加してみてください。
でも希望すればこんなちょっとした受けもできます。



健康

最近東京にインターンに行ったり、仙台帰ってきて会津行って仙台に即帰ってきて、また東京行って仙台に帰って、とかめちゃくちゃバタバタしたりしてました。
そんな中、練習する機会も減っていったり。
当然デスクワークが多くなり、身体中バッキバキ。
体感として内臓のダメージが多くなったように感じていました。
そんな中、八卦掌のとある練功法をやったらスッと全ての悪いものが抜けた感覚がありました。
体全身を使って力を出すような練功法。
講習会も終盤で足に疲労も溜まっていたのですが、それも、内臓に感じた疲れもスッと抜けました。
まだまだ不思議なことがあるもんだなと感動して、日々の練習も怠らないようにしていきます。



お、綺麗なまとめになった。
というところで今日はこれまでです。
お疲れ様でした。

2015年8月12日水曜日

第20回potatotips勉強会

おばんです、田中です。
今日は以前からずっと気になっていたけれどタイミングと人数の関係で行けなかったpotatotips勉強会に出てきました!!



この勉強会はiOSとAndroidのtipsを5分のLT形式で次々に紹介していくという、東京のモバイル界隈ではもう人気中の人気の勉強会です。
勉強会情報を見つけた時にはもう満席になっていることが大体。
そんな勉強会に「ブログまとめ枠」というものができていたので、今回は参加可能と相成ったわけでございます。
そんなわけですので、早速まとめていこうとおもいます。
というところではありますが、今回の発表者数がなんと20名!!とても全ては紹介しきれないので、個人的に面白かったもの七選を紹介していきます。

iOS

Core Spotlight Optimization

from sakmtech

iOS9から搭載されるCoreSpotlightまわりの話です。
CoreSpotlightとはSearchAPIのひとつで、アプリ内のコンテンツをSpotlight検索できるというもの。
特徴的だったtipsは
  • 先にインストールしたアプリが検索で優先的に表示される
  • 検索文字列で先に入力したものが優先されて検索される
  • NSUserActivityやWebMarkupのリッチな検索結果のほうが優先される
  • 今後対応を迫られるであろうCoreSpotlight、しっかりと公式ドキュメントも読んでおきたいですね!


    とにかく明るいCoreSpotlight

    from yimajo



    こちらもCoreSpotlightについて。
    CoreSpotlightで便利なのは、Kindleやその他の電子書籍アプリなど、どれでアイテムを購入したか忘れてしまった時に便利そう!
    CoreSpotlightには160〜180の検索対象があるので、詳しくドキュメントを読んだほうが良いかもとのこと。(まだ作ってる途中かもだけど)
    そしてこの発表で一番盛り上がったのがTweetRainという、画面に特定のハッシュタグのツイートを流せるというアプリを使っていたところ!
    ニコニコ動画みたいになってました。
    聞いてる人からの注目度をあげる仕組みとして、TweetRainを発表時に使うのは面白いですね。


    Swiftでコマンドラインツールを作る

    from kitasuke



    出た!変態枠だ!(褒め言葉)
    文字通りSwiftでコマンドラインツールを作った猛者が現れました。
    先日のもくもくiOS勉強会@Rettyでお会いしたkitasukeさんの発表でした。
    正直何をどうやっているのかはわからなかったですが、Swiftではこんなこともできるんですね。
    これを作る時特に参考にしたのがCarthageとのことです。
    なんと知らなかったのですが、Carthageもオープンソースで作られたSwift製のものなのでこちらを参考にして制作を進めたとのこと。
    後日技術ブログに細かい内容を記載していただけるとのことなので、それを参考にSwiftの新たな可能性に挑戦するのも楽しいかも!?


    Android

    温かみのないコードレビュー

    from rejasupotaro

    rejasupotaroさんはコードレビューをする際に、コードレビューが人のスキルに依存することがよくないと考えているそうです。
    レベルの高い人がいないとプロジェクトが回らなくなるなどが発生するからですね。
    それを助けるためにコードの静的解析ツールを使って改善を図ったとのこと。
    CookpadではDokumiという解析ツールを使っているようですが、ネーミングセンス良すぎますw
    オチの「機械的なコード解析の冷たさに反して、激励する立場の優位性が生まれたので、人の温かみが生まれてよかった」
    というシメがとてもよいまとまりでした。


    Naming Rule

    from wasabeef_jp



    僕はAndroidには詳しくないのですが、Androidは大量のxmlを書くことになるようです。
    そしてそれはなんとDirectory管理ができないという問題を抱えていたそうです!
    100近いxmlファイルをベタで管理しなければいけないなんて、身の毛もよだつという感じがしますが...。
    そんな日々とはオサラバな発表内容。
    それを解消するツールの紹介でした。
    Android開発者の皆様は必見なのでは!


    Why don't you use enum?

    from izumin5210



    発表者のizumin5210さんは現在Wantedlyさんにバイト中とのことで、先週一週間たまたま出社していなかったために僕とは初対面でした。
    enum使っていこうぜ!という内容。
    Swiftでもよく使うenumですがその良さとして
  • type safeである
  • 拡張性が高い
  • Prefixをつけなくてもよい
  • event handlingに使えて、イベント発火を分けられる
  • 特にevent handlingが便利だというのは同感で、とてもよいです。
    SwiftではAlamofireのURLRequestConvertibleなどでよく見かけたりします。


    初参加のpotatotips勉強会、今日の回はなぜか厳かな雰囲気が漂っていたというお話でしたが、勉強になりました。
    願わくば、今度参加するときはなにか発表したい!
    運営と会場提供してくださってVoyage Groupさん、ありがとうございました。


    東京に来てからInputは多いけれど前に立って発表する機会がまだ持ててないので、週の後半はそれが増えるとよいなとおもいます。
    Outputまでしないと不完全燃焼な感じなので!

    2014年11月13日木曜日

    会津TechCAMPに行ってきました。

    こんにちは、田中です。

    先週末の土日は「会津TechCAMP~会津大学×株式会社サイバーエージェント〜」に行ってきました!
    アメーバ、ガールフレンド(仮)などで有名なサイバーエージェントさんが主催の学生対象のハッカソンイベントでした。
    開催場所、会津若松は会津大学にて行われましたので、当然ながら自分以外は会津大生。そんな中、他大学で仙台人の自分が参加して良いのかなぁと不安になりながらエイヤ!でFacebookの参加ボタンを押してエントリーシートとか書いたら潜入成功しました。


    目的

    参加した動機は二つありました。
    メイン目的:よく名前を聞くサイバーエージェントとの接触
    サブ目的:賞品の獲得

    会津大の先輩方と話をしていると、知っている人で二人サイバーへの就職を決めているということでどんなところなんだろうなと気になっていたというのと、中小の会社にもぐりこんだりすることは何度かあったけれど、大きいところとの接触をもったことが無かったからというのが理由です。

    そして大事な賞品について。
    これです。




    そう、4.7inchの彼。iPhone6が賞品でした。燃えます!
    しかもsimフリー!!
    俺は(キャリアに)縛られない男だぜ。


    チーム

    チームは事前にあちらから決められる形式でした。
    しかしなんと既に知り合いの、Swift開発合宿の参加者の大森君と組むことになりました。
    大森君はユニークなキャラクターで周りを魅了します(混乱させます)。



    お題

    さて、今回のハッカソンのお題は
    「学生が毎日使いたくなるカメラアプリ」でした。

    いやー、これ無理っすわ。カメラ毎日使わないもん。

    でも諦めたらそこで試合終了。
    こんな思考をしてみました。

    毎日使うアプリ:Facebook、Twitter、パズドラ
    問題提起:自分を含め、ダイエット失敗する大学生って結構居るなぁ。ダイエットって女子受け良さそうだし。(ゲス顏




    相談を重ねた上、こんなのにしました。
    自分のダイエット記録で豚を飼育するアプリ
    その名も「僕の私の飼育員」






    現在制作途中の画面。
    ダイエットは記録をとり続けることがまず第一歩です。
    毎日食べたものを写真に撮って記録していく。 撮った写真を豚の餌として同じものを食べさせて成長させます。体重も毎日記録して最終的には目標達成日に豚を出荷して、その豚の成長度(ダイエットの質)で出荷額を決めてお金を貯めていく。そんなゲーム仕立て。
    豚の質は自分の質。
    自己管理の出来ない豚野郎に、なるかならないかはあなた次第...。

    特徴はHealthKitを使っているところ。他のダイエットアプリとも併用可能だったり、ガジェット連携もできるようにしたいという考えから。

    最終的なゴールの部分がまだ決まりきっていない状態なのでこれから練りながら作っていくつもりです。


    制作

    iOSというテーマだったので夏の合宿もあり、Swiftで書くことに!
    徹夜で作業したのですが、会津大は生活できる
    今まで噂でしか聞いていませんでしたが、本当に不夜城で作業がはかどりました。
    カロリーメイトの自販機があるし、寝袋持ってたから睡眠もできたしね!
    ハッカソン会場としては最強だと思いました。


    制作風景。「坊主(Bose)がSonyのヘッドフォン」の図



    結果

    そんなこんなで徹夜で楽しくガリガリコードを書いたわけですが、思っていた以上に実装する部分が多くて完成には至りませんでした。そんなときチームメイトの大森君の機転でとにかく面白く発表をしようということでコント仕立てで発表しました。
    なんとか会場の笑いはとれて、ここで負けても気持ちよく終われたし本望くらいに思っていました。



    しかし、



    結果は



    驚きの一位




    振り返り

    大森君に救われました。ありがとう。

    夏合宿ではメンターと参加者という立場でした。そんな二人で一位を取れる、こんなドラマティックな展開があるでしょうか、いや、ない。(反語)
    一部界隈では「エンジニア芸人」を目指せるという噂が立っている彼のユニークさに今後も目が離せません。

    ハッカソン最中は全然余裕がなかったのですが、懇親会で他の参加者の人々とも話す機会がありました。皆さん面白い方々で技術の話も出来て楽しいし、なにより会津魂を感じます。
    最近は会津に通いすぎて会津大生と話をしていると最近の会津のベンチャー各社動向がどうなのかとか、そんなちょっと地域色のある話もできるようになってきたところも楽しみの一つです。


    さいごに

    このような機会を用意してくださったサイバーエージェント様、会津大学様等運営や準備をしていただいた皆様、本当にありがとうございました。
    また自分のレベルアップにつなげることができました。




     

    2014年9月16日火曜日

    夏休みまとめ

    こんにちは、田中です。
    しばらく更新をご無沙汰していました。
    夏休みはずっと会津若松に居てバイトやったりイベントの運営やったりしていたのでそのまとめをします。

    バイトでSwiftのサンプルコード書き

    8月の始めからから終わりまでは会津若松の株式会社GClueさんでバイトとしてSwiftのサンプルコードをひたすら書いていました。
    バイトとしてコードを書くのは初めてでしたが、コードを書くことがお金になるということがとても感慨深かったです。去年の頭にプログラミングの勉強を始めてここまでで約1年半、専門分野としてどこか学校で勉強していたわけではないながらも、頑張ればここまでこれるのだととても自信がつきました。

    やっててよかったプログラミング。

    バイト先の社員さんと仲良くなって一緒にご飯食べたり出来たのもすごく楽しかったです。また会津に行ったらよろしくお願いします。

    このような機会をいただき本当にありがとうございました。

    会津Swift開発合宿の運営






















    合宿Facebookページ
    合宿公式サイト
    合宿ブログ

    9月4日から9月13日には会津Swift開発合宿の運営を株式会社デザイニウムさんのインターンとしてやらせていただきました。
    こちらは全員学生のデザイニウムインターン部が主催し、スケジューリングや各種手配、アポイントメント、企画、予算作りなど一通りをやりました。自分は運営に加えて技術メンターもしました。

    感想:大変だった(小並感

    事前準備は6月の始め頃からスタートして、自分は仙台在住なので会津のインターン生とはSkypeやGoogleドライブを駆使してミーティングを行っていました。
    正直に言うと最初は「最近は開発も慣れてきたしプレゼンしたりハッカソンとかである程度マネジメントみたいなこともしてきたし、俺なら余裕でしょ!」とか思ってました。

    舐めてましたごめんなさい。(写真は参加者のSさん)















    2, 3ヶ月かけて準備して会を運営するということは身体的、精神的にかなり体力をもってかからないといけなかった。時間の見積もりの甘さだったり気付かなかったタスクが見つかったり反省点をあげていったらキリが無いほど。
    初めての大きなイベントの運営はいきなりうまくいくわけもなかったということですね。次回なにか機会があれば気をつけます。

    しかしそんな状況ながらも今回の合宿はなんとか形になって楽しく終えることが出来ました。一重に参加者のノリの良さと一緒に運営をやってくれた仲間のお陰です、本当にありがとうございました。

    今回参加者は昨年とはうって変わって全員むさ苦しいったらありゃしない

















    同時に参加者全員何かしらの開発経験のある人々だったので技術メンターとしては「役不足だったらどうしよう」と不安で一杯でした。

    でもそんなこと関係なく楽しかった。

















    もちろんちゃんと教えられることはあったのでほっとしました。

















    まとめ

    今年の夏はひたすら活動しました。
    今までに無い充実っぷりです。真のリア充です。少し疲れました。
    そしてSwiftにまみれた夏でした。

    人のお金と時間が動くというプレッシャーを初めて感じた。
    社会辛い。
    また一歩大人の階段を登りました。

    今後の活動

    Swiftにまみれたのが功を奏して9月27日開催のSWWDC(仙台のiOS勉強会)でワンセッションやらせてきただくことになりました。
    内容はSwiftによるライブコーディング。
    よろしくお願いします。


    2014年7月29日火曜日

    【イベント】石巻ハッカソン行ってきた

    先日の金土日曜と石巻ハッカソンに行ってきました。

    伝説の始まりの地、石巻です。
    ライダーです。



















    うまいもの
    寿司がうまかったです。
    特にあなご寿司が超うまかったです。
    口に含んだ瞬間ほろっと柔らかく、脂が乗っていて、甘みの効いた味付けが絶品でした。
    シャリが温かいのを使っていて柔らかく、あなごとのマッチングが最高でした。




















    開発
    今回はiOSエンジニアとしてチームに参加しました。
    チームのスキルセットが最強でした。
    デザイナー、音楽・動画強い人、サーバーエンジニア、iOSエンジニア2人。
    実はアプリの工数を頭の中で見積もった時、時間が足りるかかなり不安でしたが皆さん仕事が早くてなんとか良いところまで出来ました。感謝でいっぱいです!

    軽いエピソードとしては開発初めの大事な4時間が謎のエラーにより、自分なんも出来てないかったのがもはや笑い話です。なんとか解決出来たので深夜に取り返せました。

    そして普段ハッカソンに出ていてiOSをやる人が多くないという印象を持っていたのですが、今回はリッチに自分含めて2名体制で開発することが出来ました。
    普段はぼっちでやっていてなかなか他のiOS開発をやっている方と一緒に開発することが無かったのであれこれと設計考えたり相談したりする時間が楽し過ぎました。

    色々な勢いあまってフル徹夜開発をやってしまいましたが、それも含めて楽しく開発出来て良かったです。

    イベント全体を通して





















    なんかすごいイベントでした。
    超有名ベテランエリートエンジニアの方々が東京の方から参戦していたり、あまり開発をしたことのない高校生達が居たり、はたまたプレゼンからアプリ開発まで慣れた様子でこなす小中学生が居たり...。
    参加者の多様性や熱がとんでもないイベントでした。

    ハッカソンを通した人との出会いや縁、新たな発見もまた得られて良い週末でした。
    自分に足りてないスキルの確認やすごい人に触発されて熱が高まったり、悔しさを覚えたりで質の良い燃料が得られたのでまた当分頑張れます。

    成果物は後でどこからかあげられるか、あげるかしますので、その時はまたチェックしてみてください。

    2014年7月7日月曜日

    【イベント】SmartLife Hack in 仙台に行ってきました

    最近は雨も多くて蒸し暑くて嫌な季節だなと感じますが、湿気にまけずなんとか生きてます。
    こんにちは、田中です。

    7/5,6の土日二日間はSmartLife Hack in 仙台でした。
    これはDocomoさん主催の
    「自分たちの生活、環境、街をITの力でよりよいものにしていこう!」
    というテーマでハードウェアやAPIを使って行うハッカソンでした。
    提供されたハードウェアとAPIの一覧は上記URL先に一覧があります。

    楽しい・愉快なものから硬派なものまで、様々なハードウェアやAPIが提供されていて出てきたアイデアもユーモラスで実用的な物が多かった印象です。
    仙台会場は他の会場と比べて人数は少なかったようですが、参加者一人一人のスキルが高くハード連携というなかなか難しい分野ながらもしっかりした形でのアウトプットが出来ていてレベルの高いイベントでした。



    アイデアを出して投票の多かった物を元にチームを組んでアプリを作っていくという方法でした。
    自分はしばらく悩んでいましたがポッと頭にうかんだアイデアが見事選ばれてチームを組むことになりました。



    作ったもの
    どんなアイデアが通ったかというと
    「会議におけるファシリテーションを自動化する!」
    というもの。
    システムの名前は「God Father Facilitations」です。

    概要は以下。
    静まり返った会議や盛り上がりすぎた会議をCOCOROBOが声がけして関連ワードを投げかけて発想の転換休憩を促してうまくコントロールしてくれます。
    そのコントロールの元となるデータとしてはHVCからの参加者の感情のデータと音声認識APIの会議内容のテキストを形態素解析にかけてはてなキーワードAPIで関連ワードの抽出を行ったものになります。
    その結果をWeb上に展開して、会議参加者がそれを見ることも出来ます。

    スライドはこちら



    使ったものと役割(打ち消し線は今回組み込めなかったもの)
    ・Windows Azure:サーバー。集約データの総括とアウトプット
    日本語形態素解析API(Yahoo!):音声認識で送られたテキスト形態素解析
    はてなキーワードAPI(はてな):形態素解析のデータを元に関連ワードの抽出

    Web:サーバーからの集約データの可視化

    ・iOS端末:会議の音声をひろうのと、COCOROBOの発話制御
    音声認識API(docomo):iOSで拾った音声をテキスト化

    HVC(オムロン):顔認識と感情データの取得
    ・Android端末:HVCから取ったデータをサーバーに上げるのと、COCOROBOの移動制御

    COCOROBO(SHARP):サーバーからきたテキストをiOSを通してPOSTされたものを音読するのと、HVCのカメラの制御のための回転移動

    こうやって箇条書きにするととんでもなく色んなものに手を出したものだなと。
    そしてAppleとWindowsとGoogleが仲良くそれぞれに適した形で組み込まれてるのがスゴイと思った!w

    システムの外観はこんな感じ。




    システムの擬人化
    今回、本来人の担うべき役割である会議のファシリテーション役をシステムにするということで親しみやすくするためにシステムの各担当部分を擬人化しました!(エヴァのMAGIシステムのような感じ)
    システム概略と見比べながらご覧下さい。

    ファシリテーションチームを一つのファミリーとして考えました。
    キャラ(システム部分)と担当者
    ・ちやちゃん
    iOS+音声認識API+COCOROBO発話担当。
    会議参加者の話を聞いて、会議を和やかにしてくれるみんなのお姉さん。

    ・クラウディオ
    Android+HVC+COCOROBO回転制御担当。
    会議参加者の顔色や感情を読み取るのが得意な気遣い屋のお兄さん。

    ・ごっどふぁーざー
    Azure+HatenaAPI+形態素解析API+もろもろのI/O担当。
    家族の意見を聞いてそれをうまくまとめるのが得意な家族の大黒柱。

    ・ミンディ
    Web担当。
    お父さんから聞いたことを素直に友達(ユーザー)に自慢する可愛い妹。

    ファシリテーション一家。絵になると華がある。




    今回の自分の反省点
    良かった事
    ・チームのメンバーが凄腕揃いでとても助かった!
    ・チームのスキルセットがぴったりとマッチしていた。
    ・使ったものが多かったけどうまくまとまった。
    ・各メーカーさんがとても親切に助けてくれた。
    ・サーバーとかRESTとか出来ると色んな事が出来そうって分かった。
    ・ハード連携とHTTPメソッド周りが少し分かった

    悪かった点
    ・準備に時間をかけなかったために、発表がグダグダになって聞いてる人に伝わらなかった。悔いが残ったので今度からはしっかりやりたい
    ・docomoAPIを使いこなせなかった
    ・デモの時にCOCOROBOをうまく喋らせられなかった。テスト不足


    まとめ
    面白いハードやAPIが大量に使える滅多にない機会に参加出来て良かったです。
    テーマと内容的にスキルの高い人達と一緒に作業が出来る良いイベントだったと思います。
    また次回があれば参加したい!