AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

MBSハッカソン2017 参加レポート


はじめまして!AWSチームの百木田(からきた)です。2月からハンズラボに入社しました。
前職はインフラエンジニアとして、主にAWSを使ったインフラ環境の設計・構築・運用を行っていました。
また、それ以前は大学でやり投げを頑張っていました。やり投げる系のエンジニアです。

よろしくお願いします。これからエンジニアブログ頑張ります。

初回は技術系のお話ではなく参加レポートです。
2月11日に大阪で開催されたMBS主催のMBSハッカソンに参加してきました。

入社して最初の大仕事。気合入れて大阪へ。

弊社、昨年に引き続き協賛させていただいておりました。

当日の発表によると参加者数は131名!エンジニアだけでなく、プランナー、デザイナーも結構いました。
弊社からは5名。協賛とは関係なく一般応募で戦います。オールエンジニアです。
このMBSハッカソン、参加者全員がHackできるというわけではなく、今回のアイデアソンで8組に選ばれて初めて来週開催されるハッカソンに出場できるというもの。
1組5-7人なので決勝まですすめる確率は30-40%というなかなかな狭き門。

今回はアイデアソンの流れや思ったことを中心に書いてみようと思います。

会場入り

会場についたらまず着席します。チーム参加・個人参加関係なくバラバラに座るように言われ、各テーブルはじめまして状態になります。

スタート!

まずはじめにゲスト紹介があり、その後API提供していただいた各社からそれぞれのサービスについてご説明いただきました。
個人的にはcoineyというサービスがすごいなあと思いました。

アイスブレイク 「うろ覚えお絵かき」

自分の知っているテクノロジーについて事例なども含めチームメンバーに絵で説明します。

好きなMBSのコンテンツを共有

このハッカソン、テーマとして「今が旬の6つのテクノロジーを使ってMBSの番組・イベントをもっと面白くするITサービスを開発しよう!」ということを掲げているので、まずはMBSのコンテンツについてチーム内で共有し理解を深めます。

まずは好きなテレビ・ラジオ番組(のコーナー)、イベント、Webコンテンツなどを各個人がリストアップ。
それをチーム内で出し合い

  • 好きな番組
  • あまり他の人が出さなそうな番組

に分けてランク付け。
↑ここでチーム内で番組に関しての紹介やディスカッションをし合うことでそれぞれの番組に対する理解が深まる

ちなみに私は関東に住んでいるのでMBSを見る機会はほぼなく、情熱大陸しか知らなかったため、チームメンバーの方にそれぞれどんな内容か丁寧に説明していただきました。(ありがとうございました!)

コンテンツとテクノロジーを好きなように組み合わせてアイデアを出していく。

今回テクノロジーとしてテーマとなっていたものは以下の6つです。

  • 人工知能(AI)
  • 仮想現実(VR/AR)
  • 位置情報
  • IoT
  • ロボット
  • フィンテック

これらとMBSのコンテンツを組み合わせてアイデアを放出します。
組み合わせの例としては

  • 「情熱大陸」✕「フィンテック」 とか、
  • 「ちちんぷいぷい(MBSの情報番組)」✕「人工知能」とか。

とにかく組み合わせてからどんなものができるか考える。5秒考えて思い浮かばなかったら次!
というように頭の中のなにか溜まったものをどばどばと放出していくような作業。

私、とにかくこれが楽しくて快感でした。
この段階では、どう実現するの?とか、誰得よ?とか言わない約束。だめ、絶対。

こうして1人4つほどアイデアを出し、チーム内で紹介し合います。
ここもとてもおもしろかったです。自分以外の人の、しかも別業界の人のリミッターが外れたアイデアなんて聞ける機会はそうそう無いですからね。

お披露目会

その後、自分が出した4つのアイデアの中から本命として1つ絞り込み、1枚の画用紙にまとめて参加者全員でお披露目会です。
いいね!と思ったアイデアにシールを貼っていきます。うろ覚えですが多い人で40枚以上、いわゆる「モテアイデア」というらしい。ちなみに私はシール6枚・・・。認定・非モテアイデアでした。

チームビルディング

お披露目会の後はいよいよチームビルディングです。自分のアイデアとシールの枚数を提げてナンパし合いされ合います。
自分のアイデアと近い人と組んだり、面白いアイデアを持っている人と組んだり、そうして徐々にチームが組まれていきます。
そんな中、周りでチームビルドをしている人たちを見ていると何やらみなさん困っている様子。

「深刻なエンジニア不足!」

エンジニア、引っ張りだこでした。
いくらプランナーやデザイナーがチームにいて夢を語り合ってもエンジニアがいないと実現は難しい。
「Engineer First」
ファシリテータの伴野さんが何度かおっしゃっていました。アイデアソン・ハッカソンではものを作れる人が一番偉いですよーと。
そんなエンジニア不足が嘆かれるなか、我々のチームは全員エンジニアのチームで挑むことになりました。
この時は思っていました。勝つる!

