this post was submitted on 29 Nov 2023
1224 points (99.2% liked)

Programmer Humor

19623 readers
878 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 133 points 11 months ago (3 children)

❗❗❗❗❗❗❗❗❗❗❗URGENT❗❗❗❗PLeSE READ ASAP❗MY REQESTS ARE MORE IMPORATNT THAN YOUR TIME❗❗ CC: yourboss,your mum,your uni prof

[–] [email protected] 46 points 11 months ago (1 children)

Behind every ❗️❗️❗️🚨🚨🚨URGENT🚨🚨🚨❗️❗️❗️ there is a person who's about to miss a deadline and, instead of working on themselves to prevent that from happening in the future, makes it the developer's deadline to miss

[–] [email protected] 21 points 11 months ago* (last edited 11 months ago) (2 children)

Also that urgency is rooted in job insecurity, not even customer impact. They just don't want to look bad.

E: which I mean fair enough, me too, but still.

load more comments (2 replies)
[–] [email protected] 19 points 11 months ago (4 children)

So much this.

I’m in my first professional role and the first project was completed and aside from my boss I was the only other dev. So I was naturally excited for their (clients) feedback on it.

Well fast forward a couple of months where they really didn’t interact with the application much and then came the queries and then not understanding how to use it. Find boss sets aside 10 days for me to write some documentation with screenshots of all the journeys (free of charge).

Again, tumbleweeds. Then all of a sudden it’s boom emails a plenty.

Can you fix this, this is a major bug kinda emails. Like it isn’t a bug, you don’t know how to use it.

Now we are dumbing down the software to make it more align with what the business is used to, which is fine but even my boss has said (as I over think and want to reply to things instantly) that just because they have come to life doesn’t mean we drop everything else to tend to them now.

[–] [email protected] 12 points 11 months ago (1 children)

Welcome to the professional world where everything is iterative and and 95% of your clients (internal or external) are data illiterate and don't want to learn whatever self service tools you build.

[–] [email protected] 12 points 11 months ago (1 children)

Yeah it’s going to wild I can already tell. I know your right to as it’s only a small company I work for, less than 10 of us and they all complain about stupid things the clients do.

I have a colleague who is the contact for a dude that takes a picture of a site with his phone, so he photographs the monitor. Which I know isn’t that unusual, but wait.

He then emails this to himself, perhaps to have it on his desktop. Proceeds to print off the image, but not just the image, but the image as it appears in the email. THE ACTUAL EMAIL.

Then he will annotate the printout and I shit you not, will take another photo, but this time of the printout. Inception level shit.

He then sends that in by ~~carrier pigeon~~ email.

load more comments (1 replies)
[–] [email protected] 10 points 11 months ago

Sorry to break this to you.....but this won't be the last time that happens. In fact, it'll probably happen on more projects than not.

load more comments (2 replies)
load more comments (1 replies)
[–] [email protected] 83 points 11 months ago* (last edited 11 months ago) (1 children)

Dump all your data in a data lake, throw a thousand GPUs in there too, and you'll have your answer in 2 hours max.

[–] [email protected] 57 points 11 months ago (1 children)

Thanks, I'll tell the client it'll be ready in 2h.

[–] [email protected] 22 points 11 months ago (2 children)

Mr. Manager calling from a group

Hi everyone, I know we're all busy, but I just wanted to align on this 2 hr estimate. Can we put our heads together and do this faster somehow?

[–] [email protected] 27 points 11 months ago* (last edited 11 months ago)

No, but since we wasted an hour talking about it, the estimate is now 3 hours. Do you want to have more meetings about it?

[–] [email protected] 9 points 11 months ago

Two thousand GPUs

[–] [email protected] 70 points 11 months ago (1 children)

And the data they want is the entire FY, is 3,000,000 records and they need every single data attribute making the file like 250 MBs. Then you put it in their SharePoint and they get mad they can't just view it in the browser despite the giant "This file is too large to view online, download it" message.

[–] [email protected] 27 points 11 months ago (1 children)
[–] [email protected] 26 points 11 months ago

