プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

SphinxCon JP 2017 に参加してきた #sphinxjp

自分がIT系の勉強会へ定期的に参加するようになったきっかけの一つであるSphinxのイベントがあったので参加してきました。

https://sphinxjp.connpass.com/event/71056/

おしゃれな会場の様子が分かるツイート。

以下、今回のイベントの発表目次です。

  1. cocoatomo 「Sphinxが支える翻訳ドキュメント」
  2. 鹿野桂一郎 「Sphinxで売り物の書籍を作ってみた」
  3. r_rudi 「Re:VIEWとSphinxと、時々、ボク」
  4. Iosif Takakura 「社内のマニュアルをSphinxで作ってみた」
  5. 渋川よしき 「HTMLテンプレート再構築案」

イベントが始まるときの会場説明の際の様子はこんな感じでした。

Untitled

イベント途中で提供されていたケータリングの様子。

Untitled

ケータリングに群がる人々。

Untitled

以下、メインコンテンツである発表の様子を写真とともに軽く感想を交えて書き残します。

Sphinxが支える翻訳ドキュメント」 @cocoatomo

Untitled

普段、「ちょびよみ」というこじんまりとした勉強会でお世話になっている @cocoatomoさんの発表でした。

発表内容のメインは「翻訳ドキュメントができるまで」とのことで、想定読者はSphinxを使っている人と翻訳プロジェクトの管理に興味がある人で話をされていました。

これが発表で使われたスライドです。

Pythonドキュメントの翻訳率は2017/11/27時点で日本語が圧倒的の92.73%!

PEP545により、日本語版とフランス語版が docs.python.orgのドメイン配下に置かれるようになったとのことで、素晴らしいですね。

翻訳プロジェクトの始め方

始めるに当たって考えること

  • 原文と訳文は1対1か? 脚注、訳注の追加や文章の順序を入れ替えをしたいか?
    • YesならSphinxはやめておいたほうがいいだろうとのこと
  • 翻訳作業は一度きりか継続的に行うか?
  • 翻訳プロジェクトを管理する上で困難な点は何か?
  • 困難な点をフォローするために、どのツールやサービスを使って、どんな運用をしていくのか

当たり前の話だろうけど、単発型よりも継続型の方が管理・運用が大変とのこと。

翻訳作業の困難さ

  • 原文の管理
    • 更新の取り込み
  • 訳文の管理
    • 原文と訳文の対応つけ
    • 複数人作業による翻訳作業の衝突回避
  • 翻訳
    • 訳語の統一
    • 表現の統一(特に複数人作業)

発表中、一時的にディスプレイとPCの接続がおかしくなったりする、あるあるなトラブルが発生したりしました。

普段から翻訳に対する思いをTwitterやSlackや或いは直接お話しして伺っていたのですが、改めて翻訳に対する熱い思いをお持ちなのだなと感じました。

Sphinxで売り物の書籍を作ってみた」 鹿野桂一郎 (@golden_lucky)

敏腕編集者の鹿野さんによる発表。怪我をされたらしくて松葉杖で歩いていて、発表時は座って喋っていたので下の写真には写っていません。

Untitled

発表に使われたスライドは以下の通りです。

『Goならわかるシステムプログラミング』ではSphinxのmake latexpdfでPDFを生成してはいないとのこと。

正直TeXは全く分からないに等しい知識レベルだったため、発表内容で披露された数々の努力がどれくらい大変なことだったのかは想像でしか分からないですが、売り物の書籍を作るのはやはり大変なことなんだなあというのが感じたことです。

話しを聞く限り、これはTeXに習熟した鹿野さんだからこそ可能になったハックだなあと思いました。話している内容が完全に技術寄りなので、技術者が編集者をしているという評はその通りだと思いました*1

完全に「鹿野専用Sphinx」という趣なくらいの追加・改造をしているようで、何かロボットアニメを見ているような気分になりました。

「生TeX埋め込みのロールを早く作っておけばよかった」という話が面白かったですね。

まとめ: 「Sphinxで困ったら日本語でツイートすればいい」

鹿野さんからの一言を引用。

「Re:VIEWとSphinxと、時々、ボク」 @r_rudi

Untitled

スライドはこちらです。

Re:VIEWとSphinxと、時々、ボク — SphinxCon 2017 1 ドキュメント

タイトルからも分かるようにRe:VIEWとSphinxの話が主でした。全体的にRe:VIEWとreSTの特徴や変換についての話が多かったのですが、reST->Re:VIEWの変換をするSphinx拡張を書いていただけではなく、Re:VIEWの方にreSTへ変換する機能をPRで出してmergeされていたという話しを聞いてびっくりすると同時にすごいなって思いました。

SphinxCon 2017が終わった後、@r_rudiさんを含めた有志で軽く飲み会みたいなものが開かれていたのでそれにお邪魔して色々楽しい話が出来たのもよかったですね。

