Category Archives: Uncategorized


I stood my first casualty watch today. (That is, a watch where the staff will run drills on you to see how your react and perform while recovering the plant).

It actually went fairly well. The only casualties that were even serious were well handled by the enlisted students and so the plant was quickly in a safe condition again while I worked through the applicable casualty procedures.

I seem to still need some more practice though. Often times I would give an order and hear, “Uh, sir, recommend you do this first.” And of course, they would be right. Even better is when I would try to communicate with the Engine Room loudspeaker and end up announcing things in the Control Room by accident. I think I’m getting the hang of everything however.

I was hoping the worst would be over by the end of this week but I still have to stand as many Engineering Officer of the Watch shifts in the next week as I have in the last two weeks. :-(

In KDE-related news, those paying attention to the various KDE development mailing lists may have heard that Coverity, a company that has developed a sophisticated source code analyzer tool, has started examining the KDE source code base. What thrills me is that they are using kdesvn-build to perform the actual build of KDE. So the past few days I’ve been trying to adjust kdesvn-build as needed to make the Coverity output more useful. So there have been a few fixes related to the recently-added support for CMake. I haven’t heard anything else since then so I’m just going to assume that everything is going swimmingly. ;-)


Man, it’s a lot easier to pick blog titles when you simply use the date of the entry. :-)

I haven’t updated in a while because I’ve been very busy. But the best is coming up soon. For the next two and a half weeks my life is going to be very crappy as I have a nice 4-hour exam (that I’ve barely studied for yet), and about a gazillion watches to stand.

Best of all, they are the hardest watches, the Engineering Officer of the Watch ones. Even the easy ones (where it is just steady state, engines already steaming, etc.) can get hectic due to having to make announcements, handle incoming/outgoing communications, and the like. But, after a few of those and a couple of engine room/reactor startup and shutdown watch, it’s looking like I’ll get thrown into the ever-popular casualty watches.

That’s where they get to either simulate a casualty condition, or actually make it happen. The deal with those is that you have to identify the casualty and then perform a sequence of immediate responses to save the plant (or prevent further damage). Not only that, but this being the Nuclear Navy, it’s not in general good enough to know what to do, you also have to know exactly how to say what you want to do. Most orders have a standard form, which is the exact form you’re supposed to give the order in. That’s even more things I have to study.

I’d study in my spare time between watches, but that is diminishing more and more as we speak. The flipside is that I would have to stand all of these watches anyways. So, the fact that I’m standing them all now means the rest of my time in Prototype should go by comparatively smoother. Or at least, I hope so. :)

In KDE-related news, it looks like CMake will be the build system of choice for KDE 4. This is exciting news for myself because I’ve been hoping for years that we would get rid of autoconf, automake, and libtool, and now that day is getting closer. The CMake developers have been extremely responsive to KDE’s needs, and some of the KDE developers, spearheaded by Alexander Neundorf, have been integrating CMake into KDE /trunk. kdelibs /trunk compiles for me (though that’s the only one I’ve tested. There is a page up with a introduction to CMake for KDE developers.

These changes will require corresponding changes to kdesvn-build. They shouldn’t be too hard, but I have to figure out how to implement things like configure-flags in terms of the CMake equivalent.

Speaking of kdesvn-build, I finally made the process of creating snapshots at the Subversion snapshot page completely automated. With one command at my computer I can update a module, package it up, and then upload it to and update the appropriate files there. It’s pretty cool, really. Most of the snapshots are still 3.5 (which is probably for the best) so I don’t think I’ll be updating them much in the coming weeks as KDE 3.5 won’t be changing much either.

I’ve been playing a *lot* of Starcraft lately. I wish Blizzard would release a Linux-native version. (After all, they have a Mac OS X version, which if it uses OpenGL would be hardly any trouble to port to Linux). Wine actually works very well at emulating Windows, except that looks awful since Wine doesn’t update the screen right for some reason.

This C++ criticism is perplexing.

Found over at Planet GNOME a criticism of C++ by Callum McKenzie. Now, Callum is always on top of his game, but his argument sounds suspiciously like, “Boy I wish C++ didn’t have this feature.”

What he is referring to is the fact that in C++, templates can refer to themselves recursively. This has been used to demonstrate calculating various types of sequences using only templates, but I’ll admit that I don’t see any useful reason to calculate sequences using that. But, if the template refers to itself infinitely, then obviously the compiler will be unable to expand the template (which is what Callum is complaining about).

It just seems half obvious to me that there would have to be a limit to template expansion. Nor would I like to remove the fact that templates can refer to themselves, as they can be useful in other (non-mathematical) situations. So, there we have it, yet another reason why a C++ misfeature isn’t always the fault of the language.

For the update from the home front: Shift work (my current stage of training) stinks. :-) The crew leadership seems determined to qualify the officer students faster than normal however, so it’ll be over with before I know it, I’m sure. I just hope I get better hours once I finally qualify for the position I’m being trained for.

