ServerlessConfでpre-conference workshopとconference dayに参加してきた

f:id:chocopie116:20161002014038p:plain

tokyo.serverlessconf.io

こちらのイベントに参加してきました。

動機

これまでオンプレでサービスを提供しているチームに所属していたのですが、実は10月から異動になりました。 クラウド環境のアーキテクチャにあまり触れてこなかったので、積極的に触れる機会を増やしていきたいなというのがモチベーションでした。 ServerlessConfはそんなタイミングでちょうど見つけたので申込をしました。 2016/09/30(金)と10/01(土)の両日を使って、約30名限定のpre-conference workshopと、conference dayに参加してきました。 その記録です。

両日通しての個人としての学び

  • AWSでのAPI Gateway, Lambda, Cognito, DynamoDB等を利用したアプリケーションを構築する経験ができた(といってもAWSのマネジメントコンソールぽちぽちしただけ)。
  • 世の中的にサーバーレス!とよばれるアーキテクチャは、どういった機能で適用するのかプロダクションの事例を聴きながらイメージできた。
  • 黎明期っぽい感じがして、ワクワクした。
  • IaaSは機能がたくさんあってすごいなーとモチベーション上がった。
  • Amazon Echo楽しそう(技適と、日本語の文法の問題を解決して早く日本にもってきてほしい・・・)

(Day 1) pre-conference workshopのまとめ

概要としては、用意されたCloudFormationのtemplateと、node.jsで実装されたアプリケーションをセットアップしながらチャットアプリケーションを動作させました。

Surviving the Zombie Apocalypse with Serverless Microservices | AWS Compute Blog

というもので、世界の色んな所で実施しているイベントのようです。

なおワークショップで実現させた機能は

  • ユーザーは会員登録ができる
  • ユーザーはチャットアプリケーションにテキストを投稿できる
    • ChatApp Client(S3) -> ChatApp Server(API Gateway, Lambda, DynamoDB)
  • ユーザーは、SMSを使ってチャットアプリケーションにテキストを投稿できる
    • スマホのSMSアプリ -> Twillio (webhook)-> ChatApp Server(API Gateway, Lambda, DynamoDB)
  • ユーザーがチャットアプリケーションに投稿したテキスト情報を検索できるようにする。
    • ChatApp Client(S3) -> ChatApp Server(API Gateway, Lambda, DynamoDB) -> Lambda(DynamoDB trigger) -> ElasticSearch Service
  • ユーザーはslackの slash command を用いて、チャットアプリケーションに投稿できる
    • Slack Client App -> Slack(webhook) -> ChatApp Server (API Gateway, Lambda, DynamoDB) (話としてはゾンビによって地球上の人間がほとんどいなくなった状況で、残りの生存者がコミュニケーションをとるチャットアプリケーションという設定でした)

ログイン画面

f:id:chocopie116:20161002004301p:plain

チャット画面

f:id:chocopie116:20161002004323p:plain

気になる方はこちらから試すことができるようです。 GitHub - awslabs/aws-lambda-zombie-workshop: Code and walkthrough labs to set up a serverless chat application for the Zombie Apocalypse Workshop

あと全然関係ないですが、目黒のAmazon社は社内壁があって羨ましい。 f:id:chocopie116:20161002014000p:plain

(Day 2)conference dayのまとめ

どの発表も新鮮でしたが、特に以下の2つの発表は個人的に印象に残っています。

Gunosyのnewsappというニュースアプリでの事例紹介の話でした。
API Gateway, Lambda, Cognito, SNS, Kinesisを使っているプロダクションにおける具体的な利用シーン

speakerdeck.com

他の方々の発表をきく中で、サーバーレスについてどういうことが大事なんだろう?ということが気になっていた部分が整理された気がします。
AWS Lambdaが出てから、よく聞くサーバーレス!サーバーレス!ってよばれている気がしたけど、本質ってなんだろ?(BaaSとかMBaaSの時いってなかったよね?の意味)
以下の話で少し整理されたきがします

speakerdeck.com

日経さんで画像処理周りをlambda使ってる話は面白かったです sssslide.com

気になること・試してみようとおもうことこの後やってみようとおもっていること

  • テストとかどこまでできるのか気になる
  • サービスの監視とかどうやってやるのか気になる
  • Lambdaのデプロイとか面倒くさい (このあたり便利にしてくれるフレームワークと呼ばれるものが何をしてくれるか調べる Serverless, Apex)

つくってみたいアプリケーションが2つあるので、その中で手を動かしながらやってみよ。

