Beautiful Code and a Beautiful Bug

I am teaching a technical course on the popular and ubiquitous version control system, Subversion, this Monday. I thought it might be fun to give my class a little “extra credit” reading from the O’Reilly book, Beautiful Code. In it, one of the original authors of Subversion, Karl Fogel, shares what he considers to be the most beautiful internal design within the codebase: the SVN delta editor. Though this API is not directly used in doing Subversion development, I thought it might be cool for students to have a deeper understanding of the thought that went into SVN’s codebase. But when trying to print up some copies of the chapter for the class, I got more than I bargained for…

Continue reading Beautiful Code and a Beautiful Bug

An Empty Calendar, a Dusty Blog

I took a look at my WordPress calendar, and realized I haven’t written a post in over a month. A sad state of affairs — I guess my blog waxes/wanes in and out of popularity for me.

One thing I have wanted to do is to create a “schism” in my blog between the political and technological sections. I realize there is no sense forcing my audience to wade through technology posts to get to the political stuff they may be interested in, and vice versa.

The main thing stopping me from doing so is the fact that even as I have a single blog for these two topics, I hardly find the time to post to either of them. That isn’t to say I don’t have much to say. I’ve been reading quite a bit lately about Lisp (for the first time in my life), and have interesting ideas surrounding my use of Eclipse technologies and modeling tools at work. I have been following a lot on the political side of things, from Libby’s commuted sentence to debates over globalization, to WSJ’s potential new owner. And I’ve finished a slew of books, from John Kenneth Galbraith’s The Affluent Society to Jared Diamond’s Guns, Germs and Steel.

But I just lack the time to write. I’m busy at work (at least 10-12 hours a day, when you include commute time), and the last thing I want to do when I get home is use computers some more. Which is sad, but an inevitable result of my situation.

I truly do not want this blog to die. How might I save it?

Dilbertization of IT

There is an article on eWeek I encountered via del.icio.us called “The Dilbertization of IT.” Though it says a lot of stuff most IT workers already know (that in many places, the “creative” work is being de-emphasized while “firefighting” or “maintainence” is emphasized), the more important thing to point out is the cause of this Dilbertization. I found an insightful comment which points to some of them.

Dilbert’s pointy-headed managers are everywhere. In my current Fortune 100 company, virtually none of the managers with any authority have ANY IT development background. They manage entirely by cost and project plan – ignoring any and all input from those developers who actually have a successful track record.

I can’t say this is true in my team, at my company, but I have certainly heard it from a lot of my IT friends. Also, I have an acquaintence who is an IT Project Manager who thinks that development is “easy work” and that most software developers are just “lazy”, which is why projects end up behind schedule. I think many innumerate IT managers share this opinion, and this can lead to problems, low morale, and resentment.

Nat’s Pendulum

Metacity (the window manager for GNOME) has this annoying and ugly minimize animation that looks like a bunch of cascading rectangles flying at your taskbar. I’ve always hated it, but dealt with it for awhile.

Today, I did some digging on the Metacity bugzilla to see if it was fixed, and found this bug.

Over the course of 3.5 years, this bug has sat on the bugzilla, and still isn’t satisfactorily resolved. There is now a reduced_resources flag in gconf, but this flag only disables the minimize animation at the expense of forcing you to use an ugly wireframe window dragging animation. (Complete, utter insanity.)

Continue reading Nat’s Pendulum

HOWTO: Get microphone, headphone, automute and sound properly working on an HP DV2000 laptop in Linux

Note: This entry is now wildly out of date.  Try these instructions at your own risk.  If I get a few moments, I will revise these instructions in the future. 

I’ve been in contact with an ALSA hacker, Tobin Davis, over a series of patches that provide support for the sound chipset (intel-hda) that is part of the HP DV2000 laptop.

His patches over ALSA 1.0.14rc3 enable the following new features:

  • The headphone port now works, and the speakers automute when the headphones are plugged in.
  • The microphone port now works, with great sound quality.
  • The built-in mic on the monitor now works, though obviously with worse sound quality due to ambient noise.

