List of talks at PyCon SK 2018

All Machine Learning / AI Community / Diversity / Social Data Science DevOps Documentation Education Python General Security Soft Skills Hardware Web Development Other

Campaign Automation & Abusing Celery Properly
English flag Talk Python General

Peter Dolák (SK)

Celery is an asynchronous task queue allowing easy distributed job execution in Python. This talk will, after a short introduction to Celery, share what we learned when we used it as the backbone for the campaign automation module of Exponea experience cloud. Serving over a hundred millions of our client's customers across the world with incredibly diverse use cases, we have heavily used some of Celery's most obscure functionality in often unintended ways. Join us for a bumpy ride towards a stability and scalability and learn many insights useful if you ever need to run some serious asynchronous jobs yourself. Barf bags not included.

Charon and the way out from a pickle hell
Slovak flag Talk Python General

Peter Bábics (SK)

Pickle ako formát pre serializáciu je tu s nami už dlhú dobu, jeho prednosti sú jasné, rýchla serializácia a implementácia v štandardnej knižnici.

Taktiež má aj určité nevýhody, ktoré často dokážu prevýšiť, medzi nimi sú napríklad bezpečnostné hrozby a minimálna podpora migrácií. U nás v Quantlane bola hlavným problémom chýbajúca podpora migrácii, nakoľko aktívny vývoj aplikácie vždy vedie k zmenám v dátových štruktúrach.

Z tohto dôvodu sme vytvorili `charon`, jednoduchý serializačný nástroj, ktorý si kladie za cieľ previesť komplexné dátové štruktúry do jednoduchých základných typov (dict, list, skalárne hodnoty), ktoré sa následne dajú jednoducho serializovať pomocou ďaľších knižníc ako napriklád json, yaml a iné. Knižnica ponúka rôzne metatesty ako napríklad kontrolovanie verzie serializačných funkcií voči dátovým typom pomocou hashov AST, kontrolu serializačnej pipeline alebo aj kontrola či majú všetky serializačné funkcie test.

Cython: Speed up your code without going insane
Czech flag Workshop Python General

Miro Hrončok (CZ)

Let's learn how to write Cython. Cython let's you write Python extension modules as if they were written in C or C++, but using a superset of Python. It's easy, it's fun, the result is fast and you are not furious.

Preliminary agenda:

