<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.5 (http://www.squarespace.com/) on Fri, 10 Sep 2010 05:54:56 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>Blog</title><subtitle>Blog</subtitle><id>http://blog.locut.us/main/</id><link rel="alternate" type="application/xhtml+xml" href="http://blog.locut.us/main/"/><link rel="self" type="application/atom+xml" href="http://blog.locut.us/main/atom.xml"/><updated>2010-09-07T09:35:31Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.5 (http://www.squarespace.com/)">Squarespace</generator><entry><title>Meet Orville</title><id>http://blog.locut.us/main/2010/7/29/meet-orville.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/7/29/meet-orville.html"/><author><name>Ian Clarke</name></author><published>2010-07-30T01:45:36Z</published><updated>2010-07-30T01:45:36Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>This is Orville, our friendly neighborhood garden orb weaving spider (we live in Austin, Texas). &nbsp;He is huge, probably an inch from head to butt, and his back legs are about 2 inches long. &nbsp;Normally he is sitting in his gigantic web, but he has taken it down for the moment because we've been getting some serious rain the last few days, and I assume rain and webs don't mix well.&nbsp;</p>
<p><span class="full-image-block ssNonEditable"><span><img style="width: 500px;" src="http://blog.locut.us/storage/IMG_20100729_203047.jpg?__SQUARESPACE_CACHEVERSION=1280454409494" alt="" /></span></span></p>
<p>And if you'd like to see a video:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/QVUWhutTgaA&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QVUWhutTgaA&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>]]></content></entry><entry><title>The game theory of sealed-bid auctions</title><category term="Programming"/><category term="business"/><id>http://blog.locut.us/main/2010/7/26/the-game-theory-of-sealed-bid-auctions.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/7/26/the-game-theory-of-sealed-bid-auctions.html"/><author><name>Ian Clarke</name></author><published>2010-07-27T02:46:16Z</published><updated>2010-07-27T02:46:16Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>According to Wikipedia, a "frenemy" is someone who is simultaneously a partner and a competitor.</p>

<p>The term is typically used in social relationships, but frenemies can also exist in economic relationships, and I was fortunate enough to encounter such a situation in a project I'm working on, and I decided to explore it.  The conclusions are directly applicable to at least one specific situation where real money is at stake (I describe this at the end).  More interestingly, this may suggest a selfish rationale for unselfish behavior in a wider class of situations.</p>

<p>First, a little background:</p>

<h3>Sealed Bid Auction</h3>

<p>Consider a simplified version of eBay where everyone bids once on an item, nobody sees each-other's bid, and the highest bid wins.  This is called a "First-price sealed-bid auction".</p>

<p>One day you find a trustworthy guy called Bill that promises that they can pay you $200 for a Nexus One phone.  You discover that Nexus One phones frequently sell for less than $200 on eBay, and several of these phones are auctioned off every day.  Bill hates to use eBay and won't ever use it no-matter what, and he doesn't really care what you bid for the phones, so long as he gets them.  You realize that there is an opportunity to make some money here.</p>

<p>So what do you bid when you see one of these phones?  Its a compromise, since if you bid $200 you'll definitely win the phone, but you'll make no money.  If you bid less, then you'll make more money if you win, but you'll win less frequently.  If you bid too little then you'll never win and you'll make no money.</p>

<p>This is not a hard question to answer if you are reasonably smart and have a decent amount of information about past winning bids, since you'll be able to discover, given a bid <em>b1</em>, a function <em>f1(b1)</em> that will tell you the probability of winning the auction, given whatever you bid is.  Let's assume that you are smart enough and you do have enough information.  Let's say your cut of the profit is <em>c1</em>, then, applying some high school math, your expected profit is <em>$200*c1*f1($200*(1-c1))</em>.  </p>

<p>From this equation you are able to decide the optimal bid (and therefore how big your cut is) to maximize your own profit.  You can either do this through some fancy math, or just experimentally plug in different values for <em>c1</em> until you find what works best, the latter being my preferred approach (because I'm lazy and computers aren't).</p>

<h3>Bill gets clever</h3>

<p>Then Bill comes to you and tells you that he may not always be able to pay you $200 for the phone, sometimes he'll pay more, sometimes he'll pay less, but he will tell you what he will pay before you must place your bid.  Fair enough you think, you've got your function <em>f1(b1)</em>, you can determine the optimal bid depending on whatever Bill is willing to pay.</p>

<p>Weeks go by and you are making good money off this relationship.  One night you go out for a beer with Bill, and he drops a bombshell.  He tells you that actually, he is playing the same game you are.  He knows a guy, Jim, who is buying the phones from him.  He won't tell you who Jim is (Bill isn't an idiot), but it turns out that Jim is paying even more for these Nexus Ones than Bill is!  Worse still, it turns out that not only is Bill no idiot, he is at least as smart as you are.  He has determined the probability of you winning your bid, and is choosing his cut to optimize his total profit, in the exact same way that you are (although his function, <em>f2(b2)</em>, won't be the same as your's because you are reducing his bid by your cut).</p>

