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

HANDS LAB

HANDS LAB ENGINEERS BLOG

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

ハンズラボの書籍購入補助制度について


こんにちは、POSチームの人見です。
2月で晴れて入社1年になりました。
もうベテラン社員ですので、ハンズラボのことは何でも聞いてください。

 

ところで皆さん、本屋は好きですか??
私はアマゾンで本を探すことが多くなりましたが、
やっぱり本屋が好きなので、
外に出かけると必ず本屋に寄ってぶらぶらします。

 

本屋さんを歩いてると欲しい本がたくさん見つかるんですけど、
やっぱり気になるのはお値段。
特に技術書だと結構高いんですよね。
そんな悩めるあなたに、
ハンズラボの書籍購入補助制度を紹介したいと思います。

 

その名の通り、自由に本を買って良い制度です。
感想文や申請などは必要なく、制限もありません。
本屋で気になる本を見つけたら、すぐ買って読むことができます。

 

浮いたお金で

お気に入りのカフェに入って、
コーヒーの香りを楽しみながら、
買ったばかりの本をゆっくり読む

という最高に贅沢な時間を過ごすことができます。

 

そんな優雅な社員がいるかは置いといて、
ハンズラボの本棚を覗いてみました。

 

ぐちゃぐちゃに見えるのは今日たまたまです。

 

WEB+DB PRESSはもちろん購読しています。

他にも有名な技術書はだいたい揃ってると思います。

 

あとはこんな本も、、、

みんな大好きダーリンは外国人。

 

これは私が入社してすぐくらいにこっそり買いました。

 

気になる。。。
置かれた経緯とか考えるとある意味文学ですね。

 

ストレングスファインダーもありました。
Web上でテストを受けると、自分の5つの強みがわかるやつです。
ちなみに私は強い順から
戦略性、未来志向、最上志向、ポジティブ、達成欲
でした。
みんなでやるとめちゃくちゃ盛り上がるのでおすすめです。

 

 

 

えー、まだまだありますがまたの機会に。
ぜひ会社見学にいらしてください。

ということで、今回はハンズラボの社員は好きな本が買えて、
しかも優雅にカフェで読んでいたりしてるかもしれないという話でした。

 

最後に個人的に面白かった本を書いて終わろうかなと思います。

ビジネス系だと絶対外せないのはこれです。

ゼロ・トゥ・ワン 君はゼロから何を生み出せるか

本当に何回読んでもおもしろいです。

 

そしてグーグル

How Google Works (ハウ・グーグル・ワークス) ―私たちの働き方とマネジメント
ワーク・ルールズ!―君の生き方とリーダーシップを変える

ここまで突き詰めて会社について考えられるのはさすがグーグル。

 

 

もちろん我らがピクサーも

ピクサー流 創造するちから――小さな可能性から、大きな価値を生み出す方法

アメリカのピクサー本社に遊びに行きたい方はハンズラボに入社するのが近道です。

 

 

ものすごく良い話がたくさん載ってる本。

僕が電通を辞める日に絶対伝えたかった79の仕事の話

新卒研修これ一冊でいいんじゃないかな?だめかな??

 

 

小説だと

まず映画好きなハンズラボの人におすすめな本
キネマの神様

これもおすすめ、ピアニストの話です。
蜜蜂と遠雷

私クラシック音楽知らないんですけど、頭の中に音楽が流れてきました。

もっと恩田陸さんの不思議な世界観を味わいたいなら

麦の海に沈む果実 (講談社文庫)

 

あとは壮大な映画をみているような感覚になる本

ジェノサイド 上 (角川文庫)
ジェノサイド 下 (角川文庫)

少し重いシーンもあるので注意です。

 

ところ変わって歴史系だと

軍師の門 上
軍師の門 下

私ぜんぜん歴史詳しくないんですが最初から最後までおもしろかったです。
詳しい人はもっとおもしろいはず。

 

恋愛を学びたい若者へ

イニシエーション・ラブ (文春文庫)

恋に悩める若者よ、何も聞かずにただこれを読むのです。

 

マツコさんの本

デラックスじゃない (双葉文庫)

最初の数行だけでマツコさんの世界に引きこまれます。

 

コピーライトといえば

(ぶんこ版)糸井重里の萬流コピー塾 (文春文庫)

ゆるいようで、しっかりしてる。ものすごく勉強になる本。

 

 

今更ながら、これ無限に書けるやつだと気づいたので、この辺で。

なんの話でしたっけ?

ではでは読書ライフを楽しみましょ〜!

 


CodeStar使ってみた


こんにちは。2018年1月にハンズラボにジョインした北野です。

今回Node.jsで動かすAWS LambdaのCI環境構築を担当することになりました。

