Core Python

When I describe my programming background these days, I say that I code “primarily in Python, JavaScript, Clojure, C… and Zig!” I put Python first in that list for good reason.

This is a post about the core Python language, but also the ways in which Python is evolving its single-core and multi-core CPU performance.

Python has been my go-to programming tool for a long time. When I started to build out my last startup and shipped the production core of its product, Python 2.7 had just stabilized, creating an excellent “core language.” This is a language that I truly respected, as evidenced by my style guide. And, as I discussed in my Python technical book review round-up, this core language was best described by David Beazley in the first half of his Python Essential Reference book, which was also turned into an excellent standalone volume (which includes Python 3.x coverage), Python Distilled.

Many, many useful open source projects, companies, and projects were built atop that Python 2.7 core foundation of a language. Its community truly flourished.

Continue reading Core Python

Putting Your Media on a Diet

When you type an address into your web browser and are brought to a web server, a lot of decentralized magic happens within the span of a few seconds. Through the web, we have an infinite media available to us.

It as though you have a beautifully-maintained bookshelf and run your finger along the spines of the books, and then pluck out the one you want. But the sci-fi part, which is more science than fiction today, is that the bookshelf has millions of virtual entries and the information you want is delivered to you instantaneously. Once this virtual book is delivered (once a website is loaded), it can be frequently refreshed with real-time updates, and it exists in a form that can be navigated, searched, read, spoken, heard, shared, saved-for-later, or even automatically analyzed and summarized.

This is a lot of power for each individual to wield.

That is a lot of text to choose from, with which you can train your brain.

And that is even if you put aside the world of paid digital books via Amazon’s empire of Kindle. By the way, this Amazon empire need not cost money to you in the US, as you can often gain (adequate) free access to it via your local library on the Libby app.

So, one thing is for sure: there are a lot of words to choose from when deciding what to read. But this also means that an individual faces a paradox of choice when they click into that blank address bar in their browser.

Will they, like so many others, ignore the address bar and the browser altogether? That is, despite having the “infinite bookshelf” at their fingertips, will they, instead, hit an app shortcut to one of the major passive content delivery platforms, like Facebook, YouTube, Instagram, or TikTok?

Recent research from Pew suggests that major passive-consumption mobile apps are used by a majority of Americans, and, what’s more, that usage of the most video-forward of these (YouTube, Instagram, and TikTok) is nearly universal among people 18-29 years old. As for teens, 9 out of 10 of them are online (presumably via smartphones) every single day, and nearly 5 out of 10 are online “almost constantly.” This comes from a 2023 report.

If you read between the lines of these two reports, what comes into a focus is a culture of individuals addicted to video streaming devices in their pocket, filling inevitable moments of boredom with hastily- and cheaply-produced sights and sounds, rather than retreating to the world of written words. And, unsurprisingly, people are reading less.

Continue reading Putting Your Media on a Diet

The Blog Chill

The film The Big Chill came out a bit before I was born, over 40 years ago, in 1983. The plot focuses on a group of middle-aged friends, perhaps in their late 30s and early 40s, who had attended the University of Michigan – Ann Arbor together. They reunite after 15 years, brought together by the tragedy and the funeral of their friend, Alex, who, we learn in the film’s opening, died by suicide.

The “big chill” of the title can be interpreted a few different ways. The numbing loss of the innocence of youth. The cold realization of the quotidian nature of adulthood. Or, the wintry blast of mortality, which comes as a shock to this group of old college friends, who had become used to a sort of humdrum comfortable existence, pursuing families and careers, and then being suddenly shaken out of it by the sad news of their old friend Alex’s passing.

There is a historical and generational aspect to the film, too. The college years, for this group, were the 1960s. A time of great idealism in the US. The counter-culture was the culture. They weren’t supposed to end up like their parents. But then they found themselves in the 1980s, yuppies of exactly the sort they feared they’d become.

One of the interesting aspects of watching this film today is that, being set in the 1980s, it lacks altogether the technopoly we see in our current lives in the 2020s. There are no smartphones nor social media, to be sure, but, what’s more, there is no computing or internet either.

Continue reading The Blog Chill

Over-Organization (1958)

This section of Brave New World Revisited, a long essay by Aldous Huxley reflecting on his own novel many years after its publication, can be found on Project Gutenberg Canada; if you enjoy it, I recommend you purchase Brave New World & Brave New World Revisited, which includes the original novel (1932) and Huxley’s essay (1958), along with a wonderful foreword by Christopher Hitchens (2003), published by Harper Collins here.

As a computer programmer and software entrepreneur, I like to make order from chaos. But, as Huxley argues quite well in this section entitled “Over-Organization” in his essay, a little too much order may be at odds with a very human freedom.

Though written over sixty years ago, and though reflecting on a future technocratic world state originally envisaged in the author’s mind nearly a century ago, this excerpt feels unbelievably modern when read from a 2020s vantage point. And yet, Huxley was writing during the heyday of mid-20th-century industrialization, but right before the beginning of the information age and the rise of pervasive computing. As a result, he couldn’t foresee the new forms of “over-organization” we’d face after the digitization of everything.

In Huxley’s fiction, he predicted that the systematization of daily life would eventually arise from a combination of state power and genetic technology. But in his non-fiction analysis of modern times, he recognized that it would most rapidly arise from corporate power and a general advancement of industrial technology. This we have witnessed in the decades since his passing.

We who work in software and who see a certain beauty in large systems and the organizational models they enable should, perhaps, take a moment to reflect on humanity’s deepest fact: that each human being is unique, and we are only truly happy when there is individual freedom of thought and action.

