Badabinski

joined 2 years ago
[–] Badabinski@kbin.social 8 points 1 year ago* (last edited 1 year ago) (22 children)

I'd like to interject for a moment. What you're referring to as FTP is, in fact, smelly hot garbage.

For context, I wrote this while waiting for a migraine to pass. I was angry at my brain for ruining my morning, and I like to shit on FTP. It's fun to be hyperbolic. I don't intend for this to be an attack on you, I was just bored and decided to write this ridiculous rant to pass the time.

I must once again rant about FTP. I've no idea if you're serious about liking it or you're just taking the piss, but seeing those three letters surrounded by whitespace reminds me of all the bad things in the world.

FTP is, as I've said, smelly hot garbage, and the infrastructure built to support FTP is even worse. Why? Well, one reason is that FTP has the most idiotic networking model conceivable. To see how crazy it is, let's compare to a more sane protocol, like HTTP (for simplicity's sake, I'll do HTTP/1.1). First, you get the underlying transport protocol stuff and probably SSL. The HTTP client opens a connection from some local ephemeral port to the destination server on port 80/443/whatever and does all the normal protocol things (so syn->synack->ack and Client Hello -> Server Hello+server cert -> client kex+change cipher -> change cipher -> encrypted data). FTP does TCP too! Same same so far (minus SSL, unless you're using FTPS). Next, the HTTP client goes like this:

GET /index.html HTTP/1.1
Host: www.whatever.the.fuck
# a bunch of other headers

and you know what fucking happens here? The fucking server responds with the data and a response code on the same goddamn TCP connection. You get a big, glorious response over the nice connection you established:

200 OK
# a bunch of headers and shit

HERE'S YOUR DAMN DATA NERD

So that's nice, and the client you're using to read this used that flow (or an evolution of that flow if you're using HTTP/2 or HTTP/3). So what does FTP do? It does one of two really stupid things depending on whether you're using active or passive mode. Active mode is the default for the protocol (although not the default for most clients), so let's analyze that! First, your FTP client initiates a TCP connection to your server on port 21 (by default), and then the server just sends this:

<--- 220 Rebex FTP Server ready.

ok, that kinda came out of nowhere. You're probably using a modern client that saves you from all of the godawful footguns, so it then asks the server what it supports:

---> FEAT
<--- 211-Supported extensions:
<---  AUTH TLS;SSL;
<---  CDUP
<---  CLNT
# A whole bunch of other 4 letter acronyms. If I was writing an FTP server, I'd make it swear at the user since there are a lot of fun 4 letter words

There's some other bullshit we don't care about right now, although highlights include sending the username and password in plain text. There's also ASCII vs binary mode. WE'LL GET BACK TO THAT. :|

So then we want to do a LIST. You know what happens in active mode? Your computer opens up some random fucking TCP port. It then instructs the FTP server to CONNECT TO YOUR GODDAMN COMPUTER. Your computer is the server, and the other side is now the client. I would post a more detailed overview of the FTP commands, but most servers on the internet disable active mode because it's a goddamn liability. All of the sudden, your computer has to be internet facing with open firewall ports, and that's just a whole heap of shit.

I'm probably not blowing many minds right now because people know about this shit. I just want to mention that this is how FTP was built. The data plane and control plane are separate, and back in 19XX when this shit was invented, you could trust your fellows on ARPANET and NAT didn't exist and sure HAM radio operators here's the entire goddamn 44.0.0.0/8 block for you to do packet switched radio. A simple protocol for simple times, back before we knew what was good and what was bad.

So, active mode sucks! PASV is the future, and is the default on basically all modern clients and servers! Passive mode works exactly the same as the above, except when the client goes to LIST, the server opens some random TCP port (I've often seen something like 44000-44010) and tells the client, "hey you, connect to 1.2.3.4:44000 to get you your tasty data." Sounds great, right? Well, there's a problem that I actually touched on in my last paragraph. Back when this dogshit was first squeezed out in the 70s, everyone had a public address. There were SO MANY addresses! 4 billion addresses? We'll never use all of those! That is clearly not the case anymore. We don't have enough addresses, and now we have this wonderful thing called NAT.

Continued in part 2.

[–] Badabinski@kbin.social 4 points 1 year ago

For Linux applications that respect XDG? Sure. There are plenty that don't because they either predate that specification, or they just don't care. Linux filesystems are generally much faster at executing reads on many small files, meaning fast search tools like ripgrep and fd make it so I don't really have to care. They'll run through my whole $HOME in 5 seconds flat. There's also stuff like locate, although I don't like maintaining an index. SSDs are so damn fast that I can just rg --hidden --glob '*.toml' 'the_setting_i_want_to_change' ~/ whenever I want.

[–] Badabinski@kbin.social 2 points 1 year ago

Huh, interesting! Sounds like it'll be perfect for OP.

[–] Badabinski@kbin.social 6 points 1 year ago* (last edited 1 year ago) (3 children)

There's always Termux and whatever you can install there. That sounds silly, but when I download from my phone, I do it using aria2c in Termux. It works great, and everything (AFAIK) is FOSS. zsh + fzf history completion/file finding (<c-T> is a godsend) makes it possible to use a CLI on a phone without going crazy. Only really works well if you're already comfortable with the command line, which is definitely a big if. It works really well for me, but I'm one of those weirdos that doesn't have a graphical file manager installed on their computers.

[–] Badabinski@kbin.social 5 points 1 year ago* (last edited 1 year ago)

Eating this stuff would be about as bad as eating any regular cat litter that uses Fuller's earth as the primary absorbent. The extra special ingredient (powdered quartz) is effectively nontoxic when ingested. The real issue is the chronic exposure to very fine silica dust.

Edit: to clarify, I do not believe that it would be safe for humans or animals to use this as cat litter. Just realized that this comment might have been taken as a "well akshually it's fine." It is not fine, silicosis is a dreadful condition.

[–] Badabinski@kbin.social 7 points 1 year ago* (last edited 1 year ago)

So I'd like to chime in. It looks the the two primary ingredients for ZEP-o-zorb are Fuller's earth and powdered quartz.

First, Fuller's earth. This is good stuff! It's actually often used as an industrial absorbent for chemical spills (the purpose of ZEP-o-zorb), as well as in some types of cat litter. It totally makes sense why this stuff would work well for you, and I understand why you've been using it for a year. It's perfect for the task and has basically no downsides.

Now, about the powdered quartz... Chemically known as silicon dioxide. It's often refered to as silica. Silica is also good stuff! It's in concrete, it's the main component of glass, and of particular interest for your application, it's very good at absorbing volatile organic smelly stuff. Seems perfect, right?

Unfortunately, powdered quartz has a downside. When it's in a very fine powder, it produces a lot of dust. This silicon dioxide dust is incredibly harmful to your lungs. Long-term exposure to silicon dioxide dust results in silicosis, which is a really serious illness that kills tens of thousands of people every year. Inhaling that dust can also give you lung cancer, lupus, rheumatoid arthritis, or other autoimmune disorders.

I totally understand why you felt that this product was a great option! I don't doubt that it serves as an absolutely excellent cat litter. I had two kitties that took the smelliest shits, and I was always searching for ways to fix that (either through diet, litter, stress reduction, or other things). I also understand how upsetting it can be to share something with people and be met with disbelief, denial, and accusations. However, I really want to urge you to look past all of that and reconsider your use of this product. The silica dust is practically invisible and tasteless, and it had the chance to cause you many years of problems. You and your cat deserve to be healthy.

[–] Badabinski@kbin.social 2 points 1 year ago* (last edited 1 year ago)

I'm really glad to hear that you're alright. Several skin conditions are effectively autoimmune disorders, so I'm absolutely not surprised that the treatment is rough—anything that affects your immune system is probably going to make you feel like shit. I have no idea if that's the case, but it seems likely. I hope that your procedure goes well, your treatment is effective, and your condition ceases to be a problem for you. Health and wellness always come first.

[–] Badabinski@kbin.social 2 points 1 year ago

This is excellent news! I've been installing from GitHub for a while and have been really pleased with how fluid the app is.

[–] Badabinski@kbin.social 12 points 1 year ago

You joke, but using air dropped bombs to put out fires is a tactic that's been used for quite a while. probably not the best thing to do next to a site with nuclear materials on-hand, but it's absolutely been done before.

[–] Badabinski@kbin.social 3 points 1 year ago (4 children)

Game devs specialize in writing code that gets displayed on a GUI. They also have to learn how to do scripting and some decision tree stuff for AI, but from day 1, they're writing for a GUI. Plus, game engines contain a tremendous amount of code that makes it very fast to make GUI. That game engine is huge and complicated and you have to spend a bunch of timing learning how the hell it all works. Software devs outside of the games industry haven't done that, and it would increase the size of a small and simple script from 200 lines of code and a few kilobytes to thousands of lines of code and multiple megabytes or gigabytes.

[–] Badabinski@kbin.social 3 points 1 year ago (1 children)

I'm a senior software dev and have built a shitload of tools and scripts that are command line only. I've been told that I'm a really great developer, and I have a knack for figuring things out, even when there's no documentation.

For the life of me, I absolutely cannot wrap my head around frontend shit. Like, I can do markdown just fine. HTML? CSS? Any of the popular frontend UI frameworks? I just seem to have some sort of conceptual and motivational block that prevents me from figuring out how to make those accursed fucking frontends.

It's such a different form of software development. I wish I could wrap my head around it, but I've accept that I'm not ever going to be a frontend dev. I just write server side stuff and scripts. I apologize if you ever have to use my software :(

[–] Badabinski@kbin.social 4 points 1 year ago

I'm much less worried about human piloted craft. It's very difficult to program complex decision making and discernment. The astronauts present in the first landers will have been intensively trained in how to avoid catastrophe and will likely be able to come up with solutions on the fly if unanticipated things happen. Still dangerous, but hopefully less so.

It will be much easier to land completely automatically once we have landing pads, radar tracking, and other infrastructure present on the surface. It's just hard to land a robot on an airless moon with a bunch of rocks and hills and shit everywhere.

view more: ‹ prev next ›