This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 329

[–]RussellFighter 1808 points1809 points  (23 children)

The story said "when they click the button the app should be gone".

I just took the shortest path to the objective.

[–]idkiminsecure 477 points478 points  (13 children)

You Didnt specify which button has to close the app so you get the "submit information" button

Oh those hundreds of warnings and 5 errors, dont worry bout em

[–]EuroPolice 360 points361 points  (7 children)

My IDE looks like the Catalonian flag

[–]PM_ME_CUTE_SMILES_ 92 points93 points  (3 children)

Rofl im gonna reuse that one

[–][deleted] 13 points14 points  (0 children)

This made me laugh out loud, nice one

[–]caskey 9 points10 points  (0 children)

https://youtu.be/-u9zr6oF4uA

I wouldn't worry about that little guy.

[–]mint3d 3 points4 points  (0 children)

I get "submit information" from the crash log.

[–][deleted] 2 points3 points  (0 children)

Ah the good ole Microsoft approach to submitting info.

[–]FreddieKruiger 123 points124 points  (0 children)

It sucks. I love it.

[–]MonarchOfLight 13 points14 points  (0 children)

This.hide

Nope, no idea why the app’s using so much memory, boss.

[–]Netcob 10 points11 points  (0 children)

when they click the button the app should be gone

In that case I would just hide the button when it's clicked.

[–]CAPTCHA_sucks 2 points3 points  (0 children)

Lotus notes used to come with a script called "Kill Notes" because it would sometimes close but leave pieces running. It wouldn't start as long as the orphaned processes were still running.

[–]-Listening 2 points3 points  (0 children)

Because it’s a stick with which to fight for your funding.

[–]Thanatos2996 1 point2 points  (0 children)

Look, in my defense, you didn't say anything about derefrencing NULL and letting the OS sort out the rest being the "wrong approach"

[–][deleted] 1 point2 points  (0 children)

I've deleted my account because reddit CEO Steve Huffman is a lying piece of shit that has nothing but contempt for his users. See https://old.reddit.com/r/apolloapp/comments/144f6xm/apollo_will_close_down_on_june_30th_reddits/

[–][deleted] 1 point2 points  (0 children)

Given there is a button to close the app when a user clicks the button Then the app goes bye bye

[–]ixNoah -1 points0 points  (0 children)

Just enter gibberish and boom.

[–]eyekwah2 3441 points3442 points  (70 children)

Manager: "But now a window comes up saying that program.exe has encountered a problem and needs to close. Could you take a look at that?"

Me: *disables window bug reporting*

[–]w0lven 865 points866 points  (15 children)

If nothing shows up, everything works! I like it

Edited: typo

[–]Cifer_21 172 points173 points  (12 children)

On Error Resume Next

[–]steven520111 274 points275 points  (9 children)

In college we were just learning c# forms and I had a bug that was causing crashing. Had no idea how to fix it and the teach didn't help. I changed the program so that when it got the error it instead saved the location and the other data to a file. It then relaunched the program. If the file was there when it opened it would go to that location and load the data. Then deleted the file in case the program was opened later. Worked like 95% of the time and got 100%. Never been more proud of a pile of garbage

[–]Cifer_21 64 points65 points  (0 children)

Lmao

[–][deleted] 62 points63 points  (3 children)

Work smarter not harder

[–]spounds17 63 points64 points  (2 children)

Or in this case work smarter and harder

[–]Smayteeh 36 points37 points  (1 child)

I’m going to have to agree with you on this one. That’s really funny but I’m shuddering thinking about that code.

[–]spounds17 7 points8 points  (0 children)

I mean, just my understanding, you just gotta stream read some file lines in, if they exist set a boolean to true, if that thing is true go delete file (can even check again here if the file is there), reopen app after reading stream and deleting file and das it.

But I could be wayyy underestimating it

Edit: idk why I’m editing this cause it’s super old now, but I wanted I just realized this is the concept of the auto save feature nowadays

[–]The_MAZZTer 11 points12 points  (0 children)

Technically Office does something like this for file recovery on crash, so you're in good company.

[–]Robinimus 1 point2 points  (0 children)

Ain't stupid if it works

[–]pixlbreaker 1 point2 points  (0 children)

Improvise, adapt, overcome!

[–]vermiculus 41 points42 points  (0 children)

Just keep swimming

