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 - "hackish"
-
Realised this today.
One of the things I love the most about my job is the requirement to be creative and hackish.
Sometimes you just have to debug/fix stuff in the weirdest ways and this requires for me to think out of the box.
Something that's very new for me on this level!4 -
Manager: I need you to come up with a quick, temporary solution.
Me: Ok...but it will be kind of hackish and ugly.
Manager: Yes that's completely understandable.
Me: So again you say this is just temporary right?
Manager: Yes we will come up with a permanent solution soon.
*that was over a year ago and the "temporary" solution is not-so-temporary it seems*10 -
Just because you have no idea what you are doing does not make you an artist.
So can we please treat software development as engineering?
I get that in software there are a lot of unknowns and you won't always find best practices, especially if you want to be a pioneer on the bleeding edge.
Yet maybe that issue you were trying to solve with your hackish -- I mean artfully -- solution is a lack of understanding of the basic technology?
If you want to do art, try poetry.3 -
I decided to learn Flutter, because the idea of a common code base between Android and iOS sounds nice. I'm late to the party, I know.
So I install everything and start typing in the tutorial. TAB... two spaces. I absolutely hate that so let's change it. In the settings, it sends me to a FAQ which more or less says this is the way it is, deal with it. But I want my tabs to be four spaces, every code editor since the dawn of time could do this... I'M PAYING FOR THIS SHIT!!!!!!!
Ok, let's check the JetBrains website, I'm starting to lose my patience, but let's do it. At this point I should also mention that I'm feeling pretty stupid. I mean, I'm checking on the internet about how to do something which obviously must be obvious, why am I not seeing it?
I find a page on the official website. JetBrains' replies are along the lines of "Why would you want that?", "The holly wars between tabs and spaces are over", "Most people like it this way", "The overlords said this is the coding style to be used" (Ok, the last one was me reading between the lines). At the end of the thread, they provide a "hackish solution" (their words, not mine). Which doesn't work. Because why should it?
Not even when PyCharm's debugger randomly shat itself and I had to use print statements I got so angry. That was relatively fine, bugs are a fact of life, and the overall package is good, so I kept paying.
But now you're telling me that I cannot use what should be a common feature of every code editor just because you and the overlords know better?
Well, fuck you and the horse you came in on JetBrains, you've just lost a customer.16 -
I hate servers that only support EFI boot with a passion. Yes, legacy / BIOS boot is old, but it was so simple. I've been spending hours trying to get EFI boot working on servers with swraid-ed disks and *nothing* works without ugly hackish patches all over!
Anyone successfully got an EFI partition (/boot/efi) on an MDRaid device? D':4 -
PHP is awesome, but it annoys me that there is no typing and that you still can get errors based on types...
Other than that, not being able to catch all errors in one catch and especially not being able to natively catch fatal errors is my biggest problem...
(not natively meaning that you can use hackish solutions but there's no "fatal error" class to use in your try catch, and you're using the register shutdown function not as intended...)8 -
Colleague of mine deployed application using @reboot target in crom, LD_PRELOAD and screen. The only positive thing is I'm not responsible for infra :-)
-
Sometimes I think that TypeScript is like a poor developer's Haskell. I thought "Isn't this supposed to support functional programming?" and searched for a way to do currying or partial application, and only found hackish solutions :/ Then again, maybe I don't know Haskell well enough to make a proper judgment.1
-
Hey guys!
Once again, I got a little stumped when writing one thingmajig in Python.
I am normally not a programmer (Work as sysadmin), so I don't really know all the fancy abstract ways things are done "properly", which is why I need to ask here:
I have a program, separated into parts. The "core" is a part that sets commandline argument structure (using the argparse library), loads master configuration file, sets up the main logging facility, and then proceeds to load "plugins" - python files with one or more classes that implement one specific abstract class that forces them to implement a common interface of init, run, cleanup functions.
The core then proceeds to initialize those classes, run the "run" function, and run the "cleanup" function.
If the plugin class throws a Warning, it is only logged and runtime continues. If it is anything else, the program logs it and stops.
Now, the issue is, sometimes, a user may want to continue even if a non-warning occurs.
Lets say that I am creating a user, and the user already exists. Sometimes, the program user might want to continue with further plugin execution. And what I was told was to implement specific commandline switches that force continuation of runtime despite the plugin failing.
How should I implement it? The most obvious thing is to add a specific switch for every plugin, but that is exactly what I am trying to evade. I want to have the core as abstract as possible.
Other solution I thought of is to have a file of some sort that would list extra switches to implement, then it would be up to the class to implement if it uses the switch or not (I pretty much pass the entire Namespace received from parse_args() function), but this also feels kinda hackish.
I thought about having some sort of function that the plugin could call in the core to add a new argument, but at the point that plugins start loading, the argument parser is already compiled and cannot be changed further.
Any other ideas of how to re-implement the program are also welcome! I may not do it this times, but I'd at least learn something new again.3