Monday, December 31, 2007

New Years weekend

Have another four day weekend.

Spent the bulk of yesterday disassembling the Hauppauge HVR-950 embda.sys driver so I could extract the xc3028 firmware images for the v4l project. They have the code to load the firmware, but there isn't a legal channel to redistribute the firmware itself, so it has to be extracted from the Hauppauge driver by the user. Unfortunately, I woke up this morning and the mailing list had an announcement that Mauro had done the same thing and released a script that does the extaction. Doh!

Also installed Ubuntu onto Dan's old computer after replacing the BIOS battery and turned it into a 300GB file server which I will put in my closet and will host all my files. This should eliminate some of the hesitation I have to rebuild my desktop workstation, knowing that all of my files are on a central server. Also found out that apparently in order to mount remote NFS shares with a Mac, you have to set the "insecure" option on the NFS server in the /etc/exports file for the mount point in question.

Played with Rhythmbox on my Ubuntu box, and was surprised to find that it was showing cover art for the songs on my iPod. Ben had mentioned that iTunes supports this. It turns out though that RhythmBox gets the cover art from, and doesn't support the ID3 tag (which I assume is how iTunes puts the cover art into the songs). Might be fun to code up an extension to Rhythmbox to add said support (as if I don't have enough projects already though).

Vikki and I are debating going to the zoo today. We spent this morning sitting in her car doing the New York Times crossword puzzle waiting for alternate side parking to end.

Tuesday, December 18, 2007

Perl turns 20 today

Happy Birthday to you!
Happy Birthday to you!
Happy Birthday dear Perl!
Happy Birthday to you!

I remember when Chris Alvino first introduced me to Perl back at Lucent in 1996 when he wrote a web based calendar in it. I remember looking at the language grammer and saying "WTF?". And here I am eleven years later, I look at the language grammer, I see how far it has come, how much the language has evolved... and then I still say WTF.


Perl 5.10.0 is going to release today in celebration. Yay!

Update: Wired has coverage

Sunday, December 16, 2007

RMS starts shitstorm on OpenBSD mailing list

I can always count on Richard Stallman for some good entertainment. Check out this thread from openbsd-misc:

The really entertaining posts are the ones by Stallman himself and Theo de Raadt (the head of the OpenBSD project). (Command|Control)-F is your friend.

Even after all these years, Stallman can still walk in to somewhere he's not wanted in the first place and kick a hornets' nest....


So a couple of jobs ago, I worked at 3Com where I designed firmware for small office/home office routers. You know, the things you can buy at Best Buy for fifty bucks that let you share your DSL or Cable modem with more than one computer.

One of my responsibilities was to deal with the support group relating to customer problems. They would escalate cases where people were seeing the box reset or exhibit some other failure, and almost universally the first thing that came out my mouth was "upgrade to the latest firmware, and let me know if it is still a problem". Because I was also responsible for merging the code and building the releases of firmware, I could see all the bugs that were being fixed, and I had a firm appreciation for some of the nasty problems that people might run into that were fixed in newer versions.

I've been having trouble with my own wireless router recently. The wireless has been cutting out periodically, and it was bad enough that I was using somebody else's wireless even though my laptop is fifteen feet from my own router with no obstructions.

So I started to play around with the settings, and I happened across the firmware page:

Revision 1.00 - Aug 5, 2003

Yeah, so the router I've been using for a couple of years which has been giving me intermittent problems is running the very first version of firmware available for that device. Hmmm....

So I took my own advice and updated to the latest release. And what do you know? I've got 100% reception now, it hasn't gone down since the upgrade, and everything seems peachy.

Irony (n) - A router firmware developer who doesn't think to upgrade his own router's firmware when he encounters a problem.

Sometimes, I have to hit myself with the cluestick instead of others...

Thursday, December 13, 2007

Company party highlights

Went to the company holiday party tonight at Sala on Bowery. Here are some of the highlights:

* Morris and Cindy knocking over a coffee table while dancing
* Belligerent drunk Dan quoting Sports Night
* "This toast goes out to the color orange!"
* Joe brought a girl to the party
* Yummy brownies with vanilla frosting
* Were the parties like this at Bank of America?

Wednesday, December 12, 2007

More progress...

So you might look at the above picture and think, "What's the big deal? Devin is just watching TV". Except in this case it is the first time I actually got the hardware working under Linux. Sure the picture is crappy, but it's not any worse then what I get with the same rabbit ears hooked up to my regular television. Oh yeah, and there's no audio. But who needs audio when you have the physical comedy of Scrubs? On the upside, it's only using 4% of the CPU on my computer, which is considerably better than what I was getting with my MythTV rig (but in this case it's also a much better video card).

Next stop: Over the air HD!

Tuesday, December 11, 2007

V4L firmware loading success - well, sort of...

It took a couple of days, but I finally heard back from the Video4Linux developer responsible for the xc2028 tuner, and it looks like he is going to merge the patch I sent for the kernel panic. He was also nice enough to send me the firmware image he uses, which loaded successfully on my system.

So I still don't have a picture yet on my HVR-950, but I am making incremental progress. Data is arriving on /dev/video0, albeit garbage data at this point. It isn't registering a /dev/dvb device either, which isn't a good sign.

Spent most of the day writing C code to interact with the Microsoft Cluster API, since WMI is a flaky interface. It's annoying when three lines of VBScript have to be replaced with 60 lines of C/C++ code. Alas, at least I know this code will work consistently...

Still suffering from some really bad insomnia. I was up most of the night last night, and today I was like a zombie most of the day. Watched a couple of episodes of Sports Night on DVD at around 2am.

Sunday, December 9, 2007

What's going on?

Was a pretty busy week at work. Did a bunch of customer deployment stuff all week which kept me there late most nights. Such is life.

Victoria came to New York this weekend. We spent most of Saturday kicking around the apartment. I worked on my Video4Linux stuff while she did school work. Did some cleaning. Leah and Brad came over Saturday night and we ordered Zen Palette and played Scrabble, which was lots of fun.

Today we got crepes from Crooked Tree for lunch. I got a haircut in Astor Place. Went to the office for a bit. Vikki made some ravioli that was really good.

Submitted a patch to linux-dvb tonight for a bug I found in the Xceive xc2028 firmware loader. Because I didn't know what the expected format was for the firmware file, I fed it the output from having passed the firmware through v4l_experimental/xc3028/convert.c and when I loaded it the kernel hit a panic. It ended up being an integer wraparound in the code that parses the firmware file.

Hopefully they will also provide some additional information on the expected format so I can load the firmware into my Hauppauge HVR-950 and see if I can get it working.

Saturday, December 1, 2007

Parrot dev

I blame Joe. He got me thinking about Parrot, and he actually started submitting patches:

That got me downloading the source, and I started looking at how the threading works under Win32. It's virtually unimplemented. Was also looking at how Parrot handles some of the underlying OS functions compared to Perl5 (things like win32/VMem.h nad win32/win32.c in Perl5). Again, looks like a target rich environment.

There's plenty of work to be done there. Will hopefully get some cycles to start pushing some patches on low-hanging fruit.

On the upside, it looks like Parrot is targeted to not support Win9X, which is fantastic since that is where alot of the nasty code is in Perl5. If they target NT based platforms exclusively, the code ends up being MUCH cleaner. Think native UNICODE support [not having to vary between FooA() and FooW() functions]. Think not having to worry about whether Winsock is present.

Looks like alot of fun....