Shift works starts today

So I start on the second phase of my Nuclear Prototype schooling today.
The first phase was similar to Nuclear Power School in that there were a lot
of lectures, even though it wasn’t the same classroom atmosphere, we still had
a schedule we had to follow for the most part.

But in this phase, where we begin to work on a crew and alternate shifts,
the required schedule is much reduced. We will have to make more progress
each day, and we will have to do so without a required schedule to follow.
The problem is that the shifts are horrible. :)

For instance, I’ll get to go in today for ‘only’ 8 hours, since it is the
last day of the shift I am rolling into. But normally I’ll be working 7 days
straight, 12 hours for the first 5 days, 8 hours for the last 2. Then follows
2 days off so we can readjust our sleep schedule for a completely different
shift. About every 35 days we get 4 days off in order to recuperate. I
already can’t wait for my next 4 days off.

Scott Wheeler and I engaged in a source code cleanup of the JuK 3 (for KDE
4) codebase today, standardizing the source code layout and some of the
standard style elements which had drifted apart thanks to contributions from
different people over the past couple of years. Scott is busy trying to make
it build and work. I hope to be able to devote some time to it as well but I
guess we’ll have to see. =D

Bad calls in football games.

I was surprised to see so much hoopla about the recent Super Bowl on a site mostly familiar to those interested in computing.

Celeste started off the fun with a nice post celebrating the Steelers victory.

Adam Treat, a Seahawks fan, didn’t think the game was that great, however, claiming more or less that the Steelers would not have won were it not for many bad calls by the referees.

I’m personally a Steelers fan, so I was glad they won although I had hoped the game would have been better (and less controversially officiated).

Adam says that we earned the win with one of the worst quarterback performances in history. Actually, AFAIK, according to the NFL QB rating, Ben Roethlisberger (the winning quarterback) had the worst performance ever by a Super Bowl winning quarterback. But football is perhaps the consummate team sport. The Steelers have often won over the past ten years or so with mediocre quarterbacks. So even if the quarterback was having a bad day, is no reason to say the Steelers were guaranteed to lose. A good defense will keep a team in many a game that they would otherwise lose. In fact I think a good defense is better than a good offense. Just ask the Colts, Broncos, and Bengals.

I will say this: The Seahawks outplayed the Steelers for most of the game, especially on offense. Matt Hasselbeck (the Seahawks quarterback) was on fire, and would have easily secured MVP honors in my book if the Seahawks had won. But although the Seahawks moved down the field easily, they settled for punts or field goals far too often, even if you reverse the bad calls (more on that later).

