I recently built a web tool to solve a simple question that comes
up often in urban planning: after taking
how much of lot can be built on?
The answer is often surprising: for example, Vancouver’s
most common residential zone only allows houses to cover about 28%
of the land.
I’m a member of a nonprofit called
Abundant Housing Vancouver, and as you can probably tell, I happen to do some programming
too. In 2017 I was able to spend a lot of time combining these
interests which was pretty great!
Over a few blog posts I’ll briefly outline the projects I
worked on – they’re all open source and who knows, they
might even be useful for other housing advocacy groups someday.
First up: the
Abundant Housing Vancouver Letter Builder.
Over the past 10 years, I’ve spent a lot of time looking for
apartments in both Vancouver and in Tokyo. It’s been an
interesting chance to compare two very different cities.
Vancouver has a
remarkably low vacancy rate, so right off the bat renters are competing for a very small
pool of available homes. Apartment hunters are also usually stuck
with Craigslist. Craigslist is far and away the best place for
browsing apartments in Vancouver,
but not because it’s a well-designed site.
a perfect example of network effects: it offers a poor user experience, but landlords can’t
afford to ignore the large pool of renters using Craigslist and
Things are very different in Tokyo. It seems difficult to get
comparable rental vacancy data (see the numbers and caveats
here), but the sheer number of rental listings available online makes
me suspect that the vacancy rate is much higher than in Metro
Vancouver. The tools are better too: apartments tend to be listed
by brokers on a few big websites, and the experience for renters
on those websites is much better than on Craigslist.
Since most North Americans don’t know what they’re
missing, I’ll give a quick overview of what it’s like
to look for an apartment in Japan.
I’m building an interactive online map of all properties in
Vancouver, and along the way there have been a few pleasant
surprises. Most recently:
the .MBTiles tileset format
is surprisingly cool.
Mapbox is one of the biggest
players in the open source mapping space (especially now that
Mapzen and Carto have thrown in the towel – Mapzen is closing and
Carto is now using Mapbox tech). One of the many nice things about
Mapbox is that they developed
an efficient open standard for vector map tiles, appropriately named Mapbox Vector Tiles (read
you’re not sure why vector tiles are great).
Map tiles are often pre-computed for each zoom level, and once
you’ve done that you need to store them somewhere. Enter
the .MBTiles tileset format.
Poking around under the hood
My first encounter with this file format occurred when I used Eric
to simplify my data set at lower zoom levels. Tippecanoe generates
.mbtiles files, which are easy to serve to clients either by
uploading to Mapbox, using a third party tile server, or even by
rolling your own server with something like the
mbtiles Node.js package.
All great… but after setting up
a server my
Mapbox GL JS client refused to render the tiles. I tried a few
things without much luck, and then as a last resort I decided to
poke around in the .mbtiles file. I was expecting to need a hex
editor or similar, but then I saw this beauty in the spec:
MBTiles is a specification for storing tiled map data in SQLite
The files themselves are just relational databases in a known
schema – how cool is that? Emboldened, I grabbed
a SQLite client
and opened up my .mbtiles file:
Hi there - I’m Reilly Wood, a software developer from
Vancouver, Canada. This site is still under development, but
I’m planning to fill it up with thoughts and impressions
about software, cities, finance, and whatever strikes my fancy.
Stay tuned (perhaps with
the handy RSS feed).