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 - "workarounds"
-
PHP 🐘 is so damn easy to learn, run straighforward in all OSs, that anyone can start coding in no time. Therefore, the amount of crap code around, made by unskilled devs, is just *unbelievable*. 💩18
-
bitchface micromanager keeps telling me i don't communicate enough, don't do enough, am not fast enough, etc.
So i've been sending her a weekly summary of ~50 bullet points of things I did during the week, issues encountered, workarounds found, research findings, who i talked to, etc. all organized by task with links to the tickets.
My work volume hasn't increased (probably decreased, actually) but it certainly looks like I'm doing a lot. probably because i am? but she doesn't listen during standup, so... victory by a hundred bullet points it is!28 -
this.title = "gg Microsoft"
this.metadata = {
rant: true,
long: true,
super_long: true,
has_summary: true
}
// Also:
let microsoft = "dead" // please?
tl;dr: Windows' MAX_PATH is the devil, and it basically does not allow you to copy files with paths that exceed this length. No matter what. Even with official fixes and workarounds.
Long story:
So, I haven't had actual gainful employ in quite awhile. I've been earning just enough to get behind on bills and go without all but basic groceries. Because of this, our electronics have been ... in need of upgrading for quite awhile. In particular, we've needed new drives. (We've been down a server for two years now because its drive died!)
Anyway, I originally bought my external drive just for backup, but due to the above, I eventually began using it for everyday things. including Steam. over USB. Terrible, right? So, I decided to mount it as an internal drive to lower the read/write times. Finding SATA cables was difficult, the motherboard's SATA plugs are in a terrible spot, and my tiny case (and 2yo) made everything soo much worse. It was a miserable experience, but I finally got it installed.
However! It turns out the Seagate external drives use some custom drive header, or custom driver to access the drive, so Windows couldn't read the bare drive. ffs. So, I took it out again (joy) and put it back in the enclosure, and began copying the files off.
The drive I'm copying it to is smaller, so I enabled compression to allow storing a bit more of the data, and excluded a couple of directories so I could copy those elsewhere. I (barely) managed to fit everything with some pretty tight shuffling.
but. that external drive is connected via USB, remember? and for some reason, even over USB3, I was only getting ~20mb/s transfer rate, so the process took 20some hours! In the interim, I worked on some projects, watched netflix, etc., then locked my computer, and went to bed. (I also made sure to turn my monitors and keyboard light off so it wouldn't be enticing to my 2yo.) Cue dramatic music ~
Come morning, I go to check on the progress... and find that the computer is off! What the hell! I turn it on and check the logs... and found that it lost power around 9:16am. aslkjdfhaslkjashdasfjhasd. My 2yo had apparently been playing with the power strip and its enticing glowing red on/off switch. So. It didn't finish copying.
aslkjdfhaslkjashdasfjhasd x2
Anyway, finding the missing files was easy, but what about any that didn't finish? Filesizes don't match, so writing a script to check doesn't work. and using a visual utility like windirstat won't work either because of the excluded folders. Friggin' hell.
Also -- and rather the point of this rant:
It turns out that some of the files (70 in total, as I eventually found out) have paths exceeding Windows' MAX_PATH length (260 chars). So I couldn't copy those.
After some research, I learned that there's a Microsoft hotfix that patches this specific issue! for my specific version! woo! It's like. totally perfect. So, I installed that, restarted as per its wishes... tried again (via both drag and `copy`)... and Lo! It did not work.
After installing the hotfix. to fix this specific issue. on my specific os. the issue remained. gg Microsoft?
Further research.
I then learned (well, learned more about) the unicode path prefix `\\?\`, which bypasses Windows kernel's path parsing, and passes the path directly to ntfslib, thereby indirectly allowing ~32k path lengths. I tried this with the native `copy` command; no luck. I tried this with `robocopy` and cygwin's `cp`; they likewise failed. I tried it with cygwin's `rsync`, but it sees `\\?\` as denoting a remote path, and therefore fails.
However, `dir \\?\C:\` works just fine?
So, apparently, Microsoft's own workaround for long pathnames doesn't work with its own utilities. unless the paths are shorter than MAX_PATH? gg Microsoft.
At this point, I was sorely tempted to write my own copy utility that calls the internal Windows APIs that support unicode paths. but as I lack a C compiler, and haven't coded in C in like 15 years, I figured I'd try a few last desperate ideas first.
For the hell of it, I tried making an archive of the offending files with winRAR. Unsurprisingly, it failed to access the files.
... and for completeness's sake -- mostly to say I tried it -- I did the same with 7zip. I took one of the offending files and made a 7z archive of it in the destination folder -- and, much to my surprise, it worked perfectly! I could even extract the file! Hell, I could even work with paths >340 characters!
So... I'm going through all of the 70 missing files and copying them. with 7zip. because it's the only bloody thing that works. ffs
Third-party utilities work better than Microsoft's official fixes. gg.
...
On a related note, I totally feel like that person from http://xkcd.com/763 right now ;;21 -
Manager: You can’t define an async function without using await.
Dev: Yes you can.
Manager: Well you shouldn’t, there’s no point!
Dev: Yes there is. It can turn blocking synchronous logic into work performed concurrently. In this case the perform—
Manager: It’s called async *await*. Async *AWAIT*! Did you hear the two parts to that? You shouldn’t ever have one without the other. THEY GO TOGETHER. Worrying about concurrency is for people who use callbacks which just goes to show how out of date your skills are. I’m reading a book on javascript and there are so many advanced techniques out there that I haven’t even seen you use ONCE!
Dev: …
*I looked at the book he’s reading, it’s from the < ES6 era… no wonder he doesn’t see me using any of those archaic patterns/hacks/workarounds…*13 -
(Written March 13th at 2am.)
This morning (yesterday), my computer decided not to boot again: it halts on "cannot find firmware rtl-whatever" every time. (it has booted just fine several times since removing the firmware.) I've had quite the ordeal today trying to fix it, and every freaking step along the way has thrown errors and/or required workarounds and a lot of research.
Let's make a list of everything that went wrong!
1) Live CD: 2yo had been playing with it, and lost it. Not easy to find, and super smudgy.
2) Unencrypt volume: Dolphin reports errors when decrypting the volume. Research reveals the Live CD doesn't incude the cryptsetup packages. First attempts at installing them mysteriously fail.
3) Break for Lunch: automatic powersaving features turned off the displays, and also killed my session.
4) Live CD redux: 25min phonecall from work! yay, more things added to my six-month backlog.
5) Mount encrypted volume: Dolphin doesn't know how, and neither do I. Research ensues. Missing LVM2 package; lvmetad connection failure ad nauseam; had to look up commands to unlock, clone, open, and mount encrypted Luks volume, and how to perform these actions on Debian instead of Ubuntu/Kali. This group of steps took four hours.
6) Chroot into mounted volume group: No DNS! Research reveals how to share the host's resolv with the chroot.
7) `# apt install firmware-realtek`: /boot/initrd.img does not exist. Cannot update.
8) Find and mount /boot, then reinstall firmware: Apt cannot write to its log (minor), listed three install warnings, and initially refused to write to /boot/initrd.img-[...]
9) Reboot!: Volume group not found. Cannot process volume group. Dropping to a shell! oh no..
(Not listed: much research, many repeated attempts with various changes.)
At this point it's been 9 hours. I'm exhausted and frustrated and running out of ideas, so I ask @perfectasshole for help.
He walks me through some debugging steps (most of which i've already done), and we both get frustrated because everything looks correct but isn't working.
10) Thirteenth coming of the Live CD: `update-initramfs -u` within chroot throws warnings about /etc/crypttab and fsck, but everything looks fine with both. Still won't boot. Editing grub config manually to use the new volume group name likewise produces no boots. Nothing is making sense.
11) Rename volume group: doubles -'s for whatever reason; Rebooting gives the same dreaded "dropping to a shell" result.
A huge thank-you to @perfectasshole for spending three hours fighting with this issue with me! I finally fixed it about half an hour after he went to bed.
After renaming the volume group to what it was originally, one of the three recovery modes managed to actually boot and load the volume. From there I was able to run `update-initramfs -u` from the system proper (which completed without issue) and was able to boot normally thereafter.
I've run updates and rebooted twice now.
After twelve+ hours... yay, I have my Debian back!
oof.rant nightmare luks i'm friends with grub and chroot now realtek realshit at least my computer works again :< initrd boot failure8 -
last night i was searching for a way to check the battery charge level of my bluetooth headset on linux. None of the workarounds seemed to work for me. I did some research on how bluetooth devices communicate over socket and wrote a python script to do the job. I'm sharing it here. It may be useful for you too.
https://github.com/TheWeirdDev/...14 -
I'm fucking tired of this so called lead developer, lead developer my ass:
- He takes two days to complete a simple task and he dares to ask me why I extended the deadline of this freaking complex feature I need to build.
- He does a half-assed job when completes a task, no validation of data, no well informative message when exceptions are th thrown ...
- He assigns me his tasks although I already have tons and we need to release soon.
- I take care of developing and maintaining 60% of the APIs and I implemented the most complex of features and he dares to always say that my code can be optimized in a vague way, never mentioning what exactly is he talking about, and never telling me beforehand, he always does it during team meetings where another thing is being discussed.
- He presents the app to the whole company and at the end doesn't give credit where it's due, no " thank you for being part of this or helping build this" even if I built most of that shit, instead he says he's disappointed in me ... WTF! What did you fucking do to build this to be disappointed in me? I'm the fucking disappointed one here !!
- He fucking keeps preaching practices that he doesn't follow or he finds workarounds to skip them while the rest of the team follows them.
- He's like "I'm only taking care of this task to help you out?!" .... wtf! I have nothing to do with that fucking task, how are you helping me! You just keep fucking lazing around when we need to be finishing features asap.
Thank God I don't expect anything from you, I get enough credit from my boss who expresses how impressed he's with my job.6 -
I finally got Redux-Form’s `initialValues` to work! Wooooo~!
/giphy confetti cheering
It turns out I haven’t actually been doing anything wrong for the past week. I mean, I've been working on other things during that week, too, but I've been trying to solve this the entire time.
The cause? ReduxForm made a breaking change awhile ago (v5; we’re using v7) that prevents the `initialValues` prop from working if you decorate your form component in the wrong order. Many examples online are incorrect because of this.
Basically, the decorators `reduxForm` and `connect` do not commute:
Incorrect:
`reduxForm(...)( connect(..., {...})(form) )`
vs Correct:
`connect(..., {...})( reduxForm(...)(form) )`
But what really pisses me off is that the fucking documentation specifically fucking states that you may decorate your component IN ANY [FUCKING] ORDER.
/giphy that is [fucking] false
So, I've been following example after [fucking] example that either list these in the wrong order, or I just don't notice the different order because it doesn't matter. AND because of that NONE OF THE [...] EXAMPLES WORK.
ARGH.
I've been pacing around the office trying to figure this out for days. I've rewritten my code three times to try to solve this. I've written two workarounds for it only to rip them out and try again because they both broke some other part of the UX. (e.g. causing false validation errors after rerender)
just. hafhsldkjhgjkhagklwhsdjfkahslf. 😡
/giphy angry hades
You know how I discovered this?
I found it in a github ticket. One solitary, untagged ticket from October of last year. Not a single goddamn post anywhere else mentioned this. And the [...] documentation specifically [...] states the [...] opposite!
Bloody [...] hell.
but it finally works.
as;kgjhaekl;gahgjkdflssdafh.
I could scream.6 -
Help.
I'm a hardware guy. If I do software, it's bare-metal (almost always). I need to fully understand my build system and tweak it exactly to my needs. I'm the sorta guy that needs memory alignment and bitwise operations on a daily basis. I'm always cautious about processor cycles, memory allocation, and power consumption. I think twice if I really need to use a float there and I consider exactly what cost the abstraction layers I build come at.
I had done some web design and development, but that was back in the day when you knew all the workarounds for IE 5-7 by heart and when people were disappointed there wasn't going to be a XHTML 2.0. I didn't build anything large until recently.
Since that time, a lot has happened. Web development has evolved in a way I didn't really fancy, to say the least. Client-side rendering for everything the server could easily do? Of course. Wasting precious energy on mobile devices because it works well enough? Naturally. Solving the simplest problems with a gigantic mess of dependencies you don't even bother to inspect? Well, how else are you going to handle all your sensitive data?
I was going to compare this to the Arduino culture of using modules you don't understand in code you don't understand. But then again, you don't see consumer products or customer-specific electronics powered by an Arduino (at least not that I'm aware of).
I'm just not fit for that shooting-drills-at-walls methodology for getting holes. I'm not against neither easy nor pretty-to-look-at solutions, but it just comes across as wasteful for me nowadays.
So, after my hiatus from web development, I've now been in a sort of internet platform project for a few months. I'm now directly confronted with all that you guys love and hate, frontend frameworks and Node for the backend and whatever. I deliberately didn't voice my opinion when the stack was chosen, because I didn't want to interfere with the modern ways and instead get some experience out of it (and I am).
And now, I'm slowly starting to feel like it was OKAY to work like this.10 -
One of my former coworkers was either completely incompetent or outright sabotaging us on purpose. After he left for a different job, I picked up the project he was working on and oh my God it's a complete shitshow. I deleted hundreds of lines of code so far, and replaced them with maybe 30-40 lines altogether. I'm probably going to delete another 400 lines this week before I get to a point where I can say it's fixed.
He defined over 150 constants, each of which was only referenced in a single location. Sometimes performing operations on those constants (with other constants) to get a result that might as well have been hard-coded anyway since every value contributing to that result was hard-coded. He used troublesome and messy workarounds for language defects that were actually fixed months before this project began. He copied code that I wrote for one such workaround, including the comment which states the workaround won't be necessary after May 2019. He did this in August, three months later.
Two weeks of work just to get the code to a point where it doesn't make my eyes bleed. Probably another week to make it stop showing ten warnings every time it builds successfully, preventing Jenkins from throwing a fit with every build. And then I can actually implement the feature I was supposed to implement last month.5 -
So I recently had a university project which focuses video game audio. We had to work in groups of 3 students and the task was to create a video game which uses audio as a gameplay mechanic.
Our idea was to create a game where you collect different audio samples which get looped as background music, and you have to select the correct ones to have a nice tune. To make it a bit more challenging we had enemies, guns and grenades plus doors which only open if the correct music is playing.
The guns fire on-beat, and the grenades always explode on the first beat of the next bar.
It was quite challenging to get things synced since even small offsets are noticable.
I wrote some nice code and theoretically it should have worked but for some reason the gun shots and the grenades didn't quite hit the beat of the music.
I tweaked stuff, created workarounds, optimized lot's of code to get execution times down but it still only worked sometimes.
I tweaked more and more only to realize that the timing drifted over time.
At that time I worked 20-30 hours on tweaking and trying to get it perfectly timed.
After recalculating some numbers I realized that all the audio samples are recorded at 135 bpm, but the guys who did the recordings said it was 130bpm.
I asked them if it could be the case that the samples are 135bpm and they said:
"yes, they are at 135 bpm as we told you"
I scrolled back in the telegram conversation only to see that they said 130.
Changing the number to 135 resolved all the problems and all of my workarounds and tweaks weren't needed.
So I worked for nearly 30 hours just because they didn't notice their fault and even when they realized that the timing is off sometimes (which took forever because they never played the game), they didn't even consider that they might have given me the wrong numbers.
This all wouldn't be that bad if both of my teammates had worked for more than 15 hours but they didn't. I did all the hard work and the only single thing they did fucked up my workflow. It fucked up the system I created and it fucked up the gameplay as things got unpredictable. Because of their fucking fault I worked as much as both of them combined IN ADDITION to all the other work I did (built 3 maps, coded everything, created animations, ...)
I love working in teams, but only if the whole team is motivated. Those two fuckers were the exact opposite.
Luckily i found the error so I could fix it, but guess with whom I'll never ever work together again?10 -
Okay this is it; FUCK java on android. You need so many fucking workarounds, its insane. Im tryna merge to bmps together, one on top, and the helper class is at 400 lines already and its only kinda working. If you gonna abstract things away, then fucking abstract them well (ocaml) or not at all (c).16
-
Building a wheel is great.
Building a steering wheel is also great
Building a brakes pedal is amazing.
Making them work asynchronously - not that good of an idea is it...
Who the fuck thought separating data stream (copying bytes) from stream control (when does the stream start/end) is a good idea...?
- open a connection
- send data to the stream
- send() returns
- close the connection
Apparently, the send() does not copy the data and returns. Instead, it enqueues the data copying task end returns. When does the actual copying start? IDK. When does it end? IDK. Can I close the conn? NO!
This thing is UNUSABLE. And I'd riddle it with reflection-based workarounds if it weren't for the static methods.
Fuck!3 -
Did I tell you that X third party system needed to be updated due to that pos using flash? Yes
Did you bitch about budget constraints and finding workarounds and stuff like that? Also Yes
Did I mention that X system was crucial for people and that we were not going to be able to do anything about it if we did not allocate the time to modify that before it happened? Also Yes
Did I mentioned this on multiple occasions? Yes
Was my team also pulled out from working on the alternative before this happened? Yes
Did I send multiple emails about this, talks, meetings and documentation of me saying all of the above? You betcha
Oh well 🤡6 -
This whole corporate numbers game is killing me. I know I'm getting paid to do what I'm asked, I know. But the metrics are so one dimensional
You fixed the data of 20 tests? Doesn't count because you didn't code
You implemented a function to reduce recurrent failures in the future? Doesn't count because those already pass with time consuming workarounds
You spent half a day communicating and coordinating across teams to fix an issue? That's 1 test, this other person changed 1 line in 5 files, you're 4 tests behind4 -
So I joined this financial institution back in Nov. Selling themselves as looking for a developer to code micro-services for a Spring based project and deploying on Cloud. I packed my stuff, drove and moved to the big city 3500 km away. New start in life I thought!
Turns out that micro-services code is an old outdated 20 year old JBoss code, that was ported over to Spring 10 years ago, then let to rot and fester into a giant undocumented Spaghetti code. Microservices? Forget about that. And whats worse? This code is responsible for processing thousands of transactions every month and is currently deployed in PROD. Now its your responsibility and now you have to get new features complied on the damn thing. Whats even worse? They made 4 replicas of that project with different functionalities and now you're responsible for all. Ma'am, this project needs serious refactoring, if not a total redesign/build. Nope! Not doing this! Now go work at it.
It took me 2-3 months just to wrap my mind around this thing and implement some form of working unit tests. I have to work on all that code base by myself and deliver all by myself! naturally, I was delayed in my delivery but I finally managed to deliver.
Time for relief I thought! I wont be looking at this for a while. So they assign me the next project: Automate environment sync between PROD and QA server that is manually done so far. Easy beans right? And surely enough, the automation process is simple and straightforward...except it isnt! Why? Because I am not allowed access to the user Ids and 3rd party software used in the sync process. Database and Data WareHouse data manipulation part is same story too. I ask for access and I get denied over and over again. I try to think of workarounds and I managed to do two using jenkins pipeline and local scripts. But those processes that need 3rd party software access? I cannot do anything! How am I supposed to automate job schedule import on autosys when I DONT HAVE ACCESS!! But noo! I must think of plan B! There is no plan B! Rather than thinking of workarounds, how about getting your access privileges right and get it right the first time!!
They pay relatively well but damn, you will lose your sanity as a programmer.
God, oh god, please bless me with a better job soon so I can escape this programming hell hole.
I will never work in finance again. I don't recommend it, unless you're on the tail end of your career and you want something stable & don't give a damn about proper software engineering principles anymore.3 -
I (don't) like how some people say "If your code needs comments, your code is probably ugly and should be rewritten".
Well, asshats. You have never considered complex calculations/functions or "temporary" workarounds, right?
Sometimes, you have to do it in a not-very-readable way for efficiency. There is no way around that in that case, and comments that either explain the code below or provide alternative, slower code that's commented really help others understand your code.
If I ever work with you and you don't bother commenting your code at all (or rather use slow code because more efficient code doesn't appeal to your "muh code dun need comments" approach), I will hate you.6 -
Anyone else make the weirdest workarounds ever to trivial framework problems. Then read documentation to find out that there was a function for that...
-
In fact I'm a sinful dev, so that I can't easily decide which one is worst. From indenting with tabs, or using nano instead of vim/emacs, to hardcoding database credentials on server, to many hacks and workarounds I use as actual "fixes" when the deadline is upon me and I've tried all I could. But it always led only to my own regret. For instance, my latest sin was that I prefered Debian over Arch and used proprietary graphic drivers to speed up my new setup. But ended up with a curse from St. Ignucius. (check my last rant)
But my worst sin probably goes to when I was "printf-debugging" some issue for a GSM controller on a raspberry pi. I forgot to remove one little print line and deployed the new "fixed" version. I didn't follow that project after that for like a month or so, when the client posted back the device and said that "it just doesn't work anymore". It seemed that raspbian didn't boot beacause the sd card was curroptted. I dd'ed through the card and I noticed that there are billions of lines of "DEBUG:: reading stream from 192.some.shitty.ip", took almost all over the 32G sdcard. Just as I suddenly remembered the cursed line I just added a month ago, I declared the sd card dead with no hesitation, dunce-commented the line (so the history would remember), implemented a time out for the thread containing it, setup a journald unit for my service and removed the redirection of process output to a log file, found a new sd card and installed everything again, and finally posted back the new "fix" to the client.
Moral: Never comfort yourself for the sins you have commited in the past kids, they certainly will come back to you. And also not to do any io especially write to a file on an SD card with ext fs, in a potentially infinite loop with no timeout.
P.S: I'd posted my last rant just before the new week rant last nigh. I really liked the St. Ignucius meme so decided to create a new one. He's very adorable :)1 -
The single most annoying thing about Rust the language, is that it shares name with Rust the game.
This sometimes leads to some pretty cumbersome workarounds when trying to Google for things in one that also exists in the other.5 -
Ever had a day that felt like you're shoveling snow from the driveway? In a blizzard? With thunderstorms & falling unicorns? Like you shovel away one m² & turn around and no footprints visible anymore? And snow built up to your neck?
Today my work day was like that.. xcept shit..shit instead of pretty & puffy snow!!
Working on things a & b, trying to not mess either one up, then comes shit x, coworker was updating production.. ofc something went wrong.. again not testing after the update..then me 'to da rescue'.. :/ hardly patch things up, so it works..in a way.. feature c still missing due to needed workarounds.. going back to a and b.. got disrupted by the same coworker who is nver listening, but always asking too much..
And when I think I finally have the b thing figured out a f-ing blocker from one of our biggest clients.. The whole system is unresponsive.. Needles to say, same guy in support for two companies (their end), so they filed the jira blocker with the wrong customer that doesn't have a SLA so no urgent emails..and then the phone calls.. and then the hell broke loose.. checking what is happening.. After frantic calls from our dba to anyone who even knows that our customer exists if they were doing sth on the db.. noup, not a single one was fucking with the prod db.. The hell! Materialised view created 10 mins ago that blocked everything..set to recreate every 10 minutes..with a query that I am guessing couldn't even select all that data in under 15.. dafaaaq?! Then we kill it..and again it is there.. We found out that customers dbas were testing something on live environment, oblivious that they mamaged to block the entire db..
FML, I'm going pokemon hunting.. :/ codename for ingress n beer..3 -
As a developer, I have stopped seeing problems in my everyday workflow. I guess my mind makes workarounds without me noticing.
Example, a lot of the people around me complain about slow internet at my place, I've never been able to experience it that way. -
When my mom died in 2014, I was shocked to find that her profile on Facebook was suddenly changed to “memorial” mode and therefore I was no longer able to log into it. (If you’re tempted to tell me I’m dumb for using it, I don’t disagree, but save it for another thread...she and I kept in touch over FB because it was easier for her to manage.)
I think it was triggered by their monitoring of things and seeing keywords like “funeral” and “passed away” associated with her account, then having a person on their end change its status. Or something like that.
What I hadn’t known about (or I would have used it) was the legacy contact setting where she could have set me as the contact so I’d have at least a little access and control. But because of their strict policies, I’m forever locked out.
I get why they need to do this (to avoid fraud and impersonations) but the fact that there are zero documents or proofs I, as the executor of her estate, can provide that Facebook will accept to make an exception seems unnecessarily severe.
Anyone else experience this? Known workarounds?9 -
Did your motivation ever suffered for company enforced tooling/stack?
I'm striving to be as adaptable as possible to not bitch if I have to use Angular insted of React or Java instead of Go but the stack which I was forced to use for the last two years is killing the joy I find in programming.
I'm talking about Spring WebFlux a stack which in theory is very promising (IO performances of NodeJS but in Java) but in practice is a pain to use: it makes polymorphism very hard forcing to rewrite tons of code, it significantly reduces your library choice, even after studying a damn book about it debugging remains a huge headache, unit testing often requires hacks and workarounds to be done...
Programming with it always feels like trying to fit a square peg in a round hole and I'm catching myself in procrastinating more and more, initially I feared I was burning out or losing my passion for the field but I noticed which the rare times I get to use a more canonical stack like .NET my motivation instantly returns but sadly I can use it only for few hours and then I return to WebFlux and my passion flees again.
I'm considering to look for another job but sadly lately I neglected my GitHub so I might have hard times in finding it.2 -
Oh great...
I am slowly beginning to realize that my boss/manager doesn't care about refactoring at all. He cares about features and resolved tickets and thats why the code is a pile of spaghetti filled with hacks to fit every clients desires.
Also all of my coworkers work for themselves, ticket by ticket, either because they just don't care or because they are so frustrated that they don't care anymore. And here I am, an intern, and they expect me to cope with this deformed clutter of legacy designs, buried under hacks and workarounds, while implementing some new feature which in the end I have to put on top of everything else because nothing of that codebase can be reused. Fucking shit, fucking irresponsible managers who dont think about the quality of their product. -
Workarounds are great. I remember one time, I had a server that let anyone access any file as long as the knew the right path. I wanted to store data in a .txt (it wasnt secure passwords or anything, so calmyourtities), but then had access too it. Now, this server wasn't running anything except PHP, so I created a database.php, and within was just some php tags. I ended up modifying the database.php from other PHP scripts and storing all the data as PHP comment, then parsing thru it as I needed, so loading mydomain.biz/database.php wouldn't show the data. ex of my database.php (to all that might not understand because I'm bad at explaining):
<?php
//USER1:DATA1
//USER2:DATA2
?>2 -
FUCK
I really wanna love Rust. I really, really do. But no inheritance is just such a stupid decision. But inheritence bad REEEE. No. Just no. Composition only works fine for some things because it just isn't powerful enough to properly (without performance penalty or boilerplate, that is) emulate inheritance. Some things are just better with inheritance: Games, UI, html or xml libs, etc. Now I have to use stupid fucking workarounds because oh no we cannot implement inheritance because that's scary and might give the programmers to much power. I can decide when I want to use inheritance or composition for myself, dickheads9 -
Here we are, three years later. Our system breaks down at the slightest load. An architecture is hardly recognizable anymore. The code consists of methods that have been refactored beyond recognition. The so-called architects came and went, leaving behind an ever-growing fiasco. Wrong decisions are concealed, criticism of them dismissed as ignorance. Our clients are on the verge of having us all killed. Daily crisis meetings are the norm. The remaining developers skulk around the unmaintainable code like emaciated ghosts. Everyone who has even the slightest chance to escape takes a parachute. Our dailies are made up of lies to cover up yesterday's lies. Our Mondays have become days of dread, because that's when the weekend disaster news has to be analyzed. Yet there are still developers who turn a blind eye. Who recommend this and that workaround in a good-humored tone. The code consists only of workarounds. Sarcasm has replaced any normal discussion. Reasonable suggestions on how to basically refactor the whole thing are rejected for cost reasons. In the process, our entire budget is eaten up by maintenance costs. Middle management should be put up against the wall. Why am I still here? This deceptive feeling that one could still turn the tide. This is eating me up.2
-
Hey everyone!
TL;DR I'm looking for a way to make a webapp for iOS.
I am developing an app for iOS devices. I am more familiar with JS, CSS and HTML, not to mention I have already created a fair chunk of the app. So it would be great if there was a solution that worked like UIWebView/WKWebView. I've had numerous issues with both of these widgets. UIWebView worked the best, most like a normal browser renderer, however still has some very annoying anomalies. For instance the input box could be covered up such so that you could still type but not see what you were typing, no other web browser does this. I've had plenty of issues that I have had to find hacky workarounds for. Is there a better way? I've heard of Titanium by Appcelerator, however I wanted to get as many opinions as a can.
Thanks!14 -
I'm absolutely amazed this business keeps going. I've been fighting with an upgrade process (for a product I don't usually work on) for two full days now and every. single. thing. has a million specific workarounds. HOW DOES THIS EVEN GO?1
-
I often read articles describing developer epiphanies, where they realized, that it was not Eclipse at fault for a bad coding experience, but rather their lack of knowledge and lack of IDE optimization.
No. Just NO.
Eclipse is just horrendous garbage, nothing else. Here are some examples, where you can optimize Eclipse and your workflow all you like and still Eclipse demonstrates how bad of an IDE it is:
- There is a compilation error in the codebase. Eclipse knows this, as it marks the error. Yet in the Problems tab there is absolutely nothing. Not even after clean. Sometimes it logs errors in the problems tab, sometimes t doesn't. Why? Only the lord knows.
- Apart from the fact that navigating multiple Eclipse windows is plain laughable - why is it that to this day eclipse cannot properly manage windows on multi-desktop setups, e.g. via workspace settings? Example: Use 3 monitors, maximize Eclipse windows of one Eclipse instance on all three. Minimize. Then maximize. The windows are no longer maximized, but spread somehow over the monitors. After reboot it is even more laughable. Windows will be just randomly scrabled and stacked on top of each other. But the fact alone that you cannot navigate individual windows of one instance.. is this 2003?
- When you use a window with e.g. class code on a second monitor and your primary Eclipse window is on the first monitor, then some shortcuts won't trigger. E.g. attempting to select, then run a specific configuration via ALT+R, N, select via arrows, ALT+R won't work. Eclipse cannot deal with ALT+R, as it won't be able to focus the window, where the context menus are. One may think, this has to do with Eclipse requiring specific perspectives for specific shortcuts, as shortcuts are associated with perspectives - but no. Because the perspective for both windows is the same, namely Java. It is just that even though Shortcuts in Eclipse are perspective-bound, but they are also context-sensitive, meaning they require specific IDE inputs to work, regarldless of their perspective settings. Is that not provided, then the shortcut will do absolutely nothing and Eclipse won't tell you why.
- The fact alone that shortcut-workarounds are required to terminate launches, even though there is a button mapping this very functionality. Yes this is the only aspect in this list, where optimizing and adjusting the IDE solves the problem, because I can bind a shortcut for launch selection and then can reliably select ant trigger CTRL+F2. Despite that, how I need to first customize shortcuts and bind one that was not specified prior, just to achieve this most basic functionality - teminating a launch - is beyond me.
Eclipse is just overengineered and horrendous garbage. One could think it is being developed by people using Windows XP and a single 1024x768 desktop, as there is NO WAY these issues don't become apparent when regularily working with the IDE.9 -
Overengineering. Finding the right point between overdesign and no design at all. That's where fancy languages and unusual patterns being hit by real world problems, and you need to deal with all that utter mess you created being architecture astronaut. Isn't that funny how you realize that another fancy tool is fundamentally incompatible with the task you need to solve, and you realize it after a month of writing workarounds and hacks.
But on the other hand, duct tape slacking becomes a mess even quicker.
Not being able to promote projects. You may code the shit out of side project and still get zero response, absolutely no impact. That's why your side projects often becomes abandoned.
Oversleeping. You thought tomorrow was productive day, but you wake up oversleeped, your head aches, your mind is not clear and you be like "fuck that, I'm staying in bed watching memes all day". But there's job that has to be done, and that bothers you.
Writing tests. Oh, words can't describe how much I hate writing tests, any kind of. I tried testing so many times in high school, at university, even at production, but it seems like my mind is just doesn't accept it. I know that testing is fundamentally important, but my mind collapses every time I try to write a single fucking test, resulting in terrible headache. I don't know why it's like that, but it is, and I better repl the shit out of pure function than write fucking tests. -
I just finished reading the last chapter of the DevOps Handbook, its an eye opener, but not an easy read. And still recommended.
I've been reading this book for the past year and a half, little by little. It was hard since I started understanding why my work was so frustrating (I'm in System-Cloud-Ops position). The book made sense, while the work did not, it got harder since the book provides solutions, but whenever I dicussed any solutions with management they dismissed everything.
I started to initiate improvements by myself:
Prioritizing tasks I thought were more important to improve the way of work - do now and ask questions later... I got yelled at, I got my managers angry, but afterwards more often then not they admitted I was right.
To make it possible I worked overtime and on weekends, trying to prove a better way is possible, by implementing a long term solutions to solve problems instead of workarounds, automating a lot of stuff, creating labs, preparing presentations and documentation.
Time and time again I tried to pitch more ideas related to DevOps but the managers didn't care...
I know now my burnout started 8 months ago slowly, my hairline started receding, I started clenching my teeth (the doctor said stress was the cause) which was very fainful.
I continued to work but I noticed I was also more cynical, frustrated, and tired.
In the process I neglected myself.
So finally after 2 years and a half I quit my job, to focus on myself, at least for a little while.
I hope in my next job will be better.4 -
The company I used to work for, despite me not working there contacts me to get a verification code because the crappy developer they hired can't change a couple settings on the apple website and add themselves as a developer.
At the start of this all, a couple months back I gave them the code out of courtesy, but at this point, as i'm heavily invested in the development stage of my actual job as a vr developer, I won't take time out of my day to even answer the phone for them.
But what really pisses me off is the person who contacts me, my assumbly best friend, who during the last 12 months has only called me for these codes, so work related shit or just personal shit and never to hang out or play games or generally what we used to do as friends before he got a job at that stupid company doesn't have the balls to tell his boss that i'm busy with my job, that maybe if payment was offered as an incentive that I would be happy to be contacted.
When I left that company I didn't setup anything to make it so they would have to contact me, all I did was add myself as a developer of their app. I also heavily documented everything I did, all the issues I faced and the workarounds I found, and everything including all login information needed to get things working, I went above just "developing" the app I added in all the credits to all work used in the app as partly to make sure we don't get sued for stealing someones work without the right credit.
I hate the fact that I worked for minimum wage and did all of this shit, but I never complained at all about things like the 1 1/2 hour travel time (one way I might add) to my boss, the amount of money I spent on public transportation, the little money left over that I didn't even spend and instead give to my parents.
They know nothing about how hard that year was for me, and if they want to get this code, my so called friend can come chat in person, in his off time and when I'm done working on my own shit and we can discuss terms because this shit is just not fair at all.5 -
We have a standalone api acting as a legacy adapter to our actual api, and as you can imagine it's a festering hellpit of hacks and workarounds which is not intended to be maintained after its EOL.
I recently had a dream - more of a nightmare - where our actual api had to support the legacy calls indefinitely.
I told our PO about it as a funny anecdote and he gave me 3 days off. -
When your company has data integrity issues and they expect hacky workarounds instead of fixing the data
-
I've had a Xiaomi Mi 8 for a few months now. Although I'm impressed by what I got for the amount I paid (a phone that cost about $250 for 6GB RAM, Snapdragon 845, Android 9 and premium build quality is quite a steal), it definitely comes with a consequence.
MIUI (specifically MIUI 11) is godawful. It is single-handedly the worst Android ROM I've ever used since my shitty Android 2.2 phone back around 2010. If you're gonna buy a Xiaomi phone, plan to install Lineage OS on it (but even that's a pain which I'll explain why later).
- Navigation buttons don't hide while watching a video.
Why? God only knows. The ONLY way to bypass without root this is to use its garbage fullscreen mode with gestures, which is annoying as all hell.
- 2 app info pages?
Yeah, the first one you can access just by going to its disaster of a settings app, apps, manage apps and tap on any one.
The 2nd one you can access through the app info button in any 3rd party launcher. Try this: Download Nova launcher, go to the app drawer, hold on any app and tap "app info", and you'll see the 2nd one.
Basically, instead of modifying Android's FOSS source code, they made a shitty overlay. These people are really ahead of their time.
- Can only set lock screen wallpapers using the stock Gallery app
It's not that big an issue, until it is, when whatever wallpaper app you're using only allows you to set the wallpaper and not download them. I think this is both a fuckup on Xiaomi and (insert wallpaper app name here), but why Xiaomi can't include this basic essential feature that every other Android ROM ever made has is beyond me.
- Theming on MIUI 11 is broken
Why do they even bother having a section to customize the boot animation and status bar when there's not one goddamn theme that supports it? At this point you're only changing the wallpaper and icon pack which you can do on any Android phone ever. Why even bother?
They really, REALLY want to be Apple.
Just look at their phones. They're well designed and got good specs, but they don't even care anymore about being original. The notch and lack of a headphone jack aren't features, they're tremendous fuckups by the dead rotting horse known as Apple that died when Steve Jobs did.
Xiaomi tries to build a walled garden around an inherently customizable OS, and the end result is a warzone of an Android ROM that begs for mercy from its creator. Launchers integrate horribly (Does any power user actually use anything that isn't Nova or Microsoft launcher?), 3rd party themes and customization apps need workarounds, some apps don't work at all. People buy from Xiaomi to get a high end budget Android phone at the price of some ads and data collection, not a shitter iOS wannabe.
They really, REALLY want you to have a sim card
If you don't have a sim card and you're using your phone for dev stuff, you're a 2nd class citizen to Xiaomi. Without one, you can't:
- Install adb through adb
- Write to secure settings
- Unlock your bootloader and get away from this trash Android ROM
What's the point? Are they gonna shadow ban you? Does anyone contact them to unlock their bootloader saying "yeah I wanna use a custom rom to pirate lizard porn and buy drugs"? They made this 1000000000x harder than it needs to be for no reason whatsoever. Oh yeah and you gotta wait like a week or something for them to unlock it. How they fucked up this bad is beyond me.
So yeah. Xiaomi. Great phones, atrocious OS.11 -
At work we use "Mythological Documentation": mystical features and obscure workarounds are verbally explained across generations of developers that come and go, keepping the knowledge alive.
-
Holy mother of butts. Two weeks. Two weeks I've been on and off trying to get hardware rendering to work in xorg on a laptop with an integrated nvidia hybrid gpu.
I know the workarounds and it's what I've been using otherwise. Nouveau without power management or forced software rendering works fine. I also know it's a known issue, this is just me going "but what the hell, it HAS to be possible".
The kicker is that using nvidias official tools will immediately break it and overwrite your xorg.conf with an invalid configuration.
I've never bought an nvidia gpu but all my work laptops have had them. Every time i set one up I can't resist giving this another shot, but I always hit a brick wall where everything is set up right but launching X produces a black screen where I can't even launch a new tty or kill the current one. I assume it's the power management tripping over itself.
The first time I tried getting this to work was about 3 or 4 years ago on a different laptop and distro. It's not a stretch to say that it would be better if nvidia just took down their drivers for now to save everyone's time.5 -
Safari is slowly becoming the new Internet Explorer.
I'm loosing count over how many javascript workarounds i need to make for that abomination.5 -
Title: The problem with "good enough" code
Body:
I'm a software developer, and I've seen my fair share of "good enough" code. You know the kind of code I'm talking about: it works, but it's not pretty, and it's not very maintainable.
The problem with "good enough" code is that it's a slippery slope. Once you start writing "good enough" code, it's easy to fall into the trap of always taking the easy way out.
Before you know it, your code is a mess of hacks and workarounds. It's hard to understand, it's hard to maintain, and it's a nightmare to debug.
I've seen projects go down in flames because of "good enough" code. The code was so bad that it was impossible to fix, and the project had to be scrapped.
I'm not saying that you should never write "good enough" code. Sometimes, you just need to get something working, and you don't have the time or resources to do it perfectly.
But if you're going to write "good enough" code, you need to be aware of the risks. And you need to make sure that you're only writing "good enough" code for a short period of time.
Once you have a working prototype, you need to start refactoring your code and making it better. You need to make it more readable, more maintainable, and more testable.
If you don't, you'll eventually regret it. Your code will become a liability, and it will hold you back.
So next time you're tempted to write "good enough" code, think twice. It might save you some time in the short term, but it will cost you in the long run.7 -
Not so long ago i met a webdesigner from one of my projects. Before that i did not know that Fonts like FontAwesome exist (except that crap default Font from MS). I was so happy, no more working / designing my applications with fucking images or other workarounds! THANK YOU5
-
Imagine a web way ahead of our time where its size goes beyond our imagination...
This is my first rant, and I'll cut to the chase! I don't like how web currently stands. Here's what makes me angry the most altough I know there's a myriad of solutions or workarounds:
- A gazillion credentials/accounts/services in your lifetime.
- Everyone tries to reinvent the wheel.
- There's no single source of truth.
- Why the fuck there's so much design in a vision that started as a network of documents? Why is it that we need to spend time and energy to absorb the page design before we can read what we are after?
- What's up with the JS front end frameworks?! MB's of code I need to download on every page I visit and the worse is the evaluation/parsing of it. Talk about acessibility and the energy bills. I don't freaking need a SPA just give a 20-50ms page load and I'm good to go!
- I understand that there's a whole market based on it but do we really need all that developer tools and services?
- Where's our privacy by the way? Why the fuck do I need ads? Can't I have a clue about what I wan't to buy?
Sticking with this points for now... Got plenty more to discuss though.
What I would like to see:
A unique account where i can subscribe services/forums/whatever. No credentials. Credentials should be on your hardware or OS. Desktop Browser and mobile versions sync everything seemlesly. Something like OpenID.
Each person has his account and a profile associated where I share only what I want with whom I want when I want to.
Sharing stuff individually with someone is easy and secure.
There's no more email system like we know. Email should be just email like it started to be. Why the hell are we allowing companies to send us so much freaking "look at me now, we are awesome", "hey hey buy from me".. Here's an idea, only humans should send emails. Any new email address that sends you an email automatically requests your "permission" to communicate with you. Like a friend request.
Oh by the way did I tell you that static mail is too old for us? What we need is dynamic email. Editing documents on the fly, together, realtime, on the freaking email. Better than mail, slack and google docs combined.
In order for that to work reasonably well, the individual "letter" communication would have to be revamped in a new modern approach.
What about the single source of truth I talked about? Well heres what we should do. Wikipedia (community) and Larry Page (concept) gave us tremendous help. We just need to do better now.
Take the spirit of wikipedia and the discoverability that a good search engine provides us and amp that to a bigger scale. A global encyclopedia about everything known to mankind. Content could be curated from us all just like a true a network.
In this new web, new browser or whatever needed to make this happen I could save whatever I want, notes, files, pictures... and have it as I left it from device to device.
Oh please make web simple again, not easy just simple and bigger.
I'm not old by the way and I don't see a problem with being older btw.
Those are just my stupid rants and ideas. They are worth nothing. What I know for sure is that I'll do something about or fail trying to.12 -
Started a new contract:
Dev: "here, take this draft document containing a rough explanation of the requirements and write this service that exchange messages with these two subsystems"
Me 😐"ok"
-- couple weeks later --
Dev: "oh btw, you should go through ALL the fields in those messages described in the 'documentation' and double check them because we use millimeters and they use meters, we measure milliseconds and they use seconds. You should handle conversions when you deal with those messages"
Me (in my mind): "fucking son of a bitch! Why didn't you tell me this little piece of information at the beginning so I could have accounted for that instead of bloating the code now with your spaghetti style, full of horrible hacks, ifs and workarounds?
Me 😐: "sure, I will"
(don't worry, in the end I managed to find a clean solution for that 😉) -
If you need workarounds and tricks to make your computer obey you, your operating system is trash. MacOS, Windows, I’m looking at you. This is indisputable.
Instead of defending that crap, just admit it. You did nothing wrong. You was forced to use it, because I understand that not every piece of software can run on Linux. Perhaps you earn money using Photoshop or any other Adobe software. There’s nothing wrong with it. You don’t become a baby-eating trash supporter billyboy if you’re just using an OS.
Perhaps you like macOS UI better than KDE or Epiphany. There’s nothing wrong with it either.
But please don’t defend trash just because you use it for one reason or another. Admit it to yourself and say “yes, the OS I use is a piece of crap that doesn’t respect users, but right now I’m forced to use it because of the software I make a living with”. This is the only non-traumatic way to start defending your rights.
Peace7 -
I thought I had a decent handle on CSS. I can use flexbox and grid to make some decent and responsive webpages, and I'm at least familiar with most of CSS's more common gotchas
But no.
Even in 2021, with years of improvement in the language and browser compatibility, CSS can still fuck you over
I was adding some margin to a div element, and I noticed that the div element's margin seemed to force it's parent to move down too, as if the margin was applied to the parent as well
It took far too many nearly nonsensical google searches to discover that CSS has a nasty little trick called 'margin collapse'
And in true CSS fashion, the way to fix it is a hacky workaround. In this case, if you add a padding of 1px to the parent, the margin collapse doesn't apply.
Fuck CSS. From its weird implementation to its hundreds of gotchas to its hacky workarounds to said gotchas.
Fuck CSS2 -
Love starting a brand new web project, knowing that you wont go down the same rabbit hole and spaghetti workarounds ‘cos the clients a dick scenario…. until of course you do. FML.1
-
I hate fucking SteamVR stuff so much. I don't know why, but Valve has not set up the plugins in a way that makes any sense. I have so many workarounds in the project I'm working on it makes me sick.
-
An arts online magazine. The manager needs to include ads but don't want to do it on a obstructive or invasive way. So far so good, I agree.
Since this is an arts and culture mag, he gets the idea of having a piano keyboard on the sidebar. Each of the keys has to be animated so that on hover it seems to move and play a note. When clicked, it displays an ad. The user don't know or see the ad until he/she plays the note.
Of course no one bought any of the keys. Hours of work wasted.
We all hate ads but some workarounds are not worth it. -
Dis dude @ODXT. First actual friend I made at the job. Magician that showed me the BS and Magic workarounds in report development using SAP. Also GM, Taco Accomplice, and Ramen connoisseur. Really happy to call him a friend, mentor, and partner in (food) crime7
-
Identifying when to start a project over because it has gotten out of hand with workarounds and memory management issues.
-
Had to be appcelerators titanium (weirdly I think this app was built with it).
I used it in the early days, before they had the foresight to add a date-time picker for Android.
It was a horrible unforgiving place, bugs on top of bugs, horrible documentation, incorrect instructions, and hacky workarounds posted as official installation instructions.
I'm not sure if it's gotten any better now, but I did give it a go again 2 years to update an app for someone. They made so many breaking changes, which is fine, but the new outcome offered less features and required more boilerplate code. I then spent (literally) 3 hours trying to get the Android simulator to run the app. Titanium just kept timing out and throwing incomprehensible errors. I eventually gave up and told my friend I updated it, it compiles but I can't test it.
Will never touch it again, and will never be used in any team I work for. Just awful.1 -
I've always been a strong critic of the mac operating system and apple in general for they're overpriced products. few months back my old laptop kicked the bucket and repairing it was not an option as i was sick of charging the laptop after every 3-4 hours and had to purchase a new laptop immediately. loooking at my options around 50k rs or 700$ all windows laptops available in indian markets sucked (except for lenovo 320s) so i made the shift to macbook air 2017.my daily work involves photoshop illustrator and a dash of premiere pro. I also work on nodeJS and python using the pycharm and atom IDEs. After using it for a month i feel in love with mac platform and macos. Its a wonderful experience. gone are the days of crashes and the windows updates (ugh). the boot of the laptop is like magic and softwares like wmware imovie and notes keynote are f**king awesome. Long hours of work have become fun rather than hell dealing with constant windows gimmicks and bad battery optimisation on linux.
An explanation why all developers (except for the ones who require high powered gpus) graphic designers should shift to macos rn.
Advantages of using mac
No forced updates update whenever now or a f'ing month later no probs.
better battery optimisation than linux
no more installing os again and again (ubuntu)
better vm than virtualbox (vmware)
terminal for running bash commands
no crahes
Xcode platform
trackpad is worlds better than the best windows trackpad
Disadvantages
some softwares not available for macos
storage is generally less on macbooks
UI is simple (less elaborated than windows)
Workarounds
get a vm and install linux(vmware fusion 8)
ps. u may not need it though
wine and wine bottler for using windows apps
get a microsd to sd adapter for macbook and expand storage5 -
At the interview: we currently work with Delphi, but we are making changes to go web, so your web background will be a big difference. 3 months in to the job, no web development at all, just workarounds on legacy Delphi code and they managed to "forget" about the agreed payment amount after the third month....2
-
Right now, in my student job.
Create a multi-department + multi-lingual intranet, only using SharePoint and out of the box features. Can't add my own scripts or web parts. I'm now the master of workarounds -
I've been investigating an android app that should handle gcm messages but somehow didn't do it after the app closed.
Used android studio to start debugging the app setup of gcm worked, closed the app - message was not processed by app.
Tried it again and started the app from phone closed it. Now the message gets processed.
Tried this for four days with workarounds, intensive researches even opened a ticket with Google for this but no luck.
... effin gcm ...
Today I eventually realized that when I started the app from android studio for debugging and closed the app then gcm apparently breaks and cannot handle messages anymore...
So I essentially wasted 4 days debugging a bug that only occurred because I debugged the app... *argh*
YOU TUNAHEAD 'ROID STUDIO! -
In my company one of the tech leads created a “framework” for other devs to code on. His main goal is to restrict devs from doing whatever the hell they want and follow his platform. But that makes everything so complicated. If I need to find where it sets the connectionString, I’d have to go 7 levels deep in the code. Do you agree with this whole approach? If they wanted to standardize the dev process why can’t they document it and enforce it in code reviews. Restricting devs will lead to workarounds. They will find ways to do stuff by hacking the “framework”5
-
ChatGPT is so much better than Google:
instead of wasting my time by linking to unhelpful / outdated / unrelated StackOverflow resources, it tells me to do the work by myself right away:
> To ensure consistent pseudo-element width across different browsers, including Safari, you can follow these steps: [...]
> (some basic HTML/CSS 101 seemingly quoted from a 2015 textbook)
>
> It's important to note that browser behavior might vary due to different rendering engines or versions. While following best practices helps achieve consistent results, you might still encounter small discrepancies. Cross-browser testing is always recommended to ensure your design looks consistent across different browsers, including Safari.
>
> For any specific issues you encounter in Safari, consider checking for known bugs or quirks that might affect pseudo-elements and their sizing. Online resources, developer forums, and documentation can provide valuable insights into Safari-specific behavior and workarounds.3 -
So just a normal rant here. .. it was one of those moments you find in yourself in sometimes. You get so caught up in thinking you know everything that you can't implement occams razor into your everyday work routine anymore. You've worked with so many complex workarounds that when you are faced with a simple problem with a simple answer you can't see the blinking neon light shouting at you anymore , and you can't here the bells sound anymore. ..
My rant is about Me vs the infamous mikrotik router. Something I had to set up. Something I had to login to setup. Something I've done so many times before but this time , my inflated ego and overbearing sense of grandeur just could not figure out.
Class how do we login into a router? Well find your gateway and type that sucker into a browser and you will be on your way ... well that's the answer right there. But since I thought that my router was connected to three dummy switches that it would affect anything or the paranoia I had that my isp somehow disabled any connections to the router at all or that I and to open a new port to connect to it or use winbox to connect to it using only the mac address or ssh into it ..would work ...I didn't try using the tried and tested way of doing it.
I wanted it to be an adventure. I wanted it to be a problem to solve so I shoved the ordinary answer out of the way and used other methods to try and connect to it...
All I had to do was used Nmap to scan the gateway for open ports and realise to view it in the Browser on port 8080 instead and finish my journey ...
I was looking for a dragon to slay , a maze to conquer, glory at the end of my mission ... when all I felt was a sheer sense of idiocy.
--Rant Completed-- -
I had a pretty good year! I've gone from being a totally unknown passionate web dev to a respected full stack dev. This will be a bit lengthy rant...
Best:
- Got my first full time employment dev role at a company after being self-taught for 8+ years at the start of the year. Finally got someone to take the risk of hiring someone who's "untested" and only done small and odd jobs professionally. This kickstarted my career, super grateful for that!
- Started my own programming consulting company.
- Gained enough confidence to apply to other jobs, snatched a few consulting jobs, nailed the interviews even though I never practiced any leet code.
- Currently work as a 99% remote dev (only meet up in person during the initialization of some projects.) I never thought working remotely could actually work this well. I am able to stay productive and actually focus on the work instead of living up to the 9-5 standard. If I want to go for a walk to think I can do that, I can be as social and asocial as I want. I like to sleep in and work during the night with a cup of tea in the dark and it's not an issue! I really like the freedom and I feel like I've never been more productive.
- Ended up with very happy customers and now got a steady amount of jobs rolling in and contracts are being extended.
- I learned a lot, specialized in graph databases, no more db modelling hell. Loving it!
- Got a job where I can use my favorite tools and actually create something from scratch which includes a lot of different fields. I am really happy I can use all my skills and learn new things along the way, like data analysis, databricks, hadoop, data ingesting, centralised auth like promerium and centralised logging.
- I also learned how important softskills are, I've learned to understand my clients needs and how to both communicate both as a developer and an entrepeneur.
Worst:
- First job had a manager which just gave me the specifications solo project and didn't check in or meet me for 8 weeks with vague specifications. Turns out the manager was super biased on how to write code and wanted to micromanage every aspect while still being totally absent. They got mad that I had used AJAX for requests as that was a "waste of time".
- I learned the harsh reality of working as a contractor in the US from a foreign country. Worked on an "indefinite" contract, suddenly got a 2 day notification to sum up my work (not related to my performance) after being there for 7+ months.
- I really don't like the current industry standard when it comes to developing websites (I mostly work in node.js), I like working with static websites (with static website generators like what the Svelte.js driver) and use a REST API for dynamic content. When working on the backend there's a library for everything and I've wasted so many hours this year to fix bugs and create workarounds related to dependencies. You need to dive into a rabbit hole for every tool and do something which may work or break something later. I've had so many issues with CICD and deployment to the cloud. There's a library for everything but there's so many that it's impossible to learn about the edge cases of everything. Doesn't help that everything is abstracted away, which works 90% of the time but I use 15 times the time to debug things when a bug appears. I work against a black box which may or may not have an up to date documentation and it's so complex that it will require you to yell incantations from the F#$K
era and sacrifice a goat for it to work properly.
- Learned that a lot of companies call their complex services "microservices". Ah yes, the microservice with 20 endpoints which all do completely unrelated tasks? -
Remember how I was - against all that was promised - assigned to a time-sensitive front-end (so definitely not my forté) project about a month ago? Remember how I struggled with the choices of how to go about it - switching from F# (Fable) to Rust (Yew) to eventually settling in with Vue and TS?
Yeah, I’m glad I went that way, even though there could’ve probably been better choices out there: my part is done now, even though it’s not quite prod ready yet (close tho), the team who’ll maintain it takes it over now, after I finish dealing with my current minor issue. And damn their front-end guy is GOOD. Makes me feel very inferior in that department. Well, I am. Back to back-end, thank you very much...
But I have an issue here, that bothers me. I’ve produced a codebase that’s obviously written on a tight schedule: no tests, no documentation, a few embarrassing hacks/workarounds and so forth. I actually feel bad for leaving it out of my hands to them in such a state...1 -
I hate the elasticsearch backup api.
From beginning to end it's an painful experience.
I try to explain it, but I don't think I will be able to cover it all.
The core concept is:
- repository (storage for snapshots)
- snapshots (actual backup)
The first design flaw is that every backup in an repository is incremental. ES creates an incremental filesystem tree.
Some reasons why this is a bad idea:
- deletion of (older) backups is slow, as newer backups need to be checked for integrity
- you simply have to trust ES that it does the right thing (given the bugs it has... It seems like a very bad idea TM)
- you have no possibility of verification of snapshots
Workaround... Create many repositories as each new repository forces an full backup.........
The second thing: ES scales. Many nodes / es instances form a cluster.
Usually backup APIs incorporate these in their design. ES does not.
If an index spans 12 nodes and u use an network storage, yes: a maximum of 12 nodes will open an eg NFS connection and start backuping.
It might sound not so bad with 12 nodes and one index...
But it get's pretty bad with 100s of indexes and several dozen nodes...
And there is no real limiting in ES. You can plug a few holes, but all in all, when you don't plan carefully your backups, you'll get a pretty f*cked up network congestion.
So traffic shaping must be manually added. Yay...
The last thing is the API itself.
It's a... very fragile thing.
Especially in older ES releases, the documentation is like handing you a flex instead of toilet paper for a wipe.
Documentation != API != Reality.
Especially the fault handling left me more than once speechless...
Eg:
/_snapshot/storage/backup
gives you a state PARTIAL
/_snapshot/storage/backup/_status
gives you a state SUCCESS
Why? The first one is blocking and refers to the backup status itself. The second one shouldn't be blocking and refers to the backup operation.
And yes. The backup operation state is SUCCESS, while the backup state might be PARTIAL (hence no full backup was made, there were errors).
So we have now an additional API that we query that then wraps the API of elasticsearch. With all these shiny scary workarounds like polling, since some APIs are blocking which might lead to a gateway timeout...
Gateway timeout? Yes. Since some operations can run a LONG (multiple hours) time and you don't want to have a ton of open connections hogging resources... You let the loadbalancer kill it. Most operations simply run in ES in the background, while the connection was killed.
So much joy and fun, isn't it?
Now add the latest SMR scandal and a few faulty (as in SMR instead of CMD) hdds in a hundred terabyte ZFS pool and you'll get my frustration level.
PS: The cluster has several dozen terabyte and a lot od nodes. If you have good advice, you're welcome - but please think carefully about this fact.
I might have accidentially vaporized people sending me links with solutions that don't work on large scale TM.2 -
Part of one of the workarounds for Dirty COW is to disable ptrace.
ptrace is generally needed by debuggers.
I am team lead for L2 support at a company which makes a debugger.
RedHat are now shipping this workaround.
*ducks for cover*2 -
Some information in advance:
I developed a Word AddIn for automatic document creation. This AddIn pulls data from various systems, transforms them, if necessary and fills them into templates.
The AddIn gets rollout by another department. And by now there is version 1.3.3 out.
Now the story:
Since several months I have heard of users which have some reoccuring problems with the AddIn and I couldn't understand why. The first level support always helped them with some workarounds.
Now, I helped one user by myself and what did I see?
The user had version 1.0.5 installed!!!! WTF!? The version info is very prominent for the first level support and they should know, that this is not the correct version!
I think I have to implement a version check now, if the rollout is so great working...maybe I should have done this since the beginning... -
Sometimes I don't get "don't test on production".
And I'm definitely not a front-end guy, I only have debug and release in mobile development.
And I definitely often test on release, because it may be broken while debug build works fine.
You know what that means?
1. Test locally
2. Try to fix issues
3. Realize that this issues would ever appear ONLY locally
4. Move to staging and test
5. Fix issues
6. Realize that most of them are caused by workarounds for localhost
7. Move to production
8. Realize that everything is fucked up and you don't have any idea why, because `h5aqq2 was called on null"4 -
Fuck! I spent the last 3 hours trying to set up inline preview for latex for spacemacs but it won't compile cause of fucking warnings! 😂 But at least I know why my references can be inconsistent cause hyperref package is fucking trash, and it's supposedly the best choice for cross-referencing there is.
Alright, rant over. Will try look for workarounds tomorrow.2 -
User: looking up anything in Google Help Center (support.google.com)
Google: (bunch of outdated or misleading answers)
Google: This question is locked and replying has been disabled.
To make it even worse: "Please note that this forum is run by volunteers known as Google Product Experts who are not Google employees and are merely advising on best practices and interpreting Google's policies based on their experience."
So Google uses the free work of volunteers dabbling workarounds for their bugs and misfeatures and, despite Google's reputation as a search engine, fails to present their end users helpful, up to date information.
Dear Google, why not just offer a paid version of your free service where users can actually expect quality of service? I remember the internet before Google and I can't wait for the internet after Google! Seriously!1 -
So we have spent the last ~3 weeks creating workarounds for bugs that were found during testing against iOS 11 beta 1.
Today I had to go in and undo all the merges because as of beta 7 Apple have fixed the issues we were seeing.
Weeks of effort wasted that could have been spent upskilling or fixing build issues with an app that will have a release due in the coming weeks and we currently know little about.3 -
I'm not a data scientist but lately I've learned NumPy, Pandas and now I'm learning Matplotlib and Seaborn and after years of Excel the improvement is astounding.
Excel is far easier to approach (I casually use it since I was 6) but once you need to do more advanced stuff it requires a lot of tricks and workarounds which needs to be memorized and are hard to find just by reasoning or are straight impossible without the use of macros which introduces many compatibility issues.
Pandas on the other hand is harder to approach but once you learn the concepts between its basic data structures you can do a lot with little "Google-Fu".3 -
What could've been an interesting Software Design course turned into a frustrating buggy, uselessly time-consuming experience because of the shitty software we had to work with (ironically). Creating diagrams in fucking Papyrus for a Java 3D engine simulator that stopped being supported 8 years ago was definitely a stupid educational choice. Instead of focussing on understanding how to effectively draw and design such systems, we spent hours and hours trying to figure out the bugs in these pieces of software and finding workarounds, because we are of course not allowed to use other tools. What a waste of time.
-
Best: working on a cool xamarin project for a few months with a very cool client which made me a better dev;
Worst: working on a shitty legacy web - a clusterfuck of technologies, crappy workarounds and even shittier clients for the rest of the year; -
XHTML, I had to work on an old project that was developed around it with IE 11 in mind, many bullshit limitations where a hassle, from all the tech, HTML, CSS and JavaScript. Developing with workarounds was the norm. Never gonna develop with it.
-
Making a hard switch to ubuntu on my desktop at home. Getting just a teeny tiny, tad, bit: absolutely fucking livid....
Trying to learn ansible, vagrant, and docker more in depth for both work and my personal projects. All that I’ve been doing is just spinning my wheels trying to figure out the stupid fuck-mothering quirks with running this shit on Windows. Yes you absolutely can use all of these tools on a Windows box. There’s plenty of ports, patches, and workarounds. But I have spent all day trying to build a few vagrant boxes and use ansible to set them up. Simple LAMP stack boxes on CentOS7. Nothing major... unfortunately I spent like 90-110 minutes trying to figure out why virtualbox wouldn’t run properly. Dumbass me forgot that I installed Hyper-V ages ago.
O...K.... whelp... hyperv provider it is...
Luckily it only took about 15 minutes to determine that Hyperv’s networking can’t be setup from vagrant because vagrant doesn’t know how to interact with the hyperv - vswitch. So networking config is ignored and all VMs run on default switch (NAT) which is annoying but workable.
Ran into other issues trying to stay SSH’ed into the VM. PowerShell core (6) ssh’es into the box perfectly fine, but every time I opened vi to edit configs my terminal color scheme and fonts got fucked harder than a 2 dollar hooker on nickel night.
I’m a bright-green text on black background kinda guy. However the terminal kept changing to bright-red text on white background! It was like getting skull-fucked by a minotaur.
After a while I said fuck it, let’s try putty. Vagrant was using it’s own ssh keypair for the boxes, at work on my mac. Works like a dream. Putty failed me hard and shit the bed, kept getting all kinds of keypair errors. At this point I was finished spent too long trying to make shit work correctly on this jankbox. With enough time and patience I probably could’ve figured all of these problems out. I’m certain that at least 70% of them were caused by user error. I’m known by many as the walking ID-10t.
But alas, I have no time left in the day to fuck around with shit that doesn’t work immediately for morons like myself. My only hang up for the longest time with a complete switch to Linux was gaming. But with Proton and WINE I’m comfortable with giving it the ol’ college try. (Shhhh, don’t remind me I dropped out of college...
...Thrice.)
The gamble here is that I’ll give more than 2 halves of a fuck about trying to get my games working. A Study environment and materials for certs and general training won’t be getting anywhere near my full attention.
So, at long last, I hope this attempt at a full *nix switch finally sticks!!!
👾2 -
It seems they mistaken me for italian giving me spaghetti all over the product. Go to frontend to check the app, react with weird jQuery, no routes, pages summoned by the templates that have concatenated values and html in vanilla js, changing screens/pages with jQuery, no router... ok lets see the other app, react, redux, offline capabilities and tought myself niicee hut nothing work as intended with clusterfuck of hacky workarounds that makes app look like it is working but with hardcoded data. Offline means automatic sync when you get the network back, right? Oh backend never developed any sync, so you guys can do it, we have to fix and patch some important stuff! I don't like php but whatever, let's see what is going on there... So much spaghetti bolognese there that Bologna actually called to ask if they can buy some, they are out of stock because of us!
This is just like that song mess.css from stdout, but in any file you open!
Living on deserted island eating grass and coconut for the rest of the life doesn't seem so bad atm!4 -
So my chrome on android has appearently started looking like something my colleagues toddler could have drawn, despite that I have all the "modern" settings disabled in chrome://flags
Anyone knows any other workarounds now that this appears to have stopped working?
ALSO FUCK YOU GOOGLE FOR FORCING THIS SHITTY AND UNINTUITIVE DESIGN DOWN OUR THROATS, STOP VALUATING PRETTY PIXELS OVER PRODUCTIVITY3 -
got employed as web developer, had to make an app for test, so i made simple PWA, you can search videos and you have related videos on the side, basically search videos and watch them with simple list of related videos on the side.
idk how i ended up being tester and bug hunter in this huge ass pile of spaghetti extravaganza.
all i do is wasting my talent on hunting and resolving bugs on a legacy-code apps, don't remember when was last time i actually wrote some feature, oh yeah i do, last month but that was refactoring/fixing.
so i am stuck on weird tech stack someone build with shovel, feels like they were having that famous golden hammer.
what interests me is something i will never do at this company and still i am trying to help them to fix the app to have better product.
It is hard when you feel like you are third and last person in whole company that cares about actual product, rest of devs just fixing things with quick workarounds, hacks and lousy patches.
I really tried, I did, I was excited as I saw opportunity to one up the product but got stuck with the rest of the devs fixing bugs instead of fixing the whole codebase, I tried to introduced improvements but we don't have time cause fixing bugs means happy customers, better codebase takes more time and means impatient customers are unhappy!
I think it is time to sail away.
So folks, any thoughts or feelings?1 -
Need a workaround to start the application. Need to activate/deactivate a few workarounds at different points in the flow to test the code in development. Need a different workarounds to test the code in QA. Maybe another workaround for prod? Need a workaround to check in the code to CI/CD. Need a workaround to deploy the code.3
-
Use a product that is not the greatest, but does its job fairly well in the human capital management market. Anyhow this POS can't communicate very well with Azure extended end points via rest. FML. Now I'm building workarounds and I know this bs is gonna bite me in the ass.
-
Using ChatGPT to tone down my anger at a dev who throws in hacky workarounds without understanding the issue at depth.2
-
Enjoyed doing frontend until I spent basically an entire workday on text that needs to resize based on width with shitty workarounds and all
i want to be a backend dev again fml
also, fuck you ant design for not giving me full control.5 -
Am I the only one to fix incrementally worse issues with the wrong approach, only to do it right in the end (with minimal research and coding) - being left with 1000 unnecessary workarounds to remove :( happened over the last week or so with a personal Vue project...
-
Spent half a day working on some code to add some functionality. Ran into some binary assumptions and found workarounds. Got everything implemented and close to start testing things. Not a lot of code, but a lot of places that needed careful attention to detail. Started looking at the final code needed for initializing things. Found that all the code I wrote would not be needed if I just initialize some things differently. Realized I don't need all this code. The code is literally redundant.
git checkout <changed files>
Okay, now I understand the code better. I am ahead because I am not maintaining code I don't need. Half a day of reading the code helps me understand everything that is there.
Life is good. 😀 -
So for the past two days I had to deal with a problem where I have to do a nested query with sequelize, pretty straight forward reading the documentation, or that was I think. I implemented everything according to the docs but the query stills fails, why ? I had no idea, I double check my implementation, I googled the error, no luck, after a day searching like crazy I talked with the backend lead about this and he help me to realize that the naming convention was changing because sequelize is creating a nested (SELECT * FROM) because one of the relations has a one-to-many realtion with the root model and I'm why the heck is doing that? But we both didn't know, and the problem was solved by just modifying the names, so we let it through, and sent it to QA. The next day I see the task rejected by QA and the reason was after the changes were merged another part of the app was broken, ok np, I'll fix it right away, and oh God I found the error was caused by another query that was including the first query we fix yesterday ! It was a nested query with 3 lvls! And the names became even more complex ( like `model1->model2.colum1`), goddamit, ok, I spent most of the day searching again, nothing, read the specification of the findAll function, nope, tried to put that name in the ON clause as the docs suggested, still an error, shit, then the lead helps me again and creates a literal which can hold that name and voila! Everything is happiness, at least for that moment, but I was still curious about this behavior, so I keep digging on it and I've just found an issue where a great guy posted an option to the findAll method that is not documented in any version of sequelize ! WTF ! And this option was "subQuery" which if you set it to false it won't create that additional (SELECT * FROM) from before, FUUUCK! I can't believe it, I know that all the effort works in my favor because I learn more about sequelize, but FFS I'm still angry because this shit shouldn't happen, you need to update the god damn docs, it's just adding a row and telling the people what it does. Well to end this, after putting that in the query and replacing all the workarounds with the expected syntaxis everything works like charm.1
-
My joomla projects are full of workarounds, especially with the seblod cck, really nasty workarounds xD2
-
floating point numbers are workarounds for infinite problems people didn’t find solution yet
if you eat a cake there is no cake, same if you grab a piece of cake, there is no 3/4 cake left there is something else yet to simplify the meaning of the world so we can communicate cause we’re all dumb fucks who can’t remember more than 20000 words we named different things as same things but in less amount, floating point numbers were a biggest step towards modern world we even don’t remember it
we use infinity everyday yet we don’t know infinite, we only partially know concept of null
you say piece of cake but piece is not measurement - piece is infinite subjective amount of something
everything that is subjective is infinite, like you say a sentence it have infinite number of meanings, you publish a photo or draw a paining there are infinite number of interpretations
you can say there is no cake but isn’t it ? you just said cake so your mind want to materialize something you already know and since you know the cake word there is a cake cause it’s infinite once created
if you think really hard and try to get that feeling, the taste of your last delicious cake you can almost feel it on your tongue cause you’re connected to every cake taste you ate
someone created cake and once people know what cake is it’s infinite in that collection, but what if no one created cake or everyone that remember how cake looks like died, everything what’s cake made of extinct ? does it exist or is it null ? that’s determinism and entropy problem we don’t understand, we don’t understand past and future cause we don’t understand infinity and null, we just replaced it with time
there is no time and you can have a couple of minutes break are best explanations of how null and infinite works in a concept of time
so if you want to change the world, find another thing that explains infinity and null and you will push our civilization forward, you don’t need to know any physics or math, you just need to observe the world and spot patterns10 -
Come on, how hard can it be?
On every fucking TLV data structure I get to handle, the hobo who defined the structure obviously stopped reading the TLV specification after the second sentence.
Fucked up tags, misuse of length encoding, and as a result no real TLV parser can handle that crap. Workarounds and manual parsing all over the place for *every* *single* interface.
Get your shit together, and if you don't want to handle the complex parts, then at least make the simple types right. -
I hate waiting on a preview of an SDK from Microsoft that should have the support for the feature in the first place. I should be able to query a view without needing a primary key. I am tired of making workarounds. Come on EF Core 2.1 preview! You’re killing me! Back to ADO.NET for now.
-
Today I tried: pnpm.
Following up my hateful rant against Isaac Schlueter and his decisions on npm.
I went all the way out and tried so many alternatives, honestly found a developer experience much greater than the "official" one.
What triggers me the most is the explicit statement of "other creative means" in this commit https://github.com/npm/arborist/..., you don't talk like that when all other package managers are making creative workarounds for the design failure of node_modules.
I don't know what it is but I really hate this guy.4 -
Firebase is a fucking piece of dog shit.
Testing is so bad and complicated to set up, I've spent two days trying to write ONE fucking simple test with an auth middleware via expressjs. Why firebase doesn't mock my dung, you pieces of shit. Even the documentation is all spread out, it's difficult and terrible to follow. I would rather build my own backend because of all the workarounds I have to make because of your limited SHIT product. Even the type libraries are shit, import Timestamp? NOPE. YOU HAVE TO IMPORT FIREBASE TO IMPORT A TIMESTAMP. Learn to define types, shitty google devs. You all suck, thanks for making shitty clients sdk's.
I hope this piece of shit gets deprecated and my clients stops using it.4 -
Since its summer I started a new project and decided to make a Linux app. I started to learn Gtk and when it comes to language there was bunch of options. The most supported one was C but I don't prefer C on GUI apps because of you don't have classes and other things related to OOP(I know there are workarounds for OOP in C but I don't prefer). Then there was Python. Python is great for little sized projects and writing Python is full of pleasure. However when things getting bigger, a language that is more verbose and more declarative is my preference. So I found Vala language. Its syntax is very close to C# and that was a good thing for me since I like C# syntax. Their documentation was also good enough so I started to use it and I enjoyed so much. I have found the language that has good and scalable syntax and furthermore, enjoying to write. But I see Vala is not so popular language besides there is no exact replacement for this language on open source community. I heard that it has a lot of bugs itself and that was the main reason of it but I think this language deserves to be more popular.
-
Anyone here use the NodeJS HTTP/2 API? I started working with it the other day and I can get static files served fine with it but when I try and use it's push feature to "bundle" additional resources that the page will need, it doesn't seem to work, the client still requests the resources from the server instead of looking in the "push" cache. Also the load time seems longer when using http/2 vs 1, was wondering if anyone else had come across these issues and found workarounds. P.S. - I'm using Chrome to test on, with https://localhost and some self-signed certs as http/2 isn't implemented in browser unless using https1
-
So apparently it’s been an unresolved issue in IntelliJ for the past 4 years that sometimes debugging gradle tasks just fails silently. Found a number of workarounds online for old versions but they since removed the options in settings that fixed the issue? Fuck you jetbrains
-
Guidewire is the work of satan. It is the worst framework I have ever worked with. OOTB code is full of antipatterns, creating gui is a pain, and it has its own language that is a pure joke. Every task I had had to have some sort of workarounds. You cant junit test it. Entity builders are a mess and you cant mock gosu classes. I hate it so much.
-
can you use elastic search as a search engine for your app ?
because i see several weak points in it.
the increased latency after every bulk uploading of docs, meaning u cant ensure fast response time for users
the inability to add synonyms without closing the index ? this is either downtime or ill have to replicate an index to update the original and then switch back to it !!
idk i feel i either must have wrong info or elastic is very inefficient. I might be wrong, not too experienced with it so if I am let me know of some good resources and workarounds that helped you3 -
eva viva3. very specific german healthcare erp. bloated but with the false features, insufficient data dumping, expensive, bad service. needs a lot of devops workarounds. unfortunately you don't skip easily with 10+ years of customer data.
-
me vs my job at mnc laggard part 9/n . previous @ https://devrant.com/rants/6602068/...
====
I think i have now realised why working at corporate MNC sucks: they are reluctant to make a good product for their end users.
- they first come up with feature without a proper planning and research.
- then they are in a rush to release it to live audience by ignoring the possible issues that could arise
- when they see it fail, they are like, okay with that and blame it as a failed experiment
- instead of removing/disabling it, they are okay to keep it remain alive in the app, even if it causes customer inconveneience.
- meanwhile, they put false reports for their higher managers as a success and when an enhancement/modification comes for that feature from the higher up, they again start the loop by pushing a new feature without proper planning and a rush
as a dev, it fuckin kills me. I joined in the middle of one of these ugly loops. The app has a camera feature where the camera will generate voices to take pictures and record video , like "goto next car view" , "close the bonnet and focus", etc while the user follows instructions.
the ticket for me was to just add a flash button to this camera. But the more i dive into it, the more i hate it:
- the existing camera implementation provides api for toggling a camera flash, but when i attached it with a ui button, it would not work
- the existing implementation will send images /videos as direct payload data, resulting in generating very large payload curls . our app has a curl logger and it starts crashing.
- the existing implementation also crashes at uploading videos.
So where does it trouble me?well, I have a ticket to add just a fucking button, but i will have to replace the whole camera module and start from scratch. also the crash causing loggers will need some workarounds, otherwise i could not check the apis. and my manager will be like "why are you taking so long to add a flashlight?" and i would be like "coz i wanna put this flashlight up your -2