<?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/"
	>

<channel>
	<title>CompSci.ca/blog</title>
	<atom:link href="http://compsci.ca/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://compsci.ca/blog</link>
	<description>Programming, Education, Computer Science</description>
	<lastBuildDate>Fri, 30 Jun 2017 02:31:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Travel Time API — Amazon vs. Microsoft public transit times</title>
		<link>http://compsci.ca/blog/travel-time-api-%e2%80%94-amazon-vs-microsoft-public-transit-times/</link>
		<comments>http://compsci.ca/blog/travel-time-api-%e2%80%94-amazon-vs-microsoft-public-transit-times/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 00:55:24 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=1072</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">
The awesome part about working at a startup is that I get to play with all the neat technology that the rest of the team puts together. One such example is the <a href="http://www.walkscore.com/professional/travel-time-api.php" title="Travel Time API - Calculate drive, transit, bike and walk times">Travel Time API</a>, which is used to calculate actual travel times (via multiple modes of transportation) from one origin to many destinations.</strong>
<br/><br/>
The resulting map of how far one can get via public transit and walking from the centers of Amazon (left) and Microsoft (right) tech headquarters within 25 minutes.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>
The awesome part about working at a startup is that I get to play with all the neat technology that the rest of the team puts together. One such example is the <a href="http://www.walkscore.com/professional/travel-time-api.php" title="Travel Time API - Calculate drive, transit, bike and walk times">Travel Time API</a>, which is used to calculate actual travel times (via multiple modes of transportation) from one origin to many destinations. Most competitors do <em>&#8220;as the crow flies&#8221;</em> distance (straight line measurements), but that is easy. An interesting case is when one has to walk 30 minutes out of the way, to find a bridge to cross. <strong>Walk Score&#8217;s Travel Time API</strong> does <em>routed distance</em> calculations to account for just that.
</p>
<div id="attachment_1073" class="wp-caption aligncenter" style="width: 960px"><img src="http://compsci.ca/blog/wp-content/uploads/2013/03/show_walkscore_travel_time.png" alt="example of routed travel distances used on walk score" title="show walkscore travel time" width="950" height="405" class="size-full wp-image-1073" /><p class="wp-caption-text">"Example of routed travel distances used on walk score."</p></div>
<p>
If <a href="http://paulbutler.org/" title="Paul Butler – Data Hacker">Paul Butler</a> can create pieces of art out of playing with <em>data</em>, then I can&#8230; aspire to try. Having gotten access to a firehose of data, I set out to play with it over the weekend from a local coffee shop.
</p>
<p>
With some analysis, exploration, and photoshop, I ended up telling a story about the city of Seattle, the two tech giants established in the city, and the local public transit system. Below is the resulting map of how far one can get via public transit and walking from the centers of Amazon (left) and Microsoft (right) tech headquarters within 25 minutes. It takes a minute to get from one outline to the next. The visualization is as if the the entire area was a pond, and one was to drop rocks at the locations of transit stops, at the time one can arrive there. The resulting ripples fill in the space at walking speed.
</p>
<div id="attachment_1075" class="wp-caption aligncenter" style="width: 960px"><img src="http://compsci.ca/blog/wp-content/uploads/2013/03/amazon-msft_950.png" alt="Amazon vs. Microsoft transit time map: 25 minutes" title="amazon-msft_950" width="950" height="560" class="size-full wp-image-1075" /><p class="wp-caption-text">"Amazon vs. Microsoft transit time map: 25 minutes"</p></div>
<p>
It&#8217;s pretty clear that for a given company, having a reasonable commute will dictate exactly what side of the Lake Washington one would have to reside on. It&#8217;s also interesting to see how parts of Kirkland are outright inaccessable, while sections of Bellevue and Queen Anne are underserved. Of course this map doesn&#8217;t tell the complete story, as both Amazon and Microsoft also offer private shuttle services, and Microsoft has many sattellite offices throughout the city. This has been brought up in the <a href="http://www.reddit.com/r/Seattle/comments/1a3fn7/amazon_vs_microsoft_public_transit_reach_within/" title="Reddit: Amazon vs. Microsoft public transit reach within 25 minutes.">comments on Reddit</a>; through by far the most upvoted contribution was this derivative piece of art.
</p>
<div id="attachment_1076" class="wp-caption aligncenter" style="width: 960px"><img src="http://compsci.ca/blog/wp-content/uploads/2013/03/flaming_guy_catching_a_kicked_ball.png" alt="flaming guy catching a kicked ball" title="flaming_guy_catching_a_kicked_ball" width="950" height="473" class="size-full wp-image-1076" /><p class="wp-caption-text">"Flaming guy catching a kicked ball."</p></div>
<p>
All of the underlying data is available via <a href="http://www.walkscore.com/professional/travel-time-api.php" title="Travel Time API - Calculate drive, transit, bike and walk times">Travel Time API</a> and can be used to make the same kind of travel maps. Walk Score already uses this technology for finding hotels closest to multiple meetings, apartments closest to a particular location (school or work), and travel maps. Some other interesting ideas that I would like to see someone do in the future would be around mobile locations that quit making assumptions that I can jump across river/highway/barriers to get to their local deals. <a href="http://www.programmableweb.com/api/walk-score-travel-time" title="Programmable Web: Walk Score Travel Time API">Programmable Web</a> is likely the place to track API mashups for just such applications.
</p>
<p>
<em>Update:</em> there has been an addition to <a href="http://www.walkscore.com/professional/travel-time-api.php#demos">drive time api examples</a> to include a rush-hour drive time estimates mode. Neat!
</p>
<div id="attachment_1082" class="wp-caption aligncenter" style="width: 600px"><img src="http://compsci.ca/blog/wp-content/uploads/2013/03/drive_time_api_example.png" alt="Drive Time API example" title="drive_time_api_example" width="590" height="186" class="size-full wp-image-1082" /><p class="wp-caption-text">Drive Time API example</p></div>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/travel-time-api-%e2%80%94-amazon-vs-microsoft-public-transit-times/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The difference between Computer Scientist and Computer Engineer [according to SMBC]</title>
		<link>http://compsci.ca/blog/the-difference-between-computer-scientist-and-computer-engineer-according-to-smbc/</link>
		<comments>http://compsci.ca/blog/the-difference-between-computer-scientist-and-computer-engineer-according-to-smbc/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 00:25:09 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=1057</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">It's Saturday Morning Breakfast Cereal! Though jokes aside, Computer Science vs. Computer Engineering is often a tough choice to make, but here are <a href="http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/" title="Choosing between Computer Science and Computer Engineering">some ideas</a> for figuring out the subtle differences between those programs.</strong>


