Have you noticed that comprehension arrives more quickly when reading comparison pieces that juxtapose the syntaxes, rules, and shibboleths of two programming languages. Steve Hicks' article What JavaScript Tests Could Learn From RSpec is one such example.
My preference when writing tests is to keep re-assigning and re-using variables to a minimum. Localize them as close to the assertions as possible. Beware of cross-contamination. Pollination. Sexual interops.
Recreating a lazy-evaluated let-style block in JS, Hicks performs some clever scoping gymnastics which makes me nervous.
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 the source so I’ve been having that weird kind of drifty, but tethered, Pong ball experience. Was it mentioned by someone in a Paper in Systems discussion?
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 distillations.
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 new programmers without at least some knowledge of the theory had by the original team." The infamous “shit mouse” bug that I pushed to production in 2018 – which subsequently became an iconic team joke with its own concomitant laptop sticker swag – was the direct result of software abandoned in the wake of absconding team members.
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 violate the moves we’ve been making at the speed of small “t” trust? Individualistic posthumous scheming is not the invention of communities, but of corrupted powerfuls.
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, Ghostwriter.
The way she caresses the monitor in this scene: longingly, tenderly, expectant. The arrogant gush of buzzwords. Unalloyed after school cool.
The other day I played the dérive along Valencia after a salad with a colossal heft of blue cheese. I found my way to Dog Eared Books. I always end up there. However, this time I grazed through atypical sections; like the politically charged cabinet below the register with the latest thunder for white supremacy; the sale rack; a quick glance for sci-fi, but nothing more this time.
Under philosophy I found Han’s Burnout Society. These pocket-sized books are almost irresistible for the busy post-modern man. Give me all the deep thoughts in the space between meetings. Be my vade mecum while I traverse the network.
Well, apropos.
Over the weekend Taylor whisked me off to the Botanical Gardens to see the magnolia blooms. It was in the context of that blooming that I unfolded Han’s slice of philosophy under the redwood grove canopy. The tree bath reworking my nervous system.
So very apropos as I’m diving into the book and having a meta moment reflecting on what Han calls an “excess positivity,” a “neuronal power,” “violence,” “Same.” (Baudrillard is invited.) A new category of oppression in our post immunological world that has supplanted the viral. Is this my contemporary affliction; why I get the Sunday Scaries? Loss of boredom, as Han goes on to claim. The human is animal again, too busy multitasking to survive the onslaught of information, activity, to find steady ground, to manage and also smile through the (filthy, positive) filter…
This strange new world where “Big Data never forgets anything at all” – from Psychopolitics: Neoliberalism and the New Technologies of Power, then from Mackenzie Wark’s Verso piece; more on that later).
The “outsourcing of memory to technics” (Wark again).
Big Data’s promise forcing us into a new relationship with anything. Be like Big Data. Be in the frenetic stream.
And I’m only like 15 pages in.
Taylor comes over and interrupts my Hanish stupor. She recounts a moment just before where a middle-aged couple snapping photos of [which bird?] with telephoto lenses were acting very nonplus. They said (some version of): “it’s not remarkable, he’s always here.” Were they bored? Rather, were they bored enough? What was this small-talk play-acting wrenched out? Why were they so disappointed by this encounter? I’m imagining Donna Haraway sighing at the missed opportunity here to mix, to mingle, to get messy across species. Not shocked, though, like she felt toward Derrida’s failure:
> Derrida failed a simple obligation of companion species; he did not become curious about what the cat might actually be doing, feeling, thinking, or perhaps making available to him in looking back at him that morning…
>
> What happened that morning was, to me, shocking because of what know this philosopher can do. Incurious, he missed a possible invitation, a possible introduction to other-worlding.
He couldn’t cross the Great Divide between culture (human) and nature (animals, etc…). Did our photographers similarly fail? Does this couple’s mastery of photogenic capture leave them also captured, immobile, behind the (reaching, never arriving) lens? The speed of their automatic shutters; the hyperattention, the multitudes of frames they produce, threaded into the positivity stream; it has exhausted them. Are their semi-automatic shutters warring survivalism of cacophony to the birds' own musicircus. Riffing (rifling along): capture without contemplation. Does this couple ever breathe into a contemplation of the being at the other end of the lens? Dropping into a contemplation that might lead to an inter-mingling. An invitation.
The irony, too, of the lush saturation of plants. Was that weighing on them, as well? “He’s always there.”
But maybe…fuck Han? I so appreciate you Mackenzie Wark. I can’t remember what I typed, but Google led me to Wark’s piece on Han from 2019: Byung-Chul Han: Shanzhai Theory. The Burnout Society is not explicitly mentioned. In fact, the piece seems to read through Psychopolitics: Neoliberalism and the New Technologies of Power despite the title referencing another of Han’s books. I’m not sure, the notes counting/referencing is a bit confusing.
I’m glad I found the article. Han’s terseness, density, and improbable accessibility, carries a seductive authority. Wark sets up their opposition to Han at the start of the piece, before juicier bits later:
> The success and limitation of Han’s writing is that it universalizes the experiences of people like me, what I call the hacker class: people whose job is making new information.
Ah, maybe Han’s collecting up of “human beings” and this time, age, period of history or whatever is actually a simplistic contour around a privileged class. This hacker class, who are sneakily conscripted into this contemporary capitalist stream to produce new information. What’s more, Wark finds in Han a nostalgia for Foucauldian disciplinary society. Or more, a discreet Sovereignty to control, constrain, restrain, silence speech. Hard boundaries (feels masculine). Geographical. Not a confusing dilution of “social media shitstorms,” “flattened hierarchies.” Wark goes on to level a barb at Han for parading into media theory too clumsily. He makes amateur mistakes, psyched himself out by his own fears of Big Data and loss of solid ground:
> Like many amateurs who stray into media theory, Han mistakes surface appearances for forms. Effects are taken as given and routed through permutations on concepts from the philosophical canon. It is simply not the case that social media is a world without intermediaries or unilateral forms of communication and control, as Alex Galloway demonstrated long ago with his study of protocol. Its networks are distributed but protocol can still be non-reciprocal.
>
Right, like is it all a messy soup? And from an optimistic POV: What about the very real power flip in social media spaces? Influence achieved without financial power. What about Black Twitter’s new protocol?
Redis Poem
set things
set them to expire
set them to be exclusive
set them to expire, be exclusive
One typical practice of your everyday software developer building commercial computer programs is to add logs alongside code at important relay nexuses – where the code does valuable things. Logs are typically composed of data and a message that meaningfully describe a moment in the system’s operation during it’s lifetime. There are a handful of reasons to surface information this way: producing audit trails for legal compliance, gathering product insights, performance profiling, or collecting debug traces for quality monitoring.
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 terms in JS:
const termList = ['term1', 'term2', 'term3', 'term3']; function mostFrequentTerms(arr) { return arr.reduce((result, curr) => { result[curr] = ++result[curr] || 1 return result; }, {}) } mostFrequentTerms(termList); Most frequent terms in a list with Clojure:
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:
> Calling the coordinated exchange of messages or moderated access to shared material (like a blackboard) a conference or meeting seems to neglect a factor that is rather important in meetings.
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 false dichotomy, anyway.
Math presents a beautiful core proposition to software developers. Through its powers of abstracting and reducing real-world dynamics into expressable, repeatable, sequential logic – which we can be lifted easily into our favorite coding grammars – math can be the companion dynamo we need for achieving levels of faithful verisimilitude for real world complexities (Keep It Savvy Stupid).
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 construction of expert – like we pump and grow some kind of muscled query power of an expanding brain-database over time. And that combined with a trained analytical rigor gained through extensive tutelage, study, and practice.
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 me to reverse an integer I’ll build a world of arrays – because I like them. Directionality makes me think of traversal, therefore arrays. I also recall the reverse() convenience immediately.
> …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, Joseph A Goguen
The rush to fix bugs to recoup customer satisfaction is absolutely necessary when writing for capital. I just worry that without the proper retrospection we won’t actually increase our understanding of the software, and therefore the recidivism rate of error will remain constant; or likely increase in the tail wind of growing complexity and entropy.
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.
function List({ items }) { return items.map((item) => ( {item.name} {item.children && } )); }
Each time I implement a recursive function when writing practicalities for commercial software, my notional machine of it’s behavior is refined. A small list of heuristics continues to amass in memory:
“It’s a function that calls itself.” “You make your list of tasks first then start from the last and work your way back up” or “It’s like unpacking a box with other, smaller boxes, with other smaller boxes, with other…and then only start looking at the boxes from the smallest to the largest, one at a time” (🎩👌 Aditya Bhargava’s grokking algorithms) “It’s good for building up a list or value, kind of like reduce” “It can be less code but less performant.
During a global pandemic and massive civil rights upheaval, as I drift between jobs I tease away some time from protest and anti-racist organizing to study programming basics. I plunge below the membranes of web frameworks. The first thing you notice when sitting down to write some code is the brutal lack of the full-featured dev environment you had on the job.
I had a serious moment of angst this morning about whether I could achieve debugging for TypeScript files in VSCode within a reasonable amount of time – that is, an amount of time that wouldn’t deplete all my creative energy before I could even write a single little char.
Lydia Hallie’s list of JS interview questions are extensive and probably one of the most comprehensive resources out there. The laundry list of questions runs the gamut from basic to esoteric language features, each of which progress you though various themes in what seem like meaningful sequences. It appears some modicum of pedagogy is involved, which therefore avoids that oft vacancy of substance typical of a listicle.
Yesterday I was running through a block of questions with an ex-colleague and we noticed that some of the answers were a bit inchoate.