Theres quite a few sites that still use it and existing ones in the Fediverse have it built in (which is really cool). But your right, the general public have no concept of having something download and queue up on a service rather than just going to the site. And the RSS clients are all over the place with quality...
WebSub (formerly PubSubHubbub). Should have been a proper replacement for RSS with push support instead of polling. Too bad the docs were awful and adopting it as an end user was so difficult that it never caught on.
I wouldn't say that it never caught on. I run a feed reader and ~6% of feeds have WebSub. Most of these are probably wordpress.com blogs which include it by default.
YouTube also sort of supports it, but they don't really follow the standard so I don't think it counts.
But the nice thing about WebSub is that it is sort of an invisible upgrade to the existing feed (or any other HTTP URI) so it just works when blogs enable it.
Most major feed reader services support it. One problem is that you need a stable URL to receive the notifications. So it is hard to make work with client-side readers. But I don't think there is really a way around this other than holding a connection open to every feed you follow. So I would say that it does its job well. I don't really see a need to get to 100% adoption or whatever. If you have a simple static-site blog that updates every month or so I don't think it is a big deal that it doesn't support WebSub.
IPv6. Lack of IPv4 addresses it's a problem, specially in poorer countries. But still lots of servers and ISPs don't support it natively. And what is worse. Lots of sysadmins don't want to learn it.
My university recently had Internet problems, where the DHCP only leased Out ipv6 addresses. For two days, we could all see which sites implemented ipv6 and which didn't.
Many big corpo sites like GitHub or discord Apperently don't. Small stuff like my personal website or https://suikagame.com do.
Lots of really large sites are horribly misconfigured. I had intermittent issues because one of the edge hosts in Netflix ‘s round robin dns did not do MTU discovery properly.
My isp decided to put me behind a CGNAT and broke my access to my network from outside my network. Wanted to charge me $5 a month to get around it. It's not easy to get around for a layman, but possible. More than anything it just pissed me off that I'd have to pay for something that 1 day ago was free.
Say this to my very large Canadian ISP who still doesn’t support IPv6 for residential customers. Last I checked, adoption in Canada was still under 50%.
50%?? I fucking wish. In Spain we are at 5%. I finally got IPv6 in my phone this year, but I want it in my home, which is still only available as IPv4 even if they're the same ISP.
Markdown. Its only in tech-spaces that its preferred, but it should be used everywhere. You can even write full books and academic papers in markdown (maybe with only a few extensions like latex / mathjax).
Instead, in a lot of fields, people are passing around variants of microsoft word documents with weird formatting and no standardization around headings, quotes, and comments.
Markdown is terrible as a standard because every parser works differently and when you try to standardize it (CommonMark, etc.), you find out that there are a bajillion edge cases, leading to an extremely bloated specification.
Man, I've written three novels plus assorted shorter form stories in markdown.
There's a learning curve, but once you get going, it's so fluid. The problem is that when it comes time to format for release, you have to convert to something else, and not every word processor can handle markdown. It's extra work, but worth it, imo.
My main wishlist for markdown, is a better live collaborative markdown editor. Hedgedoc works, but it's showing it's age, and they don't seem to be getting close to releasing v2.
Etherpad also has a markdown extension, but it doesn't import / export that well.
Markdown is awesome, I agree! I did not realize you could extend markdown with anything other than html. The html extension is quite nice to do anything that markdown doesn't support natively, but I wish there was an easier way to extend markdown. Maybe the ones you listed are what I need.
Depends on the type of book. Since you need HTML for all non default styles. Therefore, it raises the bar... you need a bit of web dev knowledge which removes the biggest benefit of markdown: simplicity / ease of use.
The problem with Markdown is lack of quality software support. You don't want to write a book in a text field on GitHub, Lemmy or Reddit. You want to write your book in MS Word or LibreOffice. Existing MD software is, to put it gently, an amazing pile of utter shit. If you're not a software developer with an MD extension in VS Code, then you won't use MD for anything.
Unbelievable that we have to rely on Google and co for sth as essential as push messages! Even among the open source community, the adoption is surprisingly limited.
It is what is used for browser push messages, is already widely supported. Is compatible with existing push infrastructure and users and is end-to-end encrypted. IDK why Unified Push felt the need to create a new protocol when a perfectly good one already existed.
Although there is no "client side" spec. The Unified Push client side could be useful. But they should throw away their custom backend protocol and just use Web Push.
In the world of computers, why would remembering numbers be the stop for new technologies?
Do you remember anyone's public key? Certificate?
I don't even remember domain (most) names, just Google them or save them as bookmarks or something.
The reason IPv4 still exists is because ISPs benefit from its scarcity. Big ISPs already paid a lot of money to own IPv4 addresses, if they switched to IPv6 that investnywould be worthless.
Try selling static IPv6 addresses as they do now with IPv4. People would laugh at them and just get a free IPv6 address from an ISP that wants to get new users and doesn't charge for it.
The longer ISPs delay the adoption of IPv6, the longer they can milk IPv4 scarcity.
damn if only we had a service that like, obfuscated and abstracted these hard to remember IPs that aren't very user friendly, and turned them into something more usable. That would be cool i think. Someone should make that.
IPv6, needed for modern Internet not to collapse, would make many other important things easier. Easier to become an ISP, to selfhost, to build P2P networks, etc.
I really hope matrix gets native VoIP. I saw like 2 years ago it was in beta, haven't kept up with it though. I'd also really like voice channels like discord so my friends and I can replace discord but it seems like matrix isn't interested in being a discord replacement
Matrix I have doubts about. The idea of Tox was nicer, but the implementation quality and the scandal at some point didn't help.
Tox felt more playable, like piping files over it or a remote shell over it (I know, bad associations, but still), or even using it for VPN. I think there were clients allowing to do such stuff, and the protocol allows it.
EDIT: I mean, it's still alive, just don't see it claiming the place of FOSS old Skype replacement as it did.
GNUNet - all you people mentioning it have peers? I tried to set it up a few weeks ago, couldn't get peers.
to be clear, I2P is not really intended for anything, it's used for everything. It supports all kinds of things, and there are people doing all kinds of things on it. Though i could see potential technological limitations being a problem.
About Tox, I am not a fan of mixing up universal delivering of packets and applications. Piping files or using as VPS feels like something that would be better done with proper full network and not be mixed with chat.
Such a simple solution for the cookie banner issue. But it prevented websites from tricking users into allowing them to gather their data, so it had to go.
RSS (RDF Site Summary or Really Simple Syndication) It is in use a fair amount, but it is usually buried. Many people don't know it exists and because of that I am afraid it will one day go away.
I find it a great simple way to stay up to date across multiple web sites the way I want to (on my terms, not theirs) By the way, it works on Lemmy to :)
Honestly there is rarely a blog I want to follow that doesn't have it. I do think it would be great to have more readers using it so that it becomes more significant, but for my reading it is actually pretty great.
Markdown really should have more widespread support than it does. It's just the right mix between plain text and an office document, I took my college notes with it in fact cause of how fast it was to format stuff. But as far as I know, there's no default program on any of the (major) OS's or Distros for viewing it.
Maybe it's just due to a lack of standards for formatting or something, but regardless I do wish it was used and supported more.
Heads up for anyone (like me) who isn't already familiar with SimpleX, unfortunately its name makes it impossible to search for unless you already know what it is.
I was only able to track it down after a couple frustrating minutes after I added "linux" into the search on a lark.
You're going off-topic from the OP question :-) But to answer your new question : I do not trust Matrix enough when it comes to privacy. I know that this link is old but still. https://disroot.org/en/blog/matrix-closure
Then again I do not trust Signal that much either but sometimes compromises need to be made to get things done. With XMPP the end user can host their own server if they wish to, without meta data going to a centralized point. And video calls via XMPP and Conversations were a pleasure to use when I used it during the Covid-19 pandemic.
IOT devices shouldn't connect to wifi. ZWave or zigbee is much better suited to IOT stuff, but it seems to mostly get adopted in very limited, locked down proprietary shit like Hue Lights.
There's only one case I've found where Wi-Fi use seems acceptable in IoT: ESPHome. It's open-source firmware for microcontrollers that makes DIY IoT sensors and controls accessible over LAN without phoning home to whatever remote server, without trying to make anything accessible over the Internet, and without breaking in any way if the device has no route to the Internet.
I still wouldn't call Wi-Fi use ideal even there; mesh can help in larger homes and Z-Wave/Zigbee radios tend to be more power efficient, though ESP32 isn't exactly suited for a battery-powered device that's expected to run 24/7 regardless.
Yes but at least Hue (and IKEA and LIDL and many other brands') lights work well with open Zigbee coordinators, like deconz and ZHA in Home Assistant.
I wish there were more Zigbee and Zwave and less WiFi IoT devices too. I don't even have a Zwave coordinator because I never found anything I wanted with Zwave support.
LaTeX. As someone in academia, I absolutely love it. It has some issues like package incompatibility, but it's far far better than anything else I've used. It's basically ubiquitous in academia, and I wish it were the case everywhere else as well.
It's not a standard but still its an interesting software so I'll post this here:
Joking aside, I love and hate it. Its paradigm is almost like using the C preprocessor to build a really awkward Turing-machine. TeX/LaTeX does a great job of what it was intended to do; it applies high quality typesetting rules to complex material and produces really good results. I love the output I can get with it and I will be eternally grateful that Donald Knuth decided to tackle this problem. And despite my complaints below, that gratitude is genuine. Being able to redefine something in a context-sensitive way, or to be able to rely on semantics to produce spacing appropriate to an operator vs a variable etc; these are beautiful things.
The problem is, at least once a day I'm left wishing I could just write a callable routine in a normal language with variables, types, arrays, loops and so on. You can implement all those things in TeX, but TeX doesn't have a normal notion of strings, numbers or arrays, so it is rare that you can do a complicated thing in an efficient way, with readable code. So as a language, TeX frequently leads to cargo-cult programming. I'm not aware that you can invoke reflection after a page is output, to see what decisions on glue and breaks were made; but at the same time you can't conditionally include something that is dependent on those decisions, since the decision will depend on what is included. This leads to some horrible conditionals combined with compiling twice, and the results are not always deterministic. Sometimes I find it's quicker to work around things like that by writing an external program that modifies the resulting PDF output, but that seems perverse.
At the same time, there's really nothing else out there that comes close to doing what LaTeX does, and if you have the patience, the quality of documents it can produce is essentially unbounded. The legacy of encodings, category codes, parameter limits, stack limits etc. just makes it very hard for package writers, and consumes a great deal of time for a lot of people. But maybe I am picky about things that a saner person would just live with.
A lot of very talented people have written a lot of very complex packages to save the user from these esoteric details, and as a result LaTeX is alive and well, and 99% of the time you can get the results you want, using off-the-shelf parts. The remaining 1% of the time, getting the result you want requires a level of expertise that is unreasonable to expect of users. (For comparison, I wrote an optimising C compiler and generally found it far easier to make that work as expected, than some of the things I've tried, and failed, to do properly in LaTeX. I now have a rule; if getting some weird alignment to work takes me more than an hour, I just fake it with a postscript file, an image, or write an external program to generate it longhand, in order to save my sanity.)
I think (and certainly hope) that LaTeX is here to stay, in much the same way that C and assembly language are. As time moves forward I think we'll see more and more abstractions and fewer people dealing with the internals. But I will be forever grateful to the people who are experts in TeX, and who keep providing us with incredible packages.
I honestly just use it for my resume with a template I found, so my knowledge is extremely basic, but I really do love the concept that I can “compile” and actually see the source of my document’s formatting.
I wrote my masters in LaTeX and while I appreciate the structuredness and the fact I could use vim, it was so quirky. Having to spend half an hour to fix a non obvious compile error, more than once, was a big distractor. I'm sure it gets better when you use it more but I don't think I have ever used it since. I'm not in academia and I don't need to solve compile problems when creating an invoice or writing a letter to local government.
I second Matrix, though I've been waiting for e2ee direct p2p (the Dendrite project) do be worked on for a while. Having something like that, that's truly decentralized while secure and hiding metadata where possible, would be a dream.
I wish Microsoft Office would use the .odf standard by default. Or, failing that, it'd implement its own published .docx specification correctly, so other office suites can be compatible.
The entire purpose of Microsoft standardizing OOXML and implementing it wrongly in Office was to make other office suites irrelevant. ODF was already standardized and countries would have adopted it if MS didn't do the same with OOXML. They stuffed the ISO with members supporting them to do it.
And now that OOXML is a viable standard, they implement it wrongly so that other office suites can't be compatible with MS Office without a lot of extra effort. Any incompatibilities with MS Office will be considered as the fault of other office suites by the general public and government officials.
Expecting MS to do what's right for the customers is putting too much faith in their nonexistent sense of ethics.
I was actually surprised to find out QUIC is fairly close to being default.
Wikipedia
HTTP/3 uses QUIC, a multiplexed transport protocol built on UDP.
HTTP/3 is (at least partially) supported by 97% of tracked web browser installations (thereof of 98% of "tracked mobile" web browsers), and 29% of the top 10 million websites.
Membership comes at various levels, each with different rewards:
Individual memberships (i.e. today’s Patreon supporters):
Ability to vote in the appointment of up to 2 ‘community representatives’ to the Foundation's governing board.
Name on the Matrix.org website
Silver member: between £2,000 and £80,000 per year, depending on organisation size
Ability to vote on the appointment of up to 2 ‘Silver representative’ to the Foundation's governing board
Supporter logo on the front page of the new Matrix.org website
Gold member: £200,000 / year, adds:
Ability to vote on the appointment of up to 3 ‘Gold representatives’ to the Foundation's governing board.
Press release announcing the sponsorship
1 original post on the Matrix.org blog per year
Participation in the internal Spec Core Team room
Larger logo on the front page of Matrix.org
Platinum member: £500,000 / year, adds:
Ability to vote on the appointment of up to 5 ‘platinum representatives’ to the Foundation's governing board.
1 sponsored Matrix Live episode per year
Largest logo on the front page of Matrix.org
Others have said already, but XMPP and RSS. Also, nobody mentioned NNTP yet.
I wish everything was accessible by NNTP and we had better NNTP clients. NNTP is like RSS but for forums (so, Lemmy, Reddit, or anything where you could reply to posts).
Download for offline reading, read in your client, define your own formatting, sorting, filtering, your client, your rules.
If Lemmy was accessible via NNTP, I could just download all posts and comments I'm interested in and reply to them without any connection, and my replies would get synced with the server later when I connect to WiFi or something.
Probably it would be better to edit my comment, but I'll go with a reply to myself.
To all fans of RSS: there's this service called FeedBase that is essentially a RSS to NNTP gate. You add your RSS feed to that and it becomes a newsgroup on their server, and you can subscribe to it using any NNTP client. New articles appear as new posts in that newsgroup and you can post your own replies to them. So, you get RSS but with discussions or comments.
Content addressable protocols are better for asynchronous use. I'd like to see a proper bluesky atprotocol fork with "post lexicons" properly adapted for forums, they're built on top of content addressing and public key based account IDs along with 3rd party moderation tooling support integrated and custom 3rd party feeds/views.
Unfortunately the reality of IPFS is that despite its huge funding it was poorly designed from the start and still to this day has much slower loading times then my I2pd instance (despite i2p transmiting messages through multiple encrypted proxies), to the point where the company working on the rust implementation determined it was so bad they had to scrap the whole thing to make something that actually worked. Not to mention that I managed to have my server taken over by some kind of malware by downloading a particular piece of content.
They are humorous IETF standards published on 1 April over the years. These are specifically about implementing internet protocols using carrier pigeons instead of more traditional media like wires or optical fiber.
Why should this be at the editor level? There should be a linter that applies all these stylistic formatting changes to all files automatically. If the developer's own editing tools or personal workflow have a chance to introduce non-standard styles to the codebase, you have a deeper problem.
I want both. When I am typing code in my editor I want it to follow the styles of the project. Then when I run the linter/formatter it will fix the mistakes.
The last thing I want is to start a new if foo { statement and the indent is half of the indent of the if above. That would be too distracting.
I wish people used email for chat more. SMTP is actually a pretty great protocol for real time communication. People think of it as this old slow protocol, but that’s mostly because the big email providers make it slow. Gmail, by default, waits ten seconds before it even tries to send your message to the recipient’s server. And even then, most of them do a ridiculous amount of processing on your messages that it usually takes several seconds from the time it receives a message to the time it shows up in your account.
There’s a project called Delta Chat that makes email look and act like a chat app. If you have a competent email service, I think it’s better than texting. It doesn’t stomp on the images you send like SMS and Facebook do, everyone has it unlike all the proprietary services, and you can run your own server for it that interacts with everyone else’s servers.
Unfortunately, Google, Microsoft, etc all block you if you try to run your own server “to protect against spam”. Really, I’m convinced that’s just anticompetitive behavior. The fewer players are allowed to enter the email market, the less competition Gmail and Outlook will have.
As much as I like ProtonMail too, unfortunately their encryption models prevents it from working with Delta Chat. I’d love to see Proton make a compatible chat app that works with their service.
I made an email service called Port87 that I’m working on making compatible with Delta chat too. I’d love to see people using email the way it was originally meant to be used, to talk to each other, without being controlled by big businesses.
If you’re relying on the remote server to delete something, you can’t trust it no matter what protocol you’re using.
For a regular email, the chance to undo might be fine, but for real time communication, it’s just an unnecessary road block.
Maybe if it was optional per recipient, or per conversation, or better yet, depending on the presence of a header, it might be fine. Gmail only supports all-on or all-off.
Oh, another awesome thing about email is that you can ensure that your address is always yours, even if you use an email service provider like Gmail. Any provider that supports custom domains will allow you to use your own domain for your address, then if you want to change your provider, you keep your address. So, since I own hperrin.com, I can use the address [email protected], and I know it’ll always be mine as long as I pay for that domain.
This is a much better model than anything else. Even on the fediverse, you can’t have your own address unless you run your own instance.
If your email service provider goes out of business or gets sold off (skiff.com, anyone?), as long as you’re on your own custom domain, your address is still yours.
I’m working on custom domains for Port87. It’s definitely a feature I think every email provider should offer.
Yes, I shifted to my own domain after my default ISP of 20 years decided that email was just too hard, you know? They didn't outright say it, they just started batch processing emails so that I'd get all my daily emails at around 2 am the next day. Super handy for time limited password reset emails!
A few hours reading a guide and setting up a $5/mo linode email server with SPF and dmarc, a few more hours transferring 20 years of IMAP mail from my old account to a folder, and a month or so of changing a few site contact emails over each day when they emailed something to my old account, and now I've got an email server on my own domain that is 10 times faster at sending/receiving mail than my old ISP ever was.
And now I can have [email protected] and [email protected] and random other disposable addresses so that when they are inevitably sold off for the $$$ I can just dump them and maintain a spam free inbox.
greylisting will typically only be applied to people who you haven't interacted before, so I don't think it is a big deal. It would be similar to how many major chat apps hide away suspicious messages from new people in some "invites" section that is often hidden by default.
SMTP is a terrible protocol. Text based for sending effectively binary data with complex header wrapping and "generate a random delimiter" framing. We really need a HTTP/2 of SMTP.
That being said I agree that it exists and works. The biggest blocker to more IM-style communication is largely the UI and user expectations. I have no problem having quick back-and-forths over email but most people don't expect it.
TeX. I was able to use it during school for some beautiful type setting and formatting but nobody I work with wants to use anything other than plain text or unfortunately more commonly binary wysiwyg editor formats. It's frustrating and ugly.
What WYSIWYG binary formats have you been using? OpenDocument is zipped XML. OOXML is also zipped XML. RTF is plain text. Everything else is dead. RTF is too, actually.
i wish all the big players would agree on one of the many open chat and IM protocols. it's like kindergarten where the toddlers don't want to share toys
Bazillions of motherboards and SBCs support I2C and many have the ability to use it via GPIO pins or even have connectors just for I2C devices (e.g. QWIIC). Yet there's very little in the way of things you can buy and plug in. It feels like such a waste!
There's all sorts of neat and useful things we could plug in and make use of if only there were software to use it. For example, cheap color sensors, nifty gesture sensors, time-of-flight sensors, light sensors, and more.
There's lmsensors which knows I2C and can magically understand zillions of temperature sensors and PWM things (e.g. fan control). We need something like that for all those cool devices and chips that speak I2C.
I2C is a bit goofy though. As a byproduct of being an undiscoverable bus you basically just have to poke random addresses and guess what you're talking to. The fact lmsensors i2c detection works as well as it does is a miracle. (Plus you get the neat issue where even the act of scanning the bus can accidentally reconfigure endpoints)
Yeah, the lack of proper discoverability on i2c truly sucks. You have to just poke random addresses and hope for the best to see if an i2c device exists on the bus. It's a great standard but I wish it would get updated with some sort of plug and play autodetection feature. Standardized device PID/VID system like USB and PCI would be acceptable or a standardized register that returns a part string. Anything other than blindly poking registers and hoping you're not accidentally overvolting the CPU or whatever because the register on your expected device overlaps with the overvolt the CPU register on the same address of a different device.
Except that in the case of VGA (and DVI, HDMI, and DisplayPort) the i2c interface is intended for use over the cable. All of those ports have a pair of i2c pins and corresponding wires in their cables. The i2c interface is used for DDC/EDID which is how the computer can identify the capabilities and specifications of the attached display. DDC even provides some rarely-used control functionality. Probably the most useful of which is being able to control the brightness of the display from software. I use the ddcci module on Linux and it lets me control my desktop monitor brightness the same way a laptop would, which is great. I have no idea why this isn't widely used.
Edit:
This i2c interface is widely used to control the lighting on modern graphics cards that have RGB lighting. We've spent a lot of time reverse engineering these chips and their i2c protocols for OpenRGB. GPU chips usually have more i2c buses than the cards have display connectors, so the RGB chip is wired to one of the unused buses. I think AMD GPUs tend to have 8 separate i2c buses but most cards only use 4 or 5 of them for display connectors. There is also an i2c interface present on RAM slots normally used for reading the SPD chip that stores RAM module specifications, timings, etc. This interface is also used for RAM modules with controllable RGB lighting.
PGP/GPG. I would like to see the web of trust take off. Also I love the aesthetic for anything that's been signed, and would like to see blog posts everywhere be nested by long blocks of random symbols.
PGP has a bunch of limits (and I'm saying that as a cryptography nerd). We've learned a lot of things since the 90's and the better solutions are specialized encryption protocols like MLS / Matrix (E2EE group messaging) and running all kinds of other protocols on top.
The portable identity part of PGP can be handled by something like DID documents which works more like Keybase used to do (depending on specific implementation) where your declare a list of supported protocols with public keys and accounts under your control, so people can still achieve the same effect of using a strong cryptographic identifier to communicate with you, but with forward secrecy supported by default and much lower risk of stuff like sidechannel attacks.
key signing and web of trust is pretty cool but i'm somewhat opposed to it on a fundamental level. Let me decentralize my shit and mind my own business if you feel what i mean.
Anything that's relatively centralized identity wise is not something i'm a huge fan of right off the hop.
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.
NAT, much like the city of Phoenix, is a monument to man's arrogance. Fuck NAT and fuck FTP. If your FTP server is listening directly on a public IP address hooked up directly to a proper router, then none of this applies. If you're anything like me, the last company I worked for (a small startup), or my current company (many many thousands of employees making software you know and may or may not hate, making many billions of dollars a year), then the majority of your servers are living in RFC1918 space. Traffic from the internet is making it to them via NAT (or NAT with extra steps, i.e. L4 load balancers).
A request comes in for $PUBLIC_IP TCP port 21 and is forwarded to your failure of a boxen at 10.0.54.187. Your FTP server is a big stupid idiot and doesn't know this. It thinks that it's king shit and has its own public IP address. Therefore, when it's deciding what ADDR:PORT it's going to tell the stupid FTP client to connect to, it just looks at one of the adapters on the box and says "oh, I'll tell this client on the internet to connect to 10.0.54.187:44007" and then I fucking cry. The FTP client is an idiot, but the IP stack on the client's home/business router is not and says "oh, that's an address living in RFC1918 space, I shouldn't send that out over the internet" and they don't get the results of their LIST.
So, how do you fix this? Well, you fix it by not using FTP. Use SFTP USE SFTP USE SFTP FOR GOD'S SAKE. But since this world is a shit fucking place, you have two options. The best option is to configure your FTP server to lie about its IP address. Rather than being honest about what a fool it is, you can tell it to send your public IP address to the client rather than the network adapter IP address. Does your public IP address change? Fuck you, you get to write a daemon that checks for that shit, rewrites your FTP server config, and HUPs the bastard (or SIGTERMs it if your server sucks and can't do a live config reload).
Let's say that you don't want to do that. Let's say you work at a small company with a small business internet plan that gives you static IPs but a shitty modem. Let's say that you don't know what FTP is or how it works and your boss told you to get it set up ASAP and it's not working (because the client over in Bendoverville Arkansas is being told to connect to a 10.x.x.x address) and it surely must be your ISP's fault. So you call up Comcast Business/AT&T/Verizon/Whoeverthefuck and you complain at their technicians for hours and hours, and eventually you get connected to a human that knows what the problem is and tells you how to configure your stupid FTP server to lie like a little sinner. The big telco megacorps don't like that. They don't want to waste all those hours, and they don't want to hire too many people who can figure that shit out because it's expensive. You wanna know what those fucking asshole companies did?
So like... If I had a game installed on your computer, my computer could treat that game as if it's local and load files over the Internet like it's just reading my disk?
Yeah, I mean nobody uses SIP as an open protocol with email-like addresses. You could call me with an unregistered softphone. It would have been way cooler if I had any use for it outside of like two other nerd friends of mine who run personal Asterisk servers.
What do you mean nobody uses SIP? Most mobile calls these days are SIP based as SIP is part of VoLTE. If you have 4G/5G signal and make a call you can be sure it's a SIP call.
IPFS
I'm really glad things like nerdctl and guix support it, but I wish more things too advantage of the p2p filesystem.
Petals.Dev and hivemind ml
P2P AI inference and training seem like the only true viable options to make foundational models that are owned soley by authoritarian government s and megacorps.
Matrix for federated general real time communication. (Not justs chat, video, images, but just data, with third room being on the cooler demos for what is possible)
Activity Pub for asynchronous communication between servers. The socialmedia aspect is obviously the focus and the most mature, but I'm also excited for things like Forgejo (Codeberg.org) and Gitlab's support.
I am also excited for QUIC for increased privacy of metadata and reduction of network trips.
The problem with IPFS is that kubo sucks. I used it for a while and it is always burning CPU doing nothing, failing to publish anything to the DHT and fetching files is slow. GC collects files that are supposed to be "pinned" by existing in MFS and so many other bugs all of the time.
I would love to see a new server take off that was built with quality in mind.
I think the core protocol is pretty good (although I think they should have baked in encryption) but even the mid-level protocols like UnixFS and DAG whatever are mired in constant change for no real reason as the developers jump on new fads.
Slow and requires additional tooling to run normally. Just not a lot of development on the core pieces tbh. Wasm support for example could make deployments way simpler (implement an ipfs proxy in any browser or server that supports wasm) but the ticket for that kind of died off. There is a typescript implementation, helia, that I haven't checked out yet.
We are honestly kind of in a decentralization winter again, with ActivityPub being one of the few survivors gaining traction from what it seems. OpenSource luckily doesn't just up and die like that, so I still have hope for some next spring.
Also KDX. I was too young to use that, but tried and it's cool. Sadly even FOSS clients are all dead and don't build anymore. (I think I had limited success with patching one called Fidelio to build, but that was a few years ago and I can't find any traces of that attempt.)
I’m really into CloudEvents because I love event-driven systems, and since events can come from, or be consumed by, so many different services, having a robust spec is super duper useful.
So what problem is this solving? What are some event-driven systems that need to interoperate? Seems like even if you have a common encapsulation method, you still need code to understand and deal with the message body. Just seems like an extra layer around a JSON blob.
matrix, or at least interop standards for online communications. It's such bullshit that you make a shitty chat app, and just because it's free and relatively featured, become the single existing monopoly of chat applications.
Like idgaf as long as i can host a bridge between discord and matrix or some shit, and you technically can, but it's a right pain in the ass to do so.
OpenTelemetry and in particular I wish more protocols had Traceparent propagation support and more software had support for sending spans and traces to an OTLP endpoint to construct a full picture of everything that is going on in a distributed system.
There are a bunch of message broker services out there, and having a consistent set of common keys along with a documented process for transforming events to/from different systems means that this kind of data can move through different systems without getting mangled. It does have a spec for JSON, so it can be considered just a standardized JSON blob with transformation rules. But it also has a protobuf spec, specs for MQTT, NATS, HTTP, Avro, etc. It’s a common language for all these systems.
Google has used RCS as their latest attempt at entering the messenger market. I really don't see why anybody else would want to adopt it under these circumstances. I mean Samsung did but Samsung is playing their own little paranoid game with Google, they don't really give a crap about RCS.
Basically Google killed RCS. They will never be able to make anybody adopt it against their will in the EU, people will stick to what messenger services they're already using. If they ever attempt to turn it on by default in their own app it will turn into a regulatory issue so fast their head will spin.
Rcs was designed from the ground up to be handled by the carrier in clear text like sms, it doesn’t incorporate encryption in any way and doesn’t do much at all to address the untrustworthy nature of carriers and law enforcement nowadays.
It’s like those two protocols started developing at the same time and only google kept extending rcs to keep some degree of feature parity with imessage.
If we had to ditch iMessage it ought to be for some third type, not for questionably secure rcs and what new bubble color can be used to indicate that someone’s using an unencrypted rcs server?
I want us to stop using communication protocols that are tied to our connectivity providers. Let alone tied to a specific piece of hardware (SIM card).
"Telephone providers" should be just another ISP. And whatever I do over the network shouldn't care if it is running on a mobile network or a landline fibre.
While we are at it let's fuck off with this SIM shit. You don't get to run code on my device. Give me an authentication key that I can use to connect to your network and then just transfer my packets. My device runs my code.
honestly: activity pub, matrix, xmpp, markdown and soo many more probably. All of these would be able to solve our walled gardens problem, but the apps with a basically monopoly don't have much of an incentivw to implement them
definitely some alternative internet mesh routing standart, just imagine if every device with wifi or ethernet could just extend the network without relying on an isp, yeah they could still serve as a fast backbone, but they just wouldn't be needed and no disaster could really ever disrupt the whole internet again