「社内のマニュアルをSphinxで作ってみた」 Iosif Takakura(@huideyeren)

Untitled

発表に使われたスライドはこちらです。

Excel方眼紙が大嫌いです!」ということを言ったら会場から拍手が出たのが面白かったですね。

技術よりも現実世界と戦う機会の多い人は彼の発表スライドを読んでみると共感することが多々あると思います。

実は発表者のTakakuraさんは前職の同僚で、同じプロジェクトをいくつか手がけたりしていたので、彼の発表の裏にある背景とかを知っている関係もあり、「ああ、やっぱり大変そうだなぁ…」と共感することばかりでした。

以下、発表を聞いているときの私の感想です。

「HTMLテンプレート再構築案」 渋川よしき(@shibu_jp)

Untitled

発表に使われたスライドはこちらです。

HTML Template Proposal for Sphinx 2.x — HTML Template proposal for Sphinx 2.x 2017.11.23 documentation

前の発表者のTakakuraさんの発表内容を受けて、「make singlehtmlでwordやmediumに貼り付けると綺麗な形のまま形式を変換できるので、引き継ぎの形の一つとしておすすめ」という小話があり、かなり有用な知識が得られましたね。

渋川さんの話はデベロッパーやメンテナ向けの話とのことで、epub3ビルダーの走りをSphinxにプルリクした身としてはかなりためになる話でよかったです。

話の内容を箇条書きにすると以下のような感じ。

  • HTMLテンプレートの依存の多さ・複雑さにより、自作のテンプレートを差し替えるのが難しくなっているので簡素化したい
  • 検索機能の強化をしたい
  • OGP(Open Graph Protocol)の強化
  • Offlineモード
  • パフォーマンス改善
    • Prefetch
    • AMP

今回の発表とは直接関係ないですが、私がプルリクでSphinxに追加した拙いepub3ビルダーを渋川さん*2がガシガシ作り直してくれたおかげで、昔とは比べものにならないほどvalidなepub3が生成できるようになったので感謝すると同時に、その辺りの作業を外から眺めていたこともあって、HTMLテンプレートの話とかは興味深く聞かせてもらいました。

r_rudiさんの項目でも触れた有志の飲み会に渋川さんも参加していて色々お話しできたのも楽しかったですね。

LT: 木星人はnbsphinx使ってみよう by driller/どりらん

Untitled

nbsphinxいいよ!という話しでした。

…すいません、集中力が切れていて、あまりちゃんと話を聞けてなかったです。

今発表スライドを見たらnbsphinx良さそうですねという感想です。最近Jupyter notebookを使うことが増えてきたので活用したいと思いました。

以下終了後の余談。

LT: Sphinx-users.jp というコミュニティの紹介 by @usaturn

今回のSphinxCon 2017の開催のとりまとめをしていたusaturnさんによるSphinx-users.jpの紹介。

Sphinx-users.jpが普段どういう活動をしているかを紹介して、来場者の人だけに『Sphinxをはじめよう 第2版』を安く購入できるクーポンコードを提示していたりしました。

多分発表スライドが公開されていない(はず)理由はこのクーポンコードがスライドに含まれていたからだと思います。

忙しい中、会場調整だったり各種とりまとめをしていたはずなのでお疲れさまでしたと伝えたいです。

まとめ

理由は分からないですが、何故か久し振りに参加して楽しく過ごせて「かつ」翌日体調的にそれほどダメージを受けなかったのでとてもよかったです。

あとそれほど日をまたがずに参加ブログ記事をアップできてよかったですね!

*1:世の中に存在する編集者の中で自分の編集作業用にHaskellでソフトを書ける人、そうそういないと思います

*2:アクティブなメンテナの小宮さんも結構改良に参加されていたはず

PyCon JP 2017に参加してきました (1日目) #pyconjp

前回の記事で書いたチュートリアルに引き続き、PyCon JP 2017のカンファレンス本体(1日目)に参加してきました。前回の記事はこちら。

takuan-osho.hatenablog.com

PyCon JP 2017のサイトはこちら。

pycon.jp

いつものパターンだと記事の内容をしっかりしようとし過ぎて時間かけすぎて結局アップしないまま終わってしまうので、後で随時内容を更新できるようにして、取りあえず記事をアップするところからやってみるつもり。

聞いたセッション

キーノート


201_101_Opening〜Keynote Peter Wang

初日のキーノートはPeter Wangさんによるもの。Anacondaで有名なContinuum Analyticsの共同設立者でCTOの方だそうです。

観測範囲によるバイアスが強いだけなのかもしれませんが、Anacondaを導入することで却って環境構築周りでトラブルを抱えるケースをたびたび見かけることがあったのと、以下の記事で山口さんが触れているようなPythonのパッケージ管理ツール周りの話を事前に知っていたこともあり、何かパッケージング周りで言及があるかなー?なんて思いながら聞いていました*1

