Programmers then and now

a year ago by cm0002 to c/programmer_humor

Semi_Hemi_Demigod 226 points a year ago

Love the shoutout to Margaret Hamilton

path: 0 16915294, hotness: undefined, score: 226, children: 18
F04118F 91 points a year ago
path: 0 16915294 16916343, hotness: undefined, score: 91, children: 17
rtxn 43 points a year ago

We need to bring back 2010-2012 rage comic memes. All we needed was a badly cut-out blonde wig to trans Derp's gender.

path: 0 16915294 16916343 16916656, hotness: undefined, score: 43, children: 1
TJDetweiler 18 points a year ago

The glory days of Derp and Derpina

path: 0 16915294 16916343 16916656 16919020, hotness: undefined, score: 18, children: 0
Shawdow194 23 points a year ago path: 0 16915294 16916343 16917364, hotness: undefined, score: 23, children: 0
raman_klogius 12 points a year ago

So were "computers". It used to be a job, delegated mostly to women. The JD is doing calculations day in and day out.

path: 0 16915294 16916343 16919717, hotness: undefined, score: 12, children: 0
moomoomoo309 11 points a year ago

"Creates a whole game in assembly" is probably referring to roller coaster tycoon, which was written by a man. (lots of other games were written in asm, like many NES games, but I'd wager RCT was what they were alluding to)

path: 0 16915294 16916343 16926423, hotness: undefined, score: 11, children: 1
dejected_warp_core 3 points a year ago

That was my immediate thought. There were many that came before RCT, but it has the distinction of being (possibly) one of the last in an industry that had already moved on to higher-level languages to do merely half as much.

path: 0 16915294 16916343 16926423 16931073, hotness: undefined, score: 3, children: 0
spankmonkey 11 points a year ago

The moon landing by hand wouldn't have been as funny without the over the top body builders first.

path: 0 16915294 16916343 16917173, hotness: undefined, score: 11, children: 0
merc 3 points a year ago

No, I don't think so. It's true that many of the earliest programmers were female, but there were very few of them, and that was a long time ago.

In a way, Ada Lovelace was the first programmer, but she never even touched a computer. The first programmers who did anything similar to today's programming were from Grace Hopper's era in the 1950s.

In the late 1960s there were a lot of women working in computer programming relative to the size of the field, but the field was still tiny, only tens of thousands globally. By the 1970s it was already a majority male profession so the number of women was already down to only about 22.5%.

That means that for 50 years, a time when the number of programmers increased by orders of magnitude, the programmers were mostly male.

path: 0 16915294 16916343 16934493, hotness: undefined, score: 3, children: 0
letsgo 2 points a year ago

Depends how far you go back. The top half is pretty representative of the professional dev team I was in in 1992.

path: 0 16915294 16916343 16935630, hotness: undefined, score: 2, children: 0
reactionality -31 points a year ago
path: 0 16915294 16916343 16916840, hotness: undefined, score: -31, children: 7
F04118F 17 points a year ago
path: 0 16915294 16916343 16916840 16916939, hotness: undefined, score: 17, children: 5
barsoap 7 points a year ago

The large initial percentage of female coders was due to computer having been a female job, because secretary was. Their role within companies didn't change, what changed is that they were using machines to do the computing instead of doing it by hand.

We're kinda lucky to have the woke trifecta (Ada, Grace, Alan) (first programmer (woman), inventor of compilers (woman), absolute unit (gay)) to keep the chuds at bay. Even if we weren't all socially inept nerds (or pretending to be so to bosses) there's only so much you can do, culturally, if the population is growing exponentially. Uncle Bob (yes I know he's a chud) did the maths at some point IIRC it was something like the number of programmers doubling every two years. Which also means that at any one point in time roughly 2/3rds of programmers have no idea what they're doing, which explains the javascript ecosystem.

path: 0 16915294 16916343 16916840 16916939 16919505, hotness: undefined, score: 7, children: 4
Kichae 5 points a year ago
path: 0 16915294 16916343 16916840 16918027, hotness: undefined, score: 5, children: 0
Hope 130 points a year ago

I feel very confident in my understanding of random 8 bit CPUs and their support chips, but asking me to center a div is like this xkcd.

path: 0 16916377, hotness: undefined, score: 130, children: 23
DesolateMood 56 points a year ago

tar --help

path: 0 16916377 16916501, hotness: undefined, score: 56, children: 3
Appoxo 54 points a year ago

(joke)
YOU FOOL! THE ACTUAL COMMAND WAS tar -?

path: 0 16916377 16916501 16917118, hotness: undefined, score: 54, children: 2
gravitas_deficiency 6 points a year ago

That dash looks an awful lot like an em-dash

Normal: -

Em:

path: 0 16916377 16916501 16917118 16921916, hotness: undefined, score: 6, children: 1
madjo 1 point a year ago path: 0 16916377 16916501 16917118 16921916 16927862, hotness: undefined, score: 1, children: 0
firelizzard 28 points a year ago

I’ve never understood why people are so intimidated by tar

path: 0 16916377 16916718, hotness: undefined, score: 28, children: 18
MajinBlayze 67 points a year ago

tar -eXtract Ze Vucking File

path: 0 16916377 16916718 16917879, hotness: undefined, score: 67, children: 8
QuadratureSurfer 34 points a year ago

Thanks! This will definitely help me to remember it from now on.

Me 6 months from now:

tar -EZVF

path: 0 16916377 16916718 16917879 16918095, hotness: undefined, score: 34, children: 1
endeavor 3 points a year ago
path: 0 16916377 16916718 16917879 16918095 16924425, hotness: undefined, score: 3, children: 0
zurohki 18 points a year ago

