Last Week on My Mac: Moving with the times and the data

I started studying for my first degree in Oxford in 1972, before the UK joined what was then the Common Market, only a year after we had decimalised our currency from pounds, shillings, and pence, and when the Cold War was at its height. Richard Nixon was re-elected President of the US, and it was the year of the Watergate break-in. It ended with heavy bombing of Hanoi and Haiphong by US forces in the Vietnam War.

It was also the first year in which CSV, the current de facto standard for importing data into spreadsheets, came into general use, even though spreadsheets as we know them today did not appear for a further seven years.

CSV isn’t even a standard, but a group of character-delimited text formats including those based on commas (strict CSV) and tabs (‘tab-delimited text’). Yet, if you want to import data into Microsoft Excel version 15.31 of February 2017, or Numbers version 4.0.5 of October 2016, it is still the only practical format of its kind.

Much of today’s data now comes from online sources, and much of that is delivered in JSON format. As that dates back around fifteen years and is hardly novel, you’d expect modern spreadsheets and databases to be able to import JSON. Then you’ll be disappointed to learn that they can’t.

It’s not as if JSON is a particularly complex format: it consists of pairs of attributes and values, along the lines of
"category": "general",
"processUniqueID": 228200,
"timestamp": "2017-02-20 16:03:23.879317+0000",
"category": "TMLogInfo",
"processUniqueID": 228279,
"timestamp": "2017-02-20 16:23:34.595557+0000",

Reorganised into typical spreadsheet format, those might represent the data table
"category", "processUniqueID", "timestamp"
"general", 228200, "2017-02-20 16:03:23.879317+0000"
"TMLogInfo", 228279, "2017-02-20 16:23:34.595557+0000"

But that sort of simple conversion is apparently beyond the capabilities of Microsoft Excel’s mere 1.79 gigabytes of application.

Both Excel and Numbers carefully ignore the excellent support provided for the parsing, reading, and writing of JSON data in macOS, which would surely make such support relatively straightforward, on Macs at least.

If spreadsheets have become staid and resolutely anchored in the late twentieth century, last week has again shown how smaller developers are not so hide-bound, and continue to innovate.

First, there was the release of a major new version of Eastgate Systems’ unique note-based app Tinderbox 7. Although my affections are stronger for Eastgate’s hypertext authoring environment Storyspace, for which there are now 44 tutorial articles here, Tinderbox is more generally useful, and much more widely used. The headline changes include the introduction of composite notes, a set of new fonts, and quick links to connect notes instantly, and there are hundreds of other improvements in details.

I haven’t yet had much time to use Tinderbox 7, but have already discovered how sleek its new quick links are. In the text of any note, simply type two (square) left brackets [[ followed by the initial letter of the note to which you wish to link. A menu then pops up listing the titles of all notes which start with that letter (case-insensitive). Select the title of the destination for that link, and the link is made without any further work.

This works for destination notes in containers, saving you from having to use parking spaces whilst you navigate in the Map view to locate that destination note to complete the link. This is one important feature that I hope comes across to the next version of Storyspace, as it will greatly accelerate linking up writing spaces there.

Composites are aimed more at the Tinderbox note-taker, as they let you aggregate individual notes. You can therefore put small snippets of text in each note, group them into a composite, then selecting that composite will show the text from each note within the composite. Although perhaps not quite as compelling as quick links for those using Storyspace to develop hypertext, I can see some exciting uses for them if they make their way to Storyspace too.

As an aside, Tinderbox and Storyspace have all sorts of ingenious ways to help you import content, such as the ability to ‘explode’ text according to delimiters; they also support traditional CSV import too.

Upgrades to version 7 from previous versions of Tinderbox are $98, but if you have bought Tinderbox or an update subscription in the last year, they’re free.

The other major upgrade which I have just installed is Dash 4, Kapeli’s ultimate documentation browser. There is no other app which provides instant access to so many documentation sets, from the man pages of command tools, through the whole of Xcode’s reference materials on Apple’s operating systems, to LaTeX, Markdown, WordPress – it is hard to come up with a language or environment to which it does not give access. Kapeli claims a total of over 150 API documentation sets, and I can well believe it.

The interface has been further improved, and its code playgrounds and snippet support have been enhanced. Although they were probably available in the previous release, I have now installed its Swift 3 documentation and accompanying playground, and a series of useful cheat sheets for things like regular expressions and NSPredicate. The upgrade price is only $14.99.

If only Apple and Microsoft could be as progressive and innovative as smaller software developers such as Eastgate and Kapeli: I’m sure that Excel and Numbers would have been talking JSON for years.