2014年12月31日水曜日

2014年まとめ

:成長になることがら。
:実績となることがら。
:考えに関することがら。

1月
・パシフィックリムが胸熱。

2月
・docomoアイデアソンに父と出る。そういえばここでGClueの佐々木さんと初めてお会いしたのだった。
デザイニウムの短期インターンに行った。(田中、会津に生きる)

3月
会津からのほぼ直行コースでHONDAハッカソン行って受賞した。3連続徹夜くらいしててロクに頭働かなかったけどレベルの高い人と一緒にコードを書けたのは刺激的だった。
・このブログを開設。

4月
・わにのにわでマフィン食いまくった。太り始めた。
・東北ITニュースの花見。浅井さんも来てた。この時話したりしてなかったけどぼっちの会やセカイネットの方々もいた。

5月
・2月くらいから開発してたアプリが完成目前!とか言ってるけどリリース準備で挫折。
・5月末に島ソン。ここから全てはおかしくなtt...動き出した。
・夏の会津でのSwift開発合宿の準備が水面下でスタートした。

6月
・Swiftが発表された。仙台Swift勉強会もスタートした
・父が会津に旅立つ。エンジニア太極拳in仙台を受け持つことに。
・Qiitaデビュー。

7月
SmartLife Hack in 仙台に出た。ハッカソン。ここで会津のSwift無双のことで佐々木さんに声をかけていただいた。
・石巻ハッカソンに出た。あのメンバーで開発できたのは良い思い出だった。自分って意外と色々実装できるんだなと自信になった

8月
・田中in会津。Swiftを書きまくった

9月
会津Swift開発合宿やりました。なんとか形になってよかった。
GClueさんでバイトとしてやらせていただいた逆引きSwiftがとうとうリリース!(逆引きSwift)

10月
東北ずん子メモウィジェットを初の個人開発アプリとしてリリース!(東北ずん子メモウィジェット)

11月
会津大TechCAMPでデザイニウムインターンの大森君と優勝

12月
・正式なデザイニウムインターンになって、HVC-Cを用いたアプリをバイトとして開発。(にらめっこ)
Sensing egg projectでバイトで作ったアプリ1本と個人で作ったアプリ1本が選ばれた。(FaceShooter)
・この先どういう仕事の仕方をするかで悩む



Facebook見て箇条書きにしてみました。前半はだいぶ温めた期間な感じ。後半からは会津にどっぷり。不思議な感覚なのですが、今年の2月3月の出来事がつい先月くらいな気がします。それだけ今年は密度の高い年だったんだろうと思います。

今年はとにかく父と一緒に過ごし、語り、作業したりすることが多かったです。プロジェクトは違うけれども、同じ職場で働く日が来るとは思いもしなかった。思いもしなかったけれど、別段不都合もなく自然な感じでした。
仕事、生活、太極拳に関してああでもないこうでもない、こうすればいいんじゃないかとお互いに参考にしあって成長できた年のようだったのでこの先もこの関係は保ちたいです。

去年はわからないことが多すぎてひたすら目の前にあることをこなしていく年だったように思うけれど、今年は考えながら物事を進めていたように思います。特に最近は大学の卒業を来年に控えているのでどういう働き方を自分はしたいのか、人生で何を成し遂げたいのかで悩む日々ですが、その時がきたら成るように成ると決着がつきそうです。

来年はもっとパワーアップしよう。一緒にやってく仲間も欲しいな。

来年も田中をよろしくおねがいします。




2014年12月4日木曜日

就職と仕事と生活と。この先の約一年を考える

こんばんは、田中です。
現在大学3年の冬に差し掛かっていて、来年の4月頃から時期的には就活というものが始まるらしいです。
周りの大人の方々からは「就職どうするの?」と気にかけていただいてとてもありがたく感じています。

昨日も祖母から就職に関する助言と応援のメールをいただいて、まとまった形で文章にする機会があったので、なんとなくここにもまとめておこうかなと思い立ちました。

就職や生活、これからの仕事のあり方について、自分の中であれこれと考えています。
特に昨年からはITへの傾きが強くなり、色々とやってみたりイベントに出たり、多くの人々に会ったり、今まで21年間生きてきた中で一番自分の意思で動いて勉強するようになっています。