<p>You go home drunk and don't think about it much, but the next day you have a real headache, and its not just all the beer you had with Bill last night.  What exactly is the relationship between you and Bill?  In one sense, you are on the same side.  If your cut combined with Bill's cut is too big, then both of you will make less money.  But in another sense, you are on opposite sides, the smaller his cut, the bigger your cut can be, and vice versa.</p>

<p>Given this relationship, and assuming that you can't deal directly with Jim, Bill can't deal directly with eBay, and Bill is at least as smart as you are, how do you maximize your profit?</p>

<h3>My Simulation</h3>

<p>A mathematician or game theorist at this point would probably go into a dark room for a week, month, or year, and come out with the mathematically optimal answer.  Since I don't have the time or patience required for a rigorous mathematical treatment, I decided to do a few experiments instead.  You can find the code <a href="http://gist.github.com/489998">here</a>.</p>

<h3>The Auction</h3>

<p>In the results described here, Bill's buyer pays $1 (ok, we're somewhat abandoning the Nexus One analogy here) to Bill for a phone. I wanted to create a reasonably realistic auction, which I do in the bidWinProb() method on line 30.  Basically I simulate 100,000 auctions, each consisting of 10 bidders whose bids are spread according to a Gaussian distribution with mean of $0.50, and standard distribution of 0.1.  I then record all of the winning bids, which allows me to quickly estimate a probability of winning for any given bid.  </p>

<p>Yes, I realize that I could do this much more efficiently mathematically, but speed doesn't really matter here, and this solution is simple enough that bugs are unlikely.</p>

<p>It has the added benefit that you can just provide it with actual data from a real auction, rather than simulated data.</p>

<h3>Optimize Cut</h3>

<p>The first step is that we want to be able to determine the optimal cut for ourselves, given whatever cut Bill has, or the optimal cut for Bill given whatever our cut is.  This is done in the optimizeCut() method on line 78.  The approach is basic trial and error.  While a more sophisticated, accurate, and efficient approach is certainly possible, the current implementation is more than adequate for our needs (not to mention being easier to be confident that it does what its supposed to).</p>

<h3>Experiment #1: Best combined cut</h3>

<p>So what happens if Bill and I were entirely transparent with each-other, and agreed that we'd find the best cut for both of us, and then split it down the middle?</p>

<p>In this situation it turns out that Bill and I should collectively take $0.28 of the dollar Bill is paid if the auction is won (which when we consider the possibility of losing the auction, is an expected revenue of $0.24).  Split down the middle this is an expected revenue of $0.12 each.</p>

<h3>Experiment #2: Iterated selfish cut</h3>

<p>But what if Bill and I can't agree on an even split, and we are basically each left to our own devices to make as much as we each can?</p>