うわっ…私の集中力、低すぎ...? Pomodoro(PomoDoneApp)とRescueTimeを使って1週間を計測してみる 〜実践編〜

以下のエントリの結果発表です。 chocopie116.hatenablog.com

先に結果をいうと、

今週は色々あって稼働時間短かったんだよ・・・と思わず言い訳したくなるぐらい、自分の想定よりずっと集中していた作業時間の確保できていなさそうです。 (計測のやり方で集中していた時刻を計測できていない等の要因も含まれていますが)

計測手法と計測する狙いについて

ほったらかし計測

  • 自分自身で能動的なアクションをせずに、起動しているアプリケーションのウィンドウから起動時間を記録。
  • いわゆる気の抜けたタイミングなどの計測が目的。
  • RescueTimeを使用。 www.rescuetime.com

アクティブ計測

  • 自分自身で能動的なアクションをする。作業前後でアプリケーション起動して、時間を記録。(ストップウォッチを押す感覚)
  • いわゆる作業で集中している時間の計測が目的。
  • PomoDoneApp(pomodoroタイマー + trello)を使用 pomodoneapp.com

計測結果

ほったらかし計測

Daily(8/8)

f:id:chocopie116:20160813232833p:plain

Weekly(休みの日も混ざっている)

f:id:chocopie116:20160813232844p:plain

アクティブ計測

Daily(8/8)

f:id:chocopie116:20160813233430p:plain

Weekly

f:id:chocopie116:20160813233455p:plain 週の半ばから、計測が少し面倒くさくなってしまい、計測できていない量も結構会ったと思う。

振り返り

営業時間のうち作業時間は7割ぐらい確保できた週だったと思う。 そのうちアクティブ計測によって計測できた集中時間は、7割の半分ぐらい。 わかってはいたけど計測して改めて、集中している時間の尊さをすごくすごくすごく感じた。

取り組み方としては、ほったらかしスタイルの計測はとても楽だった。 個人的には、slackと会社のグループウェアってどのぐらい見ているんだろう?ということを計測できたのでよかった。

アクティブ計測は、自分でストップウォッチを押す行為が億劫だったりしたけど、意外と続けられた。 1日あたり何ポモドーロできた?みたいなものをベースに 自分の1日の成果(集中時間)を測る1つの指標としてアクティブ計測については引き続き頑張ろうと思う。

