Older blog entries for Dodger (starting at number 14)

7:44am CST

Wow, I can't believe it. My first kernel driver for a device and it actually worked! The USB protocol makes it almost fun to write drivers for devices(when you actually have documentation for the device). I don't have my TrackIR yet, but UPS says I'll get it on Friday. The only problem with the driver my tester found so far is that I forgot to make a check to see if the firmware was already loaded, so it would load the firmware over and over until the new device was enumerated. I sent off a fix for that at around 4:45am this morning and now I'm waiting to hear back from him. All I need to add now is the open and read functions and it should be done. I'm going to wait to write those until I have mine.

7:47am CST

Well, it's another Monday. Last night's Eco-Challenge was very interesting. It looks quite fun albeit grueling. It will be interesting to see how it turns out. Didn't do a whole lot this weekend. Got an email saying my TrackIR shipped, so I might see that later this week. I still don't quite understand how to write a character device, so I'll be looking into more of the kernel source later on today. Is it just me or did this year's April Fool's jokes just seem really lame compared to some of the stuff done last year. Slashdot had remarkably poor jokes this time around.

7:44am CDT

Wow am I ever glad it's Friday! I've been hearing a lot about the game Black and White. I hope that Peter Molyneux really does release the source like he had mentioned doing a few months ago. The AI sounds very interesting. At the very least, I hope it's released for Linux, which was also stated. Anyway, procedural textures are awesome, I love this book. The authors start from the ground up, which is nice, compared to some books/papers which assume you already know everything(making the document worthless). There's a heavy influence of RenderMan in the book, but RenderMan shaders look a lot like C snippets, and the authors explain and implent the functions the shader language uses.

29 Mar 2001 (updated 30 Mar 2001 at 02:16 UTC) »
8:07pm CDT

Enjoying the evening reading, Texturing and Modeling: A Procedural Approach.

Bantered back and forth with one of the developers at Eye Control Technology over email earlier(the people who sell the TrackIR). They're going to release some more information on their website tonight about the firmware, general questions that everyone is asking(including me). It looks fairly easy, from the kernel source I've looked at, to write a driver that loads the firmware and reconnects to the real device. I've already got one on order, I hope I get it soon so I can start hacking on a driver. It will be the first kernel driver I've really sunk my teeth into, but I feel confident about being able to do it(unlike working on the 3com HomeConnect, which completely shattered my confidence in that device, not being able to work out the format of the color images). My goal is to get the driver to a point where I can write an app that loads a mesh of a face(or possibly a Quake3 model's head) and map vertices of the mesh to reflector dots on my face.

4:34pm CDT

Pet peeve: People who feel the need to correct everyone's grammar and spelling because they couldn't spell Mississippi until high school.

2:07pm CDT

Well, it's been awhile since I last posted. I got my patch for the WaveLAN card and the z50 working perfectly. I've been working on database/php3 interface stuff lately. Most of it has been work outside of my day job, working on it at night. I'm finding it pretty easy to do most of the stuff that we want to. I wish I would have gotten into doing this sooner. The extra money won't hurt at all, either. :) I've been thinking about all these forms that I've been writing and wondering if anyone has come up with a way to describe forms in a generic way, using XML or something. It'd be nice if I could have one generic format and spit out HTML, Java, GTK, QT, whatever, interfaces for them. Then just plug-in the database backend stuff to whatever format I want. That would be cool. I may have to look into that when I have some free time(not anytime soon).

I've also renewed my interest in Ultima Online server/client emulation. Mostly, I've just been following the progress of UOX and Ultima Melange. I've been thinking about a UO client for Linux that uses SDL/OpenAL.

Another thing that I've been messing with in the last month or so is the image format of the 3Com USB HomeConnect Camera. I spent about 15 hours one weekend trying different image types with no success. I've finally given up on that, and have just decided to write a black and white(which is easily decoded from the image data) USB driver for Linux and then either let someone else figure out the format or try again, after I have the driver working. Man, what I wouldn't give to either not have to sleep, or a 40-hour day to work on all this stuff I want to work on. :)

2:28pm CDT

Lots of kernel hacking lately. NetBSD for my z50 wasn't working so well, so I decided to take out the 32MB memory module and try Linux on it again. Once I got the mipsel kernel sources from Linux VR's CVS server and began work on getting a kernel compiled. Since I had already gotten this working in the past before, it went quite easily. After I was up and running, I decided to try getting my new Lucent WaveLAN Turbo 802.11 card working in it. This proved to be more difficult than I thought. I took the wvlan_cs patch for 2.3.50 and applied it to linux-mipsel-2.4.0test1(CVS version). It applied fairly cleanly, however, it broke the pcmcia_net.o build. I'm still pretty green as far as getting around the Linux kernel and build system, so it took a lot of reading the source(thank god for ctags) and grepping to figure out what was going on. I did a lot of whining to myself about not being able to find things on the "bigger picture" of the kernel. "Use the Source, Luke", seems to be the proper phrase for learning more about the kernel. And learn I did, I understand a lot more about the way modules(compiled into the kernel or external) and the PCMCIA subsystem(which, thankfully, is documented well by David Hinds). When you first look at the kernel, it's quite a daunting piece of code, but once you dig under the surface, and have the proper tools for finding your way around it, it reveals it's secrets little by little. This afternoon at lunch, I believe I put in the last fixes to the Makefile that I needed to get the wvlan_cs driver going. Now I just need to copy the kernel over to my Compact Flash card and try booting it up on the laptop when I get home. I've also been wondering if PCMCIA Card Services exposes anything in /proc to see which ethernet cards have support in the kernel. When the pcmcia_net.o build was breaking, I was having problems not knowing if wvlan_cs was actually being linked into the kernel or not. If there was some way to see a listing of the cards that PCMCIA CS has drivers for, from /proc, that'd be helpful. Of course, now I think have it fixed and really wouldn't need that functionality, but I still wonder if it exists or not.

