Python Pronunciation Poll

Do you say “toople” or “tupple”? I figure if Guido says “toople” (and apparently he does) that’s good enough for me.

Long-time readers or people who’ve worked with me will know what I’m talking about. Others will just write this off as random Jeffiness.

Startup Project Management

I was talking to a co-worker this morning, about some of the challenges involved in managing a software project at a startup. We were sort of in agreement that many books on this subject barely apply to startups, particularly highly innovative startups, because much of their advice tends to be to “avoid X” where X is something that a startup can not avoid. For example:

  • The number of available workers will generally be much lower than the ideal number of concurrent tasks, forcing them to context-switch frequently between tasks.
  • The smaller number of workers also means less skill duplication, so there will be a greater difference in two workers’ effectiveness at performing the same task.
  • Requirements will be fluid and schedules will be tight, with very limited ability to push back as the books recommend.
  • Such startups tend to have a greater percentage of workers with extremely high skill levels and independent tendencies. When they go into the weeds, they go way into the weeds. Lower-skill workers are actually easier to manage in this regard.

Given these specific challenges, and others, I have a question for my readers. Do any of you know of any books or articles on managing projects in these kinds of environments, from either a manager’s or worker’s perspective? Or does someone need to write some? I don’t really consider myself qualified, but I’d be willing to throw some thoughts on this site over the next however-many months if there’s a void to be filled, and I’d even welcome suggestions – perhaps even random griping – on the subject. Any thoughts?

Amy Quote of the Day

“What color is the moose’s bill?”

I guess when so many of your stuffed animals are ducks and platypi, it might seem like a natural question.

Separation of Powers

Yesterday, President Bush tried to invoke separation of powers to justify his refusal to let White House aides testify under oath before Congress in regard to the attorney-firings debacle. Some might think that separation of powers is the very doctrine under which they would be required to do so. To help clear up some of the confusion, I’ve drawn up a handy little diagram to show the proper distribution of power between the three branches of government, according to the Bush administration.
separation of powers

Linux Laptop, part 2

OK, the OS upgrade (heh) went great, but I’ve discovered one problem area that I didn’t expect. I have a spreadsheet for all of my workout data, going back over three years. I turn the numbers into a chart, with a trend line. Yeah, I’m a big nerd. Anyway, I’ve been doing this in an old version of Microsoft Word, but now I don’t have that on the laptop so I tried OpenOffice Calc instead. What did I find?

  • Adding a trendline at all seemed unduly difficult, with the option appearing in an odd place (“Statistics”?!?) and only after double-clicking on the chart so the menus all change (excessive modality IMO). I’m willing to chalk that up to my own lack of familiarity, though, and it is annoying when people expect X to be just like some other Y they’ve been using. Color me only slightly aggravated.
  • There are several apparent options for trendlines, but no options e.g. to differentiate between quadratic and cubic best-fit (they’re both “exponential”). Worse, no matter which option you select, you get linear. Now I’m starting to get annoyed.
  • I finally decided to live without a trendline, and went to save. OO froze. It also did something to make the mouse unusable. Fortunately I could still use the keyboard to switch to a terminal window I happened to have open and use it to kill the OO process. Now I’m really annoyed.
  • Starting up the program again, I decide to risk another attempt at saving. OO freezes again. This time, before I can get to the other window to kill it, the whole system crashes. Now I’m beyond annoyed and into disgusted.

To be fair, the crash itself might not have been strictly OO’s fault. Specifically, it might have been TrueCrypt’s fault. Both of the freezes happened when I had opened the file directly from a TrueCrypt volume on a USB stick; when I copied the same file to the hard disk I was able to save it without incident. Still, I’ve used TrueCrypt a lot in the past, with a lot of different programs, and it has always seemed reliable. Even if it caused the crash, the application must be doing something pretty unusual to send it down that code path. A program that hides some functions and pretends to have others when it really doesn’t, and that screws up the mouse for the entire system during the potentially lengthy process of saving a file (which could also be a problem with e.g. an unreachable NFS volume), doesn’t impress me very much. Can it really be the case that there’s no decent spreadsheet on Linux? I tried kspread and it was too obviously pathetic (couldn’t even preserve cell formulae) even to bother with. I might have tried gnumeric except that I’m on a fundamentally KDE-based system and the list of GNOME packages that I would have to install before I could run gnumeric put me off. Is it worth it? Or is OO really the best option available? That would be sad.

Daddy’s Girl

A recent exchange:

me: Amy, what’s your favorite fruit?

Amy: Steak!

Heh. Me too.

My Linux Laptop Experience