Nobody wants to deliberately use the wrong compression type when extracting, so modern tar will figure out the compression itself if you just point it at a file. So tar -xf filename works on almost anything. You don't need to remember which flag to use on a .tar.bz2 file and which one for a .tar.xz file.

path: 0 16916377 16916718 16917879 16919872, hotness: undefined, score: 18, children: 4
MajinBlayze 8 points a year ago

That doesn't give me a memorable mnemonic though.

path: 0 16916377 16916718 16917879 16919872 16920429, hotness: undefined, score: 8, children: 3
lord_ryvan 1 point a year ago

I was about to say tar -CompressZeVuckingFile; great mnemonic and I use it every time!

path: 0 16916377 16916718 16917879 17050603, hotness: undefined, score: 1, children: 0
spankmonkey 32 points a year ago

It is sticky and pretty much ruins clothes.

path: 0 16916377 16916718 16917147, hotness: undefined, score: 32, children: 0
qjkxbmwvz 7 points a year ago

It is "backwards" from some other commands --- usually you run copy/rsync/link from source to destination, but with tar the destination (tarball) is specified before the source (directory/files).

That, and the flags not needing dashes always just throws me for a loop.

And the icing on the cake is that I don't use tar for tarring that often, so I lose all muscle memory (untaring a tgz or tar.bz2 is frequent enough that I can usually get that right at least...).

path: 0 16916377 16916718 16918315, hotness: undefined, score: 7, children: 2
firelizzard 2 points a year ago

I almost never create a tarball, so I have to look up the syntax for that. Which is as simple as man tar. But as far as extracting it almost couldn't be easier, tar xf <tarball> and call it a day. Or if you want to list the contents without extracting, tar tf <tarball>. Unless you're using an ancient version of tar, it will detect and handle whatever compression format you're using without you having to remember if you need z or J or whatever.

path: 0 16916377 16916718 16918315 16920441, hotness: undefined, score: 2, children: 1
lord_ryvan 1 point a year ago

It can be easier if you're used to the dash before the arguments; it's optional but you can put them:

tar -cf   # Compress File
tar -xf   # Xtract File
path: 0 16916377 16916718 16918315 16920441 17050657, hotness: undefined, score: 1, children: 0
eager_eagle 2 points a year ago

I got tired of looking up the options for each possible combination of archiving + compression, so today I have a "magic" bash function that can extract almost any format.

Then for compressing, I only use zip, which doesn't need any args other than the archive name and the thing you're compressing. It needs -r when recursing on dirs, but unlike "eXtract" and "Ze", that's a good mnemonic.

path: 0 16916377 16916718 16919819, hotness: undefined, score: 2, children: 0
merc 1 point a year ago

One reason is that tar supports both traditional style args "tar tf <filename.tar>" and unix-style args "tar -tf <filename.tar>" but there are subtle differences in how they work.

path: 0 16916377 16916718 16934710, hotness: undefined, score: 1, children: 3
firelizzard 1 point a year ago

Literally the only time I’ve ever run into that is when I was trying to manipulate the path it extracted to. In 99% of cases I’m doing tf, xf, or cf plus flags for the compression type, etc, and those differences are irrelevant.

path: 0 16916377 16916718 16934710 16944412, hotness: undefined, score: 1, children: 2
merc 1 point a year ago

I used something recently where it wasn't possible to use the traditional-style args. I think it was a "diff", which meant I needed a "-f". It wasn't a big deal, but, occasionally it does happen.

path: 0 16916377 16916718 16934710 16944412 16944924, hotness: undefined, score: 1, children: 1
milkisklim 66 points a year ago

Hey now. Searching stack overflow circia 2011 to 2018 was an Art. You had to know enough to find the correct question that wasn't deleted because a mod thought it was a duplicate of another question

path: 0 16915869, hotness: undefined, score: 66, children: 5
kautau 21 points a year ago

Also to find the actual correct answer three comments down because the one that was voted highest worked, but was actually a really shit way to do the thing being asked

path: 0 16915869 16918128, hotness: undefined, score: 21, children: 2
milkisklim 12 points a year ago

I often found the correct answers in the comments of an answer

path: 0 16915869 16918128 16918691, hotness: undefined, score: 12, children: 1
lord_ryvan 2 points a year ago

Still do.

path: 0 16915869 16918128 16918691 17050669, hotness: undefined, score: 2, children: 0
wise_pancake 5 points a year ago

After a while you got know which stack overflow questions were a waste of time, and you used that knowledge for years.

path: 0 16915869 16918288, hotness: undefined, score: 5, children: 0
Valmond 2 points a year ago

Before that you had to hang out on flipside or other gamedev sites and show your worthiness before begging for information.

I was so proud when they shared the DS hack (basically a homebrew SDK made by trial and error by some people) so that I could make small games on it.

path: 0 16915869 16923838, hotness: undefined, score: 2, children: 0
excral 62 points a year ago

My experience is that the programmers from the first row very much still exist. My theory is that the number of programmers from the first row stayed the about same or even increased slightly. There are so many more so called "programmers" overall now, however, that in relation the first row programmers are much rarer now. And to be fair, you don't need a programmer capable of programming entire games in assembly to center a div.

path: 0 16922781, hotness: undefined, score: 62, children: 5
zerofk 27 points a year ago

And vice versa, you don’t need to know how to centre a div to create a game in assembler. I’m comfortable using pointers and managing memory, but don’t ask me to do anything with web UI.

path: 0 16922781 16923236, hotness: undefined, score: 27, children: 4
ByteJunk 16 points a year ago

I'm guessing that someone who figured out how to keep a high score box centered on screen using assembly will figure it out to do it with CSS.

The reverse, not so much...

path: 0 16922781 16923236 16923277, hotness: undefined, score: 16, children: 2
groet 6 points a year ago

