1671: "Arcane Bullshit"

This forum is for the individual discussion thread that goes with each new comic.

Moderators: Moderators General, Prelates, Magistrates

yan
Posts: 13
Joined: Sun Nov 29, 2015 11:17 pm UTC

1671: "Arcane Bullshit"

Postby yan » Fri Apr 22, 2016 2:05 pm UTC

Image

URL: http://xkcd.com/1671/

Title: Learning arcane bullshit from the 80s can break your computer, but if you're willing to wade through arcane bullshit from programmers in the 90s and 2000s, you can break everyone else's computers, too.

We can only wonder what arcane bullshit from the 2010s and 2020s will be able to break...

User avatar
Keyman
Posts: 284
Joined: Thu Jun 19, 2014 1:56 pm UTC

Re: 1671: "Arcane Bullshit"

Postby Keyman » Fri Apr 22, 2016 2:13 pm UTC

One wonders if somebody is having a rough week?
A childhood spent walking while reading books has prepared me unexpectedly well for today's world.

User avatar
Neil_Boekend
Posts: 3220
Joined: Fri Mar 01, 2013 6:35 am UTC
Location: Yes.

Re: 1671: "Arcane Bullshit"

Postby Neil_Boekend » Fri Apr 22, 2016 2:14 pm UTC

yan wrote:We can only wonder what arcane bullshit from the 2010s and 2020s will be able to break...

Everyone else's computers, electricity, cars, money, pacemakers...
Mikeski wrote:A "What If" update is never late. Nor is it early. It is posted precisely when it should be.

patzer's signature wrote:
flicky1991 wrote:I'm being quoted too much!

he/him/his

commodorejohn
Posts: 1049
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: 1671: "Arcane Bullshit"

Postby commodorejohn » Fri Apr 22, 2016 2:21 pm UTC

Where on the graph does "actually enjoys programming in assembler but can't be assed to figure out how makefiles work" fall?
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
AlfaLyr
Posts: 18
Joined: Fri Apr 15, 2016 11:08 am UTC
Contact:

Re: 1671: "Arcane Bullshit"

Postby AlfaLyr » Fri Apr 22, 2016 2:37 pm UTC

I expend more time fighting with the programs my boss wrote while he was doing his PhD than the time I would expend rewriting them...
1060 nm : a scientist girl life!

KarynMcD
Posts: 3
Joined: Wed Mar 09, 2016 3:28 pm UTC

Re: 1671: "Arcane Bullshit"

Postby KarynMcD » Fri Apr 22, 2016 2:43 pm UTC

commodorejohn wrote:Where on the graph does "actually enjoys programming in assembler but can't be assed to figure out how makefiles work" fall?

I used to love programming in assembler. Back when 64k was a lot of memory every byte counted and the programs ran fast.
Now a days, nobody seems to care.

User avatar
cellocgw
Posts: 1867
Joined: Sat Jun 21, 2008 7:40 pm UTC

Re: 1671: "Arcane Bullshit"

Postby cellocgw » Fri Apr 22, 2016 3:12 pm UTC

From the "Too Lazy To Look It Up" Department:

