Archives for category: software

What circles do you think you have been added to?

tldr:
Google+ introduces a new type of privacy problems which I can only describe as the inverted personal privacy dilemma. It is no longer an issue of “What I choose to share with Google and then what Google shows to others”, the issue is now: “What friends/complete strangers choose to share about me to Google, and my inability to do anything about it”. The responsibility of maintaining my personal privacy has been partially removed from my hands, and placed in the hands of the people of internet.

Thought experiment:
Put 100 privacy aware/concerned people into a room. What would you suppose is the best way to create a global interest graph/taxonomy for this group of individuals? Algorithmically? Manually? First, ask them to fill out very basic personal information about themselves. We will probably have reasonable success. Next we ask them to fill in very specific personal information/categorizations about themselves. How do they react? Probably not as successful. Now ask the same group of people to write down and categorize the people around them, but remind them that their categorizations will remain secret. Each individual’s privacy has been maintained, and collectively we have created a very rich interest graph/taxonomy which is possibly far more accurate than any automated solution.

Read the rest of this entry »

I’ve been experimenting recently with a bunch of cool photosharing apps on my iPhone including: Path, With, Twitter, Facebook, Denwen, Color, Dailybooth… (takes breath). As much as I enjoy each one in their own unique way, none of them (yet) are able to capture the true feeling or ambiance of a particular situation, though Path is probably the closest. To be fair, most of these apps were not designed to do such. I’ve always found that regular photos (camera phone for instance) can decently capture a moment, but they often come off as rather 1-dimensional (figuratively speaking). So as an experiment, I documented ~72hours of my life by taking panoramic photos along the way. Below are shots of where I found myself wandering to over the last 3 days. For me, these wider photos do justice to some of the lovely views I get to see on a daily basis.

I am not a photographer, these are far from perfect, but I think they do a great job of giving the viewer a sense of where I was and what I experiencing. I recall reading that the switch for TV’s from 4:3 to 16:9 ratio was to make a more natural aspect ratio for the human eye. Well, even at 16:9 (which might approximate my eye’s static view), I often tend to move my head left/right, so hopefully these wide/POV shots are more emmersive. Lastly, I have to tip my hat to the team who made PanoApp, a great $2 iPhone app that does all the stitching work for you. Go download it and post stuff.

Anyway, here is 72 hours exploring in SF. This is not realtime, this is not broad casted/narrow casted, this is not person tagged nor is it geo tagged. Just some simple photos I thought some people might enjoy.

SOMA: The view from my desk at work, I have never used the monitor on the right

SOMA: Every Friday at TwitterHQ, teatime with drinks, live music and serious QA... I'm holding 2 beers.

SOMA: Walking over Howard St on the Yerba Buena bridge. I'm listening to Metric.

Embarcadero: My Thursday poker game with some of the nicest guys in town, though I'm about to lose a big pot

Union Square: The Powell BART station, heading out for food. I'm craving Chinese food

SOMA: Chatting with my coworker @alan about my panorama experiment. The pano is so meta.

Nob Hill: The top of the hill, just a few blocks from my apartment. Choice: Russian Hill ahead, China town the the right

Russian Hill: One of the steepest/funniest hills in the city. I'm thinking about tipping a car over (Broadway/Jones)

Russian Hill: Relaxing at one of my favorite "hidden" spots in the city. A random dog sits down beside me to enjoy the view

Dolores Park: Tons of people enjoying the nice weather. I'm wearing my pink sunglasses to fit in

Mission: The Summit cafe, a new but prototypical cool/geeky tech hangout with great coffee. I'm holding a fancy Cappuccino

The Marina: You can see the Golden Gate to the left, and Alcatraz to the right. It is really windy

Union Square: Tons of tourists lining up for the Cable Car and enjoying some local street performers

Mission: 16th St. BART, a shot of me going home after a long day of wandering. photo by @moizsyed

We see thousands if not millions of moments just like these on a day to day basis. Hopefully I’ll remember to stop and capture a few of them for me to revisit and share in the future. On a closing note:

I’ve recently spent quite a bit of time working with QUnit, a great unit testing framework for Javascript. While building out a larger test suite, I ran into a few issues, especially while testing/working with dependency managers and the QUnit test framework. In this post I’ll document some of the issues I ran into, some patterns I started using, and a few tricks I used to ensure consistent and reliable test results. The main issues I ran into were caused by the fact that I was testing modules that were being loaded asynchronously. This meant that in some cases QUnit would miss tests, misplace module labels, and/or report false positives. Now when I mention async here, it is not to be confused with QUnit’s native support for asyncTests.

Problem #1: QUnit.done misfiring

