Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "shitty protocols"
-
I absolutely love the email protocols.
IMAP:
x1 LOGIN user@domain password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
Because a state machine is clearly too hard to implement in server software, clients must instead do the state machine thing and therefore it must be in the IMAP protocol.
SMTP:
I should be careful with this one since there's already more than enough spam on the interwebs, and it's a good thing that the "developers" of these email bombers don't know jack shit about the protocol. But suffice it to say that much like on a real letter, you have an envelope and a letter inside. You know these envelopes with a transparent window so you can print the address information on the letter? Or the "regular" envelopes where you write it on the envelope itself?
Yeah not with SMTP. Both your envelope and your letter have them, and they can be different. That's why you can have an email in your inbox that seemingly came from yourself. The mail server only checks for the envelope headers, and as long as everything checks out domain-wise and such, it will be accepted. Then the mail client checks the headers in the letter itself, the data field as far as the mail server is concerned (and it doesn't look at it). Can be something else, can be nothing at all. Emails can even be sent in the future or the past.
Postfix' main.cf:
You have this property "mynetworks" in /etc/postfix/main.cf where you'd imagine you put your own networks in, right? I dunno, to let Postfix discover what your networks are.. like it says on the tin? Haha, nope. This is a property that defines which networks are allowed no authentication at all to the mail server, and that is exactly what makes an open relay an open relay. If any one of the addresses in your networks (such as a gateway, every network has one) is also where your SMTP traffic flows into the mail server from, congrats the whole internet can now send through your mail server without authentication. And all because it was part of "your networks".
Yeah when it comes to naming things, the protocol designers sure have room for improvement... And fuck email.
Oh, bonus one - STARTTLS:
So SMTP has this thing called STARTTLS where you can.. unlike mynetworks, actually starts a TLS connection like it says on the tin. The problem is that almost every mail server uses self-signed certificates so they're basically meaningless. You don't have a chain of trust. Also not everyone supports it *cough* government *cough*, so if you want to send email to those servers, your TLS policy must be opportunistic, not enforced. And as an icing on the cake, if anything is wrong with the TLS connection (such as an MITM attack), the protocol will actively downgrade to plain. I dunno.. isn't that exactly what the MITM attacker wants? Yeah, great design right there. Are the designers of the email protocols fucking retarded?9 -
Is just me or being a developer has become a complete nightmare?
I mean, I never expected when I got into it to have a simple life in the first place, it's a fucking problems solving job.
But heck, I'm in the field from more than 12 years and something has definitely changed for the worse. Believe me I am just seeking for a general consensus not approval or anything, but it doesn't feel anything like 10 years ago.
I have worked with .NET mostly in all his sauces from aspx, wpf, up to today .NET 10 and C#13 and in the meanwhile it happened that I needed to do tech assistance, code in exoteric shit, use arduinos and raspberries, use perl, java, turn into full stack with databases, devops and shit.
Each year it's worse, the "developer" word gets more and more blurred word to say "the one who must know everything".
I'm asked to know docker, kubernetes, kafka, CI/CD and devop shit, web dev, to get ertifications, to learn how AI works to the level of learning again matht to do matrix interpolations, to get on data science, python, numpy, pandas, pytorch and shit, to know every OS, to know about networking because APIs now have to use rest, a single verb for every action, because if routers and new communication protocols break you have to know and figure out why.
Not to mention that marketing and sales guy shove up the big customers ass every new tecnology to make our work look like bling-a-ling top notch 1% developer stuff that always use latest bleeding edge technology and you're forced to learn new immature frameworks every 2 months or so (latest being various javascript/typescript diagramming libraries).
Every idiot feels entitled to puke out a new framework or supersets of existing languages. I lost count how many supersets css has that I had to peek and learn lol.
Every fucking simple software I did from scratch and designed by myself, web portals for big pharma were much simple than whatever PM i get assigned to are and guess what, I published it and fixed ofc some bugs, but most bugs are related to customer unstable datasets and well, I never had bugs after the first few weeks, except once every few months and nothing serious.
The fucking things they let me do now are hypercomplicated and I spend days fixing other people bugs and we get some hair pulling structural problems becuase they shove in all they can (mediator patterns are a must): kafka, docker, messagebus, whatever javascript clusterfuck they can, patchworks of html and css blurred out in layers of hierarchical scss or sass, slapped into angular (the most immature and crappy shit in js) that has all of his hidden ways to bury and hide DOM (ng-deep: anyone? :host anyone?).
And it's all like this. Whenever I put hands everyone wants to do his little frankeinstein experiment cooking togheter in a cauldron a shit ton of different stuff, overcomplicated patterns.
it's a challenge at shooting flies with bazookas.
I'm really tired of technology at all, not only for my jobs. This fucking trend is a plague spread everywhere and now, since everyone has to deal with it, everything is unstable.
In my daily usage of a smartphone app crashes a lot or have weird troubles, slowness, websites are pretending to be full blown app with this shitty SPA trend and are filled with bugs and incompatibilites.
Basically every tech tool we use is 100% more prone to bugs than 10 years ago.I'm really thinking to find a simple job like baker or shit and get an old phone that just can call and send SMS.
I need to get out of tech for a few years to get back my sanity.
This is not a problem-solving job anymore.
10 years ago I needed to study too but once I got the tools in my hands the job was fun, you got a magic wrench and sky was the limit.
Now you got to fucking learn a ton of bullshit everyday and it's not like you see a end on it, everyday people push out new unstable and bugged shit waiting for devs to be guinea pigs for them. You gotta learn a ton of stuff of which 3/4 will be useless/obsolete/broken and considered inefficient the next month.
jeeeeeez16