Older blog entries for deirdre (starting at number 12)

Got an email from a guy named Arnaud this morning saying he too had been working on a Gtk+ for the MacOS project. He's further along than I am. I sent him a note suggesting we combine our efforts and post them to the SourceForge account I'd set up, but I haven't heard back. I'm amazed and encouraged; I still wasn't even sure how viable the project was. I haven't even booted either of my Macs in two weeks. ::sniff::

CottonBale is coming along moderately well. I've got two different front ends for it so far (one shamelessly snarfed in part from Bruce Perens because I think his www.linuxvc.com site is pretty nice and clean). You can see the prototypes at http://www.deirdre.org/events/bale.php3 (html snagged from http://linuxmafia.com/bale -- which it will eventually replace) and the other prototype is at http://www.sfknit.org/bale.php3. (knitting = cotton and bay area linux events = bale, thus CottonBale). Yes, I know all the "knitting" events are the same events. When I'm ready to go into production, I'll switch databases for sfknit; it's easier to make changes in one database than in two.

I don't currently have many events in there as I'm working on other aspects, but I do have a whole gaggle of stuff to add when it's ready to go.

Off to Baypiggies. I'm not prepared and I hope they don't shoot me....

Yesterday was power failure day -- at least three. The upstream didn't have backup power on their routers either. Losers.

So I brought my box home, leaving me to struggle with non-authoritative DNS and trying to fix DNS for 16 domains I do primary DNS for as well as notify everyone I don't.

When I moved the box home, I separated the apache/mail box from the DNS box. Had I known the trouble this was going to cause, I probably wouldn't have done it, but...

There is also no reverse DNS for my boxes, which is causing sendmail to have "issues."

All this was made to work with the magic duct tape of name service, /etc/hosts. Grr.

Stock Prices

Stock prices are fickle things. The one really good thing, which Seth didn't consider, is that the low stock prices are a GOOD thing in hiring new people. After all, their stock options will be inexpensive. So, those people looking to move to a public Linux company, now's the time.


Stress makes one tired. Rick had been quietly watching as I'd been exhausted, weekend after weekend, this last one not being much different. I think it's from being in "crisis mode" on the job for several months. I'm not completely convinced this is the cause though.

That said, there's good crisis and there's bad crisis. Good crisis is the kind where something suddenly happens and everyone pitches in and they become more of a team for having done so.

Bad crisis, which this is, is never being able to be in NON-crisis mode, so one is always responding to stressors. Rather than building teams, it tears them apart. There's never anything to be on top of. There's never action, only reaction.

It gets really old really fast.


Spent it decompressing mostly. I read all three of the existing Harry Potter books, knit some, spun some, and did no coding whatsoever, mostly because my eye was bothering me again (another sign of stress?). Reading a hardback book with large type was about as much eye activity as I could muster.

I can't believe it's been so long since my last diary entry. It's been one of those weeks.


I'm having a lot of fun learning PHP and getting proficient with it. It has some quirks that make it not act like I expect, but it was great getting an answer from Rasmus in 7 minutes that explained the philosophy behind include files. Open source is so cool that way.

The syntax is enough like server-side Javascript and C that it's mostly intuitive (to me), but there's a few things here and there that I find jarring. Mostly, after a whole bunch of Python coding, I forget a lot of semicolons. I indent everything the same though. :)

CottonBale is coming along nicely, with only the quirk that my box at home is having trouble installing MySql to develop further with. I really really really need a third box to plop stuff from my existing two so I can upgrade Rockhopper. It's beginning to grate.


Looks like my coauthor and I will get our next book deal after all, and I may wind up doing chapters for another book, also cool. This requires writing a sample chapter, quickly. Argh!

Obviously, since the deals aren't signed, I can't really say anything about what books or for whom. I found my box of my author's copies of SuSE Linux Unleashed the other day -- I received it right before I moved and never unpacked the box. It was HEAVY. It wasn't glorious writing, but I always seem to learn something, no matter how much I think I know, when I'm doing some digging to write a book.

The new stuff should be MUCH less dry to write and, hopefully, to read.

Office Environments

What Elise said. Except both she and Brett, probably because it's "not corporate," missed what I find even more useful: a recliner with a monitor suspended over the chair. Something that supports the head. This eliminates a whole bunch of stress of keeping the head in position, which is where huge chunks of stress in shoulders and the neck come from. Fortunately, I work in an office where there is a wonderful, wonderful benefit: biweekly massages paid for by the company. I'm sure it will save money in the long run.