QUnit.done = function(qunitReport) {
  console.log('Done!');
};
setTimeout(function() {
  test("helloworld", function() {
    expect( 1 );
    ok(true);
  });
}, 100);

Read the rest of this entry »

I am always interested in looking at large sets of data. Earlier today, LinkedIn released InMaps which provide a simple tool for visualizing one’s network on LinkedIn.  After a few seconds of processing, I was presented with this colorful and interactive visualization of the ~200 connections I have on LinkedIn. Now I don’t have quite as many connections as others, but I was still very impressed with the powerful bits of information I was able to quickly get out of this graph. The plotting algorithm did a pretty good job, as I see 3 major clusters which are composed of my University of Toronto connections, the connections I made at my previous startup Thoora, and the connections I have made (mostly coworkers) since I moved to San Francisco for Twitter.

Read the rest of this entry »

I recently received a Wacom tablet+stylus as a gift and could think of no one else to draw for my first sketch but Alan Turing. This is a 4 layer Photoshop trace atop a famous photo of one of my favorite historical scientists. I figured it could be a late tribute to one of the guys who started it all. On this day (November 28) in 1942, Alan Turing was sending a report from Washington, D.C. describing his 2 week tour of America and their code breaking efforts for WW2. I’ve always appreciated his subtle humor and lingering disappointment in his writing/dialogues, this report is no exception. Always up for a challenge, and (seemingly) rarely impressed or satisfied; breaking German encryption codes and theorizing the modern computer wasn’t bad for a 30 year old math geek from West London.

“I’d say we have come a long way since Zygalski sheets and Hut 8 in Blechley Park, Alan.  Don’t forget to thank Welchman for that diagonal board.  R.I.P.”

Above is an overlay of every (CrunchBase listed) startup in San Francisco.  In an afternoon hack, me, @alan and @thetylerhayes scrapped the crunchbase API then mashed it into Google Maps to get an interesting view of the city.  I am always amazed at the amount of startup culture in this city (hence I moved here), but never had a chance to really see it from this perspective.  My office and apartment are somewhere buried underneath one of those pins.  I’ll try to put up a more interactive version of this chart sooner than later.

Who do you bring to the fight when facing a tough market, timelines and competition?

While excellent engineering talent is a must, there are many overlooked or under-appreciated roles that I believe are essential to the success of any software company – at any stage.   I often hear the excuse:  “We are too small of a company to hire a ________”.  Well guess what?  Your competitors have one, or maybe more, so SOMEONE at your company has to be taking on these responsibilities.  You might be lucky enough to have these roles filled, perhaps these responsibilities are shared within your company, but ignoring them will soon land you in a lot of trouble.  Lets get started with the 3 P’s that I believe are so important for any software project to succeed.

Read the rest of this entry »

As a summary, this post outlines some good-to-know things for any Canadian software developer thinking about moving to the US to work.

Pretty bizarre tutorial no?  But after going through this experience (just shy of 2 months ago) I realized that there are a lot of things I wish I had done / known before.  A recent visit from a friend from Toronto had me thinking that others may benefit from a post like this.  This info is specific to San Francisco, however I am sure it applies to many other cities.  I have to thank @bentlegen and @shazow for the advice I got while moving in, I intend to pass the baton.  For a great post on how to decide where to work (if you are fortunate enough to have options), checkout @shazow’s post on: A check list while considering offers.  This post outlines all sorts of issues I ran into, feel free to skip ahead to the parts you might find useful.  I will cover things like: getting a visa, finding a place to live, and how to efficiently spend your first week in the city.  As a disclaimer for all the immigration advice, this is just through my experience.  I am not an immigration lawyer and if you have specific questions, I suggest you consult one.

Read the rest of this entry »

Is your software development a linear conveyor belt of bottlenecks?

This post describes my experience mixing Agile + User Experience design while building out the mobile site for thoora.com.  While this process worked for us, it won’t work for everyone/every project, however it allowed us to minimize blocked tickets and maximize the time of our small development team.  Breaking the work into manageable stories, and parallelizing the work early and often is a great technique to maximize output and manage the traditionally serial and inherently blocking jobs and responsibilities when mixing UX and Agile methodologies.

Read the rest of this entry »

The infamous TN1-VISA: Its like Willy Wonka's golden ticket, except this one lets me legally work in the US. I took this photo 5 minutes after walking out of the US customs office in YYZ

I recently moved from my home town of Toronto, Canada to downtown San Francisco.  A lot of people have asked me why I moved (other than the job) so I thought I’d write a quick post about my move.  Over the next few months I will also be publishing weekly (hopefully) updates about my journey into the heart of the tech world.
Read the rest of this entry »

Follow

Get every new post delivered to your Inbox.