HNHacker News
TopNewBestAskShowJobs

dceddia

3,334 karma · joined March 5, 2014

Making video editing faster with Recut https://getrecut.com

Blogging about React and JS at https://daveceddia.com.

Author of Pure React.

dave@daveceddia.com or @dceddia on Twitter

submissionscomments
dceddia··on Pre-record your demos
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.

dceddia··on Claude Code 2.0
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”.

dceddia··on Show HN: Curated gamedev specific search engine
I’ve noticed this is true of a lot of markets. I think of it like a triangle: a huge base of newbies, a smaller layer of intermediate folks, and a tiny tip of experts. If you’re trying to do an education-based business it’s a lot easier to try to sell to beginners.
dceddia··on Ask HN: What's a good 3D Printer for sub $1000?
Thanks for your insight! That’s great, seems like it’s been a fun project but not like a REQUIRED ongoing project. My first printer was a cheap i3 clone and it was more in the “never works right” category and I was hoping to avoid going back to something like that experience haha.
dceddia··on Ask HN: What's a good 3D Printer for sub $1000?
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.
dceddia··on Ask HN: What's a good 3D Printer for sub $1000?
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!)

dceddia··on CorentinJ: Real-Time Voice Cloning (2021)
Cloning the repo (running git clone on your computer) is enough because it makes a local copy. Forking merely makes a copy under your account on GitHub though which is not going to survive if they go on a deleting spree.
dceddia··on Becoming the person who does the thing
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.

dceddia··on What Happened to Egghead Software
I (my parents) got my copy of X-Wing from our local Egghead in the 90s. And Lemmings! I loved browsing that store as a kid.
dceddia··on GitHub is no longer independent at Microsoft after CEO resignation
Today we can still anonymously clone repos.
dceddia··on Write "Freehold" Software
In my case there's not really one product I can expect everyone to know about, but I think this works well when there's an existing big product in the category to point to as an example.
dceddia··on Write "Freehold" Software
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.

dceddia··on Weather Model based on ADS-B
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.
dceddia··on I tried Servo
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.

dceddia··on The current hype around autonomous agents, and what actually works in production
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.

dceddia··on Fine dining restaurants researching guests to make their dinner unforgettable
Thanks for running the experiment :)
dceddia··on Fine dining restaurants researching guests to make their dinner unforgettable
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.

dceddia··on Fine dining restaurants researching guests to make their dinner unforgettable
These comments are such a great pointer to the way outrage is engineered.
dceddia··on The Moat of Low Status
If it turns into treating it as a “should” then my experience is yes, definitely, that’s a death knell for basically anything. Without the “should” it continues to be fun. The trick is threading that needle.
dceddia··on Cloudflare Introduces Default Blocking of A.I. Data Scrapers
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.

dceddia··on Show HN: SVG Animation Software
Have you hit the point where they have to pay again, yet?

My product was originally offered as “one time purchase, one year of updates”, and the customer confusion/anger didn’t show up until I offered a discounted early renewal over Black Friday a few years back.

dceddia··on Show HN: SVG Animation Software
So many comments in here interpreting “lifetime license” as “lifetime updates”. Ugh. As a person with a one-time purchase product I feel the pain of trying to succinctly explain the idea of “one time purchase, comes with updates for 1 year / 1 major version”.

msarca - it might be worth looking at the wording on CleanShot’s pricing page. I notice they avoid the word “lifetime” entirely. I wonder how much confusion they still get.

dceddia··on The Second Half
Yeah! I think an AST is sort of what I'm envisioning here, but with much broader metadata, including requirements and implicit assumptions and stuff.

As a concrete example, a random bit of code from the minih264 encoder:

    /**
    *   Quantized/dequantized representation for 4x4 block
    */
    typedef struct
    {
        int16_t qv[16];     // quantized coefficient
        int16_t dq[16];     // dequantized
    } quant_t;
