<?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/"
	>

<channel>
	<title>Pelago :: web design, web development blog ::</title>
	<atom:link href="http://www.pelagodesign.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pelagodesign.com/blog</link>
	<description>Santa Barbara Web Design and Web Development Blog on the web world and other randoms</description>
	<pubDate>Thu, 25 Jun 2009 17:42:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Face detection in pure PHP</title>
		<link>http://www.pelagodesign.com/blog/2009/06/25/face-detection-in-pure-php/</link>
		<comments>http://www.pelagodesign.com/blog/2009/06/25/face-detection-in-pure-php/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 17:35:44 +0000</pubDate>
		<dc:creator>Jaime</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=459</guid>
		<description><![CDATA[Face detection in pure PHP
Technical description.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://svay.com/blog/index/post/2009/06/19/Face-detection-in-pure-PHP-(without-OpenCV)">Face detection in pure PHP</a></p>
<p><a href="http://news.ycombinator.com/item?id=672250">Technical description.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/06/25/face-detection-in-pure-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP crons, linux, and the hostname</title>
		<link>http://www.pelagodesign.com/blog/2009/05/28/php-crons-linux-and-the-hostname/</link>
		<comments>http://www.pelagodesign.com/blog/2009/05/28/php-crons-linux-and-the-hostname/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:20:39 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[cron]]></category>

		<category><![CDATA[hostname]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=457</guid>
		<description><![CDATA[When running PHP as a cron, the $_SERVER['HOSTNAME'] variable is not set, nor are any other variables that will identify which server your cron is running on. This can be problematic if you are running the same cron on multiple servers, such as in a load balanced environment, and you need the cron to report [...]]]></description>
			<content:encoded><![CDATA[<p>When running PHP as a cron, the $_SERVER['HOSTNAME'] variable is not set, nor are any other variables that will identify which server your cron is running on. This can be problematic if you are running the same cron on multiple servers, such as in a load balanced environment, and you need the cron to report back or log information about the server on which it ran. </p>
<p>Here is some code for getting the hostname value from your linux network configuration, assuming you have setup /etc/sysconfig/network properly.</p>
<p><code><br />
//get hostname info from /etc/sysconfig/network<br />
preg_match('/HOSTNAME=(.*)/', file_get_contents('/etc/sysconfig/network'), $network);<br />
$hostname = split("\=", $network[0]);<br />
echo $hostname[1]; //this equals the value of your HOSTNAME<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/05/28/php-crons-linux-and-the-hostname/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ISO 8601 Date Validation That Doesn&#8217;t Suck</title>
		<link>http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/</link>
		<comments>http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:38:25 +0000</pubDate>
		<dc:creator>Cameron</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[iso-8601]]></category>

		<category><![CDATA[regex]]></category>

		<category><![CDATA[regular expressions]]></category>

		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=448</guid>
		<description><![CDATA[For the intervals API, we&#8217;re wrestling with issues surrounding data input validation. This recently became interesting when the matter of date validation came up. Ordinarily, Intervals allows many, many different date formats, dependent on the locale that the customer is using (for example, Intervals may expect the date format &#8216;mm/dd/yyyy&#8217; for US customers, &#8216;dd.mm.yy&#8217; for [...]]]></description>
			<content:encoded><![CDATA[<p>For the intervals API, we&#8217;re wrestling with issues surrounding data input validation. This recently became interesting when the matter of date validation came up. Ordinarily, Intervals allows many, many different date formats, dependent on the locale that the customer is using (for example, Intervals may expect the date format &#8216;mm/dd/yyyy&#8217; for US customers, &#8216;dd.mm.yy&#8217; for a customer in Austria).</p>
<p>For our API developers, we wanted to use a common, universal format, one that would be easily compatible with our application and database layers. For that we selected ISO 8601, which is great in terms of widespread use, but not so great in terms of how complicated its specifications are.</p>
<p>Generally, ISO 8601 looks something like &#8216;2009-05-20&#8242; for dates and &#8216;2009-05-20 12:30:30&#8242; for date/time combinations. These two examples encompass 98% of the user input we&#8217;re likely to encounter. But we wanted to make sure that if we told developers they could use ISO 8601 dates, our system would support it.<span id="more-448"></span>Unfortunately, there&#8217;s not a lot of code out there for the validation of ISO 8601 dates (especially regular expressions), and most of the stuff that <em>is</em> out there doesn&#8217;t encompass the entirety of the ISO 8601 spec.</p>
<p>Starting off, here are some dates that the validator <strong>should</strong> match (all these are valid ISO 8601 dates to the best of my knowledge):</p>
<p>2009-12T12:34<br />
2009<br />
2009-05-19<br />
2009-05-19<br />
20090519<br />
2009123<br />
2009-05<br />
2009-123<br />
2009-222<br />
2009-001<br />
2009-W01-1<br />
2009-W51-1<br />
2009-W511<br />
2009-W33<br />
2009W511<br />
2009-05-19<br />
2009-05-19 00:00<br />
2009-05-19 14<br />
2009-05-19 14:31<br />
2009-05-19 14:39:22<br />
2009-05-19T14:39Z<br />
2009-W21-2<br />
2009-W21-2T01:22<br />
2009-139<br />
2009-05-19 14:39:22-06:00<br />
2009-05-19 14:39:22+0600<br />
2009-05-19 14:39:22-01<br />
20090621T0545Z<br />
2007-04-06T00:00<br />
2007-04-05T24:00</p>
<p>And here are some of the strings that the validator <strong>should not</strong> match (ie. reject):</p>
<p>200905<br />
2009367<br />
2009-<br />
2007-04-05T24:50<br />
2009-000<br />
2009-M511<br />
2009M511<br />
2009-05-19T14a39r<br />
2009-05-19T14:3924<br />
2009-0519<br />
2009-05-1914:39<br />
2009-05-19 14:<br />
2009-05-19r14:39<br />
2009-05-19 14a39a22<br />
200912-01<br />
2009-05-19 14:39:22+06a00</p>
<p>The code we came up with was the following:</p>
<p><code>^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s](([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)?(\16([0-5]\d))?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$</code></p>
<p>I guess I should add the caveat that this code doesn&#8217;t support the time interval or duration part of the ISO 8601 spec, so I didn&#8217;t include it. And it only supports dates or date/times, since right now we don&#8217;t have to deal with time input (for the Intervals API, all time is input in decimal format, rather than ISO 8601). But it should support everything else. Please let me know if this works for you or doesn&#8217;t, of if you can fine tune it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu Linux: How to setup a VPN connection to a SonicWall router using Openswan and Pre-shared Keys (PSK)</title>
		<link>http://www.pelagodesign.com/blog/2009/05/18/ubuntu-linux-how-to-setup-a-vpn-connection-to-a-sonicwall-router-using-openswan-and-pre-shared-keys-psk/</link>
		<comments>http://www.pelagodesign.com/blog/2009/05/18/ubuntu-linux-how-to-setup-a-vpn-connection-to-a-sonicwall-router-using-openswan-and-pre-shared-keys-psk/#comments</comments>
		<pubDate>Mon, 18 May 2009 19:27:59 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[openswan]]></category>

		<category><![CDATA[psk]]></category>

		<category><![CDATA[sonicwall]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=403</guid>
		<description><![CDATA[
Contents

Background
Configuring the Sonicwall Router
Installing Openswan
Configuring Openswan
Starting and stopping the VPN connection
References



Background
Pelago is a web design and development agency in Santa Barbara, California. Since our humble beginnings  in August of 2000, we&#8217;ve seen the Internet landscape evolve exponentially in the last nine years. Our most current challenge as a creative and engineering agency is in [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 40%; margin: 23px 0 11px 9px; padding: 13px 17px 11px 5px; background-color: #EFEFE6; border: 1px solid #CCCCBB;">
Contents</p>
<ul>
<li><a href="#background" title="Background">Background</a></li>
<li><a href="#configuringsonicwall" title="Configuring the SonicWall Router">Configuring the Sonicwall Router</a></li>
<li><a href="#installingopenswan" title="Installing Openswan">Installing Openswan</a></li>
<li><a href="#configuringopenswan" title="Configuring Openswan">Configuring Openswan</a></li>
<li><a href="#startingstopping" title="Starting and stopping the VPN connection">Starting and stopping the VPN connection</a></li>
<li><a href="#references" title="References">References</a></li>
</ul>
</div>
<p><a name="background"></a><br />
<h2>Background</h2>
<p>Pelago is a web design and development agency in Santa Barbara, California. Since our humble beginnings  in August of 2000, we&#8217;ve seen the Internet landscape evolve exponentially in the last nine years. Our most current challenge as a creative and engineering agency is in embracing diversity in platforms and the inevitable shift towards the remote office. We use three different operating systems &mdash; Windows, OS X and Linux &mdash; on a daily basis. In addition to developing web-based project management software that is compatible with all three platforms, our designers and developers rely on them  inside and outside of the office. Tunneling through the firewall from outside the office was our next requirement for embracing a diverse and distributed remote office. </p>
<p>Our SonicWall router makes it easy enough to establish a VPN connection using Windows. There is a client that can be downloaded from the SonicWall web site. What about other operating systems? Our developers often use Ubuntu Linux from home and required a way to VPN into the office. Once established, a VPN connection allows access to development servers, remote desktops, and other network resources inside the firewall; so you can see why it would be essential for the remote office.</p>
<p>The problem, as most Linux users out there already know, is that setting up a VPN connection in Ubuntu Linux is not very easy. After much trial and error, here is how we got the VPN working on Ubuntu Linux using Openswan.</p>
<p><a name="configuringsonicwall"></a><br />
<h2>Configuring the SonicWall Router</h2>
<p>Login to your SonicWall router admin and make the following adjustments to the VPN settings.</p>
<ol>
<li style="margin: 6px 0 14px 0;">
<strong>Click on the VPN link and note the Unique Firewall Identifier for your SonicWall router. You will need it later for the value <code>sonicwall.unique.identifier</code>.</strong><br />
<img src="http://www.pelagodesign.com/blog/wp-content/uploads/2009/05/vpn_settings1.png" alt="SonicWall VPN Settings" title="SonicWall VPN Settings" width="640" height="372" class="size-full wp-image-406" />
</li>
<li style="margin: 6px 0 14px 0;">
<strong>Under VPN Policies, create or edit the &#8216;GroupVPN&#8217; policy.</strong>
</li>
<li style="margin: 6px 0 14px 0;"><strong>Click on the General tab and set the following:</strong><br />
<img src="http://www.pelagodesign.com/blog/wp-content/uploads/2009/05/vpn_general.png" alt="SonicWall VPN General Settings " title="SonicWall VPN General Settings " width="625" height="326" class="size-full wp-image-408" /></p>
<ul>
<li>IPSec Keying Mode: IKE using Preshared Secret</li>
<li>Shared Secret: shared.secret.key <em>(enter your secret key here)</em></li>
</ul>
<ul>
</ul>
</li>
<li style="margin: 6px 0 14px 0;">
<strong>Click on the Proposals tab and set the following:</strong><br />
<img src="http://www.pelagodesign.com/blog/wp-content/uploads/2009/05/vpn_proposals.png" alt="SonicWall VPN Proposals Settings" title="SonicWall VPN Proposals Settings" width="625" height="525" class="size-full wp-image-411" /></p>
<ul>
<li>IKE (Phase 1) Proposal<br />
		DH Group: Group 5<br />
		Encryption: 3DES<br />
		Authentication: SHA1
        </li>
<li>Ipsec (Phase 2) Proposal<br />
		Protocol: ESP<br />
		Encryption: 3DES<br />
		Authentication: SHA1
        </li>
<li>Enable Perfect Forward Secrecy <em>(checked)</em><br />
		DH Group: Group 5
        </li>
</ul>
</li>
</ol>
<p><a name="installingopenswan"></a><br />
<h2>Installing Openswan</h2>
<p>If you are using Ubuntu, open a terminal window and type in:<br />
<code>sudo apt-get install openswan</code><br />
The install will ask you a few questions about how you want to set it up. Select the suggested default for each step. This will install Openswan and create the ipsec.conf and ipsec.secrets configuration files.</p>
<p><a name="configuringopenswan"></a><br />
<h2>Configuring Openswan</h2>
<p><strong>Add the following connection parameters to your /etc/ipsec.conf file:</strong><br />
<code>conn sonicwall<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=tunnel<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left=%defaultroute<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leftid=@home<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leftxauthclient=yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right=xxx.xxx.xxx.xxx #IP address of your sonicwall router<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rightsubnet=192.168.1.0/24 #gateway IP for your LAN. This will work for most<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rightxauthserver=yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rightid=@sonicwall.unique.identifier<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyingtries=0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pfs=yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aggrmode=yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auto=add<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth=esp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp=3DES-SHA1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ike=3DES-SHA1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;authby=secret<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xauth=yes<br />
</code></p>
<p><strong>Add the following line to your /etc/ipsec.secrets file</strong><br />
<code>@home @sonicwall.unique.identifer : PSK "shared.secret.key"</code></p>
<p><a name="startingstopping"></a><br />
<h2>Starting and stopping the VPN connection</h2>
<p><strong>Starting ipsec and opening the VPN connection</strong><br />
<code>sudo ipsec setup &ndash;&ndash;start<br />
sudo ipsec auto &ndash;&ndash;add sonicwall <em>(note: if you change the configuration files, you&#8217;ll need to run &#8217;sudo ipsec auto &ndash;&ndash;replace sonicwall&#8217; to reload the file)</em><br />
sudo ipsec whack &ndash;&ndash;name sonicwall &ndash;&ndash;initiate<br />
</code><br />
<strong>Closing the VPN connection and stopping ipsec</strong><br />
<code>sudo ipsec whack &ndash;&ndash;name sonicwall &ndash;&ndash;terminate<br />
sudo ipsec setup &ndash;&ndash;stop<br />
</code></p>
<p><a name="references"></a><br />
<h2>References</h2>
<p>The following links were useful for getting the VPN connection up and running on Ubuntu Linux:<br />
<strong>Openswan wiki page for SonicWall routers:</strong><br />
<a href="http://wiki.openswan.org/index.php/Openswan/SonicWall" title="Openswan wiki page for SonicWall routers">http://wiki.openswan.org/index.php/Openswan/SonicWall</a><br />
<strong>SonicWall PDF instructions for using Agressive Mode and IKE with Pre-shared Keys</strong><br />
<a href="http://www.sonicwall.com/downloads/SonicOS_Enhanced_to_Openswan_Using_Aggressive_Mode_IKE_with_PreShared_key.pdf" title="SonicWall PDF instructions for using Agressive Mode and IKE with Pre-shared Keys">http://www.sonicwall.com/downloads<wbr />/SonicOS_Enhanced_to_Openswan_Using_Aggressive_Mode_IKE_with_PreShared_key.pdf<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/05/18/ubuntu-linux-how-to-setup-a-vpn-connection-to-a-sonicwall-router-using-openswan-and-pre-shared-keys-psk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jesusita Fire in Santa Barbara has taken a turn for the worst</title>
		<link>http://www.pelagodesign.com/blog/2009/05/06/jesusita-fire-in-santa-barbara-has-taken-a-turn-for-the-worst/</link>
		<comments>http://www.pelagodesign.com/blog/2009/05/06/jesusita-fire-in-santa-barbara-has-taken-a-turn-for-the-worst/#comments</comments>
		<pubDate>Thu, 07 May 2009 00:38:43 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/2009/05/06/jesusita-fire-in-santa-barbara-has-taken-a-turn-for-the-worst/</guid>
		<description><![CDATA[The last two hours have seen the Jesusita fire take a turn for the worst due to hi temps, hi winds, and low humidity.  Our offices are two blocks from the evactuation warning zone and most of downtown Santa Barbara is now in the evacuation warning area.  Here is an updated Google map [...]]]></description>
			<content:encoded><![CDATA[<p>The last two hours have seen the Jesusita fire take a turn for the worst due to hi temps, hi winds, and low humidity.  Our offices are two blocks from the evactuation warning zone and most of downtown Santa Barbara is now in the evacuation warning area.  <a href="http://maps.google.com/maps/ms?ie=UTF8&#038;lr=lang_en&#038;hl=en&#038;msa=0&#038;ll=34.447689,-119.799042&#038;spn=0.06809,0.21904&#038;z=13&#038;msid=117142631812589675118.00046936902cc1ed7baa8">Here is an updated Google map with the evacuation zone</a>.</p>
<p><a href="http://twitpic.com/4orwa" target="_blank" title="Jesusista Fire Santa Barbara">Here is the view from our office</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/05/06/jesusita-fire-in-santa-barbara-has-taken-a-turn-for-the-worst/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Online recession trends</title>
		<link>http://www.pelagodesign.com/blog/2009/04/02/online-recession-trends/</link>
		<comments>http://www.pelagodesign.com/blog/2009/04/02/online-recession-trends/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 19:53:38 +0000</pubDate>
		<dc:creator>Jaime</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=398</guid>
		<description><![CDATA[http://airbnb.com/ - &#8220;Rent nightly from real people in 809 cities in 71 countries.&#8221;
http://www.popcuts.com/ - &#8220;Every time a song you bought sells, you get a cut of the proceeds.&#8221;
http://bountii.com/ - &#8220;Find a lower price on any of the products below and we&#8217;ll pay you the Bountii.&#8221;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://airbnb.com/">http://airbnb.com/</a> - &#8220;Rent nightly from real people in 809 cities in 71 countries.&#8221;</p>
<p><a href="http://www.popcuts.com/">http://www.popcuts.com/</a> - &#8220;Every time a song you bought sells, you get a cut of the proceeds.&#8221;</p>
<p><a href="http://bountii.com/">http://bountii.com/</a> - &#8220;Find a lower price on any of the products below and we&#8217;ll pay you the Bountii.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/04/02/online-recession-trends/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free IP address geolocation SQL database</title>
		<link>http://www.pelagodesign.com/blog/2009/03/25/free-ip-address-geolocation-sql-database/</link>
		<comments>http://www.pelagodesign.com/blog/2009/03/25/free-ip-address-geolocation-sql-database/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 20:48:17 +0000</pubDate>
		<dc:creator>Jaime</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=396</guid>
		<description><![CDATA[People are discussing whether it&#8217;s a complete copy of maxmind&#8217;s free database, but some are saying it&#8217;s not, either way nothing beats free.
IP address geolocation SQL database
]]></description>
			<content:encoded><![CDATA[<p>People are <a href="http://news.ycombinator.com/item?id=530086">discussing</a> whether it&#8217;s a complete copy of <a href="http://www.maxmind.com/">maxmind&#8217;s</a> free database, but some are saying it&#8217;s not, either way nothing beats free.</p>
<p><a href="http://blogama.org/node/58">IP address geolocation SQL database</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/03/25/free-ip-address-geolocation-sql-database/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS Vs Tables and rants in chronological order</title>
		<link>http://www.pelagodesign.com/blog/2009/02/03/css-vs-tables-and-rants-in-chronological-order/</link>
		<comments>http://www.pelagodesign.com/blog/2009/02/03/css-vs-tables-and-rants-in-chronological-order/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 23:05:33 +0000</pubDate>
		<dc:creator>Jaime</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Creative Engineering]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=395</guid>
		<description><![CDATA[I&#8217;ve been following some rants on hacker news and reddit dealing with CSS vs Tables, read in this order when you get a chance:
Why CSS should not be used for layout
http://www.flownet.com/ron/css-rant.html
Why CSS Should Be Used for Layout
http://www.newmediacampaigns.com/page/why-css-should-be-used-for-layout
Don&#8217;t Blame CSS For Your Incompetence
http://www.jemjabella.co.uk/blog/dont-blame-css-for-your-incompetence
The last article sums it all up in my opinion.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been following some rants on hacker news and reddit dealing with CSS vs Tables, read in this order when you get a chance:</p>
<p><a href="http://www.flownet.com/ron/css-rant.html">Why CSS should not be used for layout<br />
http://www.flownet.com/ron/css-rant.html</a></p>
<p><a href="http://www.newmediacampaigns.com/page/why-css-should-be-used-for-layout">Why CSS Should Be Used for Layout<br />
http://www.newmediacampaigns.com/page/why-css-should-be-used-for-layout</a></p>
<p><a href="http://www.jemjabella.co.uk/blog/dont-blame-css-for-your-incompetence">Don&#8217;t Blame CSS For Your Incompetence<br />
http://www.jemjabella.co.uk/blog/dont-blame-css-for-your-incompetence</a></p>
<p>The last article sums it all up in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2009/02/03/css-vs-tables-and-rants-in-chronological-order/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fire in Montecito &amp; Santa Barbara</title>
		<link>http://www.pelagodesign.com/blog/2008/11/14/fire-in-montecito-santa-barbara/</link>
		<comments>http://www.pelagodesign.com/blog/2008/11/14/fire-in-montecito-santa-barbara/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 17:04:54 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[fire]]></category>

		<category><![CDATA[santa barbara]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=394</guid>
		<description><![CDATA[The Pelago offices are safe from the fire, although we are only a block away from the evacuation warning boundaries. We are ready to unplug the servers and load up the cars if we have to. Our Intervals data centers are in Houston, so there are no worries about interrupted service for our customers. Here [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.pelagodesign.com" title="Pelago, a web design &#038; development agency">Pelago</a> offices are safe from the fire, although we are only a block away from the evacuation warning boundaries. We are ready to unplug the servers and load up the cars if we have to. Our Intervals data centers are in Houston, so there are no worries about interrupted service for our customers. Here are some links to fire updates (note: some of the links may be spotty due to the fires):</p>
<ul>
<li><a href="http://maps.google.com/maps/ms?ie=UTF8&#038;hl=en&#038;msa=0&#038;t=h&#038;msid=113022420691920912386.00045b9ef1712164139a6&#038;ll=34.443725,-119.667292&#038;spn=0.051035,0.111494&#038;source=embed" title="Google maps">Google maps mashup showing evacuation zones</a></li>
<li><a href="http://www.westmont.edu" title="Westmont College web site with fire updates">Westmont College web site</a></li>
<li><a href="http://horizon.westmont.edu/articles/" title="Westmont Blog">Westmont blog with pictures and updates</a></li>
<li><a href="http://www.sb-outdoors.org/fire/" title="Fire photos from Westmont">Photos of the fire from the Westmont Campus</a></li>
<li><a href="https://www.countyofsb.org/ceo/oes0.aspx?id=2332" title="Tea Fire Information">SB County Evacuation Updates</a></li>
<li><a href="https://www.countyofsb.org/uploadedFiles/ceo/oes/Tea_Incident_-_Evac_Areas.pdf" title="PDF Map">PDF Map of Evacuation Areas</a></li>
<li><a href="http://www.dailykos.com/story/2008/11/14/92717/435/222/660846" title="Fire Updates from Daily Kos">Updates from Daily Kos</a></li>
<li><a href="http://cbs2.com/firewatch/Montecito.Brush.Fire.2.863967.html" title="KCAL Video">Streaming Video from KCAL</a></li>
<li><a href="http://www.independent.com/" title="Local Fire Coverage from Independent">Local Coverage from the Independent</a></li>
<li><a href="http://www.latimes.com/news/local/la-me-sbfire14-2008nov14-pg,0,5936188.photogallery?1" title="Fire Photos from the LA Times">Photos from the LA Times</a></li>
<li><a href="http://www.flickr.com/photos/tags/santabarbarafire/">Fire Photos at Flickr</a></li>
<li><a href="http://www.edhat.com/site/tidbit.cfm?id=1215&#038;tid=1394&#038;art=15169" title="Comments at EdHat">Edhat Updates</a></li>
<li><a href="http://crisiswire.com/2008/11/santa-barbara-fires">Crisiswire</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2008/11/14/fire-in-montecito-santa-barbara/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Toolbar buttons galore</title>
		<link>http://www.pelagodesign.com/blog/2008/08/07/toolbar-buttons-galore/</link>
		<comments>http://www.pelagodesign.com/blog/2008/08/07/toolbar-buttons-galore/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 23:40:03 +0000</pubDate>
		<dc:creator>Jaime</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Creative Engineering]]></category>

		<category><![CDATA[addons]]></category>

		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.pelagodesign.com/blog/?p=392</guid>
		<description><![CDATA[Here&#8217;s a great time-saver extension. Toolbar Buttons is perfect for adding tough-to-find Firefox functions. They&#8217;re there BUT you have dig deep within Tools > Options to get to them. Need to quickly disable javascript, flash and images with just three quick clicks? No problem, just drag and drop the buttons. Here is my current setup:

]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a great time-saver extension. <a href="https://addons.mozilla.org/en-US/firefox/addon/2377">Toolbar Buttons</a> is perfect for adding tough-to-find Firefox functions. They&#8217;re there BUT you have dig deep within Tools > Options to get to them. Need to quickly disable javascript, flash and images with just three quick clicks? No problem, just drag and drop the buttons. Here is my current setup:</p>
<p><img src="http://www.pelagodesign.com/blog/wp-content/uploads/2008/08/toolbar.gif" alt="" title="toolbar" class="alignnone size-full wp-image-393" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pelagodesign.com/blog/2008/08/07/toolbar-buttons-galore/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
