Older blog entries for deirdre (starting at number 10)

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.

Coffee, need coffee.... My taste buds aren't awake enough to know they're drinking yesterday's reheated French roast. Ugh.

Doing an early triage on my work email, I'm convinced that there needs to be a better way to manage a complex software rollout for electronic deployment. That said, when it involves N servers (where N is > 10) and there need to be core software upgrades and database structure changes, it's just not that simple.

About the only code I've written off-work hours is a weensil python example of how to remove html tags to produce a text file. Mostly, I was annoyed at having to keep html and text versions of my resume; this makes the maintenance somewhat simpler. I happened to write it last night after getting home and, lo and behold, someone asked for exactly that on the tutor list this morning.

It also highlights a petty annoyance with python: I like my booleans to be boolean dammit. Too much damn pascal programming in my deep dark past. My dad always used to put jokes in his code.

I considered several apparently cleverer ways of doing this involving regex, but ultimately anything would have to reduce, at some level, into what I wrote. ::shrug::

Too much damn assembly language.


Whee, fun with sendmail today -- someone thought it would be *amusing* to run a production server without reverse DNS. <grr> Sendmail antispam rules don't like that.

Naturally, we hadn't tested that contingency, so rollout (which would otherwise have finished around 2 am) didn't occur until just now.

Phew. It's good to have a project finished and launched and live. Ok, not live. Wait, it's live again. Can I scream now? At least it's not my code that's buggy. :P

Tonight we're headed to the city for Duncan's[1] birthday, so I'll get to see some people I haven't seen for a while.

[1] Works in the Linuxcare labs [2]

[2] When I arrived, I realized it was Duncan's son Duncan who was having the birthday, not the Duncan who works at Linuxcare. Rick had never specified. I had been last year but had remembered it being later in the year.

1 older entry...

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!