プロクラシスト

今日の寄り道 明日の近道

Amazonプライムデーの目玉『Amazon Echo』と周辺機器を深掘りしてみる!

こんにちは、ほけきよです。

プライムデー、 Echoの価格がかなり気合入っていますね。こういうときに、ぜひ手にしておきたいところです。

でも実は、単体だけでなく、いろいろな周辺機器とセットで買うともっとお得になったりします。 今回は、Amazon Echoについて少し深掘りしてセール情報を探っていきたいと思います。

Amazon Echoの使い方と特徴

Echoには3種類あります。それぞれに、特徴があるので、今回の割引率も含めて表にまとめてみます。

シリーズ 値段 特徴
Amazon Echo Dot 5980->2980(50%OFF) 持ち運び便利、micro usbで動く。音質はいまいち
Amazon Echo 11980->7980(33%OFF) デザインが一番おしゃれ。音質も良くバランスが良い
Amazon Echo Plus 17980->11480(36%OFF) でかい。低音の響きはやはり抜群

個人的に使いやすいのはEcho Dotですかね。下記のようなモバイルバッテリを使えば、場所を選ばずどこでもつながるのも魅力的です。

魅力的な周辺機器

もちろんEcho単体でも十分魅力的なのですが、他のものと組み合わせると更に便利になります。

今回は周辺機器のセールや、セットで更に安くといったプランもいくつかありますので、それらを紹介します!

音声で照明のコントロール! Echo dot + Hue

Echoを買ったらまず考えるのが家電との連携だと思います。 Alexaと呼ばれるAmazonのAIエンジンを用いて、声だけで様々な家電と連携できます。

その一つがこのHueという照明デバイス

音声入力で、ON/OFFや明るさの調整が可能です。

価格は15947円->9433円

40%以上も割引されていてお得です。どんどんスマートホーム化を進めて行くのもアリですね。

ちなみに、Alexa対応しているデバイス一覧は、下記ページにまとまっていますのでご確認ください。ルンバも対応しているのがあるのですね!

普通、Echoを使って音声コントロールをしようとすると、それ専用のデバイスが必要となります。

Hueのようなデバイスがあれば話は早いのですが、必ずしもそのような商品があるとも限らないわけです。

そこで登場するのがこのTP-Link

コンセントの差込口にこいつを差し込むだけで、Echoと連動し、音声でのON/OFFが可能になるというものです!!とても便利で、汎用的ですね。

驚くべき価格は9841円->4480円

なんと通常時のEcho1個の値段よりも安いのです。明後日以降買うくらいなら、セットで買っておくのが良いのではないでしょうか。

EchoとEcho Plusも電源レスに!

Echo Dotにモバイルバッテリーがあることは知っていましたが、Echo/Echo Plusは、出力が大きいため、モバイルバッテリーはないと思っていました。

しかし、探してみるとどうやらあるみたいです。しかもかなりお手頃価格

価格も 9,999->5,555となっているため、Echo Dotのバッテリーとさほど変わりません

  • 10200mAhの大容量で、Echo6-10時間の動作保証
  • USB端子があり、スマホの充電器としも動作できる

これだけ持つと、停電時などに予備電源としても利用できますね!

Alexa対応イヤホン/スピーカー

実は、AmazonのAIツール「Alexa」を搭載できるのは、Echoだけではありません。*1

音質の良いメーカーで、Alexaが搭載されているスピーカーや、インカム的に使えるイヤホンなどを探してみました。

ONKYO スマートスピーカー P3

  • ONKYOということで、音質の評価は高い
  • 30,110->9,800と大幅な割引
  • 使い勝手(認識精度等)は本家Echoに劣るとの声も

選択肢の一つとしてではないでしょうか

Jabra Elite 65t

