@wycats@techhub.social
OSS enthusiast and @wykittens's parent. Co-author of the Extensible Web Manifesto. Front-end developer. @wifelette's husband. he/him
2 subscribers
Oct 5, 2021 • 25 tweets • 4 min read
Successful projects become successful for a whole host of reasons. The biggest one is empowering an existing group of users to do something they found difficult or impossible to do before.
Successful projects remain successful for a while host of reasons. The biggest one is that that's where the jobs are, and people want jobs.
Jul 30, 2021 • 11 tweets • 2 min read
I'm starting to feel that the role of oxytocin is ADHD is underemphasized, perhaps because the role of dopamine is so well-understood and is *also* the primary way approved medications work.
But the more I think about it the more I feel that bonding/empathetic activities have as much of an effect on my symptoms as novelty-seeking/craving/drive activities.
Jul 27, 2021 • 5 tweets • 1 min read
It feels like StackOverflow has developed a fatal flaw with regard to web content. Almost every popular question has a top-voted and approved answer that is out of date. In most cases, the answer is totally wrong and no decent developer would recommend it anymore.
But because of the way StackOverflow works, those questions are permanently poisoned. Even if someone tries to write a good response, it's basically impossible for it to organically become the obviously correct response.
Mar 30, 2021 • 22 tweets • 4 min read
What is <input type="text">?
"The input element represents a one line plain text edit control for the element's value."
- typing with a physical keyboard
- moving the cursor with a mouse
- moving the cursor with left and right keys
- on OSX, moving the cursor with emacs shortcuts
- selecting content with a mouse
Jan 23, 2021 • 23 tweets • 5 min read
Heterodox view: components are not the primary unit of composition in front end apps.
Components facilitate data flow. Coupling data flow to DOM as a matter of course creates DOM abstractions that are hard to reuse.
Frameworks know this, which is why every framework has a few privileged "directives" (like event handlers) that work with any element and don't use the component abstraction.
Dec 25, 2020 • 43 tweets • 7 min read
The thing I find frustrating about the idea that frontend dev is "for juniors" is that nobody would say it about other specializations.
Someone might say that it's *better* if a compiler author worked in a more full stack role.
They *wouldn't* say "compiler writing is for jrs"
Fundamentally, when people say "frontend is for juniors" they're making a few big mistakes.
Here's two of them:
1. They're underestimating the inherent difficulty of the work. 2. They're accepting memes that ridicule front end tools to color how they look at frontend developers
Dec 10, 2020 • 18 tweets • 3 min read
A rant on the "do forgivable PPP loans count as income" controversy.
1. Congress passed a law that lends small businesses money, and forgives the loans if they're spend on salaries (up to $100,000).
Dec 8, 2020 • 23 tweets • 6 min read
@ericnormand Big fan here! Bought your MEAP too :)
My day-to-day work involves Ember and the Glimmer reactivity model. I've watched your talk on reactivity and wonder how sure you are that reactivity is fundamentally at odds with the tenets of FP.
I definitely agree with your points in the context of React's reactivity model. Over the past few years, I've been working
(with @pzuraq) on iterating Glimmer's reactivity model towards something that (I now realize) matches the way you talk about FP.
Jul 7, 2020 • 11 tweets • 6 min read
@NamiHirschfeld@youyuxi There are ways to work it out (check out svelte), but it doesn't look like normal JS.
@NamiHirschfeld@youyuxi Back in the day, TC39 considered making modules "generative", which would mean you could instantiate them many times and get a new instance each time.
Instead, we decided to go with the ES2015 approach, which made modules singletons.
Apr 2, 2020 • 17 tweets • 3 min read
There's a bait-and-switch I see a *lot* when talking to my friends who work on web app performance at big companies.
It starts: because native is so much faster than web, it's very important that when the user *first* comes to the page, we instruct them to install the app.
I then say: surely the experience of downloading and installing a native app is worse than the worst-case-scenario of cold-booting a web app.
They say (here's the switch): are you trying to say that 15s load time is an acceptable amount of time to load a web page?
Oct 13, 2019 • 27 tweets • 6 min read
I'm extremely excited about TypeScript 3.7 (currently in beta). The release notes are here: devblogs.microsoft.com/typescript/ann…
Glimmer, the part of Ember I spend the most time on, is completely written in TypeScript, and it was one of the best decisions we made on that project. Ember itself is increasingly a TypeScript project, starting from an extremely dynamic JavaScript codebase. It's great!
Sep 17, 2019 • 22 tweets • 4 min read
What people often miss about our use of Glimmer templates in Ember is that it's an intentionally restricted programming language (like Elm or ClojureScript).
Our view is that you get the most value from these restrictions in the application's rendering code.
A nice thing about building a restricted programming language in the context of HTML is that people are already familiar with HTML and the basic idea of templating HTML.
This means that fairly aggressive limitations feel normal in the context of a template.
Jun 14, 2019 • 7 tweets • 2 min read
It's pretty hard to tell whether many Google technologies would make it out of the starting gate without the heavy thumb that Google monopoly power places on the scale.
Ironically, Googlers all believe that their technologies are winning because they're better.
When Chrome first came out, every Google property, including Search, implored their users to install Chrome. Tons of Google products straight up didn't work outside of Chrome at all.
I captured this screenshot in 2014 because of how frustrated I was getting as a Firefox user.
Jun 1, 2019 • 5 tweets • 1 min read
If a framework doesn't support web components well, it means they don't support HTML well.
A web component is an HTML tag and a bunch of attributes, which is why they're so great. If that doesn't "just work" it means there are a ton of invisible special cases in HTML handling.
It probably means SVG support is hacked in and doesn't work that well, and that there are frequent gotchas in normal HTML generation.
May 16, 2019 • 9 tweets • 5 min read
For global accessibility day I'm taking some time to work on getting transitions in the Ember router to announce themselves to assistive technology reliably.
I periodically remind myself that Fred Brooks had everything figured out in "No Silver Bullet"
The context of that article was a debate about whether the right way to improve productivity is to search for "new paradigms" for software, or whether we get improvements through workflow and human factors.
Jan 29, 2019 • 26 tweets • 4 min read
I've been using Windows for a few years. I originally switched because I noticed that there were a lot of Windows users trying to program in JavaScript, but that the dominant perspective in OSS (at the time) was "nobody uses Windows so it doesn't matter".
This is still a perspective I encounter frequently, but it's less ubiquitous these days.
Jan 24, 2019 • 22 tweets • 3 min read
When you're writing software, sometimes you find that it's useful to extract some common functionality into an abstraction.
That can happen because:
- there's more than one consumer of a common chunk of code
- the ppl working on a chunk of code are very different from those who work on the code it's being extracted from
- the extracted code has a diff domain from the code it's being extracted from
Sep 27, 2018 • 12 tweets • 2 min read
Something is really wrong with the idea that teenagers are expected to pull hijinx.
I was tormented in grade school and high school. Verbally, but also physically. I was locked in closet, thrown into bees nests and beaten in grade school.
Sep 23, 2018 • 11 tweets • 2 min read
The thing to understand about the Chrome team is that they always believe that their technical goals are the real reasons for the choices that they make that people find abhorrent.
Internal incentives push and provide funding for initiatives that increase spying (for example) or improve Google Search ad revenue (as another example), but the engineers working on the implementations are thinking about the user experience justifications.