チーム内でアイデアを育て、発表

チームビルドしてからチーム内でアイデアの発散→具体化→収束を2時間半ほどかけて行い、その後チームごとに舞台で発表です。
どのチームもコントを入れたりして工夫した発表。
そうして全25チームによる発表が終わり、審査員によるハッカソン進出チームが発表されました。

・・・負けました。

敗因(自己分析)

  • エンジニアしかいないのでアイデアを育てる段階で、フィージビリティとか工数ありきの考えになっていた。
  • プランナーのようなエンジニア以外の目線で考えるメンバーがいないのでいまいち斬新性に欠けたものになった。
  • デザイナーがいないので発表資料が残念。

まとめ

アイデアソン・ハッカソンではEngineer FirstだがEngineer Onlyが強いということでもないということを身をもって経験しました。
バランス大事。
また、運営面の話ですがチームビルド前の発散の段階ではそれぞれの作業時間がとても短く区切られていて(長くても5分とか)、深く考える時間を与えない、パっと浮かんだアイデアを大事にする、みたいな部分はなるほど勉強になりました。
こうやって自分の脳ミソをフル回転させて発散させるという作業をすることで、凝り固まった頭が少し柔らかくなる気がしました。
あと、普段接しない人たちとリミッターを外して意見を交わすのって大事だなと思いました。
これからもアイデアソンに参加し、こういった機会を積極的に持ちたいです。

負けてとっても悔しかったので再挑戦したいと思います!

ありがとうございました。


新卒1人仮想プロジェクト完了しました


はじめに

ハンズラボの新Macbook Proを手にした新卒の村上です。新卒研修のメインである1人仮想プロジェクトが12/9に完了したので忘れないうちに書いておきます。

えっ!?この時期に新卒研修?

と思うのが当然ですが、実は私が大学院を中退し10月中旬に入社して1人で仮想プロジェクトを行ったというわけです(さみしっ)。私も入社前に今年度の新卒の研修記事を参考にして入社したので特にハンズラボに入社を考えている方々の参考になれば嬉しいです。

仮想プロジェクトの概要

仮想プロジェクトといっても、今年度の新卒4人で行った仮想プロジェクトもそうかもしれませんが、作るものに関して具体的な要件があったわけではないです。
「何か世の中のためになりそうなものをつくって。利益出しても良いからw」
といった感じだったので、自分が欲しいサービスを作れるというわけです!(もちろん、みんなにも使ってもらいたい)。

うーん、何を作ろうか… 技術的に簡単すぎても研修にならないし、難しすぎても終わらないし。何より1人だし…

ちなみにスケジュール見積もりは以下のようになりました。

  • 企画:7日
  • プロトタイピンング:3日
  • 設計:2日
  • 実装:16日
  • テスト:3日
  • リリース:2日

 

何をつくったのか

企画発表スライド

企画の段階で社員の方々に発表した際の資料です↓(アニメーションは動かない)

 

貸し借りサービスの難しさ

スライドにもありますが当初5つの案があり、Slackで社員の方々に投票を呼びかけ、その結果を踏まえて工具共有アプリを作ることにしました。既存競合サービスを考えると、「メルカリ アッテ」や「Anytimes」になると思います。それらのサービスと違う点は、アイテム領域を工具のみに絞っているところと、売買でなく貸し借りをサポートするサービスであるという点です。

特に考える必要があったのは、貸し借りサービスはメルカリ アッテのような売買サービスとは違い、売って終わりではないという所です。スライド中で二つの壁という表記がありますが、

  1. レンタル中のレンタル品の劣化
  2. 借主がレンタル品を返さない

ということを考慮する必要がありました。1つ目については工具の劣化のしずらさでカバーできると思い、2つ目については質代制度というものを考えました。
これは貸主が借主がレンタル品を返さない場合または大きく劣化した場合に備えて、あらかじめ貸主が借主からレンタル代に加えて質代としてお金を預かっておくという制度です。

とテキトーなことを言いましたが、この制度がうまくいくかどうかはわかりません。結局開発に入ってからはサービスが上手くいくかどうかを考える余裕はなく、開発に専念していたため今でもベストな解は導けてません。運用側で保障することを考えればもっと他に手はあるかもしれません。この辺の難しさが貸し借りサービスが(私の知る限り)ほとんど存在しない理由ではないかと1人考えていました。

具体的なサービスの流れは上記スライドにもありますが、プロトタイピングの時点でAdobe XDを使ってモックを作りましたのでよければ見てください(サイドナビゲートバーの項目を選択する際に面倒があります)。

どのようにつくったのか

