Daily Archives:June 4th, 2005

A Wi-Fi warning

Linksys WRT54G About two weeks ago, I was staying with Rose’s aunt in Los Angeles, and she was having some problems with her wireless network, so I offered to take a look. Well, I’ll spare you the details of the problem, but I fooled around with her Linksys router basestation and the range-extender box she’d bought, but without much success. I’m too embarrassed to admit how long it took me to realise what was up.

Her network was using the network name ‘linksys’, which is the default configuration for their boxes. It was only when I started running proper snooping tools on my laptop that I realised that there were three routers using that name which were visible from the study where her PC was located. Two of her neighbours had the same boxes and had also not reconfigured them. I come from a land of brick buildings where the problem is usually one of not even getting a strong signal from your own network, rather than seeing too many. Anyway, for some months she had unwittingly been using her neighbours’ broadband connection while her own lay idle. And for some hours I had been reconfiguring their routers by accident, because they still had the default login and password as well.

I switched the wireless off on my laptop and plugged in directly to her router using ethernet to make sure I knew which one I was talking to, gave the wireless network a new name and suddenly things started to make sense. My normal practice, by the way, is to name the network with something which makes its location obvious (mine’s “20MarloweRd”) so that if anybody else has problems with my signal, they know where it’s coming from.

Great Hackers

Another goody from IT Conversations: Paul Graham on “Great Hackers”. Here’s a quote:

When you decide what infrastructure to use for a project, you’re not just making a technical decision. You’re also making a social decision, and this could be the more important of the two.

For example, if your company wants to write some software, it might seem a prudent decision to write it in Java. But if you write your program in Java, you won’t be able to hire such smart people to work on it as if you wrote it in Python. And the quality of your hackers probably matters more to the success of your project than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages….

Business types prefer the most popular languages because they view languages as standards; they don’t want to bet the company on Betamax. The thing about languages, though, is that they’re not just standards. If you want to move bits over a network, by all means use TCP/IP.
But a language isn’t just a format; programming languages are mediums of expression

Now, I’ll take issue with him here a little bit. The assumption behind his argument is that the programming task is best compared to painting or creating a piece of music.

Increasingly, however, it’s more like engineering & can even be rather mechanical. Good engineers don’t get to choose whether they work in metric or imperial units and often don’t have much choice about the materials and many of the dimensions. Their skill is in creating something robust and reliable given the constraints. Ideally something that will be maintainable after they have gone. The world is certainly in a better place with Java as the dominant language for such tasks than it was when COBOL or Visual Basic had that honour, and, much as I love Python, it’s probably not as good as Java for this role.

Artists, on the other hand, are usually loners who can throw off the constraints because they need to accomplish a particular single task. It makes sense for them to use whatever medium they like best, even if, God forbid, that should be Perl. Paul’s book is called ‘Hackers and Painters, so it’s natural that he should concentrate on this aspect. Python is a better language for exploration and invention.

I’ve programmed in dozens of different languages, BTW, and in general Python is my language of choice, because it comes somewhere between the two extremes. But the best artist is one who can choose the optimal medium for his expression. And the best engineer is often one who can create the optimal expression for his medium.

The real danger is that we will only train people to create nice Java boxes that fit together very neatly. This is great for building things that don’t fall down. But we also need people who can think outside the boxes.

© Copyright Quentin Stafford-Fraser