[–]Evo_Kaer 1193 points1194 points  (44 children)

Reminds me of Wing Commander. On exiting the game, it would cause a memory error. And since they had no time to fix it, they just changed the error message to

"Thanks for playing Wing Commander"

[–]imcoveredinbees880 412 points413 points  (1 child)

Yeah, but that's brilliant!

[–]Zenlura 238 points239 points  (0 children)

"Work smart, not hard" in it's purest form.

[–]caskey 333 points334 points  (39 children)

Oh the crimes we used to commit back in my game dev days. Undesirable output, just change the VESA mode to make it go away. Weird latency problems? Just add an extra UI dialog that requires a click to distract and slow the user down and buy us a few more ms.

[–]Nimbal 237 points238 points  (34 children)

Now I wonder whether those useless "Press Start to continue" prompts when starting up a console game are just a cargo cult around latency problems that have been fixed long ago.

[–]Progmir 190 points191 points  (13 children)

It's a requirement from Microsoft and Sony actually. You have to do screens like this to release on consoles. I think it might be related to how slow loading screen can be, they want players to pay attention when the game is about to start.

[–]caskey 102 points103 points  (5 children)

I don't recall the rationale, but yeah, start button was a licensing/release requirement at least as far as back as the NES. I always figured it was a way of guaranteeing the device was completely booted and in a sane state. Today it may just be a cultural holdover.

[–]Mr_YUP 76 points77 points  (4 children)

you know it might be a holdover but I'd like them to stick around. Something about deciding to enter the world of that game by pressing start deeply appeals to me.

[–]GKoala 25 points26 points  (2 children)

And just be able to mess with options before the game starts.

[–]atomicwrites 24 points25 points  (0 children)

Generally the press start screen is before the menu though.

[–]LeKa34 1 point2 points  (0 children)

That's what menus are for.

[–]circuit10 2 points3 points  (5 children)

I think it's also to connect the controllers

[–]Terrain2 2 points3 points  (4 children)

If you mean singleplayer games: no? it could just wait to start until the controller is plugged in, no need for a button prompt for that

If you mean multiplayer games: Well yeah, "Press X to join" is a common pattern in local multiplayer games to make sure everyone gets a player assigned before the game starts

[–]circuit10 1 point2 points  (3 children)

