- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
Honestly, CSS is a fucking joke and its 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.
Oh no, I was never a programmer in the past.
Nah, it’s not that bad.
In 10 years with continued AI use? Yep.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 … "
First learning is last learning.
Same reason we still do
console.log("FUCK")
.First learning is last learning.
I’ll be the dumb one to ask: what do you mean? Is this that making a mistake that costs a lot is the best teacher, because you only have to mess it up once to learn it forever?
Pretty sure they mean people don’t learn something again when they already learned it. Once you learn how to do something, willingness to learn it again but a different way dries up, and so you stick to bad habits as long as they ‘work’
It’s a mantra about teaching people and then expecting them to forget it. Doesn’t work. They’ll default to what they already know.
My freshman English teacher got married in October and I called her by her maiden name the entire year.
Like all programming mantras, it’s not universally true, but it’s annoyingly reliable. It reflects the shape of the human brain.
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
all apps are already built
Couldn’t be further from the truth. You also have to consider competition.
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.
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.
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.
Okay but how do u center a div in 2025
maybe the div is already where it’s meant to be
2050: people still wondering how to center a div because html and CSS is a nightmare.
Make your web page in GIMP, export to PNG,
<img>
.Same way you did it in 2024 but it’s easier because the springgirdles have been replaced with rotated manglebrackets.
What threw me was having to set a width.
Ask the browser nicely while using please and thanks.
Depends if you’re centering the div or the things in the div. Which has probably been the main issue since CSS was invented.
If using plain CSS, usually it’s enough to set
width
appropriately, andmargin-left
andmargin-right
toauto
.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.)
w-... mx-auto
, replace the 3 dots with your desired width value, and that’s it with tailwindSo what is the point of these frameworks if they make it harder?
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.
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
Until everyone moves over to the next thing and you start from 0 again. Web dev is a nightmare.
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…
Who’s saying you’re using the frameworks correctly?
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.
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.
Nah, just flex them boxes
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
While centering div, you add one to 2023.
You count half the pixels and put them in a margin-left
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.
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.
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.
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…
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.
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.
Can’t exit Vim
Ah yes, the legendary filter
the only reason people use vim is because they are stuck in there
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.
You quit it just like you quit
ed
orex
, just that you have to enter the prompt (:
) yourself asvi
is not by default in prompt mode. And you should knowed
,ed
is the standard editor.I use Helix btw.
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.
I don’t get your analogy, but (neo)vim is a full featured IDE if you configure it to be one
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.
Yeah that’s a fair way to look at it
:x
it says I don’t have permission
:q!
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.
Cumbersome: save to some temporary file I guess.
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!”
I once had a junior calling me in a panic because he didn’t know how to quit nano. NANO!
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…
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.
I mean, maybe it was just me but I had to search what the hell ^ meant in nano, but after that it was alright.
Do you remember the “press any key to exit”? Someone asked where is the “any” key.
Nano… Like… The one that has all the keybinds permanently shown at the bottom of the screen?
Onscreen instructions unclear, pressed Shift+6+X. Still stuck in Nano.
Burnt into the old LCD screen.
And your retinas.
Yeah, that one…
Nano nano!
drinks water with finger
Ork humor. Love it.
That deserves a “do you know how to read?”, because the exit command is on the lower part of the screen for nano
I had an intermediate not understand how to read a pipe-delimited text file.
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.
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.
The former.
80s programmers hated Unix, btw. Look up Unix Haters Handbook, it’s a free and funny read
They also hated their local sysadmin. BOFH still holds up in a few key ways.
Thanks. I didn’t know there was a real band called “The Pipi Pickers” and I might have lived on happily without that knowledge.
Good thing GNU’s not Unix
Unix Haters Handbook
https://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook
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
I prefer the MIT link, it’s faster 😁
Unix does so many stupid things and we’re still stuck with some of them. Especially the terminal section still applies today.
Love the shoutout to Margaret Hamilton
The majority of “programmers in the past” should be women actually, but our meme formats are still too patriarchal to express that in 2025.
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.
“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)
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.
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.
The glory days of Derp and Derpina
So were “computers”. It used to be a job, delegated mostly to women. The JD is doing calculations day in and day out.
Obligatory Grace Hopper
The moon landing by hand wouldn’t have been as funny without the over the top body builders first.
“too patriarchal” no one was thinking of “furthering the goals of the patriarchy” or whatever your delusions tell you.
It’s just people making memes, and most people who make memes who are guys will make memes with guys in them, because they identify with them the most.
Your brain dead take is pure cancer.
I agree with you: I never intended to imply explicit anti-diversity intentions or even awareness of the biases embedded in our culture.
Implicit bias refers to the attitudes or stereotypes that affect our understanding, actions, and decisions in an unconscious manner. Implicit biases are activated involuntarily, unconsciously, and without one’s awareness or intentional control (see, e.g., Greenwald & Krieger, 2006; Kang, et al., 2012; Nier, 2005; Rudman, 2004a)
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.
You can throw Margaret Hamilton in there, who was in charge of the software team that landed people on the moon. The picture of her standing next to a printout of the Apollo guidance software is iconic.
So many great points in a short comment. I love your high bandwidth writing style!
Dude. Chill. Ain’t nobody giving a shit about your take on someone else’s take.
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.
tar --help
(joke)
YOU FOOL! THE ACTUAL COMMAND WAStar -?
That dash looks an awful lot like an em-dash
Normal:
-
Em:
–
That reminds me of this Elle Cordova short: https://youtube.com/shorts/ky0YOo7_Y0o
I’ve never understood why people are so intimidated by tar
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.
tar -eXtract Ze Vucking File
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.That doesn’t give me a memorable mnemonic though.
tar -eXtract File
yeah, but then how am I supposed to remember “tar” ? :P
Tape ARchive -eXtract File
Thanks! This will definitely help me to remember it from now on.
Me 6 months from now:
tar -EZVF
Me in 6 months "
how to install winzip using terminal"
It is sticky and pretty much ruins clothes.
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…).
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 needz
orJ
or whatever.
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.
Hey buddy, if I fix one bug and cause three more, it’s called job security. Where’s my medal?
Getting to keep your job is your medal then.
I have to say, I’m pretty sure those guys were in the past too.