6 ms·
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
by mjg59 3y ago
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.
- hn92726819 3y ago> 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 3y agoWhat specification defines ASCII encoding as an 8-bit format?
- LegionMammal978 3y agoRFC 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 https://www.rfc-editor.org/rfc/rfc20.html [1] https://www.rfc-editor.org/rfc/rfc822.html https://www.rfc-editor.org/rfc/rfc822.html [2] https://www.rfc-editor.org/rfc/rfc3797.html#page-6 https://www.rfc-editor.org/rfc/rfc3797.html#page-6 [3] https://www.rfc-editor.org/rfc/rfc7997.html https://www.rfc-editor.org/rfc/rfc7997.html
- mjg59 3y agoI'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
- SAI_Peregrinus 3y agoASCII 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 3y ago
- bhaak 3y ago> "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 3y agoASCII 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
- tjalfi 3y agoPRIMOS[0] serves as a counterexample; it used ASCII with the top bit set. [0] https://en.wikipedia.org/wiki/PRIMOS#Data_access https://en.wikipedia.org/wiki/PRIMOS#Data_access
- _gabe_ 3y agoIt’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?
- no_identd 3y ago>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 annoying¹, and that's because Arithmetic IF is how we came to get signed integers as exit codes in the first place. ¹at least in theory, in practice half the people implement the codes incorrectly because they don't realize this, and so…
- yetihehe 3y ago> 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 3y agoMy 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.
- pasc1878 3y ago> "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.
- xcdzvyn 3y agoI've heard Perforce is still pretty common in game dev shops because it handles big files way better
- pasc1878 3y agoYes but they are not the subject of this article - the part where he says that git has replaced other VCS is about distributed development.
- khalladay 3y agoYep. And also because we work with a lot of binary data which can't be merged in any sand way. Being able to lock a binary file youre working with is a necessity.
- layer8 3y agoFossil is used. Mercurial is still used. There are probably others.
- pasc1878 3y agoI agree - but you do still need to know git. Which is the point of the article - what hackers need to know.
- IshKebab 3y agoFossil is used by SQLite (who created it) and until recently Mercurial was used by Facebook but that's about it. Aside from Facebook and Google who have their own custom VCS's the only real games in town are Git and Perforce. Which is a bit of a shame because Git is really bad at some things. Especially large file support (hence Perforce continuing to exist), submodules, and partial clones.
- sumtechguy 3y ago>> "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 3y agoYes, 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)
- atoav 3y agoElectronics guy here. There are devices that speak actual RS-232 with e.g. -3 and 15V as logic levels. And there are devices that also say "RS-232" on their port, but expect logic levels of say 0 and 3.3V (or 5V). When you use one with the other any number of things can happen, including the destruction of the target microcontroller if the circuit is unprotected (most MCUs dislike sufficiently negative voltages on their ports). Now if we talk about servers or expensive media gear their RS-232 connectors are very likely top notch (and still very much present as you rightly noticed). Cheap devices are more questionable here.
- libraryofbabel 3y agoYeah. 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.
- pdonis 3y ago> ASCII is a character set, it doesn't define the on-disk representation. ASCII is both a character set and an encoding. The encoding specifies 8 bits per character with the high bit clear. Every file encoded this way is also valid UTF-8. That's what the article's statement meant.
- ahauxuueei 3y ago> "But in 2005 Linus Torvalds invented git, which would fairly rapidly obsolesce all previous version-control systems" > (cries in Perforce) Am I the only one still remembering BitKeeper? https://en.wikipedia.org/wiki/BitKeeper#BitKeeper_and_the_Linux_Kernel https://en.wikipedia.org/wiki/BitKeeper#BitKeeper_and_the_Li...
- morelisp 3y agoBut Git certainly obsolesced BitKeeper, both practically and technically.
- dajt 3y agoWell, it's by ESR so the smug pedantry is taken as read. It may be stuff every hacker used to know (and I'm old enough to have dealt with everything there other than the 36-bit stuff) but so what? There's a ton of stuff going on these days I'm too old to care about and don't know but younger hackers probably have forgotten they ever had to learn it. Modems are still connected via serial lines - our embedded project has a modem connected to the MCU via a UART. We ran out of MCU pins for HW flow control but it's essentially the same as how we did things in the 80s with external modems. I assumed AT commands were still in use either because they're so easy to use or they're easy to test. I can't say whether the autobaud feature is still useful but the modem we use can do it. I think (some) IoT devices can still use RS-485 which seems similar to RS-232. We're in ag-tech so the sensors we talk to use SDI-12, a shared bus serial protocol with 12v power and 5v signalling. Lots of weird stuff out there!
- delta_p_delta_x 3y ago> the entire tone of the article is smugly pedantic 'Smugly pedantic' is a concise way to describe Eric S Raymond. To this day, I despise his 'How to Ask Questions the Smart Way'.
- bawolff 3y ago> 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. This seems incredibly pedantic to me. I think in context we can assume it is meant, ascii with 8-bit bytes.
- TheRealDunkirk 3y ago“Smugly pedantic” describes the entirety of the internet pre-2000 or so, so it all fits. :-)