Jim Nielsen’s Blog

https://blog.jim-nielsen.com/ (RSS)
visit blog
Tools As Ways of Being
15 Jan 2025 | original ↗

I took notes from Sean Voisen’s call for more hybrid tools. He speaks for a moment on generative AI and its inclusion into existing tools, but reading between the lines the insight I found was how our tools can trigger empathy for people and disciplines: One of the greatest goals we can have for [making] tools…is that in expanding all of our...

Using Locally-Installed CLI Tools In Node Projects
13 Jan 2025 | original ↗

You have a dependency that provides a CLI tool, how do you use it? Even though you did npm i from your project root, if you run it won’t work because that tool is not in your global path. You could install globally, but then if you have in multiple projects and you run in another project it might not be the same version of the tool. For...

Gotchas in Naming CSS View Transitions
12 Jan 2025 | original ↗

I’m playing with making cross-document view transitions work on this blog. Nothing fancy. Mostly copying how Dave Rupert does it on his site where you get a cross-fade animation on the whole page generally, and a little position animation on the page title specifically. To animate the page title, I need a unique ID to target the element I want...

Don’t Miss the Product for the Artifacts
9 Jan 2025 | original ↗

Ever hear that idiom, “Don’t miss the forest for the trees”? The idea being, you miss the bigger picture because you’re focused on the minutia? Feels like the tech equivalent is: Don’t miss the product for the artifacts. Here’s Ryan Rendle in a recent piece on design artifats: There’s a factory-like production of the modern design process which...

Social Inflation
7 Jan 2025 | original ↗

Imagine you’re on a social network and you start getting tons of followers. You love it! Your follower count is going up! Instead of a nobody with a couple hundred followers, you’ve bypassed the 1k+ mark and it keeps going! You’re ecstatic! This is the “next step” you were aspiring to. But then you start looking around. The people you’re...

Push Notifications Are Organizational Marshmallows
6 Jan 2025 | original ↗

It’s a notifications’ world, we’re just living in it. Companies can’t help but try and get your attention via email, text, or push notifications and drive you to their app. Push notifications in particular are a powerful tool — and where there’s power, there’s abuse. I’m sure you, dear reader, have had your notifications abused by overly-eager...

You Can Now Subscribe To My Blog via Email
4 Jan 2025 | original ↗

I don’t think you should. I think you should use RSS. But if you want posts delivered directly to your email, you can do that now. However, disclaimer: I don’t know if I’ll keep this feature. It costs me money. And I don’t monetize my blog. So sending you an email costs me monies every month. And if that ever gets to feeling too expensive, it’ll...

Podcast Notes: Vlad Prelovac on “The Talk Show”
30 Dec 2024 | original ↗

Vlad Prelovac is the CEO of Kagi: a search engine you have to pay for. He’s on episode 416 of John Gruber’s The Talk Show to discuss why he thinks we should be paying for search. Hearing his point of view is compelling. I quite enjoyed the entire podcast. So much, in fact, that I took notes. If any of the bullet points below catch your attention,...

Christmas Day
29 Dec 2024 | original ↗

It’s Christmas circa 2004. My teenage brothers, sisters, and I have all finished opening presents and we’re more than content to have absolutely nothing to do — it’s Christmas day after all! But not Dad. He’s in the bathroom laying tile. Again, this is Christmas day and Dad is on his hands and knees, in the bathroom, laying tile. We all laugh at...

Making o(m)g:image, Part IV: URLs
23 Dec 2024 | original ↗

This is part four of my series of posts describing how I made my quiz game o(m)g:image. Project Announcement Pt. I: Design Iterations Pt. II: As Little JS As Possible Pt. III: The HTML Pt. IV: URLs The design of the game is simple: Each page has one question with four possible answers When an answer is chosen, show users if they were right or...

Making o(m)g:image, Part III: The HTML
18 Dec 2024 | original ↗

