The Atlas of Desire

Or: privatesquare, ten months later

It would be generous to say that privatesquare was ever released. Instead, the source code was made public with a long and twisty blog post and a flurry of screenshots. I’ve told a few people about my installation of privatesquare but since I haven’t had the stamina to run a service for strangers (and a free one, at that) it’s remained small and reserved for friends and family. A few people along the way have set up their own instances and that’s been both gratifying and enormously useful in working out some of the kinks.

Maybe there are lots of copies of privatesquare running in the wild. I have no idea and no way of knowing. This is not a bad thing. In the meantime, I’ve continued to chip away at the project adding small features and fixing bugs as they come up.

Recently, we moved from San Francisco to New York City. Maybe foursquare, itself, woulda-coulda-shoulda started in another city but once you start to live the day-to-day ritual in New York it becomes pretty clear why it started here. The Atlas of Desire feature, described below, probably would have languished in a pit of good intentions if we hadn’t moved here but I’ll come back to that in a bit.

When it was first announced, last November, privatesquare came with a long list of tricks it hadn’t learned so it’s probably long overdue for a status update.

New old things

Here’s an unordered list of the things privatesquare said it didn’t do went I pushed it out of the nest:

  • History pages

    North shore / South shore (Jan. 16)

    There are now history pages for venues and dates (and date ranges) as well as for cities. Details on that below.

  • Sync with the foursquare API…

    This is now possible, although it’s not enabled by default.

    Specifically, there is a little script that can be run by hand to import any foursquare check-ins that may have happened outside of privatesquare. This includes the history of check-ins that predate someone starting to use privatesquare. Or not. That’s why the feature needs to be explicitly enabled by each user choosing from one of three options:

    • Do not sync foursquare check-ins – Which is what it says on the tin. What you do elsewhere is entirely your business and privatesquare doesn’t need to know about it.
    • Only sync recent foursquare check-ins – Tell privatesquare to archive missing check-ins but only those that have happened since you signed up (with privatesquare).
    • Sync all foursquare check-ins past and future – This tells privatesquare to archive your entire foursquare history. This is what I’d expect most users to choose but it just always ends better when you let people make that decision for themselves.
  • The nearest linear cell-tower problem…

    Sort of. Not really, though.

    The nearest linear cell-tower problem is caused by the fact that when a person is using privatesquare from their phone they are connected to the Internet through a cellular rather than a wireless network. Since the nearest cell-tower is used as a proxy for your location and since cell-towers have a range that is sometimes greater than the radius used to query nearby venues the list of places that gets returned is sometimes weird and full of bunk.

    One issue is that the W3C geolocation API, used by web browsers to determine your location, doesn’t tell you how your location was acquired. Was it from a wireless network? A cell-tower? A passing drone, overhead? There’s no way to know and by extension no way to adjust expectations.

    The nearest linear cell-tower problem is ultimately a user-interface problem and not one that’s ever been tackled particularly well. In more recent versions of privatesquare there is sometimes a little grey dot (rather than blue) that’s meant to indicate where the code thinks you are and help provide some context for the other dots.

    Another option is to allow you to grow the search radius for each query but I haven’t done that yet. File under: Something, however inadequate, instead of nothing.

  • There is no ability to delete (or undo) check-ins…


    deleted checkins

    Except for the part where there’s no way to delete check-ins using foursquare API which is … puzzling, to say the least. So in those instances where you’ve checked in to both privatesquare and foursquare and then delete check-in using privatesquare you’ll be presented with a short (exasperated) note explaining the situation and a link to the foursquare site where you can finish things up.

    I know, right?

  • There is no ability to add new venues….

    Nope. Still not possible. Chances of it happening remain close to zero.

  • Nor is there any way to record events offline…

    Sort of. Kind of. But only one particular facet of the problem is handled well.

    I first started thinking about this at SXSW this year because the combination of both the cellular network and foursquare being simultaneously overloaded with eager users meant that privatesquare was often unusable in downtown Austin.

    deferred checkins / work in progress

    There are two problems that need to be sorted here:

    • The first is some way to store a check-in for future use when foursquare API is sad.
    • The second is some way to store a check-in for future use when the network itself is sad.

    The first problem is now accounted for with pending check-ins, something I’ll discuss more in a bit. The second problem isn’t really accounted for at all and at some point I just need to sit down and look carefully at what the Lanyrd kids did for their mobile site and probably just copy that.

  • There is no way to distinguish duplicate venues (same name, different ID)…

    Nope. Still punting on that.

  • Pages for venues…


    Every venue you’ve checked in to now has its own page on privatesquare. Each venue page has a list of the dates you’ve checked in there (including links to the actual check-in page), a link to other places you’ve checked in to nearby and a handy I am here now button for … well, check-ing in again.

    (art is your friend)

    Designing for thumbs, and all that.

  • Pages for cities…


    All check-ins in privatesquare are reverse-geocoded using the Flickr API which returns a list of Where on Earth (WOE) ID associated with a venue. At the moment only cities are recorded so you can’t filter check-ins by neighbourhood or country. Technically, there’s nothing to prevent it from being possible but cities seemed like a good and easy place to start.

    The places pages are kind of great and they are especially striking when you see them on a screen that is bigger than your phone. And because it uses the Flickr API it means that airports are bucketed as cities which makes even more sense in a foursquare context.

    privatesquare starts to get places pages / airport city

    Neighbourhoods are also a near-certainty given that no one’s geo infrastructure can figure out how to make peace with the meta-neighbourcities, called boroughs, that form the NYC metropolitan area and I actually have to suffer the consequences now that I live here. See also: the Atlas of Desire, below.

  • Export…


    There are handy links at the bottom of most pages to export your check-ins as either a CSV or a GeoJSON file.

    Exports are available for the following buckets: check-ins by date or date range; check-ins for a venue; check-ins for a place. Exports should be available but aren’t yet for for: check-ins by nearby-iness; check-ins by desire (more below).

    It has also been the case that if you’re running privatesquare in a controlled environment (like a shared web-hosting service) that enforces its own usage limits exporting check-ins for a user with billions und billions und billions of check-ins can be problematic. I don’t have a ready-made solution for this problem, yet.

New new things