<p>One approach to do this would be for me to optimize my cut based on whatever Bill is paying me (which will depend on his cut), and for Bill to optimize his cut based on his perspective of his probability given various payments to me (which will  depend on my cut).</p>

<p>When I tried this the results were interesting.  I started from a point where Bill isn't taking any cut at all, then each of us take turns to optimize our cuts based on the other one:</p>

<pre>
% Cut          $ Cut
Bill    Me      Bill    Me      Ttl $   1/2
0.000   0.280   0.000   0.244   0.244   0.122
0.100   0.220   0.080   0.159   0.239   0.120
0.140   0.190   0.109   0.128   0.237   0.118
0.160   0.180   0.119   0.112   0.231   0.115
0.160   0.180   0.119   0.112   0.231   0.115
</pre>

<p>This is interesting because they converge to where Bill takes a 16% cut, and I take an 18% cut.  Further, when you look at the expected revenue, it is close to evenly split between us, but not exactly.  Note that after this iterative process Bill and I collectively are making only $0.231, whereas we would be making $0.244 if we had worked together and split the difference.  </p>

<p>Bill makes 3% more money if we work together and split the profit, and I make 9% more!</p>

<h3>Experiment #3: Machiavellianism</h3>

<p>My last two experiments I call "Evil Me" and "Evil Bill".  In "Evil Me" I exploit the fact that Bill will optimize his cut based on my cut, so rather than selecting my cut based on Bill's cut, I select my cut to maximize my profit knowing that Bill will optimize for whatever is in his best interests given my cut.  Evil Bill is the same but the other way around.</p>

<pre>
% Cut          $ Cut
Bill    Me      Bill    Me      Ttl $   1/2
0.100   0.270   0.055   0.134   0.189   0.094  <-- I'm evil
0.240   0.120   0.151   0.057   0.208   0.104  <-- Bill is evil
</pre>

<p>Wow, so in this situation being Machiavellian allows me to make $0.134 while poor Bill only makes $0.055!  Bill reverses this if he is Machiavellian and I am not.</p>

<p>What is fascinating is that, while I increase my profit by 20%, Bill's drops to less than half of what it was before!  One of us being Machiavellian helps that person a bit, but it hurts the other a <b>lot</b>.</p>

<h3>Conclusions</h3>

<p>So what are our conclusions based on this one experiment?  </p>

<ol>
<li>If our sole motivation is to maximize our own profit, we should adopt the Machiavellian approach, even though this will totally screw Bill.</li>
<li>If we at least have some semblance of compassion for Bill, the next best approach is to agree to a pre-agreed split with Bill, and then optimize together, as in Experiment #1.</li>
<li>The pre-agreed split should probably be 50:50, because if Bill and I can't agree on a split and were to optimize against each other as in Experiment #2, then we wind up making approximately the same amount anyway, but we both make less than if the split is pre-agreed.</li>
</ol>

<p>An important caveat is that these conclusions are based on a single experiment that makes a variety of assumptions.  These assumptions seem realistic enough that hopefully these results do generalize, but we can't say that for sure.</p>

<h3>Unanswered questions</h3>

<p>Some may feel dissatisfied by the fact that I've answered these questions experimentally, rather than explore the math behind <i>why</i> we get these results.  I would strongly encourage such people to feel free to explore themselves, especially if they enjoy algebra and statistics.  I'll gladly link to any serious attempts here.</p>

<p>Further, I've explored a situation where one participant is manipulative, while the other tries to make the best of whatever situation they are in.  But what if both participants are manipulative?  My suspicion is that in that case it degenerates into a <a href="http://en.wikipedia.org/wiki/Chicken_(game)">Game of Chicken</a> with an ultimate outcome that is far worse for both participants, but further investigation is definitely warranted.</p>

<h3>Why is this problem relevant?</h3>

