Update 2013-11-10: I added some edge cases to show the completeness of this format.

Kris Zyp’s jsonpointer is a tool for addressing part of a JSON object, that’s designed to be both powerful and familiar. It supports any value for a key that JSON supports, yet it looks like a path from a URL or a filesystem.

A jsonpointer is the path from the root node of a JSON document to either itself or an interior node. A jsonpointer starts with a “/”. A “/” is also the simplest jsonpointer. After that, it contains one or more keys or indexes (in JavaScript an index is a key, but the JSON spec makes a distinction between keys and indexes), separated by “/” characters. To include a “/” character in a key (JSON supports this), use “~1”. To include a “~” character in a key, use “~0”.

What it lacks are relative paths and home paths (“~”). Since jsonpointer requires that it start with a “/”, this frees me to prepend anything but “/” to the start of the expression. Here are the things I can prepend:

  1. A dot (.), which makes it a relative path, like “./foo”.
  2. Two dots (..), which makes it a relative path from the parent node, like “../foo”.
  3. More than two dots (…), which will go up extra levels. “…/foo” would be analogous to “../../foo” in UNIX file paths. “../../foo” in my augmented json pointer would go to “baz” to quux in this json object: {“foo”: “not here”, “a”: {“b”: {“c”: “baz”}, “..”: {“foo”: “quux”}}} That is, instead of jumping up three levels, it would jump up two levels and interpret the second “..” as a key in a json object. Two dots go up one level, three dots go up two levels, four dots go up three levels, and so on.
  4. A tilde (~) makes it a path from the home directory.

Some examples of edge cases:

  1. the absolute path [“.”, “hello”] to access foo in {“.”: {“hello”: “foo”}} will be /./hello
  2. the relative path [“.”, hello”] to access foo in {“quux”: {“.”: {“hello”: “foo”}}} where the current path is /quux will be “././hello”.
  3. the relative path [“..”, “baz”] to access “foo” in {“quux”: {“..”: “hello”}, “baz”: “foo”} when where the current path is “/quux” where there is a “..” in the current node will be “../baz”. To access “hello” using a relative path from “/quux”, use “./..”.

I tried out hood.ie today after hearing about it a few times and I think it’s worth giving a shot, if you’re interested in rich web applications. It’s easy to install for what it does, which is set up a local node.js and couchdb environment with an admin interface. Deployment looks like it will be really easy, too.

A while back, I bought islessmore.com and put up a page.

It answers the question “is less more” with “No.”. My justification for this answer is that I think in the information age it is too hard to get a definitive answer to something, and the value of having a definitive answer to this simple question exceeds the insight to be gained from stating the paradox in this manner. The paradox is important, but there are other ways to state it.

But to give less, and the paradox, some credit, I made the site ultra-simple.


bat@bmamba.local:~ $ curl -I http://islessmore.com/
HTTP/1.1 200 OK
Date: Sat, 06 Apr 2013 02:10:22 GMT
Server: Apache/2.2
Content-Type: text/html
Via: 1.1 vhost.phx2.nearlyfreespeech.net:3128 (squid/2.7.STABLE7)

bat@bmamba.local:~ $ curl http://islessmore.com/
No.
bat@bmamba.local:~ $

Swaroop C H wrote a blog post about switching back to org-mode from using various apps, including Things.app and Evernote, which sync. He says he realized that he prefers a laptop-only workflow, and that his mobile devices don’t actually help him stay organized. If this is even close to being accurate, I want to switch to a laptop-only workflow, as I don’t appreciate the lack of presence that I get from relying on my cell phone.

I’m going to try to adopt a less stressful workflow by switching more to my laptop for organizing things. Wish me luck!

I just downloaded my tweet archive. Here are a few tweets I found:

The 4 in Deadmau5′ 4×4 = 12 is actually an A, and A = sqrt(12). #leetspeek 16 feb 2012

Hmm, “json” ends with the same letters (and for me, sound) as “python”. Two new words: jsonic and jsonista! 5 oct 2010

I’m in a Wave about Boulder with @HKoren. We’re using photos, and lots of threads. I’m learning more about it. Anyone want to join? @ or DM. 24 nov 2009

I suppose this is the opposite of NoSQL. http://theformspider.com/ #onlysql 7 Oct 11

crayfish 4 Oct 12