At the same time all of that was being done, there were a bunch of smaller things happening. In no particular order they are:

  • Documentation!

    Gary Gale has done an amazing job of peeling away, with fresh eyes, the stack behind privatesquare and Flamework and keeping detailed notes about what everything means and how to get privatesquare up and running with a minimum of fuss in a variety of environments.

    Gary is also one of those people who checks in every time he exhales so he’s been excellent at finding the crumbly edge of things in privatesquare.

  • Weather tracking

    privatesquare records the weather!

    privatesquare tries to record the weather (based a venue’s latitude and longitude) whenever you check in. Not much is done with that data except to show in the list of check-ins for a venue. The data is stored alongside the check-in so there’s always to opportunity to do something clever and interesting with in the future and in the meantime it makes for a nice soundtrack when scrolling backwards through the history of a place.

  • Time of day tracking

    Sort of.

    Vladimir Agafonkin wrote a lovely little Javascript library to calculate the time pie for a given timestamp and Tom Carden was good enough to create a handy HTTP pony wrapper for it on Heroku that can be poked when a user checks in.

    All your check-ins that happened during the golden hour and that sort of thing.

    Unfortunately, with all the other network requests going out to third parties (foursquare, weather services and so on) the API call to get a time pie is often the one that fails or is killed because it happens so late in the chain of events. For the time being it is not a feature that is enabled by default. There’s a branch of privatesquare with the start of a pure PHP port of the code but it is both incomplete and full of bugs.

    If you’re not familiar with the idea of time pies, you should definitely read this blog post about them from the Stamen kids.

  • Deferred check-ins

    Occasionally the foursquare API is sad. Sometimes it happens when you’re trying to use privatesquare. In the past you were sorry-out-of-luck but now when that first API call to fetch nearby venues fails privatesquare will give you the option of writing down the name of the venue you were trying to check in to and stick it, along with a timestamp, in your browser’s local (storage) cache.

    Once that happens a link titled pending will magically appears in the navigation menu and from there you can go back in time (sort of) and finish check-ing in.

    Essentially all that’s happening is the usual check-in process being replayed but with a canned search term and a note to privatesquare to use a an equally canned check-in time instead of of right now.

    copy is interface, right?

    For a bunch of perfectly good reasons you can’t do the same in foursquare so any pending, or deferred, check-ins are not forwarded along to the mothership. I may change that in the future and handle the spacetime disconnect by simply adding a note to the foursquare check-in. We’ll see.

    This is basically what should happen when the network itself is down or unavailable. Cities like New York are strange beasts that way. It’s hard to keep the scale of the infrastructure, and the burden of its history, in mind some days. Aside from the fact there are whole pockets of the city with terrible network (read: cellular) connectivity there are others that completely silent, to this day.

    Subways are an obvious place to want to check-in and privatesquare shouldn’t let itself be defeated by the dark spaces underground so teaching the code to play nicely as an offline application is rapidly bubbling up the totem pole.

    I’m told that if you have one of the fancy auto-refilling monthly New York City subway passes it’s possible to retrieve a history of all the stations where it’s been swiped so that bodes well for some sexy Clipper Futures style integration with privatesquare in the not too distant future.

  • The Atlas of Desire


    Let’s be honest. On its current trajectory privatesquare will, sooner or later, become Dopplr. I don’t know what that says about foursquare and since the thing I built is, by design, not social I couldn’t exactly call the Chris Heathcote buckets described in the first blog post a Social Atlas. So, I called it what it is: an Atlas of Desire. Or, in concrete terms:

    • Web pages and list view for all the places you’ve checked-in to rolled up by the status you assigned: I am here; I want to go there; again again; and so on.
    • The ability to change a status after you’ve checked-in. For example, you could check-in to a restaurant when you sit down to eat and then change to again maybe when you leave.

    I’ve also added a new status simply called meh which, to my mind, is somewhere between again maybe and again never but ultimately the semantics are left up to individual users.

    If you asked me I’d tell you it’s for those places that you would visit for purely mechanical reasons: No matter how lackluster the food is it remains less bad than the bad craziness and temper tantrums caused when you melt down out of hunger.

    privatesquare got a new VERB

    Shelley Bernstein, from the Brooklyn Museum, deserves a proper shout-out for the Idea of Meh which was part of her work making public the museum’s collection metadata.

    In addition to filtering your check-ins by status, you can further prune those places by nearby-iness or by city. It’s become pretty obvious that you should also be able to scope your desire to a neighbourhood. (See above inre: neighbourhoods.) It’s not a hard feature to add but it is a lot of typing so it will happen sometime between this blog post and re-wiring everything to work offline.

Still broken things:

Things that should never have been broken in the first place and that maybe I should fix before I say anything else, but oh well…

  • OMGWTFTZ… timezones

    There are no excuses for this. It’s a thing that conveniently Just Works ® on the West Coast (because that’s the default timezone in the source code) and a thing complicated enough, under the surface, that I’d like to spend a little bit of time thinking about it before I go charging in to fix things.

    Probably the best thing would be to check for the timezone in the foursquare API response when you check-in and store that information locally. Failing timezone information in the API response I might build a simple httpony service on top of the whereonearth-timezeone dataset to do reverse geocoding for timezones.


Things still TO DO


Mike Migurski has requested that privatesquare grow an I’m on my way status flag which is tempting but we’ll have to see about that one. Meanwhile, in no particular order these are some of the outstanding known-knowns:

  • Make the tasteful pale grey permalink button and link for individual check-ins less invisible

    Yes, there are tasteful pale grey permalink buttons and links and for every check-in.

  • Build scripts for “cloud app” hosting

    Gary’s documentation for setting up privatesquare is great and makes the whole process less painful but enough technical hoop-jumping remains to make it all inaccessible to a lot of people. Meanwhile, there are a whole raft of hosted services, like Heroku or PHPFog, that allow you to one-button install web applications which seem like they would be a good fit for things like privatesquare.

    Unfortunately the way the privatesquare is bundled (read: the ways the files and folders are organized) doesn’t lend it to one-button anything with many of these services. privatesquare (and similar tools I’ve been tinkering with at the same time) has never had versioned releases but it might be time be time to start freeze-drying the code at particular moments and creating discrete bundles targeted at specific environments.

    Those releases would always lag a little behind the new and shiny but the up-side is that it would be easier to install, which is probably a trade-off some people would make.

  • Sharing. Maybe? Probably not…

    privatesquare is so-called for a reason. Every now and then I think about changing the default check-in status from don’t tell foursquare to don’t tell anyone which would, once you pulled in a user’s contact list, allow for sharing of things on privatesquare.

    I am still unconvinced about this one as it adds another layer of complexity and it’s not clear why it’s useful (foursquare is pretty good at that side of things) outside of the Atlas of Desire for which plain vanilla exports are probably more important. To whit:

  • Better integration and/or pillaging of the Dotspotting codebase

    A couple months ago I forked the source code for Dotspotting and started to add the ability to edit individual dots. That’s really as far as I got and I’m not entirely sure where it all fits with privatesquare but the shadows of the two projects seem to overlap more often than not.

    Something something something see above something about exports something something something maps something something something.

  • A proper API

    privatesquare already uses its own API but punts entirely on delegated authentication and still uses cookies for authentication and authorization. This is not ideal or, rather, is not a reason to lack an API that third-parties could build on.

    This is just another one of those tasks that requires some time where I sit down and spend the time to finish all the typing necessary to make it happen. Unfortunately, it is a thing made more complicated by the fact that having to read any of the OAuth specs makes me a little crazy in the head. It will happen.

  • Notes

    Maybe. I’m of two minds which is to say I’m not inclined to add notes because I like the simplicity of the site, now, but could be convinced. For a while I had a version of privatesquare that would let you add notes to Findery (née Pinwheel) from venue, or check-in, pages and relied on the magic of machine tags (on their side) to stitch everything back together. I liked that and when there is a public API for the site (in the past I was… well, yeah, anyway…) I will probably slip it back in as an optional feature.

  • Artisanal Integers!

    No, really.

    Privatesquare is at least half the reason that artisanal integers exist at all so it’s only fitting that is should start using them. Dan Catt’s blog post about London Integers is good place to start if you’re sitting there oscillating between confusion and table-pounding muttering the words artisanal… integers…