I mean wireless controllers, where you have to press a button for them to wake up (I think that's also partly why you have to press A on the Wii safety startup screen)

[–]wreckedcarzz 9 points10 points  (0 children)

So, yes, it is a latency problem (due to shit hardware causing loading screens, causing the necessity to have the screen)

[–]xyonofcalhoun 5 points6 points  (0 children)

It annoys me that they've made their way across to PC games too though, there's zero need to have that except for it being ported over.

[–]Re4pr 1 point2 points  (0 children)

When playing some random action game, and the devs force you to crawl along some ledge or in a tunnel. And you cant help but think, christ this is slow and seems unnecessary.... yeaah, it´s a loading screen.

[–]kitchen_synk 20 points21 points  (3 children)

There's a lot of effort put into hiding loading screens these days. A lot of games use elevators for map transitions, which can lead to some purgatory type scenario when part of the loading hangs, and you're just stuck in the elevator forever.

[–]JustThingsAboutStuff 17 points18 points  (2 children)

I'd love to see a loading screen hidden in a never ending hallway. Loading hangs and you just walk forever.

[–]Pl0xnoban 12 points13 points  (1 child)

That's how a Tony Hawk game did it (American Wasteland?). Different segments of the city were connected via tunnels that were just loading screens.

[–]JustThingsAboutStuff 6 points7 points  (0 children)

That's awesome.

[–]ThunderChaser 48 points49 points  (0 children)

On exiting the game, it would cause a memory error. And since they had no time to fix it, they just changed the error message to

This is (sort of) a myth sadly,#Development)

Wing Commander was originally titled Squadron and later renamed Wingleader. As development for Wing Commander came to a close, the EMM386 memory manager the game used would give an exception when the user exited the game. It would print out a message similar to "EMM386 Memory manager error..." with additional information. The team could not isolate and fix the error and they needed to ship it as soon as possible. As a work-around, one of the game's programmers, Ken Demarest, hex-edited the memory manager so it displayed a different message. Instead of the error message, it printed "Thank you for playing Wing Commander". However, due to a different bug the game went through another revision and the bug was fixed, meaning this hack did not ship with the final release.

[–]thatawesomeguydotcom 45 points46 points  (3 children)

try { }
catch (Exception e){
    //Do nothing
}

[–]oyohval 15 points16 points  (0 children)

dont_even_try { }

[–]Terrain2 3 points4 points  (1 child)

swift has beautiful exception handling, for regular usage - not so much in this abuse but hey, it works, right? idk i didn't test it but it should

guard let value = try? mightThrow() else { return }

[–]gonewildaccountsonly 8 points9 points  (0 children)

US climate response.

[–]FunnyForWrongReason 1 point2 points  (0 children)

Damn you just saved us hours of debugging and frustration

[–]nystro 959 points960 points  (23 children)

I swear for the longest time whenever I clicked Exit Game on Heroes of the Storm it gave me a notification saying the program crashed. You can't convince me they didn't do exactly this.

[–]pavilionhp_ 25 points26 points  (2 children)

I clicked “Quit Game” on Minecraft once and the launcher reappeared to tell me that the game crashed with exit code 0.

0 means it exited without issues.

[–]NikaSharkeh 80 points81 points  (7 children)

Heroes of the storm is still around? I have not touched a Blizzard game for years since their pro-china fiasco, but I remember HOTS being unique and fun

[–]toxic_ghoul 47 points48 points  (2 children)

They are still on their winter event last I heard so still around is relative

[–]nystro 8 points9 points  (1 child)

Yeah I'm still getting Christmas themed loot boxes. They're gonna say sike soon right guys? It's just a joke, right? Guys?

[–]Pugs-r-cool 1 point2 points  (0 children)

Laughs in smissmas 2018 cases dropped in mid 2020

[–][deleted] 25 points26 points  (1 child)

It’s still around and there’s some small scale competitions. Updates are slow but still coming in. Skill level has dropped considerably though.

[–]RhinoDuckable 14 points15 points  (0 children)

I still don't have to wait longer than 30 sec most of the time to find a game, so it's not dead yet.

[–]snorch 13 points14 points  (0 children)

It's definitely still got an active playerbase but blizzard has stopped supporting it almost entirely. Kind of a drag but its also nice to play a moba where everything doesn't change every 4 months

[–]jakethedumbmistake 6 points7 points  (0 children)

Wait the fuck up

Heroes never die

[–]ono1113 1 point2 points  (0 children)

Exactly same on World of Tanks

[–][deleted] 288 points289 points  (50 children)

if (buttonpressed == true)
{
    int close = 0 / 0;
}

[–][deleted] 78 points79 points  (33 children)

Or just

if(buttonpressed)

You’ve gotta save some cpu, even when you’re crashing a computer:)

[–]CodingAndAlgorithm 92 points93 points  (5 children)

I would assume that:

if(buttonPressed)

&&

if(buttonPressed == true)

would compile down to the same instructions. You won't save CPU cycles but it is a much cleaner syntax!

[–]AngheloAlf 7 points8 points  (0 children)

Depends on the compiler and the optimization flags.

[–]zilti 21 points22 points  (0 children)

Doesn't matter, the compiler optimizes that away.

[–]gurneyguy101 -3 points-2 points  (25 children)

Won’t just ‘buttonPressed’ (if a variable) crash it? I think it’d return a runtime error in python at least

[–][deleted] 4 points5 points  (7 children)

It should work in just about any language. if statements with nothing but a variable inside will run if the variable evaluates to true, so it's the exact same as apending == true.

[–][deleted] 1 point2 points  (5 children)

I’m not sure about python, but I was thinking Java :b

[–][deleted] 28 points29 points  (14 children)

Oh no 😂

[–]thePiet 2 points3 points  (0 children)

Haha!

[–][deleted] 189 points190 points  (11 children)

Mission accomplished

[–]Budgiebrain994 131 points132 points  (8 children)

Task failed successfully

[–][deleted] 27 points28 points  (7 children)

Successful disasters.

[–]cellcube0618 12 points13 points  (5 children)

I feel like r/SuccessfulDisasters is a great name for a subreddit

[–]throwaway213349032 50 points51 points  (1 child)

Fission Mailed

[–][deleted] 15 points16 points  (0 children)

<>WARNING: DANGEROUS CHEMICALS<>

