<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>CompSci.ca/blog</title>
	
	<link>http://compsci.ca/blog</link>
	<description>Programming, Education, Computer Science</description>
	<pubDate>Tue, 05 May 2009 15:07:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<geo:lat>43.478086</geo:lat><geo:long>-80.537682</geo:long><image><link>http://compsci.ca/blog</link><url>http://compsci.ca/blog/wp-content/uploads/computer_science_canada_144.gif</url><title>CompSci.ca/blog</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ComputerScienceCanadaBlog" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">ComputerScienceCanadaBlog</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FComputerScienceCanadaBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FComputerScienceCanadaBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ComputerScienceCanadaBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FComputerScienceCanadaBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FComputerScienceCanadaBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><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.]]></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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=Dvd__XYL-0M:VKBEU-6XX_A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=Dvd__XYL-0M:VKBEU-6XX_A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=Dvd__XYL-0M:VKBEU-6XX_A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=Dvd__XYL-0M:VKBEU-6XX_A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=Dvd__XYL-0M:VKBEU-6XX_A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=Dvd__XYL-0M:VKBEU-6XX_A:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/Dvd__XYL-0M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/legalizing-p2p-scheme-legally-borrow-music-from-the-internets/feed/</wfw:commentRss>
		</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>]]></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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=cJLOIa97SxE:mIdHNgwGwxs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=cJLOIa97SxE:mIdHNgwGwxs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=cJLOIa97SxE:mIdHNgwGwxs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=cJLOIa97SxE:mIdHNgwGwxs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=cJLOIa97SxE:mIdHNgwGwxs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=cJLOIa97SxE:mIdHNgwGwxs:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/cJLOIa97SxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ISP modifying .torrent file contents</title>
		<link>http://compsci.ca/blog/isp-modifying-torrent-file-contents/</link>
		<comments>http://compsci.ca/blog/isp-modifying-torrent-file-contents/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 23:47:14 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=780</guid>
		<description><![CDATA[<strong style="font-size: 1.3em;">Looking back almost a year, I'd just like to say -- <a href="http://compsci.ca/blog/internet-protocols-could-be-facing-a-siege-from-isps/" title="Internet protocols could be facing a siege from ISPs">I told you so</a>.</strong>
<blockquote><p>It works as follows. When a Bezeq International customer downloads a .torrent file the ISP will intercept it and add (!) a new tracker to it. The additional tracker is only accessible for Bezeq International customers and it connects to a high speed web-seed hosted on Bezeq International’s network.</p></blockquote>]]></description>
			<content:encoded><![CDATA[<div id="attachment_580" class="wp-caption alignright" style="width: 504px"><a href="http://compsci.ca/blog/wp-content/uploads/2008/07/isp_inject_bittorrent.png"><img src="http://compsci.ca/blog/wp-content/uploads/2008/07/isp_inject_bittorrent.png" alt="Not quite like this... yet." title="mockup ISP bittorrent injection" width="494" height="321" class="size-full alignright wp-image-580" /></a><p class="wp-caption-text">Not quite like this... yet.</p></div>
<p>
TorrentFreak <a href="http://torrentfreak.com/isp-speeds-up-customers-bittorrent-downloads-090418/" title="ISP Speeds Up Customers’ BitTorrent Downloads">reports</a> that an Israeli ISP, Bezeq, is actually modifying the .torrent files, as they are downloaded by their customers.
</p>
<p>
Looking back almost a year, I&#8217;d just like to say &#8212; <a href="http://compsci.ca/blog/internet-protocols-could-be-facing-a-siege-from-isps/" title="Internet protocols could be facing a siege from ISPs">I told you so</a>.
</p>
<blockquote><p>It works as follows. When a Bezeq International customer downloads a .torrent file the ISP will intercept it and add (!) a new tracker to it. The additional tracker is only accessible for Bezeq International customers and it connects to a high speed web-seed hosted on Bezeq International’s network.</p>
</blockquote>
<p>
Instead of blocking / throttling / capping / sending-threatening-letters or finding other ways of annoying their own customers for actually using the services they pay for, Bezeq caches popular downloads. The ISP saves on costs for having less traffic go outside of their own network, and customers actually end up with faster downloads. Still, this involves intercepting and modifying downloads, which makes me feel uneasy, as this could easily be turned the other way.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=TRlwzq3eJws:SFviP6mI_GM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=TRlwzq3eJws:SFviP6mI_GM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=TRlwzq3eJws:SFviP6mI_GM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=TRlwzq3eJws:SFviP6mI_GM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=TRlwzq3eJws:SFviP6mI_GM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=TRlwzq3eJws:SFviP6mI_GM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/TRlwzq3eJws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/isp-modifying-torrent-file-contents/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Treating video games as software</title>
		<link>http://compsci.ca/blog/treating-video-games-as-software/</link>
		<comments>http://compsci.ca/blog/treating-video-games-as-software/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 07:43:05 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Video Game Development]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=768</guid>
		<description><![CDATA[I find this conflicting: Video games are often the <a title="thoughts on video game programming jobs" href="http://compsci.ca/blog/thoughts-on-video-game-programming-jobs/">driving force for kids to pursue Computer Science</a>, and yet shipped games are often not perceived as <em>software</em>. Maybe the quality, integration, and user experience really is better than across other industries;
<br/><br/>
<strong style="font-size: 1.2em;">though unless the development process goes through the incredibly expensive steps of validating a safety-critical system, there will likely be some bugs left.</strong>]]></description>
			<content:encoded><![CDATA[<div id="attachment_769" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/epic_support_470.png" alt="Gears of War website does have a support page, but it&#039;s about as useful as a &quot;go away&quot; sign." title="epic_support_470" width="470" height="200" class="size-full alignright wp-image-769" /><p class="wp-caption-text">Gears of War website does have a support page, but it's about as useful as a &quot;go away&quot; sign.</p></div>
<p>
I find this conflicting: Video games are often the <a href="http://compsci.ca/blog/thoughts-on-video-game-programming-jobs/" title="thoughts on video game programming jobs">driving force for kids to pursue Computer Science</a>, and yet shipped games are often not perceived as <em>software</em>. Maybe the quality, integration, and user experience really is better than across other industries; though unless the development process goes through the incredibly expensive steps of validating a <a href="http://en.wikipedia.org/wiki/Life-critical_system" title="Wikipedia: Life-critical system">safety-critical system</a>, there will likely be some bugs left.
</p>
<p>
Which was exactly the case with <strong>Gears of War 2</strong>, that crashed during the gameplay, after recent updates.
</p>
<p>
Since I actually work in the software industry, I&#8217;ve decided to file a bug report, but it appears that <strong>Epic Games</strong> doesn&#8217;t want to hear about it.
</p>
<div id="attachment_770" class="wp-caption alignleft" style="width: 297px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/xbox_support.png" alt="xbox.com support options" title="xbox_support" width="287" height="314" class="size-full alignleft wp-image-770" /><p class="wp-caption-text">xbox.com support options</p></div>
<p>
The <em>official Xbox support page</em>, where Gears of War&#8217;s &#8220;support&#8221; page points seems to deal with Xbox Live and Hardware problems only, not with actual games.
</p>
<p>
The community forums back on the game&#8217;s website are full of noise and are mostly filled with complaints. I haven&#8217;t seen any moderator replies, even on legitimate issues posted. Epic&#8217;s official website just links to their product websites. And there are no other way of contacting them.
</p>
<p>
I would say <strong>Epic FAIL</strong> and chuckle at how well this meme works for this company, but a scary thought occurs instead: it&#8217;s only a failure if the company cared to hear back from the users of their products in the first place. Unlike with software-as-a-service subscription models, or software that could have 2.0, or licensing models, or other software that makes money from keeping and getting more users; mass market video games make the bulk of their sales shortly after the release date. Having already cashed in on the release, support and bug-fixes are an expense that are not justified by having more direct profits.
</p>
<p>
Unless you are <strong>Blizzard Entertainment</strong>, with an image to maintain. They still seem to be doing things right.
</p>
<div id="attachment_771" class="wp-caption alignleft" style="width: 503px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/blizzard_support.png" alt="Blizzard&#039;s support options" title="blizzard_support" width="493" height="153" class="size-full alignleft wp-image-771" /><p class="wp-caption-text">Blizzard's support options</p></div>
<p>
So this leaves me with this blog. Here&#8217;s the bug report:
</p>
<p>
In the game lobby, map selection ended in a draw. In the event of a tie, the system picks a random map, but it picked one from an expansion pack that I did not have (this really should have been caught in QA testing). As a result, the game crashed out of the match, with a user-facing prompt that only said: <strong>?int?Engine.Errors.ConnectionLost?</strong>.
</p>
<p><br/></p>
<p>
I know what (int) means; in this case it&#8217;s obvious that the software doesn&#8217;t handle errors properly. Maybe I can ping someone from Epic Game&#8217;s PR on Twitter? If not about technical issues, then simply about not being able to contact them in any other way&#8230;
</p>
<p><a href="http://twitter.com/tonytargonski/status/1456050218"><img src="http://compsci.ca/blog/wp-content/uploads/2009/04/twitter_to_epic_games.png" alt="" title="twitter_to_epic_games" width="500" height="73" class="aligncenter size-full wp-image-773" /></a></p>
<p>
Or am I just being unrealistic? Should I think of video games as movie-type entertainment, but with more interaction? I suppose a lot of games are trending towards the <em>&#8220;pop the DVD in for few hours of entertainment&#8221;</em> use; but that&#8217;s precisely what allows for the slip in every quality that does not directly contribute to marketing driven sales (though we do get HD graphics out of this).
</p>
<p>
Or maybe it&#8217;s the new breed of gamer population&#8230; <em>*sigh*</em>
</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/n7VAhzPcZ-s&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/n7VAhzPcZ-s&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=veYtSfvGLqc:B2iknlc7yfk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=veYtSfvGLqc:B2iknlc7yfk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=veYtSfvGLqc:B2iknlc7yfk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=veYtSfvGLqc:B2iknlc7yfk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=veYtSfvGLqc:B2iknlc7yfk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=veYtSfvGLqc:B2iknlc7yfk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/veYtSfvGLqc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/treating-video-games-as-software/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bullshit legal threats for online identity management</title>
		<link>http://compsci.ca/blog/bullshit-legal-threats-for-online-identity-management/</link>
		<comments>http://compsci.ca/blog/bullshit-legal-threats-for-online-identity-management/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 06:15:26 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=765</guid>
		<description><![CDATA[<strong style="font-size: 1.4em;">It is unreasonable to take everything posted on forums or blogs as facts.</strong>
<br/>
<br/>
But since people are beginning to realize that what they say, or what is said about them, <em>online</em>, could actually matter, the above is ignored in favour of bullshit threats in a futile attempt at censorship.]]></description>
			<content:encoded><![CDATA[<div id="attachment_766" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/02/online_identity_470.png" alt="Crop of &#039;My Cyber Social Map&#039; by &lt;a href=&#039;http://www.flickr.com/photos/crystaleagle/2386230724/&#039; title=&#039;Flickr: My Cyber Social Map&#039;&gt;frankdasilva&lt;/a&gt;" title="online_identity_470" width="470" height="208" class="size-full alignright wp-image-766" /><p class="wp-caption-text">Crop of 'My Cyber Social Map' by <a href='http://www.flickr.com/photos/crystaleagle/2386230724/' title='Flickr: My Cyber Social Map'>frankdasilva</a></p></div>
<p>
It seems that people are beginning to realize that what they say, or what is said about them, <em>online</em>, could actually matter. More so, if it shows up on Google. Which is exactly what happened to a certain individual, who was recently looking up his own name, and found something he did not like. A forum post, from 2004.
</p>
<blockquote>
<p>
&#8220;I found said post as hit #7. The absurd comments contained within could be classified as nothing other than slanderous, if not criminal. My name is not one that is common so I am taking these accusations personally and I ask that they are removed immediately so that further action is not required.&#8221;
</p>
</blockquote>
<p>
Among many problems with the above claim, is the fact that the post in question was about some kid, who happened to go by the same name, doing stupid things in high school. If the age discrepancy or the absurdity of the context doesn&#8217;t click in, perhaps the fact that it&#8217;s <strong>an opinion</strong> posted by <strong>an anonymous users</strong> on <strong>a forum</strong> should.
</p>
<p style="font-size:2em;">
<strong>It is unreasonable to take everything posted on <em>forums</em> or <em>blogs</em> as <em>facts</em>.</strong>
</p>
<p>
Besides, the forum itself, and it&#8217;s operators (myself and Dan) are just a carrier, and can&#8217;t be held responsible for the actions of 3rd party users. Still, some seem to be under the impression that big words and threats are the way to go.
</p>
<p>
So we&#8217;ve started a <a href="http://wiki.compsci.ca/index.php?title=Legal_Threats" title="Legal Threats received by compsci.ca">wiki page of <em>Legal Threats</em></a> that we&#8217;ve received; it will be updated as more show up. That&#8217;s right, we are doing it <a href="http://thepiratebay.org/legal" title="legal threats received by The Pirate Bay">The Pirate Bay style</a> &#8212; all threats will be publicly posted. We even have enough time to reply!
</p>
<p>
<strong>A few lessons learned:</strong>
</p>
<p>
1. Your name <strong>will</strong> be searched online. Internet content should be considered permanent, so try to do something noteworthy.
</p>
<p>
2. Failing to do the above, <strong>start a blog</strong>. If anything, it should rank higher than <em>absurd 4 year old forum posts about random kids</em>.
</p>
<p>
3. If you plan on threatening someone and make it sound all serious &#8212; <strong>you have to take it seriously as well</strong>. Otherwise that nonsense will just end up on the internet. See point #1.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=eQm34DoRqhY:nv8huMADRZM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=eQm34DoRqhY:nv8huMADRZM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=eQm34DoRqhY:nv8huMADRZM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=eQm34DoRqhY:nv8huMADRZM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=eQm34DoRqhY:nv8huMADRZM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=eQm34DoRqhY:nv8huMADRZM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/eQm34DoRqhY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/bullshit-legal-threats-for-online-identity-management/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The spirit of Software Engineering</title>
		<link>http://compsci.ca/blog/the-spirit-of-software-engineering/</link>
		<comments>http://compsci.ca/blog/the-spirit-of-software-engineering/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 00:52:56 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=761</guid>
		<description><![CDATA[While <strong>Software Engineering</strong> vs. <strong>Computer Science</strong> does have it's <a title="6 Degrees of Computer Science" href="http://compsci.ca/blog/6-degrees-of-computer-science/">technical differences</a>, there are also some differences that take place outside of the lecture halls.
<br/>
<br/>
<strong style="font-size: 1.4em;">Since University is as much about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.</strong>]]></description>
			<content:encoded><![CDATA[<div id="attachment_762" class="wp-caption alignright" style="width: 480px"><a href="http://compsci.ca/blog/wp-content/uploads/2009/02/software_engineering_ring_470.jpg"><img src="http://compsci.ca/blog/wp-content/uploads/2009/02/software_engineering_ring_470.jpg" alt="Software Engineering by &lt;a href=&#039;http://www.flickr.com/photos/canadianveggie/123383284/&#039; title=&#039;Flickr: Software Engineering&#039;&gt;Canadian Veggie&lt;/a&gt;" title="software engineering ring" width="470" height="185" class="alignright size-full wp-image-762" /></a><p class="wp-caption-text">Software Engineering by <a href='http://www.flickr.com/photos/canadianveggie/123383284/' title='Flickr: Software Engineering'>Canadian Veggie</a></p></div>
<p>
While <strong>Software Engineering</strong> vs. <strong>Computer Science</strong> does have it&#8217;s <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="6 Degrees of Computer Science">technical differences</a>, there are also some differences that take place outside of the lecture halls. Since University is as much (if not more) about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.
</p>
<p>
The two things I&#8217;ve noticed to lack in the Computer Science program are:
</p>
<h2>The Iron Ring (in Canada)</h2>
<p>
Software Engineering, being an <strong>Engineering</strong> program, offers an <em>Iron Ring</em> at graduation. It&#8217;s like a degree that one could wear on their hand.
</p>
<h2>The graduating class&#8217; unity</h2>
<p>
While Computer Science is generally much more flexible than Software Engineering, this also means that there is less structure. Engineering programs are typically done in rigid <em>&#8220;classes&#8221;</em> where the bulk of the lectures are attended by the same group of people for the duration of the program. The hardships of the undergrad studies foster a strong bond between the people who manage to make it through.
</p>
<p>
I was reminded of this spirit last week in Montreal, during <a href="http://2009.cusec.net/" title="CUSEC 2009">CUSEC</a>, when a group of SoftEng students was running through McGill, chanting Waterloo cheers, at 2 in the morning. Good times.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=KB1OWAkgABA:D-tlHH-k_J4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=KB1OWAkgABA:D-tlHH-k_J4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=KB1OWAkgABA:D-tlHH-k_J4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=KB1OWAkgABA:D-tlHH-k_J4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=KB1OWAkgABA:D-tlHH-k_J4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=KB1OWAkgABA:D-tlHH-k_J4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/KB1OWAkgABA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-spirit-of-software-engineering/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Botnet communication over Twitter, Reddit, social web</title>
		<link>http://compsci.ca/blog/botnet-communication-over-twitter-reddit-social-web/</link>
		<comments>http://compsci.ca/blog/botnet-communication-over-twitter-reddit-social-web/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 06:54:51 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=744</guid>
		<description><![CDATA[<strong style="font-size: 1.4em;">Given the popularity of the IRC protocol for communication between the botnet infected computers, I thought it might be an interesting thought experiment to consider <em>other</em> means of communication.</strong>]]></description>
			<content:encoded><![CDATA[<p>
<strong>Botnet</strong>, a network of software robots, is typically associated with <a href="http://compsci.ca/blog/computer-virus-mostly-harmless-by-definition/" title="Types of computer malware: virus, trojan, etc.">trojan or worm infected</a> computers used to perform the bidding of their master &#8212; spam, malware, <abbr title="Distributed Denial of Service">DDoS</abbr>. And while the common application is grossly unethical and damaging, the academic study of a cluster of software nodes, working as a group, is fascinating.
</p>
<p>
Given the popularity of the <strong>IRC protocol</strong> for communication between the infected computers, I thought it might be an interesting thought experiment to consider other means of communication. On a locked down corporate network, blocking all but a few essential ports, <strong>HTTP</strong> is typically let through; I guess people need to access web pages for research and other business needs. Without setting up any of our own control servers, lets see what existing web services one could use to spawn a web of online mischief!
</p>
<h2>Botnet over Twitter</h2>
<div id="attachment_746" class="wp-caption alignleft" style="width: 510px"><a href="http://twitter.com/" title="What are you doing?"><img src="http://compsci.ca/blog/wp-content/uploads/2008/12/twitter_botnet_welcome_to_the_net.png" alt="Twitter&#039;s social structure makes it almost too easy to set up networks of bots." title="twitter botnet welcome to the net" width="500" height="194" class="size-full wp-image-746 alignleft" /></a><p class="wp-caption-text">Twitter's social structure makes it almost too easy to set up networks of bots.</p></div>
<p>
<a href="http://twitter.com/" title="What are you doing?"><strong>Twitter</strong></a> might prove to be an ideal service, as it is already meant for post-on-web social communication not just between humans, but bots also.
</p>
<p>
Twitter&#8217;s API makes it very easy for software to access and post all the vital information.
</p>
<p>
The service itself comes build-in with the concept of <em>following</em> specific accounts &#8212; allowing one to setup the network layout entirely within the webservice itself.
</p>
<p>
The functionality for replies, direct messages, and private profiles are just gravy.
</p>
<h2>Botnet over Reddit</h2>
<div id="attachment_748" class="wp-caption alignleft" style="width: 510px"><a href="http://www.reddit.com/" title="What's new online"><img src="http://compsci.ca/blog/wp-content/uploads/2008/12/reddit_botnet_can_has_ddos.png" alt="A clever use of cats and captions might let Reddit submissions live long enough to be read by the bot army" title="reddit botnet can has ddos" width="500" height="163" class="size-full wp-image-748 alignleft" /></a><p class="wp-caption-text">A clever use of cats and captions might let Reddit submissions live long enough to be read by the bot army</p></div>
<p>
Just like every social-network website, <a href="http://www.reddit.com/" title="What's new online"><strong>Reddit</strong></a> comes with a set of &#8220;friends&#8221;, and even <em>private custom reddits</em> that can be used as <em>&#8220;channels&#8221;</em> to communicate in.
</p>
<p>
Simple and clean HTML markup makes it easy to parse the contents of the page.
</p>
<p>
Though the zealous community is quick to point out any suspiciously spammy activity; And <a href="http://www.reddit.com/r/programming/" title="Reddit's Programming Community"><abbr title="Reddit's Programming Community">Proggit</abbr></a> members will likely hijack any control in place.
</p>
<h2>Botnet over GigPark, et. al.</h2>
<div id="attachment_749" class="wp-caption alignleft" style="width: 510px"><a href="http://www.gigpark.com/" title="Discover the trusted service people your friends use "><img src="http://compsci.ca/blog/wp-content/uploads/2008/12/gigpark_botnet_request_recommendation.png" alt="GigPark could be used to request and find recommendations for Handyman, Doctors, and Denial of Service Attacks" title="gigpark botnet request recommendation" width="500" height="114" class="size-full wp-image-749 alignleft" /></a><p class="wp-caption-text">GigPark could be used to request and find recommendations for Handyman, Doctors, and Denial of Service Attacks</p></div>
<p>
The above ideas could be generalized to any <em>Social Network</em> website. <a href="http://www.gigpark.com/" title="Discover the trusted service people your friends use "><strong>GigPark</strong></a>&#8217;s feed of trusted recommendations is already filtered to 2 degrees of separation between the linked nodes, making filtering and discovery of new bots much easier. Friend-lists, messages, and favourite &#8220;recommendations&#8221; (which could function as a queue of tasks) rival Twitter&#8217;s toolset.
</p>
<p>
Actually GigPark&#8217;s innovative <em>Suggested Friends</em> feature will sync the &#8220;friends&#8221; from other social networks such as Twitter or Facebook, <strong>allowing for redundancy across multiple neworks</strong>.
</p>
<h2>Next Steps</h2>
<p>
Some downsides to this, obviously hypothetical, method involve the fact that too much reliance is placed into the host network. The webservice might be in an advantageous position to identify all the nodes; perhaps more so than an IRCop discovering the IRC channel where bots have gathered to communicate.
</p>
<p>
Another is the issue of information persistence. Web applications will typically keep the entire history of commands online. While privacy options that some social networks supply might hide some (or even all) of the activity from the public, some extra work needs to be done to hide the information from the host itself. Obfuscation, encoding, and the liberal use of &#8220;delete&#8221; options will scatter the data though the access logs, making it reasonably more difficult to trace the activity, rather than simply taking a snapshot of the database. Some bots don&#8217;t enjoy being studied by security researches, so they might be more exposed here.
</p>
<p>
Finally, going back to the issue of security and the corporate firewall &#8212; there will likely be a proxy server <a href="http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/" title="Blocking students on school network is wrong">filtering access to certain websites</a>. Some might be blocked because they distract employees (Facebook, MySpace, etc), others might match on some content. Though with a simple goal of communication, one just needs to find an online service that is <em>trusted-enough</em> to be widely accessible, and some means of getting it to display your supplied information.
</p>
<p>
This doesn&#8217;t even have to be accomplished by online POST requests, but now we are getting into the <a href="http://xkcd.com/190/" title="XKCD: IP over Demographic">XKCD territory</a> of <a href="http://cuiltheory.wikidot.com/what-is-cuil-theory" title="Cuil Theory">Cuils</a>.
</p>
<div id="attachment_750" class="wp-caption alignnone" style="width: 510px"><a href="http://xkcd.com/190/" title="XKCD: IP over Demographic"><img src="http://compsci.ca/blog/wp-content/uploads/2008/12/xkcd_ip_over_demographic.png" alt="For smaller numbers he has to SAVE lives.  The birthrate channel is even more of a mixed bag." title="xkcd ip over demographic" width="500" height="232" class="size-full wp-image-750" /></a><p class="wp-caption-text">For smaller numbers he has to SAVE lives.  The birthrate channel is even more of a mixed bag.</p></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=WO2H3WyIKTg:Xueb1q-zAd8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=WO2H3WyIKTg:Xueb1q-zAd8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=WO2H3WyIKTg:Xueb1q-zAd8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=WO2H3WyIKTg:Xueb1q-zAd8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=WO2H3WyIKTg:Xueb1q-zAd8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=WO2H3WyIKTg:Xueb1q-zAd8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/WO2H3WyIKTg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/botnet-communication-over-twitter-reddit-social-web/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blocking students on school network is wrong</title>
		<link>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/</link>
		<comments>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 03:08:42 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=713</guid>
		<description><![CDATA[Just because we might have access to some technology to fix a problem, does not necessarily mean that the problem itself is a technical one. Such as breaking our systems, to limit their use.<br/><br/>
<strong style="font-size:1.4em;">"I think this is one of those problems that does not need a technological solution, but a social one."</strong>]]></description>
			<content:encoded><![CDATA[<p>
Just because we might have access to some technology to fix a problem, does not necessarily mean that the problem itself is a technical one. Sparked by <a href="http://compsci.ca/v3/viewtopic.php?p=171466" title="Is there a way to block webpages?">a forum conversation</a>, the key example is the <strong>use of technology to filter out web content in a classroom</strong>. Asked for is, perhaps, the technical prevention side of the previous discussion of <a href="http://compsci.ca/blog/wireless-in-classrooms/" title="Wireless in classrooms">wireless in classrooms</a>. Dan pointed out the flaw with that plan:
</p>
<blockquote><p>
Really it should be the teacher stopping their students from playing youtube videos out loud in class and disturbing other students.
</p>
<p>
<strong>I think this is one of those problems that does not need a technological solution, but a social one.</strong></p>
</blockquote>
<div id="attachment_720" class="wp-caption alignleft" style="width: 396px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/10/layers_of_blocking_network_access.png" alt="There are many layers to block network access" title="layers of blocking network access" width="386" height="100" class="alignleft size-full wp-image-720" /><p class="wp-caption-text">There are many layers to block network access</p></div>
<p>
There are a lot of obstacles that could (and often are) put in place between users and their desired network accessible content. Some are legitimate security measures aimed at protecting the network. Others are roadblocks that annoy users more than prevent whatever has prompted the measure.
</p>
<p>
One of the most ridiculous &#8220;security measures&#8221; I once saw on some system was that the right-click of the mouse was physically disabled. The sys-admin must have disassembled the mice and popped off the plastic extension that clicks.
</p>
<p>
While well though out network rules are possible, it seems that more often that not the systems are simply crippled in a blanket policy of &#8220;just don&#8217;t do anything, ever&#8221;. There will be a locked down kiosk mode browser with broken settings; to ensure that everyone uses only this (very inconvenient) browser, the installation of any other browser will be forbidden&#8230; the same enforcement will also prevent the use of any other legitimate software, as a side effect. Soon enough the entire system is a crippled fraction of the former self, all because some student was watching YouTube videos. This is excessive. Everybody suffers.
</p>
<p>
While complicated systems could make it just that much harder for the students to get around them, <strong>perhaps the root of the problem is in the fact that those students are aiming to get around all this technology in the first place</strong>. In such a case, throwing more technology at the problem only masks its symptoms.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=xMWyvFYGRf4:my6nUk1t080:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=xMWyvFYGRf4:my6nUk1t080:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=xMWyvFYGRf4:my6nUk1t080:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=xMWyvFYGRf4:my6nUk1t080:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=xMWyvFYGRf4:my6nUk1t080:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=xMWyvFYGRf4:my6nUk1t080:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/xMWyvFYGRf4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Disadvantages of High School Programming</title>
		<link>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/</link>
		<comments>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 02:07:15 +0000</pubDate>
		<dc:creator>Roman</dc:creator>
		
		<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=696</guid>
		<description><![CDATA[A common worry for students applying to Computer Science programs at Universities is about <a href="http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/" title="On entering the Computer Science field with no programming background">high schools not adequately preparing them for the field</a>. Roman, a student at the University of Waterloo, explores the flip side of the issue -- sometimes things learned in high school simply get in the way.<br/><br/>
<strong style="font-size:1.4em;">those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language</strong>]]></description>
			<content:encoded><![CDATA[<div id="attachment_702" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/10/broken_computer_in_a_lab.jpg" alt="broken computer in a lab" title="hey look -- redbull" width="470" height="313" class="alignright size-full wp-image-702" /><p class="wp-caption-text">Broken by <a href='http://www.flickr.com/photos/quinnanya/2477648616/' title='Flickr: Broken'>quinn.anya</a></p></div>
<p>
<em>A common worry for students applying to Computer Science programs at Universities is about <a href="http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/" title="On entering the Computer Science field with no programming background">high schools not adequately preparing them for the field</a>. Roman, a student at the University of Waterloo, explores the flip side of the issue &#8212; sometimes things learned in high school simply get in the way.</em>
</p>
<p>
As I settled into University of Waterloo’s academic system over the past month, I&#8217;ve noticed something that, to me, seemed counter intuitive. People who have taken a year or more of high school programming were having a harder time in the CS135 course than me, who has a combined experience of just over two months (including the month in university). Granted, the fact that <a href="http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/" title="Computer Science at Waterloo: the new Scheme of things">CS135 employs the functional language Scheme</a> as its language of choice is a big stumbling block for those with experience in imperative languages such as Java or Turing. High school programmers are challenged syntactically and conceptually, effectively bumping them down to beginner level as they adjust to the new curriculum. However, the problems go beyond that.
</p>
<p>
It seems (I wouldn&#8217;t know, but I draw on conversations with others to make this assumption) that high-school programming focuses on the idea of <em>&#8220;just making it work.&#8221;</em> My roommate tells me his teacher simply checked if the program worked and gave 100% or close to it. Making contracts, purposes, examples, and tests (as well as templates and data definitions) comes hard after years of simply <em>&#8220;making it work.&#8221;</em> And though (again, I wouldn&#8217;t know) the design recipe may not be as heavily implemented in the &#8220;real world,&#8221; it a way of communicating with those reading your code. <strong>Programming is communication.</strong> And communication is not a high-school programmer&#8217;s virtue. <em>(Editor&#8217;s note: <a href="http://compsci.ca/blog/not-cargo-cult-programming-source-control-communication-and-lack-of-it-all/" title="(not) Cargo cult programming, source control, communication, and lack of it all">not all University students are better</a>. &#8212; Tony)</em> Their philosophy seems to be that the code is to be created and put into a black box until an emergency calls for a (painful and time consuming) review. In CS135, the fact that programming is an act of communication is emphasized heavily. Those who have been continuously told to <em>&#8220;just get it to run&#8221;</em> are in a hard place.
</p>
<p>
On the other hand, people who come into the course with no, or barely any, programming experience may find the basic concepts (such as functions, operations, and conditionals) a little more difficult to tackle. However, when it comes to programming readable code they may not be inhibited to the same extent. Their code might be lengthy, ugly, and inefficient, but, in accordance with the <em>&#8220;just get it to run&#8221;</em> philosophy, so might the code of the high-schoolers. Basically, <strong>those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language</strong>. Furthermore, if the dominant idea of high-school courses is to get the program to just run, the marks of a decent portion of the students will be high. The judgment of success based on marks may give them an exaggerated idea of their abilities. They may think <em>&#8220;Well, I&#8217;m getting 75% in English, 80% in Math, and 91% in Computer Science&#8230; I guess I&#8217;ll apply to a Computer Science program!&#8221;</em> When they get there, the difficulties described above will exceed anything they have ever experienced. If the students are not passionate, the results will be poor.
</p>
<p>
The point is that high school programming can teach students bad programming habits, entice them to pursue Computer Science as their major (for the wrong reasons), and undermine their chances of success in the field. Again, I&#8217;m assuming an average student who does not take an active interest in Computer Science or any other subject and will choose Computer Science based on the grades he/she receives. I believe that with passion, nearly anything is possible. I am not insulting any high-school students, nor am I suggesting one shouldn&#8217;t go into Computer Science (high school or university) unless you&#8217;re 110% sure you will live and breathe code. I&#8217;m pointing that <strong>there are faults in the high-school programming curriculum that seem to do the very opposite of preparing students for the challenges of University Computer Science and beyond.</strong>
</p>
<div style="border:thin dashed #ccc; padding:5px;">
Roman Zimine is an inexperienced but passionate first-year student at the University of Waterloo&#8217;s Math Faculty.
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=FzC2AfhQHR8:Apjw-bJqjrM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=FzC2AfhQHR8:Apjw-bJqjrM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=FzC2AfhQHR8:Apjw-bJqjrM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=FzC2AfhQHR8:Apjw-bJqjrM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=FzC2AfhQHR8:Apjw-bJqjrM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=FzC2AfhQHR8:Apjw-bJqjrM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/FzC2AfhQHR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>0 to GameDev in the wrong lane</title>
		<link>http://compsci.ca/blog/0-to-gamedev-in-the-wrong-lane/</link>
		<comments>http://compsci.ca/blog/0-to-gamedev-in-the-wrong-lane/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 13:51:45 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Video Game Development]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=684</guid>
		<description><![CDATA[<blockquote><p>
what programs do i need to becoming a game programmer. i was on youtube on other day. people said use visual studio.
</p></blockquote>
<p>
YouTube is not known as the place for <a href="http://stupidfilter.org/" title="The StupidFilter Project: Because the internet needs prophylactics for memetically transmitted diseases.">intelligent comments</a>, let alone technical discussion on <a href="http://compsci.ca/blog/learning-before-learning/" title="Learning Before Learning (or getting ahead of school curriculum)">teaching oneself</a> enough of Computer Science and Programming (and Math, and Physics, and...) basics to start <a href="http://compsci.ca/blog/video-game-degrees-need-to-require-math/" title="Video game degrees need to require Math">building video games</a>.
</p>
<strong style="font-size:1.2em;">Don't needlessly over-complicate problems that are already complicated.</strong>]]></description>
			<content:encoded><![CDATA[<div id="attachment_686" class="wp-caption alignright" style="width: 472px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/09/youtube_comments_xkcd.png" alt="&lt;a href=&quot;http://xkcd.com/481/&quot; title=&quot;xkcd comics&quot;&gt;XKCD: Listen to yourself.&lt;/a&gt;" title="youtube comments as seen by xkcd" width="462" height="181" class="alignright size-full wp-image-686" /><p class="wp-caption-text"><a href='http://xkcd.com/481/' title='xkcd comics'>XKCD: Listen to yourself.</a></p></div>
<p>
This post is inspired by another gem <a href="http://compsci.ca/v3/viewtopic.php?p=170335" title="becoming an game programmer">found on compsci.ca forums</a>. Although that, perhaps, might have been a good troll posting, judging by the user&#8217;s other activity on the forums, I&#8217;m inclined to think that he&#8217;s just new.
</p>
<blockquote><p>
what programs do i need to becoming a game programmer. i was on youtube on other day. people said use visual studio.
</p>
</blockquote>
<p>
YouTube is not known as the place for <a href="http://stupidfilter.org/" title="The StupidFilter Project: Because the internet needs prophylactics for memetically transmitted diseases.">intelligent comments</a>, let alone technical discussion on <a href="http://compsci.ca/blog/learning-before-learning/" title="Learning Before Learning (or getting ahead of school curriculum)">teaching oneself</a> enough of Computer Science and Programming (and Math, and Physics, and&#8230;) basics to start <a href="http://compsci.ca/blog/video-game-degrees-need-to-require-math/" title="Video game degrees need to require Math">building video games</a>.
</p>
<p>
The YouTube type of a response though is often about a <a href="http://compsci.ca/blog/the-most-important-programming-language/" title="The most important programming language">particular programming language</a>, or some <em>pro level tool</em>, that someone in the industry is using. That&#8217;s great if one is looking to build a commercial game, along with a studio full of developers. Otherwise this is akin to going for your first drivers license exam with a Formula-1 car.
</p>
<div id="attachment_687" class="wp-caption alignleft" style="width: 510px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/09/formula_1_steering_wheel.jpg" alt="Wheel Steering for Formula 1 by &lt;a href=&#039;http://www.flickr.com/photos/gen2kk/14449107/&#039; title=&#039;Flickr&#039;&gt;GR Digital Kid&lt;/a&gt;" title="formula 1 steering wheel" width="500" height="358" class="alignleft size-full wp-image-687" /><p class="wp-caption-text">Wheel Steering for Formula 1 by <a href='http://www.flickr.com/photos/gen2kk/14449107/' title='Flickr'>GR Digital Kid</a></p></div>
<p>
Have you seen the steering wheels for professional race cars?
</p>
<p style="font-size:2em;font-weight:bold;">
They are ridiculously complicated.
</p>
<p>
Programming languages and tools work in a similar manner &#8212; it&#8217;s a trade-off between power and ease-of-use. Some languages manage to offer both to a reasonably decent degree. Others sacrifice developer&#8217;s sanity for potential for a little faster performance. Though unless one is putting together a <em>pro level</em> video game, the potential for manual memory management optimizations and hardware specific accelerations don&#8217;t even come into play. If one is just starting out with video game development, and foolishly picks up C/C++ &#8212; they pick up all of the complexities and costs of those technologies, but none of the benefits (benefits over other programming languages).
</p>
<p>
Besides, even the absurdly well optimized compiler will not save the poor performance of beginner code littered with quadratic (or worse!) functions.
</p>
<p style="font-size:2em;font-weight:bold;">
Don&#8217;t needlessly over-complicate problems that are already complicated.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=L-wLpCVVbv4:PsvRLqZHKMw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=L-wLpCVVbv4:PsvRLqZHKMw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=L-wLpCVVbv4:PsvRLqZHKMw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=L-wLpCVVbv4:PsvRLqZHKMw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?a=L-wLpCVVbv4:PsvRLqZHKMw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ComputerScienceCanadaBlog?i=L-wLpCVVbv4:PsvRLqZHKMw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ComputerScienceCanadaBlog/~4/L-wLpCVVbv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/0-to-gamedev-in-the-wrong-lane/feed/</wfw:commentRss>
		</item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.527 seconds --><!-- Cached page served by WP-Cache -->