Someone who's built an encoder or studied h264 probably knows what this is for (I have a very fuzzy idea). But even with the comment there's lots of questions. Are these arrays restricted to certain values? Can they span the full int16, or are there limits, or are the bits packed in an interesting way? Can they be negative? Why would you want to store these 2 numbers together in a struct, why not separately? Do they get populated at the same time, or at different phases of the pipeline, or are they built up over multiple passes? Are all of these questions ridiculous because I don't really understand enough about how h264 works (probably)?

LLMs already have a lot of this knowledge, and could probably answer if prompted, but my point is more that the code doesn't explicitly lay out all of these things unless you carefully trace the execution, and even then, some of the requirements might not be evident. Maybe negative numbers aren't valid here (I don't actually know) but the reason that invariant gets upheld is an abs() call 6 levels up the call stack, or the data read from the file is always positive so we just don't have to worry about it. I dunno.

Anyway I imagine LLMs could be even more useful if they knew more about all this implicit context somehow, and I think this is the kind of stuff that just piles up as a codebase gets larger.

dceddia··on The Second Half
The whole book could be the surrounding context, not just a sentence or two, and I think that still fits with the point I wanted to make - that written words are more linear or in the same plane compared to code which is more "multidimensional" in a sense, when you start to consider the reasons behind the code, the order of execution, things being executed multiple times, etc.
dceddia··on The Second Half
I wonder how much of this is that code is less explicit than written language in some ways.

With English, the meaning of a sentence is mostly self-contained. The words have inherent meaning, and if they’re not enough on their own, usually the surrounding sentences give enough context to infer the meaning.

Usually you don’t have to go looking back 4 chapters or look in another book to figure out the implications of the words you’re reading. When you DO need to do that (maybe reading a research paper for instance), the connected knowledge is all at the same level of abstraction.

But with code, despite it being very explicit at the token level, the “meaning” is all over the map, and depends a lot on the unwritten mental models the person was envisioning when they wrote it. Function names might be incorrect in subtle or not-so-subtle ways, and side effects and order of execution in one area could affect something in a whole other part of the system (not to mention across the network, but that seems like a separate case to worry about). There’s implicit assumptions about timing and such. I don’t know how we’d represent all this other than having extensive and accurate comments everywhere, or maybe some kind of execution graph, but it seems like an important challenge to tackle if we want LLMs to get better at reasoning about larger code bases.

dceddia··on Owning my own data, part 1: Integrating a self-hosted calendar solution
Nope, there's no forwarding either direction.
dceddia··on Owning my own data, part 1: Integrating a self-hosted calendar solution
It's very reliable, but only on ONE of my fastmail addresses. My Google account predates the fastmail one by a long time.

I had a theory that maybe at some point I set up iCloud with both of these accounts (fastmail + gmail) and it's somehow intercepting these and rewriting them. It's not a super strong theory. Another thought is maybe it's a DNS setting somewhere?

dceddia··on Owning my own data, part 1: Integrating a self-hosted calendar solution
I have the weirdest calendar problem: if someone sends an invite to my Fastmail account, it gets swallowed up by Gmail. It never shows up in Fastmail, and in the calendar invite it appears as if it was sent to my Gmail address even though it wasn’t. It’s the strangest thing and I don’t know how to stop it or even what’s causing it (Fastmail support also had no idea).
dceddia··on Honey has now lost 4M Chrome users after shady tactics were revealed
You basically also end up needing a burner phone number for these too nowadays. Feels like every one of these I’ve tried in recent months starts with “sign up for 10% off” with an email input, followed by “one more step, give us your phone number!”
dceddia··on The New Three-Tier Application
Your suggestion aligns well with how Ruby on Rails tends to handle this. All of the stuff in your list of workloads would be considered “jobs” and they get enqueued asynchronously and run at some later time. The jobs run in another process, and can even be (often are) on another server so it’s not bogging down the main app, and they can communicate their success or failure via the main database.
← PreviousPage 2 of 27Next →