ymotongpoo.hatenablog.com

そんなことを考えていたけれど、下手をしたら喧嘩を売ってしまうようにしか聞こえない感じでしか質問できない英語力なのでどうしたものかなー、誰か聞いてくれないかなーなんて思っていたら、そんな質問をドンピシャでしてくれた人がいました。「質問した人、誰だろう?」と思っていたら、後でTwitterのタイムラインを見たところ、その質問をしたのは@chezouさんでした。

medium.com

以前からためになるブログ記事を書いていたり、時々Twitter上でやり取りさせてもらったことがあったのでchezouさんのことは知っていたのですが、現実世界で会うことは今までなかったので「あの人がchezouさんだったのか!」と一人心の中で驚いていました。

詳しくは全体の感想を書く時に触れたいのですが、1日目終わりの懇親会でchezouさんにリアルでご挨拶できて楽しかったです。

Industrial Test Automation with Asyncio


201_102_Industrial Test Automation with Asyncio_Justus Perlwitz

  • 英語は聞きやすいタイプの人だったはずなのに上手く聞き取れなかったのが心残り
  • 話してたのはAsyncioの基本的なところで終わっていたので、もう少し応用的なことを聞きたかった自分としては物足りないところもあった
  • ボトルネックとなっているところがネットワーク由来かCPU由来かといった話は基本的ながらも普段自分がちゃんと意識できているとは言い難いところなので、復習したい

今(2017/09/21現在)、参加当時のことをメモを見ながらYouTubeを見返しながら気づいたけれど、話者が英語の場合、公式に字幕がなくてもYouTubeの自動生成字幕でかなりの部分がカバーできているっぽいので、今後英語のセッションでもYouTubeにアップされているなら見返そうかなという気分になりました。

after VOEZ launch: how to resolve problems of mobile game server development and service maintenance


201_104_after VOEZ launch: how to resolve problems of mobile game server …_郭 学聡 (Hsueh-Tsung Kuo)

  • 本格的なゲーム開発したことはなかったので本当の難しさを実感できるわけではなかったですが、「キャッシュを友好的に使う」など、真っ当な話が多くてよかったですね
  • 発表の最初の方で登壇者が関わったギャルゲ(?)のティーザー流してたのが印象的でした

len()関数がオブジェクトの長さを手にいれる仕組み


203_104_len()関数がオブジェクトの長さを手にいれる仕組み_Takayuki Shimizukawa

  • 凄く勉強になりました(小学生的な感想)
  • ただ、これはlv1ではないのでは…
  • この __len__ とか __call__ とか、結構長くPython使っているのにまだ押さえ切れてないのでちゃんとどこかで知識を埋めておかないとなあ…なんて思いながら聞いてました。

Secrets of a WSGI master


201_108_Secrets of a WSGI master._Graham Dumpleton

  • 参加していたときは壊滅的に英語が聞き取れなくて死んでました。リスニング力高めたい…
  • YouTubeには自動生成字幕機能があることを再認識したので、字幕使いながら後で見直したいですね

感じたこと

  • 帰宅した段階で各セッションの録画を見られるのはやはり正義
    • PythonでOAuth『サーバ』を構築した話」と「Python機械学習によるWebセキュリティの自動化」、それぞれ聞きたかったのに他の聞きたい奴と被ってしまって聞けなかったので、後で見られる録画があるのは本当にありがたい
  • とはいえ、せっかく参加しているのだから何か登壇者に質問しておけば良かったと思った
  • 一応頑張って英語のセッションを中心に聴講しに行きましたが、リスニング力低くて理解できない部分が多くて自分のふがいなさを感じる
  • 外で休憩しているときにPythonに限らない話(放送大学Apache Kafkaの運用、OCamlの学習、英語の技術書は斜め読みできなくてツラいといったことなど)について雑談できて楽しかった

明日もボチボチ楽しく参加します。

*1:リスニング力低いので同時通訳の力万歳!と思いながら聞いてました

#pyconjp 2017のチュートリアル『Chainerで学ぶディープラーニング入門』に参加してきた

タイトルの通りですが、2017/09/07に開かれたPyCon JP 2017のチュートリアルに参加してきました。

参加したチュートリアルChainerで学ぶディープラーニング入門です。写真を撮っていい場所とかタイミングを見失ったので、環境構築について書いてあったホワイトボードをチュートリアルが終わった後に撮った一枚です。

IMG_0834

参加した感想としては、「既知のこともそれなりにあったけど、Chainer等を使って実務に活用しようとする時にポイントとなる所などを学べたりしたので、参加してみて良かった」というところですね。実際にChainerのコードをいじるよりも、データセットを適切な形にしてChainerに渡すところに時間を使うようになるということを少しでも体験できたので、今後何かChainerで何かやろうとしたときに役立てられそうだと思いました。

