3 priorities, in no particular order: support myself, become more capable, enhance rationality by publishing “seed exoshell” software.
An exoshell, as I understand it, is the software that you think with, in much the same way that you think with a piece of paper or a whiteboard. Current exoshell-ish software might include emacs (“emacs as operating system”) or unix shell scripting (“go away or I will replace you with a small shell script”). Piotr Wozniak clearly uses SuperMemo as an exoshell. Mark Hurst’s “Bit Literacy” annoys me more than fingernails on a chalkboard, but I think he’s talking about his exoshell and life with an exoshell. Quicksilver, Maple, Mathematica, Matlab might also be candidates.
One of the problems with present exoshell-ish software is the long learning process before you get to “fully hackable”. The gurus (e.g. RMS, Wozniak) achieved their close integration by gradually growing from a simpler, fully hackable version.
Well… the idea is that the tiniest exoshell would simply be one that continuously verifies / trains the user to make changes to the exoshell. So I took a standard design for a quine, and modified it so it injects a random error into the source code that it spits out.
So the idea is if you took this, and repeatedly fixed it, then ran it, then fixed it, then ran it, et cetera, you would soon be comfortable adding other features. Maybe it acts as a little to-do list maintainer program, as well as its previous features. Maybe it also acts as a compiler or a shell or a virtual machine emulator—or stores recipes for how to download and install the compiler, shell, and virtual machine that you like to use.
I’ve done about 10 iterations from that starting point, combining it with SQLite and adding a self-test framework and so on, but I haven’t gotten to the point of using it routinely for interacting with the world.
Recently, I’ve started studying tiny self-compilers (Fabrice Bellard’s otcc, and Edward Grimley-Evans’s bcompiler and cc500). Maybe an ideal seed exoshell would have the functionality of Lennart Augustsson’s 1996 ioccc entry, the readability of Darius Bacon’s Halp and the host-independence of Rob Landley’s Firmware Linux..
Has there been a ‘what is your exoshell’ thread on LW yet? Would it be appropriate to have one? In the purest definition, mine is pretty small (a thousand lines of Perl or so), but if you include ‘software you communicate with’, which I think I do, it grows rather large, to include most of what’s running on my server.
My exoshell used to be plain text files, then it was MediaWiki, now it’s Google Wave.
Not just the raw text itself, but scripts to extract XML tags and other data from the text files, and do stuff with the data.
That was a relatively straightforward process with raw text files.
It was a bit more complicated with MediaWiki, but that seemed to work even better.
Google Wave has the advantage of collaborative editing in realtime, and some advanced search features, but it has lots of serious disadvantages, (including there currently being no way to export to XML!) but hopefully this limitation will soon be overcome. For now I’m using the Ferry extension to export to Google Documents, and from there I batch-export to html.
Oh, and I recently started some experiments with scripts to extract tags from this data and make some fancy quantifiedself graphs. If anyone is interested in hearing more about this, please let me know.
Adelene Dawner and some of my other friends use Google Wave too, but mostly to read stuff I wrote, and to comment on it, or chat live about it.
Oh, and another friend, MetaFire Horsley, aka MetaHorse, uses Google Wave to write some awesome sci-fi stories, and get live feedback on them. And that’s working pretty good.
I might as well ask: does anyone else here use Google Wave? Or does anyone here have a Wave account that they’re not using because they don’t know anyone else who uses Wave?
I’ve read a few attempted descriptions of what Google Wave is and have not really been able to make sense of it or understand how it might be useful to me. Several of these descriptions have admitted to difficulty expressing either its function or purpose clearly as well. I haven’t been motivated to try to understand it further because I’m not aware of any problem I have which it appears to be a solution to.
The main useful feature of Wave is the realtime collaborative editing, and the ability to be instantly alerted to any update to any wave you’re monitoring. There’s more, but there’s probably not much point for me to list all of the other features here. And I’m reluctant to try to convince other people to join, because it can be extremely addictive, and it’s still kinda annoyingly glitchy, and is still missing some important features.
If you’re not the sort of person who tries new things just for the sake of trying them, or if you didn’t get immediately excited about Wave when you first heard about it, or you don’t think you have any use for realtime collaborative editing, then you’re probably better off waiting until someone you know is using Wave for something specific that you want to join in on.
and yes, it can be used as a persistent, HTML form of IRC, where you can leave or resume a conversation at any time, or return to an old branch of the conversation and visually branch it off, or even have multiple branches running simultaneously, in separate parts of the wave, rather than the different threads constantly overlapping, which always ends up happening in IRC.
3 priorities, in no particular order: support myself, become more capable, enhance rationality by publishing “seed exoshell” software.
An exoshell, as I understand it, is the software that you think with, in much the same way that you think with a piece of paper or a whiteboard. Current exoshell-ish software might include emacs (“emacs as operating system”) or unix shell scripting (“go away or I will replace you with a small shell script”). Piotr Wozniak clearly uses SuperMemo as an exoshell. Mark Hurst’s “Bit Literacy” annoys me more than fingernails on a chalkboard, but I think he’s talking about his exoshell and life with an exoshell. Quicksilver, Maple, Mathematica, Matlab might also be candidates.
One of the problems with present exoshell-ish software is the long learning process before you get to “fully hackable”. The gurus (e.g. RMS, Wozniak) achieved their close integration by gradually growing from a simpler, fully hackable version.
To a fledgling computer geek, this sounds absolutely awesome, and I would love some elaboration!
Well… the idea is that the tiniest exoshell would simply be one that continuously verifies / trains the user to make changes to the exoshell. So I took a standard design for a quine, and modified it so it injects a random error into the source code that it spits out.
I call it “ExoMustard” Source is at: http://www.johnicholas.com/exomustard.c
So the idea is if you took this, and repeatedly fixed it, then ran it, then fixed it, then ran it, et cetera, you would soon be comfortable adding other features. Maybe it acts as a little to-do list maintainer program, as well as its previous features. Maybe it also acts as a compiler or a shell or a virtual machine emulator—or stores recipes for how to download and install the compiler, shell, and virtual machine that you like to use.
I’ve done about 10 iterations from that starting point, combining it with SQLite and adding a self-test framework and so on, but I haven’t gotten to the point of using it routinely for interacting with the world.
Recently, I’ve started studying tiny self-compilers (Fabrice Bellard’s otcc, and Edward Grimley-Evans’s bcompiler and cc500). Maybe an ideal seed exoshell would have the functionality of Lennart Augustsson’s 1996 ioccc entry, the readability of Darius Bacon’s Halp and the host-independence of Rob Landley’s Firmware Linux..
Has there been a ‘what is your exoshell’ thread on LW yet? Would it be appropriate to have one? In the purest definition, mine is pretty small (a thousand lines of Perl or so), but if you include ‘software you communicate with’, which I think I do, it grows rather large, to include most of what’s running on my server.
My exoshell used to be plain text files, then it was MediaWiki, now it’s Google Wave.
Not just the raw text itself, but scripts to extract XML tags and other data from the text files, and do stuff with the data.
That was a relatively straightforward process with raw text files.
It was a bit more complicated with MediaWiki, but that seemed to work even better.
Google Wave has the advantage of collaborative editing in realtime, and some advanced search features, but it has lots of serious disadvantages, (including there currently being no way to export to XML!) but hopefully this limitation will soon be overcome. For now I’m using the Ferry extension to export to Google Documents, and from there I batch-export to html.
Oh, and I recently started some experiments with scripts to extract tags from this data and make some fancy quantifiedself graphs. If anyone is interested in hearing more about this, please let me know.
I think you are the first person I know of, who actively uses Google Wave.
Adelene Dawner and some of my other friends use Google Wave too, but mostly to read stuff I wrote, and to comment on it, or chat live about it.
Oh, and another friend, MetaFire Horsley, aka MetaHorse, uses Google Wave to write some awesome sci-fi stories, and get live feedback on them. And that’s working pretty good.
I might as well ask: does anyone else here use Google Wave? Or does anyone here have a Wave account that they’re not using because they don’t know anyone else who uses Wave?
oh, and here’s some more information about what I’m using Wave for.
I’ve read a few attempted descriptions of what Google Wave is and have not really been able to make sense of it or understand how it might be useful to me. Several of these descriptions have admitted to difficulty expressing either its function or purpose clearly as well. I haven’t been motivated to try to understand it further because I’m not aware of any problem I have which it appears to be a solution to.
The main useful feature of Wave is the realtime collaborative editing, and the ability to be instantly alerted to any update to any wave you’re monitoring. There’s more, but there’s probably not much point for me to list all of the other features here. And I’m reluctant to try to convince other people to join, because it can be extremely addictive, and it’s still kinda annoyingly glitchy, and is still missing some important features.
If you’re not the sort of person who tries new things just for the sake of trying them, or if you didn’t get immediately excited about Wave when you first heard about it, or you don’t think you have any use for realtime collaborative editing, then you’re probably better off waiting until someone you know is using Wave for something specific that you want to join in on.
and yes, it can be used as a persistent, HTML form of IRC, where you can leave or resume a conversation at any time, or return to an old branch of the conversation and visually branch it off, or even have multiple branches running simultaneously, in separate parts of the wave, rather than the different threads constantly overlapping, which always ends up happening in IRC.
As far as I can tell, it’s a HTML form of IRC, but persistent.