Error Correction in the Digital Age
I am constantly struck by how much digital technologies are changing our lives, our work, and our art within our own lifetimes. Despite having grown up in this digital age and having made a living building software, I feel both a sense of wonder at what all we are able to do now, that we couldn’t even think of a hundred years ago, and a sneaking sense of disquiet at the accelerating pace of digitization.
Recently I noticed something interesting about the impact of digital technologies in a few of the domains that I am actively involved in — programming, writing, sketching, and cooking. While, each of these activities have been affected to varying degrees by digitization, it is one common aspect of all of them that I was especially struck with — error correction.
Errors are part of everything we do — even things that we do well. Over time, with practice, we get better and better at doing things. However, perfection is not just being error free, but also being able to handle errors better as they arise. Digital technologies allow us to fix errors with varying results in various domains. In this piece, I will explore how they have changed (or not changed) how I deal with errors in my areas of interest.
I started programming BASIC games on a Sinclair ZX Spectrum in the 8th grade, graduated to writing accounting software in the early 90s, and then enterprise security software for most of the new millennia before ending up with mobile apps hosted in the cloud.
Two things about software systems continue to amaze me:
- How code constrained within a strict grammar transforms into software systems that are functional at a human level.
- And, how it is possible to rewrite (refactor) the code for a software system, maybe even in a completely different language, without effecting any real change in its functionality.
It is the nature of code to be buggy, imperfect— especially the first versions of any software system. That’s what happens when humans meet computers. It is also the nature of software system to be always changing and improving. Error correction is a integral aspect of it — without error correction it cannot improve and it will eventually die. Which is why we have elaborate tools (IDEs, Profilers, Static Analyzers, Leak Detectors) and multiple processes for managing code, defects, and releases. Despite all of these, code debugging is still more of an art than a science. Peer code reviews help catch the obvious bugs, but the insidious ones still need the singular obsession of a Sherlock-like detective.
Error correction in code for me is a 100% digital only experience. It is near impossible to do it without breakpoints, variable inspectors, code profiling or integrated documentation.
Writing fiction is hard — as they all say. Writing fiction is also messy. The first drafts are the worst. First drafts are hell. There are days when I think all that I have written is crap — days when the words on the computer are just black marks on the screen. Thankfully, there are better days too.
I first started writing back in school with pen and paper. Error correction was tough. If I wrote something wrong, I had to start all over again. For a while, I tried to learn touch typing on an ancient typewriter. But that didn’t help much with error correction — errors still meant starting over.
Once I got my hands on a computer, writing became a breeze. The backspace/delete button liberated me. I didn’t need to retype entire pages anymore. Now I could change text as fast as my mind thought of new things. Error correction was implicit in the typing process.
However, editing the text became harder. The ease with which text can be modified on a computer led to incomplete thoughts and overflowing sentences. Holding onto the entirety of the work in my mind became more difficult, as I could see only a few paragraphs at a time.
As I have started writing fiction more the last year or so, I figured out a system that works for me. Early drafts are all on the computer — backspace and copy/paste rules. But when I get to reviewing and editing my work, I print it out on paper, using large mono spaced fonts with double spaces between the lines, and I edit by pencil as I read it out aloud. These changes then go back into the computer for another iteration. Over multiple iterations, the work starts to take a coherent shape.
A computer is essential to my writing process now — I can live without fancy formatting and even copy/paste, but I can’t think of living without digital error correction.
Sketching is something I have picked back up recently after almost two decades. It took a while to get back into the mode again, and I am still a far way off from being good at it.
Despite having digital tools like the Wacom tablet or the Paper app on iOS, I find that I still do most of my sketching on paper. I start with a pencil on a sketch book when I am mapping out an idea. Then I move to a full size drawing pad to flesh out the sketch in detail, again in pencil. It gets very dirty and messy — I use the eraser a lot. When I have a rough approximation of what the sketch will look like, I start inking it in. Once I start with ink, there is no more error correction. I can fix things sometimes with minor variations but sometimes things just go bad. At the end of the inking session, I end up with a dirty first draft with lots of errors. But this is okay as this is still a draft.
The next stage is working on the final sketch (or one of the candidates). This is done completely in ink, using the earlier draft as a guide over a Lightbox. In this draft, I have to be careful to not mess up. Sketching is an imprecise art form, so it is okay to have imperfections (in my style even desirable), but too many errors and it is back to the start again.
I know I can create these sketches digitally and use the undo feature if I mess up — but somehow the feel of the pen on paper still gives me a much more satisfying experience.
Cooking is my preferred stress reducer. It is an unusual performance art — in that, unlike say a song or dance, you cannot have even a tenth of the experience in a recording — you have to be in the kitchen to share in the smell and the taste of the process.
Cooking focuses my mind in the immediate creative process and allows me to shut out the rest of the world. I am usually into improvisation — making something out of the ingredients available in the kitchen. But sometimes, I like to follow recipes — especially for food that I have liked and haven’t made before.
The first time with a recipe, I try to follow it as closely as I can. Minor variations and substitutions are okay, but if I go for any major deviation it usually morphs what’s being cooked into something completely different and unintended.
Once I get to know the recipe, I have fun with variations — switching meats or vegetables, trying different spices, or using different settings for cooking time or temperature. Sometimes the variations are accidental — inaccurate quantities or mixed up steps. Some pan out, some don’t.
There is rarely any error correction in cooking. Too much salt in your curry, you may try adding potatoes — good luck! Added sugar instead of salt — tough luck!
I have focused mostly on one aspect of digitization, error correction, to see how it has changed how I work/play.
I can’t even imagine writing or debugging code on paper anymore. The last time I wrote code by hand was during a job interview ages ago, and the last time I printed out code to review manually was even prior to that.
While I may take notes in a paper notebook when I am stuck without a digital device, I prefer writing any document of a significant size on a computer. And when I share a document (like this one), I prefer to use a collaborative software interface (like Medium) to better manage edits, comments, and revisions.
I can envision a future where I am comfortable enough with a digital tablet to draw without using ink and paper. Maybe at some point I will learn to appreciate line error correction as much as I do word error correction, but I expect that is quite a way off — I still prefer the feel of pen on paper.
What I struggle to imagine is a time when cooking will be digitally enhanced. Yes, 3D printing is all the rage, and “Chicken…good!” may yet happen. But I am not sure the change will provide me the same creative pleasure as mixing aromatic spices in a hot wok.
I am no Luddite. I make a living with digital technologies and I sit in front of a computer for a large part of the working day. I am probably further along on the “embracing change” versus “resisting change” slider than most people of my generation. I know that newer forms of work and art will continue to crop up as we invent new technologies (e.g. Virtual Reality Movies). And, we will continue to disrupt centuries old techniques with digital innovation. However, I am concerned about the speed of change. Without being unnecessarily nostalgic, I hope that the pace of digitization allows sufficient time for us to retain the best of what we had in the past, along with what we will have in the future.