[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)