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 - "catch all"
-
After listening to two of our senior devs play ping pong with a new member of our team for TWO DAYS!
DevA: "Try this.."
Junior: "Didn't work"
DevB: "Try that .."
Junior: "Still not working"
I ask..
Me:"What is the problem?"
Few ums...uhs..awkward seconds of silence
Junior: "App is really slow. Takes several seconds to launch and searching either crashes or takes a really long time."
DevA: "We've isolated the issue with Entity Framework. That application was written back when we used VS2010. Since that application isn't used very often, no one has had to update it since."
DevB: "Weird part is the app takes up over 3 gigs of ram. Its obviously a caching issue. We might have to open up a ticket with Microsoft."
Me: "Or remove EF and use ADO."
DevB: "That would be way too much work. The app is supposed to be fully deprecated and replaced this year."
Me: "Three of you for the past two days seems like a lot of work. If EF is the problem, you remove EF."
DevA: "The solution is way too complicated for that. There are 5 projects and 3 of those have circular dependencies. Its a mess."
DevB: "No fracking kidding...if it were written correctly the first time. There aren't even any fracking tests."
Me:"Pretty sure there are only two tables involved, maybe 3 stored procedures. A simple CRUD app like this should be fairly straight forward."
DevB: "Can't re-write the application, company won't allow it. A redesign of this magnitute could take months. If we can't fix the LINQ query, we'll going to have the DBAs change the structures to make the application faster. I don't see any other way."
Holy frack...he didn't just say that.
Over my lunch hour, I strip down the WPF application to the basics (too much to write about, but the included projects only had one or two files), and created an integration test for refactoring the data access to use ADO. After all the tests and EF removed, the app starts up instantly and searches are also instant. Didn't click through all the UI, but the basics worked.
Sat with Junior, pointed out my changes (the 'why' behind the 'what') ...and he how he could write unit tests around the ViewModel behavior in the UI (and making any changes to the data access as needed).
Today's standup:
Junior: "Employee app is fixed. Had some help removing Entity Framework and how it starts up fast and and searches are instant. Going to write unit tests today to verify the UI behaivor. I'll be able to deploy the application tomorrow."
DevA: "What?! No way! You did all that yesterday?"
Me: "I removed the Entity Framework over my lunch hour. Like I said, its basic CRUD and mostly in stored procedures. All the data points are covered by integration tests, but didn't have time for the unit tests. It's likely I broke some UI behavior, but the unit tests should catch those."
DevB: "I was going to do that today. I knew taking out Entity Framework wouldn't be a big deal."
Holy fracking frack. You fracking lying SOB. Deeeep breath...ahhh...thanks devRant. Flame thrower event diverted.13 -
So they were having trouble with the server always being slow and maxed to 100%, so the boss told me when wait times were hitting 5+mins due to server trying to catch up, he complained at me, said if I could get the wait time to 30sec to instant he would raise my pay to 90k a year, then walked away after I agreed, I was quite serious but I don't think he thought I was, so I decided to look over the system, IDK who but they put all the calculations and processing server-side for the CA's on floor then sent the completed view to the CA, so I spent months recreating the entire system except the server only pulled the data needed then the new client would do all the processing on their computer since they weren't doing anything anyways, I did a practice run today as its one of our peak days, wait times went to barely 5secs or "instant" according to CA's, I walked into the office, slapped that hourly report down after just two hours and showed the massive increase in employees production times.
That look on his face...
That look on my face...
That look on my next check...
Bliss10 -
Waiting for a bus. And there is a 14 year old smoking and looking after 3 10 year olds. She then gets them to role her 'fags' and then they all smoke. They are blaring rap from a speaker I'm annoyed everyone is annoyed.
They get on a bus full of elderly people.
Then I have my moment. I hear they are switching phone that the speaker is paired to, for different music. They even say the device name! I quickly get my phone search Bluetooth devices and pair. I connected all I could think was play the tweenies. And so I did.
They have hysterics of laughter, but I try act neutral containing my laughter. They keep saying they can't connect and that it's not their music. This went on for 10 or so minutes of them turning volume up and down. Until they catch on someone else is paired to it. I turn off my Bluetooth and get off the bus, you are welcome society.12 -
A couple of years ago, I was working in a computer shop as a "technician", I was 15, first job I ever had.
One day an elderly lady came into the shop, probably 50'ish, she and her whole family "suffered" from electromagnetic radiation, and the mother had the worst suffering. She complained about her TV box that just had died.
I accept the tuner and see it's wrapped with 10 layers of aluminium foil, with a tiny hole for the IR receiver.
The whole box smells like burnt electronics, and the foil gets darker for each layer I unwrap. I try explain to her that the box gets warm and overheated by wrapping it like this, and she's lucky that it didn't catch fire.
I further explain to her that she will not get a new box, because the warranty does not cover _this_. The mother tells me she has to wrap it like this, because she gets headaches when she's watching the news.
She then proceeds to go into a rage mode and gets her whole family into the shop, where all of them starts yelling at me, the younger kids start throwing stuff down from the shelves and touching the TVs with sticky fingers (literally, sticky, like yuck!).
Unsure what to do, boss is in a meeting, and my colleague is busy in the back.
So I calmly tell them that in this building there's 4 wireless networks, 3 wireless phones, high voltage cables run in the wall behind me, there's factory tracks 20 meters behind the building, next door business is an electrician, you're standing in front of wall with 30-40 TVs, 5 HDMI splitters, 3 TV boxes and a Blu-ray player. And they've all been standing in front of them for the last 10 minutes.
They all suddenly feel really sick and run out of the store, never to be seen again. From that day, I decided I'll never work in a shop again, and pursued my dreams to become a developer.
TL;DR: Family is "sensitive" to electromagnetic radiation, almost put burnt down their house because of stupidity, yelled at me. I decided to pursue my dream as a developer.16 -
Did this on my first programming exam.
int index = 0
int value = 0
try {
while true {
value += array[index]
index++
}
} catch NullPointerException {
System.out.print("Sum: " + value)
}
The task was to add together all numbers in an array.
I somehow aced the exam, but got called in to teachers office this is not the way to use exceptions.7 -
0. Plan before you code. Document everything. You won't remember either your idea or those clever implementations next week (or next month, or next year...).
1. Don't hack your way through, unless that's what you intend to do. Name your variables, functions etc. neatly: autocomplete exists!
Protip: Sometimes you want to check a quick language feature or a piece of code from one of your modules. Resist the urge to quickly hack in the test into your actual project. Maintain a separate file where you can quickly type in and check what you're looking for without hacking on your project (For example, in Python, you can open a new terminal or IDLE window for those quick tests).
2. Keep a quiet environment where you can focus. Recommend listening to something while coding (my latest fad is on asoftmurmur.com). Don't let anything distract you and throw your contextual awareness out of whack.
3. Rubber ducks work. Really. Talking out a complex piece of logic, or that regex or SQL query aids your mind greatly in grasping the concept and clearing the idea. Bounce off code and ideas with a friend or colleague to catch errors and oversights faster. Read more here: https://en.wikipedia.org/wiki/...
4. Since everyone else is saying this (and because it merits saying), USE VERSION CONTROL. Singular most important thing to software development aside from planning and documenting.
5. Remember to flout all of the above once in a while and just make a mess of a project where you have fun throwing everything around all over the place. You'll make mistakes that you never thought were possible by someone of your caliber :) That's how you learn.
Have fun, keep learning!3 -
A wild Darwin Award nominee appears.
Background: Admins report that a legacy nightly update process isn't working. Ticket actually states problem is obviously in "the codes."
Scene: Meeting with about 20 people to triage the issue (blamestorming)
"Senior" Admin: "update process not working, the file is not present"
Moi: "which file?"
SAdmin: "file that is in ticket, EPN-1003"
Moi: "..." *grumbles, plans murder, opens ticket*
...
Moi: "The config dotfile is missing?"
SAdmin: "Yes, file no there. Can you fix?"
Moi: "Engineers don't have access to the production system. Please share your screen"
SAdmin: "ok"
*time passes, screen appears*
Moi: "ls the configuration dir"
SAdmin: *fails in bash* > ls
*computer prints*
> ls
_.legacyjobrc
Moi: *sees issues, blood pressure rises* "Please run list all long"
SAdmin: *fails in bash, again* > ls ?
Moi: *shakes* "ls -la"
SAdmin: *shonorable mention* > ls -la
*computer prints*
> ls -la
total 1300
drwxrwxrwx- 18 SAdmin {Today} -- _.legacyjobrc
Moi: "Why did you rename the config file?"
SAdmin: "Nothing changed"
Moi: "... are you sure?"
SAdmin: "No, changed nothing."
Moi: "Is the job running as your account for some reason?"
SAdmin: "No, job is root"
Moi: *shares screenshot of previous ls* This suggests your account was likely used to rename the dotfile, did you share your account with anyone?
SAdmin: "No, I rename file because could not see"
Moi: *heavy seething* so, just to make sure I understand, you renamed a dotfile because you couldn't see it in the terminal with ls?
SAdmin: "No, I rename file because it was not visible, now is visible"
Moi: "and then you filed a ticket because the application stopped working after you renamed the configuration file? You didn't think there might be a correlation between those two things?"
SAdmin: "yes, it no work"
Interjecting Director: "How did no one catch this? Why were there no checks, and why is there no user interface to configure this application? When I was writing applications I cared about quality"
Moi: *heavy seething*
IDjit: "Well? Anyone? How are we going to fix this"
Moi: "The administrative team will need to rename the file back to its original name"
IDjit: "can't the engineering team do this?!"
Moi: "We could, but it's corporate policy that we have no access to those environments"
IDjit: "Ok, what caused this issue in the first place? How did it get this way?!"
TFW you think you've hit the bottom of idiocy barrel, and the director says, "hold my mango lassi."25 -
CEO hired graphics designer without HR help after first meeting and that person first day of his work borrowed money from people and that’s not end of story.
Same guy came back at night and robbed the workplace with his friends, didn’t came back to work. Company bought couple of big iMac for new graphics department back then, all gone.
When company reported incident to Police it turned out he travel and steal from companies all over the country and they’re trying to catch him for a year.11 -
New senior dev joined the project today.
Senior dev: "There's no way for me to test my changes before I merge this into develop"
Me: "Can you at least run our test suite?"
An hour later the develop branch is fucked and everyone who has merged it locally has pages of red errors splattered across their screens whenever they run any tests.
Start looking into what the fuck is going on.
Notice that all the errors are related to changes the new guy made.
Ask him if he ran the tests..
Senior dev: "Nah they wouldn't catch anything locally "
Stare at the stream of red text running down my screen.
Normally I wouldn't care but we were trying to prepare a release... RUN THE FUCKING TESTS ASSHOLE.9 -
My first day in a Linux admin and security course. I went all confident and cocky waiting for some bullshit like "type in your term: ls, cd, pwd, see you tomorrow"
Suddenly the teacher starts to configure lampp, then jumps to bind, and thirty minutes leater , when everyone has their ssl keys under control, I was still struggling to correctly forward my mate. The rest of the day was smooth and easy for those who finished their servers, and there I was, unable to find my own ass in the middle of that mess made of bad assigned permissions and wrong placed addresses. Even worse, he came to me when I asked for help, took my chair and fixed everything in one beautiful single bash line. I started to ask "what's this? Where is that? Is it a config file or a directory?" And with all his patience he keep telling me the obvious answers that where right there at the screen but I couldn't see. Took me two weeks to catch his pace, and another two weeks to understand fully his classes. He never said a word about my terrible first day (first couple weeks). When course finished, I saw he was going to teach a really hard security module, and I signed up without hesitate.6 -
Things have been a little too quiet on my side here, so its time for an exciting new series:
practiseSafeHex's new life as a manager.
Episode 1: Dealing with the new backend team
It's great to be back folks. Since our last series where we delved into the mind numbing idiocy of former colleagues, a lot has changed. I've moved to a new company and taken a step up as a Dev manager / Tech lead. Now I know what you are all thinking, sounds more dull and boring right? Well it wouldn't be a practiseSafeHex series if we weren't ...
<audience-shouting>
DEALING! ... WITH! ... IDIOTS!
</audience-shouting>
Bingo! so lets jump right in and kick us off with a good one.
So for the past few months i've been on an on-boarding / fact finding / figuring out this shit-storm, mission to understand more about what it is i'm suppose to do and how to do it. Last week, as part of this, I had the esteemed pleasure of meeting face to face with the remote backend team i've been working with. Lets rattle off a few facts to catch us all up:
- 8 hour time difference to me
- No documentation other than a non-maintained swagger doc
- Swagger is reporting errors and several of the input models are just `Type: String`
- The one model that seems accurate, has every property listed as optional, including what must be the primary key
- Properties go missing and get removed at the drop of a hat and we are never told.
- First email I sent them took 27 days to reply, my response to that hasn't been answered so far 31 days later (new record! way to go team, I knew we could do it!!!)
- I deal directly with 2 of them, the manager and the tech lead. Based on how things have gone so far, i've nick named them:
1) Ass
2) Hole
So lets look at some example of their work:
- I was trying to test the new backend, I saw no data in QA. They said it wouldn't show up until mid day their time, which is middle of the night for us. I said we need data in our timezone and I was told: a) "You don't understand how big this system is" (which is their new catch phrase) b) "Your timezone is not my concern"
- The whole org started testing 2 days later. The next day a member from each team was on a call and I was asked to give an update of how the testing was going on the mobile side. I said I was completely blocked because I can't get test data. Backend were asked to respond. They acknowledged they were aware, but that mobile don't understand how big the system is, and that the mobile team need to come up with ideas for the backend team, as to how mobile can test it. I said we can't do anything without test data, they said ... can you guess what? ... correct "you don't understand how big the system is"
- We eventually got something going and I noticed that only 1 of the 5 API changes due on their side was done. Opened tickets. 2 days later asked them for progress and was told that "new findings" always go to the bottom of the backlog, and they are busy with other things. I said these were suppose to be done days ago. They said you can't give us 2 days notice and expect everything done. I said the original ticket was opened a month a go *sends link* ......... *long silence* ...... "ok, but you don't understand how big the system is, this is a lot of work"
- We were on a call. Product was asking the backend manager (aka "Ass") a question about a slight upgrade to the new feature. While trying to talk, the tech lead (aka "Hole") kept cutting everyone off by saying loudly "but thats not in scope". The question was "is this possible in the future" and "how long would it take", coming from management and product development. Hole just kept saying "its not in scope", until he was told to be quiet by several people.
- An API was sending down JSON with a string containing a message for the user with 2 bits of data inside it. We asked for one of those pieces to also come down as a property as the string can change and we needed it client side. We got that. A few days later we found an edge case and asked for the second piece of data to be a property too. Now keep in mind, they clearly already have access to them in order to make the string. We were told "If you keep requesting changes like this, you are going to delay the release of the backend by up to 2 weeks"
Yes folks, there you have it, the most minuscule JSON modifications, can delay your release by up to 2 weeks ........ maybe I should just tell product, that they don't understand how big the app is, and claim we can't build it on our side? Seems to work for them
Thats all the time we have for today,
Tune in for more, where we'll be looking into such topics as:
- If god himself was an iOS developer ... not
- Why automate when you can spend all day doing it by hand
- Its more time-efficient to just give everything a story point of 5
- Why waste time replying to emails ... when you can do nothing instead
See you all next week,
practiseSafeHex13 -
A Geologist and an engineer are sitting next to each other on a long flight from LA to NY. The Geologist leans over to the Engineer and asks if he would like to play a fun game. The Engineer just wants to take a nap, so he politely declines and rolls over to the window to catch a few winks. The Geologist persists and explains that the game is real easy and a lotta fun. He explains, "I ask you a question, and if you don't know the answer, you pay me $5. Then you ask me a question, and if I don't know the answer, I'll pay you $5." Again, the Engineer politely declines and tries to get to sleep. The Geologist now somewhat agitated, says, "OK, if you don't know the answer you pay me $5, and if I don't know the answer, I'll pay you $50!"
This catches the Engineer's attention, and he sees no end to this torment unless he plays, so he agrees to the game. The Geologist asks the first question. "What's the distance from the Earth to the moon?"
The Engineer doesn't say a word, but reaches into his wallet, pulls out a five dollar bill and hands it to the Geologist.
Now, it's the Engineer's turn. He asks the Geologist, "What goes up a hill with three legs, and comes down on four?" The Geologist looks up at him with a puzzled look. He takes out his laptop computer and searches all of his references. He taps into the Airphone with his modem and searches the net and the Library of Congress. Frustrated, he sends e-mail to his co-workers -- all to no avail.
After about an hour, he wakes the Engineer and hands him $50. The Engineer politely takes the $50 and turns away to try to get back to sleep.
The Geologist is more than a little miffed, shakes the Engineer and asks, "Well, so what's the answer?"
Without a word, the Engineer reaches into his wallet, hands the Geologist $5, and turns away to get back to sleep.1 -
Dev: I’m taking a vacation next week
Manager: Good you need a break! I’ve put together a list of tickets for you to action during vacation since you’ll mostly be free during that time
Dev: Do you know what vacation means?
Manager: Well I work during *my* vacation
Dev: You write non-answers to emails and interrupt devs with status questions that are easily answered by a single glance at the kanban board. Also, you’ve just assigned a month’s worth of storyboard points to me on my week long vacation. We’d get more work done if you didn’t “work” during your vacation.
Manager: Well it all needs to get done! It’s the only way we can catch up and get ahead of schedule.
Dev: Why do you exist again?14 -
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 -
I've got a mini stroke today. My project ended and I got delegated elsewhere.
"It's going to be fine, it's c++, you will find yourself there"
Suspicious, it's a project everybody was staying out of as hard as they can. But hey, it's cool, how bad can it be? what can go wrong with that?
Reality was brutal, project that uses Boost C++ as framework and bjam as builder. Builds with a decent dose of luck, and only under special circumstances, only under one specific version of compiler. No docs, quartet of the code is in Fortran, just to use ancient lisp part which was second qarter. The most senior Dev around does not have idea how it all works. Also everything is inside one enormous try/catch block. Because of the reasons.
That's how people end up with severe alcoholism and meth addiction.8 -
That awesome feeling of closing all the tabs after debugging a server for 32 hours with no sleep.
By now i've seen ~40 of the 220 blue screen codes that windows has available...
Gotta catch em all!2 -
Last week I almost lost my belief in everything..
A friend of minde, he's currently learning programming (Delphi 😂) in some kind of university, just told me:
"Hey, why do you spend so much time caring about error handling? I just surround all my programs with one try catch block and I never have to think about errors!"
Ehm. No statement needed, right?2 -
Alias coworker = high school classmate
This kid wore a trench coat to school every single day and I guess he had a chronic masturbation problem because the guy was caught 3 different times IN CLASS jerking off.
Most people would catch a sexual harassment / indecent exposure / public masturbation charge, but this kid was breaking all these national math competition records and was working with a local university doing research and had a 4.5+ GPA (in high school in U.S. that's possible) so the school decided to do 2 things.
1. Not punish the kid, and in fact nothing of this was ever put on any record at all.
2. Write him a note from school administrators saying that this student can leave class whenever he would like no questions asked, and that the teacher must notify the office so they could send a security guard in order for this masturbation obsessed student to literally occupy a bathroom as his jerk off chamber uninterrupted.
So if in the past 6-7 years you've been in a high caliber university studying computer science and there was a kid in a trench coat "feeding some geese" near you, you can thank my high school.6 -
My first experience with Swift ended in me infecting myself with a virus (kinda). I wanted to create a macOS app that would listen for a global key event, catch it and then type a word.
During development I set it up to listen for ANY key event and to type "BALLS". So what happened? I compiled the code, everything looked good, I started the app and pressed a key which emitted a key event. The event was caught by my app and it typed "BALLS", just as expected. However, the typing of the word caused a NEW key event to be emitted, which the app also caught. The infinite loop was a fact. FUCK!
I tried closing down XCode but all I could see was "BALLS BALLS BALLS" everywhere. I tried everything I knew but it just kept typing "BALLS". I had to hold down my power button to make it stop.
I finally finished the app (which I named "The Balls App", I kept the word "BALLS"). I solved this issue by only listening for KeyUp and when emitting the "BALLS" word I just used KeyDown.7 -
Radio Shack store closed near my house. Had a huge fire sale. Electric circuit components were 90% off.
My wife thought I'd gone insane when I got home with two huge bags full of LEDs, resistors, switches, IR sensors, photocells, capacitors, bridge rectifiers, a spare breadboard, a pair of helping hands, etc.
My only regret is that I didn't catch the fire sale in time to grab all their Arduinos.3 -
Hello, world!
Hey, it's me. It's been awhile. How have you been..? :3
For those of you who don't know/remember, I'm the lead developer of a Desktop and (to-be) Hacking Simulator Game. My project should still exist somewhere on here. I just thought I would hop on, and catch you guys up on my progress. ^~^
So far themes are a thing! You can add custom fonts, wallpapers(or just a desktop color) and set the color/opasity of everything in-game!
I have also implimented a modding API. It's under-documented, but it works very well! You can add apps, commands, or even redesign the entire interface using it. It executes modded functions on specific events, so you could really have it do anything.
As of yesterday, there is also a simulated FileSystem. You can navigate it using in-game terminal commands, and you can create and remove directories.
(in-game screenshots are also a thing, you can even set a timer - ps: this is a 100% mod! As are all apps and commands in the current unreleased version. PM me on Telegram @TheCyaniteproject to get a copy~)
28 -
"Errors? Won't happen to me!"
One of my first jobs was to finish and maintain a program, that was made by a guy who had a real genius image among others. Years later, people said "oh him, that smart guy."
I never met him, but that's what i heard.
However, he was not only smart, but it seems he was also very confident. That's what i deduct from his code.
He didn't use catch-blocks. They were all empty. Not even logged.
If errors appeared , it was not possible to see what happened and where and why. The program would continue it's execution and if following steps could not work, because there had been an unnoticed exception, it would just throw another unnoticed exception and at some point, end in an undefined state.5 -
Why do Pokemon masters love JavaScript?
Because you gotta, try/catch them all
Haha. No laughs? Okay
*curls into a ball7 -
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 -
A Geologist and a developer are sitting next to each other on a long flight from LA to NY. The Geologist leans over to the developer and asks if he would like to play a fun game. The Developer just wants to take a nap, so he politely declines and rolls over to the window to catch a few winks. The Geologist persists and explains that the game is real easy and a lotta fun. He explains, "I ask you a question, and if you don't know the answer, you pay me $5. Then you ask me a question, and if I don't know the answer, I'll pay you $5." Again, the Developer politely declines and tries to get to sleep. The Geologist now somewhat agitated, says, "OK, if you don't know the answer you pay me $5, and if I don't know the answer, I'll pay you $50!"
This catches the Developer's attention, and he sees no end to this torment unless he plays, so he agrees to the game. The Geologist asks the first question. "What's the distance from the Earth to the moon?"
The Developer doesn't say a word, but reaches into his wallet, pulls out a five dollar bill and hands it to the Geologist.
Now, it's the developer's turn. He asks the Geologist, "What goes up a hill with three legs, and comes down on four?" The Geologist looks up at him with a puzzled look. He takes out his laptop computer and searches all of his references. He taps into the Airphone with his modem and searches the net and the Library of Congress. Frustrated, he sends e-mail to his co-workers -- all to no avail.
After about an hour, he wakes the Engineer and hands him $50. The developer politely takes the $50 and turns away to try to get back to sleep.
The Geologist is more than a little miffed, shakes the developer and asks, "Well, so what's the answer?"
Without a word, the developer reaches into his wallet, hands the Geologist $5, and turns away to get back to sleep.3 -
So... my girlfriend has a very random work schedule. Sometimes she works 4 days a week sometimes only 1, sometimes only at the weekend sometimes not at all. If only there would be an app to track that... 🤔
She tried quite a few apps on the app store but they were shit/ugly/too complex..etc
Wait.. i’m a developer, i can do that.
So i made a dead simple calendar-like app in javascript+fuseopen.
She selected the colors, background, layout etc..
If she taps on a date it turns red indicating that is a workday, if a workday is tapped it turns back to normal color.
The main logic is:
Main:
If(AppHasSavedWorkdays){
//check if save is current month
LoadCalendarWithWorkdays();
}else{
CreateEmptyCalendarAndSave();
}
She likes it.
Cool, so let’s build this! She has an iphone and my mac is still in the service center so i can’t build🙁
But its okay, i have a mac at my office, we can build there, the only downside is that is 40min of travel.
We take the subway, go to the office, build the app, make a certificate, install to her phone, everything goes as planned.
Coming back we were lucky enough to catch the bus that goes in 30 min intervals, we only had to wait like a minute so life is good 😃
I enter the house, chill down on the bed, pull out my laptop to close the project when a FUCK ME!!!!
I completely forgot to implement a whole else branch on start!!!
Soo the app does nothing when is opened on january 1😂😂
I guess that’s why we have testers and qa.. 😃
8 -
Never thought I will be hired by Chinese software/hardware company located in NYC to code in languages I don't know so well. Instead of lying and saying I know everything about C, PHP and SQL, I said that I suck pretty much at everything, but I'm a quick learner and will study day and night to catch up with their practices. Now I see they have no regret about me, but I still suspect them in hiring me because there is another guy who is Russian too and we all communicate well. Our current squad is 17 Chinese, 2 Russians, 1 Americans. Guess what, I learn Mandarin quicker than PHP. Sometimes a small lie is OK, but sometimes honesty is better.3
-
I'm fixing a security exploit, and it's a goddamn mountain of fuckups.
First, some idiot (read: the legendary dev himself) decided to use a gem to do some basic fucking searching instead of writing a simple fucking query.
Second, security ... didn't just drop the ball, they shit on it and flushed it down the toilet. The gem in question allows users to search by FUCKING EVERYTHING on EVERY FUCKING TABLE IN THE DB using really nice tools, actually, that let you do fancy things like traverse all the internal associations to find the users table, then list all users whose password reset hashes begin with "a" then "ab" then "abc" ... Want to steal an account? Hell, want to automate stealing all accounts? Only takes a few hundred requests apiece! Oooh, there's CC data, too, and its encryption keys!
Third, the gem does actually allow whitelisting associations, methods, etc. but ... well, the documentation actually recommends against it for whatever fucking reason, and that whitelisting is about as fine-grained as a club. You wanna restrict it to accessing the "name" column, but it needs to access both the "site" and "user" tables? Cool, users can now access site.name AND user.name... which is PII and totally leads to hefty fines. Thanks!
Fourth. If the gem can't access something thanks to the whitelist, it doesn't catch the exception and give you a useful error message or anything, no way. It just throws NoMethodErrors because fuck you. Good luck figuring out what they mean, especially if you have no idea you're even using the fucking thing.
Fifth. Thanks to the follower mentality prevalent in this hellhole, this shit is now used in a lot of places (and all indirectly!) so there's no searching for uses. Once I banhammer everything... well, loads of shit is going to break, and I won't have a fucking clue where because very few of these brainless sheep write decent test coverage (or even fucking write view tests), so I'll be doing tons of manual fucking testing. Oh, and I only have a week to finish everything, because fucking of course.
So, in summary. The stupid and lazy (and legendary!) dev fucked up. The stupid gem's author fucked up, and kept fucking up. The stupid devs followed the first fuckup's lead and repeated his fuck up, and fucked up on their own some more. It's fuckups all the fucking way down.rant security exploit root swears a lot actually root swears oh my stupid fucking people what the fuck fucking stupid fucking people20 -
Teaching new recruit some SQL (even though hes supposed to fucking know SQL and have multiple years experience but I was a contractor and idgaf, not messing up my money. Just fucking annoying to have an idiot around you all the time).
Me: Okay, so sys tables, so this one is for jobs yeah?
Him: Yeah
Me: Okay, so in this table, its obviously not one row per job per step cos you have multiple rows for the same job and step. Also, there is a datetime field, so what is it showing?
Him: Hmmmmm..... (after some time, back and forth we get to the answer).... history table
Me: Cooooooool, okay, so, lets say, I have a job with 5 steps. If i run it once, how many rows will be in this table?
Him: 5 rows.
Me: Correct, so if I were to have run this same job, 10 times, how many rows get inserted into the table?
Him: (Now...you have to understand, how long this thought process was, im trying to fill the gap with words but really, he was like, having a flashback or something...I kept quiet but silently wanting him to say anything....then he looks me dead in the eyes).... 10!
Me: Motherfucker what!?!? 10 What? If 1 time == 5, what does 10 times ==?
Him: Hmmmmmmmmm.... (yes...we are doing this whole flashback montage all over again)....... Ohhhhh, 1!
Me: .....Stop, think, its a history table. It holds history, for when every step is run for a job, why would it be only one row?
Him: OMG, I know what a history table is!!!!
Me: (Pissed off cos I don't take disrespect calmly). Fine, genius, answer, go!
Him: (LONGER WAIT THAN LAST TIME!!!!)....is it not 10?
Me: I swear, I'm gonna kill you one of these days.
Him: *chuckle*
Me: No...seriously....
TOOK 20-30 MINUTES FOR HIM TO SAY 50!!!!!!
And even then, I swear he didn't understand why. Serious, he was a special breed, had a manager that was a super tard and when I worked here, the spirit of that manager possessed this idiot, the CIO and his little right hand bitch zzzzzzzzzzzzzzzzz.
If there was ever a time I was willing to catch a case at work, it was there.
Bonus: Serious, it got to the point I had to come in and tell this idiot that he can only ask me questions today if he calls me by my name...and my name has changed today...and no, you can't ask me for it cos you need my name to ask me questions.....FUCK OFF kkthxbai.5 -
The solution for this one isn't nearly as amusing as the journey.
I was working for one of the largest retailers in NA as an architect. Said retailer had over a thousand big box stores, IT maintenance budget of $200M/year. The kind of place that just reeks of waste and mismanagement at every level.
They had installed a system to distribute training and instructional videos to every store, as well as recorded daily broadcasts to all store employees as a way of reducing management time spend with employees in the morning. This system had cost a cool 400M USD, not including labor and upgrades for round 1. Round 2 was another 100M to add a storage buffer to each store because they'd failed to account for the fact that their internet connections at the store and the outbound pipe from the DC wasn't capable of running the public facing e-commerce and streaming all the video data to every store in realtime. Typical massive enterprise clusterfuck.
Then security gets involved. Each device at stores had a different address on a private megawan. The stores didn't generally phone home, home phoned them as an access control measure; stores calling the DC was verboten. This presented an obvious problem for the video system because it needed to pull updates.
The brilliant Infosys resources had a bright idea to solve this problem:
- Treat each device IP as an access key for that device (avg 15 per store per store).
- Verify the request ip, then issue a redirect with ANOTHER ip unique to that device that the firewall would ingress only to the video subnet
- Do it all with the F5
A few months later, the networking team comes back and announces that after months of work and 10s of people years they can't implement the solution because iRules have a size limit and they would need more than 60,000 lines or 15,000 rules to implement it. Sad trombones all around.
Then, a wild DBA appears, steps up to the plate and says he can solve the problem with the power of ORACLE! Few months later he comes back with some absolutely batshit solution that stored the individual octets of an IPV4, multiple nested queries to the same table to emulate subnet masking through some temp table spanning voodoo. Time to complete: 2-4 minutes per request. He too eventually gives up the fight, sort of, in that backhanded way DBAs tend to do everything. I wish I would have paid more attention to that abortion because the rationale and its mechanics were just staggeringly rube goldberg and should have been documented for posterity.
So I catch wind of this sitting in a CAB meeting. I hear them talking about how there's "no way to solve this problem, it's too complex, we're going to need a lot more databases to handle this." I tune in and gather all it really needs to do, since the ingress firewall is handling the origin IP checks, is convert the request IP to video ingress IP, 302 and call it a day.
While they're all grandstanding and pontificating, I fire up visual studio and:
- write a method that encodes the incoming request IP into a single uint32
- write an http module that keeps an in-memory dictionary of uint32,string for the request, response, converts the request ip and 302s the call with blackhole support
- convert all the mappings in the spreadsheet attached to the meetings into a csv, dump to disk
- write a wpf application to allow for easily managing the IP database in the short term
- deploy the solution one of our stage boxes
- add a TODO to eventually move this to a database
All this took about 5 minutes. I interrupt their conversation to ask them to retarget their test to the port I exposed on the stage box. Then watch them stare in stunned silence as the crow grows cold.
According to a friend who still works there, that code is still running in production on a single node to this day. And still running on the same static file database.
#TheValueOfEngineers2 -
Dear Product owners / Company Owners / Whoever requesting a feature:
Devs like to know they are adding value to whatever product they are working on. Every time you request a stupid no value added request, you kick the dev's soul.
After several hits the developer will stop caring about the software and eventually will get the job done, but oh boy, the amount of tech debt/trash code the dev is gonna leave behind will be horrendous.
Then the next developer, not only takes the hit from another stupid request, he/she will see the crappy code the past sad developer left and will take a double hit. Of course all of them start proactive and try to fix previous blood trails but sadness will catch them eventually.
If you want you're apps/products/reports to be good in a long run don't make stupid requests.
BAs, Stop being Expensive Email Forwarders and challenge a request, understand the process and then hand it to the developer.
Us developers are sensible cute ponies. Treat us well or expect poor quality projects8 -
!rant
Today I bring happy news. First company I interviewed at clicked so well, both personally and technically, and they expressed an eagerness to hire me on the spot. I figured we might as well talk salary to compare them against other interviews. The offer they made me was so good I decided to sign there and then. They said they participate in a fair wage program but for me this is absolutely the dream. I get lots of nice perks to boot. And they've already mailed me some tech documentation to go over so I can prepare, as I'll be working with the latest front end stuff and of course my trusty .NET (and yes I asked it'll be C#, haha).
I can't even begin to express how great this is. The last decade I've been unemployed for several years in total, and vastly underpayed when I was employed. I've worked in some toxic environments, been falling behind on tech and wrote a lot of rubbish code as a result of that. But it seems that somehow all the hard work I did put in paid off by taking a chance when it presented itself and go in accepting I might fail horribly. And I did bomb the tech questions actually. But they let me explain myself and come to answers together and saw beyond the black and white.
In short I feel like I've won the work lottery and will start 2018 in style. Part of me is still scared though, that there will be a mistake or a catch or even somehow I'll ruin everything. But that is the risk in life and I'm just going to have to deal. What I can control and will do is my very best, because I want to keep succeeding and have a great future career. And I hope I can inspire others in the same boat with my actions too.1 -
Weirdest co-worker... We'll not to be judgy, but I think our industry is sort of home of the weirdos, but.. there's a few over-the-top weirdees we've had at work.
First one that comes to mind was a guy that walked liked Mr. Burns, hands behind the back & chest out. He microwaved the same thing every single day for breakfast - crackers, sausage and cheese. 😖This guy would get to his tasks very slowly, wouldn't talk to anyone on our team, and would go missing from his desk a lot, sometimes for extended periods (2+ hours). He really struggled to catch on to easy tasks. He quit after a few months, thank god.
Another weirdo we had was a girl who just couldn't dress to save her soul. She would wear these ugly ass sneakers that had neon colors reminiscent of bowling shoes (neon orange and green) and would wear turtlenecks and floor length skirts that all the colors just clashed. Her outfits were uglier than your great grandma's. Myself, her and 2 other girls dressed up as the Dr. Seuss things for Halloween, but did h1, h2, etc. tags instead and she put like rope from curtains in her hair with like 10 little pony tails. Just like wtf. She would play her gameboy at lunch and not talk to anyone much. She was really bad at our job, a lot of clients complained. She would literally read a book, braid her bangs or nap at her desk. Needless to say, she was fired.6 -
Depression update two.
Thanks for amazing support guys!
I have made decision to have a digital detox. Today I did have another bout of depression accompanied with a mild case of confused state of mind and suicidal thoughts. I have found the triggers(Social media and too much time spent on the internet.) I have lost a lot of weight too. From 68KG -> 46 KG in span of weeks. So I hope I will catch you soon after I recover from it.
Fuck depression. If anyone is having bouts of depression please contact your health-care provider or friends/family.
Love you all. ❤️🙏☺️10 -
Love really fucking sucks. It's the only exception i try but can't catch and i end up crashing in a bar alone and drunk. I finally wake up in my apartment just to do it all over again.14
-
!rant
So, I imagine this little prank is about as old as graphical OS interfaces, but anyways.. Now and then I will take a screenshot of someone's desktop, set that image as their wallpaper, then hide all their icons, make their taskbar (or plural for Linux) to the smallest possible size, and wait for them to try use their PC.
One day a few years back, I tried to catch my mom with this trick, but although it was still pretty epic, it did not happen quite as I expected.
Suffice to say with her knowledge of keyboard shortcuts, she actually used her laptop for about an hour before she noticed none of the taskbar buttons were working.
Yay for trying to prank people who actually know how to use a computer. Lol.1 -
LONELINESS IS REAL
I am a freshman in a university ( about to complete my first year ) with a girl to boy ratio of around 1:10. During my first semester I was spending a lot of time with friends, chatting up with people and making connections. Due to this my productivity as a dev, if I am even capable of being called that decreased ( I was not a developer before joining , but I had an aim of being one , esp at least the best in my batch ) after 1st year. In retrospect I did nothing productive till 3 months out of 4 in my first sem and the guilt hit me hard . During the last month I had to catch up with my much neglected studies and all I had done was a little bit of html and css, and barely scratched the surface of js( please don't judge me for this :) , I had to start somewhere < although I learned a little bit of C++ > ). BUT I WAS A HAPPY CUNT, and had no sign of lonelines. Now during this sem , I had made progress ( learn js with es6 syntax and still learning, did c++ and extended my knowledge ) . Currently I am working on my Vue full stack app ( along with express and some websocket library , TBD ) < yeh I learnt some backend too > , and increasing my knowledge of dsa using clrs. Although my productivity has increased manifolds but I know feel the need of closure. I am kinda happy with the fact that I know a lot of people around here ( thanks to my extroverted 1st semester ) but sometimes it hits me hard at night when I don't have a monitor to drown my eyes and thoughts in. I have increased my academic performance too but I need someone to share and express my feelings with. I could have made a girlfriend earlier but now most of them are taken and I have lost touch. But believe me, all I want is a companion to spend these lonely days and night ( not talking about as a friend ). Staying away from home isnt easy you know...m :(
KUDOS TO DEVRANT FOR DEVELOPING A COMMUNITY WHERE PEOPLE LIKE ME CAN FEEL SAFE IN OUR NATURAL HABITAT. I COULDN'T HAVE EXPRESSED MY FEELINGS ANYWHERE ELSE EXCEPT IN A PERSONAL BLOG ( where no one would have read it )
PS1: I apologise if I sounded arrogant about any of my skill, I didn't mean that way. I ain't even that good, just kinda proud of myself a little for achieving something I couldn't have thought.
PS2: Any type of suggestions and help is much appreciated ( considering I am a college student who went into some serious development 4 months ago , I am pretty impressionable ;) )
PS3: Please don't confuse this with depression. I am HAPPY BUT LONELY
PS4: Is there a way so that I can change my username?16 -
TL.DR.: Emojis in commit messages + bad commit messages made by Microsoft™ employees.
Yes, I'm looking at you Microsoft. It would be helpful if I can, you know, understand your commit messages instead of trying to guess wtf _that_ emoji means. That is, if it is the same emoji on my machine. We didn't figure that one out yet. And no, "Some 💄 changes ✨" is not a good commit message, even if you interpret it correctly (which depends on your emoji icon set).
idk about you, but that shitty 💄 emoji tends to be (see image) and I happen to associate that with an XLR audio cable. I had to ask someone else to understand a commit message; a message supposed to be explicit—stating what you changed and optionally why you changed it (you can off-load that part to an issue tracker).
Furthermore, that "Some 💄 changes ✨" commit did none of that. "I made cosmetic changes somewhere for some reason without linking to an issue." If you didn't catch that little detail yet: "COSMETIC CHANGES" is vague as fuck. What is a cosmetic change?
* Does a cosmetic change mean adjusting indentation?
* Does it mean deleting unnecessary abstraction to make the code more readable?
* Does it mean refactoring code to add that beauty factor?
* Does it mean all of the above? Or perhaps a specific combination of these?
Human communication is shit enough, don't make it worse than it already is.
22 -
Earlier I signed up on this forum called NulledBB. Basically some hacker skiddie forum that had a dump of an archive I wanted, unfortunately behind a paywall which I didn't want to bother with.
On signup I noticed that I couldn't use my domain as an email address, as I usually do (the domain is a catch-all which means that mail addresses can be made up for each service I sign up to on the fly, super useful). They did expose the regex that they accepted email as however, which included something along the lines of "@live.*".
So I figured, why not register a subdomain live.nixmagic.com real quick and put that into the mail servers? Didn't take too long and that's what I eventually went with, and registered as somepissedoffsysop@live.nixmagic.com (which I have no trouble putting on a public forum as you'll see in a minute).
Still didn't manage to get that archive I wanted but I figured, fuck it. It's a throwaway account anyway. But eventually that email address started to receive spam. Stupid motherfucker of a forum operator with his Kali skidmachine probably leaked it.
Usually I just blacklist the email address in SpamAssassin by adding an additional spam score of 100 to email sent to such addresses. But in that case it didn't even sit on the main domain, thanks to that stupid regex block from earlier... 😏
*Logs into my domain admin panel*
*Le rm on the live.nixmagic.com record*
Null routed entirely.. nulled, if you will! 🙃3 -
Dev: Hi Guys, we've noticed on crashlytics that one of your screens has a small crash. Can you look?
Me: Ok we had a look, and it looks to us to be a memory leak issue on most of the other screens. Homepage, Search, Product page etc. all seem to have sizeable memory leaks. We have a few crashes on our screens saying iPhone 11's (which have 4gb of ram) are crashing with only 1% of ram left.
What we think is happening is that we have weak references to avoid circular dependencies. Our weak references are most likely the only things the system would be able to free up, resulting in our UI not being able to contact the controller, breaking everything. Because of the custom libraries you built that we have to use, we can't really catch this.
Theres not really a lot we can do. We are following apples recommendations to avoid circular dependencies and memory leaks. The instruments say our screens are behaving fine. I think you guys will have to fix the leaks. Sorry.
Dev 1: hhhmm, what if you create a circular dependency? Then the UI won't loose any of the data.
Dev 2: Have you tried looking at our analytics to understand how the user is getting to your screens?
=================================
I've been sitting here for 15 minutes trying to figure out how to respond before they come online. I am fucking horrified by those responses to "every one of your screens have memory leaks"2 -
When you have dependency issues and can't work it out...
Just run
#npm install all-packages
And wait a millennia
https://npm.io/package/...
6 -
I once had to make a shitty canvas game as part of a marketing campaign when I worked for an agency, for fuck only knows what. You dragged a shopping trolley back and forth in an aisle, and got points for catching items that fell from the top.
The initial round of feedback had the complaint that sometimes players weren't receiving points for items. I spent a night playing this senseless game over and over, but I never failed to get the points for an item. I was pretty confident that it worked, it wasn't like the logic was complex, so I sent it over.
Second round of feedback had the same complaint. They were getting quite annoyed by it, said that it was a bad user experience. Again, I could not reproduce it at all: the game was an equally tedious waste of life on every device I tried it on.
In exasperation, I asked the sales guy whose pitch it had been to get me a video or a more detailed report. The client was quite arsey, as they saw it, at having to do bug-fixing for us, but they did agree.
Anyway, it transpired that they were angry that players were not receiving the points for the items they *failed* to catch. The way they saw it, the game wouldn't be fun if you were punished for not catching items - so they wanted the player to get ten points for every item on screen, regardless or not of whether they caught it in their trolley. Of course, I thought. Silly me.
I was actually quite impressed at how a marketing department could accidentally undermine the very notion of a game whilst seeking to make one more fun.8 -
So spent almost all my time on break just hoping to catch the elusive 512++, never came so I went to bed and slept... Woke up and by the skin of my teeth!!!!
8 -
May i ask for help dear fellow devRanters?
@aureliagbrl suffered a deep depression and pressure from her family, the cause is exceptionally simple yet very crucial; so here's the story :
Every week, in friday after the last class she have to go home to fulfill her family wish to gather around and will come back to her dorm in Sunday. her home is more than 1.5 hour from University. recently one class in Wednesday moved out to Saturday Noon for some reason this cause her to go home in Saturday afternoon, yet her family doesn't care if it means she have to wake up 3am in Monday, to get back alone to catch up with class. her family just want to gather around longer, that's it, no exception. According to her this is so frustrating and exhausting. so the condition now is Tomorrow Morning (Monday) there will be a Live Coding Exam. she isn't prepared, her only wish was to get back on Sunday instead of Monday to Study. her family discard her wish entirely. this make her so deeply depressed and i can't even talk to her, she starting to mumbling about quitting college, and etc, etc.
We all know how bad it is to burnt out right ? and we want our fellow developers get out from it and a good shape. My wish is simple from you guys, i wish you can mention her in comment and cheer her up.
Thank You
here is her cheerful photo.
35 -
The more I use Go, the more i start to like it. I didn’t realize how nice being able to generate binaries for every OS that matters was, until I had that power. It beats the hell out of trying to distribute a Python app for sure.
Sure, it has its warts.
It’s overly bureaucratic in the same way Java is.
I hate that you can’t import something without using it (most people I’d wager preemptively import libraries they know they’re gonna need even if the code isn’t written yet)
I really wish there was a way to just say “See this JSON blob? All those keys and values are strings, trust me, you don’t need me to tell you the type of each one individually.”
Generics would be nice.
I’d kill for exceptions - any decently sized go program is going to have very many if err checks where most could be condensed down to a single try/catch in most other langs.
I wish the tooling was better. Dependency management was a solved problem when Go was released and yet they chose to ship without it. There’s still no standard. Many hours of time have been wasted dinking with this.
But ya know what? Even with those warts, it’s still easier to write than Java. It’s still write once run anywhere, it’s blazing fast, and doesn’t require your end user to install an entire freakin runtime.
<3 Go2 -
I just tried to sign up to Instagram. I made a big mistake.
First up with Facebook related stuff is data. Data, data and more data. Initially when you sign up (with a new account, not login with Facebook) you're asked your real name, email address and phone number. And finally the username you'd like to have on the service. I gave them a phone number that I actually own, that is in my iPhone, my daily driver right now (and yes I have 3 Androids which all run custom ROMs, hold your keyboards). The email address is a usual for me, instagram at my domain. I am a postmaster after all, and my mail server is a catch-all one. For a setup like that, this is perfectly reasonable. And here it's no different, devrant at my domain. On Facebook even, I use fb at my domain. I'm sure you're starting to see a pattern here. And on Facebook the username, real name and email domain are actually the same.
So I signed up, with - as far as I'm aware - perfectly valid data. I submitted the data and was told that someone at Instagram will review the data within 24 hours. That's already pretty dystopian to me. It is now how you block bots. It is not how Facebook does it either, at least since last time I checked. But whatever. You'd imagine that regardless of the result, they'd let you know. Cool, you're in, or sorry, you're rejected and here's why. Nope.
Fast-forward to today when I recalled that I wanted to sign up to Instagram to see my girlfriend's pictures. So I opened Chromium again that I already use only for the rancid Facebook shit.. and it was rejected. Apparently the mere act of signing up is a Terms of Service violation. I have read them. I do not know which section I have violated with the heinous act of signing up. But I do have a hunch.
Many times now have I been told by ignorant organizations that I would be "stealing" their intellectual property, or business assets or whatever, just because I sent them an email from their name on my domain. It is fucking retarded. That is MY domain, not yours. Learn how email works before you go educate a postmaster. Always funny to tell them how that works. But I think that in this case, that is what happened.
So I appealed it, using a random link to something on Instagram's help section from a third-party blog. You know it's good when the third-party random blog is better. But I found the form and filled it in. Same shit all over again for info, prefilling be damned I guess. Minor convenience though, whatever.
I get sent an email in German, because apparently browsing through a VPS in Germany acting as a VPN means you're German. Whatever... After translating it, I found that it asks me to upload a picture of myself, holding a paper in my hands, on which I would have a confirmation code, my username, and my email address.. all hand-written. It must not be too dark, it must be clear, it must be in JPEG.. look, I just wanted to fucking sign up.
I sent them an email back asking them to fix all of this. While I was writing it and this rant, I thought to myself that they can shove that piece of paper up their ass. In fact I would gladly do it for them.
Long story short, do not use Instagram. And one final thing I have gripes with every time. You are not being told all the data you'll have to present from the get-go. You're not being told the process. Initially I thought it'd just be email, phone, username, and real name. Once signed up (instantly, not within 24 hours!) I would start setting up my account and adding a profile picture. The right way to ask for a picture of me! And just do it at my own pace, as I please.
And for God's sake, tackle abuse when it actually happens. You'll find out who's a bot and who isn't by their usage patterns soon enough. Do not do any of this at sign-up. Or hell, use a CAPTCHA or whatever, I don't fucking care. There's so many millions of ways to skin this cat.
Facebook and especially Instagram. Both of them are fucking retarded.6 -
Google:- Google home is using machine learning to remove all type of back noise like traffic, air, and others so the call experience goes smoother.
Microsoft:- In Skype we are using machine learning to catch all type of back noise and mix it with your voice. Skype will try every possible way to make your call experience as bad as possible. Every type of noise Trafic, Air, hardware, your breath if there is nothing! the software will cut your voice and send only a few parts.4 -
Manager: Hey, what you working on?
Me: cough-finding another team-cough.
Manager: I didn't catch that.
Me: Sorry my throat is acting up today, i've been bug fixing all day.
Manager: Ah great, thanks.1 -
Crazy code.
You know when you come across some code, where you think: “I kinda see what you were going for, but it’s still hella dumb though...” right?
Currently doing some work on an F# backend, and the dev clearly knew enough of the language, but their code makes me question a lot.
The problem is simple: use a third party tool to generate images of each page in a pdf.
Said tool supports:
1. Querying the number of pages
2. Getting all pages as separate images in a single invocation
Can you guess how the dev solved it?
They’ve recursively incremented a page number, called the external tool to grab the image of that page.
“But how does it know when it’s run out of pages?” I hear you ask.
Simple. Catch the inevitable exception, and check against a hardcoded string literal to see whether it says “must be before the end of the document”.
I shit you not.
I nearly had an actual seizure when I was debugging some semi-related code and ended up in this wonderland of fuckery.
The recursion and pattern matching was flawless though, yet the tool’s website clearly states the supported functionality.
The whole thing feels like they tried to do it the right way, but couldn’t be bothered / couldn’t get it right, so they ended up creating this insane bit of madness.5 -
After I spent 4 years in a startup company (it was literally just me and a guy who started it).
Being web dev in this company meant you did everything from A-Z. Mostly though it was shitty hacky "websites/webapps" on one of the 3 shitty CMSs.
At some point we had 2 other devs and 2 designers (thank god he hired some cause previously he tried designing them on his own and every site looked like a dead puppy soaked in ass juice).
My title changed from a peasant web dev to technical lead which meant shit. I was doing normal dev work + managing all projects. This basically meant that I had to show all junior devs (mostly interns) how to do their jobs. Client meetings, first point of contact for them, caring an "out of hours" support phone 24/7, new staff interviews, hiring, training and much more.
Unrealistic deadlines, stress and pulling hair were a norm as was taking the blame anytime something went wrong (which happened very often).
All of that would be fine with me if I was paid accordingly, treated with respect as a loyal part of the team but that of course wasn't the case.
But that wasn't the worst part about this job. The worst thing was the constant feeling that I'm falling behind, so far behind that I'll never be able to catch up. Being passionate about web development since I was a kid this was scaring the shit out of me. Said company of course didn't provide any training, time to learn or opportunities to progress.
After these 4 years I felt burnt out. Programming, once exciting became boring and stale. At this point I have started looking for a new job but looking at the requirements I was sure I ain't going anywhere. You see when I was busy hacking PHP CMSs, OOPHP became a thing and javascript exploded. In the little spare time I had I tried online courses but everyone knows it's not the same, doing a course and actually using certain technology in practice. Not going to mention that recruiters usually expect a number of years of experience using the technology/framework/language.
That was the moment I lost faith in my web dev future.
Happy to say though about a month later I did get a job in a great agency as a front end developer (it felt amazing to focus on one thing after all these years of "full-stack bullshit), got a decent salary (way more than I expected) and work with really amazing and creative people. I get almost too much time to learn new stuff and I got up to speed with the latest tech in a few weeks. I'm happy.
Advice? I don't really have any, but I guess never lose faith in yourself.3 -
I took this contract and made the suggestion that we backup to the cloud and create a private repo on GIT. Client said no, local should be fine, they don't want someone stealing their code. I said okay fine.
AC just went out in the server room and they apparently had a leak from the AC to the power supply which they happened to put on top of the rack servers and switches. I'm surprised that place didn't catch fire, might be to early to call it.
All this on a Friday and we were 2 weeks away from launch party.
Not my fault, I clearly said we backup to cloud and use GIT on private repo.3 -
i know we're all sick and tired of the covid talk, but...
I'm so, so sedentary right now, more so than two years ago, and that's a feat.
this past week i had to walk a little and do some stuff, and today i woke up a little earlier and spent my afternoon in the sun. and it feels so good, to just... do nothing, sunbathe, pet my cat, kiss my boyfriend.
i never realize how much this shit wears me down until i catch a break. it's not just the pandemic though, it's this career, this lifestyle. sitting in front of a computer for 8 hours straight, no window in sight... that's death, no matter how much of an introverted nerd i may be.
if someone wants advice, I'll tell you to go out, get some fresh air, do nothing at all. we don't need to do something at every minute of the day, that's not resting. find a park, a beach, some piece of nature and just breathe it in, it's worth it.4 -
Do you have a ‘Drama Queen’ on your team?
This happened last week.
DK = Drama Queen
DK: “OMG..the link to the document isn’t working! All I get is page not found. I’m supposed to update the notes for this project…and now I can’t! What the _bleep_ and I supposed to do now?!...I don’t understand how …”
This goes on for it seems 5 minutes.
Me: “Hold on...someone probably accidently mistyped the file name or something. I’m sure the document is still there.”
DK: “Well, I’ll never find it. Our intranet is a mess. I’m going to have to tell the PM that the project is delayed now and there is nothing I can do about it because our intranet is such a mess.”
Me: “Maybe, but why don’t you open up the file and see where the reference is?”
DK: “Oh, _bleep_ no…it is HTML…I don’t know anything about HTML. If the company expects me to know HTML, I’m going to have to tell the PM the project is delayed until I take all the courses on W3-Schools.”
Me: “Um…you’ve been developing as long as I have and you have a couple of blogs. You know what an anchor tag is. I don’t think you have to take all those W3 courses. It’s an anchor tag with a wrong HREF, pretty easy to find and fix”
DK: “Umm…I know *my* blog…not this intranet mess. Did you take all the courses on W3-Schools? Do you understand all the latest web html standards?”
Me: “No, but I don’t think W3 has anything to do the problem. Pretty sure I can figure it out.”
DK: “ha ha…’figuring it out’. I have to know every detail on how the intranet works. What about the javascript? Those intranet html files probably have javascript. I can’t make any changes until I know I won’t break anything. _bleep_! Now I have to learn javascript! This C# project will never get done. The PM is going to be _bleep_issed! Great..and I’ll probably have to work weekends to catch up!”
While he is ranting…I open up the html file, locate the misspelling, fix it, save it..
Me: “Hey..it’s fixed. Looks like Karl accidently added a space in the file name. No big deal.”
DK:”What!!! How did you…uh…I don’t understand…how did you know what the file name was? What if you changed something that broke the page? How did you know it was the correct file? I would not change anything unless I understood every detail. You’re gonna’ get fired.”
Me: “Well, it’s done. Move on.”9 -
Using pokemon exeption handling on some very important and sensitive back end stuff to meet a deadline.7
-
Does anyone feel overwhelmed by all the new technologies? It's like every developer nowadays code in JS, and knows ES6, React, webpack, babel by heart. I have been working in Java for less than a decade and sometimes feel like I can't catch up. Even in Java ecosystem there is now Scala, Groovy, Gradle, Kotlin... Not to mention other languages like Python, Swift... How do you guys have time to pick up everything?? 😖7
-
A project manager, a computer programmer and a computer operator are driving down the road when the car they are in here a flat tire. three men try to solve the problem
the project manager said: let's catch a cab and in ten minutes we will reach out destination.
the computer programmer said: we have drivers guide.I can easily replace the flat tire and continue our drive.
commuter operator said: first of all turnoff the engine and turn it on again. may be it will fix the problem.
suddenly a Microsoft engineer passed by and said: try to close all windows, get off the car, and then get on and try again. -
So I wanted to update my visual studio. Turns out I cant because WPF (Apparently the Installers uses it) has a problem with broken fonts.
Okay. No problem I thought. I uninstalled all 720 fonts and re-registered them, filtering out the 3 broken ones. Checked the time-stamp as suggested. Everything fine. Had to reboot. (Of curse.)
Rechecked the fonts, reports as okay. Tried to start the installer BUT THIS FUCKING PIECE OF SHIT SOFTWARE CRASHES ON ME AGAIN WITH THE SAME FOCKING ERROR. IT DOESN'T EVENT WANT TO FUCKING TELL ME WHICH FUCKING FONT IS THE PROBLEM. I CHECKED EVERYYYY SINGLE FUCKING FONT. NOT THAT THERE IS NO FUCKING WAY TO FUCKING CATCH A FUCKING FUCKER EXCEPTION IN THIS FUCKING WORLD. I mean seriously. Why would you crash on a font THAT YOU DON'T EVEN USE IN YOUR FUCKING FUCK PROGRAMM TO INSTALL YOUR FUCKING PICE OF SHIT SOFTWARE.
But, IT GETS WORSE. TURNS OUT MICKY FUCKING SOFT KNOWS ABOUT THIS FUCKING BUG SINCE TWO-FUCKING-THOUSAND-FOURTEEN.
And they didn't fixed it. Nooooooooo. THEY FUCKING WROTE A FUCKING WORKAROUND THAT DOES NOT FUCKING WORKKKKKK AND KEEP PUTTING THIS FUCKING BUG IN EVERY FUCKING INSTALLER SINCE THEN.
Can you tell I'm pissed? YES? GOOOOOOD. BECAUSE I FUCKING AM.
MICKYSOFT CAN GO AND SUCK A FUCKING APPROPRIATE THING TO SUCK IN THIS FUCKING SITUATION.
THE BEST? THEY EVEN FUCKING DARE TO ASK ABOUT MY FUCKING FEEDBACK. YOU KNOW WHAT? YOU GET MY FUCKING FEEDBACK. TOGETHER WITH A FUCKING BAG FULL OF FUCKING SHIT TO YOUR FUCKING HQ
CAN I HAVE A FUCKING STRESSBALL NOW
</rant>
3 -
Raging here, overheating really. One spends thousands on technology that is promoted with the catch phrase "it just works", yet here I am, after updating my fancy new emoji maker (iphone x) to 11.2 and then attempt to carry on working by compiling my code to test some new features. And...
oh, whats this xCode? You have a problem? You can't locate something? You can't locate iOS 11.2 (15C114)... sorry and you think that this "May not" be supported in current version of Xcode?
Let me get this straight you advanced piece of technological wizardy, you know you are missing something, you in fact know what it is, you can actually TELL me what is missing and yet, still, in 2017, you can't go FETCH it?????
Really? All you can do is sit, with that stupid look on your face, and watch the paint dry? Your stuck? That's it?
I hate you for the false pretense of advanced capability. and for your lack of a consistent dark theme so my eyes stop bleeding when reading your "I don't know what to do" messages...
By the way, maybe you can stop randomly crashing, or pinwheeling, I get that your bored as a machine designed to crunch numbers/data/code all day long and that for fun you feel you have to add some color to your subsitance. But stop it. Do what I'm told you can do, "JUST WORK" for once without me having to drag you forward kicking and screaming.
K. that feels better. Now for some whiskey.5 -
Fuuuuck!!!
In 2017 I had a reeeeally sweet offer for a Java-gig. Equity, quarterly evaluations with potential raises, exciting products, world class experts as colleagues and all. The catch was relocating across the entire country, and due to some family health stuff, I was forced to decline.
Today I learned that the company is valued at about $150M. The equity alone would have been worth around 1.5M today, and thats not all. One of the founders are giving away about 15% of the shares to the employees, landing them about 100K in equity each.
And here I sit, wondering about what the next electric bill will be...10 -
try philosophy()
catch markAsSpam()
Do you ever think of organizations as people? People personify Google and stuff all the time, but I mean something deeper.
When I look at devRant threads, I feel like we're all part of a collective consciousness, growing and thinking and making decisions. Society is a living thing of its own, in the same way that living cells unknowingly make up an individual body. When a question is asked from one node, another node answers, and the result is a repository of questions, answers, opinions, and jokes on an app that might appear as the scrolling thoughts of a singular mind rife with pure, aggressively structured information.12 -
I accidentally created something adorable. See, what happened was I wanted to figure out how to programmatically create blobcats for different countries, since I’d done it by hand for every country represented at my company and wanted a quick way to catch up once we add people from different countries.
Enter Cloudinary!
Wrote a transform that would take the image, shrink it to 150 px wide, then add the blobcat emoji as the underlayer behind and above it, then add the little arms I drew die holding the flag on top.
And that worked! I had a folder of flags and the frontend could query them using the transformations and the country blobcats were born! I even added a preset so I could view the little blobcats with their flags when I looked at the uploaded flags
But then I’m like “Eh, each transform adds a thing against my limit and I really don’t want to go over if this gets popular (why do I ever think _that’s_ a possibility?). I know! I’ll just add the transform on upload and reupload all the flags to a different folder! Then I’ll just need to request the image instead of having to do the transform per request.
And that worked!
But I forgot I still had my preset transform on.
So in addition to the successful country blobcat, I had a preview of what I like to call papa blobcat with kitten blobcat.
4 -
*Senior Dev:* Ah yes, we need to put try-catch in every function to handle errors and Logger.Log() at the beginning.
*Me:* Is not better to define a global error handler and use the stacktrace instead of doing all that?
*Senior Dev*: ...
*Senior Dev*: Is a rule here, do what I'm telling you.3 -
The cleaning lady saga continues...
(previous: https://devrant.com/rants/1850777)
Had an appointment with their manager, stuff gets discussed and coordinated at a 3x slower pace than if I'd done it myself (as usual because fuck efficiency when there's muggles involved -_-), yada yada.
*mail addresses for contact start getting discussed*
Incompetent fuck of a manager: And you $realName, your email address is $company@nixmagic.com, then changed to $nickname@nixmagic.com? Mind explaining this?
Me: Oh yeah that's just because I give out different email addresses to each contact person when it involves public forms or registrations, helps with spam prevention and putting the company name of the correspondent in there helps with easy recognition when some company's database leaks and I start getting a lot of spam on that mailbox.
IFOM: Really.. we actually weren't sure whether we should reply to something with our company name in it.. you know, not sure whether it's legit etc. Why would anyone want to use one of our email addresses as theirs?
… Let that sink in for a moment. They think that $company@nixmagic.com is theirs? Just because it's their domain (minus TLD) in front of MY FUCKING DOMAIN? How about you start by learning how email addresses work first, because clearly you have no fucking clue about it. Are you the kind of brainless fucks that get lured in by http://totallylegitbank.com.freehost.com/... scams? Fucking stupid piece of fucking shit.
Oh, and when you're using MS Exchange, of course you can't know that when you're having your own domain, you actually also own every fucking mailbox on it, because Microshaft doesn't allow you to have more than n amount of mailboxes, unless you gobble up money for them. But you know what, in my case it's a fucking catch-all domain running Linux on its servers, so yeah I can use whatever the fuck I want in front of it, including your stupid fucking cleaning company.
IFOM: And then there's your current designated email address. $nickname@nixmagic.com..
Oh you're going to criticise that as well?! Yeah condor is my fucking nickname all over the internet, and my username on all my systems. That's why I use it. But you know what else is an email address that you might come across, because people are shallow idiots like that? ILoveBigTits69@gmail.com or something like that. You know what, how about I address you next time from ILoveBigTits69_OhAndYoursAreAWashboard@nixmagic.com, because you know what? I CAN FUCKING DO THAT. But you know, I at least am halfway fucking professional about my business-related stuff, so I won't because I really don't want to be associated with such an email address. So don't you fucking dare to criticize me for using my fucking nickname instead of my real name.
Long story short, people are fucking idiots.6 -
So at this startup i was single iOS dude age 34, android had 1.5 dudes, one older, one you ger. That 0.5 younger was tech director, really good, so they churned for two guys. Millenial, nice guy, never making conflict, just being sleazebag.
Nobody explained to boss why iOS was always late with features, even when i complained. So i got help, 10 months later, project was unpolished but stable, codewise. Now i interview and hire a guy, age 27, who was all yeah dude no problem, and that being my first interview, i fell under his friendly appearance. I ignored a fact that he didn’t know 90% of stuff i was asking him, because he was so friendly and outgoing and we will do anything attitude.
The guy knew very little, was childish and irresponisble. He showed at work at noon. He started telling me what to do, his senior collegue who started the project. He argued about everything that i would tell him. So i spent three to four hours a day charting with him, because we were in different cities. He had two uears of experence, but he was below junior level. And he refused any of my advices for learning in free time. No, he said, thats my free time, you will not tell me what to do. Well, how do you plan on being better, i asked. He said, i learn by doing. But, since he was at his job only six hours a day, instead of eight, and since he was productive only for 2, i guess he was lazy.
He would deliver a UI he would make, without business logic, and tell it is done. Then clients would call me and ask why text fields are not saved..
This all took me month to understand. I lost time, i lost trust, and soon he was fired.
But, soon i was fired also, replaced by another two devs who i had interviewd and formed a team. I was discarded as trash, just like that. I have even worked overtime to catch up with android guys, unpaid.
Took me year to recover mentally from this.
Lessons learned: be objective when interviewing. Job is business, not friendship, trust no one, keep neutral on work. Leave honesty for someone else, honesty will be used against you. Never criticize two girls in office who disturb developers by talking about sex and dicks all the time, dressed sexy, they are girlfriends of people ranked above you. Leave code perfection for your projects.3 -
Today I learned why it’s so important to have life outside engineering (better put, I remembered this).
For the last couple of weeks, we’ve been working hard to catch some deadlines, contributing to a large oss project. Getting up at 4am, working with the team in my timezone, having some time with family then working with people with 6-9 hour difference was extremelly challenging and I was so tired I literaly was a fucking pain to bear with.
Today, on Saturday, my wife started cleaning the bathroom sink drain. You know, started... “won’t fix” was not an option. First, the dirt and the smell, mmmmmm, you just have to love it. And then the thing collapses (yes, I was optimistic, trying to clean it just partly - I learned not to fix if it aint’t broken, I wonder where).
It’s of course built of trivial parts, but the water just finds its way. Needless to say, I am afraid of it :). In the end, it got resolved. Just as any bug we squash - with some anger and plenty of dirty words.
During the whole thing, I thought to myself, that all that stress at work is quite bearable; it put everything back into a perspective. Great feeling!1 -
So I'm writing some multithreaded shit in C that is supposed to work cross-platform. MingW has Posix threads for Windows, so that saved already half of the platform dependency. The other half was that these threads need to run external programs.
Well, there's system(), right? Uhm yes, but it sucks. It's incredibly slow on Windows, and it looks like you can have only one system() call ongoing at the same time. Which kinda defeats the multithreaded driver. Ok, but there's CreateProcessA(), and that doesn't suck.
Fine, now for Linux. The fork/exec hack is quite ugly, but it works and is even fast. Just never use fork() without immediate exec(). First try under Cygwin... crap I fork bombed my system! What is this shit? Ah I fucked up the path names so that the external executable couldn't be run.
Lesson learnt: put an exit() right after the exec() in the path for child process. Should never be reached, but if it goes there, the exit() at least prevents a fork bomb.
Well yeah, sort of works under Cygwin, but only with up to 3 threads. Beyond that, it seems like fork() at some point gives two processes the same PID, and then shit hangs.
Even slapping a mutex around the fork and releasing it only in the parent process didn't help. Fork in Cygwin is like a fork in the ass. posix_spawn() should work better because it can be mapped more easily to the Windows model, but still no dice.
OK, testing under real Linux. Yeah, no issues with that one! But instead, I get some obscure "free(): invalid size" abort. What the fuck would that even mean?! Checking my free() calls: all fine.
Time to fire up GDB in the terminal! Put a catch on the abort signal, mh got just hex data. Shit I forgot to compile with -O0 and -g. Next try. Backtrace shows the full call trace, back to the originating line in my program - which is fclose() on a file.
Ahhh I remember! Under Linux, fclosing a file that is already closed makes the program crash. So probably I was closing it twice. Checking back.. yeah that's where it was.
Shit runs fast on several cores now!8 -
First Rant here.
So I was working on some integration test issues when I found this by accident made by a professional level SW engineer:
@Test
public void testMethod() throws ApiException {
Response res = null;
try {
res = serviceToTest.callMethod();
} catch(Exception e) {
assertNull(res);
}
}
Was wondering why tests were being green after some code changes I've made cuz tests could have not been green afterwards.
Together with a senior (I'm also professional only) I've tried to explain him for a good 1-2hrs why this code is useless and he still did it. Good thing there are no errors in the real implementation from him after fixing the tests as it's code freeze here and we are having go live in a few days 🙃
Also luckily he isn't working on our code anymore and has only been doing so for a few weeks.
Wasted a day with it and gonna check all of his code now before I run in the next surprise.1 -
What I say:
Ah shit man! Spring break! Finally gonna be able to continue working on my personal project. Study, catch up with some books and tv shows while continuing to code!
What my wife hears:
Oh cool! Now I have someone to drive all around town getting me useless shit that I don't need while I am at work!!!
-_____________________________- -
would software product companies plz start describing what the product *actually* does on their homepages? if u say ur product/framework/tool will help me leverage this or collaborate that, it's an almost zero entropy statement, because everyone says so. Are u selling coffee or a .net gui library? because both can help me make my software better and leverage whatever it's supposed to leverage .. so, pleaaase, just say what ur product does, if that doesn't sell it, using hyped catch all phrases won't either ...
oh, and stop calling ur products somethingfy or somethingly .. just stop -
I swear I almost had a nervous breakdown today.
Advisor at college has told me I won't be graduating until Feb 2019, I'll be 29 with a degree in IT and my minor in software engineering. I feel like I'm just playing catch up to the younger crowd who got there sooner.
On top of that all the entry level programming jobs I applied to have rejected me on the basis of not having my degree yet. They're impressed with my work but they want me out of school. I have to wait it out until I'm closer to graduating.
On good days when I code Java web applets love what I do and I wouldn't have it different, but on days like today I feel like shit and wonder if my degree was worth it, especially when I factor in that my degree only went up to pre-calc on the math end. (I'm thinking of majoring in a masters in CS as a way to makeup, maybe)
I'm frustrated and I feel the same kind of loneliness when I graduated HS. I know there's a light at the end but some days it's just hell.
I'm sure a lot of you have gone through this. Any ideas to destress?6 -
!rant
I've lost all fucking motivation to do anything at the moment.
Fuck not even gaming is much fun anymore.
Also amazing that I have so little time on Mondays that I can't even eat properly.
Literally living on caffeine, a spoonful of, like, porridge and water on Mondays.
And of course the nice bistro is closed on Mondays.
Then there is that motherfucker of person at school that just randomly starts sharing weird ass details with you and promptly started to break out in tears when she failed maths today.
Like fucking hell, then for some reason the same person fucks up everything in her volleyball group by literally doing nothing and complains when she gets hit by a fucking volleyball, like, she doesn't even attempt to dodge it catch it.
So much for that fuckery.
Then there's these little brats that just completely play asshole and are being jackasses to everyone including upperclassmen and teachers.
Grab em by the throat and fucking put them in a toilet.
Literally the reason why our school is generally known as the 'Drecksloch', literally dirt hole.
The fucking volume is driving me batshit insane in school to the point where I just start yelling at people.
Fucking kids, it literally doesn't cost you shit to just shut the fuck up.
Okay, vent over.
Sorry for that.12 -
Not quite a interview question, but in a competition (I had build a compiler) the jury (they all told me they had all studied informatics) asked me what a compiler is... Not in a "lets try to catch him off manner" but rather in a "i am too stupid for this world manner" he asked me what a compiler was... And it got even worse: my compiler is based on linuxes utils (nasm+ld) the guy didnt know about linux. Assembler was much too much for him and when my compiler threw an error (I wanted to show them the error system) he told me I shouldnt present unfinished projects... Atleastthe other two were really nice and i still got 2nd place (behind a person who prorammed an Nxt thingy)7
-
I've had a couple of interviews that were bad because I fluffed them, but the worst was a 4 stage process I went through a while back.
Development hub for an international org, 1st stage was a phone call with high level questions. Stage 2 were online coding tests, which I passed. Third - another phone call. Finally, a visit to the office. I was informed that I was the only one to get this far after the other filtering. This is where it all went wrong.
I'd been led to believe this would be a reasonably informal chat (around an hour or so) to fill in some of the detail of what I'd already been given. It wasn't. It turned into 2+ hours of the most intense grilling I've ever had. Felt like I'd gone 12 rounds by the end. Another coding test in the middle of it. The interviewer seemed to be enjoying the opportunity to show that he knew much more than me and seemed to be trying to catch me out, rather than really discover what I knew.
By the end of it, I didn't want the job and I didn't want to report directly to someone who seemed to thrive on making life difficult to boost his own ego.1 -
Name a more iconic duo than web developers on help sites and having pissing contests over which modules they use instead of actually answering the question!
I've been a web dev/server admin for all of about a month now, and only known PHP for about a week of that, and the one thing really that grates on me isn't PHP's odd function naming inconsistencies or at times outright trash documentation, it's the other developers who, when asked a fairly straightforward question about why a mysqli function won't return something, demand you use PDO instead.
Please. I'm running a LEMP stack on a Raspberry Pi here, I'm trying to keep dependencies to an absolute minimum because the SD card is tiny, the Pi will catch on fire if it runs any hotter, and more dependencies are more potential points of failure. Just answer the damn question. I'm not going to install PDO for something I know I can do anyway just because it makes my code look slightly prettier.
Honourable mention to all you Node.js developers out there too, with your thousands of useless npm dependencies. I salute you.8 -
I just want to share this:
When I start working at my last job, I have little idea of what a unit test was.
My boss on one meeting said that unit testing will be mandatory (wich is ok and umderstandable).
Almost a *year* after that, no one still care about them. I see myself doing them the best I can, but I saw things like wrap the assertion line with "try / catch" to lie to the coverage and unit test percentage. Or in other cases directly uploading *manually* the code on the server without test at all.
And then, as the only developer who do the unit test ok I have to do the missing ones and repair the fake ones.
Then when something explodes the question all the managers love to ask "Did we had the testing?"
At least I quit... that job was some crazy shit, this is just one story of many.
Like that other time that my co-workers did not understand why I needed to do POJOs on an android app because the big bad JSON that the app used was working fine.... -
How do you deal with massively poorly-performing and unknowledgeable teams?
For background, I've been in my current position for ~7 months now.
A new manager joined recently and he's just floored at the reality of the team.
I mean, a large portion of my interview (and his) was the existing manager explicitly warning about how much of a dumpster fire everything is.
But still, nothing prepares you for it.
We're talking things like:
- Sequential integer user ids that are passable as query string args to anonymous endpoints, thus enabling you to view the data read by that view *for any* user.
- God-like lookup tables that all manner of pieces of data are shoved into as a catch-all
- A continued focus on unnecessary stored procedures despite us being a Linq shop
- Complete lack of awareness of SOLID principles
- Actual FUD around the simplest of things like interfaces, inversion of control, dependency injection (and the list goes on).
I've been elevated into this sort of quasi-senior position (in all but title - and salary), and I find myself having to navigate a daily struggle of trying to not have an absolute shit fit every time I have to dive into the depths of some of the code.
Compounded onto that is the knowledge that most of the team are on comparable salaries (within a couple thousand) of mine, purely owing to length of service.
We're talking salaries for mid-senior level devs, for people that at market rates would command no more (if even close) than a junior rate.
The problem is that I'm aware of how bad things are, but then somehow I'm constantly surprised and confronted with ever more insane levels of shitfuckery, and... I'm getting tired.
It's been 7 months, I love the job, I'm working in the charity sector and I love the fact that the things I'm working on are directly improving people's lives, rather than lining some fintech fatcat's pockets.
I guess this was more a rant than a question, and also long time no see...
So my question is this:
- How do you deal with this?
- How do you go on without just dying inside every single day?8 -
"Alright everyone, we can't keep this up. Every day our builds are breaking because of test failures."
"We could just be more diligent devs and actually write/update tests based on new behavior we introduce to the system?"
"What? No! We're just going to get rid of all tests!"
a few days later
"Guys!!! Everything's on fire now! How didn't we catch these huge breaking changes!"
https://media3.giphy.com/media/...2 -
After two months of NPM hell I have made the decision to stop trying to catch up to this Javascript insanity.
The salary I would make if I understood this shit is not worth my sanity. Most people develop a career, but all I seem to develop is RSI and a seething hatred for humanity.1 -
Most painful code error you've made?
More than I probably care to count.
One in particular where I was asked to integrate our code and converted the wrong value..ex
The correct code was supposed to be ...
var serviceBusMessage = new Message() {ID = dto.InvoiceId ...}
but I wrote ..
var serviceBusMessage = new Message() {ID = dto.OrderId ...}
At the time of the message bus event, the dto.OrderId is zero (it's set after a successful credit card transaction in another process)
Because of a 'true up' job that occurs at EOD, the issue went unnoticed for weeks. One day the credit card system went down and thousands of invoices needed to be re-processed, but seemed to be 'stuck', and 'John' was tasked to investigate, found the issue, and traced back to the code changes.
John: "There is a bug in the event bus, looks like you used the wrong key and all the keys are zero."
Me: "Oh crap, I made that change weeks ago. No one noticed?"
John: "Nah, its not a big deal. The true-up job cleans up anything we missed and in the rare event the credit card system goes down, like now. No worries, I can fix the data and the code."
<about an hour later I'm called into a meeting>
Mgr1: "We're following up on the credit card outage earlier. You made the code changes that prevented the cards from reprocessing?"
Me: "Yes, it was my screw up."
Mgr1: "Why wasn't there a code review? It should have caught this mistake."
Mgr2: "All code that is deployed is reviewed. 'Tom' performed the review."
Mgr1: "Tom, why didn't you catch that mistake."
Tom: "I don't know, that code is over 5 years old written by someone else. I assumed it was correct."
Mgr1: "Aren't there unit tests? Integration tests?"
Tom: "Oh yea, and passed them all. In the scenario, the original developers probably never thought the wrong ID would be passed."
Mgr1: "What are you going to do so this never happens again?"
Tom: "Its an easy addition to the tests. Should only take 5 minutes."
Mgr1: "No, what are *you* going to do so this never happens again?"
Me: "It was my mistake, I need to do a better job in paying attention. I knew what value was supposed to passed, but I screwed up."
Mgr2: "No harm no foul. We didn't lose any money and no customer was negativity affected. Credit card system may go down once, or twice a year? Nothing to lose sleep over. Thanks guys."
A week later Mgr1 fires Tom.
I feel/felt like a total d-bag.
Talking to 'John' later about it, turns out Tom's attention to detail and 'passion' was lacking in other areas. Understandable since he has 2 kids + one with special-needs, and in the middle of a divorce, taking most/all of his vacation+sick time (which 'Mgr1' dislikes people taking more than a few days off, that's another story) and 'Mgr1' didn't like Tom's lack of work ethic (felt he needed to leave his problems at home). The outage and the 'lack of due diligence' was the last straw.1 -
Just don't open it...
Will definitely not pretend to be productive 24/7. But the below help me reach a satisfactory 8/5 most day's.
- Exercise in the morning
- Eat breakfast
- Listen to good music
- Make sure to have fun moments throughout the workday (++ for initiating)
- Catch air, have a walk, take a break
- Minimize interactions with toxic people
- Be open in sharing knowledge, thoughts, work , good people will repay you
- Get in the kitchen, cook nice healthy meals
- Set concrete and reachable targets
- Remain eager to learn
- Celebrate successes
- Spent time with friends and family
- Catch enough sleep
And above all, DON'T open devRant!!! -
I started learning Golang today and really like it.
The error handling is *excellent*. It always works the same way and is standardized, unlike the hell that NodeJS error handling is (.catch(), try).
Modules confused the fuck out of me. I eventually figured out how they worked, but Go really doesn't try to make it easy to have multiple source folders...
I'll probably be re-writing my Discord Bot in Golang soon. Being able to have just one binary output will make things infinitely easier. Compile-time variables are another feature that's nice and easy to implement.
The goal is only having to upload a single binary to deploy on production from my CI script that has all keys and stuff inside. Feels good to finally throw all that old bad JS code out and starting completely fresh.7 -
Cannot understand those who are frustrated with it.
Sure, one can feel frustration when some project is not going as they were supposed to go, but that is life for ya, boi.
Without wanting to offend anyone it feels like devs who complain so much either do not actively search for a solution and learn shit properly and cry their soul out afterwards or they do search, but cannot find anything.
Patience is the solution. Do not let yourself fall down and stay strong.
Even if it takes a lot of willpower, retries, inner pain, patience and non-sleepy nights, you will and can do it. I believe in you.
My whole life was basically a psychological disaster.
I have had and still have depression and a lot of short frustrations from time to time, too, but I do not cry it out loud.
My high school is fucked up. In every single aspect. I am doing all-nighters almost every day. With maybe half an hour of sleep to get school projects done on time.
I cannot just say "fuck you. I am not gonna do this shit" to school, because that would affect my grades in a negative way. Same thing applies to you, as an employee, too. But at least you do not need to be afraid of getting bad grades.
Bad grades->not getting the desired degree->bad chance of finding a job
In your case:
Bad communication with boss->bad connection->bad chance of finding a job
But is that really so?
I do not think so. Nonetheless, you still can have a good chance of finding a job, if you have proven yourself to others in a great way. Everyone has bad times. Even with their bosses. That's normal. Being bad with someone does not make yourself bad in general.
The job world will still accept you, but school won't accept you again. Whenever I feel like the burnout is about to catch me, I take an immediate break and go outside. Take a walk in the sunset. Go to the forest. Run with music playing loudly. Swim. And other things like watching the stars in the silence of the night.
To finally come to an end here...
Do not make yourself feel bad that quickly and try to endure the pain. This is going to make you a better and stronger person.
If you cannot do it anymore (hitting the borders of burnout), take your time and do whatever makes you happy and treat yourself.
Life is not all about work. Were you born to be a worker? No. Were you born to be a slave of others? No.
What is holding you then? Let go of all the stress (for a minute). You are free.
You are a great person.
Do not forget that.7 -
Anyone reading these emails we are sending?
I work at a small place. A few users are using an application at our place that I develop and maintain. We all work remotely.
I announce by email to these few users a new version release of said application because of low level changes in the database, send the timeline for the upgrade, I include the new executable, with an easy illustrated 2 minutes *howto* to update painlessly.
Yet, past the date of the upgrade, 100% of the application users emailed me because they were not able to use the software anymore.
----------------
Or I have this issue where we identified a vulnerability in our systems - and I send out an email asking (as soon as possible) for which client version users are using to access the database, so that I patch everything swiftly right. Else everything may crash. Like a clean summary, 2 lines. Easy. A 30 second thing.
A week pass, no answer, I send again.
Then a second week pass, one user answers, saying:
> well I am busy, I will have time to check this out in February.
----------------
Then I am asking myself:
* Why sending email at all in the first place?
* Who wrote these 'best practices textbooks about warning users on schedule/expected downtime?'
*How about I just patch and release first and then expect the emails from the users *after* because 'something is broken', right? Whatever I do, they don't read it.
Oh and before anyone suggest that I should talk to my boss about this behavior from the users, my boss is included in the aforementioned 'users'.
Catch-22 much ? Haha thanks for reading
/rant7 -
Client doesn't want me to use internet, while connecting to their vpn to code. It's a security 'violation', it seems. Do they think I am Denise Richie to code without internet? And the catch is I code for OpenFlow with OpenNetworkLinux+OpenNIE. I mean, do they even understand what Open means in all these?11
-
Startup-ing 101, from Fitbit:
- spy on users
- sell data
- cut production costs
- mutilate people's bodies, leaving burn scars that will never heal
- announce the recall, get PR, and make the refund process impossibly convoluted
- never give actual refunds
- claim that yes, fitbit catches fire, but only the old discontinued device, just to mess with search results and make the actual info (that all devices catch fire) hard to find
- try hard to obtain the devices in question, so people who suffered have no evidence
- give bogus word salad replies to the press
This is what one of the people burned has to say:
"I do not have feeling in parts of my wrist due to nerve damage and I will have a large scar that will be with me the rest of my life. This was a traumatic experience and I hope no one else has to go through it. So, if you own a Fitbit, please reconsider using it."
Ladies and gentlemen, cringefest starts. One of fitbit replies:
"Fitbit products are designed and produced in accordance with strict standards and undergo extensive internal and external testing to ensure the safety of our users. Based on our internal and independent third party testing and analysis, we do not believe this type of injury could occur from normal use. We are committed to conducting a full investigation. With Google's resources and global platform, Fitbit will be able to accelerate innovation in the wearables category, scale faster, and make health even more accessible to everyone. I could not be more excited for what lies ahead".
In the future, corporate speech will be autogenerated.
(if you wear fitbit, just be aware of this.)
13 -
Like someone else already mentioned here, remember that interview goes both ways: youre there to gauge wether workplace suits you or no. Always ask to meet teamleads/project leads or potential colleagues before accepting the job and try talking with them.
I applied to 3 jobs and in all of them managers did put a brave face and told me lots of bs just to get me accept the job. Managers live in their own world, sometimes they dont even know what you will be working on.
Once I accepted a job and got stuck with a perfectionist teamlead for 8 months which could have been avoided given I had the chance to catch the bad vibes during the interview.
Another time I accepted a job and had to work with a backend guy for one year and his accent was so thick+stuttering that I had trouble in understanding anything he says. Every conversation felt like trivia contest. I wish I had knew that stuff before accepting the job -
Student here.
For those who got a degree in CS or similar, what is some advice you can offer to a sophomore in school?
The education I have gotten so far for a Software Engineering degree seems like it isn't enough. So far, I only know C++ and front end web development. Besides the little tiny projects they give us, they do not teach us how the field works.
One of my most lingering questions of all is.. what technologies should I know before interning and/or job hunting?!?! There are dozens of languages for everything; I'm lost. I feel the pain for developers in the future who have to catch up on technologies.
I have heard that learning C++ will make it easier to learn other languages. I won't know until I start another language (too busy working in the summers).
What regrets do you have? What do you wish you could've known while studying as a student or self-teaching yourself?8 -
A piece of code someone just pushed:
In pseudocode
------------------------
Function foo()
Result = GetFoo()
If result != null
DoStuff()
Return result
Else
Result = null
--------------------------
Ffs.
It's written in a strongly typed language, and the whole function is in a try with an empty catch and inside yet another try with an empty catch. Guess he wanted to be sure no error got away....
Oh, and he has 9 years of experience, and since all paths don't return something it does not compile12 -
Pokemon GO is a trend as if I need to tell you all that. But people are now making money out of it.
www.pokewalk.com is the funniest thing I ever saw today. The site claims that it will walk for you and catch them all. No worries about the battery of your mobile...they will charge it as they collect.
Are you serious?? Where's the fun in that?? Professional walkers cmon !!??8 -
Me: Why are we spending time building reports for Support? AFAIK they never read or use them.
Boss: Seems they expect you to do it.
Me: Then what exactly are they supposed to be doing? All the issues seem to just escalate back to us.... We should just make sure issues never get into PROD
Boss: I agree, they're always firefighting... we gave them more funding so eventually they should catch up **Me: I highly doubt it, you should just stop hiring monkeys** esp. if we prevent PROD issues.
Me: Yea... we should prevent production issues because someone always has to pay off the (technical) debt and interest rates in PROD are very high6 -
Sit down to do a math lab in Maple on university computers. Struggle for a while with shitty software. Click on a help link provided by Maple for an error I was getting.
BSOD outta nowhere.
Hadn't saved my work. And Maple was developed by the best university in Canada. I hope they all catch something rare and incurable and die.4 -
There is someone in our building who urinates like a watering can.; all over the place. Do you think I will get caught if I try to get a DNA match, or install a CCTV to catch the culprit?
14 -
So my friend who is currently attending University to major in Computer Science just started programming Java a few days ago. His first assignment was to learn bubble sort and make it organize a table of certain values provided in the assignment with a few other items on the side. Apparently, he was stressing over the assignment and waited till the last night to do this, and was running on 2 hours of sleep. Anyways, a few days pass and he received a 0% on the assignment with the comment "See me on Monday." and questioned what he did wrong (They use GitHub to submit their assignments, even though other classes at the University just commit to the University Server for Computer Science), and asked me to review the code. When I started looking at the code, all he managed to do was just make two tables, one that would print the unsorted table, and then print the "sorted" table. Plus, the catch that got him in trouble, he named his package "fuckthisshit", how does one not realize that when they're submitting their assignments... like seriously? Like I can understand the 2 hours of sleep, but with 1000s of examples out there, how do you manage to fake bubble sort plus end up naming a package "fuckthisshit" and question why he got a 0%. I do feel bad for him in the long run since there aren't many assignments in this class so this was worth 25%.