But you dont what the code of the assembly-style centered div in your codebase. Because nobody will be able to read it and understand what it even does. There are abstraction specific ways to solve problems and the right way to do something in assembly is not the right way to do it in CSS.

path: 0 16922781 16923236 16923277 16923791, hotness: undefined, score: 6, children: 1
lowered_lifted 7 points a year ago

Agreed, in my limited experience with both CSS is like the conceptual opposite of assembly. When I do web design I tell it what I want to look like but can't see how it's getting there because that's done for me. Assembly is the lowest level of abstraction we've got and it took me ages to write a little program for class that returns an argument in it (Jasmin VM) and then get GCC to compile it.

I would say that CSS is like doing an incantation that magically makes the site look good if you do it right, and assembly is like building something by hand.

path: 0 16922781 16923236 16923277 16923791 16924544, hotness: undefined, score: 7, children: 0
Omgpwnies 5 points a year ago

This can be generalized to say that programming has become such a diverse profession that you will find experts in one area that know very little about others. There's simply too many things that are programmed in too many ways for anyone to know it all anymore. Hell, that was the case in the 70's and 80's too.

path: 0 16922781 16923236 16930287, hotness: undefined, score: 5, children: 0
pastel_de_airfryer 59 points a year ago

I once had a junior calling me in a panic because he didn't know how to quit nano. NANO!

path: 0 16919697, hotness: undefined, score: 59, children: 17
bisby 70 points a year ago

Nano... Like... The one that has all the keybinds permanently shown at the bottom of the screen?

path: 0 16919697 16919833, hotness: undefined, score: 70, children: 4
dubyakay 36 points a year ago

Burnt into the old LCD screen.

path: 0 16919697 16919833 16920312, hotness: undefined, score: 36, children: 1
Jankatarch 16 points a year ago

And your retinas.

path: 0 16919697 16919833 16920312 16921341, hotness: undefined, score: 16, children: 0
pastel_de_airfryer 12 points a year ago

Yeah, that one...

path: 0 16919697 16919833 16920381, hotness: undefined, score: 12, children: 0
Aganim 10 points a year ago

Onscreen instructions unclear, pressed Shift+6+X. Still stuck in Nano.

path: 0 16919697 16919833 16923088, hotness: undefined, score: 10, children: 0
ICastFist 18 points a year ago

That deserves a "do you know how to read?", because the exit command is on the lower part of the screen for nano

path: 0 16919697 16919835, hotness: undefined, score: 18, children: 1
lord_ryvan 2 points a year ago

To be fair, they show up as “^X” or whatever, and typing [Shift]+[6] followed by the [X]-key doesn't do the trick.

path: 0 16919697 16919835 17050694, hotness: undefined, score: 2, children: 0
dejected_warp_core 4 points a year ago

Huh? Isn't it like right there at the bottom of the screen?

I guess not knowing that ^X means Control+X could be the issue, but still...

path: 0 16919697 16930950, hotness: undefined, score: 4, children: 2
andioop 4 points a year ago

TIL!

Can exit nano on my own, have the common sense to not call in a panic about it before at least looking it up. (Which is how I learned how to exit it: looking it up.) But was never taught about ^ meaning "Control+" until your comment, especially since nowadays people write it out as "Control+" or "CTRL+".

I might have put two and two together when dealing with everything else in nano after I learned to exit, but never really internalized the rule "^ means Control+". So thank you for your comment!

Disclaimer: I feel like I am too stupid for most of programming.dev but participate here anyways because I learn stuff from the comments.

path: 0 16919697 16930950 16933865, hotness: undefined, score: 4, children: 1
dejected_warp_core 3 points a year ago

Don't feel stupid. It's bad enough that all of IT is one giant impostor-syndrome support group. There's literally too much for any one person to know, and it's been that way for a very long time. Just give it your all, and memorize how to reliably search and look things up; take notes for the really important stuff. The rest will filter into your memory with practice.

Also: anyone that holds this kind of thing over your head is attempting to distract from how much they don't know. Most people in this industry understand and don't judge.

As for the ^ thing, I recall seeing that as far back as the 1990's. I want to say Microsoft actually popularized it, but it could easily be OS2 (IBM) or Apple. In hindsight, it's kind of wild to have a TUI (terminal user interface) hold your hand like this. Nano (and Pico) are kind of in a special category like that.

path: 0 16919697 16930950 16933865 16938503, hotness: undefined, score: 3, children: 0
obinice 4 points a year ago

Nano nano!

drinks water with finger

path: 0 16919697 16924321, hotness: undefined, score: 4, children: 1
r3g3n3x 2 points a year ago

Ork humor. Love it.

path: 0 16919697 16924321 16926968, hotness: undefined, score: 2, children: 0
bufalo1973 4 points a year ago

Do you remember the "press any key to exit"? Someone asked where is the "any" key.

path: 0 16919697 16925086, hotness: undefined, score: 4, children: 0
vithigar 0 points a year ago

I had an intermediate not understand how to read a pipe-delimited text file.

path: 0 16919697 16920988, hotness: undefined, score: 0, children: 3
Zagorath 7 points a year ago

Read as in, with their eyes? Or how to ingest it into some other app/script? Cos I'm vaguely aware that awk can be used in some way for this, but wouldn't have a clue how.

path: 0 16919697 16920988 16920989, hotness: undefined, score: 7, children: 2
barsoap 3 points a year ago

awk is practically made for record processing, within the shell you can set $IFS. The reason so many ancient UNIX file formats use : as separator is because that's the default setting of $IFS.

It's all a huge PITA, though. I mean there's a reason why people started using perl instead. Nushell is great for that kind of stuff, even more so if you have random json or such lying around it loads just as easily. "Everything is a string" was a mistake.

path: 0 16919697 16920988 16920989 16929049, hotness: undefined, score: 3, children: 0
vithigar 2 points a year ago

