Posted in entrepreneurial, personal, tech, Vancouver

eyePong: controlling Pong with your eyes

Update: It seems this somehow got on TechVibes & HackerNews

So for Vancouver’s Barcamp 2010, we made a pong game for the iPad that people could control using their eyes.

Unfortunately, this isn’t a Vancouver Barcamp summary. However, my good friend Mack Flavelle wrote a great summary and another guy named Shivanand, whom I wish i had met, did another awesome job.

What this is, is a post explaining the project I hacked together during Vancouver Barcmp 2010 with Craig & Tom: eyePong

I hate when people make me read to the end, so here’s a video of the project:

What is pong?

For those who don’t know what pong is, it was an old arcade game where a ball goes back and forth between two human controller paddles. You can google it or read the wikipedia article for more info. But a picture should pretty much explain it:

The eye gazer equipment is from Craig Hennessey, founder of mirametrix, and I worked with developer & overall hilarious person Tom Schultz (@appskicker).

eyePong

By the time I joined them on Saturday, Tom had already gotten the backend “secret sauce” working, which passed the x & y coordinates of the eyes to the iPad over a TCP socket connection. We pair programmed (read: I watched him type slowly on this weird wireless keyboard while we both laughed a lot) the initial pong paddle & the ball. I then took over, fixed the paddle’s position, recorded persistent high score (so you could play against others), added sound to the ball hitting the paddle, & made the direction & velocity of the paddle change the way the pong moves.

The green “box” is the pong ball, and the white square is the calculated eye Gaze. It’s pretty cool how people tend to watch the ball as it moves around.

Videos

Here’s the same video as above: some random guy playing it near the end of barcamp & me narrating (I hate silent videos).

Here’s a movie of Craig playing the game & me hiding laughter, while someone gives a completely unrelated barcamp talk. Ironically, it’s more of a silent video, which I usually hate.

The Code

Obviously the codes pretty messy since we pushed this out in, literally, a few hours. I’ll be cleaning it up a bit & maybe githubing it if there’s enough interest (read: ping me if you’re interested). Craig’s plan is to make an API out of it.

Advertisements
Posted in design, entrepreneurial, personal, tech

BeatMyRide: My First IPhone App

Friday, Oct 22, 2010 – This was an old post from last April. I now drive mobile strategy (read: I’m the only iPhone Developer ) @ Invoke Media, creators of Hootsuite, where I’ve launched apps for the Onion that got mashable & lifehacker love, as well as video contesting apps for large, US insurance agencies (I think we’re on NDA).

 

This is the first end-to-end iPhone app I authored. It allowed me to learn the Objective C & the iPhone SDK including frameworks such as the Location Services & Core Data. It also helped me to understand the basic Model View Controller concept, as well as how view controllers work in general.

The Big Picture

which path

Often times, I take different routes to and from home, work, Vicki’s work, the gym, church, & other common locations. I wanted to create an application that would allow me to:

  • Map common locations & routes
  • Calculate the average & fastest times between common locations.

This was important because many times I would want to know:

  • Which specific roads provide the fastest times between locations
  • The average times between locations so I might better schedule my transportation times.
  • It was also amusing because it would allow me to “race” against my own fastest times, of course ensuring that all traffic regulations & speed limits were adhered to.

On top of all that, I needed a good excuse to learn the iPhone SDK platform.

Future Features

I also made sure to architect the program so that in future iterations, it would be easy to add some really exciting features such as:

  • Auto-Detecting the location and mapping the exact route taken.
  • Audio or Visual cues as to how you are currently matching up with average & fastest times for that route.
  • Social racing (being able to race against not only your own individual times, but to be able to compete against other players in your area).

Background & Software Design

Object Oriented design teaches us to treat everything as objects. In this case, it was important that I decided on the following terms.

Location: A location consist of the name of that location, the address (both the longitude and latitude, as well as street address), and a collection of all the Routes the location belongs to.

Route: Routes consist of two or more locations (initially, I allowed only 2 locations) and the fastest & average times for that route.

