My sparse margin note couplet from Jon Bentley's Programming Pearls, also bit of a book review, and a whole ass

In 2015 I bought this book. 7, or 8 years ago. Year one into my software career. This book is canon. I've had little use for its studies of algorithms. # thus far, see below I don't think Bentley would be offended. First sentence: "Computer programming has many faces." I’m sure …

But night software is not like that. It’s not written for the day job. It’s not written to see the light of day at all. It’s not written to be looked at and scrutinized by anybody. It’s intimate and personal, it’s messy and buggy. To take a look is to transgress. Boundary cross. Sex. From a small …

DEI Grieving and AI Skepticism

IYKYK DEI in tech is all but dead. If you’re an outsider, it’s important to understand that employee-led efforts to make workplaces less racist – which began in earnest at the onset of the Obama years – have been steadily blotted out since Trump. The Tech aristocracy has …

Lament for Tafteria: sailing the Apollo's docs

Documentation, naming things. Hard. Let’s see this hardness compound at the intersection of these two phenomena in the real world. I’m casually scanning the Apollo docs, reading up on subscriptions because my wife is writing graphql client code at work. (I had vague memories of how we …

Closure was small, TypeScript is big (thinking w/ Dan Vanderkam)

The dangers of premature optimization are well understood among software engineers who’ve been frustrated when the secondary effects of the efforts end up compounding maintenance cost. (Does this principle play out in other milieu?). What’s perhaps more interesting to ponder is when …

Language ergonomic studies: Possession: Ruby, JavaScript, D/s, Mycology

There exist happy little clouds of coincidence when studying new languages. And not just across the computer ones, mind you! Ruby and Indonesian share a frugal brevity and disinterest in flairs of punctuation when managing possession. Itu bukuku. vs That's my book. And… me = …

Language ergonomic studies: Ruby vs JS one-liners

Coming from JavaScript, I was not expecting Ruby’s Enumerable module to have methods for selecting min and max values from a collection. Especially with an added parameter that lets you “take” a range starting from zero. For comparison, what if we needed the lowest x number of …

Rspec vs js, let vs let

I love comparison pieces like Steve Hicks' article What JavaScript Tests Could Learn From RSpec that juxtapose the syntaxes, rules, shibboleths of two programming languages. Comprehension comes more quickly. Interesting. In describing the perceived advantages of rspec’s let method to declutter …

With Anne-Marie Willis, professor of design theory at the German University in Cairo.

Another world is possible. But what of worlding? How to world? When a Farley’s barista is a strong current; wow the level of shine escaping her mouth. And I loved it. The slightest tickle of maple syrup was a great recommendation! Per usual I sent myself something to read and didn’t cite …

Naur, goodies, 1985 years after Jesus Christ

There are so many goodies in Naur, 1985. Filter, some(): Declares there’s no right way to write software (Further) rebukes the scientific method Calls out lack of empirical study of software methods The programmer as “manager” of computer activity Thank you ceejbot for further …

Naur, the optimist, 1985 years after Jesus Christ

The year is 1985. Certain kinds of optimism abound in programming circles. From Peter Naur’s Programming as Theory Building: "It may be noted that the need for revival of an entirely dead program probably will rarely arise, since it is hardly conceivable that the revival would be assigned to …

Power Moves

During her novel workshop on estate planning, Sarah Deluca of Move Money Shift Power poses the question: Is holding onto control after your death something you want? If part of our life’s work is to strengthen connection, relinquish power, share power, redistribute, does a Trust actually …

Can you jam with the console cowboys in cyberspace?

No. You can’t. Not yet. It’s quite possible that my work in computers today is a last ditch to actualize a childhood fantasy of solving neighborhood crimes with my friends in Brooklyn with the help of a friendly ghost that communicates via word processor. You type, then we type, …

Redis Poem set things set them to expire set them to be exclusive set them to expire, be exclusive (inspired by a chat with mike b)

Well-known ways that JavaScript coerces objects to strings

It’s a proper cliche of commercial computer programs to bind audit reporters alongside code at important relay nexuses. There are a panoply of reasons to extract information this way: producing audit trails for legal compliance, gathering product insights, collecting debug traces for quality …

Language ergonomic studies: Summing ranges and most frequent terms

Pennies per day (by day count) in Clojure: (defn pennyPerDay [numDays] (reduce + (range 1 (+ numDays 1))) ) (pennyPerDay 30) Pennies per day (by day count) in JS: function pennyPerDay(numDays) { return Array(++numDays) .fill(0) .reduce((sum, _, i) = sum + i, 0); } pennyPerDay(30); Most frequent …

Language ergnonomic studies: 52 card deck

Javascript: const cards = () = ['♥','♠','♣','♦'] .map((suite) = (['2','3','4','5','6','7','8','9','10','J','Q','K','A'].map((card) = suite + card))) Clojure: (defn new-deck [] (for [r [\♥ \♠ \♣ \♦] s [:2 :3 :4 :5 :6 :7 :8 :9 :10 :J :Q :K :A]] [r s])) 💻

Zoom Doomed

Not a day goes by when I don’t witness the over signifying of “meeting”. “Meeting” invokes a collective sigh for laborers since a better way seems a fairy tale. As a consequence, possibilities for elevated communication are damaged. But a meeting is so much more: …

Not so byzantine algorithm studies: Using math to deliver your medication

Like many commercial software developers, math plays a more sporadic role in my day-to-day work. That said, I certainly wouldn’t blithely demote knowing math below other techs like programming languages, web frameworks, and principles of software design/architecture; which already sets up a …

The loss of logical purity primacy

Femi Ogunbanjo & Hanne Klintoe, 1999, The Loss of Sexual Innocence Back in February, my entire notion of expertise and how experts make decisions became cracked after listening to episode 169 of the Greater than Code podcast. While the podcast is rolling I’m discovering my socialized …

Byzantine algorithm studies: Using math to reverse an integer

Making code do something requires exactness but that doesn’t necessarily mean programmers will express grammars with any particular concision or ease. Code is an outcome of social construction, background, perhaps aesthetic desire. Toy code problems reveal the apparatus, for sure. If you ask …

What's a bug?

…bugs are interesting and important in themselves: they define the boundary between what is understood and what is not. Hence, they show us where our weaknees are, and provide opportunities for us to learn and grow. Software Development and Reality Construction Ch 5.1: The Denial of Error, …

Recursion is too easy for writing nested menus in UI

Hannah Höch, Für ein Fest gemacht (Made for a Party), 1936 Collage When paired with component-based framework tools and HTML’s unordered lists. Since the rendering is done by the framework, we simply need to progressively stack render calls as we traverse the data. Such brutalist Dada. …

A Recursive Validation Function with User-Defined Exceptions

Every time I use a recursive function for something practical in commercial software my notional machine of it’s behavior is refined. This amounts to a small list of heuristics amassing in my mental pocket: “It’s a function that calls itself.” “You make your list of …

Debugging TS in VSCode and Russel Ackhoff's Problem Treatments

When I’m drifting between jobs – say, during a global pandemic and massive civil rights upheaval – I tease away some time from protest and anti-racist organizing to study programming basics and plunge below the membranes of web frameworks. Of course, the first thing you realize …