せっかくなので東京リージョンで利用できるようになった
CodeStarを使ってLambda(Node.js)で動くWebアプリケーションのCI環境を作ってみたので紹介します!

構成イメージ

システム構成イメージ

下図のようなシステムを開発するためのCI環境があっさり構築できます。

CI環境イメージ

CodeStarダッシュボード

CodeCommit&CodeBuild&CodePipeline

準備

CodeStarプロジェクトを作る前にちょっとだけ準備が必要です。

CodeStar関連

CodeStarの機能を使えるようにIAMユーザーの設定をします。

  • IAMユーザーでCodeStarフルアクセスを許可します。

  • IAMユーザーでAWSマネジメントコンソールへのアクセスを許可します。

CodeCommit関連

CodeCommitのGitリポジトリにsshでアクセスするための設定をします。
すでにCodeCommitへssh経由で接続できている方は不要です。

  • ローカルマシンでssh keysを生成します。

  • IAMユーザーの認証情報にSSH公開キーをアップロードします。

  • ローカルマシンの.ssh/configファイルにCodeCommit用のHostを追記します。

やってみた

まずはCodeStarのプロジェクトを開始します。

CodeStarで最初にプロジェクトを作成した時にサービスロールの作成を求められます。
「はい、ロールを作成します」を選択します。
(※このサービスロール作成にはIAM管理ユーザーまたはルートアカウントとしてサインインする必要がありますので注意してください。)

CodeStarを最初に利用したときに追加情報の入力を求められます。
ユーザ名とE-mailを入力して「次へ」を選択します。

(参考)入力した情報はプロジェクト作成後にプロジェクトチームのメンバー表示で使用されます。

開発環境に合わせてテンプレートを選択します。今回はNode.jsとLambdaでウェブアプリケーションを作成するテンプレートを使用します。

プロジェクト名の設定とリポジトリを選択します。今回はCodeCommitを使用します。

「AWS CodeStarが、お客様に代わって…」をチェックして、プロジェクトを作成します。

数分でプロジェクトが作成できます。

デプロイまで完了した後にアプリケーションのエンドポイントにアクセスするとサンプルページが表示されます!

ソースの変更とデプロイ

ソースの変更が自動でデプロイされるところもやってみます。

コードの編集手順はCodeStarのダッシュボードから参照することができます。

今回はコマンドラインツールで「git clone」します。

ページの文言をちょっとだけ変更しました。

これをcommitしてpushします。

pushするとCodePipelineが動きだし、Source->Build->Deployの順番で動作していきます。

デプロイが完了した後にエンドポイントにアクセスすると変更が反映されました!

感想

CodeStarを使用することでとても簡単にCI環境を作ることができました!
Node.jsとLambdaの知識をほとんど使わずに手軽にCI環境が構築できます。

自動テストをどうやって実行するのかとか課題があり、これだけでデプロイ環境が完璧にできるというものではありませんが、CI環境の足場を作るのにとても便利なので活用していきたいと思います。


受託開発をスクラムでやってみる


大雪予報で素直に喜べない年になってしまいました。
こんにちは、外販チームの鈴木です。

現在、小売業様の基幹システムの開発プロジェクトに参画し、
システム開発の日々を送っております。

受託開発ではありますが、スクラムチームでのアジャイル開発を行っており、
3ヶ月ほど経過したので感想をまとめておこうかと、記事を書くことにしました。

現在、チームとして実施しているスクラムイベント

デイリースクラム

毎朝、「前日にやったこと・今日の予定・困っていること」を報告しています。
スクラムの原則に従って、15分以内・スタンドアップで実施しています。

ToDo管理=ホワイトボード

ホワイトボードに付箋でタスクを貼り付けて「今何をしているか・何が残っているか・何が終わったか」を管理。

工数をポイントで管理

タスクの重さごとにポイントを振り、日数や時間ではなくポイントで工数・進捗を管理しています。

振り返り

2週間を一区切りとして、KPTを用いた振り返りを行なっています。

良くなったこと

コミュニケーションが増えた

デイリースクラムをしていることで、課題や悩み事があれば気軽に報告ができるため、
解決までに時間がかかることが少なくなりました。
また、気軽に報告・提案をしあえる環境ができているのがとても良いです。

設計・実装・テストのようなフェーズの区切りがない

機能単位で開発・デプロイができるようにタスクを分割して、
設計からテストまでを一貫して行うことができるようにしています。
「設計時にどうしてこう考えたんだっけな?」のようなことが発生しづらいです。

今後解決して行きたいこと

個人のスキルアップ

スクラムはあくまでもチームの生産性を高める方法のため、個人のスキルアップにはあまり使えませんでした。
別枠でスキルアップを考える必要があると感じています。

タスクが偏ってしまう

