<?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>mattdorn.com &#187; open source</title>
	<atom:link href="http://www.mattdorn.com/content/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mattdorn.com</link>
	<description>Generously funded by Matt Dorn</description>
	<lastBuildDate>Sun, 07 Feb 2010 00:07:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Gnapsack 0.1.0 released</title>
		<link>http://www.mattdorn.com/content/gnapsack-010-released/</link>
		<comments>http://www.mattdorn.com/content/gnapsack-010-released/#comments</comments>
		<pubDate>Fri, 28 Apr 2006 18:51:29 +0000</pubDate>
		<dc:creator>mdorn</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://67.207.132.145/wordpress/?p=33</guid>
		<description><![CDATA[


I have just released Gnapsack, a desktop client for Linux that uses the Backpack API.  Check out the site for info, screenshots, etc.  This is an open source (GPL) project.
While it only runs on Linux currently, I&#8217;m hoping to get someone to help me out with a Windows port.  It uses the [...]]]></description>
			<content:encoded><![CDATA[
<div class="document">
<!-- -*- mode: rst -*- -->
<p>I have just released <a class="reference" href="http://www.mattdorn.com/open/gnapsack">Gnapsack</a>, a desktop client for Linux that uses the Backpack API.  Check out the site for info, screenshots, etc.  This is an open source (GPL) project.</p>
<p>While it only runs on Linux currently, I&#8217;m hoping to get someone to help me out with a Windows port.  It uses the Python bindings to the GTK widget set.  A good example of a PyGTK app that has been ported to Windows is the <a class="reference" href="http://griffith.vasconunes.net/">Griffith</a> film collection manager.</p>
<p>I may unwittingly be using some non-standard Python libraries&#8211;if any Linux users can give it a try and let me know if I should add items to the dependencies list, I&#8217;d appreciate it.</p>
<p>Anyone interesting in contributing to this project in general, please let me know, and I&#8217;ll get you oriented.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattdorn.com/content/gnapsack-010-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started with Darcs</title>
		<link>http://www.mattdorn.com/content/getting-started-with-darcs/</link>
		<comments>http://www.mattdorn.com/content/getting-started-with-darcs/#comments</comments>
		<pubDate>Wed, 19 Apr 2006 13:53:54 +0000</pubDate>
		<dc:creator>mdorn</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://67.207.132.145/wordpress/?p=32</guid>
		<description><![CDATA[


The following is a rudimentary set of instructions for setting up, on a Linux server, a Darcs repository which uses the most basic possible method for collaboration, in which a single administrator manually applies patches1 sent him/her via email (automatically, via the darcs send command issued by the contributor).2  Some notes on producing those [...]]]></description>
			<content:encoded><![CDATA[
<div class="document">
<!-- -*- mode: rst -*- -->
<p>The following is a rudimentary set of instructions for setting up, on a Linux server, a Darcs repository which uses the most basic possible method for collaboration, in which a single administrator manually applies patches<a class="footnote-reference" href="#id3" id="id1" name="id1"><sup>1</sup></a> sent him/her via email (automatically, via the <tt class="docutils literal"><span class="pre">darcs</span> <span class="pre">send</span></tt> command issued by the contributor).<a class="footnote-reference" href="#id4" id="id2" name="id2"><sup>2</sup></a>  Some notes on producing those patches and managing the repository are also included.  Further information, including info on how to retract changes, is available in the <a class="reference" href="http://darcs.net/manual/">Darcs manual</a>.</p>
<div class="section">
<h2><a id="preparing-the-central-darcs-respository" name="preparing-the-central-darcs-respository">Preparing the central Darcs respository</a></h2>
<p>Upload your public files to where your public repo will be, and then create a repository there, recursively adding the project&#8217;s files to it:</p>
<pre class="literal-block">
cd proj_folder
darcs init
darcs add -r *
</pre>
<p>Then record a comment for the patch:</p>
<pre class="literal-block">
darcs record -a
</pre>
<p>The <tt class="docutils literal"><span class="pre">-a</span></tt> flag will apply all the patches without prompting the user to approve each one.  In the case of creating a new project, that means &quot;addfile&quot; patches (which are not really patches in the traditional sense) will be submitted for each file, along with the &quot;hunks&quot; containing the new code represented by the new files.</p>
<p>You can avoid any prompt at all by issuing the command with an extra flag and the patch name:</p>
<pre class="literal-block">
darcs record -am &quot;Project imported.&quot;
</pre>
<p>The first time you do this, you&#8217;ll be prompted to add an email address for the &quot;patch&#8217;s author&quot;, which in turn will create the <tt class="docutils literal"><span class="pre">_darcs/prefs/author</span></tt> file in your project directory.</p>
<p>Because this will be a basic repository where sent patches will be applied by the administrator, you&#8217;ll also want to manually add a file called <tt class="docutils literal"><span class="pre">email</span></tt> to that same directory (<tt class="docutils literal"><span class="pre">_darcs/prefs</span></tt>).  That file should contain a single line: the email address of the administrator who will apply the patches.  Subsequently issuing of the <tt class="docutils literal"><span class="pre">darcs</span> <span class="pre">send</span></tt> command by project contributors will use that email address as the destination for the patch.</p>
<p>You must now make the repository available to remote users.  The easiest way to do that is via the Apache Web server.  Make a directory in your Apache root called <tt class="docutils literal"><span class="pre">repos</span></tt> and in that directory, and simply symlink to the directory of your Darcs-enabled project.  You may have to check to make sure that the appropriate Apache directive allows for following of symlinks.  In my case, I also had to make the project directory (and its parent directory, in fact) world-executable.</p>
<p>The main repository is now available for retrieval by collaborators.  As the Darcs documentation states, &quot;As long as you’re running a web server and making your repo available to the world, you may as well make it easy for people to see what changes you’ve made.&quot;  There&#8217;s a CGI script that allows users to browse the patch history of your projects.  In Ubuntu Linux (Breezy), the <tt class="docutils literal"><span class="pre">darcs-server</span></tt> package handles its installation for you, installing the file <tt class="docutils literal"><span class="pre">/usr/lib/cgi-bin/darcs.cgi</span></tt>.  That works out-of-the-box with Ubuntu&#8217;s Apache install.  If you&#8217;ve installed darcs manually, you may have to run <tt class="docutils literal"><span class="pre">make</span> <span class="pre">installserver</span></tt> to do the same.  Note that you can change the name and location of your <tt class="docutils literal"><span class="pre">repos</span></tt> directory, mentioned above, in <tt class="docutils literal"><span class="pre">/etc/darcs/cgi.conf</span></tt>.</p>
</div>
<div class="section">
<h2><a id="applying-patches" name="applying-patches">Applying patches</a></h2>
<p>As patches start coming in via email from contributors, you&#8217;ll need to apply them to the central repo.</p>
<p>The most direct way to do that would to be to login via a shell to the central repository&#8217;s server, and:</p>
<pre class="literal-block">
cd /path/to/project
darcs apply /path/to/patch
</pre>
<p>Another possible option is for the project administrator to maintain a local repo in addition to the central repo, apply any patches there (also using <tt class="docutils literal"><span class="pre">darcs</span> <span class="pre">apply</span></tt>), and then use his or her shell account to &quot;push&quot; the local repo changes to the central repo server:</p>
<pre class="literal-block">
darcs push username&#64;website.com:/path/to/repos/proj_name
</pre>
</div>
<div class="section">
<h2><a id="contributing-to-the-repo" name="contributing-to-the-repo">Contributing to the repo</a></h2>
<p>If you&#8217;re a contributor who wants to work with the project for the first time you retrieve it from the Web like so:</p>
<pre class="literal-block">
darcs get http://www.website.com/repos/proj_name
</pre>
<p>Now you have a copy of the repo, a fully functional branch.</p>
<p>After working with the project, making changes, etc., you can view the changes you&#8217;ve made since your last repo update:</p>
<pre class="literal-block">
darcs whatsnew
</pre>
<p>(Add the <tt class="docutils literal"><span class="pre">--summary</span></tt> flag for less verbose output, also add the &#8211;look-for-adds flag to see any new files that have been created since your last check-in.  You&#8217;ll need to add them manually (see below).)</p>
<p>Name your patch and comment on the details of your changes:</p>
<pre class="literal-block">
darcs record -a
</pre>
<p>And send them to the central repo (in our case, via email):</p>
<pre class="literal-block">
darcs send -a
</pre>
<p>(Note the <tt class="docutils literal"><span class="pre">-a</span></tt> flag in the above two commands, indicating all patches; otherwise you&#8217;ll have to approve them one-by-one.)</p>
<p>Note that &quot;darcs send&quot; will fail if you do not have a local mail agent installed.  In that case, the best way is simply to output the patch as a file, like so:</p>
<pre class="literal-block">
darcs send -a --output=/tmp/changes.patch
</pre>
<p>Note also that if you added any files, you&#8217;ll need to explicitly add them to the repo:</p>
<pre class="literal-block">
darcs add myscript.py
</pre>
<p>If you want to subsequently pull other contributors&#8217; changes from the repo:</p>
<pre class="literal-block">
darcs pull http://www.website.com/repos/proj_name
</pre>
<p>Add the <tt class="docutils literal"><span class="pre">-a</span></tt> flag to avoid being asked to confirm on a per-patch basis.</p>
</div>
<div class="section">
<h2><a id="tagging-versions-and-getting-tagged-versions" name="tagging-versions-and-getting-tagged-versions">Tagging versions and getting tagged versions</a></h2>
<p>From the <a class="reference" href="http://darcs.net/manual/">Darcs manual</a>:</p>
<blockquote>
While pull and unpull can be used to construct different &quot;versions&quot; in a repository, it is often desirable to name speciﬁc conﬁgurations of patches so they can be identiﬁed and retrieved easily later. This is how darcs implements what is usually known as versions. The command for this is tag, and it records a tag in the current repository.</blockquote>
<p>So, to tag a version 1.0, for example, in the project directory execute:</p>
<pre class="literal-block">
darcs tag 1.0
</pre>
<p>And to get the tree for that version later:</p>
<pre class="literal-block">
darcs get --tag &quot;1.0&quot; http://www.website.com/repos/proj_name
</pre>
<table class="docutils footnote" frame="void" id="id3" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1" name="id3">[1]</a></td><td>According to Darcs&#8217; &quot;theory of patches,&quot; pretty much any change to the tree&#8211;including the adding and removing of files&#8211;is a &quot;patch.&quot;</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="id4" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>The <a class="reference" href="http://darcs.net/manual/">Darcs manual</a> describes other methods like the <tt class="docutils literal"><span class="pre">darcs</span> <span class="pre">push</span></tt> command, which requires SSH accounts on the server running Darcs for the users collborating on your project, and also includes instructions for an interesting setup involving automatic application of patches arriving via PGP-signed email messages from authorized addresses.</td></tr>
</tbody>
</table>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattdorn.com/content/getting-started-with-darcs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Legal threats to the Internet and Open Source</title>
		<link>http://www.mattdorn.com/content/legal-threats-to-the-internet-and-open-source/</link>
		<comments>http://www.mattdorn.com/content/legal-threats-to-the-internet-and-open-source/#comments</comments>
		<pubDate>Wed, 22 Feb 2006 13:44:36 +0000</pubDate>
		<dc:creator>mdorn</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://67.207.132.145/wordpress/?p=28</guid>
		<description><![CDATA[


The field of information technology&#8211;particularly the rise of the Internet and a related phenomenon, Free and Open Source Software (FOSS)&#8211;provides an interesting prism through which to view contemporary ideological conflicts in the political and economic realms.  Both the Internet and FOSS are powerful testimonies to the fertility of the public domain, at a moment [...]]]></description>
			<content:encoded><![CDATA[
<div class="document">
<!-- -*- mode: rst -*- -->
<p>The field of information technology&#8211;particularly the rise of the Internet and a related phenomenon, Free and Open Source Software (FOSS)&#8211;provides an interesting prism through which to view contemporary ideological conflicts in the political and economic realms.  Both the Internet and FOSS are powerful testimonies to the fertility of the public domain, at a moment when the existence of that domain is being challenged by an absolutist ideology that seeks to enthrone private property rights as the sole rationale for economic policy.</p>
<p>That these phenomena could flourish in such a hostile ideological environment is a testimony to their power.  Yet the Internet and the open information infrastructure upon which FOSS rests face new legal challenges that could have profound consequences for their current state of health.  Those challenges fall under two broad categories:</p>
<ul class="simple">
<li>Extension of intellectual property rights through patents and Digital Rights Managment (DRM) schemes</li>
<li>Deregulation of telecommunications infrastructure to such an extent that telephone and cable companies will be able to discriminate as to the uses to which that infrastructure is put</li>
</ul>
<p>In an article titled &quot;<a class="reference" href="http://www.findarticles.com/p/articles/mi_qa3671/is_200204/ai_n9042086">Fencing Off Ideas</a>: Enclosure and the disappearance of the public domain,&quot; which first appeared in <a class="reference" href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=4&amp;tid=61">Daedalus</a>  in Spring, 2002, Duke University professor of law James Boyle draws attention to how intellectual property policy has been subjected to the reductive logic of neoliberal economic orthodoxy (as manifested in the &quot;Washington Consensus,&quot; which had been the object of much media scrutiny at the time Boyle&#8217;s article was written), which suggests that only free markets can provide efficiency and productivity.  This trend is illustrated by recent efforts by various commercial interests to extend patent law both in time (as in the Sonny Bono Copyright Act) and space, into previously public realms such as &quot;unoriginal compilations of facts&quot; (for example, patents on gene sequences)&#8211;extending intellectual property to the &quot;data layer&quot; of facts rather than confining it to inventions that truly represent an innovation build upon those facts.  All this is to say nothing of the increasing tendency of the U.S. Patent Office to grant patents in new technology fields that clearly fail to meet the basic test of novelty and originality.</p>
<p>Despite the &quot;intellectually complacent, analytically unsound assumptions&quot; (as Boyle puts it) of this so-called consensus, it has in fact been enshrined as unassailable dogma, such that arguments made from other perspectives are frequently rejected as &quot;economically illiterate.&quot;  (I feel obliged to point out again that the article was published four years ago&#8211;there are hopeful signs of a reevaluation of neoliberal fundamentalism, particularly in the wake of the spectacular failure of Washington Consensus-inspired policies in cases like Argentina&#8217;s economic collapse in 2001 and 2002.)</p>
<p>Far from representing the sanctification of a time-honored truth, neoliberal dogma in fact flies in the face of the consensus that held sway in the past.  In 1918 Louis Brandeis wrote: &quot;The general rule of law is that the noblest of human production&#8211;knowledge, truths ascertained, conceptions, and ideas become, after voluntary communication to others, free as the air to common use&quot;.  The old consensus was that &quot;ideas and facts must always remain in the public domain.&quot;  Boyle writes:</p>
<blockquote>
From the inception of intellectual property law in the eighteenth century until quite recently, protection of the public domain&#8211;the intangible commons&#8211;was one fundamental goal of the law in most nations.  In the new vision of intellectual property, however, property rights should be established everywhere: more is better.</blockquote>
<p>The new consensus appears to be based largely on two assertions:</p>
<ul class="simple">
<li>Strong property rights are the best, if not the only, incentive for innovation and productivity.</li>
<li>Government is inherently inefficient and corrupt and therefore should not interfere in the streamlined workings of free markets.</li>
</ul>
<p>Boyle characterizes the first of these as an unbalanced assumption and suggests that the &quot;vote of no confidence in the productive powers of the commons&quot; it implies is mistaken.  It&#8217;s not that the protection of property rights is unimportant, it&#8217;s that the new dogma does not recognize the importance of the commons as a basis for the generation of new knowledge: &quot;Protecting the raw material of science and speech is as important to the next generation of innovation as the intellectual property rights themselves.&quot;  A proper balance must be struck.</p>
<p>Moreover, the economic evidence simply does not warrant according property rights the exclusive position sought by some business interests.  Strong DRM schemes in software and electronic devices, which often compromise fair use and other consumer rights, are based on the assumption that it&#8217;s always in the producer&#8217;s best interest to restrict copying to the maximum extent possible. In fact, there&#8217;s evidence to suggest that a &quot;large, leaky market [in which illegal copying of content occurs] may actually produce more revenue than a small, tightly controlled market.&quot;  In addition, Boyle writes, &quot;given the known static and dynamic costs of monopolies, and the constitutional injunction to encourage the progress of science and the useful arts, the burden should be on those requesting expanded intellectual property rights to prove their value.&quot;</p>
<p>Most interesting from my point of view is Boyle&#8217;s presentation of FOSS as a most striking example of the &quot;productive powers of the commons.&quot;  Why FOSS, which is governed by an intellectual property regime meant to encourage&#8211;rather than discourage&#8211;copying, produces results of a quality that exceeds its proprietary counterparts (think the Linux operating system, the Apache Web server, the Firefox Web browser) is poorly understood, most especially by neoliberal ideologues.  How does volunteer Boyle ventures that its global scale is key.  Given that scale, a variety of motives&#8211;ranging from simple benevolence, to resume improvement, to enjoyment of solving puzzles&#8211;can be harnessed and plugged into a modular development process to produce results of exceptional quality.</p>
<p>What is clear is that FOSS represents &quot;a new mode of collaborative production&quot; that warrants further study.  But to stifle it along with the open infrastructure on which it rests, would risk undermining a great source of creativity and innovation in the crucial realm of information technology.  Lawmakers should protect this source by ensuring that &quot;free&quot; modes of production can exist along side the protection of property rights.</p>
<p>Skepticism about government should not expand itself to a condemnation of all public forms of collaboration in the creation of knowledge and wealth.  Nor is this skepticism justified when it turns into a wholesale rejection of the notion that government can play an important role in facilitating productive activity, as it appears to in the case of neoliberal orthodoxy.  In fact, as Joseph Stiglitz notes in a <a class="reference" href="http://www.foreignaffairs.org/20051101fareviewessay84612/joseph-e-stiglitz/the-ethical-economist.html">recent review essay in Foreign Affairs</a>, there are cases in which government can outperform the private sector in certain areas relevant to the present discussion: &quot;A report by the Council of Economic Advisers (conducted when I was its chair) found that the returns on public investment in science and technology were far higher than for private investment in these areas and than for conventional investment in plant and equipment.&quot;  Stiglitz offers a perspective that differs sharply from neoliberal orthodoxy:  &quot;The market economy does not automatically guarantee growth, social justice, or even economic efficiency; achieving those ends requires that government play an important role.&quot;</p>
<p>Fortunately, certain intellectual property-related excesses seem to be coming increasingly to the attention of the public.  As of this writing a &quot;patent troll&quot; with a dubious claim on the technology employed by the <a class="reference" href="http://www.blackberry.com/">Blackberry</a> handheld computer has take the device&#8217;s manufacturer to court, where the possibility of a cease-and-desist order threatens to throw the productivity of tens of millions of Blackberry customers into a tailspin.  Additionally, large corporations like Microsoft and IBM advocate are advocating patent reforms that would ensure that patents are granted only for true innovations.</p>
<p>In the larger scheme of things, the wisdom of the Washington Consensus and the neoliberal orthodoxy that gave rise to it is being questioned in places like Latin America.  Despite the populist or leftist cast of their campaigning and public interactions with their constituencies, Latin American leaders who have opposed themselves to the economically orthodox positions of the past have in most cases pursued moderate policies rather than returning to the protectionism of the past.</p>
<p>Still, there are other threats to openness on the horizon.  O&#8217;Reilly&#8217;s Andy Oram recently <a class="reference" href="http://www.oreillynet.com/lpt/a/6422">commented</a> on a new legal initiative called &quot;Webcaster&#8217;s rights&quot; that would erode the principle, currently in force, of &quot;fair use&quot; of Web content by legislating that the original broadcaster of a piece of Web content have full control over its use.  By default, it would be illegal to retransmit it without first getting permission from the Web site that first broadcast it.  Currently the US is pursuing the ratification of this policy globally in the context of WIPO (the World Intellectual Property Organization).</p>
<p>Finally, the Nation, among others, has <a class="reference" href="http://www.thenation.com/doc/20060213/chester">reported</a> on the potential privatization of the Internet in the wake of the dismantling of FCC regulation that that formerly required phone companies to operate as &quot;nondiscriminatory networks (technically known as &#8216;common carriers&#8217;).&quot;  Under such a scheme, companies offering broadband service might throttle bandwidth in favor of customers downloading &quot;premium content&quot; (surely bandwidth-intensive video and audio) for an extra fee.  The potential for revenue sharing under this model could compel major Web sites like Google, Amazon and Yahoo to support this arrangement.</p>
<p>These companies are furthermore pushing to make it illegal for communities to create their own local wi-fi networks that connect to the Internet.</p>
<p>AT&amp;T CEO Ed Whitacre was quoted as saying: &quot;Why should they be allowed to use my pipes? The Internet can&#8217;t be free in that sense, because we and the cable companies have made an investment, and for a Google or Yahoo! or Vonage or anybody to expect to use these pipes [for] free is nuts!&quot;</p>
<p>What&#8217;s most interesting about such a remark is the extent to which the question of to what extent private property rights serve the public good no longer even enters into the debate&#8211;the assumption is that the private concern&#8217;s right to maximization of profits is absolute.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattdorn.com/content/legal-threats-to-the-internet-and-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A personal introduction to Digial Rights Management (DRM)</title>
		<link>http://www.mattdorn.com/content/a-personal-introduction-to-digial-rights-management-drm/</link>
		<comments>http://www.mattdorn.com/content/a-personal-introduction-to-digial-rights-management-drm/#comments</comments>
		<pubDate>Sat, 28 Jan 2006 15:41:46 +0000</pubDate>
		<dc:creator>mdorn</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://67.207.132.145/wordpress/?p=26</guid>
		<description><![CDATA[


Given the unorthodox style in which I&#8217;ve lived the last 4 years of my life&#8211;forsaking a lucrative and stable job stateside in favor of pursuing entrepreneurial and educational opportunities (with varying degrees of success) abroad, specifically in Latin America&#8211;I&#8217;ve felt a bit more freedom than I otherwise would have to spend most of my computing [...]]]></description>
			<content:encoded><![CDATA[
<div class="document">
<!-- -*- mode: rst -*- -->
<p>Given the unorthodox style in which I&#8217;ve lived the last 4 years of my life&#8211;forsaking a lucrative and stable job stateside in favor of pursuing entrepreneurial and educational opportunities (with varying degrees of success) abroad, specifically in Latin America&#8211;I&#8217;ve felt a bit more freedom than I otherwise would have to spend most of my computing time in the idealistic world of <a class="reference" href="http://www.fsf.org/">Free Software</a>.  While I&#8217;d long been a Linux dabbler, I&#8217;ve now become a full-time devotee of <a class="reference" href="http://www.ubuntu.com/">Ubuntu Linux</a>, and, with the one exception noted below, have never felt poorer for havng left behind proprietary alternatives.</p>
<p>But considering my probable reentry into the mainstream workforce at the end of this year, and the likelihood of my having to work in a proprietary computing environment again, I thought it would probably be a good time to reacquaint myself with Microsoft&#8217;s offering in the field of operating systems.  Maybe I&#8217;m softening in my old age, or maybe it&#8217;s the fact that desktop Linux has matured to the point where it no longer suffers from an inferiority complex (at least compared to Windows; OS X may be a different story), but I&#8217;d actually even started to entertain the idea that maybe the Windows and Linux approaches were simply two means to the same end, that perhaps the two offered divergent strengths that in the end complemented one another.</p>
<p>After all, I actually enjoyed working with Windows 2000 in my last job as a Visual Basic and ASP developer.  And I continued to rely on the original Windows 2000 installation on my dual-boot IBM ThinkPad T23 for viewing DVDs on my TV using the machine&#8217;s S-video port.  (I simply don&#8217;t have the geek firepower to get this working properly in Linux with my T23&#8217;s SuperSavage video adaptor, despite marginal success with a <a class="reference" href="http://probo.probo.com/pipermail/savage40/2005-May/000397.html">patched version</a> of the <a class="reference" href="http://www.probo.com/timr/savage40.html">s3switch</a> utility.)  To get current, I bought a shrink-wrapped Windows XP CD, license and all.</p>
<p>Lately, anti-Microsoft invective has shifted from expression of a generalized contempt for Microsoft&#8217;s monopolistic practices and the technical inferiority of its operating system and development methodology to complaints about its role in the promotion, along side other large media concerns and software companies, of &quot;draconian DRM&quot; (digital rights management) policies and technologies.  While sympathetic to this line of argument, I&#8217;d generally written off the rabid anti-DRM crew as a bunch of overreactive <a class="reference" href="http://en.wikipedia.org/wiki/Richard_Stallman">Stallmanites</a>.  Whatever the ethical or legal questionability of the companies&#8217; DRM practices, surely it wouldn&#8217;t affect my day-to-day use of the products I&#8217;d paid for and had a legal right to use.</p>
<p>I had no idea how bad it had gotten.</p>
<p>The first thing I did after upgrading to Windows XP, was to rehabilitate the installation to perform the main task for which I was still relying upon Windows: DVD viewing.  But upon reinstalling <a class="reference" href="http://www.cyberlink.com/multi/products/main_1_ENU.html">PowerDVD</a> (never mind the fact that I have a legally licensed CD, but had lost the &quot;product key&quot; and had to enter the seedy nether world of &quot;warez&quot; sites simply to get another product key that would let me use the software I had purchased) and the most recent <a class="reference" href="http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4Z8NTP">ThinkPad T23 video drivers</a>, I discovered that something I used to be able to do&#8211;watch my (originally purchased) set of <a class="reference" href="http://www.fox.com/24/">24</a> DVDs on my TV set through the S-video connection while running PowerDVD on Windows 2000&#8211;now caused an error window to pop-up indicating that the &quot;copy protection&quot; on the DVD would not permit viewing on an external display.</p>
<p>So much for PowerDVD.  I wish I could get back the money I spent on this product back as well the time I wasted trying to reactivate it with a new product key, since I won&#8217;t be using it again.</p>
<p>Interestingly, the version of Microsoft&#8217;s own Windows Media Player running on my machine is not crippled by this &quot;bug&quot;, but I discovered when I went to try to run a copy of <a class="reference" href="http://www.imdb.com/title/tt0390521/">Super Size Me</a>, licensed for viewing in Latin America and rented from the corner video store in my neighborhood in Buenos Aires, Argentina, that I had finally used my last alotted &quot;region&quot; change, and that my DVD player was now permanently set to &quot;Region 1.&quot;</p>
<p>Here it seems necessary to point out to companies who implement such DRM schemes the existence of such modern phenomena as &quot;portal electronic devices&quot; like &quot;notebook computers,&quot; as well as &quot;international travel.&quot;  For what possible reason should I be prohibited from viewing a DVD that I rent in this country for the purpose of viewing it on a device that I had legally brought into this country for personal use?</p>
<p>When the first instinct of software and media vendors to whom you&#8217;ve paid hundreds of dollars for licenses to use their products is to treat you like a criminal, you know that there&#8217;s something fundamentally wrong with their model, that maybe it&#8217;s time to stop using their products entirely.  If their business model is to alienate their customers to the point where they lose them entirely, they&#8217;re succeeding brilliantly, at least in my case.</p>
<p>What&#8217;s more disturbing, however, is that the only workable solution I found&#8211;to download and use the open source <a class="reference" href="http://www.videolan.org/">VLC Media Player</a>&#8211;is probably itself <a class="reference" href="http://www.videolan.org/doc/faq/en/index.html#id289646">illegal</a> according to the terms of the ill-conceived <a class="reference" href="http://www.gseis.ucla.edu/iclp/dmca1.htm">Digital Millennium Copyright Act</a> (DMCA), at least if I were using it within the borders of the United States.  The effect of these companies&#8217; policies is not only to turn customers into non-customers, but, potentially, into criminals.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattdorn.com/content/a-personal-introduction-to-digial-rights-management-drm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few amateur reflections on Open Source development</title>
		<link>http://www.mattdorn.com/content/a-few-amateur-reflections-on-open-source-development/</link>
		<comments>http://www.mattdorn.com/content/a-few-amateur-reflections-on-open-source-development/#comments</comments>
		<pubDate>Mon, 16 May 2005 13:45:21 +0000</pubDate>
		<dc:creator>mdorn</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://67.207.132.145/wordpress/?p=4</guid>
		<description><![CDATA[


I recently had to add CSV logging functionality to the PloneFormMailer product for a customer. This isn&#8217;t the first time we&#8217;ve wanted to add some customization to an Open Source project. The temptation in such situations is always to simply make your changes, and maintain your own personal fork of the project. That&#8217;s generally the [...]]]></description>
			<content:encoded><![CDATA[
<div class="document">
<!-- -*- mode: rst -*- -->
<p>I recently had to add CSV logging functionality to the PloneFormMailer product for a customer. This isn&#8217;t the first time we&#8217;ve wanted to add some customization to an Open Source project. The temptation in such situations is always to simply make your changes, and maintain your own personal fork of the project. That&#8217;s generally the quickest way to get your own project squared away with the least expenditure of mental energy, but it doesn&#8217;t show a lot of foresight.</p>
<p>Leaving aside the ethical obligation of contributing back to a project which you&#8217;ve benefited from, there&#8217;s a self-interest element at work as well: If you don&#8217;t contribute your changes to the project&#8217;s main branch, then every time you want to take advantage of, say, a bug-fix release or a release with some new enhancement you need, you have to undertake to merge your own customizations, which can end up being pretty time-consuming.</p>
<p>The dilemma comes when you customize an open source project in some way that&#8217;s not likely to be of interest to other users of the project&#8211;any patch you may contribute will be unlikely to be accepted to the project, probably because the risk of introducing new bugs into the system outweighs the relative advantages of the new functionality.</p>
<p>But if your own contribution is of sufficient interest to the general user base of the project, you ought to be able to get it included the project&#8217;s main branch. Still, the maintainers of any Open Source project are likely to review patches from third parties with a lot of suspicion, so you&#8217;ll want to take extra care to make it as easy as possible for the maintainer to approve any contribution you make.</p>
<p>Some guidelines can be found here: <a class="reference" href="http://www.kegel.com/academy/opensource.html">http://www.kegel.com/academy/opensource.html</a></p>
<p>In the case of the CSV enhancement to PloneFormMailer, it seemed like a really common use case, so I wrote to the project maintainer and he responded that he was indeed interested in a patch.</p>
<p>My understanding is that typically such patches are done against the latest release, not against some unreleased repository branch. In this case, though, the maintainer requested that any patch I supplied be created against the trunk.</p>
<p>Because I know that the product is now being maintained in SVN at svn.plone.org, I used svn to create the patch, which will make it as easy as possible to merge the changes:</p>
<blockquote>
cd /svn/working/directory
svn diff &gt; /tmp/csv_logging.diff</blockquote>
<p>That created a patch for both of the two files I modified in the product&#8217;s root directory.</p>
<p>I also wrote a unit test based on the PloneTestCase framework (in the absence of any test suite in the last release), but discovered that in the trunk a test suite had been begun using doctest, which I&#8217;m not familiar with.</p>
<p>Whether the patch is accepted or rejected, I&#8217;ll update here with any lessons learned from the process.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattdorn.com/content/a-few-amateur-reflections-on-open-source-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
