whatever is currently certified at Journeyer level.

Name: Stephen White
Member since: 2000-07-02 14:34:23
Last Login: N/A

FOAF RDF Share This


I'm a recovering coder, on the way back from burn-out land.


Articles Posted by whatever

Recent blog entries by whatever

Syndication: RSS 2.0

A good summary of why accessibility for disabled people is important in all software.



Work sucks.

raph; have a look at King Crimson for a detailed insider view of the music industry. It is well worth reading Robert Fripp's essays on the topic as he's thought about these issues in great depth for the last 20 or so years.

King Crimson make their music available in a way that only the Internet could have made possible. They have a great many CDs of live shows available so fans can enjoy a wider range than would be available from a CD shop.

Their music happens to be great too!

In a fit of momentary enthusiasm for a project name, I figured I'd call it a little silver bullet, like silverbullette or silver pellet. I dashed off to inww and registered the domain name.

After a few "shiny poo" comments, the next morning I realised that I really didn't like the domain name. inww hadn't yet charged my Visa, so I wrote them an email asking for the domain registration to be changed to "srced.org".

They informed me that domain names couldn't be changed and that no refunds were possible and that I would have to go register a new domain name. It pisses me off that it's not possible to change a bit of data, because of procedural inefficiency. They didn't think of the customer asking for something like that, hence they have no procedure in place for it.

If they tried to put that procedure into place, the existing system would probably barf as it had no requirement to handle that kind of action. This poor interface leads to the one-way points, points where the user decides what they want and then are stuck with the consequences.

Before computers, it was possible to pull a piece of paper back from the out-tray, take a piece of paper from someone else's in-tray, or scribble notes in the margins when the form didn't cover something. Now, none of this is possible anymore. When I write an email and hit send, it's posted. I can't cancel the send, I can't get it back out of their email, I can't quickly scribble a correction onto the mail, etc.

Having no "undo" sounds so trivial, and yet I've just wasted $120 coz someone else's system doesn't have it. To avoid this kind of thing in future, I have to incorporate that one-way problem in someone else's system into my decision making process. My life is consequently that fraction more complex. Sure, it's my fault for buying the first stupid name in the first place, but wouldn't it be nice if they were capable of accomodating my request?

Computers are having a more direct impact on society than I imagined possible. No "undo" in a program equals no "undo" on a sales request equals poorer service. I'm used to affecting other people's lives with my computing skills, but I'm not used to having my life screwed up by deficiencies in other people's computer systems.

Programmers are used to be being the programmers and other people are the users. Now society is being computerised, programmers are users just as much as anyone else.

Good systems architecting and programming practices is as vital, if not more so, than engineering or architecture. A building falling apart kills a few people. Bad computer systems grind down the whole of society in a morass of ever-increasing difficulties and friction. The computer failures that have led to rocket launches failing are only a glimpse of the money being wasted by inefficient computer processes.

Put a good user interface on your systems and improve the quality of your own life!

Just watched raph type up a transliteration of the Gnome announcement. It was truly amazing watching a historically significant event happening on my screen. I can say I saw the moment when Unix moved to the desktop.

Even more amazingly, this was being typed and commented on by the same people who made this event possible. And I realised that I am also a part of this.

And so is everyone.

GNU really is an effective way to vote with your feet.

csed/cgrep was coming along quite well, until the last stages where it was taking far too much effort to convert the earlier stages of lexical parsings into more complicated structures like tables of variable types. There were problems with how to accomodate incremental changes in the source code being analysed and how to work out which caches should be updated, which buffers needed to be flushed, etc.

I hammered away at this for weeks, trying to come up with an insight into the problem that would simplify the accelerating tide of exceptions that were going into the parser with the addition of every new syntax element. Was there some elegant recursive algorithm I could use? Was it better to visualise cache elements as a list of states, a tree of states, or a nested structure of states? For every algorithm I could think of that satisfied the most common case, the remaining list of exceptions still accelerated exponentially with every new facility I added.

I just couldn't figure out how to add all the features I wanted, without reaching impossible levels of complicated code! I downloaded as many parsers as I could, and examined them. It appeared that it was a problem that hadn't been solved as they were all huge, complicated, and hairy as well. There were some very nice small ones (eg, Lua), but I really want my parser to comprehend full ANSI C with GNU extensions.

I was starting to think that perhaps I had bitten off more than I could chew, even though the goal is pretty simple - embed sed and grep inside a parser, with the ability to handle on the fly code changes. How could something so simple sounding be such a problem?

Since I wasn't getting anywhere with my attempts to save the code, I decided to throw it all away and start again. Without the blinkers imposed by the objective of "avoid rewriting! save the code!", I had this incredible few hours where I suddenly realised exactly what I was doing wrong and where I went wrong.

In my quest to keep things simple, I had over-simplified the core of my design to the point where it wasn't sufficient for the task. The rest of the program was difficult to write because it was trying to make up for a core deficit in the design.

By making the core design more complicated, the rest of the program was simplified so dramatically that the final amount of code I expect to write has been halved.

The learning process sucks when I just want to accomplish a task!

On another topic... thanks to darkewolf for certifying me! It's always nice to receive positive feedback. :)

5 older entries...


whatever certified others as follows:

  • whatever certified jdub as Apprentice
  • whatever certified akihabara as Journeyer
  • whatever certified duncanm as Journeyer
  • whatever certified LotR as Journeyer
  • whatever certified rakholh as Journeyer
  • whatever certified rtmfd as Journeyer
  • whatever certified Ankh as Master
  • whatever certified vicious as Master
  • whatever certified wichert as Master
  • whatever certified quinlan as Journeyer
  • whatever certified seth as Apprentice
  • whatever certified glenn as Apprentice
  • whatever certified Dacta as Apprentice
  • whatever certified avi as Apprentice
  • whatever certified thrase as Apprentice

Others have certified whatever as follows:

  • djs certified whatever as Apprentice
  • rakholh certified whatever as Apprentice
  • duncanm certified whatever as Journeyer
  • rtmfd certified whatever as Apprentice
  • darkewolf certified whatever as Journeyer
  • jdub certified whatever as Apprentice
  • glenn certified whatever as Master
  • jLoki certified whatever as Apprentice
  • avi certified whatever as Apprentice

[ Certification disabled because you're not logged in. ]

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!

Share this page