Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
72
One of the ways I like to do development is to build something, click around a ton, make tweaks, click around more, more tweaks, more clicks, etc., until I finally consider it done. The clicking around a ton is the important part. If it’s a page transition, that means going back and forth a ton. Click, back button. Click, right-click context menu, “Back”. Click, in-app navigation to go back (if there is one). Click, keyboard shortcut to go back. Over and over and over. You get the idea. It’s kind of a QA tactic in a sense, just click around and try to break stuff. But I like to think of it as being more akin to woodworking. You have a plank of wood and you run it through the belt sander to get all the big, coarse stuff smoothed down. Then you pull out the hand sander, sand a spot, run your hand over it, feel for splinters, sand it some more, over and over until you’re satisfied with the result. With software, the fact is that sometimes there are just too many variables to know and test...
10 months ago

Improve your reading experience

Logged in users get linked directly to articles resulting in a better reading experience. Please login for free, it takes less than 1 minute.

More from Jim Nielsen’s Blog

Measurement and Numbers

Here’s Jony Ive talking to Patrick Collison about measurement and numbers: People generally want to talk about product attributes that you can measure easily with a number…schedule, costs, speed, weight, anything where you can generally agree that six is a bigger number than two He says he used to get mad at how often people around him focused on the numbers of the work over other attributes of the work. But after giving it more thought, he now has a more generous interpretation of why we do this: because we want relate to each other, understand each other, and be inclusive of one another. There are many things we can’t agree on, but it’s likely we can agree that six is bigger than two. And so in this capacity, numbers become a tool for communicating with each other, albeit a kind of least common denominator — e.g. “I don’t agree with you at all, but I can’t argue that 134 is bigger than 87.” This is conducive to a culture where we spend all our time talking about attributes we can easily measure (because then we can easily communicate and work together) and results in a belief that the only things that matter are those which can be measured. People will give lip service to that not being the case, e.g. “We know there are things that can’t be measured that are important.” But the reality ends up being: only that which can be assigned a number gets managed, and that which gets managed is imbued with importance because it is allotted our time, attention, and care. This reminds me of the story of the judgement of King Solomon, an archetypal story found in cultures around the world. Here’s the story as summarized on Wikipedia: Solomon ruled between two women who both claimed to be the mother of a child. Solomon ordered the baby be cut in half, with each woman to receive one half. The first woman accepted the compromise as fair, but the second begged Solomon to give the baby to her rival, preferring the baby to live, even without her. Solomon ordered the baby given to the second woman, as her love was selfless, as opposed to the first woman's selfish disregard for the baby's actual well-being In an attempt to resolve the friction between two individuals, an appeal was made to numbers as an arbiter. We can’t agree on who the mother is, so let’s make it a numbers problem. Reduce the baby to a number and we can agree! But that doesn’t work very well, does it? I think there is a level of existence where measurement and numbers are a sound guide, where two and two make four and two halves make a whole. But, as humans, there is another level of existence where mathematical propositions don’t translate. A baby is not a quantity. A baby is an entity. Take a whole baby and divide it up by a sword and you do not half two halves of a baby. I am not a number. I’m an individual. Indivisible. What does this all have to do with software? Software is for us as humans, as individuals, and because of that I believe there is an aspect of its nature where metrics can’t take you.cIn fact, not only will numbers not guide you, they may actually misguide you. I think Robin Rendle articulated this well in his piece “Trust the vibes”: [numbers] are not representative of human experience or human behavior and can’t tell you anything about beauty or harmony or how to be funny or what to do next and then how to do it. Wisdom is knowing when to use numbers and when to use something else. Email · Mastodon · Bluesky

yesterday 4 votes
Computers Are a Feeling

