Ask Slashdot: What Are Some Things That Every Hacker Once Knew? (ibiblio.org)
Open source guru Eric Raymond turns 60 this year, prompting this question from an anonymous reader:
Eric Raymond's newest writing project is "Things Every Hacker Once Knew," inspired by the day he learned that not every programmer today's knows the bit structure of ASCII. "I didn't write it as a nostalgia trip -- I don't miss underpowered computers, primitive tools, and tiny low-resolution displays... In any kind of craft or profession, I think knowing the way things used to be done, and the issues those who came before you struggled with, is quite properly a source of pride and wisdom. It gives you a useful kind of perspective on today's challenges."
He writes later that it's to "assist retrospective understanding by younger hackers so they can make sense of the fossils and survivals still embedded in current technology." It's focusing on ASCII and "related technologies" like hardware terminals, modems and RS-232. ("This is lore that was at one time near-universal and is no longer.") Sections include "UUCP and BBSes, the forgotten pre-Internets" and "The strange afterlife of the Hayes smartmodem" (which points out some AT commands survived to this day in smartphones). He requests any would-be contributors to remember that "I'm trying to describe common knowledge at the time." This got my thinking -- what are some that every programmer once knew that have since been forgotten by newer generations of programmers?
Eric Raymond is still hard at work today on the NTPsec project -- a secure, hardened, and improved implementation of Network Time Protocol -- and he promises donations to his Patreon page will help fund it. But what things do you remember that were commonplace knowledge "back in the day" that have now become largely forgotten? Leave your best answers in the comments. What are some things that every hacker once knew?
He writes later that it's to "assist retrospective understanding by younger hackers so they can make sense of the fossils and survivals still embedded in current technology." It's focusing on ASCII and "related technologies" like hardware terminals, modems and RS-232. ("This is lore that was at one time near-universal and is no longer.") Sections include "UUCP and BBSes, the forgotten pre-Internets" and "The strange afterlife of the Hayes smartmodem" (which points out some AT commands survived to this day in smartphones). He requests any would-be contributors to remember that "I'm trying to describe common knowledge at the time." This got my thinking -- what are some that every programmer once knew that have since been forgotten by newer generations of programmers?
Eric Raymond is still hard at work today on the NTPsec project -- a secure, hardened, and improved implementation of Network Time Protocol -- and he promises donations to his Patreon page will help fund it. But what things do you remember that were commonplace knowledge "back in the day" that have now become largely forgotten? Leave your best answers in the comments. What are some things that every hacker once knew?
Epson printer ESC codes - you embedded them in text documents and sent them to your parallel port dot-matrix printer, and they produced bold and italics and double width, and all sorts of effects.
ANSI escape screen codes - for setting foreground and background colours and other screen effects (clear screen, home) when you got bored with light grey on black.
I am anarch of all I survey.
Many young coders don't know that you can directly talk to an email server and have it deliver an email just using human readable commands over a TCP connection. HTTP and many of the older protocols work fine just using netcat.
The security implications these youngsters miss should keep everyone awake at night.
I worked in a building numbered 2600 with a bunch of developers for a few years. One day I pointed at the massive street numbers on the side of the building and said something like, "How appropriate." None of them had any idea what I was talking about.
Most kids these days have no idea what phreaking is, what a black box is, or a blue box, etc... Don't get me started on the contents of the anarchist's cookbook.
Most of them don't know what a MUD, MUSH or MUX was or how to program one, let alone about common door games (Trade Wars was the best).
Heck, I remember key cards which worked by perforations. Really easy to duplicate with a piece of cardboard. Remember core memory? Many "technical" folks nowadays probably can't do Boolean logic and wouldn't recognize most of the symbols. let alone binary operations or PEEK'ing and POKE'ing.
Thanks guys, now I'm starting to feel old. :)
The party of stupid and the party of evil get together and do something both stupid and evil, then call it bipartisan.
Hexadecimal: what it is, why it is and how & why it evolved from octal.
This word 'evolved'. I don't think it means what you think it means.
Multiples of 4 bits (ie. hexadecimal) is more natural in a binary world.
Multiples of 3 is stupid, it was only ever going to be temporary.
No sig today...
8 bits can store +-127, 16 bits can store +-32,767 (OK: add 1 to the absolute for negative numbers). 32 bits can store +-2,000,000,000 (well, a bit more), 3600 seconds in an hour, 86400 seconds in a day.
I find that some programmers only have a hazy idea what is meant by a 32 bit or 64 bit machine. These are fundamental, but they somehow get jobs not knowing the basics.
As far as I know the third and last edition of the Hackers Dictionary stams from 1996. I certainly hope that this all leads to a new and long overdue edition...
Paai
Pin 1 is frame ground and connects to the shield of the cable to help with noise.
Pin 7 is signal ground
In most cases they are not tied together. Or if you used 1 for your signal ground you got lots of interesting noise.
The protocol, not the frog (which it was named after).
Ubi dubium ibi libertas: Where there is doubt, there is freedom.
which lives on to this day in *nix
chmod 777
chmod uses octal numbering, one bit for each flag, and the flags are in groups of 3.
i remember on old apples there was a special hole puncher to make the disk double-sided (on the apple you had to flip the disk but ibm could read both sides).
You didn't need a special hole puncher. A regular round hole puncher worked fine and I did this routinely. If you wanted nice square notches an exacto knife would do the job. You only bought the "special" disk notching hole puncher for showing off.
*Bzzzzt* thank you for playing!
I had various Z80 and 6502 based machines (eg MZ80K, ZX Spectrum, BBC Micro). The BBC's OS was a thing of beauty!
And now all this time later I'm working with a microcontroller (ATMega328P) which for my purposes has much the same performance at ~1MIP (though on as little as microamps rather than an amp or so), but with nice hardware multiply and GPIO!
Rgds
Damon
http://m.earth.org.uk/
It's an ESR article. Eric never uses the word "hacker" in the latter sense.
This is true. He keeps fighting that fight looooong after it has been lost. Nobody outside of a few pedantic geeks (like many of us here) use the word hacker in the positive sense ESR insists it should mean.
The memory range which was set aside for the display, and which you had to write to in order to do graphics (non-hackers used libraries but hackers mostly went for embedded assembler to try and squeeze a little more speed out for graphics work)
My primary reason for disliking Win 95 was it was the first Windows OS which started to really mess with programs that wrote directly to the memory address A0000000 for graphics. I was only a hobbyist in high school at the time and had a hard time finding an alternative which performed as well as TASM code writing directly to the hardware. Eventually I started using DirectX but I remember having a real hard time finding information on how to use version 1.0 in late 1995. I relied heavily on Lamothe's "Tricks of the Game-Programming Gurus" to learn these techniques at the time, and wasn't skilled enough yet to learn new technologies quickly on my own.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
For some of us, it's today... I have two processes where the data arrives as EBCDIC plus binary data, and the files are constructed to emulate a 200-byte tape record. I got to learn all about how COBOL represented numbers in various fields to get these running in 1991 and 2000, and still have to remember them when the people source the data need help remembering how it works.
They keep saying they want to sunset the applications that generate the EBCDIC data, but, in 15 years of saying that, they have yet to create a viable alternative.
We really take our faster computers for granted, and our code is far from the level of optimization we were once required to achieve.
And that's a good thing too; now we can focus on more important things. It also makes our code better in terms of readability and maintainability. I once had to optimize the crap out of a routing algorithm to bring the execution time within acceptable limits. I made it work within the time allowed, but the resulting code was extraordinarily hard to understand and maintain. On better hardware we got away with a straight-up, clean implementation in C.
But knowing weird ways to optimize code still comes in handy from time to time. I know programmers who manage to squeeze a couple of ms from a routine and turn a sluggish bit of UI into something that performs smoothly. And I see others who give up thinking "this is as good as it'll get".
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...