Martin's posting about disemvowel.py reminds me of the time I walked into a friend's house and they were playing Wheel of Fortune -- in Welsh. I asked why and my friend Joyce replied, "The Welsh were a poor people. They couldn't afford any vowels."

Fscking NT mail server at work. ::rolls eyes:: It's been hours and they still haven't "gotten it up."

Worked a bit on CottonBale last night and this afternoon. Rick and I had a nice lunch at our local coffee shop, walking into the middle of a crowded sidewalk sale by mistake as we tried to approach the place.

Later, more work, including trying to set up MySql the same on my home box. Grrr. Home is a SuSE box that's about four different versions of SuSE. If I could find my 6.3, I'd redo a fresh install. But I haven't found it since I moved two months ago. And, naturally, 6.4 is out now.

MySql's really much easier to set up on a Red Hat box. But it should be up and running again soon and then I can test CottonBale with a faster connection while I'm home. It's mostly done (except for the maintenance, which can wait a bit), so it's nearly ready to deploy.

Had a great dinner in the City after the Cabal meeting.


Seth made comment about the levels of certification. One of the issues I have is that it assumes that anyone who is starting out in open source coding doesn't know how to code, an assumption I find fundamentally flawed. There's also an inherent assumption that their time is unlimited. There isn't a good way of certifying master coders who, like myself, contribute here and there. Sometimes in bug reports, sometimes in design, sometimes in code.

Some of us have been coding for a living longer than the average Advogato user has been alive. While I may not be famous as a coder in the open source space (mostly because I've written custom apps which, while necessary, are not especially glorious), as a coder I'm easily Master level and have been for years. Furthermore, not all my contributions have been in the Unix space -- I wrote open source software for the MacOS at least five years before I heard the term "open source." I have code that's been continuously running for more than 20 years[1]. Within this community, I see myself as Journeyer mostly because I spend time on community events at the expense of coding (which I do all day, every day). But rating me as an apprentice is, imho, insulting. I've contributed lots of little pieces to lots of places, but never quite enough to "make a name" for myself. I don't give a shit about the recognition, but I find it amusing that some people have certified me who a) don't know what I have done and b) don't know me very well.

Exercise: If you're in the US, open up the newspaper to the television listings section. There's more than a 50% chance that the page you're looking at was generated by my code.


Saw a lot of people at SVLUG, including Joey Hess, many of whom did double takes on Rick wearing a suit. Well, we didn't have time to change. The double-takes he got were really hilarious. Prior to that, we'd spent time with his large, boisterous Norwegian family. Coming from a small family myself, I felt a bit cramped. I couldn't believe how much food they had. Too bad we don't have stasis generators to keep piles of food from going bad. Everyone coming in had an ice chest it seemed.

Apparently ESR hadn't heard of advogato, so we told him about it last night. In sad news, his father died yesterday morning. :( ESR said it wasn't unexpected.

We skipped the SVLUG meeting proper, hanging out with ESR and Karsten Self. After the meeting, we spent time with our new neighbor, Reg Charney, and Karen Shaeffer. Karen really has a wonderful head on her shoulders and it was great spending time with her.

As almost all my day yesterday was spent in social events, no code. Today, it's work, an appointment and home, so probably no coding as I'm being a sysadmin today.

Open Source Culture

Dria says:

It's becoming increasingly clear that the Open Source community is mind-bendingly complex -- not just in terms of creating technology, but also in terms of social interaction and community and all the other squishy stuff that goes along with it.

Heck, go for a Ph.D. from The Union Institute. In fact, this very area had fascinated me also. My undergrad studies were strong on just about every social science except sociology.

[1] The concept of "code uptime" has really become more appealing to me over time as a measure of software quality. By that measure, some of the so-called illuminaries of open source would be ranked apprentice. I have spent a good chunk of my career as a "reimplementer" -- when someone else screws up and the code crashes, freezes, is outgrown or whatever, I redesign and reimplement from scratch. Thus, code quality is far more important to me than the glory of being a "frontier" programmer and getting my name in lights. To me, the craft is about coding correctly. I'm not going to point fingers, but there's an awful lot of atrocious design and implementation out there, and if we ever GET the cloning process perfected, I'm going to sic my clones on getting it all fixed.