Related posts:<ol><li><a href='http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/' rel='bookmark' title='Permanent Link: Choosing between Computer Science and Computer Engineering'>Choosing between Computer Science and Computer Engineering</a></li><li><a href='http://compsci.ca/blog/chemistry-for-software-engineers/' rel='bookmark' title='Permanent Link: Chemistry for Software Engineers'>Chemistry for Software Engineers</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>
From <a href="http://www.smbc-comics.com/index.php?db=comics&#038;id=2158#comic" title="Saturday Morning Breakfast Cereal">Saturday Morning Breakfast Cereal</a>, one of my personal favourite web-comics:
</p>
<p><img src="http://compsci.ca/blog/wp-content/uploads/2011/02/smbc_computer_science_engineering.gif" alt="smbc_computer_science_engineering" title="smbc_computer_science_engineering" width="540" height="786" class="alignnone size-full wp-image-1059" /></p>
<p>
To be fair, <abbr title="University of Waterloo">U Waterloo</abbr> <acronym title="Computer Science">CS</acronym> students also install <em>Doom-like shooters</em> on plenty of <a href="http://www.student.cs.uwaterloo.ca/~cs488/" title="University of Waterloo CS488/688: Introduction to Computer Graphics">&#8220;foreign computer architectures&#8221;</a>.
</p>
<p>
Jokes aside, Computer Science vs. Computer Engineering is often a tough choice to make, but here are <a href="http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/" title="Choosing between Computer Science and Computer Engineering">some ideas</a> for figuring out the subtle differences between those programs.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/' rel='bookmark' title='Permanent Link: Choosing between Computer Science and Computer Engineering'>Choosing between Computer Science and Computer Engineering</a></li><li><a href='http://compsci.ca/blog/chemistry-for-software-engineers/' rel='bookmark' title='Permanent Link: Chemistry for Software Engineers'>Chemistry for Software Engineers</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-difference-between-computer-scientist-and-computer-engineer-according-to-smbc/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>UBB (metered internet) will restrict innovation</title>
		<link>http://compsci.ca/blog/ubb-metered-internet-will-restrict-innovation/</link>
		<comments>http://compsci.ca/blog/ubb-metered-internet-will-restrict-innovation/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 07:28:09 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=1009</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">UBB (Usage Based Billing / “Metered Internet”) is a hot topic right now, with many Canadians angry over the failures of CRTC and the subsequent forced price hike of the internet, even when using small competing ISPs.</strong> Here, I’ll talk about how Usage Based Billing will disrupt (in a bad way) Computer Science education, innovation, and as a result, the software industry.