Exploring diagram.website, I came across The Computer is a Feeling by Tim Hwang and Omar Rizwan: the modern internet exerts a tyranny over our imagination. The internet and its commercial power has sculpted the computer-device. It's become the terrain of flat, uniform, common platforms and protocols, not eccentric, local, idiosyncratic ones. Before computers were connected together, they were primarily personal. Once connected, they became primarily social. The purpose of the computer shifted to become social over personal. The triumph of the internet has also impoverished our sense of computers as a tool for private exploration rather than public expression. The pre-network computer has no utility except as a kind of personal notebook, the post-network computer demotes this to a secondary purpose. Smartphones are indisputably the personal computer. And yet, while being so intimately personal, they’re also the largest distribution of behavior-modification devices the world has ever seen. We all willing carry around in our pockets a device whose content is largely designed to modify our behavior and extract our time and money. Making “computer” mean computer-feelings and not computer-devices shifts the boundaries of what is captured by the word. It removes a great many things – smartphones, language models, “social” “media” – from the domain of the computational. It also welcomes a great many things – notebooks, papercraft, diary, kitchen – back into the domain of the computational. I love the feeling of a personal computer, one whose purpose primarily resides in the domain of the individual and secondarily supports the social. It’s part of what I love about the some of the ideas embedded in local-first, which start from the principle of owning and prioritizing what you do on your computer first and foremost, and then secondarily syncing that to other computers for the use of others. Email · Mastodon · Bluesky

5 days ago 10 votes
Follow Up: An Analysis of YouTube Links From The White House’s “Wire” Website

After publishing my Analysis of Links From The White House’s “Wire” Website, Tina Nguyen, political correspondent at The Verge, reached out with some questions. Her questions made me realize that the numbers in my analysis weren’t quite correct (I wasn’t de-depulicating links across days, so I fixed that problem). More pointedly, she asked about the most popular domain the White House was linking to: YouTube. Specifically, were the links to YouTube 1) independent content creators, 2) the White House itself, or 3) a mix. A great question. I didn’t know the answer but wanted to find out. A little JavaScript code in my spreadsheet and boom, I had all the YouTube links in one place. I couldn’t really discern from the links themselves what I was looking at. A number of them were to the /live/ subpath, meaning I was looking at links to live streaming events. But most of the others were YouTube’s standard /watch?v=:id which leaves the content and channel behind the URL opaque. The only real way to know was to click through to each one. I did a random sampling and found most of the ones I clicked on all went to The White House’s own YouTube channel. I told Tina as much, sent here the data I had, and she reported on it in an article at The Verge. Tina’s question did get me wondering: precisely how many of those links are to the White House’s own YouTube channel vs. other content creators? Once again, writing scripts that process data, talk to APIs, and put it all into 2-dimensional tables in a spreadsheet was super handy. I looked at all the YouTube links, extracted the video ID, then queried the YouTube API for information about the video (like what channel it belongs to). Once I had the script working as expected for a single cell, it was easy to do the spreadsheet thing where you just “drag down” to autocomplete all the other cells with video IDs. The result? From May 8th to July 6th there were 78 links to YouTube from wh.gov/wire, which breaks down as follows: 73 links to videos on the White House’s own YouTube channel 2 links to videos on the channel “Department of Defense” 1 link to a video on the channel “Pod Force One with Miranda Devine” 1 link to a video on the channel “Breitbart News” 1 link to a video that has since been taken down “due to a copyright claim by Sony Music Publishing” (so I’m not sure whose channel that was) Email · Mastodon · Bluesky

a week ago 14 votes
Do You Even Personalize, Bro?

There’s a video on YouTube from “Technology Connections” — who I’ve never heard of or watched until now — called Algorithms are breaking how we think. I learned of this video from Gedeon Maheux of The Iconfactory fame. Speaking in the context of why they made Tapestry, he said the ideas in this video would be their manifesto. So I gave it a watch. Generally speaking, the video asks: Does anyone care to have a self-directed experience online, or with a computer more generally? I'm not sure how infrequently we’re actually deciding for ourselves these days [how we decide what we want to see, watch, and do on the internet] Ironically we spend more time than ever on computing devices, but less time than ever curating our own experiences with them. Which — again ironically — is the inverse of many things in our lives. Generally speaking, the more time we spend with something, the more we invest in making it our own — customizing it to our own idiosyncrasies. But how much time do you spend curating, customizing, and personalizing your digital experience? (If you’re reading this in an RSS reader, high five!) I’m not talking about “I liked that post, or saved that video, so the algorithm is personalizing things for me”. Do you know what to get yourself more of? Do you know where to find it? Do you even ask yourself these questions? “That sounds like too much work” you might say. And you’re right, it is work. As the guy in the video says: I'm one of those weirdos who think the most rewarding things in life take effort Me too. Email · Mastodon · Bluesky