後、以前『ゼロから作るDeep Learning』を一通り読み通していたので、内容的に置いてけぼりをくらうこともなかったのが良かったんだと思います。

時間的制約や難易度調整の問題で数学成分が少なくなる(=細かいところの説明は省かれる)のはしょうがないですが、休み含めて8時間でやっていたことを考えると基本的なことから始めた割には密度が濃い内容で満足しました。

あと、個人的に非常に印象に残っていてためになったなあと思ったのは、講師の方の分かりやすい説明&口調でした。本業の方で有料のハンズオンセミナーを担当されているだけあって、分かりやすい構成の説明というだけでなく、喋り方も聞き取りやすいように意識してされているのか、自分も何かの機会に発表する時には参考にしたい喋り方でした。

最初見たときは満員で参加する気も無かったのですが、参加人数増員の知らせをたまたま見た後急に参加したくなって参加したチュートリアルでしたが、満足度高く参加できて良かったです。

…本当はコードも含めたもっと具体的なことを書きたいなと思いつつ、まだ理解が足りないので今後の記事で何かしら今回学んだことを活かしたアウトプットができればいいなあ、なんて感じです。

PyCon JP 2016に参加してきました

表題の通り、PyCon JP 2016に参加してきました。昨年も参加したので何となく記事を見直しながら書いてます。

takuan-osho.hatenablog.com

来年のPyCon JPも楽しく参加したいですね!

昨年の感想で最後にこう書いているように、楽しく参加できました。

思えばPyCon mini JPの様子をUstreamから眺めていて興味を持ち始め、PyCon JP 2012の頃から実際に現地に参加するようになってから随分時間が経っているなあと実感します。

PyCon JP 2012の頃から数えるとPyCon JPへの参加は5回目ということになりますが、それだけ参加経験を積んでくると自分なりの参加スタイルをある程度確立できたようで、「無闇に全ての時間帯の発表を聞きに行って体力を消耗して後日体力的に死亡する」といった事態にならないようオープンスペースで休憩したり、久し振りに会う人と色んな話をしたり、無理せず楽しんで有意義な時間を過ごせたように思います。…と言いつつ、これを書いている2016/09/24(日)現在、疲れが出てグッタリしているわけですが!

参加したもの

モチベーションと体力があればスライド含めた各種リンクと感想を個別に書くのがいいとは分かりつつ、そうやろうとしていつも途中で頓挫して、結局参加記事を書かずに終わると言うことを何回も繰り返しているので、"Done is better than perfect"を言い訳にして参加したものだけ書き残しておきます。

リンク張り作業とか結構面倒なんですよね…

まあ、メディアスポンサーに名を連ねているTogetterさんが公式で以下のようなまとめを出していて、基本的にスライド・動画へのリンクをつけているのでそこ見ればいいと思います。

資料も反響もすべてチェック! 秋雨に濡れた早稲田大学西早稲田キャンパス #PyConJP 2016 まとめまとめ

1日目

  • Keynote by Jessica McKellar
  • Python入門コードリーディング (ビギナーセッション)
  • 基礎から学ぶ Webアプリケーションフレームワークの作り方
  • ISUCON大反省会 (オープンスペース)
  • LT & Closing

2日目

  • Keynote by Andrey Vlasovskikh
  • You Might Not Want Async

2日目は体力無くて休んでる時が多かったのでこれくらいです。あと、1日目はフルに参加できたのですが、2日目は空手の昇級審査 & 稽古があって途中17時くらいに一旦帰らざるを得なくてフル参加できなかったので、そこだけが残念でした。

実は今回のPyCon JP 2016のチュートリアルの中にあったSphinxチュートリアルにチューターとしても参加していたのですが、それについては別エントリでまとめようかなと思います。

全体的な感想

参加者としてとても過ごしやすいカンファレンスだったと思います。疲れて休みたくなったら食堂やオープンスペースなどで座れる場所がだいたい確保できましたし、オープンスペースで色々参加者の人が開きたい議論をしていたのに参加して楽しめましたし、ただ「発表を聞いて終わり」というだけではない楽しみ方をすることがしやすい環境だったと思います。

それを実現するには座長はじめをとした運営スタッフの皆様のご尽力があったからだと思います。ありがとうございました。

あと、個人的に驚いたのは早稲田大学の協力によって会場が無料で提供されていたというところですね。普通ならあれくらいの会場を借りるにはたくさんのお金がかかるはずなので。その分参加者側に還元されているはずだと考えるととてもありがたいことです。

