Django もくもく会に参加しました!

7月7日(土)七夕の日にDjnagoもくもく会にスタッフとして参加したのでそのレポートです。

Djangoもくもく会とは

mogumogu-django.connpass.com

もくもく会とは言っても,しーーっんとしているもくもく会ではなく,質問や分からないところがあったら,その場で聞くことができる環境にしたい!と思っています.

主催者の@shinseitaroさんの意向で「もぐもぐ会」とサブタイトルのついたこの会。 実は、開催にあたっていろいろな出来事が連鎖したことによるものでした。

今回会場提供して頂いたSQUEEZEさんが毎月開催している「Pythonもくもく会」に参加した際に、業務でDjnagoを使っているという方に、Django本なら、@akiyokoさんの「現場で使える基礎Django」 の本がよいですよ!と教えていただきました。お値段1,300円で送料700円でしたが、業務でちょうどDjangoを使うことになったため、購入しました。これが本当に大変役にたったのです!

mokupy.connpass.com *1

その後、Pyladiesもくもく会にこの本をもっていったところ、参加者の方もDjangoをやっている方や、これから始めたいという人が何人かいたので、「送料払ってでも買う価値ありますよ!」とおすすめしたところ、同じく参加者の@shinseitaro さんが 著者の@akiyokoとお知り合いということで、その場で頼んで手渡しする手はずを整えてくれたのです。

pyladies-tokyo.connpass.com

その後、@shinseitaroさんの方で、@aliyokoさんにDjango教えてほしいという話から、それなら皆でやろうか!という流れになったようです。 (shinseitaroさんの行動力半端ない!)

色々なコミュニティを経てのこの開催、こんなつながりもあっておもしろいなーと。 そして、SQUEZZEさんに会場提供をお願いしたところ、快諾していただき無事開催するはこびとなりました。

当日のようす

まずはもぐもぐタイム

皆で持ち寄ったおやつを食べながら、自己紹介タイム。 Django初めての方から強者の方まで色々な方が参加してくれました!

和んだところで、もくもくタイム。

実際、もくもくタイムが始まると、皆集中して取りくんでいました。

ただ、その間にも著者のakiyokoさんや、詳しい方に皆いろいろ質問したりしていたようです。 私も、Pycharmやdockerのことなど色々教えていただきました(あまりDjangoと関係ない!ようで関係あるところです笑。)

そしてもくもくタイム中についにDjangoGirlsのチュートリアル最新版の翻訳が100%完了したようですー!わいわい!レビュー者募集中とのことです!

成果発表タイム

プロジェクターを借りるの忘れ、ゆるくお酒を飲みながらやる形式に; でも、そのゆるさがよかったのか(都合よく解釈しすぎ)、Django のDB周りから、環境構築、ツールの話、Django Girlsの話などなど、いろいろな意見交換ができて楽しかったです!

「DjangoGirlsチュートリアルを進めていてHerokuへのデプロイがうまくいかなかった」という方がいて、「そこはうまくいかないところ!今後Python Anywhereに置きかわる予定(?)です!」という中の方も貴重な意見も聞くことができました。私も以前DjangoGirlsチュートリアルのHeroku の部分でつまずいて、結局Heroku の公式ページをみてやった覚えが。そうだったのね(笑)。

あとはDjango-rest-framework + Vue.js を使っているor 試している方が多かった印象でした。

反省会

終わった後にスタッフ3人で反省会タイム(という名の飲み会)。 この日、akiyokoさんに持ってきて頂いた著書のDjang本、たくさん売れてなくなってしまい、結局奥様が追加で本を届けてくれたようです!ありがたやー。 akiyokoさんは、この日のためにDjango質問箱など作って質問を受け付けてくれたり、当日も皆の質問に答えてくれたりといろいろ尽力して頂いたので、願いがかなってよかったです!

この日akiyokoさんとは初めてお会いしたのですが、twitter上ではスタッフとしていろいろお話していて、お笑い系の人なのかなーと思っていましたが、当日、汗だくの私をみて、さっとビオレ汗拭きシート的なものを渡してくれる大変紳士な方でした笑。素敵。

