Older blog entries for dfenwick (starting at number 1)

As much as this sounds like blasphemy to the open source community, I don't like Linux as a desktop operating system. Now don't get me wrong - I love Linux as an operating system. It makes a really awesome server. Unfortunately, even though I've written many applications for X, I do not like X. I don't like it the same way my friends at Apple Computer Corporation 9 years ago didn't like Windows 95.

I remember a discussion I had with my buddy Scott Boyd back in 1996 about Windows 95. He said "It's the lack of a hardware cursor that just feels wrong." I argued that it really shouldn't make a difference. 9 years later, I know he was right.

It's the nit-pick things that bother me about X. It just doesn't feel "crisp." It always feels like I'm running in an emulator, and because of the way X works, it's really what I'm doing.

I've been silently waiting for a "good" replacement to usurp X as the desktop GUI of choice for a long time now. Unfortunately, trying to replace X with just about anything else these days is going to be very difficult. The momentum of the graphical operating environments that ride on top of X (KDE, GNOME to name a couple) is enormous, and having to either rewrite a lot of the code or figuring out how to build a compatibility layer would be a huge undertaking.

In the past 3 years, it's gotten better, but there's really only so much a developer writing software on top of of the libXt, libXm, or even libX can do. They're still at the mercy of how X performs, and it just doesn't feel right to me.

A little bit of my history in the free software environment.

I wrote my first free software back in 1981, as a 16-year-old. Back then I had a borrowed Apple ][ and after I figured out how it worked, I realized that there had to be easier ways to make efficient algorithms work. AppleBasic was highly inefficient, and I was writing a lot of routines in machine language to optimize my code. At that point, I realized it was ridiculous for me to continue to write in machine language, so I wrote an assembler in AppleBasic. I posted that on Compuserve, and it went completely unnoticed forever.

In 1987, I got into MIDI. Back then, MIDI was a brand new phenomenon. Most computer people had never heard of it and most musicians had no idea how to use it. I started exchanging code with others via bulletin boards. Back then, bulletin boards and modems were one of the few ways to transfer applications around. I wrote an interrupt service routine for Roland's MPU-401 (then the only MIDI capable interface for the IBM-PC) and shared it with others on the local Washington MIDI User's Group. I then added some SYSEX routines to it that allowed me to dump and restore patches from my Roland D-50 synthesizer. This later became part of my master plan to build a patch editor for the D-50, which never happened.

In 1991, as a member of the MINIX community on a variety of online resources (Compuserve, BitNET, etc.) we were having discussions on how to improve the MINIX kernel when Linus Torvalds posted the first of the LINUX kernels. I still have those kernels on 3.5" floppy disks. They are version 0.11 and 0.12.

Thus spawned a bunch of activity I had in the LINUX community. I helped the first of the distribution teams (in this case, the Yggdrasil folks) get their distribution debugged. I finally ended up purchasing the 1.0 version of Yggdrasil INCLUDING the binary Motif version they sold just so I could port a bunch of commercial Motif applications I'd written to the Linux platform.

In 1994, I bumped into Andrew Tridgell online and found he was writing software that would allow my SunOS machine to serve up files as if it were a Windows file share. This was exciting, since the company I worked for was running Windows for Workgroups on the PCs and connecting to the Sun servers via NFS (using Sun's PCNFS product.) I absolutely HATED the wedge that was required for PCNFS in Windows for Workgroups, so I figured out how Samba worked and got it loaded on all of our servers. This was the beginning of my Samba relationship.

In 1994 and 1995, I was very active in the Samba mailing lists as well as promoting Samba, as well as debugging code and submitted some patches to existing code. My forte was reverse engineering on the wire, though. During that time I reverse engineered much of the browser wire transactions, and started a development group that began writing the browser code. Before we even got off the ground, Andrew Tridgell basically finished the preliminary browser code, and clients connected to Samba all over the planet suddenly were joining workgroups and advertising their shares with Samba servers. During that year I also started the two Samba USENET News groups.

In 1996, lkcl was working on some new things for Samba and asked that I try out his additions on my private development servers. Eventually I was invited to the Samba development team. In 1997, I set up a site to allow Luke and Paul Ashton to share their debugging information for the NT Domain reverse engineering project. I was invited to the Samba development team in late 1996, more as a strong advocate than a developer. Over the last 8 years, I've silently been waiting for the right time to produce a reasonable Samba management GUI. It looks like Samba 4 is the right time to do such, and I've already started work on it.

I run a combination of operating systems at the house. I've got 5 or 6 Linux boxes, 3 or 4 Windows boxes, quite a bit of stuff running in VMWare on each of those boxes, I run Solaris 9 x86 in a VMWare session, and I run a variety of CD-BOOT environments for a variety of purposes.

I've been actively writing software since 1980. The majority of my work has been commercial work. I've had some of my source code released using a variety of useable copyrights (I rewrote a large part of SNACC - an ASN.1 compiler - to do DER instead of BER for a project, for example.)

It's been a fun ride.

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!