1,787 karma · joined April 24, 2014
Dark theme with purple/pink sounds like the windows 'high contrast dark' theme, which shipped with Windows 95 & 98, and might have shipped with 3.11 / Workgroups as well. In that case, any card-based hypertext system that ran on Workgroups is a possibility. It looks like that includes Authorware (https://en.m.wikipedia.org/wiki/Adobe_Authorware), StorySpace (https://en.m.wikipedia.org/wiki/Storyspace), and probably KMS.
Early versions of HyperTIES ran on DOS: https://www.cs.umd.edu/hcil/hyperties/ ; some HyperTIES images resemble what you describe: https://www.cs.umd.edu/hcil/hyperties/ecs_intro.gif
This explains why different accounts swap out -- the manual was designed for a single conversational thread, but employees are supposed to reply to individual tweets (as picked up from some kind of filtering system).
This is a sort of common pattern -- basically whenever I mention a brand on twitter, I get replies from somebody with "<brand> ambassador" in their display name, & those accounts never follow anybody or reply to their replies. It's gotta be a whole industry. The only difference is that, unlike the accounts run by Comcast or TD Bank or Steak-Umms, amazon's manual seems to demand that the service workers pretend to be regular warehouse workers (rather than customer service / PR).
The Mind’s Eye is, like most of Sacks’ books, a series of compulsively readable case-studies with an autobiographical element – in this case, the overarching theme is the way people produce elaborate adaptations in order to remain functional when some of their faculties are removed, such as partial or total blindness late in life or the loss of the ability to speak or read.
The Signal and the Noise is shaping up to be a sort of forgettable retread – Silver isn’t a poor writer, but he’s not enough of a stylist to make the book compelling (the way Christian Rudder did with similar material in Dataclysm), and meanwhile, aside from some specific details about topics I don’t care very much about (like the names of specific election forecasters), the material seems to be composed mostly of things I’ve already read elsewhere – Tetlock’s fox/hedgehog model of personality, some stats 101 best practices, warnings about apophenia, a quick rundown of bayesian logic. This almost certainly belongs in that second tier of popular science books, where neither the ideas nor the style are shiny enough to somebody with a casual interest in the subject to justify the price of the thing (but I spent a dollar on it, so I don’t mind so much).
The DuMaurier collection was great. She has the kind of easy cruelty I associate a bit with Matheson, but moreso with the adult short fiction works of Dahl & Salinger (who I guess she was competing with for space in the men's magazines); unlike Matheson, she is hesitant & subtle with supernatural elements. Every one of the stories in the collection could have been an episode of the 70s anthology series Tales of the Unexpected.
Humpty Dumpty In Oakland is about on par, in terms of polish, with Dick's later work like A Scanner Darkly, but it's got his trademark circular amphetamine monologues too. It switches perspectives between two characters & it's sometimes hard to tell which is which because their inner voices are the same & they have similar problems.
The Book is very pretty (with glossy full-color pages), but thus far it hasn't actually told me anything about books that I didn't already know (as someone who has configured printing for self-published stuff & also has read some antique volumes).
Next in my queue is a general-audience introduction to cognitive science from 2000 called Mindware, whose author I have forgotten.
Over the course of my vacation (a few weeks ago), I managed to finish several books that I had previously started, and read a couple new ones all the way through:
* C. S. Lewis’s That Hideous Strength combines some campus-politics satire with weird arthuriana in the style of The Dark is Rising and is political in ways that sometimes remind me of 1984, but the main appeal is how utterly alien Lewis’s political positions (which he takes to be obvious & universal) are to me. By the end of the book, it becomes clear that the previous books in the series are some kind of John Carter style sword & planet SF, & that this entry is a departure in genre.
* Andrew Pickering’s The Cybernetic Brain is full of interesting technical & biographical detail I wasn’t aware of from a lifetime of being casually interested in cybernetics, & makes some interesting meta-philosophical points about cybernetics as a discipline being performance-oriented. He claims that the way that cyberneticians are interested in the performative aspects of processes as opposed to a focus on categorization & situated knowledge is to blame for how difficult it was for early cyberneticians to find permanent slots in academia & that it made a lot of people find cybernetics hard to understand (since cybernetics is not really concerned with how information is stored or formatted, but only with how past experience can be made to influence future action).
* Many of the stories in The Best of Richard Matheson are familiar from adaptation, but adaptation gets rid of some of Matheson’s interesting tics (like extensive use of eye-dialect and unreliable narration). LaVaille’s introduction is fantastic & worth the price of admission alone.
* Minae Mizumura’s A True Novel was a lot more compelling than I expected it to be – Mizumura’s style (as modulated by the translator) is quietly engaging, and she paints a vivid picture without ever resorting to the kinds of fireworks that I usually prefer in prose. I was not caught out by having not read Wuthering Heights. I feel like the localization was somewhat inconsistent: in some cases, the translator fails to make explicit things that would confuse somebody totally unfamiliar with the japanese language, culture, and recent history, while in other cases, translation choices are made that are unnecessary to such a person or that actually eliminate information that would be of interest to such a person. (A concrete example: the translator fails to explain that pampas grass is a signifier of a haunted place in japanese ghost stories, says that the name ‘Fuyue’ is unexpected without explaining that the sisters’ names refer to seasons, and yet eliminates all honorifics & uses the same english word for two different japanese translations of ‘maid’ while talking about the distinctions between them.) However, the translation is generally very good, & I would have liked to read the translator’s notes. I got quite engrossed in it, even though it covers material that I don’t generally find interesting (I’m not enough of a weeb to be interested in Figuratively everything japanese).
* Mark Fischer’s Ghosts of My Life hung together less than I expected it to – it’s an essay collection composed mostly of previously-published material – and I was already familiar with some of the material in it simply from being in the general ecosystem of extremely-online left-theory people. However, it reminded me that Fischer, in addition to having a lot to say about Theory, was a skilled cultural/music critic, and as a result, I have a bunch of stuff I need to check out (and a new frame for making stuff I had previously dismissed interesting).
Also in my stack (partially finished): A People's History of Computing (which is hard to get through because it's structured to be extremely repetitive, in a way that would be necessary in a thicker & denser academic volume but is completely unnecessary in what has clearly been dumbed down and cut to pieces with an eye toward the general market), Jeff & Ann VanderMeer's anthology The Weird (which I've been chewing on since 2015), Vernor Vinge's A Deepness In The Sky (natch), and Interactive Programming Environments (an anthology of ACM papers on the subject edited by Barstow).
On the more general TUI side, a curses frontend for TK exists (though a TK frontend for curses doesn't, AFAIK, even though it'd probably be easier to write & more complete). TK is just about the smallest, easiest-to-use, and most cross-platform GUI library, so if you want to move existing curses applications to real widgets, TK is the ideal target.
The unix terminal is a clusterfuck of technical debt, and while curses exists primarily to abstract that away, it still leaks. Basically all non-trivial TUIs are dependent upon terminal behaviors that ought not to exist anymore, and this holds back attempts at modernizing the unix terminal (like kitty at the near end and terminator at the far end), locking us into hacks like abusing control characters for indicating URLs, performing text processing in the text rendering facilities, etc.
Regarding your first question:
ZigZag is not really intended for large shared multi-user stuff. It's not supposed to scale huge. We have completely different data structures for translit (i.e., the hypertext part).
ZigZag can be used for fast manipulation of spacial relations (basically, applying multiple kinds of projections to a multi-dimensional directed graph) & we use it under the hood for representing display layout in XanaSpace, but its main use is as a personal mind-mapping utility. It has only extremely tenuous connections to how we do hypertext, and none at all to micropayments.
The transcopyright system (i.e., the thing for ownership and micropayments) is based on transclusion. Basically, all that means is that we provide facilities to fetch things piecemeal, and we provide facilities for owners to restrict control over getting usable forms of things. (Specifically, we support applying a one time pad, so that if you've got distributed fetching of real content, you can still require folks to fetch the OTP from a trusted oracle & maybe pay for it too before they can actually decode the data.)
Question 2:
We can always fall-back to byte offsets. We floated the idea of supporting more user-friendly offset formats for audio & video (specifically adopting ideas from the w3c media fragments spec), specifically because audio & video have complicated compression schemes & finding safe frame boundaries requires deep knowledge of the underlying format. We put that on hold in order to focus on getting text stuff really solid in the UI department.
Question 3:
People can create spammy documents. They can also transclude from or link to more popular documents in the hopes that their low-quality documents will get more exposure. But, links are not universally resident (which is to say, creating a link to a document doesn't mean that everybody viewing that document immediately sees it). Instead, links get distributed the same way as documents do: by word of mouth (as people recommend to their friends to view particular documents or load up particular sets of links). Links do double-duty as connections between documents and as formatting information (like themes or skins), and collections of links (ODLs) can be passed around separately from documents. (By 'passed around' I generally mean that their addresses get circulated, although we also had the notion of an archive format for passing around collections of documents and links that weren't to be made generally available.)
In other words, the spam potential of linking between a popular document and a low-quality document is akin to the spam potential of creating a low-quality website that is hidden from google.
Question 4:
A cell is a data structure consisting of a pair of associative arrays (pointers to adjacent cells, keyed by strings) & a 'value' (typically a string).
Cells are created by the author (or maybe by a program), which is fine, because cells never travel beyond the vicinity of a single machine. (We had a 'slice' mechanism where cells owned by different folks could join up together, but this was never intended to scale beyond small groups.)
Again: since ZigZag is not a part of the hypertext/transliterature system, the performance of ZigZag is a lot less important. (Within the translit realm, we had exotic high-performance data structures during the Autodesk / XOC era, which we've basically dropped in favor of simple stuff like spanpointers.)
If you're interested in ZigZag, I recommend reading my implementation (https://github.com/enkiv2/misc/blob/master/ds-lib/ZZCell.py). It's cleaner than GZZ & is almost identical to what's still used internally at Xanadu (last I've heard), because this is a rewrite from memory of what we wrote for XanaSpace & when Ted occasionally sends people to me for advice on how to implement new versions of ZigZag I point them to this.
There are a couple of releases you can use, if you want to get a feel for it. The integrated editor we had planned out isn't implemented in any of them, unfortunately, so editing is still awkward.
Most of the big benefits will only come out of having a community using this stuff, and because Ted keeps tweaking formats & there's no compatibility between the released implementations, even those of us within the Xanadu group can't really experience that.
> It doesn't even sound all that hard to implement.
As a former implementer, yes: none of the core concepts are hard to implement.
Ted is a stickler for smooth UIs, & nearly 100% of the difficulty has been in trying to convince existing UI libraries to display his interesting visualization and input ideas in a performant way.
For instance, the XanaduSpace demo used OpenGL to display everything in 3d but internally a lot of stuff was hardcoded, & when I took over development of it, we found that we had a lot of overhead when editing text, so we switched from the OpenGL 1.1 API to the current API & idioms, which let us do faster rendering. However, we had to completely rewrite glyph rendering in order to fit more than about 20 pages of text in GPU RAM (and cards didn't expose standard API calls for freeing these allocations). Our super-elegant proposed method of storing text in GPU RAM ended up never quite working (and we got burnt out by our day jobs at the same time as trying to wrangle with OpenGL), so we never met the benchmark of displaying an entire copy of the King James Bible in real 3d. We plugged the same backend into a TK frontend, which was usable but ugly. Then we drifted away from the project. The code is still around, but I don't think anybody picked it up.
Currently-available web-based Xanadu systems (OpenXanadu and Xanadu Cambridge) are cripped by same-origin policy. Xanadu doesn't want to host arbitrary user data locally (at least, not unless and until customers pay for storage). I wrote a caching proxy for OpenXanadu back in 2013 or 2014, but it wasn't used for basically the same reason: storing arbitrary user data costs us money & makes us liable for takedown requests & other such stuff. While desktop-based systems like XanaSpace could fetch from arbitrary remote hosts using arbitrary protocols (mostly HTTP, but I snuck ftp and gopher support in, and pushed for IPFS support as well), OpenXanadu is stuck only fetching from xanadu.com & a handful of sites that have whitelisted us (and attempts to get project gutenberg & the internet archive to whitelist us for SOP failed, I think). Again: trying to work around SOP was a lot harder than the actual implementation.
I wrote an experimental span-based editor for XanaSpace, and I was asked to port it to javascript for use with OpenXanadu. How it worked was that you selected text in a 'source document' panel (some text or stripped HTML fetched from the wild blue yonder), the text you highlighted would be colored & a copy would be inserted into a kind of visible pastebin, and you'd insert chunks from that bin into an accumulating new document in another panel. Then, in a box below, the EDL format for the document you're creating would be listed, which you can copy into a file to be loaded by OpenXanadu. Unfortunately, there was a hard to find off by one error in the code for ignoring color tags in the source document -- in other words, when highlighting, the character offsets would get less and less accurate the more you go along. It was an intermittent problem. I didn't end up fixing it before I left the project. The XanaSpace version worked fine.
This editor was supposed to be a stopgap, & the eventual editor we planned to make would involve dragging selections directly out of existing documents, snapping them together to form new documents, & being able to then insert or delete text from within these composite documents directly. Existing GUI toolkits, to the extent that they allowed dragging of widgets, didn't show the dragged item as it crossed widget boundaries (and anyway, couldn't show beams between scrolling text things), so we were going to have to write our own text rendering/editing code (which isn't so bad -- we did it for XanaduSpace and again for XanaSpace) and make it handle mouse events reliably on arbitrary unicode text using proportional truetype fonts (substantially more complicated), make that handler differentiate click from select from drag, etc. It was gonna be complicated, & every little noodle of text needed to store its own arbitrarily-complex history, with the beams it was attached to animating along with the drag and such. We put it off, and it looks like everybody else also put it off. We knew that if it wasn't sufficiently pretty, it would never see the light of day (even as open source).
I prefer to develop in public, so after I left Xanadu I started developing my own (less pretty, but at least conceptually-pure) implementations. I also wrote down software-engineer-centric descriptions of concepts we used, so that other people can do the same. (They can be found here: https://hackernoon.com/an-engineers-guide-to-the-docuverse-d... ) None of this stuff is actually hard to implement, but for a backend guy like me, making it pretty was a lot harder than making it usable.
Several Xanadu implementations are already released as open source (the first one in 1999).
Believe me: I've tried to convince Ted that the appropriate way to get stuff to have traction these days is to develop in public, rather than keeping stuff secret during development & only releasing source when it's been polished. It's not that he wants a closed & commercialized system (though he hasn't completely given up on having some stake in monetization), but that he wants enough control to avoid the kinds of runaway misunderstandings that produced the web. If I had seen a warped version of my own work ruin the world, I'd be conservative too.
Now that web standards are so complicated that writing a new web browser is impossible for even large & very rich companies (Microsoft is ditching IE in favor of Chrome, following dozens of others), a properly-designed (and thus, simple) hypertext system becomes a lot more sensible -- for more and more people, the web will seem less and less like a reasonable compromise (being never a particularly good system for hypertext, and a far worse application sandbox platform). Some folks have been jumping to gopher, but others will probably migrate to new systems that are along the lines of Xanadu.
Some of the books on that list aren't readily available, because as cybernetics went out of style they went out of print.
There are embarassingly many cybernetics books this could refer to (particularly from the midcentury)...
Adtech is basically a form of gambling (with inflated expected odds): one party gives an estimate of how likely an impression is to turn into a sale, and pays some fraction of the product of that estimate and the revenue from a sale in return for an impression, but because ad effectiveness is mostly a function of novelty, the actual likelihood that this estimate is chasing is in a constant state of free-fall. Targetting stepped in as a way to increase the likelihood that ads are effective, but targetting really turned into its own internal market, only tangentially related to serving ads (and the only source of cash it's likely to continue to have is in the form of non-advertisers who want specific information -- for purposes of law enforcement, blackmail, training data for statistical models, or some combination of the three).
So, ultimately: you are paying the cost (in power, in bits transmitted, & in time) to see ads for things you don't want, and then paying the cost (in power, bits transmitted, and time) for information about you to be sent to a third party market in personal information, and in the end the person who paid to show you the ad isn't getting anything out of it either.
It's more cost-effective in most cases to just eat whatever it cost to develop an app or run a site than to host ads -- but, since those costs are foisted upon the end user in the form of device lifespan, it's not often done.
If you want to be very safe, either get permission or redraw the interface by hand in a way that removes any trademarkable icons.
One way to interpret Kay saying "I invented objects" is that he is claiming to have invented the first conception of objects that anybody gave a damn about (which is absolutely true).
Even though C++ doesn't have anything Kay would call an object, the reason C++ exists is that C programmers were jealous of Smalltalk. (Again, while C++ is more popular, objective C actually looks & acts sort of like Smalltalk & provides some of the benefits -- C++ is something basically unrelated that appropriated the ad copy in order to cash in on the hype, though only actual Smalltalk users would have been able to call Stroustrop's bluff in the 80s.)
This coincides with other problems. Smalltalk is actually a better language for iterative development than Java, and a big part of that is the focus on messages rather than more fragile forms of code-reuse like inheritance. Java's popularity is based on heavy marketing & manipulation of school accreditation committees by Sun, rather than by its actual applicability to any real programming task, & Smalltalk fans justifiably feel persecuted (and, less justifiably, want to take back control over a term that they feel has been abused by its application to Java).
It's not a matter of ideals versus reality. Smalltalk actually exists, people actually write code in it, and Smalltalk-style object orientation is a real, consistent, well-documented approach. This is a matter of spin: in recent memory (the late 80s), object orientation became trendy because of Smalltalk (the same way that functional programming is trendy now because of Haskell), and the response is that big companies (IBM, Microsoft, and Sun) through their weight behind trying to redefine it so that they could apply it to already-existing or already-under-development products in marketing materials without making substantial changes. These products would not have been considered object oriented to people at the time without a concerted effort to dilute the meaning of the term (in much the same way that people are busy trying to redefine 'blockchain' and apply it to everything in order to scam people who are willing to invest in anything vaguely associated with bitcoin).
Smalltalk users have pushed against this redefinition since it began, & I think a lot of Kay's later emphasis on messages is because C++-style object orientation (as adopted by Java and C#) doesn't support messages & as a result lacks the most characteristic features of Smalltalk-like OO systems.
(There's another issue: Smalltalk-style OO systems are actually easier to implement, and so the number of languages with this kind of OO system is actually much bigger than the number with C++ or Java style OO systems. These languages tend to be small & obscure -- objective c and smalltalk being most popular of the bunch -- and many more people code in C++ or Java because that's what the AP CS tests are required to use, leading to newbies thinking C++ style object orientation is representative, and leading them to go on to prefer languages that are actually worse for their productivity.)
Wayne here brings up an important point: that object orientation under simula doesn't look much like object orientation under smalltalk, & neither looks like C++. What seems like an argument over terminology is actually an argument over best practices by two crowds who are both emotionally attached to the same term, but use them to describe two different things. (Nobody is emotionally attached to Simula's idea of OO. Unlike Smalltalk, Simula actually is dead.) If we reframe it as an argument over best practices, then Kay's crowd wins hands-down, as anyone who has written a medium-to-large project in Java or C++ can attest.
The appropriate way to counteract GPT-2 having any effect on politics is to promote social norms around careful reading, and this solution also works against all other forms of grey propaganda. ("If you go home with somebody & they don't read critically, don't sleep with them" is the new "if you go home with somebody & they don't have books, don't sleep with them".)
Technical solutions aren't really viable, and miss the point. Most human-generated content on the web isn't amenable to trust chains, because it's generated anonymously or pseudonymously by people who don't really have the technical chops to understand cryptography. It's trivial to write a text document and put it on a web server, & it should remain trivial to do that. The onus of epistemic hygene falls on individuals and communities.
> I have family members who have sent out images that are clearly photoshopped because they not technically literate enough to understand that they're fake.
Mock them mercilessly and they will quickly learn how to distinguish shooped photos from real ones. It's not a deep technical skill, but a shallow recognition of tell-tale signs -- a skill that is easily learned passively, if social pressures exist to encourage learning it.
To that, I would add Metamagical Themas by Douglas Hofstader & Prometheus Rising by Robert Anton Wilson. (Wilson gets a little hippieish, but he does a better job of knocking down unjustified tunnel-vision than Hofstader or Dennett do.)
I also recommend understanding message routing systems used in file sharing, like CHORD.
If you don't have a strong background in the math behind theoretical computer science, you might benefit a lot from an understanding of the formal rules around boolean logic, symbolic logic, & state machines -- especially, rules about when certain kinds of things are equivalent (since stuff like demorgan's law are used for simplifying and optimizing expressions a lot, and rules for state machines are used to prove upper limits on resource usage).
If you don't already, learn to use awk. It's a much more powerful language than it seems, and fits extremely well into the gap between command-line prototyping in shell one-liners & porting a prototyped tool to python or perl, and so it's a huge time saver: it is faster to write many kinds of tools in a mix of shell and awk and then rewrite them in python than it is to write them in python in the first place.
The author of this piece seems to be overestimating how often people use video chat (or maybe I'm an outlier). I've had video calls with a total of about four people, and haven't had one in the past five years. They've only been for business meetings & cybersex.