this post was submitted on 30 Sep 2024
341 points (100.0% liked)

Programmer Humor

421 readers
42 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 40 comments
sorted by: hot top controversial new old
[–] Badabinski@kbin.earth 58 points 1 month ago (1 children)

Having been in this situation (the only binary I could use was bash, although cd was a bash builtin for me), echo * is your friend. Even better is something like this:

get_path_type() {
    local item
    item="$1"
    [[ -z "$item" ]] && { echo 'wrong arg count passed to get_path_type'; return 1; }
    if [[ -d "$item" ]]; then
        echo 'dir'
    elif [[ -f "$item" ]]; then
        echo 'file'
    elif [[ -h "$item" ]]; then
        echo 'link'  # not accurate, but symlink is too long
    else
        echo '????'
    fi
}

print_path_listing() {
    local path path_type
    path="$1"
    [[ -z "$path" ]] && { echo 'wrong arg count passed to print_path_listing'; return 1; }
    path_type="$(get_path_type "$path")"
    printf '%s\t%s\n' "$path_type" "$path"
}

ls() {
    local path paths item symlink_regex
    paths=("$@")
    if ((${#paths[@]} == 0)); then
        paths=("$(pwd)")
    fi
    shopt -s dotglob
    for path in "${paths[@]}"; do
        if [[ -d "$path" ]]; then
            printf '%s\n' "$path"
            for item in "$path"/*; do
                print_path_listing "$item"
            done
        elif [[ -e "$path" ]]; then
            print_path_listing "$path"
        printf '\n'
        fi
    done
}

This is recreated from memory and will likely have several nasty bugs. I also wrote it and quickly tested it entirely on my phone which was a bit painful. It should be pure bash, so it'll work in this type of situation.

EDIT: I'm bored and sleep deprived and wanted to do something, hence this nonsense. I've taken the joke entirely too seriously.

[–] MicrowavedTea@infosec.pub 32 points 1 month ago (1 children)

was a bit painful

Well that's an understatement

[–] Badabinski@kbin.earth 24 points 1 month ago (2 children)

My pain tolerance for shitty input methods has been permanently warped after experiencing psychic damage from using Teamviewer to connect to a system over a very flaky HughesNet satellite link. I was working for a vendor that supplied a hardware networking box to a stupid retail company that sells food and shit. I just wanted to ssh to our boxen on a specific network so I could troubleshoot something, but the only way I could get to it was via putty installed on an ancient Windows XP desktop on the same network as our box that could only be accessed with Teamviewer. My favorite part of that was that the locale or something was fucked up, so my qwerty keyboard inputs were, like, fucking transformed into azerty somehow?? The Windows desktop was locked down and monitored to a tremendous degree, so I couldn't change anything. The resolution was terrible, the latency was over a second, and half of my keyboard inputs turned into gibberish on the other side.

Oh, and I was onsite at that same company's HQ doing a sales engineering call while I was trying to figure out what was wrong. I spent 5 days sitting in spare offices with shitty chairs, away from my family, living that fucking nightmare before I finally figured out what was wrong. God damn, what a fucking mess that was. For anyone reading this, NEVER WORK FOR GROCERY/DRUG STORE IT. They are worse than fucking banks in some ways. Fuck.

EDIT: also, I asked 'why Teamviewer' and the answer was always shrugs. This was before the big TeamViewer security incidents, so maybe they thought it was more secure? Like, at least they didn't expose RDP on the internet...

[–] MicrowavedTea@infosec.pub 9 points 1 month ago

Yeah, suddenly coding on a phone doesn't seem so bad

[–] Malfeasant@lemm.ee 4 points 1 month ago (1 children)

HughesNet

the latency was over a second

It's going to space!

[–] Badabinski@kbin.earth 4 points 1 month ago

It very definitely was 😅 The way that company used the satellite network was cool, don't get me wrong. They would use it to push content out to all their stores with multicast which was really efficient with bandwidth. I loved it for that, but I hated interacting with it over unicast in any way, shape, or form. Horses for courses, as they say.

[–] vvv@programming.dev 55 points 1 month ago (2 children)
[–] fool@programming.dev 29 points 1 month ago

-1 accuracy point ( ◞ ﹏ ◟)

linux 4.5-rc5 had efivarfs fixed to prevent "rm -rf /" bricking uefi motherboards -- so maybe someone can try it out? :]

[–] sik0fewl@lemmy.ca 7 points 1 month ago

It would be pretty useless if cd was a child process that changed its own directory, only to return to bash and be back where you started.

[–] pfm@scribe.disroot.org 49 points 1 month ago (2 children)
[–] Brahvim@lemmy.kde.social 5 points 1 month ago

THANKS!!! I have it bookmarked forever now!

I lost access to it. Thank you for bringing it back to me! Yay!...

[–] pro3757@programming.dev 4 points 1 month ago

I got reminded of it last week after years. What are the chances it came up again. 😁

[–] Thorry84@feddit.nl 41 points 1 month ago (3 children)

Hmmm command not found, let me just try the same command a couple more times, this time it will work right?

In IT teaching users to actually read and understand errors is always an uphill battle.

[–] kaboom36@ani.social 49 points 1 month ago (1 children)

Tbh I'd try it multiple times too, just because the concept of cd not being there is horrifying and cannot possibly be the case

[–] Thorry84@feddit.nl 17 points 1 month ago

Very true, I would do the same and feel my stomach drop farther each time.

[–] smeg@feddit.uk 6 points 1 month ago

Never dealt with an intermittent failure or race condition, eh?

[–] FruitLips@lemmy.ml 5 points 1 month ago

Where is the Windows 'help' button, did you try that?

[–] Shadow@lemmy.ca 25 points 1 month ago

No problem, just tab complete your way around the filesystem.

[–] Scoopta@programming.dev 20 points 1 month ago (5 children)

I am immune to /dev/sda for I only have nvme

I love the nvme partition naming. Looking at you nvme1n1p3

[–] Trainguyrom@reddthat.com 2 points 1 month ago* (last edited 1 month ago)

I realized I was long overdue for a hardware refresh when I learned that nvme drives are /dev/nvme and not /dev/sd[x] and I realized every single computer I interacted with was pre-nvme

[–] quant@leminal.space 1 points 1 month ago (1 children)

An unintended benefit of using Qubes is that everything is a virtual machine and physical disks have to be manually attached to a vm before doing operations like dd. I haven't had to worry about accidentally nuking my main partition for a while.

[–] Scoopta@programming.dev 2 points 1 month ago

Huh, yeah I suppose that's true. Qubes is an interesting project but I'm not sure it's for me. I selectively isolate apps I worry about using containers, I actually should give flatpak a try as it basically does that for me but I haven't seriously tried it yet.

load more comments (2 replies)
[–] nichtburningturtle@feddit.org 12 points 1 month ago

I see girls last tour, I upvote.

[–] MonkderVierte@lemmy.ml 9 points 1 month ago* (last edited 1 month ago) (1 children)

echo $PATH

And alias to be sure.

[–] rickyrigatoni@lemm.ee 3 points 1 month ago (2 children)

bash: echo: command not found

bash: alias: command not found

[–] Faresh@lemmy.ml 6 points 1 month ago* (last edited 1 month ago) (2 children)

echo and alias are both shell commands. If the shell is running (which it obviously still is), those commands should still work, as it does not involve reading data from disk, but from memory.

Edit: I just noticed the picture said cd was not found, which is also a shell built-in. So, I don't know.

[–] dko1905@discuss.tchncs.de 4 points 1 month ago

Just tested it in a container. The original screenshot is wrong:

screenshot of them being wrong

[–] joe_cool@lemmy.ml 4 points 1 month ago

Why would somebody lie on the internet?

[–] MonkderVierte@lemmy.ml 1 points 1 month ago* (last edited 1 month ago)

(╯°□°)╯︵ ┻━┻

Switch your calculator with a computer. Try again.

[–] 0x0@programming.dev 8 points 1 month ago

Empty $PATH.

[–] aniki@discuss.tchncs.de 7 points 1 month ago (1 children)

This isn't programming, just someone who sucks at bash.

[–] zero_spelled_with_an_ecks@programming.dev 6 points 1 month ago (1 children)

How else are you going to open your files in nano to do the programming on the prod server?

[–] aniki@discuss.tchncs.de 3 points 1 month ago (2 children)
[–] DarkenLM@kbin.earth 3 points 1 month ago

A metric prefix that represents 10e-9 of a unit.

[–] Appoxo@lemmy.dbzer0.com 1 points 1 month ago

The beginner (and better) version of vim?

[–] antonamo@feddit.org 6 points 1 month ago

sudo dd if=. /rpi3-aarch64-archlinux.img status=progress of=/dev/sd[tab] [tab] [enter]

[–] bitwolf@lemmy.one 5 points 1 month ago

I remember being so scared the first time I screwed up my $PATH

[–] mariusafa@lemmy.sdf.org 2 points 1 month ago* (last edited 1 month ago)

guix rollback