Is this the first xkcd to feature an obscene word (at least, as defined by George Carlin in the title?
https://app.box.com/witthoftresume
Former OTTer
Vote cellocgw for President 2020. #ScienceintheWhiteHouse http://cellocgw.wordpress.com
"The Planck length is 3.81779e-33 picas." -- keithl
" Earth weighs almost exactly π milliJupiters" -- what-if #146, note 7

User avatar
HES
Posts: 4844
Joined: Fri May 10, 2013 7:13 pm UTC
Location: England

Re: 1671: "Arcane Bullshit"

Postby HES » Fri Apr 22, 2016 3:30 pm UTC

Nope, and nope.
He/Him/His Image

Mikeski
Posts: 984
Joined: Sun Jan 13, 2008 7:24 am UTC
Location: Minnesota, USA

Re: 1671: "Arcane Bullshit"

Postby Mikeski » Fri Apr 22, 2016 5:34 pm UTC

commodorejohn wrote:Where on the graph does "actually enjoys programming in assembler but can't be assed to figure out how makefiles work" fall?

On another graph, actually. Or a perpendicular axis on this one. The one about what you're programming, not how much you can program it.

Your end is embedded microcontrollers; the sort of code where the programmer has to be able to say "hell yes, you can put this in ROM right on the processor chip."

The other end of your graph is the guy who comes home to dinner every night prepared by his interconnected Internet-of-Things kitchen, but can't make a 2-to-1 mux out of 2-input NAND gates.

Edit: this is (or was) my 666th post. Proof positive that assembly programming is a black art!

wumpus
Posts: 527
Joined: Thu Feb 21, 2008 12:16 am UTC

Re: 1671: "Arcane Bullshit"

Postby wumpus » Fri Apr 22, 2016 6:00 pm UTC

commodorejohn wrote:Where on the graph does "actually enjoys programming in assembler but can't be assed to figure out how makefiles work" fall?


http://store.steampowered.com/app/370360/ TS-100 is for you.

I'm really wondering what in the world happened to Randal this week. Obviously, when he was working at NASA you could call this happening "Wednesday" (less true in the robotics department, but they probably have a ton of microcontrollers strewn around that were (and the toolchain) designed in the 1980s and now sell for a buck in low volume). I'm not even sure recent computers have what anyone from the 80s would call a bios (certainly the one I'm typing on has one, but it does allow me to boot around it, I think), and it isn't used past booting. Low level drivers *might* use "arcane bullshit", but that seems foolish. Besides they must have a pretty high turnover, so are unlikely to keep moldy code around.

For those (like Randal) that are too young and missed it, these were the wonders of 80s programming.

Starting back in 1980, with an Atari 400:
- membrane keyboard. Think in terms of trying to program while using your tablet as a keyboard to get the true experience.
- those of us with Ataris were lucky. "Real" computers often didn't have full screen editors. You used single-line editors and were thankful [University of Maryland used "UMD2", a 1100 series univac to convince engineers (and EEs in particular) to become business majors. It was still limited to single line editing when it was turned off around 1990].
- Memory was precious. That 400 came with 8k of memory and you saved every byte (the screen took a k or so, not sure how much the rest of the OS took. You needed more RAM to add a harddrive, the DOS* took up more than that.
- BASIC was what was taught. And not the less-evil basic that Microsoft has been working on since DOS 5.0 or so, but an evil thing that had the following:
* global variables. If there is *one* thing that will teach you to hate the speghetti code of 80s BASIC, it is that *all* variables were global.
* speghetti code: The horror of following OO code without any of OO's benefits.
* required line numbers (not so big a deal, until you needed a little more room for your subroutine. Then you renumbered everything.
* limited memory: you run out of ram, the program stops. No VM for you. This will encourage manual swapping of parts of program in and out (which was not terribly friendly with BASIC. It worked best with overlapping line numbered code, then convincing the user to hit "return" where you had faked it so that he would be entering "run". With a little more "arcane bullshit" I'm sure there were better ways around this issue.
* available programming languages were BASIC and Assembler. Forth was a minor option (you could have built a wildly improved processor around Forth (that would also help C, see Hobbit) that would hit a brick wall (as an architecture) at roughly the end of the 80s. Pascall required something like two floppy drives and other non-starters on Apple (I don't think it was available on Atari). C existed, but I don't think it made a whole lot of sense on any 8 bit (cross compiled from a modern desktop to a microcontroller is completely different).

Mid to late 80s saw the rise of the PC an segmented programming that wouldn't go away until Microsoft gave it up with Windows 95. If you really want to see arcane bullshit, I'd recommend looking for FRACTINT, circa 1990 or so (probably up to 94). Extreme integer math (in assembly, I'm sure) then sent to the screen via twiddled hardware parameters on the VGA board (you want 400x300 at 8 bits? It's in there, how about 980x700? (less sure. I think I played quake at 400x300, so it was hardly only used on FRACTINT. FRACTINT simply had more choices than you could believe).

FloridaMatt
Posts: 1
Joined: Fri Apr 22, 2016 7:34 pm UTC

Re: 1671: "Arcane Bullshit"

Postby FloridaMatt » Fri Apr 22, 2016 8:19 pm UTC

Ah, I remember it well...

Actually, by the mid 80's I had had cases of needing to wade through some 70's programmer's arcane code wherein that 70's programmer was, um, myself. Being nominally in charge of younger programmers (proginees?) by then I formulated rules of great value. Here are some:

1. You aren't doing it right if Cobol's 30-character limit for paragraph names isn't occasionally an inconvenience.
2. If you are nice to the keypunch supervisor, your code will punched on a machine that prints cleanly. And, it may even be verified!
3. If you think there's a chance your code might "do that", I better not get woken up at 3am because it did.
4. When debugging RPG, learn early how to keep a program from unloading the tape the next program has to read.
5. If you can avoid learning PL/1 long enough it will go away and/or you can change jobs.

User avatar
da Doctah
Posts: 864
Joined: Fri Feb 03, 2012 6:27 am UTC

Re: 1671: "Arcane Bullshit"

Postby da Doctah » Sat Apr 23, 2016 12:52 am UTC

FloridaMatt wrote: If you can avoid learning PL/1 long enough it will go away and/or you can change jobs.


If not, it'll turn back up as "Sabretalk". (I learned PL/1 for my first job out of college, and ten years later I was teaching it to a shop that had just added it to the arsenal.)

My favorite take on the "it might do that" situation was when a user gave instructions that didn't cover all the cases. I'd ask what they wanted the program to do in the cases they had missed, and was invariably told "it doesn't matter; it'll never happen anyway".

Responding to that with "in that case, I can write the program so that if the situation ever *does* arise, the operator is instructed to call you at your home any time of the day or night for instructions?" tended to raise doubts in their tiny little minds.

User avatar
Heimhenge
Posts: 194
Joined: Thu May 01, 2014 11:35 pm UTC

Re: 1671: "Arcane Bullshit"

Postby Heimhenge » Sat Apr 23, 2016 6:25 am UTC

da Doctah wrote:
FloridaMatt wrote: If you can avoid learning PL/1 long enough it will go away and/or you can change jobs.


If not, it'll turn back up as "Sabretalk". (I learned PL/1 for my first job out of college, and ten years later I was teaching it to a shop that had just added it to the arsenal.)

My favorite take on the "it might do that" situation was when a user gave instructions that didn't cover all the cases. I'd ask what they wanted the program to do in the cases they had missed, and was invariably told "it doesn't matter; it'll never happen anyway".

Responding to that with "in that case, I can write the program so that if the situation ever *does* arise, the operator is instructed to call you at your home any time of the day or night for instructions?" tended to raise doubts in their tiny little minds.


Oh yeah ... that was always a useful line of code: 152: ON ERROR > CALL 555.123.4567

rmsgrey
Posts: 3340
Joined: Wed Nov 16, 2011 6:35 pm UTC

Re: 1671: "Arcane Bullshit"

Postby rmsgrey » Sat Apr 23, 2016 10:09 pm UTC

The other problem with contingencies that should never arise is that sooner or later someone will make a "harmless" change to the code that invalidates one of your underlying assumptions, and if you don't have something to trap it, some poor sod will have to figure out why things keep crashing.

An example from something I coded up semi-recently - the controls included a set of radio buttons, with one of them set by default. Part of the code checked which of the buttons was set in order to decide what to do at that point - so I threw in a check for the possibility that none of them were set, in case someone changed the default to having none set, commented as something that should never happen, and popping up a message that that setting hadn't been set.

brenok
Needs Directions
Posts: 507
Joined: Mon Oct 17, 2011 5:35 pm UTC
Location: Brazil

Re: 1671: "Arcane Bullshit"

Postby brenok » Sun Apr 24, 2016 4:56 pm UTC

cellocgw wrote:From the "Too Lazy To Look It Up" Department:

Is this the first xkcd to feature an obscene word (at least, as defined by George Carlin in the title?


HES wrote:Nope, and nope.


For future reference, you can see all xkcd comic titles on the archive

User avatar
Soupspoon
You have done something you shouldn't. Or are about to.
Posts: 3180
Joined: Thu Jan 28, 2016 7:00 pm UTC
Location: 53-1

Re: 1671: "Arcane Bullshit"

Postby Soupspoon » Mon Apr 25, 2016 2:23 am UTC

wumpus wrote: BASIC was what was taught. And not the less-evil basic that Microsoft has been working on since DOS 5.0 or so, but an evil thing that had the following:
* global variables. If there is *one* thing that will teach you to hate the speghetti code of 80s BASIC, it is that *all* variables were global.
* speghetti code: The horror of following OO code without any of OO's benefits.
* required line numbers (not so big a deal, until you needed a little more room for your subroutine. Then you renumbered everything.

The BASIC that I mostly learnt on (not my first BASIC, that was on the ZX81 and was a more basic BASIC, though I forget the details) was BBC BASIC.

That BASIC included PROCs and FNs, that you were encouraged to use (though not obligated!), as well as GOSUBs with RETURNs at the end (or elsewhere!) which were messier, but were a useful middleground betwixt those PROCs and the (available, for either smart or silly usage) devishly moreish GOTOs, and had the advantage, for a certain level of programmer, of accepting a numerical calculation as a destination, a useful (if you didn't ruin it, later on) equivalent to sub/function referencing variables in modern cases where 'smart' (if not always clear) program-branching can be done in simpler code than a huge nested if-then-else or case statement at every location where a given call-decision ciuld be made (an alternative would have been to have EVALed something of a procedure/function call line with an artificially-inserted portion of name (eithet numetic or text!) doing the same duty...

Within PROCs, useful to avoid spaghettification, you could state a LOCAL variablename%, and really ought to do for all cases (or have a darn good reason to do otherwise).

(New) line numbers could be geneated automatically for you with AUTO, iirc, which made it useful to avoid tyops along the way. And when you needed 'space' to insert lines (after adding 'temporary' lines 115, 112, 117, 118 & 119, 113 & 114 and possibly 111 and 116 into some code you were refining with more code between lines 110 and 120) there was the RENUMBER command to help you respace/prespace your code. (It would also move GOTO and GOSUB numbers, correctly, unless you were using the "GOSUB 1000*N%" trick, when you had to do a bit more work to reallign everything again)...

((But if you were EVALing something like "PROC DRAW";colour$;"BOX", or "X=FN CRYPTOVERSION";vernum%;"TEST" then you were immune to renumbefing problems, and just had to worry about handling EVAL failures... Ahhhh, the memories... Hopefully not too corrupted by time and lack of use...))


* limited memory: you run out of ram, the program stops. No VM for you. This will encourage manual swapping of parts of program in and out (which was not terribly friendly with BASIC.
I certainly hit the wall in one project. I'd tested subsections of the code (input, calculation, display, etc subroutines or groupings thereof) seperately, testing that each worked on their own2 (from 'dummy' calling code, where necessary, that also let me test that each worked to spec), then wrote the (non-dummy) code to cassette as data, not program code, so that at the end I just needed to compile (as in concatenate, not code-compile!) the suitably line-numbered 'program data' into one, huge, working whole! I would be triumphant!

And then, when I did it, I found that the BBC (Model B) didn't like the numbr of total lines I was giving it (not then line-numbers, as even rhe top-end ones had worked in a dummy scenario, but the number of lines that were now input, or maybe it was just the amount of characters across all lines, I forget..). From many working sub-programs, I had written a whole-program too large for the (half1?) memory it was trying to fit into.

Solutions to that, short of stripping away entire chunks of functionality or redoing upon a BBC MASTER and hoping that the larger memory was sufficient and not too many code tweaks were required along the way, included rewritting some bits in Assembler (6502, wan't it?) to pack it in better... Never went the whole hog, though, because I was still only learning (and at GCSE level, we weren't even taught Assembler!) but I but my 'lessons learnt' into my project submission and it didn't seem to hurt the A-grade that I got out of the course... (I don't think A* was a grade, back then, as it is now... Although might have been already the name of a pathfinding algorithm... ;) )

And I encountered Fractint much later on, at a point where I'd started to be shown how to 80(n)86 code, at least through C...

1 Half of the BBC's stated memory was either ROM or not useable by to-be-translated code. I forget which, although I always quite liked poking the video memory segment directly (and the display interupts to force an 'extended pallette' in an otherwise sometimes restricted display mode, although that requred 'banding' effects on the desired screen iutput to do it properly) something that I missed when later on I 'graduated' to Pascal...

2 Ironic, then, that when I was being taught Ada, the "do subunits seperately, test them thoroughly then add them to the whole project" approach was the one aspect I hated most... If not about the language (or its compiler process) itself, then definitely in the teaching methods... Never got on with Ada. Prefered the LISP. And was fascinated be the FORTH. Obviously I liked Polish Notation, regardless of whether or not it was Reversed... ;)

yaPete
Posts: 31
Joined: Wed Nov 28, 2007 8:25 am UTC

Re: 1671: "Arcane Bullshit"

Postby yaPete » Fri Apr 29, 2016 4:07 pm UTC

wumpus wrote:I'm really wondering what in the world happened to Randal this week. Obviously, when he was working at NASA you could call this happening "Wednesday" (less true in the robotics department, but they probably have a ton of microcontrollers strewn around that were (and the toolchain) designed in the 1980s and now sell for a buck in low volume). I'm not even sure recent computers have what anyone from the 80s would call a bios (certainly the one I'm typing on has one, but it does allow me to boot around it, I think), and it isn't used past booting. Low level drivers *might* use "arcane bullshit", but that seems foolish. Besides they must have a pretty high turnover, so are unlikely to keep moldy code around.


Everything in your post seems to be coming very much from a PCish (and predecessors) perspective.

In the Unix world, arcane bullshit from the 80s and earlier regularly impinges on daily life. Think /usr, termcap, vi, "User is not a typewriter", /dev/tty*, and all sorts of other little oddities. And that's just the userland, I'm sure once you start doing system level programming there are dozens or hundreds more.

Pete

wumpus
Posts: 527
Joined: Thu Feb 21, 2008 12:16 am UTC

Re: 1671: "Arcane Bullshit"

Postby wumpus » Wed May 18, 2016 4:05 pm UTC

yaPete wrote:
wumpus wrote:I'm really wondering what in the world happened to Randal this week. Obviously, when he was working at NASA you could call this happening "Wednesday" (less true in the robotics department, but they probably have a ton of microcontrollers strewn around that were (and the toolchain) designed in the 1980s and now sell for a buck in low volume). I'm not even sure recent computers have what anyone from the 80s would call a bios (certainly the one I'm typing on has one, but it does allow me to boot around it, I think), and it isn't used past booting. Low level drivers *might* use "arcane bullshit", but that seems foolish. Besides they must have a pretty high turnover, so are unlikely to keep moldy code around.


Everything in your post seems to be coming very much from a PCish (and predecessors) perspective.

In the Unix world, arcane bullshit from the 80s and earlier regularly impinges on daily life. Think /usr, termcap, vi, "User is not a typewriter", /dev/tty*, and all sorts of other little oddities. And that's just the userland, I'm sure once you start doing system level programming there are dozens or hundreds more.

Pete


Ouch. I'm guessing you really have to dig in from the programmer side (meaning C. Don't count on it while doing high level stuff and never saw any in Python*) of things for that. I'm typing this from Linux and haven't encountered all that much. I've certainly read enough of Linus's rants "you WILL maintain absolute [source code] backward compatibility with any [kernel] API released since Linux .01 and don't you forget it" to see how you would keep banging into this once you got near the kernel. Then there is that lovely "you aren't expected to understand this" comment that apparently refers to a bug that took 40 years to find (or maybe break. Any code that requires a Ken Thomson to understand isn't exactly maintainable).

Funny thing is that I really cut my teeth on x86 (pretty much pure "8086") assembler. I can just imagine how much "arcane bullshit" you get when you look at the AMD86 code your compiler spits out. Gods help you if you have to make a code generator that gets all that AMD86 code into something that fits all the "arcane bullshit" that evolved into what we call AMD86.

* I'm pretty sure returning SHA0 (unsafe, incompatible) values for SHA hashing wasn't an 1980s thing. Just bullshit that required manually checking the binary output to see why my code wasn't compatible with other means of generating hashes.

And sorry for the necromancy. I just noticed where xkcd has the notifications.

ps.02
Posts: 378
Joined: Fri Apr 05, 2013 8:02 pm UTC

Re: 1671: "Arcane Bullshit"

Postby ps.02 » Wed May 18, 2016 7:37 pm UTC

wumpus wrote:
yaPete wrote:In the Unix world, arcane bullshit from the 80s and earlier regularly impinges on daily life. Think /usr, termcap, vi, "User is not a typewriter", /dev/tty*, and all sorts of other little oddities.

Ouch. I'm guessing you really have to dig in from the programmer side (meaning C. Don't count on it while doing high level stuff and never saw any in Python*) of things for that. I'm typing this from Linux and haven't encountered all that much.

Modern Linux still has all the stuff Pete mentions, though for the most part it's faded enough into the background that you can ignore it. So it's not necessarily "arcane BS that you have to deal with", but it is still "arcane BS that is still around".

- If your input and output are a "terminal", which is to say, inferred to be some sort of keyboard and monitor, as opposed to just streams of data moving between files and running programs, first of all, you don't have a terminal anymore. A terminal is dedicated hardware consisting only of keyboard, monitor, and some sort of two-way data interface (connected either to a port on a server, or to a telephone modem). What you have is a terminal emulator. This is probably an application on your computer, such as xterm or PuTTY, but the Linux kernel text console is one too. This emulates real hardware from the 70s and 80s from DEC and Tektronix. The terminal handling stack still includes full support for various features for serial ports and telephone modems. (Serial consoles are still quite useful, actually.) Fun fact: modern Linux still supports the terminal mode in which all text is expressed in all caps, in case your particular terminal can't display lowercase letters!

- Speaking of PuTTY, what's in a name? TTY (meaning terminal in Unix-speak) is short for teletype. In case you were in danger of forgetting the whole "faithfully emulate something we haven't actually used in decades" thing.

- termcap: These days you can use Linux pretty happily without ever seeing termcap or terminfo, but it's all still there. A way to describe different incompatible types of terminals. Nowadays, since we're all using terminal emulators, there's no particular reason for them to be incompatible with each other, so we've converged and everything is almost 100% compatible. But all the machinery still exists and works, for specific terminal types to have completely different ways to do things ("change foreground color to red" or "clear the screen" or "this is what the input stream looks like when the user presses left-arrow" or even "this terminal does or doesn't support boldface").

- vi: Clearly hearkens back to Bill Joy's original, circa 1983. It has a command-line interface (the : key) which shows that it descends from ex, which was purely command-line. In 1983 you could not assume that all terminals had real arrow keys - so vi does not require arrow keys. (You can move around with h j k l.) Even the name is "arcane BS" in a way: it's short for "visual": unlike ex, vi has a full-screen mode where you can actually see and interact with your document directly, instead of line-by-line. Which brings us to the environment variable you can set to tell all your software what your preferred editor is. There's EDITOR, but there's also a variable called VISUAL, to express what you want to use in those situations where a full-screen editor is called for. (Why you might have ever needed both EDITOR and VISUAL, I still don't understand.)

- /usr: Could be just a legend, but I hear the reason the meat of a Unix installation is split between the root and /usr filesystems is that some early-70s installation had to split the OS across two disks, the designated system disk not being large enough on its own.

User avatar
Soupspoon
You have done something you shouldn't. Or are about to.
Posts: 3180
Joined: Thu Jan 28, 2016 7:00 pm UTC
Location: 53-1

Re: 1671: "Arcane Bullshit"

Postby Soupspoon » Wed May 18, 2016 9:12 pm UTC

ps.02 wrote:- /usr: Could be just a legend, but I hear the reason the meat of a Unix installation is split between the root and /usr filesystems is that some early-70s installation had to split the OS across two disks, the designated system disk not being large enough on its own.
That makes little sense to me. For as long as I've known Unix, different installations have differently dealt with which subdirs of root are true dirs and which are 'merely' mountpoints to other drives. And the tradition has carried on with Linux, of course.

(Mounting /home separately is more sensible, if you had to choose one, these days, as even if quotas are set incorrectly (or too lenient, on the misguided basis that not everyone will push their limits), and probably /var too, as it means that more vital system areas don't find themselves sharing shrinking free space with 'whimsical' data dumps, with only /root being left susceptible (by which point you've probably got other things to worry about). /usr/bin and /bin are often cognate, anyway, currently, one or other being symbolic to the other, in my experience, along with other /usr/foo and /foo pairs. But that may be a more modern development.)

commodorejohn
Posts: 1049
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: 1671: "Arcane Bullshit"

Postby commodorejohn » Wed May 18, 2016 9:14 pm UTC

ps.02 wrote:(Why you might have ever needed both EDITOR and VISUAL, I still don't understand.)

I'd have to go ask one of my old-timer friends to be certain, but I'd assume it's so you can specify a default editor dependent on whether you're logging in from a video terminal (where you have a full screen, cursor positioning, and other interesting control codes) or a teletype or "glass TTY" (a "dumb" video terminal without the control codes - yes, they existed.)
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
orthogon
Posts: 2871
Joined: Thu May 17, 2012 7:52 am UTC
Location: The Airy 1830 ellipsoid

Re: 1671: "Arcane Bullshit"

Postby orthogon » Thu May 19, 2016 8:56 am UTC

Soupspoon wrote:
ps.02 wrote:- /usr: Could be just a legend, but I hear the reason the meat of a Unix installation is split between the root and /usr filesystems is that some early-70s installation had to split the OS across two disks, the designated system disk not being large enough on its own.
That makes little sense to me. For as long as I've known Unix, different installations have differently dealt with which subdirs of root are true dirs and which are 'merely' mountpoints to other drives. And the tradition has carried on with Linux, of course.


The Great Wiki agrees with ps.02, for what it's worth. I guess the point is that if you have multiple directories, you can easily put them all on the same disc or on different discs, whereas you can't split a single directory across discs simply by mounting.

Somebody told me that /usr stood for "Unix System Resource", but that doesn't seem to be the case; perhaps it was an attempt to retrospectively make sense of the naming.

Unix/Linux seems at least as much of a mess as Windows in terms of what goes where, (I have a server with two different versions of nginx installed in different sets of directories and I can never remember which is the real working one). In its defence, it has a couple of decades of head start.
xtifr wrote:... and orthogon merely sounds undecided.

User avatar
Soupspoon
You have done something you shouldn't. Or are about to.
Posts: 3180
Joined: Thu Jan 28, 2016 7:00 pm UTC
Location: 53-1

Re: 1671: "Arcane Bullshit"

Postby Soupspoon » Thu May 19, 2016 9:30 am UTC

orthogon wrote:The Great Wiki agrees with ps.02, for what it's worth.
I can't see that in there, actually, but it's a bit of a mishmash page, so I probably miss the reference.

The 'mess' is more due to adding things whilst keeping (remnants of) old but originally logical things for backwards compatibility, I would say. And personally I could have done without the likes of /media (there's still /mnt). If a distro wants to create a desktop icon (for those going GUI) containing a specialist subset of removable /mnt items then that's distro flavouring option, surely. Shoulda stuck with the (mostly...)TLAs, for the techical stuff in root, and abstracted out as skinning is applied, out where more casual users restrict themselves. (Ditto the new gTLD expansion, for the internet. WTF with .museum, etc?)

But maybe I'm just a stick-in-the-mud.

User avatar
orthogon
Posts: 2871
Joined: Thu May 17, 2012 7:52 am UTC
Location: The Airy 1830 ellipsoid

Re: 1671: "Arcane Bullshit"

Postby orthogon » Thu May 19, 2016 9:51 am UTC

WP wrote:/usr: The "user file system": originally the directory holding user home directories,[14] but already by the Third Edition of Research Unix, ca. 1973, reused to split the operating system's programs over two disks (one of them a 256K fixed-head drive) so that basic commands would either appear in /bin or /usr/bin [16]


This appears to be the relevant text in ref 16:

M. Douglas McIlroy wrote:The UNIX shell gave up the Multics idea of a search path and looked for program names that weren’t
file names in just one place, /bin. Then in v3 /bin overflowed the small (256K), fast fixed-head drive.
Thus was /usr/bin born, and the idea of a search path reinstated.
xtifr wrote:... and orthogon merely sounds undecided.

User avatar
Soupspoon
You have done something you shouldn't. Or are about to.
Posts: 3180
Joined: Thu Jan 28, 2016 7:00 pm UTC
Location: 53-1

Re: 1671: "Arcane Bullshit"

Postby Soupspoon » Thu May 19, 2016 10:06 am UTC

Ha, told you I'd missed it. (Apparently I originally RTA "...refused to split...", whilst skim-reading it. ;) )

ps.02
Posts: 378
Joined: Fri Apr 05, 2013 8:02 pm UTC

Re: 1671: "Arcane Bullshit"

Postby ps.02 » Thu May 19, 2016 4:36 pm UTC

Soupspoon wrote:
ps.02 wrote:- /usr: Could be just a legend, but I hear the reason the meat of a Unix installation is split between the root and /usr filesystems is that some early-70s installation had to split the OS across two disks, the designated system disk not being large enough on its own.
That makes little sense to me.

Yes, well, see thread title. (:

xtifr
Posts: 321
Joined: Wed Oct 01, 2008 6:38 pm UTC

Re: 1671: "Arcane Bullshit"

Postby xtifr » Thu May 19, 2016 9:52 pm UTC

The history of the /usr directory is indeed bizarre. I actually remember when it was still where user directories went; my first Unix home directory, on a school system, was indeed /usr/xtifr. But we did already have /usr/bin by that point, so its purpose was already in the process of shifting.
"[T]he author has followed the usual practice of contemporary books on graph theory, namely to use words that are similar but not identical to the terms used in other books on graph theory."
-- Donald Knuth, The Art of Computer Programming, Vol I, 3rd ed.

User avatar
Soupspoon
You have done something you shouldn't. Or are about to.
Posts: 3180
Joined: Thu Jan 28, 2016 7:00 pm UTC
Location: 53-1

Re: 1671: "Arcane Bullshit"

Postby Soupspoon » Thu May 19, 2016 10:51 pm UTC

That's half my memories. A system I used as late as the mid '90s, I'm sure did not use /home/username but /usr/username for ~ (or, rather, ~ as alias for the path), but that system (albeit in the manner of the Ship Of Theseus) probably dated at least back to the '70s so probably was grandfathered to that original standard.

Again, I feel that most dirs off / that aren't three letters long are sops to 'readability' and other later fudging rather than prior perfectly consistent standards. The 'arcane' stuff was made 'bullshit' by later messing about, not because it was intrinsically bad in the first place. I'm not sure that one can condemn such original decisions preferentially over the ones made later to invalidate/deprecate the earlier stuff whilst reinventing a perfectly cromulent wheel...

(A non-binding opinion, based off of general impressions and personal reluctance to. Ditto that italics/bold tags should still be considered contextually valid for things-you-actually-want-italic/bold, without heavy pressure to switch to em/strong, font style (inline or style-defined) or even more wasteful-of-space solutions. But I don't think I'm going to win that argument.)


Return to “Individual XKCD Comic Threads”

Who is online

Users browsing this forum: No registered users and 11 guests