<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.whatthefork.org/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Chris Olstrom (.com)</title>
	
	<link>http://chris.olstrom.com/blog</link>
	<description>Privacy is an illusion. Trust is weakness. Earn your freedom.</description>
	<lastBuildDate>Mon, 08 Mar 2010 01:26:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.whatthefork.org/SlackTux" /><feedburner:info uri="slacktux" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>49.0580103</geo:lat><geo:long>-122.4816688</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><item>
		<title>Important Updates to Slack-Tux.org</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/qWZZ9cY-Tqw/</link>
		<comments>http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 21:50:02 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Exclusive for Feed Subscribers]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=660</guid>
		<description>I&amp;#8217;ve considered merging slack-tux.org with olstrom.com for some time, and finally decided to do it. If you notice many updates at to the feed post at the same time, this is a one-time effect of merging two sites. My apologies for any clutter this causes in your feed reader.
Some changes (under the hood):

olstrom.com runs classic [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/"&gt;Important Updates to Slack-Tux.org&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve considered merging slack-tux.org with olstrom.com for some time, and finally decided to do it. If you notice many updates at to the feed post at the same time, this is a one-time effect of merging two sites. <em>My apologies for any clutter this causes in your feed reader.</em></p>
<p>Some changes (under the hood):</p>
<ul>
<li>olstrom.com runs classic WordPress, while slack-tux.org ran WordPress-MU.</li>
<li>The posts from slack-tux.org were merged into stream from olstrom.com while preserving paths.</li>
<li>All comments transferred successfully and yes, IntenseDebate is the comment platform of choice here too.</li>
<li>Linking to slack-tux.org will redirect to an appropriate page on olstrom.com, so this merge should not break any links.</li>
</ul>
<p><strong>The feed URL has changed. Please update your subscriptions to use <a href="http://feeds.whatthefork.org/ChrisOlstrom">http://feeds.whatthefork.org/ChrisOlstrom</a>. </strong>While this is not strictly required as both draw from the same underlying source, it would simplify stats for me (something I would appreciate).</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=660&amp;ts=1268011653" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/">Important Updates to Slack-Tux.org</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=660&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/&title=Important Updates to Slack-Tux.org">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/qWZZ9cY-Tqw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/feed-exclusive/important-updates-to-slack-tux/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=important-updates-to-slack-tux</feedburner:origLink></item>
		<item>
		<title>What are Custom URLs?</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/2c9bcQ4Q7Qg/</link>
		<comments>http://chris.olstrom.com/blog/explain/custom-urls/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 21:29:39 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Explanation]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=581</guid>
		<description>When we talk about Short URL services, a &amp;#8220;Custom URL&amp;#8221; is the option to specify part of the shortened URL. Most often this is the latter part of the URL, but it is possible to set up a short URL service to use subdomains, or spanning multiple domains.
Example:

http://c.olstrom.com/&amp;#60;custom-url&amp;#62;

WordPress users may recognize this as a &amp;#8220;slug&amp;#8220;. [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/explain/custom-urls/"&gt;What are Custom URLs?&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>When we talk about Short URL services, a &#8220;Custom URL&#8221; is the option to specify part of the shortened URL. Most often this is the latter part of the URL, but it is possible to set up a short URL service to use subdomains, or spanning multiple domains.</p>
<p>Example:</p>
<ul>
<li>http://c.olstrom.com/&lt;custom-url&gt;</li>
</ul>
<p>WordPress users may recognize this as a &#8220;<em>slug</em>&#8220;. In the context of short URLs, it has effectively the same meaning.</p>
<p><strong>Why does it matter?</strong></p>
<p>The most significant gain is usability. Readers are better able to understand where a link will take them, leading to increased click quality for that link. It may also seem less blind,<sup>1</sup> even though it is no less revealing about the exact destination URL.</p>
<p>As an example, consider the following case where a short link points to a hypothetical announcement where Google buys Microsoft:</p>
<ul>
<li>http://c.olstrom.com/google-buys-microsoft</li>
<li>http://c.olstrom.com/4c9f</li>
</ul>
<p>Which one will receive more clicks?</p>
<p>The answer involves more than the URL itself, including some of the following:</p>
<ul>
<li>Where and how we present the URL.</li>
<li>Trust with the poster.</li>
<li>Relevance to the reader.</li>
</ul>
<p>Assuming everything else is equal, the &#8220;pretty&#8221; URL would likely attract more clicks.<sup>2</sup></p>
<p><strong>When should I avoid using a Custom URL?</strong></p>
<p>There are cases where a custom URL is not ideal. They are often longer, which is impractical under tight space constraints. Though I would argue that a more descriptive URL recovers anything you give up due to reduced introductory text.</p>
<p>It may also be preferred to avoid Custom URLs with intentionally blind links. Affiliate links are a common example of this (ethical issues with this aside). Consider the following:</p>
<ul>
<li>http://c.olstrom.com/4c9f</li>
<li>http://c.olstrom.com/thesis</li>
<li>http://diythemes.com/?a_aid=WhatTheFork</li>
</ul>
<p>Of those, two suggest a connection between the person providing the link, and the destination.<sup>3</sup> This may affect how a prospect perceives the link,<sup>4</sup> and in cases like this, avoiding a custom URL is beneficial.<sup>5</sup></p>
<p>If a user would not click a link <em>knowing what it is</em>, tricking them into clicking it is dishonest, and deservedly damages trust. If you feel differently, please share your opinion in a comment.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=581&amp;ts=1268011653" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/explain/custom-urls/">What are Custom URLs?</a></p>
<ol class="footnotes"><li id="footnote_0_581" class="footnote">I refer to a link as &#8220;blind&#8221; if it is not obvious where it leads without clicking on it.</li><li id="footnote_1_581" class="footnote">I am speculating on this point. Feel free to disagree in the comments.</li><li id="footnote_2_581" class="footnote">Admittedly, this is not clear to everyone.</li><li id="footnote_3_581" class="footnote">Regardless of your stance in the &#8220;paid link disclosure&#8221; debate, there are people out there who feel that anyone making money at this is untrustworthy.</li><li id="footnote_4_581" class="footnote">This applies more to links provided off-site. If presenting the link on your site, a custom URL is unlikely to negatively affect trust.</li></ol><img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=581&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/explain/custom-urls/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/explain/custom-urls/#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/explain/custom-urls/&title=What are Custom URLs?">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/2c9bcQ4Q7Qg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/explain/custom-urls/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/explain/custom-urls/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=custom-urls</feedburner:origLink></item>
		<item>
		<title>On Limitations and Self Doubt</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/FpyW6arf3fk/</link>
		<comments>http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:53:49 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=480</guid>
		<description>I&amp;#8217;ve been told by more than one person that I take on too many projects. While there are elements of truth to that, I have no intention of stopping. Why?
I don&amp;#8217;t like limitations.
Not that I don&amp;#8217;t believe in them, but at any given time I can make a guess as to where my limits are and [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/"&gt;On Limitations and Self Doubt&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been told by more than one person that I take on too many projects. While there are elements of truth to that, I have no intention of stopping. Why?</p>
<p><strong>I don&#8217;t like limitations.</strong></p>
<p>Not that I don&#8217;t believe in them, but at any given time I can make a guess as to where my limits are <em>and be wrong</em>. If I sell myself short, I may have missed out by not trying. On the other hand, if I overestimate my reach, I may fail.</p>
<p>Given the choice, <em>I&#8217;ll take failure over surrender every time</em>. Why?</p>
<p><strong>If I act and fail:</strong></p>
<ul>
<li>I replace speculation with certainty. I <em>know</em> that I did not succeed.</li>
<li>I gain the opportunity to assess what led to this outcome.</li>
<li>Understanding how I failed, I can refine the skills required to succeed.</li>
<li>I can change the actions<sup>1</sup> that led to failure, and succeed.</li>
</ul>
<p><strong>If I fail to act:</strong></p>
<ul>
<li>I create doubt from uncertainty.</li>
<li>I deny myself the ability to learn.</li>
<li>I avoid risk, yet gain nothing.</li>
<li>I still do not succeed.</li>
</ul>
<p><strong>So why do people give up before trying?</strong></p>
<p>In a word, fear. The paralyzing fear that they are not good enough, that they may fail, and that they may have to face that as reality, rather than possibility. Anyone can claim anything, as long as no need for proof exists. When faced with an opportunity to prove those claims, fear begins to take hold, chipping away at confidence, sneaking questions in that serve no purpose: Can I really do this as well as I thought? If I can&#8217;t, what will people think of me?</p>
<p><em>Society has ground into us the (flawed) perception that failure is shameful.</em> This suggests that it is something to avoid, when the truth is that facing failure head-on is an act of courage, one of self-reliance and trust in yourself.</p>
<p>We disguise this with clever terms like &#8220;risk management&#8221;, but a name doesn&#8217;t change what it is or what it means. To be ruled by fear is to accept that you will never be more than you are in this moment. And that is simply not acceptable.</p>
<p>Empower yourself.</p>
<p><em><strong>&#8220;I can&#8217;t.&#8221;</strong></em></p>
<p>A phrase that should never be uttered. &#8220;I won&#8217;t&#8221; is acceptable. It says &#8220;I choose not to&#8221;, accepting responsibility for the decision. If you are not confident in your ability to act, start by taking control of your decisions. Own your choices.</p>
<p><em><strong>&#8220;I don&#8217;t have time.&#8221;</strong></em></p>
<p>What you really mean when you say this is &#8220;I don&#8217;t want to make time&#8221;. If it were important enough, you would make time. You choose not to.</p>
<p><em><strong>&#8220;It&#8217;s too hard.&#8221;</strong></em></p>
<p>If a situation seems overwhelming, break it down into smaller elements and digest them one at a time. Establish a foundation and build from that. No problem is insurmountable, if you are willing to spend the time.</p>
<p>What about you? How do you handle self-doubt?</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=480&amp;ts=1268011653" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/">On Limitations and Self Doubt</a></p>
<ol class="footnotes"><li id="footnote_0_480" class="footnote">Very few opportunities never come again, despite what salesmen claim. It may take more effort, granted.</li></ol><img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=480&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/#comments">8 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/&title=On Limitations and Self Doubt">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/FpyW6arf3fk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/on-limitations-and-self-doubt/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=on-limitations-and-self-doubt</feedburner:origLink></item>
		<item>
		<title>Non-Referrals in Affiliate Programs</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/sqKjeJ3juvM/</link>
		<comments>http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 02:12:57 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[affiliate]]></category>
		<category><![CDATA[eclipsehosters]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[referral]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/09/17/unreferred-referrals/</guid>
		<description>Traditional affiliate programs segment conversions into two (main) categories:

Originating from an affiliate, which trigger compensation to the linked account.
Everything else, where that compensation is gravy for the business.

The simple reality is that purchases without referrals are more profitable, at least in the context of that single transaction.
How then, do we handle non-referrals?
Keeping things as they [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/"&gt;Non-Referrals in Affiliate Programs&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>Traditional affiliate programs segment conversions into two (main) categories:</p>
<ul>
<li>Originating from an affiliate, which trigger compensation to the linked account.</li>
<li>Everything else, where that compensation is gravy for the business.</li>
</ul>
<p>The simple reality is that purchases without referrals are more profitable, at least in the context of that single transaction.</p>
<p><strong>How then, do we handle <em>non-referrals</em>?</strong></p>
<p>Keeping things as they are would mean doing nothing. Retaining the extra as profit, which the company is absolutely entitled to do, but that makes for a very boring discussion. Let us explore alternative uses for it.</p>
<p><strong>Affiliate Rewards</strong></p>
<p><strong>Competition</strong></p>
<p>Use it as a prize fund for an affiliate competition. Material prizes or cash may work well, but ask your affiliates which they would prefer! Depending on the number of affiliates competing, consider a multi-tiered competition. Discouraging new affiliates by pitting them against established veterans does not seem wise.</p>
<p><strong>Bonuses<br />
</strong></p>
<p>Apply it as a bonus to select affiliates based on predefined criteria, such as:</p>
<ul>
<li>Top performing newcomer (most leads, sales, revenue generated, in 30-45 days since enrolment).</li>
<li>Most improved affiliate (raw metrics increase, percentages are too easy to game).</li>
<li>Highest retention rate (based on some hybrid metric of referrals still active and ages of those accounts).</li>
</ul>
<p><strong>Random Prizes</strong></p>
<p>Randomly gift it to affiliates. The pool of candidates could be drawn from:</p>
<ul>
<li>All affiliates.</li>
<li>Active affiliates (made a sale in the last N days).</li>
<li>New affiliates enrolled in the program for less than N weeks (inspiration).</li>
<li>Veteran affiliates (loyalty).</li>
</ul>
<p>Combining these methods would be effective too. Multiple draws with different criteria.</p>
<p><strong>Client Rewards</strong></p>
<p>Much like affiliate bonuses, except the rewards are given to clients instead.</p>
<ul>
<li>A free N months of service, for recurring billing situations.</li>
<li>A license for another product offered by your company.</li>
<li>An extra license to gift to another party.</li>
</ul>
<p>Applying the criteria outlined earlier for affiliates (loyalty rewards for long term clients, and motivational bonuses for newer clients), these rewards can create a positive client experience.</p>
<p>Consider a product that offers multiple editions (Personal and Professional, for example). Offer gift licenses (for distribution to another party) to a handful of randomly selected clients who have the Professional Edition, then track upgrades from those gift licenses and treating it as an affiliate sale  or upgrade.</p>
<p>How effective would something like this be?</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=17&amp;ts=1268011653" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/">Non-Referrals in Affiliate Programs</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=17&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/&title=Non-Referrals in Affiliate Programs">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/affiliate/" rel="nofollow tag">affiliate</a>, <a href="http://chris.olstrom.com/blog/tag/eclipsehosters/" rel="nofollow tag">eclipsehosters</a>, <a href="http://chris.olstrom.com/blog/tag/marketing/" rel="nofollow tag">marketing</a>, <a href="http://chris.olstrom.com/blog/tag/referral/" rel="nofollow tag">referral</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/sqKjeJ3juvM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/business/non-referrals-in-affiliate-programs/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=non-referrals-in-affiliate-programs</feedburner:origLink></item>
		<item>
		<title>Proxies: What They Are and How to Use Them.</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/o84HO_H3n3g/</link>
		<comments>http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 05:44:50 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Privacy]]></category>
		<category><![CDATA[activism]]></category>
		<category><![CDATA[anonymity]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[free information]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=157</guid>
		<description>&amp;#8220;If the freedom of speech is taken away then dumb and silent we may be led, like sheep to the   slaughter.&amp;#8221; &amp;#8211;George Washington
What the hell is a proxy, and why do I want one?
Proxies are best described as relays. You send a request *through* it, and receive them back in much the [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/"&gt;Proxies: What They Are and How to Use Them.&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p><span class="Quote"> </span></p>
<blockquote><p><em>&#8220;If the freedom of speech is taken away then dumb and silent we may be led, like sheep to the   slaughter.&#8221;</em> &#8211;George Washington</p></blockquote>
<p><strong>What the hell is a proxy, and why do I want one?</strong></p>
<p>Proxies are best described as relays. You send a request *through* it, and receive them back in much the same fashion. Consider the following example, using the classic Alice and Bob characters.</p>
<p>Alice wants to deliver a message to Justin without revealing her identity. She asks Bob him to deliver it. Bob hands the message to Justin, who reads the message and replies to Bob. Bob takes this reply to Alice.</p>
<p>This is effectively how a proxy server works. In short, the important part for anonymity is that as far as the destination host understands, all messages originate from the proxy server, and the user(s) behind it are not exposed. As far as Justin understands, he is talking to Bob. The only way he would be aware that the message did come from Alice, would be if she indicated that in the message.</p>
<p>Similarly, a proxy server obscures the IP address of the sender. However, if you sign your messages, they can still be identified as coming from you. If you use a pseudonym that leads back to you then once again: <em>you are not anonymous</em>. In this way, proxies allow the bypassing of certain restrictions (such as accessing a public site that denies access to certain users).</p>
<p><strong>Advantages of Proxy Servers:</strong></p>
<ul>
<li>As long as you can connect to a given proxy, you can connect to any service it can connect to.</li>
<li>So long as you do not leave any information that leads back to you, your identity is not revealed.</li>
<li>Proxies are trivial to set up.</li>
</ul>
<p><strong>Real-world examples of proxy benefits:</strong></p>
<ul>
<li>In China, a citizen can access a censored site by routing their request through a proxy that has not been blocked, bringing information in from the outside world.</li>
<li>In Iran, protesters can use proxies to get information to the outside word, despite restricted media coverage.</li>
</ul>
<p><strong>Disadvantages of Proxy Servers</strong>:</p>
<ul>
<li> Proxies are easily blocked by network administrators.</li>
<li>A compromised proxy server may pose a greater threat than no proxy at all.</li>
<li>Your identity is not hidden from the proxy server itself.</li>
</ul>
<p><strong>Risks Involved with Compromised Proxy Servers</strong></p>
<ul>
<li>The server may alter messages sent through it without the sender&#8217;s knowledge.</li>
<li>The server may fail to deliver a message, either through intention or fault. The sender may not receive notification of this failed delivery. A malicious proxy may report success.</li>
<li>A compromised proxy server may log data sent through it  and use this against the sender. This is especially problematic in cases where users want anonymity for personal safety.</li>
</ul>
<p>An especially nefarious proxy may combine these methods, logging the messages sent through, but not delivering them in their original form. If the user checks to confirm delivery (such as refreshing a thread on a forum, or fetching an article on Usenet), the proxy may replay the logged message, and insert it into the content (this would be computationally expensive, and likely very tricky to carry out in real-time). As far as the sender knows, delivery was successful, but the contents of the message may differ.</p>
<p><strong>What kind of proxy server should I look for?<br />
</strong></p>
<p>Proxies come in three main flavours: Web-based, HTTP and SOCKS. Simply put, SOCKS proxies don&#8217;t understand what they are passing back and forth. It is protocol-blind, simply relaying from sender to destination with minimal alteration (the primary difference between SOCKSv4 and SOCKSv5 is that v4 is TCP only, and v5 supports UDP as well as TCP. UDP is useful for such things as proxied DNS queries). HTTP proxies have a few perks to them, as it relates to your privacy. Web-based proxies (such as CGI Proxy or Glype) are usually trivial to deploy, but can only be accessed through a browser. This limits their usefulness, but does not deny it entirely.</p>
<p>As an example of clever HTTP proxies, Privoxy performs several useful functions as well as acting as a relay. It can handle cookies, strip advertising from pages, and even un-animate animated GIFs.</p>
<p>The same capabilities that allow HTTP proxies to enhance your privacy can also be used to weaken it. As an example, a malicious proxy could rewrite the HTTP requests to include information that may expose the sender.</p>
<p>Either style of proxy is acceptable, though <em>I would personally recommend a SOCKS5 proxy</em>, as you can feed far more through it than HTTP, such as IRC for anonymous realtime communication or FTP for anonymous file transfer.</p>
<p><strong>How do I set up a proxy server?</strong></p>
<p>You may want to do this for a number of reasons. Perhaps you want to have full control of the server, to avoid requiring trust with a third-party. Perhaps you live in a country where your access to information is not burdened by regulation or censorship, and you wish to aid the free flow of information in places where that is not the case. A topical example would be a Canadian citizen wanting to support the protesters in Iran by setting up an anonymous proxy for Iranian bloggers.</p>
<p>The simplest to deploy would be a web-based proxy, which would enable information flow through web-oriented systems such as forums. This may have been a significant limit in the past, but today there are web applications to deal with most non-web systems (databases and IRC, for instance).</p>
<p>Assuming you have a server with PHP5 available (if you don&#8217;t, Apache and PHP are in no way difficult to install, regardless of your platform), Glype is the most robust solution I am aware of, and trivial to install.</p>
<p>Simply download the zip archive, and unpack it on any accessible directory on the server.<br />
<code><br />
$ cd /path/to/www<br />
$ wget http://www.glype.com/downloads/fetch/proxy/53 -O glype-1.1.zip<br />
$ unzip glype-1.1.zip<br />
$ mv glype-1.1 proxy<br />
$ chmod o+w ./proxy/tmp<br />
</code></p>
<p>Point a browser at http://your-domain-or-ip/proxy/, and your web proxy is accessible.</p>
<p>I have set up an example of this at <a href="http://tools.olstrom.com/proxy/">http://tools.olstrom.com/proxy/</a>.</p>
<p><strong>A few points of contention with simple proxies.<br />
</strong></p>
<p>One serious concern with most proxies is the potential of compromise. With sufficient access to a network, an eavesdropper can analyze traffic in and out of a proxy server to connect actions out of the server with a user sending data into it. Non-SOCKS proxies also suffer from the issue of DNS queries not being proxied, and potentially linking back to the sender. HTTP and web-based proxies suffer from potential exposure via tracking cookies, sometimes not handled at the proxy level, but left to the client application.</p>
<p>We can compensate for some of these matters by adding random delays between send and relay actions (at the cost of increased latency), and padding the output with useless data (generally headers that would be ignored, but in many cases, padding content is practical too). Strong encryption is also a practical route, though it requires support on both ends. Given the minimal barrier to entry, it&#8217;s something of a mystery that encryption is not ubiquitous by now, but that&#8217;s a subject for another rant.</p>
<p><a href="http://en.wikipedia.org/wiki/Onion_routing">Onion routing</a> is a solution that addresses many of these concerns. It works like a <a href="http://en.wikipedia.org/wiki/Matryoshka_doll">Matryoshka</a><a href="http://en.wikipedia.org/wiki/Matryoshka_doll"> Doll</a>, by encrypting data with several layers of encryption, and relayed across a network of many proxies (nodes). Each node decrypts a layer of the onion (having the keys to only that layer) and reveals the next point, sending the remaining data there. This process repeats until delivery of the original data occurs. Each node only knows anything about  the nodes before and after it in the route taken. As these nodes are often in different countries, the legal complexities of coordinating data collection efforts work to the beneficial to those seeking anonymity.</p>
<p><a href="http://www.torproject.org/">Tor</a> is a prevalent Onion Routing network, and quite simple to set up. However, it is worth noting that the exit node on any given route still has access to the unencrypted data (required to relay it to the destination) unless the connection uses SSL between client and server.</p>
<p>Download Tor, install it with the included installer, and then reconfigure your browser to use it. <a href="http://foxyproxy.mozdev.org/">FoxyProxy</a> and <a href="https://www.torproject.org/torbutton/">TorButton</a> are two extensions for Firefox to make it convenient to toggle between proxies. Configuration without either extension should simply involve setting &#8220;Use Proxy Server&#8221; to manual, and setting it to host 127.0.0.1, port 9050.</p>
<p>Proxies are one means of preserving some degree of anonymity, but they are not without their faults. I will introduce some concepts that may address those concerns. For now, this should offer some groundwork for setting up proxies, and using them.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=157&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/">Proxies: What They Are and How to Use Them.</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=157&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/#comments">5 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/&title=Proxies: What They Are and How to Use Them.">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/activism/" rel="nofollow tag">activism</a>, <a href="http://chris.olstrom.com/blog/tag/anonymity/" rel="nofollow tag">anonymity</a>, <a href="http://chris.olstrom.com/blog/tag/censorship/" rel="nofollow tag">censorship</a>, <a href="http://chris.olstrom.com/blog/tag/free-information/" rel="nofollow tag">free information</a>, <a href="http://chris.olstrom.com/blog/tag/freedom/" rel="nofollow tag">freedom</a>, <a href="http://chris.olstrom.com/blog/tag/privacy/" rel="nofollow tag">Privacy</a>, <a href="http://chris.olstrom.com/blog/tag/proxy/" rel="nofollow tag">proxy</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/o84HO_H3n3g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=proxies-what-they-are-and-how-to-use-them</feedburner:origLink></item>
		<item>
		<title>Defend Your Right to Privacy</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/hRXTSTBPIvQ/</link>
		<comments>http://chris.olstrom.com/blog/privacy/defend-your-right/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 16:11:38 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Privacy]]></category>
		<category><![CDATA[cypherpunk]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[iran election]]></category>
		<category><![CDATA[protests]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=139</guid>
		<description>The Problem
Privacy is about choice. To have the freedom to act without fear of reprisal, should you so choose. It does not imply that all things require privacy, or that secrecy is always the best alternative. Private citizens should have the choice, and that choice begins with knowing the options.
A (Partial) Solution
I will be distributing [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/privacy/defend-your-right/"&gt;Defend Your Right to Privacy&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p><strong>The Problem</strong></p>
<p>Privacy is about choice. To have the freedom to act without fear of reprisal, should you so choose. It does not imply that all things require privacy, or that secrecy is always the best alternative. Private citizens should have the choice, and that choice begins with knowing the options.</p>
<p><strong>A (Partial) Solution</strong></p>
<p>I will be distributing information on how to defend your right to privacy. Anonymous information exchange, strong encryption, and other means of staying below the radar. My focus will be on digital privacy. Meatspace is an entirely different bag of snakes, and one I will not make more than a passing attempt at addressing. I will make some recommendations with regards to building your personal privacy toolbox, favouring open source software, if only because it affords the transparency required to trust it with something as vital as personal freedom.</p>
<p><strong>Why Now?</strong></p>
<p>The current attempts to control media coverage in Iran now highlight the need for increased awareness of privacy. With major news entities such as the BBC having reduced access (if any) to the events on the ground, much of what we know comes from those involve in the events themselves. But in a country where controls on information flow are well-established, this puts the people sharing this information at risk. If they are unable to get information about what is happening <strong>out</strong>, the only remaining source will be state-controlled media. And with the eyes of the world on them, I am confident that they will sculpt the information to present an idealized account of events.</p>
<p>Without strong privacy measures, an uncomfortable choice between personal safety and the free flow of information exists.</p>
<p>Paul Jones outlines some <a href="http://lists.ibiblio.org/pipermail/internetworkers/2001-May/003302.html">myths about privacy</a> that are unfortunately all too common.</p>
<p><strong>Only Those with Something to Hide Need Privacy.</strong></p>
<p>A dangerous thought process. Who defines what needs hiding? Common definitions include things that would get the person seeking privacy in some form of trouble if connected to it.</p>
<p>A problem exists when we base definitions on laws. When the lawmakers are corrupt, and information control furthers oppression, things become much less black-and-white.</p>
<p><strong>Privacy Impedes the Free Flow of Information</strong></p>
<p>Far from it! Only without fear of reprisal can information be disseminated freely. Take the violence between the pro-government Basij and the protestors in Iran over the past week. Those distributing pictures, videos, and personal accounts of the events do so at significant risk to themselves. Some have paid a high price to share that information with the media.</p>
<p><strong>Technology Always Invades Privacy</strong></p>
<p>Technology is one of the driving forces in ensuring privacy. While there are technologies that exist to impede privacy (for instance, we can thank Nokia and friends for aiding the Iranian government in controlling cellular communication in the region), there exists a counterpart to most invasive applications of technology.</p>
<p>We can overcome traffic shaping with methods such as embedding one data stream in another or wrapping data in a layer of encryption. We can fight unacceptable activities such as monitoring private email communications with strong encryption. Censorship of &#8220;unapproved&#8221; information falls to <a href="http://chris.olstrom.com/blog/privacy/proxies-what-they-are-and-how-to-use-them/?source=rss">proxies</a> or alternative distribution methods.</p>
<p><strong>Privacy Costs Too Much</strong></p>
<p>That really depends on how you define cost. Is freedom an acceptable cost? Without privacy, personal freedom becomes very difficult to protect.</p>
<p><strong>Enough Privacy Protection is Already in Place</strong></p>
<p>While it is true that measures exist to offer some assurance of privacy, the point is moot if information on how to use them is not widespread. My intention in writing this is to put that information into your hands, and give you the choice.</p>
<p>Knowledge and awareness are two things rightly feared by any would-be oppressors. An empowered, impassioned community will not go quietly.</p>
<p><strong>Privacy is Already Lost, So Get Over It</strong></p>
<p>Privacy is lost the moment we stop caring, and stop acting. If there&#8217;s one thing an oppressive regime would like more than a passive people ignorant of their ability to resist, it&#8217;s a people who have already accepted defeat as either inevitable or already complete.</p>
<blockquote><p><em>&#8220;In war as in life, it is often necessary when some cherished scheme has failed, to take up the best alternative open, and if so, it is folly not to work for it with all your might.&#8221;</em> &#8212; Winston Churchill</p></blockquote>
<p>The state of affairs in some regions is dismal, yes. Governments deploy measures to deny citizens their right to privacy, and those who speak out suffer for it. Yet even under such circumstances, the opportunity to reclaim freedom exists. Concepts such as <a href="http://ciphersaber.gurus.org/">CipherSaber</a> exist for exactly this sort of situation.</p>
<p><strong>What Can Be Done?</strong></p>
<p><a href="http://lists.ibiblio.org/pipermail/internetworkers/2001-May/003302.html">In the same thread</a> Edward Wesolowski expresses concern over how privacy may &#8220;fall into the are of &#8216;things I can&#8217;t control&#8217;.</p>
<p>Pick up the <a href="http://feeds2.feedburner.com/ChrisOlstrom">feed</a>, and I&#8217;ll show you how wrong he is.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=139&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/privacy/defend-your-right/">Defend Your Right to Privacy</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=139&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/privacy/defend-your-right/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/privacy/defend-your-right/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/privacy/defend-your-right/&title=Defend Your Right to Privacy">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/cypherpunk/" rel="nofollow tag">cypherpunk</a>, <a href="http://chris.olstrom.com/blog/tag/freedom/" rel="nofollow tag">freedom</a>, <a href="http://chris.olstrom.com/blog/tag/iran-election/" rel="nofollow tag">iran election</a>, <a href="http://chris.olstrom.com/blog/tag/privacy/" rel="nofollow tag">Privacy</a>, <a href="http://chris.olstrom.com/blog/tag/protests/" rel="nofollow tag">protests</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/hRXTSTBPIvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/privacy/defend-your-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/privacy/defend-your-right/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=defend-your-right</feedburner:origLink></item>
		<item>
		<title>Anonymous Message to Iranian Government</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/syLWEP5rz7c/</link>
		<comments>http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 13:19:07 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Political]]></category>
		<category><![CDATA[Anonymous]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[iran election]]></category>
		<category><![CDATA[protests]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=165</guid>
		<description>http://iran.whyweprotest.net
Twitter: #iranelection #gr88 #neda
Hello, leaders of Iran. We are Anonymous.
As the eyes of the entire world hold you under close scrutiny, the eyes of the internet have taken a similar notice of your recent actions. While the governments of the world condemn you for your suppression of human rights, Anonymous has taken a particular interest [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/"&gt;Anonymous Message to Iranian Government&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><blockquote><p><a href="http://iran.whyweprotest.net">http://iran.whyweprotest.net</a><br />
Twitter: <a href="http://search.twitter.com/search?q=%23iranelection">#iranelection</a> <a href="http://search.twitter.com/search?q=%23gr88">#gr88</a> <a href="http://search.twitter.com/search?q=%23neda">#neda</a></p>
<p>Hello, leaders of Iran. We are Anonymous.</p>
<p>As the eyes of the entire world hold you under close scrutiny, the eyes of the internet have taken a similar notice of your recent actions. While the governments of the world condemn you for your suppression of human rights, Anonymous has taken a particular interest in your recent attempts to censor the internet, not only for your own people, but for the citizens of the entire world.</p>
<p>Such suppression of dissent cannot go unpunished. By cutting off communication of the Iranian citizens to the rest of the world, you have made it clear to us that the most revered of human rights &#8211; the right to free speech &#8211; is no longer important to you. By seeking to silence the voice of the people in an election and subsequently seeking to silence criticism of such a gross cover-up, you have perpetuated the anger and rage of your people. Anonymous has therefore made it our mission to see to it that the voice of the Iranian people can be heard around the world.</p>
<p>Just like another authoritarian religious extremist group, Anonymous will tear down the walls of silence using only the truth &#8211; the truth that you are trying so hard to suppress by use of violence, intimidation, and fascist laws.</p>
<p>As your people continue to riot and to speak out against you; as you continue to beat and shoot your own citizens in the street; as you continue to lie to the face of the entire world; know that the internet is watching &#8211; and we do not like what we see.</p>
<p>Knowledge is free.</p>
<p>We are Anonymous.<br />
We are Legion.<br />
We do not forgive.<br />
We do not forget.</p>
<p>Expect us.</p></blockquote>
<p><strong><a href="http://www.youtube.com/watch?v=_hUFv5c4lFg&amp;feature=channel">Anonymous Message to Iranian Government</a></strong> on YouTube</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=165&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/">Anonymous Message to Iranian Government</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=165&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/&title=Anonymous Message to Iranian Government">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/anonymous/" rel="nofollow tag">Anonymous</a>, <a href="http://chris.olstrom.com/blog/tag/freedom/" rel="nofollow tag">freedom</a>, <a href="http://chris.olstrom.com/blog/tag/iran-election/" rel="nofollow tag">iran election</a>, <a href="http://chris.olstrom.com/blog/tag/protests/" rel="nofollow tag">protests</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/syLWEP5rz7c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/political/anonymous-message-to-iranian-government/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=anonymous-message-to-iranian-government</feedburner:origLink></item>
		<item>
		<title>enBot Published on Google Code</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/8dJ5_nvbV6Q/</link>
		<comments>http://chris.olstrom.com/blog/project/enbot-published-on-google-code/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 16:31:22 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[enbot]]></category>
		<category><![CDATA[google code]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=78</guid>
		<description>It&amp;#8217;s been a while since I&amp;#8217;ve worked on enBot (December &amp;#8216;05, actually), but I still get people downloading it. It&amp;#8217;s no less stable now than when it was last updated, I just haven&amp;#8217;t seen a lot of need for changes to it.
I&amp;#8217;ve published the source on Google Code, with the hopes that it will be [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/project/enbot-published-on-google-code/"&gt;enBot Published on Google Code&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>It&#8217;s been a while since I&#8217;ve worked on enBot (December &#8216;05, actually), but I still get people downloading it. It&#8217;s no less stable now than when it was last updated, I just haven&#8217;t seen a lot of need for changes to it.</p>
<p>I&#8217;ve published the source on Google Code, with the hopes that it will be more accessible to more people this way. I still consider it an Active Project, and will make any fixes needed, should the need arise.</p>
<p>I have also converted the development history to a series of Mercurial change logs. Those are also visible on the <a href="http://code.google.com/p/enbot/"title="enBot Project Page" >Project page</a>, along with the documentation extracted from the <a href="http://chris.olstrom.com/software/perl/enbot/doc/1.x/readme.txt"title="enBot Readme for 1.x Branch" >README</a> file, published on the suitable wiki pages (see the pages on <a href="http://code.google.com/p/enbot/wiki/WritingModules"title="Writing Modules for enBot" >Writing Modules</a> and <a href="http://code.google.com/p/enbot/wiki/InstallingModules"title="Installing Modules for enBot" >Installing Modules</a>).</p>
<p>Please file bug reports with the <a href="http://code.google.com/p/enbot/issues/list"title="enBot Issue Tracker" >Issue Tracker</a>, and the source is <a href="http://code.google.com/p/enbot/source/checkout"title="Source Checkout for enBot" >available for checkout</a>.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=78&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/project/enbot-published-on-google-code/">enBot Published on Google Code</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=78&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/project/enbot-published-on-google-code/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/project/enbot-published-on-google-code/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/project/enbot-published-on-google-code/&title=enBot Published on Google Code">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/bot/" rel="nofollow tag">bot</a>, <a href="http://chris.olstrom.com/blog/tag/development/" rel="nofollow tag">development</a>, <a href="http://chris.olstrom.com/blog/tag/enbot/" rel="nofollow tag">enbot</a>, <a href="http://chris.olstrom.com/blog/tag/google-code/" rel="nofollow tag">google code</a>, <a href="http://chris.olstrom.com/blog/tag/irc/" rel="nofollow tag">irc</a>, <a href="http://chris.olstrom.com/blog/tag/mercurial/" rel="nofollow tag">mercurial</a>, <a href="http://chris.olstrom.com/blog/tag/perl/" rel="nofollow tag">perl</a>, <a href="http://chris.olstrom.com/blog/tag/project/" rel="nofollow tag">Project</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/8dJ5_nvbV6Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/project/enbot-published-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/project/enbot-published-on-google-code/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=enbot-published-on-google-code</feedburner:origLink></item>
		<item>
		<title>Shoemoney Xtreme Internet Marketing Program – Free Lunch or Not?</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/3Cy2Fm05_lQ/</link>
		<comments>http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/#comments</comments>
		<pubDate>Sat, 23 May 2009 23:14:49 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[affiliate]]></category>
		<category><![CDATA[internet marketing]]></category>
		<category><![CDATA[make money online]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[referral]]></category>
		<category><![CDATA[shoemoney]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=72</guid>
		<description>I posted on Twitter earlier about Shoemoney&amp;#8217;s new Xtreme Internet Marketing Program, and I&amp;#8217;m surprised at the amount of cynicism I received via comments (on Facebook, which pulls from my Twitter feed) and direct messages (on Twitter). Paul Cross summed up the general response well when he said:
TANSTAAFL
That&amp;#8217;s &amp;#8220;There Ain&amp;#8217;t No Such This As A Free [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/"&gt;Shoemoney Xtreme Internet Marketing Program &amp;#8211; Free Lunch or Not?&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>I posted on <a href="http://twitter.com/ChrisOlstrom"onclick="javascript: pageTracker._trackPageview('/outbound/twitter.com/ChrisOlstrom');" >Twitter</a> earlier about Shoemoney&#8217;s new <em>Xtreme Internet Marketing Program</em>, and I&#8217;m surprised at the amount of cynicism I received via comments (on Facebook, which pulls from my Twitter feed) and direct messages (on Twitter). <a href="http://youtube.com/Skjie"onclick="javascript: pageTracker._trackPageview('/outbound/youtube.com/Skjie');" >Paul Cross</a> summed up the general response well when he said:</p>
<blockquote><p>TANSTAAFL</p></blockquote>
<p>That&#8217;s &#8220;<em>There Ain&#8217;t No Such This As A Free Lunch</em>&#8221; for the acronym-impaired. <a href="http://www.geoffmetcalf.com/lunch_20010625.html"onclick="javascript: pageTracker._trackPageview('/outbound/geoffmetcalf.com');" >Geoff Metcalf</a> elaborates on this, stating:</p>
<blockquote><p>Everything you use or consume (other than fresh air) has to be produced or at least brought to you by someone. And that &#8220;someone&#8221; usually doesn&#8217;t do that gratuitously.</p></blockquote>
<p>So let&#8217;s clarify this. <a href="http://www.shoemoney.com/">Shoemoney</a> is <strong>not</strong> doing this out of the goodness of his heart. He certainly is doing it to make money. But that doesn&#8217;t mean this program is some sleazy sales pitch, or worthless in any way. For those unfamiliar with how affiliate networks work, they tend to have a referral element. If you refer someone in, you tend to get a bonus based on their performance. The network wins because they have more marketers pushing their offers, so paying out a little bit extra doesn&#8217;t hurt them.</p>
<p>So what I imagine Shoemoney <strong>is</strong> doing, is handing out this information, and referring people into various networks as part of the offer. Most networks don&#8217;t cost anything to join (though many do have strict requirements on things like readership, traffic volume, promotional methods, etc).</p>
<p>By providing solid quality in his guides, he gets these new referrals performing well, which in turn provides him with some extra passive income. There really isn&#8217;t any incentive for Shoemoney to scam people, since the better these trainees do, the more money he makes. So really, he has every reason to make his <a href="http://chris.olstrom.com/blog/recommends/ShoemoneyX?source=rss"onclick="javascript: pageTracker._trackPageview('/outbound/shoemoneyx.com');" >Xtreme Internet Marketing Program</a> top-notch, scam-free, and as easy to follow as possible.</p>
<p><strong>Jeremy is not trying to scam anyone.</strong></p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=72&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/">Shoemoney Xtreme Internet Marketing Program &#8211; Free Lunch or Not?</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=72&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/&title=Shoemoney Xtreme Internet Marketing Program &#8211; Free Lunch or Not?">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/affiliate/" rel="nofollow tag">affiliate</a>, <a href="http://chris.olstrom.com/blog/tag/internet-marketing/" rel="nofollow tag">internet marketing</a>, <a href="http://chris.olstrom.com/blog/tag/make-money-online/" rel="nofollow tag">make money online</a>, <a href="http://chris.olstrom.com/blog/tag/marketing/" rel="nofollow tag">marketing</a>, <a href="http://chris.olstrom.com/blog/tag/referral/" rel="nofollow tag">referral</a>, <a href="http://chris.olstrom.com/blog/tag/shoemoney/" rel="nofollow tag">shoemoney</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/3Cy2Fm05_lQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/shoemoney-xtreme-internet-marketing-program-free-lunch-or-not/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=shoemoney-xtreme-internet-marketing-program-free-lunch-or-not</feedburner:origLink></item>
		<item>
		<title>Staying Connected</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/utrUzLG2LkQ/</link>
		<comments>http://chris.olstrom.com/blog/personal/staying-connected/#comments</comments>
		<pubDate>Tue, 19 May 2009 22:20:24 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[instant-messaging]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=65</guid>
		<description>My mobile phone (with Telus Mobility) keeps me connected. This isn&amp;#8217;t about the talk and text crap, you can find that anywhere. What I&amp;#8217;m about to describe is why I chose to have a data device, as they are often referred to. This is not specific to Telus Mobility. I&amp;#8217;ll leave the ranting about which [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/personal/staying-connected/"&gt;Staying Connected&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>My mobile phone (with Telus Mobility) keeps me connected. This isn&#8217;t about the talk and text crap, you can find that anywhere. What I&#8217;m about to describe is why I chose to have a <em>data device</em>, as they are often referred to. This is not specific to Telus Mobility. I&#8217;ll leave the ranting about which carrier is best to people who care. I&#8217;m with Telus, I have no intention of moving elsewhere so long as the service offered continues to meet my needs.</p>
<p>When most of the people you communicate with have similarly powerful handsets, the communication game changes slightly. Traditional mobile chatter (voice and SMS) declines, as modern alternatives replace it. No longer burdened with the limited character-count of text messaging (tangent: 140 characters is more than enough to tweet, but not always enough to text), more interactive formats move in. XMPP (Google Talk or Jabber), Yahoo! IM, Live Messenger, ICQ, AIM, whatever the protocol<sup>1</sup>, they all support similar features (why they haven&#8217;t been merged into a universal protocol is somewhat a mystery). Unlimited character count is a big one, and not just for long thoughts. SMS charges (when your plan doesn&#8217;t include unlimited usage) are the same for any length within the allowable limits. So a casual greeting has the same cost as a 160-character masterpiece. When your conversations consist predominantly of short statements, this is a big cost-saver.</p>
<p>So to me, SMS is dead. The few messages I get are either someone telling me to hop on another protocol (typically Google Talk), or notifications for various SMS-enabled services (Direct Messages on Twitter, for instance).</p>
<p>So with my shiny HTC P3050 (Touch or Vogue, depending on <a href="http://www.dufault.info/">who</a> <a href="http://store.telusmobility.com/bc/phone___smartphones/np30501gb.htm">you</a> <a href="http://www.htc.com/www/product/touch/overview.html">ask</a>), I can stay connected to the crazy data feed that is the social network<sup>2</sup>. And for non-instant communication, <a href="http://www.tinytwitter.com/">Tiny Twitter</a> for Windows Mobile keeps me jacked in to the data stream by feeding me my regular dose of <a href="http://twitter.com/ChrisOlstrom">Twitter</a>.</p>
<p>The P3050 also has a camera that tops the one my Blackberry 8130 had (2.0 megapixels vs 1.3 megapixels), and it can upload to <a href="http://www.flickr.com/photos/colstrom/">Flickr</a><sup>3</sup> too.</p>
<p>In addition to being a damned fine web browser (seriously, it eats Flash and AJAX apps for snacks), <a href="http://www.skyfire.com/">Skyfire</a> keeps me &#8220;informed&#8221; of the lives of people so far removed from my social interactions that I barely remember who they are, let alone that they just spawned a child. Despite supporting other streams (including <a href="http://twitter.com/ChrisOlstrom">Twitter</a> and YouTube), Facebook is the only one I use with it. I find the Twitter integration somewhat lacking<sup>4</sup>.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=65&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/personal/staying-connected/">Staying Connected</a></p>
<ol class="footnotes"><li id="footnote_0_65" class="footnote"><a href="http://www.octro.com/">OctroTalk</a> works for multi-protocol IM, but I would prefer something free, if only to recommend to others. If you know a good one, post in the comments!</li><li id="footnote_1_65" class="footnote">Fuck <em>web 2.0</em>. A significant number of people I hear throwing this buzzword around can&#8217;t even describe what  they mean &#8212; are we talking about social media? Collaborative development? User-created content? Multimedia?</li><li id="footnote_2_65" class="footnote">I use <a href="http://mobile.yahoo.com/go">Yahoo! Go</a> to upload pictures from my phone to <a href="http://www.flickr.com/photos/colstrom/">Flickr</a></li><li id="footnote_3_65" class="footnote">Tiny Twitter isn&#8217;t perfect either, but I have yet to find something like <a href="http://www.tweetdeck.com/beta/">TweetDeck</a> for Windows Mobile (or Android). If you know of something better, share it in the comments!</li></ol><img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=65&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/personal/staying-connected/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/personal/staying-connected/#comments">6 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/personal/staying-connected/&title=Staying Connected">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/camera/" rel="nofollow tag">camera</a>, <a href="http://chris.olstrom.com/blog/tag/communication/" rel="nofollow tag">communication</a>, <a href="http://chris.olstrom.com/blog/tag/flickr/" rel="nofollow tag">flickr</a>, <a href="http://chris.olstrom.com/blog/tag/htc/" rel="nofollow tag">htc</a>, <a href="http://chris.olstrom.com/blog/tag/instant-messaging/" rel="nofollow tag">instant-messaging</a>, <a href="http://chris.olstrom.com/blog/tag/mobile/" rel="nofollow tag">mobile</a>, <a href="http://chris.olstrom.com/blog/tag/photography/" rel="nofollow tag">photography</a>, <a href="http://chris.olstrom.com/blog/tag/social-media/" rel="nofollow tag">social media</a>, <a href="http://chris.olstrom.com/blog/tag/twitter/" rel="nofollow tag">twitter</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/utrUzLG2LkQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/personal/staying-connected/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/personal/staying-connected/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=staying-connected</feedburner:origLink></item>
		<item>
		<title>Importing CSV Files to SQL Databases</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/7LT91FgmZf8/</link>
		<comments>http://chris.olstrom.com/blog/howto/import-csv-sql/#comments</comments>
		<pubDate>Sat, 02 May 2009 18:27:26 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[bulk insert]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[ms-sql]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.slack-tux.org/?p=54</guid>
		<description>CSV is a data exchange format that most software can export to, since it is a simple list of values separated by commas (hence the name). Spreadsheet programs like OpenOffice Calc, Microsoft Excel, Google Docs Spreadsheet and others commonly have an &amp;#8216;Export to CSV&amp;#8217; option, often found under the File menu.
There are scripts that convert [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/howto/import-csv-sql/"&gt;Importing CSV Files to SQL Databases&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>CSV is a data exchange format that most software can export to, since it is a simple list of values separated by commas (hence the name). Spreadsheet programs like OpenOffice Calc, Microsoft Excel, Google Docs Spreadsheet and others commonly have an &#8216;<em>Export to CSV&#8217;</em> option, often found under the <em>File</em> menu.</p>
<p>There are scripts that convert CSV to SQL, but most modern database systems support reading CSV data such as:</p>
<ul>
<li><a href="http://www.postgresql.org/">PostgreSQL</a></li>
<li><a href="http://dev.mysql.com/downloads/mysql/5.1.html">MySQL</a></li>
<li><a href="http://www.oracle.com/technology/products/database/xe/index.html">Oracle</a></li>
<li><a href="http://www.microsoft.com/Sqlserver/2005/en/us/express.aspx">Microsoft SQL Server</a></li>
<li><a href="http://www.sybase.com/products/databasemanagement/adaptiveserverenterprise">Sybase Adaptive Server Enterprise</a> (which uses the same <a href="http://en.wikipedia.org/wiki/Transact-SQL">Transact-SQL</a> dialect as MS-SQL).</li>
</ul>
<p>As they all use different syntax to import CSV data, examples are provided.</p>
<h2>Laying Out the Data</h2>
<p>This reference relies on a few assumptions. Firstly, it assumes you have obtained your data in CSV format. Secondly, good sense assumes you would not be doing this if you had a better way. Important metadata is lost by using CSV as an intermediate format. Details like Foreign Keys, column constraints, and so on.</p>
<p>For the purposes of this guide, we will be using the following dataset.<br />
<code><br />
"id","firstName","lastName"<br />
12345,"Ingrid","Insert"<br />
23456,"Eric","Example"<br />
12543,"Dave","Dataset"</code></p>
<p>All examples that follow use this CSV set.</p>
<h2>Creating the Table</h2>
<p>A simple example of a table we are importing the CSV file to.</p>
<p><code>CREATE TABLE employees (<br />
id INT NOT NULL PRIMARY KEY,<br />
firstName VARCHAR(32) NOT NULL,<br />
lastName VARCHAR(48) NOT NULL<br />
);</code></p>
<h2>Importing the Data</h2>
<p>This process isn&#8217;t terribly complicated, but it does vary according to the database system you are importing to.</p>
<h3>MySQL</h3>
<p><code>LOAD DATA INFILE '/path/to/employees.csv' INTO TABLE employees<br />
FIELDS TERMINATED BY ',' ENCLOSED BY '"'<br />
LINES TERMINATED BY '\n';</code></p>
<h3>Microsoft SQL Server and Sybase ASE</h3>
<p><code>BULK INSERT employees FROM ‘c:\path\to\employees.csv’ WITH (<br />
FIELDTERMINATOR = ‘,’,<br />
ROWTERMINATOR = ‘\n’<br />
);<br />
GO</code></p>
<h3>PostgreSQL</h3>
<p><code>COPY employees FROM '/path/to/employees.csv' DELIMITERS ',' CSV;</code></p>
<h3>Oracle</h3>
<p>Offhand I don&#8217;t know a way to import a CSV file into Oracle using only SQL or PL/SQL, but there&#8217;s a great article on Dev Shed that covers how to do it with the Oracle 10G XE administration interface. Here is a <a href="http://www.devshed.com/c/a/Oracle/Importing-a-CSV-Text-File-into-Oracle-10G-XE/2/">convenient link to the good part</a>, since if you&#8217;re reading this, you have likely already exported the CSV data, and want to know how to import that CSV to SQL.</p>
<p>Alternatively, you could convert your CSV file to SQL INSERT statements, and then execute those INSERTS. A simple <a href="http://netsource.hu/csv2sql/" target="_blank">CSV to SQL Conversion Tool</a> can do this effectively.</p>
<p>If anyone knows how to import CSV files into Oracle without using the admin GUI or an external tool, please share!</p>
<h2>References</h2>
<ul>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/load-data.html">http://dev.mysql.com/doc/refman/5.1/en/load-data.html</a></li>
<li><a href="http://www.ensode.net/postgresql_csv_import.html">http://www.ensode.net/postgresql_csv_import.html</a></li>
<li><a href="http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/">http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/</a></li>
</ul>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=657&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/howto/import-csv-sql/">Importing CSV Files to SQL Databases</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=657&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/howto/import-csv-sql/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/howto/import-csv-sql/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/howto/import-csv-sql/&title=Importing CSV Files to SQL Databases">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/bulk-insert/" rel="nofollow tag">bulk insert</a>, <a href="http://chris.olstrom.com/blog/tag/convert/" rel="nofollow tag">convert</a>, <a href="http://chris.olstrom.com/blog/tag/csv/" rel="nofollow tag">csv</a>, <a href="http://chris.olstrom.com/blog/tag/export/" rel="nofollow tag">export</a>, <a href="http://chris.olstrom.com/blog/tag/import/" rel="nofollow tag">import</a>, <a href="http://chris.olstrom.com/blog/tag/insert/" rel="nofollow tag">insert</a>, <a href="http://chris.olstrom.com/blog/tag/ms-sql/" rel="nofollow tag">ms-sql</a>, <a href="http://chris.olstrom.com/blog/tag/mysql/" rel="nofollow tag">mysql</a>, <a href="http://chris.olstrom.com/blog/tag/oracle/" rel="nofollow tag">oracle</a>, <a href="http://chris.olstrom.com/blog/tag/postgres/" rel="nofollow tag">postgres</a>, <a href="http://chris.olstrom.com/blog/tag/sql/" rel="nofollow tag">sql</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/7LT91FgmZf8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/howto/import-csv-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/howto/import-csv-sql/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=import-csv-sql</feedburner:origLink></item>
		<item>
		<title>Replacing Text in Multiple Files with sed and Regular Expressions</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/sXNpfyvQJFU/</link>
		<comments>http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 17:31:56 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[batch operation]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[for loop]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mv]]></category>
		<category><![CDATA[nano]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[text replacement]]></category>

		<guid isPermaLink="false">http://slack-tux.whatthefork.org/?p=43</guid>
		<description>Sometimes you need to replace text in more than one file.  Often a quick &amp;#8216;find and replace&amp;#8217; with your favourite text editor (CTRL+\ in nano, for instance) can do this, and when multiple files is a small number, this is a practical method. When dealing with text replacement for large sets of files, a quick [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/"&gt;Replacing Text in Multiple Files with sed and Regular Expressions&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>Sometimes you need to replace text in more than one file.  Often a quick &#8216;find and replace&#8217; with your favourite text editor (CTRL+\ in nano, for instance) can do this, and when <em>multiple files</em> is a small number, this is a practical method. When dealing with text replacement for <em>large sets of files</em>, a quick script could save you a considerable amount of time. A few examples of when you might do this are:</p>
<ul>
<li>Changing footer links in a template.</li>
<li>Updating copyright information on a static HTML site.</li>
<li>Replacing contact information in many files.</li>
</ul>
<p>One solution is very simple shell script. It requires <em>sed</em> (a classic text replacement utility), which is available on any Linux or Unix system. We can feed it a very simple regular expression, dump the output to a temporary file, and overwrite the original with it.</p>
<p><strong>Batch text replacement for multiple files with a shell script:</strong><strong><br />
</strong></p>
<pre>TMPFILE=./tmp.$$

for filename in *.txt; do
  sed 's/text_to_replace/something_to_replace_it_with/g' $filename &gt; $TMPFILE
  mv $TMPFILE $filename # Comment this line out to not overwrite the original file.
fi</pre>
<p>As mentioned above, this is just one way to carry out this task. <a href="http://www.dufault.info/">Phil Dufault</a> suggests two alternative methods (non-recursive and recursive)</p>
<p><strong>Replacing one string with another in multiple files using <em>sed</em>:</strong></p>
<blockquote>
<pre>sed -i 's,text,replacement,g' *.txt</pre>
</blockquote>
<p><strong>Recursively substituting text in many files with <em>find</em> and <em>sed</em>:</strong></p>
<blockquote>
<pre>find . -type f -iname '*.txt' -exec sed -i 's,this,that,g' {} +</pre>
</blockquote>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=656&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/">Replacing Text in Multiple Files with sed and Regular Expressions</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=656&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/&title=Replacing Text in Multiple Files with sed and Regular Expressions">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/batch-operation/" rel="nofollow tag">batch operation</a>, <a href="http://chris.olstrom.com/blog/tag/find/" rel="nofollow tag">find</a>, <a href="http://chris.olstrom.com/blog/tag/for-loop/" rel="nofollow tag">for loop</a>, <a href="http://chris.olstrom.com/blog/tag/linux/" rel="nofollow tag">linux</a>, <a href="http://chris.olstrom.com/blog/tag/mv/" rel="nofollow tag">mv</a>, <a href="http://chris.olstrom.com/blog/tag/nano/" rel="nofollow tag">nano</a>, <a href="http://chris.olstrom.com/blog/tag/regular-expression/" rel="nofollow tag">regular expression</a>, <a href="http://chris.olstrom.com/blog/tag/script/" rel="nofollow tag">script</a>, <a href="http://chris.olstrom.com/blog/tag/sed/" rel="nofollow tag">sed</a>, <a href="http://chris.olstrom.com/blog/tag/text-replacement/" rel="nofollow tag">text replacement</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/sXNpfyvQJFU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/howto/replace-text-in-multiple-files/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=replace-text-in-multiple-files</feedburner:origLink></item>
		<item>
		<title>Microsoft abandons competition with Google Analytics.</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/KgcX4te52lk/</link>
		<comments>http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 17:29:08 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[adcenter analytics]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[gatineau]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=53</guid>
		<description>I just received an automated email that I imagine many others have:
The Microsoft adCenter adCenter &amp;#8220;&amp;#62;AnalyticsBeta team is announcing the end of the adCenter Analytics beta program. The program has been closed, but Analytics will remain available to you through December 31, 2009. Please note that all hosted services, data collection, and technical support will [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/"&gt;Microsoft abandons competition with Google Analytics.&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>I just received an automated email that I imagine many others have:</p>
<blockquote><p>The Microsoft adCenter adCenter &#8220;&gt;AnalyticsBeta team is announcing the end of the adCenter Analytics beta program. The program has been closed, but Analytics will remain available to you through December 31, 2009. Please note that all hosted services, data collection, and technical support will end at that time. If you would like to save your historical data, please use the export feature to download your reports before December 31, 2009.</p>
<p>The Analytics team wants to sincerely thank you for your participation and your contributions to the program. Our objectives at the outset were to serve the needs of small and midsize business customers, as well as evolve the Microsoft strategy to encompass web analytics.</p>
<p>The beta program was a success in every respect. The insights you’ve contributed through your use of the tool and your feedback have helped us immeasurably in shaping Microsoft’s future in web analytics. Your feedback has helped us confidently determine that we can serve advertisers and publishers best by offering a tailored solution that meets more specialized needs.</p>
<p>You can rely on our continuing e-mail support through December 31, 2009. We recommend that you use the coming months to evaluate your web analytics needs and begin searching for an alternative web analytics solution. Click here for a list of companies that offer comparable analytics solutions.</p>
<p>For additional information, visit the adCenter Analytics blog and its award winning content. The blog will be renamed “Insights and Analysis” and will remain focused on advertiser ROI and optimization.</p>
<p>Again, thank you for your participation. We appreciate your contribution.</p>
<p>Sincerely,</p>
<p>The Microsoft adCenter Analytics Team</p></blockquote>
<p>This marks one less competing solution to <a href="http://www.google.com/analytics/">Google Analytics</a>. Though I preferred Google&#8217;s offering to that of Microsoft, competition tends to foster innovation (in cases where the competitors wouldn&#8217;t realistically opt to collaborate, of course).</p>
<p>Score one more point for the Big G.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=53&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/">Microsoft abandons competition with Google Analytics.</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=53&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/&title=Microsoft abandons competition with Google Analytics.">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/adcenter-analytics/" rel="nofollow tag">adcenter analytics</a>, <a href="http://chris.olstrom.com/blog/tag/analytics/" rel="nofollow tag">analytics</a>, <a href="http://chris.olstrom.com/blog/tag/gatineau/" rel="nofollow tag">gatineau</a>, <a href="http://chris.olstrom.com/blog/tag/google/" rel="nofollow tag">google</a>, <a href="http://chris.olstrom.com/blog/tag/google-analytics/" rel="nofollow tag">google analytics</a>, <a href="http://chris.olstrom.com/blog/tag/microsoft/" rel="nofollow tag">microsoft</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/KgcX4te52lk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/news/microsoft-abandons-competition-with-google-analytics/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=microsoft-abandons-competition-with-google-analytics</feedburner:origLink></item>
		<item>
		<title>Storing date without time in SQL Server 2005</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/PhaqdYeE98w/</link>
		<comments>http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 00:32:33 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[ms-sql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[transact-sql]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=46</guid>
		<description>The Problem
Apparently Microsoft SQL Server 2005 doesn&amp;#8217;t offer a data type that stores date only, which is all sorts of inconvenient. I am certain this was not merely an oversight, and that it was actually the result of carefully planning and design. I wish I knew what the reasoning was, though.
From MSDN:
datetime (Transact-SQL)
Defines a date [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/"&gt;Storing date without time in SQL Server 2005&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p><strong>The Problem</strong></p>
<p>Apparently Microsoft SQL Server 2005 doesn&#8217;t offer a data type that stores date only, which is all sorts of inconvenient. I am certain this was not merely an oversight, and that it was actually the result of carefully planning and design. I wish I knew what the reasoning was, though.</p>
<p>From MSDN:</p>
<blockquote><p><em>datetime (Transact-SQL)</em></p>
<p><em>Defines a date that is combined with a time of day with fractional seconds that is based on a 24-hour clock.</em></p></blockquote>
<p><strong>The Solution</strong><br />
If I want to store only a date in the database&#8230; a date without time (despite using the datetime object)&#8230;</p>
<p>This particular table stores the current date for any item inserted into it, so in the CREATE TABLE block, so I include:</p>
<p><code>CREATE TABLE table_name (<br />
created_on datetime NOT NULL DEFAULT CONVERT(datetime, CONVERT(varchar, GETDATE(), 112), 112)<br />
);</code></p>
<p>And to make sure that data manually specifying a date gets inserted cleanly too, a trigger is helpful.</p>
<p><code>CREATE TRIGGER trig_name ON table_name<br />
FOR INSERT AS<br />
UPDATE table_name SET created_on = CONVERT(datetime, CONVERT(varchar, created_on, 112), 112);<br />
</code></p>
<p><strong>How It Works</strong></p>
<p>From MSDN:</p>
<blockquote><p><em>CONVERT (Transact-SQL)</em></p>
<p><em>Converts an expression of one data type to another.</em></p>
<p><em>Syntax</em></p>
<p><code>CONVERT ( data_type [ ( length ) ] , expression [ , style ] )</code></p></blockquote>
<p>So we CONVERT the datetime object into a varchar object instead, and then back again. Using the <em>style</em> argument &#8220;112&#8243; to use &#8220;ISO Standard with Century&#8221;, or (yyyymmdd), which does not include time (hh:mi:ss:mmm), the time data gets lost, and defaults to 0. The format isn&#8217;t important, so long as it&#8217;s the same for both CONVERT statements (otherwise we would be saying something like &#8220;Give me the date as YYYY-MM-DD&#8221; and then &#8220;read YYYY-MM-DD as MM-DD-YYYY&#8221;, which can have some unpleasant results).</p>
<p><strong>Disadvantages</strong></p>
<p>Since this method still uses a datetime object, it uses 8 bytes instead of the 3 that would be used by a date object. Unless resource limits are tight, this is not a deal breaker, but it&#8217;s still inefficient.</p>
<p>The two CONVERT statements may impose more overhead (okay, they WILL). I haven&#8217;t measured how significant, but unless the database is INSERT-heavy, I can&#8217;t imagine it being significant.</p>
<p><em>Also, casting like this feels dirty.</em></p>
<p><strong>References</strong></p>
<ol>
<li><a href="http://msdn.microsoft.com/en-us/library/ms187819.aspx">datetime (Transact-SQL)</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms187928.aspx"> CAST and CONVERT (Transact-SQL)</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms187928.aspx"> </a><a href="http://msdn.microsoft.com/en-us/library/ms187752.aspx">Data Types (Transact-SQL)</a></li>
</ol>
<p><em><strong>Note:</strong>This is not an issue in Microsoft SQL Server 2008, as it supports a proper date object.</em></p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=46&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/">Storing date without time in SQL Server 2005</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=46&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2009. |
<a href="http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/&title=Storing date without time in SQL Server 2005">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/datetime/" rel="nofollow tag">datetime</a>, <a href="http://chris.olstrom.com/blog/tag/ms-sql/" rel="nofollow tag">ms-sql</a>, <a href="http://chris.olstrom.com/blog/tag/sql/" rel="nofollow tag">sql</a>, <a href="http://chris.olstrom.com/blog/tag/sql-server/" rel="nofollow tag">sql server</a>, <a href="http://chris.olstrom.com/blog/tag/transact-sql/" rel="nofollow tag">transact-sql</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/PhaqdYeE98w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/howto/store-date-without-time-in-sql-server-2005/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=store-date-without-time-in-sql-server-2005</feedburner:origLink></item>
		<item>
		<title>Usenet Indexing and Search Engine Accountability</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/KpkbGEX3ZD4/</link>
		<comments>http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:16:09 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[usenet]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=42</guid>
		<description>There has been some controversy lately over at Newzbin. Seems the MPAA is extending their witch hunt into Usenet. Through the debacle, community members have drawn parallels between torrents and NZBs, which is inaccurate.
There is a fundamental difference between torrents and NZBs. Torrents need the tracker to connect the swarm, to know who has which [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/"&gt;Usenet Indexing and Search Engine Accountability&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>There has been some controversy lately over at <a href="https://www.newzbin.com/">Newzbin</a>. Seems the MPAA is extending their witch hunt into Usenet. Through the debacle, community members have drawn parallels between torrents and NZBs, which is inaccurate.</p>
<p>There is a fundamental difference between torrents and NZBs. Torrents need the tracker to connect the swarm, to know who has which pieces and who needs which (though decentralized models exist).</p>
<p>With NZBs, they point to files located elsewhere. Those files are available independent of Newzbin. You don&#8217;t NEED an NZB to get a binary. You can grab the headers from your news host, and then grab the files that way. All an NZB does is save you the legwork by telling you that hey, these are the article IDs you want. Like somebody saying &#8220;hey, this is the ISBN of the book you&#8217;re looking for&#8221;. You can find the book without it, having the ISBN just makes it a bit easier.</p>
<p>Search engines should never be held accountable for the content they index. The distributors of that content should. If a search engine can direct you to objectionable content, great. If you want it taken down, now you have a way of finding that it&#8217;s there.</p>
<p>Without Newzbin (or another indexing service), it&#8217;ll be a lot more work to remove copyright-violating content from Usenet. I&#8217;d think that it would be better to use it as the tool it is, find the content you want removed, and send removal requests to the major news hosts. If I recall, Usenet servers support article cancellation (though under what conditions I don&#8217;t know), typically for spam removal.</p>
<p>Newzbin is not in the same boat as a torrent tracker (though both have legitimate purposes). It is much closer to a traditional search engine, but instead of indexing the web (HTTP), it indexes usenet (NNTP). Different protocol, same function.</p>
<p>You can&#8217;t fairly disallow search, because some people are using it for illicit purposes. Should we shut down a web search because people are searching for information on illegal things (manufacturing of drugs, explosives, whatever)? Should image searches be banned because people could search for unlawful images?</p>
<p>Disallowing these sorts of things is a dangerous blow to freedom. In any system, the innocent majority should not suffer for the actions of a guilty minority.</p>
<p>&lt;/rant&gt;</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=42&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/">Usenet Indexing and Search Engine Accountability</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=42&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2008. |
<a href="http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/&title=Usenet Indexing and Search Engine Accountability">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/freedom/" rel="nofollow tag">freedom</a>, <a href="http://chris.olstrom.com/blog/tag/usenet/" rel="nofollow tag">usenet</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/KpkbGEX3ZD4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/usenet-indexing-and-search-engine-accountability/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=usenet-indexing-and-search-engine-accountability</feedburner:origLink></item>
		<item>
		<title>Enforcing GPL Compliance</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/w-_F4Jkva0s/</link>
		<comments>http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 23:46:28 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[derivative works]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://chris.olstrom.com/blog/?p=41</guid>
		<description>Justin Tadlock and others (including Dave Coveney) are buzzing about the recent decision by Automattic to pull 200+ from the Theme Library.
The problem here is that a lot of themes are allegedly being released under a GPL-compatible license (so they say) with terms that are actually incompatible with the GPL. It&amp;#8217;s simple. You can include [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/"&gt;Enforcing GPL Compliance&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p><a href="http://justintadlock.com/archives/2008/12/11/automattic-putting-the-boot-to-premium-theme-developers">Justin Tadlock</a> and others (including <a href="http://spectacu.la/wordpressorg-pull-200-gpl-themes/">Dave Coveney</a>) are buzzing about the recent decision by Automattic to pull 200+ from the Theme Library.</p>
<p>The problem here is that a lot of themes are allegedly being released under a GPL-compatible license (so they say) with terms that are actually incompatible with the GPL. It&#8217;s simple. You can include a footer link or other self-promotional element but you can&#8217;t prevent a user from removing it. Section 2 of the GPL (v2) explicitly permits unhindered changes, so long as you do not deny that same right to anyone you distribute your modified version to.</p>
<p>Many of the themes removed were attempting to impose exactly this restriction, which is violating the license of the themes in question. This raises at least two questions:</p>
<ul>
<li>In the case of original works, why would the author opt to license their works under the GNU General Public License if they did not intend to honour the terms of that license?</li>
<li>In the case of derivative works (basing one theme on another theme, or reusing portions of the code in another theme), do theme authors not <em>read</em> the licenses for the code they are modifying? They are bound by the terms of those licenses to allow changes to their derivative works.</li>
</ul>
<p>It isn&#8217;t like Section 2 is ambiguous about derivative works:</p>
<blockquote><p><strong>2.</strong> You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 [<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target="_blank">...</a>]</p></blockquote>
<p>The referenced part of Section 1 in that excerpt is:</p>
<blockquote><p><strong>1.</strong> You may copy and distribute verbatim copies of the Program&#8217;s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.</p></blockquote>
<p>Simple terms, right? You can change or build on the code (or parts of it) and distribute those changes, as long as anyone you distribute it has the same rights you had. Creative Commons licenses refer to this as a &#8220;share-alike&#8221; provision. I&#8217;ve heard it called Viral Licensing before, which is the most appropriate descriptor.</p>
<p>This ability to adapt and remix code is where open source code draws much strength from. It permits rapid change, unsolicited contribution, and forking of abandoned works (or works where one or more contributors decided &#8220;I can do X better&#8221;).</p>
<p><em>If you do not appreciate the freedom GPL grants to users of your software, release it under a different license.</em></p>
<p>I applaud Matt and the crew at Automattic for their courage in enforcing this. I am certain they anticipated much of the unreasonable backlash they would receive, and chose to press on. If forced to choose between what is easy and what is right, the question should not allow more than a moment&#8217;s thought. And even then, only to question why we hesitated.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=41&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/">Enforcing GPL Compliance</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=41&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2008. |
<a href="http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/&title=Enforcing GPL Compliance">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/derivative-works/" rel="nofollow tag">derivative works</a>, <a href="http://chris.olstrom.com/blog/tag/freedom/" rel="nofollow tag">freedom</a>, <a href="http://chris.olstrom.com/blog/tag/gpl/" rel="nofollow tag">gpl</a>, <a href="http://chris.olstrom.com/blog/tag/licensing/" rel="nofollow tag">licensing</a>, <a href="http://chris.olstrom.com/blog/tag/themes/" rel="nofollow tag">themes</a>, <a href="http://chris.olstrom.com/blog/tag/wordpress/" rel="nofollow tag">wordpress</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/w-_F4Jkva0s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/community/enforcing-gpl-compliance/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=enforcing-gpl-compliance</feedburner:origLink></item>
		<item>
		<title>On the Benefits of Self-Taught Skills</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/Jgrtr5ifNzg/</link>
		<comments>http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 06:44:50 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/?p=36</guid>
		<description>There are those who hold the view that being self-taught is a disadvantage. As an individual of this sort, my views will be inherently biased. Please forgive me for this, and look past it. If you disagree (or agree) with my rationale, add a comment. I will respond to all comments.
The situation is such that [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/"&gt;On the Benefits of Self-Taught Skills&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>There are those who hold the view that being self-taught is a disadvantage. As an individual of this sort, my views will be inherently biased. Please forgive me for this, and look past it. If you disagree (or agree) with my rationale, add a comment. I will respond to all comments.</p>
<p>The situation is such that there are advantages to both sides. It is my view that self-taught people are more specialized in their chosen areas of practice, at the cost of versatility.</p>
<p>Consider the range of exercises most Computer Science students undertake. Many of these are tasks that illustrate a particular concept, and will likely never be (directly) applied to any future work.</p>
<p>Many self-educated folks will not opt to study areas outside those that interest them (and why would they?). At the same time, they are not <em>wasting</em> the time they save by not learning otherwise dull concepts. Replacing these with things that capture our attention, and hold it is a far more productive use time.</p>
<p>There are those who hold the view that those trained through traditional channels (universities, formal training programs, etc) are being &#8217;shaped into drones by the system &#8216;. While I think this is a bit extreme, I agree somewhat, though I think the defining factor is motive, rather than environment. It just happens that most of those outside of traditional training models (the self-taught) share a common motive: Passion. We thirst for knowledge, and it is this that drives us to expand our understanding of a subject. A person who enrolls in a training program, or structured study of a field may share this interest, though it can safely be assumed that not all who take a course do it for the knowledge alone. Many undertake such training to secure positions in a related field.</p>
<p>I believe that one who learns something strictly for the sake of employability is setting themselves up to become a drone. The mindset required to know that &#8216;I spent four years studying to get this job&#8217; sets the person up for direction. The goal was to get the job, and to fill a specific role.</p>
<p>The self-taught is more often driven by passion for their art. Where a classically trained developer may complete a project to the specification, the passionate developer is more likely to infuse their work with that extra spark that makes it truly exceptional.</p>
<p>Those trained in a traditional sense are often more versatile than the passionate programmer, and stronger in a wider range of tasks, the self-taught developer is often unparalleled in his ability in a select few areas.</p>
<p>The question I would pose is this: If you required critical brain surgery, who would you rather have done it? The surgeon who is very good at a range of operations? Or a neurosurgeon who excels at his chosen field, but <strong>only</strong> at his chosen field?</p>
<p><em>Written in response to:</em></p>
<ul>
<li><a href="http://www.geeknews.net/2008/06/21/who-needs-a-computer-science-degree-when-theres-wikipedia">Who Needs a Computer Science Degree When There’s Wikipedia?</a></li>
<li><a href="http://greatjustice.info/university-versus-self-taught/">University versus self-taught</a></li>
</ul>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=36&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/">On the Benefits of Self-Taught Skills</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=36&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2008. |
<a href="http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/#comments">8 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/&title=On the Benefits of Self-Taught Skills">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/Jgrtr5ifNzg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/on-the-benefits-of-self-taught-skills/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=on-the-benefits-of-self-taught-skills</feedburner:origLink></item>
		<item>
		<title>Silent Arcade is Live!</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/ciLxicUWljU/</link>
		<comments>http://chris.olstrom.com/blog/project/silent-arcade-is-live/#comments</comments>
		<pubDate>Thu, 08 May 2008 07:32:53 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/?p=34</guid>
		<description>So I&amp;#8217;ve thought about doing this for a long time. I&amp;#8217;ve written a game, which I call SimpleGame. It&amp;#8217;s basically one game, written in as many languages as I can write it in. I&amp;#8217;ve used it primarily to improve my skills with different languages, or learning new ones entirely. It&amp;#8217;s always been my intent to [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/project/silent-arcade-is-live/"&gt;Silent Arcade is Live!&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>So I&#8217;ve thought about doing this for a long time. I&#8217;ve written a game, which I call SimpleGame. It&#8217;s basically one game, written in as many languages as I can write it in. I&#8217;ve used it primarily to improve my skills with different languages, or learning new ones entirely. It&#8217;s always been my intent to share that code, as well.</p>
<p>Considering everything that&#8217;s happened with <a href="http://www.firebrand-entertainment.com/libertas-infinitum/"title="Libertas Infinitum" >Libertas Infinitum</a> (or the lack of happenings, depending on how you approach it), I wanted to do something to help others with similar visions. I&#8217;ll continue with Libertas Infinitum, and while that develops I&#8217;d love to see more independent developers start building their dreams.</p>
<p>If anything, now is the best time for new developers to get involved. As the internet has evolved, the potential for collaboration has blossomed into something amazing, and the resources available for small teams are mature and stable: Web-accessible revision control, free distribution channels, and open source development tools and frameworks all serve to lower the barrier to entry, or even drop it entirely.</p>
<p><a href="http://www.silentarcade.com"title="Silent Arcade" >Silent Arcade</a> is a site dedicated to empowering those developers through knowledge. Check it out.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=34&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/project/silent-arcade-is-live/">Silent Arcade is Live!</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=34&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2008. |
<a href="http://chris.olstrom.com/blog/project/silent-arcade-is-live/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/project/silent-arcade-is-live/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/project/silent-arcade-is-live/&title=Silent Arcade is Live!">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/ciLxicUWljU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/project/silent-arcade-is-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/project/silent-arcade-is-live/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=silent-arcade-is-live</feedburner:origLink></item>
		<item>
		<title>Rogers Violates Consumer Trust</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/S-pK8h37evs/</link>
		<comments>http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 17:59:09 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Privacy]]></category>
		<category><![CDATA[rogers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[threat]]></category>
		<category><![CDATA[trust]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/12/11/rogers-modifies-web-pages/</guid>
		<description>As noted by Lauren Weinstein, Rogers is modifying HTTP data sent to their users as illustrated here:

Note: This is not speculation. Rogers&amp;#8217; Vice President of Communications, Taanta Gupta has confirmed that they are employing this technology (via Wired).
What this means is that they are embedding extra content in web pages served to their clients, without [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/"&gt;Rogers Violates Consumer Trust&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>As noted by <a href="http://lauren.vortex.com/archive/000337.html"title="Google Hijacked -- Major ISP to Intercept and Modify Web Pages" >Lauren Weinstein</a>, Rogers is modifying HTTP data sent to their users as illustrated here:</p>
<p><a href="/gfx/blog/cb4a7b6028530d620bdbb778734298c7.jpg"><img src="/gfx/blog/cb4a7b6028530d620bdbb778734298c7.jpg" alt="Modified Google Homepage, by Rogers" width="457" height="400" /></a></p>
<p><em>Note: This is not speculation. Rogers&#8217; Vice President of Communications, Taanta Gupta has confirmed that they are employing this technology (via <a href="http://blog.wired.com/27bstroke6/2007/12/canadian-isps-p.html"title="In Test, Canadian ISP Splices Itself Into Google Homepage" >Wired</a>).</em></p>
<p>What this means is that they are embedding extra content in web pages served to their clients, without explicit permission. This is not something clients can opt into. As a privacy-aware citizen, I find this a blatant abuse of any Internet Service Provider&#8217;s power, for a number of reasons.</p>
<p><strong>Security</strong></p>
<p>When I connect to a site, my browser requests a page from the server hosting that site. I expect that the page I receive is the one that the server sent to me. What Rogers is doing breaks this implicit trust. As a user, I can no longer have faith that the pages I view are authentic, as the risk of corruption somewhere between the server that generated the page and me is now part of the security equation.</p>
<p>Such action (when initiated by an individual) is malicious activity, and controversial at best. When a telecommunications carrier is responsible, it is also illegal (in Canada).</p>
<p>Part II, Section 36 of the <a href="http://www.crtc.gc.ca/eng/LEGAL/TELECOM.HTM"title="Telecommunications Act of 1993" >Telecommunications Act</a> states:</p>
<blockquote><p><em>[Content of messages]</em></p></blockquote>
<blockquote><p><em><strong>36.</strong> Except where the Commission approves otherwise, a Canadian carrier shall not control the content or influence the meaning or purpose of telecommunications carried by it for the public.</em></p></blockquote>
<p><strong>Privacy</strong></p>
<p>The example above illustrates this ability being used to send targeted messages to clients about their accounts. We learn two important details from this: That Rogers is in fact actively monitoring data that passes through their network (to not inject arbitrary code into incompatible content types) and that they are linking these data sessions to individual client accounts. It is hardly a distant thought for them to track the sites a client visits, and constructing a profile about that user from that data. Again, this occurs without explicit consent from their users.<br />
<strong><br />
Potential Impact</strong></p>
<p>Right now, Rogers is using this technology to send &#8216;useful&#8217; (but intrusive) messages to clients. In the future, it would not be unexpected for Rogers to add &#8216;relevant data&#8217; to pages, or deliver contextual advertising (and they would likely make a killing from it). It is possible that this ability could be used to push software to the PCs of their users. Though local security policies would likely prevent this, it would be simple enough to install a browser add-on from the Internet Setup software that bypassed the usual security measures by considering such content &#8216;trusted&#8217;. In the case of users who opt not to use the setup software, such an add-on could be installed by exploiting any one of the vulnerabilities in their given browser (most commonly Internet Explorer). A user would not even have to go to a specific site, as the needed data could be embedded in any page.</p>
<p>In a more sinister scenario, it is also possible that Rogers could alter the owner attribute on existing on-page advertisements, effectively stealing that ad revenue from the page owners. Since this would occur after generating the page, but prior to it being served to the client&#8217;s browser, there would be no way for the site owner to notice this (since it is common for users to have ad-blocking software installed locally, many site owners expect a certain segment of viewers to not receive the advertisements), and no way for the client to notice it either, unless they had a list of advertiser IDs for all sites they visit regularly, and audited those values on each visit.</p>
<p>Extending this a bit further, it is not difficult to envision these capabilities used to change other content on-page. Altering unfavourable commentary about themselves, censoring content, adding content to pages and generally discrediting web&#8217;s validity.</p>
<p>Some of these examples seem unlikely, others not so much. Only time will tell, but if we do not voice our concerns, if we do not defend our rights to privacy, anonymity, and security, a bleak future is all the more probable.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=30&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/">Rogers Violates Consumer Trust</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=30&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2007. |
<a href="http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/&title=Rogers Violates Consumer Trust">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/privacy/" rel="nofollow tag">Privacy</a>, <a href="http://chris.olstrom.com/blog/tag/rogers/" rel="nofollow tag">rogers</a>, <a href="http://chris.olstrom.com/blog/tag/security/" rel="nofollow tag">security</a>, <a href="http://chris.olstrom.com/blog/tag/threat/" rel="nofollow tag">threat</a>, <a href="http://chris.olstrom.com/blog/tag/trust/" rel="nofollow tag">trust</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/S-pK8h37evs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/privacy/rogers-violates-consumer-trust/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rogers-violates-consumer-trust</feedburner:origLink></item>
		<item>
		<title>Forum for Firebrand Entertainment</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/vIIP03pXWG8/</link>
		<comments>http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 00:53:17 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[firebrand entertainment]]></category>
		<category><![CDATA[libertas infinitum]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/10/18/forum-for-firebrand-entertainment/</guid>
		<description>For awhile, clicking the link on the Libertas  Infinitum page labeled &amp;#8216;forum&amp;#8217; was an exercise in futility, taking you  nowhere (well, to an error page&amp;#8230; but that&amp;#8217;s hardly somewhere most people want  to go). That&amp;#8217;s been fixed now, and the Firebrand Entertainment Forum is online.
Post from: Chris @ Olstrom (.com)Forum for Firebrand [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/"&gt;Forum for Firebrand Entertainment&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>For awhile, clicking the link on the <a href="http://www.firebrand-entertainment.com/libertas-infinitum/"title="Libertas Infinitum" >Libertas  Infinitum</a> page labeled &#8216;forum&#8217; was an exercise in futility, taking you  nowhere (well, to an error page&#8230; but that&#8217;s hardly somewhere most people want  to go). That&#8217;s been fixed now, and the <a href="http://community.firebrand-entertainment.com/forum/"title="Firebrand Entertainment Forum"  target="_blank">Firebrand Entertainment Forum</a> is online.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=22&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/">Forum for Firebrand Entertainment</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=22&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2007. |
<a href="http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/&title=Forum for Firebrand Entertainment">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/collaboration/" rel="nofollow tag">collaboration</a>, <a href="http://chris.olstrom.com/blog/tag/firebrand-entertainment/" rel="nofollow tag">firebrand entertainment</a>, <a href="http://chris.olstrom.com/blog/tag/libertas-infinitum/" rel="nofollow tag">libertas infinitum</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/vIIP03pXWG8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/community/forum-for-firebrand-entertainment/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=forum-for-firebrand-entertainment</feedburner:origLink></item>
		<item>
		<title>On Writing Quality Code.</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/RJ148qId7WQ/</link>
		<comments>http://chris.olstrom.com/blog/opinion/on-writing-quality-code/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 00:41:39 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/10/18/on-writing-quality-code/</guid>
		<description>I&amp;#8217;ll fix it later&amp;#8230;
We&amp;#8217;ve all done it, and its bad enough when you&amp;#8217;re maintaining your own  code&amp;#8230; but if you are working with other developers (or if someone may one day  be working with your code), the &amp;#8216;dirty hack now, fix it later&amp;#8217; way of coding is  simply not acceptable.
Source is for [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/on-writing-quality-code/"&gt;On Writing Quality Code.&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p><em>I&#8217;ll fix it later&#8230;</em></p>
<p>We&#8217;ve all done it, and its bad enough when you&#8217;re maintaining your own  code&#8230; but if you are working with other developers (or if someone may one day  be working with your code), the &#8216;dirty hack now, fix it later&#8217; way of coding is  simply not acceptable.</p>
<p>Source is for human beings to read. Disregarding this truth is the  first step on a dark path. Taking the time to do it right the first time pays  off fast.</p>
<p>A lot of it isn&#8217;t even hard to do. Naming your variables clearly consumes  mere seconds, and pays off by reducing the amount of documentation  you need to write. For example, naming an object &#8220;scd1&#8243; and not OverviewMenu  creates the need for documentation that you can avoid. If you append  an item to scd1, someone looking at your code may need to figure out what scd1  actually does to understand that, while appending an item to OverviewMenu  probably means you&#8217;re adding an item to the menu. The code documents itself.</p>
<p>Indenting your code properly is trivial to carry out (and all but the most  primitive editors make it very easy to do without thinking about it), and it  simplifies understanding program flow.</p>
<p>Doing it the &#8216;easy&#8217; way now and intending to fix it later is almost  always a recipe for trouble, and more often than not it creates more work for  you very quickly. Now you have ugly code that needs fixing, and replacing  it can take longer than it would have to write it well in the first place.  Besides, why write something just to throw it out? Your time is worth  more than that.</p>
<p>If you are writing web code, don&#8217;t create JavaScript functions or  complex code inside event handlers, or apply inline styles your HTML. JavaScript  has functions, and the <strong>style</strong> tag exists for a reason. There are  reasons for these things, part of which is making it easy to manage your  code.</p>
<p>If it&#8217;s worth doing at all, it is worth doing right. Please, don&#8217;t  create more work than you need to for yourself, and other developers.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=21&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/on-writing-quality-code/">On Writing Quality Code.</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=21&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2007. |
<a href="http://chris.olstrom.com/blog/opinion/on-writing-quality-code/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/on-writing-quality-code/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/on-writing-quality-code/&title=On Writing Quality Code.">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/development/" rel="nofollow tag">development</a>, <a href="http://chris.olstrom.com/blog/tag/programming/" rel="nofollow tag">programming</a>, <a href="http://chris.olstrom.com/blog/tag/quality/" rel="nofollow tag">quality</a>, <a href="http://chris.olstrom.com/blog/tag/rant/" rel="nofollow tag">rant</a>, <a href="http://chris.olstrom.com/blog/tag/teamwork/" rel="nofollow tag">teamwork</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/RJ148qId7WQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/on-writing-quality-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/on-writing-quality-code/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=on-writing-quality-code</feedburner:origLink></item>
		<item>
		<title>Emperia Changes Name to Libertas Infinitum</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/Fv3dCSXbBCU/</link>
		<comments>http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 19:28:56 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[emperia]]></category>
		<category><![CDATA[firebrand entertainment]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[libertas infinitum]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/10/15/emperia-changes-name-to-libertas-infinitum/</guid>
		<description>As it happens, another game exists with under the name of &amp;#8216;Emperia&amp;#8217;, and it&amp;#8217;s  been around since August of 2002. You can find its site here, and some technical  details here, courtesy of MUD  Magic.
Given that both projects are games, we recognized a potential for confusion and began discussing a new name. [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/"&gt;Emperia Changes Name to Libertas Infinitum&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>As it happens, another game exists with under the name of &#8216;Emperia&#8217;, and it&#8217;s  been around since August of 2002. You can find its site <a href="http://games.groups.yahoo.com/group/Emperia/"title="Emperia" >here</a>, and some technical  details <a href="http://www.mudmagic.com/listings/game/1867/"title="MudMagic" >here</a>, courtesy of MUD  Magic.</p>
<p>Given that both projects are games, we recognized a potential for confusion and began discussing a new name. Some titles that didn&#8217;t make the cut  were&#8230;</p>
<ul>
<li>Manifest Destiny</li>
<li>Conquest of Fate</li>
<li>Seven Sorrows</li>
<li>Empires Return</li>
<li>Return</li>
<li>Bloodlines</li>
<li>Land of War</li>
<li>Revenge of the Sho&#8217;dai</li>
<li>Free Play</li>
<li>Freedom</li>
<li>Liberty</li>
<li>Redemption</li>
<li>Sovereign</li>
<li>Libertas</li>
<li>Logos</li>
<li>Terrenus</li>
</ul>
<p>By a unanimous vote, we decided on the name <strong><em>Libertas Infinitum</em></strong>. This name derives from three comments:</p>
<ul>
<li>Name submission of &#8216;<em>Libertas</em>&#8216; by Jacob Hardin.</li>
<li>Concept submission of &#8216;<em>Free Play</em>&#8216; from myself, <a href="http://chris.olstrom.com/"title="Chris Olstrom" >Chris Olstrom</a>.</li>
<li>Suggestion from <a href="http://www.matt-maclellan.com/"title="Matt Maclellan" >Matt Maclellan</a> to work  &#8216;<em>Eternal</em>&#8216; into the title.</li>
</ul>
<p>Links redirect by 301, all content available at <a href="http://www.firebrand-entertainment.com/libertas-infinitum/"title="Libertas Infinitum" >http://www.firebrand-entertainment.com/libertas-infinitum/</a>.</p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=20&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/">Emperia Changes Name to Libertas Infinitum</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=20&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2007. |
<a href="http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/&title=Emperia Changes Name to Libertas Infinitum">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/collaboration/" rel="nofollow tag">collaboration</a>, <a href="http://chris.olstrom.com/blog/tag/emperia/" rel="nofollow tag">emperia</a>, <a href="http://chris.olstrom.com/blog/tag/firebrand-entertainment/" rel="nofollow tag">firebrand entertainment</a>, <a href="http://chris.olstrom.com/blog/tag/game/" rel="nofollow tag">game</a>, <a href="http://chris.olstrom.com/blog/tag/libertas-infinitum/" rel="nofollow tag">libertas infinitum</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/Fv3dCSXbBCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/news/emperia-changes-name-to-libertas-infinitum/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=emperia-changes-name-to-libertas-infinitum</feedburner:origLink></item>
		<item>
		<title>Copy Protection and Use Reporting</title>
		<link>http://feeds.whatthefork.org/~r/SlackTux/~3/ah_a5L4UnAI/</link>
		<comments>http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 19:27:48 +0000</pubDate>
		<dc:creator>Chris Olstrom</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[copy protection]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[data mining]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[piracy]]></category>
		<category><![CDATA[Privacy]]></category>

		<guid isPermaLink="false">https://chris.olstrom.com/blog/2007/09/11/copy-protection-and-use-reporting/</guid>
		<description>The topic of copy protection, and how much is too much arose on Marc Hughes&amp;#8217;  blog today.
Where is the line drawn, then? He asks about software phoning home, and the  sorts of data that are proper to report, specifically inquiring about  license keys, version reporting, and installation identifiers. Responding to  each&amp;#8230;
License [...]&lt;p&gt;Post from: &lt;a href="http://chris.olstrom.com/blog"&gt;Chris @ Olstrom (.com)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/"&gt;Copy Protection and Use Reporting&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p></p><p>The topic of copy protection, and how much is too much arose on Marc Hughes&#8217;  blog today.</p>
<p>Where is the line drawn, then? He asks about software phoning home, and the  sorts of data that are proper to report, specifically inquiring about  license keys, version reporting, and installation identifiers. Responding to  each&#8230;</p>
<p><strong>License Keys</strong></p>
<p>A license key would be perfectly acceptable by my standards. It isn&#8217;t  personally identifiable information that the content owner doesn&#8217;t already have.  Any information a license key can offer was likely provided to get  said key, right?</p>
<p><strong>Software Version</strong></p>
<p>A software version is non-intrusive as well, with most updating systems reporting this information to make sure patches get distributed to those  who need them, unless the updater just queries the current version number, and  compares it locally against your installed version. <em>(On a side note, I would  be interested to know how prevalent these methods are.)</em></p>
<p><strong>Unique Installation Identifiers</strong></p>
<p>A unique installation ID, though&#8230; since that information serves to target a specific user (or installation), and isn&#8217;t directly provided to the content  author, and serves minimal benefit (if any) to the end-user&#8230; it just feels  like data mining.</p>
<p><strong>How to respond when there are more active installs than issued  keys?</strong></p>
<p>Regarding a threshold for disabling license keys, that really depends on how  the disabling occurs. If it&#8217;s automatic, then it is probably too aggressive to  disable the keys for limited apparent piracy. Especially if your software targets a corporate audience. Anything that slams the brakes on productivity  is a good reason to start looking for another product.</p>
<p>Track the number of active installs for a given key, yes. Flag the key,  absolutely. Disable it&#8230; manually?</p>
<p>Even better, pull the contact info for the offending keys, and send a  friendly notification to them, offering the purchase of extra keys at a  volume discount right based on the number of excess installations. This turns  piracy into a potential sale.</p>
<p><em>Most of this post (aside from adding an introduction and headings, and a few syntax and presentation corrections) was  originally featured as a comment on &#8220;<em><a href="http://www.rogue-development.com/blog2/2007/09/whats-the-right-amount-of-copy-protection/">What’s the right amount of copy protection?</a></em>&#8221; at <a href="http://www.rogue-development.com/blog/"title="Marc's Musings" >Marc&#8217;s Musings</a>.</em></p>
<img src="http://chris.olstrom.com/blog/wp-content/plugins/pixelstats/trackingpixel.php?post_id=16&amp;ts=1268011654" style="display:none;" alt="pixelstats trackingpixel"/><p>Post from: <a href="http://chris.olstrom.com/blog">Chris @ Olstrom (.com)</a><br/><br/><a href="http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/">Copy Protection and Use Reporting</a></p>
<img src="http://chris.olstrom.com/blog/?ak_action=api_record_view&id=16&type=feed" alt="" /><hr />
<p><small>© SiliconViper for <a href="http://chris.olstrom.com/blog">Chris Olstrom (.com)</a>, 2007. |
<a href="http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/">Permalink</a> |
<a href="http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/&title=Copy Protection and Use Reporting">del.icio.us</a>
<br/>
Post tags: <a href="http://chris.olstrom.com/blog/tag/copy-protection/" rel="nofollow tag">copy protection</a>, <a href="http://chris.olstrom.com/blog/tag/copyright/" rel="nofollow tag">copyright</a>, <a href="http://chris.olstrom.com/blog/tag/data-mining/" rel="nofollow tag">data mining</a>, <a href="http://chris.olstrom.com/blog/tag/licensing/" rel="nofollow tag">licensing</a>, <a href="http://chris.olstrom.com/blog/tag/piracy/" rel="nofollow tag">piracy</a>, <a href="http://chris.olstrom.com/blog/tag/privacy/" rel="nofollow tag">Privacy</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/SlackTux/~4/ah_a5L4UnAI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://chris.olstrom.com/blog/opinion/copy-protection-and-use-reporting/?source=rss&amp;owa_from=feed&amp;owa_sid=#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=copy-protection-and-use-reporting</feedburner:origLink></item>
	</channel>
</rss>