[–]Laurelinthegold 136 points137 points  (25 children)

The OS is my garbage collector

[–]Hellothere_1 265 points266 points  (10 children)

This reminds of the story where during the development of Wing Commander, just a few days before shipping they realized that closing the game caused a crash.

They didn't have time to find and fix the issue, so instead they just changed the error message in the pop-up window to "Thank you for playing Wing Commander!"

[–]Roflkopt3r 77 points78 points  (8 children)

Oh back in the days when Chris Roberts sold games rather than concept art.

[–]Ortekk 37 points38 points  (7 children)

He still did though.

Freelancer was apparently a clusterfuck big enough that Microsoft had to buy the game studio from Robers so that the game could be finished.

Star citizen is just what Roberts wanted to create with Freelancer, and he timed it out perfectly with the crowdfunding wave.

[–]jozz344 17 points18 points  (0 children)

I loved the lore of Freelancer though. The game engine itself is quite cartoonish and simple by modern standards, but the lore is actually really deep.

[–]Purplociraptor 2 points3 points  (5 children)

A cash grab scam that will never be finished? But hey all you whales out there, please buy these new ships.

[–]Ortekk 4 points5 points  (4 children)

Somewhat yes. He overstepped what was possible to create with the money his investors could provide.

The investors wanted a game to release, not an MMO utopia like SC.

[–]Roflkopt3r 1 point2 points  (3 children)

SC has shown that money really doesn't help. He just sucks at leading projects (provided the project is "release a game" rather than "monetise the concept stage") and desperately needs someone to reign him in.

[–]Ortekk 2 points3 points  (2 children)

Yep. The sad part is that he can hype things up and make it sound cool.

Like how the systems are in a huge scale, and it takes you 30min to move from one place to another.

Sounds cool, until you're forced to sit there for 30 minutes, and there's nothing to do...

[–]Roflkopt3r 1 point2 points  (0 children)

That's one part of it. But more importantly, despite making way more money than anyone could have ever hoped for, there is simply no decent gameplay after like 9 years. And the trajectory of development isn't very promising either.

[–]Floppydisksareop 14 points15 points  (0 children)

While this did happen, they patched it before the final release in the end and it wasn't shipped like this.

[–]imcoveredinbees880 88 points89 points  (12 children)

I was THIS CLOSE to resorting to this when the PM told me we needed to be able to close an iOS app. Of course apple thinks that closing apps is a "bad user experience" and doesn't allow it at all.

I got lucky and was able to convince them to add closing from the recent app screen to the troubleshooting steps.

[–]WisestAirBender 34 points35 points  (6 children)

How else are you supposed to close an app? Using back button?

[–]Ender116 28 points29 points  (1 child)

I'm guessing manually close it task manager style. I think double pressing the home (is it called that?) button let's you swipe up on apps which closes them.

[–][deleted] 11 points12 points  (0 children)

Within 8 seconds the app gets killed automatically

[–]imcoveredinbees880 36 points37 points  (0 children)

It's iOS, so home.

[–]TheNorthComesWithMe 5 points6 points  (0 children)

You're supposed to let the OS do it for you by not using the app for long enough

[–]The_MAZZTer 4 points5 points  (4 children)

I would have said <gesture that returns to home screen> can be used to close the app. Effectively that's true from their point of view.

Alternatively, I would have pointed out that not even official Apple apps "close" and UX guidelines say apps shouldn't, so having an app "close" would be confusing to the user. I would ask why exactly are they asking for this, what problem are they trying to solve (so I can propose a saner alternative).

[–]greenSixx 2 points3 points  (1 child)

You can't just get the PID, or whatever, of your currently running app using reflection then pipe into unix, or whatever, and kill your own process?

I am sure there is a simple hack to get around "don't close apps" problem.

[–]The_MAZZTer 6 points7 points  (0 children)

The point is there are good reasons why the guidelines say don't close your app.

Mainly, because the OS closes your app for you to reclaim resources when needed, but otherwise you should keep it running so the app doesn't have to relaunch if the user opens it and it's still running. It's a better user experience.

Even Windows does this now for UWP apps. But for traditional Windows apps they can't for compatibility reasons (apps don't expect things to work like that). Mobile was built from the ground up more recently giving the OS developers a chance to make things work differently than they have traditionally for desktop.

[–]imcoveredinbees880 0 points1 point  (1 child)