おわりに

今回、いろいろな方が参加してくださり、大変楽しい会とすることができました。 参加してくださった皆さん、ありがとうございました!

こんな素敵な感想&ブログも書いてくださりありがたい限りです。

また、会場提供していただいたSQUEEZEさん、ありがとうございました! 9月にはSQUEEZEの中の人が書いたDjango本が発売される予定!と もくもく会でも話題になり楽しみです。

次回は9月に神田(?)で第2回目が開催される予定とのこと。 また、よろしくお願いします!

*1:私がakiyoko さんのDjango本を教えてもらったPython もくもく会。なんと後からしったのですが@akiyoko本人も参加していたとのこと!気づかなかった!

Raspberry Pi に設置したローカルサーバー(Flask-Ask + ngrok)でAlexaスキルを動かす

これまでAlexaスキルのバックエンド処理をAWS Lambdaで作成していましたが、Flask-Ask + ngrok を使って、 Raspberry Pi 上に設置したローカルサーバーでAlexaスキルを動かすことを試したので、そのメモになります。

ローカルサーバーだと身近なデータを簡単に利用することができるので便利かも!!

1.Alexa Skills Kit で Skill作成

Alexa Skills Kit (ASK) を使ってフロント側を作成します。

Alexaのスキルを自作しよう! - slideship.com

以前こちらの資料にまとめましたが、2018年3月の時点でBeta版だったものが正式リリースされていて、新しいUIになっていました。 古いUIでスキル作成していれば理解できると思うので、詳細は割愛。

1点だけ、エンドポイントの設定が、今回AWS Lambdaではないので、バックエンド側の処理を作成して動作させてから設定します。 => 4. 参照

2. Flask-Askでバックエンド処理を実装

Flask-Askとは

Python製のWebフレームワークFlaskを拡張して作成された、Alexaスキルの開発用フレームワークです。

github.com

$ pip install flask-ask

pipでインストールしてバックエンド処理をかくだけ! 使い方の詳細は上記のgithub上に書かれています。

処理を書いたらローカルでサーバーを立ち上げます。

$ python3 alexa_skill_calc.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

3. ngrok を使って外部からRaspberry piのローカルサーバーにアクセスできるようにする

ngrokとは

ローカルで動いているサーバーを、LANの外からアクセスできるようにできるツール

使い方

1) ngrok のダウンロード https://ngrok.com

2) 任意のディレクトリにLinux(ARM)版をダウンロードして、解凍します。

$ mkdir ngrok
$ cd ngrok/
$ mv ~/Downloads/ngrok-stable-linux-arm.zip .
$ unzip ngrok-stable-linux-arm.zip

3) 無料枠があるので、アカウント登録します。 - 「Get Started for free」ボタンをクリックしてアカウント作成

4) 作成したアカウントログインすると、下記ページにアカウントに紐づけられたAuthトークンが記載されているのでコピーします。

f:id:electricSheep:20180418152000p:plain

Raspberry pi上でページに書かれているコマンドを実行します。

$  ./ngrok authtoken MpRxwKGG7Hn(省略)

5) ngrok を起動します

上記2のflask-askの実行 python3 alexa_skill_calc.py により、現在ローカル環境(localhost)のポート5000番でWebアプリケーションが動作している状態で実行します。

$./ngrok http -region=ap 5000
ngrok by @inconshreveable                                       (Ctrl+C to quit)
                                                                                
Session Status                online                                            
Account                       masako sugita (Plan: Free)                        
Version                       2.2.8                                             
Region                        Asia Pacific (ap)                                 
Web Interface                 http://127.0.0.1:4040                             
Forwarding                    http://54f4263f.ap.ngrok.io -> localhost:5000     
Forwarding                    https://54f4263f.ap.ngrok.io -> localhost:5000    
                                                                                
