Older blog entries for fuzzynerd (starting at number 13)

I feel less and less ambition to post to my advogato diary. Oh, well. The more time I spend working on software, open source or otherwise, the less time I spend writing about the process.


  • My Project Links job is ending, due to lack of funding. It was a lot of fun, and gave me a chance to get paid for making some contributions to open source software, including some code contributed to the xsltml project, some tinkering with DSpace, and the creation of some FreeBSD ports (including several PRs). I'm going to miss this job, I think.
  • I've been playing with Cocoon. It fucking rules. It makes me feel that perhaps all the time I have spent learning XSLT wasn't wasted.
  • My new job will involve using microsoft development tools, and probably writing primarily for the windows platform. I'm either selling my soul, or I'm "rounding out my resume skill-set." Can't decide which.
  • I'm moving to New Hampshire. Probably going to be offline for a week or two, during the moving process.

Simultaneous publishing, from a source XML document full of semantic markup, to several different presentation formats. Only used free software, namely xsltproc and Xalan for XSLT, and FOP for XML:FO. I can't wait to see where we are in a few weeks.

I am now employed full-time for Project Links. The scary thing is, I ended up with my former-boss's job. I am now the Technical Manager. After spending over two years on the project, I feel that we're finally getting to the point where we are really making progress.

When I started working here, the site was over 30,000 files, and was completely unmanageable. These days, we're down to about 12,000, and everything is fairly manageable. We're publishing some really fancy XHTML+MathML documents. They're a work of art.

We're also playing with DSpace. The plan is to run a DSpace server as an "RPI Publication Database". I will end up in charge of running that server, too. Fun-fun!

I just started the "Mimsy Image Management System" project. I will be collaborating with several RPI students, and one RPI professor, on trying to get this code into a reasonable state by the end of the semester. It's going to be a fun ride.

I've been using FreeBSDToGo a lot, lately--Several professors want to use it in class. I have the plans for a major release in my head...I just need to find the time to follow through on the computer. :)

ntftp will be on the back-burner, until next semester, I think....but I haven't forgotten about that, either. I absolutely detest starting projects without finishing them.

20 Mar 2002 (updated 11 Sep 2002 at 14:35 UTC) »

I'm tired of my computer-graphics-oriented friends telling me how much better Photoshop is than The Gimp. I'm going to try to do something about it. A friend of mine and I want to work on some improvements to The Gimp, including interface enhancements and feature additions. The plan is to do this as a summer "Undergraduate Research Project" at RPI. We will be making a proposal to a professor, in about an hour. If it goes through, we could actually get paid for working on free software! Wish us luck!

Update: The project was approved! We'll be getting course credit, instead of money, which seems fair enough. Not only will we be working on making changes to The Gimp, we'll also be demonstrating the effectiveness of these changes, from an HCI perspective. Professor Danchak seems pretty cool, too.