Related posts:<ol><li><a href='http://compsci.ca/blog/wishing-for-cake-through-fibre-optic-cables/' rel='bookmark' title='Permanent Link: Wishing for cake through fibre optic cables'>Wishing for cake through fibre optic cables</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_983" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/themes/tma/images/latest/stop_the_belligerrence.png" alt="Stop the Belligerrence" title="stop_the_belligerrence" width="470" height="363" class="size-full wp-image-983" style="margin-left:10px;" /><p class="wp-caption-text">New bell ad: stop the Belligerrence; from <a href='http://twitter.com/#!/ubbtor/status/31948092412534784'>@ubbtor</a></p></div>
<p>
<strong><acronym title="Usage Based Billing">UBB</acronym> (Usage Based Billing / <em>&#8220;Metered Internet&#8221;</em>)</strong> is a hot topic right now, with many Canadians angry over the failures of <acronym title="Canadian Radio-television and Telecommunications Commission">CRTC</a> and the subsequent forced price hike of the internet, even when using small competing <acronym title="Internet Service Provider">ISP</acronym>s.
</p>
<blockquote cite="http://www.reddit.com/r/gaming/comments/fbvje/good_bye_steam_i_hardly_knew_ye/">
<p>
<strong>There were <a href="http://www.reddit.com/r/gaming/comments/fbvje/good_bye_steam_i_hardly_knew_ye/" title="Good bye Steam, I hardly knew ye :(">arguments about online games (Steam)</a>:</strong>
</p>
<p>
Thanks to UBB, I can no longer use Steam in Canada thanks to your ridiculously low caps provided by my ISP. This is total bullshit as I am now forced to use a brick and mortar store to purchase my pc titles rather than committing a little under half of my bandwidth to downloading one new game title.
</p>
</blockquote>
<blockquote>
<p>
<strong>There were <a href="http://www.reddit.com/r/gaming/comments/fbvje/good_bye_steam_i_hardly_knew_ye/c1es3ll" title="C3LM3R's comment on UBB/Good-bye-Steam">arguments about keeping in touch with one&#8217;s family</a>:</strong>
</p>
<p>
I&#8217;m in the US military and my wife&#8217;s Canadian. During my last deployment, one of the easiest ways for her and I to keep in contact while she finished up her University degree in Ontario was webcam. She had Roger&#8217;s internet and they&#8217;ve had this bullshit implemented for some time. So, she had some crap 25 Gb max rate and we hit that most every goddamn month just trying to stay in contact. (Yes, in hindsight we should have switched and whatever. That was then, this is now)
</p>
</blockquote>
<blockquote><p>
<strong>And of course <a href="http://www.reddit.com/r/reddit.com/comments/fbtqa/well_reddit_my_weekend_just_turned_to_shit_im/" title="Well Reddit, my weekend just turned to shit. I'm also it just turned shit for a lot of Canadians living in Ontario as well...">many arguments over economic impact on consumers</a>:</strong>
</p>
<p>
I&#8217;m about to lose an extra $200 a year just because some large corporate giant says so: Recently, Bell Canada has had the Canadian Radio-television Telecommunications Commission (CRTC) make a decision that aims to take more money out of the pockets of Canadian consumers and ruin online services that are competitors to Bell Canada.
</p>
</blockquote>
<p>
A quick video intro to what&#8217;s happening: <em>Strombo Talks About The Impending Metered Internet</em>
</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="510" src="http://www.youtube.com/embed/6rUsRCyS6PU" frameborder="0" allowFullScreen></iframe></p>
<p>
<a href="http://www.antiubb.com/why-should-we-oppose-ubb/" title="Anti UBB – Stop the meter on Canada Internet Service: Why should we oppose UBB?">And many many more arguments about why metered internet is a bad idea</a>. Here, I&#8217;ll talk about how <em>Usage Based Billing</em> will disrupt (in a bad way)  Computer Science education, innovation, and as a result, the software industry.
</p>
<p>
<strong>&#8211; Coffee shops</strong> (<a href="http://www.ted.com/talks/lang/eng/steven_johnson_where_good_ideas_come_from.html" title="TED; Steven Johnson: Where good ideas come from">traditionally hubs for exchange of ideas and birth place of innovations</a>) <strong>will no longer be able to offer free wifi</strong>, in a fear of punitive per-GB charges. The stereotypical image of the next Silicon Valley entrepreneur starting a company out of a coffee shop will vanish, and with that a pool of innovation.
</p>
<p>
<strong>&#8211; Students will be limited in exposure to new technology.</strong> Proposed 25 GB download caps are just too small. Software downloads can take up a large chunk of the allowed quota: iPhone SDK is 3.5 GB, the latest version of Linux (Ubuntu) is 0.7 GB (plus all of the updates!). Tinkering with new types of operating systems and making applications for one&#8217;s phone is the inspiration that&#8217;s necessary to get students interested in the pursuit of technological education, but such can easily hit the allowed bandwidth cap, and will likely be discouraged in low-income households.
</p>
<p>
<strong>&#8211; Online learning resources will take a hit.</strong> <a href="http://www.ted.com/" title="TED: Ideas worth spreading">TED.com</a> is an amazing resource that delivers ideas that are persuasive, ingenious, inspiring, and informative. Of course video streams quickly add up to the bandwidth caps. Schools have just started moving towards the internet to better teach the material, but now rich media (videos, interactive applications, etc) will likely be reconsidered, in other to keep the resources equally available to all students.
</p>
<p>
<strong>&#8211; <em>The Cloud</em> is the bleeding edge of technological innovation.</strong> As companies like Amazon, Google, and Microsoft innovate new ways of thinking about communications, data, and computer resources; Canadians are getting locked just to their local machines. If we can&#8217;t backup our data (Dropbox) and stream music (Pandora), then we are not in an environment where we can create such companies.
</p>
<p>
<strong>&#8211; Limit of research with large datasets.</strong> <a href="http://en.wikipedia.org/wiki/Netflix_Prize" title="Wikipedia: Netflix Prize">The Netflix Prize</a> is the first that comes to mind where open experimenting lead to development of better technology. Twitter offers even larger data streams, offering insights into everything from geopolitics to <a href="http://www.wired.com/wiredscience/2010/10/twitter-crystal-ball/" title="Wired: Twitter Can Predict the Stock Market">the stock market</a>. A Canadian example would be the <a href="http://www.ideaconnection.com/open-innovation-success/Open-Innovation-Goldcorp-Challenge-00031.html" title="Open Innovation: Goldcorp Challenge">the Goldcorp Challenge</a>, when in 2000 Goldcorp has released its geological data to the world in an attempt to save a gold mine in Red Lake, Ontario from closing. Many submissions came in, including those from students. <em>The mine ended up finding over $6 billion (that&#8217;s billion with a B) worth of gold.</em> Open access to large datasets has clear impact on innovation that results in new technology, insights, and creation of resources. There&#8217;s more data than ever available on the internet now, but exploration of such will be discouraged with metered bandwidth fees.
</p>
<p>
&#8211; Similar to research on large data sets, <strong>contributing to distributed scientific research will become discouraged as well</strong>. <a href="http://folding.stanford.edu/" title="Folding@home, distributed computing to understand protein folding">Folding@home</a> is a distributed computing platform, researching diseases &#8220;such as Alzheimer&#8217;s, ALS, Huntington&#8217;s, Parkinson&#8217;s disease, and many Cancers&#8221;. Bandwidth caps will discourage contributions to this and similar research models.
</p>
<p>
The initial counter argument might be: <em>&#8220;just pay more to get as much access as before&#8221;</em>, but this is not that simple. Price-conscious University students will start second-guessing if they should explore their innovative ideas, when data consumption is met with punitive fees. High schools students often have limited say over the connections in their household, and low-income families might get into a conflict between providing an open learning environment and paying extra costs.
</p>
<p>
It&#8217;s clear that telecommunications companies such as Bell and Rogers fear technological innovations that was brought by Skype, YouTube, and Netflix; but pricing such innovations out of the market will have a far greater impact on the environment that allowed for such innovations (and many many more) to be developed in the first place.
</p>
<p>
<strong>What can you do?</strong> <a href="http://www.reddit.com/r/canada/" title="Reddit /r/Canada">http://www.reddit.com/r/canada/</a> is our battleground; a lot of information and ideas are posted and discussed there. <a href="http://www.antiubb.com/what-can-i-do/" title="Anti UBB – Stop the meter on Canada Internet Service: What can I do?">Excellent list of actions one I take</a>. <strong><a href="http://openmedia.ca/meter" title="Stop The Meter On Your Internet Use">Sign the petition</a></strong>. <a href="http://www.facebook.com/event.php?eid=188341937853896" title="Stop The Meter Rally">Attend a rally in downtown Toronto</a>. Let everybody else know how this change will affect them. <strong>Join the discussions:</strong> <a href="http://twitter.com/OpenMedia_ca" title="Open Media on Twitter">@OpenMedia_ca</a>, <a href="http://twitter.com/ubbtor" title="Anti-UBB in Toronto on Twitter">@ubbtor</a>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/wishing-for-cake-through-fibre-optic-cables/' rel='bookmark' title='Permanent Link: Wishing for cake through fibre optic cables'>Wishing for cake through fibre optic cables</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/ubb-metered-internet-will-restrict-innovation/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>(Important) Computer Science jobs are not outsourced</title>
		<link>http://compsci.ca/blog/important-computer-science-jobs-are-not-outsourced/</link>
		<comments>http://compsci.ca/blog/important-computer-science-jobs-are-not-outsourced/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 21:58:31 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Career]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=979</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">I don't feel that intellectual outsourcing is about exploiting developing countries for cheap labour (as oppose to this being the case for physical labour; stereotypically for shoe factories). It's cheap pay for either low-skills at market rate, or cheap pay for poor quality "high-skills".</strong> There <em>are</em> high quality high-skill software developers in all of those countries -- they <a href="http://techcrunch.com/2009/10/17/beware-the-reverse-brain-drain-to-india-and-china/" title="TechCrunch: Beware The Reverse Brain Drain To India And China">migrate to where the high paying jobs are</a> (or start their own companies in their home countries). It doesn't seem like anyone is selling themselves short to get the jobs. It's just that in today's global economy, a failing company/department/project could make that final leap for the cheap options rather than folding right away. As I see it, those jobs would have been lost regardless of the outsource option being available or not.


Related posts:<ol><li><a href='http://compsci.ca/blog/more-on-the-future-of-computer-science-careers-outlook-still-promising/' rel='bookmark' title='Permanent Link: More on the future of Computer Science Careers &#8211; outlook still promising'>More on the future of Computer Science Careers &#8211; outlook still promising</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_983" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2011/01/outsource_homework_to_india.png" alt="No, you may not outsource your homework to India." title="outsource_homework_to_india" width="470" height="354" class="size-full wp-image-983" style="margin-left:10px;" /><p class="wp-caption-text">Cartoon by <a href='http://jeffreykoterba.com/' title='JEFFREY KOTERBA is a writer, musician, and cartoonist.'>Jeffrey Koterba</a></p></div>
<p>
There still seems to be a lot of misinformation about the outsourcing of technical jobs. Strictly speaking, yes, <em>some</em> jobs are either moved or created in India, China, or a number of other places with people and relevant skills. At this point a distinction should be made between &#8220;moved&#8221; and &#8220;created&#8221; &#8212; both India and China are huge and rapid growing markets, and a lot of international companies want to expand and set up shop in those locations. Such activities create <em>_new_</em> jobs, but I feel that some people lump it all together with the dreaded &#8220;moved&#8221; (true outsource) jobs when they see sensationalist headlines in newspapers.
</p>
<p>
So what kind of technical jobs move offshore? The general trend is <em>&#8220;cost saving&#8221;</em>, so it&#8217;s typically low-value/low-skill positions; call centres are popular, but also other levels of &#8220;support&#8221; positions. While support also falls into an incredibly broad definition of <acronym title="Information Technology; the study, design, development, implementation, support or management of computer-based information systems">IT</acronym>, lets assume that a pursuit of a degree leaves us with a higher level of skills. To be fair, when the management doesn&#8217;t have the understanding or the budget for a high quality development team, the entire department could be let go. If such was a software company, <a href="http://www.zoion.com/~erlkonig/writings/programmer-beekeeping.html" title="How Software Companies Die">that company would have already been dead</a>.
</p>
<p>
I don&#8217;t feel that intellectual outsourcing is about exploiting developing countries for cheap labour (as oppose to this being the case for physical labour; stereotypically for shoe factories). It&#8217;s cheap pay for either low-skills at market rate, or cheap pay for poor quality &#8220;high-skills&#8221;. There <em>are</em> high quality high-skill software developers in all of those countries &#8212; they <a href="http://techcrunch.com/2009/10/17/beware-the-reverse-brain-drain-to-india-and-china/" title="TechCrunch: Beware The Reverse Brain Drain To India And China">migrate to where the high paying jobs are</a> (or start their own companies in their home countries). It doesn&#8217;t seem like anyone is selling themselves short to get the jobs. It&#8217;s just that in today&#8217;s global economy, a failing company/department/project could make that final leap for the cheap options rather than folding right away. As I see it, those jobs would have been lost regardless of the outsource option being available or not.
</p>
<p>
Things might change in the future, but for now there are a number of software jobs that are guaranteed to stay local (for some definition of &#8220;local&#8221;) and high-paying:
</p>
<p>
<strong>Startup jobs</strong> &#8212; it&#8217;s you and 4 other guys building the next Facebook (at <a href="http://blogs.forbes.com/stevenbertoni/2011/01/07/facebooks-financials-look-impressive-50-billion-valuation-looks-high/" title="Forbes: Facebook’s Financials Look Impressive, $50 Billion Valuation Looks High">$50 billion valuation</a>, we are partying like it&#8217;s 1999 again). <a href="http://compsci.ca/blog/computer-science-jobs-for-university-students/" title="2009 look at Computer Science jobs for University Students">Since just over a year ago</a>, my favourite startup job posting site <a href="http://startuply.com/" title="Startuply: Startup companies. Startup jobs.">Startuply</a> has more than doubled the number of companies that are <em>_currently_</em> looking to fill positions. There is simply no room to cheap out on innovation. The same is actually true for any technology company that is trying to develop new products and lead its industry. Besides, it&#8217;s now easier than ever to start your own software company.
</p>
<p>
<strong>Just about any technology other than Java</strong> &#8212; offshore shops that aim to attract outsourcing business specialize in the lowest common denominator of the software industry, which happens to be Java. Ability to pick up on other languages opens up many new opportunities that might be immune to any outsourcing for years to come. This is especially true of emerging technologies, more so in the mobile space. Acquiring the skills, knowledge, and hardware to develop for the newest release of, for example, an iPad simply has very different economics than doing generic projects in the same technology, year after year.
</p>
<p>
<strong>High reliability jobs</strong> &#8212; there are just a few jobs that require one to carry a pager; they include doctors and software development engineers that make 6 figures per year. What if one of <a href="http://www.amazon.com/" title="Amazon.com: Online Shopping">Amazon</a>&#8217;s servers crashes and some pages become inaccessible at 4am? There&#8217;s absolutely no way that the responsibility to fix things <em>_right now_</em> will fall on anyone who&#8217;s not getting paid high enough to get out of bed and start coding in the middle of the night. When the company&#8217;s online store sells up to <a href="http://techcrunch.com/2010/12/27/on-november-29-amazon-sold-158-items-per-second-13-7-million-in-total/" title="TechCrunch: On Cyber Monday, Amazon Sold 158 Items Per Second (13.7 Million In Total)">158 items per second</a> (yeah, second), <em>_any_</em> downtime is incredibly more expensive than $100,000+ salaries.
</p>
<p>
Along the same high-reliability/high-skill line of thought, Google has recently given out a <a href="http://www.businessinsider.com/google-bonus-and-raise-2010-11" title="Business Insider: Google Gives All Employees Surprise $1,000 Cash Bonus And 10% Raise">10%+ raise to the entire company</a> (and some Engineers still leave to work for Facebook instead).
</p>
<p>
Having worked at both startups and major software corporations, it has always been the case that <em>_everybody_</em> is always looking to hire. Many will even pay employee referral bonuses for simply pointing towards a candidate that accepts a job. An important note, of course, is that there&#8217;s a certain skill baseline that needs to be crossed to get hired. This is a matter of having the education, experience, and drive for high quality results. Above this quality requirement, there are more job openings than people able to fill them.
</p>
<p>
So sure, there&#8217;s some outsourcing happening in the industry, but the jobs that we really want &#8212; they have a pretty good outlook. In fact, the salaries and the hiring outlooks are so good, that <a href="http://www.careercast.com/jobs-rated/2011-ranking-200-jobs-best-worst" title="CareerCast: Jobs Rated 2011: Ranking 200 Jobs From Best to Worst">CareerCast</a> has named Software Engineer to be the <strong>best</strong> career for 2011 (<a href="http://online.wsj.com/article/SB10001424052748704723104576062173458318658.html" title="The Wall Street Journal: 2011 The Best and Worst Jobs">up from 2nd place last year</a>).
</p>
<p><img src="http://compsci.ca/blog/wp-content/uploads/2011/01/software_engineer_best_job_of_2011.png" alt="software_engineer_best_job_of_2011" title="software_engineer_best_job_of_2011" width="653" height="179" class="alignnone size-full wp-image-993" /></p>
<p>
P.S. <em>&#8220;Software Engineer&#8221;</em> is typically used in an American definition, where the term &#8220;Engineer&#8221; is unregulated. Meaning that any of Computer Science / Software Engineering / Computer Engineering degrees could lead to the same job. Feel free to <a href="http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/" title="Choosing between Computer Science and Computer Engineering">pick a major that suits you best</a>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/more-on-the-future-of-computer-science-careers-outlook-still-promising/' rel='bookmark' title='Permanent Link: More on the future of Computer Science Careers &#8211; outlook still promising'>More on the future of Computer Science Careers &#8211; outlook still promising</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/important-computer-science-jobs-are-not-outsourced/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Choosing between Computer Science and Computer Engineering</title>
		<link>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/</link>
		<comments>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:20:18 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=953</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="differences between Computer Science, Computer Engineering, Software Engineering, et al.">6 Degrees of Computer Science</a> is a good place to start, but the choice is not always clear.</strong> Some delegate the choice of their program to luck -- apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. <em>Now what?</em>


Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/' rel='bookmark' title='Permanent Link: Computer Science at Waterloo: the new Scheme of things'>Computer Science at Waterloo: the new Scheme of things</a></li><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/' rel='bookmark' title='Permanent Link: Online introduction to Computer Science from Stanford Engineering (for free!)'>Online introduction to Computer Science from Stanford Engineering (for free!)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>
The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="differences between Computer Science, Computer Engineering, Software Engineering, et al.">6 Degrees of Computer Science</a> is a good place to start, but the choice is not always clear. Some delegate the choice of their program to luck &#8212; apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. Now what?
</p>
<p>
I think I have a tip for making this choice. Unfortunately I came to understand it only a few years after entering the University myself. Looking back, this would likely have helped me make a better choice to begin with (and saved me the trouble of figuring out the differences years later, and going through a complicate process of changing majors). The approach is <em>simple</em>, yet <em>time consuming</em>; though I guarantee that this will be faster than spending a year (or two!) switching majors.
</p>
<div id="attachment_963" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/12/Computer_Science-Computer_Engineering-checklist.png" alt="Sample checklist for Computer Science vs. Computer Engineering courses" title="Computer_Science-Computer_Engineering-checklist" width="470" height="337" class="size-full wp-image-963" style="margin-left:10px;" /><p class="wp-caption-text">Sample checklist for Computer Science vs. Computer Engineering courses</p></div>
<ol>
<li><strong>Go to the website for your top University of choice.</strong> (That decision is a topic for another discussion.)</li>
<li>Find a <strong>course calendar</strong> for <strong>two programs you want to compare</strong>.</li>
<li>Ignore the courses that overlap in content, and <strong>write out all other notable courses</strong>. Depending on the level of detail you want to go into, you can pull in all of the course combinations, including minors and options, though a less detailed bird-view might be enough to steer one towards their preference.</li>
<li>Assign <strong>positive points</strong> to courses of interest and <strong>negative points</strong> to <em>required</em> courses that you would rather avoid.</li>
<li><strong>Sum up the results.</strong></li>
</ol>
<p>
Originally, I was thinking of comparing Computer Science to Software Engineering, but there was too much overlap to make a good example. Though this previous article could be of interest &#8212; <a href="http://compsci.ca/blog/the-spirit-of-software-engineering/" title="CompSci.ca/blog: Software Engineering vs. Computer Science">The spirit of Software Engineering</a>.
</p>
<p>
I think it should also be noted that some of the Computer Engineering courses are accessible to Computer Science students via the <em>Digital Hardware Option</em>, at least at the University of Waterloo, which was taken as basis for this comparison (on the grounds of me attending that University).
</p>
<p>
Here I&#8217;ve discovered that ECE courses put emphasis on energies inside the systems &#8212; power management, thermodynamics, magnetic fields. Also, I&#8217;m not a fan of <a href="http://compsci.ca/blog/chemistry-for-software-engineers/" title="CompSci.ca/blog: Chemistry for Software (also Computer) Engineers">required Chemistry course</a>. Personally, I&#8217;m not that interested in such level of detail, especially when the area of application leaves computers and gets into power-plant scales of energy transfers. The better circuit design courses are available via an option, so the key question becomes: <em>how fascinating are those 4th year courses?</em>
</p>
<p>
Computer Science is interesting in a way that it has much more flexibility. This allows to both avoid dull subjects and to pick up courses in the areas of interest. On the flip side, there are certain elective requirements that need to be fulfilled, such as the courses from the so-called &#8220;arts groups&#8221;.
</p>
<p>
Personally, I&#8217;m really interested in getting to Compilers via the CS route; even if that doesn&#8217;t earn me an <em>Iron Ring</em>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/' rel='bookmark' title='Permanent Link: Computer Science at Waterloo: the new Scheme of things'>Computer Science at Waterloo: the new Scheme of things</a></li><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/' rel='bookmark' title='Permanent Link: Online introduction to Computer Science from Stanford Engineering (for free!)'>Online introduction to Computer Science from Stanford Engineering (for free!)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Venturing beyond the office, with Computer Science</title>
		<link>http://compsci.ca/blog/venturing-beyond-the-office-with-computer-science/</link>
		<comments>http://compsci.ca/blog/venturing-beyond-the-office-with-computer-science/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 08:08:31 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Career]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=873</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">There is this perception that a typical programming job involves being locked away in a grey cubicle at some LargeCorp Inc., buried in mediocre tasks, and rarely seeing the light of day. While this grim illustration is not exactly the case, there <em>is</em> some motive to such stereotype. </strong><br/><br/>So we’ll be going on an adventure through on-site programming positions that are anything but typical.


No related posts.]]></description>
			<content:encoded><![CDATA[<div id="attachment_877" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/xkcd_adventure1.png" alt="xkcd&#039;s Interesting Life" title="xkcd adventure" width="470" height="236" class="size-full wp-image-877" style="margin-left:10px;" /><p class="wp-caption-text">xkcd's <a href='http://xkcd.com/308/' title='xkcd: Interesting Life'>Interesting Life</a></p></div>
<p>
There is this perception that a typical programming job involves being locked away in a grey cubicle at some LargeCorp Inc., buried in mediocre tasks, and rarely seeing the light of day. While this grim illustration is not exactly the case (or I was simply fortunate enough to avoid such fate), there <em>is</em> some motive to such stereotype. So just as a classic xkcd suggests:
</p>
<blockquote><p>
<em>&#8220;Quick, fashion a climbing harness out of cat-6 cable and follow me down.&#8221;</em>
</p>
</blockquote>
<p>We&#8217;ll be going on an adventure through on-site programming positions that are anything but typical.
</p>
<h2>Inside a shipping container, in the middle of an ocean&#8230;</h2>
<div id="attachment_927" class="wp-caption alignleft" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/cargo_boat.png" alt="cargo boat" title="cargo boat" width="470" height="140" class="size-full wp-image-927" /><p class="wp-caption-text">Original photo by <a href='http://flickr.com/photos/cfarivar/173365756/' title='Cargo Ship, Port of Oakland'>cfarivar</a>, reused from <a href='http://compsci.ca/blog/if-a-programming-language-was-a-boat/' title='CompSci.ca: If a programming language was a boat…'>another boat post</a></p></div>
<p>
The first location comes from the experiences of <a href="http://blog.radioactiveyak.com/" title="Reto Meier's blog">Reto Meier</a>, who&#8217;s job took him out to sea &#8212; <a href="http://blog.radioactiveyak.com/2007/03/when-offshoring-your-development-team.html" title="The Radioactive Yak: When Offshoring Your Development Team Means Buying a Boat">When Offshoring Your Development Team Means Buying a Boat</a>.
</p>
<blockquote><p>
By the time you realise their office isn&#8217;t exactly in Portland, you&#8217;re sitting in a 10&#8242; sea container floating in the middle of the Indian Ocean pressing a button every 108 minutes.
</p>
</blockquote>
<p>
It&#8217;s a pretty intense story, and is worth a read.
</p>
<h2>South pole</h2>
<div id="attachment_907" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/south_pole_station_entrance1.png" alt="south pole station entrance" title="south pole station entrance" width="470" height="186" class="size-full wp-image-907" style="margin-left:10px;" /><p class="wp-caption-text">Original photo by <a href='http://www.flickr.com/photos/muriel_vd/984757765/' title='Flickr: dome2'>µµ</a></p></div>
<p>
How about the <em>South Pole</em>? The <a href="http://www.icecube.wisc.edu/" title="IceCube Neutrino Observatory">IceCube Neutrino Observatory</a> has a <a href="http://www.icecube.wisc.edu/jobs/winterover.php" title="IceCube Career Opportunities">job posting</a> &#8212; just some requirements: Linux, security, Perl/Python/Java, and to <em>&#8220;deploy to the South Pole in early October for 12-13 months with <strong>no possibility of leaving during the winter months</strong> from mid-February to mid-October&#8221;</em>.
</p>
<p>
To be fair, the science is pretty amazing, and some people would jump at an opportunity to get close to this kind of research.
</p>
<h2>Race around the world</h2>
<div id="attachment_917" class="wp-caption alignleft" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/audi_Pikes_Peak_Hill_Climb.png" alt="Audi Pikes Peak Hill International Climb" title="Audi Pikes Peak Hill Climb" width="470" height="156" class="size-full wp-image-917" /><p class="wp-caption-text">Audi preparing for <a href='http://www.botjunkie.com/2009/10/24/stanfords-new-robotic-audi-tts-knows-how-to-drift-will-tackle-pikes-peak-next-year/' title='Stanford’s New Robotic Audi TTS Knows How To Drift, Will Tackle Pikes Peak Next Year'>Pikes Peak Hill International Climb</a></p></div>
<p>
What about <a href="http://www.codeproject.com/KB/showcase/IfOnlyWedUsedANTSProfiler.aspx" title="If Only We’d Used ANTS Profiler Earlier...">debugging C# &#8220;memory leaks&#8221;</a> (or as close as one can get to such in a managed memory language) in Mojave desert, during <a href="http://en.wikipedia.org/wiki/DARPA_Grand_Challenge" title="Wikipedia: DARPA Grand Challenge">DARPA&#8217;s Grand Challenge</a>?
</p>
<p>
Or <em>racing to the clouds</em> with an autonomous Audi in a Pikes Peak International Hill Climb?
</p>
<p>
As Universities and research groups push autonomous cars to their limits, various races and challenges will take the technical teams throughout the world.
</p>
<h2>Out of this world</h2>
<div id="attachment_923" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/nasa_STS-127_mission.png" alt="NASA STS-127 mission" title="NASA STS-127 mission" width="470" height="199" class="size-full wp-image-923" style="margin-left:10px;" /><p class="wp-caption-text">STS-127 mission, via <a href='http://www.flickr.com/photos/toptechwriter/3733144439/' title='Flickr: STS-127: Checking for Damaged Tiles'>TopTechWriter.US</a></p></div>
<p>
The sky isn&#8217;t even the limit. <a href="http://www.asc-csa.gc.ca/eng/astronauts/biopayette.asp" title="Canadian Space Agency: Julie Payette">Julie Payette</a>, a <em>Canadian</em> Computer Engineer, has <em>&#8220;conducted research in computer systems, natural language processing and automatic speech recognition&#8221;</em>. She has then gone to space. <strong>Twice.</strong>
</p>
<p>
In 1999 Julie has gone on <a href="http://www.asc-csa.gc.ca/eng/missions/sts-096/default.asp" title="Canadian Space Agency: STS 096">STS-096</a> as a crewmember to operate the Canadarm robotic arm. In 2009 she has gone on <a href="http://www.asc-csa.gc.ca/eng/missions/sts-127/default.asp" title="Canadian Space Agency: STS 127">STS-127</a> as the flight engineer, operating robotic technology.
</p>
<p>
<a href="http://twitter.com/MarsRoverDriver" title="Scott Maxwell's twitter account">Scott Maxwell</a> has gone from writing software to <a href="http://compsci.ca/blog/cool-tech-jobs-driving-the-mars-rover/" title="Cool Tech Jobs: Driving the Mars Rover">driving the Mars rover</a>. Not really on-site, but <em>&#8220;it’s the greatest job on two planets.&#8221;</em></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/venturing-beyond-the-office-with-computer-science/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Addictive Tower Defense with Martin Kess</title>
		<link>http://compsci.ca/blog/addictive-tower-defense-with-martin-kess/</link>
		<comments>http://compsci.ca/blog/addictive-tower-defense-with-martin-kess/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 05:35:42 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[CompSci.ca]]></category>
		<category><![CDATA[Video Game Development]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=825</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;"><a title="Martin's compsci.ca profile" href="http://compsci.ca/v3/profile.php?mode=viewprofile&#38;u=7">Martin Kess</a>, one of the founding members of CompSci.ca, has been busy working on a fantastic looking game for the BlackBerry platform: <a title="Addictive Tower Defense game for the BlackBerry" href="http://www.addictivetowerdefense.com/"><em>Addictive Tower Defense</em></a>.</strong> This isn't the first of the <a title="Forces and Evasive Maneuvers games from CompSci community" href="http://compsci.ca/blog/forces/">quality games</a> to come from the CompSci.ca community members, but it certainly raises the bar once again.<br/><br/>I caught up with Martin to talk about the game.


Related posts:<ol><li><a href='http://compsci.ca/blog/sample-requirements-to-break-into-the-game-industry/' rel='bookmark' title='Permanent Link: Sample requirements to break into the game industry'>Sample requirements to break into the game industry</a></li><li><a href='http://compsci.ca/blog/treating-video-games-as-software/' rel='bookmark' title='Permanent Link: Treating video games as software'>Treating video games as software</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right; margin-left:10px;">
<object width="445" height="364"><param name="movie" value="http://www.youtube-nocookie.com/v/8dGghAUsUkU&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/8dGghAUsUkU&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object></div>
<p>
<a href="http://compsci.ca/v3/profile.php?mode=viewprofile&#038;u=7" title="Martin's compsci.ca profile">Martin Kess</a>, one of the founding members of CompSci.ca, has been busy working on a fantastic looking game for the BlackBerry platform: <a href="http://www.addictivetowerdefense.com/" title="Addictive Tower Defense game for the BlackBerry"><strong>Addictive Tower Defense</strong></a>. This isn&#8217;t the first of the <a href="http://compsci.ca/blog/forces/" title="Forces and Evasive Maneuvers games from CompSci community">quality games</a> to come from the CompSci.ca community members, but it certainly raises the bar once again.
</p>
<p>
I&#8217;ve been playing the beta version of the game for a while, and I am blown away by the level of detail put into this game, just by a <a href="http://www.addictivetowerdefense.com/about/" title="About ADT's developers">couple of indie developers</a>. So I caught up with Martin to talk about the game.
</p>
<p>
<strong>What inspired you to make a commercial game, while still being a student?</strong>
</p>
<blockquote>
<p>
Well, my main goal in life is to have a wikipedia page that doesn&#8217;t get deleted within 30 minutes of its creation.
</p>
<p>
I was working at Sybase, and Mike, my boss at the time, decided that in his spare time he wanted to do a project on the BlackBerry, and so we started throwing game ideas back and forth. The real inspiration thought were stories of <a href="http://en.wikipedia.org/wiki/John_Carmack" title="Wikipedia: John Carmack">John Carmack</a> and <a href="http://en.wikipedia.org/wiki/John_Romero" title="Wikipedia: John Romero">John Romero</a> (co-founders of <a href="http://www.idsoftware.com/" title="id Software">id Software</a> and yes, those are links to their Wikipedia pages) putting everything aside to make awesome video games.
</p>
<p>
And why commercial? Well, I thought that there was an off chance that I could retire a little bit of this quickly growing mountain of student debt.
</p>
</blockquote>
<div style="float:right; margin:10px;">
<img src="http://compsci.ca/blog/wp-content/uploads/2009/11/tower_defense_freeze.png" alt="One of 6 towers" title="tower defense freeze" width="100" height="100" class="size-full wp-image-839" />
</div>
<p>
Currently attending <a href="http://compsci.ca/blog/getting-into-university-of-waterloo/" title="Most relevant UWaterloo article I have for now">the same school</a> with Martin, I had to ask how that played in with making games.
</p>
<p>
<strong>How do you feel that your 5 years of doing <acronym title="Computer Science">CS</acronym> at Waterloo impacted the development of the game?</strong>
</p>
<blockquote>
<p>
Well, co-op especially has turned me into a very productive programmer, so I think that I am pretty good at cranking out a lot of code. To be clear though &#8212; I mostly worked on gameplay and tools, Mike did the engine.
</p>
<p>
<a href="http://www.student.cs.uwaterloo.ca/~cs241/" title="Waterloo's CS241">CS241</a> (Foundations of Sequential Programs, also known as <em>&#8220;baby compilers&#8221;</em>) was pretty relevant &#8212; I wrote a little scripting language to define the levels.
</p>
<p>
<a href="http://www.student.cs.uwaterloo.ca/~cs341/" title="Waterloo's CS341">CS341</a> (Algorithms) and <a href="http://www.student.cs.uwaterloo.ca/~cs466/" title="Waterloo's CS466">CS466</a> (Advanced algorithms) taught lots about algorithms , which was probably the most useful.
</p>
</blockquote>
<p>
Math, being a <a href="http://compsci.ca/blog/recommended-for-strong-math-students-only/" title="Recommended for strong math students only.">touchy</a> <a href="http://compsci.ca/blog/video-game-degrees-need-to-require-math/" title="Video game degrees need to require Math">subject</a> when it comes to video game development, also came into question:
</p>
<p>
<strong>What about the Math courses, did any of them come in useful in either development of the game or balancing out the gameplay?</strong>
</p>
<blockquote>
<p>
The math was actually pretty straightforward &#8212; it wasn&#8217;t much beyond Calculus 1. Though <a href="http://www.student.math.uwaterloo.ca/~math239/" title="Waterloo's Math239">MATH 239</a> (Combinatorial Analysis and Graph Theory) also came in handy. We used just the <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" title="Wikipedia: Dijkstra's algorithm">Dijkstra&#8217;s algorithm</a> to find the shortest path for the enemies to take, but we also made a nifty flood-fill algorithm to update the shortest paths quickly when a tower got built. It was too expensive to rebuild the shortest paths every time a tower was placed.
</p>
</blockquote>
<div id="attachment_845" class="wp-caption alignright" style="width: 384px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/tower_defense_upgrades.png" alt="Table of &lt;a href=&#039;http://www.addictivetowerdefense.com/game/towers/&#039;&gt;upgrades&lt;/a&gt;" title="tower defense upgrades" width="374" height="143" class="size-full wp-image-845" style="margin-left:10px;" /><p class="wp-caption-text">Table of <a href='http://www.addictivetowerdefense.com/game/towers/'>upgrades</a></p></div>
<p>
<strong>Anything else?</strong>
</p>
<blockquote>
<p>
English classes were very important! I did most of the writing on the site and in the game.
</p>
</blockquote>
<p>
So to wrap this up&#8230; <strong>What&#8217;s next?</strong>
</p>
<blockquote>
<p>
Next? <em>*laughs*</em> Next I have to rock this <a href="http://www.student.cs.uwaterloo.ca/~cs488/" title="Waterloo's CS488">CS488</a> (Introduction to Computer Graphics) project.
</p>
<p>
We&#8217;re going to keep releasing maps for the game, and likely we&#8217;ll start working on Game #2, although we aren&#8217;t sure what that will be, and will probably take a break until Christmas at least to get caught up on sleep and other such things.
</p>
</blockquote>
<div id="attachment_851" class="wp-caption alignleft" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/11/tower_defense_gameplay.png" alt="Tower Defense gameplay" title="tower defense gameplay" width="470" height="193" class="size-full wp-image-851" /><p class="wp-caption-text">Tower Defense gameplay</p></div>
<p>
So there it is. A story about indie game development, a Computer Science student in debt, and one of the most polished mobile games I had a chance to play. Check out the game&#8217;s website for more details &#8212; <a href="http://www.addictivetowerdefense.com/" title="Addictive Tower Defense game for the BlackBerry">AddictiveTowerDefense.com</a>.
</p>
<div style="clear:both;"></div>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/sample-requirements-to-break-into-the-game-industry/' rel='bookmark' title='Permanent Link: Sample requirements to break into the game industry'>Sample requirements to break into the game industry</a></li><li><a href='http://compsci.ca/blog/treating-video-games-as-software/' rel='bookmark' title='Permanent Link: Treating video games as software'>Treating video games as software</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/addictive-tower-defense-with-martin-kess/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Computer Science jobs for University Students</title>
		<link>http://compsci.ca/blog/computer-science-jobs-for-university-students/</link>
		<comments>http://compsci.ca/blog/computer-science-jobs-for-university-students/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 05:05:02 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Career]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=795</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">I’m often asked about available jobs for Computer Science students. More so in light of the recent economic downturn.</strong> A new trend that I’m observing, since 2 years ago, is that there is a substantial increase of job postings from much smaller start-up companies.<br/><br/>Economic hardship breeds innovation. It puts large corporations into a compromised position, and that opens up an opportunity for small, agile, smart, inexpensive, but super-productive startups to come into play and compete with established corporations.


Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-enrollment-trends/' rel='bookmark' title='Permanent Link: Computer Science enrollment trends'>Computer Science enrollment trends</a></li><li><a href='http://compsci.ca/blog/important-computer-science-jobs-are-not-outsourced/' rel='bookmark' title='Permanent Link: (Important) Computer Science jobs are not outsourced'>(Important) Computer Science jobs are not outsourced</a></li><li><a href='http://compsci.ca/blog/more-on-the-future-of-computer-science-careers-outlook-still-promising/' rel='bookmark' title='Permanent Link: More on the future of Computer Science Careers &#8211; outlook still promising'>More on the future of Computer Science Careers &#8211; outlook still promising</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_797" class="wp-caption alignright" style="width: 351px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/09/job_search_results.png" alt="Software jobs posted to U Waterloo" title="job_search_results" width="341" height="357" class="size-full wp-image-797" /><p class="wp-caption-text">Software jobs posted to U Waterloo</p></div>
<p>
I&#8217;m often asked about available jobs for Computer Science students. More so in light of the recent economic downturn. An interesting point to reflect against is <a href="http://compsci.ca/blog/sample-requirements-to-break-into-the-game-industry/" title="Sample requirements to break into the game industry">a benchmark from 2007</a> when <em>&#8220;950 Computer Science related jobs&#8221;</em> were advertised to the University of Waterloo students. This Fall&#8217;s 782 seems lower than pre-economic-meltdown numbers, but a lot of large corporations now group multiple positions into single postings. <acronym title="Research In Motion">RIM</acronym> alone has 100+ student positions advertised over just 3 posts. So it&#8217;s difficult to compare those numbers accurately.
</p>
<p>
Other technology power-corporations (Google, Microsoft, Amazon) continue employing students as well.
</p>
<p>
A new trend I&#8217;m observing, since 2 years ago, is that there is a substantial increase of job postings from much smaller start-up companies, as well as not-so-small ex-startups (Facebook in particular had a few different positions advertised).
</p>
<p>
Economic hardship breeds innovation. It puts large corporations into a compromised position, and that opens up an opportunity for small, agile, smart, inexpensive, but super-productive startups to come into play and compete with established corporations. Unconvinced? Today <a href="http://startuply.com/" title="Staruply: Startup companies. Startup jobs">Startuply</a> is listing <em>&#8220;1375 jobs from 1293 startups&#8221;</em>, and I&#8217;ve noticed some of them cross-listed on Waterloo&#8217;s job website, <strong>specifically looking for students</strong>. Quality software always needs to be build, and Computer Science students who do their craft well are <a href="http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/" title="Greg Wilson in: Computer Science at the University of Toronto, in Video!">&#8220;pretty much guaranteed an interesting job, that actually does something useful to society&#8221;</a>.
</p>
<p>
Alternatively, <a href="http://www.phdcomics.com/comics.php?n=1078" title="PHD Comics: Enrollment vs. Unemployment Rate">there is always grad school</a>.
</p>
<p><img src="http://compsci.ca/blog/wp-content/uploads/2009/09/phd100108s.gif" alt="Unemployment rate vs. Grad School enrollment" title="Unemployment rate vs. Grad School enrollment" width="600" height="432" class="alignnone size-full wp-image-803" /></p>
<p>
Which I might or might not be considering. Hint: <a href="http://twitter.com/tonytargonski/status/4402277851" title="Tony's tweet re: grad school">I am</a>. Though with so much opportunity for interesting work, it will be a difficult decision to make.
</p>
<p><img src="http://compsci.ca/blog/wp-content/uploads/2009/09/Picture-6.png" alt="Tony's tweet" title="Tony's tweet" width="532" height="257" class="alignnone size-full wp-image-807" /></p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-enrollment-trends/' rel='bookmark' title='Permanent Link: Computer Science enrollment trends'>Computer Science enrollment trends</a></li><li><a href='http://compsci.ca/blog/important-computer-science-jobs-are-not-outsourced/' rel='bookmark' title='Permanent Link: (Important) Computer Science jobs are not outsourced'>(Important) Computer Science jobs are not outsourced</a></li><li><a href='http://compsci.ca/blog/more-on-the-future-of-computer-science-careers-outlook-still-promising/' rel='bookmark' title='Permanent Link: More on the future of Computer Science Careers &#8211; outlook still promising'>More on the future of Computer Science Careers &#8211; outlook still promising</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/computer-science-jobs-for-university-students/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Legalizing p2p scheme: legally borrow music from the internets</title>
		<link>http://compsci.ca/blog/legalizing-p2p-scheme-legally-borrow-music-from-the-internets/</link>
		<comments>http://compsci.ca/blog/legalizing-p2p-scheme-legally-borrow-music-from-the-internets/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 02:07:56 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=785</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">While a lot of people scream that RIAA/MPAA are not keeping up with the times and technology, we are not really any closer to having an entertainment distribution system that takes advantage of available technology</strong> to make it convenient for consumers <em>and</em> one which fairly compensates the industry that creates the said content. So I propose starting a discussion, by presenting a scheme that pulls p2p technology and current copyright laws closer together.


No related posts.]]></description>
			<content:encoded><![CDATA[<div id="attachment_786" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/cd_music_in_library.png" alt="&quot;New CD browsers&quot; on Flickr, by &lt;a href=&#039;http://www.flickr.com/photos/smcl/3008594487/&#039; title=&#039;Flickr: New CD browsers at East Palo Alto Library, November 2008&#039;&gt;San Mateo County Library&lt;/a&gt;" title="cd music in library" width="470" height="307" class="size-full alignright wp-image-786" /><p class="wp-caption-text">&quot;New CD browsers&quot; on Flickr, by <a href='http://www.flickr.com/photos/smcl/3008594487/' title='Flickr: New CD browsers at East Palo Alto Library, November 2008'>San Mateo County Library</a></p></div>
<p>
Recently, a lot has been happening in the peer-2-peer space, at least from the legal perspective. The Pirate Bay trial, plus various torrent websites shutting down; <a href="http://torrentfreak.com/" title="TorrentFreak: Torrent News, Torrent Sites and the latest Scoops">TorrentFreak</a> is an excellent news source for all that goodness. While a lot of people scream that RIAA/MPAA (and their international equivalents) are not keeping up with the times and technology, we are not really any closer to having an entertainment distribution system that takes advantage of available technology to make it convenient for consumers <em>and</em> one which fairly compensates the industry that creates the said content. So I propose starting a discussion, by presenting a scheme that pulls p2p technology and current copyright laws closer together.
</p>
<p>
There are two basic premises:
</p>
<ol>
<li>Music is purchased as a license for an individual to indefinitely enjoy a particular piece of entertainment.</li>
<li>It is permissible to lend someone a physical music CD, provided that it is original (such as store bought), and not a copy.</li>
</ol>
<p>
The latter point is what allows one to sell their used CDs (imagine that, there&#8217;s an actual business that does that, with 11 locations in Ontario &#8212; <a href="http://www.beatgoeson.com/" title="The Beat Goes On - Used CD Outlet - Buy and sell used CDs, DVDs and Games">The Beat Goes On</a>), borrow CDs from a public library (the <a href="http://www.torontopubliclibrary.ca/" title="Toronto Public Library">Toronto Public Library</a> has 59 838 <em>titles</em> (in multiple copies!) available), or to lend a CD to a friend (just try to outlaw that, and the general public will actually start taking interest in the application of copyright laws, and the next election).
</p>
<p>
The former point stipulates that a physical CD is simply a token, showing that the current holder has a license to enjoy the media; the recordings on the disk are simply a convenience factor.
</p>
<p>
So the natural step, at least as it seems to me, is to digitalize this license tokens, and let them be shared over p2p technology, as you would have shared a physical CD with a friend. Here&#8217;s what I have in mind:
</p>
<div id="attachment_787" class="wp-caption alignleft" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/p2p_music_as_licenses_sharing_scheme.png" alt="Scheme illustration, put together with free icons from &lt;a href=&#039;http://www.iconspedia.com/&#039; title=&#039;IconsPedia: PNG Icons&#039;&gt;IconsPedia&lt;/a&gt;" title="p2p music as license sharing scheme" width="470" height="200" class="size-full alignleft wp-image-787" /><p class="wp-caption-text">Scheme illustration, put together with free icons from <a href='http://www.iconspedia.com/' title='IconsPedia: PNG Icons'>IconsPedia</a></p></div>
<p>
All of the music is readily available for download (similar to current .torrent approach) and copies could be cached on your device (to save bandwidth), <em>but</em> it is not playable unless a license token is also available on the system. The license tokens will act as unique digital keys, which could be borrowed and released back into the cloud of p2p.
</p>
<p>
If one had purchased a set of license keys for the latest music album, but isn&#8217;t listening to this particular music items at the moment (school, work, sleep.. there are many reasons why ones <em>entire</em> music collection isn&#8217;t played 24/7), those keys are available to be given to someone else. Similarly, one could temporary take possession of someone else&#8217;s license, while such is available.
</p>
<p>
To prevent leechers, and make for a fairer sharing experience, a model similar of current private torrent trackers could be applied &#8212; those who contribute more keys will get priority status. Bonus points for contributing keys to high-demand or rare media. Maybe preference for own social graphs.
</p>
<p>
The net effect of automating <em>request-play-release</em> cycle is that a) sharing music will be completely legal, b) ease of use would be on par with current technology, and c) popular content (ones with more simultaneous key usages) will see a proportionally larger share of revenue. Just think back to days of mixtapes, and trading CDs with friends; except that it&#8217;s now done every 3 minute, through a wire, and you are friends with the world.
</p>
<p>
The caveat is that, yes, one would actually have to pay for some of the licenses to take part in this sharing community process. Though ones choice of which artists to support and generalizing the use of granted licenses should make it a fair deal. iTunes and Amazon&#8217;s MP3-Downloads show that a lot of people are still willing to pay for very specific music purchases online.
</p>
<p>
But now, given the fact that <a href="http://arstechnica.com/media/news/2009/04/study-pirates-buy-tons-more-music-than-average-folks.ars" title="Ars: Study: pirates biggest music buyers. Labels: yeah, right">&#8220;pirates [are the] biggest music buyers&#8221;</a>, via Ars, do we really have to implement such an explicit model?
</p>
<blockquote><p>
Those who download &#8220;free&#8221; music from P2P networks are more likely to spend money on legit downloads than those who are squeaky clean, according to a new report out of Norway.</p>
</blockquote>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/legalizing-p2p-scheme-legally-borrow-music-from-the-internets/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Computer Science at the University of Toronto, in Video!</title>
		<link>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/</link>
		<comments>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 00:22:42 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=783</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">Byte Club TV's take on University of Toronto's Computer Science. CS... in video... with pink hippos.</strong>
</p><blockquote><p>Greg: “One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.” </p></blockquote>


Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li><li><a href='http://compsci.ca/blog/academic-x06-gamecamp-toronto/' rel='bookmark' title='Permanent Link: Academic &#8211; X06: GameCamp (Toronto)'>Academic &#8211; X06: GameCamp (Toronto)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>[sniplet ONTARIO_U_BANNER]</p>
<p>
<a href="http://www.byteclub.tv/" title="Byte Club TV">Byte Club TV</a> is a webcast show profiling tech companies, typically around Toronto area. One of the shows producers, Kristan &#8220;Krispy&#8221; Uccello is fairly involved in Toronto&#8217;s tech community. I often see him at <em>Rails Nite</em> events; he&#8217;s a pretty cool guy.
</p>
<p>
It looks like a while ago they&#8217;ve visited and filmed at the Computer Science department of University of Toronto. This isn&#8217;t an opt-out to avoid writing up an actual overview of <acronym title="University of Toronto">UofT</acronym>&#8217;s Computer Science, but until then it&#8217;s still an interesting video to watch. Pretty shots of the glass <acronym title="Computer Science">CS</acronym> building &amp; <a href="http://pyre.third-bit.com/" title="Greg Wilson's blog">Greg Wilson</a> talking about the department, industry, and pink hippos.
</p>
<blockquote><p>
Greg: &#8220;One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.&#8221;
</p>
</blockquote>
<p><embed src="http://blip.tv/play/grA85b40kKlQ%2Em4v" type="application/x-shockwave-flash" width="640" height="390" allowscriptaccess="always" allowfullscreen="true"></embed> </p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li><li><a href='http://compsci.ca/blog/academic-x06-gamecamp-toronto/' rel='bookmark' title='Permanent Link: Academic &#8211; X06: GameCamp (Toronto)'>Academic &#8211; X06: GameCamp (Toronto)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