取り組みの改善としては、ポモドーロの時間が終わったかが音でしか今のところわからない。 有線のイヤフォンをMacのジャックに挿して使っていたが、ケーブルが邪魔でなんか辛いので、 Bluetoothのイヤホン買ったのがTry(これが有効かは謎

ポモドーロはどのぐらい集中してるか?作業できたのか?みたいなものを振り返る手法としてよさそうだなとおもった。

推測するな計測せよ Pomodoro(PomoDoneApp)とRescueTimeを使って1週間を計測してみる 〜計画編〜

やろうと思ったきっかけ

オリンピックを見ている奥さんの横でようやくSOFT SKILLSを全て読み終えた。 個人の生産性(Productivity)について書かれていて、ふと計測してみたくなった。 GTDの手法とかやりこんで、意識高くSNS使わないぞ(キリッ ではなく、PCに向き合っている時間を計測してみたくなったのが一番の理由です。

話は変わるが、最近おうちでの月々の収入支出をきちんと計測して使途不明金1万円以下まで把握して振り返りをしたらとても良かったのも1つの要因。

なおこのブログは1週間の計測結果ではなく、これから実施予定の計測方法にのみ記載した。 理由は、途中で飽きてしまうリスクに対して、目的を定め・検証すべきことを言語化すると最後までやりきれそうな気がしたからです。

背景・問題意識

愉快な人々に囲まれながらチームで働いていると様々な機会がある。

  • slackのmentionでの依頼・質問
  • slack channel上での議論・雑談
  • GitHubのPull Requestのレビュー依頼

これらについてチームで働いているので、協働という意味でなるべく早め早めに対応しようとしたり、 ネタに乗り遅れないようにしたり、 ふとした瞬間にTweetDeckでtwitter見たり、自分の意識や集中が途絶える瞬間は多い気がしている。 時間にするととても短いけど、こういった時間の使い方が占める割合は馬鹿には出来ないと思っている。

計測項目

  • 成果物の達成のために集中して作業(定義は後述)している時間をどの程度確保できているのか計測したい
  • PCの前に向き合っている間に消費している時間を計測したい

計測方法

2つの方法をためしてみることにした。

PomoDoneApp

ポモドーロ・テクニックを使って、集中して作業している時間の計測を行う 集中して作業している時間の定義は難しいので、一旦ポモドーロ中はmention飛んでポップアップがでない限りはslack開かないというオレオレルールでいく(守れなさそうなら後から考える pomodoneapp.com

  • 無料
  • 日毎のログをレポーティングできること
  • 家のPCとMacのPCで連携できること
  • タスク管理で別のサービスと連携して、1ポモドーロで何やるか手打ちしなくてよいこと(trelloと連携した)
  • slackと連携できること(仕事で一番依存しているプラットフォーム上に通知が出せると、忘れずに続けるために意義がある

RescueTime

PC上でのアプリケーションの起動時間の内訳を計測する www.rescuetime.com

  • 無料
  • レポーティング機能があること
  • アクティブなウィンドウの情報を記録
    • アプリケーション名
    • ブラウザの場合はURL

URLのところがかなり怪しいw 閲覧URLのログについては、自分が許可したホワイトリストドメインのみでのロギング設定もあるので まずは1日運用してみる。

RescueTime

How much data does RescueTime collect? I'm a little worried about this. RescueTime collects the following pieces of information by default: application name, web site URL (if the app is a browser), start time, end time, OS username, and computer name. You can choose to limit what RescueTime collects by turning off window title collection, and turning off full URL collection (example.com vs. example.com/morewords). You can also elect to enable our whitelist functionality, which allows you to track ONLY web sites that you want to track-- all other web usage is sent to us with no URL information. application name, web site URL (if the app is a browser), start time, end time, OS username, and computer name.

結果エントリ

chocopie116.hatenablog.com

最近のわたしメモ

つれづれにメモ

お金について結構考えた

保険屋になった友達に会いに行くついでに色々話きいた。 セールスマンの話を鵜呑みにするのが怖かったから、自分で資産管理について勉強した。

稼ぎを増やす、支出を減らす、お金を増やすの3つの選択肢の中で、いくつかトライ中。 こういうの働き始めたタイミングで考えときたかったな〜とは思うけど、このタイミングできちんと考えることができたのはとても良かった。 友達には感謝している。(結局保険には入らないつもりなので申し訳ないが…) お金を増やすより、稼ぎを増やす、無駄遣いを減らすみたいなところに注力したほうがよさそうという見解に至った。

最近の活動とか

めいんお仕事

複数のサービスの管理画面やバッチアプリケーションが乗ったサーバーに乗っかっている、管理画面アプリケーションを別サーバーに切り出していくための作業をしている。 古い管理画面のアプリケーションを書きなおしながらがんばっている

サブジョブ1

他の場所で働いてみたい(サービス×システム×組織)という感じで、週末メンバーとしてリモートで友達のエンジニアがPMしているサービス開発に少しおじゃますることに APIのサーバー担当していこうzeな雰囲気。 学生時代にRailに乗れなくて死亡したRailsでのリベンジ。まぁよき経験かなーと思っている iOSやら、Androidも展開しているようなのでちゃっかりクライアントとかも出来るようになりたいと目論んでいる。 また、リモートワーク主体なので、リモートにおける働き方そのものや、チームビルディングってどんな感じなのかもーみたいなところにとても関心がある。 結構楽しい。

サブジョブ2

関わっているNPOの静的なサイトのコーディングやっている。2週に1回お休み半日ぐらい使っている ぶっちゃけ、これまでHTMLやCSSのコーディングはほとんどコピペでやってきたので作業進んでおらずつらみが高まる。 フロントエンド周りはやっぱりユーザーと直接の接点だし、開発していても楽しいな。

でもササササッと終わらせたい。結構辛め。

最近よんだ(or でいる)本

done

途中

  • [wip]Go言語によるWebアプリケーション開発
    • ツールとかささっと書きたいなとおもってはじめてみた。
    • tour of goやっても何も面白みわからなかったけど、一旦これを写経しながらわからないところを調べるスタイルで勉強してる
  • SOFT SKILLS
    • キャリア・学び方を学ぶ・お金・健康のところ参考になる

読みなおしたり

  • Web API: Th Good Parts
    • APIの設計とかについて主張するときに、リファレンスとして久しぶりに読み返してみた。
  • おすすめ生命保険には入るな
    • 保険はその人の置かれた状況によって、会う合わないがあるから、その人というものの列挙と比較に重きをおいた本。この人の考え方あってるかも?的なのがわかりやすい
  • 超簡単 お金の運用術
    • とてもシンプル。基本これにのっかるつmろい。

お金の話ばかりw

結婚式とか会社のイベントで前つくって運用したクイズwebアプリケーションをGoで書きなおしてサービスインさせちゃうやつをなんとか8月中旬ぐらいまでに頑張りたい。

2016年やりたいことリスト100

こういうことらしいです

blog.koreboku.com

僕もとりあえずつくってみる まだ100ないのは徐々にうめてくw

  • 01.バンジージャンプ
  • 02.触ったことのないプログラム言語を触ってなんかつくる
  • 03.金を稼ぐサービスをやる
  • 04.自分の子どもを腕に抱く
  • 05.OSSで自分のリポジトリにstarを100もらう
  • 06.カンファレンスでLT発表する
  • 07.カンファレンスのショートトーク発表する
  • 08.潮干狩りにいく
  • 09.金沢に旅行いく
  • 10.海外旅行に行く
  • 11.猫背矯正する
  • 12.iOSアプリをつくる
  • 13.Androidアプリをつくる
  • 14.isucon予選突破する
  • 15.テニス大会のダブルスにでて一勝する
  • 16.友達のこどもとBBQする
  • 17.ロードバイクを手に入れる
  • 18.シリコンバレーに行く
  • 19.親孝行する
  • 20.婆孝行する
  • 21.10kmマラソンを完走する
  • 22.ハーフマラソン完走する
  • 23.フルマラソン完走する
  • 24.ハンモックで寝る
  • 25.サーフィンをする
  • 26.外国人の友達をつくる
  • 27.ヨガ(瞑想)の体験レッスンに行く
  • 28.IT健保の寿司屋に行く
  • 29.シックスパック(腹筋的な)を手に入れる
  • 30.嫁を泣かせる(いい意味で)
  • 31.会社の看板なしに個人としてお金を稼いでみる
  • 32.チワワを飼う
  • 33.家でホームパーティーをする
  • 34.川で泳ぐ
  • 35.釣りをする
  • 36.自分で釣った魚をやいて食べる
  • 37.寺にいって座禅をする
  • 38.おしゃれな伊達眼鏡を買う
  • 39.投資信託を自動積立する
  • 40.歯を白くする
  • 41.まんが喫茶にいって10時間マンガを読み漁る
  • 42.200はてブもらって美味しいお寿司を食べる
  • 43.仕事で成果をあげて個人で表彰される
  • 44.仕事で成果をあげてチームで表彰される
  • 45.いちご狩りにいく
  • 46.Androidの端末をかう
  • 47.ハンモックカフェにいく
  • 48.嫁との趣味がつくりたい
  • 49.嫁とワイナリーにいく
  • 50.嫁とワインをつくる
  • 51.ブルートゥースヘッドフォンを買う
  • 52.コーラとポテチを買い込んで、家で1日嫁と映画をダラダラ見る
  • 53.歌舞伎を見に行く
  • 54.マイホームを手に入れる
  • 55.ドリカムのライブ見に行く
  • 56.羽生くんのフィギアを見に行く(嫁に連れて行かれる)
  • 57.カメラを買う
  • 58.BBQで豚の丸焼きをつくる
  • 59.出産に立ち会う
  • 60.楽器を演奏できるようになる(ウクレレ・ギター等)
  • 61.奨学金の繰越返済を行う(少額でもOK)
  • 62.Perfumeのライブにいく
  • 63.新しいiPhoneを買う
  • 64.新しいMacBookを買う
  • 65.スタンディングで作業できる机かう
  • 66.27インチの外付けディスプレイかう
  • 67.所属する組織以外からもお金を稼ぐ
  • 68.なにかかく
  • 69.なにかかく
  • 70.なにかかく
  • 71.なにかかく
  • 72.なにかかく
  • 73.なにかかく
  • 74.なにかかく
  • 75.なにかかく
  • 76.なにかかく
  • 77.なにかかく
  • 78.なにかかく
  • 79.なにかかく
  • 80.なにかかく
  • 81.なにかかく
  • 82.なにかかく
  • 83.なにかかく
  • 84.なにかかく
  • 85.なにかかく
  • 86.なにかかく
  • 87.なにかかく
  • 88.なにかかく
  • 89.なにかかく
  • 90.なにかかく
  • 91.なにかかく
  • 92.なにかかく
  • 93.なにかかく
  • 94.なにかかく
  • 95.なにかかく
  • 96.なにかかく
  • 97.なにかかく
  • 98.なにかかく
  • 99.なにかかく
  • 100.なにかかく

2015年振り返り

年末の残す所あとわずか。 今年もあのイベントがあるので、2015年にあった事実を集めました。

chocopie116.hatenablog.com

いわゆる2015年の成果について内輪でお互いに傷を舐m自慢をする会です

総評

1. 新規事業開発に挑戦

会社に入ってからやりたかったこと 新規サービス立ち上げに関わったこと自体はあったが、その時はチームメンバーにほとんどお任せしたりしたが、今回はある領域において手助けを借りながらも責任をもってやり遂げることができた。 純粋に楽しかった。チーム・サービスはクローズしてしまったが、今後も挑戦したい。

2. 結婚した

一番近いところのチームメンバーできた。 元々同棲していたので大きな変化はない。 変化があるとすれば、今後住む場所・長い目で見た時のお金の運用・リスクとか、長期的なことへの関心が高まった。

3. 運動する習慣ができた

週に1回テニススクールに通うようになった。 最初は生涯スポーツとして出来そうなもので、あんまりリソース(プレイするのに必要な人数・お金)を必要としないものという後ろ向きな理由で選択したw 少しずつうまくなってきてはいるので、来年はもうちょい頑張ろうかな。

2015年にあったこと

事実の羅列です。
情報ソース cybouzのカレンダー、日報、 google calendar, Facebook.

1月

  • PCカジュアルゲームjQuery + CSS3をenchant.jsに書き換え(リファクタリング)案件を開発してた。
  • 上記アプリがスマホの検証端末で動作しなさすぎて辛目、クライアントサイド詳しい人に聞きながらチューニング業を頑張るなど
  • 探偵界隈で有名な殺人事件解決イベントミステリーイベントに参加

2月

3月

4月

  • 役所に婚姻届を提出し、入籍した。
  • エンジニアとして1つ上のグレードに昇級した。(部下が出来たとかそういう話ではない)
  • 新規サービス作成チームに異動した。
  • スマホの新規モバイルウェブのポイントサイトをゼロイチで設計した。
  • 会社の自主制作TシャツPJを行った。
  • 新規サービスのモバイルウェブのフロントエンドを色々プロトタイピングした。
  • 部署に新卒2人きた。
  • jsのフロントエンド周りのモダンな開発とかについて色々勉強した。

5月

  • 新規サービスのモバイルウェブのフロントエンド開発。
  • LABのアプリの運用自動化などを開発していた。

6月

  • 新規サービスのモバイルウェブのフロントエンド開発。
  • 新規サービスをリリースした。
  • 週1のテニススクールに通い始める。

7月

  • 新規サービスの広告出稿に必要な機能を開発したりした。

8月

  • 新規サービスの新たな広告出稿経路を模索していた。(出稿に使っていたAdwordsのアカウントがBANされた。プラットフォーマーに怯える)
  • YAPCのスタッフをした。
  • 探偵界隈で有名な殺人事件解決イベントミステリーイベントに参加。チームから優秀探偵賞を輩出した。
  • 粛々と結婚式の準備など。

9月

  • 新規開発したサービスは獲得がうまくいかずクローズ決定した。
  • パフォーマンスチューニングコンテンストのISUCONに参加した。
  • 東証一部の上場記念セレモニーに参加。
  • 粛々と結婚式の準備など。

10月

  • 異動前の部署に出戻りした。
  • 結婚式を挙げた。
  • 10年以上運営する会員サービスのセキュリティリスクを低減するための機能を実装していた。

11月

  • ボランティアで関わっているNPOのクリスマスイベントのアンケートCMSを作成した。
  • インフラインターンのsunriseにサポーターとして参加。
  • 結婚式2次会幹事プロジェクトをしてた。
  • 10年以上運営する会員サービスのセキュリティリスクを低減するための機能を実装していた。

12月

  • セキュリティコンテストSECCONに参加した。
  • 会社のサークルでテニス合宿を運営した。
  • 結婚式2次会幹事プロジェクトをしてた。
  • 10年以上運営する会員サービスのセキュリティリスクを低減するための機能を実装していた。
  • ボランティアで関わっているNPOがモンストとコラボしたクリスマスイベントに参加した。

こうして列挙すれば2015年も色々経験出来たよい年だとは思うのですが、 正直マンネリ化してきた部分も多分にあると自分で感じるので 2016年は新たな体験を獲得していくために、意識して変化を狙っていこうとおもいます。