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 - "grumble"
-
One of our web developers reported a bug with my image api that shrunk large images to a thumbnail size. Basically looked like this img = ResizeImage(largeImage, 50); // shrink the image by 50%
The 'bug' was when he was passed in the thumbnail image and requesting a 300% increase, and the image was too pixelated.
I tried to explain that if you need the larger image, use the image from disk (since the images were already sized optimally for display) and the api was just for resizing downward.
Thinking I was done, the next day I was called into a large conference room with the company vice-president, two of the web-dev managers, and several of the web developers.
VP: "I received an alarming email saying you refused to fix that bug in your code. Is that correct?"
Me: "Bug? No, there is no bug. The image api is executing just as it is supposed to."
MGR1: "Uh...no it isn't. Images using *your* code is pixelated and unfit for our site and our customers."
MGR2: "Yes, I looked at your code and don't understand what the big deal is. Looks like a simple fix."
<web developers nodding their heads>
Me: "OK, I'll bite. What is the simple fix?"
<MGR2 looks over at one of the devs>
Dev1: "Well, for example, if we request an image resize of 300, and the image is only 50x50, only increase the size by 10. Maybe 15."
Me: "Wow..OK. So what if the image is, for example, 640x480?"
MGR1: "75. Maybe 80 if it's a picture of boots."
VP: "Oh yes, boots. We need good pictures of boots."
Me: "I'm not exactly sure how to break this to you, but my code doesn't do 'maybe'. I mean, you have the image from disk.
You obviously used the api to create the thumbnail, but are trying to use the thumbnail to go back to the regular size. Why not use the original image?"
<Web-Dev managers look awkwardly towards the web devs>
Dev3: "Yea, well uh...um...that would require us to create a variable or something to store the original image. The place in the code where we need the regular image, it's easier to call your method."
Me: "Um, not really. You still have to resolve the product name from the URL path. Deriving the original file name is what you are doing already. Just do the same thing in your part of the code."
Dev2: "But we'd have to change our code"
Mgr2: "I know..I know. How about if we, for example, send you 12345.jpg and request a resize greater than 100, you go to disk and look for that image?"
<VP, mgrs, and devs nod happily>
Me: "Um, no that won't work. All I see is the image stream. I have no idea what file is and the api shouldn't be guessing, going to disk or anything like that."
Dev1: "What if we pass you the file name?"
<VP, mgrs, and devs nod happily again>
Me: "No, that would break the API contract and ...uh..wait...I'm familiar with your code. How about I make the change? I'm pretty sure I'll only have to change one method"
VP: "What! No...it’s gotta be more than that. Our site is huge."
<Mgrs and devs grumble and shift around in their chairs>
Me: "I'm done talking about this. I can change your code for you or you can do it. There is no bug and I'm not changing the api because you can't use it correctly."
Later I discovered they stopped using the resize api and wrote dynamic html to 'resize' the images on the client (download the 5+ meg images, and use the length and width properties)22 -
If Doctors Were Like Coders
(cross-posted from https://medium.com/@c09b6133a238/...)
Problem: The patient has a broken leg.
Solution:
1. Ask the patient to reproduce the exact scenario that resulted in the broken leg. Watch closely to see if the leg breaks again. Check for consistency by repeating the scenario a few more times.
2. Explain that this isn’t an intended use case for the leg, and besides, it only affects one person. Ask the patient if, all things considered, he really wants to prioritize his broken leg over your other work.
3. Point out that the patient’s other leg performs just fine under the same circumstances. Ask if he can use his other leg instead, at least as a workaround.
4. Attach several accelerometers to the broken leg and break it again. Stare at the data received from the accelerometers, then shrug and declare it useless.
5. Decide that the patient’s problem must be in his spleen. After all, that’s the only part of his body you don’t really understand.
6. Track down the people who created the patient. Ask them if he’s ever had spleen problems before. When they seem confused, explain that he has a broken leg. Ignore them when they tell you that the spleen they created could not possibly cause a broken leg.
7. Ask Google where a person’s spleen is. Spend half an hour reading the Wikipedia article on Splenomegaly.
8. Open the patient and grumble about how tightly-coupled his spleen and circulatory system are. Examine the spleen’s outer surface to see if there are any obvious problems. Inform him that several of his organs are very old and he should consider replacing them with something more modern.
9. Compare the spleen to some pictures of spleens online. If anything looks different, try to make it look the same.
10. Remove the spleen completely. See if the patient’s leg is still broken. If so, put the spleen back in.
11. Tell the patient that you’ve noticed his body is made almost entirely out of cellular tissue, whereas most bodies these days are made out of cardboard. Explain that cardboard is a lot easier for beginners to understand, it’s more forgiving of newbie mistakes, and it’s the tissue franca of the Internet. Ask if he’d like you to rebuild his body with cardboard. It will take you longer, but then his body would be future-proof and dead simple. He could probably even fix it himself the next time it breaks.
12. Spend some time exploring the lymph nodes in the patient’s abdominal cavity. Accidentally discover that if the patient’s leg is held immobile for six weeks, it gets better.
13. Charge the patient for six weeks of work.14 -
In a form's text area, pressing return should always start a new line. It should never submit the form.8
-
New rant = Rant.type(['non-dev', 'public transportation']).init()
So i am taking the bus now to see a friend, and this fucking whale woman comes on board with a baby caddy, except, it wasn't for a baby, but for a fucking dog the size of a brick. That already in itself makes me grumble because dogs have fucking legs and there is no fucking real need to carry them around like newborns.... Anyways this woman sits and takes up a lot of space for the 'handicapped' persons for her fucking baby dog... So far no real issue there since people with disabilities hardly get on this bus line. A fzw bus stops later an equally whale black woman gets on the bus, obviously struggling with her size and her caddy filled with groceries...
There is enough room to accomodate the baby caddy and her groceries.
That fucking white whale says to her 'there is no room there, move someplace else'... The black woman stands there in disbelief, and this is the first time i look up, giving the 'the fuck you just say bitch' look to the white whale. I mention there is enough room and the black whale sits carefully next to the dog caddy.
Now the bus takes a sharp turn, the dog caddy tips over due to the g-forces it causes...and inmediately this white whale shouts to the black whale 'fucking retard, don't tip my dog over!' this while the black woman apologises for the fall of the caddy not even being her fault...
This angered me so puch that i rantzd to this woman: 'madam, thzre is such a thing called physics, the bus made a sharp turn and your stupud useless space-wasting dog caddy tipped over bzcause of that. Don't just go accusing people for your own degenerate racist lifestyle. I suggest you hold on to it and apologise to the lady'
She then murmles incomprehensibly and gives a butthurt look, rhe black woman thanks me and tries to remain very quiet on her seat, eventually she gets off
This fucking thing makes me angry to a level i wanna toeturz that whale by peeling off her skin with garden fence metal wiri g, suck the fat out of her body and brain with an industrial vacuum cleaner and put her in the fucking oven baking in her own fat, of course without any anesthetics...
Damnit all to hell!
Also, why on earth do dogs need caddy's? They got perfectly fine legs!
I know, sadist inside11 -
!drunk (yet)
It's whiskey and code tonight!
(Whiskey because I couldn't get to my rum. annoyed face.)
Why? Because rum is so much better. duh.
More seriously: My boss has thrown me every single one his current tasks and is refusing to answer simple questions about them, such as "oh, so you already know about this bug; what's the cause?" or "how do i test this once i've fixed it?" or "where the fuck are you?"
and I'm also getting lots of bugs from other people. They're all basically categorized "urgent, please fix immediately" but should instead be categorized "super-boring and not-at-all-important, and should get fixed on the off chance you happen to remember it next year". That's the best category of bug.
I just gave up on fixing a Rails pluralize bug which fits into the aforementioned category quite nicely. It's returning "2x round of golves" -- which is hilarious and I might leave it in just for the amusement. But now it's back to fighting with ActionCable! Everything has been getting in the way of me finishing that. I'm about to start biting.
Speaking of ActionCable, it turns out my code wasn't wrong after all (have I said that yet?). Since the official documentation and examples suck, I've been digging through the (generated) javascript source and working my way backwards to learn how to use it. I cleaned up my code a little, but it was still correct. The reason nothing is working correctly is that API Guy gave me broken code. ...Again! Go figure. So I'll be rewriting that today. or tomorrow. (Whiskey, remember?)
I also have some lovely netcode to debug and fix. So totally not looking forward to that. The responses are less bloody reliable than my boss's code ffs. *grumble grumble*6 -
Holy fucking dickballs, AWS cloud platform is one of the most UX unfriendly piles of fuckery I have witnessed.
It starts off okay and then you have to use it for many hours a day.
API gateway is assfucked backwards in its layout and how it displays. Why have things go horizontally across the screen rather than flow down so I can scroll. Also when I add a method to a resource why the god damn fuck do I need to select it from the smallest drop down imaginable when you have HALF MY POXY SCREEN TAKEN UP IN LITERAL WHITESPACE NEXT TO IT.
Now I get on to the dynamodb interface whoever designed must have been some form of insane cause it is as clunky as a donkey in clogs.
Finally, Lambda console, look I get it UX is not you strong point. but WHO IS THE SADISTIC FUCKOFF WHO WANTED TO HAVE TWO SCROLLABLE TEXT AREAS THAT CAN NOT BE FUCKING EXPANDED SO I CAN SEE MORE THAN FOUR LINES OF THE FUCKING OUTPUT.
*grumble* 12hrs a day of this bullshit *grumble*12 -
Stupid javascript.
Stupid hoisting-oblivious "frontend devs."
Stupid browser-specific javascript behavior.
Stupid thrown-together javascript minifier that literally only strips out whitespace and comments.
Stupid poorly-written javascript spamming my api.
Time to rewrite it. Grumble grumble. Soo not how I wanted to spend my morning-turn-afternoon.
Leading to the last but not least:
Stupid me forgetting javascript's quirks.12 -
me: "I need to buy some licenses for the `software package`. I'm just going to use my corp card..."
manager: "...Sorry, you'll have to go through procurement for those licenses...I'll put in a request"
me: **grumble** -- waits a week -- buys them on corp card anyway
6 MONTHS LATER
procurement: "now how many licenses did you need?"3 -
I really dislike it when non-devs ask devs: "I don't understand. What could be so hard about coding?".
Grumble. FredFlintStoneGrumble.20 -
Mac text substitution is coming to Chrome 77!
https://bugs.chromium.org/p/...
...and it's a TERRIBLE BLOODY IDEA. Any Chrome Mac users visiting any sites that display code will likely be shown the substituted crap, unless they've picked up on it and modified their site in time.
Seriously, take these cutsie "oohhhh, I want my ellipsis to display as a *proper* ellipsis character" mindsets and shove them where the sun don't shine. By all means provide the functionality as opt-in via a CSS declaration or whatever, but don't just assume your love of bloody "smart quotes" trumps everyone else's ability to see the *actual content* on the site.
Grumbly grumble old fart grumble.2 -
Grub....😠
Not the edible kind.
Randomly decides to stop working and needs to be reinstalled...Ubuntu workstation at work. Ugh. -
It's just taken me AN HOUR to work out how to programmatically centre something in UIKit 😡
Mutter grumble autoresizingmask grump moan I suppose I should learn autolayout whinge gripe.1 -
#Suphle Rant 1: Laravel closing the gap
This is the first of a series of long overdue rants regarding Suphle, because I have had so so much to grumble about over the last ~2 years building it. A bit of introduction: I compiled a list of all the challenges I faced in my time as a salaried PHP developer. I also gathered issues complained about by other developers in a laravel group I'm part of, and decided to solve them at the framework level since they're avoidable. I also borrowed impressive features encountered in my time working with other languages and invented a new one, as well. I quit my job last July, still haven't get a new one yet cuz office workload kept conflicting with Suphle development. I concluded all work and testing on it back in August/September but it's yet to be officially released since the docs is still in progress.
Anyway, yesterday, I stumbled upon what is IMO the most progressive /tangible update I've seen in all my time following Laravel updates. It's called [precognition](don't have enough rep to post the PR link but you can search on their repo), and contains features that are actually beneficial to both developer and end user. It also turns out to be functionality that was part of Suphle's bragging rights. Their DX is still tacky but I'm devastated cuz it's a matter of time before they work it out. Makes me wonder what the quality of all I've built would be in a year if it doesn't become big enough to attract frequent contribution. I guess there's only so much one can do against a community.
Later that evening, I found a developer from my country on twitter who claims to be making a decent living. A little snooping around his profile informed me he's building his own back end framework but in NodeJS. I know with every degree of certainty that what he'll eventually do can't hold a candle against Suphle in overall functionality or thoroughness. Not a dick measuring contest but when your motive isn't significant innovation, you'll neither plan properly nor even know what exactly to build. You'll just reinvent the wheel as an academic exercise
Yet, I can't help but have that sinking feeling he's winging it, while making a windfall with his dozens of freelance projects. It kind of feels like I shortchanged myself, and Suphle's shelf life will suffer the same fate as a hobby project for 10 stars (which I don't even have yet!!). I reached out to him to rub minds together but he ignored. More pain.
I'll get over this and return to work on the docs, but from the look of things, the end isn't an appealing or expected /deserved one