@nolan@toot.cafe
@nolan@toot.cafe avatar

nolan

@nolan@toot.cafe

toot.cafe admin, web dev at Salesforce, working on Lightning Web Components. Creator of https://pinafore.social. Former browser perf guy at Microsoft. #javascript #webcomponents

This profile is from a federated server and may be incomplete. Browse more on the original instance.

nolan, to random
@nolan@toot.cafe avatar

"Weird things engineers believe about Web development" by Brian Birtles https://birtles.blog/2024/01/06/weird-things-engineers-believe-about-development/

I've worked on both a browser team and as a web developer; this largely jives with my experience.

A lot of web developers have very dogmatic views about "you should do things like this, not like this," but working on a browser, I honestly feel like it's way more nuanced if you actually understand how browsers work. Which is often a mess of hacks and quirks that only make sense if you've been there

nolan, to random
@nolan@toot.cafe avatar

"JavaScript Gom Jabbar" by Alex Kotliarskyi https://frantic.im/javascript-gom-jabbar/

This one hits a little too close to home.

nolan, to random
@nolan@toot.cafe avatar

"Why not React?" by Taylor Hunt https://dev.to/tigt/why-not-react-2f8l

Taylor Hunt frequently blows my mind with these thorough, meticulous blog posts on frontend architecture and performance. I could spend days just going over all the links.

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Let’s learn how modern JavaScript frameworks work by building one" https://nolanlawson.com/2023/12/02/lets-learn-how-modern-javascript-frameworks-work-by-building-one/

Some step-by-step instructions on how to build a new JavaScript framework, if you're so inclined. Or just my way of learning how they all work!

nolan, to random
@nolan@toot.cafe avatar

OK I take it back, Safari might be the new IE: https://github.com/nolanlawson/emoji-picker-element/pull/379

The WebKit team has been doing amazing work recently, but it doesn't help users stuck on old versions of the OS.

E.g. Safari 16.4 was a massive release from back in March, but about a third of Safari users are still on <=16.3. This accounts for 6.5% of all browsers! https://caniuse.com/mdn-api_elementinternals

I know the solution is "just buy a new iPhone," but how much e-waste is that going to generate? And how many people can afford it?

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Use web components for what they’re good at" https://nolanlawson.com/2023/08/23/use-web-components-for-what-theyre-good-at/

Some thoughts on what web components are good at, and what they're less good at.

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Shadow DOM and the problem of encapsulation" https://nolanlawson.com/2023/12/30/shadow-dom-and-the-problem-of-encapsulation/

This is basically me trying to grapple with all the complaints I've heard about shadow DOM, and trying to weigh the pros and cons of different solutions.

nolan, to random
@nolan@toot.cafe avatar

"Write code for the web" by Manav Rathi https://mrmr.io/apple

This is from an iOS developer, but as an Android developer, I came to basically the same conclusion 10 years ago. The web isn't perfect, but it's a near-universal platform not owned by anybody.

nolan,
@nolan@toot.cafe avatar

Personally, I got tired of Google's constant breaking changes with every Android version, and all the hoops I had to jump through just to keep my apps listed. Whereas whatever garbage I put on the web 20 years ago still works today.

An investment in learning the web (even dumb stuff like document.all or document.write) still pays dividends decades later. Whereas all my old Android API knowledge is just gone, like tears in the rain.

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Web component gotcha: constructor vs connectedCallback" https://nolanlawson.com/2024/01/13/web-component-gotcha-constructor-vs-connectedcallback/

This is just a quick post on a anti-pattern that I've seen countless times.

nolan, to random
@nolan@toot.cafe avatar

"Challenges with Chromium Accessibility" by Benjamin Beaudry and Chris Harrelson https://www.youtube.com/watch?v=yyN7HvwZj18

A lot of the BlinkOn talks are really good, but I especially enjoyed this deep-dive into accessibility in Chromium. It's sad that, currently, your browser can be 6x slower when using a screenreader, and that a lot of the focus is on how to avoid having the accessibility APIs accidentally turned on for non-screenreader users. But I'm glad there's work being done to fix that overall problem.

nolan, to random
@nolan@toot.cafe avatar

Sigh, Lyft just shut down their PWA. This used to be a great way to order a Lyft, purely using a web browser. 😢

nolan, to random
@nolan@toot.cafe avatar

Accessibility actually serves as a great "Van Halen brown M&Ms" test for websites:

  • Press enter on an input, does it actually submit the form?
  • Click a label, does it actually focus the input?
  • Does Tab change focus?