こんなに活動した時は今までには無かった。
活動していき学んでいく中でこれは大事だろうと思えるものがいくつか見つかってきています。

約一年前


最近

一年の変化は若干老けたのと、上の写真はMacがまだ新しくて綺麗だった。


一つは尊敬。

これは父からの受け売りという部分も多くあるけれど、関わる人々に対する敬意は大事にしていくものだと自分の中でもわかりつつある部分です。
自分からもだし、相手からもそれがある場合の人間関係はそう悪くはならないし、マッチする部分があればお互いにギブ&テイクのある良い関係が築いていける。
ここへの理解が高い人が知り合いの中に何人か居ると感じています。
見ているとレベルが全然違くて、すべての他者に対して愛をもって接していると感じます。
そのレベルの人々はもちろん尊敬や敬意だけでなく、経験やスキルからくる自信もあるからその接し方ができる部分も多くあるのかなと。
自分はまだいろんな面でペーペーだけれども、いずれはその達人のレベルに達せるように精進します。

二つ目は向上心。

チャレンジとそこからの無知の知。
自分は大学2年の初め頃からプログラミングやITに関して学び始めました。
それまではプログラマーの父と、深い専門性は無いけれどこの方面に対して勘の働く弟に「情弱」、「googleって知ってる?」なんてよく言われるレベルでした。
しかし習慣として「自分で調べる」ということを身につけるようになってからはじんわりじんわりと少しずつ力をつけるようになりました。
そして多くの勉強会に出ることと、ハッカソンやコンテストに出ることは大きく自分を成長させてくれます。
どちらにも共通して言えることは知り合いや仲間を増やしてくれることと、「知らないということ」を教えてくれる点です。
自分が知らないということを知ると、そこを埋めたくなるし、いざっていうときにそこが原因でうまくいかなかった時は悔しくて仕方ないからもっと頑張る。
最近はそういうのが逆に増えすぎてきて、よく周りからは「優先順位を付けろ」「捨てる勇気も必要」という助言をいただいています。
この部分はまだうまくできていないのでこれから勉強していきます。

三つ目は自分。

自分がどういう状況にあるのか、自分がどこに向かっていきたいのかを心に聞き、それに正直でいることが大切だと思います。
それに反したことをしていると良い流れに乗れないことと、最大限のパワーを発揮出来ないことを感じます。
つい最近も、なにか違うなと思っていることをなんとなくやっていたらすべてのことが中途半端になってしまうことがありました。
心に曇りを作ることからは避けるべきで、それは逃げではなく最善の選択をするための自己管理と認識しています。

「心に曇りを作ることからは避けるべき。それは自己管理と認識しています。」

うん、こう書くとすごく言い訳臭いし、AAとか超付きそう......。
でも曇りを作らないためには辛い状況に対してメスを入れなきゃいけない場面もあるから、その時は辛さが生じます。

自己管理と言えばこれを書いてたらすでに時間も午前3時にさしかかろうとしていて、体調管理が足りない今日この頃...。
若干体調がよろしくなかったり、心の固さを感じたりしていて、生活習慣整えないといけないですね。
太極拳の練習量も増やさなければ。

仕事という話とだいぶズレて今の自分についてまとめていますが、ここ最近は生活も仕事も上の三つを意識して考えています。
だから贅沢だけれど、この三つが出来る限り叶えられるところで仕事して生活して過ごしていけたら幸せだなと思います。
大学卒業までの残りあと1年くらいの時間で、どれだけ自分が人としても技術としてもこれを叶えられるように成長できるか試してみます。
また数年後にこの記事を見てどう変わっているのか、どう思うのかが自分自身の楽しみです。

また、現時点で自分と関わって良い機会を与えてくれる人々には感謝しきれません。
ありがとうございます。これからもよろしくお願いします。

他にも「自信と傲慢・おごり」とか「スキル不足を常に感じている」、「自分が足りないことへの悔しさ」、「仕事や生活でどんな人と一緒に居たいか」とか現時点で感じていることを色々文章にしておきたいけれど、さっきの時点からもう3時半をまわりますのでまた今度の機会に。

2014年11月28日金曜日

仙台Swift勉強会〜Hello, Swift!〜を開催しました