This is part three of my series of posts describing how I made my quiz game o(m)g:image. Project Announcement Pt. I: Design Iterations Pt. II: As Little JS As Possible Pt. III: The HTML o(m)g:image is presented like a quiz: You get one question at a time When you choose an answer, it shows you if you got it right (and, if you didn’t, what the...

Making o(m)g:image, Part II: As Little JS As Possible
15 Dec 2024 | original ↗

This is part two of my series of posts describing how I made my quiz game o(m)g:image. Project Announcement Pt. I: Design Iterations Pt. II: As Little JS As Possible One of my goals when making this project was to use as little JavaScript as possible. In retrospect, I have to admit that was a pretty ambitious goal. Not because it was hard from a...

Making o(m)g:image Part I: Design Iterations
12 Dec 2024 | original ↗

I blogged about my recent project omgimg.jim-nielsen.com and I figured I’d write more details about my process behind making it. When the idea first struck, I jumped into Figma and started working out the idea. I had a pretty good idea of what I wanted: a quiz-like website that showed one question per page. Once you answered it gave you the...

Introducing o(m)g:image
9 Dec 2024 | original ↗

I was popping off on Mastodon with an idea for a physical board game then decided to just make a digital version. It’s called “o(m)g:image” and you can play it now: omgimg.jim-nielsen.com Here’s the idea: You have a bunch images Each image is a real-life og:image pulled from an online article You try to guess the title of the article based solely...

Contrast Is Clarifying
2 Dec 2024 | original ↗

Which is best? Generalist or specialist? Native or web? Web site or web app? JavaScript or Typescript? Framework or library? Server side or client side? Photoshop or Sketch or Figma? Designing in a tool or design in the browser? Skueomorphic or flat? Mac or PC or Linux? This list could go on forever. Zoom in to just the JavaScript ecosystem and...

Nothing is Something
27 Nov 2024 | original ↗

There’s a post on htmx.org about why htmx wasn’t the right fit for a particular project (which is dope, we need more websites that admit their thing might not be the right thing all the time). The bit on AI being unfamiliar with their tool choice piqued my interest: It’s worth noting that AI tools are intimately familiar with Next.js and not so...

Nabbing macOS Icon Artwork
24 Nov 2024 | original ↗

I keep a personal collection of beautiful macOS app icons, which might make you ask: “How does he get those icons?” Apps in the App Store For apps in the Mac App Store, I have my ways. I don’t necessarily want to write about them because I’m semi-afraid Apple would frown on my doings and close off my ways. Don’t get me wrong, I’m not being...

Captchas Turned Notification Exploits
20 Nov 2024 | original ↗

When my site analytics reported a large number of inbound traffic from Hacker News clones, I got curious and started clicking links.[1] I like to visit links. I am connoisseur of it. I love the feeling of landing on something you didn’t expect — which is precisely what happened. I landed on a site that had one of those Cloudflare-esque “prove...

Named Blogs
18 Nov 2024 | original ↗

I think it’s endearing when people name their blog. I’m not talking about branding, like people do with professional blogs or newsletters. I’m talking about personal blogs that people name out of care and idiosyncrasy. It’s endearing, because you brand things you own, you name things you cherish. We didn’t brand our family cat. And we don’t call...

Reading and Writing as Human Expression & Connection
15 Nov 2024 | original ↗

Why do we write? We write, in part, because our own reading was given as a gift to us and we want to extend that same magic we received to others. Here’s Mandy Brown (and my notes) in a recent article: The more compelling and interesting reason that most writers seek out readers is, I think, less utilitarian: we receive our writing as a gift, and...

The Beauty of Building
13 Nov 2024 | original ↗

Jan Miksovsky has an absolutely tremendous article about how he cobbled together some disparate pieces of hardware and software in order to help improve the quality of life of his mother who has amnesia. Everything about this article illustrates what got me into making websites. Everything about this article is what fuels my curiosity and...

Navigations on the Web
11 Nov 2024 | original ↗

When trying to define the difference between a link () and a button (), a general rule of thumb is: links are for navigation, buttons are not. That can take you pretty far. However, like most things, there’s nuance and that mental model can fall apart under certain scenarios. Why? Because buttons can be for navigation too. Where? Buttons in forms...

Persisting State to localStorage in Recoil Across Browser Tabs
6 Nov 2024 | original ↗

I was working on a project using Recoil for state management in React. I needed to persist some state to localStorage, and there’s some info on how to do it in Recoil’s docs. That works; however it doesn’t respond to state changes from other instances of your app in multiple browser tabs. If you want that, you have to add the code yourself by...

Job Screening Blog Post
4 Nov 2024 | original ↗

Take a look at these two animated gifs. First: Second: Can you tell the difference between them? Do you care? If not, we might not be a good fit. #designEngineering Reply via: Email :: Mastodon :: Twitter Tagged in: #designEngineer

Hacker News Clones
2 Nov 2024 | original ↗

Every once in a while, I’ll have a post gain traction over on ye ole’ orange site (Hacker News). I find out about it because my analytics digest will get a yuge uptick in page views. What’s interesting is all the referral sources that show up in my analytics. The Hacker News is always at the top, but then after it comes a bunch of clones or...

Quality Means The Flexibility to Change
30 Oct 2024 | original ↗

Here’s Ben Nadal quoting Dave Farley: I've come to the belief that the only definition of quality in code that makes any sense is our ability to change the code. If it's easy to change, it's high quality; if it's hard to change, it's not. Then Ben comments: I'm sure that some people will have the reaction that such an outlook is nothing more than...

For Sale: Used Domain (**Clean Title**)
28 Oct 2024 | original ↗

Bryan Braun has an interesting post about his experience with what he calls a “haunted domain”: He buys a domain that seems fine on the surface. When he begins using it, he notices some things aren’t right (organic search traffic, for example, is dead). After some investigation, he learns the domain was previously used to host pirated music. He...

We’re All Content Creators for Machines
25 Oct 2024 | original ↗

Nicholas Carr, one of my favorite technology writers, has been blogging over on Rough Type since [checks archives] 2005. As of late his writing has gone quiet, but he’s got a new book due out early next year and I think he’s starting up blogging again to help drum up interest. However, he’s not blogging on Rough Type anymore. He has a new blog...

The Lowest Common Denominator: www
23 Oct 2024 | original ↗

Native apps are all about control. Don’t like thing X? You can dive in and, with enough elbow grease and persistence, finally get what you want. Write your own C library. Do some assembly code. Even make your own hardware if you have to. But on the web you give up that control. Can’t quite do the thing you want? You’re options are: 1) make a...