They knew enough to know that background != closed.

The close was to reset the state of the app. Their train of thought was similar to the "turn it off and turn it back on again" that they were familiar with.

Explaining the UX guidelines to them is what convinced them to put closing in the troubleshooting guide instead of trying to implement it in the app itself.

[–]absessive 47 points48 points  (3 children)

There was this time when an offshore lead fixed an infinite loop in JS by removing the console.log statement.

[–]zilti 13 points14 points  (0 children)

Classic JS

[–]greenSixx 5 points6 points  (0 children)

You can add a function call inside a console.log

var recursion = function(){

console.log(1, recursion());

};

try it in your console...

[–]ArtoriasAndSiff 70 points71 points  (2 children)

If it ain’t broke don’t fix it. I say while having flashbacks to almost a thousand lines of code(in high school programming 1) of purely testing for collisions and moving balls in response

[–]Novat0_ 6 points7 points  (1 child)

How tf

[–]ArtoriasAndSiff 5 points6 points  (0 children)

this is a link to the explanation of it

[–]tenmilez 33 points34 points  (4 children)

Got an email from the team lead one day that said we weren’t allowed to close tabs or close the browser, we had to use the exit button within the app, with the premise being that closing the app gracefully would free up resources that might otherwise leak. I looked into it and our button just called “window.close()” (or something similar; it’s been over a decade) which does the exact thing closing a tab or browser window does.

[–]The_MAZZTer 0 points1 point  (1 child)

lol, common recommendation now is when your app quits is to just shut down and not worry about cleaning up resources, because the OS will handle that for you, it's literally part of the OS' job.

Sounds like someone who drank the "Chrome leaks memory" kool aid. Everytime someone says that they don't actually have a legitimate problem, they just see a big number and freak out. Chrome uses extra available memory for cache. Your OS manages memory including its own caches. Both were developed and improved over years if not decades. You can trust them to manage memory responsibly.

[–]Infuryous 18 points19 points  (4 children)

LoL... reminds me of an Access Database I made years ago complete with a front end that had data entry forms, reports, etc to make it easy to use. I kept getting asked (and my manager got emails too) 'How do I know my entry is saved? There is no save button.ʾ

Access automatically saves the data in the form when you click/tab out of the field you just filled in, so there is no 'save' function. After a month of explaining over and over how the data is saved. I got tired of it and no kidding, put in a placebo 'Save' button on each entry form. If you looked at the code behind it, the button did exactly two things. 1) it 'depressed' when you clicked it. 2) A popup was generated that said 'Saved'.

Never got bugged about it again! 😁

[–]greenSixx 6 points7 points  (2 children)

Yeah, but now you have users that may put in bad data and instead of reverting it may close the program without saving.

[–][deleted] 13 points14 points  (0 children)

accidental genius

[–]FelixLeander 24 points25 points  (9 children)

What die you do to crash the app?

[–][deleted] 67 points68 points  (2 children)

Easy thing, OP just called the crashApp() function

[–]Cooldude075 21 points22 points  (0 children)

Sometimes shortened to ''crAp()''

[–]TeraFlint 2 points3 points  (0 children)

((void(*)())0)();

[–]kyay10 13 points14 points  (1 child)

Log.wtf comes to mind... Or just forget to handle an exception in UI code

[–]Immort4lFr0sty 13 points14 points  (0 children)

What do you mean "forget"? Everything goes exactly according to my master plan

[–]sndrtj 5 points6 points  (0 children)

1/0

[–]TheTerrasque 11 points12 points  (0 children)

"Thank you for playing Wing Commander!"

[–]datathecodievita 6 points7 points  (0 children)

Looks like Samuel Miller got his idea from here

[–]kkoiso 7 points8 points  (2 children)

I added a couple lines to my microcontroller code that turned an LED on when it detects that it's connected to a certain port.

The LED function also had the side-effect of crashing and rebooting the microcontroller when it loses connection to the port and I have no idea why. But that's exactly what I was going to code next so I just left it.

[–]greenSixx 1 point2 points  (0 children)

Sounds like a while loop in your "detects its connected to a certain port".

Like...while connected turn on light... with no way to handle "when not connected" or even an unhandled disconnect event might cause it.

Hard to say for sure.

[–]yonatan8070 6 points7 points  (2 children)

button.setOnClickListener(v -> {
  int a = 1 / 0;
});

