Found a buglet in the CMX import Filter. I'm not sure whether it's really a bug in the filter; it could just be that the CMX file is incorrect. Unfortunately, Corel's documentation mostly talks about 32bit CMX and this is a 16bit file (not to mention that the docs are incomplete and sometimes wrong and that CMX sucks) and my filter does the right thing here according to the docs. I guess I'll have to boot windows if I really want to investigate this.
More importantly, I spent some time thinking a bit again about gradient geometry representations in Sketch. Currently, positions of e.g. the center points of radial gradients are stored relative to the bounding box of the object. This has the great advantage that the same values can be used to describe the 'same' gradient geometry for several different objects at once, which is important for styles, i.e. properties shared by several objects. The disadvantage of this representation is that transformations become a bit awkward because one has to effectively convert the relative coordinates to absolute coordinates, apply the transformation and convert to the new bounding box again.
There are several approaches that at least solve some of the problems, but I haven't found the right solution yet.
I also did some more cleanup in Sketch's code. If you read the ChangeLog for the last few days, it seems that I remove more code than I add, but getting rid of old cruft and kludges is a good thing.
Interesting link of the day: A parable by Edsger W. Dijkstra (found on comp.lang.python)