Tech’s Epithet: “Enabled By Default”
21 Oct 2024 | original ↗

I joked on Mastodon: If anyone endeavors to write a book about what went wrong with tech, I have a great suggestion for the title: “Enabled by Default” It seems there really are two hard problems in tech: Naming things Setting good defaults Keeping to scope Anyhow, a little while later I found this Hacker News comment (courtesy of Terence Eden)...

Prompting the Wrong Question
16 Oct 2024 | original ↗

So there I am, working on a bug exclusive to Safari (we’ve all been there). I can’t figure it out so I ask AI, “Hey, this piece of code is not working in Safari, what’s wrong?” The issue might be related to how Safari handles keyboard events, especially for certain keys… It gives me some advice: Ensure the listener is setup correctly Check for...

Prototyping Magic Tricks and Software
14 Oct 2024 | original ↗

In Penn & Teller’s Masterclass (no. 12 “Principles of Performing”) they explain how one of their favorite ways to design a magic trick is to come up with an idea and then act it out as if they already know how to do it. Here’s Penn: We still start with an idea for a trick, how we want the whole thing to go without knowing how we’re gonna do...

Grateful: Colors in console.log()
9 Oct 2024 | original ↗

So there I am, having an issue where my UI state isn’t updating correctly. What do I do? What every developer does: turn to console.log() and troubleshoot by logging values. I have a named color (e.g. blue) and a corresponding HSL color string for that named color (e.g. 100 50% 0%). I log those in the click handler function where I expect the...

Ryan Dahl Talks Deno on The Changelog
7 Oct 2024 | original ↗

Ryan Dahl was on The Changelog to talk about Deno 2 specifically and his work on JavaScript more broadly. What follows are a few things that stood out to me. His Regrets From Node Are Now in Deno I think it’s interesting that Ryan’s famous talk 10 Things I Regret About Node.js served as the manifesto and launching point for Deno. And yet, he’s...

“Easier and More Convenient” They Said…
4 Oct 2024 | original ↗

The other day in our morning rush before school my wife asked for help figuring out how to put lunch money on our kids’ school accounts. For some time she’s been doing it “the hard way”: talk to the people in the front office of the school every few months and swipe a credit card. Every time she did it, they would remind her there was an “easier...

Putting the “Person” in “Personal Website”
2 Oct 2024 | original ↗