こんにちは、田中です。
最近は気温が安定しなくて、服装に迷ったりします。
12月に入ると仙台は気温が一桁台に突入すると噂を聞き、この坊主頭で越冬できるのかすごく不安です。

さて、先日のことになりますが自分が運営をやっています仙台Swift勉強会でSwift入門者向けの勉強会を開催しました。
対象は
Swift初心者の方
Swiftやってるけど改めて基礎を見直したい方
でした。

内容は基礎文法からのSwiftの基本をやろうということだったので、Apple公式が用意しているA Swift Tourを解説や議論しながら進めていくというものでした。
このA Swift Tour、以前通しで人に教えていくということもやっていたので大丈夫だろーくらい思っていました。

が、

前日にWebを開くと 内 容 が 変 わ っ て る。
9月頭くらいに見たときは現在の内容の半分くらいの容量だったのですが、そういえばSwiftのバージョンも上がったような。おそらくその影響で文法にも変更があったりしたから変わったのでしょう。
頑張ってやり直しました。自分えらい。
A Swift Tourの内容のまとめなんかは後ほどQiitaにまとめようかと思います。



普段仙台Swift勉強会は社会人の方々と自分含め3, 4人くらいの規模で細々とやっていたのですが、今回はなんと13名の参加!
さらになんと!その内半数以上が学生の方々でした!!
というのも、先日仙台で開催されたサトヤ勉強会というWindows系の勉強会に参加したのですが、そこに学生さんがたくさんいまして。
そこでSwift勉強会の宣伝してきたのが要因でした。


Swift×Azureで、「Windowsの中心でAppleを叫ぶ」的なLTもしてきました。
LT資料はこちら
改宗せよ。



Swiftではこう書く、みたいなところを議論したり、言語による文化の違いを語らうのが楽しかったです。
A Swift Tourの他にも最後の方はゆるっとした時間を作って、すでにSwiftで開発をしている人からの質問コーナーなんかを設けたりもして、今回の勉強会はうまくいったんじゃないかと思います!

今後の勉強会のネタは、今回時間の関係ですべて通しではできなかったA Swift Tourの後半戦をやろうかとか、自分が書いたコードや他にも自主的にコードを見て欲しいという人がいれば、コードレビュー大会なんかをやろうかとか考えてます。




勉強会後は参加者だった某お二人とご飯にも行きました。
知り合いには講師っぽい顔してるとか言われて少し嬉しかったです。




2014年11月13日木曜日

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

こんにちは、田中です。

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


目的

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

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

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




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


チーム

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



お題

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

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

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

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




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






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

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

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


制作

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


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



結果

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



しかし、



結果は



驚きの一位




振り返り

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

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

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


さいごに

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




 

2014年10月12日日曜日

【iOS, Swift】東北ずん子メモウィジェットをリリースしました!



こんばんは、田中です。
今まで一年くらいずっとアプリを出さないとと言い続けてやっていませんでした。
Swiftが正式リリースされました。
ということで今回、Swiftで全部書いてiOSアプリを出してみました。


ダウンロードはこちら!
「東北ずん子メモウィジェット」
https://itunes.apple.com/jp/app/dong-beizun-zimemou-ijetto/id926118978?l=en&mt=8

アプリの紹介

このアプリはメモアプリです。
特徴はなんと言っても東北ずん子ちゃんが可愛いところです。
それとiOS8から新搭載のウィジェット機能を利用して います。
アプリで書いたメモをウィジェットで閲覧することが出来るほか、ウィジェットに置いてあるボタンから簡単にアプリを起動出来るのでメモを取りやすいところも特徴です。



























開発にあたって

開発者ネタですが、今回はAppleが新しく発表したSwiftというプログラミング言語のみを使っての開発を行いました。
今までのObjective-Cとの違いは、あちこちで言われていることではありますがサクサク書ける感覚というのがありました。このアプリでコードを書くのにかけた時間は大体3日、4日くらいでした。NSUserDefaultsを使う部分で少々てこずったのはありますが、この規模のアプリであればそれくらいでした。
ウィジェットの機能を扱うのも特に難しい点はなかったように思います。
このあたりはまた別に記事を書こうと思います。