2日間のカンファレンスに参加し終わった後少し後悔したのは、スポンサー企業さんのブースを回っておけばよかったなあということです。荷物が重くて余り歩き回りたくないなというのと、結構体力を消耗していて人と会話する気力が出てこなかったという理由はあるのですが、せっかくネット越しではなく現地に参加しているのだから、普段話すことのできない人と話せるチャンスだと考えると、もったいないことをしたなと思いました。

多分来年も参加すると思います。

2日目のLT & Closingには参加できなくて悲しかったので、Closingの部分は後でザッと該当部分の録画を見ましたが、PyCon JP 2017から新しい座長になるというところも驚きました。

PyCon JP 2017の座長は吉田さんということで、まだカンファレンスの詳細は決まっていないみたいですが、来年の開催を楽しみにしています。

あと、個人的な私信みたいになってしまいますが、たかのりさん、座長お疲れさまでした!

PyCon JP 2015に参加してきたので振り返る #pyconjp

PyCon JP 2015に参加してきました。今年のPyConも盛況に終わり、参加者も600名を超えるまでに増加したとのことです。イベント開催に尽力した運営スタッフをはじめ、関係者の方の努力には頭が下がるばかりです。

例年真面目に参加エントリを書こうと気負いすぎて全てのことを一度に書こうとして、いつも仕上げられずにお蔵入りする羽目になっているため、今回は少し手法を変えて書いてみます。

取りあえず思いついた感想を数点書いて一旦公開、それから時間を見つけて参加したトークの感想や感じたことなどを気の済むまで追記していく、というスタイルでやってみようかと思います。

後で書くつもりのことは"Todo"とか書いておいて目印にするつもり。時間が無くて書けなくなったらしれっと消すと思いますが。

チュートリアル

昨年のPyCon JPが終わったあとのブログ記事やら感想を見ていたら「チュートリアル参加したかった」という後悔が強くなったということがあったので、今年はちゃんと射程を合わせて有給を取ってフルで参加しようと思い、実行。

チュートリアルの全体的な感想

有休使ってお金を払って午前も午後も参加してよかった!と思いました。

というのも、今回のチュートリアルで個人的に狙っていた効果は以下のようなもので、それが達成されたからです。

  1. 自習すると無駄に時間がかかりそうな分野の知識・情報を概観して後で自学自習する効率を高めるようにすること
  2. お金を払って受講することで習ったことを無駄にしないようにある種の強制力を働かせること

今後の活動にいい影響が出るかどうかは今後の私次第なのでなんとも言えませんが、少なくとも「機械学習」と「ベイズ推定」に関しては数時間かけて詰め込んだことと豊富な参考資料をゲットしたことを考えると、後で振り返る際の取っ掛かりが出来たのではないかと思います。

Machine Learning Bootstrapの感想

チュートリアルは1日券を購入したのですが、それは午前にも午後にもちょうど参加してみたいものがあったからです。その一つがこのMachine Learning Bootstrapでした。

前々から機械学習には興味があって、空いた時間で勉強していたんですが、どの資料を読んでコードを書いてもそもそもの理論が難しかったり前提となる知識が多くて「全然分からん!」となっていました。特にPackt Publishingで半額期間の時に買ったこの本を読んでいたときにそう感じました。

Building Machine Learning Systems With Python: Get More from Your Data Through Creating Practical Machine Learning Systems With Python

Building Machine Learning Systems With Python: Get More from Your Data Through Creating Practical Machine Learning Systems With Python

英語とかそういう以前に、読んでいて「確率的勾配降下法って何?読んでも分からん…」と分からなくなることが多く、機械学習の習得を少し諦めていたという流れがあったところに丁度よさげなチュートリアルが出てきてしめしめと思い、参加。

実際の内容を細かく書こうとすると多分また書き切れなくてボツ行き になると思うので軽めに書くとすると、(環境構築が事前に必要とは言え)細かい所に時間を割かずに実際に動くアプリケーション環境が事前に用意されていてそれを動かしながら学習の様子を試すことが出来たので、自分で環境構築とエラーを出し続けるコードと闘いながら本を読み進めるよりかはずっと効率的に学べた気がします。

実際やった内容の自習編がQiitaで公開されているので興味がある人、興味があるけど参加できなかった人は見てみるといいと思います。

qiita.com

エンジニアのためのベイズ推定入門:確率論的プログラミングのすすめの感想

(詳しくは後日書く。ハミルトニアンモンテカルロ法とNo-U-Turn-Samplerという単語だけは持ち帰った)

午後にはこのチュートリアルに参加しました。参加した正直なところをいうと、自分には前提知識が足りなすぎて消化不良を起こした感があります。