The other day I saw a meme that went something like this: Isn’t it crappy how basic human activities like singing, dancing, and making art have been turned into skills instead of being recognized as behaviors? The point of doing these things has become to get good at them. But they should be recognized as things humans do innately, like how birds...

Randomness, Serendipity, and an “I Wouldn’t Recommend This” Algorithm
29 Sept 2024 | original ↗

Sean Voisen has a great post about 1) how we as humans think of randomness, 2) how computers simulate randomness, and the difference between the two. He puts forth an intriguing thought: in a world increasingly driven by computation, how does that affect randomness in our lives? Here’s Sean: We could all benefit from more randomness in our lives...

Blogging & Listening
22 Sept 2024 | original ↗

When you read a great blog post, the feeling you often get is: “I already knew this, I just hadn’t been able to express it!” In this sense, writing a great blog post is about listening. If you’re listening — to others, your coworkers, the people you follow, your own experiences, your users, etc. — there are undertones of something being said...

Estimated Reading Time Widgets
17 Sept 2024 | original ↗

Beware ye who enter, here be personal opinions. I’ve never understood reading time estimation widgets. Why did these get so popular? Is it because they’re easy? I mean, you can grab one off npm no problem. Baldur suggests a theory in his piece about estimated reading times: At some point a programmer read in a study that the average person read...

The Ruthless Edit
16 Sept 2024 | original ↗

Rick Rubin gives this advice about working in the studio with artists when making an album: [Let’s say] We’ve recorded twenty-five songs. We think the album is going to have ten. Instead of picking our favorite ten, we limit it to: “What are the five or six we can’t live without?” [So you] go past the goal to get to the real heart of it, and then...

Seeing Others in Data, But Not Ourselves
8 Sept 2024 | original ↗

Stanford psychologist Emily Pronin and her colleagues came up with an interesting study in human behavior. Subjects were given incomplete words and asked to complete them with the first word that came to mind. For example, you’re given the fragments B__T and CHE__ and you write BOOT and CHESS. Afterwards, subjects were asked to explain what they...

Personal Websites Are As Vulnerable As Us
4 Sept 2024 | original ↗

I look at some people’s personal websites and think, “Stupendous! If I ever reach that zenith of personal web design, I will call it quits.” Then I read a post by them later and they say something like, “Gah! I just really don’t like where I’m at with my personal website.” And in my mind I say, “WHAAAAAATTTT??!?!?” To me, they’re living the...

Sanding UI
3 Sept 2024 | original ↗

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...

The Humble Link
29 Aug 2024 | original ↗

I was joking on Mastodon about how the zeitgeist has changed over the years, but its pattern is revealing itself: an acronym which merely drops letters. The Next Big Thing™ is clearly going to be “A”. 2010: Everyone needs an "API" 2020: Everyone needs "AI" 2030: Everyone needs "A" So I just need to figure out what “A” is and I’ll be rich! Annie...

Notes from Pen & Teller’s Masterclass
28 Aug 2024 | original ↗

I quite enjoyed Pen & Teller’s Masterclass (paywall, sorry!). I learned some practical card tricks that came in handy while we sitting in the airport waiting for a connecting fight with restless kids. I also really enjoyed Pen & Teller’s reflections on the art of their craft. Here are a few points I wanted to write down. Magic is a Playground For...

New Workflow for Publishing Notes: Content in Dropbox, Code in GitHub
25 Aug 2024 | original ↗

I recently changed my workflow around authoring and publishing my site notes.jim-nielsen.com. Here’s the rundown. Before Pretty standard JAMstack type stuff. All my notes are markdown files in a git repository that live alongside the code generating the website, e.g. package.json notes/ note1.md note2.md note3.md src/ index.js ...

Netlify Public Folder, Part V: Now With an Image CDN
21 Aug 2024 | original ↗

On ShopTalkShow no. 628, Chris and Dave got to talking about s3/r2 and hosted media solutions. Dave graciously gave a shoutout to my Netlify “public folder” workflow, which reminded me of something I’ve been meaning to write about. Chris mentions how he prefers being able to drop a large resolution image on a CDN as his “source” and then request...

Blog Posts vs. Social Posts
19 Aug 2024 | original ↗

