this is aaronland

history demands renumeration

much history so remember

This is the story I want to remember. See also: and see also-er.

privatesquare two dot oh

There's a new version of privatesquare.

I guess it's safe to call it version "two dot oh". It is sufficiently different and sufficiently backwards incompatible with earlier versions that I created a snapshot of the project's first two-years worth of work and called it version 1.0. Installing privatesquare from scratch is pretty much the same as always but upgrading an existing installation is a thing that will demand some time and attention. It's not ideal but privatesquare remains a mornings-and-weekends project.

Upgrading requires attention because there are some pretty fundamental changes to the underlying database structure. The changes mean that it's now possible to check-in to other kinds of places that aren't Foursquare venues. As of this writing you can check-in to three other types of places.

The first is a canned list of funny-haha "states of mind" like "on a bike" or "on a plane" or "on a telco" or "kill me now". I say funny-haha because on the surface it just seems sort of silly but is actually really useful. It's a fixed list and the criteria for what get's included is pretty arbitrary. At the moment it's very much biased towards modes of travel and office life but both are situations which often demand a kind of non-specific outlet, whether it's in the moment or in the re-telling.

Just in case you still thought artisanal integers were a joke...

Second, people now have the ability to create and check-in to "user-defined" places. This is basically what it sounds like. I could have just written a bespoke interface to add things to Foursquare via their API but like the original motivation for writing privatesquare there are always going to be places that you don't necessarily want to share with strangers or a third-party service. It is aggressively simple, partly because I wondered how quickly I could add it to this round of changes (after getting "states of mind" working) without it ballooning in to a sinkhole of feature creep.

User-defined places have names and nothing else, yet. You can choose to check-in to a place at the time it's created but that's about it. The other notable feature, which user-defined places share with states of mind is that they may not have fixed geographies. Just think about being able to check in to "hungover" for a minute and you can see the attraction of this feature. It's not required but it is possible.

It's not possible to share user-defined places yet and it probably won't be for a while. Back in the Flickr days we used to talk about user-defined places a lot. We never did anything about it but that was only because of organizational minutiae and a lack of time. All the geo place-based stuff was built using the Where On Earth (WOE) gazetteer packaged up as an an enormous (like 12GB by the time I left) "data pack" which was then poked and prodded by an HTTP interface. This is where WOE IDs came from.

I always hoped that we could supplement the data pack approach in two ways. First, I wanted to be able to create new data packs specific to a service (where service means a thing that people used, like Flickr or Upcoming or Yahoo Autos) and the ability to pair them with the master data pack and to then weight the results for the associate data services (like geocoding) by source. Second, I wanted to be able to bias geographic results using a ranked list of data sources or providers which in Flickr's case would have inevitably meant user-defined places. The closest we ever got to this were the flickr.people.geoBookmarks API methods but they never got the attention they deserved and were sort of stillborn from the moment they were released.

I suppose I could (will have to... ?) add photo sharing to privatesquare but in the meantime most of the "pipe" has been laid to start doing all the yummy things around user-defined places that we never did at Flickr.

As an aside, one of the interesting things about creating venues that don't have fixed geographies is that it's not hard to start thinking about privatesquare as a kind of Dotspotting client. One of the early design decisions with Dotspotting was that it be a document-based system which means it's never been possible to update a sheet once it's been uploaded in to the site. Variable geography check-ins in privatesquare don't actually solve this problem but you could imagine using privatesquare to create a user-defined place (for example Eric's coloured-dots-on-drains collection) and doing all your collection over time and then exporting it as a CSV file in to Dotspotting at the end. Between user-defined places and a proper public-facing API (more on that below) the number of places that privatesquare and Dotspotting could finally be made to hold hands is actually pretty exciting but there are enough other things going on right now that I will just have to look at that place longingly for the moment. The possibilities are delicious to think about, though.

Finally, it's possible to check in to buildings from the New York Public Library's 1852 Perris Atlas. This is a feature that was started way back in the summer during the NYPL's Maps Hack workshop and which then got steamrollered by the rest of life. It's not really of much use to anyone outside of New York City and even for those people who live it's not entirely clear how or why you'd use it. The API used to look up buildings is (I think) not completely worked out and it doesn't completely map to the idea of venues or check-ins so in that way it's sort of like a proof-of-concept or reference implementation that's been pushed in to the spotlight without having had time to put its pants on.

But who cares! It's working code that proves it can be done. The code now supports four distinct types of places you can check-in to and while none of it is very elegant (or documented anywhere yet) it does work. It means that it's possible to think about adding support for other things. It's possible to think about a way to check-in to the 37, 000 works of art at MoMA (not a metaphor). It means that, with a bit of work, it ought to be possible to rebuild the database from the Archive Team rescue and use that a source for venues. Or, going back to the NYPL buildings, imagine using the Library of Congress' historical gazetteer (which isn't yet public so far as I know) as a check-in source.

I was there, indeed.

All of which feels like progress to me and a nice place to stop for a while and let things settle down. privatesquare remains a thing that you build and install yourself. This is not the service-for-strangers that I am ready or want to run yet. The code and the installation (or upgrade) instructions are available on the GitHubs, over here:

Things that got finished.

Things that I didn't quite finish.

That that didn't get addressed at all.

Things that come next, pretty much in this order.

Things that happened between then and now.

Good times.