[HN Gopher] The Origin of Emacs in 1976
___________________________________________________________________
The Origin of Emacs in 1976
Author : rhabarba
Score : 197 points
Date : 2024-07-24 00:49 UTC (22 hours ago)
(HTM) web link (onlisp.co.uk)
(TXT) w3m dump (onlisp.co.uk)
| ggm wrote:
| On FreeBSD /usr/ports/editors/teco still works if you want to try
| your name and $ to see what awesome edit happens (my name
| starting with g I think means its g(lobally) applied)
|
| Interesting to see '76 email formats had To: and CC: but not
| Subject: and Date: info was rolled into what now we might call
| the Envelope, projected into the header.
|
| I used EMAS and Vax/VMS based email in '79 which was sufficiently
| second-system to have a standard to implement against and
| Type:Value was in, with Date: and Subject:
| Blackthorn wrote:
| Also if anyone wants to dip your toes into teco, we're
| sufficiently full circle that there's an emacs implementation
| of it you can use! https://github.com/mtk/teco
| ggm wrote:
| It's emulated turtles all the way down.
| gumby wrote:
| I used to use meta-altmode (a non-ascii key on the KTV) to
| enter the minibuffer (note: _not_ the region under the mode
| line) that accepted raw TECO and interpreted it directly.
|
| And to be more extreme: you could actually write small
| assembly routines and run them in the registers (the first 20
| addresses in the PDP-10 address space were the registers --
| super fast bc they were implemented with semiconductors
| rather than core!). That was hardcore and I only did it once
| or twice, just for fun.
| Blackthorn wrote:
| I'd love to learn enough TECO to be able to do exactly that
| with Emacs's teco mode. I do it with ex (through viper) all
| the time. At this point I wonder if my brain has ossified
| to the point that it's incapable of learning a new language
| syntax.
| whartung wrote:
| My Pooh brain, especially today, goes into cognitive overload
| trying to keep track of an invisible point in a character based
| text editor.
|
| Line editors are much less of a problem. In these I typically
| did not insert text in the middle of a line, I simply
| changed/substituted text in the middle of the line. This helps
| maintain context in contrast to moving a point around.
|
| Fortunately, my TECO exposure was mostly tempered through
| VTedit, a screen oriented macro set for TECO on the PDP.
| Couldn't escape it completely, but it helped reduce the load in
| my challenged, tiny brain.
|
| By the time I moved to VMS, they had switched to EDT. Much more
| accessible.
| ggm wrote:
| Yea, I walked into the SOS room day one of my degree and so
| learned SOS and Pascal instead of LISP and TECO. I do
| sometimes think I chose the wrong room. But your point about
| the point is well made, I think the DEC-10 TECO had a way to
| draw the current line and show where the point was, but it
| was very inferior to have to do it. Like chess wizards you're
| meant to carry an image of the code in your head at all
| times. I tried teco, couldn't entirely cope.
|
| SOS led naturally to ed in due course. I did learn emacs, But
| never really took to it. Now, I run my daily work log in org
| mode and do nothing else in it, but it is very good as a
| massively over-engineered multi-window table editor.
|
| Charles Forsyth (York) wrote a macro for ed which took the
| point, redrew the 24 line vt00 display to show the lines
| around it (12 above 11 below) and put you back where you
| were. He said it made ed as good as vi, and on the baudrate
| of the day who am I to disagree?
| whartung wrote:
| On the Cyber running NOS, we had XEDIT. And similar to your
| story, I routinely dumped 10 lines of context after each
| change. Whatever that command was, was hard coded into
| muscle memory to the point it was mostly automatic.
|
| The other nice feature was that you could do quick in place
| edits from the command line. Combination of ed and sed.
|
| Another aspect that impacted TECO on the PDP was the
| concept of paging the file in. The machine was limited
| enough that you as a user were responsible for swapping
| parts of the buffer in and out, which, while usable, was
| not a good user experience.
|
| When loading a large file TECO/vtedit would prompt "loading
| file xxx.yyy slowly". And it was. In the labs, my friend
| and I would commandeer multiple terminals, with one of them
| being our file loaded in the editor. We'd constantly write
| the file out, but never exit.
|
| And by "large file", I'm talking a 35K byte source file.
|
| It was a different time, to be sure.
| kragen wrote:
| if you mean unix ed, ed doesn't have macros. maybe it was
| ex?
| TheOtherHobbes wrote:
| One of the reasons TECO worked as it did is because
| baudrate limitations were unimaginable by today's
| standards.
|
| Text would appear character by character, so it would take
| a good few seconds to show 24(!) lines of code.
| brucehoult wrote:
| > VTedit
|
| At Waikato university a student, Ivan Piacun, wrote "vted",
| also a set of macros for TECO, on the PDP-11/70. I would say
| it was what most people used until the switch to VAX.
|
| I tracked Ivan down on LinkedIn a few months ago. He says
| when he wrote "vted" he had absolutely no knowledge of other
| similar efforts, or of either emacs or vi, both of which
| existed (on the other side of the world) a couple of years
| earlier.
|
| Everyone worked in a silo in those days.
|
| You might eventually see something in BYTE (though it
| focussed on microcomputers) or Dr Dobbs (ditto) or Wireless
| World. Or something might make it ono a DECUS tape. But
| mostly you were just completely isolated if you lived on an
| island in the South Pacific Ocean, as we did.
|
| I was happy with EDT, never got to like TPU's "Eve", though I
| didn't use it for long because I graduated ...
|
| ... graduated to a company that used DG MV10000 with AOS/VS,
| which had an even worse clone of TECO called SPEED.
|
| There must have been a better editor, though I think still a
| line editor, but I have absolutely no memory of what it was
| called or how it worked!! I remember having to use SPEED for
| some things, but not most of the time. Maybe on very large
| files.
|
| I was writing programs in PL/I and also Postscript on that
| machine. I hooked the brand new Apple Laserwriter to the
| MV10000, something both DG and the Apple dealer said was
| impossible, and used it, at first, mostly to replace an HP
| pen plotter to make diagrams and graphs to physically paste
| into gaps left in hard copy "camera ready" output from an IBM
| DisplayWriter word processing system.
| ggm wrote:
| EDT had rubber condom overlays for the Vt100 so you could
| know what numberpad key to use for magic edit, and the
| "gold" key which I thought was a superbad name for Meta.
| cafard wrote:
| It seems to me that used SPEED in a complicated program +
| macro + dunno what to inspect system and error logs on
| AOS/VS.
|
| The full-screen editor was SED, which I remember as being a
| bit less odd than vi, but maybe because I encountered it
| first.
| brucehoult wrote:
| Yeah. I just found manuals for both of them!
|
| http://www.simulogics.com/archive/public/docs/dg/sw/os/ao
| s/0...
|
| http://www.simulogics.com/archive/public/docs/dg/sw/os/ao
| s/0...
|
| And dozens and dozens of other old DG manuals.
|
| And an online Nova simulator, and binaries for
| downloadable DG simulators apparently based on SimH
| (which I thought did PDP/ VAX).
| lkrubner wrote:
| About this: To: CBF at MIT-AI, EAK at MIT-AI,
| ED at MIT-AI, MOON ay MIT-AI
|
| Does anyone know if this is literally how they wrote email
| addresses in 1976? Instead of using the @ symbol they typed the
| word "at"?
|
| I realize this was before DNS was invented, so I am not surprised
| by the lack of TLD.
| gumby wrote:
| Wow, I know all those people on that recipient list!
|
| Yes, " at " was still in use. ISTR typing '@' but this was a
| long time ago (I didn't get to the AI lab until '78 by when
| EMACS was well entrenched).
|
| This was pre TCP, pre RFC 733, pre DNS etc. I don't remember if
| mail already had its own transport or if mail was still a
| special mode of the FTP protocol. I think that was still being
| argued over.
| hibbelig wrote:
| UUCP?
| kragen wrote:
| mit-ai was running its, not unix, and there wasn't even a
| port of unix to the pdp-10 at the time. moreover uucp
| addresses are of the form host!user rather than user@host
| ForOldHack wrote:
| It was more of host_route!hop2!hop3!etc!user, You kept a
| list of routes on your terminal.
|
| Here is a very early map of the routers.
|
| https://groups.google.com/g/net.general/c/u1dxxNcTIX0/m/m
| HMW...
| kragen wrote:
| yeah, eventually, but in 01976 uucp was just getting
| started. even in 01978 i don't think they had a well-
| defined network map, though they said uucp already
| connected over 100 unix machines in the 7th edition
| manual. that post is from 01981
|
| unfortunately 'show original message' is grayed out, so i
| can't actually see the map
| dredmorbius wrote:
| To clarify on account of kragen's idiosyncratic avoidance
| of uppercase, "its" is "ITS", the Incompatible
| Timesharing System, developed by MIT's AI Lab:
|
| <https://en.wikipedia.org/wiki/Incompatible_Timesharing_S
| yste...>
| p_l wrote:
| UUCP was Unix only, and was only getting started around
| that time with more copies of Unix showing up outside of
| Bell Labs
| mrspuratic wrote:
| UUCP used /bang paths/ where you had to know (one of
| possibly several) routes to the recipient's system...
|
| http://catb.org/jargon/html/B/bang-path.html
| DonHopkins wrote:
| Who needs UUCP when you have MLDEV!
|
| https://github.com/larsbrinkhoff/mldev
|
| >MLDEV
|
| >The "ML Device" protocol is a remote file system invented
| for the PDP-10 MIT Incompatible Timesharing System. It may
| have been the very first transparent networking filesystem.
|
| >Build: Install libfuse-dev, then type make.
|
| >Usage: Create a mount point directory, and then mount an
| ITS file system like this:
|
| >sudo ./mount.mldev <hostname> <mountpoint>
|
| What are some early network file systems?
|
| https://retrocomputing.stackexchange.com/questions/13709/wh
| a...
|
| >I know it's always hard to define an exact first, so I'll
| just ask about early network file systems. To be more
| specific, I'm wondering about file systems that
| transparently present directories and files as if they were
| local. I don't consider FTP or similar mechanisms to be
| candidates.
|
| >For some time it has been my suspicion that the ITS
| "MLDEV" facility was very early ("the first"), but I never
| had any facts to back it up. I do have a file timestamped
| November 1972 that gives us an upper bound for the
| introduction of the facility. On the MIT-AI PDP-10, it
| provided an ML device (hence the name) which worked much
| like the local DSK device except the data was accessed
| through MIT's ARPANET IMP. MIT-ML of course had an AI
| device.
|
| >Present evidence is that ITS had a very early networked
| file system no later than 1972.
|
| >ITS has had a facility called the "ML Device", or MLDEV,
| for a long time. The name probably comes from a time when
| the users of the older more established computer called AI
| wanted access to files on the computer called ML. The
| "device" part is because ITS files are named by four parts:
| device, directory, and two file names. To access ML files
| from AI, the device name is ML. Conversely, from ML the AI
| device is used.
|
| >To date this facility, we can check timestamps from backup
| tapes. The earliest file called MLDEV is from July 1975.
| However, if we examine the source code for an earlier ITS
| version we see that it has built in ML and AI devices that
| when accessed starts a program called SYS; ATSIGN OTHER.
| Disassembling this file we can see that it indeed is
| accepting file operations and sends information across
| ARPANET. The earliest file with that name has a timestamp
| from November 1972.
|
| >We know from RFC documents 342, 344, and 366 that AI and
| ML were first put on the ARPANET in May-June 1972. So MLDEV
| could not have been in use before 1972.
|
| List of Chaos application protocols:
|
| https://gunkies.org/wiki/List_of_Chaos_application_protocol
| s
| gumby wrote:
| The MLDEV was quite convenient for talking to the other
| ITS machines, as they just lived in the filesystem no
| differently from local files.
|
| Among the many hackerish features of ITS was allowing a
| user space process to act like a device, not just for a
| filesystem but as a TTY, which allowed a lot more kinds
| of terminals to be supported than would fit in the
| monitor (kernel in today's parlance).
|
| All in the early 70s.
| DonHopkins wrote:
| CRTSTY was kind of like "screen", in that it ran a
| virtual terminal through something like a pseudo TTY. The
| terminal interpreted SUPDUP protocol into any terminal
| type that CRTSTY supported. And you could disconnect and
| reattach to it later to restore your processes, to change
| terminals or survive a flakey modem or ARPA connection
| dropping out.
|
| But even without CRTSTY, ITS gave everyone the ability to
| reattach to their processes after they got disconnected,
| and even pass processes like Lisp interpreters and Zork
| games around from user to user to share like a joint, by
| detatching and reattaching them to different TTYs!
|
| https://github.com/PDP-10/its/blob/master/doc/_info_/its.
| pri...
|
| >VIII.B. CRTSTY
|
| >For display terminals which are not handled directly by
| the system there exists a program called CRTSTY. This
| provides the software support to permit these terminals
| to take advantage of their display characteristics. Among
| the terminals supported by CRTSTY are: ADM3's, Concept
| 100's, Hazeltine 1500's, Perkins Elmer FOX's, Datamedias,
| Control Data Corporation 713's, and a host of others. You
| should try :INFO CRTSTY and :INFO TERMS to see if your
| terminal is included. If it isn't, the maintainers of
| CRTSTY are usually willing to help you add it. In the
| CRTSTY section of INFO the information you must provide
| to have a new terminal supported is listed. You can
| communicate with the maintainers of CRTSTY by sending
| mail to BUG-CRTSTY.
|
| https://github.com/PDP-10/its/blob/master/doc/humor/jargo
| n.6...
|
| >SUPDUP v. To communicate with another ARPAnet host using
| the SUPDUP program, which is a SUPer-DUPer TELNET talking
| a special display protocol used mostly in talking to ITS
| sites. Sometimes abbreviated to SD.
|
| https://datatracker.ietf.org/doc/rfc734/
|
| >NWG/RFC# 734 MRC 07-OCT-77 08:46 41953 SUPDUP Display
| Protocol Page 1 Network Working Group Mark Crispin
| Request for Comments 734 SU-AI NIC 41953 7 October 1977
|
| >SUPDUP Protocol
|
| >This document describes the SUPDUP protocol, a highly
| efficient display telnet protocol. It originally started
| as a private protocol between the ITS systems at MIT to
| allow a user at any one of these systems to use one of
| the others as a display. At the current writing, SUPDUP
| user programs also exist for Data Disc and Datamedia
| displays at SU-AI and for Datamedias at SRI-KL. The
| author is not aware of any SUPDUP servers other than at
| the four MIT ITS sites.
|
| >The advantage of the SUPDUP protocol over an individual
| terminal's protocol is that SUPDUP defines a "virtual" or
| "software" display terminal that implements relevant
| cursor motion operations. The protocol is not built on
| any particular display terminal but rather on the set of
| functions common to all display terminals; hence it is
| completely device- independent. In addition, the protocol
| also provides for terminals which cannot handle certain
| operations, such as line or character insert/delete. In
| fact, it is more than this. It provides for terminals
| which are missing any set of features, all the way down
| to model 33 Teletypes.
|
| >The advantage over the TELNET protocol is that SUPDUP
| takes advantage of the full capabilities of display
| terminals, although it also has the ability to run
| printing terminals.
|
| https://its.victor.se/wiki/_media/ai_wp_235.pdf
|
| >The SUPDUP protocol [Crispin 77] is a highly efficient
| display telnet protocol. The advantage over the TELNET
| protocol is that SUPDUP takes advantage of the full
| capabilities of display terminals, although it also has
| the ability to run printing terminals. When you use the
| SUPDUP protocol, you do not need to tell the remote host
| which you are connecting to what type of terminal you
| have or what the terminal's capabilities are. The host
| you are SUPDUPing from handles the actual display support
| for your terminal.
|
| >Additionally, SUPDUP defines a network graphics protpcol
| [Stallman 78] which makes it easy for network hosts to
| draw pictures along in addition to text.
|
| SUPDUP Graphics Extension:
|
| https://github.com/PDP-10/its/blob/master/doc/sysdoc/grph
| cs....
|
| You didn't need CRTSTY to implement the SUPDUP protocol,
| but CRTSTY translated SUPDUP to standard terminal escape
| sequences, and provided buffering and optimization. Lisp
| machines and Knight TVs had their own SUPDUP terminal
| programs, and I made one for my Apple ][ in Forth.
|
| SUPDUP had a line saving extension that RMS hacked into
| ITS Emacs, so it can stash lines on the screen in local
| memory before overpainting them, then almost instantly
| pop them back on the screen later, so you can scroll back
| and forth through text really fast at 300 baud (plus
| Devon McCullough made ZipMod with Huffman encoding to
| make it even faster on top of that):
|
| https://news.ycombinator.com/item?id=15539983
|
| I wrote a terminal emulator for the Apple ][ + Videx 80
| column card in FORTH and reverse polish notation 6502
| code, that supported SUPDUP including the line saving
| protocol that RMS hacked into ITS and EMACS (%TDSAV
| %TDRES), so Emacs could stash lines on the screen in a
| memory buffer (on the Apple's bank switched RAM card) and
| restore them later to paint the screen quickly when
| scrolling back and forth. (That was great at 300 baud!)
|
| This is just the part of it that interprets SUPDUP codes
| -- layered on top of the rest of the terminal emulator
| that emulated H19 (VT52 + character/line insert/delete):
|
| http://www.donhopkins.com/home/archive/forth/supdup.f
|
| https://news.ycombinator.com/item?id=37973838
|
| At 300 baud over a congested ARPA connection, we had a
| lot of time to think about how to optimize terminal
| emulation while waiting for the screen to repaint...
|
| When James Gosling later implemented his Unix version of
| Emacs, he created a super-hot screen update algorithm
| that automatically took into account the capabilities of
| terminals and the length of their escape codes and
| padding required (some slow terminals needed padding when
| performing line/character insert/delete operations,
| otherwise they would miss characters. It used dynamic
| programming to figure out the optimal way of updating the
| screen, which was really great at low baud rates like 300
| or 1200 baud.
|
| Read the paper and display.c code I linked to in the
| above linked comment, and see the wikipedia page on
| dynamic programming:
|
| >James Gosling's Emacs screen redisplay algorithm also
| used similar "dynamic programming techniques" to compute
| the minimal cost path through a cost matrix of string
| edit operations (the costs depended i.e. on the number of
| characters to draw, length of the escape codes to
| insert/delete lines/characters, padding for slow
| terminals, etc).
|
| [...]
|
| https://news.ycombinator.com/item?id=37974319
|
| The comments in this old PDP-10 SUPDUP code [5] are
| hilarious!
|
| SUPDUP on ITS was so smart and opinionated, it had its
| own ideas about who was a loser and who was a winner, how
| to figure it out by checking INQUIR entries and
| relationships, and who it should never or always hassle
| about net-hopping (hopping through a PDP-10 over the net
| just to use it as a glorified terminal emulator).
|
| It never hassled gumby or cstacy (because they were free
| to do whatever they wanted to, like flushing whiny
| annoying over-entitled alcoholic science fiction writers
| [1] [2] [3] [4]), but always hassled rms (because it was
| usually an imposter logging in as rms with password rms
| just to net hop through the system.)
|
| [...] ;;; these people aren't hassled
| wintab: irp x,,[gumby,alan,cstacy,cent,devon,dph,oaf,mly,
| jtw,jnc,klotz,cbf,sra,ed,swa,map,jbvb]
| sixbit/x/ termin winlen==.-wintab
| ;;; These people are always hassled lostab: irp
| x,,[tk,hewitt,rms] sixbit/x/ termin
| loslen==.-lostab
|
| [...]
| throwanem wrote:
| I'd love to see what would hang off those footnote
| references, but I don't suppose I could say I blame you
| for leaving them dangling.
| DonHopkins wrote:
| It's all at a longer post I linked to here:
|
| https://news.ycombinator.com/item?id=37974319
|
| [1]
| http://www.stormtiger.org/bob/humor/pournell/story.html
|
| [2] https://news.ycombinator.com/item?id=15206151
|
| [3] https://news.ycombinator.com/item?id=37723853
|
| [4] https://news.ycombinator.com/item?id=37780515
|
| [5] https://github.com/PDP-10/its/blob/master/src/sysnet/
| supdup....
| rhabarba wrote:
| > Among the many hackerish features of ITS was allowing a
| user space process to act like a device, not just for a
| filesystem but as a TTY, which allowed a lot more kinds
| of terminals to be supported than would fit in the
| monitor (kernel in today's parlance).
|
| I begin to understand where Plan 9 got that "other" kind
| of inspiration.
| gumby wrote:
| uucp would not be written until years later.
| DonHopkins wrote:
| Any idea why there were @@'s in a lot of the messages? If you
| left @ as your TIP intercept character you had to type it
| twice, but only one @ would end up being sent. Those @@'s
| were in the email archive, and I can't remember ever seeing
| that before.
|
| Speaking of intercept characters, did you know Will Crowther,
| one of the authors of Adventure, wrote the "Users Guide to
| the Terminal IMP"? You're in a maze of twisty little IMPs!
|
| https://apps.dtic.mil/sti/tr/pdf/ADA014398.pdf
|
| Don Woods, the other author of Adventure, is a great
| PostScript programmer! I worked with him at Sun on NeWS, but
| earlier he was DON@AI, so occasionally he'd get weird email
| intended for me.
|
| http://www.icynic.com/~don/
|
| Here's his Spider card game for NeWS, entirely written in
| PostScript:
|
| https://www.donhopkins.com/home/archive/NeWS/news-
| tape/fun/s...
|
| Maybe you could convert it to run in a laser printer, but it
| would sure use a lot of paper!
| gumby wrote:
| > Any idea why there were @@'s in a lot of the messages? If
| you left @ as your TIP intercept character you had to type
| it twice, but only one @ would end up being sent.
|
| I don't remember either. Could be an artifact of all the
| file translation over the years, or even early cruddy OCR.
|
| None of the folks in that list would have been using TIPs
| -- ^R mode was added after KTVs were deployed.
| chimpanzee wrote:
| >> The reason the mail looks funny is that it predates the
| Internet; some of what you see is Arpanet mail, and some (like
| the first one) is internal ITS mail.
|
| Two more curiosities:
|
| - The sender's address uses two at-signs, like NAME@@DOMAIN.
|
| - There are typos where "at" is misspelled "ay". Glad we don't
| have to deal with that.
| bitwize wrote:
| > - There are typos where "at" is misspelled "ay". Glad we
| don't have to deal with that.
|
| Ah yes, you'd see those coming out of the ARPANET site run by
| Arthur Fonzarelli. He also used to moderate rec.motorcycles.
| llm_trw wrote:
| >- The reason the mail looks funny is that it predates the
| Internet; some of what you see is Arpanet mail, and some (like
| the first one) is internal ITS mail.
|
| Looking at https://datatracker.ietf.org/doc/html/rfc733 @ was
| already used behind the scenes in its current meaning, we're
| probably seeing a nicely human readable version of the emails
| sent.
|
| Note I did not have the time to read the whole RFC and the
| above may be wrong.
| ForOldHack wrote:
| When I started on the internet, in 1987, there were still
| !(band) addresses. Not for long, but... compuserve had their
| own format, uwasau.fi was connected to the US internet. GNU
| (GNU trix Ha!)( before HURD) was distributed by magtape. TLG,
| The little garden was my ISP.
| TMWNN wrote:
| > Does anyone know if this is literally how they wrote email
| addresses in 1976? Instead of using the @ symbol they typed the
| word "at"?
|
| In addition to what gumby wrote, CSAIL still maintains a
| `finger` server.
| gumby wrote:
| Bfox made the name field in gnu finger specifically long
| enough to fit my entire name.
| js2 wrote:
| According to RFC 561 ("Standardizing Network Mail Headers ",
| 1973) it was literally "at":
|
| _We suggest that the text of network mail, whether transmitted
| over the FTP telnet connection (via the MAIL command) or over a
| separate data connection (with the MLFL command), be governed
| by the syntax below:
|
| Example:_ From: White at SRI-ARC Date: 24
| JUL 1973 1527-PDT Subject: Multi-Site Journal Meeting
| Announcement NIC: 17996 At 10 AM
| Wednesday 25-JULY there will be a meeting to discuss a
| Multi-Site Journal in the context of the Utility. Y'all
| be here.
|
| https://www.rfc-editor.org/rfc/rfc561
|
| RFC 733 (Standard for the Format of ARPA Network Text Messages,
| 1977) has examples of addresses in both formats and this note:
| _Whenever a message might be transmitted or migrate to a host
| on another network, full hierarchical addresses must be
| specified. These are indicated as a series of words, separated
| by at-sign or "at" indications._
|
| https://www.rfc-editor.org/rfc/rfc733
| ta1243 wrote:
| > Date: 24 JUL 1973 1527-PDT
|
| Interesting. I thought Ameria preferred the "M-D-Y" order?
| ska wrote:
| Computer scientists and similar have never liked it, so
| this isn't surprising.
| syncsynchalt wrote:
| "dd MON yy" is US military format, and I can see early
| computer scientists adopting it for its inherent
| unambiguity (and also extending it to yyyy for reasons that
| became obvious).
|
| Americans colloquially prefer m/d/yy (slashes) rather than
| dashes, anyway.
| Locutus_ wrote:
| Systems from DEC also prefered this date format (RSX11 and
| VMS).
| aragonite wrote:
| Relevant: https://en.wikipedia.org/wiki/Non-
| Internet_email_address
| kragen wrote:
| that syntax still worked with standard sendmail configurations
| in the 01990s; i wouldn't be surprised if sendmail still
| implements it by default today, though things like gmail,
| microsoft exchange, postfix, and exim presumably don't, and
| qmail definitely doesn't
| _glass wrote:
| off-topic, but I saw it now several times, why do you put a 0
| in front of the 1990? I feel like I am being left-out of some
| insider joke.
| kragen wrote:
| no worries, https://longnow.org/ideas/long-now-years-five-
| digit-dates-an...
| _glass wrote:
| oh, alright. thanks!
| kragen wrote:
| sure!
| wavemode wrote:
| This addresses the Y10K problem, but it's truly shameful
| to not account for the Y100K problem. It'll sneak up on
| us before we know it!
| floren wrote:
| They're leaving that for the Long Long Now Foundation
| kragen wrote:
| : dev3; cat longnow.c #include <stdio.h>
| int main() { long then = 0;
| long long now = 0; long long long time = 0;
| printf("then was %ld, now is %lld, time is %llld\n",
| then, now, time); return 0; } :
| dev3; gcc longnow.c longnow.c: In function
| 'main': longnow.c:8:13: error: 'long long long'
| is too long for GCC 8 | long long long time
| = 0; | ^~~~
| atiedebee wrote:
| (not the person you're replying to): From what I heard it
| has something to do with future proofing dates.
|
| I don't know how it's future proof, but that's what I've
| heard.
| Joker_vD wrote:
| So that when year 99999 ends, the Y100K bug can happen, I
| guess. No idea why having fixed-length 5- (or even 6-)
| digit strings for years is preferable to normal,
| variable-length decimal notation we use for numbers: 48,
| 112, 988, 1122, 2024, etc. The year is a number, treating
| it as a lexicographically-imbued string only matters for
| things like ISO 8601 (20240724T vs. 020240724T) but even
| then, it's already properly ordered: both "99991231T" and
| "099991231T" sort before "100000101T".
|
| But hey, everybody has their small idiosyncratic pet
| peeves: I've ran twice into the same person here on HN
| who just can't stand term "x64" because it's
| "unofficial", but somehow refuses to use e.g. "EM64T" for
| it as well.
| kragen wrote:
| as long as they don't go around 'correcting' your
| comments that seems okay?
| ForOldHack wrote:
| The Y100K Bug impacts every single financial transaction,
| every single transaction communication, and every single
| spread sheet, and table:
|
| When it comes to this, the gods of Y100,000 will simply
| wish it with an act of will, and it will come about.
|
| "Home was a couple of thousand light years away, which
| distance they traveled instantaneously, by an application
| of will. " -Joe Haldeman, "The Groombridge Effect"
| FearNotDaniel wrote:
| Connected with this, I think:
|
| https://en.m.wikipedia.org/wiki/Long_Now_Foundation
| ForOldHack wrote:
| Exactly. Genau. Exacto. YYYYYY format.
|
| "In 02024, Danny Hillis answered frequently asked
| questions about The Clock."
| CRConrad wrote:
| It's just a silly affectation.
| mmcgaha wrote:
| So you know how in school when you read that Constantine
| the Great became the Roman Emperor in the year 306. It was
| super confusing what was meant by the year 306 but if the
| book had 00306 you would have known right off what year
| they were talking about.
| progmetaldev wrote:
| I thought I remembered this from the 1990's, but kept seeing
| references to the 1970's. Before I had access to the
| Internet, I would sign into a local BBS and be able to write
| and receive emails using this syntax. Around midnight each
| day, the BBS would connect to the Internet and send and
| receive everyone's email for the day. I'd log on before
| school started to check my messages, and thought even back
| then how amazing the technology was. Now I see where we're
| at, and everyone takes for granted the near instantaneous
| sending and receiving of email and private messaging.
| hoosieree wrote:
| You kids with your newfangled "@" and "." emails. Looks like
| line noise. What is this, APL?
| epc wrote:
| userid AT nodename was also common in the VM/CMS RSCS world of
| mainframes (and BITNET).
| zombiwoof wrote:
| I had always thought James Gosling helped create Emacs with Guy
| neonscribe wrote:
| Gosling created a Unix clone of the PDP-10 Emacs in 1981, about
| five years later.
| zombiwoof wrote:
| Ah cool! Thanks for clarifying that for me
| kragen wrote:
| multics emacs and lisp-machine emacs also predated gosmacs,
| which drew a lot of features from them, most notably being
| scripted in lisp (though gosmacs's lisp was a pathetic sort
| of thing called 'mocklisp')
| lispm wrote:
| Multics Emacs and the Lisp Machine EINE/ZWEI/ZMACS were
| also implemented in Lisp, they did not use an embedded
| scripting Lisp implementation. There is no boundary between
| an implementation and scriptling language, just one Lisp
| (Maclisp for Multics Emacs and Lisp Machine Lisp (aka
| ZetaLisp) for EINE/ZWEI/ZMACS), which in the case of the
| Lisp Machine also was used to implement the rest of the
| operating system and all its applications.
| jhbadger wrote:
| For a similar situation today, there is the editor lem
| which is an Emacs-clone written in Common Lisp (and whose
| extension language is also Common Lisp).
| kragen wrote:
| also edwin, in mit scheme:
| https://www.gnu.org/software/mit-
| scheme/documentation/stable...
|
| more generally, though, even if you aren't using a gui
| library with a built-in text editor widget, gigahertz and
| gigaflops make it not especially challenging to write a
| usable text editor in a high-level language.
| http://canonical.org/~kragen/sw/dev3/edumb.py is 183
| lines of fairly straightforward python and includes full-
| text search and infinite undo; it's not quite usable but
| pretty close. its really stupid buffer data structure
| might start to get unresponsive once you're editing a
| file in the neighborhood of 100k
| kragen wrote:
| yes, and i should have said that, but gosmacs didn't copy
| that aspect of their design, just the ability to extend
| the editor in (mock) lisp
|
| arguably gnu emacs is almost like multics emacs in this
| sense; the editing functionality of gnu emacs without any
| lisp code loaded is not actually zero but is pretty
| minimal. and i was surprised to find the other day that
| gnu emacs on my laptop is now compiling all my elisp to
| machine code, which is another similarity to maclisp,
| albeit a very recent one
| jcynix wrote:
| Yes Zmacs, my favorite editor of all times. Together with
| the space cadet keyboard and its control, meta, super and
| hyper keys.
| kragen wrote:
| the keyboard enthusiast community has advanced to the
| point that you ought to be able to get any keyboard you
| want manufactured affordably now?
| eadmund wrote:
| Sadly, USB-HID does not define a hyper key, so no USB
| keyboard has a true hyper key. What one _can_ do is
| configure the keyboard to emit a different, little-used
| key, and then configure X to recognize that key as hyper.
| I think what I do is emit left super for _both_ super
| keys, and right super for both hyper keys, and then X
| turns right super into Hyper_L. Or something like that.
| This doesn't bother me, because I don't want to assign
| different meanings to the physical left and right super
| or left and right hyper keys -- folks who do (e.g. for
| games) might not like it.
|
| I also had to do a little bit of magic to get hyper
| recognised as a modifier.
|
| It would be awesome if someone could get Hyper added to
| the official list of USB keyboard keys.
| kragen wrote:
| excellent! have you written up your configuration
| somewhere? are you using a public keyboard firmware?
|
| at the other end of the spectrum, i just hacked together
| this stupid shell script to blindly reimpose my desired
| xkb configuration with lower-case parens yesterday:
| http://canonical.org/~kragen/sw/dev3/kbdd maybe you know
| the actually correct way to do this?
| jcynix wrote:
| I actually own an original one (and some other goodies
| from my lispm time), I "just" need an adapter, but my
| electronics manufacturing / soldering talent is not
| adequate, sigh ;-0
| kragen wrote:
| i wonder if alfred szmidt, lars brinkhoff, or someone
| they know could set you up with an adaptor?
| cmrdporcupine wrote:
| There's no need, there's already this thing of beauty:
|
| https://keymacs.com/
| jcynix wrote:
| https://en.wikipedia.org/wiki/Gosling_Emacs
|
| And I still have the manual in printed form somewhere in my
| archives. Maybe I should scan it, unless archive.org already
| has a copy ...
| jhallenworld wrote:
| The TECO version of EMACS is always a kick to look at, here is
| the dired code:
|
| http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/01/e...
|
| From this we can conclude that humans do not need any nice things
| like programming languages, assemblers or compilers to program
| effectively.
| throwanem wrote:
| What's that weird APL derivative called that quants love so
| much? Julia? Reminds me a little of that, in the syntax at
| least. A little like MUMPS, too, maybe, and probably closer to
| that level in terms of its abstractions.
| mjaniczek wrote:
| You probably mean K. J is also up there, but more educational
| and less "let's make some money".
| cmrdporcupine wrote:
| Julia != J. Or K. Or anything like either of those. It's
| not an array language.
|
| It's a very readable language that anybody who knows Python
| etc could understand and has nothing to do with any of
| this.
|
| EDIT: LOL, downvotes why?
| Blackthorn wrote:
| Downvotes are because the person you are replying to was
| talking about J, not Julia.
| cmrdporcupine wrote:
| Beh. The first person said Julia (wrong). Then the reply
| assumed that parent meant J, but did not correct parent
| about Julia, leaving the misconception in place. Which I
| clarified.
___________________________________________________________________
(page generated 2024-07-24 23:05 UTC)