Tuesday, December 26, 2006

Merry X-mas

Had a nice three day weekend for Christmas:

The good:

  • The opportunity to spend time with friends and family.
  • Cool stuff from friends and family.
  • Being on-call for work but not having any actual calls.

The bad:

  • Having to shop in midtown on foot, and drag around a stupid company issued laptop everywhere I went on top of all the gifts I was buying.
  • Having to take home two huge bags of gifts from New Jersey in the pouring rain on foot, one bag with two broken handles and one bag with one broken handle. Oh yeah, and also having to drag along the company issued laptop.

That shoulder bag with the laptop starts to feel VERY heavy after dragging it for ten or twelve blocks combined with various gifts.

Wednesday, December 20, 2006

Still going

Got to the office at 10:00am, still here at 10:30pm. Tired. Need to go home and sleep.

Think I got to the bottom of why the regression test is failing, finally. Also did a ton of cleanup work on the dstate serialization code. Should be much more maintainable and less likely to have crashes on unexpected input.

The bigger problem is I have not yet finished Christmas shopping and it's not clear when I'm going to be able to do it. Very annoying.

Tuesday, December 19, 2006


Was at the office today from 8am to 9:15pm. So tired.

But I did make a good bit of progress, which is a good thing.


Sunday, December 17, 2006

What happens in Vermont, stays in Vermont

(but nothing ever really happens here)

Today was our last full day in Vermont. Went to the Maple Syrup museum. Toured the Vermont countryside. Saw cows, horses, etc.

We came across the "Fire on the Mountain Glassworks", and Vikki had wanted to look into picking up some home-blown glass for a Christmas gift. Turns up we ended up at Vermont's local bong shop. Have to admit though, these were the nicest hand crafted drug paraphernalia I had seen.

Had a nice dinner and now we're just taking it easy at the lodge. Played some scrabble earlier.

Leaving tomorrow morning. Should get back to New York City late in the evening.

Two broken legs

Went snowboarding in Vermont this weekend with Vikki and thank goodness that isn't what happened to me. I never made it off the bunny slope. Succeeded in figuring out how to turn. Not so much luck in stopping.

Having a great time. Will post some pictures I took when I get back Monday.

Thursday, December 14, 2006

Patently annoyed

Found out I was granted another patent, and again my name is spelled wrong.


Very annoying.

On the other hand, I love a good pun.

Monday, December 11, 2006

Wonders of CPAN modules on Win32

Rediscovered how few people use CPAN modules on Perl for Win32 (or at least how many of them look at the results of 'make test').

Spent the bulk of the afternoon getting Perl modules to compile cleanly in my Win32 perl interpreter. It's necessary so that I can start using workflow functionality. Should be able to send upstream the bulk of the fixes so that I don't have to go through this exercise again the next time I update to a new rev.

Still at the office waiting for Perl 5.8.8 to finish compiling (along with all our dependencies), so I can go home. Fun fun.

Would still like to try to fix the problem that prevents me from using Visual Studio 2005 to compile Perl, since it is preventing me from using the newer (and much better) debugger to work on other issues in the codebase.

Sunday, December 10, 2006

More MythTV work

Did some more work trying to figure out why certain operations in MythTV are so slow.

Turns up it isn't the database after all that makes the program guide so slow. Recorded the SQL operations performed and the page down takes about 20ms of database time. However, the load average is 2.3, so I started looking at general load issues.

Found a couple of very useful things:

By default, MythTV is configured to use the standard "Preferred MPEG Decoder". However, the NVidia chipset supports XvMC, which does the bulk of the decoding in the GPU. Setting the field to "Standard XvMC" dropped the CPU utilization of the X server from 19% to 2%. Will look at the KnoppMyth code that sets up the nVidia driver, and see about configuring this by default.

See the following page for more info:


Also noticed that the ivtv-env-vbi process was using 8% of the CPU. VBI is used for sending closed captioning information. Since I never need this functionality, I just needed to turn this off in mythtv-setup. Perhaps this shouldn't be on by default.

The mythtv-frontend process is still using 20% of the CPU, but the load average is now 0.60 and a bit more responsive. I figure if I can get to the bottom of why this process is using so much CPU I will probably have the program guide issue licked. My suspicion is it is some sort of rescaling of the video stream (perhaps from 640x480 used in the MPEG up to the display resolution of 800x600)

Also going to wake up in the middle of the night and see if I can find a channel that goes off-air and displays a test pattern. If I can record a test-pattern for a few minutes, I can fix the color calibration problem.

Saturday, December 9, 2006

Shuttle clocks

