<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Perl Gerl</title>
	<atom:link href="http://perlgerl.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://perlgerl.com</link>
	<description></description>
	<lastBuildDate>Thu, 13 Oct 2011 14:09:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='perlgerl.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Perl Gerl</title>
		<link>http://perlgerl.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://perlgerl.com/osd.xml" title="Perl Gerl" />
	<atom:link rel='hub' href='http://perlgerl.com/?pushpress=hub'/>
		<item>
		<title>Getting Moose and Rose::DB::Object to play together</title>
		<link>http://perlgerl.com/2011/04/09/getting-moose-and-rosedbobject-to-play-together/</link>
		<comments>http://perlgerl.com/2011/04/09/getting-moose-and-rosedbobject-to-play-together/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 21:52:27 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.com/?p=266</guid>
		<description><![CDATA[I&#8217;m fairly new to both Moose and Rose::DB::Object. and have been poking around trying to find a simple way to marry the two. Delegation and roles do the trick here. I created a parameterized role, so that I could tell the role what Rose::DB::Object-derived class to delegate to. package My::DB::Role; use MooseX::Role::Parameterized; parameter 'table' =&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=266&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m fairly new to both Moose and Rose::DB::Object. and have been poking around trying to find a simple way to marry the two.  Delegation and roles do the trick here.</p>
<p>I created a parameterized role, so that I could tell the role what Rose::DB::Object-derived class to delegate to.</p>
<blockquote><p>
<code>package My::DB::Role;<br />
use MooseX::Role::Parameterized;</p>
<p>parameter 'table' =&gt; (<br />
    is      =&gt; 'ro',<br />
    isa     =&gt; 'Str',<br />
);</p>
<p>role {<br />
    my $p = shift;</p>
<p>    my $class =<br />
        $p-&gt;table =~ /^My::DB/<br />
     ? $p-&gt;table<br />
      : join '::', 'My::DB', $p-&gt;table<br />
    ;</p>
<p>    eval "require $class";<br />
    $class-&gt;import;</p>
<p>    has 'db_obj' =&gt; (<br />
        is      =&gt; 'rw',<br />
        isa     =&gt;  $class,<br />
        handles =&gt; [ $class-&gt;meta-&gt;column_names, qw(save load delete) ],<br />
        default =&gt; sub {<br />
            $class-&gt;new;<br />
        },<br />
    );<br />
};</p>
<p>no Moose;<br />
1;<br />
</code></p></blockquote>
<p>In my consuming class, I specify the role and the shortened name of the Rose::DB::Object-derived class:</p>
<blockquote><p><code>package My::Product;<br />
use Moose;</p>
<p>with 'Prixing::DB::Role' =&gt; { table =&gt; 'Product'};<br />
1;<br />
</code></p></blockquote>
<p>With this little setup, I have working code:</p>
<blockquote><p><code>use Test::More;</p>
<p>use_ok('My::Product');</p>
<p>my $product = My::Product-&gt;new;</p>
<p>$product-&gt;id(1);<br />
$product-&gt;load;</p>
<p>note $product-&gt;created_at;</p>
<p>done_testing;</code></p></blockquote>
<p>This outputs:</p>
<blockquote><p>ok 1 &#8211; use My::Product;<br />
# 2011-04-09T09:03:20<br />
1..1</p></blockquote>
<p>This is not thoroughly tested; I just did this tonight. But this looks like the way to go.</p>
<p>Further reading:</p>
<ul>
<li> Kate Yoak posts a comment about her solution at Rohan Almeida&#8217;s blog (now listed as an attack site by Google, which I find odd). <a href="http://rohan.almeida.in/archives/moose-with-rosedbobject-roose-morose"> Link to very fierce attack site</a>; you have been warned.
<li>Inheritance from Rose::DB::Object has been possible since <a href="http://search.cpan.org/~drolsky/Moose-1.25/lib/Moose/Manual/Delta.pod#1.15">Moose 1.15</a>, which introduced the <code>-meta_name</code> to <code>use Moose</code>. Renaming Moose&#8217;s <code> meta</code>  neatly sidesteps the Rose::DB::Object method of the same name.
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/266/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=266&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/04/09/getting-moose-and-rosedbobject-to-play-together/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>UTF8 follies</title>
		<link>http://perlgerl.com/2011/04/08/utf8-follies/</link>
		<comments>http://perlgerl.com/2011/04/08/utf8-follies/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 18:43:14 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
				<category><![CDATA[utf8 perl]]></category>

		<guid isPermaLink="false">http://perlgerl.com/?p=262</guid>
		<description><![CDATA[Character encoding issues are shortening my life expectancy. It&#8217;s been a few years since I dealt with them regularly, so they bite me from time to time. Recently I puzzled over a set of strings that were showing up double-encoded in my Postgres database. These strings were encoded from incoming Latin 1 to UTF8, travelled [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=262&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Character encoding issues are shortening my life expectancy.  It&#8217;s been a few years since I dealt with them regularly, so they bite me from time to time.</p>
<p>Recently I puzzled over a set of strings that were showing up double-encoded in my Postgres database.   These strings were  encoded from incoming Latin 1 to UTF8, travelled around the program with their utf8 flags set, went through JSON-&gt;decode and encode multiple times without apparent harm, but once in the database, they had the telltale double-encoding gibberish characters. E.g.:</p>
<blockquote><p><code><br />
use Encode;<br />
my $utf8_string = "Télévision extrême à domicile";<br />
print encode('utf8', $utf8_string);<br />
# becomes TÃ©lÃ©vision extrÃªme Ã  domicile<br />
</code></p></blockquote>
<p>I spent an absurdly long time capturing strings and dumping during execution:</p>
<p> <code>   say qx{echo $str | od -c }</code></p>
<p><code>od</code> being a handy Unix utility I became very familiar with in my days of converting bibliographic data.</p>
<p>Turns out I was focusing on the wrong leads.  These strings became values in a hash which was run through JSON-&gt;encode before saving to db.   What prompted the re-encoding was not the values of the hash, but the keys. These were string literals in my program which were not marked as UTF8.  Perl looked at my keys, looked at my values, saw a mixed bag, and decided to run the whole thing through the shredder again, just to be on the safe side.</p>
<p>The solution was simple:<br />
<code>use utf8</code></p>
<p>Because my keys were source-code string literals, I want my source code to be UTF8.  use utf8 assures that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/262/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=262&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/04/08/utf8-follies/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Started reading Perl Moderne</title>
		<link>http://perlgerl.com/2011/04/05/started-reading-perl-moderne/</link>
		<comments>http://perlgerl.com/2011/04/05/started-reading-perl-moderne/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 18:10:38 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.com/?p=245</guid>
		<description><![CDATA[I picked up a copy of Perl Moderne the new book by France&#8217;s Perl Gang of Four, Damien Krotkine, Sébastien Aperghis-Tramoni, Jérôme Quelin, and Philippe &#8216;BooK&#8217; Bruhat, and have just started reading it. Perl doesn&#8217;t seem to have the presence in France that it does in the English-speaking world. I hope this book helps change [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=245&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I picked up a copy of <em>Perl Moderne</em> the new book by France&#8217;s Perl Gang of Four, Damien Krotkine, Sébastien Aperghis-Tramoni, Jérôme Quelin, and Philippe <a href="http://search.cpan.org/dist/Acme-BooK-Is-My-Bitch/"> &#8216;BooK&#8217; </a> Bruhat, and have just started reading it.</p>
<p>Perl doesn&#8217;t seem to have the presence in France that it does in the English-speaking world. I hope this book helps change that, because it&#8217;s clearly-written, commute-friendly book which covers a lot of ground, from installation to Moose. Non-French Perl hackers can pick up their professional vocabulary here too. (Make your admirers swoon with desire by murmuring <em>table de hachage</em> like Morticia Addams did Gomez: &#8220;Tish! You speak French!&#8221;)</p>
<p>I am puzzled  about a seeming omission in their first-chapter  discussion of editors and ready-to-install binaries: there is no mention of Active State&#8217;s Komodo IDE or ActivePerl.  Perhaps because Komodo is payware?   I&#8217;ll ask next time I see one of them.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=245&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/04/05/started-reading-perl-moderne/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Figuring out map coordinates</title>
		<link>http://perlgerl.com/2011/04/05/figuring-out-map-coordinates/</link>
		<comments>http://perlgerl.com/2011/04/05/figuring-out-map-coordinates/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 17:37:38 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.com/?p=247</guid>
		<description><![CDATA[Many sites use vendors other than Google for their mapping needs. These may use projections that dish up non-GPS coordinates. Here&#8217;s a rough way to figure out what these coordinates are and how to convert them, without returning to school for a graduate degree in geoinformatics. Make a note of the unfamiliar coordinates and the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=247&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many sites use vendors other than Google for their mapping needs. These may use projections that dish up non-GPS coordinates.  Here&#8217;s a rough way to figure out what these coordinates are and how to convert them, without returning to school for a graduate degree in geoinformatics.</p>
<ul>
<li>Make a note of the unfamiliar coordinates and the street address.
<li> Search by street address at Google Maps.  Get the coordinates by right-clicking at the very tip of the red indicator and choosing &#8220;What&#8217;s here?&#8221;
<li>Hop over to the<a href="http://twcc.free.fr/"> World Coordinate Converter</a> web site.  Choose &#8216;*GPS (WGS84) (deg)&#8217; from the drop-down in the upper  box (if it&#8217;s not already selected)  followed by the Google Maps coordinates.
<li> Fool around with target systems in the lower box. Choose some likely candidates  and click Convert.  Keep this up until you get results close to the mystery coordinates (don&#8217;t count on identical).
<li> Click on the ? next to the coordinate system name you chose.  Put on your reading glasses and find the link in the popup to spatialreference.org. Click on it.  This will give you the WKID (Well Known ID) of the projection, in the form of EPSG:\d+.
<li>  The WKID for the Google Maps projection is EPSG:4326 (http://spatialreference.org/ref/epsg/4326/).
<li> Obtain the program <code>gdaltransform</code> by installing the GDAL utilities on your friendly *nix box.<br />
      On Fedora, it&#8217;s  <code>apt-get install gdal-bin</code></p>
<li> Now the magic incantation:<br />
<code><br />
echo $x $y | /usr/bin/gdaltransform -s_srs [/source] -t_srs [target WKID]<br />
</code><br />
You will get your desired coordinates. Gingerly carry these over to Google Maps and verify that you&#8217;re in  desired vicinity. The coordinates may be longitude-first, so you may need to reverse their order.
</ul>
<p>Further reading:</p>
<ul>
<li><a href='http://gdal.org/'> The GDAL web site</a>
<li><a href="http://gdal.org/gdaltransform.html"><code>gdaltransform</code> man page</a>
<li> <a href="http://www.openlayers.org/">OpenLayers</a>, an open source Javascript API, which has a transform function<br />
<blockquote><p><code>var nw = new OpenLayers.LonLat(west, north);<br />
var nwCarto = nw.transform(new OpenLayers.Projection("EPSG:2154"),new OpenLayers.Projection("EPSG:900913"));</code></p></blockquote>
<li><a href="http://search.cpan.org/~ajolma/Geo-GDAL-0.22/"><code>Geo::GDAL</code></a>, the Perl binding to the GDAL library.
<li> <a href="http://gis.stackexchange.com/questions/5041/how-should-i-use-gdal-to-perform-a-transformation">Post at Stack Exchange</a> on <code>gdaltransform</code>.
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/247/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/247/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/247/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=247&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/04/05/figuring-out-map-coordinates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Happiness is a test suite.</title>
		<link>http://perlgerl.com/2011/03/09/happiness-is-a-test-suite/</link>
		<comments>http://perlgerl.com/2011/03/09/happiness-is-a-test-suite/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 15:13:03 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=215</guid>
		<description><![CDATA[Today I am grateful for my test suite. I had to install my handiwork on a production box for the first time today, and the test suite made short work of identifying and fixing problems. It&#8217;s astonishing what testing for the seemingly obvious will catch. A test suite is a courtesy to the next sap [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=215&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I am  grateful for my test suite.  I had to install my handiwork on a production box for the first time today, and the test suite made short work of identifying and fixing problems.  It&#8217;s astonishing what testing for the seemingly obvious will catch.</p>
<p>A test suite is a courtesy to the next sap charged with the task, as well. Why make them hate you and your mass of bugs any more than strictly necessary?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=215&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/03/09/happiness-is-a-test-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Will SWAG for food</title>
		<link>http://perlgerl.com/2011/03/02/will-swag-for-food/</link>
		<comments>http://perlgerl.com/2011/03/02/will-swag-for-food/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 08:47:24 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=236</guid>
		<description><![CDATA[Why is it that when I am asked to estimate a project, I switch into abused-dog mode? My first instinct is to dive under the desk and whimper, which I promptly suppress in favor of other, hopefully more productive approaches. So the last time I was asked, I stewed about it for 24 hours, talked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=236&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Why is it that when I am asked to estimate a project, I switch into abused-dog mode?  My first instinct is to dive under the desk and whimper, which I promptly suppress in favor of other, hopefully more productive approaches.</p>
<p>So the last time I was asked,  I stewed about it for 24 hours, talked with  management-experienced friends, then finally did the sensible thing: I went to a colleague and &#8216;fessed up.  &#8220;I&#8217;m not that good at this. And not only am I not good at this, I can&#8217;t calm myself enough to make myself good at this. May I get some help?&#8221;  Why certainly.  So yesterday we started to break down my project into finer detail.  I drew up a spreadsheet with tasks, estimated each on a story point scale,  added it up, and multiplied by 3 to account for the fact that I&#8217;m not Donald Knuth.  I added a column for actual time, and hopefully, over time I will get an idea of the value of my own personal human coefficient, which I suspect will be rather high.</p>
<p>I reviewed Andy Lester&#8217;s <a href="http://petdance.com/perl/crisis.pdf">Preventing Crisis</a> talk, and asked my former colleague Buddy Burden for the story point scale in use at Rent.</p>
<table border="1">
<tr>
<td>Story Points</td>
<td>The Buddy Scale</td>
<td>The Dave Scale
</td>
</tr>
<tr>
<td>dink</td>
<td>&#8220;We&#8217;ve already spent more time talking about it than it would take to just do it.&#8221;</td>
<td>An issue added that is quick to implement i.e., &lt; 1 hour, equivalent to .25 story points
</td>
</tr>
<tr>
<td>1 </td>
<td>&#8220;Pfft. That&#8217;s nothing.&#8221; </td>
<td>hours
</td>
</tr>
<tr>
<td>2 </td>
<td>&#8220;That&#8217;s not too bad &#8230;&#8221; </td>
<td>hours to a day (or two)
</td>
</tr>
<tr>
<td>3 </td>
<td>&#8220;Not too awful, but non-trivial.&#8221;</td>
<td>a few days</p>
</td>
</tr>
<tr>
<td>5 </td>
<td>&#8220;This is some real work.&#8221; </td>
<td>days to a week (or two)
</td>
</tr>
<tr>
<td>8 </td>
<td>&#8220;This is surprisingly difficult.&#8221; </td>
<td>a few weeks
</td>
</tr>
<tr>
<td>13 </td>
<td>&#8220;This really sucks.&#8221; </td>
<td>weeks to months
</td>
</tr>
<tr>
<td>21 </td>
<td>&#8220;There&#8217;s no way one person could do this by themselves.&#8221;</td>
<td>weeks to months for multiple people
</td>
</tr>
<tr>
<td>40 </td>
<td>&#8220;This is a major project.&#8221; </td>
<td>months for multiple people
</td>
</tr>
<tr>
<td>100 </td>
<td>&#8220;If they truly understood how heinous this was, they wouldn&#8217;t want to do it any more.&#8221; </td>
<td>months for a lot of people</p>
</td>
</tr>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=236&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/03/02/will-swag-for-food/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Presenting Prixing</title>
		<link>http://perlgerl.com/2011/03/02/presenting-prixing/</link>
		<comments>http://perlgerl.com/2011/03/02/presenting-prixing/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 08:35:03 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=233</guid>
		<description><![CDATA[My employer, Eric Larcheveque, presents Prixing, the price-comparison mobile application for Android (and soon for iPhone). It currently only works in France, but world conquest is in the project plan.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=233&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My employer, Eric Larcheveque, presents <a href="http://www.prixing.fr">Prixing</a>, the price-comparison mobile application for Android (and soon for iPhone).  It currently only works in France, but world conquest is in the project plan.</p>
<span style="text-align:center; display: block;"><a href="http://perlgerl.com/2011/03/02/presenting-prixing/"><img src="http://img.youtube.com/vi/dyKLhfJe_mY/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=233&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/03/02/presenting-prixing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>Web::Scraper</title>
		<link>http://perlgerl.com/2011/02/27/219/</link>
		<comments>http://perlgerl.com/2011/02/27/219/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 13:42:14 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=219</guid>
		<description><![CDATA[Lately I&#8217;ve been using the nifty Web::Scraper by the prolific Tatsuhiko Miyagawa. It exposes a compact DSL of three words, process, process_first and result, to scrape sites based on XPath expressions or CSS selectors: use Data::Dumper; use Web::Scraper; use URI; # Find the &#60;title&#62; element and place its content # in a hash reference with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=219&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been using the nifty <a href="http://search.cpan.org/dist/Web-Scraper/">Web::Scraper</a> by the prolific Tatsuhiko Miyagawa.  It exposes a compact DSL of three words, <code>process, process_first</code> and <code>result</code>,  to scrape sites based on XPath expressions or CSS selectors:</p>
<p><code><br />
use Data::Dumper;<br />
use Web::Scraper;<br />
use URI;</p>
<p># Find the &lt;title&gt; element and place its content<br />
# in a hash reference with the key 'title'</p>
<p>my $scraper = scraper {<br />
        process '//title', title =&gt; 'TEXT';<br />
};</p>
<p>my $data = $scraper-&gt;scrape(<br />
    URI-&gt;new('http://www.google.com')<br />
);</p>
<p>warn Dumper $data;<br />
</code></p>
<p>Gets you<br />
<code><br />
$VAR1 = {<br />
          'title' =&gt; 'Google'<br />
        };<br />
</code></p>
<p>You can also have it return an arrayref for an element, pass in callbacks, or nest scrapers.  </p>
<p>I forked the code and added a hashref option, nice when paired with a callback that returns a hash.  </p>
<p><code>scraper</code> (a disguised constructor) and the keywords are exported into the caller&#8217;s namespace. If the potential for collision concerns you, wrap up scraper instantiation in a separate module.</p>
<p>The documentation is a bit thin, so in addition check out Miyagawa&#8217;s  <a href="http://www.slideshare.net/miyagawa/web-scraper-shibuyapm-tech-talk-8">presentation slides</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=219&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/02/27/219/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>First foray into Moose</title>
		<link>http://perlgerl.com/2011/02/26/first-foray-into-moose/</link>
		<comments>http://perlgerl.com/2011/02/26/first-foray-into-moose/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 12:13:27 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=216</guid>
		<description><![CDATA[As a startup&#8217;s sole Perl programmer I have been feeling the pressure to get things done more quickly. Whipping up a codebase from scratch, or from a chicken-scratch prototype, is very different from propping up a brittle hulking legacy codebase. I began to feel limited by Perl&#8217;s object model simply because of all the keystroking [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=216&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As a startup&#8217;s sole Perl programmer I have been feeling the pressure to get things done more quickly.  Whipping up a codebase from scratch, or from a chicken-scratch prototype, is very different from propping up a brittle hulking legacy codebase.  I began to feel limited by Perl&#8217;s object model simply because of all the keystroking and the attention to implementation details.  So yesterday I gave Moose a little try.</p>
<p>A well-designed toolkit always gives the new user one very useful thing right away, a small but immediate reward for the effort of trying out a new way of doing things.  Moose does this with the keyword <code>has</code>.   Describe your attributes in excruciating detail and poof! you&#8217;ve done away with mounds of keystroking.  Very nice.  Already a quick little boost before lunchtime, and this time not from my coffee cup.</p>
<p>I also noticed another side benefit.  Writing classes declaratively is an aide to thinking more abstractly.   The little word <code>has</code> puts the emphasis directly on the interface.  A language and its user have a symbiotic relationship&#8211;the user writes in the language and the language guides the user&#8217;s thinking.  Moose enhances Perl&#8217;s ability to lead, follow or get out of the way at the right times by letting you shift gears to greater abstraction.  I found this very pleasant.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/216/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=216&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/02/26/first-foray-into-moose/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
		<item>
		<title>!=</title>
		<link>http://perlgerl.com/2011/02/25/213/</link>
		<comments>http://perlgerl.com/2011/02/25/213/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 07:17:52 +0000</pubDate>
		<dc:creator>perlgerl</dc:creator>
		
		<guid isPermaLink="false">http://perlgerl.wordpress.com/?p=213</guid>
		<description><![CDATA[Information is not knowledge. Knowledge is not wisdom. Wisdom is not truth. Truth is not beauty. Beauty is not love. Love is not Perl. Perl is THE BEST. D&#8217;après Frank Zappa, who originally said this of music.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=213&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Information is not knowledge. Knowledge is not wisdom. Wisdom is not truth. Truth is not beauty. Beauty is not love. Love is not Perl. Perl is THE BEST.</p>
<p>D&#8217;après Frank Zappa, who originally said this of music.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perlgerl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perlgerl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perlgerl.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perlgerl.com&amp;blog=9754723&amp;post=213&amp;subd=perlgerl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perlgerl.com/2011/02/25/213/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32521a568cd830978baf5c9b7a0b4ec5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perlgerl</media:title>
		</media:content>
	</item>
	</channel>
</rss>
