Last update: Mon, Aug 22, 2011 at 9:08 AM.
SLIde objects
    • Each user may have a single JSON-structured object stored with his account.
    • The URL of this object is returned as part of the JSON struct that validates a user. If you present valid credentials for a user, you are entitled to read and write to that struct.
    • If you POST to the SLIde endpoint with a JSON struct in the body, using the same params as in the validation request, with one additional param, and the params are valid, and the feature is enabled, the server will store the struct.
    • When you do a GET on the SLIde endpoint, and the user has data stored with the account, there will be two additional values returned, dataUrl and dataSerialnum. dataUrl points to the JSON struct. dataSerialnum is a number that is incremented each time the data object is saved.
    • When you POST, you must supply the four required parameters, and a fifth, dataSerialnum, which is the value you received from the GET. If your serialnum agrees with the one on the server, and the storage feature is enabled, the POST will succeed.
    • If, when you did the GET, there was no dataUrl and therefore no dataSerialnum, send the value 0 for the dataSerialnum param.
    • If you POST to a server that does not have the storage feature enabled, it will return an error.
    • An example response for a user who has data attached to his account.
    • {
      "response": "yes",
      "message": "",
      "dataUrl": "http://static.reallysimple.org/slide/dave/myData.json",
      "dataSerialnum": 8
      }
    • It's the user's data.
    • When you get confused, remember this.
    • The breakthrough idea in the worldoutline was the realization that today's computers and networks can easily process what we humans think are very large blobs of data. The reason we think they're large is because writing packs a lot of meaning in small spaces. Compared to the audio and video objects that today's computers are expected to transmit and process.
    • What that's meant is that I store my entire world in a single file. And when I make a change to one document, simultaneously I'm updating all of them. Here's a screen shot of what that looks like.
    • As the size of my outline has grown, I have invented ways to split off branches into separate files. Ones that I don't need to access very often and therefore don't want to sling around. But the default assumption is that my bag is very big and deep and I should stop worrying so much and just let it go.
    • And the results have been spectacular.
    • Now I want to apply this principle to data as well as writing. That's the big idea in SLIde objects.