私の技術レベルなのですが、情報系の学科出身なので基本情報技術者試験程度の知識はありました。Web開発については入社前にDjangoの参考書を一読していたという程度で自分で企画してサービスを構築するというのは初めてでした。

開発環境

  • Python 3.4
  • Django 1.8, Django Channels
  • Bootstrap3
  • sqlite

 

DjangoとはPython用のWebフレームワークです。RubyでいうRuby on railsのようなものです。他にもPython用フレームワークはFlaskやPyramidなどがありますが、最も多くのユーザに使われているものがDjangoです。フレームワークを語るときによくMVCモデルと耳にしますが、DjangoだとMTV(Model, Template, View)モデルがそれに対応します(厳密な定義はないですが)。Djangoはユーザ管理機能(ユーザ登録、ログインから、パスワード変更など)の多くの部分のロジックを用意してくれているのでテンプレート(html)を書くだけでそれらを実現できたりします。また、モデル定義からフォームを作成することができるので、html内でformタグやinputタグなどを使わずにフォームを作成することもできます。他のWebフレームワークをほとんど使ったことがないので比較ができませんが、とても使いやすくお気に入りです。
ちなみに社内には業務でDjangoを使っている人はおらず、もしDjangoエンジニアで弊社に興味がある方がいれば、私と共にDjango(Python)勢力を拡大していきましょう!! 現状は謎テクノロジー、ユニケージ(Bash)とPHPで書いている方が多いです。

機能一覧

  • ユーザ登録、ログイン(facebookログイン含む)、ログアウト、パスワード変更とリセット
  • アイテム(工具)のCRUD機能
  • アイテムへの応募
  • チャット
  • 評価

 

特に苦労した点は、UIとチャットです。UIはBootstrapがなければとても間に合いませんでしたし、チャットはDjango Channels(Websocketを実装するためのライブラリ)のおかげでなんとか実現できました。
当初評価機能まで考えていたのですが、時間的に間に合わず断念しました。

つくったアプリの画面

ログイン画面
ログイン画面
ホーム画面
ホーム画面
チャット画面
チャット画面
今後はチャットのUIの改良 また、評価機能、検索機能を付け足して社内だけでも公開して意見をもらいたいなと思っています。

おわりに

上記ではサービス概要や開発環境について書きました。もう一度一人で仮想プロジェクトをやるとすれば、今回は実装量として一人でやるには多かったのでもう少しコンパクトですぐにみんなに使ってもらえるようなアプリを作りたいです。
研修の1ヶ月半ほどの間、ほとんど毎日先輩社員のTさんと人事担当のAさんに進捗を報告する時間とプロジェクトが遅延した場合の対処法を教えていただいたりして、プロジェクトを円滑に進められるよう助けていただきました。また、仮想プロジェクト以外にも社会人マナー、東急グループ内のハンズラボの位置付け、プロジェクト管理、ソフトウェアテストについても教えていただきました。この場を借りてお礼を言いたいと思います。ありがとうございました。現在、私は既にチームに配属され日々、PHP、bash、AWSの勉強をしながら業務にあたっています。


眠すぎる朝のPolly


テバサキワ
ハンズラボ 吉田です。

乗り継ぎ3時間待ちが非常に辛いです。。。
ここで寝たら日本に帰れないので書いています

img_1926

割とどうでも良いのですが、自分、ベガスでこの高さからダイブしました。
すっげーーー気持ちいい。次はスカイダイビングしてみたいです。

本題に移ります

続きを読む 眠すぎる朝のPolly


眠れない夜のAthena


ハンズラボの小林です。

現在、re:Inventに參加するためベガスに来ています。

ベガスと言えばカジノ!

昨日の夜、ルーレットをやってみたところ、大当たり!

これがビギナーズラックというものか。

、、、と思ったら夢か。

現在、こちらの時間で12月1日の午前3時30分。

明日も朝8時からKeynoteがあるし早く寝なければ!

しかし、カジノの興奮が覚めず眠れない、、、

そんな眠れない夜には「Amazon Athena」(S3へ簡易SQLが可能に)を試してみよう。

東急ハンズはユニケージ開発手法を使っていて、マスタや売上、在庫といった業務データをテキストファイルで管理しているのでAthenaとの親和性が高そうだ。

ただ気になるのはパフォーマンスだ。

Athenaの内部で、単にファイルを読み込んでいるだけだったらパフォーマンスは良くなさそうな気がする。

とりあえず簡単なデータで試してみよう。

カラムは1個で、数字の1〜1000というデータ。

Linuxサーバー上で↓のようなファイルを作り、S3にアップロード。

次にAthenaのコンソール画面からテーブルを作成。(簡単かな?)

①DB名、テーブル名、S3のディレクトリ名を入力

athena1

②次にファイルのフォーマットを指定。

athena2

