<?xml version="1.0"?>
<rss xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Viatropos' Feed</title>
    <link>http://viatropos.com</link>
    <description>                    &lt;p class="vcard"&gt;Thoughts and musings of &lt;a href="http://viatropos.com/" class="url fn"&gt;Lance Pollard&lt;/a&gt;, a &lt;span class="title"&gt;programmer&lt;/span&gt; living in &lt;span class="adr"&gt;&lt;span class="locality"&gt;Berkeley&lt;/span&gt;, &lt;abbr class="region"title="California"&gt;CA&lt;/abbr&gt;&lt;/span&gt;.&lt;/p&gt;
</description>
    <lastBuildDate>Mon, 30 Aug 2010 11:06:51 -0500</lastBuildDate>
    <image>
      <url>/images/icons/viatropos-site-icon.png</url>
      <title>Viatropos' Feed</title>
      <link>http://viatropos.com</link>
      <description>                    &lt;p class="vcard"&gt;Thoughts and musings of &lt;a href="http://viatropos.com/" class="url fn"&gt;Lance Pollard&lt;/a&gt;, a &lt;span class="title"&gt;programmer&lt;/span&gt; living in &lt;span class="adr"&gt;&lt;span class="locality"&gt;Berkeley&lt;/span&gt;, &lt;abbr class="region"title="California"&gt;CA&lt;/abbr&gt;&lt;/span&gt;.&lt;/p&gt;