* Python C API - what, why, how, why not
* Building extension modules with setuptools
* Python C API internals - PyObject, Reference counting, GIL
* Cython - what it does, why it's better, basics
* Compiling Python code with Cython
* Annotating with Cython, basic profiling, where's my code slow?
* Let's add types. Wrrrrm, speed ups!
* Writing Cython functions
* Creating "classes" (extension types)
* Using Cython with NumPy
* Cython directives
* C structs, pointers, malloc etc.
* Using C libraries from Cython
* (optional - if there's time left) pyximport and %%cython IPython magic
* (optional - if there's time left) Using Cython with C++
* (optional - if there's time left) Building wheels (in the cloud)

How to connect objects with each other in different situations with Pythonic ways - association, aggregation, composition and etc.
English flag Talk Python General

Goga Patarkatsishvili (GE)

There are different ways of connecting objects with each other and it's mandatory to understand these connections properly, for their connections to be natural, logical and well-designed.

Implementing distributed systems with Consul
English flag Talk Python General

Matúš Valo (SK)

Developing distributed systems is hard. Implementing distributed system from scratch requires knowledge of specialized algorithms and programming techniques. Consul is distributed system which enables us to build distributed system only by using Consul HTTP API. In our presentation, we are going to show basic concepts of consul, building our own consul cluster and showing how consul can be used for implementing distributed system. Our discussion will include also showing how we can benefit from consul even when using already existing python distributed components.

Learn MongoDB by modeling PyPI in a document database
English flag Workshop Python General

Michael Kennedy (US)

MongoDB was the most wanted database technology of 2017 among developers. Python is one of the true premier languages to work with MongoDB. Its dictionaries and classes map perfectly to document databases' JSON-like records. In this workshop, you will learn to build rich, real-world applications based on MongoDB and Python. You'll learn about modeling data, performance, and deployment considerations.

https://insights.stackoverflow.com/survey/2017#technology-most-loved-dreaded-and-wanted-databases

Making Python Behave
Slovak flag Talk Python General

Vladimir Kopso (CZ)

We at SolarWinds Pingdom believe we have made some nice tricks while writing our end-to-end automation Framework.

And of course, the Python language and its ecosystem was what enabled this magic.

So we want to share some tips for making your code cleaner and life easier, not only when you are trying to implement BDD at your project.

General tips and lessons learned from writing good behavior-driven automation are also included.

Pythonic code, by example
English flag Talk Python General

Michael Kennedy (US)

We often hear the term Pythonic thrown around, but what exactly does it mean? This talk will take you on a tour of some of the more important pythonic concepts. You will see many examples of perfectly functional Python code that is quite non-pythonic. We will evolve that code into more an idiomatic form that fits better with the Python language and its users.

“Secret” information about the code we write
Slovak flag Talk Python General

Tibor Arpáš (SK)

Podľa môjho názoru vývojové prostredia (IDE) zanedbávaju runtime aspekt programov, ktoré v nich píšeme. Historicky sa tieto prostredia asi vyvinuli z textových editorov a postupne dostávaju viac a viac funkcií a umožňujú viacero pohľadov na zdrojový kód a jeho všakovaké aspekty. Vývojové prostredia dokážu zázraky so zdrojovými súbormi, ktoré nám ležia na disku.

Avšak zdrojáky nepíšeme aby ležali na disku ale kvôli tomu aby nám bežali ako programy. Pri behu môže vznikať kopec zaujímavých informácií spätne využiteľných pri programovaní. Dôraz vývojových prostredí na statické zdrojové kódy škodí najmä dynamickým programovacím jazykom ako je Python. Chcel by som odprezentovať a získať spätnú väzbu na 3-5 nápadov ktoré majú za cieľ práve preniesť rôzne informácie z behu Python programu naspäť do prostredia v ktorom sa píše zdrojový kód. V ideálnom prípade presne na riadok alebo dokonca na výraz, ktorý programátor práve píše alebo sa s ním dokonca trápi.

Príklady týchto nápadov:

- prezentácia stack trace informácie v IDE, na konkrétnych riadkoch kde tento stack trace vznikol, intuitívna navigácia po framoch stacktrace, hint na hodnoty lokálnych premenných jednotlivých framov

- prenos a výpis log hlášok v IDE na konkrétmych riadkoch, ktoré tento výpis vygenerovali

- coverage informácia na riadku, ale vrátane informácie Who Tests What (ktorý, test vykonal tento riadok, pozri napr. https://bitbucket.org/ned/coveragepy/issues/170/show-who-tests-what )

- použiteľnejšia reprezentácia spustených/úspešných/zlyhaných testov ako momentálne používaný rozbaľovací strom. Doklikať sa ku konkrétnemu výsledku testu v Pycharm test runneri často trvá minútu a po každom spustení testov sa táto manuálna práca zahodí a treba začať klikať odznova. Navrhnem intuitívnejší spôsob prezentácie.

- meta nápad: implementovať prezentované nápady bude stáť nezanedbateľné úsilie. Kedže vývojových prostredí je veľké množstvo, a každé ma rozdielne API ideálne je navrhnúť všeobecný protokol, ktorý by oddeľoval IDE a zdroje runtime informácií podobne ako to robí Language Server Protocol (https://microsoft.github.io/language-server-protocol/)

Unsafe at Any Speed
English flag Talk Python General

Rae Knowler (CH)

The default settings of some libraries and tools are so useless, or even dangerous, that they should never be used. While they give the impression of being easy to use or performant, they actually represent traps for the unwary user. I will show the concrete problems caused by such defaults, and explore how to create tools with _good_ defaults.

Vim your Python, Python your Vim
English flag Talk Python General

Miroslav Šedivý (DE)

What do you use to write source code, docs, books or e-mails? Single brain, single pair of hands, single keyboard, but a different keyboard layout for each language and a different text editor for each purpose?

---

Do you use an IDE to work on Python code, then switch to an e-mail client to write a message, then open a different editor to work on the documentation and finally ssh to a remote server to edit a configuration file? Do you switch languages frequently or are your colleagues named Müller, François, Muñoz or even Šedivý?

I'll show you how I am happily typing in several languages on a single standard US keyboard layout and why my CapsLock became so useful.

I'll show you how I use a single editor on all my machines to produce all sorts of text, especially Python code with a few useful plugins.

I'll show you my own plugin written in Python to hack my e-mails far beyond imagination.

Working with XML
Czech flag Workshop Python General

Václav Sauer (CZ)

Workshop pro začátečníky

Obsah (zhruba):
Stručný úvod do XML
Instalace parseru
Nahrání, úprava, uložení XML
práce s daty v XML formátu
serializace a deserializace objektu do XML

ZODB: The Graph database for Python Developers.
English flag Talk Python General

Christopher Lozinski (PL)

The ZODB is a mature graph database written in Python and optimized in C. Just subclass off of class Persistent Object, and Persistent Container, and your objects, graphs and applications become persistent.

The market for Graph Databases has recently exploded, as evidenced by over $200Million invested in graph database companies. Most of the graph databases are written in Java.

If you are a Python developer, you will find much greater productivity using a graph database written in Python, than one written in statically bound Java. The major Java databases constrain you to one of several persistent data types. Persistent Python, supported by the ZODB allows you to make any Python data structure persistent.

The new ZODB Demo makes it very easy to start building your own applications on top of the ZODB. You can start by customizing the TreeLeaf, TreeBranch and TreeRoot classes and their templates. You get CRUD for free.

The demo includes traditional relational CRUD, Create, Read, Update, and Delete. But it also includes the extended graph CRUD. Rename a Leaf or Branch. Cut and paste leaves or branches, copy and paste leaves or branches. The talk also demonstrates the soon-to-be released view historic versions and restore a previous version.

You can watch the talk video here:
PythonLinks.info/zodb

And see the slides here:
https://pythonlinks.info/presentations/zodbtalk.pdf