2018年9月30日

PyCon JP 2018 開催終了 および PyCon JP 2019 について

PyCon JP 2018座長の吉田です。

PyCon JP 2018ご参加ありがとうございました。

カンファレンス2日目クロージングで発表した内容と一部重複しますが本blogでもPyCon JP 2018開催終了およびPyCon JP 2019 についてお知らせします。

PyCon JP 2018について

PyCon JP 2018は「ひろがるPython」をテーマとして開催しました。

参加者数はスプリント60名、チュートリアル:111名、カンファレンス:985名、
総勢1,156名と1000人を超える方に参加いただいた初のPyCon JPとなりました。

現在スタッフ各チームで振り返りを行っています。

また、参加者の皆さんから200件以上もアンケートをいただきました。
アンケートについても内容を確認し、今後のPyCon JPに生かしています。

スピーカーの皆さん、スポンサーの皆さん、スタッフの皆さん、参加者の皆さん
多数の方に参加いただき本当にありがとうございました。

PyCon JP 2018作業への協力をいただいた関係各社ありがとうございました。

また、私事ですが、2018では業務時間内にPyCon JP 含めOSS作業をすることを所属会社(サイバートラスト株式会社)から許可いただきました。ミーティング会場提供含めありがとうございました。

PyCon JP 2019について

PyCon JP 2019の開催については現時点で決定していることのみをお知らせします。

カンファレンス会場は今年と同様 大田区産業プラザPiO です。9/16(月・祝)と9/17(火)の2日間開催も今年と同様です。

スプリントおよびチュートリアルについては開催場所、日程含め今後検討していきます。
スタッフ募集開始やCFP開始時期やスポンサー募集時期についても今後となります。
上記含めお知らせ事項については本blogやTwitter等でお知らせしていきます。

PyCon JP 2019の座長について、今年と同様私、吉田が担当します。

PyCon JP 2019もよろしくお願いします。

2018年9月28日

Python Boot CampコアスタッフによるPyCon JP2018参加レポート

Python Boot Campコアスタッフの筒井です。全国でPythonチュートリアルを開催するため活動している「Python Boot Camp(略称: PyCamp)」は今年で3年目を迎えました。
「これだけ長く続いたイベントの過去回参加者が一同に集まって交流できたらきっと楽しいはず。そして、盛り上がった勢いでイベントの楽しさを宣伝したい!」 という思惑で、PyCon JP 2018に合わせて以下の2つのイベントを開催してきました。
  • 2018年9月16日(日) 
  • 2018年9月18日(火) 
この記事では、コアスタッフの筒井と小林が当日の様子についてレポートします。 
(ミートアップについての担当: 筒井、ポスターセッションについての担当: 小林) 

ミートアップについて


Python Boot Campコアスタッフの筒井です。
2018年9月16日(日)に開催したミートアップの様子についてお伝えします。

「ミートアップ」は、過去回の現地スタッフ・TA・コアスタッフ・講師・PyCamp開催に興味がある人が集まって、各自の近況や開催したい地域について語り合うイベントです。
私が昨年書いたPyCon JPポスターセッションのレポートブログでは、次回は「Python Boot Camp大同窓会」みたいなものがやれたらいいなと書いたのですが、その願望がそのまま叶ったようなイベントでした。
18日のポスターセッションで着るためのPython Boot Camp Tシャツも受け取りました。コアスタッフだけではなく、開催に貢献してくれた「参加回数2回以上の講師・現地スタッフ・TA」も同じものを受け取っています。このTシャツを着た人が2日後のポスターセッションに一同に集まってくれるのかと思うと、楽しみですね!

念願のPython Boot Camp Tシャツゲット!
念願のPython Boot Camp Tシャツゲット!


背中は過去の開催日と開催地をPythonの辞書型で表しています(この写真は後日撮影)
背中は過去の開催日と開催地をPythonの辞書型で表しています

昨年のポスターセッションでお会いした人、今年始めてお会いする人など、いろんな人と話をできたのはコアスタッフ冥利に尽きる体験でした。
コアスタッフは基本的にオンライン上での現地スタッフのサポートが役割で、現地での盛り上がりは実感しにくいと普段から感じていました。そんな私でも、今回ミートアップに参加して参加者の生の熱気を感じることができました。「大勢で集まって同じ技術について話題にできる楽しさ」も実体験ベースで伝えやすくなったように思います。


