PyCon CZ 2019 – Saturday

On the second day of the conference, I managed to arrive in much better shape and early enough to attend the opening of the day. After some clarification of the lunch process, the description of the dinner (sausages on stick over a fire) and some compulsory warnings (Fire is hot. Please do not get burned.) was the day officially started.

Unfortunately, I was not able to find time to write this report until more than a month had passed since the end of the conference. The descriptions are thus more brief than of the previous day.

Morning talks

The morning track was opened by Jackie Kazil with her talk about parallels between career building and home remodeling. Beside some interesting details from regular life in the USA I have learned few useful tips for organizing my time when life gets really busy. In these times, it is important to write down and order one’s priorities, and then make a thick line between the ones that are necessary and those which has to be postponed or abandoned.

Another interesting talk was the deliberation of Veronica Hanus about commenting in code. She reminded the audience that even when the latest trends indicates that comments are essentially a code smell, it is the content of these comments should be scrutinized, rather than their presence. If the comment just re-phrases what is described by the code, it is (usually1) wrong. On the other hand, comments describing why the piece of code in question does exactly what it does are definitely a proper documentation and usually worth their metaphorical weight in gold. When writing code, it is thus necessary to empathize with one’s successor and consider whether the comment will be more confusing or helpful for him.

The last morning talk I attended was the introduction to CPython’s subinterpreters. As the author (Marcel Plch) later confessed, it was apparent that this talk was unfortunately prepared at the last moment. I lost track of the topic and the speaker lost my attention rather quickly, and I walked away only with a list of public speaking mistakes2.

Afternoon talks

My afternoon track was opened by a keynote about team leadership. Mislav Cimperšak described his experience with transition from a developer position to a team lead position. This transition has to come together with a certain paradigm shift – if one attempts to still work also as a developer, the whole team will suffer, since the primary job of the team lead is making sure that the team works and not the development. It this thus necessary to re-distribute the work so that the team lead has no development assigned and can fully concentrate on the leadership.

The next talk was much more practical than the previous ones, and to me it was the most impressive one of the whole conference. Petr Viktorin demonstrated how the keywords async and await work, and what an event loop is for in the async world. Together with the explanation, he live-coded one such event loop – in 40 lines of code in the span of 30 minutes 😮.

The track was then closed by Git internals talk. Dariusz Aniszewski described the internal structure of the .git/ directory, the means of linking between various objects, and the way git stores each revision. Thanks to this, I have finally managed to understand why tools such as git-annex or git LFS exist3. I was also able to appreciate the simplicity of this whole design.

Evening after-party

The talks part of the conference was closed by a rather pleasant after-party on the grass in front of the conference building. After singalong of the unofficial Python hymn together with the organization team the dinner was served (sausages on stick over a fire) and the uncontrolled networking has begun. Late in the evening I returned from my last day of the conference filled with new acquaintances, inspiration, and the feeling of a time well spent.

In my opinion, the Czech PyCon gets better with passing years, and I am definitely planning my visit next year; and I hope I will see you there!

  1. A category onto itself are comments made by beginners who do not yet understand the language and use the comments as line-by-line explanations. These are rather effective learning aid – but must be unlearned at an appropriate time. 

  2. I have met with Marcel over lunch and talked about said mistakes. He was very receptive and appeared very glad for the feedback, which he received quite rarely. The lesson here is that no one was born a master, so if you have a problem with a talk, talk to the speaker – it might actually help him. 

  3. Since git stores each known complete version of each file, versioning of large files can fill the disk space rather quickly.