Joined devRant on 9/24/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
My build has been lagging behind due to the 8 year old mobo, so I grabbed one with a newer chipset that was a bit discounted and oh jeez the swag that comes with it.
Who is the target audience here? 12 year olds who build their own pcs? This literally makes me - albeit marginally - less likely to buy Asus things in the future. Even teenage me wouldn't want to be caught dead flashing this stuff.
And yes, the mobo itself is rgb. I've literally stopped trying to avoid it since it would put an unreasonable limit on your options with how common it is.5
The feature was to parse a set of fairly complex xml files following a legacy schema. Problem was, the way this was done previously did not conform to the schema so it was a guideline at best, which over the course of many years snowballed into an anarchy where clients would send in whatever and it was continuously updated per case as needed. They wanted to start enforcing their new schema while phasing out the old method.
The good news is that parsing and serialization is very testable, so I rounded up what I could find of example files and got to work. Around the same time I asked our client if they had any more examples of typical cases we need to deal with, and sure enough a couple of days later I receive a zip with hundreds of files. They also point out that I should just disregard the entire old set since they decided to outright cut support for it after all if it makes things simpler. Nice.
I finish the feature in a decent amount of time. All my local tests pass, and the CD tests pass when I push my branches. Once we push to our QA env though and the integration tests run, we get a pass rate of less than 10%.
I spend a couple of days trying to figure out what's going on, and eventually narrow it down to some wires being crossed with the new vs. old xml formats. I'm at a loss. I keep trying to chip away at it until I'm left with a minimal example, and I have one of those lean-back moments where you're just "I don't get it". My tests pass locally, but in the QA environment they fail on the same files.
We're now 3 people around my workstation including the system architect, and I'm demonstrating to the others how baffling and black magic this is. I postulate that maybe something is cached in my local environment and it's not actually testing the new files. I even deleted the old ones.
"Are you sure you deleted the right files?"
"Duh of course -- but let me check..."1
I'm still on a regular basis reminded of how I might be wrong despite the absolute certainty in how obviously wrong the other person is.
Lately I've been working on setting up this API with a fairly intricate database integration. One request can lead to multiple db calls if we're not careful, so we have been polishing up the implementation to guard against ddosing ourselves and dealing with thread-unsafe concurrency.
Someone on the team could happily report that they got rid of all async use so there should no longer be threading issues. "You mean it all runs sync now?" "I guess. It works at least".
I'm just internally pulling a surrender cobra. If this was pre-dev me I would have let him and everyone know what a stupidpants he is and that I thought he had some experience in api development. But let's not make an exception to the rule; I might be wrong. I mean I'm not, but let's pretend I could be. Let's pull down the changes and maybe set up a minimal example to demonstrate how this is a bad idea.
Funny story. He got rid of explicit calls to the database entirely. When resolving data, the query is instead constructed virtually and execution is deferred until the last step. Our functions are sync now because they don't call the database, and threading isn't an issue since there's only one call per request context.
Thank god I've learned to keep my mouth shut until I can prove with absolute conclusive certainty that they are wrong. Here's to another day of not making an ass of myself.
... until you can't build the project because you have too many types so you blow the memory limit in node. I can up the limit, but I can't guarantee that we won't blow past this in the future. Browsing issues on the ts repo reveals that this has been a thing for years.
Sticking with the rollercoaster analogy I'm now at "Burn it all to the ground".5
"Ugh I've had these notifications from Google play to update over 20 apps for a couple weeks now. Fine, let's get that out of the way."
I now have 30 apps asking to be updated.3
I misclicked an nsfw channel on discord and I got a dialog asking my age. I wasn't interested in loading the channel and you cannot close this dialog - it even reappears if you restart the app because the channel will still be selected.
I input 0 years just to cancel, which lead to an instant account ban and an email about scheduled deletion. In order to retain my account I need to send in selfies of myself holding my ID.
That's... a surprising user flow from a misclick. May I suggest a little x in the corner, as we professionals call it.5
What a day. I was cleaning up some of my styling tweaks for this react app; removing superfluous rules, nailing some hard to pin alignments that have been off up until now, and removing unused files and code in general.
I managed to delete an entire folder. I'm not sure how I did it, but apparently I had highlighted the folder when wanting to just delete one file via vs code. This was hours of uncommitted (yeah, my bad) tweaks and cleanup.
But - I still have the app loaded in my browser. I can't see the prebuilt source code, but I can see the compiled, raw main.chunk.js which gives me the exact code albeit not in the format I need.
Now I'm having a beer.3
I was straight out of uni so I didn't mind recruiters getting in touch, I just wanted a job.
The whole conversation was just generally awkward, it was just as if he hated his job, being there, and me. He had a wordpress project lined up which I was extremely ambivalent about, but I didn't want to rule anything out. We talked about my experiences with VueJS, React, material styling, how I had done a project which is live in production more or less solo fullstack, and some of my side projects.
That's when you just get struck with this sense of "what can I do to leave this room as soon as possible without making a scene".3
Some of my dev role models are not actually devs. I am always impressed when people make a tool they need without much programming experience. It highlights how the actual programming work doesn't have to be a hindrance, it's just a matter of sitting down and getting it done.
One if my favorite examples is Chris Huelsbeck who made his own sound engine and editor to emulate the extra virtual sound channels he needed on the Amiga. He actually emulated an emulator that someone had made OF the Amiga on the Atari ST.
I'm teaching myself React lately since it's what my work mostly uses. I'm in backend but having used Vuejs for a couple of years I figured I'd have a head start.
Man, it's painful to go from one library to one that has issues which became the motivation for building the library I already know. I keep catching myself in wanting to make little helpers to basically make the Vuejs syntax for React.
The first time i tried JSX I had a reaction similar to that of when I tried writing inline assembly in C; "heh! That's funny".3
The main benefit of an office environment for me is - conversely - the best part of working from home. It's super useful to be able to just summon someone for a 7 minute pair programming session, but i have a much greater focus at home when I know I won't be interrupted during work hours.
This whole situation is definitely making me want to work more from home and I'll probably try to make it a regular occasional thing in the future.1
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.6
"If you don't return something in the catch block it will crash"
Isn't it interesting how a sentence can be true yet so infuriatingly wrong.3
My biggest dev epiphany was also my dumbest one. We were working on a payment system for a roadside rescue company where an employee would register payments "in the field".
The challenge was automating input with typeahead and autocompletes in order to lessen the workload as manual input had to be an absolute minimum; this will be used by truck drivers/mechanics as they are trying to hurry to the next customer who has been waiting for 3 hours longer than we said we'd take.
We managed to make the invoice path first (customer has not paid, employee logs personalia needed for billing), but when it came to "paid on site" we almost upended the entire system trying to find a way to fetch user personalia outside of the invoice path.
Neither of us realized it during the days we were banging our heads against it. Realizing we don't need to make an invoice for a job that has been paid for was equal parts relief and utter embarrassment.
Probably my greatest lesson in how important it is to pull my head out of the code once in a while, and to ask myself what I'm trying to do and why.
Ever open a mail with a body consisting only of "can you look into this?" before noticing a mail exchange is attached, and in it is a week long discussion about an issue new to you where someone has said on your behalf that it will be fixed by the end of the day?
If I'm lucky I might know if someone - and if so, who - is working (or has worked) on that aspect of the system by the end of the day.
There are no words in any language I know that will sufficiently describe how nonexistent the chances are in any of the infinite amount of parallel alternate universes where I implement and deploy a fix by the end of the day.
But sure, I'll look into it.2
We have a long standing, transient, occasional error in our system that we haven't quite been able to (or have had the time to) pin down.
I was thinking out loud with our project lead what the cause could be, which - before I realized it - segwayed seamlessy into me being tasked with hotfixing it in order to unblock some other tasks that people expect to start working on tomorrow.
I think I'm starting to see why people use inanimate objects for rubber ducking instead of other devs. Here's hoping my theory checks out.2
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.
Nothing distracts me more than people eating in an otherwise quiet office. It makes me so livid that i usually leave the room for a coffee refill or bathroom break and hope they are done by the time I'm back.
I can code while holding a conversation, I barely even notice when people do phone calls or skype meetings next to me, but hearing people chew and breathe through their nose while smelling their lunch just annihilates me.5
While investigating alternatives for translating a query string to a dotnet expression I discovered that roslyn has runtime eval of string as verbatim code.
I had no idea a feature could make me this uncomfortable. It's like discovering an armed bomb under your bed that's "there if you want - it has its uses, just be careful".
At least you have to explicitly reference a package for it. Promise to kill me if I ever am tempted by it.
I finally have a week off and the first thing I do is start a project exploring some solutions for the project at work send help.
Going a little outside the format of the topic, but I remember the moment I realized I wanted to pursue code.
I was really into Transport Tycoon and I was trying to pin down exactly what I enjoyed about it. There's something about that process of inventing a solution before you pull back, look at it, and go "holy shit, it works". I can't think of any other career where I'd get that same fix.
Having some issues with my laptop seizing up in graphical linux desktop environments, probably due to some peripheral power management. I saw there was a bios setting for "make linux work" but I couldn't find mention of it in the manual (why is this usually so hard to find, anyway?), so I googled a bit before I messed with it.
Worst case I guess I'd just reset the bios, but it always blows my mind seeing issues like these go seemingly unaddressed. That's a 12 page discussion from 2018 where you brick your laptop - a fairly high end one at that - by flipping a bool and the latest response is "Same issue here".
Is it just PR practice to not acknowledge these things or is it likely that they are legitimately unaware? Does it not get escalated properly or do they reckon there's not enough benefit to address it?
Whatever the case, my faith in Lenovo is certainly starting to show cracks. I used to see it as the "correct" laptop brand, but nowadays I'm equally iffy about all of them.3
"Expenses Graph of That Time I Tried Running Kubernetes On A Cloud Service" -2019, artist unknown (colorized)
If you look closely, you can get an impression of the moment of "screw this, I'll look at it some other time".4
1 - I wish clients would make better specs
2 - I wish I was better at asking for specs
3 - I wish I was better at sticking to the specs1
Just heard one of those little tidbits in passing about a detail for a spec which will require me to restructure the db and rework one of the core functions of the api and user client. Turns out one of the points in the original spec that was an "always" was actually a "usually, but-".
"sure, I'll see if I can get started on it tomorrow" because I'll spend today crying.
Not in prod today, but was part of a group project that we handed in and which got us an A.
The project was to write a PID controller for a robot that would drive along a track using a sensor to follow markings on the floor. During development we were drawing graphs of the PID parameters and sensor input every tick, which caused a bit of lag but no worries - we'll turn it off for the trial runs.
Imagine our pikachu shock meme when we turned off the graphs and our calibrations were suddenly *way* off since we had been oversteering all along to compensate for the lag.
There wasn't enough time to optimize it before the deadline and using sleeps didn't produce the same "type" of lag, so we just made the graph minimize itself when it opened. To this day I wonder if the professor ever saw it or if we got the A despite it.
I couldn't figure out why my server went down all of a sudden.This seems suited for this week's rant.
Expert fullstack solutions architect here.3
So here's a rant I never thought I'd write.
I'm pretty happy with my current job. I'm working for a small non-tech business where I'm making a complete solution by myself. It's pretty chill just coding away all day and being my own project owner and manager.
The iffiest aspect is that my boss(es) don't know what (or if) I'm working on when I'm implementing a vital logging system, fixing bugs that cropped up due to implementing necessary, baseline security, and so on. They see a login page and figure the entire project is shippable, and when the login breaks because I'm configuring the wsgi for https the reaction is "it worked, why mess with it; just put it how it was". But I digress.
Today I got a job offer with a pay increase that made me exclaim "are you fucking serious" irl, in a business with a more professional environment consisting of senior devs, and with benefits I had never heard of.
I can't not accept, but that means just legacying the entire project I'm working on here. They'd basically be left with nothing after shelling out wages for me for these few months. Keep in mind this is a fairly small business who debated if they could afford this to begin with.
Disregarding whether they are willing/able to make it hard for me to leave, it stabs me in my scrubby dev soul to up and leave on a personal level.
They had a 3d printer at the other place though.15