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.

Advertisement
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, Interview Transcripts, tech, Vancouver

Exclusive Video Interview: How 18 year-old Brian Wong of FollowFormation is Changing the World

The Aer Marketing Team founded by Brian Wong

“If you’re not passionate about something you can’t possibly be successful in it.” – Mike Desjardins (CEO of VIRTUS)

18 year old Vancouverite Brian Wong embodies this quote. As the co-founder of FollowFormation.com, a tool that helps twitter “noobs” follow the top users in the category of their choice, Brian Wong has traditionally stayed “under the radar” and allowed his products to take the spotlight. Now, as he’s admitted to me, that’s about to change.

I caught up with him at downtown Coal Harbour for a quick interview on what he’s up to. When I say “caught” I mean it in the literal sense as we’ve been playing email tag for the good half of this year. Earlier this week, I finally got to sit down with him & he, being the A.D.D energetic wizard kid he is, initiated my first walking interview:

Passion & Skill: The Driving Forces Behind Brian’s Success

Anyone that has met Brian in person knows that he’s passionate about what he does. That, and he loves talking. Take a look at followformation.com, his design company aer marketing, or his recent slide presentation at Mini Enterprize and you’ll see the perfect blend of aesthetic appeal & quality content.

When I asked him where he learned all his design skills, he said they were “self-taught.” The simplicity and elegance of his design style rivals many top designing companies I know and yet he taught himself! He’s obviously got some natural skill & talent. Imagine if even a fraction of students discovered that unchartered territory of where their passions meet their skills and build those skills!

No Free Lunch: Hard Work Pays Off

However, Brian would also argue emphatically that he worked his butt off to get where he’s at. I wouldn’t agree more. Lucas Lemanowicz, his now co-founder who started off as a developer for Aer, tells me of the time Brian got the idea for FollowFormation:

“It was 4am, and Brian had just called me to wake me up & tell me about his crazy idea. All I could say is, ‘what time is it?!?!’ ” – Lucas Lemanowicz

These stories and more abound in Brian’s life. He’s also known for his sporadic sleeping pattern, which you can ask him about yourself.

However, it’s not just hard work & crazy sleeping that brought Brian to where he is. It’s the fact that he actually went out and did it. He didn’t talk about it, complain about how hard the economy is, or whine about how his previous employees didn’t give him the freedom to create. He went out and made his own company and did all those things.

That’s the pattern I’m seeing over and over in interviewing successful entrepreneurs. When everyone else was talking about it, they went out and did it.

When I probed him further about his lack of personal online presence, he admitted:

“People are telling me I’m hoarding all this information but that’s not it at all. I spend time making presence for the things I do. My actions matter, not my thoughts.” – Brian Wong

Those words speaks highly of the maturity that has led to his current success. Brian has mastered at 18 years what many people still have trouble mastering @ 40.

Connecting with people that matter: Not Just Hard Work but Smart Work

In addition to Kevin Rose, founder of Digg, Brian has been traveling the globe connecting with influential people like Gary Vaynerchuk & the team behind RetailMeNot & BugMeNot. To him, they are “people that matter.” That’s his advice. To connect with the people that matter to you.

But he doesn’t like telling people who he’s met with because they get so focused on those people, they’re missing the point. It’s not the names of these “celebrities” he’s connect with, but rather how he made those connections.

As a quick story to end off, Brian talks about how he started to build his worldwide network & got connected with Kevin Rose. FollowFormation had just made some big news through Mashable and other similar sites and Brian phoned the worldwide Twitter conference in LA, told him he was a poor student, and asked if there was any solution. The receptionist replied that only speakers get in for free. He then asked to be a speaker. The rest is, as they say, history!

Making Meaning

As Brian heads off to San Fran to work for Digg, I’ve asked him if he plans on coming back.

“Of course! Vancouver is my home! I won’t forget her!”

I’ll end off with a quote from Guy Kawasaki. Brian chatted with him in LA & Guy told him this:

“Focus on making meaning & the money will come.” – Guy Kawasaki

More Brian Wong Links:

Posted in entrepreneurial, Interview Transcripts, tech, Vancouver

Innovation Camp partners with Vancouver’s Passionate Student Entrepreneurs (full video interview)

This past weekend, I organized the first Innovation Camp for Vancouver’s most passionate student leaders & entrepreneurs from UBC, SFU, & Langara. The party included presidents, execs, & champion members of the following organizations: Enterprize Canada, SIFE SFU, VSEA, SIFE UBC, UBC’s VCPE, Langara Business Association, & SFU’s Venture Networks.

Continue reading “Innovation Camp partners with Vancouver’s Passionate Student Entrepreneurs (full video interview)”

Posted in entrepreneurial, tech, Vancouver

Ian Bell on the necessity of Buisness Cards: My experience at VEF Momentum

