Connections: Lateral Thinking makes for Sharable Content


PDF Slide Deck: Let’s Talk Energy March 2015

Think about the last time you found out something really interesting to you online – was it something you were even aware existed when you started looking, or was it a series of links that brought you further from your starting point but closer to what you wanted? Were you even looking for it at the time or did it ‘find’ you through your connections your other interests or a combination of those? Like the perfect Christmas gift, you never even knew you wanted it till you had it.

Continue reading

The Zen of Watch Maintenance

sinn265 versus sna139

On the left, an aspirational watch, the Sinn265 mechanical with special materials, special mechanical movement and special, ridiculous price. On the right, the Seiko sna139 for the less that 8% of the price…if I could put one together from parts!

If you program and do interfaces, you might like watches. It is a distillation of function and interface and taste. It’s technology as your personal signature and of course, the Very First Wearable.

It might just be a reminder that not everything has to be ‘smart’ but no so smart looking.

You don’t need one any more, but you may want one because of it represents – a self contained universe of design thinking and craftsmanship that solves a problem that has been solved many times before, but in its own unique way.

Since it is a personal signature, when you find one you want, you want it. And when it is no longer available, you have to start thinking, ‘how badly do I want to make this happen?’ The answer may depend on whether you want to pick up a pair of Tweezers.

Here is an album was my first experience some time ago in making a watch I wanted from a few different pieces

JavaScript Promises A+ “Anytime, Anywhere”

Screen Shot 2015-01-15 at 5.54.49 PM

Like Vasquez says: “Anytime, Anywhere”

tl;dr: here is the codepen

Expect all network communication to be asynchronous. You don’t know when requests will come back to you, and you likely have no idea what order they will arrive back. So you write your code asynchronously, same as you do in real life:

“Look, just get back to me when it’s done, ok?”

“Sure thing, I’ll call when it’s ready”

That’s all a Promise is – that conversation and that commitment. And they are a great design pattern to restore some sanity to asynchronous code.

Continue reading

Edubuntu for Burundi

The original idea behind inexpensive laptops for the third world was supplemented by the powers of capital depreciation. Specifically, why try and design a new $100 laptop for developing nations’ students when a first world $1500 laptop will be written down and donated to charities and volunteer groups within 2-3 years?

edubuntu desktop

edubuntu desktop

We recently had the opportunity to take advantage of a situation like this – a school in Burundi would benefit from 25 nice HP laptops, netbooks, and convertible tablets if we could find OS and education software for them. Laptops work well in this situation, since power is intermittent, and the load that can be taken from generators when they are available should be minimized. The mix of existing license keys for Windows XP through Vista and 7 were not going to be easy to work with, so I chose Ubuntu as the OS and an education package that included GCompris (140+ education mini games), Marble (Goolge Earth), Celestia (astronomy), and of course LibreOffice. Here are some of the things I learned and can pass on to save you a few minutes in a similar situation:

  • Try the Edubuntu Distribution at It has GCompris and the other software already in the image
  • HP Laptops play very well with Ubuntu 14, from Wifi to webcams and even stylus/tablet. Models included Elitebook, 8170p (17″ machines), and 5101 Netbooks. (Linlap is a great reference for linux/laptop compatibility based on community feedback.) Very little configuration was needed aside from some wake up changes to etc/NetworkManagaer/NetworkManage.conf file. Specifically, setting the Wifi controller to be explicitly managed. This only had to be done to a few of the 5101s
  • Ideally I wanted to install an offline version of Wikipedia and wikibooks. I found that Xowa could do the trick, and that English wikipedia without photos was about 5GB. Wikibooks was around 1GB. In order to have images and media, the Common package must be downloaded as well, best done from within Xowa’s download manager. This is still a bit of a work in progress, though, since I would like to install this from a stick, not n/w download
  • Edubuntu run off a stick runs well with no known issues, good for machines missing hard drives, since storage space can be allocated on the USB stick at the time of creation.
  • Install time is about thirty minutes per computer from a USB stick, Some care and feeding is needed during install, a fully automated install with all options preselected would be the next step for a project any larger than this one
  • The Unity interface is intuitive for teachers used to Windows or OSX, though the applications menu via the default search icon is somewhat non-intuitive (a bit like windows 8 where you can’t just see all apps immediately)

Lesson learned – the Linux community is thinking about computer literacy for developing countries, and it shows!

Txt-tris: Hour of Code turns into several hours of code

I love Tetris, but always wanted to have some extra shapes to work with, from a single quantum of block up to a mighty 3×3, Here is a JavaScript/HTML/CSS Txt-tris engine at jsfiddle where you can make your own shapes using the matrix notation. The difference here from other Tetris-y engines is that there is one matrix per shape, and the rotation behavior is specified by setting flags in the newShape function(). For example, square blocks have only one rotation direction, long bars have only 2, others have 4. If you want, set it so only long bars are generated, and achieve hollow glory.

Try it out, and JJ Abrams yourself a few non-cannon shapes!

365 Days of Earthquakes in Canada

365 Days of Earthquakes in Canada Interactive

365 Days of Earthquakes in Canada Interactive

Living in Ottawa, I’ve only felt one at magnitude 5, but it got me thinking that we aren’t entirely stable.

This was a little personal project in using some OSS tools: Data sets from Natural Resources Canada data portal which contains GeoJSON Data embedded in custom data; OpenLayers3 (which is a rewrite of OpenLayers and not backwards compatible) . Try it out here, and grab the source on my Github. Comments and feedback and pull requests welcome.

If you are moving to OpenLayers3, the documentation is autogenerated, but the constructors aren’t really described all that well. The changes were enough to warrant a demo site and a workshop site that cover a lot of cookbook tasks. Find out more about Quakes in Canada at the NRCan quake center. If you want to do something with the datasets at Open Data, you can submit them to their App catalogue here