Publication List Update

In the course of getting a job done, we all end up doing a bit of research. Here are some of the projects I’ve contributed to, from artificial intelligence to aircraft design, tissue simulation, human-machine interfaces and Lego Mindstorms! Feel free to check it out. Wherever possible, I’ve added the presentation versions, which are a bit more visual and a lot less text!

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

Where is Rosetta Interactive


Rosetta and Philae are working hard at comet 67P and how they got there makes for some good interactive content.

ESA teamed up with the visualization lab at TECField for this one and chose webGL for the interface. TEC used the ThreeJS javascript library for visualization. Data was loadied into the interface using two csv coordinate files – one for the paths and another for the timestamped milestones on the journey. All 3D model data was stored as OBJ files and texture mapped with png images. Audio uses ogg.

Elegant simple clean interfaces work best when exploring new content that stands on its own. The dash and interface are a DOM overlay on the webgl allowing for simpler responsive layout changes for window size. The milestones really pull the interactive together and it would be interesting to have them denoted as points on the scrubber timeline or allow sequential navigation between them (i.e. [next milestone: encounter with asteroid Stein 3D] )

With exportable and maintainable csv files, data compression is not optimized but export from content creators is kept simple. The app is kept up to date on a daily basis and no web backend is really needed for DB entry. It will be interesting to see if how it is kept up to date while the imagery from Philae on the surface starts coming in. It is likely there is a custom CSV editor to ensure that no errors are made and that orbital data can be imported from other engineering tools.

Any mission can use an interface like this. The spacecraft and target models could be changed up and of the CSV data on paths and milestones.

Social Media:
The big social media aspects for ESA are webcast links, first images, and animated GIFs and simulations of approach and landing. Interactive content showing a timeline has to justify itself in comparison social media and outreach tools which are dense and event-based. They attract a different set of users who want to share in exploration actions not simply the results of the exploration. To bridge the two, embedding of Twtter feed tool, YouTube videos in the milestones section would make this a gateway interface to social media. In the other direction, a ‘goto’ function and embedding capability would make this a tool that could be quickly reference on social media channels (i.e. share this viewpoint and 3 days of orbit time)


Don’t call it hydraulics

Disney has an big interest in animatronics – just try visiting one of their parks and avoiding it.

These are mainly kept at a very safe distance because either the visitor or the animatronic ‘robot’ are fragile compared to one another. Disney is all about interaction and asked the question – how can the animatronics and the visitors be safe around eachother? Disney Research Pittsburgh approached an old solution in a novel way – by removing some of the most problematic areas of working-fluid actuators in order to make a ‘softer’, friendlier animatronic.

The solution looks at first glance to be hydraulic – pressure lines connect pistons, allowing the actuator drive and the actuation posit to be separated. The system can work with an incompressible or compressible fluid.

The key difference over hydraulics is actually the lower performance – the lower working fluid pressure (100psi) and a unique ‘rolling gasket’ type seal in the pistons. This gasket reduces the problem of ‘sticktion’ (initial extra friction at the start of an actuation movement) to almost nothing, and reduces friction during travel as well. This requires less overall pressurization in the system to achieve smooth motion, and by moving the actuator motors off the robot itself, total mass is reduced, creating a positive feedback where less mass requires less actuation power. There are some design challenges that seem open, though: Continue reading

Minimum component infrared Camera trigger timelapse on canon cameras using Arduino

Check out "How Vacuum Tubes Work" to appreciate the convenience you get in your Arduino board.

Check out “How Vacuum Tubes Work” to appreciate the convenience you get in your Arduino board.

EOS M is a great little camera, but only has the Canon IR trigger for interval and timelapse. Here is a link to an Arduino sketch that outputs IR trigger signals on pins 12, 11, and 10 at 5, 15, and 30 seconds respectively. Designed to run on an Uno board with minimum external components – just change the IR LED + pin to the appropriate pin above for the timing you want. Credits in the code header. Let me know if you have any improvements!

.ino file

Technical Training….Training

“People aren’t puzzle pieces, turn-key products, or canned beans. They are investments, copilots, and will form connections within and outside your organization you never would have guessed”

Fuelling People is probably one of the tougher things to do in an organization – training programs, interesting work, mentorship, matched teams, surveys, open door policies, carefully tailored workloads are all a nice set of sliders and controls an organization can play with and optimize, But the most difficult thing is still creating training around an institutional knowledge set that includes some really hard-to-capture aspects – gut feel, interpersonal relations, estimating workloads and performance, turning measurements into decisions, and understanding people’s true capacities and capabilities.

Smashing has an interesting take on setting up technical courses for technical people inside a technical organization. A few key points, which I’ll add a bit to:

  • Give context and purpose to what you are teaching. The big picture – how will you be stronger within the organization, and how will it make the organization stronger (i.e. a better place to be!)
  • Teach by example. For example, the ‘Cookbook style’ Where a specific need is solved, allowing the learner to auto-generalize (something humans are almost too good at). Check out the micro article on learning as foundations and differences
  • Have some awesome homework. Learning is, in the end, doing, and watching someone else cook doesn’t make you a chef. Make the homework rewarding, possibly collaborative, and flexible to meet the motivations and interests of the learner. It’s also a breeding ground for real questions and feedback, not the polite stuff or pile-ons you might get immediately after a presentation
  • Learn how the training went – get feedback and get it immediately as well as later on. You have to learn how to teach people, after all, and accurate feedback is more than one datapoint in time – The term, “Let it sink in”, and “experience is the best teacher” have a very good reason to exist!



Splitting Learning into Foundations and Differences

My favourite techniques in extending technical knowledge are a “Parallels” method and the “Hub Analogy” method.

Parallels Method: For example, if someone knows how to solve a particular problem in Java, map each step over to the target language – say Objective C, and line up the equivalent functionality. Then, differences are much more easily explained, as they stand out from this common basis. This method works great when laterally moving through equivalent topics.

Hub Analogy Method: I recently had the opportunity to do a presentation to new pilots on how airplanes land at an airport. The aviation terms and language really make no sense to a newcomer, especially in 5 minutes, so I started with the idea that landing at an airport is a lot like going through a Tim Horton’s Drivethru: you line up, follow the signs, make a radio call with your request, and keep yourself away from other traffic. This had the benefit of allowing us to ‘hang’ new ideas off this solid mental model which everyone could be familiar with. For example, you can call the Tim Horton’s person the ‘Tower’ and introduce the concept of ‘runway clearance’ as the equivalent of, ‘please drive up to the second window’. A familiar and flexible hub analogy allows better student recall by splitting new learning into Foundation and Connected Differences, i.e. Hub and Spokes. This method works best when introducing less familiar or totally unfamiliar topics. (It is most notoriously misused in science documentaries as the classic units of measure: “Human Hair”, “elephants”, “Golf Ball” and “Football Fields”)

No technique is going to work as well without examples. Popular books from Gladwell and Kahneman are completely saturated with examples because they know that we learn by generalizing, not by making up specifics after memorizing some abstract framework. Humans evolved to think, “I don’t eat that fish because that one time I did was pretty bad, therefore, no yellow-striped fish for me of any kind.”, not, “anything that is sending a signal it is poisonous is highly visible as opposed to camouflaged, therefore I will not try that fish over there.” Examples are also a form of storytelling – which is just a way of conveying a personal experience like, “In and Out: That One Time I Ate That Yellow Striped Yuck Fish”. We love stories because humans are empathy machines, and blur our Specifics into Generalizations.