The former.

path: 0 16919697 16920988 16920989 16925181, hotness: undefined, score: 2, children: 0
arudesalad 47 points a year ago

One of my favourite game dev stories from the 1980s is the story of Elite. It was a game people thought couldn't be made. Most devs thought hardware wasn't powerful enough and publishers thought it wouldn't be fun enough.

It was one of the first properly 3D open world video games ever made. I think when it released it sold nearly as many copies as there were home computers that could run it.

In order to make the game small enough to fit on a cassette tape they had to ditch basic and program the entire game, world in assembly.

There's a fantastic video about it here: https://youtu.be/lC4YLMLar5I

path: 0 16916803, hotness: undefined, score: 47, children: 6
Lemminary 11 points a year ago

the game small enough to fit on a cassette tape

Holy hell, that is OLD old. We're talking about the beginnings of digital time here. Had the first web constellations formed yet? How fast did you crank your CPU?

path: 0 16916803 16918842, hotness: undefined, score: 11, children: 3
Regrettable_incident 3 points a year ago

Yeah, I played it a lot, and a similar one called aviator which was a kinda flight sim. There wasn't really much of an internet back then but stuff was easy to copy on tapes.

path: 0 16916803 16918842 16922748, hotness: undefined, score: 3, children: 0
zurohki 3 points a year ago

You couldn't crank your CPU in the olden days, it'd make games run in fast forward.

path: 0 16916803 16918842 16919937, hotness: undefined, score: 3, children: 1
lord_ryvan 1 point a year ago

To be fair, unlocking the frame rate on console-to-PC ports still fast-forwards many games including Nier: Automata or breaks the physics like in Skyrim.

It doesn't have to be this way, any more, but it still is because… Lack of expertise? I really can't think of anything else?

path: 0 16916803 16918842 16919937 17050760, hotness: undefined, score: 1, children: 0
Redkey 11 points a year ago

In order to make the game small enough to fit on a cassette tape they had to ditch basic and program the entire game, world in assembly.

Putting aside the fact that the majority of commercial games of the time were written in assembly (or other low-level languages) just as a matter of course, I strongly suspect that programming the game in assembly was an execution speed issue, and not a cassette space issue. Regular audio cassettes easily held enough data to fill an average 8-bit home computer's memory many times over, whether that data was machine code or BASIC instruction codes.

path: 0 16916803 16922567, hotness: undefined, score: 11, children: 0
candyman337 2 points a year ago

Elite Dangerous is the most recent installment of the series started by that game

path: 0 16916803 16923920, hotness: undefined, score: 2, children: 0
obinice 44 points a year ago

Okay but how do u center a div in 2025

path: 0 16924308, hotness: undefined, score: 44, children: 33
umbraroze 17 points a year ago

If using plain CSS, usually it's enough to set width appropriately, and margin-left and margin-right to auto.

If using a Modern Frontend/CSS Framework, then may God have mercy on your poor soul.

