this post was submitted on 04 Apr 2025
891 points (99.2% liked)

Programmer Humor

22250 readers
995 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 2 years ago
MODERATORS
 
top 44 comments
sorted by: hot top controversial new old
[–] cupcakezealot@lemmy.blahaj.zone 28 points 3 days ago (2 children)

"oh it was just a missing semicolon"

[–] RiQuY@lemm.ee 9 points 3 days ago (1 children)
[–] CanadaPlus@lemmy.sdf.org 2 points 3 days ago* (last edited 2 days ago)

Even if you're not using one, you should be instinctively looking for a semicolon the moment you get a syntax error unless you're a complete beginner.

[–] lowleveldata@lemmy.world 51 points 3 days ago (2 children)

so the other day I sat down trying to setup a SSL cert for my self-hosted services

[–] Dhs92@programming.dev 22 points 3 days ago (3 children)

Have you heard of our Lord and Savior, Traefik + ACME issuers?

[–] hosaka@programming.dev 2 points 2 days ago

Let's encrypt brother

[–] ByteJunk@lemmy.world 10 points 3 days ago

Let's Encrypt Expiry Bot just entered the chat.

[–] elvith@feddit.org 6 points 3 days ago (2 children)

Does Trafik also allow DNS based challenges with additional certbot plugins, or does it only work by serving a challenge in /.well-known/?

I’ve set up my internal homelab with LE certificates, but if I could get rid of certbot and do this automagically, it’d be nice…

[–] Dhs92@programming.dev 7 points 3 days ago

I have it setup to use DNS challenges through Cloudflare, but it supports different providers as well. I just add the labels to my docker container and voila, I have TLS

[–] rbos@lemmy.ca 4 points 3 days ago (1 children)

Not all dns providers support acme, I've discovered to my recent annoyance. The one I use at work, for instance.

[–] elvith@feddit.org 3 points 3 days ago (1 children)

I already use certbot with my DNS provider, so it should generally be supported. And indeed, O found the docs, where all supported providers are listed.

https://doc.traefik.io/traefik/https/acme/#providers

[–] rbos@lemmy.ca 2 points 3 days ago (1 children)

Yeah. For wildcard DNS from letsencrypt, you can't do HTTP validation, only DNS, which involves creating a TXT record.

Your DNS provider needs to run an ACME server, which runs an API that'll add the required TXT records on request.

As I understand it.

[–] elvith@feddit.org 1 points 2 days ago (1 children)

The DNS provider needs to provide an API, but not an ACME server.

Your server contacts Lets Encrypt and wants a certificate - say for homeserver.example.com. It tells Let's Encrypt to use DNS based authentication. Let's encrypt answers with a challenge code, that you now publish as a txt record with a defined name via your providers API for this (sub)domain. Let's encrypt then checks the TXT record and if it finds the challenge there, it sends you the certificate.

[–] rbos@lemmy.ca 1 points 1 day ago* (last edited 1 day ago) (1 children)

Wouldn't the authentication API provided by your DNS host be the ACME server?

[–] elvith@feddit.org 2 points 3 hours ago

No, see also this diagram: https://www.digitalberry.fr/wp-content/uploads/2023/02/DNS-challenge-process.png

