<?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>Index out of Bounds &#187; Software</title>
	<atom:link href="http://www.jonathanfritz.ca/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jonathanfritz.ca</link>
	<description>the personal portfolio of Jonathan Fritz</description>
	<lastBuildDate>Mon, 12 Dec 2011 03:22:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Scripting Secret Santa</title>
		<link>http://www.jonathanfritz.ca/software/scripting-secret-santa</link>
		<comments>http://www.jonathanfritz.ca/software/scripting-secret-santa#comments</comments>
		<pubDate>Mon, 12 Dec 2011 03:22:35 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[recursion]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secret santa]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=498</guid>
		<description><![CDATA[Every year, my closest friends and I do a &#8216;Secret Santa&#8217; gift exchange. For the unfamiliar, the idea is to randomly draw the name of one other person, and to buy him or her a gag gift without giving away your identity. It&#8217;s a lot of fun, and we&#8217;ve been doing it for a number [...]]]></description>
			<content:encoded><![CDATA[<p>Every year, my closest friends and I do a &#8216;Secret Santa&#8217; gift exchange. For the unfamiliar, the idea is to randomly draw the name of one other person, and to buy him or her a gag gift without giving away your identity. It&#8217;s a lot of fun, and we&#8217;ve been doing it for a number of years now.</p>
<p>Unfortunately, since we no longer live under the same roof (or even in the same city), it&#8217;s hard to draw names prior to the gift exchange. Of course, one person could draw all of the names and let each other participant know who to buy for, but then the person who drew the names would already know who was giving gifts to whom, thus defeating the spirit of the exercise. There are a number of websites that purport to solve the problem, but none of them are perfect.</p>
<p>Since I&#8217;m a giant nerd, I decided to script my own solution. I went into it with three rules in mind:</p>
<ol>
<li>Every person must receive exactly one gift.</li>
<li>No person should draw their own name, or that of their significant other.</li>
<li>Participants should be notified of the draw by email, without the person who runs the script ever knowing the results.</li>
</ol>
<p>Because Python is a cool language that I&#8217;m not very experienced with, I decided to use it to hack something together. My results are shown below:</p>
<pre>#! /usr/bin/python

import random
import smtplib
from email.mime.text import MIMEText

# a recursive function to match pairs
# the goal is to get somebody in participants to give a gift to each person in ungifted
# we don't allow people to give gifts to themselves or to their significant others
def match(participants, ungifted):
     # primary base case
     if len(ungifted) == 0:
               return True

     #processing case
     else:
          # ungifted reduces by one each recursion,
          # so this is counting down from end of list
          first = participants[len(ungifted) - 1][0]
          so = participants[len(ungifted) - 1][1]

          # error base case
          if (len(ungifted) == 1 and (first == ungifted[0] or so == ungifted[0])):
               print "algorithm failed, please start again"
               return False

          #can't get yourself or significant other
          second = first
          while second == first or second == so:
               second = random.choice(ungifted)

          ungifted.remove(second)

          pairs.append([first,second])
          return match(participants, ungifted)

# list of participants in tuples of &lt;participant, significant other&gt;
participants = [['Jim','Anne'], ['Anne','Jim'], ['John','Rachel'], ['Rachel','John'],
                    ['Joseph',None], ['Ed',None], ['Mark',None]]

# participant email addresses keyed on name
emails = {'Jim':'jim@live.ca', 'Anne':'anne@gmail.com', 'John':'john@johnsmith.net',
              'Rachel':'rachel@hotmail.com', 'Joseph':'joe@gmail.com',
              'Ed':'ed@live.com', 'Mark':'mark@gmail.com'}

# take the first name in each tuple
ungifted = list(couple[0] for couple in participants)

#the list of gifting tuples of &lt;sender, recipient&gt;
pairs = []

# perform the matches
if match(participants, ungifted):

     # loop through matches, sending emails
     for pair in pairs:
          you = emails[pair[0]]
          msgstr = pair[0] + ", your secret santa is " + pair[1]
          print "Sending email to ",you

          me = 'myemailaddress@mydomain.com'
          msg = MIMEText(msgstr)
          msg['Subject'] = 'Secret Santa Pairs v2.1'
          msg['From'] = me
          msg['To'] = you

          s = smtplib.SMTP('mail.mydomain.com')
          s.login('username', 'password')
          s.sendmail(me, you, msg.as_string())
          s.quit()</pre>
<p>The vast majority of the magic takes place in the <strong>match()</strong> function. It&#8217;s a recursive algorithm that iterates over the <strong>ungifted</strong> list and randomly selects somebody from the <strong>participants</strong> list whose job it will be to purchase a gift for that person. The main downside of this approach is that it is possible to get to the last person and have no logical choice for a partner &#8211; i.e. when we try to select a partner for Jim, the only person left in the ungifted list is Anne, which violates rule #2. In that case, we fail out before sending the emails and instruct the user to run the script again.</p>
<p>In order to use the script, just copy it into a text file (paying very close attention to the indentation!), change the contents of the <strong>participants</strong> and <strong>emails</strong> arrays, and modify the last block to reflect your SMTP settings and email account username/password. Save the file with a <strong>.py</strong> extension, and from a terminal, run <strong>python &lt;scriptname&gt;.py</strong></p>
<p>Happy gifting!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/scripting-secret-santa/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seven Days of Rdio</title>
		<link>http://www.jonathanfritz.ca/software/seven-days-of-rdio</link>
		<comments>http://www.jonathanfritz.ca/software/seven-days-of-rdio#comments</comments>
		<pubDate>Wed, 10 Aug 2011 01:51:18 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[rdio]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=488</guid>
		<description><![CDATA[As a regular listener of tech podcasts from the United States, I have long been interested in the idea of streaming music services, but have been frustrated by the fact that very few of them seem to be able to break the border and come north to Canada. In the past, I&#8217;ve held both a [...]]]></description>
			<content:encoded><![CDATA[<p>As a regular listener of tech podcasts from the United States, I have long been interested in the idea of streaming music services, but have been frustrated by the fact that very few of them seem to be able to break the border and come north to Canada. In the past, I&#8217;ve held both a free and paid subscription to Last.fm, but found its music playback system to be extremely limited, due in part to licensing restrictions that dictate how many songs from any album or artist can be played in succession.</p>
<p>A few days ago, I was catching up on my subscription to Jesse Brown&#8217;s Search Engine podcast, and found myself listening to <a title="Search Engine Podcast Episode 95: Cloud Music Comes to Canada" href="http://www.tvo.org/cfmx/tvoorg/searchengine/index.cfm?page_id=613&amp;action=blog&amp;subaction=viewPost&amp;post_id=17132&amp;blog_id=485" target="_blank">Episode 95: Cloud Music Comes to Canada</a>. In this episode, Jesse interviewed Rdio CEO Drew Larner about the streaming service&#8217;s Canadian launch. Immediately interested, I headed over to <a title="Rdio Website" href="http://www.rdio.com" target="_blank">the company&#8217;s website</a> and signed up for their free 7-day trial subscription. The following is a collection of my thoughts about the service, in no particular order:</p>
<h3>Beautiful and Functional:</h3>
<p>I have to hand it to the Rdio web team &#8211; their in-browser media player is one of the best web apps that I&#8217;ve ever used. The screen is organized into two panels: A thin side panel that shows currently playing media and controls, and a wider main area that allows you to navigate through the Rdio music library. One of the best parts is that this view is built entirely on Javascript, so you can browser through available music and queue up songs to play without any interruption in audio playback.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-dashboard.png"><img class="aligncenter size-medium wp-image-489" title="Rdio Dashboard" src="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-dashboard-300x255.png" alt="A picture of the Rdio Dashboard, with media playback controls on the left, and the main navigation window to the right." width="300" height="255" /></a></p>
<p>Speaking of audio playback, song quality is crystal clear, while tracks seem to start instantly, without any kind of buffering time. I&#8217;ve used a lot of media players in my time, and I think that this one might have the best user interface that I&#8217;ve ever seen. Navigating the massive library of available songs is simple and painless, and the prominently placed search bar provides a rich collection of query results:</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-search.png"><img class="aligncenter size-medium wp-image-490" title="Rdio Search Results for the term &quot;love&quot;" src="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-search-151x300.png" alt="Rdio Search Results for the term &quot;love&quot;: Results include top artists, albums, and songs with the search term in their titles" width="151" height="300" /></a></p>
<p>The only major UI problem that I&#8217;ve encountered stems from broken links placed throughout the site. On more than one occasion, I&#8217;ve been reading an artist bio or album review, and clicked on a link to one of the albums mentioned therein, only to be transported off to a page for an album that shares the same name, but is by an entirely different artist. My guess is that all written content on the site is scanned wiki-style for clickable terms like album and artist names, and that the links are established without human intervention. In general, this process works, except when it fails to correctly choose between multiple potential targets.</p>
<h3>A Truly Massive Collection:</h3>
<p>Rdio has done an excellent job of collecting songs for their collection. During the aforementioned interview, CEO Drew Larner emphasized the fact that the company purposely negotiated US and Canadian rights to music at the same time. The result is that the vast majority of their collection is available in both countries, without <a title="Gigaom: Netflix Streaming Heads North with some Differences" href="http://gigaom.com/video/netflix-streaming-heads-north-with-some-differences/" target="_blank">the usual legal disconnect that other streaming services like Netflix suffer</a> from.</p>
<p>Some of the usual suspects are missing from the Rdio library, namely the Beatles and Led Zeppelin. For the life of me, I&#8217;ll never understand what the publishing companies that own these pieces think that they&#8217;re gaining by holding them back from online streaming services. It&#8217;s a purely artificial shortage &#8211; like many fans of these bands, I already own my favourite Beatles and Zeppelin records in both digital and physical formats, so it&#8217;s not like holding them back is generating additional sales. It&#8217;s nothing more than a piss off for fans who would like to enjoy their music on alternative services.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/the-beatles-results.png"><img class="aligncenter size-medium wp-image-491" title="Search results for &quot;The Beatles&quot;" src="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/the-beatles-results-300x235.png" alt="Search results for &quot;The Beatles&quot;: The available albums are almost entirely interviews or cover albums" width="300" height="235" /></a></p>
<p>With that said, the breadth of music available on Rdio is truly impressive. I&#8217;ve been able to find nearly everything that I&#8217;ve looked for, as well as a great deal of content that I&#8217;ve never heard, and intend to explore in the near future.</p>
<h3>Finding New Music to Enjoy:</h3>
<p>This is one of the few places in which Rdio makes a misstep. Other online streaming services that I&#8217;ve tried in the past (most notably <a title="Wikipedia: Yahoo! Music Radio (formerly Launchcast)" href="https://secure.wikimedia.org/wikipedia/en/wiki/Yahoo!_Music_Radio" target="_blank">the venerable Yahoo Launchcast</a>) would start a new user&#8217;s experience by asking for a few artists or albums that the user enjoyed. Once this data was stored, the service would begin to recommend a mix of familiar and closely related songs that the user would rate in turn, thereby automatically growing their collection while introducing them to a great deal of new music in short order.</p>
<p>Rdio doesn&#8217;t seem to provide any such service. Even after I linked it to my existing Last.fm account, it scrobbled what I was listening to, but did not pull in favourite artists or songs from that account. Nearly every artist, album, and song on the site can be played as an &#8220;Rdio Station&#8221;, which plays of mix of the chosen content along with related material, and new users can choose to follow existing users and benefit from their plays and music suggestions. Despite these methods of discovering new music, there doesn&#8217;t seem to be a &#8220;genius playback&#8221; &#8211; a way to playback songs that you&#8217;ve added to your collection plus new recommended material.</p>
<p>Even after spending a few days with the service and growing my online &#8220;collection&#8221; of music to just under 250 songs, my account&#8217;s &#8220;Rdio Station&#8221; (music drawn from artists/albums that I&#8217;ve listened to, songs that I&#8217;ve added to my collection, and related material) was maddeningly boring to listen to.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-now-playing.png"><img class="aligncenter size-medium wp-image-495" title="Rdio now playing window: My personal Rdio Station on the last day of my trial" src="http://www.jonathanfritz.ca/wp-content/uploads/2011/08/rdio-now-playing-300x252.png" alt="" width="300" height="252" /></a></p>
<p>In the image above, you can see that there are only 8 artists in a list of 16 upcoming songs &#8211; indeed, content from these 8 artists was repeated, and some individual songs (like that terrible What&#8217;s My Name song by Rhianna) came up in shuffle multiple times over a 2-hour listening period, even after I physically removed them from the list on more than one occasion. In my opinion, the concept of a personal Rdio station needs more work. It simply does not present a variable enough set of music, and does not expose me to music that I have not previously found on the site.</p>
<p>That said, the amazing breadth of the Rdio collection and the powerful search tools come very close to  compensating for this problem by making it incredibly easy to call up nearly any song that pops into your mind while listening. It doesn&#8217;t take long to get lost, wikipedia style, by following links in artist bios and one can quickly find themselves with more queued albums than they will ever realistically have time to listen to.</p>
<p>Finally, Rdio doesn&#8217;t allow you to rate music in a granular fashion like traditional media players do. Instead, it provides the more binary option of adding a song to your collection. This resembles the way that Last.fm allows users to &#8220;Heart&#8221; songs as favourites. Were I to adopt Rdio as a long-term replacement of my existing music library, I suspect that I would grow to dislike this design, as it does not seem (at least on the surface) to offer enough granularity to easily sort out a large music collection. With that said, a better automatic shuffle feature could solve the problem entirely.</p>
<h3>The Big Question:</h3>
<p>Will Rdio replace my traditional music collection? Probably not. I might use it to augment my collection, and to explore new music, as well as to listen to newly released albums before deciding whether or not to purchase them. The bottom line is that I probably won&#8217;t opt into the $5/month permanent account that is necessary to continue using the service once my trial runs out sometime tomorrow. The reasons behind this decision are varied, but ultimately come back to my experience with the site&#8217;s Rdio Station feature. Its lackluster performance means that listening to Rdio becomes a chore. I can&#8217;t just throw it on and sit back and listen; I have to intervene and queue up songs that I want to listen to every time my list runs dry.</p>
<p>With that said, I will most certainly come back to this service in 6 month&#8217;s time and give it another shot. It is one of the coolest sites that I&#8217;ve seen in a long time, and I do hope that it will continue to improve to the point where I am comfortable leaving my traditional media player behind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/seven-days-of-rdio/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Quick thoughts on Sony and the OtherOS</title>
		<link>http://www.jonathanfritz.ca/software/some-quick-thoughts-on-sony-and-the-otheros</link>
		<comments>http://www.jonathanfritz.ca/software/some-quick-thoughts-on-sony-and-the-otheros#comments</comments>
		<pubDate>Sat, 12 Feb 2011 04:26:33 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=479</guid>
		<description><![CDATA[For anybody who follows tech news, this is an old story indeed. In early 2010, Sony released the PS3 &#8216;Slim,&#8217; an update to their current generation gaming console. Along with the release came some new firmware that removed a previously available feature from the machine: the ability to run an alternative operating system such as [...]]]></description>
			<content:encoded><![CDATA[<p>For anybody who follows tech news, this is an old story indeed. In early 2010, Sony released the PS3 &#8216;Slim,&#8217; an update to their current generation gaming console. Along with the release came some new firmware that removed a previously available feature from the machine: the ability to run an alternative operating system such as Linux, on the hardware. As this story has been widely covered elsewhere, I won&#8217;t both to go into the details here &#8211; you can read all about them in the links at the bottom of the page.</p>
<p>Instead, I&#8217;d like to put forth an alternative theory as to why Sony removed the feature. Regardless of your thoughts on open source software or how you feel about the potential for game piracy on these systems, I doubt that Sony removed the feature out of an effort to fulfill some kind of evil plot for world domination. As I see it, this situation revolves around the pricing models that are traditionally built into the sale of consoles and video games.</p>
<p>Just like cellphone manufacturers, console manufacturers often sell their hardware at a hugely reduced price. They do this with hopes of making up the lost revenue potential in game sales (often measured with a ratio called &#8216;attachment rate&#8217; by industry insiders). This is often called the &#8216;razor and blades&#8217; model of economics. If you&#8217;ve ever purchased four razor blades for $20 in order to use a free razor that was mailed to you by a drug store, you&#8217;ll know why. But that&#8217;s another story.</p>
<p>The point is, a hobbyist who could run Linux on her PS3 might do something ridiculous with the hardware, like oh, say, <a href="http://www.geekosystem.com/ps3-supercomputer/" target="_blank">build a supercomputer out of 1760 of them</a>. Since she isn&#8217;t buying any games to go along with all of that hardware, she represents a serious loss for Sony&#8217;s bottom line. I&#8217;m not saying that this is the average activity that most hobbyists engaged in when using the OtherOS feature of the PS3, but I can&#8217;t help but think that it is an oft-overlooked point in this debate. If you stood to lose a significant amount of money for every person who purchased a product that you sold and stood to improve your potential earnings by disabling a feature that most of your user base didn&#8217;t even know about, I think you&#8217;d do the same thing.</p>
<p><strong>Related Links:</strong></p>
<p><a href="http://arstechnica.com/gaming/news/2010/03/it-no-longer-does-everything-no-more-linux-on-playstation-3.ars" target="_blank">It no longer does everything: no more Linux on PlayStation 3 (Ars Technica)</a></p>
<p><a href="http://arstechnica.com/gaming/news/2011/01/norways-consumer-council-files-complaint-against-sonys-ps3-downgrades.ars" target="_blank">Norway: Sony&#8217;s PS3 &#8220;updates&#8221; actually downgrade system (Ars Technica)</a></p>
<p><a href="http://arstechnica.com/gaming/news/2011/01/sonys-options-are-limited-in-face-of-ps3-jailbreak.ars" target="_blank">Can&#8217;t stop the signal: Sony&#8217;s options limited in face of PS3 jailbreak (Ars Technica)</a></p>
<p><a href="https://secure.wikimedia.org/wikipedia/en/wiki/Ps3" target="_blank">Playstation 3 (Wikipedia)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/some-quick-thoughts-on-sony-and-the-otheros/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digital Copyright and Bill C-32: My Ignite! Waterloo Presentation</title>
		<link>http://www.jonathanfritz.ca/software/digital-copyright-and-bill-c-32-my-ignite-waterloo-presentation</link>
		<comments>http://www.jonathanfritz.ca/software/digital-copyright-and-bill-c-32-my-ignite-waterloo-presentation#comments</comments>
		<pubDate>Tue, 30 Nov 2010 02:57:48 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Local]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bill c-32]]></category>
		<category><![CDATA[c-32]]></category>
		<category><![CDATA[c32]]></category>
		<category><![CDATA[ignite]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[waterloo]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=440</guid>
		<description><![CDATA[A few weeks ago, I gave a shortened version of my C-32 and You presentation at Ignite! Waterloo. It was a great experience, and really challenged me as a speaker. Although I do quite a bit of public speaking, the format of this particular presentation required me to know my presentation cold, and to cut [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I gave a shortened version of my <a href="http://www.jonathanfritz.ca/software/c-32-and-you-my-kwdm-presentation" target="_blank">C-32 and You presentation</a> at Ignite! Waterloo. It was a great experience, and really challenged me as a speaker. Although I do quite a bit of public speaking, the format of this particular presentation required me to know my presentation cold, and to cut down on the rambling that usually gets me by when I inevitably forget everything shortly after taking the stage.</p>
<p>If you&#8217;ve never been out to an Ignite! event, I highly suggest that you check one out. It&#8217;s kind of like a <a href="http://www.ted.com/" target="_blank">TED talk</a>, but each presentation is only 5 minutes long, and consists of 20 slides that auto advance every 15 seconds. Since the event had a videographer, you can choose to either watch my presentation or to scroll down to see my slides and notes. I won&#8217;t fault you for either.</p>
<h3>Talking Pictures</h3>
<p>For all you ADD-riddled folks with no patience, here&#8217;s the video version:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Oe9zR6DSep8?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/Oe9zR6DSep8?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>In Words</h3>
<p>For those of you who like to read stuff, here are my slides and associated text. Keep in mind that the text below the slides is what I was supposed to say, and is not necessarily the same as what I actually said.</p>
<p style="text-align: center;"><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img0.png"><img class="size-medium wp-image-441 aligncenter" title="Slide 1: Introduction" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img0-300x225.png" alt="Slide 1: Introduction" width="300" height="225" /></a></p>
<p style="text-align: left;">Good evening everybody, my name is Jonathan Fritz. Tonight I&#8217;d like to speak to you about <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Intellectual_property" target="_blank">intellectual property</a>. Before I begin though, I should stress the fact that I&#8217;m not a lawyer. I&#8217;m just a computer programmer who has spent way too much time reading way too much legalese. To save you from a similar fate, I&#8217;ll try to quickly brief you on everything that I&#8217;ve learned about copyright.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img1.png"><img class="aligncenter size-medium wp-image-442" title="Slide 2: What is Intellectual Property?" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img1-300x225.png" alt="Slide 2: What is Intellectual Property?" width="300" height="225" /></a></p>
<p>Intellectual property is a fancy name that lawyers have given to the ownership of ideas. Since ideas are non-physical, intangible, and infinite things, a new set of laws had to be developed so that they could be owned in the same sense as the physical objects that we&#8217;re all used to. This lead to the three primary types of intellectual property and their associated bodies of law.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img2.png"><img class="aligncenter size-medium wp-image-443" title="Slide 3: Trademarks" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img2-300x225.png" alt="Slide 3: Trademarks" width="300" height="225" /></a></p>
<p>The first type of intellectual property that I&#8217;d like to address is called a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Trademark" target="_blank">Trademark</a>. This is a distinctive sign or indicator that is used by a business to identify itself, its products, and services to customers. Common trademarks include slogans, catch-phrases, jingles, and logos.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img3.png"><img class="aligncenter size-medium wp-image-444" title="Slide 4: Patents" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img3-300x225.png" alt="Slide 4: Patents" width="300" height="225" /></a>The second type of intellectual property is called a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Patent" target="_blank">Patent</a>. This is a set of legal rights that can be issued to the inventor or discoverer of some method or process. Once a patent has been granted, its holder retains the sole right to benefit from any implementation of their invention or idea for a finite period of time.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img4.png"><img class="aligncenter size-medium wp-image-446" title="Slide 5: Introduction to Copyright" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img4-300x225.png" alt="Slide 5: Introduction to Copyright" width="300" height="225" /></a>The third type of intellectual property, and the on that I want to focus on this evening, is called <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Copyright" target="_blank">Copyright</a>. Once granted, it gives the author of a recorded work the exclusive right to distribute copies of that work for a finite period of time. Throughout most of the world, whenever you commit something to record, you are immediately granted copyright to that work.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img5.png"><img class="aligncenter size-medium wp-image-447" title="Slide 6: Differences" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img5-300x225.png" alt="Slide 6: Differences" width="300" height="225" /></a></p>
<p>Now the differences between these bodies of law are key. Both trademarks and patents protect ideas and concepts &#8211; abstract stuff that isn&#8217;t tangible. Copyright on the other hand, protects the expression of those ideas, like a book or a compact disc. When a work is copyrighted, the copyright holder can control who makes and distributes copies of the work, but not the ideas or themes that the work deals with.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img6.png"><img class="aligncenter size-medium wp-image-448" title="Slide 7: Balance" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img6-300x225.png" alt="Slide 7: Balance" width="300" height="225" /></a></p>
<p>The idea behind copyright is to provide an incentive for authors to make more stuff. We all enjoy the stuff that they make, and so we agree to give up some of our personal rights to ensure that they can afford to continue to make it. This requires that we strike a careful balance; we don&#8217;t want to give up too many rights, but we do want authors and artists to be able to make a living.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img7.png"><img class="aligncenter size-medium wp-image-449" title="Slide 8: Poorly Named" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img7-300x225.png" alt="Slide 8: Poorly Named" width="300" height="225" /></a>Copyright is a poorly named body of law. The truth is, the rights that it provides aren&#8217;t natural rights as the name implies. They are awarded by governments and courts. This means that we all have to agree on the rights that copyright provides to both the author and the user of her work. This fact is often lost in the rhetoric surrounding debates about the subject.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img8.png"><img class="aligncenter size-medium wp-image-450" title="Slide 9: Creative Commons" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img8-300x225.png" alt="Slide 9: Creative Commons" width="300" height="225" /></a></p>
<p>The idea of copyright only works because of the temporary monopoly that it provides. When that monopoly expires, the works that copyright protects go into the creative commons. This means that anybody can use them in any way, shape, or form. As copyright terms lengthen, works enter the commons with less regularity, and we chance losing access to our history and culture.</p>
<p><em>Note: This slide should read <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Public_domain" target="_blank">public domain</a> in place of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Creative_commons" target="_blank">creative commons</a>. The two are distinct and equally important concepts that shouldn&#8217;t be confused. Sorry. &#8211; Jonathan</em></p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img9.png"><img class="aligncenter size-medium wp-image-451" title="Slide 10: How Temporary?" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img9-300x225.png" alt="Slide 10: How Temporary?" width="300" height="225" /></a>In order for this temporary monopoly to work out, it has to be just that: Temporary. When copyright was original proposed, the term lasted for only fourteen years. In present-day Canada, copyright terms last for fifty years past the death of their original owner. In the USA and the UK, terms last for seventy years past the death of their original owner.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img10.png"><img class="aligncenter size-medium wp-image-452" title="Slide 11: Artistic Inspiration" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img10-300x225.png" alt="Slide 11: Artistic Inspiration" width="300" height="225" /></a></p>
<p>Artists are inspired by the works of others. &#8220;Good artists borrow, great artists steal.&#8221; That&#8217;s a Pablo Picasso quote that was stolen by Steve Jobs. Because artists don&#8217;t create in a bubble, they need access to past works in order to create inspiring and relevant art. If our works of art stop being distributed just as soon as they are no longer profitable to their owners, we as a society lose access to them.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img11.png"><img class="aligncenter size-medium wp-image-453" title="Slide 12: Intro to C-32" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img11-300x225.png" alt="Slide 12: Intro to C-32" width="300" height="225" /></a></p>
<p>Back in June, the Conservative Federal Government introduced Bill C-32. The goal of the bill is to modernize copyright law in Canada. This is a great idea, because our current laws date back to 1997.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img12.png"><img class="aligncenter size-medium wp-image-454" title="Slide 13: The Rise of Digital Media" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img12-300x225.png" alt="Slide 13: The Rise of Digital Media" width="300" height="225" /></a>If you&#8217;ve been on the internet since 1997, you&#8217;ll know that a lot has changed. The rise of digital cloud-based media like Hulu, Netflix, YouTube, Last.FM, and Pandora have really challenged our conception of traditional copyright. We don&#8217;t really have anything in our existing laws to handle these technologies.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img13.png"><img class="aligncenter size-medium wp-image-455" title="Slide 14: You are a Criminal" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img13-300x225.png" alt="Slide 14: You are a Criminal" width="300" height="225" /></a></p>
<p>In addition, common activities like ripping a CD or DVD to your computer, or taping a television show on your VCR or PVR to play back later are technically illegal under current Canadian law. The proposed bill includes lots of positive clauses that correct these problems with our current laws.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img14.png"><img class="aligncenter size-medium wp-image-456" title="Slide 15: Piracy and File-sharing" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img14-300x225.png" alt="Slide 15: Piracy and File-sharing" width="300" height="225" /></a>In recent years, file-sharing has kind of broken down traditional media economies. Today, it is possible to make an unlimited number of perfect copies of a movie or a song and send them to friends via the internet for next to nothing. This poses a serious challenge to traditional media companies who made their money by controlling the distribution of physical media.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img15.png"><img class="aligncenter size-medium wp-image-457" title="Slide 16: DRM as a Response" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img15-300x225.png" alt="Slide 16: DRM as a Response" width="300" height="225" /></a>To counter this trend, media companies started to encrypt their content and began selling licenses to unlock it. This practice is called <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Digital_rights_management" target="_blank">DRM, or Digital Rights Management</a>. It generally stops people from making copies of their media, and is currently used to protect video games, movies, television broadcasts, and other media. Bill C-32 aims to make it illegal to break this protection once it has been placed on your media.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img16.png"><img class="aligncenter size-medium wp-image-458" title="Slide 17: So Where's the Problem?" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img16-300x225.png" alt="Slide 17: So Where's the Problem?" width="300" height="225" /></a>The problem with this approach is that it has already been tried, and has failed miserably. In 1998, the USA passed the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Dmca" target="_blank">DMCA, or Digital Millenium Copyright Act</a>. It resulted in thousands of people being sued by record and movie companies, and yet piracy rates have only increased since its introduction.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img17.png"><img class="aligncenter size-medium wp-image-459" title="Slide 18: Piracy Timeline" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img17-300x225.png" alt="Slide 18: Piracy Timeline" width="300" height="225" /></a>In 1999, Napster was introduced, and file-sharing became a household phenomenon. In 2001, BitTorrent improved on the technology, and file sharers started to move entire movies around the internet in addition to smaller music files. By 2005, YouTube had made a business model out of sharing largely copyrighted music and video clips that were all ripped from protected sources.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img18.png"><img class="aligncenter size-medium wp-image-460" title="Slide 19: A Call to Action" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img18-300x225.png" alt="Slide 19: A Call to Action" width="300" height="225" /></a></p>
<p>So get in touch with your government and make your voice heard. Anti-circumvention laws like those proposed in C-32 don&#8217;t work, and just result in people getting sued by entertainment companies who are cannibalizing their own consumer base instead of modernizing their business practices. <a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img19.png"><img class="aligncenter size-medium wp-image-461" title="Slide 20: Contact Me" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/img19-300x225.png" alt="Slide 20: Contact Me" width="300" height="225" /></a>I&#8217;ve only managed to touch on the tip of the iceberg during this presentation, so please check out my various online presences or come and talk to me after the show if you&#8217;d like to discuss copyright and Bill C-32 farther.</p>
<h3>In Closing</h3>
<p>That&#8217;s about it. Be sure to check out all of the videos from this and past Ignite! Waterloo events <a href="http://www.youtube.com/user/ignitewaterloo" target="_blank">on their YouTube page</a>, and to take a look at the reviews that my colleagues <a href="http://www.tylerburton.ca/2010/11/ignite-waterloo/" target="_blank">Tyler Burton</a> and <a href="http://audiophonik.com/ignite-waterloo-4-was-awesome-pt-1/" target="_blank">Phil Downey</a> posted earlier this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/digital-copyright-and-bill-c-32-my-ignite-waterloo-presentation/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Passwords and Why Yours Suck: My KWDM Presentation</title>
		<link>http://www.jonathanfritz.ca/software/passwords-and-why-yours-suck-my-kwdm-presentation</link>
		<comments>http://www.jonathanfritz.ca/software/passwords-and-why-yours-suck-my-kwdm-presentation#comments</comments>
		<pubDate>Wed, 24 Nov 2010 02:06:00 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[lastpass]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=424</guid>
		<description><![CDATA[This post has been a long time coming. These slides are from a presentation that I did at the Kitchener-Waterloo Web Design Meetup back in October. The goal of the presentation was to teach people the importance of strong passwords, how to create good passwords, and most importantly, some techniques that can be used to [...]]]></description>
			<content:encoded><![CDATA[<p>This post has been a long time coming. These slides are from a presentation that I did at the <a href="http://www.meetup.com/webdesign-472/calendar/14467142/">Kitchener-Waterloo Web Design Meetup</a> back in October. The goal of the presentation was to teach people the importance of strong passwords, how to create good passwords, and most importantly, some techniques that can be used to manage all of the passwords that you create.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/1.png"><img class="aligncenter size-medium wp-image-425" title="Slide 1" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/1-300x200.png" alt="Passwords and Why Yours Suck" width="300" height="200" /></a></p>
<p>These days, a lot of people use cloud-based services to manage their personal information and communications. These services are great because they&#8217;re available everywhere and naturally protect your data from loss and disaster.</p>
<p>Unfortunately, each service requires a username and password to keep the data that it stores safe from others.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/2.png"><img class="aligncenter size-medium wp-image-426" title="Slide 2" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/2-300x200.png" alt="A selection of the cloud-based services that many people use" width="300" height="200" /></a></p>
<p>Naturally, this is a lot of passwords to remember. Some people try to counter this problem by using short, easy to remember passwords. These often consist of names of loved ones, favourite sports, or curse words with numbers appended to the end.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/3.png"><img class="aligncenter size-medium wp-image-427" title="Slide 3" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/3-300x200.png" alt="A selection of common easy-to-remember passwords that people use" width="300" height="200" /></a></p>
<p>The problem with this approach is that it creates an easy target for people who try to break into your account by brute force.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/4.png"><img class="aligncenter size-medium wp-image-428" title="Slide 4" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/4-300x201.png" alt="Brute forcing is an attack method that tries to guess every possible password" width="300" height="201" /></a></p>
<p>The whole idea behind a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Brute_force_attack" target="_blank">brute force attack</a> is to guess every possible password that can be created out of an alphabet of characters. As the length of your chosen password and the number of possible characters that it could be made up from increases, the number of possible passwords increases exponentially.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/5.png"><img class="aligncenter size-medium wp-image-429" title="Slide 5" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/5-300x201.png" alt="As the length of a password and the number of characters that it could be made up of increases, so does the number of possible passwords" width="300" height="201" /></a></p>
<p>Because most people make passwords out of common words, another approach that an attack can take is a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Dictionary_attack" target="_blank">dictionary attack</a>. This is kind of like an educated brute forcing. The attacker starts guessing passwords from a dictionary of known words, names, and other significant strings. This can significantly reduce the time that it takes the attacker to guess the average password.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/6.png"><img class="aligncenter size-medium wp-image-430" title="Slide 6" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/6-300x200.png" alt="Dictionary attacks begin by guessing passwords from common words and phrases" width="300" height="200" /></a></p>
<p>The obvious defense against both of these attacks is to choose really long and complicated passwords that are made up of all kinds of different characters and don&#8217;t contain dictionary words. These will make brute force attacks infeasible and defeat dictionary attacks altogether.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/7.png"><img class="aligncenter size-medium wp-image-431" title="Slide 7" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/7-300x199.png" alt="IT Departments have been telling us to make our passwords more complicated for years now" width="300" height="199" /></a></p>
<p>Unfortunately, these passwords are extremely hard to remember. Every IT department in the world has been telling us to follow these rules for years now, and yet nobody does.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/8.png"><img class="aligncenter size-medium wp-image-432" title="Slide 8" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/8-300x201.png" alt="Realistically, the average person cannot remember a good number of suitably complicated passwords" width="300" height="201" /></a></p>
<p>Whenever IT departments insist on implementing draconian password policies, users become frustrated when trying to remember them, and some inevitably seek other ways to keep them in the forefront of their minds.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/9.png"><img class="aligncenter size-medium wp-image-433" title="Slide 9" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/9-300x201.png" alt="To compensate for complicated passwords, people often leave reminders on slips of paper around their offices" width="300" height="201" /></a></p>
<p>So what is a responsible computer user to do? Long, complicated passwords are necessary to keep your data safe, but writing them down is dangerous. Luckily, plenty of other people have had this problem before, and a few of them have come up with some solutions.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/10.png"><img class="aligncenter size-medium wp-image-434" title="Slide 10" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/10-300x199.png" alt="LastPass is a cloud-based utility that saves all of your passwords securely on their servers" width="300" height="199" /></a></p>
<p><a href="http://lastpass.com/" target="_blank">LastPass</a> is a pretty cool cloud-based application that stores all of your passwords in a securely encrypted container on the LastPass servers. The company provides plugins for all of the popular web browsers that allow you to access your passwords securely from any computer.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/11.png"><img class="aligncenter size-medium wp-image-435" title="Slide 11" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/11-300x201.png" alt="The combination of KeyPass and Dropbox is another possibility that will allow you to move your passwords between multiple=" width="300" height="201" /></a></p>
<p>Another possibility is the combination of an application called <a href="http://keepass.com/" target="_blank">KeePass</a> and a cloud service called <a href="http://keepass.com/" target="_blank">Dropbox</a>. KeePass (and its open-sourced linux-based cousin, <a href="http://www.keepassx.org/" target="_blank">KeePassX</a>) store your passwords in an encrypted container format on your computer. If you store that container file in a Dropbox folder, your passwords are safely accessible from any computer in the world. Unfortunately, there&#8217;s always a catch.</p>
<p><a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/12.png"><img class="aligncenter size-medium wp-image-436" title="Slide 12" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/11/12-300x201.png" alt="Of course, a password is only as safe as its keeper" width="300" height="201" /></a></p>
<p>A basic rule of cryptography is that a secret is only as safe as its keeper. This is similar in concept to that old adage about the weakest link in a chain.</p>
<p>Although both LastPass and KeePass solve the problem of keeping a lot of passwords safe, it&#8217;s important to remember to keep the master password safe. Ideally, it should be committed to memory and not shared with anyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/passwords-and-why-yours-suck-my-kwdm-presentation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C-32 and You: My #kwdm Presentation</title>
		<link>http://www.jonathanfritz.ca/software/c-32-and-you-my-kwdm-presentation</link>
		<comments>http://www.jonathanfritz.ca/software/c-32-and-you-my-kwdm-presentation#comments</comments>
		<pubDate>Sat, 31 Jul 2010 14:54:35 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Local]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[anti-circumvention]]></category>
		<category><![CDATA[bill c-32]]></category>
		<category><![CDATA[bill c32]]></category>
		<category><![CDATA[c32]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[digital rights management]]></category>
		<category><![CDATA[DRM]]></category>
		<category><![CDATA[kitchener web design meetup]]></category>
		<category><![CDATA[kwdm]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[technical protection measures]]></category>
		<category><![CDATA[tpm]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=368</guid>
		<description><![CDATA[This past Thursday, I did a presentation about the dangers of Bill C-32 for the Kitchener Web Design Meetup (KWDM). It went really well, and the audience had a lot of questions and provided some great feedback. Unfortunately, since I didn&#8217;t think to record the audio from the presentation, you&#8217;ll have to make do with [...]]]></description>
			<content:encoded><![CDATA[<p><em>This past Thursday, I did a presentation about the dangers of Bill C-32 for the Kitchener Web Design Meetup (KWDM). It went really well, and the audience had a lot of questions and provided some great feedback. Unfortunately, since I didn&#8217;t think to record the audio from the presentation, you&#8217;ll have to make do with my slides and notes. Enjoy</em>.</p>
<ol>
<li><strong>Introduction<br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img0.jpg"><img class="aligncenter size-medium wp-image-372" title="img0" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img0-300x199.jpg" alt="" width="300" height="199" /></a></strong></p>
<ul>
<li>Good 		evening, my name is Jonathan Fritz. Tonight I&#8217;m going to attempt 		the nearly impossible: I&#8217;d like to discuss copyright law, while not 		putting you to sleep</li>
</ul>
</li>
<li><strong>Not a Lawyer</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img1.jpg"><img class="aligncenter size-medium wp-image-373" title="img1" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img1-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Copyright 		law is something that I&#8217;ve taken an interest in during my spare 		time. I&#8217;d like to make it clear from the outset that I am not a 		lawyer.</li>
</ul>
</li>
<li><strong>I am a Programmer</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img2.jpg"><img class="aligncenter size-medium wp-image-374" title="img2" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img2-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>During the 		day, I&#8217;m a programmer for a small company called Skybound Software, 		and the co-owner of another small company called inScope Software 		and Solutions</li>
<li>The only 	reason that I mention these is because I want to make it clear that 	everything that I talk about this evening is 100% my opinion, and 	does not necessarily reflect the opinions of my employers or 	business partners</li>
</ul>
</li>
<li><strong>The Crowd</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img3.jpg"><img class="aligncenter size-medium wp-image-375" title="img3" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img3-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Now that the 		boring legal crap is out of the way, let&#8217;s jump into some more 		boring legal crap</li>
<li>Ok, so I&#8217;d 		like to see what kind of people we have in the audience tonight. 		Show of hands if you&#8217;re a:
<ul>
<li>Web 			developer</li>
<li>Web or 			print designer</li>
<li>Artist, 			photographer, or musician</li>
<li>Programmer 			or engineer</li>
</ul>
</li>
<li>You may not 		realize it, but copyright law affects each and every one of you 		every single day</li>
</ul>
</li>
<li><strong>Copyright</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img4.jpg"><img class="aligncenter size-medium wp-image-376" title="img4" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img4-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Any time you 		commit something to record, be it a computer program, a photograph, 		a piece of music or art, it is covered in Canada by copyright.</li>
</ul>
</li>
<li><strong>What is Copyright?</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img5.jpg"><img class="aligncenter size-medium wp-image-377" title="img5" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img5-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Copyright is 		a poorly named body of law that gives people who make stuff a 		monopoly on the distribution of that stuff for a finite period of 		time</li>
<li>This is an 		effort to ensure that they make a decent living off of their stuff, 		and thus have an incentive to make even more stuff.</li>
<li>As a 		society, we enjoy the use of the stuff that they create, and so we 		give up some of our personal rights and freedoms to ensure that the 		people that create stuff can afford to continue to do so.</li>
</ul>
</li>
<li><strong>Poorly Named</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img6.jpg"><img class="aligncenter size-medium wp-image-378" title="img6" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img6-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>I say that 		copyright is poorly named because it isn&#8217;t actually a right</li>
<li>It&#8217;s a 		privilege awarded by law, and thus by society as a whole.</li>
<li>In order for 		this to work, we have to all agree that the terms set out in 		copyright law are an appropriate balance between personal freedoms, 		and creators&#8217; ability to make a decent living.</li>
</ul>
</li>
<li><strong>Lord Macaulay</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img7.jpg"><img class="aligncenter size-medium wp-image-379" title="img7" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img7-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>During an 		1841 debate in the British house of commons, one Lord Macaulay did 		a great job outlining this dilemma:</li>
</ul>
</li>
<li><strong>Evil Quote</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img8.jpg"><img class="aligncenter size-medium wp-image-380" title="img8" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img8-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>“[Copyright] 		is a tax on readers for the purpose of giving a bounty to writers. 		The tax is an exceedingly bad one&#8230; It is good that authors should 		be remunerated; and the least exceptionable way of remunerating 		them is by a monopoly. Yet monopoly is an evil. For the sake of the 		good we must submit to the evil; but the evil ought not to last a 		day longer than is necessary for the purpose of securing the good”</li>
</ul>
</li>
<li><strong>Inspiration</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img9.jpg"><img class="aligncenter size-medium wp-image-381" title="img9" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img9-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>So here&#8217;s 		the thing: In order for the temporary monopoly to work out as 		planned, it has to end within a reasonable period of time.</li>
<li>Society has 		to get their rights back at some point, or else they aren&#8217;t getting 		a fair deal.</li>
<li>Artists&#8217; 		work is informed and influenced by the work of their 		contemporaries.</li>
<li>Without the 		ability to access, borrow from, or outright steal inspiration from 		other pieces of art, most artists wouldn&#8217;t be able to create with 		any kind of regularity.</li>
<li>Pablo 		Picasso by way of Steve Jobs: “Good artists borrow, great artists 		steal”</li>
<li>Imagine 		taking a photo haven never seen another persons&#8217; work with lighting 		and composition.</li>
<li>Writing a 		song without ever nicking a particularly nice chord or melody?</li>
<li>Artists 		don&#8217;t create in a bubble – they filter and combine all kinds of 		different influences into works of their own.</li>
</ul>
</li>
<li><strong>Ghosts<br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img10.jpg"><img class="aligncenter size-medium wp-image-382" title="img10" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img10-300x199.jpg" alt="" width="300" height="199" /></a></strong></p>
<ul>
<li>Way back in 		ancient history, the monopoly awarded by copyright only lasted 14 		years.</li>
<li>After that 		period, it was assumed that the rights&#8217; holder had made his money 		(and it was always his money), and the work moved into the creative 		commons, meaning that anybody could use it however they saw fit.</li>
<li>Today in 		Canada, copyright lasts 50 years past the death of the rights&#8217; 		holder.</li>
<li>Some 		countries have pushed that up to 70 years past death</li>
</ul>
</li>
<li><strong>Afoul of the Law</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img11.jpg"><img class="aligncenter size-medium wp-image-383" title="img11" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img11-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>This means 		that far less media ends up in the creative commons while it is 		still relevant to society, which makes it increasingly hard for 		artists to create without running afoul of the law</li>
</ul>
</li>
<li><strong>Preservation of Culture, intro 	to C-32</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img12.jpg"><img class="aligncenter size-medium wp-image-384" title="img12" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img12-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>More 		importantly, when reinforced by something called digital rights 		management, copyright laws make it very possible that our culture 		will not be preserved in the same way that past cultures were – 		but more on that later</li>
<li>Back in early June, the 		conservative government released Bill C-32, “The Copyright 		Modernization Act.”</li>
<li>It has been sponsored by the 		Honourable James Moore, Minister of Heritage and Official 		Languages, and the Honourable Tony Clement, Minister of Industry.</li>
<li>Just like 		the title says, this bill aims to modernize Canadian copyright law. 		This is a really good idea, because our current laws were haven&#8217;t 		been revised since 1997</li>
</ul>
</li>
<li><strong>1997 Websites:</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img13.jpg"><img class="aligncenter size-medium wp-image-385" title="img13" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img13-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>In 1997, the top five websites on 		the internet were:
<ul>
<li>Geocities</li>
<li>Yahoo (including services called 			yahooligans, yahoo sports, and my yahoo)</li>
<li>Starwave corporation “where 			more people click”</li>
<li>Excite, Magellan, and City.net</li>
<li>PathFinder, 			and the family of Time/Warner and CNN sites</li>
</ul>
</li>
</ul>
</li>
<li><strong>2010 Websites:</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img14.jpg"><img class="aligncenter size-medium wp-image-386" title="img14" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img14-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>In March of 2010, the to five 		websites were: (15)
<ul>
<li>Google</li>
<li>Facebook</li>
<li>Yahoo</li>
<li>YouTube</li>
<li>MSN</li>
</ul>
</li>
</ul>
</li>
<li><strong>You are a criminal</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img15.jpg"><img class="aligncenter size-medium wp-image-387" title="img15" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img15-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>As you&#8217;ve 		probably noticed, a few things have changed.</li>
<li>Old folk may 		also remember that the infamous Napster, the first file-sharing 		service, wasn&#8217;t invented until 1999.</li>
<li>And 		BitTorrent, the American entertainment industry&#8217;s nefarious 		arch-enemy wasn&#8217;t invented until 2001.</li>
<li>Similarly, 		YouTube, harbinger of all things evil, didn&#8217;t hit the tubes until 		2005.</li>
<li>Simply put, 		our existing laws don&#8217;t cover any of these massive shifts in 		technology, and many of the things that Canadians do on a daily 		basis are actually considered illegal under current laws.</li>
</ul>
</li>
<li><strong>The Good</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img16.jpg"><img class="aligncenter size-medium wp-image-388" title="img16" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img16-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Some 		important sections of proposed law that aims to fix these problems:
<ul>
<li><em>Network Services</em> section:
<ul>
<li>a safe harbour clause for 				Internet service providers and other network operators.</li>
<li>Provides legal protection for 				hosting service operators whose customers may have uploaded 				copyrighted works to their servers</li>
</ul>
</li>
<li><em>Copyright Infringement</em> section:
<ul>
<li>sets maximum monetary awards 				for copyright owners who successfully charge an individual with 				infringement of works for personal or commercial use.</li>
<li>Given the astronomical awards 				granted by American courts in both the <em>Capitol vs. Thomas</em> (2007) and <em>RIAA vs. Tenenbaum</em> (2009) cases, this is an 				extremely important clause</li>
</ul>
</li>
<li><em>Non-commercial User-generated 			Content</em> section:
<ul>
<li>Makes it 				totally legal for you to sample copyrighted works for the 				purposes of creating a non-commercial mashup.</li>
<li>Now you can 				legally use whatever music you like as the soundtrack to your 				cute kitten and dancing baby videos.</li>
</ul>
</li>
<li><em>Reproduction 			for Private Purposes</em> section:
<ul>
<li>Allows for time and format shifting practices, thus making TiVo 				and iPods legal technologies in Canada, which sounds like 				something out of that old Rick Mercer bit, Talking to Americans.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><strong>The Bad<br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img17.jpg"><img class="aligncenter size-medium wp-image-389" title="img17" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img17-300x199.jpg" alt="" width="300" height="199" /></a></strong></p>
<ul>
<li><em>Technological 		Protection Measures and Rights Management Information</em> section: counteracts every positive aspect of the proposed bill</li>
<li>Bans any technology or device capable of circumventing any 		technological protection measure (TPM) or called digital rights 		management (DRM) schemes that have been placed on the digital 		content by its distributor</li>
<li>The 		bill is written in such a way that this clause takes precedence 		over every one of those really cool sounding amendments that I just 		mentioned.</li>
<li>Basically, 		should C-32 pass, you&#8217;ll get a whole bunch of rights. But if the 		distributor of some media decides to put DRM on their products, 		they don&#8217;t matter, and you become a criminal if you attempt to 		exercise any of them.</li>
<li>At 		this very moment, DVDs, BluRay discs, video games, Cable 		television, Netflix digital downloads, eBooks, computer software of 		all sorts, online television services, and an uncountable number of 		other current and future consumer media products are all protected 		by some form of DRM.</li>
<li>Under 		the proposed law, none of this digital content can be backed up, 		moved to a different device, transcoded to a different format, or 		otherwise tampered with, because to do so would require that its 		owner break the DRM that has been placed on it, thus making that 		person a criminal in the eyes of Canadian courts.</li>
<li>So 		why do manufacturers use DRM anyway? Well, they seem to have gotten 		this idea that it somehow prevents people from pirating their 		media. Unfortunately, this belief could not be further from the 		truth.</li>
</ul>
</li>
<li><strong>Passive 	Systems</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img18.jpg"><img class="aligncenter size-medium wp-image-390" title="img18" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img18-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>To 		demonstrate this problem, I&#8217;ll give you a bit of background on how 		DRM technologies generally work, demonstrate why they often fail, 		etc</li>
<li>There 		are basically three kinds of DRM</li>
<li>Passive 		Systems: The distributor of a file encrypts that file with a secret key 		that&#8217;s so big that it is theoretically impossible to guess.</li>
<li>She 		then makes a deal with the manufacturer of the device that is used 		to play back that file, and embeds the secret key into that device.</li>
<li>When 		a user attempts to play back the media file, the device is able to 		unlock it, and everything is cool. This is how DVDs work</li>
<li><strong>Why 		they Suck: </strong>These 		systems tend to be very insecure, because they&#8217;re susceptible to 		what cryptographers call a class break.</li>
<li>Because 		all copies of the media file are encrypted with one of a finite 		number of keys, if somebody figures out a way to break through one 		copy of the protected media, he can usually manage to break through 		any piece of media that is protected with the same scheme.</li>
<li>Further, 		all of those keys are stored inside of some piece of software or 		some device in your living room that you have access to. It is only 		a matter of time before one is broken into, and the scheme is 		broken.</li>
</ul>
</li>
<li><strong>Active Systems</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img19.jpg"><img class="aligncenter size-medium wp-image-391" title="img19" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img19-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Just 		like before, the distributor of a file encrypts it with a massive 		secret key.</li>
<li>This 		time, however, she buys some servers, and makes a different deal 		with the people who distribute playback devices.</li>
<li>Now, 		when a user tries to play a file, the player connects to the server 		and asks for permission to play the file.</li>
<li>The 		server checks if the user is legitimate, and if so, gives the 		encryption key to the device. The media is then unlocked, and you 		can hear your tunes.</li>
<li>This 		is how video game DRM from services like Steam and Electronic Arts 		work.</li>
<li>Because 		these types of protection call home for permission to start 		playback, they require that the user has an always-active internet 		connection.</li>
<li>For 		those with dial up or using mobile devices, this is not always 		possible, so the scheme has to allow a certain number of plays 		without speaking to the home server.</li>
<li>By 		definition, this means that they can be attacked, because they can 		be fooled into thinking that they are always in this limbo state</li>
<li><strong>Hybrid 		Systems:</strong> As the name implies, these present some combination of the previous 		two. In general, the media is encrypted, but in order to unlock it, 		the playback device executes some program that is embedded in the 		media that performs the authorization step.</li>
<li>This 		program can usually be easily updated, so that if the scheme is 		broken, it can be fixed in the field. This is how BluRay discs are 		protected.</li>
<li>These 		are far more complex than their simple cousins, but also quite a 		bit more resilient to attack.</li>
<li>Unfortunately, 		in the past, programmers have included malicious code in these 		types of systems that do some nasty low-level stuff to the users&#8217; 		computer, potentially leaving it open for attack.</li>
<li>This 		is what happened in the Sony Rootkit case of 2005, in which Sony 		BMG released 52 CD titles that altered the way that Microsoft 		Windows functions in an attempt to block users from copying their 		contents</li>
</ul>
</li>
<li><strong>Consumer Suck</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img20.jpg"><img class="aligncenter size-medium wp-image-392" title="img20" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img20-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>From 		a consumer perspective, all DRM systems suck.</li>
<li>By 		design, they intentionally limit what users can do with their 		digital media (see Defective by Design). This means that using 		digital media that is protected by a DRM scheme is more like 		licensing it than like purchasing it</li>
<li>Additionally, 		all types of DRM can result in property loss.</li>
<li>In 		the case of passive systems, this can happen if the devices used to 		play back the media are no longer produced.</li>
<li>In 		active systems, this can happen if the servers that are used for 		authentication are shut down. This often happens when a digital 		store ceases to be profitable, or if the company that operates it 		goes out of business</li>
</ul>
</li>
<li><strong>Getting 	in the Way</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img21.jpg"><img class="aligncenter size-medium wp-image-393" title="img21" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img21-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>DRM 		systems that are designed to prevent people from pirating media 		also tend to get in the way of legitimate customers who are 		attempting to use their media in perfectly legal and acceptable 		ways</li>
</ul>
</li>
<li><strong>Smart 	Cows</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img22.jpg"><img class="aligncenter size-medium wp-image-394" title="img22" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img22-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>Perhaps 		the most compelling evidence against the legislation of DRM systems 		is that they simply do not prevent people from pirating media.</li>
<li>In 		general, if you can open a legitimately purchased file, its 		contents can be copied out to a non-protected format, which can 		then be distributed.</li>
<li>If 		you can&#8217;t said file, but happen to be a hacker or encryption 		expert, you can usually figure out how to do so in short order</li>
<li>As 		soon as the DRM scheme is broken by one person, they can distribute 		it all other interested parties by way of the internet.</li>
<li>This 		is called the Smart Cow Problem (it takes only one cow to learn how 		to open a latch, and then a method can be developed that allows 		others to follow), and is the biggest issue facing companies 		relying on DRM to protect their products.</li>
<li>Combine 		this with the fact that every DRM system that I have ever heard of 		has been broken, often within weeks of release, and that the cost 		of creating and maintaining a DRM infrastructure can easily run 		into the billions, and you can see that it isn&#8217;t really a great 		technology to rely on to protect your digital media.</li>
</ul>
</li>
<li><strong>Ineffective 	Laws</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img23.jpg"><img class="aligncenter size-medium wp-image-395" title="img23" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img23-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>If 		anti-circumvention laws were truly effective, piracy should never 		have become the problem that media companies claim that it is today</li>
<li>In 		the United States, the Digital Millenium Copyright Act (DMCA) put 		anti-circumvention laws like the ones proposed in Bill C-32 in 		place a full year before the invention of Napster and three years 		before the introduction of the BitTorrent file-sharing protocol</li>
<li>Although 		laws don&#8217;t translate directly into persecutions, they give 		authorities the tools to stop piracy.</li>
<li>In 		the United States, the MPAA and RIAA have used these tools to bring 		lawsuits against more than 20,000 of their own customers – and 		yet, piracy is still a major problem for their member 		organizations.</li>
</ul>
</li>
<li><strong>Locks<br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img24.jpg"><img class="aligncenter size-medium wp-image-396" title="img24" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img24-300x199.jpg" alt="" width="300" height="199" /></a></strong></p>
<ul>
<li>DRM 		schemes are no more than the digital counterparts of real-world 		mechanical locks. There has never been, and will never be, a lock 		that cannot be broken by any determined party with time, knowledge, 		and resources on their side.</li>
<li>Because 		of these reasons, it is my opinion that the anti-circumvention 		clause in Bill C-32 makes its current form unacceptable to the 		Canadian people.</li>
</ul>
</li>
<li><strong>What 	We Can Do</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img25.jpg"><img class="aligncenter size-medium wp-image-397" title="img25" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img25-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>I&#8217;ve 		been trying to get the word out about this issue in my own way. 		Obviously, I&#8217;m here speaking to you tonight. I&#8217;ve also tweeted 		about the issue, written blog posts on my website and others, 		written letters to various members of parliament, and spoken 		personally with Peter Braid, my member of parliament up in Waterloo</li>
</ul>
</li>
<li><strong>Contact 	Me</strong><br />
<a href="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img26.jpg"><img class="aligncenter size-medium wp-image-398" title="img26" src="http://www.jonathanfritz.ca/wp-content/uploads/2010/07/img26-300x199.jpg" alt="" width="300" height="199" /></a></p>
<ul>
<li>If 		you&#8217;re interested in getting involved, in telling me that I&#8217;m 		wrong, or just in talking more about this issue, please don&#8217;t 		hesitate to contact me</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/c-32-and-you-my-kwdm-presentation/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What I Learned at #EpCon</title>
		<link>http://www.jonathanfritz.ca/software/what-i-learned-at-epcon</link>
		<comments>http://www.jonathanfritz.ca/software/what-i-learned-at-epcon#comments</comments>
		<pubDate>Wed, 20 Jan 2010 03:13:10 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[@hiepic]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[entrepreneur]]></category>
		<category><![CDATA[epcon]]></category>
		<category><![CDATA[epic]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[product design]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[techvibes]]></category>
		<category><![CDATA[thoora]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=206</guid>
		<description><![CDATA[I spent the past weekend at EpCon, a tech conference for college and university students throughout South-Western Ontario that focused on technology, the Internet, entrepreneurship, and networking. Held at the Waterloo Inn, this inaugural year featured keynote speeches from Mike Lee of Rogers Ventures and Steven Woods of Google Waterloo, among others. I saw a [...]]]></description>
			<content:encoded><![CDATA[<p>I spent the past weekend at <a href="http://www.techvibes.com/blog/waterloo-hosts-epic-epcon-2010-event" target="_blank">EpCon</a>, a tech conference for college and university students throughout South-Western Ontario that focused on technology, the Internet, entrepreneurship, and networking. Held at the Waterloo Inn, this inaugural year featured keynote speeches from Mike Lee of Rogers Ventures and Steven Woods of Google Waterloo, among others. I saw a lot of cool things, heard a lot of great ideas, and came away with a better understanding of what the tech industry in Ontario has to offer the rest of the world.</p>
<p>Below are a few of the lessons that I picked up during my stay:</p>
<p><strong>Cloud Computing</strong><strong> is about&#8230;<br />
</strong></p>
<ul>
<li><em>Hype</em>: The core content of 90% of all marketing literature about the cloud is fluff. As a concept, cloud computing is poorly defined; what we have managed to decide on is that the cloud is about only paying for what you use, purchasing services over products, and being able to quickly and intelligently provision new &#8216;hardware&#8217; via virtualization</li>
<li><em>Low Prices:</em> This is possible because of the ever dropping cost of commodity hardware. Servers are so powerful that they spend most of their time idling. We might as well use those extra cycles to virtualize more machines that can be used by more people</li>
<li><em>Data:</em> Business models based on the cloud have an incentive to make it easy for you to put your data into their service, but hard/unattractive for you to pick up and leave</li>
<li><em>Parallelism:</em> for Great for anything that can be split into chunks and distributed, but not so good for serial  tasks</li>
<li><em>Security Risks:</em> There is a lot of talk, but the reality is a question of whether you want your private records stored on somebody else&#8217;s servers. Remember &#8211; they have no incentive to keep your privacy, just incentive to make sure that news of a breach doesn&#8217;t leak</li>
<li><em>Perception:</em> The Blackberry is one of the most secure devices available, but Obama&#8217;s was considered a security risk. Perception is key.</li>
</ul>
<p><strong>The Internet has Changed the World:<br />
</strong></p>
<ul>
<li>The internet is only 20 years old, but consumes a full 5% of the world&#8217;s energy. That&#8217;s intense.</li>
<li>IP technology has had a fundamental impact on how things work, because it&#8217;s a global standard. The cost to do business internationally is the same as the cost to do it locally.</li>
<li>Between 1995 and 2008, companies that had virtual monopolies on providing information became obsolete. Everybody went online and traditional news media saw massive declines</li>
<li>Consumers now control consumption, and piracy can be seen as a push for increased convenience and choice. The irony of the copyright battles is that consumption of media is increasing! The public simply lacks a channel for content that matches their expectations</li>
<li>The Internet has come through three distinct phases:
<ul>
<li>Web 1.0 was the push model, wherein content producers pushed content out to consumers</li>
<li>Web 2.0 was the share model, when the lines between consumers and producers were blurred, and people chose what they wanted to see, when they wanted to see it</li>
<li>Web 3.0 will be the live model, when people have an expectation to have anything that they want at any time, no matter where they are or what device they are using</li>
</ul>
</li>
<li>These days, readers, not editors, determine the content. This has been the revolution of the past four years. The democratization of content.</li>
<li>The newspaper provides good content, but only one view of the news. It lacks reader interaction, is expensive to produce and distribute, and is at least one day behind current events</li>
<li>Online news sites solve the cost, distribution, and latency issues inherent in the traditional model, but still provide a single view of the news and a one-sided conversation about it</li>
<li>Blogs and social media changed everything. They are becoming more respected and have been demonstrated to have real impact. At the same time, twitter has been shown to to influence product buzz and box office performances</li>
<li>Social media allows people to participate in the discussion, express their opinions, and to provide context to the news</li>
<li>Think of just how amazing the Wikipedia project really is. Instead of a small group of experts writing an encyclopaedia, a huge number of people from a diverse array of fields have come together and pooled their combined knowledge into a free resource that rivals the traditional encyclopaedia for accuracy and usefulness.</li>
</ul>
<p><strong>Creating a Great Product:</strong></p>
<ul>
<li>User-Centric design is essential. You need to know as much as you can about your users, and always strive to provide interaction, insight, and innovation</li>
<li>Your development process should be powered by listening: &#8220;You have two ears and one mouth. That ratio is not a coincidence&#8221;</li>
<li>Demo Driven Development: Use daily demos to create a feedback loop that allows you to constantly refine your ideas</li>
<li>Customer&#8217;s expectations are moving from dynamic to adaptive experiences: Make it modular, open, and multi-platform so that users can have a personalized experience that they can participate in</li>
<li>Porn has created at $50M/year industry by moving from the monthly subscription model to a micro-transaction model that is very lucrative. The glut of free apps available for mobile platforms has created a downward price crush that makes it hard to sell an app for a one-time fee. People don&#8217;t feel as bad about lots of small transactions, so it&#8217;s easier to hook people on something that starts out free.</li>
<li>Create value by solving one problem very well. More features can always be implemented later</li>
<li>The idea is not your baby! You will get plenty of criticism, and need to be able to adapt. A flawless execution is better than a killer idea. Apple did not invent the mp3 player, but revolutionized it, and changed the industry forever.</li>
<li>Questions to ask yourself about a new idea:
<ul>
<li>What is it?</li>
<li>Why does it matter?</li>
<li>Why doesn&#8217;t it already exist?</li>
<li>Why can we do it?</li>
<li>How can we do it?</li>
<li>Can we make money off of it?</li>
<li>How do we get out?</li>
</ul>
</li>
<li>Having the insight to figure out what&#8217;s coming next on the Internet is a huge advantage that can put you well ahead of your competitors</li>
<li>So what is the next big thing? It isn&#8217;t about apps or hardware or new technologies or even content; it&#8217;s about the experience. Everything else is a tool that is used to deliver that experience</li>
</ul>
<p><strong>On Entrepreneurial Spirit:</strong></p>
<ul>
<li>It has never been easier to implement an idea, and then to quickly find a market for it. The majority of the risk is market related &#8211; development is cheap. The Internet solves the traditional problems of marketing and distribution</li>
<li>Always strive to be a part of lose/lose partnerships. When you&#8217;re having a bad day, your partner should be too. This creates incentive for them to support and work with you.</li>
<li>The best base for a start up is a solution to a problem that you&#8217;ve encountered in your daily activities. If you&#8217;ve encountered that problem, chances are that somebody else has too, and will pay for a solution.</li>
<li>Viral marketing can make you lots of money really fast (if you can pull it off without looking fake), but establishing a loyal fan base will make you more money in the long run</li>
<li>It is important to get some traction with your product before looking for investment capital. Build a user base first &#8211; the money will follow the buzz. Early money is the enemy of an early exit from a successful company.</li>
<li>You have to live and breathe your business like a religion</li>
<li>You need the best possible people on your team at all times throughout your career</li>
<li>The reality of being an entrepreneur involves an immense amount of work and responsibility. You are accountable to your shareholders, customers, partners, employees, and yourself.</li>
<li>Experience is key. You don&#8217;t know everything, but can learn some of it as you go. Make mistakes on other peoples money, and bring a true professional in when you&#8217;re out of your league. They will recoup your investment 100 times over. Seeing the world and learning from others before jumping in with both feet can be an invaluable experience.</li>
<li>Remember who you&#8217;re doing it for. You can&#8217;t work all the time, because you risk losing your family, even if you were doing it for them in the first place. Be sure to create a solid support structure &#8211; some days will suck, and you will need people around you to prop you up.</li>
<li>Being an entrepreneur is a never ending passion. At the end of the day, it isn&#8217;t about the money or the freedom, it&#8217;s about the love</li>
<li>Quitters never win, winners never quit, but those who never win and never quit are idiots.</li>
</ul>
<p><strong>Thoughts about Management:</strong></p>
<ul>
<li>Learn to delegate so that the world doesn&#8217;t fall apart if you&#8217;re not there. You need partners and staff that can step in to fill gaps where necessary</li>
<li>Give people accountability and incentive, and let them make their own mistakes. They will work harder for you if they believe in your goal and see personal gain in doing so. At the same time, letting them know exactly how the company is doing gives them feedback to help them cope with hard times, and links performance with hard work</li>
<li>Never forget the value of human interaction</li>
<li>The promise of the flying car is fact that somebody out there was dreaming. Inspiration comes from those dreams</li>
<li>To become a better company, you must know your competition</li>
</ul>
<p><strong>7 Things that Google does well:</strong></p>
<ul>
<li>Builds teams like startups do &#8211; product teams are always made up of less than 10 people</li>
<li>Enables internal founders to create</li>
<li>20% of time spent on R&amp;D spans new ideas. Evolving and prototyping are keys to finding the next big thing</li>
<li>Encourages teams to attack hard problems and tackle big ideas</li>
<li>Compensation is delivery oriented. Bonuses, grants, and awards encourage risks and pay off with good ideas</li>
<li>Flat management structure empowers everyone</li>
<li>&#8220;Innovation is not an option&#8221;</li>
</ul>
<p><strong>Videos and More:</strong></p>
<p>The conference <a href="http://www.facebook.com/video/video.php?v=677456021767" target="_blank">got coverage on our local CTV news</a>, in <a href="http://news.therecord.com/article/657824" target="_blank">the KW Record</a>, and some great interviews with the keynote speakers are available over at TechVibes:</p>
<ul>
<li>Sadi Khan, Microsoft (<a href="http://www.techvibes.com/blog/sadi-khan-program-manager-at-microsoft-on-obsession" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=C7aEZcFhLJQ&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Shobeir Shobeiri, Plug &amp; Play Technology Centre (<a href="http://www.techvibes.com/blog/shobeir-shobeiri-founding-member-of-plug-play-tehnology-cent" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=tk2tDj4hfbc&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Neil Bunn, IBM (<a href="http://www.techvibes.com/blog/neil-bunn-technology-architect-deep-computing-discusses-cloud" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=lwOAqEYCyp0&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Mike Lee, Rogers Ventures (<a href="http://www.techvibes.com/blog/mike-lee-head-of-new-ventures-rogers-ventures" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=TqPzPXD_Eec&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Chul Lee, Thoora (<a href="http://www.techvibes.com/blog/chul-lee-founder-cto-of-thoora-discusses-media" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=ZZAeoBUzrD8&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Maggie Fox, Social Media Group (<a href="http://www.techvibes.com/blog/maggie-fox-founder-ceo-of-social-media-group-defines-stigmergy" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=ZCSRVcRO6Us&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
<li>Lucas Lu, Ei3 (<a href="http://www.techvibes.com/blog/exclusive-lucas-lu-introduces-ei3" target="_blank">TechVibes</a>) (<a href="http://www.youtube.com/watch?v=YtCJ605ftEY&amp;feature=player_embedded" target="_blank">YouTube</a>)</li>
</ul>
<p>Finally, the <a href="http://epcon.epictech.org/Slides" target="_blank">slide decks from many of the keynotes and presentations are available online</a> at the EpCon website, and you can catch all the latest on EpCon <a href="http://epcon.epictech.org" target="_blank">at their website</a> and <a href="http://twitter.com/hiepic/" target="_blank">on twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/what-i-learned-at-epcon/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Filling a Zune from Linux</title>
		<link>http://www.jonathanfritz.ca/software/filling-a-zune-from-linux</link>
		<comments>http://www.jonathanfritz.ca/software/filling-a-zune-from-linux#comments</comments>
		<pubDate>Sat, 02 Jan 2010 04:35:03 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[banshee]]></category>
		<category><![CDATA[fill]]></category>
		<category><![CDATA[flac]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sun virtual box]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[windows xp]]></category>
		<category><![CDATA[zune]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=187</guid>
		<description><![CDATA[Thinking that I was up for a challenge, I decided to spend the day figuring out how to put the music in my Banshee library onto a Microsoft Zune. Since my library contains a good number of FLAC files that I&#8217;ve ripped in from my CD collection, my solution called for a caching system that [...]]]></description>
			<content:encoded><![CDATA[<p>Thinking that I was up for a challenge, I decided to spend the day figuring out how to put the music in my Banshee library onto a Microsoft Zune. Since my library contains a good number of FLAC files that I&#8217;ve ripped in from my CD collection, my solution called for a caching system that converts the FLAC files to mp3s and stores them so that the playlist can be changed without having to re-convert the FLAC files into something that the Zune can play on every sync. My weapons of choice for the project were a Windows XP instance running inside of Sun Virtual Box, and 126 lines of perl script.</p>
<p>The Steps:</p>
<ol>
<li>Create a WinXP VM that has the Zune software installed and can see two shared folders on my Linux machine:
<ol>
<li>My normal Music folder, which contain my entire collection</li>
<li>The cache folders, which contain all of the FLAC files in my collection, but converted to mp3 so that the Zune can play them</li>
</ol>
</li>
<li>Open the Banshee database, located at ~/.config/banshee-1/banshee.db</li>
<li>Select all of the FLAC files in the playlist that we&#8217;d like to put on the Zune</li>
<li>For each, check if it has been converted and cached
<ol>
<li>If so, simply add the path to the cached copy of the track to an m3u file in the cache folder</li>
<li>If not, convert the track, and then add the path to the cached copy of the track to an m3u file in the cache folder</li>
</ol>
</li>
<li>Select all of the mp3 files in the playlist that we&#8217;d like to put on the Zune</li>
<li>Put those in a separate m3u file that is located in the Music folder.</li>
<li>Boot up the Zune software on the VM. It should autoscan it&#8217;s monitored folders, find the m3u playlists, and put them in its library</li>
<li>Sync the playlists with the Zune by dragging and dropping them to the device icon in the lower left corner of the screen</li>
</ol>
<p>As previously mentioned, steps 2 through 6 were accomplished by way of a perl script that I can run as often as I like:</p>
<blockquote><p>#/usr/local/bin/perl</p>
<p>#Requirements: libdbd-sqlite3-perl, flac, lame</p>
<p>#We need database support<br />
use DBI;</p>
<p>#Database path &#8211; change this to reflect your user environment<br />
my $dbpath = &#8220;dbi:SQLite:dbname=/home/jon/.config/banshee-1/banshee.db&#8221;;</p>
<p>#Playlist name &#8211; change this to reflect the playlist that you want to export<br />
my $plistname = &#8220;Favorites&#8221;;</p>
<p>#Cache Path &#8211; the path to the directory where you&#8217;ve been caching converted FLAC files<br />
my $cachepath = &#8220;/home/jon/Storage/mp3Cache/&#8221;;</p>
<p>#Music Path &#8211; the path to the folder where your music collection is actually stored<br />
my $musicpath = &#8220;/home/jon/Music/&#8221;;</p>
<p>#Connect to the database &#8211; no username/password<br />
my $dbh = DBI-&gt;connect($dbpath,&#8221;",&#8221;",{RaiseError =&gt; 1, AutoCommit =&gt; 0});</p>
<p>if(!$dbh) {<br />
print &#8220;Could not connect to database $dbpath&#8221;,&#8221;\n&#8221;,&#8221;Exiting&#8221;;<br />
exit;<br />
}</p>
<p>#Pull the list of FLAC files for conversion and caching<br />
my $flac = $dbh-&gt;selectall_arrayref(&#8220;SELECT sme.TrackID, ct.Title, car.Name AS &#8216;Artist&#8217;, ca.Title AS &#8216;Album&#8217;, ct.Uri, ct.Duration AS &#8216;Length&#8217; FROM corealbums AS ca, coreartists AS car, coresmartplaylistentries AS sme INNER JOIN coretracks AS ct ON sme.TrackID = ct.TrackID WHERE sme.SmartPlaylistID = (SELECT `SmartPlaylistID` FROM `coresmartplaylists` WHERE `Name` = &#8216;$plistname&#8217;) AND ca.AlbumID = ct.AlbumID AND car.ArtistID = ct.ArtistID AND ct.MimeType LIKE &#8216;%flac&#8217;&#8221;);</p>
<p>#open the m3u file to write the cached items to<br />
open my $m3u, &#8216;&gt;&#8217;, $cachepath.$plistname.&#8217;_cached.m3u&#8217; or die &#8220;Error trying to open cache m3u playlist for overwrite. Do you have write permissions in $cachepath ?&#8221;;<br />
print $m3u &#8220;#EXTM3U\r\n\r\n&#8221;;    #note windows \r\n here</p>
<p>#add /music to $cachepath so that files are in a subdirectory, away from the m3u file<br />
$cachepath = $cachepath.&#8221;music/&#8221;;<br />
if( ! -e $cachepath ) {<br />
`mkdir &#8220;$cachepath&#8221;`;<br />
}</p>
<p>#loop through the files and check if they need to be cached<br />
foreach my $i (@$flac) {<br />
my ($trackid, $title, $artist, $album, $uri, $length) = @$i;</p>
<p>#correct the uri by removing the file:// prefix and reverting the uri escaping<br />
$uri = substr $uri, 7;<br />
$uri =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;</p>
<p>#fix time into seconds<br />
$length = int($length/1000);</p>
<p>#check if the flac file has already been converted and cached at cachepath<br />
#if not, convert it and put it at cachepath.<br />
my $path = $cachepath . $artist . &#8216;/&#8217; . $album . &#8216;/&#8217; . $title . &#8216;.mp3&#8242;;<br />
if( ! -e $path ) {<br />
#file dne, convert it<br />
print &#8220;\nTrack: $title by $artist has not yet been cached, converting&#8230;&#8221;,&#8221;\n&#8221;;</p>
<p>#make sure that the file actually exists before attempting to convert it<br />
if( ! -e $uri ) {<br />
print &#8220;WARNING: Track $title by $artist does not exist at $uri&#8221;,&#8221;\n&#8221;;<br />
} else {</p>
<p>#ensure that cache album/artist directories exist<br />
my $partpath = $cachepath.$artist;<br />
if( ! -d $partpath ) {<br />
`mkdir &#8220;$partpath&#8221;`;<br />
}<br />
$partpath = $partpath.&#8217;/&#8217;.$album;<br />
if( ! -d $partpath ) {<br />
`mkdir &#8220;$partpath&#8221;`;l<br />
}</p>
<p>#do the conversion &#8211; we&#8217;re chaining flac and lame here, reading in the flac file from $uri, and putting the resulting mp3 at $path<br />
`flac -cd &#8220;$uri&#8221; | lame -h &#8211; &#8220;$path&#8221;`;<br />
}<br />
}</p>
<p>#add the track to the m3u file &#8211; note that these entries are relative to the location of the m3u file in the root of $cachepath<br />
#the paths use a backslash and a \r\n newline so that they work correctly on windows<br />
print $m3u &#8220;#EXTINF:$length,$artist &#8211; $title\r\n&#8221;;<br />
print $m3u &#8216;\\music\\&#8217;.$artist.&#8217;\\&#8217;.$album.&#8217;\\&#8217;.$title.&#8217;.mp3&#8242;,&#8221;\r\n\r\n&#8221;;<br />
}</p>
<p>#close the m3u file in the cachepath directory<br />
close $m3u;</p>
<p>#TODO: scan the m3u file and delete any files that aren&#8217;t in it from the cache directory</p>
<p>#Pull the list of MP3 files and dump them into an m3u file<br />
my $flac = $dbh-&gt;selectall_arrayref(&#8220;SELECT sme.TrackID, ct.Title, car.Name AS &#8216;Artist&#8217;, ca.Title AS &#8216;Album&#8217;, ct.Uri, ct.Duration AS &#8216;Length&#8217; FROM corealbums AS ca, coreartists AS car, coresmartplaylistentries AS sme INNER JOIN coretracks AS ct ON sme.TrackID = ct.TrackID WHERE sme.SmartPlaylistID = (SELECT `SmartPlaylistID` FROM `coresmartplaylists` WHERE `Name` = &#8216;$plistname&#8217;) AND ca.AlbumID = ct.AlbumID AND car.ArtistID = ct.ArtistID AND ct.MimeType LIKE &#8216;%mp3&#8242;&#8221;);</p>
<p>#open the m3u file to write the cached items to<br />
open my $m3u, &#8216;&gt;&#8217;, $musicpath.$plistname.&#8217;.m3u&#8217; or die &#8220;Error trying to open music folder m3u playlist for overwrite. Do you have write permissions in $musicpath ?&#8221;;<br />
print $m3u &#8220;#EXTM3U\r\n\r\n&#8221;;    #note windows \r\n here</p>
<p>#loop through the files and check if they need to be cached<br />
foreach my $i (@$flac) {<br />
my ($trackid, $title, $artist, $album, $uri, $length) = @$i;</p>
<p>#correct the uri to become a windows file path<br />
$uri = substr $uri, 7;            #remove file:// prefix<br />
$uri =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;    #correct uri encoding<br />
$uri =~ s/$musicpath//g;            #remove musicpath prefix<br />
$uri =~ s/\//\\/g;                #change forward slashes to backslashes<br />
$uri = &#8216;\\&#8217;.$uri;                #add the leading backslash</p>
<p>#fix time into seconds<br />
$length = int($length/1000);</p>
<p>#add the track to the m3u file &#8211; note that these entries are relative to the location of the m3u file in the root of $cachepath<br />
#the paths use a backslash and a \r\n newline so that they work correctly on windows<br />
print $m3u &#8220;#EXTINF:$length,$artist &#8211; $title\r\n&#8221;;<br />
print $m3u $uri,&#8221;\r\n\r\n&#8221;;<br />
}</p>
<p>#close the m3u file and the database connection<br />
close $m3u;<br />
$dbh-&gt;disconnect;</p></blockquote>
<p>Sorry for the horrible formatting.</p>
<p>The only snag that I hit during the entire process was really my fault &#8211; I have a tendency to overcomplicate things, and did so on this project by initially writing the script to output a *.zpl file instead of a *.m3u file. That didn&#8217;t work at all, and I ended up simplifying the script greatly by just outputting an *.m3u file and hoping for the best.</p>
<p>On the off chance that the Zune jukebox software refuses to properly update its playlists after you change the *.m3u files, first try deleting them from the application, and then restarting it. If that doesn&#8217;t work, you can write a Windows batch script with code similar to the following:</p>
<blockquote><p>del /q &#8220;C:\Documents and Settings\Jonathan\My Documents\My Music\Zune\Playlists\*&#8221;<br />
xcopy &#8220;\\Vboxsvr\mp3cache\Favorites_cached.m3u&#8221; &#8220;C:\Documents and Settings\Jonathan\My Documents\My Music\Zune\Playlists&#8221;<br />
xcopy &#8220;\\Vboxsvr\music\Favorites.m3u&#8221; &#8220;C:\Documents and Settings\Jonathan\My Documents\My Music\Zune\Playlists&#8221;</p></blockquote>
<p>This script deletes all files from the Zune playlists directory, and then copies each of the *.m3u files that we created with the above perl script directly into the Zune playlists directory. This should force the application to get it&#8217;s act together.</p>
<p>Overall, I&#8217;m happy with this patchwork job. It allows me to use the Zune on Linux, which is great because the Zune really is a beautiful piece of hardware. Now if only the libmtp guys could get it working natively, without a WinXP VM&#8230;</p>
<p>This piece originally appeared at <a href="http://thelinuxexperiment.com/guinea-pigs/jon-f/filling-a-zune-from-linux/" target="_blank">The Linux Experiment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/filling-a-zune-from-linux/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Few Good Reads</title>
		<link>http://www.jonathanfritz.ca/software/a-few-good-reads</link>
		<comments>http://www.jonathanfritz.ca/software/a-few-good-reads#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:39:56 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[acta]]></category>
		<category><![CDATA[Anti-Counterfeiting Trade Agreement]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[charlie angus]]></category>
		<category><![CDATA[Children]]></category>
		<category><![CDATA[computation theory]]></category>
		<category><![CDATA[digital millenium copyright act]]></category>
		<category><![CDATA[DMCA]]></category>
		<category><![CDATA[fair copyright for canada]]></category>
		<category><![CDATA[groklaw]]></category>
		<category><![CDATA[industry minister]]></category>
		<category><![CDATA[Michael Geist]]></category>
		<category><![CDATA[ndp]]></category>
		<category><![CDATA[new york magazine]]></category>
		<category><![CDATA[patent]]></category>
		<category><![CDATA[patent law]]></category>
		<category><![CDATA[pixel poppers]]></category>
		<category><![CDATA[praise]]></category>
		<category><![CDATA[psychology]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[tony clement]]></category>
		<category><![CDATA[tvo]]></category>
		<category><![CDATA[video games]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=171</guid>
		<description><![CDATA[The following is a handy list of a few of the things that I&#8217;ve been keeping an eye on lately. The Anti-Counterfeiting Trade Agreement: If you haven&#8217;t been reading slashdot lately, you might not know that representatives from the governments of most of the developed world have recently been participating in some top-secret meetings aimed [...]]]></description>
			<content:encoded><![CDATA[<p>The following is a handy list of a few of the things that I&#8217;ve been keeping an eye on lately.</p>
<p><strong>The Anti-Counterfeiting Trade Agreement:</strong></p>
<p>If you haven&#8217;t been reading slashdot lately, you might not know that representatives from the governments of most of the developed world have recently been participating in some top-secret meetings aimed at establishing something called the Anti-Counterfeiting Trade Agreement, or ACTA for short. Now, <a href="http://www.michaelgeist.ca/content/view/4575/125/" target="_blank">according to Michael Geist</a>, the proposed agreement actually has very little to do with counterfeiting, and an awful lot to do with copyright protections for big content &#8211; the same guys who influenced the USA&#8217;s Digital Millenium Copyright Act. Based on leaked information, Geist has pieced together a very good explanation of the proposed agreement as<a href="http://www.tvo.org/cfmx/tvoorg/searchengine/index.cfm?page_id=613&amp;action=blog&amp;subaction=viewPost&amp;post_id=11383&amp;blog_id=485" target="_blank"> an online slide show</a> that I snagged from TVO&#8217;s Search Engine blog:</p>
<p><object style="align:center" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYGusTsC" /><param name="allowfullscreen" value="true" /><embed style="align:center" type="application/x-shockwave-flash" width="480" height="390" src="http://blip.tv/play/AYGusTsC" allowfullscreen="true"></embed></object></p>
<p>Now as you might expect, quite a few people got uppity when they found out that the government was participating in secret meetings with the aim of establishing a global copyright treaty that would bypass the house of commons and fly in the face of <a href="http://www.jonathanfritz.ca/software/canadian-copyright-reform-consultations" target="_blank">last summer&#8217;s copyright consultations</a>. So many people in fact, that NDP MP Charlie Angus <a href="http://www.cbc.ca/politics/story/2009/12/01/clement-copyright-acta-ndp.html" target="_blank">questioned Industry Minister Tony Clement</a> about it during yesterday&#8217;s question period. Thanks to the work of <a href="http://www.faircopyrightforcanada.ca/" target="_blank">Fair Copyright for Canada</a>, a video of their exchange is available on YouTube:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/BSzpHI5ZRO0&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/BSzpHI5ZRO0&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I too am pretty incensed at the government for keeping this all as hush-hush as they have. As I understand, copyright isn&#8217;t even a law in Canada &#8211; it is in fact a right, and one that must be exercised by the right holder. In my opinion, it is not the business of the government or of the Internet at large to take care of exercising this right for the holder. Further, much of the leaked information about this law points to it having a clause that bans internet access to any person who has been accused (read: not convicted) of breaking copyright three times. If implemented, this clause would be open to abuse, and far too wide-ranging for my comfort.</p>
<p><strong>Can Software Be Patented?</strong></p>
<p>On a related note, the Supreme Court in the United States is apparently deciding something or other about the legitimacy of software patents this week. While I admit that I haven&#8217;t really kept up with the issue enough to appreciate its gravity, the resulting press has <a href="http://www.groklaw.net/article.php?story=20091111151305785" target="_blank">lead me to this incredible article on Groklaw</a> that provides a beautiful explanation of Computation Theory and its implications on Patent law.</p>
<p>Of course, I learned all of the stuff in the article in school, but have never seen it explained as simply or applied as practically as the author does in the article. For those who are looking for a printed copy that will persist link rot, a <a href="http://www.jonathanfritz.ca/files/ComputationalTheoryforLawyers.pdf" target="_self">PDF of the article is available here on my server</a>. It&#8217;s a lengthy read, but most certainly worth your time if you are at all interested in computers, their history, and its implications on modern law.</p>
<p><strong>Praise is a Strange Thing:</strong></p>
<p>Another lengthy read, <a href="http://nymag.com/news/features/27840/" target="_blank">this article from New York magazine</a> really got me thinking. It deals with the types of praise that parents give their children, and the implications of that praise throughout their lives. Essentially, there are two kinds of praise: Telling your child that he accomplished his goals because he is smart, and telling your child that she accomplished her goals because she worked hard at doing so. The former gives a false sense of achievement that doesn&#8217;t provide a framework for what to do in cases of failure. As a result, children praised in this manner tend to avoid things that they do not naturally do well at, even though they may be accomplished in other areas of life. A related article that I found over on Pixel Poppers <a href="http://www.pixelpoppers.com/2009/11/awesome-by-proxy-addicted-to-fake.html" target="_blank">considers the implications of this kind of research on video games</a>. Specifically, the author discusses the &#8216;fake achievement&#8217; that RPGs provide players when their characters level up in lieu of actual skills, and asks if this alone could be responsible for problems encountered in other areas of life.</p>
<p><strong>Back to Studying:</strong></p>
<p>Well, that&#8217;s about it for me. I&#8217;m back to <span style="text-decoration: line-through;">procrastinating</span> studying for finals.</p>
<p>Cheers,</p>
<p>Jon</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/a-few-good-reads/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Augmented Reality? Hell Yes</title>
		<link>http://www.jonathanfritz.ca/software/augmented-reality-hell-yes</link>
		<comments>http://www.jonathanfritz.ca/software/augmented-reality-hell-yes#comments</comments>
		<pubDate>Mon, 30 Nov 2009 02:44:09 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=169</guid>
		<description><![CDATA[A colleague recently linked me to this TED talk from an Indian computer scientist named Pranav Mistry who has created SixthSense, a new platform that brings mobile computing into real life. His device consists of a camera, projector, and coloured finger tips that allow the attached computer to locate his fingers in 3D space. On [...]]]></description>
			<content:encoded><![CDATA[<p>A colleague recently linked me to this TED talk from an Indian computer scientist named <a href="http://www.pranavmistry.com/" target="_blank">Pranav Mistry</a> who has created <a href="http://www.pranavmistry.com/projects/sixthsense/" target="_blank">SixthSense</a>, a new platform that brings mobile computing into real life.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="446" height="326" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=a_taste_of_tedindia;theme=design_like_you_give_a_damn;theme=the_creative_spark;theme=new_on_ted_com;theme=what_s_next_in_tech;theme=tales_of_invention;theme=ted_under_30;event=TEDIndia+2009;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="446" height="326" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" flashvars="vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=a_taste_of_tedindia;theme=design_like_you_give_a_damn;theme=the_creative_spark;theme=new_on_ted_com;theme=what_s_next_in_tech;theme=tales_of_invention;theme=ted_under_30;event=TEDIndia+2009;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" bgcolor="#ffffff" wmode="transparent" allowfullscreen="true"></embed></object></p>
<p>His device consists of a camera, projector, and coloured finger tips that allow the attached computer to locate his fingers in 3D space. On top of this $350 hardware platform lies a bunch of really cool software that is capable of some really neat tricks. This presentation put my jaw on the floor. Check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/augmented-reality-hell-yes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