ただ参加して無駄だったかというとそうではなく、後で確率論的プログラミングを習得してみたいと思った時に復習できるポイントをいくつも提示されたのでそれだけでも価値があるのと、一応自分なりの理解として以下のことを何となく持ちかえることが出来たのでそれが成果かなと思います。

  • MCMCは絶対に収束する。が、いつ収束するか分からない。
  • ハミルトンモンテカルロ法は汎用的に収束を速くする手法(らしい)
  • ハミルトンモンテカルロ法はパラメータの調整がすごく重要で難しかった
  • そういう中、No-U-Turn Samplerが考案されてそのパラメータ調整が非常に楽になった。
  • そのNo-U-Turn Samplerを使って実装されているものの一つがpymc3

メモ書きからの抜粋なので間違っている可能性大なので、間違っていたら教えてくれると嬉しいです。

PyCon JP 2015

PyCon JP 2015の全体的な感想

(各トークの感想を律儀に最初から書いていたら書き終わらずに旬を逃すので、後で少しずつ書いていくつもり)

個人的に非常に勿体ないことというか、後悔したことは「チュートリアルの日以外寝不足で頭が回らず、聞きたかったトークも集中して聞けないことがあった」ということです。

チュートリアルの日を除いたどの日も(スプリントの日も!)前日は22〜23時という早い時間に床につくようにしていたのに、PyConに参加するのが楽しみだったのか全然寝付けず、そのせいで母語である日本語のトークなのに全然意味が頭の中に入ってこないで理解できないという状態になったところもあり、非常に勿体ないなと思いました。

そんなこともありましたが、一応事前に参加したいトークを決め、前年の反省を踏まえて「聴講しに行くトークは本当に参加したいものだけに絞り、空いた時間で休んだり他の人とコミュニケーション取ったり、スポンサーブースを見て回ったりしよう」ということを実践したおかげで、燃え尽きずに平均的に楽しめたので少しはイベント参加経験値上がったなと思いました。

そのおかげでこういうことも経験できました。

オープンスペースで勃発的に発生した講義に運良く参加して知見を得られるというのもイベントの醍醐味ですね。

Todo: 各トークの感想を少しずつ書く

(全てではないにしろ、聴講したトークの感想とかを後でかくつもり…)

まとめ

来年のPyCon JPも楽しく参加したいですね!

後、一回くらい海外のPyConにも参加してみたいと思いました。ワーキングプアなので行くとしても近場(韓国か台湾)になると思いますが。そこまでお金を貯めて他の娯楽に散在したくなる誘惑を抑えるというハードルが高そうなのでどうなるかは分かりません。

まあ、そんな感じです。

PyCon JP 2015 参加者のブログ記事をできるだけまとめてみました #pyconjp

まとめサイトが嫌いなのにまとめサイトと同じ事をしていてダブルスタンダードを感じる今日この頃です。

やろうと思った理由

スライド資料、動画、Togetter公式サイトがもう既にまとめているのですが、参加者のブログ記事は労力考えると運営スタッフ主導でまとめないだろうなと思ったのと、自分が後で振り返って読みたいからです。

と思っていたら、運営スタッフの方がこんなツイートを。

もしかしたら後で公式サイトでもまとめられるのかも知れませんね。その時は適当にこのサイトのまとめ内容利用してください。

追記(2015/10/15 21:37時点)

とのことなので、本エントリの意義は半分は果たした!

これから見る人は上記の公式サイトまとめで感想ブログをフォローしていくといいと思いますよ。

それとは関係なく、まだ追加してなかった感想ブログの存在に気がついたらコソッと追加すると思いますけど。

(追記終わり)

それでは以下「スピーカー系」「参加者系」「スポンサー関係者系」というくくりで分けてまとめました。順番は適当です。 スピーカー兼スポンサー企業関係者の方など、複数属性の方が何人かいらっしゃいましたが、そこは独断と偏見で特定の一つのカテゴリに分けるようにしています。

あともちろん見落としもあると思います。単なる有志のまとめなのでクオリティに期待しないで!という注意だけ言っておきます。

スピーカー系

トークの登壇者だけでなく、チュートリアルのヘルプに入っていた人も私が知っている範囲内でここのカテゴリに入れてます。

nwpct1.hatenablog.com

d.hatena.ne.jp

shinyorke.hatenablog.com

ihcomega.hatenadiary.com

t2y.hatenablog.jp

f-shin.net

amacbee.hatenablog.com

sinhrks.hatenablog.com

librabuch.jp

shacho.beproud.jp

blog.ymyzk.com

http://mocobeta-backup.tumblr.com/post/131025586072/pyconjp-janome
mocobeta-backup.tumblr.com

memo.laughk.org

参加者系

nnsnodnb.hatenablog.jp

dackdive.hateblo.jp

chezou.hatenablog.com

d.hatena.ne.jp

yoshiki-utakata.hatenablog.com

soy-curd.hatenablog.com

soy-curd.hatenablog.com

rinnegrid.hatenablog.com

http://takuti.me/note/pyconjp-2015/takuti.me