You use an ACME client (either explicitly with e.g. certbot or a webserver that has a client Iintegrated like Traefik, Caddy,...) to communicate with an ACME server (the CA, e.g. Let's encrypt). Your ACME client asks for a certificate with a DNS challenge. It gets a code that you/the client needs to publish as a DNS record. Only then the client talks to your DNS provider and tells them to put a specific TXT record on your domain (or onanual mode: the client prints out the value and you need to put it there manually). After your DNS provider published it, your client tells the server to check the challenge and hand you your certificate.

Your DNS provider in this diagram is just that one small rectangle in the lower left.

Note: There's nothing stopping your DNS provider to just do all of this, generate a certificate for you and providing you with a button in your account where you can download a certificate with a single click. Also if you are at a webhoster and only host a simple page there, they will probably also provide your with a TLS cert with the click of a single button.

[–] redhat421@lemmy.world 4 points 3 days ago

Might want to check out swag from linuxserver.io

It's a docker/kubernetes container image with a working certbot client in it.

[–] eager_eagle@lemmy.world 38 points 3 days ago
[–] Gremour@lemmy.world 20 points 3 days ago

I don't like being on this picture.

[–] hark@lemmy.world 8 points 2 days ago

Laying in bed thinking about the problem, "oh, that must be it!" Jump excitedly out of bed to work on the problem, "welp, that wasn't it."

[–] tahoe@lemmy.world 17 points 3 days ago (1 children)

I’ve been trying and failing to fix an email being sent to spam issue since last fucking Monday (with all the SPF, DMARC and DKIM garbage).

I want to die.

[–] tetris11@lemmy.ml 14 points 3 days ago

SPF, DMARC and DKIM

Ironically, spam generators are experts EXPERTS in this trash fire of a topic

[–] PattyMcB@lemmy.world 14 points 3 days ago

Who is OP, and how did you get pictures of me last night?

[–] rcbrk@lemmy.ml 13 points 3 days ago

LoL, blue shirt has no persistence. Anger and giving up gets you nowhere.
XKCD #349 - "Success": [Four full-width panels arranged vertically, each with a label for number of hours elapsed, with a title above the stack of panels.];    Title: As a project wears on, standards for success slip lower and lower.;    [Megan is standing behind Cueball, watching him as he sits at a desk working on a desktop computer on the desk.];    Label: 0 hours;    Cueball: Okay, I should be able to dual-boot BSD soon.;    [Cueball is on the floor fiddling with the open tower in front of him. Megan is not shown in the panel, but may be off-panel unless Cueball is talking to himself.];    Label: 6 hours;    Cueball: I'll be happy if I can get the system working like it was when I started.;    [Cueball is standing in front of the computer, which now has a laptop plugged into the tower. Megan is still not shown in the panel, but may be off-panel again.];    Label: 10 hours;    Cueball: Well, the desktop's a lost cause, but I think I can fix the problems the laptop's developed.;    [Cueball and Megan are swimming in the sea; an island and a beach can be seen in the distance.];    Label: 24 hours;    Cueball: If we're lucky, the sharks will stay away until we reach shallow water.;    Megan: If we make it back alive, you're never upgrading anything again.

Title text:40% of OpenBSD installs lead to shark attacks. It's their only standing security issue.

[–] LovableSidekick@lemmy.world 5 points 3 days ago* (last edited 3 days ago)

My friend just finished a couple solid days of debugging where there turned out to be a whole series of problems that looked like one bug, so even though he kept fixing things the app still kept not working. Finally hacked his way out of that jungle into the bright light of day.

[–] zqwzzle@lemmy.ca 6 points 3 days ago* (last edited 3 days ago) (1 children)

Reminder to all you chaos monkeys: use [Object object] on web forms occasionally for a bit of fun.

Edit: and to remind typescript devs they’re just transpiling to JavaScript

[–] duhbasser@lemm.ee 1 points 3 days ago

I shit you not I got that object object response with a 200 status.

[–] luciole@beehaw.org 7 points 3 days ago (3 children)

Aw come on, debugging can be fun. I love the investigative vibe of it. You get to be your favorite detective. You start asking around. You pin the the culprit. You get closer and closer to damning evidence. And then Bam! Fixed. Another mystery solved. Mine’s Columbo.

[–] pinball_wizard@lemmy.zip 7 points 3 days ago (1 children)

I love asking,

"What sick fuck thought this was an acceptable solution?"

And a few moments later:

"Oh. It was me."

[–] other_cat@lemmy.zip 2 points 3 days ago

Just finished with a refractoring project. I said this a LOT.

[–] Sergio@slrpnk.net 5 points 3 days ago

Agreed, for any non-trivial bug I just start dumping text into a word file to track what I'm doing. Like: error messages, values of variables at key places, libraries used, URLs of documentation and background reading and stackoverflow pages looked at, test fixes and their effects, etc. Then if someone asks me wtf I've been doing all day I can easily show them. Also, if I have the same problem a couple months later I can remind myself.

[–] RiQuY@lemm.ee 2 points 3 days ago

It's fun when you debug your own code.

[–] CanadaPlus@lemmy.sdf.org 4 points 3 days ago* (last edited 3 days ago)

Just later that day? Clearly, comic man doesn't have to cojones to fuck up as badly as I have.

[–] MonkderVierte@lemmy.ml 6 points 3 days ago

I would be sad too, if someone broke my PC and smashed my home.

[–] embed_me@programming.dev 7 points 3 days ago (1 children)

Is he giving himself cigarette burns?

[–] dream_weasel@sh.itjust.works 3 points 3 days ago

Wow that's subtle. Good catch

[–] rumschlumpel@feddit.org 7 points 3 days ago

Sure feels like that sometimes, LOL

[–] JATtho@lemmy.world 3 points 3 days ago

My favorite so far:

$ gdb -ex 'file /bin/gdb'
run
corrupted double-linked list

Thread 1 "gdb" received signal SIGABRT, Aborted.

Every single day

[–] MehBlah@lemmy.world 2 points 3 days ago (1 children)

Did the coffee mug go through the wall or up is ass?

[–] tetris11@lemmy.ml 3 points 3 days ago
if ([]){
   // I miss common Lisp's detection of empty
}

Why is he in his undies 😭😭😭