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 - "foot"
-
Getting married tomorrow!!!
Holy shit!!
I'm kind of scared actually. But in a good way 😄
And here I am, in the middle of the night, trying to figure out why my fucking tests don't run 😄56 -
preface: I'm fucking exhausted and angry.
Why does everyone assume I know how to do frontend?
Why am I always the design girl?
Why?
You hire me to do backend. STOP GIVING ME FRONTEND DESIGN CRAP. I HATE IT.
AND STOP GODDAMN YELLING AT ME FOR NOT MAKING SOMETHING RESPONSIVE.
I DON'T KNOW HOW.
yes i can learn, but I CAN'T FUCKING PICK UP A SKILL LIKE THAT IN A DAY. Also, I fucking hate it.
STICK IT UP YOUR (min-width: 1400px) ASS.
But seriously, I've spent 13 hours today figuring out completely new things (webpack, susy, express.js, cloudinary, responsive best practices, more webpack) because the boss is in panic-mode (his preferred state) and wants this project released last monday.
guess what? it isn't done.
because i still don't know how to do everything. and ofc there's nobody to ask because there never fucking is.
Seriously, boss-man. hire a fucking designer, and stop being an illiterate sales goon while you're at it. ffs.54 -
If I have headphones in
and I'm intentionally away from everyone
and it looks like I'm working
and you want to talk to me
Here's some advice:
DON'T FUCKING TALK TO ME.
If you're curious why, I've compiled a list of points:
1) DON'T
2) FUCKING
3) TALK
4) TO
5) ME
Also, see Fig. 1 below:
(Fig. 1)
| DONT
| FUCKING
|
| TALK
| TO
|
| ME
---------------------------------------
Don't fucking talk to me!26 -
Root's shortest and best rant ever:
I tendered my resignation today!
I feel so happy and free ^_^rant snip snip! resignation freedom is a wonderful thing three weeks before christmas not my problem root you little shit41 -
Almost all fellow programmers I've met have either wanted to be my boyfriend, thought I was a fake geek girl, or were too shy/intimidated to talk to me. (or a combination.)
devRant is the only place I've actually met friendly developers.30 -
If you're going to ask for my help
... and then do the opposite of everything i say
... and then complain when things don't work
... and continue to ignore everything i say
HOW ABOUT YOU JUST FUCK OFFundefined fucking hell fucking fuck fuck try listening for a change and see how that works for you? maybe just once?8 -
Fucking intern.
While I was working next to her a couple weeks back, she spent half her time on social media, playing Candy Crush, or talking with her friend. She also left early almost every day.
I had given her a project to do (object crud + ui), and helped her through it. She made pretty abysmal progress in a week. I ended up finishing it for her by rewriting basically all of her code (every single line except some function names, lone `end` or `}` statements, a few var declarations, blank lines, plus a couple of comments she copied over from my code).
This week I gave her a super easy project to do. It amounts to copying four files (which I listed), rename a few things to be Y instead of X, and insert two lines of code (which I provided) to hook it up. Everything after that just works. It should have taken her ... okay, maybe a few hours because she's slow and new to the language. but it would have taken me five to ten minutes, plus five minutes of testing.
She has spent THREE FUCKING DAYS ON THIS AND SHE'S STILL NOT DONE. SHE'S BLOODY USELESS!
She has kept not pulling changes and complaining that things are broken. Despite me telling her every time I push changes that affect her work (on. my. branch. ergh!)
She keeps not reading or not understanding even the simplest of things. I feel like MojoJojo every time I talk to her because of how often I repeat myself and say the same things again and again.
Now she's extremely confused about migrations. She keeps trying to revert a drop_table migration that she just wrote so she can re-create the table differently. Instead of, you know, just reverting back to her migration that creates the table. it's one migration further.
Migrations are bloody simple. they're one-step changes to the database, run in order. if you want to make a change to something you did a few steps back, you roll back those migrations, edit your shit, and run them again. so bloody difficult!
`rails db:rollback && rails db:rollback`
Edit file
`rails db:migrate`
So. hard.
I explained this to her very simply, gave her the commands to copy/paste, ... and she still can't figure it out. She's fucking useless.
It took me ten minutes to walk her though it on a screen share. TEN FREAKING MINUTES.
She hasn't finished a damned fucking thing in three weeks. She's also taking interview calls while working on this, so I know she totally doesn't care.
... Just.
Fucking hell.
USELESS FUCKING PEOPLE!35 -
How about some good news for a change?
We have new baby! 😊 He's our second.
And he was born on 10/24!
He's going to be my little devvy.
😊😊😊45 -
I'm tired of working for small companies.
I'm always either the sole developer, or the only dev for a specific stack, and therefore don't have anyone to ask for help. If I can't figure something out, it just doesn't get done.
It also means I don't have anyone to bounce ideas off, do code reviews with, or even friggin' have someone who understands what I do.
It sucks.
It would be nice to have someone I could actually ask for help! As it stands, I tear my hair out in frustration until I'm desperate enough to beg for help on discord or SO. whereupon, of course, I get ignored, as per usu. asdjfklasdjf
It really sucks.
It also means that I'm often surrounded entirely by sales people and managers... you know, those super-talkative people? who basically get paid just to talk? and are absolutely computer illiterate? Yeah. Think someone who says "I need my deliverables by end-of-week," "customer success representative," "turnkey solution," etc. completely seriously. (ew).
They're the people who constantly wonder why I can't push `n` features in `n/4` days, and ofc can't understand anything I say in response because of the aforementioned illiteracy. They're also the people who, almost every week, ask how long `y` is going to take, and then yell "But I need it by Friday! I just sold 50 clients on it!" (And they do this, of course, without ever asking for timelines)
It really fucking sucks.
Though I suppose larger companies would still have these problems.
but at least I could ask for help once in awhile. that would be nice.40 -
YELLED AT FOR 45 FUCKING MINUTES OVER OTHER PEOPLE’S FUCKUPS
IF YOU PIECES OF SHIT WANT ME TO DO SOMETHING, FUCKING SAY IT. WRITE IT THE FUCK DOWN IN THE FUCKING TICKET.
AND IF YOU WANT A FUCKING DEMO, SCHEDULE THE FUCKING THING, AND STOP FUCKING CANCELING THEM. DON’T BLAME ME WHEN IT’S YOUR FUCKING FINGER ON THE FUCKING CANCEL BUTTON EVERY. FUCKING. WEEK.
AND SERIOUSLY, DON’T FUCKING EXPECT ME TO DROP MY LAST FUCKING TICKET THE AFTERNOON BEFORE VACATION FOR SOME LOW-PRIOIRTY CRAP BECAUSE SUDDENLY IT’S ALL THE RAGE INSIDE YOUR TINY DUMBASS HEAD. BUT OH BOO FUCKING HOO, @ROOT DIDN’T DO WHAT I ASKED WHEN I WAS BEING A FUCKING MORON! GO FUCK YOURSELF YOU FUCKING STUCK-UP IDIOT
AND FUCK BOZO THE CLOWN BOSS FOR BLAMING ME FOR THE FUCKING IDIOT’S BRUISED FUCKING EGO
FUCK THE LOT OF YOU39 -
My employer has a dev studio in Cali.
The office is gigantic.
It has amenities.
It has a stocked fridge full of iced coffee, energy drinks, and apparently wine.
All the devs have totally enviable hardware.
And they probably earn twice what I do, or at least 50% more.
Yet they write absolute shit, never test their code, and push broken updates every day, often marked as "ready for final testing." Their codebase is full of hacks and guesses and stale cruft and worst practices. I wrote a rant recently about one of their fuckups, which involved 18 million Facebook errors per. day. So that should give you some idea as to the quality of their code, and their level of can't-be-bothered.
Again, they make 50%-100% more than I do.
Their whiny lead dev is bloody lazy when it comes to building things correctly, and totally prefers to half-ass everything and complain instead. He probably makes 150% of what I do, doing like 25% as much work, and maybe 10% as well. Doesn't quite compare though, as he's a Unity dev, not a backend dev. So his work isn't as critical.
akagdkdafavskakeuxbfh.
Bloody pisses me off.
"But their cost of living is higher!"
THEY SHOULDN'T EVEN BE EMPLOYED.rant root gets angry this is the short-short version overpaid crap-tier devs but i got too angry this was originally to be a comment22 -
Listening to Linkin Park while coding.
Head banging, foot tapping, just singing along in my head.
Then the boss messaged me, "should we produce some tickets?".
Apparently, I'm singing rather loudly.
Earth, swallow me up now.27 -
FINALLY
GODDAMNED
FIXED
I'VE SPENT OVER A GODDAMN WEEK SWIMMING THROUGH DEMON EXCREMENT WITH A MAGNIFYING GLASS TRYING TO FIND THE SOURCE OF THIS SHIT.
I FINALLY FOUND IT. IN A FUCKING. CONDITIONAL. OVERLOAD. OF A MODEL GETTER.
THAT ABSOLUTE NONSENSE RETURNS EITHER THE REQUESTED COLUMN FROM THE DATABASE, OR AN ENTIRELY FUCKING DIFFERENT COLUMN, ALL DEPENDING ON THE VALUE OF A THIRD FUCKING COLUMN.
HKJSDFASKFJ
TO MAKE MATTERS WORSE.
THE VALUE IT RETURNS. IS COMPLETELY WRONG. FOR ALMOST. EVERY. FUCKING. CASE.
BECAUSE THAT FIRST COLUMN? IT NEVER GETS UPDATED. EVER.
AND THIS DEALS WITH ACCOUNTING AND REAL GODDAMN MONEY.
AARRGHHHHH
WHAT THE HELL WERE YOU THINKING?!28 -
toxic workplace; leaving
I haven't wanted to write this rant. I haven't even wanted to talk to anyone (save my gf, ofc). I've just been silently fuming.
I wrote a much longer rant going into far too much detail, but none of that is relevant, so I deleted it and wrote this shorter (believe it or not) version instead. And then added in more details because details.
------
On Tuesday, as every Tuesday, I had a conference call with the rest of the company. For various, mostly stupid reasons, the boss yelled at and insulted me for twenty minutes straight in front of everyone, telling me how i'm disorganized, forgetful, how can't manage my time, can't manage myself let alone others, how I don't have my priorities straight, etc. He told the sales team to get off the call, and then proceeded to yell and chew at me for another twenty minutes in front of the frontend contractor about basically the same things. The call was 53 minutes, and he spent 40 minutes of it telling me how terrible I've been. No exaggeration, no spin. The issues? I didn't respond to an email (it got lost in my ever-filling inbox), and I didn't push a very minor update last week (untested and straight to prod, ofc). (Side note: he's yelled at me for ~15 minutes before for being horribly disorganized and unable to keep up on Trello -- because I had a single card in the wrong column. One card, out of 60+ over two boards. Never mind that most have time estimates, project tags, details, linked to cards on his boards, columns for project/qa/released, labels for deferred, released to / rejected from qa, finished, in production, are ordered by priority, .... Yep. I'm totes disorganized.)
Anyway, I spent most of conference call writing "Go fuck yourself," "Choke on a cat and die asshole," "Shit code, low pay, and broken promises. what a prize position," etc. or flipping him off under the camera on our conference-turn-video-call (switched due to connection issues, because ofc video is more stable than audio-only in his mind).
I'm just.
so, so done.
I did nothing the rest of the day on Tuesday, and basically just played games on Wednesday. I did one small ticket -- a cert replacement since that was to expire the next day -- but the rest was just playing CrossCode. (fun game, fyi; totally recommend.)
Today? It's 3:30pm and I can't be bothered to do anything. I have an "urgent" project to finish by Monday, literally "to give [random third party sales guy] a small win". Total actual wording. I was to drop all other tasks (even the expiring cert lol) and give this guy his small win. fucking whatever. But the project deals with decent code -- it's a minor extension to the first project I did for the company (see my much earlier rants), back when I was actually applying myself and learning something (everything) new, enjoying myself, and architecting+writing my own code. So I might actually do the project, but It's been two days and I haven't even opened single file yet.
But yeah. This place is total and complete shit. Dealing with the asshole reminds me of dealing with my parents while growing up, and that's a subject I don't want to broach -- far too many toxic memories.
So, I'm quitting as soon as I find something new.
and with luck, this will be before assface hires my replacement-to-be, and who will hopefully quit as soon as s/he sees the abysmal codebase. With even more luck, the asshole king himself will get to watch his company die due to horrible mismanagement. (though ofc he'll never attribute it to himself. whatever.)
I just never want to see or think about him again.
(nor this fetid landfill of a codebase. bleh.)
With luck, this will be one of my last rants about this toxic waste dump and its king of the pile.
Fourty fucking minutes, what the fuck.33 -
"Today I won't code, I'll just play some games or watch TV and relax!"
"Hmmm... I'll just fix this one small thing here... shouldn't take long. And then its time for some gaming!"
* 3 hours later *
Still coding, wtf is wrong with me6 -
HR: "We want to hire you, but we shouldn't until after we finish this migration and set up an onboarding process. That should take about two weeks; is this okay?"
Me: "Yes, of course."
... two and a half weeks later ...
Me: "Hey, it's been awhile since our last chat. How's the migration and onboarding process going?" etc.
HR:
------
Ugh.
This is the same company that had me sitting by the phone waiting for an interview an entire day, and let me know their schedule got booked for the day three minutes before they went home. gg.
I should tell them to get bent.22 -
I sometimes correct people's PRs from under the shower or from the toilet, but my favorite place to code are in the dune forests (Netherlands).
Most unusual place would be operating room at the hospital though, getting my leg/foot bugfixed after a car accident. I asked the surgeon if it was OK if I brought my phone in, to distract myself, so I went through some code cleanup tasks.3 -
!rant
I built a decently large project at work, and everything works perfectly. It's beautiful, it's fast, it's light, it's organized and clean, and deploying is a breeze. I'm very proud of it.
The biggest reason, though, is that it uses exclusively technology I had never touched before:
• React
• Redux
• ES6/Babel
• Webpack
• Express.js
• Material Design
• Apple lappy (I'm a linux girl)
I was completely new to all of these, including my dev machine. Every single aspect of the project was outside my skillet.
But it went from my first experimental `import React from 'react'` to production-ready in three weeks. I'm really proud 😊14 -
> Find new remote job that pays six figures.
> Only person in the house with income.
> Still not left alone to fucking work.
AFAJDLDHAFAHDKSLAKAGACAJFNSKDUEBXJCAWVWCSNXIXYEVXKCUDGRB/^&@FU+#9$/
JUST LET ME FUCKING WORK!19 -
I don't get 50 shades of grey.
They should have called it: "256 shades of gray unless you're on 10bit HDR, then its 1024 shades of grey"
That would have made much more sense9 -
I FUCKING HATE WAITING FOR PEOPLE.
It feels like a full quarter of my life is wasted just goddamn WAITING.
Fuck off.
From now on I'm just leaving whomever behind.11 -
A recruiter called me today. I had to barracade myself in the laundry room to hear him, and still needed to ask him to repeat himself 7-8 times. he spoke at what must have been 15% volume with a super thick Indian accent. He also couldn't pronounce a full third of the terms.
Here's how it went.
recruiter: you full-stack dev? what experience?
me: yes, about 8 years, maybe 10.
recruiter: you know C#?
me: no.
recruiter: you know java? tomcat? spring?
me: no, I don't know Java.
recruiter: you know react? angular? apache? node?xml? json? html?
me: yes. yes, angular 1. yes, yes, ...
recruiter: ok, i email you java job posting
me: I don't know java.
recruiter: ok, i email you.
Recruiter used "email java job posting." It wasn't very effective.
Recruiter moves quickly! Recruiter used "did you get my email? email" immediately after. It was super effective! @Root becomes angered!
Recruiter calls.
Recruiter calls.
@Root becomes enraged!
Recruiter calls.
recruiter: what [???] [?] [???] [??] java [???] [??] [???] okay
recruiter: You know C#?
me: No, I still don't know C#.
recruiter: ok thank you for time. 😡 *click*
What just happened?
I really don't understand their species.36 -
FUCKING LEAVE ME THE FUCK ALONE!
I NEED TO FUCKING WORK!
NO I DON'T CARE ABOUT POLITICS.
NO I DON'T CARE ABOUT YOUR RANDOM FUCKING DREAMS.
NO I DON'T CARE ABOUT COINS OR THE PRICE OF GOLD.
NO I DON'T CARE ABOUT SOME EXPENSIVE PLANE OR BOAT OR CAR YOURE NEVER GOING TO BUY.
NO I DON'T CARE ABOUT CHINA.
NO I DON'T CARE ABOUT YOUR DRAMA.
I DON'T CARE ABOUT ANY OF THE ARBITRARY FUCKING BULLSHIT YOU BLABBER ABOUT.
STOP. WASTING. MY. TIME.
I'M THE ONLY ONE PAYING THE BILLS
SHUT THE FUCK UP AND LET ME DO IT!26 -
I'm beginning to get burned out on coding in general due to work-related stresses.
Is anyone hiring remotely?
Please?
Will code in Ruby/Node/React for food ☹27 -
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.6 -
I am bloody sick of being on my own.
I was the sole dev at the last few jobs I've held, with the exception of API Guy -- who didn't really help much, and who got fired / quit six months after I started. Every other job I've either been the only dev, or the only web dev. (Exception:My boss at my previous job was a Rails dev, but he has zero time to code, and was significantly less experiened so he could only rarely help anyway.)
But now I'm in a company with a bunch of other devs, and they're all ostensibly senior devs, so you'd think I should be able to ask questions, right? And get answers? that actually help? like "Hey, you built this; how does it work?" No bloody way.
So far every time I've asked someone for help, they've been incompetent. I asked about what a few flags did, and got an answer that basically said "you just gotta know. oh, and the labels aren't up to date, so don't trust what they say." I asked the head of the "product team" about a ticket that he wrote, and he changed what it meant four times within two days. I asked about another, and he said "oh, that isn't reproduceable." Thanks. I asked about mailers, and got two very different, very incompete walkthroughs from the more senior devs (9+ years on this codebase) that didn't help. I asked two people about how users and roles work, and still have no idea what kind of user (there are like twelve?) is what, what roles even exist, or how to check for permissions. `@current_user` is a thing, but idfk what it holds since that can change considerably, and there's an impersonation feature that changes how it works, too. I ask the product guy again about where to link something, and he has no idea. I ask said product guy about what this feature needs to do, and he doesn't know. I ask what the legal team needs, and i get nothing. I ask the designer where the goddamn CSS lives, and he doesn't know; he apparently just puts it wherever he feels like, even if it's a completely unrelated stylesheet. As long as it works, right?
I ask very simple and straighforward questions, and it takes them forever to get back to me saying what amounts to "idk, ask someone else."
This feels like the same crap all over again, except now there are a bunch of devs I can ask that give me basically the same answers as the sales people always did. Always "idk" or a confusing mess of an 'answer' that skips most/all of the important bits. At least these people don't [usually] contradict themselves.
So, @Root is all alone, again.
And currounded by incompetence.
Again.
For fuck's sake.
Can't I catch a break?19 -
My worst dev sin is not throwing people under the bus, even when they deserve it.
Literally or metaphorically? I'll leave that up to the imagination.
------
I believe my second-worst sin is my tendency towards perfectionism. It's hard to finish projects quickly if everything has to be nearly perfect. I still make deadlines, but this is due to overworking, thus leading to burnout.
I could relax more if only I sacrificed my principles...5 -
!rant
!!git
Who here uses `master` for development?
My boss (api guy) tried to convince me that was normal practice. I gently told him that it sounded crazy and very very bad.
Here's the dev path I'm enforcing on my repos:
(feature branches) -> dev -> qa* -> master -> production*
*: the build server auto-pulls from these branches, and pushes any passing builds to staging/production.
Everyone works on their own feature branches, and when they're happy with their work, they merge it into `dev`. `dev`, therefore, is for feature integration testing. After everything is working well on `dev`, it gets merged into `qa` for the testers to fawn over and beat with sticks. Anything that passes QA gets merged into `master`, where it sits until we're ready to release it. When that time comes (it's usually right away, but not always), `master` gets merged into `production`.
This way, `master` is always stable and contains the newest code, so it's perfect for forking/etc. Is this standard practice, or should I be doing something different?
Also, api guy encourages something he calls "running a racetrack" -- each dev has their own branch (their initials) and they push to that throughout the day. everyone else pulls from it regularly and pushes to their own branch. When anyone's happy with their code, they push from their (updated) branch to `qa` (I insisted on `dev` instead.)
Supposedly this drastically reduces the number of merge conflicts when pushing to an upstream branch due to having a more recent ancestor node?
I don't quite follow that, but it seems to me that merging/pushing throughout the day would just make them happen sooner? idk.
What are your thoughts?30 -
Why are job postings so bad?
Like, really. Why?
Here's four I found today, plus an interview with a trainwreck from last week.
(And these aren't even the worst I've found lately!)
------
Ridiculous job posting #1:
* 5 years React and React Native experience -- the initial release of React Native was in May 2013, apparently. ~5.7 years ago.
* Masters degree in computer science.
* Write clean, maintainable code with tests.
* Be social and outgoing.
So: you must have either worked at Facebook or adopted and committed to both React and React Native basically immediately after release. You must also be in academia (with a masters!), and write clean and maintainable code, which... basically doesn't happen in academia. And on top of (and really: despite) all of this, you must also be a social butterfly! Good luck ~
------
Ridiculous job posting #2:
* "We use Ruby on Rails"
* A few sentences later... "we love functional programming and write only functional code!"
Cue Inigo Montoya.
------
Ridiculous job posting #3:
* 100% remote! Work from anywhere, any time zone!
* and following that: You must have at least 4 work hours overlap with your coworkers per day.
* two company-wide meetups per quarter! In fancy places like Peru and Tibet! ... TWO PER QUARTER!?
Let me paraphrase: "We like the entire team being remote, together."
------
Ridiculous job posting #4:
* Actual title: "Developer (noun): Superhero poised to change the world (apply within)"
* Actual excerpt: "We know that headhunters are already beating down your door. All we want is the opportunity to earn our right to keep you every single day."
* Actual excerpt: "But alas. A dark and evil power is upon us. And this… ...is where you enter the story. You will be the Superman who is called upon to hammer the villains back into the abyss from whence they came."
I already applied to this company some time before (...surprisingly...) and found that the founder/boss is both an ex cowboy dev and... more than a bit of a loon. If that last part isn't obvious already? Sheesh. He should go write bad fantasy metal lyrics instead.
------
Ridiculous interview:
* Service offered for free to customers
* PHP fanboy angrily asking only PHP questions despite the stack (Node+Vue) not even freaking including PHP! To be fair, he didn't know anything but PHP... so why (and how) is he working there?
* Actual admission: No testing suite, CI, or QA in place
* Actual admission: Testing sometimes happens in production due to tight deadlines
* Actual admission: Company serves ads and sells personally-identifiable customer information (with affiliate royalties!) to cover expenses
* Actual admission: Not looking for other monetization strategies; simply trying to scale their current break-even approach.
------
I find more of these every time I look. It's insane.
Why can't people be sane and at least semi-intelligent?18 -
Working with different nationalities is interesting, and sometimes kind of bewildering. And tiring.
I've been working with an Indian dev for a little while, and while she's a decent dev, interactions with her sometimes leave me a little puzzled. She glazes over serious topics, totally over-sensationalizes unimportant oddities, has yet to say the word "no," and she refers to the senior devs as (quote) "the legends." Also, when asked a question by her boss, like "Are you familiar with this?" Instead of a simple yes/no answer, she shows off a little. Fair, I do this sometimes too, but it's a regular thing with her. Also, like most Indians I've known and/or worked with, she has a very strict class-and-caste view of the world. It honestly makes me a little uncomfortable with how she views people, like certain people belong in certain boxes, how some boxes (and therefore their contents) are inherently better than others, and how it's difficult or simply impossible to move between boxes. My obviously westerner view of things is that you can pick where you want to be and what you want to do, and all it takes to get there is acquiring the proper skills and putting in the required effort. I see no boxes at all, just a sprawling web of trades/specialities. And those legends she talks about? They're good devs with more knowledge than me, but only one, maybe two of them are better devs. I see them as coworkers and leads, not legends. Legends would be the likes of Ada Lovelace, Dennis Ritchie, Yukihuro Matsumoto, and Satoshi Nakamoto. (Among others, obv.). To call a lead dev a legend is just strange to me, unless they're actually deserving, but we don't work with anyone like Wozniak or Carmack.
Since I'm apparently ranting about her a little, let me continue. She's also extremely difficult to understand. Not because of her words or her accent, but I can't ever figure out what she's trying to get across. The words fit together and make valid sentences, but the sentences don't often make sense with one another, and all put together... I'm just totally lost. To be a math nerd, like the two conversations are skew lines: very similar, but can never intersect. What's more, if I say I don't understand and ask for clarification, she refuses and says she doesn't want to confuse me further, and to just do what I think is best. It's incredibly frustrating.
Specifically, we're trying to split up functionality on a ticket -- she's part of a different dev team (accounting), and really should own the accounting portion since she will be responsible for it, but there's no clear boundary in the codebase. Trying to discuss this has been... difficult.
Anyway.
Sometimes other cultures' world views are just puzzling, or even kind of alien. This Irish/Chinese guy stayed at my parents' house for a week. He had red hair, and his facial features were about 3/4 Chinese. He looked strange and really interesting. I can't really explain it, but interacting with him felt like talking to basically any other guy I've known, except sometimes his mannerisms and behavior were just shockingly strange and unexpected, and he occasionally made so little sense to me that I was really taken aback.
This Chinese manager I had valued appearances and percieved honors more than anything else. He cared about punctuality and attire more than productivity. Instead of giving raises for good work or promotions, he would give fancy new titles and maybe allow you to move your desk somewhere with a better view of your coworkers. Not somewhere nicer; somewhere more prominent. How he made connections between concepts was also very strange, like the Chinese/Irish guy earlier. The site templating system was a "bridge?" Idk? He also talked luck with his investors (who were also Chinese), and they would often take the investment money to the casino to see if luck was in the company's favor. Not even kidding.
Also! the Iranian people I've known. They've shown very little emotion, except occasionally anger. If I tried to appease them, they would spurn and insult me, but if I met their anger, they would immediately return to being calm, and always seemed to respect me more afterward. Again, it's a little puzzling. By contrast, meeting an American's anger often makes them dislike you, and exceeding it tends to begin a rivalry.
It's neat seeing how people of different nationalities have different perspectives and world views and think so very differently. but it can also be a little tiring always having to translate and to switch behavior styles, sometimes even between sentences.
It's also frustrating when we simply cannot communicate despite having a language in common.random difficult communication too tired for anger or frustration nationalities tiring diversity root observes people23 -
My current project at work: purchase verification, aka anti-fraud.
It's been two weeks, and my boss is flipping out because it isn't done. A robust anti-fraud solution. in two weeks. And he thought one week was a little much.
like, fucking really?
There are companies whose entire service is helping combat fraud. and he wants this done in a bloody week?
What makes me laugh through my tears of frustration is that the company that moved into the previous office? Yep, anti-fraud. Their entire business model is providing anti-fraud services to other businesses. They even tried selling him on it when they moved in. Bossman sales guy turned it around and sold my freaking desk out from under me instead.
But like. They're a small company: they had 9 people when they moved in, and were looking to add three more, so a total of 12 people. (I totally considered jumping ship, but their stack was too different.)
So. Bossman wants me to replace 9-12 people and their entire business in a fucking week. Yeah.
"Oh, but it's just sms verification" says he. What he also wants is the ability to flag users as fraudulent, have sticky verifications so they can't bypass them by backing out, have email checks as well as sms, have deferred verification to allow collecting required info (e.g. phone number), verification fallback, lockouts, manual admin whitelisting, admin blacklisting, and different rules per merchant and rule groups for affiliates to apply to all of their merchants, and of course the ability to customize those merchant/affiliate anti-fraud rules. But he shortens this gigantic list to "I want sms verification," despite actually asking for all of the above. I don't want to know about the mental gymnastics and/or blindfolding required to equate the two, but he's nuts.
Yeah.
All of that.
In a goddamn week.
And I get chewed out when it isn't done? Fuck off.
Go build me a goddamn 5m ft^2 castle out of basalt and marble using only your toothbrush and a rusty garden trowel, and have it done in a week. No outsourcing.
talk about ridiculous.5 -
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 -
I really hate this company.
The code is a disaster. Every single other employee is a salesperson. Nobody has any bloody clue what I do or how difficult it is. They don't care about stability (unless things are crashing), maintenance (until crashing), code quality (until it delays features), or anything apart from shiny new features they can sell. The boss (the king salesman, if ever there was one) doesn't know how to manage, but tries to by acting like his "nice asshole" self -- he's an asshole that gives you passes, makes sure it's bloody obvious that he's doing it begrudgingly, yet everything is still absolutely your fault. If he arbitrarily decides it's too much your fault, he stops being "nice" and flips out on you in front of everyone. That's a "nice asshole": an asshole who can barely even pretend to be nice.
Fuck him.
And you know what? I really hate having to work next to these fucking birds, too.
Today was our weekly conference call, and I was both late and unprepared. I was too focused on my work, and got a ping 4 minutes into the meeting, so I obv didn't have time to prepare. Boss was also pissy today, and I didn't have much to show for my week, thanks to lots of little "OMG NEED ASAP" shit projects that all took too long, pushing back what I was actually supposed to work on. Which didn't get finished, of course, and today that project was "the most important" -- I suspect simply because it wasn't finished. AGADJFSKL. Cue the birds fucking screaming and never fucking shutting up no matter what I did. Blanket? No effect. Spray bottle? SCREAM MORE! Boss was yelling at me, the birds were screaming, and I couldn't think. Goddamn fucking disaster.
and yes, we have a macaw. A macaw and over 20 cockatiels. Said macaw decided today was a lovely day to just fucking SCREAM non-stop, and the tiels were doing their best to keep up. Thinking clearly during this cacophony? Not gonna happen.
Wait, "go elsewhere," you say? Somewhere quieter? Where is this "elsewhere?" We live in a fucking tiny house, and during the call it was (and still is) filled with sleeping people, and surrounded by a fucking desert. Who the fuck thought living in the desert was a good idea, anyway? Like, seriously. What brainless moron thought "You know what? This is a great place! Let's settle down right here," while trudging through the scorching sand and dust, looking at the basically lifeless horizon filled with large, hot, dry, dusty, barren rocks (aka "mountains"), and fucking dying from thirst? Probably someone so delirious from heatstroke they never actually recovered, and continued raving that it's a goddamn paradise to their heat-addled imbecile followers. I really hope they hallucinated a la-z-boy in place of a hedge of teddybear cholla and died an excruciating and prickly death. Fuck that guy/girl, too.
But I digress.
I seriously need an office that isn't a 30 min drive into gang-central. I'd work outside, but I live in the middle of the bloody fucking desert, and get heat exhaustion within about half an hour. Everywhere else in the house people bother me almost incessantly.
just. FUCKING FJASKLDFJGAG.
I HATE THIS PLACE SO SO SO MUCH.
'I've had such Zen lately,' Alex said. Maybe then, but lately? I've just been too exhausted and burned out from putting up with all this shit to get angry. Days like today? I could pour kerosene over everything and laugh as it all just burned to ash.rant it's a cool day at 96f/35c root has problems and fan the flames as your blazes burn root should see a shrink desert kerosene asshole boss when you fall i'll take my turn15 -
Living in a tiny house and having a remote-only job (and no lappy) means I get the wonderful, lovely privilege of working in my bedroom... with my 18mo (who will not leave me alone), and my girlfriend (who won't fucking leave). It's positively great!
Blasting music is often not enough to drown out the sound, and certainly does nothing for getting hit with toys or screamed at to get picked up, so I get basically nothing done during the day. And that's presupposing I'm not begged to run errands/go to lunch with her, both of which take precious hours. (She won't take the baby out alone, so she's always here unless we find a babysitter)
At least it's quiet after 9pm, so I stay up coding for as long as I can. But 18mo's wake up super early, and the girlfriend prefers to stay in the room until I'm up... so even with earplugs I don't get enough sleep. A monster a day and a bottle of Tito's vodka a month is all that keeps me sane.
Why can't I just be fucking left alone to fucking work? I'm our only goddamn source of income.
It's no wonder we're fucking broke.
And to make matters worse, I'm being downsized... and considering the above, I doubt I'll be able to land a new job. 😡15 -
So many interruptions!
So many distractions!
I just want to fucking finish this refactor. I dont' care about meetings, texts, bloody office game tournaments, lunchtime, gossip, or people trying to be friendly. Just let me fucking work!
If you see me rocking out with my headphones on and working furiously, seriously, just don't fucking interrupt. I'll bite.16 -
"In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg." - Bjarne Stroustrup4
-
This company!
Ugh.
Two days ago we had an hour and a half meeting on which projects to focus on, with the result being all seven are top priority. Because of course.
Last night I told my boss why an api he has me hitting always returns 401s; even gave him the line# responsible for the response (in his code). After an hour and sixteen minutes of him debugging, he finally admitted I might be right. zzz. This morning, he tells me it's on my end, and to ask someone else for their project's API code. The problem is that the server is not accepting the new application's key, since that key is not in the allowed list. That other project works just fine. Guess why? Their key has been whitelisted for months. But it's totally my code. Yeah. Bloody brilliant. 🔅
Anyway, today we're discussing "Winning with Accountability," a 100 page book that boils down to "do what you say you'll do, by when you said you'd do it, and take responsibility if you don't." But a huge part that the boss is stressing is: provide the exact date, time, and timezone of when things will be completed by. I mean That's fine for sales calls and reports and such trivial busywork. But dev projects? Not so much.
And that's been my past three days!
Friggin joy.6 -
My coworker requested I add a bunch of tracking to our product.
I've previously tried explaining to him (and honestly the rest of the company) about privacy issues stemming from tracking, such as by their beloved Venmo. Venmo tracks absolutely fking everything you give it access to, from location data to your entire facebook, twitter, foursquare, etc. feeds, and sells ALL of it to third parties. It's scary. but! this guy simply does not understand, and/or does not care, and marches right on into all the surveillance, loudly singing the song of convenience to all who'll listen. (Nobody else in the company cared, either. :/)
ugh.
Anyway, I'm conflicted.
I have to install some tracking, but I can probably come up with an excuse to cut most of it out and gimp their surveillance. It'll still be useful to us, but it'll limit the amount of data the tracking company can sell to third parties.
but they'll push this guy pretty hard on it, and he's as technically-inclined as a smudged glass of warm, stale beer. "Better for your conversion!" they'll say. "How much tracking do you want?" he'll reply. "@ashkin, why can't you do this right now? What else do you need to make this happen?" he'll firmly inquire. and so I'll be forced to make it happen...
ergh13 -
Root: Fleshes out missing data in some factories. Tests affected code and finds the change breaks some specs (but shouldn’t).
Root: Reaches out to spec author.
Root: Messages thundercunt (the ticket’s code reviewer) on slack about the specs and the reaching out. No response.
Root: Works on another ticket while blocked.
Root: Logs off.
Root: Talks with spec author chick in the morning. Decide to pair on specs later.
TC: Still no slack response.
Root: Gives update in standup. Mentions factories and broken specs. Mentions pairing with spec chick.
TC: Still no slack response.
Root: Pulled off tickets in favor of prod issue. Gets ignored by everyone else diagnosing prod issue. Investigates prod issue by herself. Discovers prod issue isn’t from bad code, but bad requirements — code works as requested. Communicates this with details. Gets ignored by people still diagnosing prod issue. Tries again. Gets ignored. Gives up. Works on non-blocked tickets instead.
TC: Still no slack response.
Hours later:
TC: Comments on PR telling me I broke specs (how did I not notice?), that I need to reach out to spec chick and work with her, and that I can’t resolve the ticket until it’s fixed and passes code review.
TC: Still no slack response. (21 hours later at this point)
TC: Logs off. Still no response (25 hours at this point)
———
Ignoring the prod issue for the moment…
I broke specs. No shit.
I need to talk with spec chick. No shit.
I can’t resolve the ticket. No shit!
Bitch, I told you all of this 21 fucking hours prior, and again 3 hours prior during standup. But no, I clearly “don’t communicate” and obviously have no bloody clue what I’m doing, either, so I need everything spelled out for me.
And no, I didn’t resolve the fucking ticket. Why the fuck would I if it still has pending changes? Do you even check? Ugh!
And what the fuck with that prod issue? I’m literally giving you the answer. fucking listen! Stupid cunts.
Why is it all of the women I work with are useless or freaking awful people? Don’t get me wrong, many of the men are, too, but I swear it’s every single one of the women. (Am I awful, too?)
Just. Ugh.
I can’t wait to leave this sewer of a company.
Oddly still a good day, though. Probably because I talked to recruiters and sent out my resume again.rant oh my root gets ignored. root swears oh my root talks in third person root solves a prod issue thundercunt root communicates root wants to leave root gets ignored15 -
Let me preface this by saying I'm not a designer.
While I can make individual bits of a site look good, and I'm actually pretty skilled with CSS/Sass, overall design completely escapes me. I can't come up with good designs, nor do I really understand *why* good designs are good. It's just not something I can do, which feels really weird to say. but it's true.
So, when I made the Surfboard site (that's the project's internal name), I hacked everything together and focused on the functionality, and later did a branding and responsive pass. I managed to make the site look quite nice, and made it scale well across sizes/devices despite being completely new to responsiveness. (I'm proud, okay? deal.)
After lots of me asking (in response to people loudly complaining that the UI doesn't have X feature, scale properly on Y device, and doesn't look as good as Z site), the company finally reached out to its UI contractor who does their design work. After a week or two, he sent a few mockups.
The mockups consisted of my existing design with a darker background, much better buttons, several different header bars (a different color) with different logo/text placements, and several restyled steppers. He also removed a couple of drop shadows and made some very minor styling changes (bold text, some copy edits). Oh, he also changed the branding colors. Nothing else changed. It's basically the same exact site but a few things look a little better. and the branding is different.
My intermediary with the designer asked for "any feedback before finalizing the designs" -- which I thought odd because he sent mocks for two out of the ten pages (nine plus a 404 page). (Nevermind most of the mocks showed controls from the wrong page...).
So, I typed up a full page of feedback. Much of it was asking for specifics such as responsive sizing on the new header layout, how the new button layout would work for different button counts, asking for the multitude of missing pages/components, asking why the new colors don't match the rest of our branding, etc. I also added a personal nitpick about flat-looking controls because I fucking hate them. Everything I wrote was very friendly and professional.
... His response was full of gems. Let me share a few.
1. "Everything about the current onboarding site looks like a complete after-thought." (After submitting a design basically identical to mine! gg!)
2. "Yes [the colors match our current branding]." (No. They don't. I checked. The dark grey is different, the medium grey is different, the silver is different, the light blue is different. He even changed the goddamn color of the goddamn LOGO for fuck's sake! How the fuck is that "matching"?!)
3. "Appreciate the feedback [re: overlapping colored boxes, aka 'flat'], design is certainly subjective. However, this is the direction we are going." (yet it differs from the rest of our already-redesigned sites you're basing this off. and it's ugly as shit. gg again :/)
4. "Just looked at the 404 page. It looks pretty bad, and reflects very poorly on the [brand name] brand. Definitely will make a change here!" (Hey! I love that thing. It's a tilted, dotted outline of a missing [brand product] entirely drawn with CSS. It has a light gray "???" underlay and some 404 text inside. Everyone I showed it to, coworkers and otherwise, loved it. "Looks pretty bad". fuck you.)
I know I shouldn't judge someone so quickly, but what the fuck. This guy reminds me of one of those pompous artists/actors who's better than everyone and who can never be wrong, even while they're contradicting themselves.
just.
asfjasfk;ajsg;klsadfhas;kldfjsdl.undefined surfboard another rant about the same project long rant pompous designer apples and asteroids design8 -
So WPA2 has been broken.
That's quite a bad news coming so shortly after the BlueBourne vulnerability was discovered
Read more here if interested:
https://www.krackattacks.com/9 -
Argh!
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...13 -
aslkfjasf. i've spent 12 hours today (and lots more over the past two days) trying to reproduce a bug that my [sort of] coworker insists is present. I haven't seen any proof of it anywhere, let alone steps to reproduce it.
I've poured through the code, following all of its tangled noodles of madness from start to fuck-this-shit. I've read and reread the pile of demon excrement so many times i can still read the code when i close my eyes. so. not. kidding.
anyway, the coworker person is getting mad because i haven't fixed the bug after days, and haven't even reproduced it yet. This feature is already taking way too fucking long so I totally don't blame him. but urghh it's like trying to unwind a string someone tied into a tight little ball of knots because they were bored.
but i just figured out why I haven't been able to reproduce it.
the stupid fucking unreliable dipshit ex-"i'm a rockstar and my code rocks"-CTO buffoon (aka API Guy, aka the `a=b if a!=b`loody pointless waste of mixed spaces and tabs) that wrote the original APIs ... 'kay, i need to stop for breath.
The dumbfuck wrote the APIs (which I based the new ones on mostly wholesale because wtf messy?), but he never implemented a very fucking important feature for a specific merchant type. It works for literally every type except the (soon-to-be) most common one. and it just so happens that i need that very specific feature to reproduce this bug.
Why is that one specific merchant type handled so differently? No fucking idea.
But exactly how they're handled differently is why I'm so fking pissed off. It's his error checking. (Some) of his functions return different object types (hash, database object, string, nullable bool, ...) depending on what happened. like, when creating a new gift, it (eventually...) either returns a new Gift object or a string error basically saying "ahhh everything's broken again!" -- which is never displayed, compared against, or recorded anywhere, ofc. Here, the API expects a Hash. That particular function call *always* returns a Hash, no matter what happens in the myriad, twisting, and interwoven branches the code could take. So the check is completely pointless.
EXCEPT. if an object associated with another object associated with the passed object (yep) has a type of 8. in which case, one of the methods in the chain returns a PrintQueue that gets passed back up the call stack. implicitly, and nested three levels in. ofc.
And if the API doesn't get its precious Hash, it exclaims that the merchant itself is broken, and tells the user to contact support. despite, you know, the PrintQueue showing that everything worked perfectly. In fact, that merchant's printer will be happily printing away in the background.
All because type checking is this guy's preferred method of detecting errors. (Raise? what's that? OOP? Nah, let's do diverging splintered-monolithic with some Ruby objects thrown in.)
just.
what the crap.
people should keep their mental diarrhea away from their keyboards.
Anyway. the summary of this long-winded, exhaustion-fueled tirade is that our second-most-loved feature doesn't work on our second-most-common merchant type.
and ofc that was the type of merchant i've been testing on. for days. while having both a [semi] coworker and my boss growing increasingly angry at me for my lack of progress.
It's also a huge feature, and the boss doesn't understand that. (can't or won't, idk)
So.
yep.
that's been my week.
...... WHAT A FUCKING BUFFOON!rant sheogorath's spaghetti erroneous error management vomit on her sweater already your face is an anti-pattern dipshit api guy two types bad four types good root swears oh my3 -
"It is not UNIX’s job to stop you from shooting your foot. If you so choose to do so, then it is UNIX’s job to deliver Mr. Bullet to Mr Foot in the most efficient way it knows." - Terry Lambert1
-
I closed my work laptop yesterday around noon and dumped water on it. I was just so fed up.
Some spilled off onto my desk, though, so i gently moved (read: threw) the offending piece of plastic frustration onto the floor and carefully dried my desk.
On my way to the trash can, i stepped on the laptop. I stepped on it again on the way back, and later, on my way out the door.
I came in to get something half an hour later, and stepped on it again. It remained a stepping stone for the rest of the day, and accrued considerable foot traffic.
I spent the day drinking peach whiskey and playing with my children instead of working on reports. It was a good day.
Don't worry: my laptop still worked this morning, though I declined to.25 -
Root encounters HR at her new job.
So, I left my job a few weeks ago. I was pretty sad about it, so I didn't want to write anything about it. It was a great place to work, with great managers, decent coworkers, and interesting work. I also had free reign over how I built things, what to improve, etc. Within about four months, I authored over half of the total commits on their backend repo, added a testing suite with 90% coverage, significantly improved the security (more accurately: added security), etc. but I got a job offer that allowed me to work remotely, and make well over six figures (usd). I couldn't turn it down, even though I wanted to. So, I left. I'm still genuinely sad about that. I had emotions and everything. 🙁 I stayed on long enough to finish the last of the features for their new product launch, and make sure everything was stable. I'm welcome back whenever, though they don't want to have remote employees, and I want to move, so. that's probably not going to happen. sigh.
Anyway, I started my new job this week. Rented an office (read: professional closet) and everything! It's been veritable mountains of HR paperwork so far. That's all I've done besides some accounts setup. I've seriously only worked on and completed one ticket so far in two and a half days, and I still have six documents/contracts to sign! (and benefits; that'll probably take my weekend.)
But getting an I9 thing notarized? Apparently I only have three days before I'm legally unemployable by them or something, idk. HR made it sound ridiculously dire and important, and reminded me like five or more times. I figured it was just some notary service; that takes like 10 minutes, right? So I put it off until my second day so I didn't have to disappear in the middle of my first day. Anyway, I called a bunch of notary services on day 2, and apparently only like 5% of them both do notary services this time of year and aren't booked full. And of those, probably another 5% will notarize I9 documents.. No idea why it's rare, but whatever, I'm not a notary.
The HR lady assured me that I didn't need any special documents; I should just go there, present my IDs, and the notary will provide or draft documents for everything else. Totally doesn't sound right, but fine; I'm not a notary nor will I ever work in HR, so I'm not very knowledgeable about this. So, against my better judgement I decided to just go anyway. I called around and finally found a place that wasn't closed, busy, or refusing, and drove over there. Waited. Waited. Waited. Notary lady was super slow in every single action. (I should mention that it's now 10am, and I have a meeting with the Senior VP of Engineering [a stern, stubborn old goat who enjoys making people feel inadequate] at 12:30pm.) The notary lady looks like she's an npc updating in slow motion (maybe at 0.25x speed?) and can't seem to understand what I need. Eventually, she tells me exactly what I had assumed: if there's no document, she can't notarize said document, and she doesn't have an I9 for the company I'm trying to work for. (like, duh.) So I thank her for proving the flow of time is variable, which she ignores in slow motion, and drive back home. It's now about 11.
I message the same HR lady, and the useless wench gawks in surprise and says she's never heard of that ridiculous request before. It took prodding to get her to respond every time, but after some (very slow) back and forth, she says she wants to call the notary personally and ask what they need. I waited around for another response that never came, and eventually just drove to the notary place again to have them notarize the required ID documents. That plus my chat history with HR should be enough to show that I bloody well tried, and HR just shit the bed instead. I finally got them notarized at like 12:10, and totally broke the speed limit the entire way to the office, found the last remaining parking spot, and made it to my office just in time for the meeting. seriously, less than two minutes to spare. Meeting was interesting (mostly about security), but totally made me facepalm, shout "Seriously!? What the hell are you thinking!?" and make slapping motions at some of the people talking. I will probably rant about that next.
But anyway, I'm willing to bet that the useless wench won't get back to me before the notary closes, if at all, and will somehow try to blame it completely on me if I bring it up again. Passive aggressive bitch. She's probably thinking: "If I don't help her with these mandatory legal processes, it'll be her fault she didn't get them done in time. I mean, they're so easy! She's just doing it wrong." I fucking hate HR.13 -
Every step of this project has added another six hurdles. I thought it would be easy, and estimated it at two days to give myself a day off. But instead it's ridiculous. I'm also feeling burned out, depressed (work stress, etc.), and exhausted since I'm taking care of a 3 week old. It has not been fun. :<
I've been trying to get the Google Sheets API working (in Ruby). It's for a shared sales/tracking spreadsheet between two companies.
The documentation for it is almost entirely for Python and Java. The Ruby "quickstart" sample code works, but it's only for 3-legged auth (meaning user auth), but I need it for 2-legged auth (server auth with non-expiring credentials). Took awhile to figure out that variant even existed.
After a bit of digging, I discovered I needed to create a service account. This isn't the most straightforward thing, and setting it up honestly reminds me of setting up AWS, just with less risk of suddenly and surprisingly becoming a broke hobo by selecting confusing option #27 instead of #88.
I set up a new google project, tied it to my company's account (I think?), and then set up a service account for it, with probably the right permissions.
After downloading its creds, figuring out how to actually use them took another few hours. Did I mention there's no Ruby documentation for this? There's plenty of Python and Java example code, but since they use very different implementations, it's almost pointless to read them. At best they give me a vague idea of what my next step might be.
I ended up reading through the code of google's auth gem instead because I couldn't find anything useful online. Maybe it's actually there and the past several days have been one of those weeks where nothing ever works? idk :/
But anyway. I read through their code, and while it's actually not awful, it has some odd organization and a few very peculiar param names. Figuring out what data to pass, and how said data gets used requires some file-hopping. e.g. `json_data_io` wants a file handle, not the data itself. This is going to cause me headaches later since the data will be in the database, not the filesystem. I guess I can write a monkeypatch? or fork their gem? :/
But I digress. I finally manged to set everything up, fix the bugs with my code, and I'm ready to see what `service.create_spreadsheet()` returns. (now that it has positively valid and correctly-implemented authentication! Finally! Woo!)
I open the console... set up the auth... and give it a try.
... six seconds pass ...
... another two seconds pass ...
... annnd I get a lovely "unauthorized" response.
asjdlkagjdsk.
> Pic related.rant it was not simple. but i'm already flustered damnit it's probably the permissions documentation what documentation "it'll be simple" he said google sheets google "totally simple!" she agreed it's been days. days!19 -
!!privacy
!!political
I had a discussion with a coworker earlier.
I owed him for lunch the other day, and he suggested I pay him back either with cash (which I didn't have), Venmo, or just by him lunch the next time (which I ended up doing).
I asked about Venmo, and he said it was like paypal, but always free. that sounded a bit off -- because how are they in business if it's always free? -- so I looked it up, and paid special attention to their privacy policy.
The short of it: they make money by selling your information. That's worth far more than charging users a small fee when sending $5 every few weeks. Sort of what I expected when I heard "always free," but what surprised me is just how much they collect. (In retrospect, I really shouldn't have been surprised at all...)
Here's an incomplete list:
* full name, physical address, email, DoB, SSN (or other government IDs, depending on country)
* Complete contact list (phone numbers, names, photos)
* Browser/device fingerprint
* (optional) Your entire Facebook feed and history
* (optional) all of your Facebook friends' contact info
* Your Twitter feed
* Your FourSquare activity
(The above four ostensibly for "fraud prevention")
* GPS data
* Usage info about the actual service
* Other users' usage info (e.g. mentioning you)
* Financial info (the only thing not shared with third parties)
Like, scary?
And, of course, they share all of this with their parent company, PayPal. (The privacy policy does not specify what PayPal does with it, nor does it provide any links that might describe it, e.g. PayPal's "info-shared-by-third-parties" privacy policy)
So I won't be using Venmo. ever.
I mentioned all of this to my coworker, and he just doesn't understand. at all. He even asks "So what are they going do with that, send me ads? like they already do?"
I told him why I think it's scary. Everything from them freely selling all of your info, to someone being able to look through your entire online life's history, to being able to masquerade around as you, to even reproducing your voice (e.g. voice clips collected by google assistant), to grouping people by political affiliations.
He didn't have much to say about any of them, and actually thought the voice thing was really cool. (All I could think of was would happen if the "news" had that ability....) All of his other responses were "that doesn't bother me at all" and/or "using all of these services is so convenient."
but what really got me was his reaction to the last one.
I said, "If you're part of the NRA, for example, you'd be grouped with Republicans. If they sell all of this information, which they do, and they don't really care who buys it or what they do with it... someone could look through the data and very very easily target those political groups."
His response? "I don't have to worry about that. I'm a Democrat, and have always voted Democrat. I'll tell anyone that."
Like.
That's basically saying every non-democrat is someone you should be wary of and keep an eye on. That's saying Democrats are the norm and everyone else is deviant and/or wrong.
and I couldn't say anything after this because... no matter what I said, it would start a political conflict, and would likely end with me being fired (since the owner is also a democrat, and they're very buddy-buddy). "What if they target democrats?" -> "They already do!" or "What if democrats use it against others?" -> "They deserve it for being violent and racist, but we never would" (except, you know, that IRS/tea-party incident for example...)
But like, this is coming from someone who firmly believes conservatives are responsible for all of the violence and looting and rioting and mass shootings in the country. ... even when every single instance has been by committed by democrats. every. single. one.
Just...
jfl;askjfasflkj.
He doesn't understand the need for privacy, and his world view is just... he actually thinks everyone with different beliefs is wrong and dangerous.
I don't even know how to deal with people like this. and with how prevalent this mindset is... coupled with the aforementioned privacy concerns... it's honestly *terrifying.*65 -
!rant
!!success
Finally, my project is done!
(and apart from UI/UX polish and some rewording by marketing, everything is finished! Wooo!)
Now for the fun part of the project... 😭5 -
!!pointless story
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?15 -
Oh dear, another Tuesday!
That means I'll probably get chewed out for something in front of the entire company. What for, you ask? The boss is inventive, so it could be anything.
Instead, I'm calling in sick and taking the day off. 😊13 -
Would you like to smile for 10 seconds? Read this short story:
*Story begins*
During World War II, numerous fighter planes were getting hit by anti-aircraft guns. Air Force officers wanted to add some protective armour/shield to the planes.
The question was "where"?
The planes could only support few more kilos of weight. Mathematicians were called for a short consulting project.
Fighter planes returning from missions were analysed for bullet holes per square foot.
They found 1.93 bullet holes/sq. foot near the tail of planes whereas only 1.11 bullet holes/sq. foot close to the engine.
The officers thought that since the tail portion had the greatest density of bullets, it would be the logical location for putting an anti-bullet shield.
A mathematician said exactly the opposite; more protection is needed where the bullet holes aren't - that is -around the engines.
His judgement surprised everyone. He said "He said We are counting the planes that returned from a mission. Planes with lots of bullet holes in the engine did not return at all".
Moral: Not everything that counts can be counted, and not everything that can be counted, counts.
Source: From the book -
"How Not To Be Wrong", by Jordan Ellenberg.4 -
!dev
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.undefined i am a girl you twits! toxic? snip. snip. resolutions parents always said a harp was too girly10 -
!dev
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 scared.12 -
Brace for Ubuntu 17.10 release coming tomorrow. Bye bye my old friend Ubuntu Gnome and hello vanilla Ubuntu
PS: don't hate for liking Ubuntu, at least I'm on Linux, cmon 😄20 -
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
FREAKING YAY.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
Six lines.
IN FOUR FUCKING DAYS!
AHSKJGHALSKHGLKAHDSGJKASGH.7 -
Code archaeology.
Almost everything I fix/update/build requires a ridiculous amount of digging through and carefully studying the mountains of neglected, decaying, and shoddy code that make up these projects.
I spend maybe 10% of my time (and likely closer to 5%) actually writing code now. I miss it so much.7 -
I extracted a tangled action to its own api, and wrote a test for it.
The test failed.
I added debugging, more debugging, all the debugging. It still fails. But I can at least see why it fails!
It turns out the api finds and updates the wrong user. It finds and updates the wrong user EVEN WHEN THERE ARE NO OTHER USERS.
WHAT THE SALAMI.
Also, the user lookup it uses is extremely roundabout and takes several seconds with ~2 million users. Normally I'd fix the lookup, but it has been in production for several years, and I'm terrified it will break something if I fix it.
Blargherhagrid.7 -
I installed a firmware update on my router, and discovered it both adds telemetry and breaks the navigation in firefox. 🤦♀️
It also started complaining that my password isn't secure (despite its length) because it doesn't contain a symbol.
Good freaking job.10 -
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
!!rant
When I worked at a previous job, they only gave out decent titles (and salaries) to upper management. Everyone else... well... I was the Domain/Sysadmin, responsible for the domain and both DCs, upgrading the physical network (plus recabling it: the MDF was a *disaster*), as well as all backups, migrations, printers, servers, and workstations/lappys in the building, plus pushing software, antivirus, updates, security policies, etc. I had complete access to everything, and ofc was responsible for everything. Nothing on my network caused anyone (else) any trouble except one particular printer I wasn't able to replace. Also, nothing new appeared on my network without me noticing and tracking it down.
But my official title? "IT Assistant".
I made $11/hr.
Worth it? Take a flying leap into an overflowing outhouse during the height of a Vegas summer if you even begin to think so.
I eventually managed to switch to a developer position, and (after several attempts) got a ~$5/hr raise. The girl they replaced me with in IT with some ditz who had never installed an OS before, didn't know what the BIOS was, and couldn't figure out why a monitor... plugged into itself... wasn't working. Things went downhill from there.10 -
After a couple years as a developer I've learned that all those banking sites and cool online stores and apps are held together with old chewed gum, duck tape and that guys who has been in the office 48h straight and whose wife thinks he's dead.2
-
This is just fucking awesome.
Bought a domain name from a local registrar today and now my personal details like full name, phone number and exact address are nicely on whois.
The cunts didn't even thing to ask me during registration if I want to make it private and there's no option to do that on their piss poor website.
Oh well, tomorrow will be the day that I transfer my new domain away from them. Last time I ever do business with these shitcakes10 -
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.
So. done.7 -
Background: I'm not drunk yet, BUT I'M WORKING ON IT.
okay.
I just finished a second sprint on my React app. The first was to build a merchant onboarding flow. The second was to do substantial cleanup as I learned more about react/redux, and to create a "supply order" flow -- basically purchasing marketing materials and services. I finished that in a week, and I'm pretty proud. api-guy wanted it done in a day. i laughed. he probably could have, but it would have been a copy of the code in a new repo with some lines changed.
ANYWAY. it's all done and It's super pretty and works amazingly well. It has both the onboarding flow and the ordering flow, with a nice pop-out sidebar for navigation, namespaced actions, etc. Everything is pretty clean. I even added a cart to the ordering (despite everyone telling me not to) because wtf, what if someone wants to order TWO items? dumbasses. So I made that. it's sexy.
Anyway, it's all done and shiny and fancy and wonderful and I'd *love* to share screenshots if only it didn't give away where I worked. :<
... but the point of the rant!
After the first sprint, I made a copy of the repo so I could rework it and add more functionality without touching the original. (Hey! That's what a branch is for, right? Why didn't I branch it up?
well, read on)
I knew we were going to have multiple separate flows for this app: onboard, ordering, merchant tools, admin tools, support, etc. So, I wrote its server portion (the webpack builder + http server) so it would serve the same app at whatever url the user hit, and set a cookie containing that host+url. This allows the app to serve different content (basically showing/hiding content) based on the URL and future login roles. If someone hits /order, it would hide everything but the order flow. If they're a merchant, it would show all the merchant views plus ordering, etc.
tl;dr This way I can use the same codebase for multiple sites, drastically simplifying development, branding, and what have you. This new app could obv also be a drop-in replacement for the original onboarding project because of the above.
HOWEVER. this apparently isn't good enough for api-guy. He's terrified that adding/updating future components will affect all the existing content somehow.
so.
now we have three repos for basically the same codebase. 1) onboard aka "surfboard", 2) ordering, 3) merchant tools, aka "ferrari" (the "future" app).
Except.
1) "surfboard" is a very old version of the code. 3) "ferrari" is also old, since 2) "ordering" has newer content in it now.
... and somehow this is better?
fuck if i can figure out how.
His reasoning is "well, you won't be touching surfboard or ordering for 6 months, so now you don't have to worry about it." Sure, except, you know, it'll be a pain in the ass in 6 months now when I have a crapton of code and branding to redo. ffs.
Oh. We also have three Heroku pipelines for these three repos. for the same codebase.
and now you know why i'm drinking.undefined idiocy fucking hell fuck this noise api guy i'm just gonna replace everything later this codebase is as dry as the friggin ocean7 -
preface: swearing.
because anger.
So. I'm trying to use Material Design with Material UI. The components and UI look *great*.
It's from google, though, which really pisses me off. but I like what I can do with the UI.
HOWEVER.
I really want a grid system for responsiveness. because obviously. besides, i really hate doing all the responsive shit myself. it sucks and i hate it.
Material Design does not include a grid system. okay, it includes a grid component, but it's not for site layout. it's for making a grid of images. or something.
What it does include is a lot of very lengthy documentation on what you should do, complete with fancy graphics saying "THIS IS HOW YOU MUST DO IT OR YOU'RE DOING IT ALL WRONG" -- but they don't actually support it! you must do it all yourself.
Why oh why would they tell you how you must do things if they don't provide the tools to make it possible? fucking google.
You might decide it's a grand idea to interject at this moment and say: "there are plenty of tools out there that allow you to do this!" And sure, you'd be right. however -- and i think this might just barely might be worth mentioning -- THEY REALLY FUCKING SUCK. Hey, let's look at some of the classes! So clear and semantic! This one was nice and simple: "xs4" -- but wtf does that mean? okay, it apparently means 4 columns as they'd appear on an extra-small layout. How does that work on a large layout? Who knows. Now, how about "c12"? okay, maybe 12 columns? but how does that display on a phone with a layout small enough to only have 4 columns? i don't know! they don't know! nobody knows!
oh oh oh oh. and my particular favorite: "mdc-layout-grid__cell mdc-layout-grid__cell--align-bottom" WHAT. THE. FUCK. I'm not writing a goddamn novel! and that one claims to be from google itself. either they've gone insane or someone's totally lying. either way, fuck them.
SO. TERRIBLENESS ASIDE.
Instead of using Material Design v0.fuckoff that lacks any semblance of a grid layout, I figure I'll try v1.0 alpha that actually has one supported natively. It's new and supports everything I need. There's no way this can't be a good idea.
The problem is, while it's out and basically usable, none of the React component libraries fucking work with it. Redux-Form doesn't work with it either because it doesn't understand nested compound controls, and hacking it to work at least triples the boilerplate. So, instead, I have to use some other person's "hey, it's shitty but it works for me" alpha version of someone else's project that works as a wrapper on top of Redux-Form that makes all of this work. yeah, you totally followed that. Kind of like a second-cousin-twice-removed sort of project adding in the necessary features and support all the way down. and ofc it doesn't quite work. because why would things ever be easy?
like seriously, come on.
What i'm trying to do isn't even that bloody hard.
Do I really have to use bootstrap instead?
fuck that.
then again, fuck this significantly more.
UGH.18 -
I have a problem.
My phone has "Rant" and [Comment] burned into the screen, along with the Facebook and share buttons. It's faint, but it's absolutely there.12 -
Holy moly..
Working on my MacBook and out of nowhere: *click* dead..
Try to restart it, fan spinning for a second, then: nothing.. recovery mode. Nothing..
FUCK!!
Doing research on my iPhone.. see Louis rossmann had a case like this in which one foot of the clock on the main board doesn’t have connection.
But I don’t have the right tools to open the MB..
I turn it around, shake it shake it shake it shake it baby like Taylor swift, knock on the back, knock on the keyboard and voila.. working again😪
Didn’t think that still works with modern technology..6 -
It's kind of neat knowing people who are famous for things I don't care about, and having their numbers / talking semi-regularly. They're a special person to so many others, but to me they're just some random person that's mildly annoying.
Like API Guy.
Freaking API Guy.
He's a millionaire musician who's adored by literally millions of people, but none of them know he writes absolutely terrible APIs, zero tests, rushes to the shiniest new things, and happily agrees to everything (often without listening) only to deny it later. Absolutely infuriating.
Or knowing one of Netscape founders as that strange and really terrible trumpet player with the great tequila. He did give me his copy of The C Programming Language (the bible) though. He was cool. Super weird, but cool.
It's just a strange feeling. I don't care, and yet others inexplicably think I should. I don't understand it. They're just people? idk.14 -
I'm editing the sidebar on one of our websites, and shuffling some entries. It involves moving some entries in/out of a dropdown and contextual sidebars, in/out of submenus, etc. It sounds a little tedious but overall pretty trivial, right?
This is day three.
I learned React+Redux from scratch (and rebuilt the latter for fun) in twice that long.
In my defense, I've been working on other tasks (see: Alerts), but mostly because I'd rather gouge my freaking eyes out than continue on this one.
Everything that could be wrong about this is. Everything that could be over-engineered is. Everything that could be written worse... can't, actually; it's awful.
Major grievances:
1) The sidebars (yes, there are several) are spread across a ridiculous number of folders. I stopped counting at 20.
2) Instead of icon fonts, this uses multiple images for entry states.
3) The image filenames don't match the menu entry names. at all. ("sb_gifts.png" -> orders); active filenames are e.g. "sb_giftsactive.png"
4) The actions don't match the menu entry names.
5) Menu state is handled within the root application controller, and doesn't use bools, but strings. (and these state flags never seem to get reset anywhere...)
6) These strings are used to construct the image filenames within the sidebar views/partials.
7) Sometimes access restrictions (employee, manager, etc.) are around the individual menu entries, sometimes they're around a partial include, meaning it's extremely difficult to determine which menu entries/sections/subsections are permission-locked without digging through everything.
8) Within different conditionals there are duplicate blocks markup, with duplicate includes, that end up render different partials/markup due to different state.
9) There are parent tags outside of includes, such as `<ul>#{render 'horrific-eye-stabbing'}</ul>`
10) The markup differs per location: sometimes it's a huge blob of non-semantic filthiness, sometimes it's a simple div+span. Example filth: section->p->a->(img,span) ... per menu entry.
11) In some places, the markup is broken, e.g. `<li><u>...</li></u>`
12) In other places, markup is used for layout adjustments, such as an single nested within several divs adorned with lots of styles/classes.
13) Per-device layouts are handled, not within separate views, but by conditionally enabling/disabling swaths of markup, e.g. (if is_cordova_session?).
14) `is_cordova_session` in particular is stored within a cookie that does not expire, and within your user session. disabling it is annoying and very non-obvious. It can get set whether or not you're using cordova.
15) There are virtually no stylesheets; almost everything is inline (but of course not actually everything), which makes for fun layout debugging.
16) Some of the markup (with inline styling, no less) is generated within a goddamn controller.
17) The markup does use css classes, but it's predominately not for actual styling: they're used to pick out elements within unit tests. An example class name: "hide-for-medium-down"; and no, I can't figure out what it means, even when looking at the tests that use it. There are no styles attached to that particular class.
18) The tests have not been updated for three years, and that last update was an rspec version bump.
19) Mixed tabs and spaces, with mixed indentation level (given spaces, it's sometimes 2, 4, 4, 5, or 6, and sometimes one of those levels consistently, plus an extra space thereafter.)
20) Intentional assignment within conditionals (`if var=possibly_nil_return_value()`)
21) hardcoded (and occasionally incorrect) values/urls.
... and last but not least:
22) Adding a new "menu sections unit" (I still haven't determined what the crap that means) requires changing two constants and writing a goddamn database migration.
I'm not even including minor annoyances like non-enclosed ternaries, poor naming conventions, commented out code, highly inefficient code, a 512-character regex (at least it's even, right?), etc.
just.
what the _fuck_
Who knew a sidebar could be so utterly convoluted?6 -
Fucking URLs, people.
They're not hard.
If you're going to give me a bug report, TELL ME THE GODDAMN URL.
If, after yelling at you several times for not providing the url, you instead just fucking GUESS at the url, YOU'RE A GODDAMN BLITHERING IDIOT AND YOU'RE WASTING MY GODDAMN TIME.
ALT+D, CTRL+C or CMD+L, CMD+C
SO HARD. ASDFASDJGHLKASDHFLJKSGDFSKDFrant the bozo didn't even recognize a 404 page bug reports without urls screenshots without context urls bug reports blithering idiots6 -
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.22 -
(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 failure9 -
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.15 -
A previous co-worker (dev) bought a "foot mouse" he found on a Chinese website, then changed his keyboard's layout to match the "natural human cognitive ability" also bought a sleeping bag because he needed a "power nap" after lunch break he even asked our MD to buy him an ergonomic chair which would cost around 1200 USD ( of course our MD refused) then the worst of the worst, he had this habit of chewing his food loudly when he's eating something he likes.
One time our operations manager (she was pregnant XD) screamed at him from her desk " RAYAAAAN SHUT YOUR FUCKING MOUTH I CAN HEAR IT FROM HERE DAMN IT"
He literally spilled some of the food he was chewing on his desk and I burst out laughing like crazy.
On the same day our MD told us to follow a new "no food in office" policy 😂😂😂
Sad story is that when he left the company I had to revert his PC to how it was including resetting the keyboard layout to default, remember his "foot mouse" ? Well he had to modify the mouse settings so all directions were inverted.
The first thing I said when I turned on his laptop was
FUCK YOU RAYAN!!3 -
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.)
Stack:
• Ruby+Rails
• Node
• Postgres/etc.
• React
• Angular 1.x
• Sass/Less
• MaterialUI, Susy
Timezone: GMT-733 -
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?
Well.
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...
just...
errrrgghh9 -
I've been working on updates to a react app for a few hours today. Everything's been peachy except this shit job, this inane change demand list, my headache, my lack of quiet places to work, ... okay, so basically everything is terrible. But I've done lots of builds, and made lots of progress.
Then suddenly: my build script failed. 30 seconds after a successful build, with no (tooling) changes in between.
Reason? Incorrect version of Sass.
How? Fucking npm.
Isn't package-lock.json supposed to prevent this crap?
FAKDLKAUSUK.13 -
I built a feature. I asked questions for days. Nobody helped. I built it anyway, and while I'm not sure it's quite right, it works.
During a code review, I asked for clarification on who the fuck it's for. Simple fucking question. Didn't get an answer. I did get the same crap response twice, though. It's great because it both doesn't answer my question and makes things worse.
Let's refer to this as "branding." Here we go!
------
Root: "Should this be changed to blue? I'm not sure who the end-user is."
TC: "should be purple, then call it something more convenient" (...what?)
Root: "Better phrasing: if we use the feature, it should match our colors and be blue. If customers use it, it should match their colors and be red. It shouldn't be both. I looked through everything again, and i'm convinced that it's only for us, so it should be blue so it matches everything."
TC: "this should be purple, and then call it something [sic] red" (...what!? also: lolcopypaste)
------
But like, that's wrong in every single way. It's internal, not external. Doing both makes it confusing. Doing both and calling it external is fucking stupid. Did she even read the PR? or any of my questions? ugh.
I swear, it's like arguing with a boulder and expecting it to listen. An ugly, oversized boulder that comically resembles Jabba the Hutt. No joke.
Whatever, it can be purple. Later, if someone complains that it's confusing, I'll just link them to the damned PR. Then again, almost everything here is confusing AF, so I doubt anyone will actually notice.
Screw this place. So glad I'm on my way out.rant thundercunt the ugly boulder responds jabba the hutt root asks questions root has a code review6 -
I received a shiny new pair of Bose QC 35 II's for christmas -- bluetooth headphones with active noise cancelling.
They're similar to the $500 pair my previous boss lent me at work. Lower quality, but much newer, and rechargeable! and bluetooth! Yay!
I paired them with my debian machine, and... it failed. No explanation given. I tried everything I could htink of, but nothing changed. Well, okay; bluetooth came out within the last decade or so, meaning it takes some extra effort in Debian. truth. So I did some reading on bluetooth connection issues, changed some configs, learned how to use the bluetooth cli, and used that to pair and connect them. Worked like a charm.
But! No audio.
Damn.
Cue more research (on pulseaudio this time) and more configs. Did some fiddling, etc. No progress. Also discovered `pavucontrol`, a gui-only (😕) utility which lets you select audio output devices, among other things. It doesn't list the headset. Nor does `pactl list`, but that does list the correct bluetooth modules. It also lists Lennart Poettering's name many many times, for all the good that does. Bragging about building something as needlessly complicated and crappy and buggy as pulseaudio? I will never understand that egotistical doucheballoon.
Anyway.
I paired the headset with my phone in about six seconds. I'm now controlling my phone's music via spotify on my computer. yay. Doesn't work for games or movies, but I can always just plug them in.
But woo!
Noise canceling!
Yay, silence! At last!
and music! How I've missed you!
❤💜🖤
(systemd and pulseaudio can still die in a fire.)22 -
tl;dr @Root refactors some spaghetti.
I'm refactoring an api that creates a support message. It's a post route.
When seeing a magic hardcoded message string, this route instead updates the user object, and does not create a support message.
It also returns different results if the user is muted (fine) or if saving the message succeeds or fails (fine).
But if the user is creating a duplicate message, it doesn't save the message (fine) and... redirects to listing their messages instead? Wat?
Also, when refactoring this (migrating to a new message backend), I discovered that not all routes return a response. If the message is a non-duplicate, from a non-muted player, from a non-redacted client, the route doesn't respond at all!
So, I'm having fun cleaning this up. I actually am. Except I'll need to support all of the legacy clients for the next lifetime or two. I mean, really. There are still people with Android v2 devices who are using this thing. not even kidding.9 -
Root has a deadline
I've been working on this CCPA ticket for awhile. Admittedly too long, but I'm new to the codebase and it's fucking sprawling. There has also been a lot of back-and-forth on the ticket.
Anyway, I've had a few blockers, such as how mailers work, the legal copy, where to put a admin-facing link to the dashboard, how to build the jira integration (and its creds), etc.
Quite awhile ago I asked Mr. Product, "Where should I put the ccpa dashboard link?" To which he responds: "I'll get you the answer today!" Awesome. Except he didn't. That day came and went without a peep. So, the next day I ask again: "Where should I put the ccpa dashboard link?" To which he responds: "I'll get you the answer today!" And that day comes and goes, too. I ask again, and you guessed it: "I'll get you the answer today." Repeat ad nauseam.
I also asked about the Jira integration and credentials. I got about the same treatment as above, but with a tiwst: they tell me to talk to / continue to bug Mr. H instead. Except Mr. H had been on PTO for weeks. Every time I ask, they keep referring me to him. A little over two weeks later (yesterday), I finally got a response from him. Yay! I was preoccupied with finishing the dashboard (which wasn't in the original ticket for some reason) so I didn't get a chance to look into it yet. After asking his boss three times, Mr. Product also finally (!!!) gave me a response on the link placement today, too! Though not directly: he discussed it with said boss in a group chat that I'm a part of, but never tagged me or told me directly. So, now I know where to put it (I think), but I have no idea how that area of the site is built (it's dynamic based on domain, login, and roles), so adding it will still be difficult.
The best part:
Today during standup, some lady I've only rarely seen before attends the meeting, doesn't say anything until the very end, and then announces that everything must be code-complete by tomorrow for release, and then promptly signs off.
For fuck's sake. I've had blockers on this for weeks, and now I need to finish it by fucking tonight?
I still don't know how to build the mailers (because translations and formats), nor how to actually send emails using them. I don't know how to modify the footer (dynamic, complex), how to add the admin-facing link (dynamic, complex), nor how build a Jira integration (haven't even looked yet). I just got unblocked on two of these fucking today. and it needs to be done and code reviewed by tomorrow?
No bloody way.
Maybe I should go back to my previous job. 😡rant root has a deadline traded my days for a pocketful of mumbles blockers deadlines nobody cares the boxer18 -
!code
I literally cannot get this computer to boot from ANYTHING other than its hard drive.
I want to boot from a usb flash drive, but the bios doesn't support that. it supports standard and 120mb floppies, ZIP drives, usb floppies, usb cd drives, etc. but not a generic USB drive. You'd think the bios developers would have heard of them back in 2012, but they also refer to Windows as "window os", so who knows.
I changed the boot order multiple times to include everything that might possibly include a usb flash drive, and then just tried all of the other options as well. No luck. Everything just booted straight to Windows.
Okay, that's not exactly unexpected, so I found a boot manager that allows booting to usb drives, and burned that to a cd. I made sure the boot order included "CDDRIVE" first (and "USB-CD" second just to be sure), and tried again. The bios refused to boot from the cd because it's in a cd/dvd drive, and cd drives are VASTLY different beasts than dvd drives, apparently. Like, it didn't even ask the drive to spin up! It just booted straight into Windows.
After a few more reboots (and quite a few middle fingers), my dvd drive magically appeared in the list of allowed boot devices. Why did it just show up now? No clue :/ I'm just happy it's there.
So, I pick that, save and exit, and wait for my shiny new boot manager to pop up. The cursor flashes a bit, moves around, and flashes some more. Then Windows starts loading.
what the crap? why?
So this time I disable booting from the hard drive altogether. In fact, I disable everything except the dvd drive, because screw this, and save/restart for the twelfth time.
Windows greets me.
Again.
What the hell?
At this point I'm tempted to unplug the friggin' drive. If Windows still greets me after that, I'm just going to check myself into an asylum and call it a life.
But seriously.
Either the boot manager in question is triple-faulting and the bios is transparently failing-over to the previous boot config (Windows), or said boot manager is just like "yolo!" and picks Windows anyway.
If a different boot manager doesn't work, I'm totally out of ideas.
Edit: disabling HD boot entirely and removing the boot manager cd also results in Windows loading. It's like the bios is completely ignoring my settings. :/16 -
!drunk (yet)
It's whiskey and code tonight!
(Whiskey because I couldn't get to my rum. annoyed face.)
Why? Because rum is so much better. duh.
More seriously: My boss has thrown me every single one his current tasks and is refusing to answer simple questions about them, such as "oh, so you already know about this bug; what's the cause?" or "how do i test this once i've fixed it?" or "where the fuck are you?"
and I'm also getting lots of bugs from other people. They're all basically categorized "urgent, please fix immediately" but should instead be categorized "super-boring and not-at-all-important, and should get fixed on the off chance you happen to remember it next year". That's the best category of bug.
I just gave up on fixing a Rails pluralize bug which fits into the aforementioned category quite nicely. It's returning "2x round of golves" -- which is hilarious and I might leave it in just for the amusement. But now it's back to fighting with ActionCable! Everything has been getting in the way of me finishing that. I'm about to start biting.
Speaking of ActionCable, it turns out my code wasn't wrong after all (have I said that yet?). Since the official documentation and examples suck, I've been digging through the (generated) javascript source and working my way backwards to learn how to use it. I cleaned up my code a little, but it was still correct. The reason nothing is working correctly is that API Guy gave me broken code. ...Again! Go figure. So I'll be rewriting that today. or tomorrow. (Whiskey, remember?)
I also have some lovely netcode to debug and fix. So totally not looking forward to that. The responses are less bloody reliable than my boss's code ffs. *grumble grumble*6 -
"Quality CSS" is much a fucking misnomer. As someone whose been writing this shit at scale for 15+ years I can tell you all CSS code is garbage. The only thing you should do is make sure you don't have name collisions. Classes/components are self contained. And use variables when possible. DRY makes sense usually, but if you're dogmatic about it you shoot yourself in the foot.9
-
I spent an hour arguing with the CTO, pushing for having all our new products' data in the database (wow) with an API I could hit to fetch said data (wow) prior to displaying it on our order page.
He never actually agreed with me, but he finally acquiesced and wrote the migrations, API, and entered my (rather contrived) placeholder data. (I've been waiting on the boss for details and copy for three days.)
Anyway, it's now live on QA. but. I don't know where QA is for this app, and it's been long enough that i'm kind of afraid to ask.
Does that sound strange?
well.
We have seven (nine?) live applications (three of which share a database), and none of their repos match their URLs, nor even their Heroku app names. (In some of these Heroku names, "db" is short for the app's namesake, while in the rest it's short for "database").
So, I honestly have no idea where "dbappdev" points to, and I don't have access to the DNS records to check. -.-
What's more: I opened "dbappdev" on Heroku and tested out his new API -- lo and behold! it returns nada. Not a single byte. (Given his history I expected a 500, so this is an improvement, I think. Still totally useless, however.)
And furthermore: he didn't push the code to github, so I cannot test (or fix) it locally.
just. UGH.
every day with this guy, i swear.16 -
Woooooooo!
Just finished my first fully automated CI/CD system. Now all my commits go through the pipeline and gets deployed to live automatically.
It's a small project but still, it's really cool!10 -
I worked for over 13 hours yesterday on super-urgent projects. I got so much done it's insane.
Projects:
1) the printer auto-configuration script.
2) changing Stripe from test mode to live mode in production
3) website responsiveness
I finished two within five minutes and pushed to both QA and Production. actually urgent, actually necessary. Easy change.
The printer auto-configure script was honestly fun to write, if very involved. However, the APIs I needed to call to fetch data, create a printer client, etc... none of them were tested, and they were _all_ broken in at least two ways. The CTO (api guy in my previous rant) was slow at fixing them, so getting the APIs working took literally four hours. One of them (test print) still doesn't work.
Responsiveness... this was my first time making a website responsive. Ever. Also, one of the pages I needed to style was very complicated (nested fixed-aspect-ratio + flexbox); I ended up duplicating the markup and hacking the styling together just to make it work. The code is horrible. But! "Friday's the day! it's going live and we're pushing traffic to it!" So, I invested a lot of time and energy into making it ready and as pretty as I could, and finally got it working. That page alone took me two hours.
The site and the printer script (and obv the Stripe change as well) absolutely needed to be done by this morning. Super important.
well.
1) Auto-configure script. Ostensibly we would have an intern come in and configure the printers. However, we have no printers that need configuring, so she did marketing instead. :/ Also, the docs Epson sent us only work for the T88V printer (we have exactly one, which we happened to set up and connect to). They do not work for the T88VI printers, which is what we ordered. and all we'll ever be ordering. So. :/ I'll need to rewrite a large chunk of my code to make this work. Joy :/
2) Stripe Live mode. Nobody even seemed to notice that we were collecting info in Test mode, or that I fixed it. so. um. :/
3) Responsiveness.
Well. That deadline is actually next Wednesday. The marketing won't even start until then, and I haven't even been given the final changes yet (like come on). Also! I asked for a QA review last night before I'd push it to production. One person glanced at it. Nobody else cared. Nobody else cared enough to look in the morning, either, so it's still on QA. Super-important deadline indeed. :/
Honestly?
I feel like Alice (from Dilbert) after she worked frantically on urgent projects that ended up just being cancelled. (That one where Wally smells that lovely buttery-popcorn scent of unnecessary work.)
I worked 13 hours yesterday.
for nothing.
fucking. hell.undefined fuck off we urgently don't need this yet! unnecessary work unsung heroine i'm starting to feel like dark terra.7 -
Running a huge migration on our production db.
Takes 45+15 minutes (migration+tests) on my lappy. So. I'm going to be bored and slightly worried for the next hour.
Hopefully the production servers will be faster.7 -
Man, this guy is fking useless.
I'm learning something new and ask him for help; he both mishears and confuses topics, so his explanations only ever make things worse. 😧6 -
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 -
I fucking hate HTML forms! Especially representing bloody nested objects within them!
Fighting with html forms has taken at least 80% of my time over the past three features. Why can't I just do this via API? It would be soo much freaking simpler! ugh.
But today.
Today is not going to be a good day.
I not only get to expand a complicated vanilla form with with one nested object today, I get to expand it to include three nested objects. Normally this wouldn't be a problem because it's just moving elements around, but two of those nested objects need to be broken up and combined into three+ segments each. I have no idea how to even approach this.
ugh.17 -
Installed Linux on my grandma's computer because she uses it only to browse internet so there was nothing new to learn for her other than how to shut it down which is dead simple and the win10 she had previously was slow as fuck. The thing used to be unusable, now it runs fine, LXDE for the win on slow machines3
-
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 -
I realized this week that my CPU is almost 12 years old!
It's an AMD FX-8150 8core @3.6 (recently overclocked to 4ghz). It's still a good chip for my needs, but eep. I had no idea I bought it that long ago.
I really want to replace it, but that would require a new mobo, too. which I suppose wouldn't be a bad thing...
------
Unpopular onion:
AMD was comparable to (and occasionally better than) Intel before, but now? Ever since they bought ATI, they've just spiraled: virtually everything they've produced has lagged behind.
However: the Ryzen seems to break this trend, so maybe there's hope yet?undefined ryzen anachronism much? cpu intel seriously though: gtx970ssc + amd8150? 8150 unpopular onion he's a dorky one outmoded tech amd10 -
I just got stood up by a hiring manager.
This person emailed me directly and said (paraphrased) "I found your resume on StackOverflow and you look perfect for a lead software engineer position at [semi-big-name company]. [...] If you're interested, book some time on my calendar for a call."
So I did, and got a confirmation back. Exciting!
I called into the hangout conference at the specified time, and... well, so far it's been twenty-three minutes of listening to some faux-melodic chimes and Google's faux-soothing voice saying "You have joined the call but you are the only one here!"
ugh.
the search continues.rant stood up again if you look to your left you will see root's job safari adventures easy way to tell i shouldn't work there chris the blithering idiot4 -
Had a great day yesterday. Productive, happy, felt great, and was focused despite a lot of cute distractions. Finished a third of my feature.
Today, I wanted to start work early because I had planned out what I wanted to work on next and how to approach it. I felt motivated. I’d jump out of bed, get ready, and start early. No breakfast but maybe some coffee.
Woke up to two hours of constant distractions, irritations, and time wasting instead. Anger. Everything sought to prevent me from starting.
When I finally got to work, the first thing I saw: political warmongering bullshit.
Guess I’m not getting much done today.13 -
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg."
Bjarne Stroustrup -
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 -
Installed an SSH server on my desktop so I can use the shell from my laptop...while still sitting in front of my desktop. Keyboard is less than a foot beyond my reach because leaning back, but laptop is in reaching distance.
Still have that SSH server up for mainly the same reason. Decided to also open it to WAN so I can do shit while I'm not home too.4 -
So, I'm using a new MacBook Air (running Sierra), and while I'm still getting used to it (especially the different Sublime hotkeys), overall it really is quite wonderful. I particularly love the magic touchpad and ease of scrolling/swiping between desktops.
However, I ran into an issue this morning that gave me pause: apparent file caching.
My webpack setup auto-compiles my project when files change, and I noticed something was causing errors -- not really surprising since I was in the middle of fixing the project last night. However, the error it displayed wasn't something I was expecting, and referenced a line I was positive I had removed several hours before calling it a night. Whatever, I was probably mistaken, so I went to remove it.
... It wasn't there.
I double checked that I was looking at the right file. Yep, src/styles/header.scss -- that's the correct file. Figuring webpack was acting up, I killed and restarted it.
Same error.
So whatever, maybe Sublime cached it. Rather unexpected, but possible, and I am on a mac now... so maybe. So, I closed the file and reopened it. The line wasn't there. I did this twice more. It STILL wasn't there. Maybe I'm going crazy...? I checked the file with cat. The line was there. I checked with vim. The line was still there.
OKAY. I've seen a lot of people with beef with Sublime, and I often defended it. but maybe they're actually right. maybe Sublime really isn't the way to go. :( So, I killed and reopened Sublime, and I checked the file again.
The line STILL ISN'T THERE.
Maybe I'm going crazy? I double, triple, quadruple checked the path. all correct.
Alright; let's try again and make sure I do it properly. I closed everything I had open in sublime (two projects), and quit. I reopened Sublime, navigated to the correct path, and reopened the file...
The offending line STILL wasn't there.
I'm angry at this point and just mash the keyboard. I save the resulting garbage, and cat the file again. No visible changes.
KAJSFLK STUPID PIECE OF <redacted>
okay, whatever. Reboots fix everything, right? So I reboot, and keep the option to re-open everything again ticked.
The terminal comes back up, along with half(?) my browsers, but Sublime doesn't. grrrrrrr.
so I cat the damn thing.
GUESS WHAT.
THE GARBAGE IS THERE.
Sublime was doing its job. BUT EVERYTHING ELSE FAILED.
(Oh Sublime, why did I ever question you? 💚)
... but seriously, what the fuck could have caused that? Was the OS caching the file for some programs, but not others? Now I'm questioning the macbook...23 -
Pointers in C. You love'em or you hate'em. A lot of room to shoot ourselves in the foot or hang ourselves. Or doing both because someone thought it would be genius to tie the guns to the rope.2
-
Just found an admin portal online. There was a modal asking for password, but in background the portal was visible. ctrl + shift + i and then closed the modal.
Voila, the whole portal and actions are accessible. Seriously, who develops things like these?
I am pretty sure it's vulnerable to sqli and xss too.8 -
Material-UI.
I'm exhausted, so I'll keep this short.
I changed a TextField to a TimePicker, and noticed my className prop didn't apply anymore.
I thought it was my mui/redux-form wrapper for that component since I had just written it, but that was basically a straight copy/paste from the other wrappers, and both receives and passes the prop just fine.
After a lot of fighting, I finally found a workaround: if I add a `data-work-you-piece-of-garbage` prop alongside it, only then will the className show up on the rendered element. Why? I have no freaking clue. I tested it three times and got the same results. I looked through the MUI source and it still doesn't make any sense.
Fucking whatever, only three hours wasted.13 -
!programming
Anyone else gets peeved when you're insulted in a language your insulter thinks you don't speak?
I was at the indoor climbing gym, struggling halfway up a difficult route when a fat idiot attached to a 'Intro to Climbing' class howled to her friends "Look at that blind idiot, can't he see that big red piece beside his foot?" (I was climbing a green route) in Cantonese (a Chinese dialect).
😒9 -
Ticket: Allow merchants to customize how their Wallet Passes look! It’ll be super easy, just add these nine merchant-modifiable strings (they support vars) and use their contents for text instead of what we use now. Simple!
Reality: There need to be 24 strings, there are some rules I can’t convey to the merchant (because the system literally does not include instructions, only a name and a textbox), the code to generate the wallet pass is inefficient, uncommented, branching spaghetti that I’ll need to rewrite (it seriously generates every possible field, and then only uses the ones it needs), the specs are so much worse, and half the default values they want aren’t even possible. As in, I don’t know if it’s a car loan, let alone the exact make and model of the bloody thing.
And no, sorry, we have no way of knowing what their fucking “vertical” is, either, so we can’t display that. Fucking sales.
Asdhkjfsjfads
WHY MUST EVERYTHING SUCK7 -
!dev
!!vodka!
!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! ^^7 -
!rant
... ahem.
I CAN TYPE IN THE BOX
AND IT SHOWS UP
AND IT STAYS THERE
WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!6 -
After completing my sprint and some lingering stuff in the backlog
Me: Hey, there's this tiny feature people have really requested, I'll go build it since I got nothing else to do at the moment. It'll only take like 1h
PO: Hmm ok. Don't work on that yet, we need to check with business people and agree on the user stories and bla bla bla
Me: Ok, well there's these bugs I can take care of then, I'll get them fixed, won't be long.
PO: Hmmm, we need to measure the impact first. Let me get back to you on that a bit later
Me: Meh, oh. I'll refactor this bad component meanwhile then.
PO: Have you created a story for that in JIRA? Create the story first and then we'll groom it and take it in when we've time
Me in my head: Dafuq! Im trying to work on your fucking project but you keep throwing all that business bueraucracy shit at me. What am I supposed to do then? Sip coffee in the kitchen and talk about the other fucking billion failed "new business opportunities" with my peers? Fuck this circle jerk of a billion management people all trying to make themselves important. Nothing. Ever. Gets. Fucking. Done!!!
Me: Ah right, I'll do that *proceeds to the water cooler*5 -
If your site asks me to log in and doesn't implement OAuth with Google or at the very least Facebook then go fuck yourself.
I have enough usernames and passwords in my head, I don't want more.10 -
If you're so fucking mentally lazy that you can't write something halt-decent the first time, maybe you shouldn't write anything at all!
hsdkghajsghasldghj
HATE9 -
> pic related
This is what I've been putting up with on my personal machine for months.
tl;dr: Suggestions for a wlan card/adapter for Debian9? My current RealTek wnic is barely functional, and my replacement (a TPLink... something) is completely incompatible.
I don't need anything super fancy, though I would ofc love support for AC/AD if at all possible.
I don't care (too much) about price, since I'm only going to buy one and very likely won't replace it for years.
------
I'm running Debian9 and have a have a RealTek card. Even when it's not arbitrarily dropping packets like in the screenie, it randomly caches them for up to 90 seconds and dumps them hilariously out of order. I can't play games like that. I can barely even browse devRant. Steam goes offline about once every 30 seconds, and therefore spams all of my friends with online/offline notifications. Streaming "works" on good days. Git works fine, however, so most days I don't notice the connection issues.
And yes, I'm using a community-patched driver (rtl8188ce) that's supposed to fix some of RealTek's more major screwups and increase the transmit power by ~20x. The driver helps, but only a little.
I've done some reasearch on wlan linux support, but haven't found anything very reassuring. Mostly just forum posts saying things like "Intel cards usually work fine!" I don't want to gamble. I just want to buy a card that will work and be done with it. :(
Suggestions? Insight?10 -
I'm investigating PRs for a super legacy codebase. Someone else already approved the PRs -- somebody who has never even run the code or had the project set up before.
The codebase hasn't been touched in two years, and it hasn't been updated in four. It's using CoffeeScript, Node v0, Electron v0.30, and Angular 1.x. I obviously don't have a dev environment anymore, either, and my previous dev env was on Windows, so I'll have to translate my custom build utilities from batch to bash (or much more likely: node).
To make matters worse: the PRs break both the initial project setup and the project itself (NPM can no longer find some installed packages, among other problems). And. someone already merged them into master. So: fuck.
I'm going to yell at the author and tell him to fix his shit. Why? Because when I check out my last commit prior to his PRs, everything works perfectly. Surprise!
I was so done with this project two and a half years ago. I'm still so done with it. I just don't want to maintain this anymore, or honestly even look at it. I would happily rebuild the project from scratch, but updating it from the days of IE8? No way.9 -
On Python,You create a gun module, a gun class, a foot module and a foot class. After realizing you can't point the gun at the foot, you pass a reference to the gun to a foot object. After the foot is blown up, the gun object remains alive for eternity, ready to shoot all future feet that may happen to appear.1
-
So I'm back from vacation! It's my first day back, and I'm feeling refreshed and chipper, and motivated to get a bunch of things done quickly so I can slack off a bit later. It's a great plan.
First up: I need to finish up tiny thing from my previous ticket -- I had overlooked it in the description before. (I couldn't test this feature [push notifications] locally so I left it to QA to test while I was gone.)
It amounted to changing how we pull a due date out of the DB; some merchants use X, a couple use Y. Instead of hardcoding them, it would use a setting that admins can update on the fly.
Several methods deep, the current due date gets pulled indirectly from another class, so it's non-trivial to update; I start working through it.
But wait, if we're displaying a due date that differs from the date we're actually using internally, that's legit bad. So I investigate if I need to update the internals, too.
After awhile, I start to make lunch. I ask my boss if it's display-only (best case) and... no response. More investigating.
I start to make a late lunch. A wild sickness appears! Rush to bathroom; lose two turns.
I come back and get distracted by more investigating. I start to make an early dinner... and end up making dinner for my monster instead.
Boss responds, tells me it's just for display (yay!) and that we should use <macro resource feature> instead.
I talk to Mr. Product about which macros I should add; he doesn't respond.
I go back to making lunch-turn-dinner for myself; monster comes back and he's still hungry (as he never asks for more), so I make him dinner.
I check Slack again; Mr. Product still hasn't responded. I go back to making dinner.
Most of the way through cooking, I get a notification! Product says he's talking it through with my boss, who will update me on it. Okay fine. I finish making dinner and go eat.
No response from boss; I start looking through my next ticket.
No response from boss. I ping him and ask for an update, and he says "What are you talking about?" Apparently product never talked to bossmang =/ I ask him about the resources, and he says there's no need to create any more as the one I need already exists! Yay!
So my feature went from a large, complex refactor all the way down to a -1+2 diff. That's freaking amazing, and it only took the entire day!
I run the related specs, which take forever, then commit and push.
Push rejected; pull first! Fair, I have been gone for two weeks. I pull, and git complains about my .gitignore and some local changes. fine, whatever. Except I forgot I had my .gitignore ignored (skipped worktree). Finally figure that out, clean up my tree, and merge.
Time to run the specs again! Gems are out of date. Okay, I go run `bundle install` and ... Ruby is no longer installed? Turns out one of the changes was an upgrade to Ruby 2.5.8.
Alright, I run `rvm use ruby-2.5.8` and.... rvm: command not found. What. I inspect the errors from before and... ah! Someone's brain fell out and they installed rbenv instead of the expected rvm on my mac. Fine, time to figure it out. `rbenv which ruby`; error. `rbenv install --list`; skyscraper-long list that contains bloody everything EXCEPT 2.5.8! Literally 2.5 through 2.5.7 and then 2.6.0-dev. asjdfklasdjf
Then I remember before I left people on Slack made a big deal about upgrading Ruby, so I go looking. Dummy me forgot about the search feature for a painful ten minutes. :( Search found the upgrade instructions right away, ofc. I follow them, and... each step takes freaking forever. Meanwhile my children are having a yelling duet in the immediate background, punctuated with screams and banging toys on furniture.
Eventually (seriously like twenty-five minutes later) I make it through the list. I cd into my project directory and... I get an error message and I'm not in the project directory? what. Oh, it's a zsh thing. k, I work around that, and try to run my specs. Fail.
I need to update my gems; k. `bundle install` and... twenty minutes later... all done.
I go to run my specs and... RubyMine reports I'm using 2.5.4 instead of 2.5.8? That can't be right. `ruby --version` reports 2.5.8; `rbenv version` reports 2.5.8? Fuck it, I've fought with this long enough. Restarting fixes everything, right? So I restart. when my mac comes back to life, I try again; same issue. After fighting for another ten minutes, I find a version toggle in RubyMine's settings, and update it to 2.5.8. It indexes for five minutes. ugh.
Also! After the restart, this company-installed surveillance "security" runs and lags my computer to hell. Highest spec MacBook Pro and it takes 2-5 seconds just to switch between desktops!
I run specs again. Hey look! Missing dependency: no execjs. I can't run the specs.
Fuck. This. I'll just push and let the CI run specs for me.
I just don't care anymore. It's now 8pm and I've spent the past 11 hours on a -1+2 diff!
What a great first day back! Everything is just the way I left it.rant just like always eep; 1 character left! first day back from vacation miscommunication is the norm endless problems ruby6 -
When your specs simply won't run new code no matter what you do, non-conditioned (and unmodified) calls don't get called, and 2+2 somehow equals Q, you know it's time to give up and restart the simulation by going to bed.
Except it's early afternoon and the project deadline is tonight. 😔
Back to debugging reality.11 -
I tried writing this rant before, but I was (and still am) in too good of a mood so it was lengthy, meandering, and over-specific. so I'll summarize(ish).
summary:
* miscommunication
* working weekends
* incompetence and/or screwy integrations
summary of the summary:
* I can't fix someone else's mess if you don't talk to me!
Summary^3: #TODO: learn telepathy
Shortened rant:
Bossman at work signed up a very lucrative client by promising them something he couldn't deliver because he misunderstood and miscommunicated scope -- anti-fraud, if you've been following my rants.
Their signup (all four...) are screwy and cause issues and nobody knows why. I didn't write the code, have barely even glanced through it, and it uses a third-party (Clover) that's rather screwy.
Bossman has been asking me to do various things concerning the merchant, but has never been around to provide specifics, so I'm left to guess. I've done my best, but due to the aforementioned screwiness, I really have no idea what's going on. I just sort of muddled my way through.
Bossman also asked me, super late on Friday night (after 8:30pm), to rename one of the merchants because there are two with the same name (with different Clover creds, etc.) and that's just confusing. I didn't see the message because late and tired, and he didn't follow up or text/call me until two days later (today, Sunday). I also thought these were strictly for diagnosing and were de-listed. I had no idea the merchant was live and people were actually purchasing things for it. Had I known this I would have freaked out and demanded specifics on Thursday/Friday because wtf? debugging in production? with broken merchants? selling things for real money? scary bad? hello?
Anyway, I didn't see his message until he texted me about it at like 5pm today while I was about 2 hours from my computer. He's understandably frustrated, and I totally don't blame him, but fuck, miscommunication is a serious problem in this company, and that's amazing because it's so freaking small.
But the short version is that I'm likely going to get blamed for all this, Clover screwiness included. Bossman and I set up a call for 10am tomorrow and I'm positive he's going to try pinning it on me. Totally not going to let him, but his social is lv16+ while mine's like. 2 or 3. 😕 I'll see how it goes.
Really though, I should read @rutee07's book and just roast these fuckers.rant weekend work debugging in production miscommunication no call no text still my fault hope you see this it's urgent clover strip club3 -
Stupid javascript.
Stupid hoisting-oblivious "frontend devs."
Stupid browser-specific javascript behavior.
Stupid thrown-together javascript minifier that literally only strips out whitespace and comments.
Stupid poorly-written javascript spamming my api.
Time to rewrite it. Grumble grumble. Soo not how I wanted to spend my morning-turn-afternoon.
Leading to the last but not least:
Stupid me forgetting javascript's quirks.12 -
me : Why are fire trucks red?
Bot : Because they have eight wheels and four people on them, and four plus eight is twelve, and there are twelve inches in a foot, and one foot is a ruler, and Queen Elizabeth was a ruler, and Queen Elizabeth was also a ship, and the ship sailed the seas, and in the seas are fish, and fish have fins, and the Finns fought the Russians, and the Russians are red, and fire trucks are always "russian" around.(according to the Monty Pythonesque application of the principles of logic and etymology)
😳😳😳6 -
Don't fall asleep doing dev work. Your laptop may migrate while you sleep and drop on your foot the next morning as you pull yourself out of bed. 13" MBP at 3 feet vs my foot.4
-
Poorly written docs.
I've been fighting with the Epson T88VI printer webconfig api for five hours now.
The official TM-T88VI WebConfig API User's Manual tells me how to configure their printer via the API... but it does so without complete examples. Most of it is there, but the actual format of the API call is missing.
It's basically: call `API_URL` with GET to get the printer's config data (works). Call it with PUT to set the data! ... except no matter what I try, I get either a 401:Unauthorized (despite correct credentials), 403:Forbidden (again...), or an "Invalid Parameter" response.
I have no idea how to do this.
I've tried literally every combination of params, nesting, json formatting, etc. I can think of. Nothing bloody works!
All it would have taken to save me so many hours of trouble is a single complete example. Ten minutes' effort on their part. tops.
asjdf;ahgwjklfjasdg;kh.5 -
This feature I'm building requires crossing over to a second application for some actions (fair, this reduces repetition), but the method used for it is kind of ridiculous.
To keep with the existing patterns, I followed suit, and added two PATCH and a DELETE routes, wrappers, and calls. (Typical CRUD + de/reactivate).
But. This freaking halfassed HTTP model doesn't support anything but POST and PUT! wtf. (Also, the various IDs, naming schemes, and required json data/formats differ across view, controller, and endpoints. but whatever?)
Two and a half hours later, and the feature is done and works wonderfully. Four times the functionality of the previous incarnation, and the code is only about 25% longer! haha.
Ahh, I'm complimenting myself again. (but somebody has to, right? 😅)
but really, when i want to get something done i'm actually surprised at how quickly it all comes together. Even when I need to patch API Guy's madness.
(and this time I actually found someone else's code in the mess! It was actually worse!)
I suppose taking a day off yesterday did me some good.rant double entendres are the best rest after rest root compliments herself expanding someone else's crud1 -
1) Schedule an hour for the meeting.
2) Tell attendees that any excess time will be for SSBB throwdowns. Fastest meeting ever.
Oh, you asked about being productive?
Making both Adam from frontend and Karen from HR cry at the same time is productive enough for me. 😊4 -
My phone is finally giving up.
It's broken beyond repair, and the screen is starting to fail completely. I managed to fix it enough to pull my data off, and post this.
It's been my reliable companion for years, and we've gone through a lot together. You will be missed, Glassy. 🙁12 -
After eating nothing but fresh food/ingredients for the past year, I ordered a carne asada burrito from Cafe Rio. I remember liking them, and it tastes just like I remember, but I'm amazed at how little flavor it has by comparison. It's maybe a third as flavorful as my salads? A quarter? ☹
Eating well really spoils you.7 -
So I asked my company's tools team to fix a bug in their tools related to testing a major feature of our project. They downgraded it to "low priority" because it's "user-specific". I asked how can this be user-specific when it's a major feature. They came back with "well, you're the only one testing it"... Right...
-
I’m trying to add digit separators to a few amount fields. There’s actually three tickets to do this in various places, and I’m working on the last of them.
I had a nightmare debugging session earlier where literally everything would 404 unless I navigated through the site in a very roundabout way. I never did figure out the cause, but I found a viable workaround. Basically: the house doesn’t exist if you use the front door, but it’s fine if you go through the garden gate, around the back, and crawl in through the side window. After hours of debugging I eventually discovered that if I unlocked the front door with a different key, everything was fine… but nobody else has this problem?
Whatever.
Onto the problem at hand!
I’m trying to add digit separators to some values. I found a way to navigate to the page in question (more difficult than it sounds), and … I don’t know what view is rendering the page. Or what controller. Or how it generates its text.
The URL is encrypted, so I get no clues there. (Which was lead dev’s solution to having scrapeable IDs instead of just, you know, fixing them). The encryption also happens in middleware, so it’s a nightmare to work through. And it’s by the lead dev, so the code is fucking atrocious.
The view… could be one of many, and I don’t even know where they are. Or what layout. Or what partials go into building it.
All of the text on the page are “resources” — think named translations that support plus nested macros. I don’t know their names, and the bits of text I can search for are used fucking everywhere. “Confirmation number” (the most unique of them) turns up 79 matches. “Fee” showed up in 8310 places before my editor gave up looking. Really.
The table displaying the data, which is what I actually care about, isn’t built in JS or markup, but is likely a resource that goes through heavy processing. It gets generated in a controller somewhere (I don’t know the resource name so I can’t find it), and passed through several layers of “dynamic form” abstraction, eventually turned into markup, and rendered as a partial template. At least, that’s how it worked in the previous ticket. I found a resource that looks right, and there’s only the one. I found the nested macros it uses for the amount and total, and added the separators there… only to find that it doesn’t work.
Fucking dead end.
And i have absolutely nothing else to go on.
Page title? “Show”
URL? /~LiolV8N8KrIgaozEgLv93s…
Text? All from macros with unknown names. Can’t really search for it without considerable effort.
Table? Doesn’t work.
Text in the table? doesn’t turn up anything new.
Legal agreement? There are multiple, used in many places, generates them dynamically via (of course) resources, and even looking through the method usages, doesn’t narrow it down very much.
Just.
What the fuck?
Why does this need to be so fucking complicated?
And what genius decided “$100000.00” doesn’t need separators? Right, the lot of them because separators aren’t used ANYWHERE but in code I authored. Like, really? This is fintech. You’d think they would be ubiquitous.
And the sheer amount of abstraction?
Stupid stupid stupid stupid stupid.11 -
!rant
!!devRant
Is it just my device, or are images not loading?
I've seen maybe ten image posts today, and only the Firefox one would load.4 -
So I had to use office and image editing tools on Linux today.
Holy mother fucking god are these things awful. Gimp, pinta, gnome paint, libre office, open office... they seem like a project some guy threw together a weekend in his bedroom. The UX is shite and makes 0 sense. They crash and lag all over the place. For fuck sake!
Also... Gimp, libre office and open office. If you want to make an alternative to a well known product (Photoshop and MS Office in this example) then just fucking copy the god damn UI as much as you can. No-one is going to go learn your fucking half ass product, people only use this shit because it's free and available on Linux.
I swear, I seriously considered sending the images to my phone and just fucking edit them there because it would have been so much easier than using this pile of shit.
Fuck!!!28 -
So at the end of February, my 8 year marriage met it's catastrophic end and I had to immediately relocate, with nada, to a state I've never before set foot in. I was hoping to find an entry level tech position, as I am largely self taught and don't have any certs. So far nothing. I spent 7 years as a cable tech, have to wait another few months to apply at the cable company, but everywhere else tells me I'm overqualified, or need certs/experience in the field. It's a bit discouraging. That's it. Rant over.4
-
Cool, so it looks like updating my nVidia drivers somehow killed LUKS on my machine? or whatever happens immediately after decrypting the volume group; honestly can’t tell.
To the uninitiated, this means my machine no longer boots. Like, at all.
Looks like I’m spending tomorrow reverting. 😕10 -
I'm looking forward to natural language programming.
The ability to code by explaining what you want to happen and having a neural network work out the fine details in an optimal fashion with evolutionary techniques.
I look forward to the super AI. I don't think they will necessarily be evil, however above a certain point we would seem like ants to them... And when was the last time you checked if there was an ant where you were to put your foot? It's not malicious... It's just not worth your or their time.29 -
My rants have been too long lately. Have some distilled ire instead.
Fuck computer gremlins.
Fuck non-deterministic BS.
Fuck shit working the third fucking time I try it with no changes in between.
Fuck MojoJojoing
Fuck ExecJS laoding only half the time
Fuck RubyMine for fucking up seven times a fucking day.
And fuck this dev environment!
I just want to fucking work!
adfjlkasdly15 -
Everyone says "don't lie, don't bluff", but all those years ago I put my foot in the door and got my first ever dev job by pretending I knew what JavaScript was. It all worked out in the end.2
-
This is a followup to my earlier RealTek networking rant.
After reviewing and researching all of the wlan adapter suggestions on that rant, as well as a few more, I settled on an Alfa AWUS036ACH usb3 wireless-ac adapter. Every Alfa I've ever owned has been amazing, so I happily bought it.
It arrived today, and I excitedly threw my existing RealTek garbage across the room, hooked up my fancy new toy, and... nothing.
Fearing it was doa, I ran `lsusb` to see if it was even showing up... and it was! but identifying itself as a RealTek device...?
All of my research showed it uses the Atheros9k chipset. It's advertised and praised as using the "famous Atheros AR9271 chipset" and the Ath9k drivers. Except this particular unit appears to use the RTL8821AU chipset, therefore requiring RealTek drivers. askfja;sldf.
I unhappily fetched the garbage from the dirty laundry where it landed, installed it, and began my research anew.
I found, among all of the wonderful promises of Ath9k bliss, a thread on the Kali forums corroborating the RealTek driver nonsense, and it explained how to get the RTL8821 drivers working with it. which is pretty much the very last thing I want to do.
If you've read any of my networking rants, well, they've all been about how totally awful RealTek linux drivers are, and that's pretty much common knowledge anyway. So I'm like extremely pissed off.
ARGH WHY IS NETWORKING WITH LINUX ALWAYS SO FREAKING DIFFICULT? haslkfjasgdskg6 -
If you ever get an idea for an OpenCV project: shoot yourself in the foot, drink some bleach, do whatever it takes to get it out of your head, because it will all be less painful than the python docs for cv2.3
-
I want a KVM switch for sata cables. That way I could switch between ssd’s without having the other visible.
Win10 could no longer randomly rewrite the boot loader(s) or wipe my Linux drive.
I’m not a fan of win10, and don’t currently have it installed, but might cave for a few rare games that I can’t get working via proton.31 -
So Google, Microsoft, Facebook, Amazon and many others just gave $50mil (each) for CS education in USA. The program is intended to help minorities and kids in highschool learn coding.
That's pretty awesome. Say what you will about these companies but they do some really great things sometimes.
Also, Ivanka Trump was helping this along. I'm not a fan of the trump administration but still, that's awesome!7 -
!rant
I need to pick a CSS framework for a[n eventually very large] React/React-native project at work. Any suggestions?
While I'm very good with CSS, nobody else is,
and eventually everyone is going to be touching the project, so it needs to be pretty easy to use.
I'm thinking of picking Bulma, or one of the newer, lighter frameworks, but I just don't know. (I'm also getting a lot of pressure to pick Bootstrap3 so we can... copy tables from unrelated sites? I guess? idgi)
Anyway, I have until Wednesday to completely convert over (it'll take me a day), and I still don't know what to pick yet.
Suggestions/advice welcome!23 -
When your already coding something boring and your foot hits the switch on the power cord under your desk...2
-
!rant Yesterday, I picked up a plate with a single fork on it and managed to drop the fork in such a way that it landed on my foot and drew blood.
How y’all doing?8 -
This week's sprint:
Bugs that cannot be reproduced
Features that are vague as shit
Man fuck this week...1 -
Company top execs: "We need to optimize our costs and reduce our expenditure by x€ to keep the profit margin at acceptable levels for the shareholders"
YOU ARE PUSHING OUT SHIT PRODUCTS DAY IN AND DAY OUT THAT YOU FUCKING SUITS THINK WILL BE THE NEXT BIG THING BUT NOONE REALLY WANTS OR NEEDS. WE ALREADY HAVE A TON OF THOSE BORN-DEAD SHITCAKES HANGING AROUND ABD NEW ONES ARE ALREADY BEING PREPARED FOR LAUNCH.
"OPTIMIZE COSTS"? HOW ABOUT YOU STOP PRODUCING SHIT AND STICK TO YOUR FUCKING CORE BUSINESS MODEL!!!
"OPTIMIZE COSTS"? WE HAVE A ZERG OF OLD FUCKS, WHO ARE STILL WAITING FOR THE FUCKING SMS TO START THE NEXT TECH REVOLUTION, ON OUR PAYROLL. ALL THEY FUCKING DO IS PLAY SUDOKU IN THE KITCHEN AND DISCUSS TECHNIQUES ON HOW TO RAISE GOATS!!!
"NO MONEY TO GIVE A PAYRISE TO DEVELOPERS"? WHY DONT YOU JUST FUCKING GET RID OF THE USELESS DUDES BASICALLY DOING THEIR TENURE AND CLOSE SOME OF THESE FUCKTARDED PRODUCTS THAT 4 PEOPLE OUTSIDE OF THE FUCKING COMPANY USE BUT NEED A TEAM OF FUCKING 20 TO MAINTAIN! NO!!! THEY WILL NOT BE THE NEXT BIG THING! NO!!! ANYTHING YOU SHITCAKES WHO THINK MOBILE APPS IS THE "NEW EMERGING MARKET" WILL EVER CREATE THE NEXT FUCKING BIG THING!!!!!
STICK TO YOUR FUCKING BUSINESS AND STOP CREATING USELESS SHIT THATS MAADE BY FUCKING USELESS PEOPLE!!!!
FUUUUUCCCCCKKKKKK!!!!!!!!!!! -
!dev
What kind of a motherfucking city is this! (Mumbai) Every fucking road has a shit ton of traffic and no one gives a shit about people walking nearby. An asshole drove over my foot while I was crossing the road, motherfucker. Traffic signals not working, no traffic constables to see anything. And people talk and keep telling this is the spirit of Mumbai. Shitty infrastructure is the spirit of Mumbai. Fuck everyone!6 -
My preferred stack is Rails/NginX/Postgres, or Node using the same.
I have a fair amount of material for this week's rant, but in my stack's defense, the quantity is primarily because I've been using it for so long, and I'm apparently a talented breaker. I may share other stories if the motivation arises.
However, today I ran into something definitely deserving of calling out.
The default datatype for a Date+Time column in Postgres is `datetime` which means "date+time without timezone". (while `datetimetz` instead stores the timezone).
Apparently when comparing a datetime with a datetimetz, Postgres doesn't compute the timezone difference correctly, leading to some very unexpected and confusing query results.
Today, I had a record that was both pending (expires_at > now) and expired (expires_at <= now), where now is a DateTime (with tz) literal from Rails. After half an hour's frustrated delving and baffled expressions at query results, I finally figured out that the database's math was incorrect when comparing UTC (+0) and PST (-7).
This during a semi-high-priority bugfix that's blocking for a coworker.
While Time and all of its nuances are honestly extremely difficult to handle correctly, I didn't expect Postgres to get this relatively simple part wrong.
Shame on you, Postgres.
I expected better.3 -
I need a hobby or someone to yell at me until I take a break from working all day every day.
Then again if I had a home office I probably wouldn't need to put in 12 hours to get 6 hours of work done.
But I still need something to do besides work and family. And someone to kick my butt until I do it and relax.9 -
Does anyone know of any good audio book sites besides audible? Free ones are good too, of course, but I don't mind paying for them.
Likewise for a good player, since books aren't music.13 -
Mac: If you try to shoot yourself in the foot, you find out the OS has removed the firing pin from the gun.
Windows: If you try to shoot yourself in the foot, the OS will wrestle you to the ground. You may shoot yourself in the foot, you may shoot yourself in the gut, you may not shoot yourself at all, but they do try.
Linux: If you try and shoot your self in the foot, the OS would like to politely remind you we have *much* bigger guns available - try one if these!4 -
A mosquito got into my room the other night and feasted on my foot for 9 hours. I could hardly walk the next day, and the itching was insane. I couldn’t go to sleep the next night I was so absorbed by my fixation on finding him. Eventually I barricaded myself with blankets. The one time blankets will actually protect you.3
-
It's so cold in the office that I want to work under my desk, next to my foot heater. Can't see the monitor from there, though.3
-
Doing and Code Review today... Not sure if this guy has really bad OCD, gets bored, or gets stuck and starts commenting the shit of things...
I'm not sure if I like it or hate it... typically "Good code should be self documenting" but this actually might be acceptable... code on the left, 10K foot view on the right?4 -
Terminator's broadcast feature is nice.
However, it's fragile as crap, and oftentimes sends duplicate characters, or adds garbage.
Quite awhile ago I posted a PSA on how to fix it (by killing ibus) but now it's broken for me again. And due to just how it broke, I've given up on fixing it. Instead of broadcasting one or two duplicate characters like before, it now hangs for many seconds because it's broadcasting THREE BLOODY MEGABYTES WORTH OF DUPLICATES with every keystroke.
Like, seriously?
How do you fail that hard?2 -
I’m working at an architecture firm these days, so I don’t have many “dev” stories to tell. However, I’d like to share this anecdote to reassure (or demoralize) you all that the kind of nonsense we’ve all dealt with as software developers isn’t limited to the software industry.
I’ve been working on a project to build townhomes and apartments on vacant lots in an urban environment.
Space is limited, so the client assured us early on that they would be centralizing all the mechanical equipment (water heaters, air conditioners, etc.) in the basement of each building. We finally got all the apartments laid out and presented them to the client last week. During that meeting, we get a casual “oh, by the way, we need a 3-foot by 3-foot mechanical closet in each apartment.” Did the project manager push back? Of course not. Have our deadlines been adjusted as a result of changing requirements? Don’t be silly! Starting tomorrow morning, the team gets to feverishly search for an extra 9 square feet in each of a couple dozen different apartment layouts that are already “cozy” in time to meet our next deliverable.
Clients suck.
Changing requirements suck.
Pushover PMs suck.
In every industry.2 -
Just drove to the store to buy a 40 foot long Ethernet cord so I could directly connect my computer to the router because Visual Studio is taking too long to download...4
-
I found this on a wiki with Haskell Humor... it's interesting...
How to Shoot Your Self in the Foot With Haskell: Putting the unsafe in unsafePerformIO!
You shoot the gun, but the bullet gets trapped in the IO monad.
Couldn't match expected type 'Deer' against inferred type 'Foot'.
While compiling your program the compiler produces a type error long enough to overflow a kernel buffer, overwrite the trigger control register and shoot you in the foot.
After trying to decipher the type errors from the compiler, your head explodes.
After you've finally found a way to circumvent the type system and shoot yourself in the foot, Oleg appears out of nothing and shoots you in the foot for coming up with it before him.
You shoot the gun but nothing happens (Haskell is pure, after all).
Your foot is fine, until you try to walk on it, at which point it becomes mangled.
You have a shootFoot function which you've proven correct. QuickCheck validates it for arbitrary you-like values. It will be evaluated only when you end up at the hospital. You hope this doesn't come to pass, as it actually returns a bullet-ridden copy of yourself and you don't want to be garbage-collected.
foreign import ccall "shootparts.h shootfoot" shoot_foot :: Gun -> Programmer -> IO ()
shootSelfInFoot = unsafePerformIO . shoot . foot $ self -- Shoot self in foot 0 or more times depending on evaluation order
No instance for (Target Foot)
arising from use of `shoot' at SelfInflictedInjury.hs:1:0
Possible fix: add an instance declaration for (Target Foot)
In the expression: shoot foot
You go to shoot yourself in the foot but the bullet is in the ST monad and the gun is in the IO monad, so you can't.
You ask Haskell to shoot you in the foot but by the rules of lazy evaluation you don't need the result yet so it doesn't happen.
You decide to shoot yourself in the foot but get distracted devising a ballistics algebra and wondering if you can do the calculations in the type system.
You want to shoot yourself in the foot but realize there is no Gun datatype so use Arrows instead.
You shoot in the direction of your foot, but since you are inside the STM monad you can just retry until you figure out what to do.
You shoot yourself in the foot, but you are perfectly fine as long you just don't evaluate the foot.
You shoot yourself in the foot, but nothing happens unless you start walking.
Don't forget about memory consumption! If you don't look, the bullet causes heap overflow. If you look, the bullet causes stack overflow.
You *appear* to have deliberately shot yourself in the foot, and yet your program actually runs perfectly OK due to lazy evaluation. (So long as you remember to not look at your foot...)
You aim the gun at your foot, pull the trigger and remove the clip. When you look at your undamaged foot, the hammer clicks on an empty barrel.1 -
Phone rings...
'I'm calling about the car accident you had recently that wasn't your fault.'
Me: 'Yup, ok. I'm surprised at how quickly you got through!'
Them: 'Could you tell me when the accident was?'
Me: 'This morning before work'
Them: 'And whereabouts did this happen?'
Me: 'My living room'
Them: 'That's strange. Were you driving at the time?'
Me: 'No, I was on foot, I generally am in my living room.'
Them: 'Were you injured?'
Me: 'I sustained some pain in my foot'
Them: 'So you were hit by a car? Do you remember the make and model?'
Me: 'Yes, it was a red Ford, but I'm not sure which model.'
Them: 'Did you get the registration number?'
Me: 'I'm not sure it had one. The car was quite small'
Them: 'Did you get the driver's name?'
Me: 'It was James Jones'
Them: 'Could you describe the driver?'
Me: 'About two foot tall, blonde hair, green top, dungarees'.
Them: 'Did you know the driver?'
Me: 'Yes, he's my two year old son'
Them: ...(click)... -
When company invites to wiesn/octoberfest and every employe gets a beer and foot Flatrate. Thats one of those moments where i think "being programmer was the best decision in my life"5
-
When the QA reproducible steps might as well include all or one the following:
1. Stand upside down.
2. Wait till the moon turns red.
3. Hop on one foot. -
The amount of icons on my Desktop is directly related to my likelihood of leaving a company. If I stop caring enough for my entire Desktop to fill up, then my foot is already out the door.1
-
I want to light this project on fire and walk away. Nothing is making any bloody sense.
According to specs, It’s updating a google wallet object via api, but isn’t generating the data to send along, despite every possible code path hitting that first. It also apparently isn’t calling any of the methods along the way. Obviously this is false, but that’s what the specs are reporting.
It’s also updating the object when nothing has changed. That might be, but shouldn’t, because I can see it calling the `should_update?` method which returns false, and it nopes out after that. so wth.
I’m so ready to never see this craziness ever again.
wtb kerosene or Greek fire pot, good price, pst. open to trade5 -
Lost control while standing in the train when it started moving. Stomped in a girls foot in the process.
If she had devRant I am pretty sure she would be ranting about me :(6 -
Forcing to use OOP on golang is like use basketball shoes on the right foot and ballerina shoes on the left foot
Ugly -
Siting on my balcony, watching the lights of our capital's downtown across the gulf. Life is good...
Man I love Sundays sometimes3 -
No matter what I try, I cannot get sharp text on my work macbook. When I use my external display for my editor, all of the text is slightly blurry and a pain to read, especially the tiny text in the status bar, which is just a fuzzy mess.
Like, I know why mac fonts are "fuzzy" -- it uses subpixel rendering to attempt to stay true to the font's curves, whereas e.g. windows tries to snap those curves to the pixel grid. So, on macs, fonts look amazing when they're normal to large, but small font sizes are just yuck. Windows is the opposite: small fonts look crisp and clear, and normal-sized fonts look.. okay.
but why can't OSX just switch between subpixel and snapping based on font size? i'm tired of reading blurs! it makes my eyes blur!12 -
So you all think that coffee is the best energy brewage? I can say that it isnt! At least for me...
I ate a dark chocolate bar a.p. 10pm yesterday and i couldnt even go to sleep. In the morning i have never felt so awake before and i managed to get to the lecture not on a tram but by foot...
Also my depression is gone and i want to fix my life4 -
Learn how to shoot yourself in the foot in various programming languages 😃
http://toodarkpark.org/computers/...4 -
I know this will most likely cause an uproar here but I actually prefer the products I use be profitable to the maker.
That's because if the maker of the product is making money on it (with a sustainable business plan) then there is a higher chance they'll keep developing it.
On the other hand, if the developer is working on it from his own free time with now monetary incentive then there is a high likelihood they'll stop when they run out of money or time or whatnot.
So all in all, a company developing a profitable product is the best bet for stability IMO6 -
So I went to take a look at Mozilla's "privacy not included" guide.
That's some good comedy right there, fucking rubber ducks that spy on you.
Jesus fucking christ -
Some say shooting yourself in the foot. What do you call a self-inflicting bug that costs you 3 work days in a team sprint?
-.-4 -
which one is better?
sitting on a comfortable chair with foot rest,
having very powerful computer,
having the best IDE's with UI designers,
ML based auto completions,
Free food. but $4000 per month
or
sitting on an average chair without foot rest,
having average computer,
having only notepad or vim*, without UI designers
NO auto completions!
paid food. but $40000 per month
* Vim is actually very nice text editor7 -
!rant
Just got told that there will be a 5KM run in march by my teacher.
I will either break my foot a day before or simply fucking refuse.
I'm ill enough already.6 -
I think I might need to own my own business and foot the bills. That way I can learn why it's a good idea to only focus on the short term costs and ignore the long term ones
-
What do you guys think about mercurial (hg)?
I think it has no place in a world where git exists and I prefer git.
Just wondering what the general sentiment is15 -
Hey I noticed this month devrant++ subscription is $2.12 on Google Play. The usual is $1.99.
Did anyone else notice? did Google start taxing subscriptions? That's sort of cheap of them... They already take a 30% cut and they can't foot the tax bill?20 -
Ah, the strange world in which a fresh Windows 10 install boots up roughly twice as fast as a fresh Arch-Deepin on the same laptop. Also noticed the same behaviour with Arch-GNOME 3. Guess I have to dive into configs to get the boot time down.1
-
My parents didn't mind. Since childhood, they used to tell me that I can choose my profession freely. I tried with medicine. Burned lots of €s and lots of time. And then switched to IT. Parents did not get in my way - on the contrary, helped me wherever they could. And allowed me to shoot my own foot whenever I was so stupidly determined to.
I believe it's the best kind of parenting -- allowing your children to make their choices, their own mistakes and learn from them while suggesting a piece of advice along the way. -
I work with a guy who is genius in his field, but doesn't have much ability outside of it, his view is we should all know what he knows and not bother him with bugs in his code we should fix the issues ourselves. Oh how the shoe was on the other foot when he needed help with a personal app.4
-
I was too concerned whether or not I should extend a feature, that I forgot to check if I could do so.
Now I've shot myself in the foot by breaking half of the feature and my only solution to make this work out as intented are quite ugly.
10/10 would do so again. Programming like a retard is the way hobby projects are meant to be. Best learning experience you could hope for.
Also, bless git for giving me a second chance in case I've gone full retard mode.4 -
!rant
We've got a small army of foreign contractors working with us both in the office and overseas. Syntax has become the thing that stands out to me the most. We can all speak the same language, but our partners don't quite have the syntax down, resulting in some rather amusing email exchanges. I can't fault them, if the shoe was on the other foot, I guarantee I'd be butchering any other language's conversational syntax. Overall, the experience has been a bit of an eye opener for me. -
I don't have many regrets in life but one would be that I didn't learn something harder at uni. I should have picked something like CS or cryptography or something like that. Even flat out math or physics would have been super useful.
On the other hand, the finance stuff I now see as common sense doesn't seem so common after all so there's that, and it helped me too.
I learned economics with specialization in finance btw2 -
It's so goddamn hard to get work on freelancer, upwork, people per hour sites when you're just starting, how are you meant to get your foot in the door when nobody fives you chance!5
-
So I created my first Babel plugin today.
I think I'm hooked. This stuff is really cool, kind of opens a whole new world for you ☺️6 -
As someone who has just finished a foundation degree in computer science, I'm really wanting to get 'my foot in the door' with the IT industry to start building my career that I'm so passionate about, but I just don't know where to start. Any recommendations in what level of jobs I should apply for/where to begin?3
-
10 Signs You Picked the Wrong ISP !!
10. Their company logo: two tin cans and a length of string.
9. You check out their address, and it's a phone booth containing a Compaq portable and an acoustic coupler.
8. Their chief technical officer lives in a 10-foot-by-7-foot shack in the woods.
7. Their proud boast: "We've been on the Internet since it was CB radio."
6. Their promo materials use the words "information" and "superhighway" in the same sentence.
5. You order an SLIP/PPP connection, e-mail, and 2MB of server space for your personal Web site, and the voice on the other end of the phone asks, "Would you like fries with that?"
4. "As seen in Better Business Bureau special reports."
3. "Access speeds up to 9,600 bps in most areas."
2. They hawk both domain names and Rolexes on street corners.
1. They charge by the word.2 -
I completed my driving test today. You're gonna want to read this whole thing about how it went.
I have attached a pic which highlights what you have to do in the car, to the pass the test.
And as if that wasn't easy enough already, my driving instructor sat beside me in the practice car where he had his own foot controls, handled it.
I swear I just sat in the driving seat with my foot doing nothing and my hands controlling the steering wheel. The test took a total of 45 seconds to complete.
I'm a little weirded out ngl.17 -
Every once in a while the flexibility of dynamic types comes back and bites you in the ars:
So I created method that returns the date significance (day, month, year) or null when no date is set.
I chose a class constant DAY with the value 0.
This is not a problem in if statements as I always use === but in this case a switch made more sense. And as you can guess no date set (NULL) was handled in the self::DAY (0) case... 😐😑😶 Silently resulting in wrong results when no date is given! #£#@$& (and other comic swearing symbols)
Even though php7 finally has decent type hinting resulting in much clearer defined API's we can still go very wrong.
More love to Go for less verbose static typing! To bad we can rarely use it at the office 😥2 -
I shot myself in the foot again!!
These incident usually happen at restless night.
Some night I become too restless so I do what any programmer would do, I program.
The "novel" idea just come up and I code until I become too tired. I usually finish the prototype of the project before I fell asleep.
I usually found out that I have reinvent the wheel the next morning! Great. My "novel" idea is not too "novel" after all.
It is hard to find the novel project these day since it is too hard to beat the decade of collective intelligence of programmer.8 -
Couple of advices from the QA guy
1) Don’t do the bare minimum bc the PM asks that. The people that write up the tasks/requirements don’t know their shit sometimes. Or even worse, they just copy paste what the client asked.
2) Confront the PM and ask more time to build something robust and scalable. When shit don’t work, people will blame the devs which is not fair. Is not easy but put your foot down when you’ve being asked to build shitty stuff bc the client want it ready now. -
Started at a shit position (throwing truck) with a company to get my foot in the door. dev position opened up, so I applied. Only to find out employees have to wait 90 days before they can switch departments... 😑😑😑
-
Boy, if that colleague next to me doesn't stop tapping his foot and bopping his head, definately a good old: "shutdown /s /c "Do you know how annoying you are!?!? /f" coming his way!
-
Recently had an issue with a staff person wanting me to deploy on a Saturday! They were so adamant about out that they began to escalate it to the president. I put my foot down knowing that I had the upper hand in this situation. They ultimately caved but for a brief moment I was like f#*k this $h!#. They can fire me for all I care. Then my friend sends me this: https://teespring.com/deploy/... made my day!3
-
"Some people want their paychecks and to go home, and that’s fine. You and me, though—we’re gonna work harder than they do. We’ll build things that ensure that entire populations just setting foot on the web for the first time can tap into the collected knowledge of the whole of mankind." - Mat Marquis
-
We are being run in a simulation. But the simulation is physical. We exist as humans being run on the simulation called Earth. Our brains are designed to interface to a hub. This brain power is used to do calculations for a much larger system. The benefit to using biological systems is they self repair and reproduce. This allows the simulations to scale over time.
Another benefit is we are creating all terrain vehicles (humans) for alien consciousnesses. Big foot is an upgraded atv for high mountain ranges.9 -
I'm getting 1960s vibes. Reddit has been blacked out since a couple of days because some entity wants to charge third party somethings lots of money. So, the abbatoirs are punishing the sheeple.
Can somebody explain this to me? My browser got hijacked by the af.xdock.co virus and reddit is my go to for solutions. Now I'm at the mercy of whomever is stomping their foot. I'm a very minor player on the stage of devrant, and I find more sense spoken on this site than anywhere else. Thank you10 -
Trying to move on from a job that got my foot in the door but has absolutely no possibility of helping me grow anymore. It's the worst. Feeling comfortable but knowing that you're not being challenged and learning and growing. I'M TIRED OF FIXING YOUR DAMN SCANNER OR PRINTER!1
-
Are there any working developers in Atlanta Georgia or surrounding areas, that knows if their company or organization is hiring. I am an entry level developer that is still in school and would like to get my foot in the door before I graduate.3
-
! Rant
For those who saw my rant the other day, here are my self taught android apps I made to get my foot in on Android Studio and Unity development. Critique, enjoy, provide feedback, ignore, or anything.
https://play.google.com/store/apps/...3 -
!rant
Can you buy ++ ? I saw something in the avatar creation menu. If you can, does it then show up next to your name or is it just used for avatar cuatomization?3 -
So being in ops, I have certifications in networking and Linux, and am currently working on my Certified Kubernetes Administrator exam.
I've been talking to a few "professional" (they have jobs) devs that I personally know, and with the exception of 1, it seems like version control, automation, networking, and server related tasks are beyond them.
As I want to get into the dev side of things (devops preferably), I feel somewhat overwhelmed at some of the requirements of the job, especially knowing that I cannot take too much of a pay hit as I have a family to support.
My question is this, based on real world experiences with hiring, how much weight do you think knowing your way around networks, cloud, virtualization, servers, and all of the other things ops does when it comes to getting your foot in the door for a dev job?
I've casually looked around, and it seems that getting the foot in from this side is almost impossible.2 -
Going to start making my final project of my degree (Portugal) with 5 friends in laravel to go on to a company.
I know I'm shooting myself in the foot, because in this group of 6, me and another will work, 2 of them will do nothing and the other two know litle or nothing...
I have 6 months to do it starting in September and I started doing it this week because I think I will have to do 4 people's work 😢😢😢😢😢6 -
Thinking to reduce google foot print by replacing google map with here map... Any suggestion before I do?10
-
Quirk of C++ (also C I think)
int array[]={1,2,3,4,5};
int temp = array[0]; //valid access
int temp2 = 0[array]; // also valid
C++ is a member of the Foot Shooters Club languages of choice.
Also, this weekend I learned you cannot have a vector of references:
https://stackoverflow.com/questions...
Well, at least not without some pain.5 -
If I ever fall into a blackhole I dont think there's any "big and tall man" shop anywhere this side of the universe that sells clothes big enough to compensate for spaghettification.
There *might* be one on the *other* side though (assuming I make it through the blackhole first).
Their foot traffic must suck though.3 -
Just finished another run. First time running in proper Nike running shoes. Before that I ran in Adidas training shoes that was designed for the gym, not outdoors.
The easiest run I’ve ever done. Same distance, same everything, even the same heart rate, but it feels like a walk in the park. I didn’t even feel thirsty.
It probably means that conditions of the exact moment your foot touches the ground somehow makes a huge difference in energy required to run. I knew that but I didn’t knew how huge its role was.6 -
Got dragged into business meeting. Said stupid things because I didn't know they were secrets... Can't wait to get chewed out. Why am I not just a code monke?!?!2
-
So I was working on a web scraper to basically download all listings with detailed info from a e-shop to my database for some analysis.
And I completely forgot throttling which is quite important when writing such things in node.js.
It's funny how in other languages you try to figure out how to make your application faster and in node you're trying to make it slower 😄
Anyhow, I apparently hit the poor site with 5000+ simultaneous requests, all of which hit their database (to gather product info). Suffice to say, the site got visibly slow 🤣
Thankfully I print out where each request is made so I quickly realised my mistake and killed the process.
Now I hope no-one comes knocking on my door lol
The adventures of being a node.js dev1 -
Do you ever feel like you can't stop putting your foot in your mouth after joining a new team? 😬 The struggle these last couple weeks has sucked!2
-
Anyone know of a good docker backup tool?
I'm working with fairly limited space here so Im looking for a tool to allow me to backup and restore my docker instance without storing easily recreatable data.
That means that what I want to backup are:
- Container specs (inspections or the like)
- Contents of persistent, non-nfs volumes
Since the image and the contents of my nfs volumes are stored elsewhere, and my space is limited, I decided not to back them up. Same for non-persistent (unnamed) volumes since they mostly contain stuff that you don't want to recreate on every container update or recreation but can easily be recreated if needed.
The hope is that this approach should give me a pretty slim backup while still preserving everything I need to recreate my whole docker instance.
Thanks in advance!11 -
Why don't people understand nuance?
No, I don't have a foot fetish. Yes, I would suck Taylor Swift's toes if she asked6 -
Might of just shot myself in the foot. Asked user on screen record to open dev tools by pressing f12 and click into console so I could visually see if any errors occur.
What have I done...the questions and confusion are overflowing. -
MySQL 5.7.32 breaks innodb zlib compression in combination with xtrabackup.
Oracle started the trend to break GA cycles....
https://percona.com/blog/2020/...
Seems like the MySQL ecosystem finally splits in MariaDB (as 10.5 renamed MySQL to Mariadb) and MySQL.
I hope Oracle MySQL dies.
What Oracle does is beyond madness.
MariaDB 10.5 has it's troubles too. But at least you can look up their sources, check their bugtracker and don't get surprise foot fisting up your arse.8 -
Almost two decades of working with JavaScript, and I just got caught out by the most stupid of things..
Did you know that `["ping"] == "ping"` is `true`, whereas `["ping"] === "ping"` is `false`...? 🤔 I did, once upon a time, long ago. Apparently I forgot about it though.
Seriously, fuck you JS.. with all of the internet's 10 foot rusty barge poles.11 -
GOD FUCKING DAMMIT I FUCKING HATE ES6 AND ITS GODDAMN IMPORT BULLSHIT
FUCK OFF AND LEMMIE REQUIRE MY FUCKING MODULES FOR FUCKS SAKE5 -
So for someone who wants to get their foot in the door and learn a lot about computer science where do I start?12
-
Just finished the Camino de Santiago from Sarria to Santiago de compostella on foot. Was amazing.
I wonder, are there any devranters from Galicia?1 -
Top reason to not be a dev? There are so many ways to shoot yourself in a foot. Some of them are creative, some of them are fun. Unless it happens to you.1
-
"Some people want their paychecks and to go home, and that’s fine. You and me, though—we’re gonna work harder than they do. We’ll build things that ensure that entire populations just setting foot on the web for the first time can tap into the collected knowledge of the whole of mankind." - Mat Marquis6
-
Offshore developer announced today he is off for a month, has ruined my sprint planning. He is the most competent developer I’ve had from that team.
Now shooting myself in the foot so we can still get him back and don’t get stuck with a replacement.3 -
Guess I shoulda paid attention to that hunch I had on Saturday that it was time to finally reinforce the center of this weak table. This is what I came home to after going out for exercise. Wife wasn't happy because it landed on her foot. :(
-
I am like a person who hates to drink water from a steel vessal, because he always got experience of getting a shitty drink in a dirty steel vessal. But whenever i got a chance to drink from a beautiful glass or gold cup, I immediately fucked up and dropped it on my foot
(cup/ vessal == company)2 -
so it appears for the immediate future I'm stuck working a good enough to pay the bills with a little left over helpdesk job until I find some sort of junior or associate dev gig.
I graduated this past spring and had to take something, so in the meantime, advice on how to land the first get my foot in the door actually programming gig?6 -
I read about wasm and being a web dev Im now scared.
So I want o learn c++. Even if not for wasm it would still be really cool to have that language in my toolbox.
Any recommendations where to start?6 -
Does anybody know any good software engineering companies to work for around LA? I'm looking for an entry level software engineering position. Full stack would be ideal, but at this point I just want to get my foot in the door with a good company where I can learn a lot. Maybe even a company that knows how to have fun too (if that's not too much to ask hehe 😅).3
-
Just found out this cool analysis on :
Latency Numbers Every Programmer Should Know - https://gist.github.com/jboner/...
Fascinating!!3 -
Tech literature! Why is it so VERBOSE? I noticed I nearly always start shaking my foot and mutter "to the pooooint". And like 50 pages of acknowledgements.2
-
What getting an AWS solutions architect certification got me:
Acceptance into the 4 top high schools in the area( one of which being in the top 5 public schools in the United States)
2 internships/apprenticeships
1 opportunity at the local college for some research experience
Vasts amounts of knowledge about servers and back end technologies I have never known about
And of course, the most important one, getting all the aunties attention at parties
People like to say that certifications don’t help but they get your foot into the door, it’s up to you to do the rest of the work3 -
I went to create an attributions page for my node.js app I am working on. I just had it parse the packages used. Ran out of memory trying to display them in a browser.
Man I included 1 (uno) package and the dependencies are crazy. First thing I did was install license-checker to make sure I wasn't shooting myself in the foot with some random GPL/LGPL package.
So, I guess I am learning about node.js a bit this week. -
Trying to learn UE on an underpowered linux machine is not something I'll recommend to anyone.
It's like shooting yourself in the foot and then going for the other one for symmetry's sake. You're doubly fucked. -
My ambition to learn is too much for my own good. I have so much desire to learn and get going that I'm all over the place reading bits and pieces cause I can't seem to get my foot in the door and figure out where to start from the very very beginning to figure out how to start actually learning to code.
-
I see many people getting magnetized 😃😃 after taking the vaccine. But where are their poles? North pole in head and south pole in the foot?3
-
WHAT THE FUCK IS THE GOOGLE SDK FOR?
ya I get it you connect to it.
It doesnt give local directory to Google Directory, it doesnt run ssh commands nor python commands. WHAT THE FUCK IS IT FOR?
DO I MAKE A BUCKET NOT COMPUTE ENGINE?
DO I SHOOT MYSELF IN THE FOOT AND DELETE THE PROJECT DUE TO HAVING AN OVERFLOW OF PYTHON FILES IN WRONG DIRECTORIES?
LIKE FOR REAL