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 - "needle in the haystack"
-
It's not that I hate PHP, I just hate the lack of consistency in standard function naming and parameter order, nonsensical attribute access, nearly-meaningless comparison operators, reference handling, case (in)sensitivities, and more!
I mean, look at these functions:
strtoupper(...)
bin2hex(...)
strtolower(...)
And look at THESE FUNCTIONS:
array_search($needle, $haystack)
strpos($haystack, $needle)
array_filter($array, $callable)
array_map($callback, $array)
array_walk($array, $callable)
And let me jUST USE SOME ATTRIBUTES:
$object->attr = "No dollar sign...";
Class::$attr = "GOD WHY";
HOW ABOUT SOME COMPARISONS:
(NULL == 0) // true
(NULL < -1) // ALSO true
Functions AREN'T CASE SENSITIVE (at least variables are).
Wanna dereference? TOO BAD, YOU'LL HAVE TO GET OUT THE TNT.
Alright, yeah, I hate PHP.19 -
Me trying to debug CSS compiled from a legacy SCSS-project containing 100+ files and no source maps.6
-
YouTube just deleted my favorites playlist for supposed hate speech. My playlist had like 4k vids in it (none of them uploaded by me) and most of them were just stupid music videos or whatever, nothing even comes to mind that would qualify as hate speech, so because of this alleged needle in a 4k video haystack my playlist got deleted, YouTube did not even show any evidence of the supposed hate speech content within, my appeal was denied instantly. This is why I hate big tech- it is tyrannical and bullshit. It serves as an extra government nanny rather than appealing to its user base. This is because once a social platform grows so large that it has the monopoly on users, it no longer has to appeal to its users, it can then just focus on politics or other agendas. They can do this with confidence that they will not lose their users because they know that the modern internet narcissist will flock to any app that gives them the biggest audience, and since they have the monopoly on users they can rest assured the common narcissist will flock to their app (no matter how shitty or tyrannical) because they’ll get the most exposure there. This is the pattern every big social media platform falls into. At one point YouTube was cool….14
-
At this point i'd like to talk about the original PHP founder Rasmus Lerdorf, who was obviously too distracted by his own beard while watching the NBA Playoffs in 1995 to write a proper language.
There's not a language more inconsistent, ilogical, deficient, and best of all, bad structured.
Seriously, which substances was he smoking when thinking up such things as: non objective strings, incasesensitive functions and associative arrays?
What have objects ever done? any other honorable language does that, python, javascript, rails, C#, take your pick.
Not to mention the order of needle/haystack parameters.4 -
So, today I wanted to program a bit and, after reading the last chapter, I want to see what I able to do.
I run my last Linux distro, I open sublime and I start typing code. I finish, I build. 0 warning, 0 errors. Nice! I execute the code: error.
I watch and I struggle on the code for hours, I search on Google, I search on StackOverflow, but after 1 hour I notice I'm looking for a needle in a haystack. So I search instead for a way to produce a better error. I found it, I'm very happy. Let's try what the error actually is:
Error: success
Ok....
Ok...... Well, maybe.... Uhm......
Ok, I won't give up. I search for a tutorial. Found.
The code is almost the mine, it's actually a usual snippet, nothing new. I compare my code with the code in the example/tutorial.
First line, is the same.
First 10 lines, are the same.
First 30 lines, are the same.
I build and execute the example: it works.
I build and execute my code: still doesn't work.
I won't give up, I said it. I won't give up.
I wonder if there's a tool like git diff, so I can see what the differences are, maybe I've no good eyes.
I search, first Google result, "diff"
diff myCode.c example.c
"the files are not identical"
...thank you
I search for a better command
diff -y myCode.c example.c
"the files are not identical"
I search for a still better command
Found. StackOverflow stroke again.
sdiff myCode.c example.c
"the files are not identical"
.....
....
.....
I gave up.
Ps. I've 10 years of experience in programming4 -
22.30 PM: "Please ceheck all the points in (30 pages long extremely bad and scarce) documentation. Import doesn't work and customer is pretty unhapy."
me: "So do we have an error or am I searching for a needle in a haystack?"
PM: "Just general error."
FFS i'm sick of this. I can't even test the import because it's on a stupid retarded 3rd party software that expexts CRs on new lines and craps all over the place if it sees a Line Feed&#^$/!&@$&' -
Why the fuck nobody talks about Multi-page apps?! We went from a Web where everything was Multi-page server-rendered, and now everything for Web developers is "Single-page apps".
What about websites who can't do that? Not everything can be a single-page app. Only my uncle's restaurant website, or something which is TRULY a full app. No half choices.
If your website is a multi-page app/portal which actually PRELOADS data, instead of doing 100 fetch to an API within a page that is full of loading bars, well, your life is a pain.
When you want a first contentful paint which isn't a white page, well, your life is a pain.
What are React, Vue, Ember, Angular (let's exclude Svelte and Marko) going to do about Multi-page apps and SSR?
React-router sucks to me. It's performance is weak and it's useful only when you have an SPA with multiple sections which can be treated as pages (e.g. A single SPA divided in tabs).
Server-side rendering is the worst pain ever made by humanity, in React (and prob Vue, I didn't try but I can bet). And even when made easier from libs like Svelte and Marko, I (personally) can't get it to be faster enough compared to a traditional website without a JS framework and with a templating engine.
Anyways, if there's anything that I learnt from React, is to stay away from Next.js. Perfect, beautiful, mess.
All JS frameworks just seem to bloat the code and make it worse and slower, even though they're REALLY helpful.
Why? Why everyone loves them if their downsides are so clear? Why 3 projects out of 3 I made (1 React SSR, 1 Vue, 1 Marko SSR) are and will stay painfully slow and bloated, full of shit, even if in 2020 we should have evolved with the famous three shaking, with the famous lazy loading, etc.?
I am just frustrated.
And let's not even talk about Webpack, Rollup, Lasso, those module bundlers shit which are harder to configure and understand than finding a needle in a haystack.
Lasso was the easiest to configure but I anyways can't understand it. Webpack seems it was made to handle SPAs, as any tool in this freaking world, and not even considering an easy way to integrate multiple bundles for multiple pages (I know it's pretty easy, but with component sharing between pages and big unique bundles Next.js handles it soooo bad it feels like hell).
Am I the only one?
Sorry for the long rant. I just needed to rant right now.17 -
Ever experienced that moment when you spend hours debugging a complex issue, only to realize it was caused by a single missing semicolon? It's like searching for a needle in a haystack, only to find out the needle was hiding in plain sight! I guess we should add 'semicolon detective' to our resumes. Who knew such a tiny character could wreak such havoc? Let's all take a moment to appreciate the power of the semicolon and the bittersweet triumph of finding it missing!4
-
A bit longer rant, somehow triggered by the end of this rant:
https://devrant.com/rants/7145365/...
The discussion revolved around strpos returning false or a positive integer.
Instead of an Option or a Exception.
I said I'm a sucker for exception, but I'm also a sucker for typing.
Which is something most languages lack - except the lower level ones like C / C++.
I always loved languages which have unsigned and signed types.
There, I said it... :) I know that signed / unsigned is controversial, Google immediately leads to blog entries screaming bloody murder because unsigned can overflow – or underflow, if someone tries to use a -1on an unsigned integer.
Note that my love is only meant for numeric types, unsigned / signed char is ... a whole can of insanity on its own.
https://phoronix.com/news/...
If you wanna know more.
Back to the strpos problem, now with my secret love exposed:
strpos works on a single string, where a string is a sequence of chars starting with 0.
0 is a positive integer.
In case the needle (char that should be looked up in the string) cannot be found in the haystack (the string), PHP returns "false".
This leads to the necessity of explicitly checking the type as "0" (beginning of string, a string position)... So strpos !== false.
PHP interprets 0 as false, any other integer value is true.
In the discussion, the suggestion came up to return -1 if a value could not be found – which some languages do, for example Scala.
Now I said I have a love for unsigned & signed integers vs. just signed integers...
Can you guess why the -1 bothers me very much?
Because it's a value that's illogical.
A search in a sequence that is indexed by 0 can only have 0 or more elements, not less than zero elements.
-1 refers to a position in the sequence that *cannot* exist.
Which is - of course - the reason -1 was chosen as a return value for false, but it still annoys me.
An unsigned integer with an exception would be my love as a return value, mostly because an unsigned integer represents the return value *best*. After all, the sequence can only return a value of 0 ... X.
*sigh*
Yes, I know I'm weird.
I'm also missing unsigned in Postgres, which was more or less not implemented because it's not in the SQL standard...
*sob*29 -
Can you give me some tips on how to debug a massive app? (Android app running on android studio which is basically intellij idea).
For example I need to fix a bug where a certain action results in unexpected behaviour.
But oh my god the codebase is so large (mainly architecture is MVVM and rxjava) that searching for the specific place is like searching for a needle in haystack.
For example I added a breakpoint in few places, but I can see only like 4 or 5 last frames in the stack that led to the current action, last frame is a lambda which doesnt help me so frankly Im unable to even track where current event started. I am loosing my mind. I cant even find where the buttonclick action started because everything is reactive and done with observables which can be anywhere.
Any tips on debugging will be appreciated7 -
for a language obsessed about errors, rust sure sucks at its stacktraces so I can know what gave the error
like finding a needle in a haystack. well fuck if I know what throws this thing. all things I know that can make this error type should be self-contained -- so where you getting this error from?!4 -
Why is debugging like finding a needle in a haystack, except the needle is on fire, the haystack is on fire, and everything's in JavaScript? If debugging is removing bugs, then programming must be putting them in!
And Git blame? More like Git shame! Every "fix stuff" commit is a reminder that past-me was a jerk.
End rant. Back to code. May the coffee be strong and the bugs be weak. 🐛☕💻6 -
Vertical pressure leaf filter? More like a vertical pain in the neck! Why in the world would anyone think it's a good idea to arrange filter leaves in a vertical orientation? It's like they're begging for inefficiency! And don't even get me started on the maintenance nightmare that comes with trying to clean those things out. You practically need a ladder just to reach them!
Then there's the horizontal pressure leaf filter. Oh, joy! Because arranging those filter leaves horizontally makes all the difference, right? Wrong! It's just another headache waiting to happen. Sure, it might save a bit of space, but at what cost? I'll tell you: constant clogging, uneven flow distribution, and a whole lot of frustration.
And don't even get me started on the molten sulphur filter. Molten sulphur! Do they not realize how dangerous that stuff is? And yet, they expect us to trust some flimsy filter to keep us safe? No thank you! I'd rather take my chances swimming in a pool of lava.
Filter elements? Oh, great! Because we really needed another thing to keep track of in our already cluttered warehouses. And good luck trying to find the right one when you need it. It's like searching for a needle in a haystack, except the needle costs thousands of dollars and could potentially shut down your entire operation if you pick the wrong one.
Pulse jet candle filter? What is this, a science fiction movie? Just because it sounds fancy doesn't mean it actually works! And don't even get me started on the polishing and bag filter. If I wanted to spend all day polishing things, I'd become a shoe shiner, not an engineer!
And as for self-cleaning filters and strainers, don't even get me started! They claim to be self-cleaning, but what they really mean is that they'll clog up and break down just like every other filter out there. It's a scam, I tell you!
Oil field filtration equipment? Yeah, because nothing says "reliable" like trusting your livelihood to a piece of machinery that's constantly exposed to the elements and covered in God-knows-what.
And basket filters and strainers? They're like the ugly stepchild of the filtration world. Nobody wants to deal with them, but we're stuck with them anyway because apparently, we can't have nice things.
Process filtration and equipment? More like process frustration and equipment that's one step away from falling apart at any moment. And don't even get me started on 'Y', 'T', and conical strainers. What even are those? And why do we need so many different types? It's like they're trying to confuse us on purpose!
And finally, the auto backwash filter. Because apparently, we're too lazy to clean our own filters now. What's next? Auto-eating forks and self-driving shoes? Give me a break!
In conclusion, filtration equipment is the bane of my existence. So thanks, but no thanks, to all these so-called "innovations." I'll stick to my good old-fashioned cheesecloth, thank you very much!rant oil field filtration equipments self cleaning filters & strainers 'y' filter elements process filtration & equipments vertical pressure leaf filter pulse jet candle filter molten sulphur filter horizontal pressure leaf filter basket filters & strainers polishing and bag filter1 -
which type are you ??
**Manager:** Hey, we've got a little hiccup in the production environment. I know it's Friday evening and you're probably daydreaming about pizza, but could you give it a peek?
**Type 1:** Man, this is like finding a needle in a haystack while wearing sunglasses at night. Might take me a few hours... or days. But hey, wish me luck and have an epic weekend!
**Type 2:** Eureka! Found the gremlin. It looks like XYZ person tried to be a bit too creative on commit number 2234324. Maybe they had too much caffeine? Anyway, could you have a chat with them? And oh, may your weekend be as smooth as a fresh jar of peanut butter.
**Type 3:** Detective mode activated! Found the sneaky bug. It was XYZ person's "masterpiece" in commit number 2234324. But fear not! I've put on my superhero cape and fixed it in commit number 345453345.
**Type 4:** This issue again? It's like a recurring bad dream about forgetting your pants! I've revamped the whole thing so we don't have to relive this nightmare. If someone tries to pull this off again, our CI/CD will roast them like a marshmallow over a campfire.
**Type 5:** Ta-da! Fixed the glitch, jazzed up the design, and sprinkled in some extra logging magic. Now, troubleshooting will be as easy as pie. Speaking of which, I've got time for a coffee and maybe a slice of pie before heading out. Cheers!
Type 6 **Gloomy**: Oh, the digital clouds have gathered again. This issue is like a never-ending rain on a Monday morning. I've peered into the abyss of our code, and it's... well, it's deep and dark. I'll need some time, a flashlight, and maybe a comforting blanket. If you don't hear from me in a few hours, send in a search party with some hot cocoa.4