I think I said I signed up for Claude Code. I thought you people might be interested in how it has been going.

Years ago I wrote a program that sat on my e-mail server and let me create new e-mail aliases on the fly by sending a specially formatted e-mail to a special address. It would set up the alias and send a success e-mail to the new alias as a demonstration that it worked.

When I put up a second e-mail server, with the two acting as I live pair, this simple little program wasn't going to work anymore. I didn't get around to replacing it because with two servers (that might come and go per the whims of residential internet service) the problem is MUCH more complicated.

So I had Claude Code write the replacement. The problem is still complicated, but this time I just worried about the complications, I had Claude Code do the actual programing.

I started out heavy on the specs, deferring any programming, I wanted it to be correct. After a few days, I was feeling good about how it was going, so I set myself an ambitious goal: Could I make it run correctly the /first/ time? Unit testing, integration testing, etc., is allowed, but only in controlled, repeatable, permutable, and synthetic environments. No trying it against reality until 1.0.0.

Could I do it?

Turns out...

...no.

But I came *close*:

 * 1.0.0: had problem building the .deb file, something about paths
   starting with a "/" or not.
 * 1.0.1: expected the right libc would be just waiting for us on the
   target.
 * 1.0.2: the human couldn't follow installation instructions, and the
   program was silent about saying what went wrong, so we improved the
   silent part.
 * 1.0.3: misunderstood what the parameters would be when Postfix
   handed off the special e-mail to us. This was the only real runtime
   error.
 * 1.0.4: Works! It installed and seems to be running happily in Boston
   and Los Angeles, using mTLS to talk between the two, keeping aliases
   in sync.

The core code of the program itself seems to have been correct back at 1.0.0. The problems were all with poorly defined sharp bits around the edges.

Having 7,500 lines of Rust code (including for install "scripts" in the .deb), and being that close correct the first time. I think that's pretty good. How big a victory can I claim?


-kb, the Kent who had never been part of building a .deb before.
_______________________________________________
Discuss mailing list
[email protected]
https://lists.blu.org/mailman/listinfo/discuss

Reply via email to