Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "rubymine"
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.6
THIS FUCKING DEBUGGER IS IGNORING MY FUCKING BREAKPOINTS
GO TO HELL YOU PIECE OF SHIT
AND RSPEC: FUCK YOUR LIMITED METHOD HIT-COUNTING BULLSHIT! ONE HIT-COUNT PER METHOD FOR THE ENTIRE SPEC IS NOT GOOD ENOUGH!
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 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!
I'm working on a ticket that touches a lot of areas of the codebase, and impacts everything that creates a ... really common kind of object.
This means changes throughout the codebase and lots of failing specs. Ofc sometimes the code needs changing, and sometimes the specs do. it's tedious.
What makes this incredibly challenging is that different specs fail depend on how i run them. If I use Jenkins, i'm currently at 160 failing tests. If I run the same specs from the terminal, Iget 132. If I run them from RubyMine... well, I can't run them all at once because RubyMine sucks, but I'm guessing it's around 90 failures based on spot-checking some of the files.
But seriously, how can I determine what "fixed" even means if the issues arbitrarily pass or fail in different environments? I don't even know how cli and rubymine *can* differ, if I'm being honest.
I asked my boss about this and he said he's never seen the issue in the ten years he's worked there. so now i'm doubly confused.
Update: I used a copy of his db (the same one Jenkins is using), and now rspec reports 137 failures from the terminal, and a similar ~90 (again, a guess) from rubymine based on more spot-checking. I am so confused. The db dump has the same structure, and rspec clears the actual data between tests, so wtf is even going on? Maybe the encoding differs? but the failing specs are mostly testing logic?
none of this makes any sense.
i'm so confused.
It feels like i'm being asked to build a machine when the laws of physics change with locality. I can make it work here just fine, but it misbehaves a little at my neighbor's house, and outright explodes at the testing ground.4
What's your favourite IDE? 😁
I'm currently working with Emacs and it's great! (But Sublime Text is still beautiful)20
More adventures in fixing specs.
This particular failing spec is in an included spec helper; I cannot run the spec itself because rubymine is stupid and doesn't know how. Not kidding. I also don't know the codepath it's actually testing because it's fucking convoluted, so I need (rather: want) a debugger to progress. I put breakpoints everywhere I thought it could be, and... nothing.
The stacktrace shows the calling spec in the helper module, a generic `process` method that just calls `super` (from where? who knows!), and a `wrap_every_action` in the ApplicationController. in other words: absolutely nothing helpful. I stepped through the code for most of an hour and didn't get anywhere; just saw lots of rails internals.
I'm going to keep bashing my head against this, but what the fuck, why can't you give me something goddamn useful!?5
"Holy shit, my computer is laggy, what's taking this much ressources?"
"Holy shit why the fuck is Java even running? Let's kill this son of a bitch"
> kill -9 <process>
> Rubymine closes
I'm a fucking idiot.
So in the context, I ragequitted my school at the end of the 4th year (out of 5, so no diploma). I was broken, poor (the only money I got was my parents), and mad as fuck.
I took a 2 month vacation during the summer where I did strictly nothing, then I sat down to my computer, opened Rubymine and started building my new website (current version actually, new one is in progress)
Right after that, I downloaded the trial version of Adobe InDesign and created a better / updated version of my old CV, and put it on LinkedIn, Viadeo, everywhere. At first, it didn't work much since all my experience was about underpaid internships, so I honestly had no work experience on the paper.
Then, while answering to a job offer, I put my CV on Monster, before I realized I should have done this from the beginning: next 3 mornings I had 5 phone calls, and 2 appointments per day for 2 weeks 😁😁
My current job was one of the firsts that called me, but made me wait a whole month (through appointments & shit) before answering me "Yes" one tuesday at 10 pm, on my way to take a shower. It's been 10 months now 😁2
I cannot for the life of me get the debugger working in RubyMine because debase gem wont install. WHY AM I WASTING TIME DEBUGGING THE DEBUGGER INSTALLATION?1
Alright I gotta ask IDE or Text Editor for development... and you care to WHY? I haven't found any rant on this subject yet and I'm curious what you ranters use!
Personally I use an IDE and more specifically Intellj suite for development
RubyMine, PHPStorm, and Android Studio for all my dev work for debugging, refactoring, and code completion to name a few.7
As a Vim evangelist, it's agonizing watching someone debug unit tests in RubyMine.
It physically pains me.
3rd fucking time in as many years I'm trying to figure out how to set up fucking rubymine yet I can't find shit in those settings menus. I'll be fucked with a spacex rocket if they don't have 19374580123457 options yet I can't find two simple basic fucking things:
1) edit code over SSH on my LAN dev machine
2) run all shit there, rake, specs, migrations, not on my fucking local machine
And It could even get away with just #1 because I don't mind keeping a terminal open, its what I do anyway
I don't give a flying fuck about anything else. I just want the autocomplete because atom's autocomplete sucks ass.
i swear it has every fucking thing you can think of. If you want to have your left ball sucked by a six legged midget while working then this fucking thing must have it. Somewhere buried in some motherfucking menus of options of submenus of plugins of features of sections of main menus.
But right now FUCK YOU once again for making me waste time trying to figure a couple basic features required for working remotely.
I even set up ccleaner just for you, so I can get rid of every fucking trace this shit leaves behind1