Survivor comes down to the final four tonight, I wonder who makes it.

12:38pm CDT

nymia: vim+ctags works very well for me. I really haven't found the need for a drawing of the class hierarchy yet.

12:18pm CDT

From my computer-less situation at DefCon experience, I've been working on getting a Unix working on my IBM WorkPad z50. There are really only two choices that I know of right now, linux-vr and NetBSD. I've been following the mailing lists for quite some time now, and I know that, at the moment, linux-vr is out of the question. CyaCE, the bootloader for the linux-vr project doesn't support the memory hole that exists between the default 16MB and the 32MB upgrade module I put in the z50. Karl T. on the mailing list has mentioned a rewrite of CyaCE, I can only hope he includes the support I need. So that leaves me with NetBSD. After countless hours of trying to figure out ways to get it installed, I finally did it. I run Linux, so I had to find a file system that was compatible between Linux and NetBSD. The only one I could find was FAT16(ick) so I ended up having to copy the NetBSD packages to my MicroDrive on a FAT partition. Then create a NetBSD filesystem on my CompactFlash card and copy the files over to it and rename them(I could have simply put them on the CF card on a FAT partition to begin with[I tried] but, unfortunately, NetBSD doesn't recognize that the packages are there, if they are not in lowercase[grr, FAT is only uppercase]). Then I started sysinst and partitioned up the MicroDrive and installed. After that, everything was working perfectly. There are still some glitches I have yet to figure out though.

Firstly, the w command segfaults on me, and I have no idea why. The passwd command isn't working either. When I boot off of the GENERIC kernel, it just hangs. After compiling my own kernel, it says it can't find a kerberos server. Having no experience with NetBSD, I don't have a clue how to fix this. Setting kerberos=YES in rc.conf doesn't seem to actually start anything. I have found that /usr/libexec/kdc seems to be what I want running, but there's no kdc.conf, so I'll have to read the man page on that. Finally, my pcmcia ethernet card doesn't work. If you think it's tough to find out if Linux has support for a device, try any *BSD some time, it's even worse. I recompiled the kernel, with, what I think is the correct support for the card, but I forgot the card at home so I won't find out until tonight. I also had to modify the source code for this driver(if_xi.c) because it wouldn't compile(NetBSD-current).

Because of all this, I haven't been working on my XML/Glade stuff lately, though I think this weekend I'll have time to further it. However, I got "The Algorithmic Beauty of Plants" and it's tempting to play with the L-systems they describe. I never though I'd be using it again, but the book(in the beginning) describes things in a LOGO like language, so I'll have to brush up on that. It's been at least 12 years since I played with LOGO on the Apple IIe.

12:19pm CDT

My plane arrived in Omaha last night from Las Vegas, and I got home right around 11:00pm. DefCon was very interesting. It was my first year attending and all around, I thought it was a good convention. I should have tried harder in getting my laptop going with something useable, because by the second day, I was pining for a computer to do something. A lot of good security talks, but the rooms where they were being held were very full and very hot. On the second day, they got the video feed working in one of the rooms, so we could watch from the comfort of our hotel room, which was nice. Unfortunately, I missed the Freenet talk that I wanted to see, so I guess I'll have to wait for the video to come up on the website. I'm definately going next year, but I'll be bringing a laptop and a wireless ethernet card. I'm hoping I can find one of those DefCon satchels that they were selling. It'd make a perfect laptop bag, but they sold out of them the first day before I registered, so I never got a chance to buy one.

9:01pm CDT

Well, not much on the XML/GTK widget front today. I need to come up with a name for this modification. Mostly busy at work, so I couldn't really get into the swing of coding. Have to go to bed early tonight, so I can get up and catch my plane flight at 8:30am tomorrow morning. Las Vegas here I come. DefCon is going to have a speaker on Freenet, so I think I'll be attending that, in light of the new article about it. I probably won't be able to post about it, so I'll leave a note in my diary. Speaking of diary, I won't really have any access to the net while I'm in Vegas(I don't have my laptop set up with linux-vr or NetBSD, it's an IBM z50), though I'll probably be checking my email from Oliver's laptop. No new diary until August 1st. Wish Advogato could track which diary entries you haven't read yet, so I could catch up when I get back, oh well.

3:45pm CDT

Woo, saw the first, mythical widget call today! I just instantiated a GtkButton with only an XML description of the function. I kludged a bit of it, but I can straighten that out when I get to work on the rest of the generalizations that I need to do. I probably wouldn't have been able to do it without help from Jeff Epler, many kudos to him.

9:06am CDT

Ugh, forgot to commit my changes to my CVS server. Guess I'll be working on something else until the firewall goes down at noon.

5 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!