The Steelers, on the other hand, had all of their scoring on pretty much three big plays. A great pass by Roethlisberger (who showed great awareness of the line of scrimmage, not bad for a second-year quarterback in his first Super Bowl) to Hines Ward (Super Bowl MVP) got the Steelers close to a touchdown. Three plays later, Roethlisberger runs in the ball for the score. Adam calls it a “phantom touchdown” but I will have to disagree with him there. All the ball has to do is break the vertical plane between the playing field and the white line separating the end zone. Even if the player is pushed back while being tackled the touchdown counts. I was confident that Roethlisberger got the touchdown after seeing like 7 replays on TV. Unfortunately I can’t find photos of the goal line touchdown on the Intarweb.

Adam also mentions a holding call that moved back the Seahawks, and a penalty on Hasselback for tackling a player. I agree that the call on the tackle was completely wrong, although I don’t see how it would have changed things. As far as the holding penalty, the view on the field at the time didn’t look like holding, but according to people on various sites I’ve been frequenting, especially Football Outsiders, the angle on TV masked whatever the actual holding was. I didn’t see the offsides call however.

May I remind the Seahawks faithful that on Roethlisberger’s long pass to Ward to set up 1st and Goal, that the reason it was 3rd and 24 in the first place was due to an offensive holding call on Heath Miller? The Steelers started out the game with two consecutive penalties (albeit minor), and had a fumble return taken away (correctly according to the rule book) by instant replay. I mean, I’m sympathetic, having seen a lot of Steelers games badly officiated, but the final score was 21 – 10, not 21 – 17 or even 21 – 20. And just three weeks ago the WORST CALL EVER happened to the Steelers, but they didn’t lie down and die on the field (although we sure did complain afterwards. =D)

I guess it’s a shame that a team always has to walk away from the Super Bowl as the loser. The Seahawks seem like a very classy team. Even Jerramy Stevens, who even though started the trash talking with Joey Porter, and dropped quite a few balls during the game (no mention of that, Adam?), stayed in the locker room after the game and answered all the questions people had for him. Lofa Tatupu, Matt Hasselback, and the rest of the Seahawks have been shown great sportsmanship in what I’m sure is going to be one of the more debated Super Bowl losses in history, and for that they have my deep respect. Hopefully they get Shaun Alexander back and make a second Super Bowl run, they’re one of the more deserving teams IMHO.

kdesvn-build 1.0

So, another month, another kdesvn-build release, right?

Well, except that I’ve finally attached that beloved of version numbers, 1.0, to the end of the program’s name. What does this mean? Well, it probably means to expect 1.0.1 in a few days, knowing my luck. ;-)

On a more serious note, there’s a couple of cool new features I implemented. The coolest for those kdesvn-build users who don’t speak English natively is that kdesvn-build supports the l10n module finally, meaning that you can use kdesvn-build to download, build, and install a KDE translation along with the rest of your KDE build. Look for the “kde-languages” option.

What may be even more awesome, however, is that kdesvn-build supports the Subversion snapshot tarballs from the kdesvn-build website. What does this mean for you? It means that, on initial module checkout, if has a snapshot for your module and branch, kdesvn-build will automatically download it, extract it, and do all the neat little tricks required to turn it into a real live Subversion checkout. Only, without actually going through all the time of a real Subversion checkout.

This is much quicker for you, and has the potential to ease the strain on KDE’s Subversion servers. I ran the old version of kdesvn-build and compared it against the new version. The old version simply performed a checkout of arts. The new version used the snapshot of arts from revision 457934 (The Subversion repo was up to around 504000 at the time), and updated from the snapshot to get the latest arts. Both versions ended up with the same source checkout, at the same revision.

Here’s the times:

kdesvn-build version Time required to download arts-3.5 (seconds)
1.0 22.2
0.98.2 58.2

This includes the time necessary to cleanup. But, it doesn’t take into account the fact that arts wasn’t heavily modified after 457934. Modules like kdelibs and kdebase would probably show closer relative times if I allow their snapshots to become as comparatively out-of-date as arts’s was.

What I didn’t realize beforehand was how long it would take to actually release this. There’s websites you have to update. In my case, obviously, followed by my personal homepage, and then the entry at But that’s not all. I mailed so that the release would be picked up by websites all around the world (but especially to add to the KDE releases section on’s Weekly News. ;-). I also finally created an entry for kdesvn-build at the famous We’ll see how important that is.