</description>
    </image>
    <item>
      <title>The Missing Rails Key-Value Gem</title>
      <link>http://viatropos.com/blog/the-missing-rails-key-value-gem</link>
      <description><![CDATA[Mapping out how to build a Rails Configuration gem to handle all the cases you'll ever need. ...]]></description>
      <content:encoded>Mapping out how to build a Rails Configuration gem to handle all the cases you'll ever need. ...</content:encoded>
      <guid>http://viatropos.com/blog/the-missing-rails-key-value-gem</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[ruby-on-rails]]></category>
      <category><![CDATA[key-value]]></category>
      <category><![CDATA[i18n]]></category>
      <category><![CDATA[rubygems]]></category>
      <category><![CDATA[ruby]]></category>
    </item>
    <item>
      <title>jQuery Disqus Plugin</title>
      <link>http://viatropos.com/blog/jquery-disqus-plugin</link>
      <description><![CDATA[Disqus is a great plug-n-chug commenting system, but it's lacking a few very useful features: Markdown support, syntax highlighting the comments, and callbacks to tell you when a comment has been added...]]></description>
      <content:encoded>Disqus is a great plug-n-chug commenting system, but it's lacking a few very useful features: Markdown support, syntax highlighting the comments, and callbacks to tell you when a comment has been added...</content:encoded>
      <guid>http://viatropos.com/blog/jquery-disqus-plugin</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[jquery]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[disqus]]></category>
    </item>
    <item>
      <title>How to Run Background Jobs on Heroku for Free</title>
      <link>http://viatropos.com/blog/how-to-run-background-jobs-on-heroku-for-free</link>
      <description><![CDATA[Delayed::Job and Resque are excellent ruby gems, but they require substantial funds and/or time to setup on Heroku or Slicehost. High cost/effort prevents bootstrapped startups from building apps that ...]]></description>
      <content:encoded>Delayed::Job and Resque are excellent ruby gems, but they require substantial funds and/or time to setup on Heroku or Slicehost. High cost/effort prevents bootstrapped startups from building apps that ...</content:encoded>
      <guid>http://viatropos.com/blog/how-to-run-background-jobs-on-heroku-for-free</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[heroku]]></category>
      <category><![CDATA[gae]]></category>
      <category><![CDATA[cron]]></category>
      <category><![CDATA[delayed-job]]></category>
      <category><![CDATA[queue]]></category>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[ruby-on-rails]]></category>
    </item>
    <item>
      <title>jQuery Picasa Plugin</title>
      <link>http://viatropos.com/blog/picasa-jquery-plugin</link>
      <description><![CDATA[A simple jQuery plugin to get albums and images from Picasa without the need for PHP, Ruby, or any other server side language. Makes it easy to create a simple, dynamic, free, client-side-only image ga...]]></description>
      <content:encoded>A simple jQuery plugin to get albums and images from Picasa without the need for PHP, Ruby, or any other server side language. Makes it easy to create a simple, dynamic, free, client-side-only image ga...</content:encoded>
      <guid>http://viatropos.com/blog/picasa-jquery-plugin</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[jquery]]></category>
      <category><![CDATA[picasa]]></category>
    </item>
    <item>
      <title>Advanced Rails MetaProgramming with InstanceEval</title>
      <link>http://viatropos.com/blog/advanced-rails-metaprogramming-with-instanceeval</link>
      <description><![CDATA[The instance_eval method is probably the coolest thing about ruby. Good use of instance_eval is what makes a framework a good framework in my opinion. Learn how to use it for your next gem. ...]]></description>
      <content:encoded>The instance_eval method is probably the coolest thing about ruby. Good use of instance_eval is what makes a framework a good framework in my opinion. Learn how to use it for your next gem. ...</content:encoded>
      <guid>http://viatropos.com/blog/advanced-rails-metaprogramming-with-instanceeval</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[metaprogramming]]></category>
      <category><![CDATA[oauth]]></category>
      <category><![CDATA[dsl]]></category>
    </item>
    <item>
      <title>Complete List of HTML Meta Tags</title>
      <link>http://viatropos.com/blog/complete-list-of-html-meta-tags</link>
      <description><![CDATA[Sometimes you just want to make your page as SEO'ed as possible but can't find or remember all the meta tags. This is a complete and up-to-date list with all the meta tags and link tags I've found on t...]]></description>
      <content:encoded>Sometimes you just want to make your page as SEO'ed as possible but can't find or remember all the meta tags. This is a complete and up-to-date list with all the meta tags and link tags I've found on t...</content:encoded>
      <guid>http://viatropos.com/blog/complete-list-of-html-meta-tags</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[meta-tags]]></category>
      <category><![CDATA[html]]></category>
      <category><![CDATA[seo]]></category>
    </item>
    <item>
      <title>Convention over Configuration</title>
      <link>http://viatropos.com/blog/convention-over-configuration-build-better-gems</link>
      <description><![CDATA[Ruby and Rails were both Disruptive Innovations, in part by adhering to Convention over Configuration. Rubygems were like that too. But we're starting to follow Java's footsteps. Rubygems are becoming ...]]></description>
      <content:encoded>Ruby and Rails were both Disruptive Innovations, in part by adhering to Convention over Configuration. Rubygems were like that too. But we're starting to follow Java's footsteps. Rubygems are becoming ...</content:encoded>
      <guid>http://viatropos.com/blog/convention-over-configuration-build-better-gems</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[rubygems]]></category>
      <category><![CDATA[convention-over-configuration]]></category>
      <category><![CDATA[best-practices]]></category>
      <category><![CDATA[oauth]]></category>
      <category><![CDATA[openid]]></category>
    </item>
    <item>
      <title>How to Build an HTML5 Layout</title>
      <link>http://viatropos.com/blog/html5-blog-post-architecture</link>
      <description><![CDATA[There is not much information out there yet describing how to create a fully-featured layout using the entire set of new HTML5 tags. This post shows how to structure a rich Blog Post using most of the ...]]></description>
      <content:encoded>There is not much information out there yet describing how to create a fully-featured layout using the entire set of new HTML5 tags. This post shows how to structure a rich Blog Post using most of the ...</content:encoded>
      <guid>http://viatropos.com/blog/html5-blog-post-architecture</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[html5]]></category>
      <category><![CDATA[html]]></category>
      <category><![CDATA[blog]]></category>
      <category><![CDATA[dom]]></category>
    </item>
    <item>
      <title>Introducing Ubiquitously - A Bloggers RubyGem</title>
      <link>http://viatropos.com/blog/introducing-ubiquitously-for-ruby</link>
      <description><![CDATA[There are 100's of Social Bookmarking sites out there, and most of them don't have API's. This RubyGem builds a simple API over the more popular social bookmarking services to automate publishing. It d...]]></description>
      <content:encoded>There are 100's of Social Bookmarking sites out there, and most of them don't have API's. This RubyGem builds a simple API over the more popular social bookmarking services to automate publishing. It d...</content:encoded>
      <guid>http://viatropos.com/blog/introducing-ubiquitously-for-ruby</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[mechanize]]></category>
      <category><![CDATA[social-bookmarking]]></category>
      <category><![CDATA[seo]]></category>
    </item>
    <item>
      <title>Automatically Publish Posts to StumbleUpon with Ruby</title>
      <link>http://viatropos.com/blog/automatically-publish-posts-to-stumbleupon-with-ruby</link>
      <description><![CDATA[Sometimes it just makes more sense to automate things. If you're going to be writing a lot, might as well make it easy. ...]]></description>
      <content:encoded>Sometimes it just makes more sense to automate things. If you're going to be writing a lot, might as well make it easy. ...</content:encoded>
      <guid>http://viatropos.com/blog/automatically-publish-posts-to-stumbleupon-with-ruby</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[stumble-upon]]></category>
      <category><![CDATA[mechanize]]></category>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[nokogiri]]></category>
      <category><![CDATA[social-bookmarking]]></category>
    </item>
    <item>
      <title>Upload Images to Imgur with Ruby</title>
      <link>http://viatropos.com/blog/upload-images-to-imgur-with-ruby</link>
      <description><![CDATA[Imgur is a great service to host images. It's free, simple, and it gives you neat analytics. The only problem is, the Imgur interface uses cookies to associate images with a user, but the API does not....]]></description>
      <content:encoded>Imgur is a great service to host images. It's free, simple, and it gives you neat analytics. The only problem is, the Imgur interface uses cookies to associate images with a user, but the API does not....</content:encoded>
      <guid>http://viatropos.com/blog/upload-images-to-imgur-with-ruby</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[uploading]]></category>
      <category><![CDATA[imgur]]></category>
      <category><![CDATA[image-uploading]]></category>
      <category><![CDATA[cookies]]></category>
    </item>
    <item>
      <title>Automatically Submit Blog Posts to Social Bookmarking Service Mixx</title>
      <link>http://viatropos.com/blog/automatically-submit-blog-posts-to-mixx</link>
      <description><![CDATA[If you write multiple blog posts a day, it's a big waste of time to go to each of the N number of publishing services out there and fill out all of their forms. This shows you how to programmatically s...]]></description>
      <content:encoded>If you write multiple blog posts a day, it's a big waste of time to go to each of the N number of publishing services out there and fill out all of their forms. This shows you how to programmatically s...</content:encoded>
      <guid>http://viatropos.com/blog/automatically-submit-blog-posts-to-mixx</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[mixx]]></category>
      <category><![CDATA[captcha]]></category>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[mechanize]]></category>
      <category><![CDATA[social-bookmarking]]></category>
    </item>
    <item>
      <title>Optimizing Your Blog's RSS and Atom Feeds</title>
      <link>http://viatropos.com/blog/optimizing-your-blogs-rss-and-atom-feeds</link>
      <description><![CDATA[Feeds are one of the most important parts of publicizing and marketing your site. But if you're building a site from scratch, knowing everything a feed should include is a lot to grasp. This outlines e...]]></description>
      <content:encoded>Feeds are one of the most important parts of publicizing and marketing your site. But if you're building a site from scratch, knowing everything a feed should include is a lot to grasp. This outlines e...</content:encoded>
      <guid>http://viatropos.com/blog/optimizing-your-blogs-rss-and-atom-feeds</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[feed]]></category>
      <category><![CDATA[rss]]></category>
      <category><![CDATA[atom]]></category>
      <category><![CDATA[syndication]]></category>
      <category><![CDATA[xml]]></category>
    </item>
    <item>
      <title>Real-Time Event Tracking with Google Spreadsheets</title>
      <link>http://viatropos.com/blog/google-spreadsheets-for-real-time-web-analytics</link>
      <description><![CDATA[Create a Key-Value Google Form. Just thought of a simple way to do real time event tracking: Google Spreadsheets. Create a form that looks like this (click it to see the live form):. . Add Some jQuery ...]]></description>
      <content:encoded>Create a Key-Value Google Form. Just thought of a simple way to do real time event tracking: Google Spreadsheets. Create a form that looks like this (click it to see the live form):. . Add Some jQuery ...</content:encoded>
      <guid>http://viatropos.com/blog/google-spreadsheets-for-real-time-web-analytics</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[google-spreadsheets]]></category>
      <category><![CDATA[ajax]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[google-forms]]></category>
      <category><![CDATA[jquery]]></category>
      <category><![CDATA[real-time-web-analytics]]></category>
      <category><![CDATA[web-analytics]]></category>
    </item>
    <item>
      <title>Github as a CDN</title>
      <link>http://viatropos.com/blog/github-as-a-cdn</link>
      <description><![CDATA[Every time we start a new project, we need a lot of the same Javascript and CSS. When we go live, all of those assets need to be minified and gzipped in order to decrease page load times by as much as ...]]></description>
      <content:encoded>Every time we start a new project, we need a lot of the same Javascript and CSS. When we go live, all of those assets need to be minified and gzipped in order to decrease page load times by as much as ...</content:encoded>
      <guid>http://viatropos.com/blog/github-as-a-cdn</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[content-delivery-network]]></category>
      <category><![CDATA[cdn]]></category>
      <category><![CDATA[github-pages]]></category>
      <category><![CDATA[minify]]></category>
      <category><![CDATA[gzip]]></category>
      <category><![CDATA[cached-commons]]></category>
      <category><![CDATA[static-asset-optimization]]></category>
    </item>
    <item>
      <title>How to Setup Google Apps Sub-domains</title>
      <link>http://viatropos.com/blog/setup-google-apps-for-github-pages-or-heroku</link>
      <description><![CDATA[Creating sub-domains and remembering the format of CNAME vs. A DNS records takes a while. This describes exactly how to setup Google Apps sub-domains using Github Pages. ...]]></description>
      <content:encoded>Creating sub-domains and remembering the format of CNAME vs. A DNS records takes a while. This describes exactly how to setup Google Apps sub-domains using Github Pages. ...</content:encoded>
      <guid>http://viatropos.com/blog/setup-google-apps-for-github-pages-or-heroku</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[google-apps]]></category>
      <category><![CDATA[zerigo]]></category>
      <category><![CDATA[gmail]]></category>
      <category><![CDATA[heroku]]></category>
    </item>
    <item>
      <title>Introducing the Google Form API</title>
      <link>http://viatropos.com/blog/introducing-the-google-form-api</link>
      <description><![CDATA[When you first stumble upon Google Forms, you're stoked. But you quickly hit a wall because of the lack of a programmatic API. This shows how to scrape a JSON tree from a Google Form's HTML. ...]]></description>
      <content:encoded>When you first stumble upon Google Forms, you're stoked. But you quickly hit a wall because of the lack of a programmatic API. This shows how to scrape a JSON tree from a Google Form's HTML. ...</content:encoded>
      <guid>http://viatropos.com/blog/introducing-the-google-form-api</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[ruby]]></category>
      <category><![CDATA[mechanize]]></category>
      <category><![CDATA[googletastic]]></category>
      <category><![CDATA[google-data-api]]></category>
      <category><![CDATA[google-forms]]></category>
      <category><![CDATA[haml]]></category>
      <category><![CDATA[nokogiri]]></category>
      <category><![CDATA[web-scraping]]></category>
      <category><![CDATA[custom-google-forms]]></category>
      <category><![CDATA[web-scraping]]></category>
    </item>
    <item>
      <title>Pointing a custom domain to Github Pages</title>
      <link>http://viatropos.com/blog/custom-domain-github-pages</link>
      <description><![CDATA[Using Zerigo to make your life easier in customizing a domain for Github Pages. ...]]></description>
      <content:encoded>Using Zerigo to make your life easier in customizing a domain for Github Pages. ...</content:encoded>
      <guid>http://viatropos.com/blog/custom-domain-github-pages</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[github-pages]]></category>
      <category><![CDATA[zerigo]]></category>
      <category><![CDATA[domain-name]]></category>
      <category><![CDATA[cname]]></category>
    </item>
    <item>
      <title>Make Disqus Comments Match Your Style</title>
      <link>http://viatropos.com/blog/custom-disqus-comments-with-css-and-javascript</link>
      <description><![CDATA[Prereq: Install Disqus with jQuery. Keep it unobtrusive. Update: I've refactored this code into the jQuery Disqus Plugin. I like to install Disqus using jQuery, and configuring the Disqus api call insi...]]></description>
      <content:encoded>Prereq: Install Disqus with jQuery. Keep it unobtrusive. Update: I've refactored this code into the jQuery Disqus Plugin. I like to install Disqus using jQuery, and configuring the Disqus api call insi...</content:encoded>
      <guid>http://viatropos.com/blog/custom-disqus-comments-with-css-and-javascript</guid>
      <author>Lance Pollard</author>
      <category><![CDATA[disqus]]></category>
      <category><![CDATA[code]]></category>
      <category><![CDATA[markup]]></category>
      <category><![CDATA[syntax-highlighting]]></category>
      <category><![CDATA[jquery]]></category>
    </item>
    <item>
      <title>Google Spreadsheet Event Tracker</title>
      <link>http://viatropos.com/forms/google-spreadsheet-event-tracker</link>
      <description><![CDATA[[{"value":[""],"title":"key","labels":null,"required":true,"help":"the name of the event","id":"0","tag":"text","key":"key"},{"value":[""],"title":"value","labels":null,"required":false,"help":"data as...]]></description>
      <content:encoded>[{"value":[""],"title":"key","labels":null,"required":true,"help":"the name of the event","id":"0","tag":"text","key":"key"},{"value":[""],"title":"value","labels":null,"required":false,"help":"data as...</content:encoded>
      <guid>http://viatropos.com/forms/google-spreadsheet-event-tracker</guid>
      <author>Lance Pollard</author>
    </item>
    <item>
      <title>What do you think of the Google Form API</title>
      <link>http://viatropos.com/forms/what-do-you-think-of-the-google-form-api</link>
      <description><![CDATA[[{"value":[""],"labels":null,"required":true,"help":"","title":"What's your website (or a favorite website)?","tag":"text","key":"whatsyourwebsiteorafavoritewebsite","id":"0"},{"value":["GMail","Google...]]></description>
      <content:encoded>[{"value":[""],"labels":null,"required":true,"help":"","title":"What's your website (or a favorite website)?","tag":"text","key":"whatsyourwebsiteorafavoritewebsite","id":"0"},{"value":["GMail","Google...</content:encoded>
      <guid>http://viatropos.com/forms/what-do-you-think-of-the-google-form-api</guid>
      <author>Lance Pollard</author>
    </item>
  </channel>
</rss>
