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.
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…
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.
> ASCII X'2E' or 2/14
> X'OD' or 0/13
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
[0] https://www.rfc-editor.org/rfc/rfc20.html
[1] https://www.rfc-editor.org/rfc/rfc822.html
> 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, while we're nitpicking, ANSI X3.4-1986 defines the "7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)". It's up to us to interpret "ASCII" as "7-bit ASCII" or "network ASCII" or any other form of ASCII according to context.
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).
> (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.
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.
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.
(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)
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.
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.
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.
> (cries in Perforce)
Am I the only one still remembering BitKeeper?
https://en.wikipedia.org/wiki/BitKeeper#BitKeeper_and_the_Li...
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!
'Smugly pedantic' is a concise way to describe Eric S Raymond. To this day, I despise his 'How to Ask Questions the Smart Way'.
This seems incredibly pedantic to me. I think in context we can assume it is meant, ascii with 8-bit bytes.
"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.