PyCon JP のスタッフ活動をPythonで自動化した事例を共有するトークのプロポーザルをサンプルとします。
斜体の部分をプロポーザルのフォームに記載します。
Session title
PyCon JPにPythonと一緒にスタッフ参加しよう
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)
Elevator Pitch
このトークでは、退屈なことをPythonにやらせる例を、PyCon JPのスタッフ活動の中から2つ共有します。
1つは、期日になったら終了するSlackのリマインダーの代替機能、もう1つは、Google Driveのテンプレートのドキュメントをコピーする機能をSlackコマンドとして実現する方法です。
このトークを聞くことで、PythonでSlackやGoogle Driveを操作する方法が分かるでしょう。
上記で200文字程度です。
Track
自分が感じたPyCon JP に関する課題の解決方法の紹介なので、
Approaching to social problem
を選択します。
Trackの選択については、こちらのブログも参考にしてください。
Level (Audience Python level)
サードパーティーのパッケージを使った自動化の例を話すので、
Intermediate
とします。
Audience Python levelの選択については、こちらのブログも参考にしてください。
オーディエンスに求める前提知識 / Prior knowledges speakers assume the audience to have
何らかのパッケージを使って、Pythonで自動化スクリプトを書いた経験。
トークで扱う、SlackやGoogle DriveについてPythonで自動化した経験があると、トークがより理解しやすいと考えますが、必須ではありません。
オーディエンスが持って帰れる具体的な知識やノウハウ/ Knowledges and know-how the audience can get from your talk
PythonでSlackにメッセージを投稿する方法
上記を定期的に行う方法
PythonでGoogle Driveのドキュメントを操作する方法
Pythonスクリプトを使って、Slackを起点にGoogle Driveのドキュメントを操作する一連のやり方
PyCon JPのスタッフがやっていることについての知識
この題材を話すのに自分がふさわしいと考える理由やこのトークをするモチベーション / Why you think you are the right person to talk about this subject and your motivation for giving this talk
このトークにあなたがふさわしいと考える理由やこのトークをするモチベーションを書く部分です。
私は2019年からPyCon JPのスタッフ活動を始めました。
活動の中ではSlackやGoogle Driveなどいくつかのツールを使いますが、単純作業の繰り返しを見つけては自動化を試みてきました。
手応えのある自動化の例をトークで共有することで、自動化に興味のある方にとって着想を与える機会になればと考えています。
このトピックについて過去の登壇で使った資料やソースコードのURL
あれば記入してください。Optional fieldです。
Language
Japanese
発表資料の言語 / Language of presentation material
Japanese only
Notes
Notesは書いてもレビューの対象にはなりません。
Speaker fields 以下の項目については、レビュアーからは見れないようになっています。
サンプルプロポーザルは以上です。
このブログがプロポーザルの項目に具体的に何を書くかの参考になれば幸いです。
(疑問が残っている場合は、こちらで用意した説明が不足していると思われますので、質問フォームから遠慮なく質問してください)
プロポーザルフォームはこちら。
--------------------------------------------------------------------------------
Hi there!
I'm masmaori, in charge of the talk.
In this blog, I would like to show a sample proposal for PyCon JP 2021 and share with you what exactly you need to fill out.
If you have any questions, please use the question form.
Sample proposal
This is a sample proposal for a talk sharing a case study of automating PyCon JP staff activities with Python.
The italic parts should be included in the proposal form.
Session title
Join PyCon JP as a staff with Python!
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 resolved the problems with those 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 itself 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)
Elevator Pitch
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.
The above is about 30 words.
Track
I’ll select
Approaching to social problem
because I think this is an introduction to the solutions to the issues I felt about PyCon JP.
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.
Prior knowledges speakers assume the audience to have
Experience of writing automation scripts in Python, using some kind of package.
It would be more understandable if you have experience of automating the stuff about Slack or Google Drive with Python, which I handle in talks, but not required.
You can also refer to this post to fill out the form.
Knowledges and know-how the audience can get 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
Why you think you are the right person to talk about this subject and your motivation for giving this talk
This is the part where you write about why you think you are the appropriate person for this talk and your motivation for doing 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.
URLs of documents and source code used in previous presentations on this topic
Please fill in if you have any. This is an optional field.
Language
Japanese
Language of presentation material
Japanese only
Notes
Notes are not eligible for review even if you write them.
Speaker fields the following fields are not visible to reviewers.
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.)
Click here for the proposal form.