Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "flame"
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.9
Fun stuff from the few most recent pages in Dwarf Fortress bug tracker:
Human civilization's soldier is an Alligator Recruit.
Dead suspects confess to crimes
Crash due to zero-size weasel
Pets and other animals from retired fortresses appear as selectable 'workers' in request screen, die of old age on arrival
Some animal people have extra fingers
People dying twice?
Most confusingly, one necromancer shows as having died from old age twice, despite this not being possible.
My Nature Hating Adventurer Who Lacks Altruism And Is Very Cruel Isn't Happy After Butchering Animals
bat man males don't have geldables
Reanimated severed werebeast necromancer hand has a full body
Dwarf likes "cacao wood wood"
Dwarves turn hostile againt the player and defend their prison from raid sent to free them
Visitors giving birth during visit leave their baby behind
a water buffalo got stuck inside a rough tetrahedrite wall
Animals which retract into body parts forget to come out
Herbalist stuck on stepladder, starving to death.
Artifact has an image of nothing
Cave Dragons are sometimes intelligent, and sometimes join human civilizations
A goblin knocked over a workshop and now my dwarves are killing each other
Ambusher elves are being spotted, but the giant monsters they're riding on aren't.
runs with food from table to table. Can't eat
Intelligent Undead Sent on Mission Return as Ghosts
Horrified merchants immediately destroy their wagons, pack their goods and leave the depot
Dwarf king abdictates to become commoner necromancer apprentice
Internal body parts with certain tags can still wear clothing & armor, without being otherwise accessible
Necromancer marries zombie
Single dad dwarf with buggy dead wife leaves kid behind when he takes over holding
Large quantities of adamantine coins causes trade depot to burst into flame3
So my ex broke up with me/ we decided to "go on a break" three months back. It didn't help that my ex is part of my close friend group and I'm obliged to run into them every other weekend.
None of my close friend group knows what transpired/that we dated.
They started dating someone new as soon as we went on a break.
As a part of new year, I decided to mentally move on. Now my ex is trying to reinsert themselves in my life (unsure in what capacity- as a friend/reltnshp).Today, I woke up dreaming about my ex and their new flame and feeling pretty disturbed. I don't know their status quo either as I haven't talked to my ex about it. (Just know it as friend group mentions them here and there)
I had initiated communication with my ex as I needed an advise (on phone) and they kind of self invited themselves to my place on weekend. How to cope with all this mess. I am unable to focus on my work because of this and my productivity is shot.
I just want to move on and date someone who makes me happy/is worth my energy.
How do y'all process breakups/get over ex?10