Blogging about React and JS at https://daveceddia.com.
Author of Pure React.
dave@daveceddia.com or @dceddia on Twitter
- dceddia parentIs it possible for Ghostty to figure out how much memory its child processes (or tabs) are using? If so maybe it would help to surface this number on or near the tab itself, similar to how Chrome started doing this if you hover over a tab. It seems like many of these stem from people misinterpreting the memory number in Activity Monitor, and maybe having memory numbers on the tabs would help avoid that.
- In many cases today “gif” is a misnomer anyway and mp4 is a better choice. Not always, not everywhere supports actual video.
But one case I see often: If you’re making a website with an animated gif that’s actually a .gif file, try it as an mp4 - smaller, smoother, proper colors, can still autoplay fine.
- I had kinda suspected this just based on my own experience of paper vs screen, but hadn’t run across any research.
After seeing your comment I went looking! I found this interesting: https://phys.org/news/2024-02-screens-paper-effective-absorb...
- > That's how it's always been only now you can buy the cert through Azure.
Where can you get an EV cert for $120/year? Last time I checked, all the places were more expensive and then you also had to deal with a hardware token.
Lest we talk past each other: it's true that it used to be sufficient to buy a non-EV cert for around the same money, where it didn't require a hardware token, and that was good enough... but they changed the rules in 2023.
- The situation on Windows got remarkably better and cheaper recently-ish with the addition of Azure code signing. Instead of hundreds or thousands for a cert it’s $10/month, if you meet the requirements (I think the business must have existed for some number of years first, and some other things).
If you go this route I highly recommend this article, because navigating through Azure to actually set it up is like getting through a maze. https://melatonin.dev/blog/code-signing-on-windows-with-azur...
- I’m coming to see the root is usually some kind of avoidance, always emotional, often subtle. I think this actually is pretty universal but the specifics vary wildly. It’s taken a while to unpack this. For a long time, when I’d about of a task I was avoiding, I’d just get this wave of a feeling of “ughhh” and turn away.
There’s something the feeling is trying to warn me about, and sitting with it can help figure it out and let it go. A lot of my own stuff stems from school I think. The funny thing is it’s often totally illogical. Like a sense of panic comes up - “oh no! Someone will be mad I haven’t started this yet!” - yes well wouldn’t getting it done avoid that outcome? “no but it’s too late! They’ll yell at me when I turn it in!”. My brain associated “doing the task” with “getting in trouble” in a weird way, and that emotional program runs whenever something vaguely similar comes up.
The surface-level fear might cover up a deeper fear underneath too (something like, I won’t be ok, or good enough, or loved anymore).
All this emotional stuff has been a recent focus of mine ever since finding Joe Hudson’s work. There’s a good playlist on procrastination that’s relevant here: https://m.youtube.com/playlist?list=PLrbct081G13-ot5FviKz1bt...
- This article reminded me of a talk I gave a couple times that went very smoothly because I pre-recorded the typing parts. Something like this:
- record the screen as you type out all of your code as you would do live
- don't need the audio, just the video
- edit it down to remove typos and pauses
- speed it up to a nice fast typing pace
Now you can drop the video into Keynote or whatever, and Play/Pause the video as you speak.
A crucial part of this is that the video has effectively no pauses. Maybe just a few short ones between sections, to leave time to hit Pause before the next keystrokes appear.
Instead of a 30 minute video that I had to perfectly keep pace with, it was like 5 minutes of rapid typing that I could speak along with and pause when it was time to explain something.
- This kind of stuff is where my anxiety rises a bit. Another example like this is audio code - it compiles and “works” but there could be subtle timing bugs or things that cause pops and clicks that are very hard to track down without tracing through the code and building that whole mental model yourself.
There’s a great sweet spot though around stuff like “make me this CRUD endpoint and a migration and a model with these fields and an admin dashboard”.
- Yep this matches my experience pretty well! It’s been a good printer and I haven’t had to do much, and I avoid fiddling and mostly use it as a tool. I’m always eyeing the newer faster printers but I don’t love the cloudiness of Bambu and Prusa’s new stuff seems nice but not quite worth the leap yet. Voron has interested me for a while though.
- I love the idea of building a printer, but I know that my attention span is limited on these sorts of things. As in, I’ll be reliably obsessed until it’s done and tuned, and then I’ll forget everything until the next time I want to use it.
So my big question, for someone who’s owned one a while: is the printer ever “done”?
Is there a point after which it “just works”? Or is it always going to be more like “it’s great! I just need to tweak the blah blah setting every time and retighten the frobnitz every 3 prints, no big deal really!”
I always see the quote about “if you like printERS, build, but if you like printING, just buy one” - but nobody talks about the timescale on the fiddling and whether it ever stops.
(currently own a Prusa mk3s I built as a kit and it’s been pretty solid as a tool!)
- This resonated with me, something mentioned but not explicitly called out - the author started by working out at home, built the habit and some confidence, and later it morphed into a solid gym habit. But it didn’t start at the gym, and the comment about “it would’ve looked dumb to anyone watching” is crucial I think.
I’ve had a lot of good success with bodyweight workouts at home and I just want to highlight that bit of the author’s story for anyone else who feels like the gym is the only way - it’s not! And if you don’t like the idea of going to the gym for whatever reason, you can in fact exercise at home with very little equipment.
- Sketch, CleanShot, and Jetbrains come to mind as software that uses this model. It seems the most fair to me: pay once, get forever usage of the software, and one year of free updates. After that, additional years of updates are often a discounted rate.
An issue I ran into when I tried this with my software is that it’s not a very common model so people didn’t really get it. They’d call it a subscription, or they’d call it lifetime, and some got very angry when I mentioned anything about renewing for updates.
It’s a hard thing to describe succinctly, and it’s even harder to ensure that description survives the game of telephone as they tell their friends/followers.
- This seems like a very useful weather product to supply to pilots. I wonder if anyone is already doing this? I know for instance Sirius XM weather has winds aloft info, but it’s not all that accurate in my (albeit limited) experience. I think that’s based on forecasts vs real time data though.
- I know it’s usually taken as a given around here that Electron is slow, and many of the big-name apps using it are cited as examples with good reason.
From working on a Tauri app myself for a few years (video editor) I just think the blame is misattributed. These things are not inherently slow. Slower than native? Maybe, probably, at the level of milliseconds. Visibly laggy? No, that’s the badly-written UI code’s fault. (see also: the latest iterations of the macOS System Settings UI, where the search box lags like crazy)
A webview can be extremely responsive. It won’t be if you treat it like a web page (where clicking buttons fires off HTTP requests) or if you let the JS framework code get out of hand, but those are not the fault of the wrapper.
If you like building with HTML/CSS/JS then I’d recommend doing some perf experiments to see how far these tools can take you. Of course if you don’t want to use that stack then pick something else :)
If you’re building photoshop, the main UI will probably be canvas anyway, where drawing is fully under your control, no matter which framework you go with. That stuff can be very fast or very not-fast depending on how the code is written.
- A friend of mine set up a cron job coupled with the Claude API to process his email inbox every 30 minutes and unsubscribe/archive/delete as necessary. It could also be expanded to draft replies (I forget if his does this) and even send them, if you’re feeling lucky. I’m pretty sure the AI (I’m guessing Claude Code in this case) wrote most or all of the code for the script that does the interaction with the email API.
An example of my own, not agentic or running in a loop, but might be an interesting example of a use case for this stuff: I had a CSV file of old coupon codes I needed to process. Everything would start in limbo, uncategorized. Then I wanted to be able to search for some common substrings and delete them, search for other common substrings and keep them. I described what I wanted to do with Claude 3.7 and it built out a ruby script that gave me an interactive menu of commands like search to select/show all/delete selected/keep selected. It was an awesome little throwaway script that would’ve taken me embarrassingly long to write, or I could’ve done it all by hand in Excel or at the command line with grep and stuff, but I think it would’ve taken longer.
Honestly one of the hard things about using AI for me is remembering to try to use it, or coming up with interesting things to try. Building up that new pattern recognition.
- The title implies (well, I'd say explicitly states with the word "vetting") that restaurants are trying to filter guests, maybe to avoid troublesome ones with uncouth posts online or something. And many of the comments are replying to that interpretation, based on the unfairness suggested in the title. It's not only clickbait, it's outrage bait, designed to spark anger.
The article itself is about how restaurants have gone above and beyond for some guests where they've been able to tell from their social media that they're celebrating a special occasion or some other thing like that. To make the guests' experience better and memorable.
There's a privacy angle to this, should restaurants do that, slippery slope, etc etc... but many of the comments aren't talking about that. They're responding to the inflammatory title.
I don't think we often get such a clear picture into the why behind online outrage and how clearly manufactured it can often be. I think it's easy to believe people are angry for a good reason, to take the anger "on good faith" in some sense. In this case, with the title being so far from the article, it's clear to see what's going on. And makes one wonder about the rest of the outrage out there.
- Yep this terrifies me, 100%. We’re slowly losing the open internet and the frog is being boiled slowly enough that people are very happy to defend the rising temperature.
If DDoS wasn’t a scary enough boogeyman to get people to install Cloudflare as a man-in-the-middle on all their website traffic, maybe the threat of AI scrapers will do the trick?
The thing about this slow slide is it’s always defensible. Someone can always say “but I don’t want my site to be scraped, and this service is free, or even better yet, I can set up my own toll booth and collect money! They’re wonderful!”
Trouble is, one day, at this rate, almost all internet traffic will be going through that same gate. And once they have literally everyone (and all their traffic)… well, internet access is an immense amount of power to wield and I can’t see a world in which it remains untainted by commercial and government interests forever.
And “forever” is what’s at stake, because it’ll be near impossible to recover from once 99% of the population is happy to use one of the 3 approved browsers on the 2 approved devices (latest version only). Feels like we’re already accepting that future at an increasing rate.