Why does it seem like a radical idea now-a-days to say: when I search for something the first result should be the thing that most closely matches what I searched for.
Here’s something I think we should all agree upon: when a willing speaker wants to say something to a willing listener, our technology should be designed to make a best effort to deliver the speaker’s message to the person who asked to get it.
I hope this is self-evidently true. When you dial a phone number, the phone company’s job is to connect you to that number, not to someone else. When you call Tony’s Pizza, you expect to be connected to Tony’s Pizza — not to Domino’s, not even if Domino’s is willing to pay for the privilege…
If you follow someone on social media, then the things that person says should show up in your timeline.
That is not a radical proposition, but it is also not the case today. Facebook, Twitter, TikTok, YouTube and other dominant social media platforms treat the list of people we follow as suggestions, not commands .
This is why I love RSS: if I subscribe to something, it will show up in my feed. End of story.
one of Brian Eno’s Oblique Strategies has it: “Be the first person to not do something that no one else has ever thought of not doing before.”
It is insidious the way that truth and falsity are so thoroughly and authoritatively mixed together.
Large language models are not databases. They are glommers-together-of-bits-that don’t always belong together.
Like most people, my head is full of thoughts and stuff I have opinions on. I conduct enthusiastic debates in my head, and internally anyway, I’m always super convincing, right?
But when I sit down to write a blog post about something — that’s when I have to figure out what I really think, and what I really know, about a subject.
To feed my blogging, I am constantly reading books, magazine articles, academic papers, and a sprawling network of blogs…Much as writing catalyzes thinking, reading catalyzes writing; the vast majority of ideas I get for blog posts come from reading
Love that line: "Writing catalyzes thinking, reading catalyzes writing.” Next time somebody asks, “How do you blog so much or know what to write about?” One answer will be: “I read a lot.” Who doesn’t have thoughts after reading?! Write them down next time.
Article: “TWITTER(RIFIC) AND ACCESSIBILITY”
I’ll repeat this until I’m hoarse, but the apps that best support accessibility features for disabled people invariably are also the most usable for everyone.
In truth, there is no secure software supply-chain: we are only as strong as the weakest among us and too often, those weak links in the chain are already broken, left to rot, or given up to those with nefarious purposes.
Whenever I bring up this topic, someone always asks about money. Oh, money, life’s truest satisfaction!
…but at some point, it becomes unreasonable to ask just a handful of people to hold up the integrity, security, and viability of your companies entire product stack.
…what we’re asking some open source maintainers to do is to plan, build, and coordinate the foundations for an entire world.
Interesting how passion projects are about quality and a sense of intrinsic satisfaction that comes from that kind of slow, artful approach to building software. Throwing money at the issue doesn’t work because people throw money at issues that are sticky and difficult and nobody wants to do. That’s why they pay you to do it.
Future of software might just be like any other item: it’s born, it lives, and it dies. The circle of life:
the maintainers of the Gorilla framework did the right thing: they decommissioned a widely used project that was at risk of rotting from the inside out. And instead of let it live in disarray or potentially fall into the hands of bad actors, it is simply gone. Its link on the chain of software has been purposefully broken to force anyone using it to choose a better, and hopefully, more secure option.
I do believe that open source software is entitled to a lifecycle — a beginning, a middle, and an end — and that no project is required to live on forever. That may not make everyone happy, but such is life.
Article: “AI's Jurassic Park moment”
Speaking about AI tools like chatGPT, Dall-E, and Lensa:
It is no exaggeration to say that systems like these pose a real and imminent threat to the fabric of society.
- these systems are inherently unreliable, frequently making errors of both reasoning and fact…
- they can easily be automated to generate misinformation at unprecedented scale.
- they cost almost nothing to operate, and so they are on a path to reducing the cost of generating disinformation to zero
I feel like part old-guy-yelling-at-cloud, but I am genuinely concerned about tools like this. Given how poorly we as society have used the tech we’ve created thus far, I’m not sure we’ll do much better with the next round of advancements.
Nation-states and other bad actors…are likely to use large language models as a new class of [weapon]…For them, the…unreliabilities of large language models are not an obstacle, but a virtue…
[they aim to create a] fog of misinformation [that] focuses on volume, and on creating uncertainty…They are aiming to create a world in which we are unable to know what we can trust; with these new tools, they might succeed.
seeing requires patience, requires letting the sight of something come to you, requires not reacting before you’ve seen fully. And looking more closely I think he has a very good point: which is that we live in a world full of distractions but short on breaks. The time between activities is consumed by other activities—the scrolling, swiping, tapping of managing a never-ending stream of notifications, of things coming at us that need doing. All that stuff means moments of absolutely nothing—of a gap, of an interval, of a beautiful absence—are themselves absent, missing, abolished.
Not gonna lie: I almost got interrupted while reading this short thing because I was filling a few minutes in between time catching up on my RSS.
if a high fidelity mockup has just been put together without planning and circular communication between developers, designers, project managers and clients/stakeholders then there will be massive oversights
Spot on in my experience. If you don’t build together, you get:
complicated interaction[s] that would be simplified with content strategy or content that follows no logical order, but looks nice, visually
But the larger point his one about process: a deliberate, slower process for “building designs” gives him precious time to actually think about what he’s doing.
it takes me ages to even get to the point of writing code and that’s been the case for a lot of years now. The benefit to being like this though is I get to put out fires before they even start. If I’m racing along trying to write code as fast as possible, I’m gonna start plenty of fires instead.
It does feel, sometimes, like we’ve made everything available at our fingertips so quickly, that we don't take the time to actually stop and think about what we’re doing. It’s just GO! GO DEVELOPER GO!
Article: “The End of Writing”
The world is full of noise because we are not in control of our information technology but the other way around…Writing is rewriting and rewriting until the thought becomes clear. AI may help here and there pointing you to unclear elements, but if AI writes for you, you will stop thinking.
AI will have eaten all our hobbies long before it fired us from our job
AI acts and feels like cancer. It grows uncontrolled out of our organic knowledge, and it grows where that organic knowledge already has developed some carcinogenic tissue.
How are you human if you leave understanding reading, thinking, writing, caring, and loving to a processor?
Article: “Why We Must Criticize Our Culture”
A critical intelligence is one that doesn’t accept the society and culture around us as a given, and demands explanations for it. Sometimes, when we do that, we find that things that seemed “normal” are actually incompatible with basic principles of justice. We come to see the familiar as strange again, and be unsettled by things we once accepted.
I used to hate being a professional critic. Critics are negative. Critics are the people who watch a movie that has taken hundreds of people a year to make, and have the audacity to just give it a “thumbs down.” They produce nothing. Their work is easy, because anything can be criticized. But over time, I’ve come to embrace the critical side of myself a bit more, because critics do something essential: they help people articulate their feelings and figure out why they don’t like certain things... The job of the critic is to help us find the words, and finding the words to explain a problem is a precondition of discussing a solution. The critic asks tough questions. A critic who hates a work of art we love might help us see it in a new light, and wonder what the sources of our taste are. Correspondingly, a critic who praises something we loathe might have found virtues in it we overlooked.
I don’t mean to encourage greater negativity in a world already overflowing with it, but there is a sense in which all criticism is constructive criticism, because all criticism implies that there are possibilities other than the present incarnation of whatever is being criticized
questions may not have definitive answers, but the act of searching for the answers still feels worthwhile.
Chris reflecting on his CSS-Tricks article “The Great Divide”:
Since there is too much for any web developer to know, what is the most graceful and professionally acceptable way of not knowing things?
Whatever the answer is, it’s definitely not “ignore, shit on, and downplay the things you don’t know and gatekeep the things you do.”
One of the most persistent myths in software development is the notion of the hero developer—the rockstar…They are legends.
And like most legends, they don’t really exist…
[they are] the Bigfoot of software development. Frequently sighted; rarely seen.
If nature teaches us anything, it’s this: your surrounding environment shapes so much of you, and yet somehow we remain so oblivious to it.
Management loves to do meaningless performance evaluations, pit employees against each other, and talk some developers up and others down, but the hard truth is that they’re the ones responsible for most of the variation in performance from worker to worker.
An in-depth look at an old friend: escaping.
the escaping required in an HTML attribute value is different from the escaping required in an HTML element body, which is in itself different from the escaping required for a query string parameter value inside an URL inside an HTML attribute value
the conceit of context-dependent autoescaping systems is that they can have a full understanding of the semantics of the language they are templating. However, this is not possible because languages such as (X)HTML are user-extensible.
manual escaping is an accident waiting to happen, and autoescaping requires language- and context-dependent analysis of the string being templated, which is liable to be unreliable.
When I think back, my favorite pair-programming sessions were the one where things went wrong. These were the moments that taught me what being a programmer is all about. What do you do when you don’t know what to do? How do you break down a new problem? What tools do you reach for? When do you abandon your current approach? These are things you can’t learn from a blog post.
“What do you do when you don’t know what to do?” I really like that.
why should HTML and CSS ever be respected by people who call themselves “real developers” when almost any code soup results in something consumable? There are hardly any ramifications for coding mistakes, which means that over the years we focused on developer convenience rather than the quality of the end result.
…The web is ripe for attacks because of its lenience in what developers can throw at it.
Going back to the main design principle of the web where the user should get the best result and be our main focus. And not how easy it is to build a huge system in 20 minutes with x lines of code. Just because the resilience of the web means our code does not break doesn’t mean it works.
We yell and scream when we hear about big social media companies doing godawful things with our data and attention, yet we have no issues applying the stupidest marketing tricks to sell some service or product.
…now it's ChatGPT and AI generation era where everyone is trying to sell some AI service that generates something, even if that something has close to zero value...
…What the fuck are we doing here?
Article: “We don't A/B test core values”
“The tyranny of easy metrics”:
Someone asked how this "strategy" of simply letting customers cancel without questions or hassle could be substantiated by data. Like, what measurements, what tests drove us to this place? It's a perfectly fair question in a world saturated with Growth Hacking, Chief Revenue Officers, and endless aspirations for exponential growth. But it's ultimately the wrong way to look at it.
It's easy to quantify the value of these hassling and haggling measures when they somehow manage to save a few customers, even if that is just 0.1% of those subjected. See! We earned an extra $32,856 last year putting everyone who wanted to cancel through the wringer. Yes, but at what cost?
This is the tyranny of easy metrics. It's easy to measure how much money is saved by preventing cancelations, it's much harder to measure how much long-term business is lost by poisoning your reputation with the 99.9% of customers who had to jump hoops and dodge sleazeballs to get out of the subscription...
Article: “The new normal”
Culture is what culture does. Culture isn't what you intend it to be. It's not what you hope or aspire for it to be. It's what you do…
And the good news is that culture is really a 50-day moving average. It's not a steady state. It's what you've done recently, what you're doing now, and what happens next. It's both along for the ride, and the ride itself. It's the byproduct of behavior.