07|26 MIA

If you're one of the many people that have been trying to contact me for the last couple of days, I appear to have fallen off the surface of the planet. I feel that I should probably explain why I've gone out of contact. On Saturday night I got on a red-eye flight from Phoenix to Atlanta and then on to Rochester after a three hour layover. After landing and complaining about my lost luggage, I sat in the car for two hours on the ride back to Corning. Needless to say, when I got home I was exhausted.

On Monday I started on the complicated and time consuming task of rebuilding every computer on my network here. In the process of rebuilding things, I took yt.neohippie.net offline. yt was hosting my website, asterisk, and jabber which explains why I wasn't online. I spent the better part of the day attempting to get NetBSD to run as a Xen 3.0 domain 0 host. By the end of the day, I had a NetBSD box that would crash upon startup. Not very usable.

Tuesday morning, I decided to scrap NetBSD for the time being and built a Gentoo box with Xen. The install went relatively smoothly as I combined the Gentoo Handbook and a Howto on installing Xen into a set of instructions in my mind that worked very well. I'll probably document this process a bit better when I have some free time. By lunchtime on Tuesday, I had a working Gentoo domain 0 and was about halfway through building the domain U image. By the end of the day, I had running virtual machines with automounted home directories, internal DNS, and a second domain 0 box with working live migrations between the two.

When I woke up this morning, I started hacking away at getting MythTV running inside a domU machine. Building and installing MythTV went fairly well. I had to recompile the domU kernel a couple of times to get the ivtv modules to build. I am now stuck on loading the ivtv drivers. The module appears to load into the kernel, enumerates the hardware, and attempts to create a DMA buffer to the card. For some reason, modprobe segfaults here. I found some mailing list messages that describe a similar problem with Xen 2.0 and a working patch. I would expect that the patch has been merged into Xen 3.0 by now but it still doesn't work.

I took a look at the Xen PCI DMA kernel code and I think I've found the method that is causing the problem (dma_map_single()) and have done a quick and dirty hack that I hope will fix the problem and am waiting for the kernel to finish compiling now.

The goal of all this hackery is to get all of my servers condensed into two boxes so that when I move back into the dorms in a month, I won't have piles of computers all over the place. Once I've got my servers setup and squared away, I've got a sonar sensor that I'm going to mount on my RC car for data collection. Hopefully I'll get something usable out of this and will be able to start writing some AI and mapping algorithms to run on the car to make it autonomous.

Finally, the Summer of Code is coming to an end and I've only got a few small tasks to finish up. The web templating needs to be finished in forms.py, Atom and RSS feeds need to be checked for validity and tweaked if necessary, a quick and dirty archive summary needs to be written, and syslog messages need to be fully implemented. None of these are large tasks, I just need to sit down and knock them out. I should have time for this sometime next week.

07|19 Free stuff, Summer of Code updates, Homeward bound, Off to CSH

Cisco Networkers 2006 Backpack The last couple of days have been really good to me in terms of free stuff. At last night's Phoenix Cisco Users' Group meeting, I won Network Design and Case Studies (CCIE Fundamentals)

in the raffle... Pretty cool. My dad also gave me the backpack that Cisco was giving out at Networkers 2006. It looks like an excellent laptop bag but I won't really know until I start traveling again.

Speaking of travel, I'm flying back to Corning on the red eye this weekend. I don't mind a red eye flight, but I do mind the three and a half hour layover in Atlanta in the middle of the night. At least I can get free wifi... They want you to pay $7.95 for the day but from past experience I know that they don't block port 22. ssh -D 8080 me@host will setup a nice SOCKS proxy on localhost.

My Summer of Code project is progressing steadily as my todo list is getting shorter. One month from next Friday the Summer of Code is officially over. I still don't think I'll have any trouble getting things done by then.

I finally got things straightened out with housing at RIT and will be living with a freshman on CSH. I've been putting some thought into how I'd like to set up the room, physically and virtually. Physically, I'd like to bunk the beds and put them up against the window, put both desks up against one of the walls, and a sofa on the opposite wall. I've seen this setup a few times and I think it makes a lot of sense, giving plenty of space to hang out and be comfortable.