Newspaper: Hackers are announcing a trove of personal data leaked from [company] after a forwarded spreadsheet inadvertently contained more data than the sender realised.

[–] [email protected] 49 points 11 months ago (1 children)

Hey! I just started looking at SQL and this is the first SQL joke I've ever seen or at least ever gotten!

So, congratulations me!

[–] [email protected] 25 points 11 months ago (1 children)

Welcome! Please complete your setup by placing this on your wall: https://xkcd.com/327

[–] [email protected] 11 points 11 months ago

Lolz got that one too

[–] [email protected] 42 points 11 months ago (1 children)

Same feel as "how long is this going to take to pull?" Well I don't know if part of what you're asking for exists, how clean it is, and if can join the data you're talking about, so anywhere from 5 minutes to never?

[–] [email protected] 13 points 11 months ago

That's exactly how you should respond. I've been on the requester for some of these and if my team gave me that as a response I'd just say "let me know what you find out or when you know more."

[–] [email protected] 36 points 11 months ago

How many widgets have we transferred to acme this year?

Simple enough question right?

But then when you look at the data, each region works with acme's local offices differently. Some transfer using one method, some offices mark the transfer in the system as "other firm". Oh, and we don't even get a data feed from the north west region because they still haven't upgraded their shit so I can request a spreadsheet but it's in a different format than everything else.

Then inevitably Acme has a different number of widgets that have been transfered. Because if a transfer gets kicked back or cancelled, it's easier to just create a new transfer rather than go fix an old one because that process is laborious and requires tons of approvals so they just create a new transfer and send it over.

But yea, 20 minutes should be enough time to get you that before your meeting with Acme.

[–] [email protected] 31 points 11 months ago* (last edited 11 months ago) (1 children)

Man I don't regret leaving this behind at my last job. You start out by doing someone a one-off like "sure I can pull the top 5 promotional GICs broken down by region for your blog article - I love supporting my co-workers!"

Then requests become increasingly esoteric and arcane, and insistent.

You try to build a simple FE to expose the data for them, but you can't get the time approved so you either have to do it with OT or good ol' time theft, and even then there's no replacement for just writing SQL, so you'll always be their silver bullet.

[–] [email protected] 15 points 11 months ago (2 children)

At that point you teach them how to do it themselves. Isn't there a way to give them an account that only has read access so they can't inadvertently screw up the database?

[–] [email protected] 9 points 11 months ago (1 children)

I like that idea, and it actually did work for our Marketing guy (Salesforce has a kind of SQL). Near the end there, I just had to debug a few of his harder errors, or double check a script that was going to be running on production.

Never thought of it for Postres or Mysql, etc, but I suppose there's got to be an easy enough way to get someone access

load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 29 points 11 months ago* (last edited 11 months ago) (3 children)

At work, I am currently dealing with a table that has no primary key, no foreign key, duplicate (almost) serial numbers, booleans stored as strings, and so on. It's a nightmare of a table.

Entity framework is acting like I'm on meth for using such a table.

[–] [email protected] 31 points 11 months ago (4 children)

My all-time favorite database table was a table named STATE, meant to store all US states. It had 531 rows.

[–] [email protected] 14 points 11 months ago

Relatable. 🤣

[–] [email protected] 12 points 11 months ago

well, there's confusion, paranoia, agitation and so many others...

load more comments (2 replies)
[–] [email protected] 20 points 11 months ago (1 children)

I've been there and you know what's worse about it? When you fix it only you or a handful of people notice the astronomical labor you did.

"It worked before why did you change it? You are just doing busywork"

[–] [email protected] 11 points 11 months ago

Yeah. Luckily the work I am doing is to fix some really bad work that the entire company has been complaining about. So once it's fixed it will hopefully be a little bit more recognition than that. Plus my boss is pretty level headed.

But who fucking knows? There is always the likelihood that people will say things along those lines. And it ain't my job to fight them on that.

[–] [email protected] 11 points 11 months ago* (last edited 11 months ago) (1 children)

