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 - "the abominations"
-
I've never had a code review.
Eventhough I proposed to my boss that we at least review our intern's code once a week, he doesn't think it is needed.
Our intern writes ugly, shitty code...
it usually takes hours for me to fix his abominations... but yeah, what the boss says is always the best.3 -
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?6 -
I wish all open source desktop applications had the same combination of expert features and polish as Blender.
The state of FOSS applications for creating diagrams, DB management & ERD, drawing SVGs, editing video, slideshow presentations, document processing, etc -- Yeah just all of it seems to be either stuck in some 90's UX paradigm, or it's a basic-as-fuck Electron app with 12 buttons for toddlers.
I know... I know... it's FOSS, can't be entitled.
But there's a part of me that really wants to be.
Fuck it, I'm just going to be entitled.
FUCK YOU LAZY FOSS DEVS, GET YOUR FUCKING SHIT TOGETHER AND MAKE SOME MODERN APPS. THROW YOUR GTK TOOLKIT BULLSHIT IN THE TRASH, GO CHOKE ON YOUR RETARDED WINDOWS-95 THEMED TOOLBARS, AND START MOTHERFUCKING COMPETING. YOU'RE BEING SURPASSED BY VENDOR LOCKED $50/MONTH CLOUD ABOMINATIONS MADE FOR COKE SNORTING DIMWITS. DON'T GIVE ME THAT "BUT PEOPLE WORK ON IT FOR FREE" CRAP, IF BLENDER CAN MAKE A GREAT COMPETING PRODUCT THEN SO CAN YOU.
Ah, completely unjustified and unfair.
But it still feels really, REALLY great to get it off my chest.
Now that I have descended from my soapbox, I'll go drag my useless developer ass over to the nearest FOSS project and see how I can contribute to a slightly less depressing future.15 -
My boss codes shitty ugly fucking abominations.
These fucking piles of hacky crap are worth less than a penny puked out by a dog, eaten by another one and then shit out, grabbed by a vagrant, stuffed in his arse and then sold as raw metal by the cremation worker after the former's death.
Fuck this. I'm not gonna rewrite this. Fuck you.4 -
Websites with a very bright background and very dark text make me psychopathic. Specially when I'm tired and moody.
Why can't everything have a dark theme and a not-super bright text?8 -
Celebrities were randomly offered a drug that, when ingested, teleported you to a Dark Souls-style fighting ring. Out-of-bounds 5-meter-tall abominations, one of which was Stretch Armstrong named Arnold (based on Arnold Schwarzenegger), were pounding on you really hard. If you survived, you would wake up as if nothing had happened. If you died, your reality was altered to be exactly the same, except one thing: a $100 bill now featured an actor that looked like a child of Nicolas Cage, Tupac Shakur and the guy from the PhilipSoloTV YouTube channel. His name was Dubius Building. He always wore a suit that was a bit too large for him, and had his signature half-smile. Everyone used to love him in the early 00s.
Little did they knew, the competition was rigged from the start. Abominations were invincible all along.4 -
My Gripe With Implicit Returns
In my experience I've found that wherever possible code should be WYSIWYG in terms of the effects per statement. Intent and the effects thereof should always be explicit per statement, not implicit, otherwise effects not intended will eventually slip in, and be missed.
It's hard to catch, and fix the effects of a statement intent where the statement in question is *implicit* because the effect is a *byproduct* of another statement.
Worse still, this sort of design encourages 'pyramid coding recursion hell', where some users will first decompose their program into respective scopes, and then return and compose them..atomically as possible, meaning execution flow becomes distorted, run time state becomes dependent not on obvious plain-at-sight code, but on the run time state itself. This I've found is a symptom of people who have spent too much time with LISP or other eye-stabbingly fucky abominations. Finally implicit returns encourage a form of thinking where programmers attempt to write code that 'just works' without thinking about how it *looks* or reads. The problem with opaque-programming is that while it may or may not be effortless, much more time is spent in reading, debugging, understanding, and maintaining code than is spent writing it--which is obviously problematic if we have a bunch of invisible returns everywhere, which requires new developers reading it to stop each and every time to decide whether to mentally 'insert' a return statement.
This really isn't a rant, as much as an old bitter gripe from the guy that got stuck with the job of debugging. And admittedly I've admired lisp from afar, but I didn't want to catch the "everything is functional, DOWN WITH THE STATE" fever, I'm no radical.
Just god damn, think of the future programmer who may have to read your code eventually.2 -
After a few months of working in an actually well coded project, I'm back in the one where I find abominations like this every day:
boolean result=false;
<do stuff>
if(<condition>){
<do stuff>
return true;
}
<do stuff>
return result;
Do they even read their code before submitting? -
Authentication and Identity management are just one giant shit fuck.
Ldap, PAM, OAuth and what not.
Each of them with it's own caveats.
Ldap, supposedly being the most widely used, isn't even an actual Identity management or authentication service, but just a DB misused as one.
The best part is, that if you want to selfhost some apps, you're pretty much forced to host one of these abominations too.
At least if you don't want to manage each service account's separately.6