a week ago 12 votes
Setting Element Ordering With HTML Rewriter Using CSS

After shipping my work transforming HTML with Netlify’s edge functions I realized I have a little bug: the order of the icons specified in the URL doesn’t match the order in which they are displayed on screen. Why’s this happening? I have a bunch of links in my HTML document, like this: <icon-list> <a href="/1/">…</a> <a href="/2/">…</a> <a href="/3/">…</a> <!-- 2000+ more --> </icon-list> I use html-rewriter in my edge function to strip out the HTML for icons not specified in the URL. So for a request to: /lookup?id=1&id=2 My HTML will be transformed like so: <icon-list> <!-- Parser keeps these two --> <a href="/1/">…</a> <a href="/2/">…</a> <!-- But removes this one --> <a href="/3/">…</a> </icon-list> Resulting in less HTML over the wire to the client. But what about the order of the IDs in the URL? What if the request is to: /lookup?id=2&id=1 Instead of: /lookup?id=1&id=2 In the source HTML document containing all the icons, they’re marked up in reverse chronological order. But the request for this page may specify a different order for icons in the URL. So how do I rewrite the HTML to match the URL’s ordering? The problem is that html-rewriter doesn’t give me a fully-parsed DOM to work with. I can’t do things like “move this node to the top” or “move this node to position x”. With html-rewriter, you only “see” each element as it streams past. Once it passes by, your chance at modifying it is gone. (It seems that’s just the way these edge function tools are designed to work, keeps them lean and performant and I can’t shoot myself in the foot). So how do I change the icon’s display order to match what’s in the URL if I can’t modify the order of the elements in the HTML? CSS to the rescue! Because my markup is just a bunch of <a> tags inside a custom element and I’m using CSS grid for layout, I can use the order property in CSS! All the IDs are in the URL, and their position as parameters has meaning, so I assign their ordering to each element as it passes by html-rewriter. Here’s some pseudo code: // Get all the IDs in the URL const ids = url.searchParams.getAll("id"); // Select all the icons in the HTML rewriter.on("icon-list a", { element: (element) => { // Get the ID const id = element.getAttribute('id'); // If it's in our list, set it's order // position from the URL if (ids.includes(id)) { const order = ids.indexOf(id); element.setAttribute( "style", `order: ${order}` ); // Otherwise, remove it } else { element.remove(); } }, }); Boom! I didn’t have to change the order in the source HTML document, but I can still get the displaying ordering to match what’s in the URL. I love shifty little workarounds like this! Email · Mastodon · Bluesky

a week ago 12 votes

More in literature

'A New Past'