画面設計からデザイン、アイコンの用意、リリースの手配、全て一人でやってみましたが、全ての行程で大体6日で出来ました。
アイコンをデザインするのは楽しかった反面、面倒も感じました。(;^^)
あ、もちろんiPhoneのサイズ別の画面対応は楽しくなくて面倒なだけでした()



Swiftすごくよかったです。Swift推進していきます。
これからもこのペースでアプリを出していければと、次回作も検討中です!
ずん子メモもこれからどしどしアップデートしていきますので、是非使ってみてください!



ダウンロードはこちら!
「東北ずん子メモウィジェット」
https://itunes.apple.com/jp/app/dong-beizun-zimemou-ijetto/id926118978?l=en&mt=8



2014年9月19日金曜日

【Swift】Swiftサンプル100本がリリース!

こんにちは、田中です。
先日のブログ記事でも書いていましたがついさきほど株式会社GClueさんから

Swiftサンプル100本

https://sites.google.com/a/gclue.jp/swift-docs/home


がリリースされました。
















このサンプル100本ですが、自分も夏休みから会津の学生さんたちと一緒に制作させていただいています。自分が担当したのはこの100本からだと大体2〜30本ほどで、MapKit、CoreImage、Social、AVFoundation、UIKitなどをやりました。
その他修正やテストなども行いました。
今後もサンプル数は随時更新する予定なのでお見逃しの無いように!















やりきった。


iOS8も先日正式リリースされiPhone6/6Plusも今日発売ですが、Swift関連記事もそれに合わせて一気に各所で公開されていっています。
どんどんSwift盛り上がってくれるといいなぁと。
自分もSwift頂点目指して精進を続けます。

最後に、今回のこのバイトもうけて仙台のiOS勉強会、SWWDCでSwiftのライブコーディングをさせていただくことになりました。
もし興味のある方は是非いらっしゃってください。
仙台のiOS勉強会で、僕と握手!

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月28日月曜日

【iOS】Could not launch "アプリ名"というエラーについて

先日ハッカソン中に出た謎のエラーについて。

Could not launch "アプリ名"

process launch failed: NotFound



こんなエラーです。
エラー文が簡潔過ぎてよくわからないです...orz

ビルドは通るのだけれど、実機にアプリを流して起動しようとするとこのエラーが出ました。

色々調べてみたところ、iOSのバージョンを最新にしたらうまくいきました。
今までiOS7.1.1でやってきていたのですが、7.1.2はうまくアップデート出来ないエラーがあるとのことでアップデートをしないで放置していました。

信仰心の薄れが今回の問題を引き起こしたという事ですかね...。

2014年7月15日火曜日

【IT】TestFlightのバージョンナンバー管理

軽くメモ

TestFlightでバージョンナンバーを変えるには

1.プロジェクトのInfo.plistのBundle versionを変える
2.アーカイブして新しいipaファイルを出力する
3.TestFlightにアップする

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が大量に使える滅多にない機会に参加出来て良かったです。
テーマと内容的にスキルの高い人達と一緒に作業が出来る良いイベントだったと思います。
また次回があれば参加したい!

2014年7月1日火曜日

【IT】DelegateとNotificationの違い

実はまだNotificationを使ったことがないです、田中です。
Delegateは使ってる。
よくNotificationを使えばいいよとは聞いていたけどDelegateとどう違うの?ってのがわからなかったので調べました。

ここがすごくわかりやすかった。
DelegateとNotificationの使い分け

どう違うかを簡単にまとめると
Delegateが隣にいる人と細かいやりとりをするのに対して、Notificationは遠くの人に起きたことを一方的に伝えるイメージかもしれません。(上記サイトから引用)
ということらしい。

あとは
Delegateは通知を受けるオブジェクト(通知先)が1つだけであって、通知元と通知先で相互的なやりとりがある。
のに対して
Notificationは通知を受けるオブジェクト(通知先)が2つ以上あって、通知元からの一方的な通知である。つまり通知先からの応答を期待しない。
というところが特徴的。

各クラス間の緊密度を意識しつつどちらを使うかを決めれば良いということらしいですね。

2014年6月16日月曜日

【IT】最近始めたものと面白い点

最近Swiftの登場とかで色々勉強会やったり記事書いたりが増えて楽しい。
ので新しく始めたものとかについてちょっと書く。