Connections                   ttl     opn     rt1     rt5     p50     p90       
                              0       0       0.00    0.00    0.00    0.00     
  • 上記コマンドにて、 ポート5000を指定すると、ngrokが提供するURL(http(s))を通してローカル上のWebアプリケーションにアクセスすることができます。
  • コマンドラインのオプションで、リージョン Asia Pacific (ap) -region=ap を指定することができます。
  • ngrokの停止は、Ctrl + C で行います。

4. Alexa Skills Kit でエンドポイントを設定する

f:id:electricSheep:20180418163157p:plain

上記設定したら「エンドポイントを保存」する

で、再度「モデルをビルド」します

5.Alexaシュミレータでテスト!

が、なんかエラーになった;;;

flask-askを実行しているところで、スキルを呼び出すと下記エラーが・・・。

;;(省略)
 File "/home/pi/.local/lib/python3.5/site-packages/OpenSSL/crypto.py", line 740, in _subjectAltNameString
    method = _lib.X509V3_EXT_get(self._extension)
AttributeError: module 'lib' has no attribute 'X509V3_EXT_get'

とりあえず、stackoverflowに同じような問題があったので、pyOpenSSLを一旦削除して再インストール。

$ pip3 freeze
pyOpenSSL==17.0.0

$ pip3 uninstall pyOpenSSL
$ pip3 install pyOpenSSL

cryptography==2.2.2
pyOpenSSL==17.5.0

で、再度テスト!

f:id:electricSheep:20180418161236p:plain

できた!

感想など

  • ngrok、無料枠でもhttps にも対応していて便利すぎる!
  • ローカルのサーバーで動かせると手軽に身近なデータ使ってスキル作れるのでよい。
  • ちょっと前まで音声認識にJulius使って一つ一つ辞書登録していた頃を思うと、Alexaの発話認識+合成音声を無料で簡単に使えてすばらしい。
  • しかし、Juliusはスタンドアロンで動作するので、それはそれで素敵です。
  • stackoverflow ありがたい。エラーつらい。

HerokuへPythonアプリ(Django)をデブロイする方法

HerokuへPythonアプリ(Django)をデブロイする方法を試したので、メモ。

最初、Django Girls Tutorial にあったHerokuへのデブロイ方法を試したのですが、Herokuの公式ドキュメント をみると、pipenvを使用したアプリのデブロイ方法で更新されていたのでそちらで試してみました。

Djangoの理解は、下記2つのページが大変役に立ちました。

Herokuとは


  • PaaSを提供する事業者、および提供サービスであるPaaSの1つ
  • PasS(Platform as a Service)は、アプリケーションを実行するためのプラットフォームをインターネット越しに使えるサービス

Herokuにアプリを公開するための準備


  • Herokuアカウントのサインアップ => a free Heroku account
  • Heroku Toolbeltのインストール  => Heroku CLI
  • Pipenv をインストール (pythonアプリの場合)
  • Postgres をインストール(ローカルでアプリを動かしたい場合)
    • Heroku 上でsqllite3 は使えないようです

Herokuを使うにあたり必要な知識


Herokuにデブロイする方法


Python on Heroku

  • 上記チュートリアルを一通りやると、DjangoのアプリをHerokuにデブロイする方法を一通り体験できます
  • 英語ですが、とてもわかりやすいので、最初にここをみるのがオススメです!
  • Python のpipenvを使った方法でかかれています

◆Heroku へデブロイする流れ

1. Herokuへのログイン、メールアドレスとパスワードを入力

$ heroku login 

一度heroku loginを行うと、明示的にheroku logoutコマンドでログアウトしない限り、以降のコマンド実行はそのアカウントとして実行されます。

2. サンプルアプリのクローン(Djangoアプリ)

今回Heroku公式ドキュメントに沿ってサンプルアプリを使用したので、とりあえずクローン

$ git clone https://github.com/heroku/python-getting-started.git
$ cd python-getting-started

3. Herokuへデプロイ

