There will always be someone at a lower level than you. As a systems programmer he pokes fun at UX people. It is indeed hilarious. But technology and science is all about collaboration and building on other people's work. Remember that a generation ago nobody could be expected to use a program successfully without reading documentation first, and this even included most games. The proliferation of computers into the hands of everybody at your local bus stop is as much because of the work of the HCI people as the systems people.
A chip designer could write a similar rant about how systems programmers live a life of luxury sipping champagne with their pinkies held up. YOU USED AN ASSEMBLER? I SHOULD BE SO LUCKY! Or a chip designer could be mocked by someone else because he uses verilog.
Or the UX researcher could scoff at the systems programmer, because at least CPU's are rational and predictable, while people are at varying levels of intelligence and have different kinds of cultural biases.
Agreed. I did not appreciate the "better than you" tone of this argument at all. I suppose this is suppose to preach only to the egos of the system programmers? Hard to see what this achieves.
Mickens has some great material. He gave a talk at Monitorama a few years ago that's one of my favourites: https://vimeo.com/95066828
The article paints the plight of systems programmers in a hilarious way. I think programmer humour is rarely this well written, although a recent piece comes to mind by aphyr: https://aphyr.com/posts/340-acing-the-technical-interview
(define (cons x y)
(define (dispatch m)
(cond ((= m 0) x)
((= m 1) y)
(else
(error "Argument not 0 or 1:
CONS" m))))
dispatch)
(define (car z) (z 0))
(define (cdr z) (z 1))
Having done that sort of work early in my career, I think that's a bit much.
My first job in California started out with two 6-foot stacks of octal dumps of operating system crashes, for a mainframe OS that was running 1-2 hours between crashes. I worked through those slowly, with colored pencils and highlighting markers, figuring out what had gone wrong, then putting a fix into the OS, in assembler. Gradually the stacks got shorter and the time between crashes increased. When I left that job, we were going a month between crashes.
Then I changed jobs to work on operating system design and proof of correctness.
This is why I'm so negative on unsafe code in Rust. Memory safety is essential. There are programmers who think they are so good that they don't need bounds checking. They are wrong. The most recent CERT advisory of a security hole for a buffer overflow was 8 days ago.[http://www.kb.cert.org/vuls/id/214283]
I’m glad that people are working on new kinds of bouncing
icons because they believe that humanity has solved cancer
and homelessness and now lives in a consequence-free world
of immersive sprites. That’s exciting, and I wish that I could
join those people in the 27th century. But I live here, and I live
now...
How often I feel like this describes almost every human endeavor. "Oh, your toaster can phone home? Marvelous..."
Mickens usenix articles helped me get through several all nighters in undergrad. He has the perfect balance of technical material and humor in my opinion.
MySQL: You can't handle the truth! Son, we live in a world that has data, and those data have to be queried by processes that takes load. Who's gonna do it? You? You, Lieutenant htop?
I have a greater responsibility than you can possibly fathom. You weep for 4 cores and you curse the Queries. You have that luxury. You have the luxury of not knowing what I know: that the core's load, while tragic, probably runned queries.
And my existence, while grotesque and incomprehensible to you, runs queries. You don't want the truth because deep down in places you don't talk about at parties, you want me on that processor, you need me on that processor.
We use words like load average, slow running queries, query execution plan. We use these words as the backbone of a life spent developing db applications. You use them as a punchline. I have neither the time nor the inclination to explain myself to a man who rises and sleeps under the blanket of the very database power that I provide, and then questions the manner in which I provide it!
I would rather you just said, "Thank you," and went on your way. Otherwise, I suggest you pick up a server and run a query. Either way, I don't give a damn what you think you are entitled to!:
htop: Did you order the Code SELECT * ?
MySQL: (quietly) I did the job I was sent to do--
htop: Did you order the Code SELECT * ?
MySQL: (shouting) You're goddamn right I did.
[stunned silence] htop: Please the court, I suggest the members be dismissed, so that we can move to an immediate article 'Use Redis' session. The witness has rights.
Someday, people will live in a world where both errors are funny for the same reason. Right now we've got a lot of cultural baggage we unintentionally picked up over the years. I'm glad most people are aware enough to see it as a disaster, and maybe they're able make some adjustments to their values, slowly influencing our collective cultural values. I doubt i'll ever see it, but hopefully 10 generations down the road, it'll be funny for everyone.
I wish there was a way to make things like that go faster, but it seems like most people have a hard time changing at that level. On the upside, my parents are less racist than my grandparents. I like to think i'm less racist than my parents. The only effective method for that kind of change seems to be the people holding old values just dying off.
> Right now we've got a lot of cultural baggage we unintentionally picked up over the years.
"Unintentionally"? That's an optimistic take on history (recent and non-recent), considering the institutionalized/codified nature of the said "baggage".
Individual intention. I didn't build those institutions or codes. Yet those institutions and codes influenced my development, and continue to manipulate me.
History is history. It's how we got here and what built the culture we deal with today. For example, 250 years ago those institutions came to the conclusion the 3/5ths compromise was a good idea. 150 years ago they reversed their opinion. We're still dealing with a zillion consequences of those decisions.
No one alive today had any influence over any of that. We're told this is how the world was, this is how the world is. Some people recognize, no, the world doesn't have to be this way and make changes. But i think that's rare. Most people just sort of accept what they're told and go on with their lives.
As a systems hacker, you must be prepared to do savage things, unspeakable things, to kill runaway threads with your bare hands, to write directly to network ports using telnet and an old copy of an RFC that you found in the Vatican.
So if I can use netcat and ethereal, I'm ready for the zombie apocalypse? I can sleep better then. :-P
I've met Dr. Mickens. He's very relatable and funny in person, he comes from an academic family, and he is surrounded by other PhD's at the office. It's clear that he has adopted a certain style in his writing that exaggerates the self-importance he sees, and perhaps sometimes feels, in a way that deflates it and even mocks it for himself, and for some of his readers.
I like to think the use of the word pussy in this context is a contraction of the word pusillanimous which means lacking courage or resolution; cowardly; faint-hearted; timid.
A chip designer could write a similar rant about how systems programmers live a life of luxury sipping champagne with their pinkies held up. YOU USED AN ASSEMBLER? I SHOULD BE SO LUCKY! Or a chip designer could be mocked by someone else because he uses verilog.
Or the UX researcher could scoff at the systems programmer, because at least CPU's are rational and predictable, while people are at varying levels of intelligence and have different kinds of cultural biases.