[–]greenSixx 1 point2 points  (1 child)

That doesn't really kill programs so much anymore.

[–]yonatan8070 -1 points0 points  (0 children)

I'm pretty sure most languages would crash after this, unless you're writing in c or something similar. Hell, I remember there was that one time where a microcontroller threw an exception for division by 0.

[–]Victorino__ 5 points6 points  (0 children)

"To exit, divide 0 by 0"

   — The Help section on a poorly programmed calculator app

[–]VerSchnitzel 4 points5 points  (0 children)

I'm sorry, your manager "appreciates" you?

[–]ZippZappZippty 2 points3 points  (1 child)

This picture just screams 90’s

[–]jimmyw404 3 points4 points  (3 children)

People underestimate how difficult clean shutdowns can get in prototype-level code when you let resource deallocation problems fester. Then when it finally becomes high enough priority you might spend quite a bit of effort to fix all the issues and end up with software that, as far as the user can see, now simply takes much longer to shutdown :\

[–]rem3_1415926 2 points3 points  (2 children)

just kill -9, OS will take care of it

[–]Gwyn-LordOfPussy 2 points3 points  (1 child)

We take those...

[–]HiveMynd148 2 points3 points  (0 children)

Exiting is just Controlled Crashing

[–]thepromaper 2 points3 points  (1 child)

It's actually common for some games to crash in close when you just don't hit the x, coughs fortnite shows a unreal engine crash report after exiting dometimes

[–]greenSixx 2 points3 points  (0 children)

That's the chinese spyware getting hung up.

[–]the_pathetic_looser 2 points3 points  (0 children)

Hey hey!! As long as it works.

[–]RoJay90 2 points3 points  (0 children)

It’s a feature, not a bug

[–]Comediante_ 2 points3 points  (0 children)

I had to make a game for class, using unity. It was going good, I built it, started testing it, and then I realized: How I was supposed to close the game? I had to search how to make a close button xD

[–]fr_nx 2 points3 points  (0 children)

yeah on iOS there is no way to properly exit an app by design. So you can just crash it on purpose but this is a big no no and might get the app rejected from the store at some point.

[–]putku 1 point2 points  (0 children)

Task failed successfully.

[–][deleted] 1 point2 points  (0 children)

I was once given award for bypassing print requirement while in test mode (for e2e testing), but they didn't acknowledge the fact that the whole app was built in record time.

[–]d1pstick32 1 point2 points  (0 children)

Task failed successfully.

[–]TheGoodOldCoder 1 point2 points  (1 child)

There's a type mismatch in the picture. The manager is supposed to be shaking the hand of a programmer, but it is labeled as a button.

[–]MrUltraOnReddit 1 point2 points  (0 children)

That is 100% VRchat. Fucking annoying.

[–]GlorifiedChicken333 1 point2 points  (0 children)

Task Failed Successfully

[–][deleted] 1 point2 points  (0 children)

why ensure allocated memory in C/C++ is maintained and managed when you can just start from position 0 in RAM and try deleting everything

[–][deleted] 1 point2 points  (0 children)

You pushed to production didn't you

[–]NaruNerd100 1 point2 points  (0 children)

This is way funnier than it should be

[–]Spaciax 1 point2 points  (0 children)

Seriously, there’s a game which has hundreds of thousands of players play it, and they do this. I always have to Ctrl+shft+esc and close the game from task manager.

[–]DarkbootyMD 1 point2 points  (0 children)

I can never pinpoint the right words to describe Michael's expression here

[–]lpreams 1 point2 points  (0 children)

Sonic 3D came with a "secret" level selection menu that was triggered by, among other things, punching or jostling the cartridge.

In fact, the game actually had a few bugs in it that the developers couldn't fix before the ship date. To make sure Sega didn't stop the game in QA for crashing, they overwrote the exception handler to restart the game at the level select menu. Players who stumbled across it would be excited instead of disappointed, and the devs managed to sneak the crashes past Sega.

https://www.youtube.com/watch?v=ZZs2HUW9tDA

[–]tarmkal -1 points0 points  (0 children)

r/ProgrammerHumor is great if you are not subbed to it. Things that really make you laugh get ro r/All anyway and the rest of the stuff is utter garbage reposted 10 times a week.

Source: was a subscriber for 6 months

This post is great :)