<p><a href="http://www.adexchanger.com/ad-exchange-news/real-time-bidding-rtb-display-ad-exchange/">Realtime bidding</a> is a recent innovation in advertising where advertisers bid against each-other for the right to show you an advertisement.  The analogy with the situation described above is that the sealed-bid eBay is an ad exchange, I'm an ad network, and Bill is the advertiser.  Bill is selling something where he has a (hopefully) known profit margin, and he must decide how much of this profit margin he will spend to sell his product.  Similarly, I as the ad network must decide on my cut.</p>

<p><i><b>Note 26th July 2010 -</b> This is a republish of an article from 24th July with significant additions and modifications.</i></p>
]]></content></entry><entry><title>A concise explanation of what is wrong with software patents</title><category term="Patents"/><category term="tech freedom"/><id>http://blog.locut.us/main/2010/7/15/a-concise-explanation-of-what-is-wrong-with-software-patents.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/7/15/a-concise-explanation-of-what-is-wrong-with-software-patents.html"/><author><name>Ian Clarke</name></author><published>2010-07-15T15:18:24Z</published><updated>2010-07-15T15:18:24Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>I was recently pointed to <a href="http://slashdot.org/comments.pl?sid=151312&amp;cid=12701745" target="_blank">this</a> comment by <a href="http://en.wikipedia.org/wiki/John_carmack" target="_blank">John Carmack</a>, co-founder of Id Software, regarding software patents. &nbsp;I thought he gives a beautifully concise explanation as to why the vast majority of software engineers would prefer it if software were not patentable:</p>
<blockquote>
<p>Before issuing a condemnation, I try hard to think about it from [a Lawyer's] point of view -- the laws of the land set the rules of the game, and lawyers are deeply confused at why some of us aren't using all the tools that the game gives us.<br /><br />Patents are usually discussed in the context of someone "stealing" an idea from the long suffering lone inventor that devoted his life to creating this one brilliant idea, blah blah blah.<br /><br />But in the majority of cases in software, patents affect independent invention. Get a dozen sharp programmers together, give them all a hard problem to work on, and a bunch of them will come up with solutions that would probably be patentable, and be similar enough that the first programmer to file the patent could sue the others for patent infringement.<br /><br />Why should society reward that? What benefit does it bring? It doesn't help bring more, better, or cheaper products to market. Those all come from competition, not arbitrary monopolies. The programmer that filed the patent didn't work any harder because a patent might be available, solving the problem was his job and he had to do it anyway. Getting a patent is uncorrelated to any positive attributes, and just serves to allow either money or wasted effort to be extorted from generally unsuspecting and innocent people or companies.<br /><br />Yes, it is a legal tool that may help you against your competitors, but I'll have no part of it. Its basically mugging someone.</p>
</blockquote>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content></entry><entry><title>How to update your Nexus One to Froyo (2.2)</title><id>http://blog.locut.us/main/2010/5/22/how-to-update-your-nexus-one-to-froyo-22.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/5/22/how-to-update-your-nexus-one-to-froyo-22.html"/><author><name>Ian Clarke</name></author><published>2010-05-22T19:38:57Z</published><updated>2010-05-22T19:38:57Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Here is how to manually update your Nexus One (the original model, non-AT&amp;T, non-rooted) to Froyo, Android 2.2.</p>
<ol>
<li>Download the update <a href="http://android.clients.google.com/packages/passion/signed-passion-FRF50-from-ERE27.1e519a24.zip">from here</a>&nbsp;and save the zip file.</li>
<li>Put the update onto your SD card and rename it&nbsp;<em>update.zip </em><em>(Note that if you're using Windows and don't have "show file extensions" turned on in the file explorer you won't see a .zip. Just rename it to "update" (no quotes, of course) because it's already a zipped file).</em></li>
<li>With your Nexus One off, hold down the trackball and press the power button.</li>
<li>You'll be booted into a white screen with three Android robots on skateboards. Select "Bootloader."</li>
<li>On the next screen, select "Recovery."</li>
<li>Your phone will reboot, giving you a picture of the Android robot and an exclamation point inside a triangle.</li>
<li>Now press the power button and volume up button at the same time. It could take a couple of tries.</li>
<li>Now (using the trackball this time) choose "Apply sdcard:update.zip" and let things run their course, it will take several minutes.</li>
</ol>
<p>&nbsp;</p>]]></content></entry><entry><title>Google Wave goes public but misses obvious viral opportunity</title><category term="Technology"/><id>http://blog.locut.us/main/2010/5/19/google-wave-goes-public-but-misses-obvious-viral-opportunity.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/5/19/google-wave-goes-public-but-misses-obvious-viral-opportunity.html"/><author><name>Ian Clarke</name></author><published>2010-05-19T16:40:59Z</published><updated>2010-05-19T16:40:59Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>So <a href="http://wave.google.com/" target="_blank">Google Wave</a>&nbsp;has opened its doors to the public - yay!</p>
<p>Now you can just create a Wave, and enter anyone's email address and they will automatically be invited, and signed up for Wave if they don't already have an account - right? &nbsp;</p>
<p>Wrong. &nbsp;If you try you get an unhelpful message telling you that they aren't a Google Wave user:</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img src="http://img.skitch.com/20100519-np8j96k1x5k1duawfjm9b8kmg6.png?__SQUARESPACE_CACHEVERSION=1274287420172" alt="" /></p>
<p style="text-align: left;">How Google could miss this completely obvious opportunity to ensure viral adoption of Google Wave?</p>
<p style="text-align: left;">What should happen is as I described it - from my perspective it should be no different than sending them an email. &nbsp;From their perspective they should get an email saying that someone wishes to have a Wave conversation with them, and give them the opportunity to easily and transparently sign up for Wave.</p>
<p style="text-align: left;">If, for whatever reason they don't want to use the Wave UI, then I guess they should be able to reply and participate in the conversation through email.</p>
<p style="text-align: left;">Wave is designed to break down the barriers between different means of communication through its plugin architecture (eg. its Twitter support). &nbsp;How then could Google not see the importance of breaking down the barriers between Wave and the primary communication medium its supposed to replace: Email?</p>]]></content></entry><entry><title>Connected my blog to Google Buzz</title><id>http://blog.locut.us/main/2010/2/10/connected-my-blog-to-google-buzz.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2010/2/10/connected-my-blog-to-google-buzz.html"/><author><name>Ian Clarke</name></author><published>2010-02-10T20:18:46Z</published><updated>2010-02-10T20:18:46Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Thanks to Adam and Chris Lambert my blog should now be connected to Google Buzz. &nbsp;Its a somewhat involved process, you can find instructions <a href="http://www.google.com/buzz/bradfitz/PPjHXDhANAC/Want-to-connect-your-blog-or-some-other-feed-to">here</a>.</p>]]></content></entry><entry><title>The GOP's war on healthcare ignores facts, and history</title><category term="Politics"/><id>http://blog.locut.us/main/2009/12/5/the-gops-war-on-healthcare-ignores-facts-and-history.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2009/12/5/the-gops-war-on-healthcare-ignores-facts-and-history.html"/><author><name>Ian Clarke</name></author><published>2009-12-05T16:25:06Z</published><updated>2009-12-05T16:25:06Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Carly Fiorina gave the GOP address this week, claiming that the task force which recently came up with recommendations about breast cancer screenings is a sign of things to come if health care reform is passed. She complains that the task force didn't include an oncologist, a radiologist, or other cancer experts. What was Obama thinking?!</p>
<p>The only problem? This task force was set up last year under Bush, not by Obama! Of course she doesn't mention this minor detail, can't let the facts get in the way.</p>
<p>She goes on to peddle the whole scare tactic about government bureaucrats deciding who lives and who dies. Isn't she aware that health insurance company bureaucrats do exactly this every day?</p>
<p>Doesn't she realize that since breast cancer is a serious pre-existing condition, there is no way she'd be able to get individual coverage under today's system if she had to change insurance providers today?&nbsp;<br />Of course, she doesn't have to worry too much about health insurance because she is a multi-millionaire, but most people aren't.</p>
<p>The new reform bill is far from perfect, but the perfect should not be the enemy of the better. The fact that it will prevent insurance companies from denying coverage due to pre-existing conditions is reason enough to support it.</p>
<p>In 10 years when people look back on this, the GOP's war on healthcare reform will look just as&nbsp;ridiculous&nbsp;as their war on Medicare in the 60s when they used all the same rhetoric about "socialized medicine".</p>
<p>I'll end with a quote, let me know if it sounds familiar:</p>
<p><em>"If you don&rsquo;t stop Medicare and I don&rsquo;t do it, one of these days you and I are going to spend our sunset years telling our children and our children&rsquo;s children what it once was like in America when men were free" - Ronald Regan, 1961.</em></p>]]></content></entry><entry><title>A great tip for diagnosing Java memory issues</title><category term="Java"/><category term="Programming"/><id>http://blog.locut.us/main/2009/12/3/a-great-tip-for-diagnosing-java-memory-issues.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2009/12/3/a-great-tip-for-diagnosing-java-memory-issues.html"/><author><name>Ian Clarke</name></author><published>2009-12-03T14:59:39Z</published><updated>2009-12-03T14:59:39Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>My good friend (and creator of Apache Wicket)&nbsp;<a href="http://web.mac.com/jonathan.locke/JonathanLocke/Blog/Blog.html">Jonathan Locke</a>&nbsp;just gave me a great tip. &nbsp;I was aware of the <strong>jmap</strong> utility, but didn't know it could do this:</p>
<p>Just type:</p>
<blockquote>
<p>jmap -histo:live &lt;pid&gt;</p>
</blockquote>
<p>Where &lt;pid&gt; is the process id of a Java process, and it will dump out all objects, starting with whichever is taking up the most memory.</p>
<p>The handy thing is that the Java process doesn't need to have been started with any kind of special command line options, it will work with any running Java process.</p>
<p>I wish I knew this a few weeks ago while debugging a memory leak on a remote server...</p>]]></content></entry><entry><title>I've found a new URL shortener</title><category term="Technology"/><id>http://blog.locut.us/main/2009/12/3/ive-found-a-new-url-shortener.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2009/12/3/ive-found-a-new-url-shortener.html"/><author><name>Ian Clarke</name></author><published>2009-12-03T13:54:15Z</published><updated>2009-12-03T13:54:15Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>I've found a new URL shortener. &nbsp;It is nowhere near as powerful as <a href="http://budurl.com/">BudUrl</a>, but it has one overriding advantage. &nbsp;Take a look at <a href="http://to/">http://to/</a></p>]]></content></entry><entry><title>The Guardian writes about Freenet</title><category term="Freenet"/><category term="Programming"/><id>http://blog.locut.us/main/2009/11/25/the-guardian-writes-about-freenet.html</id><link rel="alternate" type="text/html" href="http://blog.locut.us/main/2009/11/25/the-guardian-writes-about-freenet.html"/><author><name>Ian Clarke</name></author><published>2009-11-26T00:28:40Z</published><updated>2009-11-26T00:28:40Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>A few weeks ago I spoke to Andy Beckett of The Guardian in the UK, he was writing an article about "the darknet", and wanted to talk to me about Freenet. &nbsp;I was quite pleased about this because when I'm in the UK the Guardian is by far my favorite newspaper.</p>
<p>We had a good conversation, I talked about the original motivation behind Freenet (read about it <a href="http://freenetproject.org/philosophy.html" target="_blank">here</a>), our challenges, like balancing the very theoretical issues we face with the need to write software that non-techies can use, and other things.</p>
<p>At one point he mentioned the dangers of "bad"&nbsp;uses of Freenet, but he did so in a very coy almost apologetic way. &nbsp;I immediately assumed he was thinking of child pornography, and made it pretty clear that I was more than happy to discuss that, indeed of the hundreds of conversations I've had with journalists about Freenet over the past 10 years, I can't think of one where I didn't discuss the CP issue!</p>
<p>I told him what I tell everyone, which is that like most people I wish CP didn't exist, but there are many ways to get it other than Freenet, and I don't think people should be denied the freedom to communicate just because a small minority might use it for something we don't agree with.</p>
<p>My impression at the time was that he really wanted to get off the subject, which I thought was a bit surprising since journalists love&nbsp;controversy, and there are few things as&nbsp;controversial&nbsp;as child porn.</p>
<p>Anyway, Google Alerts just told me that the article has appeared on the Guardian's website (skip to the bottom for the link).</p>
<p>Overall I think it was quite a good article, I was particularly excited to read:</p>
<blockquote>
<p>Installing the software takes barely a couple of minutes and requires minimal computer skills</p>
</blockquote>
<p>I think Andy may be the first mainstream journalist in the history of Freenet to actually install and use the software before writing about it!</p>
<p>I was a little surprised that it did focus almost exclusively on the negatives implications of an absolutist "free communication" philosophy. &nbsp;For example the subtitle is:</p>
<blockquote>
<p>In the 'deep web', Freenet software allows users complete anonymity as they share viruses, criminal contacts and child pornography</p>
</blockquote>
<p>I was neither surprised nor annoyed that a journalist would want to talk about computer viruses, criminals, and child porn, after all -&nbsp;controversy&nbsp;attracts clicks and lets face it, our newspapers need all the help they can get attracting revenue these days. &nbsp;Further, it is perfectly legitimate to talk about the fact that freedom of communication implies freedom for people to communicate data and ideas we don't like.</p>
<p>I was a little surprised, however, that Andy didn't seem terribly interested in discussing these issues when we spoke by phone - even though I made it very clear that I was happy to and I even tried to steer the conversation in that direction.</p>
<p>Regardless of this slight surprise, I haven't yet noticed any major&nbsp;errors in it, at least no errors on Andy's part (although the [sic] after the American spelling of "pedophile" is not exactly in the spirit of cross-Atlantic harmony). &nbsp;I am curious about how he knew I was a pasty teenager (although he was quite right)! &nbsp;Not so much now that I've been living in Texas for a few years.</p>
<p>I did find this interesting though:</p>
<blockquote>
<p>According to the police, for criminal users of services such as Freenet, the end is coming anyway. The PCeU spokesman says, "The anonymity things, there are ways to get round them, and we do get round them.</p>
</blockquote>
<p>If, by "the anonymity things" they are referring to stuff like simple referrers, or even just using your browser in "incognito" mode, then they are correct. &nbsp;But if they are referring to technologies like Freenet and Tor - then either they are mistaken, lying, or they know something about Freenet and Tor that neither I, nor anyone I've ever met or heard from, has discovered. &nbsp;This is extremely unlikely, I know many of the best security people in the world, and none of them work for the British police.</p>
<p>This isn't to say that identifying a user of software like Freenet or Tor is impossible, but it would require either an impractical expenditure of resources (bugging computers, etc), or for the user to do something like accidentally disclosing their identity on Freenet. &nbsp;We can guard against many things, but we can't guard against stupidity :-)</p>
<p>Anyway, as I said its a pretty good article, and despite its focus on the negative - it will hopefully bring some new users to Freenet. &nbsp;Read it here: <a href="http://www.guardian.co.uk/technology/2009/nov/26/dark-side-internet-freenet" target="_blank">The dark side of the internet</a></p>]]></content></entry></feed>