Slashdot Mirror


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?

90 of 615 comments (clear)

  1. Handmade Hero by dottrap · · Score: 5, Interesting

    Watch Casey Muratori's Handmade Hero, where he codes a game live on Twitch from scratch with no 3rd party libraries.

    His entire effort is fueled by his desire to educate the next generation of developers with an understanding of how computers *actually* work, which is something he feels is both important and has been lost.

    https://handmadehero.org/

  2. Big Floppy is scamming you by Anonymous Coward · · Score: 5, Interesting

    Stick a hot soldering iron through the upper-left hand corner of your 720K floppy and now you've doubled the capacity.

    1. Re:Big Floppy is scamming you by Anonymous Coward · · Score: 2, Interesting

      Stick a hot soldering iron through the upper-left hand corner of your 720K floppy and now you've doubled the capacity.

      there was alot of floppy tricks. !!! 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).

      also there was 3rd party software on both platforms to format the disks to all sorts of strange/larger capacities. i remember os/2 warp 3-something shipped on like 30 3.5 floppies that were formatted out to something like 1.7mb (xdf??) - but anywhat, ppl. expanded this and there were dos drivers that could format a 3.5 floppy to 1.8mb.

    2. Re:Big Floppy is scamming you by Anonymous Coward · · Score: 3, Funny

      Big Floppy

      There's a pill for that.

    3. Re:Big Floppy is scamming you by silentcoder · · Score: 4, Funny

      There wasn't one then.

      --
      Unicode killed the ASCII-art *
    4. Re:Big Floppy is scamming you by BenFranske · · Score: 2

      I'm pretty certain it wasn't the travel range of the head that was the problem but the variable spindle speed used in by their GCR format on 400k & 800k disks.

  3. EBCDIC by dwywit · · Score: 3

    Specifically, EBCDIC-ASCII tables.

    --
    They sentenced me to twenty years of boredom
    1. Re:EBCDIC by FaxeTheCat · · Score: 2

      In the old days when I had to deal with this (sending EBCDIC encoded data to companies using mainframes), I did not have to deal with the conversion tables, as OpenVMS had system subroutines to do this.

      Sending EBCDIC data on half inch tapes.... those were the days...

    2. Re:EBCDIC by WoodstockJeff · · Score: 4, Insightful

      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.

  4. Pinouts by famebait · · Score: 4, Interesting

    RS232 an null-modems are mentioned in TFA, but I'd like to add a detail:
    Most of the more hackerish students where I went (ca 1990) knew the minimal pinout for a null-modem by heart so we could improvise one with 3 wires and matches/paperclips/whatever. By the time we graduated LANs and to some degree internet mane that knowledge obsolete, but it sure did save the day a few times, typically for transferring files between different platforms with different floppy formatting.

    --
    sudo ergo sum
    1. Re:Pinouts by SharpFang · · Score: 5, Interesting

      Eh, networking multiple Amigas together at a copy-party...

      Nobody had any special hardware. But we had a bunch of serial and parallel cables, and every Amiga had a serial and a parallel port. So we'd daisy chain them serial-parallel-serial-parallel...
      Then there was no real networking software, but there was the contents of the computer connected over serial or parallel seen as an extra "disk drive" with its volumes seen as directories.

      So, you want to copy a file to that guy three computers over to your left? The guy to your left connects to you over serial, so open the 'drive' that stands for serial link, and you're on his computer. Then open the 'parport' directory and you're two computers over. Open another 'serial' and you're with access to the computer you wanted :D

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  5. That the only way to by fred911 · · Score: 2

    repetitively assure a V.32bis connection was to use a US Robotics modem and all the cloned softmodems were garbage.

    --
    09 F9 11 02 9D 74 E3 5B - D8 41 56 C5 63 56 88 C0 45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    1. Re:That the only way to by MachineShedFred · · Score: 2

      Soft modems were garbage, no doubt. But Rockwell still made some amazing modem chipsets. A lot of people forget that K56Flex (Rockwell's proprietary 57,600 bps encoding) could actually get to 56k on phone lines due to superior error correction, where USR's proprietary version topped at 53,000. When the V.90 standard came out, it used the lesser encoding and topped at 53,000; the Rockwell V.90 modem chipsets would still do K56Flex if you configured them to with your initialization string (AT commands, woo!) and your ISP supported it - you could squeeze a little more out.

      US Robotics was great in the 28.8 / 33.6 days, but mostly traded on their name after that, and completely ruined their name with their garbage "soft" modems. The SupraExpress modems were superior in the 56k days, especially if you could find one of the international "memory" modems that could do digital voice mail even with the computer turned off.

      Even the "controller-less" modems sucked, but were still better than those soft modems. On today's computers it wouldn't matter because there's so much extra power available that you don't need the hardware data pump anymore, but in those days it really mattered for connection stability.

      --
      Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
  6. Re:IBM (MS) Basic Manual by jandersen · · Score: 2

    Or, if you're lazy, 'man ascii' (in Linux)

  7. Hexadecimal by IHTFISP · · Score: 5, Funny

    Hexadecimal: what it is, why it is and how & why it evolved from octal.

    That, and why real computer scientists often confuse Halloween w/ Christmas: 31 Oct = 25 Dec.

    --
    Error: NSE - No Signature Error
    1. Re:Hexadecimal by Joce640k · · Score: 4, Insightful

      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...
    2. Re:Hexadecimal by Tomahawk · · Score: 2, Insightful

      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.

    3. Re:Hexadecimal by SharpFang · · Score: 2

      Considering there's one digit per 'entity' they might just as well be hexadecimal with top bits of each digit unused.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  8. Download resumes by fred911 · · Score: 2

    Only had a chance with Zmodem.

    --
    09 F9 11 02 9D 74 E3 5B - D8 41 56 C5 63 56 88 C0 45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  9. DOS Hackers by silentcoder · · Score: 5, Interesting

    (Yes, they existed - especially in the mid-1980s) all knew:
    - Interrupt 18 to force a reboot
    - 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)
    - The hex number for every one of the 16 colors a CGA display could show (Sierra Online took it a step further in the AGI engine and invented an early precursor of the scene-bumpmap which allowed their pseudo-3D adventure games to work by using a map-image where depth was indicated by color allowing characters to walk in front or behind objects). Unlike a true bumpmap it didn't specify height for lighting, it specified distance from the screen for movement. It allowed the Y axis to double as a Z axis
    - How to read/write from the parallel port
    - How to write to the PC-speaker's memory address to play sounds
    - How to access extended memory

    All things that went by the wayside when Unix and Win32 became available on the PC platform, acting like you are root all the time became frowned upon, libraries became the normal way of doing things, memory wasn't artificially limited to 640K. Some of the legacies of this era lived on rather longer than you'd think. As late as the early 2000's the best way to run most games on Linux was still using SVGALib - which wrote directly to video memory and didn't require resources for X, but in an age before the DRM driver in the kernel SVALib meant you had to run your game as root. I still played Quake2 that way ! The way SVGALib worked was simply a slightly larger memory region using the exact same techniques that we had used in the 1980s.

    --
    Unicode killed the ASCII-art *
    1. Re:DOS Hackers by silentcoder · · Score: 5, Interesting

      Indeed, and back then parallel was significantly faster than serial (hence it being used for printers). It was a favorite tool for copying files between PC's as well as it could do in 20minutes what would take an hour over serial (after a previous hour trying to get both PC's serial ports configured to matching configurations).

      Among the hacker crowd it had another major use too - you had 8 circuits that could be individually switched on/off by sending a different byte over the port, It was extremely low voltage (you could just about light-up an indicator LED with it - but you could use it to flip a switch, whether that was an electronic transistor based on or a cheap relay-based one depended on your budget) and that meant you could turn non-computer devices on and off with software.
      The early days of home-automation relied on the parallel port because a single CPU in the box could control 8 different devices and switch on any particular combination of them at any given time. It didn't become possible to do that over a serial port until the other side of the connection was smart and could actually execute instruction code.
      In my case - I had a complicated circuit that replaced the controller of a scalectric car with 4 voltage boosters allowing step-up speed control (all off would stop it), and the other 4 bits on the other track. So sending 10001000 would have both cars drive at minimum speed, 11001000 would have the first car at twice the speed of the other.
      Then I started the process of trying to program a time based sequence to give me perfect (fully automated) scalectric laps with no cars ever flipping but doing the track at the highest speed possible. It would have been so glorious...

      Would have been...

      See I was about 12, my electronics skills were not that advanced and frankly I hadn't considered the huge amount of RF noise that scalectric brushes produce - let alone that slowing down caused the motor to act as a generator creating voltage the other way (the same effect now used for regenerative braking in Tesla's)... a mere few hours after I got the whole thing to work... I fried my motherboard. And that, ladies and gentleman, is the story of how I learned the value of surge protection. That too is something every hacker (at least those in lightning territory) used to know - modems on phone lines had a nasty habit of sending lightning surges through your PC.
      You soon learned that surge protectors had limited power against the kind of voltages lightning strikes put on a line... you always unplugged everything at the first sign of a cumulonimbus cloud.

      --
      Unicode killed the ASCII-art *
    2. Re:DOS Hackers by AmiMoJo · · Score: 2

      Yes, it was a BASIC command... It's become short hand, at least around here, for writing a value to memory space in any language, at least around here. I guess it's like "googling" or "grepping", just a handy verb.

      I never did much with DOS beyond QuickBASIC because that's all I had. I was mostly doing Amiga stuff in assembler and Blitz BASIC. Blitz was great because it handles all the boring set-up and file loading, but allowed you to write in-line assembler for the performance critical parts.

      The Amiga was similar in that memory was not cleared or protected in any way. On popular technique for ripping stuff from games was to simply reset the machine and load up a ripper that would scan through memory for music and graphics. You sometimes couldn't get the colour palette data for graphics though, as it was usually managed by a special co-processor and effectively hard-coded into a program for it to execute. Eventually I got an Action Replay cart which could handle all that and was great for learning about various demo effects by pausing and single-stepping them in a monitor.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    3. Re:DOS Hackers by ranton · · Score: 3, Insightful

      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
    4. Re:DOS Hackers by radish · · Score: 3, Interesting

      And interrupt 27h to terminate stay resident :) The fun we used to have with that one in my school PC labs...

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  10. old school by Tumbleweed · · Score: 2

    8N1
    ATH
    Acoustic Couplers ;^)
    DSDD
    Floppy notcher
    HAM (not radio)
    The Turbo button is not always your friend
    Green vs Amber, the eternal war
    8-bit Bucket List: TWO floppy drives!

    I'm old.

    1. Re:old school by paai · · Score: 2

      And insulting somebody, writing "you are an idi^H^H^H misguided"...

      Paai

    2. Re:old school by Jay+Maynard · · Score: 2

      The word "ham" in "ham radio" is not an acronym. ...de K5ZC

      --
      Disinfect the GNU General Public Virus!
    3. Re:old school by MachineShedFred · · Score: 3, Funny

      Don't forget modems that didn't have guard time between +++ and actually entering command mode.

      There was a good amount of time when you could get on IRC or something similar and type +++ATH and watch 1/3 of the channel disappear because they hadn't updated their firmware, or had a shitty modem that couldn't update firmware to fix it.

      --
      Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
    4. Re:old school by Rob+Riggs · · Score: 2

      To be fair, no properly designed modem will respond to AT commands send via the phone side of the modem. This would only happen when there was an actual IRC server behind a modem (which would receive and then re-transmit the sequence). More often than not, we'd use this to try to trick some newbie into sending this sequence themselves.

      --
      the growth in cynicism and rebellion has not been without cause
  11. What Are Some Things That Every Hacker Once Knew? by Freischutz · · Score: 4, Informative

    What Are Some Things That Every Hacker Once Knew?

    Do you mean hacker as in programmer or hacker as the media usis it to describe a digital burlgar? If you mean the former, these days it seems to be simple stuff like checking for open ports with telnet and then having fun by typing in protocol messages: http://www.shellhacks.com/en/S..., or even simpler stuff like editing documents with vi and using command line programming tools. These used to be things that every programmer knew, I learned this in school but many of our new recruits seem to be totally unaware of this stuff. I've written programs tens of thousands of lines long with nothing but vi, gcc/g++, make, tcpdump+Wireshark, valgrind, vi and a few other choice commandline monsters but these days the GUI generation seems to need a GUI editor, preferably a GUI IDE, a GUI networking tool, a GUI debugger, etc... to do simple stuff. I don't usually even need a debugger, I can normally figure out what is wrong without one. A few years ago I was handed a .NET assignment. After much complainign and whining (Unix guy through and through) I coded it up using that primitive little Windows CMD terminal, a freely available .NET compiler and vi/make before the IT department got around to installing Visual Studio. The really funny thing was that even some seasoned .NET developers were surprised to see you could (a) run vi/make and other GNU tools on Windows and (b) compile .NET code from the command line: https://msdn.microsoft.com/en-.... BTW, and this is probably heresy around here, but I really like how Microsoft seems to have a well documented API for everything as long as you are willing to bother learning .NET or Visual Basic.

  12. Why DEL is 0x7F by steveha · · Score: 5, Informative

    The "control characters" have their own special position in ASCII, as the codes below the space character: 0x00 through 0x1F.

    Yet, for some reason, there is one more sort-of control character outside that range: DEL, which is 0x7F. This bit of lore is actually from before my time, but I know why.

    People used to actually use paper-punch machines to punch input tapes. What could you do if you mis-punched? There's no good way to fill in holes you didn't mean to punch, but you could go back and punch more holes. ASCII is a 7-bit standard and DEL is all 7 bits set. So, if you hit the wrong key on the punch, you could hit DEL and it would punch out all the rest of the holes, making 0x7F or DEL, and the paper tape reader would simply ignore any DEL characters it saw.

    Oh, I guess anyone who can use Wikipedia didn't need me to find this out.

    P.S. I didn't actually know why the carat notation for DEL is ^?, but Wikipedia explains that as well. Neat!

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  13. Re:Zero Page memory locations by paai · · Score: 5, Informative

    The zero page on e.g., a 6502 consisted of the first 256 bytes in memory, so the address of any byte therein was only a single byte in stead of two. Access therefore was faster on that page than of all other parts of memory.

    The Apple II was my first computer. I bought it when I was thirty, in 1979. I then was an art historian, looking for new ways to administrate art collections. It really changed my life

    Paai

  14. Old codes I remember using by ignavus · · Score: 4, Insightful

    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.
  15. Re:Zero Page memory locations by Pseudonym · · Score: 2

    It's fair to say that not every hacker knew this. Those of us who grew up with 8-bit micros in the 80s were either Z80 or 6502 (the COSMAC was very rare), and those who used one didn't use the other.

    I was 6502, so I know what you're talking about.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  16. Overlays by Pseudonym · · Score: 3, Interesting

    Every hacker over a certain age knows what is meant by the term "overlay", from minicomputers to CP/M to MS-DOS. And it fills them with dread to this day.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  17. The crucial prompt: term? by steveha · · Score: 4, Interesting

    Where I went to college, there were dumb terminals hooked up to serial lines in various locations around campus. Students would take turns using them. (They're all gone now... everyone has their own computers and it's all WiFi and/or Ethernet now.)

    When you logged in to any campus computer, the very first thing it would do was print a cryptic prompt: term? [vt100]

    This was your one opportunity to correctly enter a terse code that described the terminal you happened to be using. Terminals were not cheap, and nobody was going to throw away old ones when new ones were bought, so the campus had a mix of terminal types. It would have been nice if there had been a universal standard way to interrogate a terminal to find out its type (some reserved escape sequence) but there wasn't, so it was up to you to enter it correctly.

    So every terminal had a little slip of paper on it saying something like: TERMINAL TYPE: vt100

    There was always a default, which you would get if you just hit the Enter key. I cheated in the above examples and put vt100 but I think the default was something else; VT-100 terminals were not actually common (I think I only ever saw one!). I no longer remember what was common, just whatever they happened to buy a lot of.

    If you got it right, then the system used termcap to look up the capabilities of your terminal, and it would know how to use the cursor-movement features of your terminal. In short, you could run programs like vi and emacs. If you got it wrong, and then tried to run vi and emacs, your screen would become horrible hash quickly. What on one terminal would move the cursor around might be meaningless on another terminal or might have some different effect. (Imagine if the "move cursor to X,Y" command one one terminal was "clear to end of line from position X,Y" on another brand of terminal. That sort of wackiness.)

    So the two bits of lore that every computer-using student at my college needed to know: how to correctly enter the terminal type, and how to fix it if you entered it incorrectly. (Best to just stop what you were trying to do and logout!)

    But here's the punchline of the above lore:

    Computer geeks like me used the terminals all the time. People who had to do statistics work also used them a lot, but some students rarely used them. For some students, the only times they used a terminal was once per quarter, to sign up for classes for the new quarter.

    When I started at college, this was easy. You got a paper printed class catalog booklet, you would look up the course numbers of the courses you wanted to take, and from any terminal you would login to a special account. A program would run, reading standard input and writing standard output, and it would prompt you to enter your student ID number and the course numbers. After you entered each number, you would be prompted: Is this correct? yes/no and you would answer. Simple. I don't think it even bothered to prompt for terminal type, and even if it did, it didn't use it for anything.

    But then some computer science grad students went ahead and improved the system. They added browsable menus. You could use the arrow keys to browse through, drill down, find your course and pick it. You didn't need a paper catalog of course numbers! But now you actually needed to enter the terminal type correctly. All the students who rarely used the terminals had no clue what term? [vt100] meant, and usually just hit Enter, and then they were hosed.

    I'm sure now it's all web forms: no need to print paper booklets, and nobody has any serious problems using it. Not all the old ways were better.

    P.S. The campus had a couple of ADM-3A terminals, and I used them from time to time if nothing better was available. They had no dedicated cursor arrow keys, but had arrows printed on H J K L pointing left, down, up, and ri

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
    1. Re:The crucial prompt: term? by paai · · Score: 2

      Ebg13, unia'g frra gung sbe ntrf.

      paai

  18. Serial by MrKaos · · Score: 3, Interesting

    9600,8,N,1,XON/XOFF

    DB9:pins 2/3/5

    DB25: pins 2/3/7

    --
    My ism, it's full of beliefs.
    1. Re:Serial by l0n3s0m3phr34k · · Score: 2

      I just used a DB9 cable and putty with (close) to those settings to connect via a console cable to a Cisco switch, our SonicWall NSA 4500, etc. I had to custom-make a DB9 connector to get into a couple of remote power systems that don't have DHCP by default. Few other "computer people" I know know enough about that to make a cable like that, at least around here.

    2. Re:Serial by MrKaos · · Score: 2

      Interesting. What was reading the other end?

      Yeah, serial still comes in handy for mobile phone stuff I'm finding since learning you can trigger some mobile phone headphone jacks to be serial ports. I want to deep dive into android soon so I suspect that I'll be brushing the dust off my memory of the stty command. I was so happy that knowledge I thought of as obsolete, was again new, funny how old knowledge comes back around to you in IT, eventually.

      I remember when I started out, making a massive bundle of rs232 cables, it made my soldering perfect and chicks dig perfect soldering :-p

      --
      My ism, it's full of beliefs.
    3. Re:Serial by thegarbz · · Score: 2

      Or the modern equivalent:

      White orange, orange, white green, blue, white blue, green, white brown, brown.

      Yes I know this is different in the USA.

    4. Re:Serial by grumling · · Score: 2

      You forgot "tab down," which caused a lot of confusion when training a coworker (and not specifying that) once. But only once...

      --
      "Well, good luck finding a judge that doesn't run a bestiality site."
    5. Re:Serial by j2.718ff · · Score: 2

      9600,8,N,1,XON/XOFF

      I remember there was a startup ISP in my area that was looking for beta testers before they were ready for paying customers. They put a small ad in the local newspaper that simply stated their dialup number, followed by 9600,8,N,1.

  19. Re:WRONG..!!!! by MrKaos · · Score: 2

    not if he is using a db25, 1 is ground as well.

    --
    My ism, it's full of beliefs.
  20. Use Netcat to send an email by FeelGood314 · · Score: 3, Insightful

    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.

  21. old school? by tamarik · · Score: 5, Interesting

    I'm seeing a plethora of 6, 5 and even 4 digit userids post here for this one. Good to see we ain't dead yet...

    WDD1100 jumpers, ABit dual CPU mobos w/ peltior plates.
    My Yellow card, Abend Aid was an amazing help when looking at 40Meg bal360 dumps.
    Trips over to the data center to nail down the last couple slashes for some JCL
    Late afternoon games of snipes on Novell 2.15 networks
    Using that 3270 terminal/XT PC in my cubical farm nest - SNA and IPX/SPX
    programming the Gigi keyboards to mess with others in the college computer labs
    replacing miles of coax with Cat5 as a sign of the change of times.

    Now I get to sit on the porch here in sunny south Georgia and chat with other old timers. TV studio eng, Packet radio guy,
    and so many others. The poor kids of today don't really understand how good we had it.

  22. Ob by Hognoxious · · Score: 2

    How to design a usable GUI.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  23. Re:bitwise math by Joce640k · · Score: 4, Interesting

    For signed numbers, >> 2 and / 4 are not the same operation, so the compiler cannot do it for you.

    Of course it can.

    Compilers aren't AI, they can do any 'trick' the compiler writer knows, eg. using a shift instruction that preserves the sign bit. You need to disassemble some compiler output sometime and see the impressive amount of tricks they know. It's almost as if the compiler writers take pride in their work.

    --
    No sig today...
  24. Re:Every hacker once knew? by _Sharp'r_ · · Score: 4, Insightful

    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.
  25. Re:Zero Page memory locations by Joce640k · · Score: 2

    and those who used one didn't use the other.

    Everybody knew both where I worked and we all moved the 68000 with no problems. All it takes it 10 minutes looking at clock cycles in the back of the manual.

    --
    No sig today...
  26. Re:Always by LinuxIsGarbage · · Score: 2

    Use the -d flag with pkunzip, otherwise, you might end up with a big stinking mess.

    Why was this not the default?

    ZIP files are still screwed. Do you want to "Extract here" or "Extract to archive.zip\".

    Either you will clutter up your downloads folder in a similar "big stinking mess", or else you will end up with "archive.zip\archive\archive\files.exe"

    Why can it not be smart enough to figure out if there's a parent sub-dir in the archive before creating nested redundant sub-dirs.

  27. Booting computers with switches by Required+Snark · · Score: 2
    Early mainframes and minicomputers all had binary switches on their control consoles. The number of switches was typically the length of a hardware word. Each switch also had a light (incandescent, not LED) to show if the switch was on or off, i.e. one or zero. Some minicomputers in industrial applications didn't have any user interface except the switches and lights.

    Loading the initial software on these kinds of systems often required setting the console switches to a specific pattern. On some of the early minicomputers the operator had to use the toggle switches to load a short binary program that would be the first stage of the boot sequence. Sometimes the next stage was loading a more complex boot code that was input from paper tape. Even with a disk attached the load sequence was power up the machine into a non-running state, toggle the low level boot into memory, load the paper tape, then press a button to start the machine. If it all went well the result was a prompt on the console TTY or VDT accompanied by a bell (TTY) or a beep (VDT).

    The console switches could be read and the lights set in software. Sitting at the machine console an experienced operator could tell how busy the computer was by looking at the light pattern. In some desperate circumstances code could only be debugged by having test code that read the switches and set the lights as it ran.

    In George Lukas's first full length move THX 1138 there is an IBM 7094 mainframe. It had lights that formed a grid that could hold a few letters. At one key point in the film just before the end, these lights spell the word "TILT".

    --
    Why is Snark Required?
  28. Some numeric values and basic concepts by Alain+Williams · · Score: 3, Insightful

    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.

    1. Re:Some numeric values and basic concepts by 91degrees · · Score: 2

      Most coders had memorised their powers of 2, as well. At least up to 2^16.

  29. MVS core dumps by whatteaux · · Score: 2

    Reading a core dump on a System 390 (running MVS / OS/390 / etc) machine.

    It's 3.00 am and the program has crashed after running for 6 hours. You can't re-run it, you have to find out why it crashed, fix it, and checkpoint-restart to completion. You have until 5.00 am. Your time starts now. Oh - and it's PL/I. An infinite loop in an IMS/DB program. Be afraid.

    The ONLY information you have is the core dump, the program listing (albeit with object map), the linker map, and maybe - if you're lucky - a DB dump.

    Did I mention it's a program you've never seen before? Those who have seen it are recovering from the party to celebrate a week of successful running. But they're not the ones on call that week, are they?

    Ah, 1984. What a year.

  30. Re:Every hacker once knew? by paai · · Score: 4, Interesting

    Ah... 80 column punch cards. And walking down the stairs with a 20 cm stack of data plus program, and dropping them, and then having to sort them by hand...

    Paai

  31. Fourth edition of Hackers Dictionary? by paai · · Score: 3, Insightful

    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

  32. Re:Floppy disks drilling & punching holes by Megane · · Score: 2

    If you didn't use Apple II or Commodore, you also had to cut an index hole. This was considerably more complicated. I eventually would just slip something protective into the disk and slash out a square with a razor blade. Then repeat for the other side.

    And, for what it's worth, you can't read the other side with a double-sided drive for two reasons. The obvious one is that the track spins backwards (as if that would stop a dedicated Catweasel user), but the less obvious one is that the second side is offset by 2 tracks, making it impossible to read the first two tracks.

    Punching an HD hole on 3.5" floppies was a bad idea, because HD had different magnetic parameters. It's like the old chrome cassette tape thing. Genuine HD floppy disks were total crap in the later years anyhow, which probably helped encourage people to stop using them.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  33. Re:Tandy drmos in RadioShack by Trax3001BBS · · Score: 2

    were awesome necause Tandy looked better than the PCClones. They. yended to be passive cooled processors and thuds quieterr as compares to the bulky beige PC/Clone.

    There was a magazine called TRS80 and it would have programs you could input. I'd spend 6 or more hours inputting them with cassette storage lots of peeking and poking.

  34. re: "Not the ground you are looking for" by Anonymous Coward · · Score: 2, Insightful

    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.

  35. Assembly Language, by Trax3001BBS · · Score: 2

    I taught myself Basic on the TRS80, and into Assembly Language, I've always been a pirate (TRS80 had very little, I was making up for it), Amiga came out and I went that route, the Basic was so bad I had to quit or toss the system, and Assembly language is what I've forgotten, I knew it at 286, more registers than I know of now.

  36. Re:SCSI Voodoo by thogard · · Score: 2

    A real cool thing about a SCSI chain is that you could have several drives shared between several computers. A friend had an Amiga, Sun and PC all on the same bus with a few drives. There was even a program on the Amiga that could pretend to be a block SCSI device made up of parts of others disks.

    I once ran a name server that would boot from a disk that was shared and maintained by another system. Named was run by init after the network setup stuff had run. The right signals on the serial line and bind would stop, remount the disk and reload its config thanks to a small program. That was when I started to like the idea of virtual servers that didn't have shells in them at all.

  37. Debugging Code by Inspection by awol · · Score: 2

    Reading code in order to detect bugs/issues because the compile/run cycle took hours. Seems to be a forgotten art now days.

    --
    "The first thing to do when you find yourself in a hole is stop digging."
  38. Kermit by ronys · · Score: 4, Insightful

    The protocol, not the frog (which it was named after).

    --
    Ubi dubium ibi libertas: Where there is doubt, there is freedom.
  39. Re:What Are Some Things That Every Hacker Once Kne by Jay+Maynard · · Score: 3, Informative

    Do you mean hacker as in programmer or hacker as the media usis it to describe a digital burlgar?

    It's an ESR article. Eric never uses the word "hacker" in the latter sense.

    --
    Disinfect the GNU General Public Virus!
  40. Re:Ugly things from the eighties! by os2fan · · Score: 3, Interesting

    IBM Series M keyboards.

    TeamOS/2. These was one of the scenes you hung out in, if you wanted to be a PC-hacker.

    Tag Lines: eg OS/2: because a 386 is a terrible thing to waste. or OS/2: a multi-threaded suite.

    AT (and other pretentious terms that dated just too quickly).

    Floppies (of all sizes).

    --
    OS/2 - because choice is a terrible thing to waste.
  41. Hole punchers for old floppies by sjbe · · Score: 3, Insightful

    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.

  42. CGA & EGA Graphics by phil · · Score: 2

    Leave it to Eric Raymond to give us old guys a forum.

    I too cut my teeth on BASIC and 6502 assembly.

    I haven't seen any reference yet to the fine art of EGA's 16 of 64 color choices, horizontal and vertical timing, blanking interrupts and the like.

    Back in those days before the likes of Google and Wikipedia I had a set of IBM PC DOS manuals including all the Int 21 functions, disassembled boot code and more. It is fun to reminisce, but like Mr. Raymond says, I don't miss it at all.

  43. Re:Zero Page memory locations by DamonHD · · Score: 3, Insightful

    *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/
  44. Re:Always by rpresser · · Score: 3, Interesting

    Use the -d flag with pkunzip, otherwise, you might end up with a big stinking mess.

    Why was this not the default?

    Probably because CP/M didn't have directories, and PKZIP had a definite familial relationship with LBR, which came from CP/M and therefore had no directories; and with ARC, which was cross-platform, including a CP/M port.

  45. Old vs common use of word "hacker" by sjbe · · Score: 3, Insightful

    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.

    1. Re:Old vs common use of word "hacker" by skids · · Score: 3, Insightful

      Geez, what's going on at all those "hackathons" then?

  46. lower your phone bill by rpresser · · Score: 2

    by using PC Pursuit to call BBSes.

    Or just use the modem at work and lie about it when the phone bill comes in.

    Getting annoyed when some salesrep starts sending a fax when you're in the middle of an important zmodem download on the same phoneline.

  47. Re:Zero Page memory locations by Anonymous Coward · · Score: 3, Interesting

    Hi 73 here. First program at University using Fortran and punched cards. Still know and remember 90% of the ASCII character table in my head. Use the ASCII sort procedures to this day in some of my file names to force them to come to the top of a file list.
    Spent a lot of time learning the HP Printer control procedures in the early 90's and became quite proficient programming HP printers. Learned quite a bit about the Hayes modem command set. Experimented a lot on Centronics printer interfaces and RS232. I used to make and sell Centronics and RS232 cables and made decent money at the time - early 1980's.

  48. Re:ICE Devices? by russotto · · Score: 2

    Back in the day most applications with some sort of copy protection would load everything at once into memory. If your computer had a memory expansion port you could attach an ICE device to the memory expansion port, do a memory dump to it, write out the memory dump to disk and voila! you have a broken copy of that application. Is there an analog to this today?

    Firewire DMA, which can be used to snag the encryption key for various DRM schemes (though you usually don't have to go to such lengths). There are also similar devices intended for forensic use.

  49. Re:Zero Page memory locations by Anonymous Coward · · Score: 2, Funny

    I'm 18. I learned programming on Charles Babbage's difference engine.

  50. POSTSCRIPT is a programming language. by SharpFang · · Score: 4, Interesting

    Nobody remembers this. Postscript printers? Oh, well, just another driver from the list. Postscript files? Oh, just another format to store text or graphics.

    I needed to make a rotary quadrature encoder of a specific number of pulses per rotation. I took the gap encoder (like these found in ball mice) and needed a disk with the right number of gaps. With gap width of order of 0.3mm. How to get that? Oh well, I'll have a transparency printed with the pattern.

    Now... how to generate such a pattern? If I try raster graphics, I'll need enormous file to get the resolution I need. It will take a lot of time to generate. Well, maybe write it in Postscript?

    Some search, some learning, and soon I had the postscript file, maybe 500 bytes long., with a bunch of code discs of various diameter and various number of cycles. Packed it onto a pendrive, took it to a print shop and asked to have it printed.

    "It's half a kilobyte. Are you sure this is the right file?"

    "Yeah, just import it into your graphics program."

    "uh... okay." The file loads, the guy scrolls through two pages of of extremely detailed patterns. "Is that it?"

    "Yeah. Print it on transparency, at as high DPI as you can."

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    1. Re:POSTSCRIPT is a programming language. by rickb928 · · Score: 2
      --
      deleting the extra space after periods so i can stay relevant, yeah.
  51. call backs by jmccue · · Score: 2

    I forgot how I did this, but at work I set up the server where from home I would login to it with kermit and I would do something. The the remote server would call my system back were I could get in without having my phone # billed. At the time I was running Coherent 286.

  52. Re:bitwise math by skids · · Score: 4, Informative

    Ahh yes the good old days of XOR-based linked lists.

  53. Mainframe by frangryphon200 · · Score: 2

    I find that way too many people don't have any concept of what a mainframe is and mainframes are still around and still being used behind the scenes. Most supermarkets and pharmacies work from mainframes and sometimes the people who use them are idiotic. I have seen someone who messed up an input screen turn her terminal off then back on and she was totally surprised when it didn't reboot but came back on and showed the exact same messed up screen. When I use a terminal emulator and choose VT100 I feel cheated because my school had VT100s and VT52s. The VT100 was the best terminal ever made, in my opinion and an emulator just makes me nostalgic.

    1. Re:Mainframe by rickb928 · · Score: 2

      Hey! The IBM 3270 was excellent! As was the 3290!

      --
      deleting the extra space after periods so i can stay relevant, yeah.
  54. Re:Opposed to term "hacker" by phil · · Score: 2

    I have to disagree with you on this. Back in the day, "Hacker" was a positive term, meaning someone who really got into and deeply understood the systems at hand. A "cracker" on the other hand was someone who used such information nefariously, ie to crack into a system. I suppose these days the difference would be white hat vs black hat.

    So indeed the term has meaning, and it is used correctly here. To your point though, over the past several decades, that meaning has been obscured by sensationalist media not bothering to check their facts.

  55. Re:bitwise math by halivar · · Score: 4, Informative

    In .NET, no. About 6 years ago I was tasked with rewriting our base-64 encoder/decoder. We were using MS's built-in encoder and is was too slow to handle a multi-GB inbox (we sold a shrink-wrap email server for ISP's). First I rewrote it in regular math operations, and it was faster, but not fast enough. I rewrote it again using bit-shifting operations and it was an order of magnitude faster. I really had to reach back into my days coding MUD's in C for that. We really take our faster computers for granted, and our code is far from the level of optimization we were once required to achieve.

  56. Re:Old skool goodies by rickb928 · · Score: 3, Informative

    FIDO.

    Email delivery in single-digit days was shockingly cool.

    ASCII pr0n.

    Dial strings to coax another .5k baud out of that Hayes clone.

    --
    deleting the extra space after periods so i can stay relevant, yeah.
  57. Re:Zero Page memory locations by lapm · · Score: 3, Interesting

    I rememer still how Commodore 128 had both 65xx and Z80 prosessors and little trickery you could change cpu you were running in middle of program...

  58. Re:bitwise math by JaredOfEuropa · · Score: 3, Insightful

    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...
  59. Re:Zero Page memory locations by operagost · · Score: 2

    18? Must be a Y2K bug.

    --

    Gamingmuseum.com: Give your 3D accelerator a rest.
  60. IBM and more by Arnold+Reinhold · · Score: 4, Interesting

    Eric's history is interesting and valuable as long as you realize it is based on his stove-piped career. There are glaring omissions. In particular there was this company called IBM that dominated the data processing industry for most of the 20th century. The end of the 36-bit era and the universal use of addressable 8-bit bytes began when IBM introduced the System/360 in 1964, not when DEC finally stopped making PDP-10s in 1983. ASCII did not grow out of anything, it was a fresh creation of a new standard. IBM even pretended to support it, though it used its own 8-bit code, EBCDIC. The short Unix commands were optimized for Teletype machines. Video displays were not cheaper than Teletypes at first, they succeeded because they were much faster and far more user friendly, not because they saved money on consumables. Many early minicomputers supported the native "current loop" interface to the Model 33 Teletype. Tektronix storage tubes deserve a mention. They made graphical computing possible when memory was far too expensive for display buffers. RS232 is still alive and well in the Arduino world; level shifting there means 5 volt to 3 volt. I would mention the 16-bit programming address space that almost all minicomputers had, which forced programs to fit in 64K byte segments. It made it hard to grow software because it forced you to constantly restructure to fit in small overlays. I once had an argument with Gordon Bell of DEC about this when the PDP-11 was introduced; he thought any program larger than 64K *should* be broken up. In general hardware people had a greater influence on computer design in the early years. Early microcomputers adopted the same 16-bit addressing scheme. The Motorola 68000, introduced in 1979, was the first to allow a larger address space (24-bit at first, but architecturally 32-bit). Line printers and multi-part fan-fold paper forms also deserve mention. IBM printers used to be controlled by a loop of paper tape with holes that allowed a fast move to the top of a new page or even a point in the middle, hence form-feed and vertical tab. USB's popularization by Apple deserves mention too, especially since the are now leading the push for USB-C.

  61. Re:What Are Some Things That Every Hacker Once Kne by sjames · · Score: 2

    Personally, I find most IDEs unusable compared to the CLI tools. They tend to be laggy and crashy and at the same time unable to handle some fairly simple things that vi handles easily. They also seem to have no way to handle anything vaguely 'special' in the build process.

    It might be easier to use the CLI tools while wearing mittens than it is to use an IDE.