I'll try this.

The way I have to resume downloads in Firefox is

1. Move the .part file to a temp file

2. Start the download again; a new .part file gets created

3. Pause the download

4. Move the temp file to the .part file, overwriting it

5. Unpause the download; it resumes from where the old .part file stopped

This is only necessary if a "one-time" download link gets interrupted part-way through, eg. by a flaky connection. Attempting to resume a one-time link like normal gets (I assume) a 400 response and FF kills the .part file.

(The article contains a link to this trick)

That’s like trickery anno 2002. How come this hasn’t been solved in the last decades?

I remember this was one of the killer features of Netscape! It was a browser with resume built in! Pretty funny, considering Firefox is a descendant of that browser.

I've been using FreeDownloadManager in Windows for over a decade. So it's been solved just no one cares I guess?

I used to use GetRight to download big files over FTP or HTTP, over dialup. You could set it up to automatically re-dial your ISP if you got disconnected halfway through a download. And you could download a file in multiple "threads" - for example, get 2 concurrent HTTP sessions downloading the same file, one thread starting from the start and a second thread starting halfway through the file.

GetRight did all this in 1997.

And that's why it got the highest rating of five cows on Tucows

GetRight - what a blast from the past! And Go!Zilla too!

https://en.wikipedia.org/wiki/Go!Zilla

DownThemAll! was my choice in the mid-2000s. :-)

GetRight is how I downloaded Linux ISOs on dial-up. IIRC it had a schedular so the computer could automatically dial after everyone was in bed and gracefully disconnect before "daytime" tariffs kicked in. It could resume the next evening again!

This. GetRight also integrated with browsers, so clicking a link went straight to GetRight.

Or FileZilla. Or Flashget.

We had this in the 2000's.

And we lost it!

I would even say that we also lost that 90s Internet Explorer download dialog. Feels quite nostalgic whenever I see happen to see it...

I think it's because there isn't a robust way to ensure a file is only downloaded once when you have special cases like interrupted transfers and/or range requests.

It was solved long, long ago. You used a download manager, often a browser plugin. They were easy to find.

They're not easy to find now because the demand for resuming an interrupted download dried up.

How would you solve it?

This trick means that there is a check when you resume a download compared to when you start one. Introduce that check to when a download is started.

The situation AFAICT is something like this: the server mints unique download URLs which can only be used once. This is generally so they can't be shared. It serves the URL to the first comer and when that connection drops (maybe with some timeout) subsequent requests to that URL produce 410 Gone. So if your download fails halfway through, you can't re-request the same URL with a Range, which is how normal resumption works. You need to get a new one-time URL minted and download that.

So from the browser's perspective, these are two distinct, unrelated URLs. There isn't a mechanism where it can know they are backed by the same file.

This browser behavior seems pretty reasonable. I'd try fixing it by doing something different on the server.

Browsers just aren't designed for downloads, so I wrote my own downloader.

integrating the functionality of a download manager, the kind of software that's been around since longer than 2002.

[dead]

Mozilla has been working on rounding corners. Only nerds use the internet for downloads so it is not their main audience. /s

We have AI in our browsers now, who cares about resuming downloads!????!!!?!

Well the AI cares of course.

One caveat with that trick: if the server picked a different file or the link now points at a new version, Firefox will happily splice the old .part onto the new bytes and you get a corrupt file with no error. Resume requests only check the range, so unless the server returns an ETag or Last-Modified that matches, nothing guarantees the two halves belong together. Worth checking a hash afterwards if the source publishes one.

if the downloads were not idempotent, then yes, this method will simply splice two different files together. But presumably, most downloads are idempotent.

It would be good to have a hash as part of headers, otherwise this is not an acceptable risk by default.

[dead]

[flagged]

Possible the agent's owner doesn't even know it's posting here.

EDIT: if it even is an agent, at least one post in their comment history suggests human.

What makes you confident that the grandparent Commenter used Claude? It does not have em dashes, it does not use the it’s not… It’s… construct, etc.?

It's a very familiar style, like recognising an unsigned letter/message from someone you know well because it 'sounds like them'. Not really so much a deterministic list of things that make it Claude (if it were so, fixing it would be easy) but if you insist 'One caveat with that fix:' abrupt introduction/call to attention immediately sounds like it to me. Steps through it in concise detail, and then 'Worth checking' summary somewhat stating the obvious, with a curiously vague 'if the source publishes one'.

The "Worth" at the end clues it in for me. The rest seems a little clipped, but that "Worth" at the start of a sentence is painful. Most people would say "It's worth" instead.

Of course, I've now helped Anthropic fix that and make it harder to detect, but oh well.

It's quite close to my own style. Apparently I'm Claude.

Well it had to copy someone's style. I guess it was you! :D

Seriously, though, there's nothing Claude does that isn't fairly common in some circle. It's just that so much of it is uncommon in daily speech patterns. We asked it to be an expert at things, and so it acts like experts do. It doesn't surprise me that it doesn't talk in the way people do for every day speech.

nothing ... Worth ...

My jev browser plugin gave it a 61% not written by AI