The rest of this post is Huxley in his own words. Please enjoy Huxley’s thoughts on “over-organization” below.

Continue reading Over-Organization (1958)

Managing software teams: the definitive reading list

Frederick Brooks once wrote:

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination.

In his classic essay, “No Silver Bullet”, he also wrote about software’s “essential” complexity:

The complexity of software is an essential property […] Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence. For three centuries, mathematics and the physical sciences made great strides by constructing simplified models of complex phenomena, deriving properties from the models, and verifying those properties by experiment. This paradigm worked because the complexities ignored in the models were not the essential properties of the phenomena. It does not work when the complexities are the essence.

It’s therefore no surprise that once a team develops expertise in a technical domain and starts to evolve a product from that foundation, there is still a huge heap of complexity left over.

This is made worse on bigger problems where more people are involved, thanks to Brooks’s Law. In addition to the software’s essential complexity, you also need to navigate the built-in complexity of human communication, and the associated combinatorial explosion of information pathways on growing teams.

Modern software management practices have thus evolved two distinct skillsets for navigating the problems of team coordination around complex software delivery. These two areas are product management and software engineering management.

Product management centers around areas like market positioning, product strategy, and customer-focused iterative development. The product manager, working closely with the engineers, determines the “what”, aligns the team around the “why”, and acts as a liaison to users and the wider market.

Software engineering management focuses on the practice of coordinating teams of programmers in the delivery of high-quality shipped software, often leveraging programming languages, tools, frameworks, cloud services, and lots of open source technology. Pithily, this is “the how”, as well as the art of making informed engineering tradeoffs, e.g. as relates to time-to-market, performance, quality, and cost.

This post will cover some of my favorite reading materials spanning product management and software engineering management, as disciplines. A preview of some of the titles is here:

I have curated these resources carefully, and I have recommended them at various times to my own product managers and my own software engineering managers over the years. I hope you find this a useful starting point for your own study.

Continue reading Managing software teams: the definitive reading list

The New Novel

Salon.com has an interesting article about the craft of writing. It’s from 2010, but still interesting.

… far more money can be made out of people who want to write novels than out of people who want to read them. And an astonishing number of individuals who want to do the former will confess to never doing the latter. “People would come up to me at parties,” author Ann Bauer recently told me, “and say, ‘I’ve been thinking of writing a book. Tell me what you think of this …’ And I’d (eventually) divert the conversation by asking what they read … Now, the ‘What do you read?’ question is inevitably answered, ‘Oh, I don’t have time to read. I’m just concentrating on my writing.’”

When I was younger, I thought there was no greater ambition than becoming the writer of the next great novel. However, this article made me reflect on my own media consumption habits, and what a small audience I would affect even if I did write such a work.

I think similarly about painting and sculpture and classical music. These expressive forms are certainly demanding of skill, but who is the audience?

It would be unfair to consider television programming or film the new novel. Certainly, these media have the capacity to change people’s ideas and have a wide impact. But, even with the technology and cost barriers breaking down on film production, it lacks the visceral nature of writing. Anyone with an idea and a pen (or laptop) can pursue writing, but you have to be a technician of sorts to make a film.

By this disqualification, software — though increasingly recognized as an art form — is definitely not it, either. So, what is?

“Facile anti-intellectualism is the order of the day”

A book review by Thomas Frank, on a biography of John Kenneth Galbraith.

What astonishes the contemporary reader is, first of all, that a genuine, independent intellectual like Galbraith was permitted to serve in government, let alone become the confidant of presidents. Facile anti-intellectualism is the order of the day now, as even Democrats race to embrace the free-market logic of the Chicagoans. The ”New Industrial State” that the great liberal economist described in 1967 is now Public Enemy No. 1 of financiers and rebel C.E.O.’s determined to, as Tom Peters put it in 1992, blast ”the violent winds of the marketplace into every nook and cranny in the firm.”

Yet reading Parker’s comprehensive account of the 20th century’s economic battles, I can’t help thinking that this ought to be Galbraith’s moment. An old-school scoffer like Galbraith would remind us that all our elected officials have done with their heady incantations of the virtues of privatizing Social Security and the glories of deregulation is resurrect the superstitions of our orthodox ancestors, and trade in our affluent society for a faith-based 19th-century model in which the affluence accrues only to the top.

Or, as I sometimes like to put it, “Economics is too important to be left to economists.” Galbraith would have agreed.

Seemed particularly relevant to me as I have just finished reading books by Galbraith and Frank in the last few months.

Free and DRM-Free E-Books

I got a Nokia 770 for Christmas, to replace my aging and dying Palm V. I’ll probably write more about the 770 and the Palm V later, but suffice it to say that I got the Palm V when it came out, approximately 10 years ago, and have used it ever since. My main uses for it were AvantGo and Vindigo, although in the past I did get other uses out of it as well. I plan to keep the Palm around mainly for the Vindigo features, which I haven’t seen done better anywhere else. (No book on the planet has as much information about NYC as my 8MB Palm V with Vindigo loaded on it.)

I basically got the 770 because of all the great stuff I heard on Teleread and other sites about its use as a portable e-book reader. Indeed, that has been the most pleasant experience on the device. With the Evince PDF viewer and with FBReader (an Open Source ebook reader for a lot of different formats, including HTML, Plucker, and zTxt), I am able to read a ton of stuff while I’m in my commute, and all on a beautiful 800×480 screen that fits in the palm of my hand. (Yes, finally I get to read with serif, anti-aliased fonts!)

I have been overwhelmed with how many free e-books you can find online, thanks in part to efforts by groups like Creative Commons. Here are some good ones:

Feel free to post more in comments!