Tomorrow we go to Rick's aunt's funeral. :(

Tonight I worked on CottonBale and got it about 1/4 done (as far as the critical stuff to get it really useable). It has the groups' stuff pretty much right, though I need to update the schema.

Rick and I were going to talk about it over dinner, but the Dutch Goose was packed and very, very loud. After dinner, we talked about it briefly, but he's on a really godawful morning shift these days, so he's asleep already.

Time go pack off myself...

Seth David Schoen asks about procedures, specifically stored procedures. When I was coding in immunohematology, the FDA had to certify our code after it was compiled and before it could be deployed. Thus, we took extra pains to see that ANYTHING that would otherwise be in code wasn't. None of our sql statements were (they were stored in text files or stored procedures). Stored procedures were relatively easy to change, but difficult to maintain across databases.

While I've been a DBA, I didn't use them overmuch. I think the reasons DBAs like them is that they spend a lot of their time in sqlplus (or the non-Oracle equivalent thereof) and therefore aren't accessing a database through code 99% of the time. Thus, stored procedures are a convenient means of access for them.

I didn't do much coding over the weekend, giving my eyes a rest. Rick and I went to see Terry Pratchett. While we planned to go on Saturday to Future Fantasy, we found we had more access at Kepler's. We listened to him prattle off for a while then went to the cafe.

I read the first two Honor Harrington books, which I enjoyed a lot.

I worked a bit on CottonBale, which I should have done in a few days.

What Nick meant to say was:

It's people like that who make you realize how little you've accomplished. It is a sobering thought, for example, that when Mozart was my age, he had been dead for two years!

It's from the intro to Alma, one of Lehrer's more amusing songs. And, in my personal case, five years. Bleah, it's not just sobering, it's downright depressing.

Sloppiness is a bad coding technique.

Speaking on Kelly's entry from last night, the most extreme example I can come up with personally was spending three weeks to fix ONE line of code when I was working on some MacOS voodoo project. The bug would only show up, sometimes, after my app had quit. It took a week to find a way to reproduce it reliably, two weeks to muck about and figure out what was going wrong, and two minutes to fix it when I found it. It was a real data mining expedition.

Early in my career, when compilers were abysmal and fast RAM was still measured in milliseconds, I coded power plant control software in Pascal. Because it took two hours to do a full compile, we typically did it once a day, sometimes only twice a week. Thus, we sometimes had a LOT of errors that needed to be fixed. Once, I got the error, "Pass 1 errors detected, pass 2 not run." It turns out that a semicolon at the end of a line was replaced by a colon instead. With an utter lack of things like diff and lint, I think that one was 14 hours. We didn't have enough space at the time to be able to keep a revision back. Remember 8" floppies? We had those. Hard drives were not yet available to mere mortals, so diff wouldn't have helped a lot.

3500 people have viewed the 10 minute total idiot's guide and the only comment I've heard that was specific was that it really DID take one guy 3 hours and 52 minutes to compile all the requisite components. Others have wanted more expansion, but I really wanted a KISS approach as a lot of people were having trouble just getting on the runway. The number of hits are kind of amazing considering that it was unlinked from the front page of the site until yesterday (doh!) when I revamped the pages. It also comprises about 35% of all hits to the baypiggies site.

Rick and I did some log-grepping on Linuxmafia last night. He's serving about 100k pages a week, and his BALE page (Bay Area Linux Events) page gets about 10k hits a month. The most amusing part is that the host is an 8-year-old 486. Go Linux!

Last night I started on a long-needed migration to merge my two main web sites. Mostly, I started organizing my older site at deirdre.org -- which is mostly five years old -- and barely touched the newer one.

One of the things I needed, when I looked through the whole list of files, most of which I realized weren't linked to *anything*, was that I needed something to tell me what wasn't referenced on the site. You might say the opposite of wget -r. So I wrote one, which you can find here.

One of the spookier things I found was a .wav file of my late husband. It was VERY odd listening to it. I'd forgotten he'd sounded *that* British.

As the elder site has gone through being migrated several times (from sover.net to lightlink.com and finally to deirdre.org), a whole bunch of the references have gotten screwed up along the way naturally. And some of the site logically suggests dynamic content such as PHP. But a lot of what I've done has been lost in the site or not included at all and I wanted a clearer organization to the whole thing. Plus, if it's easier to maintain it more likely will be....

We've really been burning the midnight oil -- Rick and I got home last night at around 9 pm and Rick fell asleep immediately. We'd both been at work for 12 hours, then went to dinner. So yesterday was literally a wake-work-sleep day, though a bit more for him than for me.

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