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 - "beans"
Office invested in a new coffee machine. With actual coffee beans.
It also makes hot chocolate.7
Not entirely dev related.
Just wondering if I'm the only one on here who actually EATS coffee beans regularly?
I work as an Enterprise Java Developer. When people ask me what I do, I tell them I work with beans.3
I'm trying to install a minecraft modpack to play with a friend, and I'm super psyced about it. According to the modpack instructions, the first step is to download the java8 jre. Not sure if I actually need it or not, but it can download while I'm doing everything else, so I dutifully go to the download page and find the appropriate version. The download link does point to the file, but redirects to a login page instead. Apparently I need an oracle account to download anything on their site. stupid.
So I make an account. It requires my life story, or at least full name and address and phone number. stupid. So my name is now "fuck off" and I live in Hell, Michigan. My email is also "gofuckyourself" because I'm feeling spiteful. Also, for some reason every character takes about 3/4ths of a second to type, so it's very slow going. Passwords also cannot contain spaces, which makes me think they're doing some stupid "security" shenanigans like custom reversible encryption with some 5th grade math. or they're just stupid. Whatever, I make the stupid account.
On a whim later, I check for the verification email again. Apparently it just takes bloody forever, but it did show up. Except instead of the first name "Fuck" I entered, I'm now "Andrew", apparently. okay.... whatever. I click the verify button anyway, and to my surprise it actually works, and says that I'm now allowed to use my account. Yay!
So, I go back to the login page (from the download link) and enter my credentials. A new error appears! I cannot use redirects, apparently, and "must type in the page address I want to visit manually." huh? okay, i go to the page directly, and see the same bloody error because of course i do because oracle fucking sucks. So I close the page, go back to the download list, click the link, wait for the login page redirect (which is so totally not allowed, apparently, except it works and manual navigation does not. yay backwards!), and try to log in.
Instead of being presented with an error because of the redirect, it lets me (try to) log in. But despite using prefilled creds (and also copy/pasting), it tells me they're invalid. I open a new tab container, clear the cache (just to be thorough), and repeat the above steps. This time it redirects me to a single signon server page (their concept of oauth), and presents me with a system error telling me to contact "the Administrator." -.- Any second attempts, refreshes, etc. just display the same error.
Further attempts to log in from the download page fail with the same invalid credentials error as before.
Fucking oracle and their reverse Midas touch.11
1. Slack. Pretty good chat app for dev companies, I use it to prevent people standing next to my desk 40 times a day.
2. Unit testing tools, especially when fully automated using a git master branch hook, something like codeship/jenkins, and a deployment service.
3. Jetbrains IDEs. I love Vim, but Jetbrains makes theming, autocompleting & code style checks with mixed templating languages a breeze.
4. Urxvt terminal. It's a bit of work at the start, but so extremely fast and customizable.
5. Cinnamon or i3. Not really dev tools, but both make it easy to organize many windows.
6. A smart production bug logger. I tend to use Bugsnag, Rollbar or Sentry.
7. A good coffee machine. Preferably some high pressure espresso maker which costs more than the CEO's car, using organic fairtrade hipster beans with a picture of a laughing south american farmer. And don't you dare fuck it up with sugar.
8. Some high quality bars of chocolate. Not to consume yourself, but to offer to coworkers while they wait for you to fix a broken deploy. The importance of office politics is not to be underestimated.1
"As a team, we have the shared responsibility to ___".
(replace with ALL of the following: resolve bugs, do junior's code reviews, clean up dead code, keep the kitchen clean, improve test coverage, write documentation, order coffee beans, etc)
NO. JUST FUCKING STOP RIGHT THERE. Shared responsibilities do not exist. A single person is responsible, and can optionally delegate tasks.
EITHER I DO IT AND I'LL BE FUCKING AWESOME AT IT, OR SOMEONE ELSE DOES — BUT I'LL SLAP SLACKERS IN THE GENITALS WITH MY KEYBOARD.
Fucking startup hipsters with their community driven attitude, this way no shit gets done, ever.7
Parents were awesome. Super supportive, gave me every opportunity. They were open-minded loving people who eschewed personal vice and property to give us a start. They never once abused any of us, and in a family with three girls, we were encouraged to break the mould. We were shown that women could be more than just support to our spouses and baby factories, and more than part time labor in family enteprise.
Thusly my ascendance to a life as an engineer was assured and fully supported by these wonderful people whose folkright earnestness never once inhibited their progressive encouragement of our success as human beings, not just professionals.
And if you believe that, I have a bridge for sale in San Francisco you might be interested in.
I wrote on this topic before it was cool 😋
"I have a $1 million idea. Will you work for me for beans? I'll reward you with paradise when they grow tall"5
Me:- OMG Java 9 is coming in 144 days;
Normal ppl:- ...So what😑😑
Me:- Java 9 is awesome we can type codes in cmd;
Normal Ppl:- I have net beans;
Me (thinking):- FROM WHAT HELL DID SUCH SOUL-LESS MONSTERS COME FROM 😨😨😨😨😱😱😱8
My most memorable co-worker? Have quite a few memorable positive and negative ones.
One of the positives was an ex-Marine (only a few months back from Iraq) 'Erin' who 'butt-ed heads' with an ex-Navy "vet" 'Tom' who was also our source control nazi (I've ranted about him before). "Vet" is in quotes because HR decided to research Tom's 'service' (what ship did he served on, etc) for an upcoming salute to veterans. They found out 'Tom' hurt his knee in basic training and had to be discharged.
Tom enjoyed talking his military "service" until HR spilled the beans (another story behind that, I'll share if interested), and when Erin found out Tom never stood foot outside basic training as a soldier, the alpha-male shit hit the fan.
The F-bombs were as plentiful as leaves in the fall.2
Purple, Ahh yes, the nice colour purple... dont you love looking at something and thinking, "Wow, thats some nice purple"
well, I fucking dont, fuck that piece of shit colour, I FUCKING HATE PURPLE, why?
BECAUSE IT DOESNT FUCKING EXIST! FUCK PURPLE, FUCK IT, ITS FUCKING BLUE! THERE IS NO FUCKING PURPLE!
WAKE THE FUCK UP PEOPLE! IT DOESNT FUCKING EXIST! THERE IS BLUE AND RED, BUT. THERE. IS. NO. FUCKING. PURPLE!
And dont get me started on brown, that nice brown chocolate, these coffee beans...
IF IT WOULDNT LOOK LIKE DARK-GREEN I WOULDNT FUCKING HATE IT! WHY DOES IT EVEN EXIST!
(if your wondering, yes. I have a red-green colour deficiency)33
So I joined this financial institution back in Nov. Selling themselves as looking for a developer to code micro-services for a Spring based project and deploying on Cloud. I packed my stuff, drove and moved to the big city 3500 km away. New start in life I thought!
Turns out that micro-services code is an old outdated 20 year old JBoss code, that was ported over to Spring 10 years ago, then let to rot and fester into a giant undocumented Spaghetti code. Microservices? Forget about that. And whats worse? This code is responsible for processing thousands of transactions every month and is currently deployed in PROD. Now its your responsibility and now you have to get new features complied on the damn thing. Whats even worse? They made 4 replicas of that project with different functionalities and now you're responsible for all. Ma'am, this project needs serious refactoring, if not a total redesign/build. Nope! Not doing this! Now go work at it.
It took me 2-3 months just to wrap my mind around this thing and implement some form of working unit tests. I have to work on all that code base by myself and deliver all by myself! naturally, I was delayed in my delivery but I finally managed to deliver.
Time for relief I thought! I wont be looking at this for a while. So they assign me the next project: Automate environment sync between PROD and QA server that is manually done so far. Easy beans right? And surely enough, the automation process is simple and straightforward...except it isnt! Why? Because I am not allowed access to the user Ids and 3rd party software used in the sync process. Database and Data WareHouse data manipulation part is same story too. I ask for access and I get denied over and over again. I try to think of workarounds and I managed to do two using jenkins pipeline and local scripts. But those processes that need 3rd party software access? I cannot do anything! How am I supposed to automate job schedule import on autosys when I DONT HAVE ACCESS!! But noo! I must think of plan B! There is no plan B! Rather than thinking of workarounds, how about getting your access privileges right and get it right the first time!!
They pay relatively well but damn, you will lose your sanity as a programmer.
God, oh god, please bless me with a better job soon so I can escape this programming hell hole.
I will never work in finance again. I don't recommend it, unless you're on the tail end of your career and you want something stable & don't give a damn about proper software engineering principles anymore.3
So ok here it is, as asked in the comments.
Setting: customer (huge electronics chain) wants a huge migration from custom software to SAP erp, hybris commere for b2b and ... azure cloud
Timeframe: ~10 months….
My colleague and me had the glorious task to make the evaluation result of the B2B approval process (like you can only buy up till € 1000, then someone has to approve) available in the cart view, not just the end of the checkout. Well I though, easy, we have the results, just put them in the cart … hmm :-\
The whole thing is that the the storefront - called accelerator (although it should rather be called decelerator) is a 10-year old (looking) buggy interface, that promises to the customers, that it solves all their problems and just needs some minor customization. Fact is, it’s an abomination, which makes us spend 2 months in every project to „ripp it apart“ and fix/repair/rebuild major functionality (which changes every 6 months because of „updates“.
After a week of reading the scarce (aka non-existing) docs and decompiling and debugging hybris code, we found out (besides dozends of bugs) that this is not going to be easy. The domain model is fucked up - both CartModel and OrderModel extend AbstractOrderModel. Though we only need functionality that is in the AbstractOrderModel, the hybris guys decided (for an unknown reason) to use OrderModel in every single fucking method (about 30 nested calls ….). So what shall we do, we don’t have an order yet, only a cart. Fuck lets fake an order, push it through use the results and dismiss the order … good idea!? BAD IDEA (don’t ask …). So after a week or two we changed our strategy: create duplicate interface for nearly all (spring) services with changed method signatures that override the hybris beans and allow to use CartModels (which is possible, because within the super methods, they actually „cast" it to AbstractOrderModel *facepalm*).
After about 2 months (2 people full time) we have a working „prototype“. It works with the default-sample-accelerator data. Unfortunately the customer wanted to have it’s own dateset in the system (what a shock). Well you guess it … everything collapsed. The way the customer wanted to "have it working“ was just incompatible with the way hybris wants it (yeah yeah SAP, hybris is sooo customizable …). Well we basically had to rewrite everything again.
Just in case your wondering … the requirements were clear in the beginning (stick to the standard! [configuration/functinonality]). Well, then the customer found out that this is shit … and well …
So some months later, next big thing. I was appointed technical sublead (is that a word)/sub pm for the topics‚delivery service‘ (cart, delivery time calculation, u name it) and customerregistration - a reward for my great work with the b2b approval process???
Customer's office: 20+ people, mostly SAP related, a few c# guys, and drumrole .... the main (external) overall superhero ‚im the greates and ur shit‘ architect.
Aberage age 45+, me - the ‚hybris guy’ (he really just called me that all the time), age 32.
He powerpoints his „ tables" and other weird out of this world stuff on the wall, talks and talks. Everyone is in awe (or fear?). Everything he says is just bullshit and I see it in the eyes of the others. Finally the hybris guy interrups him, as he explains the overall architecture (which is just wrong) and points out how it should be (according to my docs which very more up to date. From now on he didn't just "not like" me anymore. (good first day)
I remember the looks of the other guys - they were releaved that someone pointed that out - saved the weeks of useless work ...
Instead of talking the customer's tongue he just spoke gibberish SAP … arg (common in SAP land as I had to learn the hard way).
Outcome of about (useless) 5 meetings later: we are going to blow out data from informatica to sap to azure to datahub to hybris ... hmpf needless to say its fucking super slow.
But who cares, I‘ll get my own rest endpoint that‘ll do all I need.
First try: error 500, 2. try: 20 seconds later, error message in html, content type json, a few days later the c# guy manages to deliver a kinda working still slow service, only the results are wrong, customer blames the hybris team, hmm we r just using their fucking results ...
The sap guys (customer service) just don't seem to be able to activate/configure the OOTB odata service, so I was told)
Several email rounds, meetings later, about 2 months, still no working hybris integration (all my emails with detailed checklists for every participent and deadlines were unanswered/ignored or answered with unrelated stuff). Customer pissed at us (god knows why, I tried, I really did!). So I decide to fly up there to handle it all by myself16
When there is no coffee beans in the office and/or the different ways of making coffee is not working that day.4
Penetration test 😏. Is there any other kinky term you know in computer sciences? Spill the beans.19
Most awkward video conference call?
Our department is in a 'virtual' book club, reading The Unicorn Project, and I asked..
Me: "So what similarities have you seen with the Phoenix project and projects we work on here?"
Dale: "Ha ha..sooo many. The biggest is the disconnect of managers with no clue of what goes on."
<Vice president of our department also in the book club>
VP: "Really? Dale, I'd like to know more about this."
<awkward silence with blank stares all around>
DBA: "Come on Dale...spill the beans. Got the VP right there."
Dale: "Um...nope...not going there...nope"
<Dale's screen goes black>
VP: "OK, so when Maxine asks ..."
The mysterious life of developers
CLICHE DEVELOPER - which can be spotted by the conference t-shirt and the pale skin. Main source nutrition black carbonated liquid.
HIPSTER DEVELOPER - this species only drinks warm liquids based on expensive spices and beans, and his only tool is a so called Macintosh.
for many individuals in the herd it's considered prestigious to not utilize the mouse at all.
The herd works towards a common goal, a goal set by the project owner. When the project owner arrives the developers often hide digital image of cats from their screens........
The new CTO promised us better coffee in his introduction meeting. Honestly felt pretty trivial and part of his used car salesman pitch to us.
A month goes buy and he replaces our shitty drip Starbucks breakfast blend coffee with ... Starbucks coffee machines. I shit you not these things have touch screens on them. So I tried two cups of each bean type and ... this stuff is really really bad. It's literally worse than the drip brew. It's so fucking terrible I have trouble finishing a cup.
God damn it!8
Met up with a good friend today we go off roaring all the time since we both own hooked up Jeep wranglers. Well we got together and after a fun day of crawling (no coding 😞) lol, We went to eat and I pulled up devRant and kind of mentioned how much I loved this little app and stuff and why it was about. Well turns out that I’ve been friends with this guy for sometime and we never talked profession. This guy is the Vice President to a large scale software development company here in my state!
I was dumbfounded ! Lol all this time this dude has been in the same field and I had no clue.
(I don’t get out much) 😅6
New coffee machines at work. Real beans! What's the equivalent of the Ballmer Peak for Caffeine? Posting this at 4.04am, lying awake in bed and not coding, I'm probably past it.. sleep not found2
Then (for devs)
y''="cup of coffee"
"bug in production which requires urgent fix"=y''''1
O.M.F.G how much longer is that gonna take?!?! It's been 2 days already! 2 fucking days!!!
That's it. Fuck the docs. I'm going hardcore now: hooking up a debugger and diving into the unseen depths of Spring's automatic JPA repo initialization.
Unless any one of you knows how to
1. Manually create jpa repo interface bean
2. Make transactions work [also enable them manually by declaring beans in @Configuration]
and do all this in a single @Bean method. Jpa provider - hibernate.
Nobody? Not a single one? Allright then, I'm going in :(1
Learned git, decided, imma use this while I make a little game in Java, couple days later, I find out that net beans has git INSIDE of it... :/ ....3
Use simple working code of an if statement and reject bad data with an error.
Get the same result but through properly using springs nested path errors. But it doesn't work so now you need to spend hours in debug hell through spring framework code for something that should be easy, is blocking another team, because I have no idea how to do my fucking job.1
A friend gave me a couple of Corona beers as a joke and now I can't decide on what quarantine burrito to make.
chicken with rice & beans or BBQ pork with coleslaw?1
I always thought J2EE was like a completely different thing from general Java. It has features like Enterprise management beans, special packages and has it's on Project type, structure in IDEs.
But it seems like it's not actually that different? If you use Spring, Hibernate, custom library annotations and build a Servlet, web server with @POST, @GET or use Serialization... And maybe use JDK instead of JRE, Maven, Ant... apparently that's considered J2EE?9
1) Guess how many beans (hours) are in the jar (sprint).
2) Pad my estimate with 12 beans.
3) Be high and have to have meetings in which I explain bean counting is not an exact science and insist that meetings about how we count beans will only put us behind further and will never ever make us better bean counters.
3b) Be under, have extra time in the sprint, only to have product management fill the jar with more beans until I'm wrong again.
Okay, so I need some serious help. Can someone explain why anyone would want to use java spring beyond IoC? Half the developers I work with swing Spring around likes it's excaliber, yet when truly pressed why they like it they all say: "because of beans".
Spring is massive, so why just beans? The IoC pattern is extremely robust, so I'm sure there are other secrets to be learned. It has to have some other significant advantage.
I totally understand things like Jax-RS for REST endpoints. I don't think spring is needed for that to work, is it?2