Screenshots & Walkthrough

I architected this app more with utility in mind rather than design. Frankly, I wanted to be able to use this app with as little input from the user as possible.

The first screen gets right to the point and asks your for your present location. In this case, I have chosen Home.

IMG_5003

You can see there are two floating numbers. I have used the iPhone’s “Location Services” to store the longitue and latitude for each location. This is the first step in auto-detecting the start and stop locations as well as being able to trace & record your entire route.

If you want to create a new location, you can add it by pressing the “+” sign, and entering the name of the new location. As mentioned

IMG_5018

Once you have selected your location, the next obvious step is to select the destination. Today, I’m driving Vicki to work so I choose “Vicki’s Work.”

IMG_5005

If no route has been created between those two locations, one will be created. Otherwise, the route will be selected and displays the fastest & average times, as well as all the past times.

IMG_5006

Once you are ready to start, you can press the “Go” button on the top right & the timer begins on the Navigation Bar.

IMG_5012

Once you have arrived at your location, you simply press the “Stop” button, and your trip time will be recorded into that route. In this case, my trip magically took 8 seconds.

IMG_5013

As you can see, the trip is automatically added to “Past Trip Times” and the fastest and average times have automatically been calculated.

Conclusion

Being my first iPhone application, this was definitely a great learning process. Not only did I get used to XCode and the iPhone SDK, I also got to use the new Core Data library, got to test out Location Services to find the longitude and latitude, and got to prototype the class structures visually using XCode’s build in editor.

The best part is that I now have a way of timing my average and fastest times between my common routes and can race against myself, which was my original goal.

The next features I plan on adding are definitely going to be

  • auto-detecting of start and stop locations
  • using Location Services to map the entire route, which allows for
  • audio cues of my current pace compared to my fastest or average times

If these features work out well, I am definitely excited to add in the social gaming aspect.

Posted in entrepreneurial, export to .org, personal, tech

Life After Twitter: What I learned from taking a 6 month break from social media.

twitter fail cropped

Many people have been asking me where I’ve been hiding the last few months.

Unfortunately for me, in today’s high-tech connected world, one’s online presence is often as important, if not more important, than one’s physical presence.

The reason this is unfortunate is because after 6 months of hard core online connectedness I simply got burned out. I don’t think I’m cut out to be updating my status all the time, posting to other people’s walls, writing on my blog every day and checking in to every location I go to. It’s just not me.

Social Media’s Not For Everyone

That’s my advice. Try out social media (twittering, foursquaring, gowallaing, facebooking, blogging) and if it’s not for you don’t force it.

When I got into the startup tech scene here in Vancouver, it felt like all the cool people were on twitter & “connected.” I tried really hard to do the same and even tell others to but it never really felt natural to me. Talking to other people in less than 140 characters so that the whole world could see what you said just didn’t seem to help me build genuine relationships.

Don’t get me wrong, there was definitely value in it but for every great link, hot news item, or great 140 character conversation I had with someone I found I had to scroll through hundreds of irrelevant information & constantly keep checking throughout the day.

It became this self-imposed ritual where I cared more about my online presence, what my online tweets looked like, or that I checked in to the right place within the correct time intervals, then my actual genuine day-to-day life, relationships & interactions.

So What Now?

My two conclusions: Temperance & Authenticity.

Temperance basically means self-control or restraint. And since I’m quite passionate in everything I do, the next step is to learn temperance.

Authenticity. Instead of trying to make myself look as good as possible online, I’m just going to start being myself. I’m going to stop caring what other people think so much that it paralyzes me from just being me.

So I’m still going to use social media, just with authentic temperance. I like that. Authentic Temperance.

If you’re on twitter and you love it, that’s great. I’ve read many blog posts about how people use twitter effectively, how large companies are using twitter to engage & “listen” to people, and I’m sure much of that is true. Let me be clear: I am in no way putting down people who use and love social media.

Life After Twitter…

For me, I cannot tell you how freeing it is not to have to always have my iPhone in my hands so I can update my status, checkins or wall posts. It’s such a great feeling living real life, talking to real people, and not worrying so hard about making sure your “online presence” matches other people’s expectations.

