Models that Code

Stop me if you’ve heard this before – ChatGPT, like DALL-E2 mere months earlier, is a game changer that will fundamentally alter creative knowledge work in ways we are only beginning to understand. After years of hype, moments of celebrated success, and more than a few notable disappointments (full self driving, though progress continues!), the AI revolution is upon us.

Yes and no. Like millions of others, I have spent time with ChatGPT and marveled at its output. Its coding ability is astonishing, at times indistinguishable from magic. Name a language, a short problem description, and well formed source is mere seconds away. Ask a question, propose a structure and format, and highly readable and logically consistent prose emerges instantaneously. This is operating at an entirely different level than intellisense, stackoverflow, and Google. Technical interviews in the way they have evolved the past couple decades will need to be re-thought and reimplemented. Productivity for the average developer ought to increase significantly once we see the first and second generation of tools built atop this model arrive.

Yet despite the fantastical achievement GPT-3 and ChatGPT represents, I don’t believe software engineering as a discipline is in danger. It is about to enter a new era. Humans must drive the process, validate and correct the automated work, and weave together individual parts into a cohesive whole. There will be tools that examine large bodies of source code and provide recommendations to improve them, or extend them given high level functional descriptions. Those tools will need oversight and intelligent application. No doubt we will see regulation in this space too, both from an intellectual property and safety/security standpoint, that will guarantee significant demand for personal skill and effort.

The future, and perhaps not even the far future, is where things get more interesting and more existentially impactful. Scientists at OpenAI are already working on the next generation of this technology, which is rumored to be in the trillions of parameters, a figure that starts to approach the number of synapses in the human brain. While experts say even that may be a couple orders of magnitude short of the actual sophistication of our minds, it’s not far off, and it’s incredible to imagine what such a system will be able to accomplish.

Getting Older

Aging is tough. The upside is you acquire the perspective of experience, which can make it a little easier to take the changes in stride. Still, the cumulative insults, some big, most of the rest little, are challenges that continually test our ability to adapt. It’s no small miracle that we are remarkably adept at rolling with the punches.

What I find interesting is that there’s no definitive guide to getting older. There are thousands upon thousands of personal memoirs on the topic, and thousands more on the various afflictions that can and often do crop up. Yet as far as I know there isn’t an authoritative “here’s what to expect when you’re expecting (to hit 40/50/60/70)”.

I suppose that’s because while the broad strokes are similar, everyone experiences aging differently. Any guide would be wrong for most people most of the time. Our genes and our lifestyles combine to produce a wide range of outcomes, from perennial age defying celebrities to hard knock souls not yet 30. We are left to walk our own paths, finding similar bumps, forks, and detours along the way.

A more curious question is, if such a guide could exist, would we benefit? For several years it’s been possible to have your DNA sequenced and receive, along with a precise ancestral profile, a list of health potentialities and susceptibilities. They don’t come with numbers, much less dates, so the information is just that – informational. Yet in some cases the data sparks action – preventative treatments, say, for cancer, based on better known biomarkers. In others, such as an elevated risk of dementia, I can imagine it only sparks worry.

The question of benefit is essentially the question of quality of life. Can we improve the time we have now as we’re aging, and thus improve our happiness and well being? On the happiness front, research suggests the answer is more or less no, that we follow a curve that bottoms out in our late 40s and rebounds in our mid 60s. Why this is so is a fascinating topic of debate. While there are many compelling straightforward explanations, I believe it is also in part back to repeated exposure to change. We experience, we accept, we respond, and we move forward.

Back to the point, though, if we had an accurate guide to getting older, the changes it might motivate us to make are mostly the ones we should make anyway, without knowing what’s around the corner.

Signs of Life

