548
of=/dev/sda (programming.dev)
top 50 comments
sorted by: hot top controversial new old
[-] mycodesucks@lemmy.world 153 points 4 days ago
[-] Gsus4@mander.xyz 8 points 3 days ago

need to be more creative with aliasing than "ls"

[-] Badabinski@kbin.earth 93 points 4 days ago

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 50 points 4 days ago

was a bit painful

Well that's an understatement

[-] Badabinski@kbin.earth 43 points 4 days ago

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 14 points 4 days ago

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

load more comments (2 replies)
load more comments (4 replies)
[-] pfm@scribe.disroot.org 76 points 4 days ago
[-] fibojoly@sh.itjust.works 22 points 4 days ago

That was a beautiful read, cheers!

[-] pfm@scribe.disroot.org 16 points 4 days ago
[-] Trainguyrom@reddthat.com 2 points 3 days ago

The final line of the one about the VAX machine is so perfect

[-] Brahvim@lemmy.kde.social 8 points 4 days 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 5 points 3 days ago

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

[-] vvv@programming.dev 79 points 4 days ago
[-] fool@programming.dev 40 points 4 days 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? :]

load more comments (1 replies)
[-] sik0fewl@lemmy.ca 7 points 4 days 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.

[-] Thorry84@feddit.nl 57 points 4 days ago

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 79 points 4 days ago

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 26 points 4 days ago

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

[-] Ziglin@lemmy.world 2 points 3 days ago

Also muscle memory. I keep typing aliases I only have on my computer :(

[-] skulbuny@sh.itjust.works 23 points 4 days ago

I learned early in my software engineering career these two beautiful rules of debugging:

  1. Read all of the words
  2. Believe them
[-] smeg@feddit.uk 6 points 3 days ago

Addendum to 2: never believe that what they say is relevant to what's actually happening here. You have a lot of faith that the people writing error messages knew what they were doing!

[-] Trainguyrom@reddthat.com 3 points 3 days ago

Having written some error messages in a godforsaken database frontend, an error message only means that something didn't work correctly and may or may not correctly indicate what is actually wrong

load more comments (2 replies)
[-] elvith@feddit.org 10 points 4 days ago* (last edited 4 days ago)

Unless you were the one writing the program and its error messages - then check, that you didn't mess up there...

[-] ugo@feddit.it 7 points 4 days ago

Until you write a compiler error in some deeply templated C++ code, in which case just reading every word takes all day

/s but not too much

[-] smeg@feddit.uk 6 points 3 days ago

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

[-] Lepsea@sh.itjust.works 8 points 4 days ago

You see they all different one use / the other use - and ~

/S

load more comments (1 replies)
load more comments (1 replies)
[-] bacon_pdp@lemmy.world 13 points 3 days ago

bah, https://github.com/fosslinux/live-bootstrap

you don't even need a terminal or a prompt to bootstrap every tool you need.

[-] MonkderVierte@lemmy.ml 16 points 3 days ago* (last edited 3 days ago)

echo $PATH

And alias to be sure.

[-] rickyrigatoni@lemm.ee 5 points 3 days ago

bash: echo: command not found

bash: alias: command not found

[-] Faresh@lemmy.ml 7 points 3 days ago* (last edited 3 days ago)

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 5 points 3 days ago

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

screenshot of them being wrong

[-] joe_cool@lemmy.ml 5 points 3 days ago

Why would somebody lie on the internet?

load more comments (1 replies)
[-] bitwolf@lemmy.one 6 points 3 days ago

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

[-] Shadow@lemmy.ca 37 points 4 days ago

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

load more comments (1 replies)
[-] nxn@lemmy.ml 32 points 4 days ago
[-] antonamo@feddit.org 6 points 3 days ago

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

[-] Scoopta@programming.dev 29 points 4 days ago

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

I love the nvme partition naming. Looking at you nvme1n1p3

[-] ilikecoffee@lemmy.world 3 points 3 days ago

/dev/nvme1s²2s²2p⁶3s²3p⁶4s²3d¹⁰4p²

[-] nxn@lemmy.ml 12 points 4 days ago

What do you mean? The nvme device label convention is far easier to screw up IMO. At least on my system the first drive would be labeled "nvme0n1", second "nvme1n1", etc and partitions get an additional suffix like "nvme0n1p1".

I am far more likely to screw that up compared to "sda" vs "sdb". Especially since I noticed that if I have both my internal and external SSDs hooked up at boot time their number gets assigned on a seemingly random basis.

[-] Scoopta@programming.dev 8 points 4 days ago* (last edited 4 days ago)

Eh? Idk if I agree. My original comment was entirely a joke based on the fact that the literal argument of=/dev/sda has no affect on my system but to address your actual point. I personally don't find nvme naming any more confusing than SCSI. /dev/nvme0n1 is only one char away from /dev/nvme1n1 just like sda vs sdb. Additionally if you understand how the kernel comes up with those names they make a lot of sense. The first number is the controller, the second is the namespace or drive attached to that controller, the 3rd if present is the partition on the given drive. It is entirely possible to have a controller with more than one namespace. That aside aside...I think there is a genuine benefit to be argued for having USB drives, which are SCSI and fall into sdX naming separate from system drives as I dd far more USB media than system media. Making it a lot harder to screw my system up when trying to poke a flash drive.

[-] Trainguyrom@reddthat.com 2 points 3 days ago* (last edited 3 days 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

load more comments (3 replies)
[-] nichtburningturtle@feddit.org 15 points 4 days ago

I see girls last tour, I upvote.

[-] 0x0@programming.dev 10 points 4 days ago

Empty $PATH.

[-] teft@lemmy.world 9 points 4 days ago

You should all just use an immutable distro. Problemo solved-o.

/s

[-] aniki@discuss.tchncs.de 8 points 4 days ago

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

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

load more comments (3 replies)
load more comments
view more: next ›
this post was submitted on 30 Sep 2024
548 points (97.4% liked)

Programmer Humor

19315 readers
60 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