Author Archives: niemeyer

Screwing up Python compatibility: unicode(), str(), and bytes()

Backwards and forwards compatibility is an art. In the very basic and generic form, it consists in organizing the introduction of new concepts while allowing people to maintain existing assets working. In some cases, the new concepts introduced are disruptive, … Continue reading

Posted in Python | 19 Comments

My iPhone for an Android!

Yes, you’ve heard it right. I’ll exchange a legally unlocked iPhone 3G for a recent Android phone such as the Samsung Galaxy or the HTC Hero, and will pay the difference back! (street price minus 30% of devaluation for the … Continue reading

Posted in Mobile | 4 Comments

Are you ready for the mobile revolution?

Are you? I’m not entirely sure I am, even though I think about this a lot. If you’re of the tech-savvy kind, you’re certainly aware of the great capabilities that the new mobile phone generation is bringing: Internet connection, a … Continue reading

Posted in GPS, Mobile | 4 Comments

Changing people or changing rules

In my previous post I made an open statement which I’d like to clarify a bit further: (…) when the rules don’t work for people, the rules should be changed, not the people. This leaves a lot of room for … Continue reading

Posted in C/C++, Java, Python | Leave a comment

Class member access control: enforcement vs. convention

For a long time I’ve been an advocate of Python’s notion of controlling access to private and protected members (attributes, methods, etc) with conventions, by simply naming them like “_name”, with an initial underline.  Even though Python does support the … Continue reading

Posted in C/C++, Java, Python | 24 Comments

Smart Package Manager 1.0

After 4.5 years in development, Smart has been branded as 1.0. A big Thank You to everyone who contributed along the years.

Posted in Other | 7 Comments

Wiki + Spreadsheet

The underlying concept is very simple: spreadsheets are a way to organize text, numbers and formulas into what might be seen as a natively numeric environment: a matrix. So what would happen if we loosed some of the bolts of … Continue reading

Posted in Math, Project, Python | 5 Comments

Write more to write better

In his post Quantity Always Trumps Quality, Jeff Atwood made a very interesting reference to an arts-related book: The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side … Continue reading

Posted in Other | 12 Comments

Watch out for list(dict.keys()) in Python 3

As everyone is probably aware by now, in Python 3 dict.keys(), dict.values() and dict.items() will all return iterable views instead of lists. The standard way being suggested to overcome the difference, when the original behavior was actually intended, is to … Continue reading

Posted in Python | 10 Comments

MagLev and distributed VMs

Avi Bryant is working on MagLev, a Ruby interpreter, based on Gemstone’s Smalltalk VM, with some very amazing features, like transactioned objects distributed across several VMs: The integrated VMs, cache, and storage conspire to create an illusion that global state … Continue reading

Posted in Ruby | Leave a comment