Briefs
Sunday, September 1st, 2024
Factoring the constraint into its own method allows us to give it an intention-revealing name that makes the constraint explicit in our design. It is now a named thing we can discuss.
Eric Evans, Domain-Driven Design
Thursday, August 29th, 2024
Versatility, simplicity, and explanatory power come from a model that is truly in tune with the domain.
Eric Evans, Domain-Driven Design
Friday, July 26th, 2024
It is important to constrain relationships as much as possible.
Eric Evans, Domain-Driven Design
Monday, February 12th, 2024
For the past few months I’ve retreated from working on a software product to, well, for a month after October 7th I didn’t seem to get much work done, then I was working on software systems for clients. Now dipping my toe back into RSSDeck, the biggest edifice I’ve ever created, I’m inspired by this short piece by Jason Fried, “To Make”:
I’ve consulted. I’ve done client work. I’ve advised. I’ve served on boards. I’ve invested. I’ve written books. I’ve spoken on the circuit. I’ve blogged for years. I have to say, I’ve found no greater professional joy than working with a tight group of people to ship and support our own products.
Wednesday, June 7th, 2023
At Why Svelte?, the homepage states “CSS is component-scoped by default” — the “by default” being the compliment vice pays to virtue. Because at the Github discussion on this issue (Ability to disable css scope across entire application #4764), Svelte Core Member/Maintainer @Conduitry, 2nd in commits only to founder Rich Harris, writes:
In general, using global CSS everywhere is something we want to steer people away from, and doesn’t feel like something we want to natively make easy or tacitly endorse.
The “C” in “CSS” stands for “cascading” yet the purpose of scoping CSS in components is to neuter that cascade. For the poster of this issue, Svelte’s stance was a dealbreaker, as it would be for me too. Scoped CSS components are the wussy option, which is fine and in many cases perhaps more viable, but the wussy option they should remain.
Wednesday, April 19th, 2023
In this tutorial by Martin Fowler for coding with ChatGPT, he interviews Xu Hao, who first tells the AI what tech stack he’s using, what the project is intended to be, and to generate not code but a list of tasks required to build it. He then tweaks this task list. And only then, working from the task list, do they begin generating code.
My take away from this discussion was that using chain of thought and generated knowledge prompting approaches can be a significantly useful tool for programming. In particular it shows that to use LLMs well, we need to learn how to construct prompts to get the best results. This experience suggests that it’s useful to interact with the LLM like a junior partner, starting them with architectural guidelines, asking them to show their reasoning, and tweaking their outputs as we go.
Sunday, April 2nd, 2023
“The AI does not love you, nor does it hate you, and you are made of atoms it can use for something else.” — Eliezer Yudkowsky in Time
Tuesday, March 28th, 2023
What a mindblowing, humbling project: infinitemac.org — every Mac system since January 24th, 1984, in the browser!
Thursday, March 2nd, 2023
It’s over too quickly, these two great alliterative-entitled Americans in conversation, Alan Alda and Kevin Kelly on AA’s Clear+Vivid podcast. Alda has such a gracious voice, and Kelly’s meets it. Kelly introduces some novel standpoints, earning his “world’s most interesting man” Tim Ferris monicker. The impetus and much of the conversation revolves around AI chatbots.
Tuesday, October 4th, 2022
What a fabulous — and fabulously-presented — list of free Mac utilities recommended by Snazzy Labs.
Thursday, September 22nd, 2022
A good ol’ rant by everyone against Microsoft in this Hacker News thread, this time about Teams. When o when will this monstrosity of a corporation die already. “Developer-friendly”; may the GitHub guys get what they deserve for selling out to the Borg.
Friday, August 26th, 2022
Great interview at Berkeley with alum and local Oakland boy Craig Federighi [Dec 2019].
Sunday, July 3rd, 2022
While working on things that aren’t prestigious doesn’t guarantee you’re on the right track, it at least guarantees you’re not on the most common type of wrong one.
Paul Graham, What I Worked On
Tuesday, April 5th, 2022
Testing entire BPMN process paths — a Camunda blog article. I guess I’m being hopelessly naive but it seems to me BPMN could be used to test software logic; software doesn’t just power processes, software itself is comprised of processes, ie, the transformations that happen to variables.
Tuesday, January 18th, 2022
Computer, enhance! Jeff Dean, Senior Fellow and SVP, presents Google Research’s R&D accomplishments of the year — this company, wow.
Generative models for images … have made significant strides over the last few years. For example, recent models have demonstrated the ability to … “fill in” a low-resolution image to create a natural-looking high-resolution counterpart (“computer, enhance!”)…
Thursday, January 13th, 2022
In Firefox, when CSS’s scroll-snap is turned on, scrolling is broken. Yet the only mention of the problem that I can find is this open bug report at Bugzilla, “Trackpad scrolling gets stuck on containers with ‘scroll-snap-type: x mandatory’” featuring an unambiguous video of the problem. Given that both the Web and laptops are rather popular these days, I’d have thought this problem would have garnered much more attention. For me it has been a showstopper, finally causing me to make Chrome my default browser.
Saturday, October 30th, 2021
A nice and curt summary of the emotions a programmer has.
Saturday, September 11th, 2021
Coders: The Making of a New Tribe and the Remaking of the World
Clive Thompson
I enjoyed Clive Thompson’s Wired piece “Hundreds of Ways to Get S#!+ Done—and We Still Don’t” wherein he considers task management software as a kind of religious devotion:
To-do lists are, in the American imagination, a curiously moral type of software. Nobody opens Google Docs or PowerPoint thinking “This will make me a better person.” But with to-do apps, that ambition is front and center.
This bringing of theology and things of the spirit into the seemingly more mundane world of computing reminded me delightedly of Umberto Eco’s whimsical comparison of Mac vs Windows as Catholicism vs Protestantism.
So I was hopeful for Thompson’s book Coders, especially after reading the fun first Amazon Kindle sample chapter, and because I am increasingly embracing the identity of coder, given that it’s what I’ve ended up doing almost all my 21/2-decade professional life, and want to know just how much I fit the profile.
Well. I’ve come across writers before whose magazine articles impress but pall at book length. Mr Thompson’s interviewees so often “sigh” as they are clunkily pulled out of the aether to buttress his current argument, and I found particularly jarring that a provocative thought by one fellow — Dijastra, no less — is quoted using “he hissed” — though by then the mechanics of the book were transparent enough to predict the desultory “he has a point”-esque follow-up.
In thematic tandem with the book’s stale style, it degenerates into a long squawk of racial social injustice obsession. What pops into mind is the searing tedium of hearing Whitney Houston’s “I Will Always Love You” at every gas station across America.
So come rain or shine, this one’s going out on the street, and tech chronicler Clive Thompson will need to re-earn his welcome.
Sunday, August 1st, 2021
A great topic, covered well: in Wired, Clive Thompson surveys the problem with productivity software:
To-do lists are, in the American imagination, a curiously moral type of software. Nobody opens Google Docs or PowerPoint thinking “This will make me a better person.” But with to-do apps, that ambition is front and center.
Friday, July 30th, 2021
Bryan Braun recreated classic Mac screensavers in CSS only! It’s cool that Warp only uses 9 different stars to create that star field. [via Hacker News]
Tuesday, June 29th, 2021
Chaos Monkeys: Inside the Silicon Valley Money Machine
Antonio Garcia Martinez
As author Antonio García Martínez battles away as an eager newcomer at Facebook, his account jolts one awake to the somewhat forgotten power of literature: we are reminded that what will survive these times will likely not be the mammoth trillion dollar company but instead this book.
And shame on Apple, caving to those who campaigned to have Martinez fired recently from his new job there because of some gross and silly yet heartfelt generalization in the book of San Francisco womenfolk; such philistine snowflakes do little more than buttress his point, as well as forcing our author to remain up on these more commanding if perhaps less remunerative cultural heights.
Wednesday, May 12th, 2021
Every scientific or technological revolution tears down yet another anthropocentric conceit.
Venkatesh Rao, Superhistory, Not Superintelligence
Thursday, February 18th, 2021
Andy Bell outlines new CSS functionality in Smashing Magazine.
Thursday, November 26th, 2020
3D model of Fallingwater by sighty for sale, including a portion of Bear Run, which interestingly gets cuts off even before the bridge that obviously crosses it, making this a model not of the house but of a model of it.
Boy, there are other models too. Here’s an interactive Fallingwater by archimore. It has the interior, even the raised rocks around the fireplace! (Though missing the grand swinging water heater.) The non-Wright dining-table chairs that Mrs Kaufman brought. The portrait of Edgar on the wall! Yet no walkway up to the Guesthouse, and no Guesthouse.
And another Fallingwater by Myles Zhang which does have the Gueshouse and ramp, even the steps into the swimming pool. And a very long stretch of Bear Run. It does have the round red water holer, but no furniture.
Would be good to merge these magnificent efforts to make a more detailed, canonical model.
Wednesday, November 18th, 2020
“Indie developers need protection from monopolistic and anti-competitive practices from larger players in the market through strong government regulation, not a discount on their first $1m in sales.” “Apple’s 15% Deflection Tactic” by John Luxford.
Sunday, November 8th, 2020
On NPM becoming part of Microsoft, by Bryant Jimin Son. I feel stalked in my work life by Microsoft, which I strive to avoid ever since their horrible behavior re IE6. First Skype, then Atom, now NPM. Fortunately, there are alternatives.
Friday, October 9th, 2020
Hacking Apple by Sam Curry. Fascinating and amazing.
Thursday, August 20th, 2020
The iPhone matters more than anything … it is the foundation of modern life.
Ben Johnson, “Apple, Epic, and the App Store”
Wednesday, August 5th, 2020
In wake of Phil Schiller’s ascent, Cult of Mac lists all the Apple Fellows.
Tuesday, July 21st, 2020
The essence of programming is to build new things.
Paul Graham, “You Weren’t Meant to Have a Boss”
Sunday, July 5th, 2020
Poolside.FM, the lovely Mac throwback to 1997.
Sunday, May 17th, 2020
The Making of Prince of Persia
Jordan Mechner
Video game maker Jordan Mechner wrote a rich diary of his life in the mid-1980s. This book covers the creation his second hit game, Prince of Persia, so we gain access of unique immediacy to the heroic tale of producing a universe-dent-making hit.
I wanted this book, which I discovered via Tyler Cowen’s most recent What I’ve been reading, as inspiration during a small lull in morale as I work on a digital product of my own.
Thirty years on there is some poignancy in that this early period of Mencher’s life was the peak: after graduating Yale, already dreamily successful, he shuttles between San Francisco and Hollywood creating video games and pushing screenplays, a digital Orson Welles (in his later game The Last Express, Mechner combines these passions, relying on cinema to produce an impressive commercial failure).
That said, perhaps it is no failure at all that one can point to the creative peak of a life — Mechner’s arguably was working within the memory constraints of the Apple II to create a foe, Shadow Man, based on the hero character. Here I’m reminded of Ken Kocienda’s not dissimilar Eureka moment when up against a constraint, that of using a dictionary to help create the iPhone keyboard.
Perhaps it would have been a better book if he had fleshed out the journal with an italicized retrospective written now, but count me a late-arrival Jordan Mechner fan. And don’t get the Kindle edition lacking the illustrations; I think I’m gonna need to buy the actual book.
Thursday, May 14th, 2020
The comfort of having an organization is largely illusory; it still comes down to one programmer in the end.
Jordan Mechner, The Making of Prince of Persia
Wednesday, March 11th, 2020
Doug Tarr weighs in on learning to code. I didn’t know my old roommate could write so well. Doug, write more.
Sunday, March 1st, 2020
Becoming Steve Jobs: The Evolution of an Reckless Upstart into a Visionary Leader
Brent Schlener and Rick Tetzell
Although the simple thesis gets repeated interminably, nonetheless it’s a nice one: that Steve Jobs’s greatness stems muchly from his constant becoming, constant learning, constant trying to overcome himself (hence the title, which can be read as descriptive).
It’s great to be in his company, which you feel you are, as one of the authors was himself repeatedly so for decades.
One thing new to me was Pixar’s role in maturing Jobs; we don’t often read about who and what shaped the shaper.
Sunday, February 16th, 2020
Great thread: What do software engineers who work at a large scale understand that other developers don’t? at /r/programming.
Wednesday, December 18th, 2019
Matt Layman’s handy Failed SaaS Postmortem — too much tech tinkering; I need to take heed. Plus it’s great he’s getting right back in the saddle.
Friday, December 6th, 2019
Friday, November 1st, 2019
A deep dive into the newness of the iPhone 11 camera at the Halide blog.
Friday, October 25th, 2019
Gadget: 1. Survey [PDF] is a cool history of software milestones “from Smalltalk to Minecraft” Chaim Gingold (2017). When you see these things collected you realize how much progress they collectively represent. I wonder what we’d have been doing otherwise…
Sunday, September 22nd, 2019
To loop through an object in JavaScript, convert it to an array, Zell Liew explains.
Wednesday, September 18th, 2019
For anyone (like me) working on doing the same, see Wenbin Fang’s article “The boring technology behind a one-person Internet company”. Of course the technologies used will differ, but the frankness here is refreshing, the contour of what’s required enlightening.
Tuesday, September 17th, 2019
“Please just leave me alone when I cross streets.” Richard Stallman’s terms of service for speaking engagements come to light [via The Register] surrounding his forced terminations. A couple of observations: for 66 his skin looks amazingly moist and smooth, like a healthy 25-year-old’s, which perhaps says something about his lifestyle and choices. And his exactingness regarding these terms is both ridiculous and admirable; few things are more important than knowing who we are and what we want and expressing these clearly.
Monday, September 9th, 2019
Philosophy of Computer Science, an ongoing text by William J. Rapaport for an eponymous course at SUNY, Buffalo.
Monday, August 5th, 2019
Eric Elliott the JavaScript guru lays out his vision of the technical roles of a software company.
Saturday, June 8th, 2019
Interesting /r/webdev thread: Does real web dev exist? Like the stuff they write all those articles about? The consensus seems to be that the further along the spectrum from web site to web app, the more testing and whatnot becomes worthwhile.
Nice frank piece by Monica Lent, a software engineer in Berlin, about mistakenly believing one is a senior developer.
Friday, May 10th, 2019
First episode of Views on Vue that I’ve found worthwhile, on things people don’t like about Vue, including a discussion on language and translation.
Thursday, October 25th, 2018
Note to self: Eric Elliott’s article entitled 12 Books Every JavaScript Developer Should Read.