Category Archives: Books

Two new reads

I’ve started reading two new books today. The first is Free Culture, by Lawrence Lessig. The second is The New School of Information Security by Adam Shostack and Andrew Stewart.

I’m not much past the first chapter in either, but both seem pretty good so far. I’ll post my take on each when I have one.

Seeing what you want to see in OSS

Now that I’m done reading Geekonomics and have given it time to digest, I’ve got a couple of take-aways. One of them isn’t too much on topic with the rest of the book. In the chapter Doffing the Wizard Hats, the author suggests that:

As Steven Weber observed in The Success of Open Source, the Open Source movement has become a kind of Internet era Rorschach test.
People tend to see in the open source software movement the politics that they would like to see—a libertarian reverie, a perfect meritocracy, a utopian gift culture that celebrates an economics of abundance instead of scarcity, a virtual or electronic existence proof of communitarian ideals, a political movement aimed at replacing obsolete nineteenth-century capitalist structures with new “relations of production” more suited to the Information Age.

While I nodded vigorously the first time I read the quote it hasn’t survived my thought on the topic unscathed. I’ve been a big fan of Open Source and Free Software (the last time in this article I will capitalise the terms) since before I could lay hands on it, I don’t see it as a political expression. Open source has always been a practical issue to me.

From the time I booted Linux 0.95a on my 386/SX-20 I have been ever-thankful that free and open source software is available, and like many people (especially younger ones), I did try to turn it into a political expression. Hating Microsoft was as much about political posturing as it was a protest of the shoddy treatment I had received as a user of their software. I had been ticked off when they took away the ability to switch the option character (from ‘/’ to ‘-‘, which let us Unix-types use ‘/’ in pathnames), and I certainly wasn’t any more impressed when future DOS versions and Windows began to eat away at my (then-) copious free time, forcing me to spend more time kicking the OS and less time doing what I really wanted to do. As with any mistake in life, be it tight acid-wash jeans in the 1980s, strange musical tastes, or a penchant for too much beer, it’s something I look back on with a mixture of relief that I know better now and foolishness for having fallen into that habit.

Apparently not content to let Microsoft-bashing be the highlight of my political life, I also got somewhat into the free software vs. open source debate. The debate is far from over for a lot of people, but it’s not something I’ve paid attention to in a number of years. Other silly free software debates I was wise enough to be (mostly) quiet about were gcc vs. egcs, Perl vs. Python, Gnome vs. KDE, and quite a few more grassroots attempts to make mountains out of molehills.

Various other political scenes have come and gone in the past several years. “Forking is what open source is all about” vs. “forking is evil” battle, the “everyone should work on MyFaveProject and make it better” vs. “choice is good” feud, “$PROJECT is dead” chants, “if you don’t GPL $FOO I’ll call RMS on you” (as was the case with O’Caml when they decided on a new license), “ESR does not speak for me”, “Linus is $ADJECTIVE”, and the list goes on.

Where I first jumped in with both feet I quickly learned that I had to pick my battles. Before long I had realised that the best battle to pick was none at all, unless it was one that threatened me specifically. I also learned not to be too paranoid when assessing that threat.

The open source and free software community has been divided from the start. I think we got it from the Unix side of things. I remember being pretty young and my mom gave my brother a “Unix wars” poster for his bedroom wall. Now that which Unix you use is no longer politically interesting (you either use it or you don’t) the community has had to search for other divisions in itself to fight about.

I once lived in a housing co-op. The promise of such a thing is that everyone works together and makes the co-op a better place for all. Everyone joins committees that interest them and in doing so serves the community in the best way they can. Elders teach the younger folks the tried and true ways forward and… Well… It doesn’t quite work that way in real life, at least not in the co-op I lived in. Most people joined whatever committee they thought would be the least work. The elders and the younger folks may as well have formally declared war. Rather than work together, many people seemed to try to stab everyone else in the back so no one would try to take the title of “S/he who saved the co-op” from them. Dirty laundry was aired, rather than clean. People got so desperate for attention that they even started bringing their lawyer to co-op meetings. I’m not kidding. I left the co-op not long after.

In a lot of ways I think the nasty side of the FS/OSS community is the same as the co-op. While there are certainly political lessons I can tease out of the co-op aftermath I don’t feel a great need to do so. The same goes for the open source battles fought over the last several years. To be honest, if I’m talking about open source and someone starts up with those I either change the subject or leave.

So after all this rambling, finally my point — I don’t see any sort of political ideal in the FS/OSS community or in the act of releasing software under such a license. I strictly see a practical benefit, both for myself and others. No saluting Chairman Mao, no invoking Ché Guevara, no need to worship Linus, ESR, RMS, or any other set of initials. If you want to contribute, then go ahead. If not, then don’t. If you want to use the software, have at ‘er — and if not, then there’s a stack of commercial alternatives you can look at. The more that opinion and dogma are allowed to play a role in open source the more time is wasted.

