<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ian Chan&#039;s Blog</title>
	<atom:link href="http://chanian.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chanian.com</link>
	<description>Ian on movies, software, ux and everything else</description>
	<lastBuildDate>Thu, 15 Mar 2012 16:59:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='chanian.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ian Chan&#039;s Blog</title>
		<link>http://chanian.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://chanian.com/osd.xml" title="Ian Chan&#039;s Blog" />
	<atom:link rel='hub' href='http://chanian.com/?pushpress=hub'/>
		<item>
		<title>The Internet Is a Whole lotta C.R.U.D.</title>
		<link>http://chanian.com/2012/03/15/the-internet-is-a-whole-lotta-c-r-u-d/</link>
		<comments>http://chanian.com/2012/03/15/the-internet-is-a-whole-lotta-c-r-u-d/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 16:59:21 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=1056</guid>
		<description><![CDATA[The simplest design principles can go a long, long way. Start small, then grow from there. Let&#8217;s not over complicate things, or forget what we are really trying to build. I took a quick look at some of my favourite companies from around the web, and saw a whole lotta CRUD. Which is your favourite crud, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=1056&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The simplest design principles can go a long, long way. Start small, then grow from there. Let&#8217;s not over complicate things, or forget what we are really trying to build. I took a quick look at some of my favourite companies from around the web, and saw a whole lotta <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a>.</p>
<p>Which is your favourite crud, which did I miss?</p>
<div id="attachment_1057" class="wp-caption aligncenter" style="width: 470px"><img class="size-full wp-image-1057  " title="crud" src="http://chanian2.files.wordpress.com/2012/03/crud.png?w=460&#038;h=1003" alt="" width="460" height="1003" /><p class="wp-caption-text">#HumbleBeginings</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/1056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/1056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/1056/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=1056&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2012/03/15/the-internet-is-a-whole-lotta-c-r-u-d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2012/03/crud.png" medium="image">
			<media:title type="html">crud</media:title>
		</media:content>
	</item>
		<item>
		<title>Google+ Circles: And The Inverted Personal Privacy Dilemma</title>
		<link>http://chanian.com/2011/07/25/google-circles-and-the-inverted-personal-privacy-dilemma/</link>
		<comments>http://chanian.com/2011/07/25/google-circles-and-the-inverted-personal-privacy-dilemma/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 13:05:58 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[circles]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=933</guid>
		<description><![CDATA[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 &#8220;What I choose to share with Google and then what Google shows to others&#8221;, the issue is now: &#8220;What friends/complete strangers choose to share about me to Google, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=933&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_1002" class="wp-caption alignnone" style="width: 460px"><img class="size-full wp-image-1002" title="circles" src="http://chanian2.files.wordpress.com/2011/07/circles1.png?w=460" alt=""   /><p class="wp-caption-text">What circles do you think you have been added to?</p></div>
<p><strong>tldr:<br />
</strong>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 &#8220;What I choose to share with Google and then what Google shows to others&#8221;, the issue is now: &#8220;What friends/complete strangers choose to share about me to Google, and my inability to do anything about it&#8221;. The responsibility of maintaining my personal privacy has been partially removed from my hands, and placed in the hands of the people of internet.</p>
<p><strong>Thought experiment:<br />
</strong>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&#8217;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.</p>
<p><span id="more-933"></span></p>
<p>Doing this algorithmically is hard* [full stop]. The process of taking a very soft analog characteristic, and turning it into a digital signal can be very difficult to get perfectly. Humans are very good at doing this. This problem situation seems very familiar:</p>
<blockquote><p>Before people-tagging came out, I think most people would have said that the best way to figure out who&#8217;s in photos was to have some face-recognition algorithm. But it actually turns out that the best way is to just have people tagged.<br />
<strong>-Mark Zuckerberg</strong></p></blockquote>
<p><strong><br />
Background:<br />
</strong>As Google throws it&#8217;s hat into the social ring once again, we have all been treated to a very interesting and exciting new alternative on the web to social networking. I&#8217;ve read many very interesting opinions on the new product, some heavily praising, some really bashing it. I&#8217;ve resisted my natural urge to do an overview of the UI/general UX. I will not be doing a product or feature review. I will however look at some interesting privacy implications some of these new features/concepts this product has introduced.</p>
<p>Google&#8217;s famous mission statement: &#8220;organize the world&#8217;s information and make it universally accessible and useful&#8221; has lead to some of the most brilliant and amazing products I have ever used. Using my own mission statements, I see Google Search (organize the web) of course topping the list, their amazing Maps product (organize the physical world), GMail (organize my digital mail), Google Images (organize the web&#8217;s images) etc all as fantastic products. It became clear in the late 2000&#8242;s and now into 2011, that the social web and social networking was the next necessary territory grab online. Staying inline with Google&#8217;s motto, I personally see Google+ as: organize my social network, or perhaps organize the world&#8217;s content with social context for me, or maybe even: organize the people in the world.</p>
<p><strong>The Dilemma:</strong><br />
To me, Google may have accidentally introduced a new type of privacy issue, something I call the <strong>&#8220;inverted personal privacy dilemma&#8221;</strong>. I call it a dilemma because while I feel like my privacy is safe from others, I am essentially exposing information about other people without their knowledge. And I use the word inverted because to me, it seems opposite to all of the traditional privacy problems that exist on the web.</p>
<p>This is also a dilemma because I personally don&#8217;t like seeing myself comparable to an <a href="http://books.google.com/books?id=NLngYyWFl_YC&amp;lpg=PA296&amp;dq=avl%20trees%20CLRS&amp;pg=PA296#v=onepage&amp;q=fibonacci%20heap&amp;f=false">indexable book</a>, nor do I feel like I am <a href="http://maps.google.com/maps?q=Toronado&amp;hl=en&amp;ll=37.77253,-122.431211&amp;spn=0.00921,0.01929&amp;fb=1&amp;cid=0,0,14952440980636118476&amp;near=San+Francisco,+CA&amp;t=h&amp;z=16&amp;iwloc=A">a place on a map</a>. I&#8217;d hope that there is a human element that lets me be who I want to be, beyond any indexable attributes or properties. There is already a pretty large index of people on the web, it is called Facebook. I use it, and I provide as much information about myself that I feel comfortable with, and this is what it looks like for me:</p>
<p><img class="alignnone size-full wp-image-1003" style="border-color:black;border-style:solid;border-width:1px;" title="fb" src="http://chanian2.files.wordpress.com/2011/07/fb.png?w=460&#038;h=120" alt="" width="460" height="120" /></p>
<p>The information here was provided by me, and is essentially the most amount of information I&#8217;ve ever really been comfortable disclosing with people online. It is the sufficient snapshot of my life which made it easiest for my old friends/coworkers to find me if they chose to look. I personally don&#8217;t add anything else, although Facebook gives you the option to do so, and many do willingly. I don&#8217;t add music, movies, religion, favourite book, etc, although again, many people choose to do. And that is fine.</p>
<p><strong>Circles:</strong><br />
Interestingly enough, in addition to the basic personal information I&#8217;ve added, the Google+ circles metaphor allows a very similar view of my networks. My circles are explicitly created/labeled, private views of my social graph. This data certainly says something about me and my network from my perspective:</p>
<p><img class="alignnone size-full wp-image-940" title="Screen shot 2011-07-21 at 6.04.33 PM" src="http://chanian2.files.wordpress.com/2011/07/screen-shot-2011-07-21-at-6-04-33-pm.png?w=460&#038;h=105" alt="" width="460" height="105" /></p>
<p>Right now, I am notified when someone has added me to a circle, and I can choose to ignore it, or maybe add them to one of my circles. Fairly harmless. From the perspective of my Google+ account, this is a visualization of most of what Google knows about me based on what I have explicitly done on the site (circles/bio etc).</p>
<p><img class="alignnone size-full wp-image-947" title="inbound graph" src="http://chanian2.files.wordpress.com/2011/07/inbound-graph.png?w=460&#038;h=327" alt="" width="460" height="327" /></p>
<p>I have added my location to my profile, my alma mater and that I have previously lived in Toronto. Additionally, I have created circles for those properties which further re-enforces the data graph that these are true characteristics of the person Ian Chan. I have chosen explicitly to share this subset of information with the web, not too different than the minimal amount of info I have shared on my Facebook account.</p>
<p><strong>Inverting:</strong><br />
Now let&#8217;s invert this graph, or rather, lets visualize how other people on the internet have added me to their circles and what the implications are. It&#8217;s worth noting, a large portion of people who have added me to their circles are complete strangers:</p>
<p><img class="alignnone size-full wp-image-946" title="outbound graph" src="http://chanian2.files.wordpress.com/2011/07/outbound-graph.png?w=460&#038;h=313" alt="" width="460" height="313" /></p>
<p>Now due to the existing privacy constraints, I cannot actually see which circles I have been added to. This satisfies most people&#8217;s concerns about the circles metaphor. But it is easy to speculate how people may curate their graph. If one of the purposes of circles is to allow topic based feeds of data, and narrow cast content to these circles, the above graphic is fairly reasonable for me. At the bottom, I display the expected: Toronto, SF, UofT groups which compliment the same circles I have already created. Given the bi-directional (explicit outbound + implicit inbound) taxonomy group agreement, it is a fairly strong/confident signal about my personal characteristics. The more people who add me to their SF circle, likely the stronger that signal becomes. Javascript, UX, startups is another group of circles I can imagine myself being placed in. Since I often talk about these topics, and am active in each respective community, it would make sense for the industry connections I make to slot me into these bins.</p>
<p>The last property, Poker, is something that gets a bit more interesting. Yes, I know a lot of people through my hobby playing poker, and it is not unrealistic for one of my friends/acquaintances to add me to a poker circle. The action of them doing so creates a new edge on my implicit interest graph for which a data point now connects me with the  &#8221;poker&#8221; taxonomy entity. The more people who add me to a &#8220;Poker&#8221; (or similar) circle, the stronger that graph edge becomes in the global taxonomy. Now, I am pretty open about my poker hobby, but I wouldn&#8217;t explicitly add that as a hobby on Facebook;  Mostly because I don&#8217;t need advertisers knowing that &#8220;gambling&#8221; is an enjoyable pastime of mine. As I mentioned before, my Facebook interests are basically empty, and as a result, I rarely get ads targeted to me beyond the generic targeting for a &#8220;male in SF&#8221;.</p>
<p><strong>Implications:</strong><br />
Advertising and control. The prices for targeted, contextual ads are significantly higher than non-targeted ads. Facebook learned this a long time ago, especially in the social context. From the Facebook <a href="https://www.facebook.com/help/?faq=188888021162119">advertisement documentation</a>:</p>
<div>
<blockquote><p><strong>How are interests identified?</strong><br />
Interest targeting allows advertisers to target users based on information <span style="text-decoration:underline;">they’ve</span> provided in their profile. This includes listed likes and interests, the Pages <span style="text-decoration:underline;">they</span> like, apps <span style="text-decoration:underline;">they</span> use, and other profile content <span style="text-decoration:underline;">they’ve</span> provided.</p></blockquote>
</div>
<p>I like this (Facebook&#8217;s) model. It is within my control. Poker is obviously just an example here. I would not be devastated if I were targeted for a poker ad, but I might be a bit uncomfortable with it. But there are a lot of other characteristics about myself that I would not want to share with an ad targeting system. My religion, my political leanings, my ethnicity, etc are just a few characteristics that are all reasonable circles one may innocently add me to. And the current circles model allows essentially anyone to &#8220;tag&#8221; me with whatever they want, as a result, constructing an interest graph on my behalf.</p>
<p><strong>Advertising:</strong><br />
Google+ does not currently have display ads, which is very nice! However it is clear that their large app suite is pushing towards some kind of convergence, so there will be ample advertisement opportunities down the road. Could information/context provided by another person about me really find its way onto my screen? Lets try:</p>
<div id="attachment_978" class="wp-caption alignnone" style="width: 470px"><img class="size-full wp-image-978" title="gmail-advert" src="http://chanian2.files.wordpress.com/2011/07/gmail-advert.png?w=460&#038;h=291" alt="" width="460" height="291" /><p class="wp-caption-text">Unfortunately, most recruiting emails I get are not too far off from this spoof</p></div>
<p>I sent an email to myself as Joe Co-Founder who was looking for a Rockstar Ruby Developer. I did not choose to get this email, though I did choose to open it. And (as expected), the adverts are all tailored to the context of the email. This is good advertising, this is targeted advertising, and this is only the beginning.</p>
<p><strong>Choice:<br />
</strong>Choice is always nice. Currently in my bio, I can choose to omit certain bits of data that I feel are too personal. On Facebook, if I had chosen to not associate myself with my high school in Toronto, I would simply remove it from my personal information. With that one simple choice/action, it would eliminate any explicit way of connecting me to the school I went to before University. On Google+, I am almost certain that people have started to add me to the &#8220;Northern Secondary High&#8221; circle, because that makes perfect sense, because that is exactly what circles were designed for. I have no choice in the matter, I have been labeled. I can choose to not use Google+ of course, but I enjoy using Google products. I could choose to not use circles at all, but the current UX requires me to put everyone into at least one circle.</p>
<p><strong>Parallels:<br />
</strong>Some have described &#8220;Circles&#8221; as being analogous to Facebook lists, for which I would disagree. While the concept is similar, the privacy model (in the context of this article) is very different. I can only add people who are my friends to lists. People can only be my friend if either they or I have permitted the connection. Therefore, the people that may be adding me to lists are within my accepted/trusted circle. Some have also drawn parallels between circles and Twitter lists. Again there are differences. While the asymmetric nature of the following graph is similar to Google circles (anyone can add me to a list), the difference is that these lists are all public to me.</p>
<div id="attachment_974" class="wp-caption alignnone" style="width: 470px"><img class="size-full wp-image-974" title="twitter-lists" src="http://chanian2.files.wordpress.com/2011/07/twitter-lists.png?w=460&#038;h=410" alt="" width="460" height="410" /><p class="wp-caption-text">Lists I have been added to. Lists created by people I know/people I don&#039;t know...</p></div>
<p>I&#8217;ve been added to ~100 or so lists, and I can check them out and see what people have identified me as. Nothing too surprising, but the information is all there. If I found a list I did not like being in, I could <a href="https://support.twitter.com/articles/76460-how-to-use-twitter-lists">simply remove myself from said list</a>*.</p>
<p>To me, Circles are not like either Facebook/Twitter lists. I see closer parallels in other places on the web:</p>
<div id="attachment_983" class="wp-caption alignnone" style="width: 470px"><img class="size-full wp-image-983" title="delicious" src="http://chanian2.files.wordpress.com/2011/07/delicious.png?w=460&#038;h=74" alt="" width="460" height="74" /><p class="wp-caption-text">delicious.com: tags associated with a specific bookmarked url</p></div>
<div id="attachment_984" class="wp-caption alignnone" style="width: 202px"><img class="size-full wp-image-984" title="stackoverflow" src="http://chanian2.files.wordpress.com/2011/07/stackoverflow.png?w=460" alt=""   /><p class="wp-caption-text">stackoverflow.com: Tags associated with a specific question</p></div>
<p>This &#8220;tagging&#8221; model is much closer to circles in my opinion than anything else I&#8217;ve seen on the web. And as I said before, it feels weird being tagged/indexed like a book, a question, a url, especially when I have no control over it.</p>
<p><strong>&#8220;Ian, you are a rambling lunatic&#8230;..&#8221;<br />
</strong>I&#8217;ve chosen to *really* nitpick a single feature. I really don&#8217;t think there is some super secret master plan here. The purpose of this entire post is to just be a talking point about privacy, the social web and ad targeting in general. I think that Google+ is great. I really find the circle metaphor an interesting approach and concept. I do not believe that they built it as some kind of secret way of mining data about people, and truly hold the opinion that it was designed to empower users. However I acknowledge that creating a rich, strong taxonomy/database of people and characteristics would be incredibly hard to do purely automated. <strong>I kind of feel like the cirlces metaphor is the greatest <a href="http://en.wikipedia.org/wiki/Amazon_Mechanical_Turk">Mechanical Turk</a> task ever created which is organizing and labeling the people of the world</strong>. What circles do you think you have been added to? If you decide to add me to a circle, maybe just add me to your &#8220;following&#8221; circle. And while your at it, you might as well just follow me on Twitter, I&#8217;ll probably follow you back&#8230;.</p>
<blockquote class='twitter-tweet'><p>Organizing the world&#039;s information, one circle at a time&#8230;&mdash; <br />Ian Chan (@chanian) <a href='http://twitter.com/#!/chanian/status/94105405768212480' data-datetime='2011-07-21T18:04:11+00:00'>July 21, 2011</a></p></blockquote>
<p><strong>Editor&#8217;s note:</strong> This is obviously an expression of my own opinions and not my employer. While my employer is publicly being considered a competitor to G+, I would hold the same thoughts and unbiased opinion regardless of where I worked. Also, thanks to <a href="http://twitter.com/michaelcvet" target="_blank">@michaelcvet</a> for the feedback and revisions on this post.</p>
<p>[*] On the difficulty of automation: If you disagree, stop reading my blog, make the product and make millions!</p>
<p>[**] On Twitter lists: I acknowledge that there are some complications with private users/lists, but that is far from the average use case.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/933/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/933/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/933/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=933&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2011/07/25/google-circles-and-the-inverted-personal-privacy-dilemma/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/circles1.png" medium="image">
			<media:title type="html">circles</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/fb.png" medium="image">
			<media:title type="html">fb</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/screen-shot-2011-07-21-at-6-04-33-pm.png" medium="image">
			<media:title type="html">Screen shot 2011-07-21 at 6.04.33 PM</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/inbound-graph.png" medium="image">
			<media:title type="html">inbound graph</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/outbound-graph.png" medium="image">
			<media:title type="html">outbound graph</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/gmail-advert.png" medium="image">
			<media:title type="html">gmail-advert</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/twitter-lists.png" medium="image">
			<media:title type="html">twitter-lists</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/delicious.png" medium="image">
			<media:title type="html">delicious</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/07/stackoverflow.png" medium="image">
			<media:title type="html">stackoverflow</media:title>
		</media:content>
	</item>
		<item>
		<title>72 Hours In Photos: A tech geek wandering San Francisco</title>
		<link>http://chanian.com/2011/06/13/72-hours-in-photos/</link>
		<comments>http://chanian.com/2011/06/13/72-hours-in-photos/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 05:37:46 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[panoramic]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=886</guid>
		<description><![CDATA[I&#8217;ve been experimenting recently with a bunch of cool photosharing apps on my iPhone including: Path, With, Twitter, Facebook, Denwen, Color, Dailybooth&#8230; (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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=886&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg"><img class="size-full wp-image-895 alignnone" title="dolores park" src="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg?w=460" alt=""   /></a></p>
<p>I&#8217;ve been experimenting recently with a bunch of cool photosharing apps on my iPhone including: <a href="http://itunes.apple.com/us/app/path/id403639508?mt=8">Path</a>, <a href="http://itunes.apple.com/us/app/with/id441021892?mt=8">With</a>, <a href="http://itunes.apple.com/us/app/twitter/id333903271?mt=8">Twitter</a>, <a href="http://itunes.apple.com/us/app/facebook/id284882215?mt=8">Facebook</a>, <a href="http://itunes.apple.com/us/app/denwen/id402894268?mt=8">Denwen</a>, <a href="http://itunes.apple.com/us/app/color/id427763573?mt=8">Color</a>, <a href="http://itunes.apple.com/us/app/dailybooth/id381470756?mt=8">Dailybooth</a>&#8230; (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&#8217;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.</p>
<p>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&#8217;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&#8217;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 <a href="http://itunes.apple.com/us/app/pano/id293709029?mt=8">PanoApp</a>, a great $2 iPhone app that does all the stitching work for you. Go download it and post stuff.</p>
<p>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.</p>
<div id="attachment_887" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/twitter-desk.jpg"><img class="size-full wp-image-887 " title="twitter desk" src="http://chanian2.files.wordpress.com/2011/06/twitter-desk.jpg?w=460" alt=""   /></a><p class="wp-caption-text">SOMA: The view from my desk at work, I have never used the monitor on the right</p></div>
<div id="attachment_888" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/twitter-teatime.jpg"><img class="size-full wp-image-888" title="twitter teatime" src="http://chanian2.files.wordpress.com/2011/06/twitter-teatime.jpg?w=460" alt=""   /></a><p class="wp-caption-text">SOMA: Every Friday at TwitterHQ, teatime with drinks, live music and serious QA... I&#039;m holding 2 beers.</p></div>
<div id="attachment_889" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/soma.jpg"><img class="size-full wp-image-889" title="soma" src="http://chanian2.files.wordpress.com/2011/06/soma.jpg?w=460" alt=""   /></a><p class="wp-caption-text">SOMA: Walking over Howard St on the Yerba Buena bridge. I&#039;m listening to Metric.</p></div>
<div id="attachment_904" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/poker1.jpg"><img class="size-full wp-image-904" title="poker" src="http://chanian2.files.wordpress.com/2011/06/poker1.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Embarcadero: My Thursday poker game with some of the nicest guys in town, though I&#039;m about to lose a big pot</p></div>
<div id="attachment_891" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/powell-station.jpg"><img class="size-full wp-image-891" title="powell station" src="http://chanian2.files.wordpress.com/2011/06/powell-station.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Union Square: The Powell BART station, heading out for food. I&#039;m craving Chinese food</p></div>
<div id="attachment_917" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/alan.jpg"><img class="size-full wp-image-917    " title="alan" src="http://chanian2.files.wordpress.com/2011/06/alan.jpg?w=460" alt=""   /></a><p class="wp-caption-text">SOMA: Chatting with my coworker @alan about my panorama experiment. The pano is so meta.</p></div>
<div id="attachment_892" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/nobhill.jpg"><img class="size-full wp-image-892" title="nobhill" src="http://chanian2.files.wordpress.com/2011/06/nobhill.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Nob Hill: The top of the hill, just a few blocks from my apartment. Choice: Russian Hill ahead, China town the the right</p></div>
<div id="attachment_893" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/russionhill.jpg"><img class="size-full wp-image-893" title="russionhill" src="http://chanian2.files.wordpress.com/2011/06/russionhill.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Russian Hill: One of the steepest/funniest hills in the city. I&#039;m thinking about tipping a car over (Broadway/Jones)</p></div>
<div id="attachment_894" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/russianhill2.jpg"><img class="size-full wp-image-894" title="russianhill2" src="http://chanian2.files.wordpress.com/2011/06/russianhill2.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Russian Hill: Relaxing at one of my favorite &quot;hidden&quot; spots in the city. A random dog sits down beside me to enjoy the view</p></div>
<div id="attachment_895" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg"><img class="size-full wp-image-895" title="dolores park" src="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Dolores Park: Tons of people enjoying the nice weather. I&#039;m wearing my pink sunglasses to fit in</p></div>
<div id="attachment_896" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/thesummit.jpg"><img class="size-full wp-image-896" title="thesummit" src="http://chanian2.files.wordpress.com/2011/06/thesummit.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Mission: The Summit cafe, a new but prototypical cool/geeky tech hangout with great coffee. I&#039;m holding a fancy Cappuccino</p></div>
<div id="attachment_897" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/marina.jpg"><img class="size-full wp-image-897" title="marina" src="http://chanian2.files.wordpress.com/2011/06/marina.jpg?w=460" alt=""   /></a><p class="wp-caption-text">The Marina: You can see the Golden Gate to the left, and Alcatraz to the right. It is really windy</p></div>
<div id="attachment_898" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/cable-car.jpg"><img class="size-full wp-image-898" title="cable car" src="http://chanian2.files.wordpress.com/2011/06/cable-car.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Union Square: Tons of tourists lining up for the Cable Car and enjoying some local street performers</p></div>
<div id="attachment_899" class="wp-caption alignnone" style="width: 730px"><a href="http://chanian2.files.wordpress.com/2011/06/16th-station.jpg"><img class="size-full wp-image-899" title="16th station" src="http://chanian2.files.wordpress.com/2011/06/16th-station.jpg?w=460" alt=""   /></a><p class="wp-caption-text">Mission: 16th St. BART, a shot of me going home after a long day of wandering.  photo by @moizsyed</p></div>
<p>We see thousands if not millions of moments just like these on a day to day basis. Hopefully I&#8217;ll remember to stop and capture a few of them for me to revisit and share in the future. On a closing note:</p>
<blockquote class='twitter-tweet'><p>I think Im developing an unhealthy obsession with taking panoramic photos&#8230;&mdash; <br />Ian Chan (@chanian) <a href='http://twitter.com/#!/chanian/status/79758339910807552' data-datetime='2011-06-12T03:54:04+00:00'>June 12, 2011</a></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/886/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=886&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2011/06/13/72-hours-in-photos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg" medium="image">
			<media:title type="html">dolores park</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/twitter-desk.jpg" medium="image">
			<media:title type="html">twitter desk</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/twitter-teatime.jpg" medium="image">
			<media:title type="html">twitter teatime</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/soma.jpg" medium="image">
			<media:title type="html">soma</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/poker1.jpg" medium="image">
			<media:title type="html">poker</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/powell-station.jpg" medium="image">
			<media:title type="html">powell station</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/alan.jpg" medium="image">
			<media:title type="html">alan</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/nobhill.jpg" medium="image">
			<media:title type="html">nobhill</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/russionhill.jpg" medium="image">
			<media:title type="html">russionhill</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/russianhill2.jpg" medium="image">
			<media:title type="html">russianhill2</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/dolores-park.jpg" medium="image">
			<media:title type="html">dolores park</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/thesummit.jpg" medium="image">
			<media:title type="html">thesummit</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/marina.jpg" medium="image">
			<media:title type="html">marina</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/cable-car.jpg" medium="image">
			<media:title type="html">cable car</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/06/16th-station.jpg" medium="image">
			<media:title type="html">16th station</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing QUnit Test Suites with Async Module Dependencies</title>
		<link>http://chanian.com/2011/05/10/managing-qunit-test-suites-with-async-module-dependencies/</link>
		<comments>http://chanian.com/2011/05/10/managing-qunit-test-suites-with-async-module-dependencies/#comments</comments>
		<pubDate>Tue, 10 May 2011 06:58:27 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[loadrunner.js]]></category>
		<category><![CDATA[qunit]]></category>
		<category><![CDATA[require.js]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=793</guid>
		<description><![CDATA[I&#8217;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&#8217;ll document some of the issues I ran into, some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=793&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently spent quite a bit of time working with <a href="http://docs.jquery.com/Qunit">QUnit</a>, 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&#8217;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&#8217;s native support for asyncTests.</p>
<p><strong>Problem #1: QUnit.done misfiring</strong></p>
<p><pre class="brush: jscript; highlight: [4,9];">
QUnit.done = function(qunitReport) {
  console.log('Done!');
};
setTimeout(function() {
  test(&quot;helloworld&quot;, function() {
    expect( 1 );
    ok(true);
  });
}, 100);
</pre></p>
<p><span id="more-793"></span></p>
<p>The timeout here simulates the delay that an asynchronous dependency might create when QUnit loads up all the tests. In the above example, the QUnit.done event will get called several times (<a href="https://github.com/jquery/qunit/issues/53">a similar report was addressed here</a>, but I am still seeing the issue). This can be particularly problematic if you are using a test runner to automate your QUnit test suite, and are waiting on this event to complete your suite.</p>
<p><strong>Problem #2: Missing/Empty test cases</strong></p>
<p><pre class="brush: jscript; highlight: [8,9,10];">
window.setTimeout(function() {
  asyncTest('test1', function() {
    expect(1);
    ok(true);
    start();
  });
  test('test2 - Something has gone horribly wrong!!', function() {
    expect(100);
    console.log(&quot;Yes this test run&quot;);
    ok(false);
  });
  test('test3', function() {
    expect(1);
    ok(true);
  });
}, 150);
</pre></p>
<p>In this example, the second test (or actually any test between the first and last) will be listed, run, but the results of the test will be ignored. This can be particularly dangerous since they will be visually reported as passed (yet empty) tests, and the QUnit.done results object will not show any errors. In this situation, it seems like QUnit collects the list of tests, but during the execution of the individual tests, something goes wrong.</p>
<div id="attachment_808" class="wp-caption alignnone" style="width: 470px"><img class="size-full wp-image-808" title="Screen shot 2011-05-06 at 3.58.32 PM" src="http://chanian2.files.wordpress.com/2011/05/screen-shot-2011-05-06-at-3-58-32-pm.png?w=460&#038;h=283" alt="" width="460" height="283" /><p class="wp-caption-text">Note that the 2nd test has 0 reported asserts, even though the test itself was actually run.</p></div>
<p>Timeouts (independent of actual asyncTests)/asynchronous behavior tends to throw the test runner off. Since I was unit testing async modules and code that depended on these modules, this was a problem. What I needed was a way to ensure that the test suite was only run after every test was registered, and I could only register each test when I knew the dependencies they relied on were loaded themselves.</p>
<p><strong>Make each test a managed dependency:</strong></p>
<p><pre class="brush: jscript;">
QUnit.config.autostart = false;
using('tests/suite1', function() {
    start();
});
</pre></p>
<p>For starters, we tell QUnit not to autostart. This will allow us to explicitly start the runner when we are certain the test environment is ready. We next re-write, then load in our test suite(s) as <a href="https://github.com/danwrong/loadrunner">loadrunner.js</a> dependencies, and once that is complete we are safe to begin. loadrunner.js will deal with all the sub-dependencies that may be required in &#8220;tests/test1&#8243;, and will also block until that test has explicitly reported that it is ready.</p>
<p><pre class="brush: jscript; highlight: [16];">
provide('test/suite1', function(exports) {
  asyncTest('test1', function() {
    expect(1);
    ok(true);
    start();
  });
  test('test2 - Something has gone horribly wrong!!', function() {
    expect(100);
    console.log(&quot;Yes this test run&quot;);
    ok(false);
  });
  test('test3', function() {
    expect(1);
    ok(true);
  });
  exports();
});
</pre></p>
<p>And when this test suite is run, we see the expected failing test, and also a single done event fired. The screenshot below shows us the desired output, a big glaring warning telling us that something has gone wrong in our code!</p>
<div id="attachment_834" class="wp-caption alignnone" style="width: 470px"><img class="size-full wp-image-834" title="Screen shot 2011-05-09 at 10.38.16 PM" src="http://chanian2.files.wordpress.com/2011/05/screen-shot-2011-05-09-at-10-38-16-pm.png?w=460&#038;h=364" alt="" width="460" height="364" /><p class="wp-caption-text">I realize now that my choice of example makes this look bad, but we *want* to see this failing test. In this example I also brought back the QUnit.done, which now works.. a nice side effect.</p></div>
<p>I happened to use this technique (and solution) in loadrunner.js, because I was developing and testing loadrunner modules. You can find a similar solution if you are working with require.js <a href="http://forum.jquery.com/topic/are-qunit-and-requirejs-compatible">here from the QUnit boards</a>. I&#8217;ve put some additional code up on <a href="https://github.com/chanian/asyncqunit">Github here</a>, which runs through a few various test scenarios and how this pattern can be used to create relatively clean/readable test files. I&#8217;ve also included a test template for &#8220;async-safe&#8221; QUnit suites.</p>
<p>I personally felt that this syntax also reads much nicer once you start including 10&#8242;s if not hundreds of test files. loadrunner will also load regular javascript files in the same fashion so you can mix (if you know for certain that there will be no sync probs). I found that by treating each test file as a managed dependency, you get better testing isolation, less potential for test poison/side effects, and more control over your test context with very little footprint. Lastly, it allows us to avoid making everything an async test just because a specific test happens to load an async dependency (especially when we are unit testing functionality, not the ability to load things asynchronously).</p>
<p>Hope this helps out someone down the line! Test safely my friends!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/793/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/793/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/793/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=793&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2011/05/10/managing-qunit-test-suites-with-async-module-dependencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/05/screen-shot-2011-05-06-at-3-58-32-pm.png" medium="image">
			<media:title type="html">Screen shot 2011-05-06 at 3.58.32 PM</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/05/screen-shot-2011-05-09-at-10-38-16-pm.png" medium="image">
			<media:title type="html">Screen shot 2011-05-09 at 10.38.16 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>InMaps: Automate Visualization of My LinkedIn Graph</title>
		<link>http://chanian.com/2011/01/25/inmaps-automate-visualization-of-my-linkedin-graph/</link>
		<comments>http://chanian.com/2011/01/25/inmaps-automate-visualization-of-my-linkedin-graph/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 10:09:51 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[inmaps]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[raphealjs]]></category>
		<category><![CDATA[seadragon]]></category>
		<category><![CDATA[social network]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=749</guid>
		<description><![CDATA[I am always interested in looking at large sets of data. Earlier today, LinkedIn released InMaps which provide a simple tool for visualizing one&#8217;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&#8217;t have quite [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=749&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://inmaps.linkedinlabs.com/share/Ian_Chan/78452979448300223244148323222387100003"><img class="alignnone size-full wp-image-750" src="http://chanian2.files.wordpress.com/2011/01/linkedin_viz.png?w=460&#038;h=397" alt="" width="460" height="397" /></a></p>
<p>I am always interested in looking at large sets of data. Earlier today, <a href="http://inmaps.linkedinlabs.com/network">LinkedIn released InMaps</a> which provide a simple tool for visualizing one&#8217;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&#8217;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.</p>
<p><span id="more-749"></span></p>
<p>The legend for the clusters was manually added, and I am curious if LinkedIn is using that data for something other than just a label. Either way, a very impressive, free, quick view of what I can imagine must be a ton of data. I can only predict over time that orange ball will grow, and likely split into two clusters as I connect with more coworkers, and connect with more tech geeks in the city.</p>
<p>This tool and graph gives some insight into the power of the data and network information that LinkedIn is housing. I constantly tell my friends and coworkers about how there are many *hidden* values of LinkedIn for which I appreciate, this tool being one of them. Unlike my Facebook account, I am not terribly interested in the general day-to-day updates of my network, but much more interested in the network itself. Who do I know? who am I connect to? and who might find me because I am connected to someone else? I&#8217;d say that to me, Twitter is all about the sum/collection of the individual tweets. Facebook is about the sum of the individual micro-interactions, and LinkedIn is all about the strength, and the quality of the social graph itself. This tool helps reinforce my opinion that my LinkedIn graph is much stronger and stable than my ever growing graph on Facebook.</p>
<p>Some nice slick looking vector graphs backed by <a href="http://raphaeljs.com/">Rapheal.js</a> and smooth as butter zooming and panning powered by Microsoft&#8217;s <a href="http://www.seadragon.com/developer/ajax/getting-started/">Seadragon Ajax</a>. This reminds me that I need to: (a) Find a cool large public data set. (b) Visualize some data. Try it out for yourself <a href="http://inmaps.linkedinlabs.com/network">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/749/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=749&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2011/01/25/inmaps-automate-visualization-of-my-linkedin-graph/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2011/01/linkedin_viz.png" medium="image" />
	</item>
		<item>
		<title>What Would Turing Do?</title>
		<link>http://chanian.com/2010/11/28/what-would-turing-do/</link>
		<comments>http://chanian.com/2010/11/28/what-would-turing-do/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 08:05:42 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[alan turing]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[enigma]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=703</guid>
		<description><![CDATA[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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=703&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-704" style="border:0 none;" title="turing1" src="http://chanian2.files.wordpress.com/2010/11/turing1.png?w=460" alt=""   /></p>
<p>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 <a href="http://www.turing.org.uk/sources/washington.html">sending a report</a> from Washington, D.C. describing his 2 week tour of America and their code breaking efforts for WW2. I&#8217;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&#8217;t bad for a 30 year old math geek from West London.</p>
<p>&#8220;I&#8217;d say we have come a long way since <a href="http://en.wikipedia.org/wiki/Zygalski_sheets">Zygalski sheets</a> and <a href="http://en.wikipedia.org/wiki/Bletchley_Park">Hut 8 in Blechley Park</a>, Alan.  Don&#8217;t forget to thank Welchman for that diagonal board.  R.I.P.&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/703/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/703/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/703/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=703&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2010/11/28/what-would-turing-do/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2010/11/turing1.png" medium="image">
			<media:title type="html">turing1</media:title>
		</media:content>
	</item>
		<item>
		<title>A man walks into a bar and asks &#8220;does anyone here work at a startup?&#8221;</title>
		<link>http://chanian.com/2010/11/08/a-man-walks-into-a-bar-and-asks-does-anyone-here-work-at-a-startup/</link>
		<comments>http://chanian.com/2010/11/08/a-man-walks-into-a-bar-and-asks-does-anyone-here-work-at-a-startup/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 23:43:08 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=693</guid>
		<description><![CDATA[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), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=693&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-694" title="SF_STARTUPS" src="http://chanian2.files.wordpress.com/2010/11/sf_startups.png?w=460" alt=""   /></p>
<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&#8217;ll try to put up a more interactive version of this chart sooner than later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/693/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=693&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2010/11/08/a-man-walks-into-a-bar-and-asks-does-anyone-here-work-at-a-startup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2010/11/sf_startups.png" medium="image">
			<media:title type="html">SF_STARTUPS</media:title>
		</media:content>
	</item>
		<item>
		<title>The 3 P&#8217;s of a Successful Software Project</title>
		<link>http://chanian.com/2010/09/23/the-3-ps-of-a-successful-software-project/</link>
		<comments>http://chanian.com/2010/09/23/the-3-ps-of-a-successful-software-project/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 08:36:56 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[product design]]></category>
		<category><![CDATA[product manager]]></category>
		<category><![CDATA[product marketing]]></category>
		<category><![CDATA[project manager]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=610</guid>
		<description><![CDATA[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 &#8211; at any stage.   I often hear the excuse:  &#8220;We are too small of a company to hire a ________&#8221;.  Well guess what?  Your competitors have one, or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=610&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_670" class="wp-caption alignnone" style="width: 557px"><img class="size-full wp-image-670" title="a0073-000157" src="http://chanian2.files.wordpress.com/2010/09/chess_pieces.jpg?w=460" alt=""   /><p class="wp-caption-text">Who do you bring to the fight when facing a tough market, timelines and competition?</p></div>
<p>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 &#8211; at any stage.   I often hear the excuse:  &#8220;We are too small of a company to hire a ________&#8221;.  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&#8217;s that I believe are so important for any software project to succeed.</p>
<p><span id="more-610"></span></p>
<p><strong>Product Manager:<br />
</strong><em>&#8220;I make sure we build the right product for our users and company&#8230;&#8221;</em><br />
Alter Egos: Product Owner, CEO, Business Analyst<br />
Answers the &#8220;WHY?&#8221;</p>
<p>Don&#8217;t need me? Then&#8230;.</p>
<ul>
<li>Who is going to provide business/market validation for large product and business decisions?</li>
<li>Who is making sure that what we build has a realistic product market fit?</li>
<li>Who comes up with ideas that facilitate the success of our business model through useful features?</li>
<li>Who mandates creating new, removing old, updating existing features?</li>
<li>Who is making sure our product strategy has a vision, time-line and plan?</li>
<li>Who is going to create a spec/scope, so we don&#8217;t feature creep our way 6 months past our deadline?</li>
</ul>
<p>Without me&#8230;.<br />
The end product will only be valuable to a small slice of a niche market that doesn&#8217;t actually exist.</p>
<p><strong>Product Designer</strong>:<br />
<em>&#8220;I make sure the product is actually good, looks great, and works well&#8230;&#8221;</em><br />
Alter Egos: UX Designer, UI Designer, Interaction Designer, Visual Designer<br />
Answers the &#8220;WHAT?&#8221;</p>
<p>Don&#8217;t need me? Then&#8230;.</p>
<ul>
<li>Who thinks about how users are actually going to use our features and what those features will look like?</li>
<li>Who is going to make/take wireframes and turn them into something someone can actually use?</li>
<li>Who is going to design a product that is visually/functionally comparable to the industry standards/competitors?</li>
<li>Who is going to tell the Product Manager that 9 banner ads are 9 too many?</li>
</ul>
<p>Without me&#8230;<br />
The end product will be an awkward interactive wireframe using bizarre UI elements soon to be seen in the &#8220;before&#8221; section of <a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107" target="_blank">Steve Krugg</a>&#8216;s next book.</p>
<p><strong>Project Manager:<br />
</strong><em>&#8220;I make sure that the project we are engineering actually gets finished&#8230;&#8221;</em><br />
Alter Egos: Scrum Master, Project Lead, Team Lead, Project Coordinator<br />
Answers the &#8220;HOW/WHEN?&#8221;</p>
<p>Don&#8217;t need me? Then&#8230;.</p>
<ul>
<li>Who is making project estimations, to give realistic timelines for launch?</li>
<li>Who is protecting the time of the engineers, keeping the development train moving and free from endless planning meetings?</li>
<li>Who is overseeing the overall progress of the engineering efforts?</li>
<li>Who is ensuring that the 2 months planned for testing hasn&#8217;t been shrunk to 1 week due to unrealistic deadlines?</li>
<li>Who keeps engineering efforts focused and on task when inevitable distractions arise?</li>
</ul>
<p>Without me&#8230;<br />
The product will be released 1/4 year late, with 1/9 the features promised, and 1/16 code tests coverage&#8230;.</p>
<p>(And with that kind of terrible geometric progression, you&#8217;re looking at only getting PI^2/6 of your project done!)<strong></strong></p>
<p><strong>Building Something Great</strong><br />
Engineering is so important.  Engineering is usually responsible for answering the &#8220;HOW&#8221;.  But this is an engineer writing about and appreciating all that are (normally) outside of my call of duty.   Summing it up: there are a lot of very important duties that are outside the realm of traditional engineering responsibilities.  These are 3 very important roles I have come across, and duties that I feel should never be overlooked, no matter how big or small the company.  Looking back at that photo of the chessboard I choose, I&#8217;d hate to imply that developers are the pawns, but the point was to remind everyone that there are a lot of difference piece on the table.</p>
<p>(Note: Searched for an hour for proper photo credits of this great shot with no luck. Let me know if it&#8217;s yours or need to go down)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/610/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=610&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2010/09/23/the-3-ps-of-a-successful-software-project/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2010/09/chess_pieces.jpg" medium="image">
			<media:title type="html">a0073-000157</media:title>
		</media:content>
	</item>
		<item>
		<title>Catfish Movie Review: Putting the puzzle pieces together</title>
		<link>http://chanian.com/2010/09/03/catfish-movie-review-putting-the-puzzle-pieces-together/</link>
		<comments>http://chanian.com/2010/09/03/catfish-movie-review-putting-the-puzzle-pieces-together/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 10:29:36 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[movies]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[alternate reality]]></category>
		<category><![CDATA[catfish movie]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=625</guid>
		<description><![CDATA[Spoiler alert, I don&#8217;t really talk too much about the actual film&#8217;s &#8220;plot&#8221;, but if you haven&#8217;t seen it, watch the trailer here &#8211; watch the movie in mid September, and then come back.  I am not going to reveal the *twist* ending, go pay and watch the film. I was very fortunate today to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=625&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_626" class="wp-caption alignnone" style="width: 644px"><img class="size-full wp-image-626" title="catfish2" src="http://chanian2.files.wordpress.com/2010/09/catfish2.jpg?w=460" alt=""   /><p class="wp-caption-text">Screenshot from movie trailer: And yes, I realize there is now a fake FB account this *character* in the movie...</p></div>
<p><strong><span style="color:#ff8a00;">Spoiler alert, I don&#8217;t really talk too much about the actual film&#8217;s &#8220;plot&#8221;, but if you haven&#8217;t seen it, <a href="http://www.youtube.com/watch?v=AFKe75Q6eVw">watch the trailer here</a> &#8211; watch the movie in mid September, and then come back.  I am not going to reveal the *twist* ending, go pay and watch the film. </span></strong>I was very fortunate today to be invited to a screening of the new movie Catfish.  It is a new documentary/reality-thriller about an online relationship that goes sour.  I knew very little about the film other than a very intriguing trailer that was floating around YouTube.  The film was quite enjoyable, and it did prove to be the emotional roller-coaster as promised, however there were a lot of mysteries behind the nature of the film itself.  In this post, I wanted to outline what I found fascinating about the  film, what I found unsettling about the film, and address the biggest question surrounding the movie:  <strong>Were the events in this film was REAL or FAKE?</strong></p>
<p><strong><span id="more-625"></span> Well&#8230; it was all real.. </strong><br />
To be quite honest, I assumed it was a horror/mockumentary.  It was marketed as a horror/mockumentary&#8230;. When I saw the trailer I assumed that, when I watched the film I began to question that, and when I sat through a live Q/A session with the creators, I was really really confused.  There have already been <a href="http://www.geekykitschycool.com/2010/09/is-facebook-documentary-movie-catfish.html">other posts</a> which outline the questionable nature of the film itself, and even at Sundance, an audience member apparently asked whether it was real or not (to the surprise of the audience and the film-makers).  I am generally skeptical about everything I watch, I am from the internet generation where we are trained to question almost everything we see.  After all, without questioning the genuine nature of the film would be horribly ironic and would miss the whole point of the movie itself.  That said, I don&#8217;t feel bad for asking the question in the first place.</p>
<p>Not surprisingly, opinions online range from &#8220;C&#8217;mon, it is obviously fake&#8221;, to &#8220;No, seriously, this is actually real.&#8221;  These varying opinions to me point out that it is not obvious.  At a high level it seems so outrageous that it cannot be true, however, for now I&#8217;ve come to the <em><strong>uncomfortable</strong> </em>conclusion that the movie is real.  Here is why:</p>
<p><strong>1. A live interview with the crew: </strong>After the film, there was a great QA session with the filmmakers who took many questions from the audience.  Almost every question was about the circumstances of the events, and the interactions with the real people in the film.  I can&#8217;t imagine the act needs to be drawn out that long&#8230;  They seemed like genuinely nice guys. *(update, I just met them, and all 3 of them were awesome guys&#8230;)</p>
<p><strong>2.</strong> <strong>An almost overwhelming amount online evidence leftover from the events in the film:</strong> After Googling around for literally like 10 minutes out of curiosity, I found enough evidence to convince myself within reasonable doubt that it is real.  I am not going to post links, but you can easily find tons of links to the people and events referenced in the movie.  It took me about 2 minutes to find the actual Google Street View location we see in the film of the house, which made me very uncomfortable.  At that point, my personal creep meter was at a limit and I backed off.  I had seen enough, and want to respect these personal boundaries (which I had already over stepped)</p>
<p><strong><!--more--><br />
Then why did I come to such an uncomfortable default conclusion?</strong><br />
It was marketed as fiction, so I was compelled to do some research.  I really didn&#8217;t dig that deep.  After watching the movie, and hearing about the &#8220;great viral marketing&#8221;, I jumped online.  Being a huge fan of<a href="http://en.wikipedia.org/wiki/Lost_Experience"> LOST&#8217;s famous alternate reality campaign</a>, and probably being one of the few people who saw all the extra content LOST scattered online, I figured it was all part of the experience.  But then I guess I dug too deep.<span style="color:#ff8a00;"> <strong> I am presented with the option of either accepting that the story is real, or that it is fake and some very distasteful viral-marketing department has made some questionable marketing decisions. </strong></span> Given the evidence presented to me, I don&#8217;t want to look any deeper.  If everything I unearthed is an elaborate alternate reality ploy by a devious marketing department, then I will have been duped.  But I really don&#8217;t want that to be the case, and will just default to the assumption that I saw an interesting accounting of some pretty bizarre events miraculously caught on tape by the film crew it just happened to involve.</p>
<p>So then the biggest mystery to me now is this: Why did the marketing team (presumably Rouge Media/Universal) make it so ambiguous of whether the film is real or not?</p>
<ul>
<li>The biggest draw of this film, which intensified the emotions exponentially, was that it was all REAL, why hide that?</li>
<li>If the actual film makers weren&#8217;t there for the 1 hour QA after, I&#8217;m fairly certain that 1/2 people in the audience would have assumed it was a work of fiction.</li>
<li>There was very little mentioned in the film that really emphasized that it was all true events (no more than say, Blair Witch).  Again, why down play this?</li>
<li>Why did they market this movie like a Blair Witch / Paranormal Activity knock off if they were legit?</li>
<li>Why was the trailer&#8217;s copy-writing so confusing?:  &#8220;Not based on a true story, not inspired by real events&#8230; Just True&#8221;. Yeah I get what they are saying, but that is just utterly horrible copy!</li>
<li>Why include real names/addresses in the film (and trailer) that easily link back to online profiles of the real people in the film?</li>
<li>Why has no one else (seemingly) lifted up a few rocks before questioning, discovering the same (in plain sight) evidence I found?</li>
</ul>
<p>Why not make it PAINFULLY clear to the viewers that this is a true story?  That way you don&#8217;t get speculations <a href="http://www.mtv.com/news/articles/1647028/20100901/story.jhtml">like this</a>, <a href="http://www.movieline.com/2010/01/does-sundance-sensation-catfish-have-a-truth-problem.php">or this</a>, <a href="http://www.thewrap.com/movies/column-post/exclusive-catfish-filmmakers-grilled-truth-fiction-13702">or this</a>, <a href="http://kara.allthingsd.com/20100817/catfish-the-other-facebook-movie-speaks-real-truths-about-the-social-network-plus-video/">or this</a>&#8230;.. I get that it creates buzz, and press, but it takes away from the story (in my opinion).</p>
<p>I guess, it is not that important to know if it was real or not, but I fear the majority of the American audiences will assume it is fiction, and that is unfortunate.  Either way, it was a highly enjoyable film and an incredibly story.  Perhaps the ambiguity will minimize the public attention/scrutiny of the people featured in the movie.  Perhaps the success of this movie will help bury the references to these real people, and hopefully protect them from the <em>Internets</em>.  I&#8217;ve purposely left out any names, links, or references to avoid the robots and spiders out of (what I feel is) courtesy to the people of the film.  I REALLY hope that people respect the boundaries of privacy of these people and that everything works out well for the filmmakers and the family.</p>
<p>So what are you thoughts?  End of the day, maybe we just saw the extended version of the <a href="http://techcrunch.com/2010/08/11/elyse-porterfield/">HOPA girl</a>&#8230;..</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/625/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/625/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/625/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=625&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2010/09/03/catfish-movie-review-putting-the-puzzle-pieces-together/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>

		<media:content url="http://chanian2.files.wordpress.com/2010/09/catfish2.jpg" medium="image">
			<media:title type="html">catfish2</media:title>
		</media:content>
	</item>
		<item>
		<title>Tutorial: Moving from Canada to America as a software developer</title>
		<link>http://chanian.com/2010/08/01/tutorial-moving-from-canada-to-america-as-a-software-developer/</link>
		<comments>http://chanian.com/2010/08/01/tutorial-moving-from-canada-to-america-as-a-software-developer/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 01:43:03 +0000</pubDate>
		<dc:creator>Ian Chan</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[immigration]]></category>
		<category><![CDATA[nafta]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[tn-1]]></category>
		<category><![CDATA[tn1]]></category>
		<category><![CDATA[visa]]></category>
		<category><![CDATA[work visa]]></category>

		<guid isPermaLink="false">http://chanian.com/?p=581</guid>
		<description><![CDATA[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.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=581&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#ff0000;"><strong><span style="color:#ff8a00;">As a summary, this post outlines some good-to-know things for any Canadian software developer thinking about moving to the US to work.</span><br />
</strong></span></p>
<p>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 <a href="http://twitter.com/bentlegen" target="_self">@bentlegen</a> and <a href="http://twitter.com/shazow" target="_self">@shazow </a>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&#8217;s post on: <a href="http://blog.shazow.net/considering-offers-a-checklist-in-alphabetica">A check list while considering offers</a>.  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.</p>
<p><span id="more-581"></span></p>
<p><strong>Preparing for your work VISA<br />
</strong>[You just got your job offer]<br />
Congrats!  Hopefully the job you got is sponsoring you for a VISA, otherwise you can stop reading this post and start looking for another job.  The company may or may not help you actually get the VISA (ie immigration lawyers etc).   I applied for a TN1 VISA, you may be applying to that or something similar.  You will need:</p>
<ul>
<li>Your original University Diploma (out of frame).  Yes this is a pain in the ass, but that over-sized piece of paper is actually the only proof you graduated.</li>
<li>An official copy of your transcript.  For CS grads, this is the only proof you actually took computer science.</li>
<li>Birth certificate + (drivers license) + passport, to prove you are Canadian</li>
<li>An offer letter with a start date, to prove you have a job (provided by the company)</li>
<li>A specific summary of your job duties, to prove you are an Engineer (provided by the company)</li>
<li>Information fact sheet about the company, to prove it is real (provided by the company)</li>
<li>Signed and filled out VISA sponsorship paperwork (provided by the company)</li>
<li>(And if your company&#8217;s lawyer is really sharp) A copy of an old letter circa 1996 from an immigration judge confirming Software Engineer == Engineer</li>
</ul>
<p>I&#8217;d suggest getting the official paperwork from your University as soon as possible, because you don&#8217;t want to be waiting on them right before you move!</p>
<p><strong>Finding a temporary/permanent place to live<br />
</strong>[You committed to move, and now need a place to live]<br />
As per the excellent advice from @shazow, I needed to spend some time in the city to get an idea of where I wanted to live.  Signing a 1 year lease then later finding out you live in cracktown would suck.  There are a lot of temp housing options (perhaps offered by your company).  Might I suggest using <a href="http://airbnb.com" target="_blank">AirBNB</a>?  I used it, and it was fantastic<strong>.</strong> When it came to finding a permanent place, I used craigslist, saw like 15 apartments and it worked out well.  Take note that since you have no credit history and no SSN, you might have a hard time.  The best solution is carrying a copy of your offer letter + your salary agreement to your house visits.  You may also have to pay an inflated down payment, which is reasonable.  You will likely have to create an account with <a href="http://www.pge.com/" target="_blank">PG&amp;E</a>, to pay for your heat and electricity, but this was probably the most painless process of it all.</p>
<p><strong>Have a reasonable amount of liquid cash available in America<br />
</strong>Since your Social Security Number won&#8217;t arrive for weeks, don&#8217;t expect to get paid for at least a month.  If you move into an apartment, you will need a down payment and first months rent (and maybe more, since you have no credit).  You need to have a plan on how you are going to move your funds from your Canadian account to your American account.  Your landlord will NOT take a personal Canadian cheque.  Your bank will not cash a personal cheque, and if they do, you will need to wait weeks if not longer for it to clear.  Make sure you have a way to get your money to an American account as soon as possible.  I did a wire from my Canadian account to my American account.  So before you leave Canada, ensure that you have ALL the wire info needed and that they will do the transaction without you in the physical branch (most banks do not).  If that isn&#8217;t an option, transfer funds to your siblings/parents account before you leave.  That way they can do the wire for you once your American bank account has been created.</p>
<p><strong>Applying for the VISA itself<br />
</strong>[All your paperwork is ready, and you are ready to make the move]<br />
I got my VISA and paperwork at the airport YYZ.  I arrived 3 hours before my flight which gave me ample time.  I went through regular immigration, and told them I was applying for a TN1 work VISA.  They directed me to the additional screening room where I was interviewed for about 20 minutes.  You&#8217;ll need to pay about $50 USD for the VISA itself, they take cash, so have that handy.  Many friends have suggested driving to the border before hand and getting the paperwork done there.  That isn&#8217;t a bad idea.  I was pretty certain I had all my papers in place, and chose to just get it right before my flight, your call.<br />
<strong><br />
Convincing yourself (and US immigration) that you are an Engineer</strong><br />
[You are walking into the US immigration office]<br />
Note:  you are probably applying as a NAFTA Engineer, however some enter as a Computer Systems Analyst, this section still applies.  Forget about all that time we spent in College bashing engineers, US immigration has <a href="http://www.tnvisaexpert.com/overview/nafta_job_list/" target="_blank">a short white list</a> of professions that they let through the border.  You are now an engineer.  To all the &#8220;actual&#8221; engineers reading this (and I don&#8217;t mean P.Eng I mean people who studied engineering) you still need to convince the immigrations officer you are NOT a code monkey.  You will need 2 main things to get past this part.  Your transcript should make it clear that what you studied is related to your responsibilities.  On mine, even though I studied Computer Science, my transcript read &#8211; Computer Science: Software Engineering Specialist.  I also took a course labeled CSC301: Intro to software engineering.  Seems silly, but the officer glanced through my transcript, saw the &#8220;software engineer&#8221; keyword and moved on.   Hopefully your new employer sent you a list of job responsibilities.  If they know what they are doing, you will notice that &#8220;writing code&#8221; or &#8220;programming&#8221; is not really highlighted, even if that is what you think you are going to be doing.  Memorize this script, and job duties because they will ask you.  Don&#8217;t ad lib.  The second you say something like: &#8220;I don&#8217;t know, I guess I&#8217;ll be writing code or programming stuff&#8221;  the CODE MONKEY alarms go off and a net will drop down from above you and they will take you away.  Maybe you aren&#8217;t a code monkey, but to reiterate almost every NAFTA/Immigration help website I&#8217;ve seen:</p>
<p><span style="color:#ff8a00;">&#8220;COMPUTER PROGRAMMERS do NOT qualify for a TN-1 visa&#8221;.</span></p>
<p>Stick to the script (hopefully provided to you).  Assume the officer you are talking to doesn&#8217;t know anything about computer science / computer engineering, but also assume that they are trained to flag certain keywords like: programming, coding.  Your official job duties should include things like: &#8220;Using mathematical models to predict and analyze performance and stability&#8221;, and things like: &#8220;Applying concepts in theoretical computer science to improve and enhance existing software systems.&#8221;  Which is all technically true.  If you are working for a larger company, they have the word-smithing down to a science.  If it is a smaller company, and you are the first Canadian employee, then maybe not.  If you see something like: &#8220;Writing frontend code in Ruby/HTML to add new features to the website.&#8221; don&#8217;t be afraid to confirm with HR/your contact that it is OK.  Don&#8217;t confuse this with the original job post you applied for, your official job responsibilities will likely be more (intentionally) esoteric when you get your official job offer.</p>
<p>Lastly, don&#8217;t lie.  &#8220;So&#8230; will you be writing code?&#8221;.  &#8220;Yes, I will likely write some code &#8230; to predict and analyze the performance and stability of the system using mathematical models..&#8221;.   It&#8217;s like when your girlfriend asks you &#8220;Who is that girl you were with?&#8221; And you say, &#8220;That wasn&#8217;t a girl, that was a man with long hair&#8230;.&#8221;.  If you say no, or lie about anything, they will catch you in the lie and turn you down.  It happened to the gentlemen in front of me, it was quite unsettling.</p>
<p><strong><br />
Get your Social Security Number</strong><br />
[You made it into the country, now what?]<br />
Without this, you wont be able to get credit, get paid, get healthcare.  Get this as soon as possible.  I personally ran into<a href="http://twitter.com/chanian/status/17271480210" target="_blank"> A LOT of problems</a> here so hopefully I can offer some advice.  The office suggests that you wait 10 days after entering the country before you apply, I did not and got screwed.  Here is how it works:  You apply for a VISA at the border, they give it to you and staple it to your passport.  They then (at some point in time) manually enter your VISA information into a computer.  That record (at some point) appears in the system for the SSN offices to see.  These offices are disjoint, and the 10 day wait is seemingly a &#8220;it should be done by now&#8221; buffer.  Since I went early, it took them about 3 weeks to realize that my papers hadn&#8217;t been processed at the time of my original application.  Hopefully the same doesn&#8217;t happen to you, but since they give you no feedback, I only found out when I went back in to see what the hold up was.  Print off the <a href="http://www.ssa.gov/ssnumber/" target="_blank">SSN application form located here</a>, perhaps leave the mailing address as your office, since you probably don&#8217;t have a place to live yet.  Find your local SS office, in San Francisco there is one at 7th and Mission, which is utterly terrifying but conveniently close to downtown.  Bring in that form with your passport, VISA (which should be attached to your passport) and birth certificate / driver&#8217;s license.  Wait as long as 10 days after you enter the country for the reason above, I wish there was a hard number but it seems really soft, and I got screwed.  After you drop off the paperwork, if all goes well, your SSN will be mailed to you within 2-3 weeks.  I HIGHLY recommend going in again after 1-2 weeks just to check the status, they might give you the number on the spot, or they might tell you that there was a problem they forgot to tell you about.<br />
<strong><br />
Open a Bank Account<br />
</strong>[You are tired of incurring heavy transaction fees every time you need money]<br />
May I suggest opening a bank account as soon as possible?  As early as the day you arrive in America?  Bank of America was seemingly the only bank that allowed me to create an account without a Social Security Number.  So do that, it takes like 20 minutes and they give you a credit card, which is mandatory for a phone/internet/cable.  Lastly, once this is done you can transfer over all your Canadian money and start writing cheques from your American account.</p>
<p><strong>Get an American phone plan/number<br />
</strong>[You realize that no of the real-estate people will email you back]<br />
Guess what? You have no credit or SSN! So be prepared to pay a $500 deposit if you choose to go with AT&amp;T.  This is not negotiable.  Having a call back local phone number is pretty damned important as your try to find a nice place to live.  Do this as soon as you can.<br />
<strong></strong></p>
<p><strong>Welcome to the United States of America<br />
</strong>[You are happily settled into your new job and home]<br />
I hope you found some part of this post useful.  If you made it through the border safely and are living up in San Francisco, please give me a shout and I&#8217;ll buy you a drink and be your one man welcoming party.  This city needs more Canadians so we can setup the very first Beaver tail shop in California.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chanian2.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chanian2.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chanian2.wordpress.com/581/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chanian.com&amp;blog=11252235&amp;post=581&amp;subd=chanian2&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chanian.com/2010/08/01/tutorial-moving-from-canada-to-america-as-a-software-developer/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ac750d2864c49d4c237578d38ed2927?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">chanian</media:title>
		</media:content>
	</item>
	</channel>
</rss>