I’m sure one of these days I’ll get back on twitter, foursquare, gowalla & facebook with a vengeance. Hopefully by then, I will have learned how to be genuine & authentic on it as well as this “temperance” thing.  Until then, I’m going to stick to simple blog posts, more life away from my computer & phone & with Vicki, and look forward to hearing your thoughts or comments.

Posted in Canadian, entrepreneurial, export to .org, personal, random, Vancouver

What’s the value of Community? (inspired by David Crow….)

I’ve been thinking a lot more about Vancouver’s startup community recently.

In the last week, I’ve met with a few genuine & hard-working entrepreneurs here in Vancouver. Two that come to mind  are Ashish Gurung (@AshishGurung), CEO of NuXD, and Ryan Holmes (@invoker), CEO of Inoke Media’s Hootsuite. Great people. If you haven’t met them yet, you should. Looking at them from the outside, there seems to be little connection between the two: One is relatively unknown in Vancouver and the other created an app used by large organizations like the White House & Disney.

But in my meetings with them I found one similar trait: they both genuinely cared. And not just about my questions on startups, but they really exuded a genuine desire to help without much in return for themselves. And this was in the midst of their rushed, busy schedules.

I often forget that in addition to just writing about it, building community takes people who actually care about other people. This has definitely challenged me to rethink the way I interact with people I network with.

However, many people I talk to don’t see the need in building community here in Vancouver. It’s not a direct statement (hey, we’re Canadians), but more of a subtle undertone in many of my conversations. For a while, I was quite discouraged. So you can imagine my catharsis at reading David Crow’s recent post where he addresses the very question & quotes Paul Graham’s What Startups Are Really Like. In particular, 17. The Value of Community:

“One of the most surprising things I saw was the willingness of people to help us. Even people who had nothing to gain went out of their way to help our startup succeed…The surprise for me was how accessible important and interesting people are. It’s amazing how easily you can reach out to people and get immediate feedback.” – comments on What Startups Are Really Like

David goes on to say:

I want a vibrant, connected, accessible community of founders, investors, advisors and others in Canada. And I’m not alone. There are great communities across the country in Ottawa, Montreal, Waterloo, Guelph, Edmonton, Calgary, and Vancouver (and be sure to check out StartupDrinks).”

I had heard lots about David Crow’s StartupNorth.ca community, but never knew if he was the real deal. I wish David was here in Vancouver. I would love to meet him.

Posted in Canadian, entrepreneurial, personal, random, Vancouver

How to create a hype with next to nothing: How we turned an empty table and 500 folders into 200 inspired students @ InnoVasion

What a long yet inspiring day!

A QUICK VIDEO SUMMARY
If you don’t want to read the story, check out a quick summary video below or here. Apologies for the shaky camera.

And here’s what some students thought of us: Continue reading “How to create a hype with next to nothing: How we turned an empty table and 500 folders into 200 inspired students @ InnoVasion”

Posted in entrepreneurial, personal

Turning off your cell phone before a meeting speaks volumes about your character

I had arranged a meeting with two students on campus this week to talk about entrepreneurialism @ UBC. It was rather informal and we just chose to sit down at a noisy cafe.

As we were sitting down, one of the students, Blake, took out his cell phone and proceeded to turn it off. He didn’t just switch it to vibrate or silent, but he turned it off completely. Continue reading “Turning off your cell phone before a meeting speaks volumes about your character”

Posted in entrepreneurial, personal, random, tech, Vancouver

My Current Passion: Revolutionizing Vancouver’s Startup Scene

MY STORY: IT ALL STARTED WHEN…

When I realized I wanted to be an entrepreneur at the end of University, it was pretty late in the game and I found it difficult to connect with other like-minded co-founders. I had just turned down a job offer as a PM at Microsoft, and, gauging the economic recession, was beginning to think I just shot myself in the foot. Continue reading “My Current Passion: Revolutionizing Vancouver’s Startup Scene”