Recent entries

RE: Diversity on the Python sprint in September

Oct. 4, 2016, 7:19 p.m., last updated Oct. 4, 2016, 8:25 p.m. Entry tagged as diversity and python.

As an organizer, I feel compelled to respond to the accusations about this event not being diverse enough.

Life Under the Weight of Opportunity Cost

July 17, 2016, 4:30 a.m., last updated July 17, 2016, 4:42 a.m. Entry tagged as editorial , health and long.

This is a self-reflective post, interesting mostly if you want to understand what goes on inside my head these days. There’s no practical knowledge to be gained from it, no commentary on politics, popular culture. It’s meta.

My Brain, Apple and the Transfer of Fragility

April 8, 2016, midnight, last updated March 29, 2017, 11:10 p.m. Entry tagged as apple , editorial , health and long.

Let’s talk for a while about trust issues and data robustness. There’s really two interconnecting stories here so bear with me while I go overboard with the backstory.

I lost 26 pounds in 3 months

Sept. 28, 2015, 8:45 a.m., last updated March 29, 2017, 11:51 p.m. Entry tagged as BMI , cycling , fasting , fitness , health and weight.

In May I flew to Poland for my sister's wedding. Using the opportunity, I went for a nearby concert organized by my favorite pianist in the world. While there, I met a friend whom I haven't seen for years. She told me I looked fat.

What single-dispatch generic functions mean for you

June 5, 2013, 11:50 a.m., last updated Jan. 23, 2019, 6:06 p.m. Entry tagged as long , PEP and python.

PEP 443 has just been accepted. It brings a uniform API for creating and managing single-dispatch generic functions in Python 3.4. If the last sentence read to you like some Haskellish solution to a self-inflicted problem, this post is here to explain how generic functions may help you to organise real world code.

Enter Music Festival 2013

June 1, 2013, 3:22 p.m., last updated March 29, 2017, 11:12 p.m. Entry tagged as festival , music and Poznań.

I received tickets for this year's edition of Enter Music Festival from my sister. The last few weeks have been so intense that when finally the time came to visit the festival, I was really surprised (seriously, it's the end of May already?).

All this somewhat raised my expectations ("since I'm here already, it better be good"). They haven't been totally fullfilled but let's start from the very beginning...


Nov. 22, 2012, 10:31 p.m. Entry tagged as advertising and editorial.

You cannot really lie in an advertisement. The FTC Bureau of Consumer Protection guards against using fraudulent techniques in advertising. I'm not sure whether it ever protected me. Seeing how ads work nowadays, I'm pretty sure the advertisers are always a step ahead of the bureau. You cannot lie but you can exaggerate about the desirable characteristics of your product and be silent about those less welcome. Selling is the art of manipulating the truth in a way that makes the product appear to satisfy the customers' requirements. Manipulation is the keyword here.

Error opening file for reading: Permission denied

Aug. 16, 2012, 3:38 p.m., last updated Dec. 4, 2012, 5:51 p.m. Entry tagged as bug , libjpeg , pil , python and ubuntu.

As we released Ralph as an open source project, new users started deploying it and very soon ran into an annoying problem. The output of each ralph command was preceeded with a meaningless message out of nowhere:

Error opening file for reading: Permission denied

Took me a while to identify the culprit and work around this.

HackFest 2012 Summary

April 16, 2012, 1 p.m., last updated April 16, 2012, 3:43 p.m. Entry tagged as competition , hackfest , Poznań and speeches.

During the weekend I participated as a mentor in a programming competition called HackFest 2012. A couple of thoughts on the event.

Upgrading the choices machinery for Django

April 3, 2012, 9:01 p.m. Entry tagged as django and python.

Specifying choices for form fields and models currently does not do much justice to the DRY philosophy Django is famous for. Everybody seems to either have their own way of working around it or live with the suboptimal tuple-based pairs. This Django enhancement proposal presents a comprehensive solution based on an existing implementation, explaining reasons behind API decisions and their implications on the framework in general.