Ian Bell, a local entrepreneur and founder of RosterBot.com, recently wrote a humorous yet informative piece on the necessity of Business Cards at Networking Events. It was entitled, appropriately enough, “On Business Cards.”

If you haven’t read it, you should read it.

My favourite part is at the end, when he writes: Continue reading “Ian Bell on the necessity of Buisness Cards: My experience at VEF Momentum”

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”

Posted in design, personal, tech, user experience

An Epic Fail: How to make a $150+ 500 Gb portable external hard drive suck

I bought a WD “my passport” that had some great features.

  • It was smaller than my wallet
  • Needed no external power, but ran off one USB connection to my computer
  • It was 500 GB for crying out loud
  • It had a great design

However, WD missed one small thing: the USB cable is not a regular mini USB.

Continue reading “An Epic Fail: How to make a $150+ 500 Gb portable external hard drive suck”

Posted in personal, tech

vicki: 37 signals? isn’t that the c++. ruby on higheels thing?

(watching startup school @ justin.tv/startupschool – vicki beside me knitting or crocheting)

jon: wow, next talk is by jason fried, the founder of 37 signals!!

vicki: what’s 37 signals again? that c++ thing?

jon: (smiling) yeah, yeah!

vicki: what was it? ruby something? ruby on high heels?

jon: rails baby. ruby on rails.

(break up laughing)

vicki: what??!!? do you now what this crochet pattern is? (showing me the blanket she’s working on)

touche.

vicki: sometimes, people who use technology are soooooo stuck up!

Posted in Canadian, design, tech, user experience, Vancouver

Examples of poorly designed websites (part 2)

(check out my latest part3 review of a poorly designed website here:)

2. Staples Ad promises much but fails to deliver.. twice!

So I’m browsing a tech site, and see this Ad from Staples:

Screen shot 2009-10-12 at 11.18.58 AM

I’m feeling a little intrigued by the “limited-time tech deals” and “roll over to see more” promise. I’m impressed with the fact that they have tech-deals on a tech blog. They directed the advertising to me, in an extremely relevant yet subtle manner. And, I don’t know if they meant to or not, but with the “roll over to see more” they hooked me.

That’s two points.

So, I “roll-over” the ad and I get this image:

Screen shot 2009-10-12 at 11.19.22 AM

Nothing.

That’s what I got: Nothing.

Not only did Staples lose the two points they just got but they went negative in my books.

But I’m still wondering about those promised “tech-deals”, so I give them the benefit of the doubt – maybe it was the advertising company they contracted out to.

So I click on the “See Weekly Ad” and get the following website:

Screen shot 2009-10-12 at 11.20.35 AM

At this point, I am a little more than slightly frustrated.

Those who read my earlier post on location-based website can attest to this, but I feel that such a basic task as asking for your location from IP address is such a simple, yet valuable addition.

Granted, I was on a US tech blog, so I can understand why the Staples ad brings me to the US Staples site. But seriously, even MSN.com got it right, why can’t you?

So I figure, I really don’t want to:

  1. open a new tab/window
  2. type on staples.ca
  3. enter in my city, postal code, etc again
  4. find the “new tech deals

Instead, I want to

  1. Type in my city, country and have it direct me to the Canadian version of the staples site for my city!

So, as a last chance, I give them the benefit of the doubt again and type in “Vancouver, Canada.”

I receive this error: “Please enter a Valid Zip Code or City, State”

Screen shot 2009-10-12 at 11.20.59 AM

I’m done.

At this point. I’m done. Staples has become irrelevant to me. They are more than minus 1.

Will I stop going to Staples from now on? Probably not forever, but as a user I will constantly think about this every time I’m tempted to use their website.

Possible Improvements

Some suggestions for improvement – though Staples seems so large, and I so small, I hardly know if they will head these:

  1. Create a much smoother transition from your Canadian and US sites. (e.g. When I entered Vancouver, Canada that should show to you that I’m looking for Vancouver, in Canada, and send me to that site)
  2. Building on 1), detect where users are (including city, and postal code/zip codes) so users don’t have to keep typing it EVERY TIME.
  3. Test your ads on the majority of browsers, and the majority of Hardware! (I’m using Firefox 3.5.3 running on Snow Leopard (10.6.1) with a Macbook Pro 15″. Hardly a minority from what I’ve see nowadays)
  4. Golden Rule: Don’t suck. (I got this as an inspiration from the head of Google Canada). If your data sucks, your content is terrible, no matter how nice the ad or site or marketing is people won’t keep coming back. In this case, there was no data. That would translate to “suck” for me.

Again, not entirely staples’ fault, as they most likely went through a third-party for the ads, but that’s not what users think.

In short, Staples promised-high (with the design, the roll-over secretive anticipation) and succeeded on not only failing to deliver, but also annoying me.

From this humble user’s perspective, companies big and small need to stop doing that.