Robert Conquest writing thirty-one years ago:  “Literature is the expression of our whole past, of our whole context in life and time – and not only ours. Anatole France said that the word pleurer (to cry, to weep) in French is different from the same sort of word in every other language, if only because of its use by Mademoiselle de l’Espinasse or other of the great French amoureuses. Every word carries the history of literature, the feel of the whole country. It follows then with us language is losing its edge for lack of proper education and because of constrictive doctrine. The art world is being penetrated by narrow dogmatism in the same way.”   Take Delmore Schwartz’s sonnet “The Beautiful American Word, Sure.” In the American context, the monosyllable connotes can-do optimism, endorsement, respect, a ready willingness to help. You say, “May I hold the door for you?” and I say, “Sure.” Call it shared etiquette or civic agreeability. It implies a degree of certainty in an uncertain world. “Can you loan me five bucks?” “Sure.” Words are more than sounds or signifiers. Each packs a history, “the feel of the whole country.”   Conquest was participating in a forum, “The Humanities, in Memoriam,” held in April 1994 at Stanford University, with the remarks published in Academic Questions. Other participants included Richard Wilbur, Czesław Miłosz and René Girard. True education was already dissolving. Our ability to communicate with others was eroding. The past had never seemed so remote. For some, it never existed. Dante and Henry James had become extinct species.   Conquest is the great chronicler of Soviet crimes. As a historian, he gave us accounts of a regime that lived by a “narrow dogmatism” that sought to erase the past in the name of creating a “worker’s paradise." In Reflections on a Ravaged Century (2000), Conquest writes:   “All in all, unprecedented terror must seem necessary to ideologically motivated attempts to transform society massively and speedily, against its natural possibilities. The accompanying falsifications took place, and on a barely credible scale, in every sphere. Real facts, real statistics, disappeared into the realm of fantasy. History, including the history of the Communist Party, or rather especially the history of the Communist Party, was rewritten. Unpersons disappeared from the official record. A new past, as well as new present, was imposed on the captive minds of the Soviet population, as was, of course, admitted when truth emerged in the late 1980s.”   Conquest writes of our age in lines from his great polemical poem “Whenever”:   “An age of people who are concerned, or care, With schemes that lead to slaughter everywhere.   “An age of warheads and the KGB, An age of pinheads at the Ph.D.   “When churches pander to advanced regimes Whose victims fill our nightmares with their screams,   Age that ignored the unavenged Ukraine ‘Imperialist Britain’ seething in its brain,   An age of art devised for instant shock an age of aestheticians talking cock.”   Conquest was born on this date, July 15, in 1917 (soon after the July Days when the Bolsheviks were agitating in Petrograd, and three months before the October Revolution) and died in 2015 at age ninety-eight (twenty-four years after the dissolution of the Soviet Union).   [“Whenever” can be found in Conquest’s Collected Poems (ed. Elizabeth Conquest, Waywiser Press, 2020.]

14 hours ago 3 votes
“Parachutes My Love, Could Carry Us Higher” by Barbara Guest

Poems read aloud, beautifully The post “Parachutes My Love, Could Carry Us Higher” by Barbara Guest appeared first on The American Scholar.

15 hours ago 3 votes
Building an operating system for Earth

How we went from an architecture of collapse to a simulation for survival

yesterday 4 votes
'Essays in Flesh and Bone'

One of my friends is reliably cheerful. We should all have friends like him. His emails and telephone calls are never annoyingly cloying, in the sense that they knock me out of whatever self-centered snit I’m nursing. Without ever saying so, he reminds me that I have it pretty good, certainly better than most of the human race. He’s not obnoxious about his gregarious nature and never tries to impose it. That’s part of his charm. His good nature is contagious and has been for more than fifty years, since I first met him. I thought of him while again reading Montaigne’s “On Some Verses of Virgil”: “My judgment keeps me indeed from kicking and grumbling against the discomforts that nature orders me to suffer, but not from feeling them. I, who have no other aim but to live and be merry, would run from one end of the world to the other to seek out one good year of pleasant and cheerful tranquillity. A somber, dull tranquillity is easy enough to find for me, but it puts me to sleep and stupefies me; I am not content with it. If there are any persons, any good company, in country or city, in France or elsewhere, residing or traveling, who like my humors and whose humors I like, they have only to whistle in their palm and I will go furnish them with essays in flesh and bone.” That describes my friend more than me. I think of it as an aspiration, a sort of moral, emotional ideal. For him, it’s a gift. I need perpetual reminding. My favorite among all of Theodore Dalrymple’s thousands of essays and columns remains “Reasons to Be Cheerful,” published in the December 13, 2003, edition of The Spectator: “I’m never bored. I’m appalled, horrified, angered, but never bored. The world appears to me so infinite in its variety that many lifetimes could not exhaust its interest. So long as you can still be surprised, you have something to be thankful for (that is one of the reasons why the false knowingness of street credibility is so destructive of true happiness).”

yesterday 4 votes
Jeanne F. Jalandoni

Weaving past and present together The post Jeanne F. Jalandoni appeared first on The American Scholar.

yesterday 4 votes