As far as computers are concerned, I'm planning to slim down from the insane nine computers I had registered last year. I'm going to build an enclosure for the two large towers that will double as a night stand and keep everything self-contained. I'm trying to avoid the mess of cables I had last year. On one tower, I'll be running MythTV and possibly Asterisk. I need to do a bit of testing to see if they can both run simultaneously without problems. On the other box, I'm debating on setting up the usual dual-boot system or going with something a bit more tech savvy with some virtualized servers. I would probably use VMWare Server or write a nice web interface for qemu. Once again, I need to do more testing in this area. The network should be the fun part. I'm going to setup my WRT54G to route across the different VLANs that I'll be tagging inside the virtual machines, giving me a completely virtual network. There is a possibility that I'll get my hands on a Cisco Catalyst 29xx that could give me a lot more flexibility than the WRT54G.

Working toward a few projects I've had in mind, I decided that I needed a quick way to build some 2D graphics apps and have started playing with pygame. I've dabbled in a bit of game programming before, but I've never seen anything nearly this easy to work with. You want a sprite? Just create an object. You want a shape? Just create an object. You want to group a bunch of sprites together to do collision checking and batch updates? Just create an object. While pygame doesn't have the most comprehensive set of tools available, it augments python's natural ability to do rapid prototyping of basic applications. pygame also has a nice mix of object oriented and static methods to make things like graphic contexts easy to work with for the average programmer. For small games and just messing around, pygame is a nice balance of simplicity and extendability.

Aside from the gaming aspect of pygame, I'm actually using it as a quick way to create a graphics intensive app for network monitoring. If you read my blog often, or go back through the archives, you'll remember that I had another Summer of Code proposal accepted by the Jabber Software Foundation. I'm trying to create a simple, easy to understand representation of connections in a Jabber network similar to the 'Swarm' tab in Azureus; though I'm planning to make this much prettier and faster. I'm hoping that eventually, I'll be able to extend the code to do SNMP monitoring and possibly some basic diagnostic actions like ping and traceroute all from an eye candy interface.

Finally, I'd like to quickly rant about SourceForge. This morning, Subversion access was down for a matter of hours. If anything, SVN and CVS access should be the highest priority for open source development. All of the other services (bug tracking, web hosting, compile farms, mailing lists) are secondary to the actual development of code. Just my two cents.

07|15 Sony kills puppies

Within the last year, I've gone from an indifferent opinion of Sony to absolute hatred of everything they stand for. Their "you can't do that" stance toward PSP hacks, incredibly selfish business tactics with Blu-Ray, and DRM laden consumer electronics have given me a good look at what they're all about. Sony isn't interested in what anybody else wants, they only seem to want to look out for themselves.

I don't know that the internals of the company look like, but I think it's probably a safe bet that the engineers have been on the right track all the time. The trouble is that the management sees an opportunity to make a bit more money and end up killing the product in the process.

These problems aren't just isolated to Sony Electronics either; I recently learned that the Sony music label killed a very successful band that I quite enjoyed. Nine Days was popular when I was in middle school and I've spent the better part of my musical life listening to their sole album. According to Wikipedia, they did record another album but for whatever reason, Sony didn't release it and the supposed bootlegs seem to have gone missing from the internet.

Sony's Playstation division has become nothing more than a marketing machine. When Microsoft decided to play dirty and release the specs of the Xbox 360 a week before E3 2005, the Playstation marketing team took every number on the page, multiplied it by two, added some propaganda about a Cell processor and pushed out a press release. A year later, I have an Xbox 360 sitting in the living room and Sony's engineers are still trying to clean up the mess that the marketing department left for them.

On the Blu-Ray front, the competition (HD-DVD) is also far ahead with better picture quality, legal ripping, and media center integration all on the way with Windows Vista. Sony has fallen way behind with substantially fewer available movie titles on the shelf and a very small number of actual Blu-Ray devices in production, none of which are Sony branded. It is also rumored that Sony wrote a clause into their contracts with device manufacturers that no dual format players will be allowed. Why would you kill the interoperability that companies like Samsung and HP already have working prototypes of?

In short, I believe that there is only one reason Sony's executives would allow these atrocities to happen inside their own company: They kill puppies. As a consumer, I am not going to support their hobbies any longer. The puppies must live!

07|13 Summer of Code - Days 32 - 48

Starting off from where my last SoC post ended, I've finished implementing Django templating for event output and am nearly done converting the web interface to a python dict based formatting. Logging to a file is now supported and syslog isn't too far behind. All configuration options have been moved into the config file, the exception being the location of the config file itself which must be set in notify/config.py.

A little more than five weeks to go, my remaining goals for this project are to finish the web templating, make sure RSS/Atom feeds validate, build a simple archive viewing interface, and get syslog working. Extra features that might be nice are web page polling and a full-fledged search mechanism for the archives.