"Software engineering under the spotlight" by Sean Goedecke https://www.seangoedecke.com/the-spotlight/
One of the best descriptions of working in a big tech company I've read.
"Software engineering under the spotlight" by Sean Goedecke https://www.seangoedecke.com/the-spotlight/
One of the best descriptions of working in a big tech company I've read.
I held out for a long time, but I finally started using LLMs in my regular coding work. I couldn't deny the utility of tools like Claude any longer, when it can do in 2 minutes what would take me an hour.
There are problems: hallucinations, verbosity, bad/unperformant/inaccessible code. I have to correct it a lot. That's OK.
The main problem I find is that it's sucked a lot of the fun out of coding for me. It's like I've been pushed into a management role when I just wanted to stay a coder.
Of course, this is a choice: I *could* choose not to use LLMs. When I ride my bike, I don't bemoan the fact that a car could do it faster – the goal is exercise.
But nobody's paying me to ride my bike. If I were a delivery driver, it'd be pretty unprofessional to show up an hour late with a cold pizza just because I like biking.
With LLMs, it almost feels like malpractice *not* to use them at this point. I can't justify taking ~3x longer to ship a feature just because I don't enjoy using them.
The other issue of course is that I'm not learning as much when I use LLMs. Even if it's an iterative, back-and-forth process, the tool is doing ~80% of the thinking for me.
It feels like I either need to spend more time learning outside of coding, or just accept at some level that I'm "cashing in my chips" and relying on ~20 years of actual coding experience.
Either way, I feel less excited by these tools than defeated. They're incredible magic wands, but I kind of liked doing my own sorcery?
I'm familiar with all the arguments against GenAI, and I'm a big fan of authors like @baldur whose excellent book, The Intelligence Illusion, I've read twice. It's highly recommended. https://illusion.baldurbjarnason.com/
I have a degree in computational linguistics, and that's partly why I was so skeptical of these tools for so long. I still am! But more and more I felt like the world was moving on without me. To this day I feel deeply conflicted.
@baldur These are good points, thank you. Maybe that's the heart of my inner conflict: these tools "work" (for some definition of "work") but they are inherently dehumanizing and insulting. They make a mockery of my ~20 years of hard-won expertise.
Ezra Klein in his podcast once said that the core "message" of GenAI (in the McLuhan sense) is: "You are derivative." I totally agree with that.
#LineageOS is pretty incredible. I have an 8-year-old OnePlus 5T rocking the latest version of Android thanks to LineageOS 22.1. The battery still lasts more than a day, and the phone only cost me $500 (in 2017 dollars). Pretty great value for money.
Every time I mess around with sysadmin stuff, I'm always flummoxed by dumb things like "what is the difference between /usr/bin and /usr/local/bin, what the heck is an LD_LIBRARY_PATH, should I use sudo for this build tool or not," etc.). I guess this is how backend devs feel when they have to tweak a Webpack config.
Maybe this is why I'm a little skeptical of the whole "move everything to Rust/Zig/Go/etc" movement in the JS ecosystem. I like JavaScript, I understand JavaScript. If I have to debug some JS tool, I'm well-equipped. Whereas if I have to dip down into some weird error like "libfoo.so.42: cannot open shared object file" then I know I'm gonna get lost.
Plus I don't think we've come close to exhausting all the ways to optimize JS deps: https://marvinh.dev/blog/speeding-up-javascript-ecosystem/
A while ago I was looking at the Element properties that reflect to attributes (title, role, tabindex, etc.) and which ones remove the attribute when you set it to null or undefined, and whether the default value is null or the empty string or 0 or something else, and I came away reflecting that you could really drive yourself nuts with all this stuff
The worst part of building a JavaScript framework is that you really gotta sweat the details:
- some tags are self-closing (<input>), others are not (<div>)
- SVG is case sensitive, HTML is not
- `! important` is valid CSS (yes with the whitespace)
I feel like I discover some weird thing every other week.
"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.
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!
"Resource Loading at the Cutting Edge" by @programmingart https://www.youtube.com/watch?v=MV034VqHv5Q
Entertaining and slightly horrifying talk about how buggy HTTP resource priorities are across browsers, servers, HTTP versions… My takeaway is that I will probably just defer to the experts on this stuff instead of trying to go mucking around in the priorities myself.
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?
@alex I gave it a shot, I really did. But the whole "let me handle all your module loading and script transformation and also simulate a whole browser for you, but slowly" just drives me nuts
I know they have "experimental" ESM support, but it's been that way forever and just doesn't inspire me with confidence. https://jestjs.io/docs/ecmascript-modules
"CommonJS is hurting JavaScript" by Andy Jiang https://deno.com/blog/commonjs-is-hurting-javascript
The biggest thing holding back CommonJS deprecation in my current projects is Jest. I really have to figure out how to migrate off of it.
"AI is killing the old web, and the new web struggles to be born" by James Vincent https://www.theverge.com/2023/6/26/23773914/ai-large-language-models-data-scraping-generation-remaking-web
Really feels like we're starting to reach some kind of breaking point with the web.
One weird (possible) downstream impact of the recent chaos at Twitter: I notice that Twemoji is still stuck on Emoji v14, and the contributor graph shows no significant updates since 2022.
If you use Firefox, this means you can't see the shaking face emoji (🫨), or you see the version provided by the OS/website instead of the one built in to Firefox.
toot.cafe admin, dev at Socket. Creator of https://pinafore.social. Formerly Salesforce and Microsoft Edge. The web is for everyone.
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.