Somebody asked for my opinion about this, and since I was going to write an entry on software quality today anyway, the timing couldn't have been better.

It was on CNN and Slashdot a couple of weeks ago. The space shuttle has an issue where they are concerned about the computer's clock rolling over to January 1st.


To a layperson, it reeks of "Y2K"-ness. You know, the notion that it's stupid and if they can get people into outer space, why can't they make a clock that keeps track of time as well as the $6.99 clock on my nightstand?

To many software engineers (including many in my office), it seems stupid as well. They write code for a living and find it difficult to believe that "NASA could be so stupid".

I disagree with both groups. The reality is that the space shuttle was built of 1970's technology from hundreds of independent contractors. Some have asserted that it was the most complicated machine ever built by man. It has thousands of interdependent systems that have to run in synchronization in order to work properly.

NASA's onboard shuttle computers also run some of the most validated software on Earth (no pun intended).


Want to talk about software quality? Try 17 errors found in the last 11 revisions of a 420,000 line codebase. That's phenominal. Average defect rate for commercial software is about 1 per 1000 lines of code (and that's highly conservative). For those unwilling to do the math, that means a commercial application of the same size would have 420 errors (42 times as many as the shuttle software). And then think about how often your PC crashes.

Also bear in mind that this was not an unknown issue. Most bugs are found as a result of running into them. In this case, it has been a known recognized issue for years. Given the fact that the issue was well understood and there are always bigger fish to fry, NASA made a conscience decision to not run the risk of introducing more bugs by making a change.

So, I guess the answer is "no", I can't fault NASA too much for choosing to not fix a known issue that has zero probability of occuring in normal operation (meaning not flying the shuttle over New Years), when there are plenty of other issues to worry about -- like faulty O-rings and insulating foam coming off the fuel tank at supersonic speeds.

What code DOESN'T do in real life (that it does in the movies)

For those of you friends and family not in computers, here's a very funny summary of the differences between real programming and how it is depicted in the movies

What code DOESN'T do in real life (that it does in the movies)


I understand that Hollywood needs to dress things up to make them more entertaining, but in the case of programmers, code, and hackers they've done more than dress things up - they've morphed a little stuffed teddy bear into a cybernetic polar bear covered in christmas lights and phosphorescent hieroglyphics with a fog machine pumping rainbow smoke out of his ass.

It's a good read.

Lasalle library

Spending Saturday afternoon in the Lasalle library with Vikki, doing some investigation into the Mysql schema used in MythTV. The program guide has gotten faster since I deregistered the channels I do not receive, but it should still be much quicker. On my Tivo doing a pagedown in the program guide is instantanous, and that thing only had a 60 MHz PowerPC CPU. My MythTV box has a 2.4 GHz Pentium 4, suggesting that there is significant inefficiency in the software doing database access.

Admittedly a bit hard to profile the performance of my living room television from Pennsylvania. Ah, the wonder that is SSH....

After work last night, went out for Thai food with Shamoun, Naoum, and Joe. The company and food were good, but I was already exhausted and probably should have just gone home early and slept. Such is life.

Thursday, December 7, 2006


Think I might be coming down with a cold.

Worked at the office until a little after midnight. Ran into some bugs that took longer to fix than I thought they would. Then ended up doing some cleanup work while the code was still fresh in my mind.

Going to Philly tomorrow night which should be fun.

Need to finish painting the kitchen. Just haven't had the energy at all this week when I got home after work. It will be nice to not have the refrigerator in the middle of the kitchen (pulled away from the wall), since I walked right into it at 3am last night. Ouch.

Tuesday, December 5, 2006

Federal Panel Rebuffs Guidelines That Insist on a Paper Trail

Federal Panel Rebuffs Guidelines That Insist on a Paper Trail


Why on Earth would the federal government follow recommendations from the National Institute of Standards and Technology? It's only what they specialize in -- standards and technology...

Sunday, December 3, 2006

Devin goes clubbing

Yes, you heard it right. Went clubbing with Vikki and Ali last night in central Philly. They had a friend who was celebrating her birthday.

I don't dance.

I don't drink.

Anything over 90 decibels and I can't make out speech from background.

It was fun nonetheless to get out and do something different.

Started looking into the source code to MythTV. Established contact with the author of KnoppMyth, and am looking at improvements I can make the installation process smoother.

Saturday, December 2, 2006


In Philly with Vikki, spending the afternoon at the coffee house working (she's studying too).

NIST has come out against electronic voting without paper trails. About friggen time:


Joe sent me this article yesterday on the origins of cleverly optimized inverse square root function (used in Quake 3).