If any of these things are broken, then I can be pretty certain something else on the site will be busted, like it'll forget my password or get stuck in an infinite redirect loop.

BTW if you don't know the lore: https://www.snopes.com/fact-check/brown-out/

nolan, to accessibility
@nolan@toot.cafe avatar

I love the new "Connections" game from the New York Times, but I just realized it's not keyboard-accessible. Literally just <div>s with pointer* listeners, even though these are basically just buttons with a pressed state.

I guess I had kind of naively thought our industry was getting better at as a whole? In any case, I gave them feedback, so hopefully they'll fix it.

nolan, to random
@nolan@toot.cafe avatar

"Using emoji on the web" by Ollie Williams https://fullystacked.net/posts/using-emoji-on-the-web/

I've written a lot about how painful it is to use emoji on websites (yes, really). This is a great recent post with some new tips and tricks, although sadly it's still painful.

nolan, to random
@nolan@toot.cafe avatar

Good news for #webcomponents: Chromium fixed a perf bug for repeated stylesheets in shadow DOM: https://issues.chromium.org/issues/341327461

nolan, to random
@nolan@toot.cafe avatar

"Why Patching Globals Is Harmful" by Artem Zakharchenko https://kettanaito.com/blog/why-patching-globals-is-harmful

One of those classic lessons that apparently needs to be learned over and over again.

nolan, to random
@nolan@toot.cafe avatar

"How Do Chrome Extensions Impact Website Performance In 2024?" by Matt Zeunert https://www.debugbear.com/blog/chrome-extensions-website-performance

Once again, one of the most reliable ways to speed up your browser is to uninstall extensions. (Except ad blockers.)

nolan, to random
@nolan@toot.cafe avatar

"How Signal Walks the Line Between Anarchism and Pragmatism" by Kai Ye https://www.wired.com/story/signal-politics-software-criticism/

Signal brought E2E encryption to normal people who don't have 20 years of experience as a sysadmin and run Arch on their workstation, and for that they really need to be praised

nolan, to random
@nolan@toot.cafe avatar

"Why are websites embarrassing?" by Robin Rendle https://robinrendle.com/notes/why-are-websites-embarrassing/

Yeah, this one hits me in the feels.

nolan, to random
@nolan@toot.cafe avatar

"Speeding up the JavaScript ecosystem - The barrel file debacle" by Marvin Hagemeister https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-7/

Reminds me of my own "The cost of small modules" I published a bajillion years ago. What applies to bundlers also seems to apply to Node. https://nolanlawson.com/2016/08/15/the-cost-of-small-modules/

Although I'll note that this is probably more important for scripts and less important for long-running servers.

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Rebuilding emoji-picker-element on a custom framework" https://nolanlawson.com/2023/12/17/rebuilding-emoji-picker-element-on-a-custom-framework/

Wherein I build a custom JavaScript framework for what is, at this point, a seriously over-engineered emoji picker

nolan, to random
@nolan@toot.cafe avatar

Did some updates on fuite, my tool for finding memory leaks in web apps, and I'm pleasantly surprised to see that many of the JS and meta-frameworks I tested a couple years ago have cleaned up a bit, and their sites aren't leaking nearly as much memory.

Maybe more SPAs are taking memory leaks seriously? Hopefully the recent release of tools like fuite and MemLab (a very good competitor) have helped.

nolan, to random
@nolan@toot.cafe avatar

"My Shifting Open Source Priorities" by Gregory Szorc https://gregoryszorc.com/blog/2024/03/17/my-shifting-open-source-priorities

The details differ, but I identify a lot with this. Being the "random person in Nebraska" takes a lot of time and mental energy.

nolan, to random
@nolan@toot.cafe avatar

New blog post: "Bugs I’ve filed on browsers" https://nolanlawson.com/2024/03/03/bugs-ive-filed-on-browsers/

Kind of a navel-gazey post, but I thought it'd be interesting to look back on the bugs I've filed on browsers over the past ~10 years.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Leos
  • ngwrru68w68
  • InstantRegret
  • thenastyranch
  • magazineikmin
  • GTA5RPClips
  • rosin
  • osvaldo12
  • tacticalgear
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • DreamBathrooms
  • JUstTest
  • modclub
  • everett
  • provamag3
  • cubers
  • cisconetworking
  • ethstaker
  • Durango
  • mdbf
  • anitta
  • megavids
  • normalnudes
  • tester
  • lostlight
  • All magazines