Just spent my whole weekend reading (and writing) some Cocoon documentation, via the Cocoon Wiki. If nothing else, I'm a bit less confused than I was when I started. Maybe a few other people will find my changes useful.
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.
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.
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. :(
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!
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!
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.
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.
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.
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!
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!