From Emil Kowalski’s newsletter (my Feedbin cache for your convenience): I started writing more blog posts recently. I like it because it's different than X. You get a spike of views when you share something on X, but that dies off quickly. If you provide great value with your posts, people will read it, share it, and talk about it. It's a...

Iterative Building and Decision Making
14 Aug 2024 | original ↗

Imagine you’re driving a dirt road and you come to a fork. Which way do you go, left or right? This decision is much easier to make if you’ve been traveling that road for the last hour and you’re sitting there in your truck facing the reality of the decision. You can see the level of wear in each path based on previous treks by others, you know...

The Impressionist Blogging Movement
11 Aug 2024 | original ↗

I love this articulation: AI enables action without thought. It comes from an iA article about AI and the future of design (emphasis mine): Now, what actually is AI? The Italian philosopher and technology ethicist Luciano Floridi sums it up nicely. He posits that AI doesn’t replace our thinking with its own thought. AI, he says, doesn’t think for...

My Failed Personal Site Redesign
8 Aug 2024 | original ↗

Me a few weeks ago: tfw when you have an idea for a personal website redesign, and then you build it, and then you hate it, and then you have to decide whether to ship it anyway or keep what you have As you can probably guess from the title[1], I decided to keep what I have and throw away what I built. But I felt really bad throwing it away, so I...

Deno De-emphasizes HTTP Imports
6 Aug 2024 | original ↗

I’ve been a long-time fan of Deno and their ethos of following the web platform. But I’m not sure how I feel about their latest admission which makes their dependency story more like npm and less like the web. Designing Deno’s module system around HTTP imports was ambitious. It aimed to replace npm with a distributed system over HTTP, aligning...

Just Build Websites
5 Aug 2024 | original ↗

Here’s something you might not know about me: I like to play golf. As such, I follow a couple of golf-related brands on social media as a guilty pleasure. The other day an image surfaced on Taylormade’s account which showcases Tommy Fleetwood playing some of their newest irons. When I mindlessly scroll these accounts (i.e. advertisements) my mind...

Deploying on Netlify with Apple’s Shortcuts
2 Aug 2024 | original ↗

Just a quick note on a personal workflow thing. I’ve written before about the many different ways I host my personal websites on Netlify. I’ve got a few websites that aren’t the traditional model of: commit to git, push, build triggers on Netlify, website goes live. Sometimes I want to manually trigger a site deploy — but I’m lazy and don’t want...

Your Greatest Strength Is Also Your Greatest Weakness
22 Jul 2024 | original ↗

Referring to product management, my old boss used to say, “There is no right or wrong, only trade-offs.” This applies to technology too (and, if you really think about it, life generally — but we won’t go that far). As an example, what makes npm great? It’s so easy to install a dependency. What makes npm not so great? It’s too easy to install...

Amazing Athletes of the 21st Century
18 Jul 2024 | original ↗

This post is a secret to everyone! Read more about RSS Club. Content warning: wherein I talk about sports. If that’s not your thing, feel free to skip this one. I’m not a rabid sports fan. I don’t have a team, though I do have teams I hate (or rather, like to hate on). But I do enjoy following sports. I’ve witnessed some pretty...

I Don’t Like The Term “IC” Either
17 Jul 2024 | original ↗

I really liked Robin’s piece, “Stop calling yourself an IC”. I still remember the way I felt the first time I heard that term. It was used in a way where its connotations conveyed a kind of laziness via lack of ambition. And I thought, “But wait, I am an individual contributor — and I like it. Is something wrong with me?” Learning this term and...

Text Prompts Circumscribe The Surface Area of Possible Solutions
15 Jul 2024 | original ↗

I was reading Chase McCoy’s notes about Figma’s move into the AI space and this one line stuck out to me (emphasis mine): Generating UI designs from scratch, based on a text prompt This reminded me of my note from a Wall Street Journal interview with Jony Ive where he talks about problem solving. He notes that when you set out to solve a problem...

Creating Some Noise on Behalf of Silence
11 Jul 2024 | original ↗

How do you write about the value of silence? It’s kind of absurd when you think about it. Do you use words to extol the value of something whose essence is the very absence of words? It’s like making a painting of the invisible. Do you use visible means to depict something that exists outside of the visible? Nonetheless, here I am with this blog...

↑ These items are from RSS. Visit the blog itself at https://blog.jim-nielsen.com/ to find everything else and to appreciate author's digital home.