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 - "spikes"
-
I usually start going through the code and as I do I draw (connected) shapes for every part of the code, as I do I add "features" to the shapes (little spikes, give them stripes etc) that way I'm able to "see" what is missing and how the shapes should interact
this might be a bit weird to explain but it helped me a lot to understand what the code is doing and get it rolling again16 -
Most satisfying bug I've fixed?
Fixed a n+1 issue with a web service retrieving price information. I initially wrote the service, but it was taken over by a couple of 'world class' monday-morning-quarterbacks.
The "Worst code I've ever seen" ... "I can't believe this crap compiles" types that never met anyone else's code that was any good.
After a few months (yes months) and heavy refactoring, the service still returned price information for a product. Pass the service a list of product numbers, service returns the price, availability, etc, that was it.
After a very proud and boisterous deployment, over the next couple of days the service seemed to get slower and slower. DBAs started to complain that the service was causing unusually high wait times, locks, and CPU spikes causing problems for other applications. The usual finger pointing began which ended up with "If PaperTrail had written the service 'correctly' the first time, we wouldn't be in this mess."
Only mattered that I initially wrote the service and no one seemed to care about the two geniuses that took months changing the code.
The dev manager was able to justify a complete re-write of the service using 'proper development methodologies' including budgeting devs, DBAs, server resources, etc..etc. with a projected year+ completion date.
My 'BS Meter' goes off, so I open up the code, maybe 5 minutes...tada...found it. The corresponding stored procedure accepts a list of product numbers and a price type (1=Retail, 2=Dealer, and so on). If you pass 0, the stored procedure returns all the prices.
Code basically looked like this..
public List<Prices> GetPrices(List<Product> products, int priceTypeId)
{
foreach (var item in products)
{
List<int> productIdsParameter = new List<int>();
productIdsParameter.Add(item.ProductID);
List<Price> prices = dataProvider.GetPrices(productIdsParameter, 0);
foreach (var price in prices)
{
if (price.PriceTypeID == priceTypeId)
{
prices = dataProvider.GetPrices(productIdsParameter, price.PriceTypeID);
return prices;
}
* Omitting the other 'WTF?' code to handle the zero price type
}
}
}
I removed the double stored procedure call, updated the method signature to only accept the list of product numbers (which it was before the 'major refactor'), deployed the service to dev (the issue was reproducible in our dev environment) and had the DBA monitor.
The two devs and the manager are grumbling and mocking the changes (they never looked, they assumed I wrote some threading monstrosity) then the DBA walks up..
DBA: "We're good. You hit the database pretty hard and the CPU never moved. Execution plans, locks, all good to go."
<dba starts to walk away>
DevMgr: "No fucking way! Putting that code in a thread wouldn't have fix it"
Me: "Um, I didn't use threads"
Dev1: "You had to. There was no way you made that code run faster without threads"
Dev2: "It runs fine in dev, but there is no way that level of threading will work in production with thousands of requests. I've got unit tests that prove our design is perfect."
Me: "I looked at what the code was doing and removed what it shouldn't be doing. That's it."
DBA: "If the database is happy with the changes, I'm happy. Good job. Get that service deployed tomorrow and lets move on"
Me: "You'll remove the recommendation for a complete re-write of the service?"
DevMgr: "Hell no! The re-write moves forward. This, whatever you did, changes nothing."
DBA: "Hell yes it does!! I've got too much on my plate already to play babysitter with you assholes. I'm done and no one on my team will waste any more time on this. Am I clear?"
Seeing the dev manager face turn red and the other two devs look completely dumbfounded was the most satisfying bug I've fixed.5 -
As a programmer I never expected to become a detective.
My today's task: Find out the cause of the spikes, fix it!8 -
The company got a new office just in time for the "company summit".
I checked out the address on Google maps. It's a cinderblock building with the number spraypainted on the side, a battered cyclone fence in front, a cyclone gate off to the right side (apparently falling off) leading to a random battered shed, and immediately on the left is a dental office with bars on the windows. Also, the fence has spikes on top.
I'm terrified.rant i don't want to go i'm actually a little scared everything else and this too i'm going to finish my feature and quit what the hell scary11 -
Summary: Burnout, and everything's broken.
I don't feel like doing a damn thing today. I look at the code and cringe. I look at Slack and think "ugh. i can't." Mental capitals are even too much work.
(I've started reading "Zen and the Art of Motorcycle Maintenance" to try and combat burnout. I'll write a rant/story about it here if I find it helpful. but all I want to do today is drink tea and read.)
But onto the story:
Heroku is deprecating support for and will automatically upgrade any old verisons of Postgres running on its platform after August something (like five days from now).
I performed the upgrade to PG10 on Sunday (and late into the night), provisioning a new follower, blah blah blah.
However, the version of Rails we're using (4.2.x) doesn't support PG10 sequences, so I manually added in support via a monkeypatch. I did this on our QA servers first, obviously, and everything worked as expected. After half a day of no issues, I did the same on production, and again: everything worked as expected.
But today? I keep hearing about new things that are broken. One specific type of alert doesn't work for one specific person (wat). Can't send [redacted] at all. Can't update merchants! Yet there are magically no errors logged.
That last one (well, two) are just great; let me explain: when there's an error concerning merchants, the error gets caught, isn't logged or recorded anywhere so it just disappears, and the rescue block triggers a json response instead and happily exits. This is for an internal admin tool, so returning a user-friendly error is kinda stupid anyway, but masking what actually happened? fuck that dev with an obelisk made from spikes and solidified pain. That json response is also lovely: it's a 200 OK returning {status: 1, data: "[generic message containing incorrect IT jargon]"}. Doesn't even say "error" anywhere. Bloody everything about this pattern is absolutely wrong. Even the friggin' text.
Fucking hell. I want to pipe the entire codebase into shred and walk out the door.
But I digress. So many things are broken, my motivation is wanning to a sliver, and I have a conference call today where I'll undoubtedly be asked why everything is on smoking and/or on fire, and my huge and overly productive week last week will ofc mean nothing by contrast.
Ugh.
`shred ~/dev/work -zfu -n 32 &; ./brew tea --hot && wine ~/takeabreak.exe`rant zen and the art of motorcycle maintenance postgres heroku ship's sinking and the fixer's all fixed out burnout21 -
South Africa Electricity:
This is after I lost my 7th 3000VA online UPS...
In South Africa we have 240V power most of the time which is great, but then there is scheduled power outages (because our electricity companies cannot "handle the load").
When we have a power outage we have automatic generators which brings everything back up although there is still the 1 minute drop which has weird spikes and odd voltages before switching to the generator (as the generators wait until they are stable)
This has being destroying our equipment, we had a $2000 repair bill 3 TIMES for 3 SEPERATE Xerox Machines that have surge protectors although their circuit board somehow fried.
We have lost 7 3000VA UPSes (3 different brands) and 5 voltage regulators we put to protect the UPSes.
The one UPS that fried just had 2 dead fuses, I decided to replace them (unplugged the batteries to avoid 240V) and when plugging the batteries back in there was a huge spark and flame and the metal and plastic melted onto the board and turned black (the metal pins to connect the battery are non existant now)
I am done with electricity...
P.S. 2 of our generators also got hit by lightning as we are high on a hill and ALL the plastic cable coverings inside the generator were melted14 -
"Sooo, children of the village, what are we going to write front-end in?" - I said to my infant students.
"Typescript with ts-loader/awesometypescript loader for webpack" - simultaneously yelled the kids.
"Exactly! Brilliant! And now, what are we going to be writing back-end in?" - asked I then.
The kids yelled: "PHP 7.2 with Laravel, or Go with Gingonic and juliensmith/httprouter, or Typescript without loader, with express/koa"
Truly stunned with their excellence, I asked "Well, now you 100% ain't gonna get it right - what are we going to be writing a desktop application that doesn't require a lot of native functionality and preferably, cross-platform in?" And the kids didn't hesitate to yell happily "Typescript targeting Electron", which has only brought tear to my eye.
"A native ms windows app?" "WPF under C#"
"A native gtk app?" "Vala"
"A native KDE/XFCE app?" "Cpp/Qt"
"A native mac app?" "Swift3.2/4"
I was in tears, just thinking about what future these kids have, but suddenly I have noticed one of kids seemed puzzled. It was Pajeet, an indian guy, ugh, his mom was a bitch. I asked him "What is wrong, little acoustic?" "But I like Java, and I would like to make back-end with Tomcat!" he replied. "Ooooh :3" cutely I moaned, trying to reach the handle of the table locker "I've got something just for you". I pulled out a rope, with sewed-in spikes, covered in drool and piss, came up to Pajeet and tenderly put it around his neck, making a knot. Pajeet fell under the table, and I got fired.8 -
Had 2 days of vacation. Theoretically (plus weekend, plus 2 days) 6 days.
Worked today… At Saturday.
Some administrators forgot to properly check bandwidth limitations....
*rolls eyes*
We had a major version upgrade of some server software at Monday.
Guess why I got called...
Of course it MUST be the software upgrade.
It couldn't be the new hardware that was setup 2 weeks ago and on which a lot of "important" VMs were migrated.
*eyes roll inside till only white is visible*
The even more annoying thing is that it wasn't that hard to figure out.
Looking at monitoring, we had spikes on 20 Gbit/s (roughly 2.x Gigabyte/sec - Ethernet) connection of some server at roughly 1.9 plus Gigabyte/sec.
IO latency spikes that made the graph look like a heartbeat EKG with severe tachycardia...
*additionally to white eyes starts cursing in reverse latin*
Incompetent admin answer: Booboo that can only be your fault - the developers must investigate.
Me (just a tad more polite): Meep Meep mother fucker, get your shit together. If the software would eat that much, the network would be a niece chunk of charcoal. Plus the time (sending instead of links to monitoring pictures… guess the lazy fucktard who's brain is a vacuum didn't even bother to check it)...
NOTICE SOMETHING?!
Incompetent admin: It starts at the same time. Always.
After wasting roughly another hour of time discussing with him, I just hanged up the video call.
Called someone I knew from the admin department and turns out that - drumrolls please - the incompetent admin was someone who got recruited 3 months ago…
*turning into antichrist*
I then had a not so polite discussion about how the only competent people could take days off (all except incompetent admin were on vacation) and the seemingly incompetent fresh recruit - who by the way NEVER mentioned this - was the only one left of the admin department. Which would be bad alone, but no - he even got the 24/7 emergency support role for the whole weekend.
Sometimes this company and HR especially notoriously drive me insane...
Guess next week there will be some HR barbecue.
But yeah. After a lot of raging around we nailed it down to the traffic of backups and could fix it.
Roughly 4 hours of analysis, communication, raging and hatred.
Just one hour implementing shit.
*goozfraba*11 -
At my first big boy job at a start up with only 50 users, we noticed we had cloud cost spikes about 20x larger than we were expecting. I remember spending all night debugging it, checking the requests as they go through.
The culprit? Someone left an async on a UseEffect with a variable that was regularly updated as a parameter.
In other words: every time a request was fired, the variable would change… so the function would sense the variable changed and fire it again, and so on.
Felt like a total hero. -
Best code performance incr. I made?
Many, many years ago our scaling strategy was to throw hardware at performance problems. Hardware consisted of dedicated web server and backing SQL server box, so each site instance had two servers (and data replication processes in place)
Two servers turned into 4, 4 to 8, 8 to around 16 (don't remember exactly what we ended up with). With Window's server and SQL Server licenses getting into the hundreds of thousands of dollars, the 'powers-that-be' were becoming very concerned with our IT budget. With our IT-VP and other web mgrs being hardware-centric, they simply shrugged and told the company that's just the way it is.
Taking it upon myself, started looking into utilizing web services, caching data (Microsoft's Velocity at the time), and a service that returned product data, the bottleneck for most of the performance issues. Description, price, simple stuff. Testing the scaling with our dev environment, single web server and single backing sql server, the service was able to handle 10x the traffic with much better performance.
Since the majority of the IT mgmt were hardware centric, they blew off the results saying my tests were contrived and my solution wouldn't work in 'the real world'. Not 100% wrong, I had no idea what would happen when real traffic would hit the site.
With our other hardware guys concerned the web hardware budget was tearing into everything else, they helped convince the 'powers-that-be' to give my idea a shot.
Fast forward a couple of months (lots of web code changes), early one morning we started slowly turning on the new framework (3 load balanced web service servers, 3 web servers, one sql server). 5 minutes...no issues, 10 minutes...no issues,an hour...everything is looking great. Then (A is a network admin)...
A: "Umm...guys...hardly any of the other web servers are being hit. The new servers are handling almost 100% of the traffic."
VP: "That can't be right. Something must be wrong with the load balancers. Rollback!"
A:"No, everything is fine. Load balancer is working and the performance spikes are coming from the old servers, not the new ones. Wow!, this is awesome!"
<Web manager 'Stacey'>
Stacey: "We probably still need to rollback. We'll need to do a full analysis to why the performance improved and apply it the current hardware setup."
A: "Page load times are now under 100 milliseconds from almost 3 seconds. Lets not rollback and see what happens."
Stacey:"I don't know, customers aren't used to such fast load times. They'll think something is wrong and go to a competitor. Rollback."
VP: "Agreed. We don't why this so fast. We'll need to replicate what is going on to the current architecture. Good try guys."
<later that day>
VP: "We've received hundreds of emails complementing us on the web site performance this morning and upset that the site suddenly slowed down again. CEO got wind of these emails and instructed us to move forward with the new framework."
After full implementation, we were able to scale back to only a few web servers and a single sql server, saving an initial $300,000 and a potential future savings of over $500,000. Budget analysis considering other factors, over the next 7 years, this would save the company over a million dollars.
At the semi-annual company wide meeting, our VP made a speech.
VP: "I'd like to thank everyone for this hard fought journey to get our web site up to industry standards for the benefit of our customers and stakeholders. Most of all, I'd like to thank Stacey for all her effort in designing and implementation of the scaling solution. Great job Stacy!"
<hands her a blank white envelope, hmmm...wonder what was in it?>
A few devs who sat in front of me turn around, network guys to the right, all look at me with puzzled looks with one mouth-ing "WTF?"9 -
I'm migrating data from an old software to a new one I wrote.
Old database it's in Access (yeah, fuck). When I opened one table, the VM hung up and I opened the task manager on MADE
What.The.Fuck.Are.You.Doing?8 -
Okay, so today I've taught a colleague how to use a simple office ruler to measure AWS server's CPU usage :) We needed to figure out whether CPU% spikes correlate with error message in logs an d latency spikes. Once again a ruler was the perfect tool for the job.
P.S. no, CPU% spikes did not correlate to errors in logs1 -
I've just seen the documentation of an api I have to communicate with, and facepalmed when I have seen that some actions return 404 on success. And more bizarre things... Just wanted to make it worse for me, didn't you?
Once at it. Why don't you glue spikes onto my keys?
Ffs8 -
Fuck today and fuck every piece of shit manager and non-dev coworker that thinks they contribute anything meaningful besides being a fucking idiot and making things complicated. I hope my team, except for the other devs, jumps off a bridge into a valley of dicks and spikes. I hope my client tells them to personally fuck themselves for being such a useless waste of space. Fuck off and die cunts.1
-
What is it with networking guys refusing to do any kind of fault finding? Pretty much everywhere I've worked they seem to be overpaid address hogs who occasionally want everyone to be proud of them for installing a new switch.
Currently seeing a production issue that's clearly due to spikes in packet loss on a certain part of the network - but oh no, it's always "our tests are fine", "we can establish a route no problem", "this is an application level issue", etc.
No you morons, when a dozen unrelated applications hosted on different cloud services fail because none of them can contact anything in your particular subnet in your data center at the same time, it's a damn networking issue. Sort it out.14 -
I explained last week in great detail to a new team member of a dev team (yeah hire or fire part 2) why it is an extremely bad idea to do proactive error handling somewhere down in the stack...
Example
Controller -> Business/Application Logic -> Infrastructure Layer
(shortened)
Now in the infrastructure layer we have a cache that caches an http rest call to another service.
One should not implement retry or some other proactive error handling down in the cache / infra stack, instead propagate the error to the upper layer(s) like application / business logic.
Let them decide what's the course of action, so ...
1) no error is swallowed
2) no unintended side effects like latency spikes / hickups due to retries or similar techniques happens
3) one can actually understand what the services do - behaviour should either be configured explicitly or passed down as a programmed choice from the upper layer... Not randomly implemented in some services.
The explanation was long and I thought ... Well let's call the recruit like the Gremlin he is... Gizmo got the message.
Today Gizmo presented a new solution.
The solution was to log and swallow all exceptions and just return null everywhere.
Yay... Gizmo. You won the Oscar for bad choices TM.
Thx for not asking whether that brain fart made any sense and wasting 5 days with implementing the worst of it all.6 -
Internet access at the new Uni is crap. I'm getting so pissed at this shit...
Packet loss spikes to over 50% every 30s or so. Can't keep a single SSH pipe open for longer than a minute. Firewall is so tight infrared light wouldn't get through that shit (understandable. And I use a VPN anyway).
And every. Single. AP. Uses. The. Same. Channel. All of them on 6. At least it's on a tight band... But 1 and 11 are free. 100% clean. You know, you could spread them a bit. That helps. But naaah let's keep everything bundled up. Co-channel interference is OK, right?2 -
This made my day: (Translation: In reality the earth is a star with 12 spikes and generated by this css script.4
-
Story points aren't supposed to be mapped to time directly.
Spikes and investigations should be timeboxed.
How do you story point spikes and investigations? Just have the same arbitrary story point value for all spikes?15 -
Changed refresh rate of my KDE widgets from 1 to 5 seconds.
No more 12% cpu usage spikes in idle. (Down to 3%)
I think that my battery will thank me -
“OhhHhh please fill out an entire fucking excel sheet for our test environment deployment. It helps us manage everything better and gives us a reason to fucking thumb around in our holes all day and pretend like we really mean something as managers.” Like absolutely no, you can go fuck yourself with a condom filled with broken glass shards and diseases is what YOU can do. You are a parasite.
“Senior lead developer” - but they don’t have a title - says: “please just give me the list of files I need to manually change on the env in real time”. Bitch, do you even know what CI/CD is?!?!? The fact that you have been doing this for a year straight makes me pity how much of a fucking dumbass you really are. Even if u don’t use a pipeline, just look at my fucking git changes. That’s literally why we have it. You are a fucking disgrace of a developer and I hope you know that everyone who is a competent dev would rather bathe in a bath filled with lemon juice and cactus spikes, before EVER working with YOU EVER AGAIN!!!1 -
So I ended up going with antergos and xfce DE on a cheapo 4gb ram i5 laptop.
It works, sometimes it hangs because of ram, but the thing that is infurating me the most is javaFX with animation loop (school course) whenever I run it, it works for a minute then oh good fucking Lord what happened to you!!!
It hangs, mouse doesn't work, and it takes like 10 minutes for it to respond back and somehow forcefully close the application, running that with task manager asude, I don't see anything critical, unless I'm reading this wrong
CPU averages around 10% and sometimes spikes to 70% few times
Ram is around 50%, swap is 50% too
What could the issue be in this case? I'm sure running the whole thing on windows this wouldn't have happened, what am I missing here?3 -
Swallowing a pufferfish is a terrible way to go out if you're a marine predator. The damn thing immediately inflates, blocking your throat. Its spikes dig into your flesh, preventing you from spitting the damn thing out. As you struggle, spikes inject venom, and you die.3
-
I'm currently having a problems sleeping my inner philosopher just keeps thinking about various things. I wanna try to write some of them down as an simply to see what will happen.
I'll write my opinion down as honest as possible so feel free to disagree, but point out what I should rethink, if you want me to consider it.
To me respect has to be earned. I think especially on the internet many people try to skip this crucial step when they try to get respect. Most often when they want an opinion or their ideals to be respected. Most of the time it doesn't even feel like they want to be respected, but rather accepted.
There's nothing wrong with accepted in my opinion, but there are several approaches to get to this point and I despise some of them.
Earning acceptance by earning respect is one of the right ways to do it. Working hard towards your goals, showing your individual strength, standing behind your ideals. These are things I can respect.
I should also mention that these Ideals should be concrete, based on rational thought and a general good will or you will just twist my words to say that I support e.g. IS, Stalin's politics ect.
On a side node, I think it'd be wrong to disrespect everything Stalin did, since, from an economical point of view, he pushed Russia forward by quite a bit.
Then on the other side I see crybabies. People who want to be accepted, without putting effort in their ideals. Most of the time not even aiming for acceptance through respect, but through pity. Honestly, that's all they're going to get from me.
Pity, for their petty ideals.
Basically all I ever see these people doing is attention whoring and practicing multiple deadly sins at once.
Wrath, jealousy, sloth, pride, greed and optionally also gluttony.
Lust is rather a separate package. When I think about it, I link it mostly to horny teens and "send bob and vegane" type of stuff.
Gluttony being powered by sloth or vice versa, enhancing it.
The clear image I have in mind, while I write about this packages of deadly sins however, is that of a jealous person, complaining / getting angry about something they could change change themselves, but want them to be changed for them. Mostly through social networks such as Facebook, Twitter and whatever the fuck Tumblr is supposed to be.
"I wanna be rich, why is <person> richt but I'm not? This world is so unfair 😡". Have you tried working towards becoming rich?
"I don't don't feel pretty. Accept me". Accept yourself. Done.
"I don't like <person or organization>'s doing". If that's the whole message, all you probably did so far is complaining or crying. Sweet tears.
Stuff like that can happen to any person, just like any person makes mistakes.
Mistakes are made to learn from them. If you realize realize and accept your mistakes others may do so as well and forgive you.
But we are he towards this idiotic trend where people just can swallow their pride even for microscopic things. They instead push their pride to higher levels of ignorance, blaming other people, l(ying)mfao, creating black holes of density in the process. Makes me wonder whether their real motive is an inside bet on who can get the most people to kill them selves by face palming.
Most of my life I have been fairly protected against these people, besides some spikes of incompetence, but recently the have invaded 2 areas in my world that make the world somewhat less of a pain. Programming and the internet culture.
Yes, I'm talking about that master / slave BS renaming and article 11 and 13.
The remaking itself isn't really the problem, but rather the context. This was basically a show of power for the self proclaimed "social justice warriors" or SJW for short.
The fact that this madness has spread. That's what worries me. To me it feels like the first zombie has spawned.
Then we have this corrupted piece of incompetent shit, called Axel Voss, and other old farts.
They live in a galaxy far away from reality, somewhere in the European Parlament, making laws they don't know shit about, regulating things they know shit about.
All in the name of the people of the EU of course. And by people we obviously talk about the money.
I can honestly not think of another reason, after reading the replies Voss and his party gave on Twitter regarding the shit they pulled off.
Well, at least none that doesn't involve some firm of brain death.
For now I'll show them as much as possible how much I despise / reject them. Currently playing with the thought of some kind (social media?) website were posts from other sites or actions in general can be rated only with "Fuck you"s.
Given these articles, I should not have them hosted in an European country though 😅.
Almost hitting that 5k character limit 😰1 -
!dev
Nothing is a dream.
My very first step, as I left the staircase, was on a plate. A loud click made my instincts tick, pushing me to blindly roll forwards.
Before I even had the time to process, that I had just evaded being burnt alive by a wall of flames, the rumblings of another mechanism made my heart accelerate yet again.
Five iron spikes descended uppon me, scratching my cloak, but no more. Twice I was lucky...
But three doors: one behind me, two to my left and right. The ones at my sides spring open with a loud crack, and four terrors pour out, seeking to flay me alive and wear my skin.
I slash at them with my bloody falchion, walking backwards, seeking to escape through the remaining door. Primal fear runs through my spine as I realize: it's barred from the other side!
Burning through my mana, I manage to unlock the door, and quickly close it behind me... but the terrors do not abandon the chase. With inhuman strength, they pound on the door, while desperately crying out for my blood.
I try to escape to the next room... another locked door. There must be another way! There has to, or I'm as well as dead...
What's this, in the corner, among cobwebs? A handle... and a secret passageway, that I can close from the other side! Magnificent!
Another flight of stairs takes me deeper into the tomb. I find an oil lamp, suspiciously well-maintained. Someone has been here recently...
I marvel at the macabre carvings on the wall, depicting scenes from when immortal tyrants ruled the earth. Haven't I seen these before... ?
No matter, I must focus. I was instructed to find an artefact hidden within this acursed place, that I may use for the purification ritual -- there is only one way, so onwards.
An old wooden gate, with a broken bronze knob. Soon as I put my hand on it, it opens inwards...
Eyes black like diamonds, she awaited me inside.
I had never been, simultaneously, just as terrified as enraptured. Day and night, her voice still reverberates inside my mind. And even as I lay dead, her inescapable gaze still clutches the very bottom of my heart.
"Did you come for me?" she asked, smiling, opening up her arms, so that I may fall into her sweet, loving embrace.
"Yes" I whispered as I walked towards her, enthralled.
In a bout of deranged ecstasy, she drank every last drop of my blood. But then... she cried, cuddling my remains.
"No... no, no, NO!" her screams tore apart her very soul "I killed my son... I KILLED MY SON!"
Oh, mother...
Don't cry mother
it hurts no more.
Now I live again.
And I forgive you.
Because I loved you,
as ashamed as I am to admit,
the very moment I saw your eyes,
I loved you.
"I was imprisoned here, so that I may not harm anyone else" she muttered, tears in her eyes "I cannot stop myself -- I am cursed"
Do not ask of me, that I end your suffering.
How could I?
If there is no cure...
"Please, my love... " she begged "kill me... "
No... I can't...
I can't bear either weight
for the rest of this wretched eternity!
How could I take your life?
But how could I leave you to suffer?!
"Now we'll be together... " she smiled, as I raised the falchion.
"Forevermore" I wept, before bringing it down.
***
Nothing is a dream.
Somber, I returned to the Santuary, having fulfilled my mission.
But looking uppon the bone mask I donned, obscuring my eyes, the Matriarch knew that I had been... changed.
I felt no remorse as I slaughtered the witch that doomed my beloved, right on her own altar to heresy. She earned as much.
Her guards, however, I could not defeat.
But that doesn't matter;
deep inside, I was already dead.
And behind the mask,
the whole way through,
I had shed tears without pause.
"Now we'll be together... " I prayed to the nightsky, as silver blades punctured my thorax.
"Forevermore" her sweet voice replied.
*** -
A petty thing I did today.
Coworker from another team asked me to monitor their service during rollout. (I had contributed code to their service), so now I've created a bunch of tickets for the error spikes I noticed and assigned it to them. Most of them were just preexisting errors, some new ones.1 -
I love Kdevelop. Using it for a decade. But for last few years it's background parser eating too much RAM. Moreover heavily templated code also causes spikes of memory consumption while compiling. Sometimes it feels frustrating. But I am not willing to switch IDE. I've been habituated with Kdevelop.