www.tento-net.com

hogespace.hatenablog.jp

xaro.hatenablog.jp

arvelt.hatenablog.com

tanishiking24.hatenablog.com

nakagami.blog.so-net.ne.jp

スポンサー関係者系

aial.shiroyagi.co.jp

projectphone.lekumo.biz

projectphone.lekumo.biz

最後に

気が向いたら&新しく記事を見かけたら追記するかも知れません。

PyConJP 2015のプロポーザル一覧を把握しやすいようにざっくり整理してみた

何でこんなことしたか?

PyConJP 2015のプロポーザル一覧ページが種類別とかレベル別にソートできない仕様で、かつabstractも含まれている関係でページが縦長になっていて、投票したくなるプロポーザルを把握できなかったから少しスクレイピングしてデータ整理(リンク付きタイトルを抽出して一覧化)してみたかったというのが理由。

つまり自分用です。なので、リンク間違い・タイトル間違いあっても勘弁して下さい。 後、Twitter見てるとチュートリアルはもう既に採用されたものが何個か決まっているみたいですけど気にしないことにしました。

以下、自分なりに整理したプロポーザルです。ソートは適当。というかしていない。

個人的に把握しやすいように整理したプロポーザル一覧

talk(初級)

  1. セカイノカオ by チーム・カオ(ja)
  2. Integrating Django with Centralised Identity Management(en)
  3. Doing Math with Python(en)
  4. Sphinxで作る貢献しやすいドキュメント翻訳の仕組み(ja)
  5. PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう(ja)
  6. Pythonで3Dデータモデリング&3Dプリント(ja)
  7. Cyber attack: About DNS DDoS, and analysis it with Python(en)
  8. データベースドライバーひと巡り(ja)
  9. Translation of Python Programs into non-English Languages for Learners without English Proficiency (en)
  10. PyCon JP を支える技術 2015(ja)
  11. with modern_peripherals: Python and Flask(en)
  12. PyCharm Essentials(en)
  13. 野球Hack!~Pythonを用いたデータ分析と可視化(ja)
  14. MinecraftをPythonで遊ぶ(ja)
  15. なぜWeb画面自動テストはうまく行かないのか(ja)
  16. 14歳からの関数型プログラミング in Python(ja)
  17. 10年続くWebサービスでも使えるOpsのためのfabric入門(ja)
  18. pythonが支える、データ駆動型コンテンツの創出(ja)
  19. Infrastructure as Code with Ansible(en)
  20. Breaking backwards compatibility: The easy way! (en)
  21. Dissecting the Stack: How things were glued together(en)
  22. Teaching Data Structures with Python(en)
  23. Python, the next Brazilian generation(en)
  24. JSONSchema with Python(ja)
  25. Python3を利用して良かったこと(ja)
  26. Mezzanine, the best CMS on Python(en)
  27. エンジニアの技術力評価は難しい? - 相互評価制度を約4年やってみたけど、わりと良い感じかもしれない -(ja)
  28. はじめてのドローン・プログラミング(ja)
  29. Web2.0せんせーが進路相談!(ja)
  30. 日本のオープンデータプラットフォームをPythonでつくる(ja)
  31. Pythonで作る俺様サウンドエフェクター(ja)
  32. Gandi CLI: Open Source command line interface to manage domain names and hosting infrastructures(en)
  33. kaa - Python製テキストエディタ(ja)
  34. tse - Pythonによるテキスト整形ユーティリティ(ja)
  35. Learning by Experience, Devploying pyxbackup(en)
  36. Kivyの基礎: アプリケーション開発の楽しさを考える(ja)
  37. Ways to avoid overfitting when developing a trading strategy(en)
  38. Pythonで作るリコメンデーションシステム(ja)
  39. DevOps ツールの選びかた・使いかた 〜ヌーラボの場合〜(ja)
  40. PyLadies Tokyo-初心者女性向けPython体験ワークショップ開催の裏側(ja)
  41. PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」(ja)
  42. Rise of the Static Site Generator(en)
  43. Better Python DevOps Security(en)
  44. Karaoke-style Read-aloud System Using Speech Recognition and Text-to-Speech Technology(en)
  45. 強くなるためのプログラミング ープログラミングに関する様々なコンテストとそのはじめ方ー(ja)
  46. 失敗と成功のあいだ:ゼロからはじめる強化学習(ja)
  47. 土木でも使えるPython☆彡(ja)
  48. ユニットテストのあれやこれや(ja)
  49. クローラーと僕(ja)
  50. PyPIデビュー 2015(ja)
  51. On SageMathCloud - Doing Mathematics and Python programming on cloud.(en)
  52. Pythonによる科学技術計算入門(ja)

