20 Dec 2002 MichaelCrawford   » (Master)

Updated: Embedded Systems Programming

I've been up all night working on a really whacky bug that cropped up yesterday. After backing out some recent changes I decided that I must have inadvertently introduced a bug in some working code while I was working on some unrelated code. My guess was the I typed something into a source file accidentally and it happened to compile but caused trouble.

So I decided that rather than track it down, I would restore a backup from before my latest work, make sure that code worked, and then merge in my latest changes.

But that didn't work.

I went to earlier and earlier backups, becoming increasingly dismayed and to be honest rather panicked.

At some point I tried out a known good binary that had been a test build I delivered to my client that I knew worked, that my client said worked for him too. And it had the same bug.

That's when I began to suspect I had an electrical bug.

After some examination I discovered that a ribbon cable wasn't plugged in quite right, its connection was at a slight angle. It looked like it should have been OK though. But I popped the cable off and plugged it back in again.

Bug fixed!

It is now 2 a.m. saturday morning and I'm now ready to start productive work for the day after spending all day trying to fix a hardware bug in my source code!

Live and learn, I guess.

Back to our regularly scheduled program...

Well, I'm pretty close to completing the embedded systems project I've been working on the last couple months. It's not quite done yet, and one really significant challenge remains, but it should be done in a week or two.

That means I'm going to need to get new work.

I have been in discussions with someone else for another embedded project that I would be quite stoked to work on. The guy has told me several times I am his top candidate to do the work, but it is not yet a sure thing. If I do the work it will start in January.

I was pleased just now to get a call from someone who saw my antry at MacTalent and was very interested to have me do a six month contract. But the rate he suggested was pretty dismal, and I'd have to live away from home for six months.

I told him what I would rather get for a rate, and he said he'd see what he could do (I think he is a headhunter). I also said that that rate would only apply if I could work out of my own office, to work away I would also need my extra living expenses covered.

I told him I'd maintained my own office for almost five years and had been very successful at it. It seemed like it hadn't occurred to them that someone could do the work at a distance. He actually seemed pretty open to it. So it's a possibility.

This embedded project I've been working on, I think it has been the most difficult programming project I have worked on in my entire life. I have had bigger jobs that took longer, but nothing that required the kind of effort and mental strain that this has. But now I know a lot more about how to do embedded work than I used to, and I feel much more comfortable now working with hardware.

Ironically, one reason I proposed it to my client was that I thought it would be really easy to do. I thought I could have a shippable product in no time at all. That hasn't been the way it turned it, but fortunately my client has maintained his enthusiasm for the product.

Hopefully I won't have to keep the secret of what my product is for much longer. The plan is for my client to demonstrate it at his booth at the upcoming MacWorld Expo in San Francisco.

Sometimes my wife expresses great distress at how tough things have been for us, and one way I try to reassure her is to tell her that things are tough for everyone. We are doing better than most - at least we are both working. I see posts from time to time here and elsewhere from people who are out of work, some who have been out of work for a year.

Latest blog entries     Older blog 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!