These days the “in thing” is to dream up ways that open source is under attack. From websites that don’t support Firefox to perceived threats from Microsoft (who actually has a near-OSD-compliant license now) or Sun (who just bought MySQL and hired two big-time Pythonistas) or SCO (whose antics have not yet made any measurable impact on open source), everyone wants to rally the troops and storm the castle. If you doubt this, simply follow Slashdot or Digg for a little while. Once the troops are rallied, everyone writes an e-mail or floods a webserver or does whatever they’re told to do, and at the end of the day they claim victory, no matter the outcome.

With antics like these it is hard to take any sort of Rorschach test too seriously. A Rorschach has always looked a bit like goat barf to me, anyway.

What do I want to see in the FS/OSS community? Less opinion, less dogma, a lot more live-and-let-live. Tolerate others, even the ones who really seriously piss you off. Try to find the right times to watch something and the right times to turn your back. Keep a sense of humour — nothing pisses off someone who’s trying to get under your skin like being laughed at.

That’s as close to a call to action that you’ll get from me. I’ll just be over here, doing my thing.

Notes on Safari

I think I’ve found the killer features of Safari Books Online, and they’re two of the most obvious, for once. They are the bookmarks and notes features. Bookmarks are great for keeping your place in the book or tracking a very few places of interest in a book. They are not terribly fine-grained, though — they mark specific chapters, rather than pages. Notes have the same resolution but give the ability to store a note with a title and about a quarter of a KB of text. So far I’ve used this functionality to make longer-term, more specific bookmarks and to note where I see blog fodder.

It’s funny how two tiny features with only the bare minimum of integration can push the relative worth of the subscription from “worth it” to “addicted”.

Design Patterns in Ruby

Now that I’m done reading Geekonomics, I’m on to reading a few books in parallel. One of them is Design Patterns in Ruby by Russ Olsen. I’ve never read much on design patterns before. Sure, I can name a few and even implement a few of the basic ones, but that doesn’t win you much if you want to use them effectively.

Am I sure that design patterns are the way to go? Heck no, but it doesn’t hurt to learn something new. It can be hard to tell the difference between fashion and function these days, so the best way to go forward is to read it and see what sticks.

So far (a couple of sections into chapter three) what’s stuck with me the most is the reminder that composition beats inheritance for many uses. I’d been (naively) constructing a class hierarchy for an application that was inheritance-based and it was the right reminder at the right time.


I’m reading Geekonomics: The Real Cost of Insecure Software by David Rice. It’s a great read, and not just one for technical people — David has a real gift for explaining things well enough that just about anyone can get a grip on what he’s trying to say. I certainly don’t agree with all of his assertions in this book and I find his use of statistics misleading at times, but so far he has made sure to back things up with a thorough treatment of the subject and a good deal of transparency in his goals.

On page 225 I notice that he mentions:

A glidescope beam provides vertical guidance that directs the aircraft to follow the typical 3-degree decent path to the runway for a smooth, “glide-in” landing.

While three degrees may be a pretty decent path, I’m pretty sure he meant to be talking about a descent path in the sentence above. This echoes something I pointed out to Lorenzo last night — you can usually count on a spell-checker to tell you if you’ve spelled a word correctly, but you can’t count on it to tell you whether you’ve used the right word.

I wonder who David would deem responsible for the error above?

On Safari

Today I signed up for a paid Safari account, as the five-slot basic account I get with my ActivePerl Pro Studio is completely full. I considered one of the limited accounts, but the all-you-can-eat Safari Library subscription costs less than a regular computer book per month, plus it saves me having to lug them back and forth to work and buy new editions when they’re released. It seems like a reasonable deal.

I was less than impressed at one point because the process of activating my account was acting wonky. I’d try to sign in and it would put me at the start of signing up for the current ten-days-free promotion. If I filled all that out and gave it my credit card it would complain that I already had an account and should sign in. When I clicked “Sign in” it would kick me back to the start of the promo sign-up. Lather, rinse, repeat.

I got on the support portal and tried chatting with the support reps, but no dice — they seemed to be completely ignoring me. After the second time I hit “Exit” to leave the chat and received one 400-class HTTP error or another I began to suspect something was up. I hunted down the phone number for their support and called. This turned out to be a good move.

A CSR answered the phone after about thirty seconds, and I explained I had just had a very unpleasant experience trying to get some assistance from the CSR chat on the portal. At that point the rep called me by name and explained that she had just tried to figure out what was up with that, as the folks in India had started checking to see if the chat system was on the blink. I tried to give some information that might be of use to whoever is stuck debugging whatever happened, then we moved on to the reason for my call.

After I relayed what was going on and a few minutes of debugging had passed the reason for the problems started to become apparent. My account had originally been an O’Reilly portal account that I had used for registering books I bought back in 2006. A little later that year I bought a book that had a Safari promotion and had transferred my account from O’Reilly. Apparently something went wrong there, because she described my account as looking half O’Reilly and half Safari. In the end, we agreed it was best if she just deleted the account so I could sign up again.

Three minutes later I was signed up again and was prowling through the book list. While I was angry at the beginning, I was won over again by the end. A big thanks to Diane at Safari for that!

(Disclosure: I work for a Safari Books Online reseller (you get a basic membership with your Pro Studio subscription), but this blog entry is about my experience and opinion, and something I bought on my own dime — not anything related to work.)