Update: This particular project was put on the back-burner, due to some more interesting projects that have surfaced. Only so many hours in the day. :(

7 Mar 2002 (updated 7 Mar 2002 at 04:53 UTC) »

I'm creating a piece of software that greatly simplifies the process of creating bootable FreeBSD CDROMs. This is an extension of some work I did last semester for the math department. This time I'm getting independent study credit, from the Computer Science department. The goal is to have a generalized system of Makefiles that, when handed a special data file, will generate a customized bootable CD. Progress is good, thus far. I have a magic datafile that creates a bootable webserver. Check out FreeBSD To Go!

Multicast TFTP

I've started a sourceforge project, called nTFTP. The code I've already written will appear shortly, and will probably be rewritten in C++ for fun. The code will be released under the GPL. Check out nTFTP!

Ponderous thoughts:

I'm debating about trying to achieve the Advogato certification of Journeyer. I'm spending way too much time working on Free Software(TM).

It's about 2 in the morning, on a random day of my winter break. I haven't been sleeping much. Too many cool ideas I want to work on. I'm tired, distracted, and busy--I'm not going to proofread this entry as carefully as I should--but it's long past time to make an advogato entry.

My projects:

Multicast TFTP

I worked on an independent study, this semester, with Dave Hollinger, my Network Programming teacher from a few semesters ago. I decided to work on a multicast TFTP client and server, since I have a use for one in the Links Lab, on campus. Copying a 3gig hard drive image to multiple computers by unicast is slow, even at 100mb/s.

I did my best to follow the RFCs. I had some fun with it. I wrote 1300 lines of code. It even partially worked, when I was done with the semester. I still need to add more code for the multicast support, but lots of other stuff works just fine, such as unicast transfers, option negotiation, blocksize option support, retransmits, and inactivity timeouts.

I plan on releasing the code under a BSD license, when it's a bit cleaner. It's not quite ready, yet...and I keep having this horrible itch to rewrite it from scratch, perhaps in C++. :(


I wrote a message to the FreeBSD -stable mailing list about a USB Compact Flash Card Reader that I purchased, recently. It's a Simpletech reader, using a DataFab chip, with a USB product ID of 0xb000. It "almost" works with FreeBSD's usb mass-storage device support (umass). It apparently "almost" works with Linux, too, according to the Linux DataFab driver writer's page.

I went through various efforts to get the device working, but to no avail. I was able to use this as a learning experience, however. I successfully added an entry to the FreeBSD's USB device table, and I believe I successfully added an entry to the SCSI 'quirks' table, too. I learned a whole bunch about SCSI, USB, and umass. It just wasn't enough to make my flash reader work, when I was done.

This is the first time that OS source code didn't scare the hell out of me, as soon as I looked at it. It's also the first time I've modified OS code, and the result actually compiled, and did something sensible. It's corny...but it feels like a big step for me.

Project Links:

XML is wonderful. I'm the system administrator for Project Links. I'm also a programmer for them. And I'm also the release/build engineer. I make it all work. My boss gives me a lot of freedom, and I make the most of it.

Project Links has a big website. The project has existed for many years, and has accumulated a fair amount of cruft. At the beginning of last summer, for example, the web site consisted of 30,000 files, huge amounts of hand-written HTML, filled with bad-links, inconsistencies, and missing files.

For the 18 months I've worked there, I have tried to clean things up. At this point, I think we even have all our soure code, again! (The previous sysadmin lost many files, due to an incorrect backup procedure). I played some nasty tricks with a java decompiler, to fix this. The site has been trimmed down to 20,000 files, just by deleting junk. The site will even fit on a CD-ROM! I moved the project to CVS, a while ago, so developers would stop overwriting eachother's changes. I setup a reliable backup solution, so we won't lose files any more.

My next goal--I want to move Links to XML. Currently, the "modules" are hand-written HTML, with lots of templates and javascript crap. I would like to use XML and XSL to write a language that can be used to express the content of the modules in a purely presentation-free format. Ideally, the people writing the educational content would be able to write in this new language directly, instead of asking HTML programmers to design pages fitting their requests. At site "build time", a set of templates would be applied to the module XML data, and the website would be formed.

There are numerous nifty side effects of this, such as the ability to use a non-HTML presentation language. We could write an XML->LaTeX translation, and print a Project Links teacher's guide, without ever changing the module data. If I succeed in the move to XML, the website will shrink down by many thousands of files. It might even be manageable again. I would love to be able to validate the module content, and use the XML data to do searches for missing files (broken links), as well as orphaned files.

The idea of having content separate from presentation is such a simple and obvious idea, that I wonder why it is so often ignored. With XML and XSL, we can let HTML become a purely presentation-based language. Perhaps it will stop sucking, then.

So, I'm stuck in Troy while Jon Chen and Louis Gerbard are at BSDCon in California. Not fair at all. From what I've heard, Jon now has commit access. Louis is still working on it. Jon's Cardbus code is coming along nicely, and Louis is working on SoftUpdates for Darwin. It's cool knowing these people personally...but I'm going to have to work my ass off if I expect to ever catch up with them.

Louis brought up the idea of having RPI-ACM's SIG-BSD try to start up a BSD equivalent to Linux's "kernel traffic" archive. He claims that LinuxCare is willing to sponsor it. Not a bad idea, but I don't know who would be willing to sit and read mailing lists for that amount of time. Garrett might.... Funny thing is, with the group of people we have, this sounds like far too simple a task.

Last ACM meeting, a graduate student gave a presentation on his thesis topic: performance analysis in parallel systems. The meeting went really well. Everyone seemed to be paying attention, despite the fact that the majority of the presentation was probably well beyond the comprehension of most of the audience. "Dr." Jeff Nesheiwat kicks ass.

I've been busy, as usual. Last night, I got together with some friends for a SIG-BSD meeting. I was impressed-- this group seems to have the right people in it to make some big accomplishments. We decided to start work on two short-term projects: The first is to help Jon Chen finish his Cardbus code for FreeBSD. The second is to put together a FreeBSD 'bootable business card', similar to the LinuxCare 'bootable business card'. I opted for the Cardbus code, since I've been looking for an excuse to do some system programming.

I ordered a few books. Any day now, I should receive "Unix Network Programming", volumes 1 and 2, "Advanced Programming in the Unix Environment", and "Lex and Yacc". My bookshelf is already warped from the weight of my O'reilly collection. It's pretty funny.

Off to accomplish things!

One month ago, when I contacted CIS about getting unix on laptops at RPI, my goal was to have some version of unix available and functional for the freshman laptops on laptop-distribution-day. This goal was achieved Sunday, at the largest RPI-ACM event in recent history. We had great membership turnout, and we estimate that between 30 and 50 students came by for installs. We were not able to get an accurate count, due to the level of (controlled) chaos during the event. I was able to get rid of the FreeBSD T- shirts, and many of the CDs. Fliers were handed out, and I think people have an idea who the RPI-ACM is. Pictures from the install-fest can be found here on the RPI-ACM servers. I'm the guy in the black 'foo' shirt.

Only one person came by with a Thinkpad 600e. My customized install for this system failed miserably, but I have reason to believe that the problem was simply an isolated hardware-related incident. Most students were Freshmen, and brought their Thinkpad T20 models. We had a customized FreeBSD install on hand, thanks to Dave Cross, Jon Chen, and Louis Gerbarg. Jon and Dave finished the FreeBSD driver for the ethernet card in the T20, and put together a custom FreeBSD install, thus saving our event. Louis put together a server with two quad-ethernet cards to perform network installs for the T20s. Everything worked relatively well, in spite of the chaos.

Being the chairman of the RPI-ACM makes me feel like I'm becoming a manager and a politician. It makes my skin crawl. I want to be a programmer.... I don't want to leave the technical details to other people.... My biggest fear is that I'll do a good job of this, people will realize it, and I'll never actually get the hands-on work that I want. I hate to feel like all I can do is have other people do the technical work for me.... On the other hand, I really care about this club. I think I can make a positive impact as chairman, and there's no possible way that I can do all the work myself. I still cringe when people joke about me being good at this leadership thing, though....

I got a new Thinkpad T20 today. I wasn't supposed to get it for some time yet, but I managed to talk to the right people in CIS to arrange it. The justification for getting the machine early is that it will end up in the right hands to test the ethernet drivers for Linux and FreeBSD, and thus save CIS some trouble. I feel slimy for pulling favors like this, but I think it will help speed things up. I wonder how much of my motivation was the fact that I want the T20 to play with on my own.... I guess it really doesn't matter, as long as I do my best to make things happen.

Haven't slept much lately. Need to get back to some schoolwork, among other things.

4 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!