Notes on PySS18

Last weekend an ama­zing edi­tion of Py­thon San Se­bas­tián took pla­ce. He­re are ­the main hi­gh­li­gh­ts of what the con­fe­ren­ce looked like to me.

Fri­day star­ting wi­th a wo­rks­hop on the mor­ning that took pla­ce in the u­ni­ver­si­ty of in­for­ma­ti­cs of Bas­que Coun­tr­y. It was a wo­rks­hop about ma­chi­ne ­lear­nin­g, wi­th Py­tho­n.

The con­tent was grea­t, and en­li­gh­ten­in­g. It’s a ve­ry in­te­res­ting to­pi­c, an­d ­pre­sen­ted wi­th the main tools to wo­rk in Py­tho­n: Ju­p­y­te­r, num­p­y, pan­da­s, etc. ­Pro­mi­sing star­t.

Satur­day was the first day for ta­lks, and it started wi­th a ni­ce ke­y­no­te abou­t ­the Py­thon co­m­mu­ni­ty, fo­llo­wed by a ni­ce pre­sen­ta­tion about web scra­ping wi­th ­P­y­thon tool­s, that al­so co­ve­red so­me tri­cks to do wi­th Pos­tgreS­Q­L, su­ch as e­ffi­cien­tly com­pu­ting the dis­tan­ce be­tween strings wi­th a spe­cial ope­ra­to­r a­vai­la­ble th­rou­gh an ex­ten­sio­n.

After tha­t, I pre­sen­ted my ta­lk ti­tled De­m­ys­ti­fying co­rou­ti­nes an­d a­s­yn­ch­ro­nous pro­gra­m­ming in Py­thon, on whi­ch I co­ve­red the ba­si­cs be­hin­d ­mo­dern as­yn­ch­ro­nous pro­gra­m­min­g.

It fo­llo­wed a pre­sen­ta­tion wi­th an in­tro­duc­tion about Djan­go REST fra­mewo­rk, wi­th a good ex­pla­na­tion of not just the te­ch­ni­cal sta­ck but al­so web con­cep­ts, and the ideas be­hind RES­T. After the pre­sen­ta­tion it was ti­me for lun­ch.

After lun­ch we en­jo­yed a ta­lk about the cha­llen­ges from the Plo­ne co­m­mu­ni­ty on e­vol­ving their Py­thon co­de ba­se. I alwa­ys learn and get ins­pi­red when I lis­ten ­to a Plo­ne ta­lk. It fo­llo­wed a ke­y­no­te on deep lear­nin­g, and after that it wa­s ­ti­me for li­gh­tning ta­lks.

From all the good li­gh­tning ta­lks, the­re was one that kind of re­min­ded me of ­the “WA­Ts” of Py­thon­s, sho­wing co­de sni­ppe­ts that we­re see­min­gly wrong (o­r ­plain wrong in so­me ca­ses(, but va­lid wi­th sma­ll tweaks).

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 started wi­th ano­ther great ke­y­no­te about pro­ce­s­sing mu­sic wi­th Py­tho­n. A­fter the co­ffee break, the­re was a ta­lk by Ste­pha­ne Wir­tel te­lling us wha­t’s ­new in Py­thon 3.7, fo­llo­wed by a ta­lk about the hug fra­mewo­rk and how to buil­d ­REST APIs wi­th it, and then the last ta­lk of the mor­ning was about op­ti­mi­za­tio­n al­go­ri­th­ms (in the sort of dy­na­mic pro­gra­m­min­g, etc.), to sol­ve rea­l-worl­d ­pro­ble­ms for a real pla­tfor­m. It’s one of my fa­vou­ri­te to­pi­cs, so I en­jo­ye­d ­that ta­lk a lo­t.

After lun­ch, the last ta­lks we­re about buil­ding a bot for Te­le­gra­m, and a ke­y­no­te about ma­chi­ne lear­nin­g, and the tools that Py­thon pro­vi­des for it (s­cikit lear­n, and si­mi­lar to tho­se co­ve­red at the wo­rks­hop the first da­y).

Then the li­gh­tning ta­lks, and the clo­su­re of the con­fe­ren­ce, whi­ch was ama­zin­g and I en­jo­yed ve­ry mu­ch.

All in all: a great con­fe­ren­ce on whi­ch I’­ve met awe­so­me pro­fe­s­sio­nal­s, I ­learnt new things and got a re­fres­her on to­pi­cs I was al­ready fa­mi­liar wi­th, and got ins­pi­red to keep lear­nin­g. Looking fo­rward to the next edi­tion al­read­y! Ku­dos to the or­ga­ni­zers :-).