Post 9fVkosYPLyEiOlCUWu by sophieactual@occult.camp
 (DIR) More posts by sophieactual@occult.camp
 (DIR) Post #9fVPfAY7UhWIHDavCa by natecull@mastodon.social
       2019-02-04T22:51:36Z
       
       1 likes, 1 repeats
       
       https://shalabh.com/programmable-systems/plain-text.html<< What if plain text had included special invisible characters that could indicate nesting?You would be able to encode a tree of nodes instead of a sequence of lines in this ubiquitous file format. >>Prepare to get your mind blown: What if those special 'nesting' characters weren't invisible? So you could print them in books or send them in email?Congratulations! You've invented S-expressions!no really we would actually be really far ahead if we just did this
       
 (DIR) Post #9fVkorWFCWuZBlBFWC by natecull@mastodon.social
       2019-02-04T22:55:53Z
       
       0 likes, 1 repeats
       
       However, I think we do need at least one tweak to S-expressions - because they are not in fact powerful enough to represent all possible expressions in a parse tree.Add one character as well as whitespace, (, ) ... maybe repurpose ., or make it / .This extra character can indicate 'typed expression' (where 'type' doesn't indicate any particular type theory or the validity/checked-ness of the expression, just that it is a logical expression rather than a list).
       
 (DIR) Post #9fVkorjiORgdrXU0W0 by natecull@mastodon.social
       2019-02-04T22:58:23Z
       
       0 likes, 0 repeats
       
       There's also a few other things we need:* a quoting mechanism to indicate characters that aren't representable. We could maybe use the expression mechanism for this, but it would be nice to have something that quotes a single character or a block of text. So eg \ or ", with their normal C semantics, are probably worth keeping.* We need some way of resolving the difference between trees and graphs. Some kind of markup for pointers and pointed-at locations. We can use expressions for this.
       
 (DIR) Post #9fVkorxtXj1sZW7KcK by natecull@mastodon.social
       2019-02-04T23:01:11Z
       
       0 likes, 0 repeats
       
       ... but we need a scheme for naming pointers, deciding if we're going to use names or numbers, if we want to make all cells pointers or just ones that have multiple references, how to deal with local vs nonlocal references, when to point and when to copy, etc, etc.These are a bunch of nontrivial concerns and they've never been solved particularly well. Think of Unix symlinks in filesystems. They still cause problems when you're copying files.It might be worth thinking about this a bit.
       
 (DIR) Post #9fVkosCQfgehIauwGu by sophieactual@occult.camp
       2019-02-04T23:12:24Z
       
       0 likes, 0 repeats
       
       @natecull The only answer we've come up with is to have an external usage alias to a random, say 64bit, key, but that requires a database unless you're going to implement the mapping within the filesystem as metadata, but that needs faffing with the filesystem and look what happens, say with BTRFS, which was approaching this usability, but then goog decided to mess with EXT4 instead and ... it all goes to hell in a handcart.
       
 (DIR) Post #9fVkosYPLyEiOlCUWu by sophieactual@occult.camp
       2019-02-04T23:25:25Z
       
       0 likes, 0 repeats
       
       @natecull This level of indirection really has to implement serialisation of memory to nonvolatile seamlessly. IBM got helluva close with the S/36 - AS/400 progression but it was one of those great ideas that wasn't mainstreamy enough.
       
 (DIR) Post #9fVkosyHnkw7h1J9rk by natecull@mastodon.social
       2019-02-05T01:03:07Z
       
       0 likes, 0 repeats
       
       @sophieactual What I want is to just dump the contents of RAM to disk, except, not the parts I don't want, only the parts I want, and also, all the parts I *might* want if I didn't have all the rest of my system. And none of the parts that would cause security problems. But also all the parts I would need to rebuild my system, including all the security-problem parts. And then be able to copy it from one disk to another. Not the bad stuff, just the good stuff. But also all the stuff.
       
 (DIR) Post #9fVkotFelApaYtR1wO by kragen@nerdculture.de
       2019-02-05T02:49:16Z
       
       0 likes, 0 repeats
       
       @natecull @sophieactual the hard part of persistence is not dumping core, nor even undumping core, but migrating data safely from one version of code to another
       
 (DIR) Post #9fVktAHxMH84YlY6oi by natecull@mastodon.social
       2019-02-05T02:50:04Z
       
       0 likes, 0 repeats
       
       @kragen @sophieactual Yep. Dealing with what happens when your symbols change or your nodes now are something else.
       
 (DIR) Post #9fVlB0lzTYJsGC6iBM by natecull@mastodon.social
       2019-02-05T02:52:22Z
       
       0 likes, 0 repeats
       
       @kragen @sophieactual It would be nice though if we could separate 'the difference between one version of code and another' from 'the difference between RAM and disk'. One shouldn't really imply the other.
       
 (DIR) Post #9fVlB0xKnNOSpNPlrc by kragen@nerdculture.de
       2019-02-05T02:53:17Z
       
       0 likes, 0 repeats
       
       @natecull @sophieactual Agreed! This is one of the reasons the Wercam protocol is so nearly stateless, for example.
       
 (DIR) Post #9fVlENj2az90JZKo6K by natecull@mastodon.social
       2019-02-05T02:53:54Z
       
       0 likes, 0 repeats
       
       @kragen @sophieactual Interesting. What's Wercam?
       
 (DIR) Post #9fVlI9Boa7baOHaZnc by kragen@nerdculture.de
       2019-02-05T02:54:35Z
       
       1 likes, 1 repeats
       
       @natecull @sophieactual The BubbleOS window system: https://gitlab.com/kragen/bubbleos/tree/master/wercam still very much a sketch — I'm interested in feedback!
       
 (DIR) Post #9fWEZOUzoQDZSv8YMK by sophieactual@occult.camp
       2019-02-05T08:22:36Z
       
       0 likes, 0 repeats
       
       @kragen @natecull Never encountered this one, and it's like *wheeeee* new concept.As long as that name isn’t a shortened form of werebeast, it which case, *yawn*.
       
 (DIR) Post #9fX3EyVLqOBIiTK8sS by kragen@nerdculture.de
       2019-02-05T17:50:25Z
       
       0 likes, 0 repeats
       
       @sophieactual @natecull well it didn't exist before October and it wasn't public until last month :)