・GitHub

コミットすると緑色のグリッドが増えるので、芝生を生やす楽しみがある。まだ無いけど、誰かからソースに対するツッコミとかに期待。

・Qiita

誰がどれだけ見てるか、投稿に対してViewとストックという基準でどれだけ必要とされた投稿かがわかるのでモチベーションが上がる。始めてさっそく「役に立った!」というコメントがもらえたのでかなり嬉しくなった。

・Google Analytics

Qiitaに使い始めてみた。多分ブログとかにも使えるんだよね、これ。これもまたどれだけ見られてるのかがわかるからハマる。監視してたい。

・仙台Swiftもくもく勉強会

自分は詳しくないのでとりあえずもくもくという形をとってちょっと人に聞いたりして自分の勉強にちゃっかり役立てたりしてたり。あとはこの間話に出たこととして「一つのお題なりに対してみんなで考える」という勉強会形式も求められている模様。そしてもう一つとしてはお題を立ててLTなり講義形式で技術的な話をするのも求められている様子。これも出来たら面白そうだからやってみたいなと考え中。


Swiftの発表があった時は「うわなんだよObjective-Cオワコンになるのかよーorz」とか嫌になったけれど、Swiftを勉強することがかなり良い機会になったなと思い始めてる。
さー、これからも無理の無い程度にもっと色々広げてやってくぞー。


2014年6月14日土曜日

【iOS】SwiftでUIImagePickerControllerを使ううえで気付いたこと

今日は仙台Swiftもくもく勉強会第一回を開催しました。
その中でSwiftでUIImagePickerControllerを使って写真を撮ってカメラロールに保存するアプリを作りました。その上で気付いた事をいくつか書いていきます。
ソースはgithubにあげておきました。SwiftCam

基本的にはObjective-Cで書く方法と同じなのですが、微妙に引数や型が違かったりしたので、そこはUIImagePickerControllerの元ファイルをたどって見てもらえばObjective-Cではこういう名前のメソッドだったけどSwiftではこう書いてねっていうのが英語で書いてあります。

次にいくつか気付いた点や気になった点を書いていきます。

・関数の中で関数を書いてもエラーが出ない

Objective-Cだと関数の中で関数を宣言して書くとかそもそも有り得なかったし気にもしていなかったところなんですが、Swiftだとそれが可能です。可能であるがゆえに気付かないでviewDidAppearの中でデリゲートメソッドを書いて「あれ、なんでここ通ってないの?」ってことになりました。
気をつけましょう。

・Selectorの指定の仕方

UIImageWriteToSavedPhotosAlbumメソッドのcompletionメソッドとしてimageDidFinishSavingWithErrorContextInfoメソッドを独自に書きました。
その時UIImageWriteToSavedPhotosAlbumの中でSelectorの指定の仕方ってSwiftだとどうするんだろうと詰まりました。
結局のところソースの通りObjective-Cの時とそんな変わらず、複数の引数があったとしても

 "関数名:仮引数:仮引数:"

みたいに書いて出来ました。
あとはNSErrorで出来ていたところをNSErrorPointerで書けってのもほうほう、というところ。

・ソースコードの中に日本語が入っていると補完が効かない

補完は効かないものだと諦めていましたがどうも調べていると日本語がソースコードの中に入っていると効かないらしいというのがわかりました。
コメント部分もですし、気付きにくいのはファイルの先頭に書いてあるCreated by 誰々のところにも名前が日本語で入っていたりします。要注意。



とりあえず今日はこんなところでした。
一緒に調べて考えて、助けていただいた方に心から感謝です。

2014年6月12日木曜日

【iOS】CounterBySwiftを改良してみて気付いたこと

昨日のSwiftのサンプルアプリ、CounterBySwiftを改良しました。

・改良点
-ViewControllerからCounterViewとCounterButtonを切り離した
-StoryBoardを使わない形にした

とりあえず少しは見やすくなったかと思うけどボタンの部分がもうちょっとスマートになりそうだなぁと。
ボタンのアクションはボタンのクラスに書くべきだろ!とか。



StoryBoardを使わない形にして気付いたこと

ここを参考にしました。

