<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iandouglas.com &#187; webdev</title>
	<atom:link href="http://iandouglas.com/category/webdev/feed/" rel="self" type="application/rss+xml" />
	<link>http://iandouglas.com</link>
	<description>senior web architect</description>
	<lastBuildDate>Wed, 02 May 2012 16:48:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>name.com &#8212; shout out back at&#8217;cha</title>
		<link>http://iandouglas.com/2012/05/02/name-com-shout-out-back-atcha/</link>
		<comments>http://iandouglas.com/2012/05/02/name-com-shout-out-back-atcha/#comments</comments>
		<pubDate>Wed, 02 May 2012 16:48:44 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=3622</guid>
		<description><![CDATA[During scrum this morning, my phone kept buzzing that I&#8217;d been mentioned on Twitter. Over and over. Imagine my surprise when a simple exchange last night &#8212; asking if anyone had an affiliate link I could follow for a registrar, and replying to two colleagues (@timsegraves and @travisberry) who recommended name.com, that my simple tweet [...]]]></description>
			<content:encoded><![CDATA[<p>During scrum this morning, my phone kept buzzing that I&#8217;d been mentioned on Twitter. Over and over.</p>
<p>Imagine my surprise when a simple exchange last night &#8212; asking if anyone had an affiliate link I could follow for a registrar, and replying to two colleagues (<a href="https://twitter.com/#!/timsegraves">@timsegraves</a> and <a href="https://twitter.com/#!/travisberry">@travisberry</a>) who recommended name.com, that my simple tweet saying <a href="https://twitter.com/#!/iandouglas736/status/197551328493436929">&#8220;thanks, I&#8217;ll check out @namedotcom&#8221;</a> &#8211; would turn into this unexpected summary of me and my skills from name.com: (read them in reverse order)</p>
<p><a href="http://iandouglas.com/2012/05/02/name-com-shout-out-back-atcha/screenshot-at-2012-05-02-093611/" rel="attachment wp-att-3623"><img class="size-full wp-image-3623" title="Unexpected shout out from name.com on Twitter" src="http://iandouglas.com/wp-content/uploads/2012/05/Screenshot-at-2012-05-02-093611.png" alt="" width="500" height="795" /></a></p>
<p>Don&#8217;t think I&#8217;ve ever seen a company try so hard to win over a customer. Maybe I should hit them up for a discount, since I&#8217;ll be moving several dozen domain names from GoDaddy this week&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2012/05/02/name-com-shout-out-back-atcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elastic Path Software: out of the colo and into the cloud, with Google App Engine</title>
		<link>http://iandouglas.com/2011/05/05/elastic-path-software-out-of-the-colo-and-into-the-cloud-with-google-app-engine/</link>
		<comments>http://iandouglas.com/2011/05/05/elastic-path-software-out-of-the-colo-and-into-the-cloud-with-google-app-engine/#comments</comments>
		<pubDate>Thu, 05 May 2011 22:17:35 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[devops]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[google io]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/66265310705102848</guid>
		<description><![CDATA[iandouglas736: RT @GoogleCode: Elastic Path Software: out of the colo and into the cloud, with Google App Engine. http://goo.gl/Okovv ^sk #io2011]]></description>
			<content:encoded><![CDATA[<p>Eddie Chan at <a href="http://www.elasticpath.com/">Elastic Path Software</a>&nbsp;got a <a href="http://goo.gl/Okovv">guest blog spot</a> on Google Code&#39;s blog as part of their &quot;<a href="http://googlecode.blogspot.com/search/label/Who%27s%20at%20Google%20I%2fO">Who&#39;s at IO</a>&quot; and wrote about what Elastic Path is up to with regards to moving your apps out of colocation facility and writing them as Google App Engine applications. This is one sandbox sessions I&#39;m looking forward to checking out while I&#39;m at IO.</p>
<p>While I&#39;m always interested in running apps &quot;in the cloud&quot; (and we seriously need <a href="http://twitter.com/#!/sween/status/26856523502190592">a new term for that</a>), I&#39;m not sure if I want to get into Java programming just yet. I remember attending an introductory &quot;This is Java, this is how it&#39;ll change the world&quot; evening session with some coworkers from QNX back in late 1996, but I guess I&#39;ve always enjoyed the rapid development cycle of scripted languages because I can make fast changes to code for testing without having to stop and compile anything.</p>
<p>I&#39;m currently in the process of moving a client from a built-by-me e-commerce buying portal to OScommerce because I have too much on my plate already to rebuild his inventory/sales system from scratch. I was hoping to have had the time/energy to rewrite the catalog system in Python and move him to G.A.E., but his needs outpaced my available freelance development time.</p>]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/05/05/elastic-path-software-out-of-the-colo-and-into-the-cloud-with-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google IO Session dates/times (auto-generated!)</title>
		<link>http://iandouglas.com/2011/04/27/google-io-session-datestimes-as-of-early-april-27-2011/</link>
		<comments>http://iandouglas.com/2011/04/27/google-io-session-datestimes-as-of-early-april-27-2011/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 16:46:03 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google io]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/63282771682013184</guid>
		<description><![CDATA[iandouglas736: RT @jeffthms: Session times and locations are hidden, just view the source of the session page to see them - http://bit.ly/gAkyah #io2011]]></description>
			<content:encoded><![CDATA[<p>I saw a <a href="http://twitter.com/jeffthms/status/63243154467471361">Twitter message</a> this morning:</p>
<blockquote>@jeffthms: Session times and locations are hidden, just view the source of the session page to see them - <a href="http://bit.ly/gAkyah ">http://bit.ly/gAkyah</a> #io2011</blockquote>
<p>... which is correct. View the source, look at the &#39;noscript&#39; tag for where the div tags are rendered, and voila, you see the day/time/room of every session.</p>
<p>So after some quick parsing during a coffee break this afternoon, here&#39;s a CSV file for everyone. Sort it however you want.</p>
<p><br />
	Update: April 28, 9am<br />
	The CSV file is now auto-generated when you click the link below, but only if I can scrape the dates/times from the Google IO &quot;Sessions&quot; page. If scraping fails, you&#39;ll get an old copy.</p>
<p>download:&nbsp;<a href="http://iandouglas.com/googleio.php">google io session schedule</a> (google.csv, ~48kb)</p>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<p>&nbsp;</p>
<p>Update: April 28, 6pm<br />
	Google released a <a href="http://goo.gl/Zxxtj">public schedule</a>&nbsp;today, but their schedule doesn&#39;t specify rooms, or &#39;level&#39; (101, 201, 301) of the sessions, so I reworked my scraper to build a better schedule.</p>
<p>download:&nbsp;<a href="http://iandouglas.com/giogrid.php">google io session grid by track/level/times</a>&nbsp;(google2.csv, ~8kb)<br />
	&nbsp;<br />
	&nbsp;</p>
<p>&nbsp; &nbsp; <script type="text/javascript">// <![CDATA[
  google_ad_client = "ca-pub-1335093070283715"; /* id content, 300x250, created 4/26/10 */ google_ad_slot = "8498795251"; google_ad_width = 300; google_ad_height = 250;
// ]]&gt;</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/04/27/google-io-session-datestimes-as-of-early-april-27-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dare to Compare: Cloud Hosting vs Dedicated Hosting</title>
		<link>http://iandouglas.com/2011/04/25/dare-to-compare-cloud-hosting-vs-dedicated-hosting/</link>
		<comments>http://iandouglas.com/2011/04/25/dare-to-compare-cloud-hosting-vs-dedicated-hosting/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 00:46:46 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[devops]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/62678975524249600</guid>
		<description><![CDATA[iandouglas736: RT @sawjd22: interesting #cloud vs #dedicated hosting cost comparison http://chrischandler.name/the-real-cost-of-cloud-hosting]]></description>
			<content:encoded><![CDATA[My buddy <a href="http://twitter.com/sawjd22">Subash</a> re-tweeted an article he read about <a href="http://chrischandler.name/the-real-cost-of-cloud-hosting">the real cost of cloud hosting</a>. While there's nothing too surprising in the article when comparing basic hardware and data center costs to running on Amazon's EC2 platform, I'm curious how well you could compare those costs to Google App Engine.

Granted, there are more question marks when planning to use (or move to) App Engine for a web application, and that's partly why I'm headed to Google IO to learn more and maybe chat with the team. The fact that your app can scale "automagically" is both fascinating and scary to me, especially when (as far as I can tell) you are not notified of scaling, it just happens for you.

As the DevOps guy at my full time job, and managing our own EC2 clusters, it makes me all that more curious to figure out what it would take to move our entire infrastructure/code to Python and host it with G.A.E. to see what the costs would be. My buddy Jorge has rebuilt an online store and inventory system on App Engine plus using Amazon's "Route 53" for DNS service, and he says he has yet to pay a dime to Google for any of the traffic or bandwidth.]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/04/25/dare-to-compare-cloud-hosting-vs-dedicated-hosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How not to be secure: blogsvertise.com stores passwords in insecure ways</title>
		<link>http://iandouglas.com/2011/04/12/how-not-to-be-secure-blogsvertise-com-stores-passwords-in-insecure-ways/</link>
		<comments>http://iandouglas.com/2011/04/12/how-not-to-be-secure-blogsvertise-com-stores-passwords-in-insecure-ways/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 20:12:48 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[devops]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[aggregated]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/57898987142905856</guid>
		<description><![CDATA[iandouglas736: was approached by blogsvertise.com to reactivate my acct, but see they're storing passwords in plaintext. #horrible #unacceptable #security]]></description>
			<content:encoded><![CDATA[<p>I was approached by blogsvertise.com recently to reactivate my account, because I let it die a slow, agonizing, forever-alone, kind of death.
<p>I figured writing occasional sponsored blog articles would give me some extra Starbucks money here and there, and after talking to "Melissa", and telling her why I'd left (I was flooded by irrelevant advertising ideas like lawnmowers) and what I'd need to make it worth my while, she reactivated my account, at which point their system sent me an Email:
<p><a href="http://iandouglas.com/wp-content/uploads/2011/04/Screenshot-Inbox-ian.douglas@iandouglas.com-Mozilla-Thunderbird.png"><img class="aligncenter size-full wp-image-2035" title="Blogsvertise stored my old password in plain text!" src="http://iandouglas.com/wp-content/uploads/2011/04/Screenshot-Inbox-ian.douglas@iandouglas.com-Mozilla-Thunderbird.png" alt="" width="551" height="454" /></a>
<p>I was stunned. Either they'd stored my password in plaintext, or they'd stored it using an encryption algorithm, both of which are a Bad Thing™. If their systems are compromised, your passwords are either immediately readable by the attackers, or they can see which encryption scheme is used and how to decrypt them.
<p>I wrote Melissa a scathing letter telling her that her development team needed to adhere to industry best practices of using hash/salt setups, and while waiting for her reply which never came, I got an Email from them saying I had a new advertisement to blog about: nurse uniforms.
<p>Thankfully, <a href="https://lastpass.com/index.php">LastPass</a> generates lovely 40-byte passwords for me full of uppercase and lowercase letters, numbers and punctuation (I couldn't tell you my Amazon password if you held a gun to my head), so I immediately logged into the blogsvertise.com web site, edited my profile, and changed my password to some random 40-byte password which I didn't save in my LastPass vault, so even if/when their systems get compromised, I won't ever have to care that someone knows one of my passwords.
<p>I'm looking forward to attending some of the OAuth2/OpenID sessions at Google IO to hear more about third-party authentication schemes so I don't have to register with so many other services for things.
<p>Then again, if blogging actually paid anything worthwhile in terms of advertising, I wouldn't have even bothered with blogsvertise.com in the first place. Too bad The Rubicon Project kicked out all of their small publishers in late 2009, I was making decent money with them.]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/04/12/how-not-to-be-secure-blogsvertise-com-stores-passwords-in-insecure-ways/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HAProxy won&#8217;t manage multiple SSL-enabled sites</title>
		<link>http://iandouglas.com/2011/01/11/haproxy-wont-manage-multiple-ssl-enabled-sites/</link>
		<comments>http://iandouglas.com/2011/01/11/haproxy-wont-manage-multiple-ssl-enabled-sites/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 19:14:40 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[haproxy]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/24907061892489216</guid>
		<description><![CDATA[iandouglas736: playing with haproxy and ssl pass-through, good times]]></description>
			<content:encoded><![CDATA[<p>Well, it was worth a shot.

<p>I spent some time at work over lunch trying to get HAProxy set up in such a way that we could have a wildcard SSL certificate on several Amazon EC2 instances, answering to different domains, and let HAProxy route the traffic accordingly.

<p>Unfortunately, SSL certificates still appear to require separate IP addresses per host that you're securing. And since we can't assign multiple Elastic IP addresses to our HAProxy instance at Amazon, I'm at a bit of a loss for how to run a software proxy server to manage multiple secured domains. Larry and I each read about some work with stunnel, so we're going to look into that some more in the coming days, to see if interfacing that and HAProxy can solve our problem.

<p>After lurking in IRC for a while, a user in #haproxy informed me that routing SSL traffic to a backend configuration required "mode tcp" but that setting TCP mode meant we wouldn't have access to certain ACL information, like the domain name on the incoming request, in order to know how to route traffic. If anyone has any suggestions, I'm happy to hear 'em.]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/01/11/haproxy-wont-manage-multiple-ssl-enabled-sites/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zynga To Acquire Flock</title>
		<link>http://iandouglas.com/2011/01/05/zynga-to-acquire-flock/</link>
		<comments>http://iandouglas.com/2011/01/05/zynga-to-acquire-flock/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 01:45:26 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/22831073222197248</guid>
		<description><![CDATA[iandouglas736: Well, there goes the neighborhood RT @sawjd22  Zynga To Acquire Flock, The Social Browser That You Never Used http://tcrn.ch/e6yDJh]]></description>
			<content:encoded><![CDATA[I remember using Flock when it was still in beta. It was an intriguing project, but I remember thinking it was cumbersome, and not terribly useful. Of course, back then I had a barely-used MySpace profile, had just started to use Facebook and hadn't even heard of Twitter. And today I use TweetDeck to manage Facebook and Twitter.

<p>As Zynga is an almost-competitor to <a href="http://armorgames.com">my employer</a>, and the fact that my CEO apparently follows me on Twitter, it struck up a conversation about this acquisition by Zynga. I shared some thoughts with Dan (my CEO) about what I thought the deal would mean.

<p>First off, Zynga is all about social gaming. How many ___Ville games do they have on Facebook now? They've got Poker, some mob-related game, etc. And they have browser toolbars to help you manage your games so you know when your virtual crops need fertilizing.

<p>My suspicions about this deal are this:

<p>Flock moved from the Mozilla code base to the Chromium code base. Shortly after that, Chromium integrated Adobe's Flash player into their browser. I bet this is about the time that Zynga decided to make their move. Now they'll have a platform to build a whole desktop application to manage your online social gaming experience, not just a toolbar.]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/01/05/zynga-to-acquire-flock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx and Postgres FTS</title>
		<link>http://iandouglas.com/2011/01/05/nginx-and-postgres-fts/</link>
		<comments>http://iandouglas.com/2011/01/05/nginx-and-postgres-fts/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 17:39:39 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>
		<category><![CDATA[aggregated]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[fts]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/22708821143064576</guid>
		<description><![CDATA[iandouglas736: after seeing the neat full text search capabilities of Postgres last night, I'm going to try to build it into an nginx module.]]></description>
			<content:encoded><![CDATA[<p>I tinkered with PostgreSQL's full-text-search (FTS) capabilities and I'm pretty impressed. On a table with 1.2 million rows of user profile information, I can do a token-based FTS search for usernames in under 90 milliseconds. Unfortunately, the FTS token system doesn't recognize MixedCaseUsernames, or numbers between words, as word separators. I did, however, fall quickly in love with the marker tag system which tells Postgres to prepend and append HTML 4 bold tags around matching portions of text.
<p>After a little help from the #postgres IRC channel on freenode, I also had an all-SQL approach to finding username portions based on 3-character tokens generated from the entire username. Yes, this index took a while to build, but that's not the point.
<p>The point is that now I have a stored procedure that does a 2-part lookup, one using PostgreSQL's token search, the other doing an ILIKE comparison based on the 3-character token bits, finds a unique list of matches via DISTINCT, limits the count, and then loops through the result set adding my own bold tags to the results, and returns the entire set in under 100ms.
<p>I was able to get Nginx up and running with the ngx_postgres module, and it works well for our application, but some caching around the results would be nice. I'm waiting to hear back from the author of ngx_postgres and the author of the srcache-nginx-module project to see if they have additional insights as to why using srcache is trying to force an SSL connection to Postgres. Once we can add that caching layer, this setup should scream.]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2011/01/05/nginx-and-postgres-fts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>multi-threaded Perl, I&#8217;ve missed you&#8230;</title>
		<link>http://iandouglas.com/2010/06/30/ive-misse-multi-threaded-perl-ive-missed-you/</link>
		<comments>http://iandouglas.com/2010/06/30/ive-misse-multi-threaded-perl-ive-missed-you/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 20:57:08 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://twitter.com/iandouglas736/statuses/17441097414</guid>
		<description><![CDATA[iandouglas736: ah ... multi-threaded #Perl, I've missed you...]]></description>
			<content:encoded><![CDATA[<pre>#!/usr/bin/perl -w
use strict ;
my $can_use_threads = eval 'use threads; 1';
die("Your Perl doesn't support threads\n") if (!$can_use_threads) ;

use threads ;
use threads::shared ;

my @threads = () ;

# spin a bunch of threads
for (my $i=0; $i&lt;5; $i++) {
  my $param1 = $i ;
  my $param2 = $i**2 ;
  $threads[$i] = threads-&gt;create(\&amp;thread_function, $param1, $param2) or die("couldn't create a thread for i: $i\n") ;
}

# wait for all threads to finish
for (my $i=0; $i&lt;5; $i++) {
  $threads[$i]-&gt;join() ;
}

exit ;

sub thread_function
{
  my $param1 = shift ;
  my $param2 = shift ;
  print "Hi there, I'm thread #$param1, my value is $param2\n" ;
}
</pre>]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/06/30/ive-misse-multi-threaded-perl-ive-missed-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 on Alienware M17x (R1)</title>
		<link>http://iandouglas.com/2010/05/27/ubuntu-10-04-on-alienware-m17x-r1/</link>
		<comments>http://iandouglas.com/2010/05/27/ubuntu-10-04-on-alienware-m17x-r1/#comments</comments>
		<pubDate>Thu, 27 May 2010 09:19:32 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=1224</guid>
		<description><![CDATA[After several failed attempts to install Linux late last year, and over the past week or so, I finally got Ubuntu 10.04 installed on my Alienware laptop. Working wifi, working audio, working nvidia graphics. To get started, I downloaded unetbootin-windows-442.exe, and the Ubuntu 10.04 LTS CD .iso, and ran unetbootin to unpack the ISO on [...]]]></description>
			<content:encoded><![CDATA[<p>After several failed attempts to install Linux late last year, and over the past week or so, I finally got Ubuntu 10.04 installed on my Alienware laptop. Working wifi, working audio, working nvidia graphics.</p>
<p>To get started, I downloaded <a href="http://sourceforge.net/projects/unetbootin/files/UNetbootin/442/unetbootin-windows-442.exe/download">unetbootin-windows-442.exe</a>, and the Ubuntu 10.04 LTS CD .iso, and ran unetbootin to unpack the ISO on a USB stick. When that was finished, I rebooted, went into the BIOS and disabled both the hybrid graphics and the integrated graphics, rebooted again and selected F12 to choose my boot medium, and booted from the USB stick.</p>
<p>With the graphics cards &#8216;disabled&#8217;, installation began in 1900&#215;1200 native mode. I moved my 25GB recovery partition to another USB drive using dd:<br />
dd if=/dev/sda2 of=/media/MyPassport/DellRecovery.partition<br />
I then removed that partition and started the Ubuntu installer.</p>
<p>When installation was complete, and I rebooted, I realized I had no way to download the restricted STA driver, but there&#8217;s a workaround &#8212; you can install it from your installation medium by running a dpkg command. First, insert your installation medium, then start a Terminal prompt, change to the mount folder, such as /media/cdrom or in my case, /media/CORSAIR &#8230; from there, change into the pool folder, so your path is similar to /media/CORSAIR/pool/ and run the following command:</p>
<p><code>sudo dpkg -i restricted/b/bcmwl/bcmwl-kernel-source_5.60.48.36+bdcom-0ubuntu3_i386.deb \<br />
main/d/dkms/dkms_2.1.1.2-2fakesync1_all.deb \<br />
main/p/patch/patch_2.6-2ubuntu1_i386.deb<br />
</code><br />
This will install the restricted driver and kernel patch, etc.</p>
<p>Next, I downloaded all available updates, rebooted, loaded the restricted nvidia driver, rebooted, and voila:<a href="http://iandouglas.com/wp-content/uploads/2010/05/nvidia.png"></a></p>
<p><a href="http://iandouglas.com/wp-content/uploads/2010/05/nvidia.png"><img class="aligncenter size-medium wp-image-1225" title="nvidia" src="http://iandouglas.com/wp-content/uploads/2010/05/nvidia-300x231.png" alt="" width="300" height="231" /></a></p>
<p>Now to see if the HDMI output will work at the office in the morning for a dual monitor setup.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/05/27/ubuntu-10-04-on-alienware-m17x-r1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apparently there&#8217;s no escape from Facebook&#8217;s Social Web</title>
		<link>http://iandouglas.com/2010/04/28/apparently-theres-no-escape-from-facebooks-social-web/</link>
		<comments>http://iandouglas.com/2010/04/28/apparently-theres-no-escape-from-facebooks-social-web/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 17:12:52 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=1147</guid>
		<description><![CDATA[Like it or not, opt-out or not, Facebook will deliver a social web. I have my Facebook account locked down fairly well with very few details open to the public (my website and Email) and I of course followed my own instructions on how to properly opt out of Facebook&#8217;s &#8220;Instant Personalization&#8221; settings. Or so [...]]]></description>
			<content:encoded><![CDATA[<p>Like it or not, opt-out or not, Facebook will deliver a social web.</p>
<p>I have my Facebook account locked down fairly well with very few details open to the public (my website and Email) and I of course followed <a href="http://iandouglas.com/2010/04/21/howto-protect-yourself-as-best-you-can-from-facebooks-f8-platform/">my own instructions</a> on how to properly opt out of Facebook&#8217;s &#8220;Instant Personalization&#8221; settings. Or so I thought.</p>
<p><a href="http://iandouglas.com/wp-content/uploads/2010/04/facebook-personalization.png"><img src="http://iandouglas.com/wp-content/uploads/2010/04/facebook-personalization.png" alt="" title="facebook-personalization" width="209" height="443" class="alignleft size-full wp-image-1149" /></a><br />
Even though I have opted out and set up restrictive privacy settings as seen to the left, visiting <a href="http://www.facebook.com/cormyn">http://www.facebook.com/cormyn</a> will allow you to view my entire friend&#8217;s list, and show you all products, apps, music and games that I am a fan of, or have selected that I like. Honestly, I could care less that the world can see that I like Jason Mraz or Sara Bareilles, they&#8217;re both excellent musicians. And I&#8217;m certain that nobody is going to lose any sleep knowing that I&#8217;m a die-hard Dr Pepper fan or that I play some of Zynga&#8217;s games on Facebook.</p>
<p><br clear=all /><br />
However, despite my efforts to follow Facebook&#8217;s instructions to opt out of Instant Personalization, I visited CNN.com this morning to read a news article about a tweet I read a few minutes ago, and saw the following:<br />
<a href="http://iandouglas.com/wp-content/uploads/2010/04/cnn-facebook-home.png"><img src="http://iandouglas.com/wp-content/uploads/2010/04/cnn-facebook-home.png" alt="" title="cnn-facebook-home" width="307" height="410" class="aligncenter size-full wp-image-1152" /></a></p>
<p>Upon clicking an article, I also saw this at the top right of the screen and also at the bottom of the article I was reading:<br />
<a href="http://iandouglas.com/wp-content/uploads/2010/04/CNN-facebook.png"><img src="http://iandouglas.com/wp-content/uploads/2010/04/CNN-facebook.png" alt="" title="CNN-facebook" width="359" height="88" class="aligncenter size-full wp-image-1148" /></a></p>
<p>This is definitely something that concerns me. Not only is the front page of CNN showing me messages about one of my Facebook friends, it&#8217;s also aware of the fact that none of my 300-something friends on Facebook have &#8220;recommended&#8221; the article on their Facebook pages, and suggests I get the scoop and be the first of my friends to do so.</p>
<p>Seriously, Facebook? I&#8217;ve opted out, I&#8217;ve blocked the three partner sites, yet there are still other sites out there, implementing your &#8220;like&#8221; button for your grandiose &#8220;social web&#8221; scheme, and my information and web browsing will be made known to you just because I happen to be logged into Facebook?</p>
<div style="float:left; margin-right:10px;"><script type="text/javascript"><!--
google_ad_client = "pub-1335093070283715";
/* id content, 300x250, created 4/26/10 */
google_ad_slot = "8498795251";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>That&#8217;s right, folks: as soon as I&#8217;ve logged out of Facebook, CNN fails to show any of the text/graphics which I show in the screenshots above.</p>
<p>I will admit, the web developer in me is amazed because I know the effort and technology that goes into building something like this. At the same time, if the only way I can NOT see this information is to log out of Facebook, then perhaps I will reserve a separate browser for my Facebook activity, and use my primary browser choice (Google Chrome) for the rest of the web.</p>
<p>Either that, or I need to see if AdBlock has a rule implemented that blocks Facebook&#8217;s iframe on every other web site. That&#8217;d be convenient.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/28/apparently-theres-no-escape-from-facebooks-social-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HOWTO: start named PuTTY sessions from a Windows shortcut</title>
		<link>http://iandouglas.com/2010/04/23/howto-start-named-putty-sessions-from-a-windows-shortcut/</link>
		<comments>http://iandouglas.com/2010/04/23/howto-start-named-putty-sessions-from-a-windows-shortcut/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 18:38:55 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=687</guid>
		<description><![CDATA[I have Windows 7 on my laptop, but since I&#8217;m a die-hard Linux geek and haven&#8217;t got the patience to wait for anyone else to figure out all of the drivers needed for a clean, working Linux build on my M17x, I installed Cygwin. However, the limitation of running Cygwin in a DOS-like command line [...]]]></description>
			<content:encoded><![CDATA[<p>I have Windows 7 on my laptop, but since I&#8217;m a die-hard Linux geek and haven&#8217;t got the patience to wait for anyone else to figure out all of the drivers needed for a clean, working Linux build on my <a href="http://www.dell.com/us/en/home/notebooks/laptop-alienware-m17x/pd.aspx?refid=laptop-alienware-m17x&amp;cs=19&amp;s=dhs" target="_blank">M17x</a>, I installed <a href="http://www.cygwin.com/" target="_blank">Cygwin</a>. However, the limitation of running Cygwin in a DOS-like command line window that couldn&#8217;t be expanded beyond 80 characters was a nuisance. Enter &#8220;puttytel&#8221; (<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">downloadable on this page</a>) which can connect to your local Cygwin installation in a PuTTY-like SSH terminal. Running this executable gives you a connection type of &#8220;cygterm&#8221; which you select along with a command of just a dash mark for a local shell.</p>
<p>Of course, then came the mind-numbing exercise of clicking the PuTTY icon, and having to double-click the &#8220;cygwin&#8221; profile I made (for scrollback, colored terminal, etc). A quick Google search later, and I had my answer.</p>
<p>1. Create a shortcut on your desktop for PuTTYtel.exe (right-button drag and drop the executable works great, select &#8220;Create Shortcuts here&#8221;)<br />
2. Right-click the shortcut icon and select Properties<br />
3. Under the &#8220;General&#8221; tab, give it a meaningful name<br />
4. Under the &#8220;Shortcut&#8221; tab, where it lists your target as &#8220;C:\whateverpath\puttytel.exe&#8221; change it to include a parameter of -load (single dash) and then a string (quoted if it contains spaces, etc) of which profile name you want to autoload. Since mine was called &#8220;&#8212;-cygwin&#8221; (so it would appear at the top of my stored session list), my new Target line became this:<br />
<code>"C:\Program Files (x86)\putty\puttytel.exe" -load "----cygwin"</code><br />
5. Click OK to save, then right-click on the shortcut again and select &#8220;pin to taskbar&#8221;<br />
6. Now you can simply click that icon, and it will immediately load that PuTTY saved session for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/23/howto-start-named-putty-sessions-from-a-windows-shortcut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: protect yourself (as best you can) from Facebook&#8217;s F8 platform</title>
		<link>http://iandouglas.com/2010/04/21/howto-protect-yourself-as-best-you-can-from-facebooks-f8-platform/</link>
		<comments>http://iandouglas.com/2010/04/21/howto-protect-yourself-as-best-you-can-from-facebooks-f8-platform/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 23:18:03 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=681</guid>
		<description><![CDATA[To recap my &#8220;social web is not a private web&#8221; article, Facebook&#8217;s F8 platform will begin to create a massive social web for which you have already given them permission to share your public info. Be warned though that even if you do take some of the following steps to opt-out, your friends might still [...]]]></description>
			<content:encoded><![CDATA[<p>To recap my &#8220;s<a title="Facebook's social web will not be a private web" href="http://iandouglas.com/2010/04/21/facebooks-social-web-will-not-be-a-private-web/">ocial web is not a private web</a>&#8221; article, Facebook&#8217;s F8 platform will begin to create a massive social web for which you have already given them permission to share your public info.</p>
<p>Be warned though that even if you do take some of the following steps to opt-out, your friends might still be able to share some of your public information (Name, Profile Picture, Gender, Current City, Networks, Friend List, and Pages) without your consent as these &#8216;partner&#8217; sites will have access to your friend&#8217;s contact list which can contain public pieces of information about you.</p>
<p>To help protect yourself, here are some links at Facebook that can help you opt out of as much of this F8 platform as you can:</p>
<p>1. <a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications">http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications</a></p>
<p>You&#8217;ll notice a new check box at the bottom called &#8220;Instant Personalization&#8221; which is enabled &#8212; this was Facebook&#8217;s way of forcing you to opt into their f8 platform without asking you first.<br />
Recommendation: un-select the &#8220;Instant Personalization&#8221; checkbox.</p>
<p>2. <a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications&amp;field=friends_share">http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications&amp;field=friends_share</a></p>
<p>This first link will let you control which pieces of your profile data can be shared by your friends.<br />
Recommendation: turn them all off.</p>
<div style="float:left"><script type="text/javascript"><!--
google_ad_client = "pub-1335093070283715";
/* id content, 300x250, created 4/26/10 */
google_ad_slot = "8498795251";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<div>
3. <a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=profile">http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=profile</a></div>
<p>This is where you can see who has access to various pieces of information you store on Facebook.<br />
Recommendation: set everything to &#8220;Only Friends&#8221;.</p>
<p>4. <a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=contact">http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=contact</a></p>
<p><a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=contact"></a>This is where you select who can access the contact information you store on Facebook.<br />
Recommendation: Lock this area down unless there&#8217;s information here that you truly want to be publicly available such as an IM screen name for your friends to find. I have contact information that I only make available to family (cell phone, etc) so I have a contact group set up, and give them permission to certain pieces of info that wouldn&#8217;t be shown even to &#8220;only friends.&#8221; I let my web site, iandouglas.com, be available to &#8216;everyone&#8217;.</p>
<p>5. Block the partner apps you don&#8217;t want your information given to. Each of these three links will have a &#8220;Block Application&#8221; link on the left menu of the page.<br />
Recommendation: block these apps unless you want these partners to have your data.</p>
<p>Microsoft Docs.com: <a href="http://www.facebook.com/docs">http://www.facebook.com/docs</a><br />
Pandora: <a href="http://www.facebook.com/apps/application.php?id=139475280761">http://www.facebook.com/apps/application.php?id=139475280761<br />
</a>Yelp: <a href="http://www.facebook.com/apps/application.php?id=97534753161">http://www.facebook.com/apps/application.php?id=97534753161</a></p>
<p><a href="http://www.facebook.com/apps/application.php?id=97534753161"></a>Once you block them, you can verify they&#8217;re listed here: <a href="http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications&amp;field=blocked_apps">http://www.facebook.com/settings/?tab=privacy#!/settings/?tab=privacy&amp;section=applications&amp;field=blocked_apps</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/21/howto-protect-yourself-as-best-you-can-from-facebooks-f8-platform/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Facebook&#8217;s social web will not be a private web</title>
		<link>http://iandouglas.com/2010/04/21/facebooks-social-web-will-not-be-a-private-web/</link>
		<comments>http://iandouglas.com/2010/04/21/facebooks-social-web-will-not-be-a-private-web/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 22:21:23 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=674</guid>
		<description><![CDATA[Facebook has introduced their new &#8216;f8&#8242; platform which raises several serious privacy concerns. While I&#8217;m not a tinfoil-hat kinda guy, these realizations today really raised my ire against Facebook. The f8 platform will allow web developers to add a &#8216;like&#8217; button on their sites, and if you&#8217;re a content publisher, face it &#8212; you&#8217;ll WANT [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook has introduced their new &#8216;f8&#8242; platform which raises several serious privacy concerns. While I&#8217;m not a tinfoil-hat kinda guy, these realizations today really raised my ire against Facebook.</p>
<p>The f8 platform will allow web developers to add a &#8216;like&#8217; button on their sites, and if you&#8217;re a content publisher, face it &#8212; you&#8217;ll WANT to add that to your site. But this HTML iframe will give Facebook access to every site you visit that includes the LIKE button, however those sites won&#8217;t be able to *publish* anything on your Facebook wall, for example, unless you specifically permit them to. However, FB will still know you&#8217;ve been there, and who knows what they&#8217;ll do with that information (they&#8217;ve declined to specify what they&#8217;ll use that information for). It seems the only</p>
<p>Also included in the f8 platform is a means to set up partnerships between Facebook and groups like Microsoft, Pandora and Yelp which will gain access to any public information you have on Facebook, including your name, gender, profile photo, and friend connections. Even if you set your own privacy settings to opt-out of giving these partner sites your information, your friends could still unwittingly give this information to the partner sites without your consent. To fix this, Facebook says you must manually visit each of these partner sites and ALSO opt-out of their f8 platform settings. To recap, to restrict my public information from being given away, I must:</p>
<ol>
<li>DE-select a checkbox in my Facebook privacy settings that FB has already turned on without my consent</li>
<li>Find a list of partner applications at Facebook and manually block each application from within Facebook</li>
<li>Visit each partner&#8217;s web site and click a &#8220;no thanks&#8221; link</li>
<li>Convince every one of my hundreds of Facebook friends to do the same. One friend not complying will undo all the work I do myself.</li>
</ol>
<p>That&#8217;s an awful lot of hoop-jumping to protect my privacy. Not to mention the first point that every site that starts including their LIKE button will give Facebook a means to log every page I visit which I have no way to opt-out of.</p>
<div style="float:left"><script type="text/javascript"><!--
google_ad_client = "pub-1335093070283715";
/* id content, 300x250, created 4/26/10 */
google_ad_slot = "8498795251";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<div style="padding-left:20px;">At launch, only docs.com (partnership with Microsoft to rival Google Docs), Pandora and Yelp are partnered up on f8, but how are we, as users, going to know when Facebook adds a new partner so we can race there to opt-out before an unwitting friend beats us there and unknowingly shares our info? I don&#8217;t like the idea of Facebook having dozens or hundreds of partners and now suddenly I have to perform two tasks per partner in order to opt-out.</div>
<p>Granted, this platform will certainly, in Facebook&#8217;s words, make web &#8220;more open and social.&#8221; But at what price? How is my web experience going to be better if I have to lock down my social network profiles and spend time opting out of these partner sites when my friends who do NOT do this work will end up sharing my information any way, without my consent?</p>
<p>In the 90&#8242;s, there were tons of computer viruses that would infect a person&#8217;s PC and upload their address book to a central location which would then attempt to re-infect those users via Email. This feels eerily similar. Even if I lock down my settings, a friend who doesn&#8217;t will sent their entire friends list to these partner sites which will include my Facebook information. How is that a better experience for me?</p>
<p>From Facebook&#8217;s own help FAQ&#8217;s:</p>
<p><a><strong>What data is shared with instantly personalized partner sites?</strong><br />
When you and your friends visit an instantly personalized site, the partner can use your public Facebook information, which includes your name, profile picture, gender, and connections. To access any non-public information, the website is required to ask for you or your friend&#8217;s explicit permission.<br />
</a><a href="http://www.facebook.com/help/?faq=17100">http://www.facebook.com/help/?faq=17100</a></p>
<p><strong>How do I opt-out of instant personalization?</strong><br />
You can opt-out of instant personalization by disallowing it here. By clicking &#8220;No Thanks&#8221; on the Facebook notification on partner sites, partners will delete your data. To prevent your friends from sharing any of your information with an instant personalization partner, block the application: <a href="http://www.facebook.com/docs">Microsoft Docs.com</a>, <a href="http://www.facebook.com/apps/application.php?id=139475280761">Pandora</a>, <a href="http://www.facebook.com/apps/application.php?id=97534753161">Yelp</a>.<br />
<a rel="nofollow" href="http://www.facebook.com/help/?faq=17105" target="_blank">http://www.facebook.com/help/?faq=17105</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/21/facebooks-social-web-will-not-be-a-private-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Imitation is the sincerest form of flattery</title>
		<link>http://iandouglas.com/2010/04/15/imitation-is-the-sincerest-form-of-flattery/</link>
		<comments>http://iandouglas.com/2010/04/15/imitation-is-the-sincerest-form-of-flattery/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 22:41:42 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>
		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=671</guid>
		<description><![CDATA[I&#8217;ve been developing a web app for a little while that allows users to register their Facebook Email address, select one or more games from a list, and download mass-add Email lists that they can bulk-add into Facebook&#8217;s &#8220;invite a friend via Email address&#8221;. You can check out my latest redesign too, over at http://facebook-massadd.com/ [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been developing a web app for a little while that allows users to register their Facebook Email address, select one or more games from a list, and download mass-add Email lists that they can bulk-add into Facebook&#8217;s &#8220;invite a friend via Email address&#8221;. You can check out my latest redesign too, over at <a href="http://facebook-massadd.com/">http://facebook-massadd.com/</a> which include a new HTML/CSS layout, automated RSS feeds and Twitter integration, and finally got around to adding a Google Analytics tracking code on the site.</p>
<p>I was recently contacted by a gentleman via Email asking if I&#8217;d sell him the site, or license a copy of the site to him &#8220;to tinker with&#8221; as a personal project. We&#8217;ve sent a few Emails back and forth, but I&#8217;ve had a busy week and didn&#8217;t get back to him until today. Turns out he, or his company, have posted a scriptlance.com project request to clone my site and add extra functionality to it. Today, when I logged into Google Analytics, I noticed a few incoming links from scriptlance.com, a site I&#8217;ve looked at in the past for freelance work, so I followed the links and found his project request.</p>
<p>Honestly, I&#8217;m quite flattered. While this isn&#8217;t the first site I&#8217;ve built for which I&#8217;ve seen subsequent freelance project requests to clone, it&#8217;s always a nice feeling to know I&#8217;ve done a good enough job on a site, building up a user base, that makes the site and its functionality worth copying.</p>
<p>I&#8217;m a little bit torn on the idea of just selling the web site, but I&#8217;m unsure if that would constitute &#8220;selling&#8221; the Email addresses of my users, which I promised all 4,000 of them is something I wouldn&#8217;t do. However, I made that promise in the context of selling their Email addresses to marketing companies, etc..</p>
<p>Any thoughts or opinions?</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/15/imitation-is-the-sincerest-form-of-flattery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>paved with good intentions</title>
		<link>http://iandouglas.com/2010/04/13/paved-with-good-intentions/</link>
		<comments>http://iandouglas.com/2010/04/13/paved-with-good-intentions/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 20:59:16 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=663</guid>
		<description><![CDATA[I&#8217;ve had a lot of web projects and ideas over the years. Unfortunately, as I approach middle-age, I find that having ideas and having the energy to build those ideas are very, very different things. For example, a coworker and myself, while we were both employed at Rubicon and playing darts all the time, came [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a lot of web projects and ideas over the years. Unfortunately, as I approach middle-age, I find that <span style="text-decoration: underline;">having</span> ideas and having the energy to <span style="text-decoration: underline;">build</span> those ideas are very, very different things.</p>
<p>For example, a coworker and myself, while we were both employed at Rubicon and playing darts all the time, came up with the idea of a mobile web app (thus, usable on any mobile device that could access the web) to track dart scores, perhaps let users register and track scores over time. I registered &#8220;dartscore.mobi&#8221; and we put up a basic scoring system for 501/301/x01 games, and promptly got way too busy to ever carry on the idea. Now, at the risk of an expiring domain name, I&#8217;m left with the decision of paying money to renew the domain for one or more years, and dream of a time when I could work on the project, or just drop the idea. Or, write a blog post about the idea, and see if there&#8217;s enough interest to carry on the idea.</p>
<p>So now I&#8217;m debating building a web site just to list these ideas, since very few people read this blog at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/04/13/paved-with-good-intentions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reinventing myself, and my blog</title>
		<link>http://iandouglas.com/2010/03/26/reinventing-myself-and-my-blog/</link>
		<comments>http://iandouglas.com/2010/03/26/reinventing-myself-and-my-blog/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:41:11 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=653</guid>
		<description><![CDATA[In 2005 and 2006, I blogged a LOT. So did my wife. It seems that since our son was born in late 2008, neither of us has had much time for blogging any more, and I think my wife has lost interest in it as other things occupy her time. Combined with the prevalence of [...]]]></description>
			<content:encoded><![CDATA[<p>In 2005 and 2006, I blogged a LOT. So did <a href="http://bloggymommer" target="_blank">my wife</a>. It seems that since our son was born in late 2008, neither of us has had much time for blogging any more, and I think my wife has lost interest in it as other things occupy her time.</p>
<p>Combined with the prevalence of micro-blogging such as Twitter and Facebook status updates, writing out full-length quality postings seems to be quite old-school now. While in the process of migrating my old blog articles back to WordPress, I&#8217;m reading through all of them again and finding some oldies but goodies, such as &#8220;<a href="http://iandouglas.com/2005/05/11/date-a-geek/">Reasons to Date a Geek</a>&#8221; and &#8220;<a href="http://iandouglas.com/2005/07/17/do-you-geek-take-this-mini-geek/">I, Geek, take you, Mini-geek</a>&#8221; among others. I also see lots of failed potential such as setting up thedouglasclan.com as a photo site for our family, and I&#8217;ve lost count of how many times I&#8217;ve switched from one blog engine to another or posted about new layouts on the site.</p>
<p>Like most full-time employees, I fear blogging about my workplace or what I&#8217;m working on, so as not to <a href="http://www.urbandictionary.com/define.php?term=dooced" target="_blank">get dooced</a> which really only leaves a few areas of my life to share that I feel could help others: running a freelance business, web development, marriage, finances, and being a new dad. And since I&#8217;m not particularly an expert in any of those areas, I imagine iandouglas.com will be a culmination of all of those topics. I&#8217;ll do my best to categorize and tag my ramblings so you can filter out only what you really want to read.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/03/26/reinventing-myself-and-my-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data migration</title>
		<link>http://iandouglas.com/2010/03/26/data-migration/</link>
		<comments>http://iandouglas.com/2010/03/26/data-migration/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 07:43:33 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=482</guid>
		<description><![CDATA[After importing my Drupal database into my WordPress database, a single MySQL query imported all of my articles from Drupal to WordPress (without comments). All that&#8217;s left is to add categories and tags, and build URL redirects from thedouglasclan.com over to iandouglas.com. I simply got tired of some of the imitations I found in Drupal, [...]]]></description>
			<content:encoded><![CDATA[<p>After importing my Drupal database into my WordPress database, a single MySQL query imported all of my articles from Drupal to WordPress (without comments). All that&#8217;s left is to add categories and tags, and build URL redirects from thedouglasclan.com over to iandouglas.com. I simply got tired of some of the imitations I found in Drupal, and find WordPress a much friendlier interface to use.</p>
<p>For anyone curious enough, here&#8217;s the query I used to migrate from Drupal 6.8 to WordPress 2.9:</p>
<p><code>INSERT INTO wp_posts (id, post_author, post_date, post_content, post_title, post_excerpt, post_name, post_modified, post_status)<br />
SELECT DISTINCT 120+n.nid, 1, FROM_UNIXTIME(created), body, n.title, teaser, REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'),FROM_UNIXTIME(changed), "draft"<br />
FROM drupal6_node n, drupal6_node_revisions r<br />
WHERE n.vid = r.vid;<br />
</code></p>
<p>The 120+ vaue in the ID field is because I currently had 120 items in my wp_posts table already, and each post must have a unique ID. So, I simply added a value of 120 to whatever ID value was in Drupal. The &#8217;1&#8242; value in the post_author field assigns my WordPress user ID as the author of each article. I also added a post_status of &#8220;draft&#8221; so I could go through the articles, verify their integrity, and then publish them.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/03/26/data-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: redirect iPhone/iPod users on nginx</title>
		<link>http://iandouglas.com/2010/01/20/howto-redirect-iphoneipod-users-on-nginx/</link>
		<comments>http://iandouglas.com/2010/01/20/howto-redirect-iphoneipod-users-on-nginx/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 23:44:46 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=35</guid>
		<description><![CDATA[I learned a little something about nginx, a small footprint web server that is ideal for serving up mobile sites, or sites where you don&#8217;t want the heavy usage of Apache. Today, I needed to solve a problem where we redirected iPhone/iPod users to a different URL. Since nginx doesn&#8217;t use the old-style mod_rewrite rules, [...]]]></description>
			<content:encoded><![CDATA[<p>I learned a little something about nginx, a small footprint web server that is ideal for serving up mobile sites, or sites where you don&#8217;t want the heavy usage of Apache. Today, I needed to solve a problem where we redirected iPhone/iPod users to a different URL. Since nginx doesn&#8217;t use the old-style mod_rewrite rules, I had to learn how to enable redirection in the server.</p>
<p>Since nginx was already compiled with redirection support, I simply had to locate the correct configuration file and add a few lines of code, and away it went.</p>
<p>First, I checked out /etc/nginx/ and opened the site configuration file within the /sites-enabled/ path. For this example, let&#8217;s say the site was m.iandouglas.com:</p>
<pre><code># vi /etc/conf/nginx/sites-enabled/m.iandouglas.com</code></pre>
<p>In here, I&#8217;d look for the &#8216;server&#8217; block and add my redirection rules:</p>
<pre><code>server {
	listen      80;
	server_name m.iandouglas.com;
        root /var/www/m.iandouglas.com/public;

	# redirect iPhone/iPod users to the new iphone site
        if ($http_user_agent ~* '(iPhone|iPod)') {
                rewrite ^/$ http://m.iandouglas.com/iphone/index.html;
        }
.
.
.
</code></pre>
<p>Then a simple nginx restart:</p>
<p><code># /etc/init.d/nginx restart</code></p>
<p>&#8230; and we were all set.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/01/20/howto-redirect-iphoneipod-users-on-nginx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dream come true</title>
		<link>http://iandouglas.com/2010/01/20/dream-come-true/</link>
		<comments>http://iandouglas.com/2010/01/20/dream-come-true/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 00:38:06 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[armor games]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=33</guid>
		<description><![CDATA[I think I was 8 years old when my dad came home with a Commodore 64 and various games. Hacking up those games in C64 Basic is what got me interested in programming, and now 20-something years later I landed a job at Armor Games as a Sr Web Developer. Not doing game programming, but [...]]]></description>
			<content:encoded><![CDATA[<p>I think I was 8 years old when my dad came home with a Commodore 64 and various games. Hacking up those games in C64 Basic is what got me interested in programming, and now 20-something years later I landed a job at Armor Games as a Sr Web Developer. Not doing game programming, but I *am* in the industry where I&#8217;m happiest, and the web development work so far has been a nice change from the heavy lifting I&#8217;ve been doing in Perl for so long. For obvious reasons I won&#8217;t blog about specifics going on here at the office, but I may share insights into some of the things I&#8217;m learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2010/01/20/dream-come-true/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build-it-Yourself SpamAssassin Trainer</title>
		<link>http://iandouglas.com/2008/11/18/build-it-yourself-spamassassin-trainer/</link>
		<comments>http://iandouglas.com/2008/11/18/build-it-yourself-spamassassin-trainer/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 20:45:09 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=64</guid>
		<description><![CDATA[Over the past while, I&#8217;ve been working on a build-it-yourself interface for configuring my SpamAssassin Training script. You can find it here. Keep in mind, I&#8217;m not the author of SpamAssassin, nor its included utility called &#8220;sa-learn&#8221;. My Perl script simply tells the sa-learn utility how to find your mailboxes to train it on spam/non-spam. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past while, I&#8217;ve been working on a build-it-yourself interface for configuring my SpamAssassin Training script. <a href="http://iandouglas.com/spamassassin-trainer/">You can find it here</a>.</p>
<p>Keep in mind, I&#8217;m not the author of SpamAssassin, nor its included utility called &#8220;sa-learn&#8221;. My Perl script simply tells the sa-learn utility how to find your mailboxes to train it on spam/non-spam.</p>
<p>After fielding several support requests over the past year which usually result from basic syntax errors or confusion over which option(s) to use, I decided to write a front-end for the script, asking which of several scenarios are best suited to the user, and then have PHP do a search-and-replace on the Perl script to build the configuration the user ultimately needs to install on their web hosting account.</p>
<p>So far this has been very successful. I&#8217;ve had several users write in saying it&#8217;s much easier for them to manage.</p>
<p>I&#8217;ll have to tweak the next version of the script, though, to alert other users to visit the build-it-yourself page to download a new copy of the script whenever I make a change.</p>
<p>The other thing that might be handy, of course, is to separate out the logic of the scanning script from the configuration, and just have the main portion of the script download a new copy of the scanning logic whenever a new version is detected &#8230; I&#8217;ll have to think about that one a little longer.</p>
<p>I also promised about a year ago to write a PHP version of the training script, since some users just don&#8217;t understand Perl or execution permissions or what a &#8220;500&#8243; error means or how to work around it, etc., but truth be told, PHP is a bit of a pain to write output of shell-executed programs while they run. In my experience, PHP waits for everything to be finished before displaying any output.</p>
<p>Does anyone know of the equivalent command in PHP that unbuffers output like $|=1; does in Perl for PHP calls like exec() or passthru()?</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2008/11/18/build-it-yourself-spamassassin-trainer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Mitch Hedberg site went live tonight</title>
		<link>http://iandouglas.com/2008/09/02/new-mitch-hedberg-site-went-live-tonight/</link>
		<comments>http://iandouglas.com/2008/09/02/new-mitch-hedberg-site-went-live-tonight/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 07:23:18 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>
		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://iandouglas.com/?p=113</guid>
		<description><![CDATA[I&#8217;ve been pleased to have helped out over at http://mitchhedberg.net/ in the past, with some phpBB programming to keep spammers out of the memorial forums for the late Mitch Hedberg, by far my most favorite comedian ever. Lynn Shawcroft, Mitch&#8217;s wife, contacted me about a week ago, asking if I could help redesign the whole [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been pleased to have helped out over at <a href="http://mitchhedberg.net/">http://mitchhedberg.net/</a> in the past, with some phpBB programming to keep spammers out of the memorial forums for the late Mitch Hedberg, by far my most favorite comedian ever.</p>
<p>Lynn Shawcroft, Mitch&#8217;s wife, contacted me about a week ago, asking if I could help redesign the whole web site into something classier and and easier to manage. Sounded like a job for Drupal, so I moved a good bulk of their content to the CMS, and the site looks great.</p>
<p>Lynn called me back tonight and is going to put me on the guest list for the CD Release Party for &#8220;Do You Believe In Gosh?&#8221;, a new recording of Mitch&#8217;s material that he recorded just before his death in 2005. There are release parties all over the country, but Lynn mentioned that Mitch&#8217;s folks will be in town so I&#8217;m going to get to meet them at the party too &#8212; how cool is that?! I can&#8217;t wait. Check out the new site for Mitch to see where the party is in your area.</p>
<p>Lynn&#8217;s web site is <a href="http://lynnshawcroft.com/">http://lynnshawcroft.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2008/09/02/new-mitch-hedberg-site-went-live-tonight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Georgia Lab Rescue back online</title>
		<link>http://iandouglas.com/2008/06/27/georgia-lab-rescue-back-online/</link>
		<comments>http://iandouglas.com/2008/06/27/georgia-lab-rescue-back-online/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 09:26:42 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[webdev]]></category>
		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://iandouglas.com/2008/06/27/georgia-lab-rescue-back-online/</guid>
		<description><![CDATA[<a href="http://georgialabrescue.com">Georgia Lab Rescue</a> is back online, complete with forums to help those in the state of Georgia to find homes for their dogs (or dogs for their homes). We'll see what Kim has up her sleeve next for GLR.

I've also reinstalled <a href="http://georgialabrescue.com/calendarcontest">their Labradays 2005 Calendar Contest Fund-Raiser</a> software; while registration and voting is long over, you can still check out the winning results. If you're interested in licensing a copy of the software, <a href="/contact-me">contact me for details</a>.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://georgialabrescue.com">Georgia Lab Rescue</a> is back online, complete with forums to help those in the state of Georgia to find homes for their dogs (or dogs for their homes). We&#8217;ll see what Kim has up her sleeve next for GLR.</p>
<p>I&#8217;ve also reinstalled <a href="http://georgialabrescue.com/calendarcontest">their Labradays 2005 Calendar Contest Fund-Raiser</a> software; while registration and voting is long over, you can still check out the winning results. If you&#8217;re interested in licensing a copy of the software, <a href="/contact-me">contact me for details</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2008/06/27/georgia-lab-rescue-back-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubicon Project Review</title>
		<link>http://iandouglas.com/2008/06/26/rubicon-project-review/</link>
		<comments>http://iandouglas.com/2008/06/26/rubicon-project-review/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 09:02:04 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[rubicon project]]></category>

		<guid isPermaLink="false">http://iandouglas.com/2008/06/26/rubicon-project-review/</guid>
		<description><![CDATA[Online advertising was something that used to really get under my skin. Why on earth would I want to see blinky flashy ads on web sites when all I want to do is read some content? The first plugin I'd install with Firefox on any computer was Adblock Plus.
]]></description>
			<content:encoded><![CDATA[<p>Online advertising was something that used to really get under my skin. Why on earth would I want to see blinky flashy ads on web sites when all I want to do is read some content? The first plugin I&#8217;d install with Firefox on any computer was Adblock Plus.</p>
<p>After hearing what <a href="http://www.rubiconproject.com">The Rubicon Project</a> was all about, I immediately saw a business plan that couldn&#8217;t fail. I&#8217;d tried AdSense on my site in the past, as well as various linked ads with LinkShare and others. I even had a guy contact me out of the blue offering to buy advertising space on my site. I made about $0.02-$0.46 per day with the advertising, with a peak of $0.75 on one day, which was extremely lame. A month of effort barely bought me a ticket to a movie or covered my monthly Napster subscription. Bleh.</p>
<p>The Rubicon Project changed all that.</p>
<p>I tried their ad tags here at iandouglas.com, then my wife got interested and we <a href="http://bloggymommer.com">tried them on her site too</a> (with her own account), so of course it was a no-brainer when <a href="http://iandouglas.com/new-site-for-bj2-content">I launched</a> <a href="http://blackjack2.info">blackjack2.info</a> that I&#8217;d include Rubicon ads.</p>
<p>The net result over the past couple of months since their Public Beta launch?</p>
<p>When I first added the tags to my site, I started out lower than my original daily take, which discouraged me, and I debated going back to managing everything myself. But optimizing ad networks based on your traffic takes a few days for the system to analyze, so I decided to stick it out, because Rubicon learns over time. As of this writing, they&#8217;ve served about 23.5 BILLION ads, and every ad they serve helps them learn and optimize even more efficiently, both over all and for just my individual site.</p>
<p>Between the public beta launch in April and yesterday, my average CPM jumped by 170%. I only need about $3.60 per day just to cover my hosting fees, and having my daily revenue increase by over 306% means I&#8217;m pretty much at my break-even point.</p>
<p>Some people will read this and think &#8220;Meh, a measly $4/day, are you kidding?&#8221; Well, running iandouglas.com was never about making enough money to quit my job and blog full time, but making enough money on it to at least cover my costs for hosting makes me happy! I&#8217;m still doing a lot more SEO work on my sites to get a little more traffic, and just <a href="http://www.rubiconproject.com/product/ad_network_optimization">let Rubicon work out the details of making me more money</a> with the increased traffic. Rubicon *has* customers who make a full-time living just from their ads.</p>
<p>Stop reading, <a href="http://www.rubiconproject.com/certify/request_mad_cash/">go sign up for Rubicon Project ad tags</a>, and make some &#8220;mad cash&#8221; today!</p>
<p>In the spirit of Full Disclosure:</p>
<p>This review is an honest-and-true account of my own recent dealings with online advertising. To be completely open about it, <u>I&#8217;m currently an employee at The Rubicon Project</u> as the lead engineer on core statistics and analytics data which helps our math geniuses do what they do best &#8212; make people &#8220;mad cash&#8221; with optimization. I was not asked or encouraged to write this review.</p>
<p>Despite being an employee, I use the *exact* same interface that any other person uses when they sign up, and I pay Rubicon the same 10% of the managed advertising they bring to my site. I get no discounts, I have absolutely no special treatment on my sites or ads, I use the same ad networks as everyone else that signs up, I have no hidden extras, my setup is as vanilla as they come.</p>
<p>On average, Rubicon Project clients see between 30% and 300% revenue increases. And <a href="http://www.rubiconproject.com/hiring">we&#8217;re hiring</a>. Come join the fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2008/06/26/rubicon-project-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My day job, and why I have ads on my site</title>
		<link>http://iandouglas.com/2008/02/27/my-day-job-and-why-i-have-ads-on-my-site/</link>
		<comments>http://iandouglas.com/2008/02/27/my-day-job-and-why-i-have-ads-on-my-site/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 08:55:16 +0000</pubDate>
		<dc:creator>ian douglas</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[This will be the only place you'll see me write anything about my day job, because I'm pretty careful about not writing about people or happenings in the workplace, plus I'm bound by non-disclosure agreements and such. Unless it's just a funny story of something that happened at the office or something.

But you'll notice I've added some advertising to my site. Part of this is due to the popularity of the site since adding my Blackjack 2 article series, and partly because of where I'm working now.
]]></description>
			<content:encoded><![CDATA[<p>This will be the only place you&#8217;ll see me write anything about my day job, because I&#8217;m pretty careful about not writing about people or happenings in the workplace, plus I&#8217;m bound by non-disclosure agreements and such. Unless it&#8217;s just a funny story of something that happened at the office or something.</p>
<p>But you&#8217;ll notice I&#8217;ve added some advertising to my site. Part of this is due to the popularity of the site since adding my Blackjack 2 article series, and partly because of where I&#8217;m working now.</p>
<p>On Monday February 4th, I was hired as a software engineer for <a href="http://rubiconproject">The Rubicon Project</a> and all I&#8217;m willing to say is that I&#8217;m part of the team working on scalability and reliability.</p>
<p>In a nutshell, The Rubicon Project works on your behalf with numerous ad agencies to let you put various ads on your site with far less manual work on your part than before. Before The Rubicon Project came around, if you wanted ads on your site, you had to go sign up with Google, Yahoo, ValueClick, AdBrite, and others, and then manually work at rotating your ads based on performance, cost per click (CPC), cost per thousand impressions (CPM), and so on, and it was a very arduous task to check all of your reports every month from every provider, plus getting a handful of checks at the end of the month for a few dollars here, a few dollars there, or having to wait for a few months for an ad agency to pay if they had a minimum payout level to reach before they paid you.</p>
<p>The problem from the advertising agency&#8217;s point of view is that as a web site publisher, you can only send them so much information about what kind of ads to serve up, and The Rubicon Project will work with you to figure out what sort of information to send to the ad agencies so they can give you advertisements that are more focused on the demographic you&#8217;re trying to reach. Also, The Rubicon Project will let you adjust the &#8216;weight&#8217; of the advertisements based on who you want to reach, and those slider adjustments can even be done at the country level so you can push Shopzilla very heavily to Canadian viewers, or Google at American viewers, or a latin agency to cater ads to users who come from Latin America, and so on</p>
<p>it&#8217;s a very slick system, and I wish I could tell you some of the clients we have signing up &#8212; big names in the Web 2.0 world! There are a few testimonials on the site that you can read. The beta users who signed up have seen up to 300% increase in ad revenues because of the Rubicon system.</p>
<p>And since I&#8217;m helping develop it, I added The Rubicon Project ad tags to my own site to get familiar with the process. It&#8217;s not like I *need* to run ads to support my site, but hey, every little bit helps. ;o)</p>
]]></content:encoded>
			<wfw:commentRss>http://iandouglas.com/2008/02/27/my-day-job-and-why-i-have-ads-on-my-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