③次にカラム定義。

athena3

④で最後に「Configure Partitions」

なんじゃこれは?明日も早いし調べてる時間もないからとりあえず無視。

athena4

これでテーブル作成。

athena5

おぉ、できた!

こういうのって、大体1回目は失敗するのに。こいつは簡単だな。

で肝心のパフォーマンスを確認。

athena6

結果は0.6秒。遅っ!

う〜ん、これ、ファイルとレコード件数が増えたらどうなってしまうんだろう、、、

ってことで、さっきと同様の1,000レコードのファイルを1,000個を作ってS3にアップロード。(カラム1個で数字がさっきの続きで1001〜100000)

コンソールに100,000件も出ないだろうから、今度は件数を取ってみよう。

athena8

結果は2.89秒。致命的に遅い、、、

う〜ん、ファイルを1個で同じ件数にしてみたらどうだろう。

athena7

結果は0.78秒。さっきより早くなったが、それでも遅い。

whereを付けて1件を検索したらどうだろう。

◆ファイル1,000個の方

athena9

結果は3.04秒。

◆ファイル1個の方

athena10

結果は0.83秒。

同じような結果だな。

時計を見ると4時40分。そろそろ眠気が襲ってきたので、今日はここまでとするか。

今夜も眠れなかったらスノーモービルを試してみるか。

おやすみなさい。


re:Invent 2016 参加レポート(Keynote 2)


AWSチームの加藤でございます。
昨日に引き続きre:Invent2016 のレポートをお送りしたいと思います。

さて、新サービスの発表があるKeynoteの2日目!
本日はよりギークな発表が予想される中、Serverlessに魂をかける私は、

まさかの二度寝。。。

ラスベガスに来て4日目。まぁ疲れもたまっておりまして、早く並ぶつもりで目覚ましを早めにセットしたのが仇となり。。。

しかし弊社マーケティングの青木の計らいにより、今日も無事席を確保できました。

ありがとう。ありがとう。

もう一度、ありがとう。

何とか席について落ち着きを取り戻しまして、見渡す広いイベントスペース。
そして昨日に引き続きテイストの違うノリノリ爆音と、これぞDJなお方がHey Yo!

dsc_0080

気になって調べてみたら DJ Shiftee 、ハーバード大学出てしかも指折りのDJとか。
無知で本当にごめんなさい。
イベントが始まる寸前には魂のスクラッチ!本場はすごかったです。

さて、そんな興奮と緊張が高まるなかWerner Vogelsが登場しKeynote がスタート!

dsc_0082

変革についてや顧客に対する熱い思いをぶつけます!

Protect customers at all times!

昨日に引き続き、だんだんと魅せられていきます。

dsc_0083

途中、TwillioのJeff さんも登場し、

ソフトウェアはマインドセットだ!スキルセットじゃねぇ!

熱いっす!

Twillioって知ってるか?知らなくても実はいつも使ってるんだぜ!

かっちょいいぃ!いつか言ってみたい!

やっぱり熱い思いを持っている人はすごいですね。もう心は鷲掴み状態のなか、再びWerner Vogels登場。ソワソワし始める会場

そう。みんなが待っているのは、昨日に引き続き新サービスの発表ですね。
もちろん食べきれないくらいの怒涛の発表が行われましたので、ざっとまとめてみました。

それでは、Here we go!!
12/01 キーノートでの新発表まとめ
Well – Architected Freamework】(Operational Excellence pillarの追加)

AWS OpsWorks For Chef Automate】(Chef Automate対応)

Amazon EC2 Systems Manager】(EC2&オンプレSV管理 – SSM高機能版)

AWS Code Build】(マネージドビルド)

AWS X-RayPreview(アプリモニタリング可視化)

AWS Personal Health Dashboardプレミアサポート(自分用監視ダッシュボード)

AWS Shield For Everyone / Advanced】(DDoS対策)

Amazon Pinpoint】(セグメンテーションプッシュ)

AWS Glue】Coming soon(マネージドデータカタログ / ETL)

AWS BatchPreview(マネージドバッチ)

BloxGit Hub (コンテナのオーケストレーション)

C# Lambda】(lambda C#対応)

Lambda @ EdgePreview(LambdaをCloudFront実行)

AWS Step Function】(ビジュアルワークフロー)

もうまとめるのも大変です。(嬉しいけど)

Day 1
dsc_0107

Day 2
dsc_0106

いやーすごいですねー。

早く触りたい!けど、まだまだ見たいsessionが盛りだくさん。
しかも今夜はパーリーナイトのre:Play!
噂によると Martin Garrix 。調べてみたら。2016年のTop DJじゃないですか!

素人でほんとごめんなさい。でも最大限に楽しみたいと思います!


  • IT酒場放浪記 記事一覧
  • エンジニア募集中!