Some 6 years ago I effectively rode off into the digital publishing sunset, starting with my blog and eventually extending to social media. Not that I was in any way prolific before – cobbling together a post once a month was a real achievement – but it’s eerie to see such a gap from present to the past. I’m reminded of the continuing web legacy of friends and family who’ve passed away, their words, images and videos still clear, vibrant, and available for all to see. Thanks to the Internet Archive many of their pages will live much longer, perhaps for future generations to explore in what I imagine will be a fascinating field of internet archeology.

Mine was an unintentional departure. Life grew complicated, as it so often does, leaving little time for literary focus. Days and months stretched to years. Jobs changed, homes changed, home states changed, and a pandemic swept the globe. Every once in a while I would pop back and bemoan that it was far past time to say something, anything. Then the tea kettle would whistle, calling me away to the exigency of the moment.

Which brings us to today. Still alive, still busy, but with renewed motivation to contribute. Let the new journey begin.

Built to Suit

Yesterday I spotted an article complaining about the trend in web (and presumably mobile) applications towards universality. As a service or platform becomes popular, it strives to be all things to all people, succeeding at neither. This is starkly opposed to the traditional Unix philosophy of well-crafted, single purpose tools brought together in an environment that encourages chains of execution.

I love the simplicity and power of “do one thing well”. It’s traditionally at the heart of good software design, usually expressed in ways like the single responsibility principle. Shades of it may be found at the hardware level with implementations such as RISC. It’s even the latest rage in server-side development – see the cottage industry now springing up around microservices.

Unfortunately the idea loses oxygen in the atmosphere of proprietary applications and services, owing largely to the lack of interoperability. Getting data into and out of the platforms behind them is at best inconsistent and at worst impossible. The author identifies this as well, citing IFTTT as a recent ray of light, but neglecting to cover the now-defunct Yahoo Pipes, which attempted and ultimately failed to address the situation head on. Now we have companies like Segment building successful businesses negotiating the cryptic and often gated information exchanges around the larger platforms.

While we can make the utopian argument that it is squarely in a company’s interest to set its data free and its interfaces open, we rarely find any willing to give up that control. Unix utilities don’t answer to shareholders. The imperative to grow dictates that businesses expand the boundaries of their walled gardens to find the next audience when their core features cap out.

Until that dynamic changes, we’ll continuing living in the “ecosystem” world where the quality of service inevitably tends towards mediocrity.

On Cycling in Spain

Sadly, before July of this year, I’d never been to continental Europe. I’ve thought about it for ages, planned a few different trips, and even come within a summer Olympics blackout of making it to Scandinavia (which happily resulted in an incredible visit to Iceland). Something needed to give.

Earlier this year some friends mentioned a tour they were planning to take near Girona, Spain. It’s an area I’ve often read about in cycling diaries and documentaries. Pros of all kinds live and train there, building their fitness for the classics and grand tours.

A few companies organize expeditions in the region – in exchange for suffering 8-10 hours on your bike every day, you experience incomparable views, frequent interactions with the locals, and full ride support. Ours featured a home base, in the form of a 19th century farmhouse on a spectacular private estate. Not to be outdone, the managing team also brought an amazing chef, who prepared many of our meals, all locally sourced.

I should say that in general, there’s something special about a long trip on a bike. It’s as close as you can come to fully experiencing a place while traveling through it – the sights, sounds, smells, and tastes are constant and vivid. Except when you’re screaming downhill or concentrating on an intense paceline, it’s a continual parade for the senses.

From a cyclist’s point of view, Spain was delightful. The roads are better maintained than most of those in the Bay Area, traffic is light outside the cities, and the terrain is as diverse as it is beautiful. Each ride gave us something different, from rolling hills to the Mediterranean coast, from sweeping cols in the Pyrenees to blustery flats ready made for sprinting. The one constant was the heat. July in Spain is toasty, especially in the afternoons. Thankfully most towns have public fountains and we didn’t crush the pace as temperatures soared.

Even coming from Northern California, which features some of the best cycling in the world, I left Spain impressed. It was a fine way to start what I imagine will be many European adventures. Kudos to Studio Velo for a wonderful tour.