チームの生産性を上げるために、手の早い人が沢山のタスクを消化している事があります。
見かけ上チームの生産性が上がっているように見えるのですが、
個人に依存しているために今後を考えると良くないです。
また、タスクの見積もり精度によって見かけ上の生産性が上がったり下がったりも多く、
個人のスキルの標準化や、見積もり精度を上げることが必要だと思っています。

まとめ

まだまだスクラムチームとして稼働し始めたばかりですが、
一つのチームとしての生産性は確実に上がっていますし、
メリットデメリットがはっきり出ていて課題解決がしやすい開発体制だと感じています。
また案件の区切りがついた頃などに振り返ってみたいと思います。

【イベント開催のお知らせ】
2/1(木)、本ブログを書いた鈴木が登壇する「三つ巴☆テックナイト」を開催いたします!
ヴァル研究所、モビンギ、ハンズラボの3社で合同開催する技術イベントです。
詳細・お申し込みはconnpassページから。


Ethereum入門 〜さくさくマイニング体験〜


あけましておめでとうございます。POSチームの人見です。

2018年が始まりましたね。
2017年は2月にハンズラボに入社して、ものすごくインプットの多い1年でした。
今年はもっともっとわがままに興味のあることを突き詰めていって、
チャンスがあればハンズラボでサービス開発をしたいと思っています。

 

今年最初のテーマはブロックチェーンです。

今回はEthereum入門ということでプライベートネットを構築、マイニングと送金を試してみたいと思います。

 

Gethのダウンロード

まず、Gethを使ってプライベートネットを構築します。

https://geth.ethereum.org/downloads/
からGethをダウンロードします。

私はGeth 1.7.3 for macOSを使います。

 

Gethの設定

ダウンロードして解凍したgethファイルを「/tools/ethereum/Geth-1.7.3」 ディレクトリにコピーします。(ディレクトリはお好きなところで構いません。)

「/tools/ethereum/Geth-1.7.3」にPATHを通します。

これで準備完了です。

 

プライベートネットの構築

Genesisブロックの作成

「/tools/ethereum/Geth-1.7.3/home/eth_private_net」にgenesis.jsonを作成します。

 

初期化処理

成功すればSuccessfullyとでます。

Gethを起動

「Welcome to the Geth JavaScript console!」と表示されコンソールが起動されます。

 

 

マイニングと送金

次にマイニングと送金を試してみたいと思います。

 

アカウントの作成

まず、アカウントを2つ作成します。

アカウントの確認

マイニングするアカウントの確認

デフォルトではアカウント1になっています。

 マイニング

この状態でしばらく待つと残高が増えていきます。

残高確認

マイニング状態で放置しておくとどんどん残高が増えていきます。

送金

アカウント1からアカウント2に送金してみたいと思います。

 

残高確認

無事送金できていました。めでたし。

 

マイニングの停止

最後にマイニングを停止して終わります。

 

 

以上です。
意外と簡単にできるので、ぜひぜひお試しください。
これからブロックチェーンに使ったアプリケーションを開発していこうと思っています。
2018年も一緒に楽しんでいきましょう!本年もよろしくお願いいたします。


【Alexa】非エンジニアにもできる!Alexaスキル開発 〜「StoryLine」編〜


こんにちは、9月に入社したAWSチームの松本です。
AmazonEchoが発売して1ヶ月が経ちましたね。
招待メール、届いた方どのくらいいらっしゃいますでしょうか?

Echoに搭載されているAlexaの強みは、なんといってもスキルの数の多さ!
現在登録されているスキルの数は2万を超えており、
その数は今後もどんどん増えていくと思われます。
ハンズラボでもAlexaスキルを開発しました。 → 東急ハンズスキル

・・・

さて、Alexaスキルを開発する際、
そのユーザー体験を向上させるのに重要なポイント、それは…
「会話フロー」 です。

音声による情報のやりとりは、ちょっとした言い回しを変えるだけで
会話としてのスムーズさが劇的に向上することがあります。
そしてそういった言い回しの細やかな設計を行うには、繰り返しの微調整や
エンジニア以外の方の意見をいただくことが重要になるのではないでしょうか。

そんなとき、誰でも簡単に文言の修正ができるツールがあったら素敵!
ということで、先日 ハンズラボ Advent Calendar 2017 の12日目の記事で、
プログラム言語を用いずにAlexaスキルが開発できるツール
「StoryLine」をご紹介させていただきました。(※ただし英語・ドイツ語スキルの開発のみ)

紹介といってもスキル作成までの流れを淡々と書いた形になったのですが、
せっかく非エンジニアの方にも気軽にお使いいただける、直感的に操作ができるツールなので
もう少しマインドマップ部分の操作方法にも触れて、改めてご紹介したいと思います。

Storyline

