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 - "path variable"
-
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 -
I love how Microsoft updated the user interface for editing the PATH variable in windows. Now it is possible to see all entries in a table, before there was just one textfield with many entries seperated by semicolons (I know the update is already some month old now, but still happy)5
-
I’m adding some fucking commas.
It should be trivial, right?
They’re fucking commas. Displayed on a fucking webpage. So fucking hard.
What the fuck is this even? Specifically, what fucking looney morons can write something so fucking complicated it requires following the code path through ten fucking files to see where something gets fucking defined!?
There are seriously so fucking many layers of abstraction that I can’t even tell where the bloody fucking amount transforms from a currency into a string. I’m digging so deep in the codebase now that any change here will break countless other areas. There’s no excuse for this shit.
I have two options:
A) I convert the resulting magically conjured string into a currency again (and of course lose the actual currency, e.g. usd, peso, etc.), or
B) Refactor the code to actually pass around the currency like it’s fucking intended to be, and convert to a string only when displaying. Like it’s fucking intended to be.
Impossible decision here.
If I pick (A) I get yelled at because it’s bloody wrong. “it’s already for display” they’ll say. Except it isn’t. And on top of that, the “legendary” devs who wrote this monstrosity just assumed the currency will always be in USD. If I’m the last person to touch this, I take the blame. Doesn’t matter that “legendary Mr. Apple dev” wrote it this way. (How do I know? It’s not the first time this shit has happened.) So invariably it’ll be up to me to fix anyway.
But if I pick (B) and fix it now, I’ll get yelled at for refactoring their wonderful code, for making this into too big of a problem (again), and for taking on something that’s “just too much for me.” Assholes. My après Taco Bell bathroom experiences look and smell better than this codebase. But seriously, only those two “legendary” devs get to do any real refactoring or make any architecture decisions — despite many of them being horribly flawed. No one else is even close to qualified… and “qualified” apparently means circle jerking it in Silicon Valley with the other better-than-everyone snobs, bragging about themselves and about one another. MojoJojo. “It was terrible, but it fucking worked! It fucking worked!” And “I can’t believe <blah> wanted to fix that thing. No way, this is a piece of history!” Go fuck yourselves.
So sorry I don’t fit in your stupid club.
Oh, and as an pointed, close-at-hand example of their wonderful code? This API call I’m adding commas to (it’s only used by the frontend) uses a json instance variable to store the total, errors, displayed versions of fees/charges (yes they differ because of course they do), etc. … except that variable isn’t even defined anywhere in the class. It’s defined three. fucking. abstraction. layers. in. THREE! AND. That wonderful piece of smelly garbage they’re so proud of can situationally modify all of the other related instance variables like the various charges and fees, so I can’t just keep the original currency around, or even expect the types to remain the same. It’s global variable hell all over again.
Such fucking wonderful code.
I fucking hate this codebase and I hate this fucking company. And I fucking. hate. them.7 -
Today I discovered what slowed my productivity the most: variable naming.
In a project I was naming many variables 'dirname' in different parts of the my code, but it represented 3 things: only the name of the directory, relative path + directory, and absolute path + directory.
I wasted to much time just figuring out which was which everytime until I finally decided to organize variables names better and see the wonders of the world. Result:
- dirname: only the name
- reldirname: relative path + dir
- absdirname: absolute path + dir
Such simple solution, yet took me years to actually see the benefits, my god
(First devRant post btw :3)7 -
As devs, our keyboards are arguably the most used tools in the creative process of software development. Shortcuts are essential for (most of) us.
What's your most used keyboard shortcut in your most used IDE? Please explain what it does in which IDE.
Mine is Cmd+Alt+L in IntelliJ (reformat code, but only VCS changed or selected lines). I press it all the time, almost maniacally, after changing anything.
Close second place candidates: Shift+F6 (rename anything, e.g. file, class, function, variable), double Shift (search everywhere), Cmd+Alt+F (find in path, also in code), Cmd+B (go to declaration).12 -
Windows 10 upgraded yesterday. Went to do a bit of work today, loads of stuff for my development environment wasn't working. The reason? The Windows 10 upgrade completely wiped my Users path and System path env variable.3
-
So today it finally happened.
Npm modules broke my system and / or endangered the security of my system.
Installed a global cli utility
That utility depends on package A
That depends on package B
That fucking install a bin called sudo
Yeah.. You heard it right a bin called sudo.
This bin goes in the global module folder that is piped in your path variable.
Now everytime you type sudo you are running somebody else code instead of your system utility.
I am shivering and at loss of swear words.
Opened an issue on the cli that started this matrioska game of horror.
Who the fuck tought that a bin called sudo would be a good fucking idea?
Oh and yes is even an harmless package that try to provide the sudo experience for windows (I went in to check the code of course..)
And I frigging need that cli for work
For now I aliased the sudo in my bashrc still i feel vulnerable and naked now.10 -
Question for those who have programming for several years :
Does it sometimes feel like the logic in your mind is reflected by the career path you have chosen?
Meaning, for me, when it comes to decision making, or when trying to understand an idea, I usually black out when a variable in my mind does not make sence.
Sometimes it feels like programming logic has taken over how I think.2 -
(This is the third time I'm talking about the same question I posted on stack overflow this week, but things keep happening that pisses me off)
Me: *answers my own question, clearly says I tried deleting the php path environment variable and that it didn't work, so that's why I added it back and now it's working perfectly*
Guy: *downvotes my answer* "you need to delete the php path environment variable, here's how"
M: "I did and it didn't work, that's why I added it back and now it's working"
G: "well, you need to delete the php path environment variable"
YOU MOTHERF-
G: "You need to check for all the references"
WERE? You literally only talked about environment variables, I told you I checked those multiple times. Obviously I don't know what I'm doing, if I did I wouldn't be asking such a stupid question like this one, so maybe a little guidance? I mean, isn't that what stack overflow is for? To guide people who don't know how to do something? Don't just say "your wrong" when I said MULTIPLE TIMES I did what you said and it DIDN'T WORK.
Seriously, asking a question there was the worst thing I did 😑
Anyway, he didn't answer back and everything is still working fine, with the php path.1 -
How hard can it be to reference a file on a mounted windows network drive with UNC path to the java command? Seems like everyone uses the same env variable but always different syntax. Sometimes it's
-Dsmth=file://\\net.work.path\sub.xml, then it's -Dsmth=file:///\\net.work.path\\sub.xml, then
-Dsmth="file:///\\\\net...xml"
and none of them work?! 😤4 -
so some controversial opinions
Our company is moving most of our code style to snake_case, even the JavaScript. Here's our resoning:
Take the CustomerAccountMembership model. In our Python server, we would access it as obj.customer_account_membership, in JavaScript as obj.customerAccountMembership and our API endpoint as api/path/customer-account-membership. Thus we had several String utility functions such as `camelize`, `kebabChop` (which is ironically camelCased) and `snakeify`, and we would use them in translating from URL path to JS to Python, which was troublesome.
Now HTTP allows _underscores_ unescaped and do not pose any significant meaning. JavaScript also accepts it as a valid character in variable names. On the other hand, HTTP is strictly lower-cased, and all computer languages use the -dash- to signify subtraction. Sooo the _underscore_ is the only style that is compliant everywhere.
Unless, of course, we go with customeraccountmembership, which I refuse to do.
I'm not that deep into code character rules.
Opinions?7 -
Spent more time than I am willing to admit debugging a Windows service, had a space between the ; and the next path on the %PATH% environmental variable. Powershell called the executable with no problem.
-
I can't name just the one annoying coworker, because I've never had this one person I really, really couldn't stand being around. But there are plenty of coworkers that have crossed my path over the years with features that have slowly driven me towards madness.
Like the team leader with psychopathic traits and a brown nose stomping downwards and pleasing upwards.
Like the one fellow who set variable values multiple times to really, really be certain it was set.
Like the girl who sat next to me every now and then, and always started humming and singing only when she sat next to me. Always just loud enough for me to hear.
The dickhead coworkers that has been bullying me, excluding me, neglecting me over the years.
The managers who apparently never learned managing nor people skills.
Every jackass that thought it was a good idea to come stand next to me so they could have a nice conversation on the phone without being disturbed. Well, you disturbed me!
The manager who was whistling and singing so loud from his office that I had to get a Bose QuietComfort headset to get him out of my head.
Every fucking one contributing to the dinosaurism haunting the office.1 -
Setting the path veriable is as tricky as finding path to some hidden delicious food joints...Ahh atlast my python is moving
-
20 years in and I’m just now discovering Fish! Why the hell isn’t it more popular? For real, it has more features OOB than bash or zsh and the scripted is so much nicer. Oh I need to add to my path? Just add onto a built in variable from the CLI and your good, no need for a script to append a line to some file loaded by zsh or opening up the .zshrc and manually editing it. And how bout that “funcsave” built in huh? Freaking awesome. More people need to be championing Fish, it’s better than your terminal bros zsh6
-
ARGGHH ? WHY !?
[user@localhost pkgconfig]$ ls
libcrypto.pc libpng16.pc libssh2.pc libtiff-4.pc openssl.pc zlib.pc
libjpeg.pc libpng.pc libssl.pc libtls.pc sqlite3.pc
[user@localhost pkgconfig]$ pkg-config --cflags "openssl"
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'virtual:world', not found
[user@localhost pkgconfig]$ echo $PKG_CONFIG_PATH
/CustomPath/lib/pkgconfig/
[user@localhost pkgconfig]$ PKG_CONFIG_PATH=/CustomPath/lib/pkgconfig
[user@localhost pkgconfig]$ pkg-config --cflags "openssl"
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'virtual:world', not found7