自分のソースだと
self.window.rootViewController = testNavigationController
self.window.rootViewController = viewController
に直しました。

手順
①Single View Applicationでプロジェクトを立ち上げるとStoryBoardが元からファイルにあるので、それを消す

②Deployment InfoのMain Interfaceを消す

③上記の参考にしたURLのコードをAppDelegate.swiftに追記する
Objective-CだとMain.mというファイルに書くのだけれどSwiftだと無くて、代わりにAppDelegateのところで書くようです。

2014年6月11日水曜日

【iOS】iOS勉強会inデザイニウムインターン部に参加しました!

昨日はデザイニウムインターン部のiOS勉強会に遠隔参加しました。
Swiftでのプログラミングを始めました。
基礎文法のおさらいをして、サンプルとして簡単なカウンターアプリを作りました。

勉強会の途中ではまだ安定してないxcodeがちょいちょい落ちたり、Macが言うことを聞いてくれなくなったりなどのハプニングが発生しましたが、楽しく勉強する事が出来ました。補完が効かないのも痛いところですね。
Objective-Cで書いていた部分をSwiftで書くとどうなるか、サンプルを書いていくうちに疑問点が解消されていって気持ちよかったです。

ああ、こうやってObjective-CはSwift祭りの中で姿を消していくのかな...w

サンプルをgithubに公開しました。
簡単なものなので、まず最初にやるものにうってつけかもしれません。

2014年5月27日火曜日

田中、島に生きる




















海だーーーーーーー!!!!!!!!




こんにちは、田中です。
5/24,25の土日の二日間、宮城県塩竈市は浦戸諸島に行ってきました。
何があったかというと、島ソンという島の課題をITで解決しようというイベントがありました。
一泊二日、その土地の美味しい海産物を食べてさらにハッカソンも出来るという内容でなんと3000円という破格の値段!!
これは行くしかないということで行ってきました。

1.島への移動

マリンゲート塩竈から島へ。
今回は大人数だったため、団体割りで1000円くらいで行けたと思います。
他にもこの辺りは水上タクシーもあるそうで、それも楽しそうです。

早速喰らう。
ここにあったスーパーバニラソフトクリームが美味過ぎだった。
さすがスーパー。さすがバニラ。


















船の後に引くこの波が綺麗でした。





















実は僕は船に乗るのが初めてで、ついついはしゃいでしまいましたね。
それはそうですよ。
大人でもこんなにはしゃぐほど楽しいんですから。























海サイコー!!船楽しい!!
うみねこがかなり近くまで飛んで来てくれます。
本当はえさでも投げてやりたいくらいなんですが、それは禁止されているそうなので行く方は気をつけてください〜。


2.島の現状

島ソンの開催場所は野々島という場所でした。
そこで実際に島に住んでいる方々から島の現状を聞きました。

漁業関係では後継者問題や震災後に海の水質が悪くなった問題などがありました。
後継者問題はかなり深刻なようで、漁業従事者の平均年齢が60代を越えているとのこと!!
島の中だと高齢化問題や病院が無いなど。
観光だと人の出入りが少ないなど。


















震災後の復旧もこのように続いていました。



3.島歩き


漁業をやっていらっしゃる鈴木さんに島の中を案内してもらいました。
















綺麗でしたね。
自然豊かで人が少なくて、歩いていると色々な発見がありました。
観光客が勝手に置いて行った椅子とテーブルがあって、それも良い感じの位置に置いてあったり。
何故かハイジみたいなブランコがあったり。












































少し奥にいったところにはこんなお花が綺麗なスポットも。


















4.ハッカソンスタート!

お話を聞いて島の良いところをたくさん見たらそれを元にアイデア出しからのハッカソンスタート。






















