{ "version": "https://jsonfeed.org/version/1", "title": "Jim Nielsen’s Notes", "home_page_url": "https://notes.jim-nielsen.com", "feed_url": "https://notes.jim-nielsen.com/feed.json", "items": [ { "id": "2024-03-26T2300", "date_published": "2024-03-27T05:00:00.000Z", "title": "Growth is a mind cancer", "url": "https://notes.jim-nielsen.com/#2024-03-26T2300", "external_url": "https://manuelmoreale.com/@/page/tWA2annWlQaAVnYd", "content_html": "
\n\nit's our fault. Our as a society. We celebrate when Apple becomes the first trillion-dollar company but we don't celebrate when someone says "You know what? I think I have enough".
\n
If you’re the richest company in the world and you can have anything, what’s the one thing you want? More.
\n" }, { "id": "2024-03-25T2029", "date_published": "2024-03-26T02:29:00.000Z", "title": "One endless meeting", "url": "https://notes.jim-nielsen.com/#2024-03-25T2029", "external_url": "https://robinrendle.com/notes/one-endless-meeting/", "content_html": "\n\nDecision making is what slows down most teams. The endless slide decks, the pitch to leadership, the lack of trust in what they’re building. They’ll go round and round in big circles trying to convince everyone in the entire company that this is the right thing to do.
\n
Yup. Been there
\n\n\nthe hard work should never be the bureaucracy
\n
Nailed it
\n" }, { "id": "2024-03-22T1032", "date_published": "2024-03-22T16:32:00.000Z", "title": "Write CSS. Not too much. Mostly scoped.", "url": "https://notes.jim-nielsen.com/#2024-03-22T1032", "external_url": "https://www.leereamsnyder.com/write-css-not-too-much-mostly-scoped", "content_html": "A lot of this vibes with my experience.
\n\n\nThe way Tailwind actively pushes against making hasty abstractions is — really — the smartest thing about it. In my experience, when you’re building something new you’re better off making something functional quickly and worrying about code elegance and deduplication and abstractions later, when you’re hopefully still in business. With a little practice, in a Tailwind project it’s relatively easy to get into a just-building-the-thing flow state. I get to shove the part of me that frets about good naming and specificity and leaking styles and efficient reuse into a drawer for a bit. It’s kinda nice.
\n
As with anything, it’s tradeoffs all the way down.
\n\n\nFirst, Tailwind’s build tooling lets you define new classes on the fly in HTML. This can be relatively harmless like defining a one-off margin length. Or it could be like above with, sm:py-[calc(theme(spacing[1.5])-1px)] where you’re involving media queries, accessing Tailwind’s theme values, then doing math to make a one-off length and OK now admit we’re just writing CSS but doing so very awkwardly
\n
That’s the point I often get to when using Tailwind. “Ok, can we just admit to ourselves we’re just writing CSS now, but awkwardly?”
\nVia Eric’s newsletter.
\n" }, { "id": "2024-03-22T1029", "date_published": "2024-03-22T16:29:00.000Z", "title": "How do you verify that?", "url": "https://notes.jim-nielsen.com/#2024-03-22T1029", "external_url": "https://daverupert.com/2024/03/lies-damned-lies-and-stochastics/", "content_html": "Have to constantly remind myself of this too:
\n\n\nthe goal of a book isn’t to get to the last page, it’s to expand your thinking.
\n
And not just with books. Any form of content consumption (or experience, for that matter).
\n" }, { "id": "2024-03-22T1027", "date_published": "2024-03-22T16:27:00.000Z", "title": "Digital Communications Design in the Second Computer Revolution", "url": "https://notes.jim-nielsen.com/#2024-03-22T1027", "external_url": "https://x.com/lalizlabeth/status/1770511460914905243?s=20", "content_html": "As quoted in a tweet, this is Katherine McCoy’s introduction in Digital Communications Design in the Second Computer Revolution by Stephanie Redman.
\nWritten in 1998, it’s a perfect description of what it means to be a web “designer”:
\n\n\nThis environment requires a much different visual design strategy than that of the traditional perfectionist designer. What are the implications for graphic designers trained in the modernist traditions of clarity, formal refinement and professional control? We can no longer think of our work as the production of as precious perfect artifacts, discrete objects, fixed in their materiality. The designer is no longer the sole author, realizing one's own singular vision. This forces a reordering of our design intentions. The designer is an initiator, but not a finisher, more like a composer, choreographer or set designer for each audience member's improvisational dance in a digital communications environment.
\n
Or maybe even a director like in film.
\n" }, { "id": "2024-03-18T1427", "date_published": "2024-03-18T20:27:00.000Z", "title": "Artists Sell Themselves So Cheap", "url": "https://notes.jim-nielsen.com/#2024-03-18T1427", "external_url": "https://colleendoran.substack.com/p/artists-sell-themselves-so-cheap", "content_html": "\n\nThe exploiter simply hears music, sees the reaction the music has on other people, may have no real idea why that music is good, but they try to mimic the circumstance that created the value from the music.
\n
The exploiter simply sees the web, sees the reaction the web has on other people, may have no real idea why a website is good, but they try to mimic the circumstance that created value from the website.
\n" }, { "id": "2024-03-07T0900", "date_published": "2024-03-07T15:00:00.000Z", "title": "Demolishing the Global Town Square", "url": "https://notes.jim-nielsen.com/#2024-03-07T0900", "external_url": "https://aboard.com/podcast/demolishing-the-global-town-square/", "content_html": "Paul Ford commenting on the “marketplace of ideas” and the “global town square”:
\n\n\nyou think that you’re delivering ideas, debate, and philosophical exchange. You are not...What you are delivering, always, is validation. You can’t escape this when you are making content. People consume the content, seeking validation in context. No one organically seeks out conflict and pressure against their carefully constructed belief system.
\n
We thought we were getting a global space to discuss ideas, allowing the best ones to rise to the top for everyone’s benefit. What we got was the exact opposite: a global space where nothing can be discussed.
\n\n\n" }, { "id": "2024-03-07T0857", "date_published": "2024-03-07T14:57:00.000Z", "title": "No more forever projects", "url": "https://notes.jim-nielsen.com/#2024-03-07T0857", "external_url": "https://dianaberlin.com/posts/no-more-forever-projects", "content_html": "\nit’s bizarre that we thought that this could be the global town square, because it’s actually the opposite. It’s a system for keeping ideas out of the commons because it’s too intense and too emotional. And so what you end up with is everybody having conversations in the group chat back along their ideological lines [and pointing to stuff out in the global space] and going, “that’s a nightmare”.
\n
\n\n\n" }, { "id": "2024-03-03T1429", "date_published": "2024-03-03T20:29:00.000Z", "title": "A Kafkaesque digital relationship with ourselves", "url": "https://notes.jim-nielsen.com/#2024-03-03T1429", "external_url": "https://minutestomidnight.co.uk/blog/kafkaesque-digital-relationship-with-ourselves/", "content_html": "Treat beginnings like endings: celebrate them, document them, let someone else pick up where you leave off...By ending well, you give yourself the freedom to begin again.
\n
Simone touching on the phenomenon of presenting ourselves as a product on our “personal” websites with phrases like, “I’m Jim Nielsen. A designer, developer, and writer with 20+ years experience on the web.” Boring! (I need to fix my home page.)
\n\n\ndefining myself through job roles, awards, or the fact that I might be a public speaker, is good for a resume. Anywhere else, it becomes deeply uninspiring and uninteresting. That is what I might be doing for a living right now, but it doesn’t represent who I am as a person with values, interests and priorities.
\n
There’s utility here for sure, but there’s also a painful realization that you’re simply commoditizing yourself.
\n\n\n" }, { "id": "2024-03-03T1422", "date_published": "2024-03-03T20:22:00.000Z", "title": "IndieWeb Carnival: Roundup", "url": "https://notes.jim-nielsen.com/#2024-03-03T1422", "external_url": "https://manuelmoreale.com/@/page/5EGWc9ceBwynto77", "tags": [ "theWeb" ], "content_html": "I don’t “help companies” achieving something, I work for a salary doing things that, when luck strikes, I might even enjoy.
\n
Here’s Barry Hess:
\n\n\nI try to imagine what my life would look like if I was stuck with only the relationships geographically close to me. I have those relationships as well, and I treasure them, but they simply cannot offer the diversity of thought, background, and experience that digital relationships allow. I’m so incredibly thankful to live in an era where I can have the best of both worlds.
\n
This was via Manuel’s post along with his commentary:
\n\n\nThe global nature of the web is an underappreciated quality. Like, can we just stop for a second and appreciate the fact that I’m typing this while sitting in Italy and you’re reading this somewhere else on the globe? It’s fucking amazing.
\n
Amazing indeed. And I couldn’t agree more.
\n" }, { "id": "2024-03-03T1354", "date_published": "2024-03-03T19:54:00.000Z", "title": "Exists is the enemy of good", "url": "https://notes.jim-nielsen.com/#2024-03-03T1354", "external_url": "https://seancoates.com/blogs/exists-is-the-enemy-of-good", "content_html": "\n\nWe need to be very careful about justifying bad experiences with "perfect is the enemy of good" when we should be striving harder for good itself. The popularity of this expression is responsible for a lot of garbage. Sometimes we just shouldn't do the quick and easy thing—even if we've tricked ourselves into thinking it's temporary. Exists is also the enemy of good.
\n
Great counterpoint to the popular refrain. My experience resonates with this idea that people are often less willing to invest in a good solution when a mediocre one already exists.
\n" }, { "id": "2024-03-03T1351", "date_published": "2024-03-03T19:51:00.000Z", "title": "Offering Opinions Online", "url": "https://notes.jim-nielsen.com/#2024-03-03T1351", "external_url": "https://marcel.io/posts/offering-opinions-online", "content_html": "\n\nMy recent post about filter icons resulted in quite a few reactions, most of them telling me things I already knew. I struggle with people implying I haven't thought about what they're now kindly offering me as new information.
\n
Yeah been there. What do you do?
\n\n\nLetting things go always feels better than trying to win something that isn't even a competition.
\n
Good point. But does it influence your writing?
\n\n\nI would lose my voice if I tried to optimize my writing around the expected reactions. I'd dumb everything down, argue in every direction, just to be safe. That's just not an option.
\n
I love hearing from and writing to people who read my writing and engage in a good faith conversation.
\nBut sometimes I also just have ignore others.
\n" }, { "id": "2024-02-27T1955", "date_published": "2024-02-28T01:55:00.000Z", "title": "All you need is links", "url": "https://notes.jim-nielsen.com/#2024-02-27T1955", "external_url": "https://subconscious.substack.com/p/all-you-need-is-links", "tags": [ "links" ], "content_html": "Quoting Tim Berners-Lee:
\n\n\nOne of the beautiful things about physics is its ongoing quest to find simple rules that describe the behavior of very small, simple objects. Once found, these rules can often be scaled up to describe the behavior of monumental systems in the real world. […]
\nIf the rules governing hypertext links between servers and browsers stayed simple, then our web of a few documents could grow to a global web. The art was to define the few basic, common rules of “protocol” that would allow one computer to talk to another, in such a way that when all computers everywhere did it, the system would thrive, not break down.
\n
Turns out tags, folders, comments, stars, hearts, upvotes, downvotes, outliners, even semantic triplets, they’re all just links.
\n" }, { "id": "2024-02-27T0838", "date_published": "2024-02-27T14:38:00.000Z", "title": "Okay, Color Spaces", "url": "https://notes.jim-nielsen.com/#2024-02-27T0838", "external_url": "https://ericportis.com/posts/2024/okay-color-spaces/", "content_html": "\n\ncolor spaces are all constructs. People just make them up! Useful ones are constructed in order to do useful things, but there’s no, like, One True Fundamental Color Space.
\n
There’s no “right” color space. Only useful ones:
\n\n\ncolors – like tastes, touches, and smells – don’t have any kind of innate geometric relationship to each other. When we arrange colors around a wheel, or set them into any other space: we did that.
\nAll of this is to say: color spaces can’t really be “right” (or “wrong.”) They can only be useful.
\n
Why you’ll want oklch:
\n\n\nOklab is pretty good!
\nPeople tend to think about color in terms of three variables: lightness, chroma, and hue.
\nOklab does a good job of isolating these variables, but in order to use them, we have to navigate it using polar coordinates instead of rectangular ones. When we navigate Oklab this way, we call it OKLCH.
\n
The visualization on of polar coordinate referencing was eye-opening.
\nEverything about this article satisfies my long-running desire to have someone write a piece on color spaces I can understand.
\n" }, { "id": "2024-02-19T2250", "date_published": "2024-02-20T04:50:00.000Z", "title": "localfirst.fm, episode 1", "url": "https://notes.jim-nielsen.com/#2024-02-19T2250", "external_url": "https://www.localfirst.fm/1", "content_html": "\n\nMaybe you’re a YC startup and you get some credits to get you started, but that’s definitely the drug dealer model [where] the first one’s free
\n
Lol, drug dealer model. Love it.
\n\n\nWe’ve managed to turn text notes into closed, proprietary formats that are specific to a single piece of software. That’s a bummer. You can’t sync your Apple Notes to Dropbox.
\n
It really is a shame how locked-in silos our data is these days. Oh and the privacy around that data isn’t too great either.
\n\n\n" }, { "id": "2024-02-19T2244", "date_published": "2024-02-20T04:44:00.000Z", "title": "File over app", "url": "https://notes.jim-nielsen.com/#2024-02-19T2244", "external_url": "https://stephango.com/file-over-app", "content_html": "Why is the default that, when I use software, the product managers and support people can just read my data whenever they want?
\n
\n\nFile over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you this freedom.
\n
\n\nthe files you create are more important than the tools you use to create them. Apps are ephemeral, but your files have a chance to last.
\n
The web equivalent is: the websites you create — their content and functionally for end users — are more important than the tools you use to create them.
\nWhat your site is built and served with is ephemeral, but the content is what has a chance to last.
\n" }, { "id": "2024-02-18T2305", "date_published": "2024-02-19T05:05:00.000Z", "title": "The text file that runs the internet", "url": "https://notes.jim-nielsen.com/#2024-02-18T2305", "external_url": "https://www.theverge.com/24067997/robots-txt-ai-text-file-web-crawlers-spiders", "content_html": "Really interesting writeup on the history of robots.txt
(I’ve written previously about my feelings around robots.txt
and AI bots).
\n\nthe main focus of robots.txt was on search engines; you’d let them scrape your site and in exchange they’d promise to send people back to you. Now AI has changed the equation: companies around the web are using your site and its data to build massive sets of training data, in order to build models and products that may not acknowledge your existence at all.
\nThe robots.txt file governs a give and take; AI feels to many like all take and no give.
\n
That’s the problem: the incentives for an open web are quickly dwindling.
\n\n\nIn the last year or so, the rise of AI products like ChatGPT, and the large language models underlying them, have made high-quality training data one of the internet’s most valuable commodities. That has caused internet providers of all sorts to reconsider the value of the data on their servers, and rethink who gets access to what. Being too permissive can bleed your website of all its value; being too restrictive can make you invisible. And you have to keep making that choice with new companies, new partners, and new stakes all the time.
\n
Great ending:
\n\n\n" }, { "id": "2024-02-17T2057", "date_published": "2024-02-18T02:57:00.000Z", "title": "We're not trying to build another Slack", "url": "https://notes.jim-nielsen.com/#2024-02-17T2057", "external_url": "https://app.campsite.co/campsite/p/notes/rk9py5ruzlri", "content_html": "[the creators of robots.txt] believed that the internet was a good place, filled with good people, who above all wanted the internet to be a good thing. In that world, and on that internet, explaining your wishes in a text file was governance enough. Now, as AI stands to reshape the culture and economy of the internet all over again, a humble plain-text file is starting to look a little old-fashioned.
\n
Brian Lovin talking about the shift from email et al. to Slack:
\n\n\nBut this shift came with a cost: as the friction to share fell, the quantity of shared things skyrocketed. As quantity skyrocketed, it became harder to find the signal in the noise. It gave us the tools to think out loud in front of hundreds of people, molding incomplete thoughts and ideas one push notification at a time.
\n
Sounds like AI on the public internet. But I digress. Back to Slack:
\n\n\n[Slack is] a tool that lets anyone distract everyone with each new message.
\n
Damn this is on point.
\n\n\n" }, { "id": "2024-02-17T1517", "date_published": "2024-02-17T21:17:00.000Z", "title": "Becoming a Design Engineer", "url": "https://notes.jim-nielsen.com/#2024-02-17T1517", "external_url": "https://marcel.io/posts/becoming-a-design-engineer", "tags": [ "designEngineer" ], "content_html": "Ah, look how much work I am getting done! you think to yourself as you bounce uncontrollably between a dozen threads and channels of varying importance.
\n
\n\n" }, { "id": "2024-02-17T1514", "date_published": "2024-02-17T21:14:00.000Z", "title": "How should designers code?", "url": "https://notes.jim-nielsen.com/#2024-02-17T1514", "external_url": "https://dylanatsmith.com/wrote/how-should-designers-code", "tags": [ "designEngineer" ], "content_html": "what lies between me and having done a good job is pushing stuff around in Figma until what I think should be visible [to the person implementing it] is actually visible. It feels like a chore.
\n
\n\nI personally believe that software is never built with more attention to detail than when it’s coded by the person who designed it.
\n
I agree.
\n\n\nYou’ll never prevent all of them. There were visual bugs in production before you started and there will be visual bugs in production long after you leave. But sometimes they’re almost as quick to fix as they are to document and explain, so it can be effective to do it yourself when you spot them.
\n
I’ve found this to be true too. It often takes more time to document how something should be implemented and get it into the schedule, than to just do it yourself.
\n" } ] }