※今回のセール対象ではないですが、10%引きで売られています (24,980->22,600>

  • 北欧生まれのおしゃれなデザイン。高機能イヤホン
  • Alexa連携ができる

イヤホンなので、わざわざスピーカーに近づかなくても音声認識ができるのがウリです。しかし、現状アプリが英語のAlexaのみ対応となっているため、使う際には注意が必要です。

7/26にはEchoシリーズに新たなラインナップもあり

実は、このセールが終わってから10日あまり立つと、Echoの新シリーズが発売されます。

www.youtube.com

画像つきのスマートスピーカー『Echo Spot』 見た目もおしゃれで、購買意欲をそそります。

カメラとの連携などもできて、応用の幅が広がりそうです。

今はまだ予約段階です。欲しい人は早めに予約しておきましょう!

まとめ

いかがでしたでしょうか。

主役はEchoかもしれませんが、それを引き立たせるたくさんの周辺機器、 Echoに取って代わろうとするスピーカーやイヤホンなども沢山あります。

勢いがあるAmazonだけに、Echo Spot発売以降も今後も様々な仕掛けを売ってくることでしょう。

また、エンジニア目線でいうと、スマートスピーカーは自分でもハックができるので、とても楽しいです。

興味があるかたは、ぜひ購入を検討してみてください。ではでは!

*1:技術的には、AWS上にあるLEXという人工知能サービスを用いているのだと思われる。ので、それを用いてデバイス連携すればEcho以外もスマートスピーカーにできると思われる。

プライムデーに向けて、タイムセール用商品カードを作ったよ!(テストページ)

こんにちは、ほけきよです。

いよいよプライムデーが近づいてきました!!

www.procrasist.com

いやはや、楽しみですね。お祭り騒ぎになりそうです。

せっかくのお祭りなので、今年は少し遊んでみることにしました。 なんか作りたいなと思って、

javascriptを勉強中

最近、いろいろあってjavascriptを勉強中です。なので、いい練習機会になると思って、プライムデー専用の商品カードを作ってみました。

カードがこちら(デモ)

見方はこちら

f:id:imslotter:20180715025533p:plain

ポイントは

  • 必要な情報をなるべく簡潔に載せる
  • 直感的に、視覚的に把握できるようにする

あたりです。bootstrap4を使い、カードタイプにしてみました。 実際はこんな感じ*1

3,000円
49.8%OFF!!
  • ちょっとしたスペースにもピッタリ
  • リーズナブルな価格
  • モバイルバッテリーを買うとどこでも持ち運べる!
  • 8,000円
    33.2%OFF!!
  • おしゃれなスマートスピーカー
  • フェルトのスピーカなので、部屋のインテリアにも!
  • 今ならxxx%OFF!
  • 15,200円
    0.5%OFF!!
  • 電子書籍リーダ
  • Amazon Kindleとの連携が密
  • 長寿命!バッテリーが数週間持つ
  • 3,480円
    30.1%OFF!!
  • prime videoをTVにつないでみられるスグレモノ!
  • アプリによる拡張でYouTubeniconico動画とも連携
  • マイク内蔵音声による操作も可能
  • 技術詳細

    少々技術についても。

    • テンプレートはbootstrap4がメイン。ちょこちょことcssを当てる(画像のhoverとか)
    • 商品カードで、valueに時間をもたせている。idにamazon商品idをもたせている。
    • classに"timer "を追加し、jQueryでカウントダウン。idが一意なので、すべてのカードに非同期的なカウントダウンが可能。valueを読み取って、現在時刻との差分を取る
    • いちいちhtmlを書くのは面倒なので、pythonで半自動処理。商品画像URLのスクレイピング/割引率計算etc...はバックエンドで自動抽出
    • 記述するアイテムリストの変更差分を少なくするために、csvにて商品シートを管理(商品名, ID, 訴求ポイントなどを管理するシート)
    • webサービス化してみたかったけど、いろいろと考慮することが多すぎて時間内では断念。時間があるときにするかも?

    参考までに、時刻カウントダウンのスクリプトを載せておきます。javascript勉強しているところなので、もっと良い書き方あればご指摘ください。 文法とか、valueの使い方とかあっているかは知りませんが、とりあえず動いています。

    <script type="text/javascript">
        $(function() {
            countDown();
        });
        function countDown(obj) {
            obj = document.getElementsByClassName("Timer");
            var startDateTime = new Date();  
            for(var i = 0;  i < obj.length;  i++){
                var endDateTime = Date.parse(obj[i].getAttribute("value"));
                var left = endDateTime - startDateTime;
                if(left<0){
                    left = 0;
                }
                var a_day = 24 * 60 * 60 * 1000;
                var h = Math.floor((left / ( 60 * 60 * 1000))) ;
                var m = Math.floor((left % a_day) / (60 * 1000)) % 60 ;
                var s = Math.floor((left % a_day) / 1000) % 60 % 60 ;
                var id = obj[i].getAttribute("id");
                $("#"+id).text("残り : "+h+":"+m+":"+s);
                }
                if(left<3600*1000){
                    document.getElementById(id).className = "btn btn-danger float-right badge-pill Timer";
                }
            setTimeout('countDown()', 1000);
        }
    </script>
    

    まとめ

    javascriptを触れるようになると、また表現の幅が広がりますね。きちんと勉強しようと思いました。

    こういうの作っていたら(特にデザインのところ)、細かな修正が無限にできるので、キリが無くなります。まだ直したいところはいくつかあるのですが、、

    とりあえず月曜日まではまだ時間があるので、もうちょっと気になるところを直して実際に使いたいなと思います。

    プライムデー楽しみましょう!ではではっ

    *1:動作確認も兼ねています。

    【AWS, 統計, デザイン, ...】上半期に買ってよかった技術本たちの動機と感想!

    こんにちは、ほけきよです。

    早いもので、2018年も半年が経ちました。

    この上半期、転職して新しいタスクもかなり増えたので、色々と勉強しなければなりませんでした。 なので、今回は上半期に買ってよかった技術本をご紹介します!

    こんな技術本が良いよ!っていうのがある人は教えてください。

    AWS/コンテナ

    自社で運用しているサービスがAWS上にDockerコンテナを構築して動いています。

    AWS、名前は聞いたことがあるけど、動かしたことはない…

    状態からのスタートだったので、書籍、qiita、クラメソブログ、ハンズオン、ウェビナーとかにで知識を獲得していました。

    合格対策 AWS認定ソリューションアーキテクト

    合格対策 AWS認定ソリューションアーキテクト - アソシエイト

    合格対策 AWS認定ソリューションアーキテクト - アソシエイト

    動機

    まずAWSとはなんなのか、から理解せねばならなかった。 ソリューションアーキテクト*1取りたいなと思ったので、初学のために購入

    感想

    • クラウドコンピューティングとはなにか?AWSとはなにか?から学べる。
    • よく使われるもの(EC2, RDS, S3, ...)が網羅的にまとまっていた。初学にはとても良い。
    • これだけでソリューションアーキテクトを取るのはとても難しいらしいので、さらなる勉強が必要。

    AWSは日々進化するので、情報のアップデートはwebのほうが良いかもしれないと思いました。*2最新のサービスも使いたい!という人に関しては、この本をベースに、Amazonが開催するイベントでいろいろと聞きまくるのが一番いい気もします。

    AWS Lambda実践ガイド

    AWS Lambda実践ガイド (impress top gear)

    AWS Lambda実践ガイド (impress top gear)

    動機

    Alexaで遊びたかった*3のだが、どうやらlambdaとかいうAWSサービスを使うと良いらしいということが判明したので、辞書がわりにと、一冊

    感想

    • コードを書く以外の各種設定、他サービスとのつなぎ方などが、かなり勉強になった。
    • Pythonでかかれているのも、個人的にはありがたい*4

    Lambdaの使われ方がわかった。FaaS*5は、これから主流になっていくだろうから、勉強できてよかった。

    AWSによるサーバーレスアーキテクチャ

    AWSによるサーバーレスアーキテクチャ

    AWSによるサーバーレスアーキテクチャ

    動機

    自社サービスを見直す時期が来ているので、アーキテクチャのお勉強をしようと思ったら、このベストセラーを見つけた 動画配信サービスをサーバーレスで構築することを目標に、手を動かしながら進められる様。

    感想

    • データ量増加などのシステム面の根本解決は、やはりアーキテクチャの設計。
    • 用途に応じたいろんなアーキテクチャパターンが紹介されていて、なぜこうなるのかの説明もあるので実感を持って読めた。
    • 実際に使っていないと理解が難しいと思うので、運用してる人、本当にしようと思っている人が読むべきかな。

    AWSなどのクラウド環境は、物理マシンの用意/環境構築など、本来めちゃくちゃ気にしないといけないところが簡単にできる。アーキテクチャ設計に集中できる素晴らしさを理解して読むと、とても深みの増す一冊になると思った。

    コンテナ・ベース・オーケストレーション

    コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

    コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

    動機

    サービスをコンテナで管理している(Docker+Kubenetes)。

    工数低減のためにそうしてるはずなのに。コンテナやオーケストレータが分からなさすぎて工数が変わらないという現状を打破するために勉強

    感想(途中)

    • 結構情報量多い。読み応えはあるけど、読み進めるのには、かなり時間がかかる
    • コンテナ運用が主流に至った歴史が書かれていて、ナルホドとなる。
    • 実際にサービスを運用していないと、実感を持つのは難しいだろうなと思う。*6

    概念の理解をしながら読まないと意味がないので、実際に手を動かしながら、ゆっくり読み進めていきます。

    統計/機械学習(初心者レベル)

    数をきちんと扱える。バズワードの出来ること、出来ないことをきちんと理解できる人を増やしたいと思い、課題図書選定のために読んでいた。

    この世で一番おもしろい統計学

    この世で一番おもしろい統計学――誰も「データ」でダマされなくなるかもしれない16講+α

    この世で一番おもしろい統計学――誰も「データ」でダマされなくなるかもしれない16講+α

    感想

    • アメコミ調のマンガ形式で進んでいくので、初学には読み進めやすい
    • 統計の専門用語を比喩しながら進めてくれるので、イメージに良い

    たまに、字だけ柔らかくして初学者を釣り、内容は専門用語のオンパレードみたいなパッケージ詐欺の統計本もあるが、これは内容もわかりやすかったと思う。実際に初学者にも好評だった一冊

    嘘を見破る統計学

    ウソを見破る統計学―退屈させない統計入門 (ブルーバックス)

    ウソを見破る統計学―退屈させない統計入門 (ブルーバックス)

    感想

    • 数式はあまり使わず比喩表現を用いた説明を徹底してくれていて、とてもわかりやすい*7
    • 普段扱わないレアな統計手法も出てきたりする。これを読めば、100m走の限界値が統計的に存在することがわかる!

    いろいろな統計手法がわかりやすく登場して、面白い。 とはいえ、初学は正規分布を理解するところからまず始めるべきだとも思うので、それができたあとに手に取る一冊かな。

    デザイン

    Google流資料作成術

    Google流資料作成術

    Google流資料作成術

    動機

    上司に勧められ買った一冊。Googleのデザインはおしゃれだし嫌にならない。

    感想

    • わかりやすい上に、超実践的。すぐに真似ができることが多い。
    • Googleのデザインがなぜ美しく見えるかがわかる。

    上半期、一番オススメの本を選ぶならこの一冊!ほんとにわかりやすい。 多分また記事を書きますが、ノウハウがいっぱい詰まった本なので、非常におすすめです。

    まとめ

    技術本、あと何冊かあるけど、書くの辛くなってきたのでとりあえずこのくらいにします!

    新しいことを学ぶと、新しいことができるようになる。とくに技術に関してはそれが顕著だと思います。 クラウドアーキテクチャ、コンテナ運用などは、馴染みが無くてハードルを感じた(今も少し感じている)けれど、 「なぜそんな技術が生まれたのか」がわかってくると、応用可能性が広がり、とたんに楽しくなってきます。

    上半期はそれを感じ始めたので、引き続き本を読み、技術を実践していきたいと思っています。ではでは!

    ちなみに、レビュー記事を書くのは読んだ本の復習にとっても良いですよ!

    *1:AWSのサービスをいろいろ組み合わせてサービスを構築、運用するために、必要な知識を見るための試験

    *2:8月に試験内容がupdateされるらしいです

    *3:【Alexa】ゼロから解説!Amazon Echoでメモアプリを作ってみた - プロクラシスト

    *4:普通はnode.js

    *5:Function as a Service

    *6:一年前の自分が読んでも、95%意味不明。

    *7:たまに家族の会話でスベっているところが見受けられたが、わかりやすさの代償ということで、、、笑

    Hannover Messe 2018探訪記

    f:id:imslotter:20180429202031p:plain

    こんにちは、ほけきよです。

    4/23-4/27まで、ドイツのHannover Messeという展示会に行ってきました。 初めて知ることもいろいろあったし、課題もいろいろ持ち帰ることができたと思う。

    探訪記と感想を。

    Hannover Messeとは?

    世界最大の製造業の展示会。 ビジネス目的で集まってくるお客さんがほとんどなので、その場で契約が発生することもざらにある。

    どのくらい世界最大かというと、ビッグサイト級の会場が20個くらいある感じ。 期間も5日間と長く、私は3日目にかかとにタコができました。 必ずスニーカーで行くことをお勧めします。

    ※2019年は4/1から4/5らしい。

    ドイツ

    展示会メインだったので、2時間くらいしか観光していないけど、普通の街並みもヨーロッパ感があり、とてもよかった。

    あと、プレミアムエコノミー、初めて乗ったけど超よかった。アレに慣れたらエコノミー乗れなくなるね。怖い。

    花粉

    これは本当に不意打ちだったのだが、ドイツに行ってからひどい花粉症に見舞われた。調べると白樺っぽい。

    絶望的だったのは、どこにもマスクを売っていないこと。ヨーロッパではマスクしていると重病人におもわれてめちゃくちゃ嫌な顔をされるみたい。それでも、いやな顔をされてもいいからマスク欲しかった。

    皆さんも行くときは気を付けてくださいね!

    ごはん

    おいしかったレストラン@ドイツを二件紹介する。

    Rotonda

    一件目はRotondaというイタリアン サラダからすでに美味。カルボナーラ、細い麺だったの、結構珍しいと思う。 お客さんがピアノを弾き始めたりして、とてもおしゃれな雰囲気漂うお店だった。

    Amici Miei

    二件目はイタリアンのお店。 ここ、肉もパスタもサラダもすべておいしい。 けれど、なんといってもおすすめはコレ!

    トリュフの香りと、チーズ、マッシュルームの塩気が絶妙に絡み合った絶品。 メニューにないらしいので、この写真を見せればいいと思う。

    また、軽食でいえばBalzac Coffeeのアボカドラップはとてもおいしかった。毎朝食べていた。

    感想

    デモの見せ方

    特にIT界隈だと、webデザイン、UIにとても気合を入れているところが多かった。ダッシュボードをきちんと作り、いろいろなデータを一挙にみられるようにする。デモに出すのであれば、まずは足を止めてもらうコトが大事なので、きちんと作っておいたほうが良いなと感じた。今度JSのダッシュボードライブラリ触ってみよう...!

    ちなみに、ロボットもド派手な展示が結構ありました。これとかすごかった。

    業界や英語をきちんと知らなければいけない

    IoTなんて、どこの企業も表層的には一緒の構想になるはずで、技術者としては根幹となる技術についての質問や議論ができるようにならないといけない。これはかなり難しい。

    英語もわからないし、業界のスタンダードもあまりわかっていない状態で臨んだので、会話の中で得られる情報の質はあまり高くなかった気がする。

    良い情報を得るには良い質問が大事だよね。語学力と質問力鍛えねば。

    大企業とIoT

    名だたる巨大企業が展示を行うHannover Messe。大企業は自分たちのできることを掲げ、何をやるのかというパートナーを探しているようだった。

    小さな企業は観点と素早さで勝負を仕掛けていかなければならん。

    心理障壁との闘い

    ここも今後の大きな争点になると思う。

    実際に導入していくうえで、変革を嫌う現場の人の心理障壁をいかに下げられるかは大事。

    ラインの完全自動化やラインの可視化など、大きな改革は大きな効果が期待されエルガ、初期導入コストがかなりかかるので、それを浸透させるためのUIや、想定効果の説明はめちゃくちゃ大事になるだろうなと感じる。

    まとめ

    こまかな技術的なコトはまだまだ書き足りないけど、こんな感じ。結構考えさせられることの多い、いい展示会になりました。

    来年も行きたいな、イタリアンを食べに。

    【Alexa】ゼロから解説!Amazon Echoでメモアプリを作ってみた

    こんにちは、ほけきよです。

    Amazon Echoが一般発売になりましたね。 これで、だれもが簡単にスマートスピーカーに触れられるようになったわけです。

    スマートスピーカーが手に入ると、することはただ一つですね。 そう、ハックです。 自分でいかようにも操作できるようになるので、Smarter, SmartestなAmazon Echoに仕上げましょう。 今回は、Amazon Echoをハックする方法を、ゼロから説明しようと思います。

    今回は、こんな感じのアプリを作っていきます。(画質音質荒くてスミマセン!)

    www.youtube.com

    それではいきましょう!

    Amazon Echoとは

    Amazonが出しているスマートスピーカーAmazon Music等、Amazonの持つサービスと密に結びついているのが良きポイント。

    3種類のラインナップがある。三者三様なのでお好きなのをどうぞ。

    シリーズ 値段 特徴
    Amazon Echo Dot 5980 持ち運び便利、micro usbで動く。音質はいまいち
    Amazon Echo 11980 デザインが一番おしゃれ。音質も良くバランスが良い
    Amazon Echo Plus 17980 でかい。低音の響きはやはり抜群

    また、Echoを持っていなくてもAlexa開発は可能です。

    Alexaとは

    Echoを賢くしている脳みそみたいなもの。ある意味スマートスピーカーの本体。 開発でさらに賢くもできる。

    登録しなければならない3つのサイト

    始めるにあたって結構混乱するのが、ここ。3つのサイトを使いながら開発をしていく。これがかなり面倒。 簡単に役割と特徴、登録方法を見ていく

    サイト 役割 登録方法
    Alexa設定ページ Echo購入後、初期設定する用の画面。後々、自分で作ったアプリの登録を行う。 こちらのセットアップ解説記事がとてもわかりやすい
    開発者コンソール(Alexa Skill Kit : ASK) Alexaをどう呼び出すのか、どういう命令を入力するかなどの辞書作りを行う。 公式テキスト6~9ページがわかりやすい
    AWSコンソール Alexaから入力された命令を処理する(Lambda)。 公式テキスト18~20ページがわかりやすい

    ※注 : 開発者コンソールにおいて、英語アカウントと同じemailとパスワードを使っていると、勝手に英語アカウントと紐づいてややこしいことになるので、違うPWにしておくこと。

    【開発】メモ帳を作る!

    まず読め!

    • ハンズオンに使うテキストは非常によくできている。今回の記事もこれに準拠する形で開発を進めているので、必ず読んだほうが良いとてもよくわかる
    • ただ、こまかいところはハマる可能性があるので、一度ハンズオンに行くのがおすすめ。とてもよくわかる

    1. Skillを作成する

    【開発者コンソール(Alexa Skill Kit : ASK)】を使います。

    • まず、ASKにアクセス
    • 『スキル開発を始める』ボタンを押す
    • 『スキルの作成』ボタンを押す
    • スキルの名前を決める。また、スキル作成時のデフォルトを日本語にしておき、『次へ』を押す
    • 『カスタム』を選択し『スキルを作成』を押す

    するとこんな画面になる

    ここから、ようやくスタートです。

    2. Alexaに言葉を覚えさせる

    Alexaを呼び出すときの言葉は次のような感じです。

    Alexa、メモを開いて
    メモしたい内容は何ですか?
    明日はブログを書く、とメモをする

    コチラをざっと分解してみると以下の通り。

    言葉 名前 役割
    Alexa ウェイクワード Alexaを起動させる
    メモ 呼び出し名 Alexaに用意した命令(Intent)を実行させるトリガー
    メモしたい内容はなんですか? レスポンス Alexaからの返答。変数(slot)を入力するための準備
    {}とメモをする インテント Alexaに実行させる命令(関数)
    明日はブログを書く スロット Alexa入力時、自由に入力できる変数部分

    尚、すでに初めから入っているインテントもあります。例えば「Alexa、とめて」というと、Alexaの動作がストップします。これを「AMAZON.CancelIntent」といい、はじめから備わっています。

    • 呼び出し名 : AlexaにIntentを実行させる準備をする段階です。今回は「メモ」と入力します
    • インテントを作成します。 MemoIntentという名前で登録します。
    • インテントをどうやって呼び出すかです。様々なパターンに耐えられるよう、なるべくたくさん書いておきましょう。
    • {contents}はスロットです。変数もスロットタイプといって、日付や地域など、初めから特別な意味を持たせることもできます。今回のアプリの変数は特に意味を持たせなくても良い文字列なので、SearchQueryにしてみました。*1

    ここまでして、「モデルをビルド」ボタンを押します。入力側はこれでOKです!

    2. Lambda関数の作成

    続いて、「Alexaから入力が入った後の処理」を作る段階です。ここでは、AWSlambdaを使います。手順は以下の通り

    • AWSにログイン後、Lambdaを開く
    • 「1から作る」か「設計図」を選ぶ
      • 本記事をコピペするなら「1から作る」でOK
      • 自分でいろいろ作りたいなら「設計図」を借りる。Pythonならalexa-skills-kit-color-expert-python がおすすめ*2
    • 関数を作成をクリック
    • 関数名を記入(今回はmemoxa_blogとする)
    • ランタイムは選択肢の中から自分が好きな言語を選ぶ(今回はPython3.6)
    • 「テンプレートから新しいロールを選択」する
      • ロール名は適当に入れる(myAlexaRoleなどでOK)
      • ポリシーテンプレートは使うサービスにあったものを選ぶ(今回は「シンプルなマイクロハーネスのアクセス権限」にしてみた*3 )

    こんな画面になったら、「関数の作成」をポチ

    3. LambdaとAlexaを結びつける

    この段階でLambdaとAlexaはまだ連携されていません。連携するためには、先ほどのSkillのページから、Skill IDなるものをLambdaに覚えさせなければなりません。これは、下図の手順でやります。

    LambdaがどのAlexaスキルを実行するかを指定できました。

    3.5 Slackにメモを飛ばす方法

    さて、紐づけができたので、実際にコードを書いていきます。 が、その前に準備。

    今回はSlackにメモを飛ばすという機能を持たせたいので、webhookというものを使います。 slackにメッセージを送るためのURLを作るイメージですね。

    こちらのQiita記事が非常にわかりやすいです。

    こちらの記事ではslackwebというものを使っていますが、URLがわかってしまえば素直にPOSTするだけでもOKです。(詳しくは実装をご覧ください)

    ※注 : webhookのURLは他人にみられちゃダメです!

    4. コードを書く

    コードの中身を書きます。MemoIntentが呼び出され、Slotに入っている{contents}を聞き取ってslackに反映させるというコードを書いていきましょう。設計図に従っているので、大枠はすでに出来上がっています。ありがたい。

    slackのwebhook URLをtake_memourlの中に入れれば、コピペで動くはずです。

    コードをみる
    #coding : utf-8
    """
    This sample demonstrates a simple skill built with the Amazon Alexa Skills Kit.
    The Intent Schema, Custom Slots, and Sample Utterances for this skill, as well
    as testing instructions are located at http://amzn.to/1LzFrj6
    
    For additional samples, visit the Alexa Skills Kit Getting Started guide at
    http://amzn.to/1LGWsLG
    """
    
    from __future__ import print_function
    import urllib.parse
    import urllib.request
    
    
    # --------------- Helpers that build all of the responses ----------------------
    
    def build_speechlet_response(title, output, reprompt_text, should_end_session):
        return {
            'outputSpeech': {
                'type': 'PlainText',
                'text': output
            },
            'card': {
                'type': 'Simple',
                'title': "SessionSpeechlet - " + title,
                'content': "SessionSpeechlet - " + output
            },
            'reprompt': {
                'outputSpeech': {
                    'type': 'PlainText',
                    'text': reprompt_text
                }
            },
            'shouldEndSession': should_end_session
        }
    
    
    def build_response(session_attributes, speechlet_response):
        return {
            'version': '1.0',
            'sessionAttributes': session_attributes,
            'response': speechlet_response
        }
    
    
    # --------------- Functions that control the skill's behavior ------------------
    
    def get_welcome_response():
        """ If we wanted to initialize the session to have some attributes we could
        add those here
        """
    
        session_attributes = {}
        card_title = "Welcome"
        speech_output = "メモをしたい内容を教えてください"
        reprompt_text = "もう一度。"
        should_end_session = False
        return build_response(session_attributes, build_speechlet_response(
            card_title, speech_output, reprompt_text, should_end_session))
    
    
    def handle_session_end_request():
        card_title = "Session Ended"
        speech_output = "Thank you for trying the Alexa Skills Kit sample. " \
                        "Have a nice day! "
        # Setting this to true ends the session and exits the skill.
        should_end_session = True
        return build_response({}, build_speechlet_response(
            card_title, speech_output, None, should_end_session))
    
    
    def take_memo(intent, session):
        try:
            memo = intent["slots"]["contents"].get("value")
            url = 'URL for webhook'
            params = urllib.parse.urlencode({"payload": {"text":":memo:"+memo}}).encode("utf-8")
            f = urllib.request.urlopen(url, params)
            speech_output = "Slackにメモをしました"
        except:
            speech_output = "失敗しました"
    
        session_attributes = {}
        reprompt_text = None
        should_end_session = True
        return build_response(session_attributes, build_speechlet_response(
            intent['name'], speech_output, reprompt_text, should_end_session))
    
    
    # --------------- Events ------------------
    
    def on_session_started(session_started_request, session):
        """ Called when the session starts """
    
        print("on_session_started requestId=" + session_started_request['requestId']
              + ", sessionId=" + session['sessionId'])
    
    
    def on_launch(launch_request, session):
        """ Called when the user launches the skill without specifying what they
        want
        """
    
        print("on_launch requestId=" + launch_request['requestId'] +
              ", sessionId=" + session['sessionId'])
        # Dispatch to your skill's launch
        return get_welcome_response()
    
    
    def on_intent(intent_request, session):
        """ Called when the user specifies an intent for this skill """
    
        print("on_intent requestId=" + intent_request['requestId'] +
              ", sessionId=" + session['sessionId'])
    
        intent = intent_request['intent']
        intent_name = intent_request['intent']['name']
    
        # Dispatch to your skill's intent handlers
        if intent_name == "MemoIntent":
            return take_memo(intent, session)
        elif intent_name == "AMAZON.HelpIntent":
            return get_welcome_response()
        elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent":
            return handle_session_end_request()
        else:
            raise ValueError("Invalid intent")
    
    
    def on_session_ended(session_ended_request, session):
        """ Called when the user ends the session.
    
        Is not called when the skill returns should_end_session=true
        """
        print("on_session_ended requestId=" + session_ended_request['requestId'] +
              ", sessionId=" + session['sessionId'])
        # add cleanup logic here
    
    
    # --------------- Main handler ------------------
    
    def lambda_handler(event, context):
        """ Route the incoming request based on type (LaunchRequest, IntentRequest,
        etc.) The JSON body of the request is provided in the event parameter.
        """
        print("event.session.application.applicationId=" +
              event['session']['application']['applicationId'])
    
        """
        Uncomment this if statement and populate with your skill's application ID to
        prevent someone else from configuring a skill that sends requests to this
        function.
        """
        # if (event['session']['application']['applicationId'] !=
        #         "amzn1.echo-sdk-ams.app.[unique-value-here]"):
        #     raise ValueError("Invalid Application ID")
    
        if event['session']['new']:
            on_session_started({'requestId': event['request']['requestId']},
                               event['session'])
    
        if event['request']['type'] == "LaunchRequest":
            return on_launch(event['request'], event['session'])
        elif event['request']['type'] == "IntentRequest":
            return on_intent(event['request'], event['session'])
        elif event['request']['type'] == "SessionEndedRequest":
            return on_session_ended(event['request'], event['session'])
    

    大事なところは3箇所

    • welcome_responseに、はじめのAlexaからのレスポンス(今回はメモの内容)を書いておく
    def get_welcome_response():
        ...(中略)...
        session_attributes = {}
        card_title = "Welcome"
        speech_output = "メモをしたい内容を教えてください" #ココ!
        reprompt_text = "もう一度。"
        should_end_session = False
        return build_response(session_attributes, build_speechlet_response(
            card_title, speech_output, reprompt_text, should_end_session))
    
    • on_intentに、MemoIntentが呼ばれた時の挙動を書く
    def on_intent(intent_request, session):
        ...(中略)...
        # Dispatch to your skill's intent handlers
        if intent_name == "MemoIntent": #ココ!大文字小文字に注意!
            return take_memo(intent, session)
        elif intent_name == "AMAZON.HelpIntent":
            return get_welcome_response()
        ...(中略)...
    
    • MemoIntentで呼び出されたintentは辞書形式で値が入っているので、それを考慮した上で関数を作る。URL for webhookには自分がメモしたいslack URLを貼りましょう。
    def take_memo(intent, session):
        try:
            memo = intent["slots"]["contents"].get("value") #ココ!
            url = "URL for webhook" #URLは自分で設定!
            params = urllib.parse.urlencode({"payload": {"text":":memo:"+memo}}).encode("utf-8")
            f = urllib.request.urlopen(url, params)
            speech_output = "Slackにメモをしました"
        except:
            speech_output = "失敗しました"
    
    ...(略)...
    

    これを、Lambdaの関数コード欄にコピペします。

    5. Alexaのエンドポイントを指定

    Skill開発者コンソール画面に戻り、最後の仕上げをします。Alexaの命令をどこに送るかのエンドポイントの設定をします。

    • LambdaにはSkill IDを
    • SkillにはLambdaのARNを

    それぞれ登録することで、1対1で関数が紐づくわけですね。登録の仕方は画像の通り。 ARNも絶対に他人に見られないようにしてくださいね。

    6. 書いたLambda関数をEchoで使えるようにする

    最後、EchoとSkillをつなぎます。

    Alexa設定ページに行き、下図のように、作ったSkillを有効化しましょう。

    6. 実行

    最後に実行です。ご自身のEcho dotを使って、試してみましょう!

    Echoを持っていなくても、テストをする環境はあるようです。詳しくはコチラ

    まとめ

    以上、いろんなプラットフォームを使うので、なかなか混乱しがちですが、1から順を追って進めていけば完成するはずです。

    尚、自分のスキルを全世界に公開したい!となると、いろいろな制約があるようです。詳しくはこちらのページを参照。β版として自分自身で使うのとは別のことに注意しなければならないので、しっかりチェックしておきましょう!

    本記事を参考に、思い思いのスキルを使ってみてはいかがでしょうか?

    Alexaから広がる無限の可能性、ワクワクしますね!ではではっ

    *1:他のスロットタイプのが良いなどあれば教えてください。

    *2:自分のコードもこちらを参考にした

    *3:DynamoDB使うわけじゃないから別のでもOKかも

    冬季オリンピックでメダルを取れる国の条件を、重回帰分析で探る!

    f:id:imslotter:20180225094049p:plain

    こんにちは、ほけきよです。

    冬季オリンピック、今日で閉会式ですね。*1 連日、各国選手の美しいプレーには感動しています。

    データによれば、 日本は獲得メダル数過去最高らしいです!

    そこで、ふと気になることがありました。

    冬季オリンピックって、どういう国がメダルをたくさんもらっているのだろう??」

    今回は、過去のオリンピックのデータを用いて、冬季オリンピックの強い国の条件を大雑把に分析してみます!

    考えられる要因のリストアップ

    今回、冬季オリンピックに強い国になりうる理由を、4つ考えてみました

    気温

    やはり、寒い国が勝つのは、直感的にも正しそうですよね? 赤道直下じゃ雪なんか降らないですものね。

    今回は簡単に、各国の首都の年間平均気温を用いることにします。

    GDP

    スポーツが強いのは豊かな国だという話はよく聞きます。 日々の生活ができて初めて、スポーツはできますからね。

    豊かさを表す指標は様々あると思いますが、ここではGDP(国民総生産)を要因として挙げてみます。

    人口

    単純に分母が大きいと、才能ある選手が生まれる可能性が高いのでは??

    という仮説の元、人口もデータとして使います。

    開催地からの距離

    個人的な感覚ですが、「開催国はかなりメダルが多くなる傾向にありそうだし、開催地からの距離が近いほど、メダル増えるんじゃない?」

    と思っています。現に日本のメダルは長野と平昌の時に多いですし。

    • 距離の計算方法はこちらから取得

    分析

    手順

    下記手順で分析しています。(少し専門的な用語を含みます)

    • 1992年~2010年までのオリンピックを対象とする
    • 過去オリンピックでメダルを獲得した国だけを抽出する
    • 取得した各要因データを変数として扱うためつなぎ合わせる*2
    • 人口データとGDPデータの対数を取る
    • 各要因データを、平均と標準偏差で正規化する。
    • 重回帰分析を用いて、各変数の回帰係数を割り出す

    なお、メダルは金・銀・銅があるので、下記のようなポイントを割り振って計算しています。

    ポイント = 金*5 + 銀*3 + 銅*1

    GDPと人口のlogを取るのは、正規化の効果をちゃんと出すためです。例としてGDPを挙げてみると、左(log無し), 右(log有)でグラフの形が大きく異なることがわかると思います。

    f:id:imslotter:20180225015311p:plain

    平均と標準偏差で正規化する場合は、分布の形が正規分布に近い時に威力を発揮するものだと思ってるので、こういう処理をしておきました。

    重回帰分析とは

    一つの目的変数(今回はメダルポイント)に対して、複数の変数がどのようにかかわっているかを計算したものです。

    重回帰分析の仕組みはTJOさんの記事がわかりやすかったので、復習がてらちらちらと読みました。

    ただ、実行に関してはpythonのsklearnモジュールを使っただけです。

    from sklearn.linear_model import LinearRegression
    

    で、できますね。簡単!

    sklearnの使い方はこちらの記事などもご参考にしてください。

    結果 : どの要素が一番強いのか?

    分析の結果がこちらです!

    メダルポイントの式

    名前 係数
    気温 -24.3
    GDP(log) 31
    人口(log) -4.1
    開催地からの距離 2.1

    f:id:imslotter:20180225024206p:plain この結果からわかるのは、まずは気温が低いほど、冬は強いということですね。やっぱり気温は相当関係しているようです。 また、GDPも関係しているようです。豊かな国であるほどメダルも獲得しやすくなるのですね。

    しかし、人口や距離はあまり関係がないらしいです。むむ、予想が外れた。 なにか他にも要因があるのかな...!

    精度はどうなの?

    こちらが主要国のポイント状況。predictが回帰分析の式に当てはめた予測値。

    f:id:imslotter:20180225021245p:plain

    GDPが大きく影響しているので、中国はその伸びに従って上がっているのがわかります。USAは毎回安定のメダルラッシュ。 日本は、本来もっとメダルとれるのでは??と思っちゃいますね。

    また、次表のように、寒さが際立つロシアでは、GDPよりも寒さが大きな要因となって、メダル予想も高く出ていることがわかります。

    f:id:imslotter:20180225023938p:plain

    まとめ

    いかがでしたか?簡単な重回帰分析でも、いろいろとわかることはありますね。

    いろいろ工夫する*3ともう少し精度は上がりそうだなとおもうのですが、まずはこのくらいで!! 個人的には、各大会ごとに大きく変わる変数を見つけたかったです。それが開催地との距離かと思ったのですが、はずれちゃいましたね。。

    メダル獲得云々は関係なく、世界一を目指し全力でプレーする選手は素晴らしいですよね。 メダルを取れた選手も、惜しくも届かなかった選手も、本当に尊敬します!フィールド違えど、自分も頑張らないとな。

    なお、今回用いたスクリプトとデータはgithubに上げていますので、オリンピックデータに興味があればお使いください。 github.com

    だれか、もっと精度を上げてください!!ではでは

    *1:本当はいくつかオリンピック×データ分析ネタ、書きたかったんですが。。。とりあえず一つだけでもと思い。

    *2:正直これがめんどかった

    *3:気温を冬だけにするとか、ほかの要素を追加するとか...

    トヨタ生産方式は、なぜ製造業のバイブルとなったのか。

    f:id:imslotter:20180130193937j:plain

    こんにちは、ほけきよです。

    最近トヨタ生産方式を叩き込まれる機会があったので、自分なりに本を読んだり実践したりして、なぜすごいといわれるのか、どうすごいのか、なぜ製造業で使われるのか。を自分なりに理解してかみ砕いたので、内容をまとめてみました。

    トヨタ生産方式の起こり

    トヨタ生産方式(TOYOTA Production System : TPS)とは、トヨタが提唱する製造業でのモノづくりの仕組みである。

    戦後、トヨタが車を発展させたいというときに、アメリカと生産効率が天地ほど違うことに気づいた。そのうえ、アメリカは車文化が根付き始め、大量生産方式が採用された。いわゆる「たくさん作れば安く売れる」業界になっていた。一方で、トヨタはというと、誰が何を買ってくれるかもわからない状態で物を作らないといけない。いわゆる少量多品種生産。

    大量に作ったとしても買ってもらえなかったら儲からない。そして頭をひねって作り出されたのがトヨタ生産方式なのである。

    なので、トヨタ生産方式は、誤解を恐れずに言うと、「業界内で立場が弱い企業」の戦略とも言える。

    トヨタ生産方式の理念「原価低減」

    最も重要な前提が、「製品の価格は自分たちで決められない、買い手が決定する」というところ。利益 = 売値 - 原価 なので、利益を上げるためには原価を下げるしかないことになる。

    原価を下げるために大事なことが無駄を省くこと。在庫、労働時間、材料費...原価にかかわるムダを品質を維持したままで削っていく。特にトヨタ生産方式では、二つのムダに大きくフォーカスしている

    • 在庫を抱えるムダ
    • むやみな労働時間のムダ

    徹底的に利益を追求するのが、トヨタ生産方式。生産性が上がっても、在庫になってしまうと意味がない、必要なものをどれだけロスなく作れるか、を根底とした戦略である。

    在庫を減らすための、Just in Time方式

    いつ受注が来るかわからないのに、材料を大量に買い占める。それが結局在庫になってしまう。そんな問題を対処しようとに考案されたのが「Just In Time」。必要なものを、必要な時に、必要な量だけ作る方式である。

    どうすればそれが実現できるのか、ヒントはスーパーマーケットにあった。 スーパーマーケットは、だれが何を買うかわからない。なので、商品が少なくなったら足すという仕組みになっている。これを製造業にも応用した。

    つまり製品が一個組み立て終わったら、前に材料を取りに行くようにしたのだ。前の人ができたら後ろの人に渡すだと、作りすぎがおこるが、完成品ベースで後ろからさかのぼることで、在庫を極力減らせられるようになる。

    人には付加価値の高い仕事を。自働化

    もう一つが、自働化である。機械が自ら働くとは、どういうことか。

    製造業であってはならないことの一つがラインの異常による事故不良品の生産である。機械が自動になっても、これを人がいちいちチェックしていては労働力が減ったことにはならない

    異常事態のときは止まり、人に知らせられる機械じゃないと働いていることにはならない、最後までちゃんと面倒をみられるような機械じゃないとダメだ。というのがニンベンに込められている。

    トヨタ生産方式が輝ける「条件」

    データ分析業界で働いていた私は、ふと、「あの界隈でトヨタ生産方式で聞かないな」と気づいた。しばらく働いていると、両者の違いに気づいた。

    トヨタ生産方式には輝ける条件がある。

    私が思うその条件は、以下の3つ

    • 買い手と原料供給者が異なっている
    • 製造過程が多段
    • 在庫に賞味期限がある

    これら3つの条件と、データ分析系業界が少し相性が悪いのでは?と思う。*1

    買い手と原料供給者が違う

    いわゆる「仕入れ」である。

    データ分析業務などは、原料を握っているのはクライアント側である場合が多い。クライアントが必要だと思う量のデータなんだから、無駄はなく、もとから在庫など抱えることはない。それに付加価値をつけて提供するのがデータ分析業務である。

    その一方で、製造業は、発注をかけられたら、その分材料が必要になり、別の業者に発注をかける。必要量は各々が判断しないといけないので、判断を誤ると大変なことになる。 *2

    製造過程が多段

    次に、製造過程が多段であることがあげられる。 多段であればあるほど各段階に能力のばらつきが起きやすくなる。 能力の低いところがボトルネックとなって、無駄な在庫が増えてしまったりということがある。

    また、各過程でのばらつきは、後ろに行けば行くほど拡大していく。*3

    そんなときは、ボトルネックとなっているところを見つけやすくしたり、 ばらつきを抑えるように うまく調整するような仕組みが必要となってくる。

    在庫に賞味期限がある

    作ったものがいずれ必ず使われるのであれば、心配せずに在庫をどんどん生み出せばいい。暇なときに作り置きすればいい

    しかし、モノに賞味期限があるときは話は別である。食品は腐る。製造業でいえば、在庫が消化される前に注文の商品が変わるなど...

    そういうことが起こるようなときは、やはり過剰な在庫はムダになってしまうのである。

    なぜトヨタ生産方式が製造業のバイブルなのか

    もちろんシステム自体よくできていて、トヨタ生産方式が輝ける条件に製造業はほぼほぼ当てはまるわけだが、頭のいい人たちならこのくらいの仕組みはトヨタの社員でなくても思いつくのではないのか?と思ってしまう。

    数週間実際に体験して、なぜトヨタ生産方式が製造業ですごいといわれるのかが少しわかった気がする。

    • 言葉遊びのような用語
    • 誰にでもわかる平易な説明
    • 誰にでもできる平易なシステム

    これらには、作った人の強い哲学めいたものを感じる。

    言葉遊びのような用語

    トヨタ生産方式には、「トヨタ用語」と呼ばれる言葉がいくつも登場する。 印象的なのは、既存の言葉をいじった言葉遊び的な用語が多いこと。例を挙げると

    トヨタ用語 一般用語 違い
    自働化 自動化 機械がただ作業するだけでなく、人の負担が減るように動作すること
    可動率 稼働率 生産能力に対しての割合が稼働率、一日に生産しなければならない個数に対しての割合が可動率
    死料 資料 伝わらない資料は無駄な死料

    トヨタ生産方式が目指すべきところをたった漢字一文字で印象付けられる。このように、用語が洗練されているところが、強い。

    誰にでもわかる平易な説明/システム

    頭のいい人たちが行う説明や、作るシステムは、現場の人にとっては使いづらくなることがままある。しかし、トヨタ生産方式には、そのようなことがない。工場で働く人でもわかるように、わかりやすい言葉、何度やっても絶対に間違えないようにするシステムが出来上がっている。

    不必要な説明を省き、必要な説明だけ残す。複雑な工程をうまくシステム化して簡単に見せる。

    ぱっと見て、簡単に作れそうだと思うが、たぶんほとんどの人はまねできない。 上司に言われたことは、「手順はなるべく3つまでで完結させること。それ以上は忘れるから。」と。そういう思想が根付いている。だらだらと書くのは案外簡単である。本質を失わずに簡潔なものを作るのは、思った100倍難しい。

    トヨタ生産方式の説明には、ある種「引き算の美学」のようなものを感じる。

    まとめ

    トヨタ生産方式についてまとめてみました。目まぐるしく移りゆく時代の中で、トヨタ生産方式が古いという意見もあります。もちろんメインのシステムは60年も前に確立されたものなので、確かに現代に通用しないところもあります。ですが、トヨタ生産方式の核となるところは方式そのものではなく、「なんでトヨタ生産方式を編み出したのか」、「なんでトヨタ生産方式が広まったか」をたどったところにあると感じました。

    方式の丸暗記というよりかは、そのあたりのある種哲学的なところを理解すると、結構応用範囲も広がってくるのではないかと思います。

    そういう哲学に一貫性があるがゆえに、製造業のバイブルとなっていったのではないかと思います。内容もさることながら、いろいろと学ぶべきところは多いなと感じました。

    この記事だけでもかなり書きましたが、もっと興味のある方は是非、勉強してみてください。ではではっ

    トヨタ生産方式――脱規模の経営をめざして

    トヨタ生産方式――脱規模の経営をめざして

    *1:私が知らないだけでもしかしたら使われているところもあるのかもしれませんが、、、

    *2:たまにコンビニでお菓子を一桁多く発注して大惨事になったみたいなニュースをみますね。ああいう感じです

    *3:これをBullwhip effectという

    Google Homeを英会話の無料トレーニング教材にしてみる

    こんにちは、ほけきよです。

    我が家に、Google Home Miniが届きました!*1

  • Google Home Mini

    友人がプレゼントしてくれたものです。スマートスピーカープレゼントに最適だと思うんですよ。

    新しくて、興味はあるけど、よくわからないし、自分では最後のひと押し踏み込めない。

    けれど、あればかなり楽しいです。 この辺はAmazonのAlexaとかも一緒かな?

    もらってかなり嬉しかったですし、使ってみて更に感謝が深まった商品でした。

    で、こいつの効果的な活用法を考えて見たのですが、 英語の練習に使えないかなと思って、色々試行錯誤しています。

    今回は、スマートスピーカーの使用例の一つとして、参考にしてみてください。

    Google Home Miniの設定

    • 本体の電源をいれる
    • Google Home Appをいれる
    • Wifiとかいろいろちょこまかと設定する

    これで使えるようになります。ここで

    言語設定を英語にする

    ことで、英語の練習が自然にできるようになります。

    設定の仕方

    設定⇛デバイスで言語の選択ができます。

    More setting

    Device(デバイス)を選択

    Assistant Languageを変更

    利用例

    気温や時刻を聞く

    普段何気なく聞くことも、英語だとどうやって聞くんだろう?ってなりますよね? 大体のことは彼が答えてくれますので、どんどん聞いてみましょう。

    Hey Google! What is the temperature in Tokyo?
    50 degree.
    !?

    どうやらファーレンハイトで計算されるようです。セルシウスにしてくれェ.... でもまあ、海外の文化が分かるってことにしましょう!ちなみに

    What is the temperature in Tokyo in degrees Celsius?

    とかって聞くとちゃんと℃で返してくれます!*2

    アラームをセットする

    アラームをセットして!とかって言うのも、英語でどういうか、パッと出てこないものですよねぇ。

    • Wake me up at 7 o'clock

    とかで十分です。Google Home が勝手にアラームをセットしてくれます。 なお、アラームが鳴ったら

    Let me sleep 10 more minutes...!

    とか適当に言うと、彼が

    OK, I'll give you 10 more minutes.

    と言ってくれる。主従関係...

    寝起きでも、なんとかもっと寝させてもらおうと、意外と英語が出てくるものです。睡眠欲っていうのは素晴らしいですね!ところで、アラームが鳴っているとき、Google Home耳が遠くなる。結構叫ばないと反応しない。狙ってやってるのかな?

    ニュースを聞く

    Today's news?

    と聞くと、ニュースが延々と流れます。英語で。 普通のニューススピードなのでかなり殺人的な速さですが、慣れている人にはいい練習になると思います。なにせ延々と喋り続けてくれますから。

    ゲームをする

    もっとインタラクティブなコミュニケーションをしたいという方は、ゲームGoogle Homeとしてみるのもいいと思います!

    OK, Google. Let's play the game with me.

    と話しかけると、Google Homeがゲームをはじめます。

    実際まだあんまりやったことないのでゲームの内容はよくわかってないのですが、結構インタラクティブにコミュニケーションしながら進めていくゲームもありました。わりと難易度高めでしたがやってみては?

    英語学習用アプリ

    ベストティーチャーという、英会話スクールの会社が、Google Homeでの英語練習用アプリを無償で提供しています。

    japan.cnet.com

    TOEICの会話問題のような内容。現状は100問しかないが、今後のアップデートも考えられるので、是非やってみてはいかがでしょうか。

    尚、この練習をするには、一度Google Homeの設定を日本語に戻す必要があります。日本語にして「ベストティーチャーと話す」というだけで、アプリが起動されます。

    英語のまま話しかけると、、、

    OK google, I'll talk to best teacher.
    Sorry, I don't know how to help that yet...

    まあそうか、よく考えたら英語で英語学習アプリ開かないか。。。

    まとめ

    はじめは全然聞き取ってくれないので心が折れますが、次第に慣れてきて英語も出てくるようになります。 小さなことからコツコツとやってみるのが大事ですからね。スマホの設定を英語にするのと一緒の感覚です。

    いいのは、スピーキングの練習になるところ。発音良くなかったりすると聞き取ってもらえなかったりしますからね。

    お持ちの方はこんな使い方もしてみてはいかがでしょうか?ではでは!

  • *1:2ヶ月前

    *2:ちなみに、ファーレンハイトは25を引いて2で割ると大体セルシウスになるみたいです。50F ≒(50-25)/2=12.5℃

    【Soundpeats】コスパ最強のワイヤレスイヤホン!「Q12」レビュー

    こんにちは、ほけきよです。

    ワイヤレスイヤホンがほしいと思って、イヤホンに造詣の深いブロガーたぐちさん(id:taguchikun)にオススメイヤホンを聞きました。 そのときに紹介してもらったのがこのイヤホン

    私の要望は

    • ワイヤレス
    • 音質もそこそこ
    • 見た目もかっこいい
    • 値段がそこそこ(コスパ重視)

    でした。んで、3ヶ月くらい実際使ってみたんですが、一度なくしました。悲しい。 けれど、また同じイヤホンを注文してしまいました。それくらい使いやすかったので、ご紹介します。

    個人の感想ですが、ご参考に!

    概要

  • Soundpeats社
  • インナーカナル型イヤホン
  • ワイヤレス(Bluetooth接続)
  • 価格3000円前後、コスパ最強
  • SoundPEATS(サウンドピーツ) Q12 Bluetooth イヤホン 高音質 apt-X対応 マグネット搭載 マイク付き スポーツ ブルートゥース イヤホン ブラック

    外観

    外観はこんな感じ。色はブラック、ホワイト、レッド、ブルーの4色から選べます。

    このイヤホンの特徴は、イヤホンの背面同士が磁石でくっつくところ。

    バイスとつながっていないので、無くしがちなワイヤレスイヤホン。 でも、こういう風にくっつけられれば首から掛けるときにも心配が要りません。そして、絡まる心配もほとんどありません!!

    といいつつ、一回無くしているのですが...でもでも、なかったらその3倍は無くしてると思います!!w

    使用感

    装着感

    カナル型だが、正直フィット感は正直もう少しほしいところ。 単純にサイズが合っていないだけなのかもしれないが、つけたとき少し浮いているような感覚になる。

    といっても3-4時間ずっとつけていても気にならないほどには、耳になじんでくれる。

    操作性

    下図のようなボタンがあり、基本操作ができる。

    メインの操作は以下のとおり

    役割 操作方法
    起動 再生ボタン長押し(3~4秒)
    ペアリング 再生ボタン超長押し(6秒以上)
    再生/停止 再生ボタン
    音量調整 +/-ボタン
    曲送り +/-ボタン長押し

    どうやら最近バージョンアップしたようで、前はおっさんの声で「デンゲンヲ、オンニシマス」など操作の音声が流れていたが、 いまは外国人のお姉さんがスタイリッシュな声で「Power On」などと言ってくれる。すこしスタイリッシュな気持ちになれる。

    バージョンアップの効果はもうひとつあって、ボタンが高くなって、押しやすくなりました。これにより、押しミスが減った。


    比較 (左:昔 右:今)

    ワイヤレスの届く範囲

    遮蔽物がなければ、10-20m程度なら軽く届く 普通に家の中を歩き回るのにもほとんど困ることはないでしょう。

    遮音性

    音を聞く際のノイズキャンセリング機能はないが、インナーカナル型なので、音がしっかり耳に届く。周りがうるさくて聞こえないなんてことはない。

    音質

    私の耳は高音質かそうでないかを判断できないけど、おおむね満足はしている。しっかり高音も響いているイメージ。ただ、高級イヤホンとか、ウーファー付スピーカーと比べると、低音の響き(ベースやドラム)はもう少しといったところ。まあこの値段でこの音質ならすばらしいと思います。

    充電

    ワイヤレスの弱点のひとつである充電。

    音楽を鳴らし続けているとき、大体4から5時間くらいでバッテリー切れになる印象。8hはたぶん持たない。 音楽を流していないとき(待機状態)はの充電の持ちかなりよく、平気で2-3日放置していても使える。これもバージョンアップしてかなり持ちがよくなった気がする。

    なお、充電はmicroUSBで行う。2時間でMAXと、すこし時間がかかるので、聞いていないときはこまめに充電するほうがよいかもしれない。


    DC INからmicro USBを差し込む

    まとめ

    いかがでしたか? 3000円にしては、めちゃくちゃよく考えられていますし、とても使い勝手の良いイヤホンだと思います。

    この値段でこのクオリティ...ベストセラーになる理由がわかります。私にいたってはリピーターですしね。笑

    そこまで音にこだわるわけではないけど、いいものがほしい!という方は、ぜひ試してみてはいかがでしょう。

    ではでは!

    【Loctek】オシャレで快適なデュアルディスプレイ!モニターアーム「D8D」レビュー

    こんにちは!ほけきよです。

    ブロガーやプログラマの皆さんは、自分のデスクにこだわりを持っている人も多いかと思います。

    かくいう私も作業効率をUPさせるためデュアルディスプレイ*1なわけですが、やっぱり自分のデスク、スタイリッシュで効率的に行いたいですよね。

    デスクを快適に使うことが出来るモニターアームを入手したので、レビューしていきます!

    Loctek D8D

    今回紹介するのはコチラ

    ロックテックLoctek ガス圧式デュアルモニターアーム D8D

    概要とポイント

  • デュアルディスプレイモニターアーム
  • 30インチまで対応
  • USBポート付き
  • 価格は14000円程度
  • 私は27インチディスプレイ*2を二枚使っているので、2枚とも取り付けられるこのタイプを選びました。

    開封の儀

    届いたので、開封してみます。

    中身を空けるとこんな感じ。一つ一つビニールで丁寧に梱包されています。

    梱包を取り外すと、こんな感じ。他の記事ではキズや汚れありと書かれているものもありましたので、少し心配でしたが、私のはキズなどはありませんでした。

    こうしてみると結構重厚感がありますね!

    組み立て・取り付け

    組み立て・取り付けですが、二人で行うほうが良いと思います。モニターアームが重いので、一人でも出来なくはないですが、そこそこ苦労しました。

    デスクへの取り付けはクランプタイプグロメットタイプの二種類あります

    クランプ グロメット
    方法 机の端で挟み込む 机に穴を空けて挿す
    特徴 簡単に取り付けられる しっかりと固定される
    クランプのほうが簡単に取り付けられるので、位置がはっきり決まっていないうちはクランプで固定でいいと思います。

    机に固定が終わると、モニターの装着です。モニターに付いているネジを一旦外して固定しましょう。

    モニター背部の幅が装着可能な幅かどうかは、予めチェックしておきましょう。

    装着すると、こんな感じ!とてもスッキリ!!

    D8Dモニターアームのいいところ

  • 省スペース
  • 自在に動く
  • 便利なUSBポート
  • 利用前と比べて、ディスプレイの土台がない分、かなりデスクの上がスッキリとしました。

    また、自在にディスプレイを動かせることで、いろんな使い方が出来ます。例えば、画面を90°回転も簡単に出来るので、コードを書くとき、文書を読むときなど、縦長のほうが良いときなどは重宝します!*3

    このアームの真ん中にUSBポートがあるのもうれしいですね。USBメモリを装着したり、充電をする時など、いちいちデスクトップ側のポートを使わなくても良くなりました。

    モニターアームのイマイチなトコロ

    一つだけ、イマイチな点は

    • 左右のディスプレイをくっつけるには奥行きが必要

    なところ。


    (上から見た図)

    こんな感じで、くっつけるためには結構な場所をとるので、奥行きが必要になります。 構造上仕方ないのですけどね。どうしてもディスプレイをくっつけたい人は、机の間を空けるか、奥行きの大きな机で利用しましょう。

    まとめ

    モニターアーム、組み立てがめんどそうだなと思って、入手してからしばらく放置していたのですが、意外と簡単に取り付けられました。 前からほしいと思っていたので個人的に、とても満足です。

    • ディスプレイを快適に動かしたい方
    • 机をスッキリさせたい方
    • 机の上をオシャレに見せたい方

    などは一度検討してみてはいかがでしょうか?

    無くても生きてはいけるけど、あったらデスク作業がますますはかどります!是非検討してみては!ではではっ

    ロックテックLoctek ガス圧式デュアルモニターアーム D8D

    *1:片方がだいたいYouTubeな事は内緒。

    *2:Dell ディスプレイ モニター P2717H/27 インチ/IPS/6ms/VGA,DP,HDMI/USBハブ/3年間保証

    *3:ちなみにWindows10では画面回転のショートカットがあって、Alt+Ctrl+方向キーで簡単に回転ができます。

    頑張れ受験生!受験直前にするべき7つのコト

    こんにちは、ほけきよです。

    そろそろ大学受験シーズンですね。 これまで一年間、成績に伸び悩んだ人、成績が急上昇した人。それぞれでしょう。

    それでも、明日1年間受ける人のほとんどが自分の意思でその道を選び、努力してきたと思います。 遊びたい気持ちを抑え、頑張ったと思います。目標に向かって努力する人はかっこいいですよね!

    そこで今日は、本番まであと少し、そういう時に何をすればいいかを自分の経験を踏まえ書いてみます。 受験直前期に大事なのは問題をときまくるよりもメンタルコントロールと、凡ミス撲滅です。

    どうすれば気持ちを整えられるか、自身を持って臨めるかをまとめました。

    多くの人が、自分の実力を出し切れることを祈っています!

    1. 忘れ物チェック

    • 受験票
    • 鉛筆、シャーペンと芯、消しゴム
    • 時計

    など、絶対に忘れられないものだけは、試験当日にバタつかないように、必要な物はきちんと前日までに用意しておきましょう。

    2. 親や友達など信頼できる味方に弱音をはいておく

    本当に最後の最後、どうしても心落ち着かないときは、信頼出来る人に弱音をそっと吐きましょう。 その人はあなたの一年間をちゃんと見ています。そういう人の言う「大丈夫」に、根拠もないのに案外救われたりします

    また、自分を少しでも下に見ている人・嫌いな人とは話さないでおきましょうね。「嫌いな人とも付き合う」のは社会に出てからでいい。大一番の前に心がざわつくことになります。臆病な自尊心で上等!プライドを傷つけられないようなるべく近寄らないようにしておきましょう。

    3. 絶対解ける問題を解く

    本当の直前の問題演習は、解ける問題の復習に当てましょう。

    この段階で問題を解くのは弱点を克服するためではありません、安心するためです。今までに習ったことを反芻しながら、解けるという自信をつけてから試験に臨みましょう。英単語などもおすすめです。

    4. 腹痛と風邪に注意、体調管理

    体調は集中力に影響するので、なるべく万全な体制で臨みたいですね。

    • いつも通りの睡眠時間
    • 加湿やマスクを忘れずに
    • 試験の3時間前には起床
    • 油物はあんまり食べない

    などなど。わたしは緊張でお腹を壊しやすかったので、直前期は梅干しのおにぎりをずっと食べてました。胃腸に良いらしいと聞いたので!笑

    5. ゲンを担ぐ

    自分が試験前に行うと上手くいくというジンクスなどがある人はそれをしましょう。わたしの場合、試験前にエナジードリンクを飲むです。今でも大一番の前には続けています。

    お守りも効果的です。神様のご利益もありますが、例えば人からもらったものなら、「あの人が応援してくれている」という安心した気持ちにつながると思います。

    6. 今までの参考書とノートを積み上げてみる

    「かなり/まあまあ頑張った」とかだと、イメージしづらいので、努力を定量してみてください。 勉強記録をつけている人なら、1年で何時間勉強したか、とか。

    私のオススメはこの参考書とノートを積み上げることです。一年間って、かなりの勉強と演習を積んでるんだ。となると思います。

    写真を撮ってトップ画にしておくと、お守り代わりになるかもしれません。

    7. 4月に大学生の自分をイメージ

    センター試験に不安で悩むぐらいなら、4月以降の受かった自分を想像しておきましょう。 進む大学、入るサークル、出会う運命の人、挫折を味わう日々、挫折を乗り越えた研究成果など。 イメージの力は強大です。強い想いが、必ず良い方向に導いてくれるでしょう。

    頑張れ受験生!

    受験で実力以上のものが出ることはまずないです。 本番に強い人というのは、実力通りの力を出せる人です。

    実力は1年間の努力分。あとは集中力や緊張、体調などの要素次第です。 今まで通りの力を出し切れるよう、頑張ってください!応援しています。

    2017年の振り返りと2018年のテーマ

    こんにちは、ほけきよです。

    ちょっとアドベントカレンダーで燃え尽きていた&プライベートでバタバタしていたもので、更新が滞っていました。 新年一発目ということで、去年の振り返りと今年の目標的なものを。

    2017年の振り返り

    年が明けました。皆様今年もよろしくお願いします。 昨年は「放」をテーマにしていました。 自分自身を変え、新たな挑戦をどんどんして行くという目標は、ある程度達成できたと思っています。

    ブログでいえば、『技術×情報発信』ということで、プラグイン作ったり、自動記事作ったり、アドベントカレンダーしたり、色々しました。 この辺ふりかえって見ると、なんか楽しそうだな自分、、、という気になります。笑

    どれも楽しそうなので、覗いてみてください!

    また、オフ会に結構参加しました。こうやってブログを通じてたくさんの人と価値観に触れられたのは、自分の今後を考えるいい機会となりました。

    去年1年の教訓は

    • 特に必死で頑張っているときに出来た繋がりは、良縁なことが多い
    • 運がいいというのは、行き当たりばったりではなく、チャンスを掴める準備をすること
    • 自分の過去の意思決定を振り返ると、結構自分の価値基準や行動理念が見えてくる

    特に最後。結構やりたいことなんか無くて、適当に生きてると思ってたんですけど、案外一貫した基準があるんですよねー。私の価値基準は2つ

    • その選択が、振り返ったときに失敗しても「面白い」と思えるか
    • 自分が取りうる最大の難易度の場所か

    はっきりとした目標がない人、結構いると思いますが、振り返って見ると案外知らない自分がわかるかもですよ。

    2018年のテーマ:『届』

    今年は去年とまた環境がガラリと変わりました。

    今年のテーマはです。

    • 言葉を届ける : 英会話・マネジメント・プレゼン
    • 文章を届ける : 記事、執筆
    • サービスを届ける : webアプリケーション

    とかかな。ウェブアプリとか作って一発当てたい気もする。。。笑 *1

    人に言葉、文章、サービスを「届ける」ことを意識して仕事も趣味もブログも頑張ります。

    皆さんに面白いと思ってもらえるコンテンツを届けられるよう、またいろいろとネタを仕込んでいきますので、本年もプロクラシストをよろしくお願いします!

    *1:もちろん、技術メモについても引き続き書いていく予定です!

    PROCRASIST