Things Every Hacker Once Knew: 1.10

And the latest revision:
Things Every Hacker Once Knew.

This time: The Break key. uuencode/uudecode. Why older Internet protocols only assume a 7-bit link. The original meanings of SO/SI. WRU and station ID on teletypes. BITNET and other pre-Internets.

There is one respect in which working on this is changing my historical perspective. The section now titled “WAN time gone: The forgotten pre-Internets” started out just being about UUCP but has gradually expanded to include the BBS scene, commercial timesharing, and academic networks in the period 1978-1996 (and especially 1981-1991).

At the time those of us exposed to more than one of these networks saw mostly differences – differences in capability, differences in addressing schemes, differences in underlying protocols.

Now, twenty years later, I’m finding that it’s the similarities that look more significant. These experiments were all evolving in parallel, offering services that converged over time.

Wide-area TCP/IP was the eventual winner, of course. It’s not hard to see why: being designed for internetworking and not being gated by proprietary IP gave it two insuperable advantages.

Published
Categorized as General

113 comments

  1. @esr: Now, twenty years later, I’m finding that it’s the similarities that look more significant. These experiments were all evolving in parallel, offering services that converged over time.
    Yep. I was active in the BBS scene as well as dealing with things like UUCP and Usenet.

    One part of the BBS scene I spent time on was FidoNet. Fido was based on technical standards. If the software you used to connect conformed to the standards, you could be a node on FidoNet, and what hardware you ran didn’t matter.

    FidoNet’s architecture bore a strong resemblance to Usenet, modified to deal with the fact that the hardware used was microcomputers with 16bit addressing running single-user, single tasking OSes. A Fido node couldn’t simultaneously handle a dial up user and relay Fido traffic. So you ran a front end mailer that answered the phone, determined whether it was talking to a BBS user or another Fido node, and either called the BBS software to handle the user or did a relay with the other node. And you could run a package like Waffle that implemented UUCP on a PC and connect to Usenet. As I recall, front end mailers like BinkleyTerm and Waffle for UUCP were early examples of open source.

    Other systems were more restricted. I spent some time as a moderator on RIME (Relaynet International Message Exchange), the second largest BBS network, with just under a thousand nodes. Relaynet used a network client to connect with the rest of the network, but the client existed for an assortment of BBS software packages. The limitation was that all ran on IBM compatible PC hardware. RIME used a star topology, with all traffic flowing in to a central server and being relayed back out. Other BBS networks were more restricted, and tended to be specific to particular brands of BBS software, Like PCBoard.

    And a major development back then was the development of offline readers. You could call a BBS, download a packet of messages in areas you read, then read and reply offline, and upload your replies the next time you connected. It dramatically reduced the amount of time needed to connect to the BBS if all you wanted to do was participate in message bases, and freed the BBS to accommodate more callers.

    The Internet Ate the World, and the dial up BBS became largely a thing of the past. Some still exist but you reach them through telnet. One chap I’m aware recently dusted off BBS software he ran on a Commodore 64 and put his system back online. He even had it on a dial up line. But he discovered the hard way that no one was calling because no one still had a modem, and he had to implement a front end that would let people connect via telnet. :-p

    It was fun while it lasted, with some neat hacks devised to let you do stuff like that on early micros. The biggest disconnect I see now is a failure to understand the rate of hardware development and just how much smaller, faster, more powerful and cheaper the kit we use now is from what we had back then.
    ______
    Dennis

  2. Some BBS software (e.g., Fido and Opus) had network relay capability built in so you could run it “naked” without any front end, handling both human callers and network transfers, though many sysops still used front-ends on top of them to get expanded features they had.

  3. Re: footnote 10 and the meaning of the Break key…it may have originated from another meaning of the word “break” in the serial communications context.

    On an RS-232 line, the default “idle” state of the line is to be at the level indicating a “1,” as opposed to the level indicating a “0.” They referred to these two states as MARK and SPACE. (They loved using all-caps for names like these.) A “character” transmitted over the line always consisted of a START bit, always a SPACE, then the bits of the character, then the parity bit (where applicable), then the STOP bit(s), which were always a MARK.

    If the line were to drop from MARK to SPACE and stay there, you’d get a START bit, then the character bits (all 0’s), then the (optional) parity bit (a 0), then the STOP bit(s), which would be all SPACE and therefore invalid. This condition was called a BREAK, because it was the same thing that you would see in the event of a break in the transmission line. The terminal “Break” key just drove the output line to SPACE for a period of time longer than one character. The system on the receiving end could detect this as an out-of-band signal and react to it.

    Much of this comes from Joe Campbell’s C Programmer’s Guide to Serial Communications (SAMS, 1993), which I remember for the great ASCII chart that came with the book, that included things like the official ANSI standard “hand-print” notations for all the control characters. I don’t know if being published like this makes it “common” enough knowledge for this document though.

    1. >Re: footnote 10 and the meaning of the Break key…it may have originated from another meaning of the word “break” in the serial communications context.

      That in turn comes from Victorian-era telegraphy, which I did cite.

      A surprising amount of RS-232 terminology, including “Mark” and Space” turns out to have origninated on pre-1900 telegraph networks.

  4. > that included things like the official ANSI standard “hand-print” notations for all the control characters.

    Do you remember what these looked like – and, possibly, what exactly this was called or what exact ANSI standard (if it wasn’t part of X3.4 itself) they came from? I think I’ve come across a chart of these once, while looking for something else, and can’t find it again.

  5. esr:

    A surprising amount of RS-232 terminology, including “Mark” and Space”[,] turns out to have origninated [sic] on pre-1900 telegraph networks.

    Dog walks into a telegraph office to send a message.
    “Woof woof woof woof woof woof woof woof woof.”
    Clerk tells him, “You know, for the same price, there’s room for one more ‘woof'”.
    Dog gives him a funny look, “But that wouldn’t make any sense.”

    (Taken from here.)

    1. >Are these the “hand print” symbols?

      What in the hell are those? I’ve never seen that set of ASCII graphics before.

  6. What in the hell are those? I’ve never seen that set of ASCII graphics before.

    For what it’s worth, I’d seen a variation on the characters that table calls “DLE”, “FS”, “GS”, “RS”, and “US”. I got to play the original SimCity (in monochrome!), which used combinations of those symbols as copy-protection codes. Visit this short blog post if you want to see the red sheet with the codes, which were associated with real-life cities and their population sizes (according to the latest censuses at the time, I presume). The game would present you with one of those combinations and prompt you for the name or population of the corresponding city; a wrong answer would render the game unplayable: lots of disasters and no way to disable them.

    But I’m dating myself, especially since we now have Micropolis. :-)

  7. I haven’t found a ‘”hand-print” symbol’ chart, but a duckduckgo search on ‘ANSI “hand-print” notation’ turned up three pages on the history of pen and gesture notation 1970-1980 with lots of ANSI references.

    Jean Renard Ward, the author, copyrighted the pages most recently in 2016 and may be an MIT alum.

    George

  8. Regarding that thing about lp standing for line printer: I knew that for ages, and was recently surprised to discover that ‘lpr foo.pdf’ works fine on OSX.

  9. Aren’t those one of the Commodore character sets? Either PET or C-64 had a bunch of glyphs mapped to the lower control character set.

    I know what he means by “handprint”, and I’d recognize them if I saw them, but I don’t think these are them.

    1. >Aren’t those one of the Commodore character sets? Either PET or C-64 had a bunch of glyphs mapped to the lower control character set.

      Doesn’t look like it. I found both the PETSCII and C-64 character sets and while there is a general resemblance in some of the graphics I don’t see an exact match.

  10. And now I don’t know if I think those are the ‘handprint’ characters being discussed anymore.

    The stuff was historical when I got to it, and I don’t remember where that was.

  11. It might be worth mentioning that another motivation for 36-bit machines was that most machines used 6-bit character sets until ASCII (and EBCDIC) caught on. In fact, DEC also sold 18-bit and 12-bit machines, and CDC sold 60-bit Cybers to many universities.
    Every manufacturer seemed to have their own 6-bit character set; in fact, many manufacturers had several. Wikipedia has a so-so article about some of them.
    Off-topic: with their 360 architecture, IBM (1) pioneered the idea of a computer architecture, (2) moved to a byte-addressable ISA, and (3) moved to 8-bit bytes. They also tried to move to a standard character set, but the standards people did not finish work on ASCII soon enough, so they created EBCDIC.

    1. >It might be worth mentioning that another motivation for 36-bit machines was that most machines used 6-bit character sets

      Causation backwards. It’s pretty obvious that the 6-bit character sets were designed for packing into the 36-bit word size, not the reverse. we know the motivation for 36 bits; it captured the 10-digit precision of mechanical calculators. We also know that there was no single six-bit encoding that was standardized enough to motivate hardware features.

      I’ve added a mention of six-bit encodings anyway, because they explain the 6-character limit on filenames in those machines.

  12. >>Are these the “hand print” symbols?

    >What in the hell are those? I’ve never seen that set of ASCII graphics before.

    I have seen these (though not for 30 years). My first job was with a firm that made clones of Burroughs “smart” terminals (TD 730/780?) that supported a debug mode that could display line activity and used those symbols for control characters (this was pre-Ethernet – the terminals talked to the mainframe using a poll and response protocol).

    1. >a debug mode that could display line activity […] used those symbols for control characters

      That fits the intended uses of ISO 2047, which has already been pointed out. So I think the “What in the hell are those?” question can be taken to be answered.

  13. @Random832: Yes! That’s the exact ASCII table from Campbell’s book, including the “hand print” symbols for the control characters. He had a note in the text referencing the exact ANSI standard where those symbols were defined, but I forget the exact reference and I don’t have the book in front of me.

    Also note the way the letter “O” is written, with a little “tail” on the upper left that makes it look like an upside-down “Q”. This is also apparently part of the hand-printing standard, to distinguish between “O” and “0” (LATIN CAPITAL O and DIGIT ZERO, in Unicode terms). The reason for not simply drawing a slash through the “0” has to do with confusing it with other things, and again, I forget the exact rationale.

  14. Slashed-0 looks too much like a Danish (I think) character I can’t remember the name of; eth or thorn.

    The upside-down-capital-Q thing, I was told, was very IBM mainframe.

  15. Baylink:

    You mean this? -> Ø ø
    According to Wikipedia, “[t]he name of this letter is the same as the sound it represents…”
    By the way, the eth is this: Ð ð
    And I didn’t know the thorn was until you mentioned it, so thanks. It turned out to be this: Þ þ

    Apparently, of these three letters, only the ‘ø’ is used in Danish.

  16. TCP/UDP port numbers might be a good addition. I know what they are and how to use them, but I have no idea about the history of them until I looked.

    ht tps://en.wikipedia. org/wiki/Port_(computer_networking)#History

    If you can expand on that, perhaps explain the fscked logic behind the multiple ports for FTP, I sure would appreciate it.

    I need to catch-up with your latest version, but I believe TTL serial data was in common use on microcontrollers and PC ports back in 1995. In fact I just found a 1999 cite in an old GPS manual a minute ago. My recollection from 1995 is a Jan Axelson (author of the wonderful but dishonestly named “USB Complete” book) magazine article about the 8051 that I don’t think is online yet.

    1. >If you can expand on that, perhaps explain the fscked logic behind the multiple ports for FTP.

      It’s got something to do with getting around firewalls, but I’ve forgotten the details and am not sure I had a firm grasp on them in the first place.

  17. Also note the way the letter “O” is written, with a little “tail” on the upper left that makes it look like an upside-down “Q”. This is also apparently part of the hand-printing standard, to distinguish between “O” and “0” (LATIN CAPITAL O and DIGIT ZERO, in Unicode terms). The reason for not simply drawing a slash through the “0” has to do with confusing it with other things, and again, I forget the exact rationale.

    I think this is mentioned in the Jargon file: http://www.catb.org/jargon/html/0/numeral-zero.html

  18. er that was meant to have a quote tag of some kind… adding slate star codex to the list of sites I comment on in the past couple weeks has had the effect of making me worse at markup.

  19. That, FTR, is not where I got the IBM connection in the O-with-tail.

    I *think* it was on the Cobol programming forms for the System/34, the first mini I ever touched, back in 198{mumble}.

  20. Something just struck me. Would the clear-screen interpretation of FF (^L) be usfl as an explanation of ^L as a spoiler marker on Usenet?

  21. “The upside-down-capital-Q thing, I was told, was very IBM mainframe.”

    Nope. IBM mainframes used a dotted zero. The upside-down capital Q thing was a Unisys thing (I don’t know whether they inherited it from Sperry Rand or Burroughs, though).

  22. I thought that the separate ports used by FTP for control and data were so that from A you could command B to send a file to C.

    IIRC there is some truly ugly stuff in the FTP standard.

    Paul

  23. Baylink:

    I meant that. Those aren’t in Danish?
    One of the other Scandahoovian languages, then?

    Well, I’ve long known that Icelandic uses the eth because Björk’s patronymic is ‘Guðmundsdóttir’. :-)

    I like those letters that certain languages add to the Latin alphabet. There’s at least one more: German’s Eszett (‘ß’). Ah, the joys of the Alt Gr key. Heh, heh.

    Say, I hadn’t read or heard “Scandahoovian” before. Is it pejorative?

    1. >Say, I hadn’t read or heard “Scandahoovian” before. Is it pejorative?

      It can be, but usually is not. It’s one of those slang regionalisms (in this case not much used outside the upper Midwest of the U.S.) where the meaning is heavily dependent on context and tone of voice.

      It’s in my recognition vocabulary, but I wouldn’t produce it unless I were parodying a Midwestern dialect for comic or sarcastic effect. It would sound ridiculous and out of place in Jay’s Texas accent; I’d bet he also only uses it jokingly or sarcastically.

  24. I stole it from the tail end of Robert Heinlein’s novel Friday, I’m pretty sure it’s intended to be affectionate.

  25. Jay: as I noted in a different comment, I didn’t mean the display of a zero on a 3270 terminal – I’m aware that used the dotted center – I meant handwriting on a programming form.

  26. Baylink:

    Heinlein? Tch. He and I have started on the wrong foot: I read Citizen of the Galaxy last year and didn’t like it. I might give him another chance and read Puppet Masters, but not for the foreseeable future.

    Still, what you report speaks well for Heinlein – for I, too, have some affection for Scandinavia, or at least Sweden. Pernilla August, Noomi Rapace, and Alexandra Larsson are beautiful. :-)

    1. > I might give him another chance and read Puppet Masters, but not for the foreseeable future.

      Yeek. Do yourself a favor and don’t – Puppet Masters is probably the worst thing Heinlein wrote before his late, um, brain-damaged period. I say this as a devoted fan.

      Just about anything else he wrote between 1939 and 1968 would be a better choice.

      EDIT: Except Sixth Column. Yeah, that was worse.

  27. esr:

    not much used outside the upper Midwest of the U.S.

    Does “upper” mean “northern” in this context? But Heinlein was from Missouri, the southernmost state of the Midwest. Oh, well. You did say “not much used” rather than “not used”.

    It would sound ridiculous and out of place in Jay’s Texas accent; I’d bet he also only uses it jokingly or sarcastically.

    Do you mean that, upon moving to the Midwest (Minnesota, I think), he began to adopt Midwestern regionalisms while retaining his Texan accent?

    By the way, how come “Things Every Hacker Once Knew” requires the reader to enable JavaScript in order for the footnotes to work properly? It’s no big deal, but it does seem bad practice; Wikipedia’s footnotes work fine without JavaScript (they merely lose their mouseover functionality).

    I guess it’s just something Wikipedia’s LML handles better than AsciiDoc. :-(

    1. >Does “upper” mean “northern” in this context?

      Yes. It’s not clear that “Scandahoovian” was in Heinlein’s normal idiolect – like me, he had a very good ear and seems to have occasionally enjoyed playing against his birth dialect for effect.

      >Do you mean that, upon moving to the Midwest (Minnesota, I think), he began to adopt Midwestern regionalisms while retaining his Texan accent?

      Not so I’ve noticed. Jay’s accent is Texas but his vocabulary and phrase formation are general American – a common adaptation in educated Texans. Of course he may change register – probably does – around people who aren’t Texans.

      >By the way, how come “Things Every Hacker Once Knew” requires the reader to enable JavaScript in order for the footnotes to work properly?

      This is a property of the asciidoc stylesheets of which I was previously unaware.

  28. Baylink: “as I noted in a different comment, I didn’t mean the display of a zero on a 3270 terminal – I’m aware that used the dotted center – I meant handwriting on a programming form.”

    That would explain why I never encountered it in 15 years as an IBM mainframe sysprog. To the very best of my recollection, nobody in the IBM mainframe world actually did that.

    Eric: “[‘Scandahoovian’] would sound ridiculous and out of place in Jay’s Texas accent; I’d bet he also only uses it jokingly or sarcastically.”

    Indeed, it was not a common usage in the South as I was growing up. I do recall hearing of it, but probably in some mass media or other. If I were to use it now, it would be in conjunction with a thick, parodic Minnesotan accent.

    Jorge: “Do you mean that, upon moving to the Midwest (Minnesota, I think), he began to adopt Midwestern regionalisms while retaining his Texan accent?”

    Excuse me for a moment while I pick my roommate up off the floor from laughing so hard…

    Not only no, but hell no. I’m a Texan, dammit, and I speak the pure, unadulterated true form of the language. The rest of yall debase it in one way or another.

    Eric: “Jay’s accent is Texas but his vocabulary and phrase formation are general American – a common adaptation in educated Texans. Of course he may change register – probably does – around people who aren’t Texans.”

    General American, true, but there are still regionalisms I hold onto for dear life. The double modal is one that drives my roommate batty: “You might oughtta go check the mail.” I’m well aware that being recognized as a Texan by my speech sets me apart, and I consider that a feature, not a bug. I don’t think I change register when around non-Texans, but am probably too close to the question to answer it well.

    I write pretty much like I talk. Jorge, go find Tron Guy videos on YouTube and listen to how I speak, then read some of my writings to yourself in that voice. I suspect you will find the experience educational.

    1. >I were to use [‘Scandahoovian’] now, it would be in conjunction with a thick, parodic Minnesotan accent.

      My point exactly. (And by the way, I think I would pay money to hear you parody a Minnesota accent. That would be a hilarious train wreck for sure.)

      >“You might oughtta go check the mail.”

      I’ve never heard you do that. If I did, I would assume you were shifting register to a deep Texas accent as a way of either lampshading some implied humor in you were saying or poking fun at yourself.

      >I don’t think I change register when around non-Texans, but am probably too close to the question to answer it well.

      Come to think of it, I have some evidence that you don’t. I’ve been around you when we were both in Austin and your idiolect didn’t seem to move any. But, you know, they say Austin is the lone blue dot in a sea of red; maybe you don’t fully drop back to Jay-in-Texas accent there.

  29. I inherited “Scandahoovian” as an entry in my vocabulary from my CA-born-and-bred (though left after college for IA and FL before producing me) father. I do not recall at this point in time whether the scandanavian immigrants to MN of around 1900 are in his family tree or my mother’s. (Family names are no help – his/mine is irish, and my mother’s maiden name is generically english).

    On topic – is it worth noting why the cap on analog modems was 56kbps? Was the reason well-known? (It was in the era of BBS that I participated in, I suspect the knowledge has faded fast). And why that was the theoretical limit, with the practical being somewhere much lower, unless you happened to have clear ether between endpoints.

    1. >On topic – is it worth noting why the cap on analog modems was 56kbps? Was the reason well-known?

      I think I may have known that once but have forgotten it. I don’t think it was common knowledge.

  30. esr:

    Yeek. Do yourself a favor and don’t – Puppet Masters is probably the worst thing Heinlein wrote…

    Really? I’ve read about its premise and it sounds interesting to me. Besides, our tastes differ in some respects (e.g., I like the voices of Morrissey and James LaBrie and you don’t), so I might well like it. Anyway, like I said, I’m not going to read it any time soon.

    …before his late, um, brain-damaged period.

    If I recall correctly, you’ve claimed that Philip K. Dick deteriorated similarly. Still, I’m interested in at least one novel from (what I presume to be) that late period you dislike: Flow My Tears, the Policeman Said.

    I’m not disputing your authority in the field of science fiction; it’s just that I’m not interested in the scientific content, or lack thereof, of those books. I’m just looking for entertaining reads, so I judge them by the plot summaries I find on the Web.

    I say this as a devoted fan.

    Yeah, I’d noticed that. All your quote are belong to Time Enough for Love. ;-P

    But that novel postdates 1968. If you believe his brain was damaged by the time he wrote it, why do you quote it extensively? Ak, just saying.

    1. >If I recall correctly, you’ve claimed that Philip K. Dick deteriorated similarly.

      Yes. Dick went crazy; Heinlein had a circulatory problem that impeded the flow of blood to his brain, which was eventually surgically corrected (both events were at one time fairly common knowledge in SF fandom). I don’t know the precise dates but on internal evidence his medical troubles must have postdated The Moon Is A Harsh Mistress (1966) and his recovery was probably just before Friday (1982).

  31. Jay Maynard:

    Excuse me for a moment while I pick my roommate up off the floor from laughing so hard…

    You mean your roommate reads this blog, including my silly comments? I’m a little embarrassed. XD

    Jorge, go find Tron Guy videos on YouTube and listen to how I speak, then read some of my writings to yourself in that voice.

    It’s a deal. I’ll let you know how it went. :-)

    And since we’re talking about your being a Texan: have you watched King of the Hill? If so, is its portrayal of Texan life accurate?

  32. > Causation backwards. It’s pretty obvious that the 6-bit character sets were designed for packing into the 36-bit word size, not the reverse.

    I’m not sure I buy that. My assumption is actually that 6-bit character sets (and uppercase-only terminals/printers) mainly exist because 64-character print heads (and ROMs, etc) are cheaper than 96-character ones.

    Also 6-bit “BCD” (the precursor of EBCDIC) maps very well to classical punch card codes, with each ‘zone punch’ corresponding to one of the possible values for the high two bits.

    > On topic – is it worth noting why the cap on analog modems was 56kbps? Was the reason well-known? (It was in the era of BBS that I participated in, I suspect the knowledge has faded fast).

    My understanding was that going faster would have put too much power on the phone lines, causing interference problems – and that the limit in the US was actually 53kbps due to FCC regulations.

  33. >If you can expand on that, perhaps explain the fscked logic behind the multiple ports for FTP.

    The original design for FTP supported architecture of a controlling process with one IP address and a data mover with a different IP address. Think of it like DMA for networks. The transmitter of data was responsible for establishing the TCP session to the receiver. The only thing transmitted over that TCP session was the content of the file being transferred. (Neatly bypassing the need for any MIME-style denotation of end-of-file; when the TCP session ended, that was your end-of-file indication.)

    Later on, outbound-TCP-only firewalls (to include NAT) broke the most common use case–a human running the FTP command interactively to download a file from a server. Specifically, in those cases the data mover couldn’t establish a TCP session to the receiver. So the PASV (passive) command was used to reverse the flow of data; it switched the responsibility for creating the TCP session to the receiver.

  34. >On topic – is it worth noting why the cap on analog modems was 56kbps? Was the reason well-known?

    The Bell system used 64 kilobits/second to encode voice channels.

    Relevance to today?

    1. All Voice over IP implementations support the G.711 CODEC, which is Pulse Code Modulation (PCM) at 64 kilobits/second. (With IP, RTP, and Ethernet overhead it actually works out to 87.2 kilobits/second on the LAN.)

    2. 64 kilobits/second is DS0, the base unit from which all synchronous wide area protocols are built. 24 x DS0 = DS1 (a.k.a. T1 at 1.544 megabits/second). 28 x 24 x DS0 = DS3 (a.k.a. T3 at 44.736 megabits/second). Network equipment providers will happily sell you synchronous router optical interfaces where (e.g.) an OC-3 SONET physical layer port is mapped into 84 independent T1 channels.

  35. Except that, really, a DS-0 voice channel was only 56 kilobits, due to T1 robbed Abit signalling. Tada.wav

    It’s worth noting here to that you could only get even 53 kilobits if the other end of the line was digital all the way from your central office to the modem bank, which in those days was generally something like in Ascend Max or Max TNT, a device which would terminate an entire DS3.

    As for Heinlein’s brain surgery, the details of that are in either Grumbles from the Grave comma the past through tomorrow, or one of the Spider Robinson 4 words or afterwards. I don’t remember which anymore, but the details are all on public record.

    No, I do remember. He testified about it to Congress as part of testimony about spin-offs from NASA research. I’m pretty sure that puts it in The Past Through Tomorrow, which I gather was pretty popular among fans because it was one of our few opportunities to hear the man write in non-auctorial voice.

  36. Re: 64k vs. 56k:

    “Before V.90 technology, modems were theoretically limited to about 35 Kbps by the quantization noise that affects analog to digital conversions (the practical limit was actually 33.6 Kbps). However, in today’s world of increasing digital transmission facilities it is safe to assume that an increasing number of Internet service providers (ISPs) are digitally connected both to the Internet and to a telephone company’s central office (CO). When this is the case, there is a clear digital connection downstream from the ISP’s modem to the CO’s line card that serves the user and contains a digital to analog converter. The result of having this digital connection is that an analog to digital conversion (and therefore quantization noise) is avoided between ISP and CO. Without the limits imposed by quantization noise, it is theoretically possible to achieve downstream connection speeds of up to 64 Kbps. Practically, however, this is not yet possible. Performance barriers such as µ-law quantization reduce the effective data rate of V.90 modems to a maximum of 56 Kbps downstream.”

    And:

    “According to the ITU G.711coding standard, the µ-law quantizer has 255 non-uniformly spaced output levels, including 127 positive and 127 negative levels and a level at zero. These levels are symmetric around zero and divided into 16 segments: 1, 2,…, 8. Segments +1 and -1 contain 15 levels, with a uniform spacing of two. Level zero is shared by both segments. All other segments have 16 levels and each one has twice the spacing of the previous segment. A two-step-mapping algorithm maps binary data into the µ-law signal space described above. By minimizing the possibility of using the signal points with the smallest distance, the algorithm minimizes the error rate while keeping the memory and complexity requirement at a level similar to the V.34 mapping algorithm. Note that the use of a sequence that utilizes all 255 levels equiprobably is not allowable because its average energy exceeds regulatory constraints.”

    Reference: http://www.eetimes.com/document.asp?doc_id=1275915

  37. > >Does “upper” mean “northern” in this context?

    > Yes. It’s not clear that “Scandahoovian” was in Heinlein’s normal idiolect – like me, he had
    > a very good ear and seems to have occasionally enjoyed playing against his birth dialect
    > for effect.

    My father–born and raised in STL during the depression and lived in Missouri his whole life, minus the 18 months in Korea during the conflict used the term more than once that I recall.

    But he also had been a travelling salesman (medical stuff) and had a pretty good ear and could (at least through the 70s) tell what part of the US someone came from after talking to them for a short while.

  38. My understanding was that going faster would have put too much power on the phone lines, causing interference problems – and that the limit in the US was actually 53kbps due to FCC regulations.

    Thanks for the memory jog; the nominal was 56kbps, but the max possible was only 53kbps due to $REASONS$ (which were a subject of tinfoilhattery and memetic mutation at the time). The FCC power limits was the most commonly accepted $REASON$. This was “generally known” by the BBS guys (of which I was one, up through the mid-nineties at least.

    The details posted by Parallel were not “common knowledge,” but the results absolutely were. It may be a false memory, but I want to say I recall some topology details of BBS-BBS networks were determined partially by who had clear ether between their nodes. (The regional networks in which I participated, not Fidonet). It was a minor effect, the main driver of topology was “who could call each other for free.” The arcanities of “local vs local toll” loomed over all of the BBS internetworking schemes (and if you ever wondered why 11-digit dialing for intrastate, and sometimes intra-area-code, phone calls is still A Thing; it’s an indication that you might be billed beyond your flat rate by a Baby Bell.)

  39. I’m a fairly big Heinlein fan, and I found myself entirely unable to re-read Puppet Masters the last time I tried. The novel is very much a period piece, and I find I am no longer able to tolerate one minor background event (the fate of the house pets).

    If you didn’t like Citizen of the Galaxy, though…. Hmmm. Perhaps Moon is a Harsh Mistress, or Rolling Stones, or Star Beast. Maybe Have Spacesuit, Will Travel, but it’s rather close to CotG. Stay away from Starman Jones.

  40. > (and if you ever wondered why 11-digit dialing for intrastate, and sometimes intra-area-code, phone calls is still A Thing; it’s an indication that you might be billed beyond your flat rate by a Baby Bell.)

    Speaking of which, I’ve occasionally heard that the original numbering plan (before area code expansions) was designed to make eight-digit dialing (i.e. “1”+7) a thing for intra-area-code toll calls. Was this ever really a thing?

  41. @Baylink:
    > I meant that. Those aren’t in Danish?

    >One of the other Scandahoovian languages, then?

    ? and þ used to be used in þe Scandinavian languages and English. Nowadays þeir only major survival (I think the only survival for þ) is in Icelandic.

    “Ye Olde” is a corruption of “Þe Olde”

  42. Speaking of which, I’ve occasionally heard that the original numbering plan (before area code expansions) was designed to make eight-digit dialing (i.e. “1”+7) a thing for intra-area-code toll calls. Was this ever really a thing?

    Pre NANPA direct dialing is all kinds of weird. But I don’t believe 8 digit dialing existed under NANPA.
    But, I refreshed my memory on wikipedia, and the leading 1 was originally an in-band trunk line access control code (which is why area codes and exchanges under NANPA do not allow leading 1s) so the “1 means toll” is a backformation. So it’s at least theoretically possible that 8 digit dialing for intra-area-code toll calls happened someplace in big area codes. But I don’t recall needing to use 8 digit dialing to call from Blacksburg to Fairfax Co in the early nineties, despite that being a toll call within area code 703.

  43. 1+ 7 digit dialing was indeed in use for intra-area-code toll calling in the 713 (southeast Texas) area code while I was growing up, before the 409 split.

    Th Houston metropolitan area had the largest toll-free calling scope of anywhere in the country. No measured billing, no per-unit rates, none of that kind of crap. When the 281 area code split came along, there was some concern that it would be used to cut that scope down, and the Texas PUC had to go to some lengths to get people to realize that there would be no changes in it.

  44. > Speaking of which, I’ve occasionally heard that the original numbering plan (before area code expansions) was designed to make eight-digit dialing (i.e. “1”+7) a thing for intra-area-code toll calls. Was this ever really a thing?

    It certainly was in KS. I could make a long-distance call from Cottonwood Falls to Emporia or vice versa (then both in the 316 area code) with 1-def-ghij dialing because the fact that “e” was neither 0 nor 1 indicated it was an exchange code rather than an area code. When I moved to KC, I could make a local call from the 913 (KS) to 816 (MO) area code or vice versa without having to dial the AC, because Southwestern Bell helpfully avoided allocating the same exchanges in both area codes close enough to create ambiguity (if the same exchange existed in both ACs, one would be long distance anyway, so the leading 1 signaled the intent to dial it).

    The rules , reading a number as (abc) def-ghij,were:

    Neither a, d, nor e could be 0 or 1, while b had to be 0 or 1. The values of b and c could not be the same as each other until the a00 area codes were created, and of course a11 are the special 3-digit short codes.
    This allowed for 8x2x9=144 “normal” area codes, 8 of the a00 area codes, each of which could then have 8x8x10=640 exchanges of up to 10,000 numbers each.

    And that wasn’t enough. So, the new rules still restrict a and d to not be 0 or 1, but allow bc and ef to be anything but 11 (with the special meaning for a00 codes). However, if b=c, the codes are special, such as 8bb codes all being toll free. So now we have 8×90=720 possible relatively-normal area codes*, the 80 8bb codes, and the 8 a00 area codes, each of which can have 792 possible exchanges (although I don’t believe d00 exchanges have been allocated for any area codes other than the a00 codes and perhaps 8bb codes).

    With number portability, it won’t be long before “area code” ceases to be meaningful, and we’ll just have 10-digit numbers.

    And now that area codes are generally required, hardly anyone writes them in parens anymore.

  45. Oh, and if I were calling another number in Cottonwood Falls, Strong City, or Elmdale, all of which shared the same 273-ghij exchange, I could replace the 273 with a different digit (I think it was 9, but might have been 5) that was not used as “g” anywhere in the exchange. This 5-digit dialing was how most people used the phone locally. This too had to go away as part of the evolution of phone numbers.

  46. The PUCs are the main stumbling blocks on the route to “native” 10 digit dialing. Until very recently, the CA PUC simply wouldn’t allow NPA overlays (area code overlays), for example.

  47. > Causation backwards. It’s pretty obvious that the 6-bit character sets were designed for packing into the 36-bit word size, not the reverse.

    The CDC machines had 60-bit words and used octal for memory dumps (20 octal digits or 10 characters per word). They used 6-bit characters at first, and later some sort of variable-width UTF-8-like encoding that enabled them to generate 8-bit output including ASCII control codes. Those of us who were there at the end got to watch CDC struggle to integrate features like VT100-compatible output and a GUI (really just menu-driven online documentation) with lowercase text.

    The CDC ecosystem was a bit of an island. They used 1’s-complement arithmetic which supposedly gave them some kind of speed or cost advantage, but really just made it stupidly hard for them to exchange code with the rest of the computing world. They couldn’t run C programs without an emulation layer for 2’s-complement arithmetic. UTF-8 hadn’t been invented yet, so the concept of variable-width characters was beyond most C programmers’ experience at the time.

  48. >If you can expand on that, perhaps explain the fscked logic behind the multiple ports for FTP.

    It’s not just the multiple ports that are weird–it’s the direction. In non-passive mode, the client asks the server to initiate a connection to…something. In later years the something was always the original FTP client, but it could have been any other TCP server. You could transfer a file between two FTP servers by connecting to each one and directing one to send to the other.

    The FTP protocol was designed before firewalls existed. The FTP server was expected to blindly send data to any TCP port on any host the client asked for. At the beginning of FTP this was a useful network data path optimization, as you’d sit at your workstation and ask an Internet server to transfer data directly to the NFS server that holds your home directory. Today, it’s a glaring security issue.

    The original FTP RFCs arose during era when the notion of a “file” consisting of an unstructured sequence of octets was still divisive and controversial. There were a number of FTP extensions defined (formally or otherwise) to convert structured file formats on the fly as the data passed through the FTP protocol. The only formats that survive today are the “ASCII” and “binary” formats, but back in the day FTP agents could support half a dozen formats each and still not be able to move file A from host B to host C.

  49. > Oh, and if I were calling another number in Cottonwood Falls, Strong City, or Elmdale, all of which shared the same 273-ghij exchange, I could replace the 273 with a different digit (I think it was 9, but might have been 5) that was not used as “g” anywhere in the exchange. This 5-digit dialing was how most people used the phone locally. This too had to go away as part of the evolution of phone numbers.

    A lot of universities seem to still have 5-digit dialing that’s just “fghij” (across a set of exchanges that obviously all have different “f”, and may or may not have the same “de”), and phone numbers are sometimes written as “de-fghij” or “de-f-ghij” (on top of whatever convention for including or not including the area code)

  50. > A lot of universities seem to still have 5-digit dialing

    Yes, with PBXes you can do such things.

    What was weird about this was that it was Ma Bell herself offering the shortcut. I never thought it was unique to that locale; the same general method was probably used in plenty of rural areas until the 80s or so. When Hee-Haw’s Junior Samples advertised the number “BR-549” it resonated with people familiar with such local eccentricities, even if they lived in the Big City where such things were impractical.

  51. With regards to FTP, one thing I’ve read is that FTP was designed before the sockets interface was standardized. Apparently, the idea that a socket connection would be bi-directional wasn’t a guaranteed thing. Given that, FTP was designed around the idea that a system might only support unidirectional sockets.

  52. > With regards to FTP, one thing I’ve read is that FTP was designed before the sockets interface was standardized. Apparently, the idea that a socket connection would be bi-directional wasn’t a guaranteed thing.

    In that case the FTP control protocol makes no sense, as it is clearly bidirectional, carrying both requests and replies over a single connection.

    (I was about to say synchronous as well, except the ABOR command is meant to interrupt transfers already in progress).

  53. “>“You might oughtta go check the mail.”
    I’ve never heard you do that.”

    It’s not a frequent use, but double modals let me express shades of meaning that a single modal won’t. As such, I use it without really noticing I’m doing it. Really weirds out $ROOMMATE. (Though he’s got one that gets me back: “Wanna come with?” “with” is dyadic, dammit.)

    “I’ve been around you when we were both in Austin and your idiolect didn’t seem to move any. But, you know, they say Austin is the lone blue dot in a sea of red; maybe you don’t fully drop back to Jay-in-Texas accent there.”

    And in that era, I hadn’t been out of Texas all that long. Remember, I lived in Houston until I was 41 years old, quite long enough to get very set in my ways. But I feel quite at home in Austin, and have many friends there. It doesn’t feel any less Texan to me, despite the place’s unfortunate politics.

    Zygo: “The CDC ecosystem was a bit of an island.”
    You think? I think the Jargon File’s comment about the Selectric and APL applies here, too: “It was 10 years ahead of its time, where it stayed firmly rooted for the next 20.” I cut my teeth on a CDC 6600 (later upgraded to a 7600), doing BASIC on KRONOS. Talk about a massive waste of compute power.

    Still, I thought there was something in the C standard about not assuming arithmetic was two’s-complement…

    1. >”Wanna come with?” “with” is dyadic, dammit.

      Not necessarily. That usage is slightly marked but not unknown on the East Coast.

  54. > (Though he’s got one that gets me back: “Wanna come with?” “with” is dyadic, dammit.)

    Actually, given the region of the country where this is popular, I suspect it’s the influence of the German verb mitkommen, which has this thing called a “separable prefix” (mit) [which looks to the uninitiated exactly like the preposition spelled the same way]. A German speaker could ask “Möchstest du mitkommen?” or perhaps “Kommst du mit?”. In the latter case, the prefix is separated from the rest of the verb, as there is no other verb present to force them together.

    1. >Actually, given the region of the country where this is popular, I suspect it’s the influence of the German verb mitkommen

      That might explain the occasional sighting here in Pennsylvania as well. Our rural dialects show significant influence from German. Which wouldn’t surprise you even a little if you’d seen the countryside, full of German-style barns even in places nowhere near the Amish and Mennonite settlements in mid-state.

  55. Jay Maynard: “Something just struck me. Would the clear-screen interpretation of FF (^L) be usfl as an explanation of ^L as a spoiler marker on Usenet?”

    Yes, it would. Putting a FF character in the middle of a post would force the newsreader to interpret that as a “new page” and display “— More —“, waiting for you to hit the spacebar. You could then choose to skip being spoiled by hitting “n” to go on to the next post instead of hitting the space bar. At least, that’s how it worked in rn, the first newsreader I used.

  56. > Still, I thought there was something in the C standard about not assuming arithmetic was two’s-complement…

    There is, but if you want to port C code from a 2’s complement machine, you have to audit everywhere it does signed/unsigned casting or passes anything through a union. That code has to deal with two distinct in-core bit patterns that both have the value zero, and the effect of the ~ and – operators on binary data is swapped. If you’re also using Unix API, there’s a lot of signed/unsigned casting (e.g. read() and write() which take an unsigned length parameter and return it in a signed integer) to worry about.

    The compiler can emit extra instructions to make its integer types behave like 2’s complement, but then the customer wonders why they’re buying your expensive and now significantly slower computer instead of a rack full of cheap machines based on the new Intel 80386 chip that can run 2’s-complement code without all the extra clock cycles.

  57. >The CDC ecosystem was a bit of an island. They used 1’s-complement arithmetic which >supposedly gave them some kind of speed or cost advantage, but really just made it stupidly >hard for them to exchange code with the rest of the computing world.

    Yep. Michigan State was a CDC shop when I was getting my CS degree there in the late 70s. The 6500 (Cray’s last design before he left CDC to found Cray) was actually a decent environment for learning assembly language concepts – it was RISC before RISC was a thing.

    One weirdness of CDC’s 1s complement setup was that positive zero and negative zero were different values (word of zeros and word of ones respectively).

  58. >XMODEM, YMODEM, and ZMODEM – developed and used on BBSes. These protocols could pass 8-bit data over a 7-bit link.

    I believe this is mistaken. I wrote implementations of all of those protocols myself. Checksum and CRC, 128-byte and 1024-byte packets, MODEM7, all the weird stuff.

    To the best of my recall, they are all 8-bit protocols. If we needed to use a 7-bit link for some obscure reason, we’d use something more ghastly, like Kermit, instead.

    1. >To the best of my recall, they are all 8-bit protocols.

      I’ll check with Ward Christensen.

      Because I can do that. :-)

  59. @erbo:
    > Putting a FF character in the middle of a post would force the newsreader to interpret that as a “new page” and display “— More —“

    I get a sinking feeling every time I see a “— More —” prompt.

    “You hit the Foobar. The Foobar hits you. The Foobar hits you. — More —”

    “The Foobar hits you. The Foobar hits you. — More —”

    “You die.”

  60. > One weirdness of CDC’s 1s complement setup was that positive zero and negative zero were different values (word of zeros and word of ones respectively).

    I thought this was a weirdness of all ones-complement setups. Is there such a thing as a 1C system where this isn’t the case?

  61. >I thought this was a weirdness of all ones-complement setups. Is there such a thing as a 1C system where this isn’t the case?

    Sorry for the confusion. Having positive and negative zero isn’t unique to CDC’s 1s complement implementation – the implication that it is was bad phrasing on my part.

  62. The C standard (and what it allows may at least be informative as to what is natural or unnatural on various architectures) leaves open the question of whether a given ones-compliment (or sign/magnitude) machine in fact used both possible zero representations, rather than having one as the only used representation (the other being a ‘trap representation’), or both being indistinguishable (normalized in load and store operations, for instance) and therefore lacking a notion of “negative zero” at the abstract level.

  63. Dennis Braden’s notes on UUencoding were very worthwhile, IMO, and now I’m ashamed I didn’t think to mention them.

    Usenet was, of course, littered with UUE content – binaries groups would be filled with sequences of “foobar.tar.lzh (n/18)”, where n went from 0-18. Usenet news was propagated by a network of news servers, and enough of them had a length limit on single posts that large binaries had to be broken up this way.

    (Incidentally, this is also partly why you couldn’t rely on seeing someone’s binary even though they said they posted it, because they posted it in one chunk that proved too large for some servers to handle, or occasionally it didn’t even get off the poster’s computer. Some news servers rejected entire newsgroups for space reasons; the alt.binaries subgroup was often first on the chopping block. Being at one of the big universities with a nice fat news server was a treat. This is also why there’s an “internet backbone”; having lots of server space on the internet and lots of customers did you no good if your gateway to the rest of the world was a net-outhouse that forwarded nothing, so there naturally emerged a “spine” of fat nodes with fat connections that almost never went down. For all its designed resiliency, it’s still easier than its designers intended, to completely isolate large regions of the net with very few cuts.)

    For some reason, rejoining UUE posts wasn’t a universal feature of every UUdecoding program; many of us got good at gluing saved Usenet posts together ourselves, including writing vi / emacs macros or sed scripts to do it for us.

    Note that the subject of a post was just the filename and the part number. This often told the reader next to nothing about what they were getting. People complained. Part 0, then, was for a text description of what was in the binary. That custom seemed to appear during the time I was actively reading Usenet (1989-1994), and part of me even now wonders if it happened only because I suggested it one day… (Sadly, this might not be TEHOK material, unless Usenet archaeology becomes a widespread hobby.)

    It might be worthwhile to expand a bit on Usenet news reading. ISTR there being a lineage – rn, readnews, and trn (threaded readnews) were in there, and I’m sure there were others. trn looked like the news reader of choice for years, in fact; and despite being a tool for ASCII displays, it provided an interface that arguably surpasses even current forum discussion toolkits such as Disqus, WordPress, G+, and even Facebook.

    Gopher, Veronica, and the WAIS network kinda strike me as anticipators of the Web. I never got that far into them, but they may have been commoner knowledge than I realize. (I never got into VAX/VMS, for instance.)

    I recall Kermit being one of the more popular telnet programs. I can’t elaborate on whether it’s worth adding to TEHOK, but other readers might know of something in it that was common knowledge and has current implications.

    TCP/IP dominates, sure, but what about UDP/IP (aka just “UDP”)? Don’t streaming protocols use this still?

    Is PGP worth talking about?

  64. Ian Argent:

    …I find I am no longer able to tolerate one minor background event (the fate of the house pets).

    You mean cats and/or dogs are killed in Puppet Masters? I don’t think I could bear that, either. Thanks for the heads-up. (You may want to see this page for spoiler-laden warnings about movies where animals die or are injured.)

    Nice avatar, by the way. And the same goes for Parallel’s. :-)

    Maybe Have Spacesuit, Will Travel, but it’s rather close to CotG.

    And it seems to be unavailable here anyway. Guess I’ll go with Star Beast (someday), since my father says he’s got it. Thanks again.

    esr:

    …here in Pennsylvania…

    What? I always pictured the headquarters of the Eric Conspiracy as a lugubrious castle in Transylvania. I mean, how could it be otherwise?

  65. And I meant to say “Deron E Meranda’s notes on UUencoding were very worthwhile”. Sorry to miss that in my proofreading run.

  66. “[trn] provided an interface that arguably surpasses even current forum discussion toolkits such as Disqus, WordPress, G+, and even Facebook.”

    Obvious rejoinder: these aren’t [intended to be] discussion toolkits. WordPress is relatively innocent on that score, in my impression, as it’s trying to be a website/logging platform, not a discussion toolkit. Facebook, OTOH, appears particularly guilty of trying to control and steer rather than enable discussion.

  67. Well, okay. But given the intent-less pursuit of perfucktion that is phpBB, one of the most widespread and bad forum packages out there, my habitual thinking is forum software is as forum software does. :-D

    To answer Jorge’s earlier question: I grew up on a literal farm in Texas, about a half hour from Austin by Texan-driven SUV, and will say that King of the Hill struck me as the best irony: one of the most realistic shows on television at the time was a cartoon. Mike Judge captured that part of Texas about as well as he captures the California tech culture in Silicon Valley. (Credit to the co-founder Greg Daniels as well; whenever I see his name in the writing / directing credits on anything, it’s a must-see for me.) It’s not that surprising; last I checked, Judge lived in south Austin – about 45 minutes from my farm.

  68. re: FTP: It wasn’t uncommon as late as ten years ago (maybe still, I don’t know) to find network printers that would accept random incoming ftp data connections and print whatever they got.

  69. > network printers that would accept random incoming ftp data connections and print whatever they got.

    It’s still common for network printers to accept random incoming connections on port 9100 (That’s the default for the “JetDirect” network printing protocol; 3-port JDs also accepted connections on 9101 and 9102 for the 2nd and 3rd parallel ports respectively) and print whatever they get. Those aren’t “FTP data connections” per se, but if you did
    PORT 192,168,1,50,35,140
    to specify you wanted the file transferred to 192.168.1.50:9100, you absolutely could use FTP to ask a server to send a file to a printer.

  70. > a given ones-compliment (or sign/magnitude) machine in fact used both possible zero representations, rather than having one as the only used representation (the other being a ‘trap representation’), or both being indistinguishable (normalized in load and store operations, for instance) and therefore lacking a notion of “negative zero” at the abstract level.

    …or both. C compilers can emit different instructions depending on whether the operands are signed or unsigned. 2C machines do this for the inequality operators (<, >, <=, etc) so -1 < 1 but ((unsigned)-1) > ((unsigned)1) because < is a different machine instruction depending on the types of its arguments. On 1C machines this also happens for == and !=, e.g. 0U != ~0U but ((int)0U) == (int)(~0U).

    If you have a trap value on a 1C machine then you have to give up one of INT_MAX or INT_MIN, which throws a differently-shaped spanner into the works of some production C code. Arguably it’s a much, much smaller spanner than having a word length that is not an integer multiple of 8 or 9 bits. CDC threw a lot of spanners at C programmers.

  71. Both? You can’t both have a trap representation and have both representations, equivalent or not, be valid. I don’t know what you think I was describing other than three mutually exclusive possibilities.

    It also makes little sense to say “give up one of INT_MAX or INT_MIN” – the range would not include -2^N, but INT_MIN would in that case be defined as -2^N+1, and there’s no equivalent notion of losing a maximum value.

  72. Also unsigned types have nothing to do with anything I said – the curve ball with *those* is that except for unsigned char (and character types are their own can of worms), they can have padding bits such that e.g. UINT_MAX == INT_MAX – or less.

  73. esr:

    Dick went crazy; Heinlein had a circulatory problem … which was eventually surgically corrected (both events were at one time fairly common knowledge in SF fandom).

    How about writing “Things Every SF Fan Once Knew”, then? Ha, ha, only serious. O.K., half-serious.

    Paul Brinkley:

    Thanks for your reply. I didn’t know you were Texan; so there are at least two Texans in the A&D community. Say, are there many Texans who prefer to cook their barbecue with propane, or does Hank do that just because of his work? (Given Eric’s love of meat, I assume he won’t mind this digression. ;-P)

    Jay Maynard:

    Sorry, but I read a couple of your comments imagining your voice and failed to learn whatever lesson I was supposed to learn. :-(

    What I did notice while listening to your voice is that it resembles David Cross’.

  74. >Both? You can’t both have a trap representation and have both representations, equivalent or not, be valid.

    Couldn’t you have an ADD and an ADTNZ (ADd and Trap Negative Zero) instruction, or a flag in a control register that controls whether negative zero is treated as a trap value (or a flag that controls normalization)? I don’t know if any actual one’s complement machine did this, but it’s a way to have “both”.

    I think what Zygo was getting at in taking about unsigned types was that signed arithmetic instructions might trap on all ones / negative zero, while unsigned arithmetic instructions would treat all ones like any other value.

  75. > Facebook, OTOH, appears particularly guilty of trying to control and steer rather than enable discussion.

    I’m starting to get a bit angsty at the number of that are dropping comments or trying to present only one side of it.

    IMDB shut down it’s fora. Several other sites have done so as well.

    Twitter is killing itself, Facebook needs to be shot once in the back of the head with a small caliber pistol.

    The internet was supposed to be participatory. Too many f*king peasants.

    1. >Facebook needs to be shot once in the back of the head with a small caliber pistol.

      Large-caliber, please. In that case nothing less than a viscerally satisfying fountain of gore will do.

  76. I don’t use Facebook and don’t want to; but if you guys are implying that Google+ is better, let me complain about it: I tried it and it wouldn’t stop nagging me with email notifications, even though I disabled them several times and with two different methods.

    Much more importantly, Google has already gotten alarmingly powerful with its dominance in other departments. Why give them the supremacy in social networking as well?

  77. @ESR:

    That s*t is toxic waste. I don’t want any in the *environment* and more importantly on me.

    @Jorge:

    I have, somewhere in my Box Of Stuff From Years Gone By a bunch of Anarch! A journal of Desire Armed! tabloids, and either in one of them, or in a flyer (in that same box) is a cartoon to the gist of which is :

    People ask, if we get rid of Government, what would replace it with.
    If you have a cancer cut out, what would YOU replace it with?

    This is 2017, We have figured out how to make distributed source code control systems that scale to heck and back, but we rely on single institutions with single points of failure for “social networking”?

    F*K mate, a bunch of hackers back in what, 1995/6, built Type II mixmaster remailers out of perl and some bailing wire during a long lunch break? Hacked the cr*p out of (I can’t remember which) Mailman or the crappy Perl mailing list software and build the Cypher Punks Distributed Remailer while pounding Vodka. At least I think that one Ivan in Oklahoma was (do the Type II remailers count as something “Every Hacker Knew?”). Usenet, IRC, and the WWW are all massively distributed systems that we figured out how to find stuff on. Can’t be *that* much harder with “Social Media”.

    You want a better social networking system? Figure out what is wrong with Diaspora, then either fix it, or build a better system. Build it so a 14 year old can use it, and then tell them that their parents aren’t there.

    Hmm…There are three problems here:

    1) Finding people
    2) Message passing.
    3) Profit.

    The problem really is #3.

  78. @William O. Blivion: Build it so a 14 year old can use it, and then tell them that their parents aren’t there.

    I think we already have that. It’s called Facebook.

    >Dennis

  79. Random thoughts on how I’d build a distributed social networking system:

    1) The system itself does not try to be a single cohesive social network. At its base, it is a standard for user profiles that any network can use, such that profiles can exist independently of any network, and that one profile can be a member of multiple networks.

    2) The system has fine grained privacy controls on what should be shared with another user or social network, but makes no attempt to control resharing, other than to allow users to attach non-binding usage requests to shared information: users are to be encouraged to think about who they trust, and people managing social networks using the protocol are encouraged to have privacy policies and honor requests to restrict resharing, but if your information ends up in the clear on a device someone else has root on, there’s no way to guarantee it won’t be reshared however you design your protocol, so the protocol doesn’t try to make such guarantees.

    3) The base of the system is a very basic server running on a laptop or mobile device and maintaining a single user profile. Out of the box, it just functions as an electronic business card type system: two people become acquainted in meatspace, select what information they want to share with each other, and use NFC or whatever convenient channel their devices share to exchange that information. Just as with a business card, a contact can reshare information you give them. The mobile server also has the capability, off by default, to make selected information available to anyone connected to the same network (computer, not social), with fine grained controls for which networks and at what times to do this. This could be used for things like digital name tags at conferences: everyone connected to the WiFi SSID being used for the conference shares their name and picture, for instance.

    4) The next component is a desktop application meant to act as the server for a household micro-social-network, and as backup/overflow for the profiles hosted on mobile devices owned by members of the household, or even as the primary server for somebody’s profile that just uses a desktop and never leaves their house much. The mobile server is generally set up to sync with the desktop server whenever it is on the household WiFi network, and maybe at other times as well (more on that later). If parents have root on their kids mobile devices, parental controls would be implemented at this level. (Unfortunately, I can’t think of a robust way of doing parental controls without root on the mobile device).

    5) The next component is a program built for use on public servers. It serves the function of hosting a social network (anything from a special-interest mailing list or forum type of community to a big corporate-run thing like Facebook, Twitter, or LinkedIn), but also of providing a public point of access for the mobile and desktop servers. One of the problems this scheme potentially runs into is that most home users don’t have their own DNS domain, and on top of that mobile devices and laptops aren’t even always on the same network, so pushing people’s status updates and such to their friends, or syncing their mobile and desktop servers, is potentially problematic, given that each profile is primarily maintained from a phone, laptop, or home desktop. This attempts to fix that: the servers for the social networks a profile is part of act as relays to that profile’s contacts and between devices holding that profile’s information (such as between a person’s mobile and desktop servers, if configured to do this). The mobile and desktop servers keep a list of social networks that a user is a part of and are responsible for checking with those networks periodically (as the servers for those networks are not necessarily capable of opening a connection with the mobile/desktop server due to the DNS and network-hopping issues mentioned above). Profile information that a user has shared with a social network is cached or hosted on the network’s server directly, information not shared with the network is sent under end-to-end encryption and merely relayed in encrypted form (or perhaps the server just brokers a connection between two devices and leaves them to communicate P2P). This means you could share information with a friend on a social network without sharing it with the network (modulo the usual disclaimer that you can’t really prevent the friend resharing it, so chose the people you trust carefully). A member of a social network might share as little of their profile information as the network requires to establish an account (the network just acts as a relay or connection broker between them and their friends), or they might share everything (the network acts as a host for their profile, like Facebook or Twitter today), according to their choice.

  80. > Large-caliber, please…

    Having actually used Facebook, and given the way it ends up installed as manufacturer bloatware on phones half the time (not removable without root which may or may not be available if you select manufacturers poorly), and that I’m currently having system issues that seem to be related to its integration with the OS…

    I will accept nothing less than recomissioning one of the Iowas and using the main guns to do the job. For bonus points, dredge up the wreck of the Yamato, restore an 18-inch naval rifle to operation, and use that.

  81. @Jon Brase

    Precisely, when the whole Android thing came out I did not anticipate I will have to fight preinstalled bloatware with dodgy rootkits that make my J5 crash-prone, because I keep running out of storage space on a 8GB phone and Samsung helpfully went out of their way to disable the Android 6 feature allowing you to treat the SD card as internal memory… I mean, it even has developer options if you tap the serial number 143 and half times but god forbid they would give you root over your own device at least there! It’s not exactly that predicted free-as-in-freedom Linux-world-domination experience…

  82. @William O. Blivion: Their parents ARE on facebook. Parents think it’s cool.

    And they promptly act like 14 year olds. Age != maturity.

    I just tell folks “Facebook is a potentially infinite time sink. The good part is that everyone you ever knew is one it. The bad part is that everyone you ever knew is on it.”

    (I got a friend request not long back from a woman who left me to latch onto someone else. He made the mistake of marrying her. She later left him. We are now old war buddies who can hoist a beer and talk about the conflict. Getting a friend request from her was a WTF? moment.)
    ______
    Dennis

  83. > It’s not exactly that predicted free-as-in-freedom Linux-world-domination experience…

    Funnily enough, it’s the one thing that gives me some patience with the Trump-eters. Android is the Donald Trump of mobile OSes (in that it’s a mercy we didn’t get any of its major competitors as the dominant smartphone OS, but it is technically and morally unqualified for its position, and anybody that advocated it has some ‘splaining to do), and I fell for it hard earlier on when I should have known better, so I don’t have too much room to judge those who have fallen for the Donald Trump of presidents hook, line, and sinker (and likewise, ought to have known better).

  84. >Large-caliber, please. In that case nothing less than a viscerally satisfying fountain of gore will do.

    Enthusiastically seconded. 10mm Auto, loaded to at least 1500fps. I’d say .454 Casull, but we want “fountain of gore”, not “pink mist”.

  85. In re social medi networks – it needs to be able to be used by non-techies without much technical support (it needs to Just Work), and it needs to provide someone with a metric fuckton of money. Twitter is having problems with both of those aspects, thus sic transit gloria Twitter.

    Anything else is gravy or supports the mission statements above.The distributed system proposed above by Jon Brase fails both (by design in point 2 I think).

    (Also, it has to beat the incumbents’ network effects; this is not impossible, but very hard)

  86. > It also makes little sense to say “give up one of INT_MAX or INT_MIN” – the range would not include -2^N, but INT_MIN would in that case be defined as -2^N+1, and there’s no equivalent notion of losing a maximum value.

    There is if you have to talk to code running on the 2C machine next door. A 2C machine can trivially read 1C signed data and store its equivalent numeric value in a 2C int of the same size. Any time 2C’s INT_MIN lands on the 1C machine, the 1C machine can’t handle it with a native integer type of the same size. 1C can’t hold 2^N unique signed values in 2^N bits. You’d need a 2C math emulation library (possibly buried in the C compiler) to store signed values in nominally unsigned ints, or you’d use the next larger word size and keep 1C, or special-case 2C INT_MIN in some other way, but none of those options was transparent or free.

    > signed arithmetic instructions might trap on all ones / negative zero, while unsigned arithmetic instructions would treat all ones like any other value.

    Yes…though I don’t recall any practical examples of traps ever being useful on CDC machines. The CPU was pipelined but the trap handling was not, so you’d know your program had computed invalid results, but have no idea which ones those might be.

  87. Just for the sake of absurd humor, on an infinite-word-width machine with fixed-point arithmetic (with infinite integer bits and infinite sub-integer bits), you don’t need to choose between ones complement and twos complement.

    It is well known that 0.9999… == 1, and that, equivalently, in binary, 0.11111… == 1

    So, if, on our infinite precision machine, we extend two’s complement so that all integer bits 1 is -1 (…1111.0 == -1), we then get the result that:

    …1111.0 + 0.1111… == …1111.1111… == 0

    In other words, all ones represents 0, just like in one’s complement. In fact, I believe that this would preserve the one’s complement property that inverting all bits gives you the same number with the sign flipped, so while I’m suggesting such a machine purely tongue-in-cheek, one’s and two’s complement do become completely identical on such a machine, and the equality of all ones to zero isn’t just a one-off result.

Leave a comment

Your email address will not be published. Required fields are marked *