(English follows Japanese)
こんにちは。
PyCon JP 2020 コンテンツチームリーダーの二木です。
このブログではPyCon JP 2020のプロポーザルのサンプルを示します。
昨年と比べて、プロポーザルの項目を大きく変更しました。
変更の経緯や説明は
他の投稿でも共有していますが、今回は
具体的にどんなことを書くことを想定しているかを示します。
不明点がありましたら、
質問フォームからご質問ください。
サンプルプロポーザル
PyCon JP のスタッフ活動をPythonで自動化した事例を共有するトークのプロポーザルをサンプルとします。
斜体の部分をプロポーザルのフォームに記載します。
Session title
PyCon JPにPythonと一緒にスタッフ参加しよう
日本語で30分のトークとします。
Language
Japanese
発表資料の言語 / Language of presentation material
Japanese only
Session format
Talk(30min)
自動化の例を2本紹介するトークです(1例10分程度)。
Track
自動化についてのトークなので、
Case studies (excluding web programming and machine learning)
を選択します。
Trackの選択については、
こちらのブログも参考にしてください。
Level (Audience Python level)
サードパーティーのパッケージを使った自動化の例を話すので、
Intermediate
とします。
Audience Python levelの選択については、
こちらのブログも参考にしてください。
Audience expertise
このトークでPython以外の部分の知識は
PyCon JPのスタッフがどんなことをしているかだと考えます。
PyCon JPのスタッフについての知識は不要なトークとするので、
0%
とします。
Audience expertiseの選択については、
こちらのブログも参考にしてください。
聴衆に求める前提知識 / Prerequisite knowledge for attending the session
何らかのパッケージを使って、Pythonで自動化スクリプトを書いた経験。
トークで扱う、SlackやGoogle DriveについてPythonで自動化した経験があると、トークがより理解しやすいと考えますが、必須ではありません。
聴衆が持ち帰ることができるもの / What audience take away from your talk
- PythonでSlackにメッセージを投稿する方法
- 上記を定期的に行う方法
- PythonでGoogle Driveのドキュメントを操作する方法
- Pythonスクリプトを使って、Slackを起点にGoogle Driveのドキュメントを操作する一連のやり方
- PyCon JPのスタッフがやっていることについての知識
Elevator Pitch
退屈なことをPythonにやらせる気持ちよさはPython使いなら経験があるのではないでしょうか。
このトークでは、退屈なことをPythonにやらせる例を、PyCon JPのスタッフ活動の中から2つ共有します。
1つは、期日になったら終了するSlackのリマインダーの代替機能、もう1つは、Google Driveのテンプレートのドキュメントをコピーする機能をSlackコマンドとして実現する方法です。
このトークを聞くことで、PythonでSlackやGoogle Driveを操作する方法が分かるでしょう。
上記で256文字です(改行を含む)。
Description
トークの
詳細と構成(タイムライン)を書く箇所です。
詳しいほど具体的にトークの内容を伝えることができます。
PyCon JPのスタッフ活動ではSlackやGoogleドライブなどのツールを使います。
ツールについてイケていないと感じた点をPythonで解消した例を2つ紹介します。
1つ目は、Slackのリマインダー機能のイケていない点を解消した例です。
Slackでは、指定したメッセージを指定した時刻に繰り返し投稿できますが、繰り返しが不要になったら人手で止めないといけません。
いつ止めるかを覚えていないといけないのが煩わしかったので、自動で止まるSlackリマインダーを作りました。
実体は、Googleスプレッドシートを読み出し、リマインドが必要な期間内であれば投稿するPythonスクリプトです。
Pythonスクリプトを定期的に実行する環境として、無料の範囲で使えるAWS LambdaとCloudWatch Eventを用いました。
2つ目は、スタッフmtgのたびの議事録の用意を自動化した例です。
Googleドライブに用意されたテンプレートを毎回人手でコピーして準備することをイケていないと感じていました。
そこで、Pythonスクリプトで指定したGoogleドキュメントをコピーできるようにしました。
Slack経由でスクリプトを起動したかったため、AWS Lambdaに配置し、Amazon API Gatewayでスクリプトを起動するURLを用意しました。
このURLをSlackのSlashコマンドから呼び出すようにしました。
構成とタイムラインは以下のとおりです。
※サンプルでは、構成を箇条書きで示し、大きな項目に所要時間の見積もりを付けることにします。
- 導入(5min)
- 自己紹介
- PyCon JPスタッフの紹介
- 問題意識
- 1例目:カスタムSlackリマインダー(11min)
- Slackのリマインダー機能について
- 自動で止まるリマインダーを作る
- PythonからSlackへの投稿(urllib)
- PythonでGoogleスプレッドシートの内容を読み出す(authlib, gspread)
- AWS LambdaとCloudWatch Eventを紹介
- AWS Lambdaへのデプロイ方法とハマリポイントへの対処
- 2例目:テンプレートコピーコマンド(11min)
- スタッフmtgの準備について
- Pythonスクリプトで議事録テンプレートをコピーする
- PythonでGoogle Driveのドキュメントを複製する(PyDrive)
- スクリプトのAWS LambdaへのデプロイとAPI Gatewayの設定
- Slash commandからAWS Lambdaを呼び出すための設定
- まとめ (1min)
- 質疑応答 (2min)
Notes
このトークにあなたがふさわしいと考える理由やこのトークをするモチベーションを書く部分です。
私は2019年からPyCon JPのスタッフ活動を始めました。
活動の中ではSlackやGoogle Driveなどいくつかのツールを使いますが、単純作業の繰り返しを見つけては自動化を試みてきました。
手応えのある自動化の例をトークで共有することで、自動化に興味のある方にとって着想を与える機会になればと考えています。
カンファレンス後の動画のアーカイブや配信、スタッフや聴衆による発表中の写真の撮影(スライドを含む)とそれらのSNSでの共有に同意するか回答してください。
サンプルプロポーザルは以上です。
このブログがプロポーザルの項目に具体的に何を書くかの参考になれば幸いです。
(疑問が残っている場合は、こちらで用意した説明が不足していると思われますので、質問フォームから遠慮なく質問してください)
--------------------------------------------------------------------------------
Hi there,
I'm Futatsugi, a leader of the PyCon JP 2020 program committee.
I show a sample proposal for PyCon JP 2020 on this post.
Compared to last year, we have made significant changes in our proposals.
I've shared the background and explanation of the changes in other posts.
In this post, I'll
show you concretely what we are supposed to write.
If you have any questions, please use
the question form to ask us.
Sample proposal
Here's an example of a proposal for a talk in which I will share "a few cases of automation in PyCon JP staff activity using Python".
I suppose to fill in the proposal form with the parts written in
italics in this post.
Session title
Join PyCon JP as a staff with Python!
This talk is 30-minute long in Japanese.
Language
Japanese
Language of presentation material
Japanese only
Session format
Talk(30min)
This talk shows two examples of automation (about 10 minutes per example).
Track
I’ll select
Case studies (including web programming and machine learning)
because I think this talk also can be said as case studies of automation.
For more information on choosing a track, please refer to
this post.
Level (Audience Python level)
I’ll select
Intermediate
because I am going to talk about examples of automation with
third-party packages.
For more information on choosing the Audience Python level, please refer to
this post.
Audience expertise
I think the non-Python part of this talk is
what the staff at PyCon JP does.
Audience will not need knowledge of PyCon JP staff activities for this talk, so I'll select
0%.
For more information on choosing Audience expertise, please refer to
this post.
Prerequisite knowledge for attending the session
Experience of writing automation scripts in Python, using some kind of package.
It would be more understandable if you have experience of automating the staff about Slack or Google Drive with Python, which I handle in talks, but not required.
What audience take away from your talk
- How to post a message to Slack with Python
- How to do the above regularly
- How to manipulate Google Drive documents with Python
- A series of ways to manipulate Google Drive documents from Slack (via Python scripts)
- Knowledge of what the PyCon JP staff is doing
Elevator Pitch
If you're a Pythonista, you've probably experienced the pleasure of automating the boring stuff with Python.
In this talk, I'll be sharing two examples of automation with Python from PyCon JP staff activities.
You'll learn how to work with Slack and Google Drive in Python.
(274 characters including newline characters)
Description
You should write
detail, structure and timeline of your talk in the description.
詳しいほど具体的にトークの内容を伝えることができます。
The more detailed description you write, the more clearly you can tell your talk to reviewers and audience.
In PyCon JP staff activities, we use a lot of tools such as Slack and Google Drive.
I introduce two examples of how Python solved some of the things that I felt were not cool with the tool.
The first is an example of a reminder feature in Slack.
Slack's reminder feature enables us to post a specified message at a specified time repeatedly, but we have to stop it manually.
It was annoying for me to have to remember when to stop, so I created a reminder which can end automatically.
I creared a Python script that reads a Google spreadsheet and posts messages within a period when a reminder is needed.
I used AWS Lambda and CloudWatch Events, which are free to use for this purpose, as an environment to run Python script regularly.
The second is an example of automated preparation of the minutes for each staff meeting.
I felt that it was not cool to copy a template Docs in Google Drive manually each time.
So I made it possible to copy the Google Docs specified with the Python script.
I wanted to launch the script via Slack, so I placed it in AWS Lambda and prepared a URL to kick the script with Amazon API Gateway.
Slack's Slash command will call the URL.
Outline and timeline are as follows.
* In this sample, I will itemize the structure and attach an estimate of the time required for each large item.
- Introduction (5min)
- self-introduction
- introduce PyCon JP staff activities
- What I saw as the Issues
- Example 1: Customized Slack reminder(11min)
- introduce Slack's reminder feature
- Create a reminder which can end automatically
- how to post messages to Slack with Python (urllib)
- how to read Google spreadsheets with Python (authlib, gspread)
- Introduce AWS Lambda and CloudWatch Events
- how to deploy on AWS Lambda and avoid pitfalls
- Example 2: Slack command to copy template Google Docs (11min)
- Preparation for staff meetings
- copy the minutes template with a Python script
- how to copy a document in Google Drive with Python (PyDrive)
- how to deploy the script on AWS Lambda and configure Amazon API Gateway
- how to call AWS Lambda from Slash command
- Summary (1min)
- Questions and answers (2min)
Notes
In Notes, write your motivation for this talk or why you think you’re the best for this talk.
I started activities as a PyCon JP staff in 2019.
We use several tools in our operations, such as Slack and Google Drive.
Whenever I found repetitions of simple tasks, I tried to automate them.
By sharing examples of successful automation in my talk, I hope to provide an exciting opportunity for those interested in automation.
Please place a check mark if you agree to your talk being archived and streamed after the conference.
Also, place a check mark if you agree to allow PyCon JP staff and audience to take screenshots of you and your materials during the presentation and share them on SNS.
That's all for this post.
I hope this post is a reference for what specifically to write in each item of a proposal.
(If you still have questions, feel free to ask them from the question form; The explanations above may not be enough or clear unintentionally.)