April 16, 2011

Programming is a creative pursuit

There is still some debate around whether programming qualifies as a creative endeavor akin to writing, arts, or crafts. Paul Graham attempts to draw analogies between hacking and painting (unconvincingly, some argue).

The answer is a strong positive if you examine the motivational factors (examining motivation to get better insights is something that I have emphasized before).

How else can you explain the motivational factors of people working on Free Software? Of people programming at work, and then going home and programming as a hobby? Of working on multiple, related and unrelated, projects simultaneously, sometimes over periods of years or decades at a time?

Another obvious but almost never discussed aspect of programming as a creative pursuit is that it is almost impossible to succeed in programming as a career if you do not enjoy your work. This is true for all creative professions, but can you argue the same for plumbers or assembly-line workers or, closer to the idiotic "knowledge worker" label, accountants?

Succeeding as a programmer of course has nothing at all to do with succeeding at being employed as a programmer, amusingly enough because of the widespread belief that programming is a non-creative profession and that 9 women can make 1 baby in 1 month. With perverse incentives such as "lines of code written" (when the only good thing about lines of code is how many you can remove) and no understanding by management of the impact of such things as technical debt, unit testing, or even basic things like quality, hapless code monkeys can stay on the payroll. But how many of them are recognized (in a positive way, mind you) by their peers? How many of them choose to continue to do programming into their 40s? The hapless code monkeys usually switch careers or "advance" themselves into the ultimate bastion of incompetence: management.

April 7, 2011

Wanted: plug computer with HomePlug and 802.11

I've been thinking about mesh networks recently. Two of the better-known projects in this space are Open-Mesh and the Mesh Potato. Both use 802.11 to build a wireless network, but experience shows that wireless interference is a major problem in scaling these networks.

The solution seems obvious: add a HomePlug power line communications interface to the mesh routers. That way routers adjacent on the power grid (and so presumably adjacent to each other and other wireless devices, that is, in places with a lot of interference) can do forwarding over the wire.

If you add HomePlug interfaces to devices themselves (are there any PC or notebook power supplies with HomePlug built-in?), pervasive mesh networking starts to look like an inevitability.