PyCon JP 2018 に参加しました!
9/17-18でPyCon JP2018 に参加しました!!
聞いたトーク 1日目
Why you should care about types: Python Typing in the Facebook Backend
- なぜ型が必要かという点と、実際にどのように記述するか等の説明。
- MonkeyTypeの紹介
実は、[DjangoではじめるPyCharm実践入門]の部屋に行ったら満員とのことで、こちらのセッションに急遽変更。Python における型に関してあまり詳しくなかったので、きちんと理解するいい機会になった!
Django REST Framework におけるAPI実装プラクティス
www.slideshare.net
ページネーションの話はかなり詳細に話してくれたので、それぞれのメリット・デメリットを理解することができた。 また、他のTipsもDjango REST Framework を使う上でかなり実践的な内容でとにかく参考になった! 部屋に入った時点で立ち見&床席しかなかったが、どうしても聞きたかったので床席を選択。聞けてよかった。
Interactive Network Visualization using Python 〜 NetworkX + BokehでPEPの参照関係を可視化する
- PEPとは?というところから、PEPの参照関係をNetworkXとBokehを組み合可視化する方法の紹介
可視化されたPEPの参照関係を眺めているだけでもおもしろい。
FurukiさんはPyLadiesのメンバーでもあり昨年のPyLadies合宿にも参加してくれたのですが、とにかくガチ!ひたすらもくもく取り組んでいて好きなんだなーと思っていたけど、軽快なトークで冒頭から自分の話に皆を引き込み、話術にもびっくりだった!
BokehへのPRもちょうどPycon前日(9/16)にマージされたということですごい!&めでたい!
Pythonで解く大学入試数学
- 数学系ライブラリの紹介・説明
- ライブラリの使い方とあわせて数学についての説明
- 数学の問題を実際に解いてみる
sympy便利!となったり、 集合はset で解けるなど、なるほどーと目から鱗の情報がおおかった。
ホールを2つあわせた一番大きな会場で8割以上は埋まっていたと思うが、「数学嫌いな人!」との質問に対して手をあげたのは数人?しかいなかった・・。元気よく手をあげた私っていったい・・・(笑)
数学よく考えたら嫌いではなく、好きではないというだけなので、久しぶりに勉強したくなった。Python 使うとあまりにも簡単に解けるからかな。。データ分析にも最近興味がでてきたので、とりあえず復習してみよう。学生の時はUnix版SASでデータ解析をずっとしていたはずなので、今はすっかり忘れているだけ!(思い出せるはず!)と信じたい。
聞いたトーク2日目
Integrate Full-text Search service with Django
とても聞きたい内容だったので早めに行って席を確保。立ち見が結構でていたので早めにいって正解だった。 (1日目の床席がちょっと辛かったので) 自分は、Elasticsearch 自体の理解は乏しいけど、設計よりの話で丁寧に順を追って説明してくれたので、十分理解できて面白かった。また実際Djangoのプロジェクトに組みこむ際にどのように実現したか等、かなり詳細な内容をコードを交えて聞くことができ実践的だった。 同期に関して、Signal を使った方法の検討など、なるほどーと思ったが、会場からの質問や、こうすればいいかも?的な提案もあって色々な意見を聞くことができたのもおもしろかった。こういった議論ができるのもよいですね。
Make a Drone using RaspberryPi and Google VoiceKit by Python
www.slideshare.net
- RaspberryPi と Google VoiceKitを使ってドローンを動かす
昨年に引き続きの発表!昨年はブラシレスモーターを使ってプロペラを1つ回すところに留まったが、今年は見事4つのプロペラを回して、上昇&前進に成功しておぉーとなった。(デモでは会場の都合?で実際には飛ばせなかったですが) RaspberryPi & VoiceKit はとても身近なものだし、ぜひドローンを簡単に飛ばせる仕組みを作って欲しい!
Pythonで「お絵描きパズル」を解いてみた
- Jupiter Notebook を使ってPythonコードを使ってお絵描きパズルに挑んだ話
お絵描きパズルが確かにDataFrame、Seriesにみえてきた(笑)。パズルを解くロジックを考えるのはちょっと大変そうだけど、それをPythonコードに落とすとかなりシンプルなコードで書けることに驚いた。 ipywidgets を使ってパラメータを変えるスライダーが作成できるの便利そうだった。試したい。
コミュニテイでの関わり
PyLadies コミュニティブース
今年はコミニティブースがポスターセッションの形式でできたので、資料作り&当日説明を担当。 他のブースはA3なのに、自分はA4で印刷していまい、あー(; ̄□ ̄)ガーン. となったが、「唯一後ろのすだれを生かしているよ!」というお言葉をいただき、なるほど、そう考えればいいか。となった(笑)
本日15:15~15:45のおやつタイムにPyLadiseのコミュニティブースでお待ちしています!男女問わず気軽に遊びにきてくださいー。 #pyconjp #pyladiestokyo pic.twitter.com/w03xzTc8fd
— sugita (@ane45) 2018年9月18日
今年は一人で参加している女子に声をかけて、いろいろお話したり、コミュニティブースに誘ったりと、たくさんのPython女子たちと関われたのでよかったな!と。 結構遠方から来ている方が多くてびっくり。皆、Python好きなんだなー。
みなさん、遊びにきてくれてありがとうございましたー! 4周年記念パーティ、女性枠、男性枠ともにまだ空きがありますので、是非是非ご参加おまちしています!
Python Boot Camp
Python Boot Campとは日本各地での初心者向けPythonチュートリアルイベントです。
9/16日に各地域の参加者で集まって盛り上がりましょう!!ということで、前夜祭的な感じで「Python Boot Camp ミートアップ」という名の飲み会が開催された。
私は、昨年、埼玉で開催した Boot Camp の現地スタッフとして関わったので、このミートアップに参加。全国から集まった関係者の方々と美味しいお肉とビールでわいわいできてとても楽しかった!
そして、そこでなんと!!
MicroPython Advent Calendar 2017 - Qiita で間接的にしっていた micro:bitチュートリアルの翻訳をされた@inachi さんとお会いできた!!私が昨年アドベントカレンダーで書いた、その当時MicroPythonで扱っていなかった光センサに関して、今はできるようになったよ!との情報を教えてもらい感激。ひょんなところで繋がってうれしい出来事でした!
PyCon JP 20118にいるPython Boot Camp 関係者(コアスタッフ、現地スタッフ、講師、TA、参加者)で記念撮影!!みんな参加してくれてありがとーー!! #pycamp (@ 大田区産業プラザPiO for PyCon JP 2018 in 大田区, 東京都) https://t.co/V9D3I90t6T pic.twitter.com/ddRXYlfWyf
— Takanori Suzuki (@takanory) 2018年9月18日
Python Boot Camp に、スタッフ、TAなど2回以上参加すると、この水色のTシャツがもらえるらしい。欲しい。
全体としての感想
- 「ひろがるPython」がテーマだった今年のPycon JP。自分は業務でDjangoを使っていることもあり、Djangoのトークを抑えつつ、業務とはあまり関係ないけど興味あるトークが聞けたことで、かなり自分の中のPython世界が広がったと思う。色々試したいこともできた。
- 今回聞きたいトークが結構重なってしまって聞けないものがたくさんあったので、このあとYouTubeでみる予定。YouTubeありがたい。
- LT面白かった!!
- コミュニティ活動で、人と人をつなぐことができたり、自分自身も交遊が広がったのでよかった。
- 1日目のパーティでMarc-Andréさんを紹介して頂いたが、私の英語力・・(T T) ・・・。stapyのトークめちゃよかった!と伝えるだけが精一杯だった・・・。英語がんばりたい。@akucchan_worldがフォローしてくれた。ありがとうございます。
- 1年に1回、こういった大きなイベントで盛り上がるのは自分にとってとても大切&楽しいので来年もまた参加したい。来年は何かに応募したい。
- そういえば、1日目おやつをゲットできずしょんぼりしたが、2日目は無事ゲットできたのでよかった!!(そこ?)
- おやつ大事。Pyconのおやつ毎回テンションあがるフォルムなんですもの。
今回1000人近くの参加者ということで、規模がかなり大きくなってスタッフの方も大変だったと思います。が、今年もPython最大のお祭りとして楽しむことができました!本当にありがとうございました!
【Stapy x MUFG共催】Python Global Meetup に参加しました!
9/14(金)に開催された【Stapy x MUFG共催】Python Global Meetup (同時通訳あり)に参加してきたので、そのレポートになります。
Python界のすごい方達からめちゃめちゃディープな話が聞けて、かなりテンションあがりました!
※どのくらいすごいかというのは、connpassのページに紹介があります
聞いた話、新しく得た知見など
- Talk1、Talk2ともにUnicodeにまつわる話だったが、多くの苦労があって今に至った経緯の話がきけた。ふんわり理解していたUnicodeだったが、内部の動きを知ることができて理解が深まった。 メモリ上に文字を展開する時間を考慮する必要などもあったりと、とにかく深い・・・。
- PEP538によって、printで文字列出す時にOSによって文字化けが起こるのが解消された
- PEP3138 でインタプリンターで表示する文字をユニコードに
- Python3.6 から実装された dict の順を保持する話では、メモリー効率などを考慮して、ハッシュテーブルにindexキーだけ保持してテーブル自体を小さくしたことによる副産物としてうまれた
- Googleの最初のweb serverはpythonのmedusa (かもしれない)?
- 最初のpythonにはガベージコレクションがなかった。ガベージコレクションが入った時 安心して使えるようになった。
- 面白い話は日本語ではかかれていない。python.dev のメールリングリストをながめるのもよい
- コントリビュートするにはPSFメンバーになることでもできる www.python.org
パネルディスカッション・質問タイム
- 随所に質問タイムを入れてくれて、PEPとは?という質問から、OSSに企業が絡むことをどう思うか?等、多岐にわたる質問がでておもしろかった。
- パネルディスカッションのモデレーターの @hirokiky さんが、ちょっとわかりにくいところなどを補足してわかりやすく説明してくれたので、置いてきぼりにならずとても楽しめた。
- 途中時間が押しているということだったが、延長してくれてありがたかった。
パネルディスカッション、延長うれしい #stapy
— sugita (@ane45) September 14, 2018
全体としての感想
- 会場豪華だった
- 同時通訳もありがたかった。結構専門的な話だったけどきちんと通訳されていたと思う。
- @akucchan_worldの司会盛り上がった。
- Pycon JPを前に素敵なセッションに参加することができて気持ちが高まった!
今回登壇した人たちがものすごくコア&豪華なメンバーで直接話を聞くことができて本当に楽しかった。こういった素敵なイベントを開催して頂いたStapy x MUFGの方達に感謝感謝です!ありがとうございました!
おまけ
- 2次会で6人といって入った店に結局14, 5人で押しかけお店の人にちょっと迷惑がられた;(受け入れてくれてありがとうございます。)けど楽しかった!
#stapy 二次会。めっちゃ混雑 (@ CRAFT BEER BAR IBREW wired in 中央区, 東京都) https://t.co/zpq7lQPlwr pic.twitter.com/zxbnjdIwr9
— Takanori Suzuki (@takanory) September 14, 2018
Django もくもく会に参加しました!
7月7日(土)七夕の日にDjnagoもくもく会にスタッフとして参加したのでそのレポートです。
Djangoもくもく会とは
もくもく会とは言っても,しーーっんとしているもくもく会ではなく,質問や分からないところがあったら,その場で聞くことができる環境にしたい!と思っています.
主催者の@shinseitaroさんの意向で「もぐもぐ会」とサブタイトルのついたこの会。 実は、開催にあたっていろいろな出来事が連鎖したことによるものでした。
今回会場提供して頂いたSQUEEZEさんが毎月開催している「Pythonもくもく会」に参加した際に、業務でDjnagoを使っているという方に、Django本なら、@akiyokoさんの「現場で使える基礎Django」 の本がよいですよ!と教えていただきました。お値段1,300円で送料700円でしたが、業務でちょうどDjangoを使うことになったため、購入しました。これが本当に大変役にたったのです!
その後、Pyladiesもくもく会にこの本をもっていったところ、参加者の方もDjangoをやっている方や、これから始めたいという人が何人かいたので、「送料払ってでも買う価値ありますよ!」とおすすめしたところ、同じく参加者の@shinseitaro さんが 著者の@akiyokoとお知り合いということで、その場で頼んで手渡しする手はずを整えてくれたのです。
その後、@shinseitaroさんの方で、@aliyokoさんにDjango教えてほしいという話から、それなら皆でやろうか!という流れになったようです。 (shinseitaroさんの行動力半端ない!)
色々なコミュニティを経てのこの開催、こんなつながりもあっておもしろいなーと。 そして、SQUEZZEさんに会場提供をお願いしたところ、快諾していただき無事開催するはこびとなりました。
当日のようす
まずはもぐもぐタイム!
おやつがたくさん! #モグモグDjango pic.twitter.com/TOsU4KBS6q
— akiyoko/「現場で使える基礎Django」販売中 (@aki_yok) July 7, 2018
皆で持ち寄ったおやつを食べながら、自己紹介タイム。 Django初めての方から強者の方まで色々な方が参加してくれました!
和んだところで、もくもくタイム。
もぐもぐタイムが終わりもくもく中。SQUEEZE さんの素敵なオフィスを会場提供して頂きました! #モグモグDjango pic.twitter.com/87eFUbhAST
— sugita (@ane45) July 7, 2018
実際、もくもくタイムが始まると、皆集中して取りくんでいました。
ただ、その間にも著者のakiyokoさんや、詳しい方に皆いろいろ質問したりしていたようです。 私も、Pycharmやdockerのことなど色々教えていただきました(あまりDjangoと関係ない!ようで関係あるところです笑。)
DjangoGirlsのチュートリアル最新版の翻訳が100%完了しましたー。翻訳手伝ってくれたみなさん、本当にありがとう!沢山の人が手伝ってくれた! #djangogirls #モグモグDjango pic.twitter.com/zMIuAcki8J
— mamix1116 (@mamix1116) July 7, 2018
そしてもくもくタイム中についに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/「現場で使える基礎Django」販売中 (@aki_yok) July 7, 2018
┃ジ┃
┃ャ┃
┃ン┃
┃ゴ┃
┃の┃
┃薄┃
┃い┃
┃本┃
┃が┃
┃た┃
┃く┃
┃さ┃
┃ん┃
┃売┃
┃れ┃
┃ま┃
┃す┃
┃よ┃
┃う┃
┃に┃
┗━★
#短冊メーカー #Django
この日akiyokoさんとは初めてお会いしたのですが、twitter上ではスタッフとしていろいろお話していて、お笑い系の人なのかなーと思っていましたが、当日、汗だくの私をみて、さっとビオレ汗拭きシート的なものを渡してくれる大変紳士な方でした笑。素敵。
おわりに
今回、いろいろな方が参加してくださり、大変楽しい会とすることができました。 参加してくださった皆さん、ありがとうございました!
こんな素敵な感想&ブログも書いてくださりありがたい限りです。
著者の方に聞ける環境というのは貴重ですね。アイスブレイクやもぐもぐで話しかけやすい会でした。どうもありがとうございました。
— nikkie (@ftnext) July 7, 2018
イベントレポート | Django もくもく会 Django Girls Tutorial翻訳 #モグモグDjango - nikkie-ftnextの日記 https://t.co/zA7Fbaw1G4 #はてなブログ
また、会場提供していただいたSQUEEZEさん、ありがとうございました! 9月にはSQUEEZEの中の人が書いたDjango本が発売される予定!と もくもく会でも話題になり楽しみです。
次回は9月に神田(?)で第2回目が開催される予定とのこと。 また、よろしくお願いします!
Raspberry Pi に設置したローカルサーバー(Flask-Ask + ngrok)でAlexaスキルを動かす
これまでAlexaスキルのバックエンド処理をAWS Lambdaで作成していましたが、Flask-Ask + ngrok を使って、 Raspberry Pi 上に設置したローカルサーバーでAlexaスキルを動かすことを試したので、そのメモになります。
ローカルサーバーだと身近なデータを簡単に利用することができるので便利かも!!
1.Alexa Skills Kit で Skill作成
Alexa Skills Kit (ASK) を使ってフロント側を作成します。
- Webブラウザでhttps://developer.amazon.com/ja/にアクセス
Alexaのスキルを自作しよう! - slideship.com
以前こちらの資料にまとめましたが、2018年3月の時点でBeta版だったものが正式リリースされていて、新しいUIになっていました。 古いUIでスキル作成していれば理解できると思うので、詳細は割愛。
1点だけ、エンドポイントの設定が、今回AWS Lambdaではないので、バックエンド側の処理を作成して動作させてから設定します。 => 4. 参照
2. Flask-Askでバックエンド処理を実装
Flask-Askとは
Python製のWebフレームワークFlaskを拡張して作成された、Alexaスキルの開発用フレームワークです。
$ 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トークンが記載されているのでコピーします。
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 でエンドポイントを設定する
- HTTPSのチェックボックスにチェック
- デフォルトの地域
- ngroku起動で ngrokuから提供されたURLを設定
- 「開発者のエンドポイントは、証明機関が発行したワイルドカード証明書をもつドメインのサブドメインです」を選択
上記設定したら「エンドポイントを保存」する
で、再度「モデルをビルド」します
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
で、再度テスト!
できた!
感想など
HerokuへPythonアプリ(Django)をデブロイする方法
HerokuへPythonアプリ(Django)をデブロイする方法を試したので、メモ。
最初、Django Girls Tutorial にあったHerokuへのデブロイ方法を試したのですが、Herokuの公式ドキュメント をみると、pipenvを使用したアプリのデブロイ方法で更新されていたのでそちらで試してみました。
Djangoの理解は、下記2つのページが大変役に立ちました。
- モダンDjango入門連載一覧:CodeZine(コードジン)
- 現在連載中なので、続きが早くみたい
- Django Girls Tutorial
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コマンド(Herokuを操作するために使用するコマンドラインツール)
- Git
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]
$ 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)
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
web: gunicorn gettingstarted.wsgi
- 最初の「web:」はDynoの種別の指定で、Httpリクエストを受け付けるWebアプリケーションの場合は「web」を指定する。
- それに続くコマンドがアプリケーションの起動コマンド
Pipfile または requirement.txt
- Pipfile または requirement.txt のどちらかのファイルがある場合、Pythonと判断されるらしい。
Heroku Postgres
- Heroku Postgresは、Heroku社自らが提供するHeroku Add-onの1つ
- Heroku Postgresは、オープンソースRDBMS「PostgreSQL」がSaaS形態で提供されているもの
$ 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日 に開催された「初心者みんなではんだづけナイト」に参加してきたのでそのレポートになります!
はんだごてを買ったはいいけど、他に何が必要なのか、どうやるのかもわからずにいたところ、このイベントを発見! My はんだごてを持参し参加しました。 女子限定イベントではなかったのですが、行ってみると集まったのが偶然にも全員女子で、おかしを食べつつ和気あいあいとした雰囲気でした。
はんだづけの基礎知識を学ぶ
最初にはんだづけの基礎知識をスライドをみながら学びました。
講師のうこさんが、必要最小限の知識に絞って伝授してくれたので、本当に必要なことがすっと頭にはいってきました。 また、回路図の読み方は今回内容の範疇外でしたが、例で提示されたLEDの記号に関して質問したら、記号を形成している線や図の意味を説明してくれ、とてもわかりやすく解説してくれました。記号丸暗記とか厳しいけど、意味がわかるとすんなり理解できますね。おかげで、苦手意識のあった記号にも興味が持てそうです。
市販の電子工作キットでハンズオン!
作るのは、なんと 金属探知器 !!
ポケットに入れた100円玉を探知できる感度があるそうです。 すごい!そんなの作れるの!とテンションあがる!
はんだごての使い方をレクチャーしてもらう
はんだごて台というものが必要なのを初めてしりました(汗)。
スポンジで、高温になるはんだごての先を冷やしたり、汚れをふき取ったり、使わない時にごろっと転がってしまっては大変危険なので、収納しておくために使用します。
また、実際、どのようにはんだづけをするのが教えてもらいました。 私の勝手なイメージと完全に違っていて、これは実際試さないと絶対わからなかった…
パーツチェック!
パーツの役割や、極性など教えてもらいながら、基盤の上に置くイメーイで並べます。
はんだづけする前に全てのパーツを基盤に差し込む
次に、基盤に実際に差し込んで確認します。
いよいよはんだづけ!
確認ができたら、一旦全てパーツを取り出し、はんだづけするものだけを差し込みます。 まずは、抵抗から。
人生初のはんだづけ!!緊張で手に汗握った。というか手汗かきすぎて、はんだが滑った。
あれ?全然はんだがとけない〜など最初いろいろありましたが、サポートしてもらい抵抗全てのはんだづけに成功。
あとは余分なハンダをニッパーで切断します。
一旦できると、人生初はんだという緊張もほぐれ、ひたすらはんだづけを楽しむ。
途中途中で、パーツが浮いてしまった時の対処法や、はんだづけ失敗したはんだを吸い取る方法など、いろいろ実践的な方法を教えてもらいました。
全てのはんだづけ完了したら動作チェック
9Vの電池につないで、電源スイッチをON! ここで、音がなったので、説明書通りに半固定抵抗で調整します。 金属に近づけると、発振音が高くなるモードで設定します。
そして、金属に近づけると、
ビーー!!
という音がなり成功!!!
やったー!!!
参加者全員はんだ付け成功し、音を鳴らすことができました!!
感想
- 一人一人正しくはんだづけができているか確認してもらえたので、安心して進めることができた。どうなれば正解なのか最初全くわからなかったが、はんだづけ->確認を繰り返して頂いたおかげでだんだんどれが正解なのかわかった。
- 個人のペースにあわせてゆっくり進めてくれたので、あわてることなく理解しながら進めることができた。しかし、そのせいか大幅な時間オーバーになってしまい、申し訳なかった....。
- 今回初心者用の組立キットを使いましたが、それでもいろいろ不明点多く、一人では絶対できなかったので、このようなイベントを企画して頂き本当に感謝しかない。
- 当日自分がはんだづけしたものをみたとき、よくできてるかもーと思ったが、次の日、光のもとでみると、とんでもなく汚かった・・。これは経験あるのみですね。
実は、このイベント私が知った時にはもうすでにキャンセル待ちの方がいっぱいだったので、思い切って枠が空いていた「記事執筆枠」で申し込んだのです。(記事執筆などできるかわからなかったので、この枠で申し込むのは勇気がいった。)
でも、勇気を出して申し込んでよかった〜。
はんだが何なのかも知らないレベルの全くの初心者の私でも、一人ではんだづけできるだけの知識と経験を得ることができました。
そして何より本当に楽しかった!
わかりやすい講義&丁寧なハンズオン、本当に主催者様に感謝です! ありがとうございました!
イベントに参加していた方が持参していた光るメガネを今度自分ではんだづけして作るぞー!!
PyLadies Tokyo Meetup #30 PythonでIoT!を開催しました
運営に携わっているPyLadies Tokyo で先週「PythonでIoT!」を開催したのでそのレポートです。 会場は、Raspberry Piもくもく会でお世話になっている 永和システムマネジメント様のコワーキングスペースをお借りしました。いつもありがとうございます。
当日の内容
今回のMeetUpは、「Raspberry Pi(ラズパイ)でスマートスピーカーを作ろう!」 がテーマでした。
女子限定イベントということもあり、Raspberry Piに興味を持ってくれる人がどのくらいいるのか、未知数だったのですが、結果たくさんの方にご参加頂き、わいわい楽しい雰囲気で進めらました!
◆Raspberry Pi の使い方あれこれ」
- Raspberry Piで使用する主なLinuxコマンドやSSH/VNCで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ですね;;結構バタバタしました。精進します。
- 参加者の皆さんが、お互い教えあったり和やかな雰囲気を作ってくれたので、本当にありがたかったです!!!
集合写真です!今日はご参加ありがとうございます! #pyladiestokyo pic.twitter.com/8fm0vF0c3S
— PyLadiesTokyo (@PyLadiesTokyo) 2018年3月24日
皆さま、ありがとうございましたー!
PyLadies Tokyo 次のイベント
次回、Pyladies Tokyoは4/22(日)にPython入学式を行います。
これからPython始めたい!という方の参加お待ちしています! LT枠、TA枠もありますので、先輩女性 Pythonista のご参加もお待ちしています!