Hello!We'd love to chat. Get in touch at or follow us on Twitter, Facebook or LinkedIn or sign up for our Newsletter!

Easy as Pi: Hardware Hacks with Raspberry Pi

On a balmy day in August, the Domain7 Custom Development team met up at our top secret Abbotsford hardware labs for a day of learning and building. The main goal was to tackle a new platform: the Raspberry Pi.

I have a confession to make: hardware programming and wiring terrify me.

I'm not talking about consumer electronics—laptops, phones, audio/video systems—but the cool stuff that involves circuit boards, jumper pins, resistors, diodes, and probably some C code: platforms like Arduino, Raspberry Pi, or even simple transistors.

Despite many hours studying and building electronics since I was a kid, a full year of Physics, and nearly two decades of development experience, hardware still frustrates me.

Which is why the Raspberry Pi platform caught my interest: it runs Linux and I can actually use...

Web Components & a More Modular Web

There has been a lot of talk about web components lately. In a nutshell web components are new standards that allow us to create custom elements for use on websites.

Out of the box, web browsers let us use such elements as img and ul for images and lists respectively, but web components let us extend the browser ourselves and create our own elements.

The world without web components

A classic example of a web component use case is the slider. Right now to create a slider with 4 photos, you'll probably have markup like this:

<div class="slideshow">
    <ul class="slides">
            <img src="url/to/photo.jpg" alt...

Web Animations: the good, the bad and how to do them better

Animations are among the simplest and most effective ways to evoke an emotional response from a website. But whenever you introduce a flourish to web design, there’s always some risk.

Web animations create an element of surprise that can be incredibly attention-grabbing—when used in moderation. A designer should never introduce animations just for the sake of having them. They should be subtle and organic, and not detract from your content.

There are drawbacks: the options can be overwhelming and they can complicate an otherwise simple project. Like whose role is it to determine the animations? the strategist? designer? developer?

Animations can be hard to conceptualize and difficult to then communicate to a project team or client—there are so many different terms to describe the same thing and it’s hard to know if you’ll be on the same page. Also, they can just go horrifically wrong. The client might hate it which has potential to derail a project.

Let’s take a look at some bad animations, good ones and then I’ll offer some tips for doing it right.


An Open Letter to Custom Development Clients

We see two kinds of projects when building the web: build-to-spec projects, where you bring the idea, we make it happen, and solve-a-problem projects, where we collaborate to find the best opportunity, together.

Our clients seem to happily bring us the second option when the project is a campaign or a fairly standard CMS build. But when clients needs a very tailored custom developed tool or application—the kinds that really involve in-depth problem solving—there is a strange tendency to bring build-to-spec projects to our team.

Here’s the plain fact: most of the time, build-to-spec projects leave big opportunities on the table. A set of specs laid out before you have a understanding of the strength of our design, UX, and technical architecture chops, mean you probably aren’t accessing the full breadth and skill of a custom dev team.

“But we already know what we need,” you might say. “We know what pieces of tech will solve our business problem, and we just need someone to build it.”

That’s why we need to talk. I believe it’s right there—the part where a problem is defined—where we find the most fertile ground for growing a...

Using Open Data Sets to Solve Real Human Problems

We keep hearing that data is this century’s greatest natural resource, but way more effort goes into talking about it than into figuring out how to mine it and what to actually DO with it.

Domain7 recently hosted the 2014 Open Data Day Hackathon at our Railtown office. Local developers gathered to discuss ways we can use open data sets, and to hack some new tools using some of the City of Vancouver’s data.

Data like this is at our disposal, and now our job is to figure out how to use it to better humanity. That day we heard about some great projects that are using open data for human-friendly results:

  • Bike lanes: Vancouver’s bike lanes have been directly influenced by a developer who used ICBC data to show where frequent collisions have historically taken place.
  • Vancouver budget: Though the City always releases their budget in PDF format, few residents will actually take the time to review it. That data has been turned into a handy tool—...

Building the Web Beyond the Screen

A couple weeks ago my colleague Ryan James asked a great question: How is the trajectory of ubiquitous computing going to affect the Web and browsers? Kevan Gilbert followed up with some of the ways ubiquitous computing will mesh with storytelling, including a mention of Wilson Miner's talk When We Build.

In Miner's talk—already 3 years old—he describes how so much of computers as we know them (screens, network cables, keyboards, etc) has disappeared.

With the loss of visible computers, is the Web in danger?

In short, no. It’s thriving in new ways as the Internet fundamentally transforms the way we work.

Here are some examples:

  • Networking: Whether it's your phone, watch, thermostat, oven, garage-door, TV, stereo, or car, anything with a decent chip in it can connect to the internet. And you can bet that if it's connecting to the Internet, it can talk with servers you can...

Terms to Know When Talking to Your Web Developer

A couple weeks ago I decoded some of them terms you’ll inevitably hear when working with a web designer. Once design moves into development, however, it’s a completely new dialect. Fortunately I’ve been rolling with those foreigners for three years now, and I’ve picked up a bit of developer patois.

In the lay-est of laymen’s terms, here’s what they mean.

Agile Development: 99% of the time, what clients and developers initially set out to build looks very little like the actual end product. A traditional planning approach—with a detailed and rigid set of launch requirements—can be counterproductive. It’s like installing a state of the art chef’s kitchen when all you ever eat is takeout; or conversely, like building a one-bedroom bungalow when your wife is pregnant with twins. It’s why many digital products take so long to launch, and often flop once they do. Instead, agile (or iterative) software development focuses on the very basic requirements for your application (see “MVP” below).

Whether it’s an event registration system,...