参加者の様子
参加者の様子
会場は肉とビール・ワインが名物の店で、メインディッシュはなかなか食べごたえがありました(ちょっと飲みすぎたかも💦)。
会場は肉が美味しい店でした
会場は肉が美味しい店でした
ビールも最高でした(これ結構アルコール度数が結構強かった…)
ビールも最高でした(これは結構アルコール度数が強かった…)

来年の開催日は未定ですが、今年と同じぐらいの時期に開催する予定です。今回参加できなかったみなさん、来年ぜひお会いしましょう!

ポスターセッション

Python Boot Campコアスタッフの小林です。
私からは、2018年9月18日(火)に開催したポスターセッションの様子をお伝えします。
Python Boot Camp Tour 👕 を着ての参加です。

当日の様子

ミートアップに続き、PyCon JPでのポスターセッションにもPython Boot Campに参加された皆さんが集まってくれました。また、Python Boot Campに興味がある新しい地域の方や、「Djangoで始めるPyCharm実践入門」のセッションでお話させていただいた方も来てくれてテンション上がりまくりです。
Python Boot Camp Tシャツを着てポスターセッション中
Python Boot Camp Tシャツを着てポスターセッション中

以下のような質問がよく聞かれました。
  • 「地方だから、人が集まるのかな?」 
  • 「現地スタッフってどんなことをするの?」

「地方だから、人が集まるのかな?」は、やってみないと分からないので気にしなくていいですよ。現地の広報を頑張ると、結構集まってくれますよ。

私も香川県で開催した現地スタッフ経験者なので、この気持ちはよくわかります。 
よし、やるぞと一歩踏み出し、イベント主催者として他の勉強会で宣伝するなどの広報をした結果、開催前日には、20名 満席で開催できました。
Python Boot Camp がきっかけで地元の仲間を巻き込んでコミュニティが発足ということもできました。

Python Boot Campは、現地スタッフのPython熱量駆動で運営できていると思っています。これまで開催していただいた現地スタッフの皆さま本当にありがとうございます。 開催した他県の仲間がPyCon JP に集まって地域交流できるのも魅力です。 PyCon JPが初めてでも開催した仲間同士が繋がって盛り上がれることも面白いです。

Python Boot Camp 開催希望地域

今年のポスターセッションでは、開催希望地域は地図上に付箋を貼ってもらいました。
以下の地域から開催希望がありました。
開催希望地域:「栃木、山梨、三重、和歌山、岡山、山口、高知」


Python Boot Camp 開催希望
Python Boot Camp 開催希望
嬉しいことに山梨では、ポスターセッション来場者から立候補がありました。
開催希望地域の皆さま。ぜひぜひ、現地スタッフとして応募してください。募集中です。
下記のフォームよりお待ちしております。

現地スタッフ申し込みフォーム

各県でPython Boot Campを開催し、このイベントがきっかけとなってPythonの輪を広げることが最高ですね。

ひろがりの輪

最後に、今年集まっていただいた皆様、本当にありがとうございました。また来年お会いしましょうー。


PyCamp 参加者との記念写真
PyCamp 参加者との記念写真

現場からは以上です。

2018年9月25日

「Python Boot Camp in 京都」を開催しました!

Python Boot Camp  (以下、PyCamp) in 京都、現地スタッフを務めるゆーたろー (@yutailang0119)です!

少し前ですが、去る8/25に京都市烏丸御池の株式会社はてなでPyCamp in 京都を行いました!

「Python Boot Camp in 京都」開催決定のお知らせ

集合写真

偶然にもApple Kyotoのオープン日でした!

スタッフ打ち合わせ

スタッフははてな集合後、準備もそこそこに、ランチミーティングを行いました。
場所は私のおすすめの 串くら に
みんなで親子丼をいただきました
自己紹介しつつ、京都を感じさせる店内とおいしいごはんで、和みました。

チュートリアル

講師の清水川氏 (@shimizukawa) だけでなく、TAは東京、名古屋、神戸と、遠方から遥々集合したチームで、参加者をサポートしました!
参加者は20名ほどで、広く机を使って作業ができました。
チュートリアル中の風景
途中で行った「リアルFizzBuzz」は、参加者も一緒にできるアクティビティで、楽しみながらチュートリアルは進みました。
そのお陰か、活発に質問が行われる会となりました。
(他開催に比べても、非常に多く質問が出たとのことで、予定時間をオーバーしてしまいました。)

