Sessions
セッションリスト
PyCon Kyushu 実行委員メンバー
金融機関の研究所で技術調査や研究業務支援をしながら、6つのITコミュニティの運営、技術書の執筆・査読をしてます。
皆さんはPythonでユニットテストやCIツールを使いこなせているでしょうか?そういった悩みへの参考としてユニットテストやCIツールの概要や種類について解説をしてから、その中でもPytestを使った場合のメリットや開発プロセス全体への波及効果について発表します。
keywords:
ゲームプログラマから機械学習専門インフラ(MLOps)エンジニアにジョブチェンしました
docstringとは、コード内に書くドキュメントです。 docstringを書いておくことによってクラスや関数の役割を伝えることができます。
初心者の方や、分析でPythonを使ってる方たちにはあまり馴染みがないかもしれません。
メンテナンスしやすいコードを書くための1つの術として、 今回はdocstringについて
ということをお話したいと思います。
keywords:
This talk will be one of the 2 talks the authors are presenting at PyCon JP. It’s by a multidisciplinary team of 5 researchers. Each will cover certain aspects of the talk and engage in the discussion. The speakers have a long history of giving talks at their respective universities on related academic topics. Recently they presented this work at PyCon 2019, Cleveland OH. The talk will help create awareness of how Python can be implemented in healthcare and other related emerging areas.
Complimentary to oral drugs, personalised 3D-printed formulations can add value to patient demands where the release of the drug can be controlled and optimised to the patient’s health needs. Research is being done to establish drug delivery mechanisms that provide sustained- and controlled-release profiles of active pharmaceutical ingredients using 3D-printed scaffolds and similar additive manufacturing.
Designing such scaffolds and prototypes can be time-consuming and costly given the novel approach and emerging equipments and technologies that are necessary. Furthermore, failed prototypes cannot be changed once printed limiting researchers to try out different configurations or change other design factors.
The required wall-topology of the scaffolds is dependent on the fluidic behaviour of the inner ingredients in liquid form whilst exiting through the scaffold wall. A practical method to drive this releasing process is to store the inner liquid at a higher pressure than the average ambient pressure in the stomach. The rate at which the liquid is released is determined by this pressure differential and the wall-topology, i.e. the passage diameter, length, surface-roughness, and structure. This fluidic behaviour can be modeled by a one-dimensional equation where the pressure differential is proportional to the releasing rate of the liquid-volume. The factor of proportionality here is intrinsically dependent on the wall-topology. Hence, determining this factor for a given pressure differential and releasing rate of the drug can directly suggest the required wall-topology for the scaffold. This model will instantly enable researchers to start testing their designs for effectiveness and efficiency before the prototype is printed, thus decrease waste, financial burden, and time consumption.
To our knowledge, this is the first time that this approach has been taken. At PyCon JP, we foresee to present our model in form of a talk. The model is simulated using Python and the Gauss-Seidel algorithm. This model further demonstrates a novel combination of the field of medicine and fluid dynamics, where Python—as an open source language—acts as a viable bridge. We believe this will showcase the limitless possibilities of Python and enable us to connect with similarly motivated Python enthusiasts.
Attendees will get an idea of how Python can be used in medicine, in this case running simulations of drug release profile in 3D-printed scaffold design. First, the attendees will be presented with real-world medical challenges where Python can help solve these. Second, a solution will be presented and implementation will be discussed. The talk will also provide the opportunity for an interactive discussion with the speakers and give the attendees the scope of collaboration to our open source approach with Python.
keywords:
PythonとJavaScriptと野球をこよなく愛するWeb系エンジニア。都内のPythonもくもく会によく出没する。
DjangoにJupyterNotebookを導入することで、DjangoのモデルをJupyter上で利用することが出来ます。 これにより、Djangoの強力なORMをJupyterによるデータの操作、可視化に活かすことが出来ます。 またDjango×Jupyterの環境を作ることで軽い確認をJupyter、完成したものはDjangoによってバックエンドAPI化などの使い分けを同一環境で出来るようになります。 私はDockerを用いてDjango×Jupyterな環境を作り、趣味の野球のデータ分析に役立てました。 本トークでは環境作りのお話と、その環境でこんなことが出来る、といった点を紹介致します。 Pythonでデータを集計・分析する際の、基盤のようなものにDjango×Jupyterの環境がなることが出来れば、と思います。
keywords:
ニジボックス所属のインフラ寄りバックエンド系スタックフルエンジニア。 プライベートではよくErrbotと戯れています。
すっかりInfrastructure as Code(IaC)がコモディティ化しつつありますが、このIaCな世界で重要視されている概念が「冪等(べきとう)性」です。
IaCを実現するための構成管理ツールは、セットアップ処理一つ一つ冪等性を持つように設計されています。 そのため、サーバー・インフラの構成内容を宣言的に記述することが可能となっています。
では、実際にどうやって冪等性を実現しているのでしょうか?
このトークでは、Python製の構成管理ツールであるAnsibleを通じて、べき等性の概念と利点を理解しつつ、どう実現してるのかを紹介します。
keywords:
「にっきー」と読むハンドルネームで活動するPython使い(歴は約2年)。初学者にPythonを教える経験が多め
pip install
させるという危険な手順が散見されるAnacondaを排除するのではなく、一つの選択肢として残し、環境構築方法の多様性を保ちたいという意図です。
Anacondaという題材については、全Pythonistaが知るべきと考えています。
日本語を予定しています。
※現時点の考えのため、今後の調査・検証によって変更になる可能性があります
この記載は、homebrewやpyenvなどを取り上げない理由の説明でもあります
keywords:
My name is Enzo. I come from France, where I was working as a software engineer in different startups using Python. Now, I live in Tokyo, and I work as an independent software consultant on several projects, which include Python.
In this short talk, I would like to present how to use the aiohttp
library and asyncpg
to implement a fully asynchronous typical Web service in Python. We'll see why asynchronous code can be a great fit for most Web services and how it compares with more traditional Web services in some real-world use-cases. At the end of the talk, I wish that the audience consider implementing their next project using the power of Python's async
ecosystem, which grows day after day.
The audience is supposed to be familiar with Python's async/await syntax and Web backend development in general.
keywords:
NECソリューションイノベータ株式会社にて分析プラットフォームの開発に従事。最近はシステムテストを担当。
Jupyter Notebookはデータサイエンスの分野で広く利用されるようになっております。 しかし、Jupyter Notebook上では基本的にPython APIでライブラリを実行するため、 Python APIを持たない機械学習ライブラリは扱いにくく敬遠されがちという問題があります。
そこで本発表では上記の問題を解決するために行った機械学習ライブラリのPython API化について 実業務での体験談をもとにお話します。
今後機械学習ライブラリのPython API化を行う方が発表者と同じ問題に直面しないよう Python API完成までの作業内容の説明と併せ、注意した(すべきだった)点や苦労した点などもお話します。
なお発表の内容は機械学習以外のライブラリにも適用できると考えております。
お話しする内容としては下記を予定しています。
keywords:
日経でフロント/バック/DevOpsを担うWebエンジニア。機械学習とVTuberとゲーム実況が好き。
一般にVTuber運用には、動画投稿やタレント活動など、定期的な活動が必要です。しかし、動画企画・制作のコストや"中の人"の属人性の高さから、VTuber運用の長期継続は困難です。 そんなVTuber運用の課題に対し、メディアが持つリソースを用いた以下2つのVTuber像を提案します。
本セッションでは、これら2つのVTuber像を構成する技術について紹介します。 今回は特に、後者の"多重人格型VTuber"を構成する声質変換について、初心者にも分かりやすいように詳しく解説する予定です。
keywords:
電通デジタルのエンジニア
デジタル広告の計測データを広告施策やPDCAに活かすためのプロダクトをつくる上で、利用しやすいデータへの加工、レポーティングが必要になります。 本トークセッションでは、そのデータパイプラインを構築するにあたってPythonとAirflowを調べながら分析レポートを作成するパイプライン、分析しやすい環境を実際に構築した事例においてつまづいた点やそれらをどのように解決したかを交えご紹介します。
機械学習、統計
keywords:
株式会社日本システム技研所属。Python/Webアプリケーションエンジニア。
HDF5ファイルについて、知る・見る・作る・探すと段階を追って紹介します。
また、HDF5ファイルにはバージョンもあるため、公開されている資料から今後のバージョンアップ情報もお伝えします。
h5py
と PyTables
keywords:
PythonとGPUを用いた量子ゲート、量子アニーリングのオープンソースプロジェクトを主宰しています。
量子ゲートコンピューティングの基本概念
Qgateの設計コンセプト
量子回路最適化手法とPythonを用いた実装の紹介
CPU/GPUを用いた演算高速化手法、およびC-extensionの実装
量子回路シミュレーション ベンチマーク
Blueqatを用いたデモンストレーション
keywords:
尾道の向島で暮らすプログラマ。学生時代からずっとPython好き。シンプルなコード、シンプルな設計を目指してます。
プログラムの品質を向上させるためにはユニットテストが不可欠です。 Pythonにはユニットテストのための標準ライブラリとしてunittestパッケージがあり、ユニットテストに必要な機能がすべて揃っています。 本トークではこのunittestパッケージを使ったユニットテストの始め方を紹介します。 また、3rdパッケージとして人気のあるpytestとの比較、unittestからpytestへの以降についても解説します。
標準ライブラリのunittestパッケージはユニットテストライブラリとしてとても優秀です。 unittestを使うと簡単にユニットテストを導入できるため、その導入方法を紹介します。
また、unittestは次のような機能を備えています。
unittestを使いこなすためにこれらの機能も紹介します。 標準ライブラリを使いこなすことは流行に左右されない基本的なスキルを身に付けることにも繋がります。 特にオブジェクトのモック化は、他のユニットテストライブラリを利用する際にも不可欠となる知識です。
最後に人気のあるユニットテストパッケージであるpytestについても紹介します。 unittestを使っておくと、プロジェクトの規模拡大に伴ったpytestの導入も難しくありません。 unittestにはないpytestの優れた点を紹介し、実例をまじえてunittestを使ったプロジェクトへのpytestの導入を行います。
keywords:
I'm Kevin, a system architecture lover. I like to participate in conferences and meet powerful people. I also love Japan a lot and learn Japanese hard. Hope I can make lots of friends here.
As we know, a lot of people are obsessed with fortune telling, and palm reading is one of the easiest methods that everyone is able to get started in foreseeing their fortune. However, many people still have problems with identifying the lines of their palm. Therefore, we came up with this idea: combining “palm reading”, “deep learning”, and “chatbot.”
Palm reading We spent the first couple of hours at the hackathon to learned basic palmistry including relationship, career and health analyzation and prediction. Then, we labeled over 2000 pictures of real human palms and gave over 6000 scores of their relationship, career, and health respectively. (You can find our label file here.)
Deep learning We use VGG-16(16-layer network) in Keras with Tensorflow backend as our CNN model. Using GPU to accelerate, we have trained 10 epochs and 1000 steps per epoch. The MSE of the model is 1.3066. Besides, the valuation MSE is 1.1721. Overall, the result is robust enough to predict a new palm. (You can find our code here.)
Chatbot compared with App and Web, is more accessible to mobile users, and it is also easier to spread on social media. Therefore, we used Chatfuel to create an AI chatbot on Facebook Messenger. Below you can see the user flow of Handbot. The smooth UX we designed help us achieve 80% user retention rate.
keywords:
twitter: @_ryook 新聞社でサーバーサイドの開発をしています。
昨年の磯さんの発表を見て、以前から興味のあった全文検索エンジンを自作してみました。 検索エンジンの仕組みは知っていたけど、実際に自分で作ってみると当初思っていた以上に勉強になることが多かったです。 発表を通じて検索エンジンの技術的な面白さと、既にあるものを自作する楽しさについて触れていきます。
既に検索エンジンを自作している人には物足りない内容になるかもしれませんが、高みから見物してやろうというかたの聴講もお待ちしています。
全文検索において必要な機能を説明しながらpythonでの実装方法や実装する際の注意点を紹介します。 最後に自作することの良さについて話したいと思います。
keywords:
自動運転ぽい仕事してます。競技プログラミングにはまっており、自作統合開発環境で戦いの日々。最近青コーダーになりました。
PyQt5をベースとして、自分が欲する機能を詰め込んだ自分だけのための統合開発環境を自作する方法を紹介します。 題材は私が作ったRust言語向け競技プログラミング向け統合開発環境です。(Python製ですが、Rust向けIDE、ややこしい。)
統合開発環境を作る、というとハードルが高く聞こえるかもしれませんが、 Qtにはプログラミング用エディタを自作できるだけコード補完、シンタックスハイライト付きエディタ)などを実装できるだけのAPIが整っています。
QtのPythonバインディングとしてはPyQtなどが存在しますが、C++ではなくPythonで作ることで、コンパイルいらずだったり対話型デバッグもできたり、Pythonで作られた他のライブラリと容易に連携できるなど、C++で作るよりも開発を高速化できます(当社比)。
しかし、PyQt5にはあまり書籍やwebで公開されているサンプルや開発ノウハウを公開した記事がなく、C++(Qt)が書かれたサンプルが多かったりします。 そこでC++のQtサンプルをPyQtとして流用する方法や、その他対話型デバッガ(IDLE)を使ってGUIソフトをデバッグする方法などのGUIソフト開発ノウハウを紹介します。
また、ChromiumベースのPyQtWebEngineを使って競技プログラミングコンテストのサイトをブラウジングしたり、 pexpectを使って対話型デバッグ機能を実装して統合開発環境っぽい機能をつけたりといった、 他ライブラリとの連携し自分がほしい機能をサポートする方法についてもお話します。
https://github.com/fukatani/rujaion のように競技プログラミングなどの現場で実用に耐える統合開発環境が作れるようになります。
keywords:
長野県長野市の会社、日本システム技研所属のプログラマ バックエンド開発からフロントエンド開発まで手掛けます
本セッションでは実際にライブコーディングを交えつつ、FoxDotというライブラリについてお話しようと思います。
keywords:
I have been hacking on Django for the past 5 years. Ask me about migrations or Typescript!
Python has a lot of powerful dynamic features just waiting to be taken advantage of. A lot of people might know about REPL-based development, but with the right kind of tools, Python can provide a live coding-based development cycle.
This talk is going to cover mighty_patcher
, a library that supports automatic hot reloading of Python. This lets you avoid classic "auto-reload" tricks that force you to restart your entire program.
I will go over the basics of what this does, how it can be used (quicker testing, live coding, interactive art), and how it's implemented. Walking through the details of how this tool works should help people to rethink what is possible in Python once you become aware of how the internals work.
keywords:
株式会社Mrk&Co Co-Founder, CTO
株式会社Mrk&Coではマッチングアプリ「Dine」を開発・運営しており、バックエンド開発はPythonで行われています。 Dineでは最適なマッチングを実現するために日々改善が続けられており、本トークではそこで得られた経験や知見についてお伝えします。 具体的にはGoogle Cloud Dataflow (Apache Beam Python SDK)を使ったデータプロセッシング、Cloud Machine Learningを使った機械学習の活用を中心にお話する予定です。
以下に興味のある方に特にお薦めです。
keywords:
I am an Indonesian software engineer working for HENNGE, K.K. in Tokyo, Japan.
As a Python avid user, we read a lot of articles that describe Python as a slow, interpreted language. At a certain point, some people start to blame the language itself for performance problems and consider to migrate their codebase to other languages. However, the success story of Instagram in handling four hundred million users has shown us that Python is not the bottleneck, but our codebase is.
In this talk, the speaker will share a tale of improving Python website performances in medium-sized enterprise (serving million users) that I’m currently working at. In a year, we finally achieved speed improvement from the average response time of 400 ms to 150 ms per request and we could save around $100k per year in AWS EC2 instance provisioning, which is around 60% of total cost.
Several key points that we have learned from our development process includes:
keywords:
(株)CMSコミュニケーションズ代表取締役 Python Web関係の業務を中心にコンサルティングや構築を手がけている。
このトークでは、以下の4つのパートに分けて説明をします。
機能の説明では、テンプレート層、URLディスパッチ、リクエストオブジェクトの扱い、cookieの扱い、ストレージ層などの簡単な説明を行います。 紹介するフレームワークは、Django、Flask、Pyramid、Zope、Tornado、aiohttp、Guillotina、Bottle、responderの9種類の予定です。 それぞれのフレームワーク毎に、各機能がどのように提供されているのかを比較検討していきます。 最後に、いくつかのケーススタディとして、目的別にフレームワークを選択していく流れを確認します。
keywords:
10Xでタベリーの開発をしているエンジニアです。業務委託で他の会社のサービスをよくするための技術相談や実装もやってます。
eラーニングサイトをデモして、「機械学習のコンテンツ」と、そのコンテンツを写経するためにユーザごとに「Jupyter Notebook」がブラウザで実行できることを紹介します。サイトを紹介することによってこれから説明するアーキテクチャと運用がなぜ必要かが理解しやすくなります。
eラーニングサイト全体がどのように構築されているか紹介します。GCPをクラウドプラットフォームとしてGKEのKubernetes上にNuxt.jsでフロントエンド、Flaskでバックエンド、JupyterHubでJupyter Notebookを構築しています。
JupyterHubは複数のユーザに機械学習用パッケージがインストール済みのJupyter Notebookをインターネット上からアクセスしやすくするためのものです。JupyterHubがどのような構成でどのようにKubernetes上で動作しているかも説明します。
Jupyter Notebookをユーザごとに実行できる環境を用意するにはJupyterHubでなくてもGoogleのColaboratoryがあり無料で使えます。なぜ今回のeラーニングサイトではColaboratoryではなくJupyter Notebookを選定したか説明します。
JupyterHubのみで使うにはデフォルトの設定でかまいませんがeラーニングのサイト内で使えるようにするには様々な工夫が必要です。本サイトで実施している以下の工夫を紹介します。
keywords:
Web系Pythonエンジニア at 株式会社SQUEEZE。Meguro.LYAHFGG(すごいHaskell本を原書で読む会)を主催中。
Pythonでは、関数型言語の機能は積極的には採用されていませんが、複雑な処理を簡潔に書けることから、関数型言語の機能を提供してくれるパッケージが多くあります。
このトークでは、そのようなパッケージをいくつか(fn.py, Pyrsistent, Pampy, PyMonad)取り上げ、Pythonで関数型言語スタイルでのプログラミングする方法を解説します。
まず、関数型言語とはどんなのものなのかを概説し、Pythonではどのように関数型言語機能が実現されているかの分類を見ていきます。
続いて、いくつかの代表的な関数型機能を取り上げ、多言語の例での機能の概念を説明し、PythonのライブラリでどのようにPythonコードが改善されるかを見ていきます。
keywords:
Software engineer with ❤ at GROOVE X in Tokyo, with past lives in hardware engineering, virtual reality, video game development, financial systems, and cloud computing.
Concurrency matters in the physical world– just ask a companion robot possessing 15 degrees of freedom, 50 sensors, and animal-like behavior. As a small team including animators and casual programmers, how would you manage the complexity of gluing the system together while delivering high level functionality and features? How would you avoid wasted months debugging race conditions and deadlocks, or fretting the pitfalls of parallel task communication and error handling? What if you were given only one core of a modest CPU? And how would you enable rapid real-time visualizations of the system with zero impact on production performance?
I'll present the early-adopting, daring answer embraced for LOVOT: Python, the Trio async-await library, and ❤
If you appreciate the difficulties of concurrent programming, have battled real threads and lost, had a rough experience with asyncio or other async framework, or are simply interested in seeing what's possible when a great solution meets an interesting application– I hope you will gain from the talk.
Covered items will include: an overview of Trio's structured concurrency and why Python is at the forefront of concurrency programming; highlights of how it's been applied to the LOVOT companion robot; Trio tooling strengths; an interactive web canvas server for embedded systems based on the Processing API; a look at utilities built on Trio; troublesome points to watch out for; and a review of useful escape hatches.
keywords:
Dustin is a Developer Advocate at Google, focused on supporting the Python community on Google Cloud. He's also a member of the Python Packaging Authority, maintainer of the Python Package Index, and organizer for the PyTexas conference.
If you've ever created a new software project from scratch, you've probably struggled with the "n+1" problem, or "it works on my machine, now can we make it work on yours?". Between Python versions, local dependencies, different package installers, different platforms, and more, the likelihood that we can quickly set up a development environment and move on to productive work sometimes feels slim.
In this talk, we'll take a look at common patterns for improving the local development environment for your Python package, enabling your new developers to get up and running fast, your current developers to write code and iterate faster, and to improve portability of your environment between developers and their respective platforms. We'll examine specific techniques, tools, and methodologies that will enable us to do this, and take a look at some prominent Python software projects to see what they can teach us.
This talk is for anyone who has struggled to set up their local development environment for a software project. This talk is useful for both open-source maintainers and for those working on
After watching this talk, attendees should know exactly what they need to change to make any given codebase more accessible and approachable for new and current developers alike.
keywords:
Pythonが大好きです!趣味も仕事もウェブアプリ開発です。CPythonとtypeshedにコントリビュートしました。
タイトルの「ListはIteratorですか?」の答えは「いいえ」です。ListはIterableですがIteratorではありません。 本発表の主役はtyping、collections.abc、それとmypyです。 Pythonにはintやlistといった様々な組込の型があります。本発表ではその中でもlist(typing.List)やdict(typing.Dict)といった、何かを保持するための型に特に焦点を合わせます。これらの型のうち、Pythonプログラマが最初に触れるのはlistやdictで、次にtuple(typing.Tuple)やset(typing.Set)、さらにiterator(typing.Iterator)と進むのが一般的だと思います。 これらは静的型チェックを行っていなくても、効率の良いプログラムを書こうと考えれば意識することになることです。これらの型を知っている、使っているだけではなく、それらの関係が分かると静的型チェックやドキュメントに引数の型をうまく書けるようになります。 組込関数のsum()をイメージしてください。この組込関数と同じように、各要素の値を足し合わせる関数を自ら定義しないといけないとします。
def sum_reinvention(items: ???) -> int:
total = 0
for item in items:
total += item
return total
この関数の引数のitems
に対する適切な型ヒントは何でしょうか。List[int]は要件を満たしています。しかしここでIterable[int]と宣言することで、List以外にもTupleやDictを渡せる、より再利用しやすい関数になります。
sum_reinvention([1, 2, 3])
sum_reinvention((1, 2, 3))
sum_reinvention(range(4))
しかしIterable型というのは直接使う機会のないものなので、ListやTupleと比べると知名度で大きく劣ります。Iterableを知っていないとIterableと宣言できないのです。この発表では、そういった普段使わないが型ヒントで役に立つ型を取り上げます。 何ができるのがIteratorなのかが分かればListがIteratorのではないことも分かります。
keywords:
大学では知能情報メディアを専攻し、就職後はPythonを使ったデータ活用のPoCや機械学習案件に従事。現在フリー。PyConJP登壇は2回目。
▼対象
① 普段Jupyter Notebookで実験レポートを書くpandasユーザーの方
▼内容
keywords:
Daisuke Saito is a researcher in computer science education. His hobby is game development.
Ren'Py is a Python-based game engine for developing a Novel game. I have used this engine for game development in Doujin activities for eight years. In this talk, I would like to convey the goodness of Ren'Py based on eight years of experience.
Among the advantages are:
There are many other benefits. This talk will also compare with other game engines.
Ren'Py is a novel game engine. The engine is implemented in Python and is easy to extend. Therefore, it is the best choice for those who want to make a game. Also, in this talk, I would like to convey the goodness of handling Python in the development of my hobbies.
keywords:
I'm a CAE engineer working in CAE software company. I want more Python users to use the convenient finite element method library GetFEM + + and the 3D visualization library Mayavi.
There is a 3 step in solving FEM.
keywords:
BASE BANK, Inc.在籍。業務ではWebアプリケーション開発の全般業務を行う。
このトークでは、私自身がPythonを業務で活用しはじめた際に準備しておいてよかったという経験について話すものです。具体的には、CIとユニットテスト機構の準備について紹介します。
CI(継続的インテグレーション)にて、自身が書いたコードがPythonの標準から外れていないか・問題がないかを検査しておくことは非常に有用です。CIが指摘する項目を修正することでコードの品質を保てることに加えて、Pythonを学習することができます。 具体的には次のようなツール・ライブラリを使ったコード検査を紹介します。
ユニットテストを書くことは、特に不慣れな言語を扱う場合にとても有効です。無意識に発生してしまう欠陥コードの混入を排除できるといった品質面のメリットもありますが、ユニットテストがあることによるリファクタリングの容易さが大きなメリットです。業務で使うことによって日々レベルアップするPythonの知識を、スピーディにリファクタリングすることでプロダクションコードに反映することができます。 具体的には、次の点について紹介します。
keywords:
エンジニア 大学での研究は自然言語処理 仕事ではブロックチェーン Gotanda.js スタッフ
ブロックチェーンはハッシュ関数や電子署名などの暗号技術とP2Pネットワーク技術を用いた分散データベースです。多くの場合、次の特徴を持ちます。
Ethereumはブロックチェーンの一種で、DAppのプラットフォームとしての側面を持ちます。開発者はトークンと呼ばれる現実世界の貨幣やアイテムに相当するものをEthereum上にデプロイし、このトークンを利用するDAppを開発します。
トークンの取引はEthereum上にトランザクションとして発行されます。Ethereumはブロックチェーンの一種であるため、このトランザクションは全世界中に公開されています。つまり「誰が」「どのDAppのトークンを」「誰に」に売買したかの情報が誰でもわかるわけです。
このことを利用して、今回の発表ではDApp(主にゲーム)のトランザクションの分析を行います。人気のあるDApp、DApp間の類似度、トークンの価値の変化などの分析をコードを交えて紹介し、結果を可視化します。
BigQueryのPublic Dataset上にEthereumのトランザクションの情報が公開されています。
https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics
集計処理や分析にはこのデータセットを使います。また、分析結果の可視化にはJupyter Notebookを使います。
簡単な分析例を以下に示します。当日はDApp間の関係性や、分析結果をグラフにして可視化したものを紹介します。
次のSQLを叩くと「2019年5月に世界で一番トランザクションの宛先になったアドレス」を集計します。
SELECT COUNT(*) as count, to_address
FROM `bigquery-public-data.ethereum_blockchain.transactions` AS transactions
WHERE TRUE
AND transactions.block_timestamp >= '2019-05-01'
AND transactions.block_timestamp <= '2019-05-31'
GROUP BY to_address
ORDER BY count DESC
次のSQLを叩くと「2019年5月に世界で一番取引されたトークン」を集計します。
SELECT name, COUNT(*) AS count
FROM `bigquery-public-data.ethereum_blockchain.token_transfers` AS token_transfers
JOIN `bigquery-public-data.ethereum_blockchain.tokens` AS tokens ON token_transfers.token_address = tokens.address
WHERE TRUE
AND token_transfers.block_timestamp >= '2019-05-01'
AND token_transfers.block_timestamp <= '2019-05-31'
GROUP BY name
ORDER BY count DESC
keywords:
This talk will be one of the 2 talks the authors are presenting at PyCon JP. It’s by a multidisciplinary team of 5 researchers. Each will cover certain aspects of the talk and engage in the discussion. The speakers have a long history of giving talks at their respective universities on related academic topics. Recently they presented this work at PyCon 2019, Cleveland OH. The talk will help create awareness of how Python can be implemented in healthcare and other related emerging areas.
Recent advancement in artificial neural network and machine learning, has the potential of revolutionizing medical diagnostics. The algorithms can be used to classify images such as mammograms or be used in volumetric analysis for surgical resection. But machine learning algorithms still have limitations that need to be addressed before clinical deployment. Trained only using the most common types of diagnostic models can create problems when very rare type of diagnostics need to be made that are seldom encountered. This can cause mistrust and rises questions regarding effectivity and sensitivity.
For high-stake application like this, the usual classification based machine learning algorithms are not enough. Instead we need a method that can learn high quality low dimensional representation of the data where we can achieve accurate clustering of different classes including for the classes for which we do not have any training data. This way the rare type of breast cancer we mentioned earlier would form its own cluster in the learned representation space and we would automatically be able to differentiate it from the other common types of cancer.
To achieve this, in this project, we develop a generative model which would be able to learn latent representation space under which points coming from the same class are near each other and points coming from separate classes are far apart. We develop a novel loss function for training Variational Autoencoder (VAE) based generative models. The novel loss function exploits ideas from metric learning literature where instead of maximizing classification accuracy, neural networks are trained to map images coming from the same class to same regions in the learned latent representation space. Using our new VAE model, we can learn low dimensional latent representation for complex data that captures intra-class variance and inter-class similarities. The ability to learn such high quality low dimensional representation for any data would reduce any complex classification problem to simple clustering problem.
All our experiments in this project were carried out using Python and its different libraries. In particular we make extensive use of PyTorch, a Python based Deep Learning framework. We believe that our approach can benefit diverse communities attending PyCon who are looking for ways to integrate machine learning algorithms to solve similar tasks that our approach is designed to tackle. In our poster, we will showcase the relevant Python tools one could use to reproduce our experiments and tackle similar tasks in their domains.
Attendees will learn how machine learning can be used to learn features for rare events in semi-supervised manner where standard supervised learning approaches fail. We will go over how we use PyTorch deep learning framework to develop our models step by step. Attendees will also learn how our technique can potentially be used in clinical and medical settings for rare disease and event identification.
keywords:
Site Reliability Engineer / ymyzk.com
はじめに,このトークで取り上げる wsgi_lineprof の機能やデザイン,設計思想などを簡単に紹介します.次にプロファイラの実装に利用している様々な技術や仕組みについて紹介します.最後に今後の展望についてまとめます.
このトークでは以下のようなテーマを紹介します:
keywords:
奈良先端科学技術大学院大学 自然言語処理学研究室(松本研)出身。 現在は企業にて、自然言語処理に関する研究開発に従事。
現在、nagisa という日本語解析のための自然言語処理ツールの開発を行っています。
本ツールは pip install nagisa
でインストール可能であり、下記のようにシンプルな単語分割と品詞タグ付けの関数を提供します。
import nagisa
text = 'Pythonで簡単に使えるツールです'
words = nagisa.tagging(text)
print(words)
#=> Python/名詞 で/助詞 簡単/形状詞 に/助動詞 使える/動詞 ツール/名詞 です/助動詞
最新バージョンでは、系列ラベリングの学習機能を実装し、下記のように1行のプログラムで簡単に系列ラベリングモデルの学習が可能です。 (※ 自然言語処理分野での系列ラベリングとは、文の各単語にラベルを与える手法です。テキスト中から会社名や人名を抽出する固有表現抽出や単語の品詞を推定する品詞タグ付けなどのタスクが存在します。)
nagisa.fit(train_file, dev_file, test_file, model_name)
今回のトークでは、本ツールのチュートリアルを参考にして、 リカレントニューラルネットによる系列ラベリング手法を用いて、開発現場で応用可能なテキストデータの分析方法を説明します。 具体的には、一般公開されている日本語のデータセットを利用して、テキスト中から会社名や人名を抽出する「固有表現抽出技術」を開発現場で活用する方法について説明します。
また、本トークを通じて、PyCon2018のポスター発表では、ポスタースペースの都合上発表することができなかった下記の項目についてもご紹介します。
keywords:
仕事ではPythonにあまり縁のないAndroidエンジニア兼Webエンジニア。好きな大阪桐蔭は中村剛也。
AndroidアプリをPythonで実装する手法として、以下のフレームワークを取り上げます。
それぞれの環境構築の方法、コードの書き方、ツールの使用方法などをご紹介します。また、それぞれのフレームワークの特徴を比較することで、ユースケースに合わせたフレームワーク選択のポイントを解説します。
Pie(Android 9.0のコードネーム)がPythonに出会った世界を体験してください。
なお、一部の内容についてはiOSアプリ開発にも役立てていただける内容だと考えています。
KotlinやJavaの代わりにPythonを利用することが可能になるAndroid Studio用のプラグイン、およびそのプラグインから呼び出されるツール群です。
React NativeはJavaScriptによるクロスプラットフォーム開発フレームワークです。TranscryptはPythonをJavaScriptに変換するAltJSです。これらを組み合わせることでPythonによる実装が可能になります。
Pythonによるクロスプラットフォーム開発フレームワークです。スマートフォンだけでなくPC向けのアプリケーションも開発することができます。
keywords:
合同会社長目CEO。Python Kansai、はんなりPython オーガナイザー。
データを取った後まず行うことは、データを見る作業です。そこで色々なアイデアをデータからくみ取ります。そのあと機械学習のモデルにデータを渡すわけですが、世間では機械学習のモデルに注目が集まりがちで、その前の段階、データを見て何が有効か探すというところがおろそかになっています。また、実はデータを見ることにより非常に多くのことが分かります。可視化は機械学習やディープラーニングのように難しくなく、だれでも簡単にできるものですが、その効果は絶大です。そのため、可視化を取り上げます。
Pythonには可視化ツールがたくさんありますが、中でもDashが優れているのは
という点です。
データ分析に関するプレゼンテーションを行う際、見易さなどの制約から、使われるグラフのデータ量はかなり少なくなります。そのため、実際の事柄の複雑さは排除され、下手をすれば、一本のシナリオしか見えなくなり、聞いている方がからすると退屈なものになります。
Dashを使えばグラフをインタラクティブに作成でき、多くのデータが共有可能です。またウェブにあげるのも簡単であるため、各人が見たいデータを見れ、これまでにないレベルで、データからアイデアを引き出せます。 ウェブにあげるのも簡単なので、ウェブに詳しくない人でもアプリを作って容易に共有することができます。
また、データをnumpy、pandasを使って色々な変形を行いながら、それをそのまま、ウェブアプリケーションに使えます。
最近話題の書籍「ファクトフルネス」ではデータを基に世界を正しく見るということと、世界は人々が思っているのとは逆に、良くなっていることが述べられました。日本経済はどうでしょう?このプレゼンテーションでは、Dashの使い方を知ると共に、日本経済に関しても知ることができます。データ分析にはドメイン知識が重要です。証券アナリスト資格を持つ私と一緒に日本経済を見ましょう。
オープンデータは政府などが出すデータですが、PDFでの表示を目的に作られているデータが多く、前処理が結構つらくなります。その辺りのPandas等での前処理にも触れます。
アジェンダ
以前、日本経済のデータを扱ったものではないものの、データの可視化、Dashに関するプレゼンテーションを行った時に作ったものがあります。そのウェブアプリケーション(heroku無料利用なのでちょっと開くのに時間がかかります)とgithubのリンクです。
keywords:
Marc-Andre is a Python Core Developer, PSF Founding Fellow, EuroPython Society Board Member and has been involved with Python and the community since 1994. He runs his own consulting business as CEO of eGenix.com and is CTO of the fintech company Point Nine.
Python has become the defacto standard tool for many people to write tools, command scripts, smaller applications and even large applications.
On Windows, it is fairly easy to build application bundles using e.g. py2exe, but on Unix, the situation is less obvious, unless you want to rely on OS specific Python distributions, which often require severall 100MB with of installation on the system and are usually customized in distribution specific ways.
Instead of relying on OS installed Python distributions on Unix, our open-source eGenix PyRun provides a more or less complete Python runtime (interpreter and stdlib modules) in a single file, which can be "installed" by simply copying the binary to the destination system. The file can be as small as 4.8MB for Python 3.7, by using compressors such as upx.
Due to its size, it's also the perfect Python distribution for Docker containers.
The talk will show how PyRun works, is built, how to customize it to include additional modules and applications.
keywords:
A code monkey builds search services in Amazon jungle. He gave two talks in PyCon TW before. This will be his first talk in PyCon JP.
Python2 will retire in 2020 January first, just few months later. If you have watched Jason Fried's talk in PyCon2018 about the 5 years fight to move from python2 to python3 in FaceBook, this will be another similar talk, but in a different company, one of the oldest search engine in the world - Amazon product search. This talk is not about making your code python2/3 compatible, instead, it's targeting to explain the challenge to achieve supporting python3 in large scale project, and what treatment can be applied.
keywords:
DjangoでBtoC、CtoC向けのWEBアプリケーションを開発しているサーバーサイドエンジニアです。
複雑化してきたアプリケーションの開発で、ドメイン駆動設計の手法を一部取り入れた例などが最近出てきました。 アプリケーションの規模が増していくにつれて、MVCでの実装を続けていると、Fat ModelやFat Contollerと呼ばれる現象が出てくる際に、解決策の一つとしてDDDの手法などが最近話題になっています。
しかし、ドメイン駆動設計界隈では有名な書籍である「エリックエヴァンスのドメイン駆動設計」は内容が抽象的で難解なことで有名です。 それを噛み砕いて説明したWEB上でのサンプルコードなどは、Go,C#,Javaなどの静的片付け言語などを中心に多く見かけるものの、Pythonなどの動的型付け言語での資料はなかなかありません。
Djangoの特徴の一つとしては、WEBアプリケーションでは特に普及しているLaravel PHPやRuby on Railsと違って、アプリケーションを分けてドメイン事に区切りやすいアーキテクチャであることです。これはDDDのクリーンアーキテクチャなどを実装しやすく相性が良いと考えています。
本発表では、DDDなどによく出てくるアーキテクチャの一つであるクリーンアーキテクチャなどを、Django上で実装する方法についてサンプルコードを交えてお話します。
ちなみにDDDには戦略的設計と戦術的設計の二つがあるものの、戦略的設計については解説せず、具体的なコードの実装方法などを解説する戦術的設計について、海外のカンファレンスなどで見かけた資料や、自分なりの経験談などを元に発表します。
DDDの概念
DDDの基本的な概念
MVCなどの問題点
戦略的設計と戦術的設計の違い
クリーンアーキテクチャとは何か
各アーキテクチャの違いを説明
ValueObject, Entity, DomainService, ApplicationServiceなどの用語を説明
サンプルのコードを元にそれぞれのポイントなどを説明
DIP(依存性逆転の法則)とPythonでの実装方法
Django上でのDIコンテナの利用方法
話さないこと
keywords:
株式会社サイバーエージェントにてハイパーパラメータ最適化の研究に従事。2019年より産総研特定集中研究専門員(兼務)。
ハイパーパラメータ最適化問題とは
ブラックボックス最適化手法
最新の研究 〜ブラックボックスからの脱出〜
Pythonライブラリ
まとめ
keywords:
I’m a former CERN DevOps that turned into a Python consultant and trainer
The official End of Life date for Python 2 is set to 01.01.2020. What does it mean for projects that are still using it? Will someone pull the plug and everything will stop working on that day? In this talk, I will discuss the future of Python 2, the dangers of using the unsupported version of Python and opportunities for those who want to migrate to Python 3. But, I will also explain what choice you have if you really can't move to Python 3 yet.
This is not a “how we migrated to Python 3 at Foo company” type of talk. There are many other talks that explain the migration process and outcome in various companies. I want to take a different approach and focus on comparing the options that you have: rewriting your Python project, migrating it, staying on Python 2 or moving to a different implementation, like PyPy (together with pros and cons of each). And for those of you who decide to migrate to Python 3, I will explain how to prepare to this kind of task, what tools and techniques can help you and what problems you might encounter.
keywords:
Twitter, GitHub: @puhitaku | GROOVE X, Inc. にてLinuxやFPGAを担当。
venv に代表される「環境分離」を実現するツール類は、開発対象を問わず広く利用されています。開発者が自らのマシンの中で複数のPython環境を共存させる ― 例えば、venv でプロジェクト単位の "箱庭" を作る ― ことについては、これまでたくさんのノウハウが蓄積され、インターネットで広く共有されています。
しかし、
心配事はたくさんあります。Debianパッケージでインストールされたモジュールはグローバルな dist-packages に置かなければなりませんし、社内開発のプログラムともなれば、Debian repositoryに用意されていないパッケージも多く必要になります。直感的には「APTのインストールをフックしてpipで依存パッケージも入れればいい」となりますが、その先には、自作したDebian パッケージ間で依存の衝突が発生する、install / remove の順番に可換性がない、副作用が残る、など文字通りの「悪夢」が待ち受けています。
そこで、我々は「APT の install / remove に連動して Python 環境を生成 / 削除し、グローバルな Python 環境やパッケージ間の相互作用を排除するツール」の開発を行いました。今回は、これにまつわる思考や実現方法について紹介します。
発表の流れとしては、
を経緯として紹介し、その後は
などといった具体的なテクニックについて紹介します。
keywords:
東芝グループ内のソフトウェア開発部門のツール開発やプロセス改善などの支援と研究開発に従事
社会インフラシステムは、仕向け毎に仕様の一部が異なることが多く、仕様の差異を多数の設定パラメータとして管理することがある。このような設定パラメータはしばしば Excel を用いてドキュメント化され、同時に、マクロとして実装されたツールにより、アプリケーションが解釈可能な設定ファイルの生成が行われている。しかしながら、このようなツールにはソースコードとしてのマクロの構成管理の難しさや、継続的インテグレーション(CI)を実現するツールからの実行が困難などの課題がある。
そこで、我々はある社会インフラシステムの向けに、Excel で管理された設定データをもとに、設定ファイルを生成するツールを Python で開発した。本発表では、ツールの開発で得られた以下の知見について述べる。
社会インフラシステムのライフサイクルは10年以上にわたるため、長期間ツールも実行可能である必要がある。一方で、ソースコードと使用するライブラリを記述した requirements.txt を共有し、それぞれの環境で pip でパッケージをインストールする方法では、必要なパッケージがリポジトリに存在し続ける保証はなく、同じ環境を再現できなくなる可能性がある。そこで、Embeddable 版の Python をベースに必要なライブラリを追加した Python 実行環境を作成し、ツールとバンドルして利用者間で共有する方法を採用した。
Python から Excel データを読み込む方法はいくつかあるが、本ツール openpyxl を採用した。openpyxl は Excel 2010 以降のドキュメントを読み書きできるライブラリである。openpyxl は Excel ファイルを直接読み込むことができるため、Excel がインストールされていないコンテナ上でも動作し、CI 環境を容易に構築できる。
また、Excel ファイルのテーブルの行を Python 3.7 から導入されたデータクラスのオブジェクトとして読み込めるようにした。Excel 上に記載した独自形式のスキーマ情報をもとにデータクラスを動的に生成することで実現している。
対象としたシステムの中には、設定ファイルの全体ではなく、一部のみを自動生成する必要のあるものがあった。このような設定ファイルの生成には、Web アプリケーションで使用されるテンプレートエンジンンの Jinja2 を使用した。これにより、手作業で編集する部分については、Jinja2 テンプレートを編集することで従来通りの方法を維持しつつ、一部のみを自動生成できる。
keywords:
Takanori(@takanory) is a Vice Chair of PyCon JP Committee. He is also a Director of BeProud Inc.
The outline of my presentation is below:
keywords:
Research engineer at AI Lab. 共訳書 エキスパートPythonプログラミング改訂2版
scikit-learn.feature_selections
パッケージが提供する各種特徴量選択アルゴリズムの解説keywords:
日本システム技研所属。Webエンジニア。主はバックエンド。ハードは苦手なので便利ガジェットを使ってIoTやってます!
センシング、クラウド、Webにわけて紹介していきます。 いくつかのサービス、ライブラリを使用するので、正直、最初は使い方で時間がかかってしまったり、覚えるのが大変かもしれません。 それでも、使うことにより「作らなくてよい」「やらなくてよい」「任せられる」部分もたくさんあります。 その分、やりたいことに集中でき、Pythonのコード量も減りよい面もたくさんあります!
keywords:
物流や生産計画の最適化&シミュレーション、分析に携わっています。リーディングエッジ社所属。
工場や店舗施設における業務効率向上のため、Pythonによるシフトスケジュール作成の高度化に取り組んでみました。スケジュール作成は施設管理者の負担となる一方で、最適なスケジュールを作成することは、従業員のモチベーションを高め、施設全体の業務効率向上に繋がると考えられます。今後スタンダードとなる可能性のある数理最適化ソルバーGoogle Optimization Toolsを使用し、人と人の相性による生産性を数値化したデータから、シフトスケジューリング問題を解く2次計画アルゴリズムを開発しました。本発表では、Google Optimization Toolsに含まれる最適化ライブラリ群とそれらの概念、Pythonプログラムの実装、結果の評価、今後の目標であるシステム公開方法について紹介いたします。また、最近人気のあるメタヒューリスティック解法をPythonで実装した結果と、ソルバーによる厳密解法の結果との比較結果を紹介し、計算速度や解の最適性、高速化の方法、対応できる問題規模の差を知見として発表し、現実的な問題に対応するためのノウハウをご紹介いたします。
keywords:
セッションリスト