Notes on PySS18

Last week­end an amaz­ing edi­tion of Python San Se­bastián took place. Here are the main high­lights of what the con­fer­ence looked like to me.

Fri­day start­ing with a work­shop on the morn­ing that took place in the u­ni­ver­si­ty of in­for­mat­ics of Basque Coun­try. It was a work­shop about ma­chine learn­ing, with Python.

The con­tent was great, and en­light­en­ing. It’s a very in­ter­est­ing top­ic, and p­re­sent­ed with the main tools to work in Python: Jupyter, numpy, pan­das, etc. Promis­ing start.

Sat­ur­day was the first day for talk­s, and it start­ed with a nice key­note about the Python com­mu­ni­ty, fol­lowed by a nice pre­sen­ta­tion about web scrap­ing with­ Python tool­s, that al­so cov­ered some tricks to do with Post­greSQL, such as ­ef­fi­cient­ly com­put­ing the dis­tance be­tween strings with a spe­cial op­er­a­tor avail­able through an ex­ten­sion.

Af­ter that, I pre­sent­ed my talk ti­tled De­mys­ti­fy­ing corou­tines and asyn­chronous pro­gram­ming in Python, on which I cov­ered the ba­sics be­hind ­mod­ern asyn­chro­nous pro­gram­ming.

It fol­lowed a pre­sen­ta­tion with an in­tro­duc­tion about Djan­go REST frame­work, with a good ex­pla­na­tion of not just the tech­ni­cal stack but al­so web con­cept­s, and the ideas be­hind REST. Af­ter the pre­sen­ta­tion it was time for lunch.

Af­ter lunch we en­joyed a talk about the chal­lenges from the Plone com­mu­ni­ty on e­volv­ing their Python code base. I al­ways learn and get in­spired when I lis­ten ­to a Plone talk. It fol­lowed a key­note on deep learn­ing, and af­ter that it was ­time for light­ning talk­s.

From all the good light­ning talk­s, there was one that kind of re­mind­ed me of the “WAT­s” of Python­s, show­ing code snip­pets that were seem­ing­ly wrong (or ­plain wrong in some cas­es(, but valid with small tweak­s).

See what I mean:

In [1]: 1.  # float
Out[1]: 1.0

In [2]: 1..__class__
Out[2]: float

In [3]: 1.__class__  # error trying to get the class of the object 1
   1.__class__  # error trying to get the class of the object 1
            ^
SyntaxError: invalid syntax

In [4]: 1   .__class__  # it works with a space though
Out[4]: int

In [5]: -0  # negative zero?
Out[5]: 0

In [6]: -0.0  # negative zero!
Out[6]: -0.0

In [7]: ...  # Ellipsis
Out[7]: Ellipsis

In [8]: .... # 4 dots? nothing
   .... # 4 dots? nothing
                        ^
SyntaxError: invalid syntax

In [9]: ....__eq__(...)  # ... or as an operator to call methods from Ellipsis
Out[9]: True


In [10]: N = 1000000000

In [11]: f"{N:_}"  # formatting numbers à la Python 3.6
Out[11]: '1_000_000_000'

In [12]: f"{N:,}"  # oldie but goodie
Out[12]: '1,000,000,000'

Sun­day start­ed with an­oth­er great key­note about pro­cess­ing mu­sic with Python. After the cof­fee break, there was a talk by Stephane Wirtel telling us what’s new in Python 3.7, fol­lowed by a talk about the hug frame­work and how to build REST APIs with it, and then the last talk of the morn­ing was about op­ti­miza­tion al­go­rithms (in the sort of dy­nam­ic pro­gram­ming, etc.), to solve re­al-­world prob­lems for a re­al plat­for­m. It’s one of my favourite top­ic­s, so I en­joyed that talk a lot.

Af­ter lunch, the last talks were about build­ing a bot for Tele­gram, and a keynote about ma­chine learn­ing, and the tools that Python pro­vides for it (s­cik­it learn, and sim­i­lar to those cov­ered at the work­shop the first day).

Then the light­ning talk­s, and the clo­sure of the con­fer­ence, which was amaz­ing and I en­joyed very much.

All in al­l: a great con­fer­ence on which I’ve met awe­some pro­fes­sion­al­s, I learnt new things and got a re­fresh­er on top­ics I was al­ready fa­mil­iar with­, and got in­spired to keep learn­ing. Look­ing for­ward to the next edi­tion al­ready! Ku­dos to the or­ga­niz­ers :-).