(Seriously I just started a new project with TailwindCSS and I'm so confused. But not entirely desperate yet.)

path: 0 16924308 16925387, hotness: undefined, score: 17, children: 17
Korhaka 11 points a year ago

So what is the point of these frameworks if they make it harder?

path: 0 16924308 16925387 16925885, hotness: undefined, score: 11, children: 7
Ricaz 16 points a year ago

If you spend a lot of time on a single framework, you will transcend and become a sort of frontend diety, growing multiple extra limbs allowing you to type in CSS classes faster than any mere mortal

path: 0 16924308 16925387 16925885 16926151, hotness: undefined, score: 16, children: 4
SaharaMaleikuhm 10 points a year ago

Until everyone moves over to the next thing and you start from 0 again. Web dev is a nightmare.

path: 0 16924308 16925387 16925885 16926151 16926579, hotness: undefined, score: 10, children: 3
toddestan 5 points a year ago

Generally I find many these frameworks will make some complicated things simple, but the cost is some things that were once simple are now complicated. They can be great if you just need the things they simplify - or in other words can stick to what they were intended for, but my favorite way of keeping things simple is to avoid using complicated and heavy frameworks.

path: 0 16924308 16925387 16925885 16930397, hotness: undefined, score: 5, children: 0
gradual 0 points a year ago

I think they exist because of ignorance.

People who don't understand how to do a task will usually choose the wrong tools for that task.

If someone is trying to cover up their lack of knowledge, they will usually make things more complicated than they need to be.

path: 0 16924308 16925387 16925885 16935658, hotness: undefined, score: 0, children: 0
loics2 4 points a year ago

w-... mx-auto, replace the 3 dots with your desired width value, and that's it with tailwind

path: 0 16924308 16925387 16930558, hotness: undefined, score: 4, children: 0
Ricaz 3 points a year ago

I'm doing a small hobby project (a ladder/ranking system for playing beer sports with my community), and I tried out Tailwind.

I gave up and loaded Bootstrap instead, but I will probably end up just writing all the CSS myself.

Seems so silly to have 15 CSS classes on a single DOM element..

path: 0 16924308 16925387 16926195, hotness: undefined, score: 3, children: 6
FooBarrington 1 point a year ago

Why is that silly? As long as the classes follow a strict naming scheme & have useful abstractions, that seems much better than having to give every node a unique class name that doesn't necessarily have much meaning. I can't count the number of "container" and "wrapper" and "content" classes I've seen & written, where the names don't describe anything useful.

path: 0 16924308 16925387 16926195 16946678, hotness: undefined, score: 1, children: 0
bleistift2 0 points a year ago

Who’s saying you’re using the frameworks correctly?

path: 0 16924308 16925387 16926195 16931846, hotness: undefined, score: 0, children: 4
gradual 0 points a year ago

Shouldn't they be designed in an intuitive manner that makes misuse more difficult than regular use?

Otherwise, why even bother using them? It's like now you need to know all the ins and outs of CSS and a trendy framework that will lock you into their ecosystem.

path: 0 16924308 16925387 16926195 16931846 16935756, hotness: undefined, score: 0, children: 3
lord_ryvan 1 point a year ago

My brother in Christ TailwindCSS just gives classes that let you do inline styling in a shorter syntax! (and theme configuration, but mostly inline styling)

Replace width: ...px with w-..., margin-left: ... with ml-... and margin-right: ... with mr-.... Setting both horizontal margins is mx-... and both vertical margins is my-....

If you can do inline styling, TW just makes the syntax a bit shorter, but that's it, really.

path: 0 16924308 16925387 17050820, hotness: undefined, score: 1, children: 0
Blackmist 10 points a year ago

Depends if you're centering the div or the things in the div. Which has probably been the main issue since CSS was invented.

path: 0 16924308 16926796, hotness: undefined, score: 10, children: 0
impedans 10 points a year ago

If you define what you mean by centering I'll give you a straight answer.

Vertically? Horizontally? Center the text or the entire box? Compared to the viewport, the parent container or the entire page?

"Centering" isn't as straight forward as you'd think, and what you actually want usually depends on the situation.

path: 0 16924308 16924609, hotness: undefined, score: 10, children: 4
FooBarrington 7 points a year ago

Nah, just flex them boxes

path: 0 16924308 16924609 16924743, hotness: undefined, score: 7, children: 2
impedans 4 points a year ago

Yeah that works if you wanna center a box of content it relative to the parent container, either horizontally or vertically. For other situations we've got different tools

path: 0 16924308 16924609 16924743 16924841, hotness: undefined, score: 4, children: 1
FooBarrington 1 point a year ago

path: 0 16924308 16924609 16924743 16924841 16946718, hotness: undefined, score: 1, children: 0
Schadrach 3 points a year ago

Fuck it, align='center'. That'll center it horizontally relative to some context and if that's not good enough then you should have been more precise in your request.

path: 0 16924308 16924609 16931628, hotness: undefined, score: 3, children: 0
endeavor 8 points a year ago
path: 0 16924308 16924387, hotness: undefined, score: 8, children: 0
letsgo 6 points a year ago

Same way you did it in 2024 but it's easier because the springgirdles have been replaced with rotated manglebrackets.

path: 0 16924308 16932396, hotness: undefined, score: 6, children: 0
x00z 5 points a year ago

Ask the browser nicely while using please and thanks.

path: 0 16924308 16927879, hotness: undefined, score: 5, children: 0
WhiskyTangoFoxtrot 5 points a year ago

Make your web page in GIMP, export to PNG, <img>.

path: 0 16924308 16933843, hotness: undefined, score: 5, children: 0
onion_trial 4 points a year ago

You count half the pixels and put them in a margin-left

path: 0 16924308 16924543, hotness: undefined, score: 4, children: 0
hakunawazo 2 points a year ago

It's not about the center, it's about the friends we made along the way.

path: 0 16924308 16937997, hotness: undefined, score: 2, children: 0
Anomalocaris 2 points a year ago

maybe the div is already where it's meant to be

path: 0 16924308 16935142, hotness: undefined, score: 2, children: 0
irelephant 1 point a year ago

What threw me was having to set a width.

path: 0 16924308 16930116, hotness: undefined, score: 1, children: 0
MadhuGururajan 1 point a year ago

use

display: flex flex-direction: column align-items: center

on the parent container

path: 0 16924308 16962176, hotness: undefined, score: 1, children: 0
deegeese 42 points a year ago

The missing middle section was documentation and QA getting worse

path: 0 16915091, hotness: undefined, score: 42, children: 2
wildncrazyguy138 7 points a year ago

Well yea, when you train the entire 2nd generation of coders on a book that is “For dummies” what did you expect?

path: 0 16915091 16916844, hotness: undefined, score: 7, children: 1
DragonTypeWyvern 1 point a year ago

Don't forget the third gen's JavaScript: The Good Parts

path: 0 16915091 16916844 16919160, hotness: undefined, score: 1, children: 0
somegeek 37 points a year ago

I feel attacked by "how to center div 2025"

path: 0 16916918, hotness: undefined, score: 37, children: 4
ICastFist 11 points a year ago

Super easy!

<center>
<div>
</div>
</center>
path: 0 16916918 16919875, hotness: undefined, score: 11, children: 0
Rin 8 points a year ago
path: 0 16916918 16921238, hotness: undefined, score: 8, children: 2
PoPoP 2 points a year ago

probably a lot less performant than doing it the old fashioned way. sometimes that matters. you should have the non-grid non-flex method half committed to memory. abusing flex or grid to save 2 lines of code is not a great practice, and having only one child element is usually a pretty clear sign that flex/grid is the wrong tool for the job

at the end of the day though do whatever you want, in fact why not just write a javascript function to recenter it every frame at 60fps cause 99.9% of the software 99.9% of people interact with is pure shit made by developers who don't care for users who don't care.

we live in a slop world, made by and for slop people who love slop. can you tell i've been awake for 30 hours? anyways...

path: 0 16916918 16921238 16924851, hotness: undefined, score: 2, children: 1
Rin 1 point a year ago
path: 0 16916918 16921238 16924851 16925776, hotness: undefined, score: 1, children: 0
ICastFist 35 points a year ago

80s programmers hated Unix, btw. Look up Unix Haters Handbook, it's a free and funny read

path: 0 16919829, hotness: undefined, score: 35, children: 8
llii 15 points a year ago

Unix Haters Handbook

https://en.wikipedia.org/...

Didn't knew this. It has 360 pages, wow!

EDIT:

The Macintosh on which I type this has 64MB: Unix was not designed for the Mac. What kind of challenge is there when you have that much RAM?

hehe

path: 0 16919829 16923507, hotness: undefined, score: 15, children: 0
dejected_warp_core 4 points a year ago

They also hated their local sysadmin. BOFH still holds up in a few key ways.

path: 0 16919829 16931010, hotness: undefined, score: 4, children: 1
Prime_Minister_Keyes 2 points a year ago

Thanks. I didn't know there was a real band called "The Pipi Pickers" and I might have lived on happily without that knowledge.

path: 0 16919829 16931010 16932596, hotness: undefined, score: 2, children: 0
lagoon8622 3 points a year ago

Good thing GNU's not Unix

path: 0 16919829 16928781, hotness: undefined, score: 3, children: 0
ArseAssassin 2 points a year ago
path: 0 16919829 16924928, hotness: undefined, score: 2, children: 1
ICastFist 1 point a year ago path: 0 16919829 16924928 16926367, hotness: undefined, score: 1, children: 0
frezik 2 points a year ago

A lot of it was fair criticism at the time. Linux fixed some of what was wrong. Having a good sudo config mostly resolves the problem of having one superuser account, and big, multiuser systems are a lot less common now, anyway. X's network transparency features aren't that useful in modern computing contexts, either, though I have found a few over the years.

But mostly, it's because the landscape changed from a hundred Unix vendors vs a bunch of other OSen, to now where it's Windows vs Linux vs OSX. By that comparison, the two with Unix-derived history look well thought out.

(This also implies that NextStep was the one old Unix vendor that has survived in a meaningful way. I don't think anyone would have guessed that 30 years ago.)

path: 0 16919829 16947890, hotness: undefined, score: 2, children: 0
exu 2 points a year ago

Unix does so many stupid things and we're still stuck with some of them. Especially the terminal section still applies today.

path: 0 16919829 16922142, hotness: undefined, score: 2, children: 0
jubilationtcornpone 35 points a year ago

QA: "Yeah, Hi. Can you look at this defect ticket?"

Reading ticket details...

Me: "Let me guess. Is [whatshisname] responsible for this?"

QA: "Yeah."

Me: "Get him to fix it."

QA: "I tried. Like four times."

Me: Sigh "I'll take care of it."

QA: "Thank you!"

path: 0 16921414, hotness: undefined, score: 35, children: 0
Lemminary 34 points a year ago

Hey buddy, if I fix one bug and cause three more, it's called job security. Where's my medal?

path: 0 16918803, hotness: undefined, score: 34, children: 2
DragonTypeWyvern 13 points a year ago

I have to say, I'm pretty sure those guys were in the past too.

path: 0 16918803 16919103, hotness: undefined, score: 13, children: 0
kamen 4 points a year ago

Getting to keep your job is your medal then.

path: 0 16918803 16925095, hotness: undefined, score: 4, children: 0
ButteryNickel 30 points a year ago

I once had an intern attempt to install sudo using NPM and when that didn't work he asked ChatGPT "Why can't I install sudo from NPM?" while I'm trying to explain it to him.

He was smart, but somehow knew very little about commercial computers despite being on the verge of getting his master's in computer science.

path: 0 16918831, hotness: undefined, score: 30, children: 1
Jankatarch 3 points a year ago

"Wait why can't I install windows iso from vscode extension store?"

path: 0 16918831 16926417, hotness: undefined, score: 3, children: 0
tiredofsametab 30 points a year ago

It's 2025 and I have no idea what the current way to center something is. Then again, my job is that of a backend engineer so it's rare I'm outputting anything that isn't a log statement. They can pry tables and center tags from my cold, aging hands.

path: 0 16916829, hotness: undefined, score: 30, children: 2
eager_eagle 2 points a year ago

IMO tables should be more used for... tabular data. Shocking, I know, but the amount of websites that try to emulate a table with divs and uls out there is crazy.

path: 0 16916829 16919946, hotness: undefined, score: 2, children: 0
NigelFrobisher 1 point a year ago

It’s , obviously.

path: 0 16916829 16934312, hotness: undefined, score: 1, children: 0
wise_pancake 21 points a year ago

People have been hm unable to quit vim since before I was born.

path: 0 16916051, hotness: undefined, score: 21, children: 3
ChickenAndRice 10 points a year ago
path: 0 16916051 16918122, hotness: undefined, score: 10, children: 1
wise_pancake 2 points a year ago

May the :helpgrep be ever on their side

path: 0 16916051 16918122 16918368, hotness: undefined, score: 2, children: 0
Lemminary 4 points a year ago

I swore up & down that I'd learn at least two ways of exiting VIM. I even went through basic training to learn all the shortcuts, but it interfered with my regular workflow, so I dropped it "for a bit". It's been a year and I can't remember a damn thing.

path: 0 16916051 16918876, hotness: undefined, score: 4, children: 0
boonhet 20 points a year ago

The fact that the div center search needs a year on it got me lol

Loving my nearly frontend free development life. I use Stackoverflow or Google maybe 2-3 times a month these days, not sure if I qualify for the upper row :(

path: 0 16916306, hotness: undefined, score: 20, children: 0
AnotherPenguin 19 points a year ago

Bottom right has always happened, just create bugs yourself and then fix them to keep your job

path: 0 16919401, hotness: undefined, score: 19, children: 2
Korhaka 2 points a year ago

It's easy, just use @media and padding to the left side of the div to put it in the centre for each screen size.

path: 0 16919401 16922857, hotness: undefined, score: 2, children: 0
jubilationtcornpone 1 point a year ago

"jubilationtcornpone is a great dev. He closes more tickets than anyone."

path: 0 16919401 16927480, hotness: undefined, score: 1, children: 0
vordalack 18 points a year ago

Can't exit Vim

Ah yes, the legendary filter

path: 0 16923239, hotness: undefined, score: 18, children: 13
ZILtoid1991 7 points a year ago

I can exit Vim, it just feels like trying to rip out the dashboard and the interiors from a family car because race cars also lack them. Kate is a good speedy alternative to VSCode, not to mention it also does not have Microsoft's greedy hands on it.

path: 0 16923239 16923604, hotness: undefined, score: 7, children: 3
Hexarei 3 points a year ago

I don't get your analogy, but (neo)vim is a full featured IDE if you configure it to be one

path: 0 16923239 16923604 16926238, hotness: undefined, score: 3, children: 2
toddestan 1 point a year ago

Out of the box, Vim's default configuration is very basic as it's trying to emulate vi as close as possible. It like if you want things like headlights or a heater or a tachometer in your family car, you got to create a vimrc and turn those features on. That was my experience when I first started using Vim - I spent a lot of time messing around creating a vimrc until I got things the way I wanted.

One of the big changes with Neovim is their default settings are a lot more like what you would expect in a modern text editor.

path: 0 16923239 16923604 16926238 16930601, hotness: undefined, score: 1, children: 1
Hexarei 1 point a year ago

Yeah that's a fair way to look at it

path: 0 16923239 16923604 16926238 16930601 16930649, hotness: undefined, score: 1, children: 0
state_electrician 5 points a year ago

I first tried vi in the early 90s, before I had easy access to online resources. I had to open a new shell and kill the vi process to exit it. Next time I dialed into my usual BBS I asked how to exit that thing. But since then I've liked it, because vi has been on every system I ever ssh'ed into.

path: 0 16923239 16927670, hotness: undefined, score: 5, children: 1
barsoap 2 points a year ago

You quit it just like you quit ed or ex, just that you have to enter the prompt (:) yourself as vi is not by default in prompt mode. And you should know ed, ed is the standard editor.

I use Helix btw.

path: 0 16923239 16927670 16928855, hotness: undefined, score: 2, children: 0
Valmond 3 points a year ago

:x

path: 0 16923239 16923763, hotness: undefined, score: 3, children: 5
UnRelatedBurner 3 points a year ago

it says I don't have permission

path: 0 16923239 16923763 16926656, hotness: undefined, score: 3, children: 4
Valmond 3 points a year ago

:q!

path: 0 16923239 16923763 16926656 16928604, hotness: undefined, score: 3, children: 3
UnRelatedBurner 1 point a year ago

I wanted to follow up with the other error, where you didn't open a file, so it doesn't know where to write, but :q! always works :/

Can I somehow not discard my changes tho? I always open a 2nd terminal in root only for vim when editing system files so I don't have to re-do the whole config but this time in sudo.

path: 0 16923239 16923763 16926656 16928604 16931393, hotness: undefined, score: 1, children: 2
Anomalocaris 3 points a year ago

the only reason people use vim is because they are stuck in there

path: 0 16923239 16935162, hotness: undefined, score: 3, children: 0
sheetzoos 18 points a year ago

Similar energy:

path: 0 16935671, hotness: undefined, score: 18, children: 1
DogOnKeyboard 4 points a year ago
path: 0 16935671 16935906, hotness: undefined, score: 4, children: 0
gradual 15 points a year ago

Honestly, CSS is a fucking joke and it's solely to blame for why centering something isn't always straightforward.

By the way, this picture is a crock of shit for people who aren't programmers. Anyone who is a programmer will not take it seriously because programming is so much more about helping others instead of shaming them.

path: 0 16935537, hotness: undefined, score: 15, children: 4
SirQuack 6 points a year ago

Stackoverflow: exists solely from the urge of developers to help developers, and since ExpertsExchange was paid dogshit.
This meme: pisses on its whole purpose.

path: 0 16935537 16947879, hotness: undefined, score: 6, children: 1
MadhuGururajan 1 point a year ago

Stackoverflow is for senior devs to clown on junior devs. It's the inverse of helping juniors.

path: 0 16935537 16947879 16962156, hotness: undefined, score: 1, children: 0
JiffyBag 1 point a year ago

CSS is amazing, if you know how to use it 😉

path: 0 16935537 16965417, hotness: undefined, score: 1, children: 1
rooroo 2 points a year ago

Everybody complaining about css like “but it doesn’t do what I want if to do without me investing a minute into why”.

Ironically, it’s oh so often the RTFM crowd.

path: 0 16935537 16965417 16965432, hotness: undefined, score: 2, children: 0
witx 11 points a year ago
path: 0 16947259, hotness: undefined, score: 11, children: 0
superkret 11 points a year ago

Yeah OK, but back then, an office suite was like 500 LOC.

path: 0 16916099, hotness: undefined, score: 11, children: 0
lobut 10 points a year ago

I started with C++ and went to Java to .NET to Javascript and now to Terraform.

I know this is all a joke but there's something definitely different with the ones above and the ones below. There's a bit of satisfaction you can get sometimes when you're working with memory directly and getting faster feedback (yes, there's more math back then and it wasn't easy to look stuff up, for sure). However, there's new challenges nowadays ... there's so many layers on top of layers. I feel as though Stack Overflow and ChatGPT are so needed because the error messages and things we give are obfuscated or unclear (not always any library author's fault as there's compatibility issues, etc)

We're doing serverless stuff at my current company and none of our devs run code locally. They have to upload it using CDK or Serverless Framework to run on the cloud. We don't use SST so we can't set breakpoints but like that's a lot of crap inbetween just running your code already. Not even getting into the libraries and transpilers and stuff we use. I spent like a few weeks over Christmas to get our devs to run the code locally. Guess what? None of them use it because they're so use to uploading it. I was like, "you can put breakpoints in it! you can have nodemon and it instant reloads! nope, none of them care ... "

path: 0 16932758, hotness: undefined, score: 10, children: 0
mavu 10 points a year ago

Nah, it's not that bad.
In 10 years with continued AI use? Yep.

path: 0 16934110, hotness: undefined, score: 10, children: 2
SirQuack 1 point a year ago

I'm thankful for AI. It guarantees my job as developer will continue to exist to repair all future AI-damage.

path: 0 16934110 16947899, hotness: undefined, score: 1, children: 0
Gonzako 1 point a year ago

Yeah, there are already papers about the massive widespread use of AI on universities

path: 0 16934110 16944860, hotness: undefined, score: 1, children: 0
RogueBanana 8 points a year ago

I can't remember some syntax unless I do it at least 100 times. I often look up stuff that I have already done before and know because of my goldfish memory.

path: 0 16929389, hotness: undefined, score: 8, children: 0
Naich 6 points a year ago

I'm 2 from the top, 3 from the bottom.

path: 0 16915949, hotness: undefined, score: 6, children: 2
CreatingMachines 6 points a year ago

my friend there are only 2 rows

path: 0 16915949 16917198, hotness: undefined, score: 6, children: 1
JakoJakoJako13 2 points a year ago

I read that as he created a game in assembly, and can't quit vim. Whether technically or sexually is up to OP to say. And what's the game?

path: 0 16915949 16917198 16919238, hotness: undefined, score: 2, children: 0
30p87 5 points a year ago

I'm 19 and in the past, apparently.

path: 0 16915177, hotness: undefined, score: 5, children: 4
Slovene 4 points a year ago

I turned 40 two days ago. Get off my lawn!

path: 0 16915177 16924814, hotness: undefined, score: 4, children: 3
Jankatarch 3 points a year ago

When you turn 40 do they issue you a lawn or do you not turn 40 until you have a lawn?

path: 0 16915177 16924814 16926464, hotness: undefined, score: 3, children: 2
jubilationtcornpone 4 points a year ago

You get a lawn and white New Balances at 30. At 40 you get nearsightedness and additional back pain.

path: 0 16915177 16924814 16926464 16927564, hotness: undefined, score: 4, children: 0
Slovene 3 points a year ago

You are issued a lawn IF you have chronic back pain. Otherwise you have to wait until you're at least 50.

path: 0 16915177 16924814 16926464 16927492, hotness: undefined, score: 3, children: 0
applemao 3 points a year ago

I still want to get into coding the OG manual way (because I enjoy pain and disappointment apparently) but now it seems like a waste of time since vibe coders and 13 year olds already are lightyears ahead of me. Also I have no reason to learn it, all apps are already built xD

path: 0 16932082, hotness: undefined, score: 3, children: 5
gradual 4 points a year ago

all apps are already built

Couldn't be further from the truth. You also have to consider competition.

path: 0 16932082 16935603, hotness: undefined, score: 4, children: 2
andioop 2 points a year ago

Can't think of anything that could serve a major need right now, but I absolutely identified things in my life where I could use a preexisting tool to accomplish my goal, but it's much less hassle for me to use the one I made for myself. You don't have to transform the world, sometimes you can help yourself with a minor inconvenience and then put it out there for anyone who might find themselves with the same inconvenience.

path: 0 16932082 16935603 16937150, hotness: undefined, score: 2, children: 0
applemao 1 point a year ago

True. But it seems like it's way too late to start learning any programming now. Plus it's saturated. I'll learn it on the side for fun but it'll probably never be a viable job for me

path: 0 16932082 16935603 16951640, hotness: undefined, score: 1, children: 0
OldChicoAle 3 points a year ago

I'm in the same boat. I used to be an amateur front and back end web developer. Almost made a text based RPG in middle school. I had to stop when shit got crazy in high school and college, but I don't feel like any programming is worth my time right now. I'm focusing on gardening and maybe some cooking. You know, human activities that we can still enjoy.

path: 0 16932082 16932347, hotness: undefined, score: 3, children: 1
applemao 0 points a year ago

Yeahh exactly. AI has pretty much ruined computer based fun now. Which in some ways is good, we should all learn physical hobbies again and not be reliant on tech. I still enjoy my hobby desktop computers though, I just enjoy learning how it really works under the surface.

path: 0 16932082 16932347 16934064, hotness: undefined, score: 0, children: 0
andybytes 1 point a year ago

I just uh... thought about this a little bit further and I think it's kind of like a situation between truth and circumstance and shit on top of shit. as well as who does it serve and for what?

path: 0 17099554, hotness: undefined, score: 1, children: 0
wer2 1 point a year ago

I know someone that still uses ed for all their code editing.

path: 0 16937401, hotness: undefined, score: 1, children: 0
Sibshops 1 point a year ago

Oh no, I was never a programmer in the past.

path: 0 16934895, hotness: undefined, score: 1, children: 0
onion_trial 1 point a year ago

I recently learned you can't put a form into another form

path: 0 16924530, hotness: undefined, score: 1, children: 0
onion_trial 1 point a year ago
path: 0 16924504, hotness: undefined, score: 1, children: 0
beejboytyson 1 point a year ago

They wrote machine code with paper. That's fucked. 1011110011100001.

That's some autistic bullshit right there.

path: 0 16955689, hotness: undefined, score: 1, children: 0
GooberEar -3 points a year ago
path: 0 16939244, hotness: undefined, score: -3, children: 1
donuts 2 points a year ago

I've never asked ChatGPT to fix a syntax error because I use Copilot

If you are going to be this pedantic, I'll have you know Copilot is a ChatGPT model in a Microsoft skin.

path: 0 16939244 16944779, hotness: undefined, score: 2, children: 0
programmer_humor
programmer_humor

@programming.dev

login for more options
32862
2487
7731

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

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

go to feed...