おやつタイム

PyCamp恒例のおやつタイムでは、 抹茶コルネッタ をご用意しました。
会場近くに販売店があるので、気になっていたのでした

懇親会

懇親会は三条烏丸の 龍馬 で行いました。
各々日頃どんなことをやっているのかや、京都のPythonコミュニティ事情、Pythonとの関わり方などの話で盛り上がりました。
普段は医療系でPythonどころかプログラミングも最近始めたばかりという方や、インターン先を探している学生など、幅広いメンバーで交流しました。
一部のメンバーは、Before9 で二次会を行いました。
PyCon JP 2018 直前ということもあり、「今年初めて参加するので、事前に知り合いができてよかった」といった声もありました。

Togetter

当日の様子は以下のTogetterにもまとめています。
https://togetter.com/li/1259891

まとめ

京都でのPyCampは2度目の開催でした。
私は2月に京都へ来るまで東京の勉強会によく参加していましたが、京都にはPythonだけでなく、初学、入門者向けのイベント、勉強会が少ない印象です。
このPyCamp in 京都をきっかけに、多くの潜在層がいることがわかったので、ぜひ京都のPythonコミュニティを盛り上げて行ければと思っています。
開催の際は、ぜひご参加ください!!!

また、講師の清水川氏のブログも合わせて、ご覧ください。

Python Boot Camp 開催地スタッフ募集