https://thestoryline.io/

会話のスタート地点からマインドマップ形式で会話フローを作成していくと
Alexaスキルが出来上がります!

こちら、残念ながら今のところ対応言語が英語とドイツ語しかないですが、
英語は苦手…という方も安心!スマホの読み上げ機能を使って動かしてみることが可能でした!

事前準備

  1. Googleアカウントの用意
  2. Amazonアカウントの用意
  3. AWS開発者アカウントの用意(ASKを始めるところまで設定しておく

手順

Storylineの使い方について公式動画もあります(英語)

「+Create new」から新しい会話フローを作成します。
2.png

「Connect Coggle Mindmap」をクリック。
これで別サービスのCoggleというマインドマップ作成ツールと連携させます。
画面上はStorylineだけで完結しているのでCoggleとStoryLineを行き来する必要はありません。
3.png

「YES, ALLOW ACCESS」をクリック。
4.png

「Fact App」「Quiz Game App」・・・簡単なテンプレートが自動生成されます
「Create from Scratch」・・・自分で一から会話フローを作成します
今回は「Create from Scratch」を選択します。
5.png

AppName(会話フロー名)を決めます。後でApp一覧から名前を変更することも可能です。
7.png

この会話フローの言語を選択します。「英語(US)」「英語(UK)」「英語(インド)」「ドイツ語」から選択可能です。
8.png

そうすると自由に会話フローを生成できる画面になります。
グレーの部分にカーソルを合わせるとプラスボタンが表示されるのでクリックします。
9.png

そうするとブランチが出てきます。
英語スキルなので、適当に英語のセリフを入れてみます。
このとき、記号、図、フォントの太字斜体指定などができますが、Alexaの読み上げに効果をつけられるわけではないのでここでは使用しません。
10.png

入力規則などはこの「Cheatsheet」を見るとだいたいわかります。
例えば行頭を「//」で始めるとユーザーの発話の指定になります。
行頭が「==」で始めるセリフを複数行入力しておくと、Alexaがその中からランダムに1行選択し、セリフを話します。
11.png

ブランチをクリックするとクリックするとブランチのスタイルを選択できます。
ただし、無料プランでできるのは内側の円の中から色を選択するのみで、
外側の円からの色選択、ブランチの太さの指定などは有料プランになります。
ブランチの色を変更するとそのブランチより先の枝の方の色が一斉に変更されます。

ブランチを右クリックするとブランチの追加・削除・コピー・移動、コメント追加ができます。

ここからブラウザテストもできます。
12.png

「Start playing」で会話フローの「Start」の位置から自動再生、
プルダウンから会話フローの開始地点を指定することもできます。
ユーザーの音声入力シーンになるとマイク許可を求められるので承認します。
13.png

会話フローが完成したらAlexaスキルとして展開してみましょう。
「Deproy」をクリックするとAmazonアカウントとAWS開発者アカウントの登録画面になります。このとき、ASKを始めるところまで進めていないとデプロイが実行されないようなので注意してください。
14.png

「Deploy」ボタンの横に緑のチェックマークが表示されたらAlexaスキル作成完了です。
アマゾンアプリ開発者ポータルにスキルが作成されていると思います。
「テスト」を有効にするように促されるので、その他にも一通りスキルの設定をしましょう。

設定のポイントは呼び出し名を下記のように単語で区切った状態で指定することです。
造語だとなかなかうまく反応しません。
複数の言葉を組み合わせたものがいいと思います。

ここでの設定内容は「Deploy」ボタンを押すたびに元に戻るのでどう設定したかメモした方がいいかもしれません。
呼び出し名の調整以外は、設定しなくても実機テストは可能です。

英語版のスキルなので、実機でテストするには「alexa.amazon.com」に登録されているAlexa対応端末が必要です。
この一覧に先ほど作成されたスキルが表示されると思うので有効にします。
※同じ端末を英語スキルを扱う「alexa.amazon.com」と日本語スキルを扱う「alexa.amazon.co.jp」の両方に登録することはできないようです。
登録先を切り替えるとWifi設定からスタートすることにになりますが、有効にしたスキル情報などは切り替え後も保持されます。

StoryLineは、画面右下の「Conversations」から気軽に問い合わせできる点もよかったです。
アカウントを自分で削除することができないため、ここから依頼したのですが、
対応してくれたスタッフは非常に気さくで対応も結構スムーズでした。

以上です。
今回は英語版スキルの開発ツールでしたが、日本語対応のスキル作成ツールも使ってみたいですね!

参考

音声アプリ戦国時代の救世主?プログラミング無しでAlexa Skillが作れる「Storyline」
【祝Alexa日本上陸】とりあえず日本語でスキルを作ってみる
開発中のAlexaスキルを実機テストする方法