DjangoCongress JP 2019に参加しました。
18日に開催されたDjangoCongress JP 2019に参加してきました。
場所は、サイボウズさん。やっぱり部屋がきれいですね。
いくつかの登壇者の講演を聞くことができましたのでまとめました。
- Djangoで静的ファイルとうまくやる話 Room1
- 現場で使える Django のセキュリティ対策 Room1
- Djangoでのメール送信 - 設定からテストまで Room2
- Djangoアプリのデプロイに関するプラクティス Room1
- 自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1
- まとめ
Djangoで静的ファイルとうまくやる話 Room1 ・・・tell-k
Djangoアプリを本番にデプロイしたら、JS/CSSが表示されなくて困った。collectstatic がイマイチなんのためにあるのか分からない。そんな経験をしたことありませんか? 本発表ではDjangoでJS/CSSなどの静的なファイル扱うために誰もが一度は迷ったり、つまづいたりするようなトピックを事例を交えながら初心者の人にもわかりやすいように発表いたします。
Djangoとは、動的コンテンツを生成し配信する のが主な役割で、公開前の本番サーバーにDjangoアプリをデプロイしたときの静的ファイルについての失敗談をお話されました。
メディアファイルについてはローカルでデバッグすることはなかったので設定方法とか聞けて勉強になりました。
現場で使える Django のセキュリティ対策 Room1・・・Akihito Yokose
待望のバージョン2系の LTS がリリースされ、ますます現場で Django が盛り上がることが予想されますが、導入検討の際にネックになるものの一つに「セキュリティ」への懸念があります。
Django にはデフォルトでセキュリティ対策も含まれていますが、そのあたりの理解が中途半端だと、リリースした Webアプリが攻撃者の格好の餌食になってしまいかねません。そうならないためにも、Django のセキュリティ事情については開発前から(もちろん開発中でも)きちんと把握しておきたいところです。
そこで本発表ではまず、Django におけるセキュリティ対策の基礎について概観します。そして CSRF などの重要な(そして重要な割にあまりよく理解されていない)ものについては、「CSRF(しーさーふ)って何?」というレベルの人にも分かるように基本から解説します。
- 資料
現場で使える Django のセキュリティ対策 / Django security measures for business (DjangoCon JP 2019) - Speaker Deck
Djangoを使う上でセキュリティ対策は重要だと思い聞きました。
とてもわかりやす資料で人に教えるのにわかりやすくまとめられて聞きやすかったです。
Djangoでのメール送信 - 設定からテストまで Room2 ・・・@thinkAmi
Djangoにはメール送信機能が標準で用意されています。そのため、settings.pyへ適切に設定を行うことで、簡単にメール送信機能を実現できます。
一方で、設定によっては、メール送信ができなかったり、本番環境の利用者宛にテストメールを誤配信してしまう等の問題が発生します。
本発表では、Django標準のメール送信機能と使い方を紹介します。また、管理者設定を使ったエラー通知・メールバックエンドの自作方法・メール送信まわりのテスト方法など、実際の開発現場で必要になる内容もお伝えします。
send_mail()以外にEmailMessage、EmailBackendもあって、細かいメール設定を実例で資料もあり、あとで読み直すこともできたり、お話も聞きやすかった印象です。
テストも参考になりますので実践しようと思います。
Djangoアプリのデプロイに関するプラクティス Room1 ・・・Masashi Shibata
Webアプリケーションのデプロイは、多くの開発者が悩んできたトピックかと思います。実行マシンの準備から、アプリケーションの構成管理、各種ミドルウェアの設定はもちろん、スケーリングやセキュリティ、SLIの選定や収集方法など考えるべき要素が多く存在し、ツールチェインの選択肢も幅広いものです。
本セッションではまずDjangoアプリケーションの非常にstandardなデプロイ構成を紹介し、そこで発生する問題とその解決方法を挙げていきます。主に扱うトピックはセキュリティ、スケーリング戦略、構成管理とコンテナ技術、モニタリングです。
手書きの図もあってとても新鮮でした。
WSGIサーバーの話で意識してなかったのですが、gunicornは、pure pythonででき、uWSGIは、基本的にC言語によって実装しているのを聞いて勉強になりました。
また、実行環境の構築方法でPackerを使い、実行環境をイメージ化するのも知らなかったのでそれも勉強になりました。
自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1 ・・・Toshikazu Ohashi
弊社のプッシュ通知配信サービス「popinfo」は、私が入社当時Django1.3.7で動いていましたもちろんPythonも2系です。度重なる機能要望とバグフィックスに追われ、このレガシーを放置せざるを得ない状況でした。
しかしサポート切れソフトウェアを使う苦悩は無視できないレベルになり、2018年から私に技術返済の機会を与えられた私はチーム編成から既存機能の整理を経てなんとかDjango1.11への道のりを立てることができました。
今回の経験で得た、レガシーの苦悩とDjangoアップグレードによる恩恵についてお話したいと思います。
- 資料 (公開され次第URL貼ります)
Django 1.3のバージョンから2系、3系へと一気にバージョンを上げる際は、公式ページのRelease Noteを見てどこが更新されたかの内容は見やすいとのこと。
バージョンアップした際、デフォルト挙動は、動作させて見ないとわからないとのこと。やっぱりこまめバージョンアップしていくのは大事だなと感じました。
Django 2系から3系に自動的にアップできるツールがあるみたい。その後、Unit TESTをひたすら実行し修正していくことで完結できるみたいです。
自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1 ・・・Toshikazu Ohashi
2013年のある日、長野のあるIT企業がビジネスモデルの転換のために採用したWebフレームワークが「Django」でした。
Webエンジニアゼロの状況から、現在はエンジニアの80%近くがWebアプリケーション開発に従事しています。
順風満帆な道のりではなくトライ&エラーの繰り返しでした。その過程で生まれた試みや教育プラン、「Django」の採用理由についての話しをします。
成功事例だけではなく、失敗事例も含めて今日に至ったお話を出来ればと思います。
経営層寄りのエンジニアの方、スキルシフト出来ずに悩んでいるエンジニアの方、地方のITを活性化したい方そんな方達に聞いてもらえればと思います。
長野で最もPythonを従事している会社は、日本システム技研(JSL) と言われるくらいに成長した会社の歴史を書いてあります。ご興味あり方は、資料を御覧ください。
まとめ
今回は日本システム技研(JSL)の中から登壇者が3名参加し、12の発表枠に3名とはすごいなと感じました。知らない人からも声をかけられたり、資料に弊社のユーザの名前がでたりと、コミニュケーションが生まれたりしていました。
Djnagoといえば、日本システム技研(JSL)という流れはとても良いと思いました。
スピーカーの方々、スタッフの方々、そして参加者の皆さま、ありがとうございました。
引き続きですが、自分の思いとしては、
- プレゼンテーション能力を磨こう。
- 英語ができるようにがんばろう。
これからもさらに勉強していきたいと思うようになりました。
PyCon JP 2018に発表と参加しました。
9月17日と18日に開催されたPyCon JP 2018に参加してきました。
いくつかの登壇者の講演を聞くことができましたのでまとめました。
- 実践・競馬データサイエンス
- Django REST Framework におけるAPI実装プラクティス
- 「リモートペアプロでマントルを突き抜けろ!」AWS Cloud9でリモートペアプロ&楽々サーバーレス開発
- Djangoだってカンバンつくれるもん(Django Channels + Vue)
- Notebook as Web API: Turn your notebook into Web API
- Pythonによる異常検知入門
- 発表しました。「 Pythonで時系列のデータを分析してみよう。」
- まとめ
実践・競馬データサイエンス・・・貫井 駿
スクレイピング競馬は豊富な種類のデータが毎週追加されるという点で、機械学習の対象としてエキサイティングなドメインです。本講演では、2年間の競馬人工知能開発から得られた予測モデル構築の実践的なノウハウを紹介します。
競馬は、出走前にいろいろと公式の情報が入るので機械学習のテーマに向いているとのこと。
IoTと同じく、機械学習は、仮説、実践、検証のサイクルが基本。
定量と定性評価の両方で評価することがいいとのとこ。勉強になりました。
Django REST Framework におけるAPI実装プラクティス・・・芝田 将
Django REST Frameworkの公式ドキュメントは、非常にわかりやすくまとまっていますが、実際に業務で使おうとすると考えないといけないことはまだまだあります。本セッションでは、APIのRate Limitの実装などドキュメントで詳しく触れられていない実装プラクティス等を解説します。
API設計に関すTipsは、知らない内容があったので勉強になりました。
HATEOAS(Hypertext As The Engune Of Application State)は、 APIの返すデータの中に次に行う行動、取得するデータ等のURLをリンクとして含めることで、そのデータを見れば次にどのエンドポイントにアクセスすればよいかが分かるライブラリはいいなと思いました。
「リモートペアプロでマントルを突き抜けろ!」AWS Cloud9でリモートペアプロ&楽々サーバーレス開発 ・・・福井 厚 Atsushi Fukui
AWS Cloud9の特徴でブラウザ上からリモート ペアプログラミングができるよっていうお話。
実際に福井さんが話している間にもうひとりの方がコーディングをしていました。実際はペアプロではなかったのですが。。。(笑)
実際は、手順に従って行えば、簡単にデプロイまでやってくれるとのこと。
料金はEC2等にかかるぐらいなので AWS Cloud9自体に費用がかからないとのこと。
Djangoだってカンバンつくれるもん(Django Channels + Vue) ・・・denzow
DjangoのライブラリであるDjango Channelsを使用して、Websocketを使ったアプリケーションの構築についてお話します。TrelloのようなカンバンアプリケーションをVue.jsと組み合わせて作成した際の話が中心になります。
Django Channelsに興味があって、まさかPyCon JPで聞けることができました。
とてもわかりやすい内容でした。サンプルソースも公開して頂いているので使用してみたいと思います。書き方間違えるとサーバごとハングするらしい。async defを書くことは重要とのこと。忘れそう。。。
Notebook as Web API: Turn your notebook into Web API・・・横石和貴
データサイエンスにおいて予測モデルを活用するためにアプリケーションをつくるにはいくつかの課題があります。Jupyter Notebookを活用してそれらの課題をどのように解決するかお話します。
Jupyter Notebookで作成されたファイルで予測モデルをアプリに組み込むときに予測APIを設計、実装したお話。
nbexecというextension機能を作ったのですが、OSSになるかはわからないとのこと。
感想でもOSSにしてほしいという声がありました。
Pythonによる異常検知入門・・・大山匠
統計的手法から、機械学習やDeep Learningを用いた様々な異常検知アルゴリズムの概要、それらのPythonでの利用方法、また実際のアプリケーションに組み込む場合のTIPSなどをご紹介します。
IoTといえば異常検知の機械学習は注目する内容でした。
データのふるまいだけから、それが異常であるかを判断することは難しいとのこと。
現場の背後にあるドメイン知識、オペレーション、状況を理解することが重要。
異常検知の種類ごとにメリット、デメリットを説明していただき勉強になりました。
発表しました。「 Pythonで時系列のデータを分析してみよう。」
発表したスライドです。
初めて発表しました。まさかたくさんの方が聴いてくださってとても緊張しました。
開始時間が遅れるという状況でカミカミ状態でした。聴いてくださった方にうまく伝えられたどうか不安ですが、どこかで感想を頂ければ幸いです。
また、発表した資料は、保存した Jupyter Notebookで試していただき、多くの方がデータ分析を始めるキッカケとなっていただければ幸いです
まとめ
はじめに日本システム技研(JSL)の方々にいろいろとご協力いただきありがとうございました。
また、スピーカーの方々、スタッフの方々、そして参加者の皆さま、ありがとうございました。
今年もですが、自分の思いとしては、
- プレゼンテーション能力を磨こう。
- 英語ができるようにがんばろう。
これからもさらに勉強していきたいと思うようになりました。
PyCon JP 2017 に参加しました。
9月8日と9日に開催されたPyCon JP 2017に参加してきました。
いくつかの登壇者の講演を聞くことができましたのでまとめました。
- 野球を科学する技術〜Pythonを用いた統計ライブラリ作成と分析基盤構築
- ドローンのフライトコントローラをPythonで制御してみた話
- Pythonで実現する4コマ漫画の分析・評論 2017
- Pythonの本気!RaspberryPiやEdisonを使ったIoTシステムの構築
- メディア会議
- ブースを初出展しました
- まとめ
野球を科学する技術〜Pythonを用いた統計ライブラリ作成と分析基盤構築
野球の統計モデルをPythonで実現する方法について紹介します.スクレイピング(Scrapy,Beautifulsoup),データパイプライン(Airflow),可視化ツール(Jupyter,Redashなど)を駆使し,野球統計学「セイバーメトリクス」を用いた野球選手の評価方法および,野球統計パッケージ(自作)について解説していました。
お話を聞くと野球シリーズで統計モデルをトークしている方でした。書籍で統計関係を見ていたので実際にお話を聞くことができ面白かったです。(ちなみのその会場は満席。)
ドローンのフライトコントローラをPythonで制御してみた話
著しい進化を遂げたドローン(マルチコプター)が近年では流通しているが、その中核となるフライトコントローラはブラックボックスである。機体の価格も下がり今では個人で購入できるものもあり、気軽に飛ばせるようになったが、まだまだ発展途上であるガジェット。今回はPythonや航空力学などを用いてドローンのフライトコントローラとなる部分を開発し、その経緯を報告する
手作りのドローンを見ることができ、おもしろさを感じました。フライトコントローラをラズパイに変えてプロペラを動かす話でした。
Pythonで実現する4コマ漫画の分析・評論 2017
前年は4コマ漫画を対象にコマ毎の画像を切り出す手法までについて発表しました。今年はそれらの画像からデータを抽出して分析・評論を行うまでを発表したいと思います。
4コマ漫画の分析というタイトルに惹かれて聞きました。話の運び方等が上手く、「ゆゆ式」がわからない中で楽しかったです。漫画のセリフをデータ化するためにGoogle Cloud Vision APIを使用し、OCRにするのですが、漫画の縦書きを抽出するのは難しそうです。
Pythonの本気!RaspberryPiやEdisonを使ったIoTシステムの構築
IoTの仕組みをPythonで殆ど構築できるので、その実践と紹介を。 ・サーバー機能 Flask ・ネットワーク機能 Requests ・データーDB SQLite ・数値計算 NumPy ・ハードウェア制御 akilib ほぼPythonのみで完成したIoTシステムが構築できます。
IoT時代においてPythonは最強!っというお話でした。確かにハードウェアを制御するためのライブラリがそろっているので、何かものを動かそうと思えばできる状況になったと思います。
メディア会議
メディア会議は今年初めて開催する新しい企画のことでした。
ことでした。技術書の著者、編集者が登壇し、本ができるまでの話、書いているときの苦労話を聞くことができました。どうやって会社員の方が書くことができるのかなと興味津々でした。
登壇終了後の写真。@kara_dさんお疲れ様です。
ブースを初出展しました
今年は弊社「株式会社 日本システム技研(JSL)」のブースを出展しました!(シルバースポンサーをさせて頂きました。)
長野から、python発信の日本システム技研さん#PyConJP pic.twitter.com/yuhygrFLP6
— Takaaki Hagino (@aki_ae92) 2017年9月8日
まとめ
私は今回初めて参加しましたが、参加者の方の印象がデータアナリスト・分析者の方が多かったような気がしました。
いつも思うですが、自分の思いとしては、
- プレゼンテーション能力を磨こう。
- 英語ができるようにがんばろう。
これからもさらに勉強していきたいと思うようになりました。