One of the nicest things anyone has said to me about privatesquare since I started building it was: Oh, I’d love to use it but I can’t because I have an Android phone. The nice part is: you can! privatesquare is nothing more than a what-do-you-call-it web application.

The whole native versus web application debate on mobile is interesting, but only insofar as there are still a few tricks that web browsers can’t do or that they are prevented from doing by the operating system itself. Beyond that it all smells too much like the insane and self-serving hair-splitting that people, in the 90s and early 2000s, made about WAP and other uniquely mobile technologies. Read: Small computers, in your pocket.

privatesquare gets a HUD / flying home from Lisbon

privatesquare is meant to play equally well with your desktop as it is your phone. As time permits and I can work through what a print-specific CSS file looks like it should also work on that crazy retrograde technology that refuses to die: paper. The extent to which privatesquare fails, in any of those arenas, is more a reflection of (my) poor design skills than it is proof that somebody’s preferred form factor wins at celebrity death match.

And on and on, it goes!

Pretty Maps – 20×200 Editions

Some of you may have noticed, mostly probably not — but the Laboratory has expanded its ranks. It’s starting to feel like a proper design collective in here. One of the lovely attributes of the people in the Lab are the broad sectors of activity they cover that doesn’t make it seem like they do a zillion different things, but do many things to work though a relatively core set of interests.

Take Aaron Staup Cope. He writes algorithms that tell computers what to do. He makes maps out of paper. He makes maps out of algorithms. He makes you think about the ways that algorithms can do things evocative of map-ness..on paper.


What I’ve learned from all of Aaron’s exploits in Dopplr-land, Open Street Maps-land, Walking Maps-land is that maps are dynamic, living things that should never be fixed in their format, style, purpose. They should never be taken for granted — even if the Google Map-ification of the world is doing just this. They should come in a bunch of sizes and shapes and colors and purposes. Etc.

Check out Aaron’s 20×200 Editions of his Pretty Maps. Get yours. I did. LA’ll go on one side of the wall. NYC will go on t’other.

Here’s what they say about Aaron over on 20×200.

For now, let’s set our eyes West, on L.A. County. Like prettymaps (sfba), prettymaps (la) is derived from all sorts of information, from all over the internet. Its translucent layers illuminate information we’re used to relying on maps for–the green lines are OSM roads and paths, and orange marks urban areas as defined by Natural Earth. They also highlight what’s often not seen–the white areas show where people on Flickr have taken pictures. It’s an inverse of a kind of memory-making–a record of where people were looking from instead of what they were looking at, as they sought to remember a specific place and time.

Quiet But Not Quiescent

Judge not the less yammer-y state of the studio blog to indicate that there is nothing worth yammering about. It’s just that the clang of steel caressing code has been going on and that in great measure, too. Some of you may have glimpsed and grinned at the fantastic electronified edition of the paper Drift Deck that we developed a couple of years ago. That’s right. We’ve added *batteries to the Drift Deck and it’s fallen into the *app’s an app which is fantastic because it means the last remaining physical card editions can become properly *artisinal and the electronic battery editions can spread the sensibility of the Drift Deck concept to the rest of the world.

Release is imminent. Prepare ye iPhones. Hop expectantly from foot-to-foot. More news in a short while, including linkages to downloadables. In the meantime, check out the new Drift Deck webified “page” and the fantastic roster of hammererers that batteryified the ‘deck.

..And then — onto the next thing here. It’ll be quiet a little, but good things are baking in the kiln, rest assured.

*Willow next. The superlative friendregator for the discerning social being.
Continue reading Quiet But Not Quiescent

Grafikdemo by Niklas Roy


While in Basel a few weeks ago, Nicolas and Cris and I stole off for a few moments to check out this typically expensive art and technology exhibition in the docks region of the city. I forget the name of it, and also did not have any paper money so I didn’t get an exhibition catalog. Nicolas has a more complete description of the project on his recent post about Grafikdemo by Niklas Roy.

I just wanted to share a thought I had about the project which is the curious way it was manufactured. Interior to the display cabinet of this lovely old Commodore is a physical object — a lattice frame colored in a green florescent paint of some kind that made it look like it was the old fashioned style of CAD rendering where everything was green basically (I think) because people were using green CRTs (for those too young to remember — that’s cathode *ray tube, which now sounds quite archaic). The object can turn and tumble across the x, y and z axis by using the keys on the number pad of the CBM. It’s quite nice. It’s both an homage to an earlier day and a joke, of course, in a way. Nice project.
Continue reading Grafikdemo by Niklas Roy

Generative Urban Design



Get the flash player here:

