by Alan Langford | 2025-04-10 | It's a Code, Code World
SQL was invented as a way to let “managers” (or more broadly, people who are not coders) extract information from databases.
Obviously, this was a good idea. Another good idea would have been to publish an interface that standardized programmatic access to the database. That layer has to exist somewhere, and if an API had been made available that incorporated the same abstractions as SQL does, odds are that it would have caught on just like SQL did. Over the years it would have become a standard, vendors would have competed to get their extensions accepted into the standard, and as object store databases and key-value databases emerged, the standard would be extended to embrace them.
Instead, we have hundreds, probably thousands of “database abstraction” layers that convert a programmer’s requirement into a SQL statement, thus making SQL itself the de-facto API. The query then gets parsed by the database server into something that must closely parallel the calls that went into the abstraction layer.
If SQL had come with a database access API that paralleled the query language, millions of developer hours would have been saved, let alone uncountable machine cycles. And maybe, just maybe, that API would have abstracted the nature of the back end database, so we’d have a single, unified API for interacting with “things that store data”, including filesystems.
What a lost opportunity.
by Alan Langford | 2025-04-10 | Observations on Everything
From Software Developer to Author
[This post was originally published on Substack on April 5, 2025.]Wherein I learn that mastering a language is necessary but not sufficient.
My Introduction to Programming
I caught the programming bug early, at 12 or 13. It was essentially an accident. For a time, we lived near the main York University campus on the Northern edge of Toronto. On weekends I’d ride my bike over there and go exploring through the buildings, sneak into the library and read a book (at the time I was deeply into electronics and desperately trying to understand the physics of semiconductors. Vacuum tubes made sense; introducing impurities into silicon crystals to take advantage of quantum effects was much harder). Weekends on campus were eerily desolate. Most buildings were locked, but every once in a while I’d find a door that had been propped open and slip in. Born to hack, as they say (if they don’t say that, they should).
One day I’d “cracked” the Ross Humanities building. What a goldmine that was! The math department, Senate chambers, so much to explore. Then I came to a hallway and there was unexpected noise. People. Machinery. Curious, I inched closer and peeked into the room that was this anomalous hub of activity. There were students (who were fully developed adults in my young eyes), card punches, a fellow behind a desk who took card decks from students, placed them in a card reader, and then a few minutes later returned the cards along with fan-fold sheets of paper from a noisy line printer. I had to go in.
Naturally, I didn’t know it at the time, but this was the moment that set the course of the rest of my life. All because of that fellow behind the counter, who I still wish I could track down and thank.
There was some ASCII art (actually in this case EBCDIC art) on the wall. I asked the gentleman how that was done, and instead he taught me how to write a loop in WATFIV (Waterloo FORTRAN IV) to print out the numbers from one to ten. That was it, I was hooked. Critically, he also showed me how to appropriate the account numbers of students, so I could continue running programs. Born to hack, they say. This came with a caution that I must only use WATFIV, for students had unlimited access to that, but other languages came at a steep cost. Over the next few years there I was caught more than once and either told to stop using the purloined account or given permission, with the “only WATFIV” admonition. Fortunately, acquiring a new account was trivial, all one had to do is read a number off the card at the top of a deck and then reproduce it.
I had brought my best friend into this scheme and we made some progress in learning the language. I got a copy of the language reference and was figuring out the merits of things like subroutines.
At some point, we got well and truly busted by someone in the computing department. As punishment for our crimes, we were given our own accounts and shown how to run APL, a language that had it’s own unique syntax and a character set featuring Greek characters and over-struck composites like ⍫. This required that we sit at actual interactive terminals (IBM 2741s) with a specialized “typeball” for APL.
More than half a century later, I’m still writing code.
English, the Language
I remember waking up in my crib one day, looking at the wooden blocks on a shelf in my room and realizing that a graphic, the red tent-like one with a crossbar was an A, and that it meant something. I’m guessing I was somewhere between two and a half and three at the time.
My parents were intelligent and well-read. Even though I was going to lose my father less than two years later, I grew up in a house where language was important. At school, my English marks were generally good (despite the oft repeated comment “Alan would do much better if he didn’t spend so much time day-dreaming”, something that these days would have led to an ADD/Autism diagnosis).
I recall complaining to my mother in Grade 2 that going to school was causing me to lose my vocabulary.
Still, my spelling sucked, and I pretty much decided to ignore the lessons on grammar, so that even to this day when someone says “adverb” I have to pause for a moment to remember what that means. Not that I can’t use them adequately, I just can’t name them. That’s an autistic attribute: once I’ve decided I don’t need to know something, reversing that decision is damn tough. My brain locks in to the first decision and does not want to budge.
When I got to first year of university, the administration had decided that high schools were no longer doing an adequate job of teaching English, and that each student must now write a competency test, with under-performers being required to take a remedial course. I was terrified. I had finally gotten to a place where I could study what I wanted, and I feared that my crappy spelling and grammar-resistance would consign me to yet another English course! Aughh!
The results came in and I placed in the eighth decile. Eighth. Now I know why they needed to do the tests. Incomprehensibly, I was spared.
Existential Crises
Somewhere in my late 20’s I was having the sort of “what am I doing with my life” existential crisis that is probably pretty common for people of that age. I sat down with my notebook and did an analysis of my skills, what I enjoyed where I thought I could lead a useful life. By then I had come to appreciate writing code as an arcane art form, one where the art itself is invisible. Only another practitioner who reads your code is capable of appreciating quality work, and even then the best work will never exist for long. Technology moves along rapidly. The most elegant code from five years ago can easily become the legacy crap that’s holding back progress.
What could I do that had more permanence? I could write!
The only problem being that I could write words and be destitute or write code and pay my bills. So I kept writing code, but always working to master English, this Borg of languages, always assimilating from other languages, always evolving. All while entertaining the idea of becoming a writer.
A Random Walk in Search of Authorship
In the early days of the Internet, I connected into USENET and found a community of writers (one I miss to this day). One of the things the group did was serial stories: someone would start a story, another member would add a scene, and then someone else would add another. I had a little fun with this, but… just say that my aesthetic was at odds with most of the group. I have a bit of an affinity for writing like that of Harlan Ellison and the sort of stories one might find in an episode of The Twilight Zone. My contributions to a story could take it to darker places and were often met with comments like “interesting”, with nobody making subsequent contributions.
Then AOL connected to USENET and that was the end of that.
Some time later I started to blog, writing relatively long posts on whichever topic happened to come to mind, much as I will probably be doing here. Successful blogs seem to focus on a subject area, becoming a reliable source of information on the topic they cover, or they follow someone with an interesting life (a nascent form of “influencer”). I can’t do that. I get bored. I’d post on politics, marketing economics, software development, scams, and more, essentially at random. It actually went well in the early days, when I was getting some significant search engine rank. I got a little traffic, and more important, I got comments from actual people. Then the SEO hackers figured out how to game Google, then Google changed the algorithm, and that cycle repeated many times, each time with me not interested in tracking trends. Now I use my original blog to post random rants, insights into software or hacking, not much more.
I do plan to mirror what I post here over there because like everything else that’s headed to an IPO1, I expect Substack to go through multiple iterations of enshittification in search of more revenue, and at some point I want to pull the plug without losing my work.
At the same time I worked to hone my ability to communicate humour through platforms like IRC, Facebook, Twitter, etc.
I figured these things would help me become a better writer. I was right and I was also horribly wrong.
Writing Fiction
Over the years, I’ve accumulated a list of things I want to write about, mostly science fiction based, but some non-genre fiction too. A few years back, as I started to plan moving away from writing code and running my hosting business, I figured it was time to start turning those ideas into books. This only four decades after figuring out it was what I should be doing. Ugh.
I ran into a wall. A big one. The tell is in a sentence above: “ideas into books”, not ideas into stories. So I embarked on learning storytelling. Storytelling. What a vacuum in my skill set! I picked up a couple of online courses, all basically formulaic three-act structure guides. Not that a three act work is a bad thing, but it’s also not enough for a great story. Then Susan Statham, editor of the anthology that contains my only published short story to date, suggested The Story Grid, by Shawn Coyne. With that knowledge, I took my first crack at a novel. While the start was (and is) encouraging, I became less and less happy with it as it ground to an unsatisfying conclusion.
I put the story on the shelf for the better part of a year and did a little work on the next novel. I read The Anatomy of Story by John Truby and used it for a critical assessment of my plot. Although these books have an understandable subtext of “how to write a story that will be the basis of a great screenplay” (because that’s where the real money is), they gave me the insight I needed to go back to the work and revise the plot until I got something that I think will work. At the least it’s enough to get to a “second first draft”.
Revising the work and integrating the new subplot that gives the story necessary breadth has been challenging, and slow going. Far too slow for my liking.
Neural Pathways and Transitioning
Part of the slow progress in picking my novel back up is down to a lack of practice. It’s more than a little frustrating that I can sit down and write an essay like this in one go, or that I can spend several hours working on a complex application, maintaining a vast amount of detail in my head, but I can’t yet do that when writing a novel. I find it difficult to maintain that writing head-space, distractions are harder to filter out, momentum is hard to find.
It’s also frustrating because I’m measuring five decades of coding against a few years of writing. Unrealistically, I want the level of focus I get when writing that I do when I’m coding.
I know this will come with practice, but the frustration is not only slowing progress, but it’s taking some fun out of the process.
New neural pathways can’t come soon enough. I have stories to write!
1 My reverse acronym for IPO is “It’s Pretty-much Over” since a public offering marks the point where the major stakeholder in an enterprise shifts from the users to the shareholders and the focus becomes maximizing return on equity, and not what users want. When Substack IPO’s, get ready to find a new home.
by Alan Langford | 2025-04-08 | Observations on Everything
This was originally published on Substack on April 4, 2025.
Building a Tech Community in Rural Ontario
Our Ontario (Canada) “municipality” spans three small towns and a handful of hamlets, for a total population of around 14,000. Up until the end of last year, I ran a web hosting business, which connected me both to many local businesses and also to other technical people in the area. In mid-2024, I decided to sell my hosting operations, in part to be able to focus on writing, in part to spend more time with in3d.ca (my business centred around 3D printing and related technologies), and in part to spend more time with my family.
I was fortunate enough to be able to transfer my clients to a local web developer, a far better option compared to merging them into one of the big hosting behemoths. Leaving the business also removed the reason to interact with the local community of technical folks, many of whom have become more than just business associates.
Back in February, four of us decided to get together at one of our local microbreweries, to share conversation and pizza. This was rewarding enough that we decided to make it a monthly thing, and to expand the group to other people who were technical and/or worked in the online space. Bad weather forced a cancellation of our March meeting. March also ended with severe weather, an ice storm had most of us without power for a few days, but most of us managed to get out yesterday for meeting number two.
Aside from more great conversation, the meeting resulted in a plan to include some of the other breweries in the area (we’re blessed with four within a 25 minute drive of each other), to set up a mailing list, and to invite others as we discover them.
In terms of personal impact, John Charlton, a web developer who is retiring into photography mentioned that he’s been posting his work here on substack. Aside from touting the features of this platform (which have convinced me to give this a try). He expressed some surprise that it was his writing that garnered the most positive feedback. I’ve read a few of his posts and I can say I’m not surprised. His writing appears effortless, in many cases it’s a small scale travelogue, as he takes you through a day of image-making, along with many excellent photographs. Highly recommended.
Dumb Passwords
For the past few months, I’ve been compiling the “Dumb Password Report”, an analysis of the passwords hackers have been using to try to gain access to my sites. I say the report is terrifying because I see attempts that closely match some of the passwords my hosting customers have tried to use over the years. Last night I prepared the Dumb Password Report for March. Check it out, especially if you think something like “Admin2024@” counts as a good password!
This morning I’m clearing a little backlog of unread emails. Of note today is David Gaughran’s newsletter (davidgaughran.com), who generously offers detailed advice on promoting books through Facebook. By generously, I mean there’s no up-sell, no bait and switch (“for the full story, [buy/subscribe/etc.].”). He does have books on the subject that can be purchased for a reasonable price, but half the time his newsletter doesn’t even mention them. I think his revenue model is landing big launch deals from major publishers, so putting all this information out there is demonstrating his expertise. He must be a thorn in the side for a group of “experts” who are selling “crack the code” workshops for significant fees. Especially since feedback from other authors is that those thousand dollar courses are often so outdated that they do more harm than good. Facebook is nothing if not a moving target.
I used to follow his emails closely, extracting everything I could from each, making notes. This has been moderated by three factors. Most importantly, I’m not sure Facebook is a great place to reach Science Fiction readers. It looks like a decent place for Fantasy, a great place for Romance, self-help, travel and the like. Then there’s their AI targeting push. They have made it extremely difficult for an advertiser to control who sees their ad, and naturally their “AI” biases toward larger audiences, which means more revenue for them, less efficiency for the advertiser. No thanks! And lastly, the change in Meta’s moderation policies. It’s one thing to keep an account there, to have an author page, but it’s quite another to actively support the thing by advertising there. When seeking a balance between my need to get visibility for my work and the desire to not fund a toxic platform, I’m leaning heavily toward spending my money elsewhere.
Yardwork
The arrival of spring and the aforementioned ice storm have left us with much work to do outside the house. There is a daunting list of projects. So much so that I won’t even begin to list them for fear of wanting to give up. On the list for just today is levelling some ground behind our garage, in anticipation of a new firewood storage bin, a trip to the dump to get rid of the debris that was formerly in that space, and tackling the dismantling of an old deck, the next step in clearing out part of the yard. It is a warm, sunny day and I need to get to it.
Thanks for reading this far!
by Alan Langford | 2025-04-05 | Observations on Everything
What follows is my first post on Substack. It’s a somewhat rambling explanation of why I’m on Substack in the first place (TL/DR: the network effect is better, especially now that Google search is useless). Still, I expect Substack to enshittify sooner or later, so it seems that echoing posts here is the best defence against that. I plan to schedule posts to publish here a few days after they publish on Substack, mostly so that search engines can pick it up first and not dilute what little utility they offer.
I’m in the process of writing my first novel. It’s a cyberpunk-inspired hard science fiction story set on Earth in the near future.
I intend to self-publish the book. This carries with it many implications. First and foremost, I’m solely responsible for the quality of the finished product. Not only do I have to craft an interesting story, I need to hire my own developmental and line/copy editors to help me ensure that the work is the best it can be. Then there’s recruiting beta readers: people I’m close enough to to trust with an unfinished manuscript, but distant enough that I’ll get honest feedback. There’s the mechanical aspects, formatting/typesetting the book, securing ISBNs, commissioning cover art, organizing the front and back matter.
And finally the part most writers seem to dread: marketing and promotion. Advanced Reader Copies sent to a select list, both as a final check to make sure there are as few errors as possible, and hopefully as a source of positive reviews, a set of social media posts, emails to my lengthy list of newsletter subscribers, paid advertising, and much more. Hypothetically leading to ultimate success (for a highly individual definition of success ranging from “I finished a book” to “I earn a good living from my work”).
Except I don’t have a lengthy list of newsletter subscribers or a massive social media following. I do have a minuscule mailing list, roughly two orders of magnitude smaller than Kevin Kelley’s semi-valid One Thousand True Fans that a creator needs to sustain their work. Not good.
Not that I haven’t started all the things that are supposed to yield a dedicated fan base. I have. I just haven’t continued them. I’ve got a handful of sites, three blogs, two of which rarely see updates (and the third just documents releases of software I maintain, that’s easy but boring). Even if I was updating regularly, the pathetic state of web search probably means I’d be posting into a void anyway.
I digress. In terms of writing, I there is just one place where I should be doing all the things to build a following, my alanlangford.com site. I should be posting there about progress on my work, offering samples, maybe discussing some aspects of the main characters. This should be easy. The thing is, I’m still not sure. I’m not sure about everything. What if I share part of a chapter now, and by the time I get through two to five more draft/revision cycles, that chapter is entirely cut? Have I been dishonest? Will people be disappointed?
I just don’t feel comfortable writing about this stuff until I’m certain that things I say are going to be part of the book are actually in the finished work. Anything else feels dishonest.
And yet I need to say something, somewhere, or have to settle for a number of true fans that I can count on one hand. That’s not an acceptable outcome either.
As a result, here I am on Substack, capitulating to the promise of benefiting from some network effect, akin to the community of fellow writers I’ve connected with on Mastodon. During the sign-up process, I was asked to provide a single sentence describing what this blog is about, and my best answer is “I don’t know yet.” My suspicion is that if I’m going to post regularly, this is going to be something akin to early “web logs”, some kind of open book journal that reflects the scattered, disjointed activities and interests that pass for my life.
This is in some ways a terrifying prospect. Much like many creative folks, I’d prefer that my fans came after my work, rather than before. But that’s not the way the world works. I was going to write “works these days,” but I have a feeling it was always this way; only the medium has changed.
Buckle up. I don’t know how weird this is going to get.
Recent Comments