The new patches aren’t perfect. I’m noticing some sound quality issues at high volumes, and in order to get it to work Tobin had to essentially enable two PCM channels (PCM and PCM-2), which have a very strange behavior. The first one controls the volume directly from the sound system. The second one controls the volume only between the sound system and the speakers (and thus, will have no effect on the sound when the headphones are plugged in). The master volume control effectively modulates both of these. Tobin has told me that the chipset produced by Conexant is particularly weird, which is why he had to this. I find that it’s not so bad, as long as I keep a launcher to gnome-volume-control set up so that I can control it, knowing these rules.

That said, it’s a huge improvement over out of the box sound support for Ubuntu (which is ALSA 1.0.11). Inside this post you’ll find further instructions, which are adapted from a text document Tobin sent his tester group via e-mail. These are step by step instructions to set up 1.0.14rc3 ALSA drivers plus Tobin’s latest patch.

Continue reading HOWTO: Get microphone, headphone, automute and sound properly working on an HP DV2000 laptop in Linux

“This isn’t elitist, this is egalitarian.”

A surprisingly articulate post on OSNews about Free Software:

Asking me to get off my a$$ and code drivers for this baby is what I consider elitist and a very unreasonable demand on the end user. It’s one thing that gives GNU/Linux zealots a very bad name in the real world.

I have sneaking suspicion that you get this response from the Linux community because we feel you’re placing unreasonable demands on us. Your points are valid, but your energy is misdirected. Unfortunately for those who don’t like to code, that’s how software is created and improved. We invite you to participate in our projects in a variety of capacities including but not limited to programming, but of course participation is not required.

I think that Linux “zealots” get a bad name because much of the “real world” believes in a culture of entitlement. Look at everybody living life with a chip on their shoulder, blaming everyone else for their problems and scoffing at the notion that they take responsibility for their own situation. Somewhere along the line we stopped believing in opportunity as a means of realizing our dreams and began to foster the idea that we’re entitled to our expectations. In “Linux land,” we believe that the opportunity to participate in our information society is fundamental to our inherent desire as human beings to better our situation and control our own destiny.

Of course, money can make just about any dream come true. Mark Shuttleworth, for [example], invested $10 million to help make the Ubuntu project a reality. But years ago my great-grandmother told me the story of how my family came to America with nothing but the promise that here they would find a land of opportunity. This is the same promise we make with free software. This isn’t elitist, this is egalitarian.

I have to say, this is part of what makes me love Free Software.  It’s this idea of widespread opportunity.  Sure, F/OSS has power structures and means of coercion/control built into certain parts of it, but for the most part, it’s based upon a very simple, powerful, and egalitarian idea.  “Anyone can improve this, anyone can make it better.”  It’s that kernel of an idea that makes any process — whether software production, book editing, encyclopedia editing, or even beer brewing, more enjoyable to those involved, and, as a side effect, better for the general public.

Hilarious posts on Linux vs. Windows: satire or real thing?

Take a look at these two posts from a ZDNet debate:

A poster under the name “jerryleecooper” says,

Vista is far more powerful than windows XP, and runs twice as fast. It is also much harder to pirate, and this point more than anything else has the Linux crowd in a panic.

and, in a follow-up post,

Are you saying that this linux can run on a computer without windows underneath it, at all? As in, without a boot disk, without any drivers, and without any services?  That sounds preposterous to me.

Is this serious, or satire?  If it’s serious, it’s absurd.  If it’s satire, it’s genius.

Dell IdeaStorm

A friend from NYU, Luke Geldermans, pointed me to this website the other day. It’s really an amazing example of how much real demand there is for Linux on the desktop.

The website provides a way for Dell customers to vote on the issues which are most important to them. The number 1 issue right now is making Linux available as an install option on their Dell PCs. There are a slew of issues below that related to gaining driver support for Linux, and offering Windows with OOo and Firefox, and even offering OS-less computers to avoid the Microsoft tax.

It’d be interesting to see how this pans out, but in the meanwhile, go ahead and contribute a vote!