var so = new SWFObject(“”, “PictoBrowser”, “500”, “430”, “8”, “#E0E0E0”); so.addVariable(“source”, “sets”); so.addVariable(“names”, “LA Generative Procedural Maps”); so.addVariable(“userName”, “nearfuturelab”); so.addVariable(“userId”, “73737423@N00”); so.addVariable(“ids”, “72157622074827670”); so.addVariable(“titles”, “on”); so.addVariable(“displayNotes”, “off”); so.addVariable(“thumbAutoHide”, “off”); so.addVariable(“imageSize”, “medium”); so.addVariable(“vAlign”, “mid”); so.addVariable(“vertOffset”, “0”); so.addVariable(“colorHexVar”, “E0E0E0”); so.addVariable(“initialScale”, “off”); so.addVariable(“bgAlpha”, “71”); so.write(“PictoBrowser090818080648”);

These images are from a series of generative, algorithmic sketches to describe what Los Angeles might look like as an “augmented reality.” Specifically, one view of the city from my point of view, where the topography and built environments height-density were a function of my presence. An ego city or something.

This is more an idea that has been stuck in my head and needed some expression. I am not at all sure what one does with this or how one uses it in any instrumental way except as a proper augmentation of the one canonical reality. A bit of a Kevin Lynch (Good City Form which I haven’t finished but am enjoying and, of course, The Image of the City) style map of presence, sketched from accumulated presence data rather than specifically what I imagine or how my brain conceives of urban space.

These are simple, early sketches to see how home made cartography might create density maps that reveal some sort of cartographic indication of where you have been, leaving blank or perhaps more obvious the places you have not been. Or a GPS that shows a fog-of-war map, or constructs routes for you based on a principle of exploration — routing you through areas that you have yet to see or explore.

To be continued, as always. Just curious.

Why do I blog this? But, besides that point, I am anxious to find alternative perspectives of the city, especially ones that are dynamic and produced from closer to the ground-up, rather than from the top-down. Using occupancy as a measure, or as the algorithmic seasoning seems like a Lynchian natural first step. Based on the amount of time spent in particular areas, my own personal maps should reflect this somehow, either by fogging out all the rest of the space, drawing the rest of the space as blank or, as in these sketches, altering the terrain height and the built environment’s density and building heights, etc. (Of course, these are not actual buildings from Los Angeles — it is all a thought, a sketch of these ideas. These are the things I have been thinking about, and other kinds of algorithms and/or mechanisms to materialize these ideas, such as Drift Decks, Apparatus, Personal Digital Pal’s etc.

Also, I thought I lost these sketches after complete, well-founded frustration with the absolute most crappiest piece of over-priced software I have ever come across in the whole world.
Continue reading Generative Urban Design

William H. Whyte Revisited: An Experiment With An Apparatus for Capturing Other Points of View

Times Square Urban Living Room from Julian Bleecker. More Apparatus Videos.

[[Update: The Apparatus was exhibited at the HABITAR show at LABoral in Gijón Spain this summer 2010.]]

A couple of months ago a colleague, Jan Chipchase, floated by my desk and handed me a book of his called “The Social Life of Small Urban Spaces” by William H. Whyte. I had no idea who this Whyte character was and I could only guess what it was about and, just by the title — I figured this would lead me down another rabbit’s hole of exploration and experimentation.

As I flipped through the pages, looking at the images of urban observations of New York City from the 1970s, I was enthralled by the technique as well as the substance of the material. Whyte and his team were capturing the intriguing, sometimes curious ways in which people adapt small corners of urban space and their habits and practices and rituals. The pace and momentum of pedestrian movement is intriguing. Without assuming anything in particular, Whyte’s work was capturing movement in a seductive way — even small scale jolts and shifts and gestures. Someone moving a chair just a small bit to indicate that he is not attempting to invade someone’s microlocal private space. You see the “fast-movers” bobbing and weaving quickly around a phalanx of slow moving tourists, window shoppers or a more elderly pedestrian.

Wonderful, intriguing stuff. Sold. Hooked. What’s the brief? Oh, what would I do? Follow footsteps and curiosities, I guess. I was curious — how can the momentum and pace and speed (or lack thereof) of the urban flows be captured, highlighted, brought into focus and revealed in such a way as to visually describe time, movement, pace, scales of speed and degrees of slowness?

There is lots to say about Whyte, I am sure. I have only begun to scratch the surface of this well-known urban sociologist, explorer, scout, observer. But, for the purposes here what happened as a result of this brief conversation with Jan was something that spread through the studio — a bout of curiosity that led to another, other project. It started simply by wondering if the observational studies that Whyte had done both in this book and in other projects could be done today? And, if so — what might they observe? What might be the questions? By what principles and assumption would small urban spaces be explored?

A copy of the films Whyte had made was secured in short order. Simple observations from ground level as well as from carefully chosen vantage points up high, above the ground. This intrigued me. There had been a project in the studio this time last year with things placed high for observational purposes (high chairs, periscopes, etc.) and it was filed away in the “lost projects” binder, so this seemed perhaps a way to revive that thinking. Over the course of a week, I made four trips to Home Depot, Simon jigged a prototype bracket on the CNC machine, and I had a retractable 36 foot pole that I imagined I was going to hang a heavy DSLR off of — it scared the bejeezus out of me and required two people to safely raise up. Too high, too floppy.

Another pole — 24 feet. Daunting but serviceable. It retracts to 8 feet, which is still quite high, but the range made it worth the embarrassment. After a brief bang around the reputation and suggestion networks, a wide field of view camera was identified and two ordered. Two cameras, secured to the pole produced a fair resolution, very wide field of view for displaced observations from a peculiar point of view. Good enough.

Penn Station Still Observation from Julian Bleecker on Vimeo.

Observation apparatus deployed at 7th Avenue main entrance to Pennsylvania Station, NYC, capturing ingress & egress flows, pedestrians waiting, deciding, waking up in the morning upon hitting the sidewalk, &c. The slow-scan mode highlights things which are not moving and therefore often discounted as to their import such as, for instance, the two peculiar characters to the far left who scarcely move (and were still there at the end of the day, around 7pm!), defensible space obstacles in the form of potted plants, people who wait for things, time to pass, people or taxi cabs, &c.

A notion interpreted and brought into focus by Rhys Newman.

Friday June 19, 16.17.17

15th Street and 5th Avenue, New York City.

Using some generative algorithms to show neutral zones of flow and highlighting areas of relatively stable inactivity. Somewhat mitigated by the windiness of the day which caused the cameras to move quite a bit.

Whyte was intrigued by the movement, flows, behaviors, but also emphasized the engaged observations — pen and paper, not just measurements and statistics. He was observing and analyzing both statistically — flows of people per time period over various widths of sidewalk, for example — as well capturing those things that one misses in abstracted data sets. In the film, his avuncular tone draws our attention to small curious practices. Things like someone to moving a chair in a public open space barely a few feet from where it was so as to indicate to a nearby fellow New Yorker that they were not intending to impose upon their public-privacy.

There was something about these sorts of couplings between the analytic data — numbers and so forth — and the observed, seen and demonstrated activities of people. Observed practices crafted into a kind of story about this subject — the social life of small urban spaces. Finding ways to observe and perhaps produce useful insights and design inspirations based on the observations seems a reasonable goal. There is only so much you can do with the books of abstracted data squirreled away some place before you have to go out in the world. Where I was most interested in exploring was somewhere “lower” than the high-level observations which produce intriguing visualizations but are many steps removed from the everyday, quotidian practices. Some empirical, rough-around-the-edges, observational data ethnography. A close cousin of the truly fascinating data visualizations we have grown to love. Perhaps close to Fabien’s notion of citizen sensors and citizen cartography.

We got plenty of guff with the Apparatus when we took it on the new Highline Park. One rather abrupt park minder — sort of behaving like an airline stewardess on a really bad day — was not pleased with the pole at all and let us know it. I had to talk to someone back at the offices of the "Friends of The Highline" via a cellphone given to me by a guy who was like a human surveillance entity. The woman on the phone explained – after listening to my perhaps overly analytic and historic description of the project, Whyte, &c. – that they do not allow tripods or, "you know..long poles" in the park.

Errr ahhh…

It was all very weird, and very un-appealing and put a cloud on what is a playful project, I think, but — *shrug*.

It’s all to be figured out. Or not. Perhaps its just observation. Scraps and visual thinking. Some notes in video. Constructed objects and anticipation of going mobile in Seoul and Helsinki and Linz and London. &c. Or some kind of exploration to suggest alternative ways of seeing the world around us. That may be closer to the point, at least now.

The post-processing stages of the activity are mostly explorations of ways in which individuals or small groups of people in movement could become their own producers of representations of what they do, in an aesthetic sense. What other sorts of systems might people-flows evoke or be reminiscent of? Weather patterns? Displacement grids? Where is there stillness in the bustle? Can the city’s flows be slowed down to evoke new considerations and new perspectives of what happens in the small urban spaces?

People themselves are often seen to be controlled in a top down fashion — even less insidious than “the man”, I think of the significant pedestrian operator — the “I want to cross” button at many busy intersections. It’s a point of contact with the city’s system of algorithmic, synchronized flows. But what about people as their own algorithms, by virtue of their occupancy of urban space? Not following specific top-down plans, but bottom up actions and movements. Not augmented reality but productions of realities. The center of what happens, displaced from the operational command center that articulates how the flows will operate.

I love these moments that countervene the system-wide control grids, which you can see if you watch carefully the raw footage from 15th Street and 5th Avenue where pedestrians spread themselves into the street, stretching the boundaries of the safety of the sidewalk in anticipation of the crossing. Or, perhaps something I love less but it is still something to note, a bicyclist turning the corner against traffic, possibly into pedestrians who may be less inclined to look from whence traffic should not be coming.

We push buttons to control the algorithms of the city, as in the buttons to control signals and so forth. Or roll our cars over induction loops – these are parameters to the algoithms of top-down controls over urban flows. Suppose we interceded more directly or suppose the geometry of the city were represented this way, as a product of the non-codified “algorithm” of movements.

What sort of world would this be? What would it look like?

Highlighting only things that are moving in the Union Square Farmers’ Market.

A cartesian grid distorted by flows around the Union Square Farmers Market.

Wednesday June 17, 15.04.24

Wednesday June 17, 14.44.17

Help thanks to Marcus Bleecker, Chris Woebken, Rhys Newman, Simon James, Jan Chipchase, Aaron Meyers, Noah Keating, Bella Chu, Duncan Burns, Andrew Gartrell, Nikolaj Bestle. And so on.

Videos live online and will accumulate over time. This is Times Square, NYC, Highline in Chelsea NYC, and a generative video done with Max/MSP Jitter

LIS302DL. A 3 Axis Accelerometer

Tuesday July 14, 13.12.21

Ooooh. Those code jockeys in the Laboratory have been mucking about in the ol’ locker room, giving each other rat-tails, chucking firecrackers in the halls and having a good horsin’ around. Smoking cigarettes and drinking cheap booze. Everything. Stink bombs in the girl’s room. Whatever. It’s a regular Lord of the Flies fest on the electronics wing of the Near Future Laboratory. And, look what we found! Some pole dancin’ hardware porn! Step right up! Don’t crowd..

Wednesday July 15, 13.04.33

In reverent honor of my friends and chums who are holding forth with Sketching in Hardware 09 in London and for the solemn sadness I have for not being able to participate this year, I hereby drop some code and hardware science up on this piece of blog with a dozen or so lines of Arduinoness meant to articulate and instrumentalize the wonderful ST Micro LIS302DL 3 axis accelerometer, delivered here via the Sparkfun breakout board. Without further ado, but with plenty of firmware nakedness, here’s the sketch..*slug* this one’s for you, Sketchers..*sob*


// TWI (I2C) sketch to communicate with the LIS302DL accelerometer
// Using the Wire library (created by Nicholas Zambetti)
// On the Arduino board, Analog In 4 is SDA, Analog In 5 is SCL
// These correspond to pin 27 (PC4/ADC4/SDA) and pin 28 (PC5/ADC5/SCL) on the Atmega8 and Atmega168
// The Wire class handles the TWI transactions, abstracting the nitty-gritty to make
// prototyping easy.

// We've got two accelerometers connected. You configure the address of each one
// by some wiring
int address_1 = 0x1C; // SDO on the LIS302DL connected to GND makes it at I2C address 0x1C
int address_2 = 0x1D; // SDO/MISO on the LIS302DL connected to VCC makes it at I2C address 0x1D
void setup()
  // we'll use the serial port to spit out our data

  byte tmp;

  Wire.begin(); // join i2c bus (address optional for master)

  // Read from the "WHO_AM_I" register of the LIS302DL and see if it is at
  // the expected address.
  // If it is not, spit out a useful message on the serial port. We'll get
  // erroneous data from querying this address, though.
  while(Wire.available()) {
   tmp = Wire.receive();
   if(tmp != 0x3B) {
     Serial.print("Problem! Can't find device at address "); Serial.println(address_1, HEX);
   } else {
  // configure the device's CTRL_REG1 register to initialize it
  Wire.send(0x20); // CTRL_REG1 (20h)
  Wire.send(B01000111); // Nominal data rate, Device in active mode, +/- 2g scale, self-tests disabled, all axis's enabled

  // Read from the "WHO_AM_I" register of the second LIS302DL and see if it is at
  // the expected address.
  // If it is not, spit out a useful message on the serial port. We'll get
  // erroneous data from querying this address, though.
  while(Wire.available()) {
   tmp = Wire.receive();
   if(tmp != 0x3B) {
     Serial.print("Problem! Can't find device at address "); Serial.println(address_2, HEX);
   } else {

  // configure the device's CTRL_REG1 register to initialize it
  Wire.send(0x20); // CTRL_REG1 (20h)
  Wire.send(B01000111); // Nominal data rate, Device in active mode, +/- 2g scale, self-tests disabled, all axis's enabled

void loop()
  Serial.print("1:"); read_acceleration(address_1);
  Serial.print("2:"); read_acceleration(address_2);

void read_acceleration(int address) {
  byte z_val_l, z_val_h, x_val_l, x_val_h, y_val_l, y_val_h;
  int z_val, x_val, y_val;
 // Now do a transfer reading one byte from the LIS302DL
 // This data will be the contents of register 0x29, which is OUT_X
 Wire.requestFrom(address, 1);
   x_val = Wire.receive();
 // This data will be the contents of register 0x2B which is OUT_Y
 Wire.requestFrom(address, 1);
    y_val = Wire.receive();

 // This data will be the contents of register 0x2D, which is OUT_Z
 Wire.requestFrom(address, 1);
    z_val = Wire.receive();

 // I want values that run from {-X to 0} and {0 to +X}, so a little bit math goes on here...
 if(bit_is_set(x_val, 7)) {
   x_val &= B01111111;
   x_val = -1*x_val + 128;
   x_val *= -1;

if(bit_is_set(y_val, 7)) {
   y_val &= B01111111;
   y_val = 128 - y_val;
   y_val *= -1;

 if(bit_is_set(z_val, 7)) {
   z_val &= B01111111;
   z_val = 128 - z_val;
   z_val *= -1;

 Serial.print(x_val); Serial.print(":");Serial.print(y_val); Serial.print(":"); Serial.println(z_val);

Tuesday July 14, 13.09.59

Wednesday July 15, 14.37.44

What’s going on here? Well, straightforward silliness and hardware gafflin’. Two accelerometers on the I2C bus just cause. It looks like this is as many as you can have on there, unless you do some shenanigans or create a second bus with some cleverness.

The hardware spec on the device (Which. You. Should. Read.) explains that, if we’re going to talk to these things using the I2C bus we need to wire CS to the high end of the logic rail, so VCC. This tells the device that we’ll be using I2C protocol. Then we need to address the device. If we connect the MISO (master in, slave out) pin to GND, then the address will be 0x1C. If we connect the MISO pin to VCC, then the address will be 0x1D. So, MISO, in the I2C configuration, controls the least significant bit of the address. This way, without further mucking about, we can have two accelerometers on the bus, which is probably one more than most situations demand, but just in case.

If I were to connect more than two, I would probably go ahead and use the three-wire protocol and have one microcontroller pin per accelerometer dedicated for chip-select (CS). Fortunately, this device supports three-wire protocols, or the SPI protocol.

Tuesday July 14, 13.17.11

The Arduino code example above does some simple preambling — initializing the two devices after making sure they are there. Then it just loops forever, reading accelerometer data from each of the three axes of each one, doing a little simple bitwise arithmetic to make the data from a negative value for negative g (upside down in most situations) to positive g (right side up, in most situations). The initialization stage sets the accelerometer range — that is, the max/min values it will read — to +/- 2g. (The device will support +/- 8g according to the specifications.)

There are some cool additional features that I don’t play with, including some interrupts that can be triggered if the device falls suddenly, or if it is “clicked/tapped” or “double-clicked/double-tapped”, which is kinda cool, I guess. If you can come up with a non-gratuitous scenario. Which is probably harder than it sounds. But, even in your gratuitous-I-double-click-my-glass-of-Porto-to-signal-the-waiter-I-need-more-Porto the device will save you the hassle of trying to do this sort of interaction semantics in firmware and get you back to finishing what you were doing in the first place.

Why do I blog this? Notes on the integration of hardware to firmware to ideas. This time with a “new” accelerometer that has some pretty neat features. After this, we’ll be going to paper-pulp and line drawings for a bit folks.

Companion Species Training Game

Wednesday July 15, 14.35.42

The new-to-me Nintendo DS “Personal Trainer Walking” (heck of a name..) alongside of the Japanese language game whose name I forget and cannot read.

I found out about this Nintendo DS game from Kevin who found out about it from Russell. I literally just got it yesterday, but it’s pretty exciting to see. I can only imagine in my head out the play dynamics unfold, but I’ll be playing with it and have some more thoughts before long.

So far I enjoy the “blind” design of the pedometer part of the concept — not too much display other than this blinking light which changes color when you’ve reached your goal. Simple, direct and not a nagging taunt from a fancy LCD that shows more than you need. You focus on your activities or just being a normal human being without poking and prodding at the device all the time, checking your status in detail, etc. When you’re in the world, be in the world, I say.

Wednesday July 15, 15.47.20

Wednesday July 15, 15.14.44

This one aspect of the design is quite curious — there is an extra pedometer device for your dog! I mean, I get the idea — people walk their dogs and so this is perfect for you and your dog to get some training together. The language in the users manual / guidebook is very funny, and I’m not sure if this is deliberate or perhaps the sensibilities of a Japanese game design company? I know none of the facts and that does not matter so much to me, but maybe it’s my sensitivities to things that fold together different species into what my advisor calls “transpecies” or “companion species” — species that need each other, or play and interact together in curious ways. (cf The Companion Species Manifesto) Thus, I cracked up when I read these items in the guide:

Wednesday July 15, 15.12.07

The meter should only be used by a person or dog. It will not work properly with any other type of animal.

The meter should only be used on a dog when supervised by a person. It should be attached in a location where it is not at risk of being chewed or swallowed.

Great stuff. I’m looking forward to seeing how the DS experience works.

Downside: I’m pre-disappointed that walking is the only physical activity it seems to work with. I ride a bike and want this to count. And there are so many other sorts of physical things that won’t count, I assume.


Russell points out the simplicity of the synchronization ritual, which is fantastic. Point. Press. Watch your pedometer pebble appear from a pipe on the screen and become “alive” on your screen. If you’ve ever tried to synchronize ANYTHING you’ll laugh out loud, as I did. If you’ve ever designed ANYTHING that requires synchronization, take close note of the interaction ritual here. It’s fantastically playful and simple and sensical.

Some related topics: this perpetual Laboratory project, Flavonoid.

GPX to DXF – Drawing GPS Tracks

Sunday March 29, 13.25.20

Lines and arrows and splines point the way. Taken in a parking lot near the beaches at Santa Monica.

It has not been a quiet couple of days here in the Laboratory. Lots of gear and glassware about. Goggles, bunsen burners and all that sort of thing. And the report draft was just finished with Nicolas Nova, which occupied many early mornings. We almost spilled an organic, but toxic material on the draft which cause a collective gasp, but it was pulled out of the way, just in time before irrevocable damage was done. We’re writing with ink and pen these days, which feels so much more angelic and respectful, but are, through incidents like this, reminded that such may have nostalgic integrity, but it is also quite delicate and precious.

In the midst of all that was the need to translate a GPS track from GPX format to DXF. This was harder than I thought it would be, at least after poking around the Google. There are some tools that’ll do format conversions and so forth, but they were way more expensive than I thought was reasonable, seeing as we’re not making precious objects. It’s basically a translation of one connected graph format to another.

Okay, so — it was time to think about making our own tools, which took 10 times less time than the original set of Google searches, mostly because of the recently discovered ancient treasure of a Java library our buddy Tom Carden wrote back in the Precambian of the Age of the Network — somewhere’s around 1996 or some such…

This library provides enough functionality to read a GPX track and draw it on screen. The DXF library can spit that drawing from the screen out as a saved DXF. So, that basically solves the problem. The DXF files that come out are flat lines that can then be serviced by other software to do other things. (There also exists this Kabeja library for consuming DXF and creating DOM models, which we’ll save for another day.

My lead toward the Carden code was found here on the forums, where I found enough of a simple code snippet to get me out and through the chiseled hole in the brick wall I had hit.

Also to note is the small comment in the small simple bit of code that can cobble together many separate GPX files (tracks from a GPS) into one larger one, which can be quite convenient.

Why do I blog this? Mostly for my own recollection and notes as to how things are done. It’s been enough time in the jungle of small, utility challenges that, when on another project inevitably in the future, some small task I need to perform smells familiar — but, why? One gets the feeling — I’ve had to do this before? What project was it? How did I do it? Playing in the geo/map-making/cartography space has all these little formats and translation steps that are a bit zany to wrangle. Jotting a post with a bit of a reminder helps. Te bigger “why do I blog this?” has to do with using real-world GPS tracks as a basis for constructing other things — the input is movement in the world, an effort to figure out how a map might look that inverted the assumptions about static geographies and fluid movement, so that the ground moved and the things that moved became static. *shrug*

import processing.dxf.*;

// Based on Tom Carden's code and GPX library available at
// Press "R" and your track gets saved as a DXF file which
// you can use in lots of other things..

import tomc.gpx.*;

GPX gpx;

GPXTrack track;
GPXTrackSeg trackSeg;
String trackName;

double minLat, maxLat;
double minLon, maxLon;
double minEle, maxEle;
boolean record = false;

final static int SEPARATOR = 200;
String filename, filepath;

// I collapse lots of individual GPX files into one larger file
// using the free gpsbabel.
// At the command prompt (the GUI editions don't have enough features
// to do this) you'll do something like this:


/Applications/GPSBabel+-1.3.5/gpsbabel -i gpx -f 20090321.gpx 
-f 20090401.gpx -f 20090402.gpx -f 20090403.gpx 
  -x transform,wpt=trk,del 
  -x radius,distance=5,lat=34.0236,lon=-118.4319,nosort 
  -x transform,trk=wpt,del  
  -o gpx -F foo.gpx

The "-x" filters do a couple of things.
The first -x filter turns the tracks into waypoints to work around
an issue that gpsbabel has with the "radius" filter
The second -x filters the output only to points that are within a
5 mile radius of the specified lat/lon, which is useful if you want
to limit the range of data you draw.
The final -x filter turns the waypoints back into tracks, which is what we want
Finally, we output as GPX formatted data and
write the whole thing to the file called foo.gpx.dxf


void setup()
  // Yep, hardcoded path to the GPX file we'll process
  filepath = "/Users/julian/Desktop/GPS Tracks/foo.gpx";
  // We'll use the name of the file for our DXF output, with the ".dxf" extension added
  filename = (new File(filepath)).getName();
  size(800, 800, P2D);
  gpx = new GPX(this);

  // you can load a file or a URL evidently..

  // Find scope of track file so we can scale our drawing
  minLat = 2000; minLon = 2000; minEle = 100000;
  maxLon = -1000; maxLat = -1000;

  println("track count "+gpx.getTrackCount());
  for(int j=0; j < gpx.getTrackCount(); j++) {
  track = gpx.getTrack(j);
  println("track size "+track.size());
  for(int k=0; k<track.size(); k++) {
     trackSeg = track.getTrackSeg(k);
     println("track seg size "+trackSeg.size());
  for (int i = 0; i < trackSeg.size(); i++)

    GPXPoint pt = trackSeg.getPoint(i);
    if ( < minLat)
      minLat =;
    if (pt.lon < minLon)
      minLon = pt.lon;
    if (pt.ele  maxLat)
      maxLat =;
    if (pt.lon > maxLon)
      maxLon = pt.lon;
    if (pt.ele > maxEle)
      maxEle = pt.ele;
println("Lat: " + minLat + " to " + maxLat);
println("Lon: " + minLon + " to " + maxLon);
println("Ele: " + minEle + " to " + maxEle);

boolean hasDrawn = false;

void draw()
  if(record == true) {
    beginRaw(DXF, filename+".dxf");
    hasDrawn = false;
  if(hasDrawn == false) {
  //line(0, SEPARATOR, width, SEPARATOR);

  double distance = 0;

 for(int j=0; j < gpx.getTrackCount(); j++) {
  track = gpx.getTrack(j);
  //println("track size "+track.size());
  for(int k=0; k<track.size(); k++) {
     trackSeg = track.getTrackSeg(k);
     //println("track seg size "+trackSeg.size());
       GPXPoint prevPt = trackSeg.getPoint(0);
      PVector prevPos = GetPosition(prevPt);
      for (int i = 1; i < trackSeg.size(); i++)
       GPXPoint pt = trackSeg.getPoint(i);

    // Show track
    PVector pos = GetPosition(pt);
    line(prevPos.x, prevPos.y, pos.x, pos.y);
    prevPos = pos;
  if(record == true) {
    record = false; // stop recording to the file
    println("done writing "+filename+".dxf");
  hasDrawn = true;

void keyPressed() {
  if (key == 'R' || key == 'r') {
    record = true;

PVector GetElevation(int n, GPXPoint pt)
  return new PVector(
      map(n, 0, trackSeg.size(), 10, width - 10),
      map((float) pt.ele, (float) minEle, (float) maxEle, SEPARATOR - 10, 10)

PVector GetPosition(GPXPoint pt)
  return new PVector(
      map((float) pt.lon, (float) minLon, (float) maxLon, 10, width - 10),
      map((float), (float) minLat, (float) maxLat, SEPARATOR + 10, height - 10)

Dog Eared "Distraction"

Turn Over LA "River" Thursday March 12, 21:39:03

Running the blog-the-dog-eared-pages algorithm on Bruce Sterling‘s fantastic “Distraction“, I’ve selected these gems. They’re all intriguing speculations about a near future world to be, complete with some insights and implications that trace the now to the then if you think about how such moments, conversations, objects and designed artifacts could come to be in the year 2050. Particularly at this agitated moment amongst the the various and multiple worlds’ and their financial-political-socio-technocultures.

Oscar took the opportunity to learn how to use a Moderator laptop. He had been given one, and he rightly recognized this gesture as a high tribal honor. The Moderator device had a flexible green shell of plasticized straw. It weighed about as much as a bag of popcorn. And its keyboard, instead of the time-honored QWERTYUIOP, boasted a sleek, sensible, and deeply sinister DHIATENSOR.

Oscar had been assured many times that the venerable QWERTYUIOP keyboard design would never, ever be replaced. Supposedly, this was due to a phenomenon called “technological lock-in.” QWERTYUIOP was a horribly bad design for a keyboard — in fact QWERTYUIOP was deliberately designed to hamper typists — but the effort required to learn it was so crushing that people would never sacrifice it. It was like English spelling, or American standard measurements, or the ludicrous design of toilets; it was very bad, but it was a social fact of nature. QWERTYUIOP’s universality made it impossible for alternatives to arise and spread.

This is a good one. I’ve been fascinated with the ways a particular configuration or design like this — the keyboard layout — becomes a kind of expressive social object. There are all of these deep histories it seems, depending on who you believe, about all standards which are always social-political-historical compromises that lock-in specific meanings. Sometimes you hear that QWERTY was a way to slow typists down so that the mechanical aspects of pre-digital keyboards would not jam the machines in early typesetting and so forth, as Sterling describes in this passage. I’ve also heard that QWERTY was a way to help early typewriter salespeople sell the typewriter because they could easily type out the word “typewriter” only using the top row of letter keys and impress early would-be purchasers. (QWERTYUIOP gives you each letter of “typewriter”, which is something many people to recognize.) In this passage, Sterling is reminding us of this first point — that things set in place, like someone etching their name in drying concrete and, even if flawed, these become “social facts of nature” leaving the inscriptions of all the considerations that will always flow forth from those early debates and conventions and compromises, which become especially resonant when the “lock-in” is for something that spreads widely becoming a universality. p.382

We love those Regulators like brothers and sisters. We got nothing in common with you. Except that…well, we’re Moderators because we use a Moderator network. And the Regulators use a Regulator interface, with Regulator software and Regulator protocols. I don’t think that a newbie creep like you understands just how political a problem that is.

Protocols, interfaces, software, networks yielding to differentiation at the level of social and political factions is a very curious extrapolation. At the same time, it is a kind of embodiment of the politics of protocols as well-expressed in Alexander Galloway’s fascinating two network books Protocol: How Control Exists after Decentralization and
The Exploit: A Theory of Networks (also with Eugene Thacker).

Without the high-flying theory and Deleuzian barnstorming, Sterling captures the reasonable future world in which the world wide network has fractured in this way between Moderators and Regulators for some reason having to do with social and political differences between these two groups. A near future such as this seems reasonable, international standards bodies notwithstanding. Receding back into the recent past of incompatible networks would be an outcome of the collapsed world Sterling depicts in Distraction, where global networks may be seen as creating exploitable linkages between teetering giant centers. For instance, the interconnectedness of financial institutions that allowed them to become too tightly connected in strategic terms — able to trade amongst each other too easily so that the game of hot potato that led us to today’s crisis finally caught everyone with bad potatos in the end — could be something that is regulated and controlled. In other words, if an outcome is that institutions must insulate themselves in some fashion, or they become categorized as to who they can do business with, a result could be different kinds of network protocols optimized for that specific business. Regulated banks use the Regulator network; Moderate banks use the Moderator network. p.335

But this was not the strange part. The strange part was that brand-new nomad manufacturers were vigorously infiltrating this jungle of ancient junk. They were creating new, functional objects that were not commercial detritus — they were sinister mimics of commercial detritus, created through new, noncommercial methods. Where there had once been expensive, glossy petrochemicals, there was now chopped straw and paper. Where there had once been employees, there were jobless fanatics with cheap equipment, complex networks, and all the time in the world. Devices once expensive and now commercially worthless were being slowly and creepily replaced by near-identical devices that were similarly noncommercial, and yet brand-new.

When “DIY” attains to its logical zenith, fake becomes the new real. I actually can’t wait for this to happen. The pinnacle of knowledge circulation in the networked age. How-to, tutorials, maker culture, sharing of knowledge (or maybe just descriptions and step-by-step procedures) all coming together so that people make their own stuff, from new materials that do not have to be tuned for epic scale levels of manufacturing. You need something, make one or two rather than having 100,000 of them made offshore someplace and shipped at great expense and with enormous carbon footprint. Natural experimentation with alternative materials, features, etc. p.329

Motility Network

Kevin bought four sets of earclips from a blanket vendor. “Here, put these on.”

“Why?” Greta said.

“Trust me, I know my way around a place like this.”

Oscar pinched the clamp onto his left ear. The device emitted a little wordless burbling hum, the sound a contented three-year-old might make. As long as he moved with the crowd, the little murmur simply sat there at his ear, an oddly reassuring presence, like a child’s make-believe friend. However, if he interfered with the crowd flow — if he somehow failed to take a cue — the earcuff grew querulous. Stand in the way long enough, and it would bawl.

Somewhere a system was mapping out the flow of people, and controlling them with these gentle hints. After a few moments Oscar simply forgot about the little murmurs; he was still aware of them, but not consciously. The nonverbal nagging was so childishly insistent that accomodating it became second nature. Soon the four of them were moving to avoid the crowds, well before any approaching crowds could actually appear. Everyone was wearing the earcuffs, so computation was arranging human beings like a breeze blowing butterflies.

The fairground was densely packed with people, but the crowd was unnaturally fluid. All the snack-food stands had short, brisk lines. The toilets were never crowded. Children never got lost.

Just a fascinating extrapolation into the near future of a number of ideas, such as a kind of flash mob concept, where a crowd is optimized to itself, allowing for smooth flows and transfers — a meta surveillance and control system that does not have the nasty baggage that such things normally. Ground traffic control system that helps you get from “A” to “B” in an optimal way, whatever “A” or “B” might be. This is a concept expressed here that is quite intriguing to me, such as strategies for exploring especially urban space, like the analog Near Future Laboratory project, “Drift Deck” and other psychogeography and cartography explorations. p.326-327

There was a long uneasy silence. Then Griego burtst out in a fury. “Don’t get all high-and-mighty with me, Mr. Third-in-His-Class. You think it’s easy running corporate R&D? It was just fine, as long as the guy didn’t have anything. Jesus, nobody ever thought a goddamn sugar engine would work. The goddamn thing is a giant germ in a box! We build cars up here, we don’t build giant germs! Then they pull this crazy stunt and..well, it just makes our life impossible! We’re a classic, metal-bending industry! We have interlocking directorates all throughout the structure, raw materials, fuel, spare parts, the dealerships…We can’t get into the face of our fuel suppliers telling them that we’re replacing them with sugar water! We own our fuel suppliers! It’d be like sawing off our own foot!”

“I understand about interlocking directorates and mutual stock ownership, Ron. I was sitting right next to you in business school, remember? Cut to the chase — what about the battery?”

“Batteries have the highest profit margin of any automobile component. We were making money there. You can’t make real money anywhere else in our business. The Koreans are building auto bodies out of straw and paper! We can’t support an industry when cars are cheaper than grocery carts! What are we gonna tell our unions? This is a great American tradition at stake here! The car defines America: the assembly line, suburbs, drive-ins, hot rods, teenage sex, everything that makes America great! We can’t turn ourselves inside out because some big-brained creep has bult an engine out of bug guts! There wouldn’t be anything left of us! The guy is a menace to society! He had to be stopped.”

“Thank you for that, Ron. Now we’re getting somewhere. So tell me this — why didn’t you just pull his damn funding?”

“If only it were that simple! We’re required by federal fiat to invest in basic R&D. It was part of our federal bailout deal. We’re supposed to have trade protection, and we’re supposed to catch our breath, and jump a generation ahead of our foreign competitors. But if we jump a generation of the damn Koreans, our industry will vanish entirely. People will make cars the way they make pop-up toast. Proles will build cars out of bio-scrap, and compost them in the backyard. We’ll all be doomed.”

So you’re telling me that you’ve achieved a tremendous scientific R&D success, but as a collateral effect, it will eliminate your industry.”

“Yeah. That’s it. Exactly. And I’m sorry, but we just can’t face that. We have stockholders to worry about, we have a labor force. We don’t want to end up like the computer people did. Jesus, there’s no sense to that. It’s total madness, it’s demented. We’d be cutting our own throats.”

Well, this is very much like the collapse of the automotive industry in the US, clearly. I also like this dig at corporate R&D. This idea that things discovered that could turn into something that is to the larger good would be hidden away if it would overturn the existing order. R&D in this way is ultimately conservative. I’m not sure I believe in R&D, for these reasons and others, but that’s a longer post. p.295-297


“But the economy’s out-of-control. Money just doesn’t need human beings anymore. Most of us only get in the way.”

“Well, money isn’t everything, but just try living without it.”

Kevin shrugged. “People lived before money was invented. Money’s not a law of nature. Money’s a medium. You can live without money, if you replace it with the right kind of computation. The proles know that. They’ve tried a million weird stunts to get by, roadblocks, shakedowns, smuggling, scrap metal, road shows…Heaven knows they never had much to work with. But the proles are almost there now. You know how reputation servers work, right?”

“Of course I know about them, but I also know they dont really work.”

“I used to live off reputation servers. Let’s say you’re in the Regulators — they’re a mob that’s very big around here. You show up at a Regulator camp with a trust rep in the high nineties, people will make it their business to look after you. Because they know for a fact that you’re a good guy to have around. You’re polite, you dont rob stuff, they can trust you with their kids, their cars, whatever they got. You’re a certifiable good neighbor. You always pitch in. You always do people favors. You never sell out the gang. It’s a network gift economy.”

“It’s gangster socialism. It’s a nutty scheme, it’s unrealistic. And its fragile. You can always bribe people to boost your ratings, and then money breaks into your little pie-in-the-sky setup. Then you’re right back where you started.
“It can work all right. The problems is that the organized-crime feds are on to the proles, so they netwar their systems and deliberately break them down. They prefer the proles chaotic, because they’re a threat to the status quo. Living without money is just not the American way. But most of Africa lives outside the money economy now — they’re all eating leaf protein out of Dutch machines. Polynesia is like that now. In Europe they’ve got guaranteed annual incomes, they’ve got zero-work people in their Parliaments. Gift networks have always been big in Japan. Russians still think property is theft — those poor guys could never make a money economy work..”

I love this idea of reputation servers — a possible near future for today’s social networks, friend followers, etc. Somehow participation in today’s networks yields a new index of sorts — your trust ranking or something like this. A nice substitute for today’s “credit rating” systems, which are ridiculously opaque, operating on algorithms we who are rated can only guess about. Besides, in the near future, when the role of banks will have possibly whithered to a collapsed prune of their former selves, we may in fact circulate and leverage financial activities within networks of trust that are more peer-to-peer, like this Susu financial practices that is a cornerstone of various expat communities. p.256-257 (See also

Continue reading Dog Eared "Distraction"