Posted in design, random

The Facebook World Map with Countries Overlaid

By now, I’m sure you’re all familiar with the awesome map that Facebook intern Paul Butler made. Here’s a snapshot & link to the original post (definitely worth the read):

Friendships visualization

What was amazing to me was how connections (“friendships”) are location-dependant, or more specifically country-dependant.

What I really wanted to see were the actual outlines of countries on the map.

After an hour or so, here is what i had. (Click the map for the larger version, so you can actually see the countries in 1920 × 1200)
Facebook World Map with Countries Overlayed

Things I noticed:

    us canada border
  • The line between US & Canada is very visible east of Vancouver and West of the Great Lakes. It seems like there are not many connections there
  • The mexico/US border is not as distinct as the CAD/US border.. that could be pure population though
  • russia & china
  • Russia & China are almost non-existent. Mark has talked about this a lot, how they are the final two countries Facebook has failed to assimilate. Russia has their own Facebook clone that has taken off.
  • CUBA!! actually seems to have a small resistance using FB in the north west, but the rest is virtually non-exsistent
  • The immediate drop off of facebook users (& connections) after Eastern Europe is crazy…
  • The distinction between North & South Korea is amazing
  • I was surprised to find it looks that more people are “connected” in Edmonton (north) rather than Calgary (South) in Alberta. Since I am from Calgary, and it’s a bigger city, that was interesting to me. My friends that went to Edmonton for University did say they loved the friendships they had there better. Where as University of Calgary is much more of a commuting university.
  • Most non-saturated countries begin like Vitenam – with major cities really getting on board, and slowly making connections to their local friends.
  • Conversely, the christmas Islands are unlike most other islands where only major cities have connections. These islands seem to have already started to get saturated!
  • Europe really does have a lot of people really close to each other… its crazy
  • You can really see the cities/countries in Africa that are using facebook: Kenya, South Africa, Nigeria, a bit in Ghana…
  • Thoughts? I’d love to hear them in the comments below. I’m working on a follow-up post (or I may just update this one) explaining how I did it.

    There’s also a great conversation going on Hacker News

    NOTE:
    – I did not make this map so please don’t sue me. Paul Butler, a facebook intern did, and the links are noted in the first paragraph. I also did not make the Google Maps – google did. You can get the google maps here and the Facebook Map is here:

    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 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 design, personal, user experience

Who’s fault is it when website pictures don’t show?

Who do you blame when a website has broken links, non-existent pictures, and slow speeds?

I never really thought about this before, but I naturally blame website owners. Come to think of it, I blame them for almost all their poor user experiences. See here and here.

But “blame” is really too strong a word… What I really mean is that I hold them accountable for it.

But, in a strange but ironic twist of fate, I just realized I’m one of those websites.

Here’s an example of a post I recently loaded up on this tech blog:

Screen shot 2009-10-14 at 1.06.53 PM

The weird thing is that after a few minutes and still no pictures a quick refresh brings them all back up.

Screen shot 2009-10-15 at 12.56.52 AM

This has happened on more than one occasion.

Moral of the Story

Now, what can I learn from this? Whose fault is it? WordPress’ or mine?

I guess I found out that, well, It doesn’t matter.

In the end, the users of my site will still connect the poor performance and broken links to MY SITE.

So, in the end, it has to be my job to maintain and “test” out my site constantly.

But let’s be honest – it would be impossible to fully check my site using all the different computers, running all the different operating systems, in different resolutions, and with different browsers.

Now, that “support” tab who’s value I put into question seems like a pretty bright idea.

Possible Solutions:

Of course, there’s the basic link scanners that tell you which links are broken on your site. Here’s an example of one called Xenu.

But it seems rather static, manual, and not general enough. All it takes care of is finding broken links and not, for example, the load time of your website. And you’d think that WordPress would have something integrated into their system already!!! (ie. something that sends you a quick e-mail, telling you when a link is broken)

This would be a great problem to solve. What I would see is a third-party company or service, that basically does the link scanning, load-time benchmarking, and general basic things that really affect user experiences. Hmmm… sounds like a good idea. 😉

Any one have any other suggestions to deal with this problem?

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.

Posted in design, tech, user experience

Examples of poorly designed websites (part 1)

Update: of course since I pasted the screenshot the site has now changed and indeed implemented a suggestion of mine: to move the text over to the right and make space for the floatable support tab. I still feel that more valuable links should be used for that space as well but hey, who am I to say anything?

Disclaimer: I just want to say that I’m not at all against the content of the following websites. In fact, some of them I actually quite admire (like Timothy Sykes who managed to turn a $12 000 Bar Mitzvah present into over $1 million). I’m in no position to judge their overall site’s user experience. This is just a humble man’s opinion.

1. TimothySykes.com support tab that covers the site as you scroll.

Screen shot 2009-10-12 at 11.24.45 AM

my rant: I understand the new “floating” bars, which I honestly feel are a great addition to much needed tasks. But really, a support tab, that covers text as I scroll? It definitely left a sour taste in my mouth. I would have much rather enjoyed a small bar at the bottom of the window, or moving all the text to the right.

problem 1 (main): covers text, user needs to scroll around it to view text (the core, data)

problem 2 (minor): I’m not even sure what support is. Support for the website? Support Timothy Sykes?!?

solution 1: I’m a fan of simplicity. Does the support tab need to be there? Does it increase sales? Does it make users want to read, or does it get them irritated because as they read they have to scroll around it (which happened for me on more than one occasion). If the answer is no to all of the above, it doesn’t need to be there.

if there’s still value in it (perhaps there have been many complaints on the site’s usability) then make it available, but not so in your face. perhaps a bar on the bottom or visible but not overcrowding text. This is such common sense , I feel bad saying it.

solution 2: if it for website support? perhaps name it something other than just “support”, such as “website support”.

This post has gotten longer than I wanted. Stay tuned for part 2.

Posted in Canadian, design, user experience

MSN.COM asks me if I want to go to MSN.CA!!!

Screen shot 2009-10-14 at 1.47.34 PM

After years of defaulting Canadian-based Windows computers to the MSN.com (US Version) website, MSN.com now detects you are Canadian and asks you if want to go to the Canadian site (MSN.ca) or stay with the United States Version.

Not only that, it asks you to remember this choice for next time!

This is definitely an improvement to location-based user-experiences like MagicJack, but I say why not go a step further?

When the computer connects and allow the user to “register” in Canada, shouldn’t things like the default website be turned to the equivalent Canadian versions? e.g. msn.ca ? In my head, that would make for a much smoother user experience.

What do you think?