$ heroku create
$ git push heroku master 
  • heroku create [APPNAME]
    • [APPNAME]を省略するとHerokuが自動生成してくれる
    • URLが作成される (https://[APPNAME].herokuapp.com/)
    • 「git@heroku.com:[APPNAME].git」というgitリポジトリが用意される
    • ローカルのgit remoteに「heroku」という参照名が追加される
  $ git remote -v
    heroku  https://git.heroku.com/stark-dusk-55796.git (fetch)
    heroku  https://git.heroku.com/stark-dusk-55796.git (push)
    origin  https://github.com/heroku/python-getting-started.git (fetch)
    origin  https://github.com/heroku/python-getting-started.git (push)
  • リポジトリのmasterブランチにアプリケーションをpushすることで、それがコンパイルされHerokuアプリケーションとしてリリースされる
  • origin は、cloneに使用したリポジトリ

4. 確認

$ heroku open                     #URLをデフォルトブラウザで開く
$ heroku logs --tail             #ログを確認
$ heroku ps
  === web (Free): gunicorn gettingstarted.wsgi (1)

たったこれだけ!!

◆ローカルでコードを変更してHerokuにデプロイ

1. ローカルでコードを修正する

下記、pipenvで作成した仮想環境上で動作させる

$ pipenv --three   #python3を指定
$ pipenv install     #仮想環境を作成し、依存関係をインストール
$ pipenv shell       #仮想環境への切り替え
$ python manage.py collectstatic  #Djangoで必要処理(静的ファイルを一カ所に集める)

2. ローカルで確認する

$ heroku local 

http://localhost:5000 にアクセスしてローカルで変更を確認

3. 修正のgitリポジトリへの反映

$ git add .
$ git commit -m "Demo"

4. 修正のHerokuへの反映

$ git push heroku master

5. 確認

$ heroku open

Herokuに必要なファイル


Procfile

  • Dynoがアプリケーションを起動する際の起動コマンドを指定するファイル
  • Dynoとは作成したプログラムを動かすLinuxコンテナ
  • Procfileは、アプリケーションのルートディレクトリに置く
web: gunicorn gettingstarted.wsgi
  • 最初の「web:」はDynoの種別の指定で、Httpリクエストを受け付けるWebアプリケーションの場合は「web」を指定する。
  • それに続くコマンドがアプリケーションの起動コマンド

Pipfile または requirement.txt 

  • Pipfile または requirement.txt のどちらかのファイルがある場合、Pythonと判断されるらしい。

Heroku Postgres


$  heroku addons # アプリに追加されているAdd-onの一覧を表示
Add-on                                           Plan       Price  State  
───────────────────────────────────────────────  ─────────  ─────  ───────
heroku-postgresql (postgresql-horizontal-81279)  hobby-dev  free   created
 └─ as DATABASE
  • heroku-postgresql のaddons はデフォルトで追加される
  • ローカル環境にpsqlコマンド(PostgreSQLコマンドラインクライアント)がインストールされている場合には、「heroku pg:psql」コマンドでデータベースにアクセスすることが可能

感想など


  • アプリのデブロイはgit pushするだけ!
  • 今回pipenvを使用しましたが、最初brew コマンドでpipenvをインストールしようとしてエラーになりそこではまりました…. (Herokuへのデプロイとは全く関係なし...)

最初から素直に下記でインストールすればよかった…。

$ pip3 install pipenv 
  • こんな簡単にWEB公開できるとは知らなかった。よいです。

初心者みんなではんだづけナイト に参加してきました!

4月3日 に開催された「初心者みんなではんだづけナイト」に参加してきたのでそのレポートになります!

dotstudio.connpass.com

はんだごてを買ったはいいけど、他に何が必要なのか、どうやるのかもわからずにいたところ、このイベントを発見! My はんだごてを持参し参加しました。 女子限定イベントではなかったのですが、行ってみると集まったのが偶然にも全員女子で、おかしを食べつつ和気あいあいとした雰囲気でした。

はんだづけの基礎知識を学ぶ


最初にはんだづけの基礎知識をスライドをみながら学びました。

f:id:electricSheep:20180405143752j:plain
会場はdotstudioさんのオフィス!なんか落ち着きます。
そしてお腹が空いていたのでおかし食べながらの講義ありがたい^^

講師のうこさんが、必要最小限の知識に絞って伝授してくれたので、本当に必要なことがすっと頭にはいってきました。 また、回路図の読み方は今回内容の範疇外でしたが、例で提示されたLEDの記号に関して質問したら、記号を形成している線や図の意味を説明してくれ、とてもわかりやすく解説してくれました。記号丸暗記とか厳しいけど、意味がわかるとすんなり理解できますね。おかげで、苦手意識のあった記号にも興味が持てそうです。

市販の電子工作キットでハンズオン!


作るのは、なんと 金属探知器 !!

ポケットに入れた100円玉を探知できる感度があるそうです。 すごい!そんなの作れるの!とテンションあがる!

はんだごての使い方をレクチャーしてもらう

f:id:electricSheep:20180404141429j:plain
インスタ映えするであろう透明なMy はんだごて(しかし写真のセンスゼロ)

はんだごて台というものが必要なのを初めてしりました(汗)。
スポンジで、高温になるはんだごての先を冷やしたり、汚れをふき取ったり、使わない時にごろっと転がってしまっては大変危険なので、収納しておくために使用します。

また、実際、どのようにはんだづけをするのが教えてもらいました。 私の勝手なイメージと完全に違っていて、これは実際試さないと絶対わからなかった…

パーツチェック!

f:id:electricSheep:20180404140606j:plain
パーツを組立参考図に沿って並べます

パーツの役割や、極性など教えてもらいながら、基盤の上に置くイメーイで並べます。

はんだづけする前に全てのパーツを基盤に差し込む

次に、基盤に実際に差し込んで確認します。

f:id:electricSheep:20180404141009j:plain
こんな感じで全てのパーツを差し込みます

いよいよはんだづけ!

確認ができたら、一旦全てパーツを取り出し、はんだづけするものだけを差し込みます。 まずは、抵抗から。

人生初のはんだづけ!!緊張で手に汗握った。というか手汗かきすぎて、はんだが滑った。

あれ?全然はんだがとけない〜など最初いろいろありましたが、サポートしてもらい抵抗全てのはんだづけに成功。

f:id:electricSheep:20180404141838j:plain

あとは余分なハンダをニッパーで切断します。

一旦できると、人生初はんだという緊張もほぐれ、ひたすらはんだづけを楽しむ。

f:id:electricSheep:20180405144012j:plain
皆、集中!!

途中途中で、パーツが浮いてしまった時の対処法や、はんだづけ失敗したはんだを吸い取る方法など、いろいろ実践的な方法を教えてもらいました。

全てのはんだづけ完了したら動作チェック

f:id:electricSheep:20180404153718j:plain
完成ー!
9Vの電池につないで、電源スイッチをON! ここで、音がなったので、説明書通りに半固定抵抗で調整します。 金属に近づけると、発振音が高くなるモードで設定します。

そして、金属に近づけると、

ビーー!!

という音がなり成功!!!

やったー!!!

参加者全員はんだ付け成功し、音を鳴らすことができました!!

感想


  • 一人一人正しくはんだづけができているか確認してもらえたので、安心して進めることができた。どうなれば正解なのか最初全くわからなかったが、はんだづけ->確認を繰り返して頂いたおかげでだんだんどれが正解なのかわかった。
  • 個人のペースにあわせてゆっくり進めてくれたので、あわてることなく理解しながら進めることができた。しかし、そのせいか大幅な時間オーバーになってしまい、申し訳なかった....。
  • 今回初心者用の組立キットを使いましたが、それでもいろいろ不明点多く、一人では絶対できなかったので、このようなイベントを企画して頂き本当に感謝しかない。
  • 当日自分がはんだづけしたものをみたとき、よくできてるかもーと思ったが、次の日、光のもとでみると、とんでもなく汚かった・・。これは経験あるのみですね。

実は、このイベント私が知った時にはもうすでにキャンセル待ちの方がいっぱいだったので、思い切って枠が空いていた「記事執筆枠」で申し込んだのです。(記事執筆などできるかわからなかったので、この枠で申し込むのは勇気がいった。)

でも、勇気を出して申し込んでよかった〜。 はんだが何なのかも知らないレベルの全くの初心者の私でも、一人ではんだづけできるだけの知識と経験を得ることができました。
そして何より本当に楽しかった!

f:id:electricSheep:20180405144113j:plain
皆完成して大満足!!うこ先生、ありがとう!

わかりやすい講義&丁寧なハンズオン、本当に主催者様に感謝です! ありがとうございました!

イベントに参加していた方が持参していた光るメガネを今度自分ではんだづけして作るぞー!!

PyLadies Tokyo Meetup #30 PythonでIoT!を開催しました

pyladies-tokyo.connpass.com

運営に携わっているPyLadies Tokyo で先週「PythonでIoT!」を開催したのでそのレポートです。 会場は、Raspberry Piもくもく会でお世話になっている 永和システムマネジメント様コワーキングスペースをお借りしました。いつもありがとうございます。

当日の内容

今回のMeetUpは、Raspberry Pi(ラズパイ)でスマートスピーカーを作ろう!」 がテーマでした。

女子限定イベントということもあり、Raspberry Piに興味を持ってくれる人がどのくらいいるのか、未知数だったのですが、結果たくさんの方にご参加頂き、わいわい楽しい雰囲気で進めらました!

Raspberry Pi の使い方あれこれ」


しかし、皆Raspberry Pi は初めてでもエディタは「vi派」の方が8割?9割?くらいいた。さすがPyladiesですね(笑)。 なので、そんなに丁寧にやらなくてもよかった感あるのですが、ここでつまづくと辛いし!と思い、結果時間大幅オーバーしてしまった。

◆AVS(Alexa Voice Service)


[資料] Raspberry PiでAlexaを動かそう! - slideship.com

@yuzuafro さんが講師でハンズオンしてくれました。

話しが決まってから当日まで、使用するAVS Device SDKのバージョンが2回も上がり、その度に@yuzuafroさんが、きちんと動作確認して(バグなどあって結構大変だった ...)、資料も最新にしてくれました。本当にありがたい。

が、Amazon.comデベロッパアカウントの登録で結構はまってしまう方がいて、基本的にはお買い物アカウントから作り直すことで対処してもらったのですが、USアカウントを持っている方が、アカウント作成中に処理が止まるという謎の現象などにより、結局お友達と一緒に作成してもらうことになってしまいました;; アカウントは事前準備で各自作成してきてもらったのですが、いろいろな制約があるアカウントだったので、ハンズオン中に皆で画面確認しながら作ってもよかったと反省。

OS のRasbianのバージョンも直前に上がったり、アレクサの声がホラーになるというこれまた謎の現象もあったりで、結局いろいろありましたが、なんとかほぼ全員が動かすところまでできたのでよかった!

Python + AWS LambdaでAmazon Echo のオリジナルスキル開発


[資料] Alexaのスキルを自作しよう! - slideship.com

で、結局こっちは時間が足りなく概要だけ説明して断念しました。 ただ、今回参加してくれた皆さんなら、多分資料だけみれば作成できそうな雰囲気だったので、お時間ある時にぜひ試してください! また、PyLadies Tokyo やRaspberry Piもくもく会でもフォローしますので、是非是非気軽に参加いただけると嬉しいです(^ ^)

感想

  • OSを6分でインストールする方法を事前に確認していたので、当日、スムーズに6,7台分インンスートルサポートできたのでよかった。
  • 当日の内容構成欲張りすぎた…。2日に分けてやる内容でした...。OSのインストールにつまずいた人も結構いたので、そこから一緒に丁寧にやってもよかったかもです。
  • PyLadies Tokyoで、いつかPythonでIot!やりたいなーと思っていたのですが、Raspberry Piもくもく会を一緒に運営している@yuzuafro と協力して、これまでのノウハウをいかし開催することができてよかったです。
  • スキルまでたどり着かなかったので結局Python 1行も書いてない・・・。
  • 満を持したはずが、やっぱりそこはいろいろはまるのがIotですね;;結構バタバタしました。精進します。
  • 参加者の皆さんが、お互い教えあったり和やかな雰囲気を作ってくれたので、本当にありがたかったです!!!

皆さま、ありがとうございましたー!

PyLadies Tokyo 次のイベント

次回、Pyladies Tokyoは4/22(日)にPython入学式を行います。

pyladies-tokyo.connpass.com

これからPython始めたい!という方の参加お待ちしています! LT枠、TA枠もありますので、先輩女性 Pythonista のご参加もお待ちしています!

Raspberry pi もくもく会 第5回 開催しました

raspberry-pi-moku.connpass.com

今回も永和システムマネジメント様コワーキングスペースをお借りして、Raspberry Piもくもく会第5回を開催しました。

当日の様子

今回もハンズオンなしの、完全もくもく会でした。スタッフ含め18人でわいわい&もくもくすることができました。 特にこちらからお願いしているわけではないのですが、自然に皆さん、おやつを持ち寄って皆に分けてくださり、ありがたかったです^^ ありがとうございます!!

成果発表

今回も希望者のみ成果発表を行いました。

撮った画像を全てそのままAPIに送るのでは非効率的なので、対象物を特定して画像を切り取るまでをラズパイで処理し、APIへ送信。 とても効率的だ。

ラズパイ(zero-w)+FeliCaリーダーを使って。かなりサクサク動いていたので、何か商品化できそうですヾ(¥∇¥)/。

箱から出して部品を見たときは組み立て大変そうだーと思いましたが、あっという間に組み立てていました。 プログラム部分が棒なのですが、動く仕組みとかがとても面白く作ってみたい。さらにラズパイで制御できたらさらに楽しそう!なんといってもかわいい(好み)。

カタカナなども綺麗に表示できてとても見やすい!そういえばうちにも眠っているLCDがあるので早くやりたい。

サンプルが英語ということで、最初英語で話しかけていたのですが、発音が素晴らしかったです(重要) やっぱりこれ欲しい。Amazonでは定価で売っていないので、どこかに買い出しに行かないと。

ラズベリー・パイ専用 学習リモコン基板とIFTTTとアレクサを組み合わせて、アレクサに話しかけるだけで、実際に会場のTVやプロジェクターの電源のON/OFFに成功していました!ちょっと前にみたアニメの世界だ。 毎朝時間がない時に限ってリモコンみつからないので、声で操作できると本当に便利!!

実際に音楽やラジオが鮮明にラズパイから流れてきて素敵でした。4/22 の技術書典にもVer2.00が発売されるそうなので、要チェックですね!

第1回目のハンズオンでやったものをベースに追加機能増やして開発してくれて嬉しい。 Twitterの情報をストリーミングするのはラズパイでやるのにうってつけだと思うので、是非発展させてほしいなー^^

普段はArduinoを使っているらしいのですが、今回はラズパイで。 いつもTwitterでお見かけしていて、おもしろいものを作っていた方だったのでお会いできて嬉しかったです。 Maker Faireに向けて、素敵なアイデアをもっていて、挑戦するとのことだったので、とても楽しみ!!

その他、みなさん順調に?もくもくしていました。

感想など

  • 今回、成果発表してくれる方が多くて嬉しかった!
  • スタッフの@久保秋さんから言われた通り、成果発表というと、なにか成果を出さなくては感でてしまうので、次回からやったことの報告みたいな感じにしようかな。成果でなくても当日ここまでできたました!全くできませんでした!的な感じも、こんなことやってるんだー&できるんだーと結構新たな発見があるので。(とはいえ今まで通りやりたい人だけでいいのですが。ちなみに、私は成果発表してません!)
  • 懇親会で皆男子ははんだ付け体験済みであると聞き驚きだった。学校でやるんだ!!(自分は女子校出身)ということで、次回教えてもらえることになりました!(嬉しい)
  • 懇親会で合宿の話をしたら、結構皆乗り気だったのとアンケート結果でもやりたい人多数だったので、夏くらいにやりたい機運が高まっています。

ということで、次回は4/22(日)に開催予定です。技術書典4とかぶりますが、技術書典4を見に行ったりもくもくしたり楽しみましょう!

今回も皆さまのおかげで楽しくできました。ありがとうございました!

Alexaスキル開発ハンズオン に参加しました

先日、「Node.jsでAlexaスキル開発!」に参加してきました!

nodegirls-jp.connpass.com

参加した感想

  • 講師の@tokutoku393さんの資料が画像付きでとても丁寧に書かれていたので、基本的にその通りに進めていけばさくっとスキルがつくれた! (テキストのリンク貼ろうと思いましたが、限定公開だったのでやめときます;;)
  • 最初にAlexaと接続するところでなかなかうまくいかなかったが、Amazonの方が一人ずつ回ってサポートしてくれたので、安心感あった&皆無事つなぐことができた
  • 今回女子限定でしたが、懇親会でのビールの比率高くてうれしかった(^ ^)。前に開催した際にカクテル多めにしたら、ビールが足りなくなったらしいです(笑)
  • 懇親会で、Amazonの方がAlexa のいろいろな機能や使い方を教えてくれて、おぉ(感動)!!となった

自分用に簡単にまとめ

Alexaスキルは以下の3ステップで作成できました。

1. Alexa Skills Kit で Skill作成(フロントエンド側)

  • スキル名やスキルを起動するキーワードの登録
  • 受け取る発話パターンを登録
  • Alexa Skills Kit はAmazon.co.jpのアカウント(お買い物のアカウント)でログイン

2. AWS Lambdaでバックエンド処理を実装

  • 設計図と呼ばれるkit[alexa-skill-kit-sdk-factskill]で作成
  • AWSアカウント 必要

3. Skillの公開 (パブリック公開もできますが、今回はテスト公開)

  • Alexa Skill Kit 上でSkillのテストを有効にする
  • Skillを作成したユーザーのAmazon Echoで使える

概要図

f:id:electricSheep:20180203182327p:plain

まずはちょっだけカスタマイズ

娘が昨年神社で大凶をひいて以来、神社が嫌いになってしまい、今年の初詣もいやいや「絶対鳥のふんがおちてくるよー」などどいっていたら、みごと頭に鳥のふんが落ちてくる始末・・・。

運がない、と落ち込み、自分で大吉しかでないおみくじを作っている娘に、ここはアレクサを使って!と思い、

「運勢」をキーワードに「○○の今日の運勢おしえて!」というと、必ずいいことしか言わないスキルを作成してみました。

f:id:electricSheep:20180203182444p:plain

早速、家で娘に試すとなんだか微妙な顔の娘。

「これいいことしか言わないように、ママが作ったんでしょ・・・」

ばれた・・。

小3ともなるとそんな単純でもなくなるのか;;

全体としての感想

  • Alexa Skills KitはGUIで簡単に作成できてよい
  • 今回、Node.jsで作りましたが、Python版のサンプル(alexa-skills-kit-color-expert-python )もあるので(2.7ですが)もっとしっかり作る時はPython版で試してみたい
  • バックエンドをLambdaで書くと、簡単にAWSの他のサービスと連携できると思うので(よくわかってませんが)、自分のローカルの音楽をAlexaで再生するということもやってみたい(amazon unlimited musicに加入していないので、好きな音楽が聞けない・・)
  • ハンズオン、雪の予報で(実際帰りは雪だった)、どうしようかとちょっと悩みましたが参加してよかったです!素敵な企画&ハンズオンをありがとうございました!