PyCon JP では日本各地での初心者向け Python チュートリアルイベント
「Python Boot Camp ( #pycamp ) 」を開催しています!!
現地で Python Boot Camp の開催をサポートをしてくださるスタッフの方を募集しています。
ご興味のある方は下記のフォームよりご連絡ください。
特に未開催の地域での立候補を熱望しています!

2018年9月19日

「Python Boot Camp in 徳島」を開催しました!

「Python Boot Camp in 徳島」現地スタッフの河野です。
8月25日(土)に、徳島県徳島市のねすとラボCafeで、
「Python Boot Camp in 徳島」を開催しました。
集合写真
Python Boot Campは一般社団法人 PyCon JP がPythonの普及を目指して全国各地で開催する初心者向けのチュートリアルです。
徳島はPython Boot Camp の第24回目となります。今回初めて、京都との同日開催となりました。
一般参加者13名、学生2名(1人は中学生!)、計15名の参加者、講師1名、ティーチングアシスタント(TA)2名、現地スタッフ1名、総勢19名での開催となりました。

イベント準備
少し早めに集まり、会場の設営後講師の鈴木たかのりさん (@takanory)、TA、スタッフでランチミーティングを行いました。
ランチをいただきつつ、全体の流れ、各メンバーの役割などについて確認しました。
ランチは会場となったねすとラボCafeで、キーマカレーやガパオライスをいただきました。
準備万端!

本編
13時からイベントスタートです。
参加者が順に自己紹介。県内だけでなく、愛媛や本州から参加いただいた方もいらっしゃいました。プログラム未経験者から業務でバリバリ使っていらっしゃる方まで、幅広い参加者が集まりました。
チュートリアルの前半は、Pythonの基礎について学びます。
基本的な文法に始まり、FizzBuzz問題などを通して次第に本格的なプログラミングに進んでいきます。一区切りごとに、参加者から熱心な質問が寄せられました。
講義の様子
講座を聞きながら手を動かします
15時過ぎにおやつタイム。地元の洋菓子屋さん、イルローザさんのマンマローザ、ゆずとゆずのケーキ、鳴門金時ポテレットを用意しました。
イルローザさんのお菓子
後半はいよいよ山場、ファイル操作・環境構築・スクレイピングまで進みます。長めに時間を取り、講師やTAが丁寧にフォローしていきます。少し難しい部分もありましたが、最終的にはみなさんゴールにたどりつくことができました。
プログラミングにも熱がこもります
講師・TAがしっかりサポート
懇親会
懇親会は、徳島駅前の「酒と飯のひら井 徳島店」さんで開催しました。
参加者・講師・TA・スタッフでフィッシュカツや鳴門わかめなど地元の特産品を食べながら、地元のITやコミュニティ事情など様々な話で盛り上がりました。
予想外に好評だった鳴門わかめのおでん
イベントを終えて
たくさんの方にご参加頂き、ありがとうございました。
私自身、香川でこのPython Boot Campを体験し、是非地元の徳島で開催したいと思っていました。その願いがかない非常にうれしく思っています。
参加者の方からは、「もっとこういうイベントを徳島で休日に開催してほしい」といった声を頂きました。
これからも、徳島のPythonを盛り上げていきたいと思っています。

Togetterまとめ
当日の様子は以下のTogetterにもまとめましたのでこちらもぜひご覧ください。

Python Boot Camp 開催地スタッフ募集
PyCon JP では日本各地での初心者向け Python チュートリアルイベント
「Python Boot Camp ( #pycamp ) 」を開催しています!!
現地で Python Boot Camp の開催をサポートをしてくださるスタッフの方を募集しています。
ご興味のある方は下記のフォームよりご連絡ください。

現地スタッフ申し込みフォーム


2018年9月10日

PyCon JP 2018 Sprintは、参加費無料で盛りだくさん!(参加者募集中) / PyCon JP 2018 Sprints Just Got Even Better!



(English below)

PyCon JP 2018 Sprintは、PyCon JP 2018のチケットがなくても無料で出席できます。
さらに無料のプロフェッショナルな託児を提供しています。
しかし、それだけではありません!

スプリントスポンサーである株式会社HDEのご協力で、スプリントの1日中、無料のコーヒーをご利用いただけます。
またスプリントの発表終了後に株式会社HDEのご協力で懇親会の食事とお酒も用意していただけけることになりました。ハラールも選択可能です。

スプリント自体と同様に、PyCon JPチケットは必要ありませんが、
皆さんのために十分な料理を準備できるように、事前にSprint Connpassに登録することをお願いします。
スプリント後の懇親会に参加したい場合は、スプリントに参加していただければ幸いです。



Did you know that the PyCon JP 2018 sprints are not only free to attend, even without a PyCon JP 2018 ticket, but also offer free, professional child care?
But that's not all!
During the day, free coffee will be available and now, thanks to the generosity of our sprint sponsor HDE Inc, there will also be a free dinner with drinks after the sprints. Halal options will be available.
As with the sprint itself, no PyCon JP ticket is required, but we ask that you sign up in advance on our connpass page so we can make sure to order enough food for everyone. We would appreciate it if you participated in the sprint if you want to join the dinner.

2018年9月9日

トークのスケジューリングを組合せ最適化問題として解く

 PyCon JP 2018 システムチームの池田(@ikedaosushi)です。

 いよいよPyConJP 2018開催まで1週間に迫りました。トーク、ポスター、LTとタイトルと概要だけ見ても興味深い内容ばかりで当日が待ち遠しいです。

 さて、先日HP上で全体タイムテーブルを公開し、トークのスケジュールを皆さんにお知らせすることができました。タイムテーブル詳細については是非HPをチェックしてください。(https://pycon.jp/2018/event/conference)



 トークのスケジューリング(スケジュール作成)は、一見すると簡単そう、単純そうに思えるかもしれません。しかし、参加者の皆さんの体験をより良いものにするためには、言語・ジャンル等の複数の要素を鑑みながらバランスよく割当をする必要があり、意外と人間が直接解くには難しい問題です。この投稿では、PyCon JP2018をより良いカンファレンスにするために、どのようにトークのスケジューリングに取り組んだのか共有したいと思います。

問題


 「意外と難しい問題」と書いたのですが、何が実際に難しいのか、問題なのか、を説明します。例えば、言語やジャンルを1つとっても一様に分布しているわけではないので、何も考えずに割当をしてしまうと

  • 日本語がわからないが英語のトークが特定の時間帯に固まってしまっていて、その時間に聞けるトークがない
  • Djangoのトークが聞きたいか特定の時間帯に固まってしまっていて、聞けないトークがたくさんあった
のような問題が発生する可能性があります。そこでできるだけ参加者にとって最適な割当を行うことが必要になります。


トークの特徴を可視化する


 それでは実際のデータを覗き見して、上述した問題が起こりうるのかを確かめます。採択されたトークがどんな特徴を持っているかを可視化してみたいと思います。

言語の割合


 言語の割合としては日本語のトークが多く、英語のトークの約3倍ありました。割当時には英語のトークをバランスよく割り当てる必要があることがわかります。




ジャンルの割合


 次にジャンルの割合です。PyCon JPではプロポーザルの送信時にはジャンルの指定を行っていないため、ここでジャンルいうは自分が1つ1つトーク内容をチェックしていき、分けたものです。最初は「ML(Machine Learning)、データ解析」「WebApplication」がとても多くなってしまったため、一部切り分けるために「Jupyter」「Django」という細かいジャンルを作るなど工夫してできるだけ割合が均等になるようにしました。ただ、それでも偏りは完全になくすことができず、「ML(Machine Learning)、データ解析」ジャンルの人気を感じる結果になりました。

 このように、「言語の偏り」「ジャンルの偏り」が顕著にあることを確かめることができました。それでは実際にどうこの問題を解決するかを考えていきたいと思います。

組合せ最適化問題


 問題へのアプローチには様々な選択肢がありますが、今回は、組合せ最適化問題の中の割当問題として解こうと考えました。割当問題は従業員の勤務時間をスケジューリングする問題や工場での最適なオペレーションを出力する問題などに適用されています。


 ちなみに組合せ最適化問題についてはPyCon JP 2015で、斉藤努さんが「組合せ最適化を体系的に知ってPythonで実行してみよう」というタイトルで発表されているので興味ある方はそちらも御覧ください。(https://www.slideshare.net/SaitoTsutomu/python-pycon-2015)

定式化


 割当問題として解くにあたり、下記のように定式化を行いました。




 部屋、時間、トーク、ジャンルの集合として定義し、x, y, zはその組み合わせが該当するような変数として定義しました。y, zはもう決まっているので
目的変数と制約条件は下記のように設定しました。




 ごちゃごちゃしているので少し分かりづらいですが、やりたいこととしては
  1. 各時間帯で言語の偏りを最小化する
  2. 各時間帯でのジャンルの中で最も偏っている差を最小化する
の2つになります。荒っぽい定式化なのですが、後述するようにこれをベースにして最終的には運営チームによって完成させるため、プロトタイプ最速で作ることを重視しました。


Greedy Algorithm


 この定式化した問題を取り組むアプローチとして、Greedy Algorithmを採用しました。Greedy Algorithmは離散最適化問題を解くアルゴリズムの1つで、現時点で取れる最も効率的な選択肢を1つ選び(貪欲選択)、残った問題を部分問題として再帰的に解いていく手法です。


 今回の例でいうと、「ある枠に対して、割当可能な中で最も効率的な1つのトークを割り当てる」のが貪欲選択になり、「残った枠、残ったトークに割当を行う問題を解く」のが部分問題を解く部分になります。


 Greedy Algorithmで解いた解が厳密解であることが保証されている条件は、貪欲選択性と部分構造の最適性を満たしていることなります。今回の問題設計だと、それが満たされていないため、厳密解であることは保証されていないのですが、今回はアドホックな要件(このトークの性質上、別のあるトークの後に配置したい、など)があり得たので貪欲選択時に要件に対して比較的簡単に対応できると考えられるGreedy Algorithmを選択しました。

割当してみました


 Greedy Algorithmを(もちろん)Pythonで実装し結果を出力しました。
 最終的な割当は是非HP(https://pycon.jp/2018/event/conference) をチェックしていてください。注意点として、
  • Greedy Algorithmではベースの割当を行い、その後、運営チームで目視し問題がないか確認、調整などを行った
  • 割当後に、ご家族の都合などでトーク辞退や日付移動の依頼があった関係で、完璧に偏りのない割当は実現ができていない
ことがあるのでご留意ください。

割当結果の可視化


 最終的な割当結果を可視化してみました。

言語


 言語に関しては「2日目 11:15 - 12:00」の時間帯は上述した注意事項の理由から日本語のトークのみになってしまいましたが、それ以外の時間帯に関しては英語のトークが大きな偏りなく配置できました。

ジャンル


 ジャンルに関しても1つの時間帯に特定のジャンルが偏ることなくバランスよく配分できました。言語に比べてジャンルは種類が多いので、人間が表とにらめっこをしながら割当を行った場合、バランスよく配分するのが難しいため、この結果には満足しています。



まとめ


上記のように、PyCon JP2018 では参加者の方により楽しんでいただけるように最適なトークの割当を考え、実際に割当を行っています。当日皆さんがPyCon JPを楽しんでいただければ幸いです。
 それでは来週、会場でお会いしましょう!