URI: 
       [HN Gopher] Things Every Hacker Once Knew (2017)
       ___________________________________________________________________
        
       Things Every Hacker Once Knew (2017)
        
       Author : prakhar897
       Score  : 256 points
       Date   : 2023-09-29 09:08 UTC (13 hours ago)
        
  HTML web link (www.catb.org)
  TEXT w3m dump (www.catb.org)
        
       | livrem wrote:
       | > Google Groups is where you can find what has been preserved of
       | the historical USENET archives
       | 
       | I recommend archive.org instead. There are many great collections
       | there with USENET groups saved as mbox files that you can
       | download. Install something like mboxgrep, import into a mail
       | reader, or just read the files as text.
       | 
       | Just one example: https://archive.org/details/usenet-comp
        
       | red_admiral wrote:
       | The ASCII table on Wikipedia (from the military standard) is even
       | better at showing the internal structure:
       | https://en.wikipedia.org/wiki/ASCII
       | 
       | Maybe one could make the perfect ASCII table by grouping the bits
       | as (2, 5) rather than (3, 4) - then you can see the "shift key
       | clears bit 6, control key clears bits 6 and 7" principle for the
       | letter keys.
        
         | petee wrote:
         | I am a fan of the 4-column style, which what you are saying,
         | separating into 2 bits & 5. I think it's alot more intuitive to
         | see the modifiers in action
         | 
         | https://garbagecollected.org/2017/01/31/four-column-ascii/
        
       | ggambetta wrote:
       | I have fond memories of (badly, sloppily) soldering together a
       | null modem cable to play Doom multiplayer. Good times.
        
         | ajsnigrutin wrote:
         | I had trouble finding them, but just bought 5 pieces maybe two
         | weeks ago :) 5.55eur/piece!
        
       | ChrisArchitect wrote:
       | (2017)
        
         | ChrisArchitect wrote:
         | Some previous discussion:
         | https://news.ycombinator.com/item?id=13498365
        
       | fluoridation wrote:
       | I don't understand the bit about the AM radio. Surely he must
       | have meant something in the range of 0.5-1.5 MHz, which is the
       | typical band for AM. I don't think a radio broadcast receiver
       | could pick up an EM signal in the sub-20 kHz range.
        
         | ratboy666 wrote:
         | The first "home computer": Altair 8800. The first peripheral:
         | an AM radio: Steve Dompier -
         | https://www.futurefarmers.com/superfund/gazette/Pop-Ups/Armi...
         | 
         | The Altair had a 2Mhz clock.
        
         | yetihehe wrote:
         | If it had audio amplifier, it could. I remember when I could
         | hear some radio station from simple computer speakers. The
         | catch - transmitter was on the other side of the street, but if
         | I remember correctly, it was FM station - how could a simple
         | audio amplifier pick this up - I have no idea, but strange
         | things can happen with harmonics. It was barely audible and
         | very low quality though.
        
           | fluoridation wrote:
           | My PC speakers do that. I'm pretty sure that's the cable
           | between the sound card and the amplifier acting as an antenna
           | and picking up the broadcast as interference. Then it gets
           | treated by the speaker system as if it was the actual audio
           | signal. Here's the thing, though: either AM or FM, radio
           | broadcasts are _definitely_ not in the human hearing
           | frequency range.
           | 
           | EDIT: Thinking about, maybe what he meant is not that the
           | carrier signal is in the sub-20 kHz range, but rather that
           | the switching happens at around that frequency. For example,
           | gates opening and closing modulating the amplitude at audible
           | frequencies.
        
             | yetihehe wrote:
             | I gave this as an example of what COULD be picked up.
             | Audio-frequency EM (from "processors" running at measly
             | hundreds of kHz, with actual operations at tens of kHz)
             | picked up by crappy audio amplifier in some old radio -
             | that could happen very easily.
        
         | dredmorbius wrote:
         | CPU speed indicates radiation frequency.
         | 
         | By the mid-1990s, this was in the FM broadcast range, as a
         | sysadmin I knew at the time demonstrated with an open-cased
         | tower he was working on. (Perhaps perpetually.)
        
       | rcurry wrote:
       | Good old RS-232 - my first programming job was working for a
       | company called Digiboard that made RS-232 concentrators for
       | companies that were running hundreds of terminals over that
       | protocol. You'd be astonished at how many terminals some of our
       | clients had networked to a single machine over a serial port.
        
       | wrs wrote:
       | "Um, actually", '\n' is ctrl-J, not ctrl-N. And '\r' is ctrl-M,
       | not ctrl-R.
        
         | pasc1878 wrote:
         | What are you responding to. The article has
         | 
         | > CR (Carriage Return) = Ctrl-M
        
       | fuzztester wrote:
       | Some more:
       | 
       | hex
       | 
       | octal
       | 
       | binary
       | 
       | how to convert between the above 3, and between them and decimal
       | 
       | bit twiddling
       | 
       | the difference between ASCII and binary files (even pre-unicode)
       | 
       | the fact that a source code program compiled on one processor
       | architecture will not run on another without recompilation on the
       | target, apart from cross-compilation - at least in most cases
       | this was true, though there might be differences nowadays, for
       | apple products, java and other bytecode, etc.
       | 
       | endianness
       | 
       | ...
       | 
       | I have actually talk to various people who did not know all of
       | the above topics, although not necessarily all in the same person
        
         | galangalalgol wrote:
         | People with computer related degrees?
        
           | hobs wrote:
           | I still remember my google buddy talking about being aghast
           | his intern (who was a CS major who obviously passed with
           | flying colors and went to stanford or yale, I dont remember)
           | not knowing what an IP address was.
        
             | fuzztester wrote:
             | I've conducted interviews of professed Unix devs or
             | sysadmins, some years ago, who didn't know what the setuid
             | bit was, or confused it with the sticky bit.
             | 
             | https://en.m.wikipedia.org/wiki/Setuid
             | 
             | https://en.m.wikipedia.org/wiki/Sticky_bit
        
             | [deleted]
        
           | fuzztester wrote:
           | Some. One was Comp. Engg. Not sure if any CS.
        
           | bityard wrote:
           | Heh. These days, a computer science degree is essentially
           | equivalent to a coding degree. But depending on the decade
           | and curriculum, it was traditionally a branch of mathematics
           | and one could theoretically go all the way to PhD while never
           | actually touching a practical computer.
           | 
           | There used to be a saying: Computer science is no more about
           | computers than astronomy is about telescopes.
           | 
           | And that is why in this article, ESR has titled it, Things
           | Every _Hacker_ Once Knew. Hackers usually have some sort of
           | passion for the technology itself and want to understand ALL
           | of the practical details and history of a thing. Hackers are
           | _very much_ about computers.
        
         | fuzztester wrote:
         | I have actually talk to various people
         | 
         | >talked, voice-to-text error
        
         | Dwedit wrote:
         | > the difference between ASCII and binary files
         | 
         | This one is a bit confusing. In DOS/Windows land, files are
         | just files, always binary. The distinction between "ASCII" and
         | "Binary" only exists at the time you call "fopen" (a C
         | function), then failing to open in binary mode causes it to
         | mangle your data by inserting CR before every LF.
        
         | MyNameIs_Hacker wrote:
         | If a young'un should ask my age, I report it in hex. Keeps 'em
         | on their toes.
        
           | fuzztester wrote:
           | he he. try octal on em, will be harder.
        
       | bell-cot wrote:
       | You know you're getting _old_ when...something like this has aged
       | off HN 's /newest page with only 2 upvotes, and no comments.
        
         | pjmlp wrote:
         | Or when you remember having been through all the items being
         | discussed.
        
           | bayindirh wrote:
           | Or when you used real VT320s to configure devices, switches
           | or talk with things in general.
           | 
           | ...or written code to do the same, albeit programmatically.
        
             | baz00 wrote:
             | Or had to crack open the vt320 and fix it with the service
             | manual and a soldering iron!
        
             | yetihehe wrote:
             | I had to connect to a cisco router with a serial dongle
             | (window->usb->serial->cisco) not that long ago. After
             | successfully configuring, I could change configuration in
             | the same exact way going over network
             | (window->encryption->tcp->ethernet->decryption->cisco), but
             | underneath, it's all teletypes talking to each other[0].
             | 
             | [0] https://web.stanford.edu/class/cs81n/command.txt
        
               | bayindirh wrote:
               | I can understand. We still have a drawer full of
               | different console cables with a couple of USB-RS-232
               | converters.
               | 
               | Our tradition during new hardware installs, yelled
               | through the datacenter over CRAC, wind and fan noise:
               | 
               | A: You said blue one, but it's not connecting to
               | $NETWORK_DEVICE
               | 
               | B: Try the other, slightly darker blue one, with the
               | sticker XYZ. That's the one I used IIRC.
               | 
               | A: Oh, OK.
        
             | bityard wrote:
             | My $work has an R&D lab with hundreds of the
             | enterprise/carrier network appliances we sell, and ALL of
             | the automation for the whole thing happens over RS-232
             | serial.
        
         | [deleted]
        
         | dredmorbius wrote:
         | The author has himself to thank for a chilly reception amongst
         | some.
        
       | jgrahamc wrote:
       | _Actually, there was an even older style of tty interface derived
       | from telegraph circuits and called "current loop" that the ASR-33
       | originally used; in the 1970s dual-mode ASR-33s that could also
       | speak RS-232 began to ship, and RS-232 eventually replaced
       | current loop entirely._
       | 
       | This is what the KIM-1 (https://en.wikipedia.org/wiki/KIM-1) uses
       | and it's pretty common for current loop
       | (https://en.wikipedia.org/wiki/Current_loop) interfaces to still
       | be used in the context of industrial control and it's also the
       | basis for MIDI
       | (https://en.wikipedia.org/wiki/MIDI#Electrical_specifications).
        
         | ajb wrote:
         | Current loop is used where the length of the cable could be
         | huge. If you put in 20mA at one end, you know you will get it
         | out at the other irrespective of length, which is not true of
         | voltage.
        
       | zabzonk wrote:
       | i actually liked working with rs232 back in the early 80s. give
       | me my trusty breakout box, a soldering iron, my own hand-crafted
       | terminal emulator and i was happy as larry. it was really hard to
       | do anything destructively wrong - at worst the thing just
       | wouldn't work. certainly a lot easier to deal with than things
       | are today, should something go wrong.
        
       | bewo001 wrote:
       | This use of AT commands in 4g modems was really something that
       | made me laugh out loud when I started dabbling with those
       | devices. The muscle memory still worked. The lack of dialing and
       | modem sound was a bit of let-down, though.
       | 
       | It is astounding that the 3g/4g modem industry did not come up
       | with a better way to talk to their devices. Even ISDN had a
       | widely implemented proper API.
        
         | IvyMike wrote:
         | LOL. Just to add on to the comment, it doesn't even have to be
         | 3g/4g. If you're doing Wifi on an ESP8266, you're probably also
         | using AT commands as well. Although it's really nothing like
         | the Hayes command set.
         | 
         | In any case, it fills me with equal parts nostalgia, awe, and
         | fear. :)
         | 
         | https://docs.espressif.com/projects/esp-at/en/latest/esp32/A...
        
         | HeyLaughingBoy wrote:
         | The one that made me laugh (or cry, I don't remember) was when
         | I issued an AT command to do an HTTPS download of a binary file
         | over a cell modem. I get wanting to keep using a command set
         | that was familiar, but they stretched it beyond all
         | recognition.
        
         | eternityforest wrote:
         | What would a better protocol look like? Backwards compatibility
         | is pretty nice in a lot of areas.
        
           | gpvos wrote:
           | I don't know what the modern commands look like, but I hope
           | that at least they abolished the in-band signalling so you
           | don't have to do _< wait 1 second> +++ <wait 1 second>_ .
        
             | yetihehe wrote:
             | For newest Quectel BG95 LTE Cat M1 you can either use
             | buffer access mode (AT+QIRD for receiving data) or still
             | use that in-band signalling (direct push mode) with +++.
             | You could also use external pin for exiting from that
             | direct mode, but +++ is still available and useable when
             | you don't have any more free pins on your MCU.
        
           | bewo001 wrote:
           | I understand that there were good reasons why it was done.
           | But out-of-band control is so much nicer to work with. One
           | channel for control, one for data.
           | 
           | No parsing of text. No escaping of '+++' to avoid that a
           | '+++ATH' in the data stream closes the connection (I wonder
           | how the download time of a file containing only '+' differs
           | from a file with other characters).
           | 
           | And with increasing mobile network speeds, you really want
           | something like DMA instead of reading individual bytes from a
           | serial interface.
        
             | yetihehe wrote:
             | Modern modems have "buffer access mode" for this. When you
             | need to receive data, modem notifies you with a message
             | '+QIURC: "recv",<connection>,<len>', then you send
             | 'AT+QIRD=<conn>,<len>' and you know next <len> bytes are
             | data, without any parsing.
        
         | yardie wrote:
         | I did an experiment using satellite comms. Imagine my surprise
         | when connecting to Iridium that I had to do the handshake with
         | the AT commandset.
        
           | yetihehe wrote:
           | After using AT - compatible command set on a wifi iot module,
           | AT commands in iridium don't surprise me, it's almost
           | counting as legacy now. It started development in 1993 (30
           | years ago).
        
       | Izkata wrote:
       | > For most hackers that transition took place within a few years
       | of 1992 - perhaps somewhat earlier if you had access to then-
       | expensive workstation hardware.
       | 
       | My library used these teletype machines into the late 90s, maybe
       | even the early 2000s. Don't remember exactly when the transition
       | was, but I remember using them in middle school or early
       | highschool.
       | 
       | I actually remember thinking how clunky the web interface was
       | when they upgraded, how you had to make sure the focus was in the
       | text input box. It didn't "just work" like the older system.
        
       | Aardwolf wrote:
       | > don't know the bit structure of ASCII and the meaning of the
       | odder control characters in it.
       | 
       | If it was up to me, remove the more useless old codes that take
       | up precious 1-byte UTF-8 codes and replace them by common
       | characters. Like "Record Separator": if it's that useful to have
       | a record separator character, why aren't we using this one
       | instead of e.g. commas for comma separated values?
       | 
       | I find that the degree symbol (deg) is a glaring omission from
       | ASCII.
        
         | gorgoiler wrote:
         | Handy tip if you're parsing the output of a command in your
         | programming language of choice:                 output = run(
         | "list-cats",         "--format",
         | "%(name)s\x1f%(age)s\x1e",       )       records =
         | output.split("\x1e")       cats = dict(         r.split("\x1f")
         | for r in records       )
         | 
         | In reality it's a bit fastidious to use RS and US. I tend to
         | just use "\1" and "\2".
        
         | EvanAnderson wrote:
         | > Like "Record Separator": if it's that useful to have a record
         | separator character, why aren't we using this one instead of
         | e.g. commas for comma separated values?
         | 
         | I've done ETLs to/from systems that do use these control
         | characters. It's a joy compared to CSV. I have nothing to
         | escape and no complex parsing logic. Embedded CR/LF-- no
         | problem. Fields containing commas-- no problem.
         | 
         | We should be using these control codes for their purpose but
         | nobody knows about them anymore.
        
         | derekp7 wrote:
         | I love using FS and RS in my shell scripts, esp. when I'm
         | processing text data export from a database. As long as the
         | data doesn't include binary data (such as images), I can be
         | pretty certain that the data doesn't include FS and RS
         | characters since they don't appear on a keyboard -- therefore I
         | can preserve things like line breaks in text fields, and don't
         | have worry about if someone inserted a " | " character in the
         | contents of the data.
         | 
         | Of course a pre-pass is to strip out FS / RS just to make sure
         | in case it got in accidentally, and to also know the purpose of
         | the data to ensure that they shouldn't be in the text. But so
         | far that has made my scripts a lot more reliable. The other
         | alternative is to do the light-weight processing using a heaver
         | scripting language that can deal with structured data natively,
         | but setting FS and RS is often times a bit more expedient for
         | me.
        
           | orthoxerox wrote:
           | It pains me greatly that Hive _still_ can 't ingest FS/RS-
           | separated (or \001/\002-separated) data nor does it correctly
           | handle CSV because someone hardcoded \n as the record
           | separator so deep they can't make it configurable.
        
       | zozbot234 wrote:
       | Discussed https://news.ycombinator.com/item?id=13498365
        
         | dang wrote:
         | Thanks! Macroexpanded:
         | 
         |  _Things Every Hacker Once Knew_ -
         | https://news.ycombinator.com/item?id=13498365 - Jan 2017 (321
         | comments)
        
       | theodorethomas wrote:
       | Mid 1980s, trying to connect from one London University computer
       | (at Imperial, a CDC Cyber?) to another (at Queen Mary?), to try
       | some symbolic algebra package that was only available on a Unix
       | minicomputer: spent a good 2 hours just finding the right
       | terminal settings and configuration settings for all the
       | intervening software. Left me feeling I would rather code what I
       | could on an 8-bit 2Mhz 64K machine.
        
         | vmilner wrote:
         | Yep - those were the days when there was a pretty good chance
         | that people doing Uk computer science degrees had a working
         | knowledge of Z80 or 6502 machine code from hacking Elite/Jet
         | Set Willy/Manic Miner on their ZX Spectrums/BBC Micros...
        
       | layer8 wrote:
       | > FF (Form Feed) = Ctrl-L [...] Many VDTs interpreted this as a
       | "clear screen" instruction. Software terminal emulators sometimes
       | still do.
       | 
       | This was commonly used on Usenet as a spoiler tag, because the
       | rest of the message wouldn't be displayed until the user pressed
       | PgDn (or equivalent) past it. It was visible as "^L" on the
       | screen, so you knew there was more coming up, and the rest of the
       | screen was cleared, until the ^L scrolled out of the screen.
        
       | brabel wrote:
       | I worked with data acquisition systems around 1998. RS-232 was
       | still king (though USB was quickly displacing it), using DB-9
       | connectors... I always assumed DB-25 had always been for
       | printer's parallel connectors :D would be really confusing to get
       | RS-232 with one of those for me.
       | 
       | I think the author doesn't mention there were other protocols as
       | well, like RS-485 which had a much greater range in terms of
       | distance (and I think it also used DB-9 though if you connected
       | it to the wrong protocol, one of the sides would definitely go up
       | in smoke :D ).
       | 
       | Anyway, very interesting post!
        
         | bityard wrote:
         | I had an amber WYSE serial terminal for a while in the mid
         | 2000's that someone gave me new-in-box. I remember three things
         | about it:
         | 
         | 1. It had a sharp display and came with some fonts that were
         | truly beautiful compared to the typical 80-column PC font.
         | 
         | 2. It had a DB-25 serial port.
         | 
         | 3. The keyboard was an absolute piece of garbage.
        
         | pixl97 wrote:
         | >one of the sides would definitely go up in smoke
         | 
         | Ah the PC-VEI standard
         | 
         | Pin Compatible, Violently Electrically Incompatible.
         | 
         | Dell had a number of personal computers around the 95'ish era
         | that power supplies with an ATX compatible connector. But it
         | wasn't electrically compatible so if you swapped a regular PC
         | power supply or vice versa you'd like the smoke out of a
         | motherboard.
        
       | velcrovan wrote:
       | [flagged]
        
         | brutusborn wrote:
         | There's nothing racist in the article so it doesn't matter. A
         | bad person can create good things. No need to focus on the bad.
        
           | petee wrote:
           | So attending a KKK food drive would be acceptable if they
           | aren't actively being racist at it?
           | 
           | Pretending they haven't said abhorrent things is arguably
           | just as dangerous.
        
           | velcrovan wrote:
           | No one actually believes this in practice. Everyone has a
           | threshold of gross, spiteful or violent behavior in others
           | beyond which everything they do becomes tainted. If ESR
           | didn't consistently use his platform to promote hatred, maybe
           | he'd still be on the near side of that threshold for me and
           | most other people.
        
         | cdman wrote:
         | Anonymous smear campaigns against somebody with proven
         | contributions. Classy, it fits with the leftist "all science is
         | made up" agenda :/.
        
           | rideontime wrote:
           | The link is literally just quotes from esr himself, with
           | links to the sources?
        
             | qup wrote:
             | I read the article and I wouldn't describe it like this. it
             | has a lot of commentary from the author, and a lot of
             | pushing of their own ideals about what the open source
             | community is supposed to be
        
               | DonHopkins wrote:
               | Like their own controversial ideals that the open source
               | movement should be "not racist" and "not misogynistic"?
               | Or do you disagree, and think the open source movement
               | should be as racist and misogynistic as Eric S Raymond
               | truly is?
               | 
               | See also:
               | 
               | https://news.ycombinator.com/item?id=15513086
               | 
               | https://news.ycombinator.com/item?id=15512415
        
             | [deleted]
        
           | [deleted]
        
         | _gabe_ wrote:
         | The first quote in that medium article is taken out of
         | important context. It actually says in the Eric Raymond
         | article:
         | 
         | > And the part that, if you are a decent human being and not a
         | racist bigot, you have been dreading: American blacks average a
         | standard deviation lower in IQ than American whites at about
         | 85.
         | 
         | I find it very funny, that the medium article feels the need to
         | take this completely out of context, when it seems like Eric
         | Raymond was writing that article because people refused to
         | publish this data because of the unsavory implications. And the
         | whole point of his article was, IQ isn't everything lol.
         | 
         | Call me a fool, but I don't really trust the rando medium
         | author when the very first quote supporting their claims is so
         | wholly taken out of context. And just because I feel like it's
         | worth mentioning, I have no idea who Eric Raymond is, and I
         | have no idea who the medium author is. I don't have a horse in
         | this race, I just wanted to see if these claims held any water.
        
           | DonHopkins wrote:
           | I don't know if you're a fool, but you're definitely gullible
           | enough that you're attempting to justify the despicable words
           | and actions of a terrible person, and that reflects on you as
           | well, since you're too intellectually lazy to do your
           | homework and due diligence before defending somebody you
           | claim not to know.
           | 
           | I've known Eric S Raymond personally for at least 40 years,
           | since the early 80's, and he most definitely and deeply and
           | unrepentantly is a misogynistic racist asshole, and that's
           | extremely well documented and irrefutably proven by his own
           | words and deeds, which have been on the public record for
           | decades, and this article you're having so hard a time
           | believing because of your intuitions and rules of thumb is
           | actually factually quite accurate, consisting of actual
           | quotes, of which there are many more examples.
           | 
           | So instead of wasting your time trying to unwittingly carry
           | the water for Eric S Raymond's racism and misogyny without
           | actually knowing anything about him, why don't you first
           | invest the time in finding out what the fuck you're talking
           | about and who you're defending?
           | 
           | Unless you actually do know who he really is despite your
           | claim to the contrary, and you're just too chicken-shit a
           | bigoted troll to admit that you actually strongly agree with
           | and support all of his well documented and pathological
           | racism and misogyny that you're trying to whitewash.
        
       | jackdeansmith wrote:
       | As someone born in 1997 and working in the software industry, one
       | thing I've learned is that the discipline of software engineering
       | is sometimes mostly about understanding the history of a system.
       | Love reading stuff like this because sometimes it really makes
       | some concept click!
        
       | efdee wrote:
       | I hate to sound so negative but this feels so incredibly cringy.
       | Smug, condescending and pedantic.
        
         | tom_ wrote:
         | Things every hacker once knew: _esr is a dick_.
         | 
         | (Something that can easily be true, even while he has done some
         | small number of valuable things. I claim this essay is not one
         | of those things)
        
           | btilly wrote:
           | I remember once that I was at a Boston Perlmongers meetup,
           | probably early January 2005, and commenting that someone
           | needed to tell ESR that he wasn't God's gift to women.
           | 
           | Everyone laughed. I went on to share a cringy story of ESR
           | hitting on my then-wife. Which inspired a woman present to
           | speak up and share a story of ESR hitting on her. Which lead
           | to the next and then next story, until every last woman in
           | the room shared their own ESR story.
           | 
           | I was astounded. I'm hardly the biggest fan of political
           | correctness. But to the extent that political correctness is
           | a backlash, ESR represents what it is a backlash _against._
        
         | hyggetrold wrote:
         | That's a lot of ESR's writing. This is just the tip of the
         | iceberg.
        
       | 0xbadcafebee wrote:
       | Software has a "built on top of" problem. When you're doing
       | construction, you can either re-use an existing building and all
       | its existing components, or upgrade a few components inside the
       | building, or you can knock it down and build from scratch.
       | Software doesn't do this. Instead it takes the lead pipes, CAT-3
       | wires, horsehair insulation, and single-glazed windows, and
       | installs them in a new skyscraper. We keep reusing and building
       | on top of shitty old tech from decades ago because it's easier
       | than inventing something better (PVC, CAT-6, blown insulation,
       | triple-glazing), or we're avoiding making some old standard
       | obsolete because some old buildings still use it and the
       | landlords don't wanna pay for upgrades. So we get a working
       | skyscraper, but for some reason we still need to train new
       | engineers on horsehair insulation.
        
         | doodpants wrote:
         | People try to build all new, better software tech all the time!
         | But doing so breaks backwards compatibility with existing
         | stuff, which greatly hinders adoption. So it mostly remains
         | relegated to experimental research projects, and if you're
         | lucky, the best parts of it get incorporated into existing
         | projects gradually over time.
        
         | bityard wrote:
         | I love how most of the comments here seem to be from people who
         | don't think there is anything valuable to learn from the
         | previous 60+ years of computer evolution.
         | 
         | What you're missing is that the reason WHY lots of this "shitty
         | old tech" is still around is because it has stood the test of
         | time. Nobody keeps all of this around in modern technology out
         | of pure nostalgia. This stuff is still useful because it
         | largely solves a problem elegantly, and/or provides a useful
         | abstraction with more modern systems. Or because there's simply
         | no escaping the need for compatibility with existing systems.
         | 
         | Yes this "shitty old tech" has warts. ALL of your code will in
         | a few decades too.
         | 
         | What was that XKCD about standards again?
        
           | [deleted]
        
       | [deleted]
        
       | mjg59 wrote:
       | What's interesting about this is just how bad it is at tying this
       | to the modern world. For instance, just after discussing how the
       | "AT" Hayes command prefix has useful properties for automatic
       | synchronisation of line speed:
       | 
       | "That property is still useful, and thus in 2017 the AT
       | convention has survived in some interesting places. AT commands
       | have been found to perform control functions on 3G and 4G
       | cellular modems used in smartphones."
       | 
       | But modern modems aren't connected over serial. There's no
       | concept of line speed. This property is entirely irrelevant to
       | modern hardware. A much more plausible explanation is simply that
       | extending the interface made it easier to extend existing
       | codebases to new contexts.
       | 
       | "IoT devices still speak RS-232"
       | 
       | This is actually dangerously untrue! RS-232 used positive
       | voltages for 0 and negative voltages for 1, between 3 and 15
       | volts each. Attaching RS-232 to a modern IoT device's serial
       | interface is likely to kill the device. What is common between
       | old-school serial and the serial ports on modern devices is stuff
       | that's out of the scope of RS-232 (eg, the 8N1 framing isn't
       | defined by RS-232), and using the RS-232 terminology to describe
       | it is about as accurate as calling it RS-422.
       | 
       | "If you know what UTF-8 is (and you should) every ASCII file is
       | correct UTF-8 as well."
       | 
       | I mean kind of? ASCII is a character set, it doesn't define the
       | on-disk representation. An ASCII file saved with each character
       | packed into 7 bits isn't going to be valid UTF-8 without some
       | manipulation. This is just an odd claim to make given the earlier
       | discussion of varied word lengths and transfer formats that
       | weren't 8-bit clean.
       | 
       | "But in 2005 Linus Torvalds invented git, which would fairly
       | rapidly obsolesce all previous version-control systems"
       | 
       | (cries in Perforce)
       | 
       | Git was a huge improvement over CVS and SVN. Claiming that it
       | rendered _everything_ that came before it obsolescent just
       | suggests massive ignorance of chunks of the software industry.
       | 
       | And yes this is all ridiculously pedantic, but given the entire
       | tone of the article is smugly pedantic it doesn't seem unfair to
       | criticise it on that basis.
        
         | sumtechguy wrote:
         | >> "IoT devices still speak RS-232" > This is actually
         | dangerously untrue!
         | 
         | They very much do. Maybe you are thinking of modern low voltage
         | devices? Where yeah you do not use that as much. But modbus and
         | rs485/rs232 are very much alive in the industrial world where
         | IoT is quite alive.
         | 
         | > But modern modems aren't connected over serial.
         | 
         | They are. Just not necessarily what you consider RS232. Usually
         | when I did this a few years ago it was USB lines. Which is a
         | serial bus.
         | 
         | The AT commands are still used in pretty much all modems. Which
         | you have in your pocket. That is how the cell modem sets up the
         | call to the phone network. The venerable ATDT is still used all
         | the time to setup the call to the network. The AT command set
         | was for setting up the call and controlling aspects of the call
         | (like max speed and protocols you allow). The auto negotiation
         | is one layer out at the network/modem level. With older modems
         | they had a speaker that let you hear it. It was that distinct
         | tweeting with a buzz with a fade out. You just no longer hear
         | it. AT did not do that at all other than kick off the process
         | and setup the registers for the modem to know what to do at the
         | negotiation step which is defined in the spec. Still all there.
        
           | mjg59 wrote:
           | Yes, the AT command set is used in modern modems. But they
           | didn't choose to use it because of the line speed
           | synchronisation properties.
           | 
           | (Edit: and while the AT command set is supported, modern
           | systems tend to use custom command sets in preference. For
           | instance, Qualcomm modems support QMI which provides a binary
           | interface to the modem and modern phones will tend to use
           | that in preference)
        
         | libraryofbabel wrote:
         | Yeah. I trust younger hackers -- the smart ones - to invest
         | time in what is useful and/or interesting to them. This stuff
         | isn't terribly useful (in comparison to all the other things
         | out there to learn). Whether it's interesting depends on your
         | taste. I will add that older folks - myself included - have
         | their idea of what's interesting colored by a lot of nostalgia.
         | 
         | Be suspicious of anything with the tone of "kids nowadays...".
         | (Isn't there an xkcd comic about that?) The smart young hackers
         | will do fine, as they always have. I see teenagers doing
         | wonderful things with x86 assembly on hacker news on a regular
         | basis.
         | 
         | I love history; I trained as a historian. I just don't think
         | it's always all that useful in our field, especially if it's
         | old technical trivia. (Social and economic history may be a
         | different matter.) Sometimes it's tangentially relevant. Mostly
         | young engineers would be better off investing in learning
         | timeless concepts, such as relational databases and SQL,
         | networking, low level computer architecture, distributed
         | systems theory, and so on. And they will (again, if they're
         | smart), because those things are useful and deeply interesting
         | and will remain so thirty years from now. Get the foundations
         | down and you will draw on that knowledge for your entire
         | career.
        
         | yetihehe wrote:
         | > But modern modems aren't connected over serial. There's no
         | concept of line speed. This property is entirely irrelevant to
         | modern hardware.
         | 
         | Says who? I'm just commenting here and on second screen I'm
         | debugging a microcontroller connected over serial link to a LTE
         | cat M1 modem, that's a pretty modern one. It uses 115200 8n1
         | line by default, but you can change that speed, it even has
         | speed autodetection, after modem signals that it's ready on
         | separate line, you can send it "AT" at your preferred speed
         | until it responds (typically after third AT).
        
           | mjg59 wrote:
           | My apologies, you're right (and I say this as someone who has
           | REed devices with an LTE modem connected over serial, so I
           | really should have known better). But I would certainly still
           | assert that the choice of the AT prefix was for compatibility
           | rather than for line speed detection.
        
         | bhaak wrote:
         | > "If you know what UTF-8 is (and you should) every ASCII file
         | is correct UTF-8 as well." > > I mean kind of? ASCII is a
         | character set, it doesn't define the on-disk representation.
         | 
         | Excuse me for being pedantic as well but UTF-8 also doesn't
         | define the on-disk representation and is just a character
         | encoding of the Unicode character set. But they define bit
         | representation and for that the statement is true.
         | 
         | > An ASCII file saved with each character packed into 7 bits
         | isn't going to be valid UTF-8 without some manipulation. This
         | is just an odd claim to make given the earlier discussion of
         | varied word lengths and transfer formats that weren't 8-bit
         | clean.
         | 
         | How these character sets are transported over other protocols
         | is outside of the scope of their definitions.
        
           | mjg59 wrote:
           | ASCII defines a 7-bit character set. It's modern convention
           | to encode that with each character as an 8-bit value with the
           | top bit clear, but there's no inherent reason for ASCII to be
           | represented that way, and a single counterexample disproves
           | the assertion that all ASCII files are valid UTF-8
        
             | bhaak wrote:
             | No that's not a modern convention. You could argue that any
             | higher order bit beyond the 7th bit is undefined by the
             | specification but the order if the bits is clearly defined.
             | 
             | Anything with a defined 8th bit would be an extension of
             | ASCII.
             | 
             | But it was obvious back then that if you use 8 bits for a
             | character that the 8th bit would have to be unset unless
             | some further processing was happening.
             | 
             | Even more so in the context of UTF-8. 8 bits bytes had won
             | by then and in that environment ASCII was a thorough sub
             | set of UTF-8.
        
               | mjg59 wrote:
               | Elsewhere in the thread is an example of a system setting
               | the top bit when storing ASCII in 8-bit files. But
               | storing it as an 8-bit encoding is also a convention
               | rather than a requirement, and any file with an
               | alternative encoding would not be valid UTF-8.
        
             | tjalfi wrote:
             | PRIMOS[0] serves as a counterexample; it used ASCII with
             | the top bit set.
             | 
             | [0] https://en.wikipedia.org/wiki/PRIMOS#Data_access
        
               | no_identd wrote:
               | >They developed hardware optimized to run FORTRAN,
               | including machine instructions that directly implemented
               | FORTRAN's distinctive 3-way branch operation [=Arithmetic
               | IF]
               | 
               | Hahaha oh wow. That's amazing. Fun fact:
               | 
               | Arithmetic IF makes handling exit codes significantly
               | less annoying1, and that's because Arithmetic IF is how
               | we came to get signed integers as exit codes in the first
               | place.
               | 
               | 1at least in theory, in practice half the people
               | implement the codes incorrectly because they don't
               | realize this, and so...
        
               | HeyLaughingBoy wrote:
               | Holy cow. Never in my wildest dreams did I ever think I'd
               | ever hear of PRIMOS again.
        
               | _gabe_ wrote:
               | It's funny how you describe it as "ASCII with the top bit
               | set". As in, by default ASCII doesn't have the top bit
               | set. You can have malformed Unicode too. There are plenty
               | of invalid ranges defined in the UTF-8 spec, does that
               | mean that UTF-8 is just a convention and those malformed
               | pieces are counterexamples to the convention?
        
             | dontdoxxme wrote:
             | "Modern convention" that is defined in RFC 20
             | (https://datatracker.ietf.org/doc/html/rfc20.html), from
             | 1969 (referencing the ASCII standard from 1968).
        
             | [deleted]
        
         | pasc1878 wrote:
         | > "But in 2005 Linus Torvalds invented git, which would fairly
         | rapidly obsolesce all previous version-control systems"
         | 
         | > (cries in Perforce)
         | 
         | > Git was a huge improvement over CVS and SVN. Claiming that it
         | rendered everything that came before it obsolescent just
         | suggests massive ignorance of chunks of the software industry.
         | 
         | But this article is for common knowledge. It explicitly says
         | that it does not deal with all parts of the software industry
         | just parts that any hacker would know.
         | 
         | So yes now git is the only version control used for distributed
         | collaboration of source code.
        
           | layer8 wrote:
           | Fossil is used. Mercurial is still used. There are probably
           | others.
        
             | pasc1878 wrote:
             | I agree - but you do still need to know git. Which is the
             | point of the article - what hackers need to know.
        
           | xcdzvyn wrote:
           | I've heard Perforce is still pretty common in game dev shops
           | because it handles big files way better
        
             | pasc1878 wrote:
             | Yes but they are not the subject of this article - the part
             | where he says that git has replaced other VCS is about
             | distributed development.
        
         | hn92726819 wrote:
         | > ASCII is a character set, it doesn't define the on-disk
         | representation
         | 
         | ASCII is an encoding, and sometimes people refer to the ASCII
         | charset as "ASCII" too. So it does define on-disk
         | representation. A file with the leading 0s removed is no longer
         | ascii-encoded. Similarly, a gzipped ASCII file is also no
         | longer an ASCII file
        
           | mjg59 wrote:
           | What specification defines ASCII encoding as an 8-bit format?
        
             | LegionMammal978 wrote:
             | RFC 20 [0] defines an 8-bit "ASCII Format for Network
             | Interchange". The older documents are careful to call it
             | "network ASCII" or "ASCII-8" (or the related "NVT-ASCII"
             | for TELNET), but some newer documents (e.g., [1], [2], or
             | [3]) abbreviate the name to "ASCII" in the context of
             | network interchange. (Though I don't mean to refute that
             | "ASCII" or "7-bit ASCII" or especially "US-ASCII" can refer
             | to rhe 7-bit codeset, only to note that the unqualified
             | name has been overloaded to refer to 8-bit ASCII as well.)
             | 
             | [0] https://www.rfc-editor.org/rfc/rfc20.html
             | 
             | [1] https://www.rfc-editor.org/rfc/rfc822.html
             | 
             | [2] https://www.rfc-editor.org/rfc/rfc3797.html#page-6
             | 
             | [3] https://www.rfc-editor.org/rfc/rfc7997.html
        
               | SAI_Peregrinus wrote:
               | ASCII is standardized in (latest version) ANSI X3.4-1986,
               | not by an internet RFC. That standard did not define an
               | 8-bit encoding of ASCII, only a 7-bit encoding. That the
               | IETF later called an 8-bit encoding ASCII just causes
               | confusion. IMO they should have called it ISCII, for IETF
               | Standard Code for Information Interchange.
        
               | LegionMammal978 wrote:
               | The 8-bit "ASCII Format for Network Interchange"
               | (generally called "network ASCII" or "net-ASCII" or
               | similar in older RFCs) is defined in the very first
               | paragraph of RFC 20:
               | 
               | > For concreteness, we suggest the use of standard 7-bit
               | ASCII embedded in an 8 bit byte whose high order bit is
               | always 0.
               | 
               | Meanwhile, ANSI X3.4-1986 defines the "7-Bit American
               | National Standard Code for Information Interchange (7-Bit
               | ASCII)". Even the older standard calls it the "USA
               | Standard Code for Information Interchange", i.e., "US-
               | ASCII".
               | 
               | None of these standards define "ASCII". It's up to us to
               | interpret "ASCII" as "7-bit ASCII" or "US-ASCII" or
               | "network ASCII" or any other form of ASCII according to
               | context; there is no monopoly on the unqualified term.
        
               | mjg59 wrote:
               | I'd argue that the need to provide a specification for
               | ASCII as an 8-bit format is pretty strong evidence of the
               | existence of ASCII in other formats :)
               | 
               | Edit: to clarify, there's a spec for ASCII-as-8-bit-with-
               | top-bit-clear, but it came some time after the ASCII spec
               | and if someone needed to define that later it strongly
               | suggests some people were doing it differently
        
       | jjice wrote:
       | Something I always thought was so neat about ASCII was that upper
       | to lowercase was just a flip of the sixth bit away. Now I'm
       | curious was that process is for Unicode or more specifically
       | UTF-8. Is it all table look ups?
        
         | Macha wrote:
         | Yes, but even in the era of ANSI code pages, it was that way
         | for many "accented" characters and non Latin alphabets. And you
         | still needed a little more in ASCII than blindly flipping bits
         | or you'd turn your numerals into control characters.
        
       | MagicMoonlight wrote:
       | Why do we even have those weird characters in ASCII still? We
       | need a newer version where the characters people actually use are
       | stored in the least bits.
        
       | bityard wrote:
       | > Eventually ftp was mostly subsumed by web browsers speaking the
       | FTP protocol themselves. This is why you may occasionally still
       | see URLs with an "ftp:" service prefix; this informs the browser
       | that it should expect to speak to an FTP server rather than an
       | HTTP/HTTPS server.
       | 
       | In the earlier days of the web, it was not totally uncommon to
       | see people hosting their home pages on an FTP server rather than
       | an HTTP server. Netscape and IE both spoke FTP just fine, and for
       | some people, access to an FTP account was more convenient than
       | paying for separate web hosting. Or settling for GeoCities. If
       | the page had a lot of images, it was quite a bit slower than HTTP
       | though.
        
       | digitalsushi wrote:
       | Our father's shrines are our children's ashtrays.
       | 
       | I'm mentoring a couple guys on my team, both born solidly after
       | the year 2000 by their own anecdotes, building them up as Linux
       | infrastructure engineers. I covet the video cameras we use on our
       | remote meetings, because I can tell when to stop talking about
       | the history by their body language drooping.
       | 
       | I've had a few a-hah moments, using connections to the same
       | history ESR scribbled above, but largely I am finding that
       | regaling the younger people with details from before they were
       | born is not interesting because they were not here for it and
       | have no connection to it.
        
         | bell-cot wrote:
         | Old geezer suggestion: Try to tell them stories about people
         | and the situations they were in - with the old hardware and
         | tech as (at most) props and costumes. If they're that young,
         | and not too weak in the social skills, they should pick up
         | pretty soon that you're mostly teaching 'em about corporate
         | culture, handling managers, gracefully dealing with sudden
         | problems, etc.
        
           | m463 wrote:
           | I think many tech history books are dry, unless they talk
           | about the people and personalities.
           | 
           | https://www.folklore.org/
           | 
           | https://steveblank.com/
           | 
           | https://www.amazon.com/Hackers-Computer-Revolution-Steven-
           | Le...
           | 
           | https://www.amazon.com/Accidental-Empires-Silicon-
           | Millions-C...
           | 
           | https://www.cringely.com/2013/02/04/accidental-empires-
           | part-...
           | 
           | (all the chapters are there)
        
         | adamrezich wrote:
         | > but largely I am finding that regaling the younger people
         | with details from before they were born is not interesting
         | because they were not here for it and have no connection to it.
         | 
         | I don't understand why this attitude is so pervasive nowadays.
         | in my opinion, curiosity about one's craft's history is a
         | crucial part of the hacker spirit. I can't imagine, for
         | example, never having used a landline, yet not finding
         | phreaking to be incredibly interesting to learn more about,
         | even though it's about as far from practical knowledge today as
         | it could be.
         | 
         | did we mess up somewhere and fail to convey this aspect of the
         | hacker spirit to the youth? or are things just changing too
         | rapidly?
        
           | mistrial9 wrote:
           | stackoverflow literally removed the mentorship stage for a
           | generation
        
           | quacked wrote:
           | > did we mess up somewhere and fail to convey this aspect of
           | the hacker spirit to the youth? or are things just changing
           | too rapidly?
           | 
           | I think that young people today don't perceive themselves as
           | having any free time, and so they treat new things as they're
           | taught in school: optimize the solution, get your grade/get
           | paid, and go back to the precious little free time you have
           | available to enjoy your life.
           | 
           | The disappearing free time is partially true, as the reach of
           | the school environment grows and homework/extracurricular
           | burdens increase. It's also partially imagined, because most
           | young people burn 4-9 hours per day on their phones. It's not
           | their fault, since phones are designed to be addicting for
           | young people specifically. However, the end result is that
           | the class of people who _should_ be the most restless,
           | virile, excited, and driven in society--kids age 12-20--is
           | the most over-scheduled and exhausted.
           | 
           | If you took a modern young person and stuck them on a
           | reservation where the level of technology and pace of life
           | matched the '80s and '90s, they'd start behaving like young
           | people again.
        
           | hiAndrewQuinn wrote:
           | And in _my_ opinion, the most crucial part of the hacker
           | spirit is ESR 's own edict: "No problem should have to be
           | solved twice."
           | 
           | So I would convey the exact opposite aspect of the hacker
           | spirit to the youth. Don't feel the need to read anything
           | about history that isn't directly related to what you want to
           | hack on. Black box liberally and dangerously and deal with
           | the consequences as they appear. If reading history is what
           | you want to do with your spare time, great, but let's be
           | clear about what the actual heart of this avocation is.
        
             | Fnoord wrote:
             | I mean if you go for OSCP you end up in a virtual
             | environment which many done before you (some with success).
             | It is up to you if and how you approach such puzzle. And if
             | your itch is writing X in Rust or Y in Python, why not? It
             | is your choice... but you don't _have_ to.
        
           | sockaddr wrote:
           | I think things are more competitive and fast-paced nowadays
           | than when we entered this space and so history and all of the
           | details that come along with it aren't necessarily their
           | first priority. I don't blame them.
           | 
           | For example,
           | 
           | When I was first getting into computers I felt like I had all
           | the time in the world to perfect writing batch files and I
           | could pour over a single magazine at a leisurely pace for
           | weeks until the next one came out.
           | 
           | Nowadays every time you use your face to unlock your magic
           | pane of glass there's a language, a new framework, a new more
           | impressive AI you can build your business on or some creepy
           | guy trying to scan everyone's eyeballs, it's just different.
        
             | adamrezich wrote:
             | I think there's also an aspect of computer programming
             | having become more of a fashion than a craft, in many
             | cases. game development used to be very difficult and
             | people who worked in that field pushed the limits of what
             | hardware and software could do. nowadays, free-to-download
             | general-purpose engines make getting into "game
             | development" extremely easy. web development became its own
             | whole thing by means of frameworks and so forth, where now
             | to get into it, you're more learning how specific
             | frameworks and such work, rather than underlying
             | engineering principles.
             | 
             | how many people who program computers professionally for
             | big tech companies are "hackers", these days, compared to
             | one decade ago? two? three? surely the ratio has only
             | decreased over time, as more and more people get into the
             | field for purely pragmatic reasons (income, clout, etc.)
             | than taking part in/engaging with "the hacker spirit". for
             | better or worse, gates have not been kept, and now things
             | are completely different than they once were.
        
           | Fnoord wrote:
           | Seems like claiming studying history (from before one is
           | born) shouldn't be allowed. Some very nice music I learned
           | from my parents, and a great series (The Prisoner).
        
       | MarkusWandel wrote:
       | Old fart comments here:
       | 
       | 56K really was the maximum for telephone modems. This is because
       | the telephone network, internally, transmitted 8 bit samples at
       | 8K samples/sec - 64Kbps - except the occasional low bit got
       | stolen for other signaling, so the net data rate was a bit less
       | (and the result was inaudible to a telephone customer). Instead
       | of trying to synchronize the modem to the stolen bits, it was
       | simpler to just use the 7 that were reliable - thus 56Kbps.
       | https://en.wikipedia.org/wiki/Robbed-bit_signaling
       | 
       | 9600bps as the defacto terminal speed was older than 9600bps
       | modems (those were the cat's pajamas in the mid-late 80s or so).
       | It was simply "fast enough" for a terminal user and "slow enough"
       | for the terminals of the day. I had one (a Volker-Craig 4404 if I
       | remember correctly) that could not keep up at 9600bps and had to
       | be used at something less, maybe 4800bps.
        
         | geostupid wrote:
         | 4800bps! Back in my day we were happy to get 2400!
         | 
         | Sadly, I had a 1200 baud; my uncle told me his first was 300.
         | 
         | I remember a 110 setting, which might go all the way back to
         | the '48 Berlin airlift!
        
       | jwestbury wrote:
       | The section on hardware context reminds me of what is probably a
       | little-known fact these days -- that Oregon Trail (amongst many
       | other games[0]) was originally designed as a teletype game.
       | 
       | 0. https://www.pcmag.com/news/the-forgotten-world-of-
       | teletype-c...
        
       | allo37 wrote:
       | It's funny, I work in embedded systems and much of this is still
       | relevant to me. RS-232 itself (as in the specification for the
       | physical layer) isn't used as much, but the underlying UART comms
       | protocol is still alive and well. A Beaglebone dev board, for
       | example, can be booted by uploading the bootloader over XModem.
        
         | koz1000 wrote:
         | And a lot of smaller microcontrollers still use a UART port and
         | serial protocol to reflash the device. It's the lowest common
         | denominator for hardware interface and the simplest thing that
         | works.
        
           | allo37 wrote:
           | Hah, to me flashing an MCU over UART is a luxury. When I
           | first started working with MCUs I needed to use a chip
           | programmer that cost several hundred $ and flashed using a
           | high-voltage (relatively speaking) parallel interface. Then
           | there were serial programmers that used a proprietary
           | protocol to talk to the chip. And then finally we had
           | bootloaders and self-flashing MCUs that made this whole
           | process sane and affordable!
           | 
           | And of course to our ancestors, we're spoiled kids with our
           | electronically erasable ROM ;)
        
       | bvan wrote:
       | Great article. Much of these things were still very relevant in
       | the 80's and early 90's.
        
       | spiritplumber wrote:
       | We used "ascii soup" to refer to the output of mismatched tty
       | configurations between serial devices for industrial stuff.
        
       ___________________________________________________________________
       (page generated 2023-09-29 23:01 UTC)