How REST Constraints Affect API Design

REST was developed and formalized by analyzing the existing Web and extracting the principles that made it work. This set of principles was written down in the Fielding dissertation which lays out the set of constraints that, when enforced, will make a generic network system into a resilient network like the Web. In Chapter 5 of the dissertation Fielding outlines REST’s interface constraints. REST is defined by four interface constraints: identification of resources; manipulation of resources using representations; self-descriptive messages; and, hypermedia as the engine of application state. ...

March 19, 2014 · 5 min · Kevin Sookocheff

On choosing a hypermedia type for your API - HAL, JSON-LD, Collection+JSON, SIREN, Oh My!

In recent years REST has been at the forefront of modern API design. This has led to APIs with manageable URLs that respect the HTTP verbs (GET, POST, PUT and the rest), producing an intuitive model for client developers. Unfortunately, there are two problems that REST doesn’t solve alone. ...

March 11, 2014 · 20 min · Kevin Sookocheff

Three questions that define an ideal customer

One of the first steps in selling a new product or service is finding your target market and one of the best ways of finding your target market is by defining your ideal customer. Ask yourself – out of all the people in the world who would be the most likely to buy this thing? If you can clearly answer this question you have your ideal customer and you can start a marketing campaign targetting exactly the demographic you are trying to sell to. Let’s go through an exercise that can help to find that ideal customer by asking three simple questions. ...

January 4, 2014 · 2 min · Kevin Sookocheff

How to get accepted to a business plan competition

I recently received the good news that my business idea was accepted for the University of Saskatchewan’s 2014 Tech Venture Challenge. The Tech Venture Challenge is a business plan competition for students and alumni where participants are judged by their finished business plan and pitch after a four month workshop program. I’m going to blog about the experience as a way to absorb the material and hopefully help someone else who may be applying in the future. This post will provide some admittedly biased advice on submitting your application to the Tech Venture Challenge. ...

December 19, 2013 · 3 min · Kevin Sookocheff

Install node.js packages via npm with a Chef Cookbook

I wanted to set up a Vagrant instance with node.js and some specific packages pre-installed. I found a Chef cookbook to install node and after a bit of work have a cookbook that will install arbitrary node packages through npm. I based this heavily on balbeko’s chef-npm cookbook with modifications to accept a data bag list of npm packages. ...

June 6, 2013 · 1 min · Kevin Sookocheff

Photos is the Killer Feature of Google+

Yesterday’s Google I/O keynote unveiled some new features in Music, Maps and Search. But to me the biggest and most important announcement was the new Google+ photo features. Full-size high-resolution photos, automatic highlights of entire albums, automatic enhancement and auto-awesome combine to make Google+ the most feature packed photo hosting service on the web. Add the ability to share pictures with anyone via e-mail (take that Facebook) and Google+ is now the best social network to host and share photos. ...

May 16, 2013 · 1 min · Kevin Sookocheff

Apple has a Software Problem - Why I'll be Switching to Android

No one can question Apple’s dominance in hardware. The build quality and user experience of the iPod, iPhone and iPad positioned Apple as the most profitable company in the world. However, with the build quality of rival devices quickly approaching Apple quality, software will be the next battleground for consumer loyalty. And Apple has a software problem. ...

April 30, 2013 · 2 min · Kevin Sookocheff

Creating a new file or directory in Vim using NERDTree

I’m not sure why this was so difficult to discover. For the longest time I was not sure how to create a new file using NERDTree. I finally sat down and figure out how it works. ...

April 19, 2013 · 1 min · Kevin Sookocheff

Submitting a Unity3d Game to the Mac App Store

Submitting a Unity3d game to the Mac App Store is a somewhat painful process. This guide refers to Unity3d 3.5 but should apply to Unity 4.0 and up. ...

April 9, 2013 · 4 min · Kevin Sookocheff

Copying from Vim to the OS X Mountain Lion clipboard

The latest version of OS X (Mountain Lion) broke compatibility with the vim and the OS clipboard. In most cases you can configure vim to use the operating system clipboard by setting clipboard=unnamed in your .vimrc. Unfortunately this setting does not work in OS X because the default version of vim was not compiled with clipboard support. You can check if your version of vim is compiled with clipboard support by typing vim –version and looking for clipboard. A prepended + means support is enabled. A prepended – means support is disabled. ...

January 22, 2013 · 1 min · Kevin Sookocheff