talk(中級)

  1. 組合せ最適化を体系的に知ってPythonで実行してみよう(ja)
  2. Sphinx autodoc: APIドキュメントの自動生成(ja)
  3. データ可視化技術の過去/現在/未来(ja)
  4. Python で作って学ぶ形態素解析(ja)
  5. Program Pepper in Python(en)
  6. Python3 WSGIアプリケーション入門(ja)
  7. Packaging最前線(ja)
  8. Tornado/Websocketを使ったモバイルゲームアプリケーションの事例紹介(ja)
  9. Web Scraping in Python(ja)
  10. Writing Fast Code(en)
  11. Pythonによる未知語・重要語キーワード抽出とその応用(ja)
  12. Tornado/ElasticSearchで実現する大量ツイートのリアルタイム関連文書判定(ja)
  13. Making Python coexist with others(en)
  14. Ansible x AWS -- Infrastructure as Code for Small Team(ja)
  15. Threads and Callbacks for Embedded Python(en)
  16. Building a Scalable Python gRPC Service using Kubernetes(en)
  17. NAO + iPadで実現するコミュニケーションロボット!tornado/websocketで実装するタブレットを使った対話ロボットアプリの事例(ja)
  18. Djangoとフロントエンドフレームワークの共存事例(ja)
  19. pandasによるデータ加工:テストのコツ・注意点やライブラリの紹介(ja)
  20. uWSGI/Dockerを利用したWebサービス運用事例(ja)
  21. How we realize SOA by Python(en)
  22. アドネットワークのデータ解析チームを支える技術(ja)
  23. Python × Bluemix でやったHack-a-thonでの超短期間認識系アプリ開発事例(ja)
  24. Introduction to Theano -- not only for deep learning(en)
  25. Data selection techniques in pandas(en)
  26. Pythonでマイクロサービス構造のWebサービスを実現する(ja)
  27. CFFI Is the Future(en)
  28. Mochiの紹介(ja)
  29. Python と型ヒント (Type Hints)(ja)
  30. 個人の写真から分かる過去と未来 ~機械学習を添えて~(ja)
  31. Introduction to nipype and creating stable NeuroImaging pipelines using it (en)
  32. Cython at rescue .(en)
  33. Machine Learning to solve grass root level problems .(en)
  34. pandas internals(en)
  35. Python and the Semantic Web: Building a Linked Data Fragment Server with Asynco and Redis(en)
  36. Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例(ja)
  37. fabricを用いたサーバーメトリクスの収集と可視化(ja)
  38. Cython による他言語の拡張(ja)
  39. 2015年決定版! 博士のPythonでハードウェアを扱う方法(ja)
  40. Scaling and Launching Python on AWS(en)
  41. Djangoのエントリポイントとアプリケーションの仕組み(ja)
  42. Pythonで作る、少し未来のオフィス(ja)
  43. Give your scripts the power of the Web! Web automation through Python(en)
  44. Let's prevent bugs by checking our types in Python(ja)
  45. Getting started with PySpark(en)
  46. Let it crash: what Python can learn from Erlang.(en)

talk(上級)

  1. Jumping the Python Ship: Better Alternatives To Python(en)

poster

  1. Sphinx-users.jp(ja)
  2. Python x Edison = New World!!(ja)
  3. ニューラルネットの実装が簡単なChainerを用いた音声からの感情識別(ja)

tutorial

  1. Sphinxハンズオン(ja)
  2. 【初心者向けPythonチュートリアル】Webスクレイピングに挑戦してみよう(ja)
  3. Pythonを使った機械学習入門(ja)
  4. Python x Edison x AWSではじめる IoT(ja)
  5. Effective Pandas(ja)
  6. エンジニアのためのベイズ推定入門:確率論的プログラミングのすすめ(ja)
  7. Machine Learning Bootstrap(ja)

どうやってプロポーザル一覧を整理したか?

全然高度なことしていないですが、メモ代わりに残しておきます。

  1. kimonolabsを活用して、プロポーザル一覧ページや各プロポーザル一覧のページのデータをスクレイピングしてjson化する
  2. 作ったjsonPythonで処理して、各プロポーザルの詳細ページへのリンク付きタイトルリストをmarkdown形式にするように吐き出す
  3. markdownを処理できるブログとかに貼り付ける

最初はスクレイピングも勉強がてらPythonでやってみようかと思っていましたが、該当ページのDOMの構造見てたら「面倒臭そう…」と感じてしまったのでkimonolabs使ってサボりました。が、目的は「PyConJP 2015のプロポーザル一覧を早くしやすくする」という所だったので、前処理で疲れ果てると本末転倒だからこれでいいかと思っています。

余談ですが、kimono便利なので、知らない人は活用してみるといいと思います。

思ったこと

公式ページ自体にソートっぽい機能があるといいなと思いました。

あと、投票していないので聴きたいtalkをさっさと投票しないといけないですね。