More from Jim Nielsen’s Blog
John Gruber has a post about how Google’s search results now require JavaScript[1]. Why? Here’s Google: the change is intended to “better protect” Google Search against malicious activity, such as bots and spam Lol, the irony. Let’s turn to JavaScript for protection, as if the entire ad-based tracking/analytics world born out of JavaScript’s capabilities isn’t precisely what led to a less secure, less private, more exploited web. But whatever, “the web” is Google’s product so they can do what they want with it — right? Here’s John: Old original Google was a company of and for the open web. Post 2010-or-so Google is a company that sees the web as a de facto proprietary platform that it owns and controls. Those who experience the web through Google Chrome and Google Search are on that proprietary not-closed-per-se-but-not-really-open web. Search that requires JavaScript won’t cause the web to die. But it’s a sign of what’s to come (emphasis mine): Requiring JavaScript for Google Search is not about the fact that 99.9 percent of humans surfing the web have JavaScript enabled in their browsers. It’s about taking advantage of that fact to tightly control client access to Google Search results. But the nature of the true open web is that the server sticks to the specs for the HTTP protocol and the HTML content format, and clients are free to interpret that as they see fit. Original, novel, clever ways to do things with website output is what made the web so thrilling, fun, useful, and amazing. This JavaScript mandate is Google’s attempt at asserting that it will only serve search results to exactly the client software that it sees fit to serve. Requiring JavaScript is all about control. The web was founded on the idea of open access for all. But since that’s been completely and utterly abused (see LLM training datasets) we’re gonna lose it. The whole “freemium with ads” model that underpins the web was exploited for profit by AI at an industrial scale and that’s causing the “free and open web” to become the “paid and private web”. Universal access is quickly becoming select access — Google search results included. If you want to go down a rabbit hole of reading more about this, there’s the TechCrunch article John cites, a Hacker News thread, and this post from a company founded on providing search APIs. ⏎ Email :: Mastodon :: Bluesky #generalNotes
Let me tell you about one of the best feelings. You have a problem. You bang your head on it for a while. Through the banging, you formulate a string of keywords describing the problem. You put those words into a search engine. You land on a forum or a blog post and read someone else’s words containing those keywords and more. Their words resonate with you deeply. They’re saying the exact same things you were saying to yourself in your head. You immediately know, “This person gets it!” You know they have an answer to your problem. They’ve seen what you’re seeing. And on top of it all, they provide a solution which fixes your problem! A sense of connection is now formed. You feel validated, understood, seen. They’ve been through what you’re going through, and they wrote about it to reach out to you — across time and space. I fell in love with the web for this reason, this feeling of connection. You could search the world and find someone who saw what you see, felt what you feel, went through what you’re going through. Contrast that with today. Today you have a problem. You bang your head on it. You ask a question in a prompt. And you get back something. But there’s no human behind it. Just a machine which takes human voices and de-personalizes them until the individual point of view is annihilated. And so too with it the sense of connection — the feeling of being validated, understood, seen. Every prompt a connection that could have been. A world of missed connections. Email :: Mastodon :: Bluesky
This is a note to my future self, as I’ve setup HTML minification on a few different projects and each time I ask myself, “How did I do that again?” So here’s your guide, future Jim (and anyone else on the internet who finds this). I use html-minifier to minifiy HTML files created by my static site generator. Personally, I use the CLI tool because it's easy to add a CLI command as an npm postbuild step. Example package.json: { "scripts": { "build": "<BUILD-COMMAND>" "postbuild": "html-minifier --input-dir <BUILD-DIR> --output-dir <BUILD-DIR> --file-ext html <OPTIONS>" } } All the minification options are off by default, so you have to turn them on one-by-one (HTML minfication is a tricky concern). Me personally, I’m using the ones exemplified in the project README: --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --minify-js true So, for a site folder named build, the entire command looks like this: html-minifier --input-dir ./build --output-dir ./build --file-ext html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --minify-js true That’s it — that’s the template. What Kind of Results Do I Get? I use this on a few of my sites, including my notes site and this blog. When testing it locally for my blog’s build, I: Run a build and put files to ./build Copy ./build to ./build-min Command: cp -R build build-min Run html-minifier on build-min and compare the resulting folders in macOS finder. Here’s my results for my blog (2,501 items in ./build): Directory size: Before: 37MB After: 28.4MB Difference: ▼ -8.6MB (-23.24%) Main index.html file lines of code: Before: 1,484 After: 15 lines Difference: ▼ -1,469 lines (-99%) Main index.html file size over the network: Before: 30.6kB After: 17.6kB Difference: ▼ -13kB (-42.48%) And the results for my notes (one big index.html file): File size: Before: 1.5MB After: 1.1MB Difference: ▼ -0.4MB (-26.67%) Lines of code: Before: 25,974 After: 1 Difference: ▼ -25,973 lines (-99.996%) Email :: Mastodon :: Bluesky #html
You know what’s really helpful in solving my own problems? Writing them down, sending them to someone, and not hearing back. You ever do that? For me, it’s a bulletproof method to solving problems. It’s akin to those moments when you go to someone with a problem, you talk it through, you find a solution, you thank them for their help, and they say, “Well I didn’t even say anything, but you’re welcome.” If I have a friend, co-worker, or collaborator who I know is on the other end of a chat box, typing out my problem and not hearing back from them can be a tremendous help. Here’s an example of how it often goes: Jim Nielsen, Friday at 12:53 PM I’m having an issue where the deployment isn’t working. Failiures are coming from lines 123-125 of the build script... Jim Nielsen, Friday at 12:59 PM Oh, it looks like something changed in commit abc123e in the lock file... Jim Nielsen, Friday at 1:02 PM This is so weird, I hate troubleshooting this crap. Why is everything in the world garbage? Jim Nielsen, Friday at 1:03 PM Ok, I can’t figure this out. I'm going to need your help when you have a second. Jim Nielsen, Friday at 1:09 PM Oh hey, actually I think I know what the problem is... Jim Nielsen, Friday at 1:11 PM Ok, it’s fixed now. Nevermind, I don’t need your help. Thanks! Co-worker, Friday at 4:03 PM You're welcome, glad I could help! In contrast, AI is too eager to respond back with something when nothing would be much more helpful. Knowing another human is there to connect with — available, listening, but not speaking — has helped me many times as I express my thinking step-by-step. So let me give you some relationship advice, AI. Sometimes you don’t need to say or do anything. You just need to listen. Cool? Thanks. Email :: Mastodon :: Bluesky #ai
More in design
My thoughts about the Zettelkasten (Slip box) note taking methodology invented by the German sociologist Niklas Luhmann.
When I first visited the site, I felt overwhelmed. The entrance from the parking lot was elevated, exposing the interior,...
John Gruber has a post about how Google’s search results now require JavaScript[1]. Why? Here’s Google: the change is intended to “better protect” Google Search against malicious activity, such as bots and spam Lol, the irony. Let’s turn to JavaScript for protection, as if the entire ad-based tracking/analytics world born out of JavaScript’s capabilities isn’t precisely what led to a less secure, less private, more exploited web. But whatever, “the web” is Google’s product so they can do what they want with it — right? Here’s John: Old original Google was a company of and for the open web. Post 2010-or-so Google is a company that sees the web as a de facto proprietary platform that it owns and controls. Those who experience the web through Google Chrome and Google Search are on that proprietary not-closed-per-se-but-not-really-open web. Search that requires JavaScript won’t cause the web to die. But it’s a sign of what’s to come (emphasis mine): Requiring JavaScript for Google Search is not about the fact that 99.9 percent of humans surfing the web have JavaScript enabled in their browsers. It’s about taking advantage of that fact to tightly control client access to Google Search results. But the nature of the true open web is that the server sticks to the specs for the HTTP protocol and the HTML content format, and clients are free to interpret that as they see fit. Original, novel, clever ways to do things with website output is what made the web so thrilling, fun, useful, and amazing. This JavaScript mandate is Google’s attempt at asserting that it will only serve search results to exactly the client software that it sees fit to serve. Requiring JavaScript is all about control. The web was founded on the idea of open access for all. But since that’s been completely and utterly abused (see LLM training datasets) we’re gonna lose it. The whole “freemium with ads” model that underpins the web was exploited for profit by AI at an industrial scale and that’s causing the “free and open web” to become the “paid and private web”. Universal access is quickly becoming select access — Google search results included. If you want to go down a rabbit hole of reading more about this, there’s the TechCrunch article John cites, a Hacker News thread, and this post from a company founded on providing search APIs. ⏎ Email :: Mastodon :: Bluesky #generalNotes
Kedrovka is a brand of plant-based milk crafted for those who care about their health, value natural ingredients, and seek...
AI promises to automate both work and leisure. What will we do then? In 2005, I lived high up on a hill in Penang, from where I could literally watch the tech industry reshape the island and the nearby mainland. The common wisdom then was that automation would soon empty the factories across the country. Today, those same factories not only buzz with human activity — they’ve expanded dramatically, with manufacturing output up 130% and still employing 16% of Malaysia’s workforce. The work has shifted, evolved, adapted. We’re remarkably good at finding new things to do. I think about this often as I navigate my own relationship with AI tools. Last week, I asked an AI to generate some initial concepts for a client project — work that would have once filled pages of my sketchbook. As I watched the results populate my screen, my daughter asked what I was doing. “Letting the computer do some drawing for me,” I said. She considered this for a moment, then asked, “But you can draw already. If the computer does it for you, what will you do?” It’s the question of our age, isn’t it? As AI promises to take over not just routine tasks but creative ones — writing, design, music composition — we’re facing a prolonged period of anxiety. Not just about losing our jobs, but about losing our purpose. The industrial revolution promised to free us from physical labor and the digital revolution promised to free us from mental drudgery. Yet somehow we’ve ended up more stretched, more scheduled, more occupied than ever. Both were very real technological transitional periods; both had significant, measurable impacts on the economies of their time; neither ushered in a golden age of leisure. History shows that we — in the broadest sense — adapt. But here’s something to consider: adaptation takes time. At the height of the pre-industrial textile industry, 20% of all women and children in England were employed, hand-spinning textile fibers. This was in the late 18th century. Over the course of the following forty years, a process of mechanization took place that almost completely obviated the need for that particular workforce. But children working as hand-spinners at the pre-industrial height would have been well past middle-age by the time child-employment was no longer common. The transitional period would have lasted nearly the entirety of their working lives. Similarly, the decline of manufacturing in the United States elapsed over a period of nearly fifty years, from its peak in the mid-1960s to 2019, when a net loss of 3.5 million jobs was measured. Again, this transition was career-length — generational. In both transitions, new forms of work became available that would have been unforeseen prior to change being underway. We are only a handful of years into what we may someday know as the AI Revolution. It seems to be moving at a faster pace than either of its historical antecedents. Perhaps it truly is. Nevertheless, historical adaptation suggests that we look forward to the new kinds of work this transition will make a way for us to do. I wonder what they may be. AI, after all, isn’t just a faster way to accomplish specific tasks; investment in it suggests an expectation for much grander than that, on the order of anything that can be reduced to pattern recognition and reproduction. As it turns out, that’s most of what we do. So what’s left? What remains uniquely human when machines can answer our questions, organize and optimize our world, entertain us, and create our art? The answer might lie in the spaces between productivity — in the meaningful inefficiencies that machines are designed to eliminate. AI might be able to prove this someday, but anecdotally, it’s in the various moments of friction and delay throughout my day that I do my most active and creative thinking. While waiting for the water to heat up. Walking my dog. Brewing coffee. Standing in line. Maybe we’re approaching a grand reversal: after centuries of humans doing machine-like work, perhaps it’s time for humans to become more distinctly human. To focus not on what’s efficient or productive, but on what’s meaningful precisely because it can’t be automated: connection, contemplation, play. But this requires a radical shift in how we think about time and purpose. For generations, we’ve defined ourselves by our work, measured our days by our output. As AI threatens to take both our labor and our creative outlets, we will need to learn — or remember — how to exist without constant production and how to separate our basic human needs from economies of scale. The factories of Malaysia taught me something important: automation doesn’t move in a straight line. Human ingenuity finds new problems to solve, new work to do, new ways to be useful. But as AI promises to automate not just our labor but our leisure, we might finally be forced to confront the question my daughter so innocently posed: what will we do instead? This will not be easy. The answer, I hope, lies not just in finding new forms of work to replace the old, but in discovering what it means to be meaningfully unoccupied. The real challenge of the AI age might not be technological at all, but existential: learning to value the empty hours not for what we can fill them with, but for what they are. I believe in the intrinsic value of human life; one’s worth is no greater after years of labor and the accumulation of wealth and status than it was at its beginning. Life cannot be earned, just lived. This is a hard lesson. Wouldn’t it be strange if the most able teacher was not human but machine?