I’ve been using Linux as my primary desktop operating system at work for years, and I’ve been dual-booting on my desktop at home just as long. Caldera, Mandrake, Red Hat, Debian, Knoppix, Gentoo, Kubuntu . . . I’ve used them all. I even have a Yggdrasil Linux CD somewhere, and nobody even remembers them any more. When it comes to my laptop, though, the machine I actually use the most at home, it has been a different story. To be quite blunt, I haven’t thought until quite recently that the driver and application support on Linux was quite good enough to switch entirely. Sure, browsers and email clients and pffice suites and window managers finally grew up a few years ago, but video drivers were a pain and audio drivers were worse and plugging in a USB device was almost foolhardy. Some Linux systems are still like that. Just today I had one hang when I plugged something into the headphone port. Sad. Nonetheless, I figured a modern version of Linux was finally good enough. Between that and security issues and general curiosity, I finally decided to complete the switch to Kubuntu 6.10 (Edgy) this weekend. No, it wasn’t seamless, but it went well enough that I’m using it to type this now. Of course, I still have a completely separate hard disk with Windows XP ready to slide back in if I find something catastrophic, but I don’t think that will happen. Here are a few notes about the process:

  • Wireless. What a pain. Rumor has it that Linux has finally grown up in this regard and I probably should have waited. Not only installing but actually having to build ndiswrapper to use my very-common wireless card is ridiculous. I build software for a living, but I don’t think I should ever have to do it just to get basic functionality on a home machine.
  • Video. Not only did I have to get a new driver to run the screen at full resolution, but the driver’s installation program was broken so I picked out the pieces I needed and installed them by hand. That doesn’t say “consumer ready” to me.
  • Sound. Amazingly, this just worked except for the fact that the system beep doesn’t go through the normal sound system and would happen (loudly) even when mute was on. Annoying, and lame. I eventually figured out how to kill it by blacklisting the “pcspkr” driver.
  • Front-panel buttons. I was even more amazed that these just worked.
  • Function keys. Now, who would think you have to blacklist the “video” driver to get these working?
  • Power management. An area where Linux has generally been lacking, but one where I really had no trouble. The system sleeps when I want it to and wakes up when I want it to. If only “powernowd” could be persuaded to load automatically. It seems to load OK by hand, which I always end up doing when I notice that the fans are running because one CPU is at full power even though it shouldn’t be.

I know that looks like a long list, but it’s really not that bad. I should point out that, when I had to reinstall Windows from my original Dell install CDs I had some of the same problems. I had to get a new wireless driver (using another machine), a new driver to make the front-panel buttons work, etc. Then there was the BIOS-upgrade fiasco, which I won’t even get into because it didn’t really involve either Windows or Linux. The fact is that installing an operating system is a pain.

So now I have wireless working and the screen at full resolution. Firefox is set up with Google Sync and FoxyProxy, Thunderbird with all of my POP/IMAP accounts plus LDAP, ssh, vnc, etc. I can play audio and video. I’ve inserted my USB drive, mounted the TrueCrypt volume that’s on it, and used OpenOffice to update my workout spreadsheet. Everything looks and feels at least as smooth as when this machine ran Windows. Maybe soon I’ll even try ripping/shrinking/burning a DVD in Linux, or maybe even finding a program to edit that Amy video from Christmas. Or maybe there are still a few things I’ll still want to use the Windows machine upstairs for. The key is that I have a choice. Long the better choice (compared to Windows) in the server room, Linux is finally an appealing choice in the living room as well.

Couldn’t Resist

The following question popped up in a draft of a programmers’ guide.

What info are we going to provide for Java programmers?

My suggested answer?

References to books about real programming languages.

Yeah, I know, Java is a real programming language, modern just-in-time compilers are so good that infinite loops finish in seconds, the language is so productive that most programmers do likewise, yadda yadda yadda. Java folks give “defensive programming” a whole new meaning. It’s a joke, son. Laugh.

Iraq is not Viet Nam

In Viet Nam, war opponents were accused of spitting on returning soldiers (though few such instances have actually been documented). In Iraq, it’s the war’s initiators who are spitting on the soldiers in a less literal but far more damaging way by giving them shoddy health care.

Extrapolation

Amy hasn’t gotten to the point where she asks “why” a lot yet, but “why” is obviously something she thinks about. For example, last night she was reading Sandra Boynton’s Hippos Go Berserk (with only a little help from me). At one point the text is as follows:

Seven hippos heading west (next page) leave six hippos quite distressed

Amy’s first comment was “hippos crying” which is true but not particularly noteworthy. What floored me, though, was what she said next.

Hippos want a nap.

I guffawed at that one. It’s not quite correct, but it’s a very good guess demonstrating both curiosity and empathy. Now, if only she would apply that reasoning to herself when she’s overtired and crying easily.