Live data from Hacker News

FTP is 50 years old

filestash.app

141–150 of 187 posts

Re: FTP is 50 years old

#141

Amazing. I never thought I would say this, but I actually implemented an FTP server in 2020. This was needed to support firmware updates to specific hardware (Electric Vehicle charging stations). Apparently embedded software developers choose FTP whenever a spec doesn't specify how binary file transfers should work. It was kind of amusing getting FTP to work in a modern cloud environment. I run a single Kubernetes po…

doesn't that open up like a ton of man-in-the-middle attacks? I realize it may just be one of those "no other option" things but dang gritted-teeth-emoji

Re: FTP is 50 years old

#142
post #61

Amazing. I never thought I would say this, but I actually implemented an FTP server in 2020. This was needed to support firmware updates to specific hardware (Electric Vehicle charging stations). Apparently embedded software developers choose FTP whenever a spec doesn't specify how binary file transfers should work. It was kind of amusing getting FTP to work in a modern cloud environment. I run a single Kubernetes po…

Just curious on the motivation. Why not run a regular FTP server and have your application periodically look for new files to process? For horizontal scaling, you just take a distributed lock on the file name.

They describe why, tons of edge cases from poorly implemented ftp clients, they needed full control over the protocol to handle weird edge cases because of multiple embedded clients.

Re: FTP is 50 years old

#143
post #61

Earlier quoted context omitted.

Just curious on the motivation. Why not run a regular FTP server and have your application periodically look for new files to process? For horizontal scaling, you just take a distributed lock on the file name.

That honestly sounds more complicated. FTP isn't that difficult of a protocol, especially if you only need to support one known client, you can take all sort of shortcuts. If you deploy an existing FTP server, and _then_ integrate with it at the filesystem level you now have two components, and your sysadmin requirements grow. Now you gotta administrate an FTP server that's probably written for classic UNIX single se…

Strings in c aren't that bad with stuff like bstring or glib. Just gotta be careful with deallocations so you don't get leaks. Much better than all the security issues with std strings. I mean not anywhere close to python/ruby/javascript easy but it's not as bad as HN likes to declare it.

Re: FTP is 50 years old

#144
post #109

On the other side upcoming Firefox 90 is removing support for FTP: https://blog.mozilla.org/addons/2021/04/15/built-in-ftp-impl...

Aww man, I wonder what the reason is. Firefox is always my go to application for opening things I only use every once in a while.

Because -very- few people use it per their telemetry so they don't want to maintain it anymore. It makes sense to throw out a sizeable chunk of code that is only being used by 0.1% of your users. Lftp is great command line replacement for it and extremely scriptable.

Re: FTP is 50 years old

#145

Earlier quoted context omitted.

Don’t worry, SFTP is the backbone of the US financial system.

Preach. I was setting up SFTP batch jobs for financial data last year. New jobs, not migrations.

Hopefully with a modern encryption selection that doesn't have known short circuit attacks?

Re: FTP is 50 years old

#146

Amazing. I never thought I would say this, but I actually implemented an FTP server in 2020. This was needed to support firmware updates to specific hardware (Electric Vehicle charging stations). Apparently embedded software developers choose FTP whenever a spec doesn't specify how binary file transfers should work. It was kind of amusing getting FTP to work in a modern cloud environment. I run a single Kubernetes po…

How much better have we gotten at specifying protocols? Have we learned how to make protocols less ambiguous and less susceptible to crazy edge cases which make it burdensome to implement support in practice once there are lots of sloppy implementations in the field?

1. in many cases the misbehaving clients and servers are obviously wrong, but Postel's law means they "worked for me" when the developer tested it 10 years ago before abandoning it.

2. The FTP protocol got a lot of cruft added to it that modern clients don't implement (e.g. any transfer mode other than stream).

3. FTP over TCP predates NATs and firewalls, which caused a lot of problems as well.

4. FTP was designed for human-readable, not machine-readable output. In particular the output of a LIST command is woefully underspecified.

I think #1 is the biggest issue for long-term viability of protocols. Not following Postel's law is a recipe for death (same reason why it's suicide for a browser to unilaterally untrust a major CA; any site that doesn't work in browser X is assumed to be browser X's fault), but following Postel's law is a recipe for undocumented de-facto standards with crazy edge cases.

Re: FTP is 50 years old

#147

Earlier quoted context omitted.

British naval signal and letter flags codified 1817. Morse code from 1840s. Ham radio still uses it when signal took weak fir voice. Proficiency was required for a ham license until 2006.

Morse may not be the oldest but my bet is on it being by far the most widely still used of anything nearly two centuries old. I got into ham radio a decade ago and learned Morse (poorly) just because. It already wasn't a requirement, but so many still use it.

Hopefully there's an app for listening to it and interpreting it? I bet those old timers get pretty fast with the Morse

Re: FTP is 50 years old

#148
post #59
post #3

What's the oldest protocol that's still regularly used?

"What's the oldest protocol that's still regularly used?" People are answering with old telephone codes and British naval signals, etc. You should be thinking: - The muslim call to prayers. - The affirmation of faith, as it is spoken in mass or (protestant) church ... or the first and second readings, followed by a Gospel reading. - The Jewish rite of circumcision (which is, among other things, almost certainly a sig…

I would hate to be involved with any generic means of communication that required circumcisions to impart information. That sounds like a rather gory way to tell my wife I'll be late for dinner.

Re: FTP is 50 years old

#149
post #36

Earlier quoted context omitted.

I wouldn't say it's obvious. There's some careful decisions in the design that might not be obvious at first sight, such as having upper and lowercase characters be the same save for a single bit.

I see. I would retract my statement if HN let me edit.

Retract it at the bottom where it is least likely to be seen like we do in modern papers/news sites.

Re: FTP is 50 years old

#150
post #30

Earlier quoted context omitted.

Older technologies are more reliable and last longer, because they have survived the changes of time. That also means if you learn older technology (my rule of thumb is 15+– think Elixir, Lisp, Haskell, Python, Java, C++), your knowledge is unlikely to expire.

FTP is not reliable. It has survived (though it's nearly dead) only due to entrenchment.

> though it's nearly dead

There's still millions of ftp servers running the wild: https://www.shodan.io/search?query=ftp

Post reply on HN