AboutMisanthropic callous intj unicorn, impaler of idiotkind.
SkillsRuby ❤, js/es6, css, react, angular, sql
Joined devRant on 2/25/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
At my previous job, the person in charge of the Phabricator server didn't have a backup system in place. I yelled at him until he implemented one.
He had the server perform backups to the same drive. I yelled at him again, to no avail.
Well, after awhile the hard drive started failing, and it would only boot intermittently. After a lot of effort, he was able to salvage part of the backup data, but no more, meaning we lost a lot of bug reports and feedback, and developer tickets. We were able recover all of the older lost tickets from a previous server, so overall the loss was pretty small.
But I think he learned his lesson.
He definitely learned to listen.7
Here's how my day is going:
NameError: uninitialized constant Access::MerchantsController
I FUCKING HATE WAITING FOR PEOPLE.
It feels like a full quarter of my life is wasted just goddamn WAITING.
From now on I'm just leaving whomever behind.18
(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!
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.
A couple of weeks ago, I asked the "brand manager" if he knew how to reset printers to their defaults before reconfiguring them, knowing full well that he did not. He assured me that he did. I smiled and let him leave.
He called me yesterday, frantic, because he didn't know how to reconfigure a printer that already had a password. After reminding him of the above, I told him how to put the printer in diagnostic mode and how to navigate the menus. Literally: "Turn the printer off, then hold down the feed paper button while turning the printer on. It will print out a bunch of diagnostics, and a menu at the bottom. Just follow the instructions at the bottom to use the menu"
Apparently following simple instructions is well outside of his abilities. After he spent five minutes fighting with it and complaining, I called him and walked him through powering the printer on while holding down the feed paper button. Terribly difficult.
The next step amounts to "hold down the feed paper button for more than 1 second." He spent ten minutes (ten!) on this unimaginably challenging step, and, frustrated at his inability to outsmart a simple button, he gave up completely.
He literally couldn't follow the instructions on the printout. I've attached a picture to show how ridiculous this is, and it saddens me terribly to report that I'm quite serious. he was literally unable to figure this out.
HE SPENT TEN MINUTES TRYING TO PUSH A BUTTON FOR >1 SECOND! TEN MINUTES!
That's what was too difficult for him! A button! With written instructions!
I can't even.
But the kicker?
Now he and the bossman want me to drive half an hour so I can push a button for ~1.2 seconds because they're utterly incapable.
I'm soo done.
Debian 9.3's gpg issue is driving me crazy! I can't install anything outside of the default apt repos no matter what I try.
No matter what, apt always does the exact same thing. It adds the repo; then finds, imports, and processes the key; and finally fails with "gpg: no valid OpenPGP data found."
I've spent hours looking this up and trying to fix it.
!!rooting while drunk
I got drunk last night and painted my nails. I bought a really pretty shade of purple that should match one of my favorite shirts, and it's my last day at the office today (EVER; lease is up), so dressing up is a great idea, right? I'll feel better and more confident and it'll make everyone miss me.
Except. I was drunk.
And for some reason thought painting them in the dark was a great idea.
Oh, they look horrible!
and apparently I don't own any nail polish remover, so.
Today's going to be the best day ever!
I'm the sole developer at work.
Literally the entire company, save myself, is sales people. (We have one remote mobile contractor as well, but he only does mobile; I'm responsible for everything else.)
I inherited a gigantic pile of nightmare from the previous "senior-level intern" solitary dev/CTO, and I'm still trying to figure out the bulk of it, meaning everything takes longer.
Anyway, we have a meeting roughly once a week, and during each of these -- and several times throughout each week -- the salespeople say things like "We should address this" or "This should be our top focus" or "We really need ___ so I can sell more merchants" or "___ doesn't work right; we should fix it." All of these "we"'s and "our"'s, of course, mean me.
So, today, I decided I'd make a list of everything I have to do, and their general size. Assuming large projects will take one month, medium projects will take one week, and small projects will take one day... I have four months, two weeks, and four days of work ahead of me. (yet I know one of those large projects will take at least two months...)
Make it stop ;;15
Big "company summit" this week where everyone flies in and we discuss the future of the company (sadly not over drinks). I might be getting promoted with stock and pay increase, and allowed to hire another dev.
Yet, here I am, updating and sending out my resume, and hoping for something, anything.
A 30% raise wouldn't be enough to deal with all of this madness.16
!batch files. because they're stupid.
Preface: I may be drunk. If not, I'll keep trying ~
Update: no, i'm already kinda wasted.
I told @AlexDeLarge that I would try Reyka today and let him know how it is. So, let's have at it!
At the recommendation of a friend, I tried Deep Eddy (vodka) a few weeks ago. It's extremely smooth and very good. Totally recommend. I can drink it straight, or with a tiny bit of water.
The same friend also recommended Reyka, which I bought earlier today (among quite a few other things, because alcohol). Here's what I discovered:
With Reyka, I was expecting something extremely smooth and almost tasteless, but tasteless it is not. Reyka tastes halfway between vodka and a good gin, like Bombay Sapphire. It actually has a *lot* of flavor, but the vodka itself is actually pretty high quality. I haven't found anything to mix with it yet, and I don't really like it straight. I might try lemon or lemonade next.
If I was to recommend vodkas, it would be either Tito's, or Deep Eddy. (Reyka is kind of strange, so I don't know if I can recommend it yet.)
Tito's is smooth and tasty -- absolutely not a gross vodka flavor, but ... nice. All alcohols have different effects and make me feel different. Grey Goose makes me tired, Tito's makes me happy.
Deep Eddy is incredibly smooth, and has almost no taste at all. It's wonderful.
UPdte: I took awhilfe to wrte this and... I'm getting a little tooo drunkt o conitinue so i thnkg oin going to nd this rannt here. ssorry! ^^12
Bossman freaks out over every little thing (ironically unless it's important).
Bossman also just set our papertrail 500 filter to forward him a copy of every "critical alert."
He has zero technical knowledge and zero reading comprehension. He literally forwarded one and said "This has one lots of info in it. explain it to me." (It was a log usage notification. in plain English. It had maybe three numbers in it.)
There's lots of useless "500"s in the list we don't care about. API Guy used the finer as a debugging alert system, and peppered his logs with "500 internal hey look at this." In fact, none of the 500s were even interesting; all but one was spam.
All day I've been tending to freakouts and accusations of me not doing anything. Ugh.8
The bossman asked if our signup service sends an automated email after we successfully process someone's payment or when we promote them to full customer.
That sounds like a simple query, yeah?
Here's some background:
We have four applications; one in React, three in Rails. I'll replace their names to retain some anonymity.
1) "IceSkate" is the React app, and it's a glorified signup form. (I wrote this one.)
2) "Bogan" is the main application, and is API-only; its frontend has been long since deprecated by the following two:
3) "Bum" is a fork of "Bogan" that has long since diverged. It now contains admin-only tools.
4) "Kulkuri" is also a fork of "Bogan" that has long since diverged. It now contains tools specifically for customers, which they can access.
All but IceSkate (obv) share a database.
Here's how signups happen:
Signups come in from IceSkate, which hits a backend API on Bogan. Bogan writes the data to the database, charges the card immediately, and leaves the signup for moderation.
And here's how promotion from signup to customer happens:
Bum has a view allowing admins to validate, modify, and "promote" a signup to a full customer. Upon successful promotion, Bum calls "ServerWrap", a module which calls actions on the other applications; in this case: Bogan.
Bogan routes execution through three separate models before calling "ServerWrap" again, this time calling KulKuri.
Finally, KulKuri actually creates the customer!
After KulKuri finishes creating the customer, execution resumes on Bogan, which then returns, causing execution to resume on Bum. Bum then runs through several other models, references the newly-created customer object (as all three share a database), and ... updates the customer with its current data, and then updates the signup object. After all of this, it finally shows the admin the "new customer" view.
It took me 25 minutes to follow the chain of calls, and I still don't know quite what's going on. I have no idea if any of it sends an email or not -- I didn't see any signs of this, but I very easily could have overlooked something.
So, to answer bossman's question... I asked the accounting people if they send the email manually. If they don't, it's automatic, which means I missed something and get to burrow through that mess all over again!
I really hope I missed something; otherwise I need to figure out how and where (and when!) to send the email...
I'm beginning to get burned out on coding in general due to work-related stresses.
Is anyone hiring remotely?
Will code in Ruby/Node/React for food ☹34
I just realized that I committed and ran a migration with a typo in a column name.
We now have a :last_polll_capture_at column. 😭
Time for a commit of shame...16
I'm getting increasingly convinced the world is a simulation and its curators have simply stopped caring.25
Bug report comes in from a coworker. "Cloudinary uploads aren't working. I can't sign up new customers."
"I'll look into it" I say.
I go to one of our sites, and lo! No Cloudinary image loads. Well that can't be good.
I check out mobile app -- our only customer-facing platform. None of the images load! Multiple "Oops!" snackbars from 500 errors on every screen / after every action.
"None of our Cloudinary images load, even in the mobile app," I report.
Nobody seems to notice, but they're probably busy.
I go to log into the Cloudinary site, and realize I don't have the credentials.
"What are the Cloudinary credentials, @ceo?" I ask.
I'm met with more silence. I use this opportunity to look through the logs, try different URLs/transforms directly. Oddly, everything seems fine except on our site.
I check Slack again, and see nothing's changed, so I set about trying to guess the credentials.
Let's see... the ceo is basically illiterate when it come to tech, so it's probably not his email. It's a startup, and custom emails for things cost money, and haven't been a thing here forever, so it's probably oen of the CTO's email aliases. he likes dots and full names so that narrows it down. Now for the password.... his are always crappy (so they're "easy to remember") and usually have the abbreviated company name in them. He also likes adding numbers, generally two-digit numbers, and has a thing for 7s and 9s. Mix in some caps, spaces, order...
Took me a few minutes, but I managed to figured it out.
"Nevermind, I guessed them." I reported.
After getting into Cloudinary, I couldn't find anything amiss. Everything looked great. No outage warnings, metrics looked fine, images all loaded. Ex-cto didn't revoke payment or cancel the account.
I checked our app; everything started loading -- albeit slowly.
I checked the aforementioned site; after a few minutes, everything loaded there, too.
Not sure what else to do, and with everything appearing to work, I said "Fixed!" and closed the issue.
About 20 minutes later, the original person said "thanks" -- never did hear anything from the ceo. I've heard him chatting away in the other room the entire time.
Regardless, good thing for crappy passwords, eh?22
It's raining. I love it.
It's foggy. I love it.
But I live in a desert and nobody here seems to know how to handle the rain, let alone the fog. (It isn't hard, people!) Last night during my ~30 min drive home from work, five separate accidents/collisions happened just a little ways behind me because it was raining. Now it's foggy, too.
I have to go to work.
I'm looking for a new job.
If anyone is hiring remotely or knows of somewhere that is, could you please let me know? 😊
(I'll be looking locally as well.)
• Angular 1.x
• MaterialUI, Susy
New year's resolutions:
1) Rid and keep my life free of toxic people. This includes parents.
2) Find a well-paying job that isn't also toxic.
3) Take care of myself for a change!
4) Stop putting up with things I don't have to.
5) Actually enjoy things I enjoy.
6) Finally buy a harp. I've wanted one since I was 3 ffs.
7) Finish de-googling my life.11
Last Friday company-wide call consisted of the sales CEO bossman, the remote contractor dev, and myself. The only topic of discussion was CTO-bashing (bossman's favorite). Neither person had much of anything to say about their week, and they didn't want to hear my rather-lengthy summary either (I did a lot). All they wanted to do was bash the CTO (API Guy).
The CEO asked how many hours I had worked, and seemed annoyed when I said less than 40. Well screw you. Monday was Christmas, and Sunday was Encroaching Estranged Asshole Day. (Earlier rant)
I've been spending most of my time trying to learn the steaming mountain of rancid hippo shit that API Guy squeezed out, since he's leaving forever in 10 days. Sure, CEO bossman says he'll still be around to answer questions, but even with him right next to me in the office he's less than useful. After he's gone and finally feeling free of this farce? It'll be worth fuck-all.
So bossman is mad at me for both not working enough over Christmas, and not pumping out features at a frantic pace despite multiple explanations of why this is a bad idea. And he didn't care about what work I actually did do.
My every interaction with him makes me angry. Whenever I -- or anyone else -- does something he doesn't approve of, seemingly no matter the reasoning, he makes it out to be a failure on their part, and like he can't trust them as much now.
Well I'm sorry we're trying to make sure our websocket works perfectly before putting it in the hands of our customers who rely on it for cash processing.
I'm sorry I'm trying to recall printers that aren't configured properly, which also prevent customers from using our goddamn service they're paying for.
I'm sorry I'm trying to learn how everything works while I still have someone to talk to and ask questions of.
I'm sorry I'm preparing for the day I have to take over and have you breathing down my neck. Once API Guy's gone I'll be responsible for everything, and you'll be yelling at me and having a @Root bashing session instead if I don't know how to fix everything right away.
But no. All you care about is that I talk to you about what's going in so you can micromanage development despite having zero fucking understanding of goddamn anything. All you ever fucking want is the next shiny feature you can push to make more sales / keep your current contacts happy. Doesn't fking matter if it makes development awful later; that's tomorrow's problem. And yet you have the gall to bash API Guy over and over and over again for the codebase being a mess? Sure he's a terrible programmer, but been putting up with this exact same shit for five years. No wonder it's a mountain of rancid hippo shit. That's as much your fault as his, asshole.
I'm so sorry you "have serious concerns" about me. I don't want to put up with your shit either.
Fuck off and die.26
I'm a victim of rather severe child abuse, both physical and mental. I've cut my mother out of my life on several occasions, and disowned her husband on father's day a few years ago. Whenever they're in my life they make things slowly but significantly worse.
They'd been using my previous hard times to push their way into my life again, and are now trying to buy their way in -- this time not into my life, but into my 2yo son's life.
I've done everything I could to keep his existence from them. I hid pregnancy from them, dropped any mew mannerisms and cute vocabulary when speaking to them, never let them see toys or hear sounds if I needed to call them, hid the carseat, etc. I did a perfect job. Out of necessity I've been hiding my life from them since I was 13, and I've never done better than this.
But they knew his name, sex, and age. This means they went digging, and a bloody lot. There is literally no public info relating him to me, and nobody that knows us would tell them, either -- they all know and understand.
For years I've refused to tell these people where I lived, too. We've been here for over five years, and three years ago they just randomly showed up at our door. I never gave them an address, and the house isn't in my name. I never had any privacy when I lived with them, either -- literally not even in the bathroom -- but now we have our own house and they still randomly intrude? asldhflakshdf
But. This Christmas Eve, we got two large boxes (fruit flats) stacked full of presents from them. A third for me, a third for my girlfriend, and a third for my 2yo. Name tags and all.
Why can't they just leave us alone? On Christmas of all holidays? Why do they have to ruin everything? Why can't they just go away?
I've made things abundantly clear, and they just. won't. stop. I feel so angry and exasperated and helpless and trapped. I went from listening to "die in a fire" to crying helplessly on the stairs. All I want is to be left alone and not harassed and blackmailed and manipulated and guilted and given expired food as "gifts."
and before you ever even think to defend them, please re-read my first three sentences.
Merry fucking Christmas.51