How about a date stored as an integer?

Edit: and I'm not taking about a timestamp

[–] [email protected] 11 points 11 months ago* (last edited 11 months ago)

No, we have worse. Dates sometimes stored as strings, sometimes as datetimes, and sometimes as integers. There is no consistency, logic, or forethought to the schema.

It's rough.

[–] [email protected] 27 points 11 months ago

Worked on a enterprise medical database, had thousands of tables, and some of the most corrupt data possible. This triggers me :(

[–] [email protected] 22 points 11 months ago (1 children)

Me this morning. I'm gonna take a look at why this Jenkins pipeline is failing. This one job starts a dozen others. Half are failing. For different reasons. After starting rewriting a job that someone half assed. Realize the original error was caused by missing input but some are still valid. Still can't figure out why my rewritten program is erroring. Get pulled away because another program did something weird... I completed nothing today but worked a ton.

My day...

load more comments (1 replies)
[–] [email protected] 21 points 11 months ago

Only 3h? What kind sql magician are you?!

[–] [email protected] 13 points 11 months ago (1 children)
[–] [email protected] 13 points 11 months ago

I've gotta get better at this...

[–] [email protected] 11 points 11 months ago (3 children)

Somebody tell this dude about views.

[–] [email protected] 28 points 11 months ago

If they existed for tons of random usecases. When was the last time you created views for "just in case someone asks" situations?

[–] [email protected] 9 points 11 months ago (3 children)

So my work is archaic and doesn’t even use SQL. What are views?

[–] [email protected] 22 points 11 months ago* (last edited 11 months ago) (1 children)

Basically scripts you can run on the fly to pull calculated data. You can (mostly) treat them like tables themselves if you create them on the server.

So if you have repeat requests, you can save the view with maybe some broader parameters and then just SELECT * FROM [View_Schema].[My_View] WHERE [Year] = 2023 or whatever.

It can really slow things down if your views start calling other views in since they're not actually tables. If you've got a view that you find you want to be calling in a lot of other views, you can try to extract as much of it as you can that isn't updated live into a calculated table that's updated by a stored procedure. Then set the stored procedure to run at a frequency that best captures the changes (usually daily). It can make a huge difference in runtime at the cost of storage space.

load more comments (1 replies)
[–] [email protected] 19 points 11 months ago* (last edited 11 months ago)

A view is a saved query that pretends it's a table. It doesn't actually store any data. So if you need to query 10 different tables, joining them together and filtering the results specific ways, a view would just be that saved query, so instead of "SELECT * FROM (a big mess of tables)" you can do "SELECT * FROM HandyView"

[–] [email protected] 10 points 11 months ago* (last edited 11 months ago)

Predefined queries that you can interact with like another table more or less

load more comments (1 replies)
[–] [email protected] 10 points 11 months ago

You wanna know why this dashboard takes a full minute to load? It's because it joins every table in the fucking database because some people can't be bothered to look at a separate page for certain information.

[–] [email protected] 10 points 11 months ago (1 children)

Well if organizing things in pristine tables makes things quick, why can't we have nice things?

[–] [email protected] 24 points 11 months ago* (last edited 11 months ago) (1 children)

Because Jen in accounting doesn't believe in it, and Tom the CIO likes his data stored raw in TXT Amphibious Delineated. Then our biggest client prefers data as Jason so we swapped half of our database to that to speed things up.

But the real problem is high turnover because we don't pay anyone enough to work on things they are proud of. After 2 years we stop doing even 3% COL raises so they go elsewhere. So every 2-4 years each position gets a new opinionated asshole.

[–] [email protected] 9 points 11 months ago

our biggest client prefers data as Jason so we swapped half of our database to that

the app I work with currently stores json as the only column in a sql table and it hurts me so very much. like watching someone pick up a screwdriver and try to bash a nail in with the handle.

[–] [email protected] 9 points 11 months ago (2 children)

Garcia From Criminal Minds: consider it done 😂

load more comments (2 replies)
load more comments
view more: next ›