Finally, I just had to post about this on my blog to tell Planet KDE. If you find that kdesvn-build just doesn’t work for whatever reason, please let me know, or post a bug at I’m trying to keep my streak of consecutive releases without a brown-paper-bag flaw alive.

A game for the ages

I was so stoked to watch the Pittsburgh Steelers defeat the Indianapolis Colts (in one of the most shocking upsets in years) that I decided to take care of an annoyance that the various sites that cover football have caused me.

The NFL uses a rating system that is a rather gross approximation of a quarterback’s perfomance. You’ll hear about this rating all the time, but not how it is calculated. I looked on the Internet, and found only one site that had an online calculator for the rating. Except that it was broken, and didn’t work.

So I looked up the formula, and implemented it myself. Football fans who are interested can find the QB Rating calculator here. The worst score is 0.0, and the “perfect” score is 158.3. A good score is probably above 85 or so in today’s league.


The first week of my next school is about to conclude tomorrow. And it’s been a long week…

The curriculum is less structured (you can learn things in the order you want, for starters), and the individual subjects are easier than they were in Nuclear Power School. But it seems like I’m always in a race against time.

That’s because I have to qualify to be Engineering Officer of the Watch in 24 weeks. The qualification record book I need to have completely signed (each signature indicating that I know a given topic) is about 2 centimeters thick (about 0.75″). Each page is printed on both sides, and most pages have more than 2 (and sometimes up to 5 or 6!) signature blocks. That’s a lot of signatures I need.

Coincidentally, KDE hacker extraordinaire Maksim Orlovich is down in Charleston for some conference or something. So we’re going to meet tomorrow for dinner somewhere. I suggested a Chinese buffet place but it’s looking like the nearest one to where he’s at is about 10 miles. Yuck.

P.S. This isn’t the first time we will have collaborated either. Maksim and I teamed up to port a nifty screensaver to KDE, which I mentioned before. I need to get it ready for KDE 4 at some point, which shouldn’t be too hard I think.

Comprehensive Exam Results

Well, the Comprehensive Exam for Nuclear Power School was a success.

I finished with a score of 3.62 / 4.00. Which is very good, considering my average was 3.57 heading into the test. Most people score below average, not above. ;-)

The Comp is the broken up in the grading into individual classes so you can see what areas you were weak in. I did surprisingly poor in one course that I thought I was awesome that, but then again I did very good in some courses where I wasn’t expecting much. I even got a perfect score on one section of the test, which was nice.

The graduation was yesterday. And, it was FREEZING. I even told my wife not to go (she just missed about 2 hours worth of names being called and 1 hour of speeches). But it’s nice to have another certificate of something to take with me.

My friend got a nice plaque for scoring second among all Officer students. First place got the Vice Admiral Behrens award, and was claimed by a Naval Aviator who hadn’t cracked a textbook in quite a few years. He is seriously some kind of genius. :)

As far as the car goes, we managed to get a very nice “Career Starter Loan” through USAA, $25,000 with an interest rate of 2%. Using the money we were able to pay off our current car payment, pay off another decent car for my wife (a 2004 Saturn L-300) with only a very small increase in net payments per month.

Unfortunately I’ve still not had a ton of time for KDE. I did fix a bug in the –refresh-build option for kdesvn-build’s /trunk version.

Comprehensive Exam

Well, it’s finally here. I take the Comprehensive Examination for Nuclear Power School tomorrow. Pretty soon I’ll finally be done with this place. :-)

Problem is that after it’s over, I still need to look for a car for my wife and then get my Christmas shopping done in a hurry since she has already bought her present and had them wrapped for like a week, but I’ve been too busy to get out and around for the shopping.

Hopefully I’ll be able to make some software releases during the break as well. Abakus and kdesvn-build haven’t gotten much work lately.