僕らのグループのテーマはこれです。(どん!


































ほら穴です!!
野々島には100を越えるほら穴があって、昔から島の生活に役立っていたとのこと。
戦時中は防空壕になり、一説には縄文時代から使われていた説とか、人が住んでいたということも!
この島の地層は山に穴を掘っても崩れない地層になっているそうで、浦戸諸島の中でもこの島だけだそうです。
かなり丈夫な作りになっていて震災でもほとんどが崩れることないほどで、個人的に新たに掘って使ったりもしているそうです。
この地域の方言でほら穴は「ぼらぼら」「ぼら」と呼ばれています。

ボラボラと聞いてジョジョのナランチャを思い出したのは僕だけではないはず。



島の人の生活に役立っている例。





















すごいですね。車庫にしたり倉庫にしたりしているようです。
こんな面白い題材があったら使わない手はないと。
そしてほら穴を島の観光資源として、紹介するwebサイトを作りました。



5.海鮮食べまくり

待ってました海の幸!
BBQからお刺身、持ち寄りの日本酒、中国酒、ビール、馬肉などなど...
































「来て良かった」というよりまず先に
「生きてて良かった、母なる海、島ソンそしてそれらを支える皆さんに感謝...」
という気持ちがわきました...。
本当に美味しかった...。
ホタテの火が通りきらずちょっと生っぽい柔らかさが残ってる貝柱とか、
牡蠣のみずみずしさとか。
あぁ......、思い出すだけでよだれもんですね。



6.まとめ

各発表班、面白かったり、技術的にすごかったり、今後も続いていくプロジェクトがあったりと良いハッカソンでした。
終了から二日が既に経っていますが、未だに交流が続いています。
こんなに勢いのあるイベントって今まで無かったなと思ったり。

まだ細かく決まってませんが自分も何かしらやるつもりです。
なにかしら動きがあればこのブログでも書く事になるでしょう。



最後に運営やイベントの手伝いをしてくれた方々(特にキッチン班!)に感謝して終わります。
皆さん本当にありがとうございました。
また次回があれば行こう。

2014年5月15日木曜日

【iOS】TestFlightでテスト端末を増やすときは

TestFlightを使っていて、後からチームメンバーが増えたりして端末の登録を改めてして、provisioningを更新したりしなきゃいけないって時のことです。
また次回やる時に詰まりそうだったのでまとめときます。


1.Provisioning Profilesの更新

※注意!!!

Provisioning Profilesの更新や端末登録の手続きなどは必ずSafariで行ってください。
そうしないととりあえずうまくいかなかったりします。
自分もChromeでやっててハマりました。

更新したいProvisioning Profilesを選択してEditボタンを押します。






そうすると、各種設定画面に出ます。
そこで追加したい端末のところにチェックをつけて次に進みます。
※端末を登録していない場合は先にDevicesで端末の登録を行ってからやります。




すると、しばしロードするのでそれを待ち、この画面になります。
そうしたらProvisioning Profileをダウンロードします。








ダウンロードしたものがこちら。






これでProvisioning Profilesの用意が出来ました。
次に端末側でTestFlightの処理を行います。


2.端末側の設定

TestFlight側でInvite  a teammateすると、登録したい実機の方にTestFlightからメールが届きます。

届いていたらAcceptを押します。




Acceptを押すとこの画面に飛びます。
TestFlightのアカウントを作れと言ってきますので作ってください。




Connect your Deviceを押す。




そうするとこんな画面になってそれ以上進めなくなります。
MobileのSafariでTestFlightを開けと言ってきます。
タブを見ればわかるように、ここではChromeで開いてるから駄目と言われてるんですね。




こちらがSafariで開いたTestFlight。
ここでさっき作ったアカウントでLog Inします。





Log Inするとこの画面になります。
Connect Deviceを押します。




端末の方でTestFlightをInstallします。
少し待ちます。

































































































































ぽちぽちぽちと押しまくって進めていきます。

次にApps > Project Name > Permissionsの中のUpload ProfileでさっきダウンロードしたProvisioning Profilesをアップロードして、Update & Notifyでテスターに通知を送ります。





















そして管理者のTestFlightで配布用のipaファイルをアップロードして、その通知を送ると端末側にメールが届きます。
そのメールのInstallを押すとTestFlightの方でInstallをしますので、これで完了です。

※注意!!!

TestFlightの処理もSafariでやるのが吉という感じでした。
なので困ったらSafariでTestFlightを開くのが良い。





ちょっと自分でもまとめてて順番とか微妙なところがあると思ったので、とりあえず迷ったら届いたメールのボタンを押してみる、Safari側でTestFlightを開いてみるとかするとこれじゃないか?っていうのが見つかるはずなので、ここを参考につつ進みてください。