<?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 / Sysadmin</title>
	<atom:link href="http://perladmin.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://perladmin.wordpress.com</link>
	<description></description>
	<lastBuildDate>Fri, 13 Jan 2012 12:59:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='perladmin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Perl / Sysadmin</title>
		<link>http://perladmin.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://perladmin.wordpress.com/osd.xml" title="Perl / Sysadmin" />
	<atom:link rel='hub' href='http://perladmin.wordpress.com/?pushpress=hub'/>
		<item>
		<title>It is always these idiots with massive Data::Dumper struts &#8230;.</title>
		<link>http://perladmin.wordpress.com/2012/01/09/it-is-always-these-idiots-with-massive-datadumper-struts/</link>
		<comments>http://perladmin.wordpress.com/2012/01/09/it-is-always-these-idiots-with-massive-datadumper-struts/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 17:55:20 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[perl module]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=141</guid>
		<description><![CDATA[*laugh* Just found this in the source for PPI: 175 if ( $self-&#62;{source_bytes} &#62; 1048576 ) { 176 # Dammit! It&#8217;s ALWAYS the &#8220;Perl&#8221; modules larger than a 177 # meg that seems to blow up the Tokenizer/Lexer. 178 # Nobody actually writes real programs larger than a meg 179 # Perl::Tidy (the largest) is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=141&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>*laugh*</p>
<p>Just found this in the source for PPI:</p>
<p> 175     if ( $self-&gt;{source_bytes} &gt; 1048576 ) {<br />
 176         # Dammit! It&#8217;s ALWAYS the &#8220;Perl&#8221; modules larger than a<br />
 177         # meg that seems to blow up the Tokenizer/Lexer.<br />
 178         # Nobody actually writes real programs larger than a meg<br />
 179         # Perl::Tidy (the largest) is only 800k.<br />
 180         # It is always these idiots with massive Data::Dumper<br />
 181         # structs or huge RecDescent parser.<br />
 182         PPI::Exception::ParserRejection-&gt;throw(&#8220;File is too large&#8221;);</p>
<p>PPI/Tokenizer.pm</p>
<p>Yeah. It&#8217;s your fault! :-)</p>
<p>Not actually sure why trying to use Test::Perl::Critic::Progressive results in this since I don&#8217;t have any files that are that big, but it made me laugh when I discovered the source of the message.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://perladmin.wordpress.com/tag/humor/'>humor</a>, <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/tag/perl-module/'>perl module</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=141&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2012/01/09/it-is-always-these-idiots-with-massive-datadumper-struts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Please Stop Including the Kitchen Sink</title>
		<link>http://perladmin.wordpress.com/2011/12/29/please-stop-including-the-kitchen-sink/</link>
		<comments>http://perladmin.wordpress.com/2011/12/29/please-stop-including-the-kitchen-sink/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 20:37:19 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[perl modules]]></category>
		<category><![CDATA[perl module]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=142</guid>
		<description><![CDATA[I needed to install Business::OnlinePayment::WorldPay @ $work today. I had been using the module in my own perlbrew name space so as to not pollute the server with unnecessary modules, but as the code went live I needed to install it server side. Little did I know that it triggers once of those dependency cascades [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=142&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I needed to install Business::OnlinePayment::WorldPay @ $work today. I had been using the module in my own perlbrew name space so as to not pollute the server with unnecessary modules, but as the code went live I needed to install it server side.</p>
<p>Little did I know that it triggers once of those dependency cascades that includes the kitchen sink.</p>
<p><span id="more-142"></span></p>
<p>The reason is that B:O:WorldPay uses XML::TreeBuilder to parse the XML returned by WorldPay. That is a good reuse of modules.</p>
<p>What isn&#8217;t is that XML::TreeBuilder&#8217;s author wants to have good Perl Best Practice (PBP) tests and so wrote a test for Perl::Critic. From the naming scheme for this test (xt/author/zz_perlcritic.t) this is clearly not a regular test for most people to use (xt = Extra Tests?).</p>
<p>More over the test itself checks to see if Test::Perl::Critic is installed and if not skips the test:</p>
<p><code><br />
eval "use Test::Perl::Critic";</p>
<p>if ($@) {<br />
    Test::More::plan( skip_all =&gt;<br />
            "Test::Perl::Critic required for testing PBP compliance" );<br />
}<br />
else {<br />
</code></p>
<p>So no failures will occur if Test::Perl::Critic and thus Perl::Critic isn&#8217;t installed. However because of this exuberance the author added Test::Perl::Critic to the list of dependencies and before you know it my server is busy trying to install Perl::Critic.</p>
<p>Thanks, but no thanks.</p>
<p>A quick install with <code>perl Makefile.PL &amp;&amp; make &amp;&amp; make</code> install fixes this, but cpanm wouldn&#8217;t let me install this without P::C, causing the install to take much longer than it should have done&#8230;</p>
<p>The author of XML::TreeBuilder handled this correctly by having the test be contingent on having Test::Perl::Critic, but I don&#8217;t think that this should be a required module for the module to install as it is not actually used by the module.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/perl-modules/'>perl modules</a> Tagged: <a href='http://perladmin.wordpress.com/tag/perl-module/'>perl module</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=142&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/12/29/please-stop-including-the-kitchen-sink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Its Stuff Like This, perlblogs</title>
		<link>http://perladmin.wordpress.com/2011/11/11/its-stuff-like-this-perlblogs/</link>
		<comments>http://perladmin.wordpress.com/2011/11/11/its-stuff-like-this-perlblogs/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 03:04:14 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=130</guid>
		<description><![CDATA[I feel pretty much useless sitting here on WordPress.com trying to add something to the Perl community and not getting any traffic. So I was seriously debating signing up on blogs.perl.org tonight. That didn&#8217;t work out too well&#8230; I thought that on blogs.perl.org it would at least be seen by Perl people and even if [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=130&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I feel pretty much useless sitting here on WordPress.com trying to add something to the Perl community and not getting any traffic. So I was seriously debating signing up on <a href="http://blogs.perl.org/">blogs.perl.org</a> tonight. That didn&#8217;t work out too well&#8230;</p>
<p><span id="more-130"></span></p>
<p>I thought that on blogs.perl.org it would at least be seen by Perl people and even if everyone thought what I was writing was dumb, at least it would be seen and I might gain some ideas as to what is good/bad about my attempts to contribute back.</p>
<p>So I finally took the plunge and signed up. I filled out the form and I got this back in response:</p>
<p><a href="http://perladmin.files.wordpress.com/2011/11/perllogin.png"><img src="http://perladmin.files.wordpress.com/2011/11/perllogin.png?w=170&#038;h=300" alt="" title="perllogin" width="170" height="300" class="alignnone size-medium wp-image-131" /></a></p>
<p>To borrow a phrase from Reddit &#8211; it is sh*t like this&#8230;  that is the reason why people think Perl old. We appear to have a universal dislike of UI.</p>
<p>In this case I filled out a very simple form and the error message I get back says</p>
<blockquote><p>Text entered was wrong. Try again.</p></blockquote>
<p>What in the world is that meant to mean?</p>
<p>Clearly something I entered isn&#8217;t right, but there are the issues with this level of blandness which we should all learn to avoid. I see the following issues;</p>
<h3>Generic Message.</h3>
<p>You know what test failed so tell me what it was. Don&#8217;t just say something went wrong. I can already work that out for myself. What I can&#8217;t fathom is what you don&#8217;t like.</p>
<h3>Cute Quip.</h3>
<p>&#8220;Try again&#8221; seems to simply rub it in. I want to sign up so of course I&#8217;m going to try again. You even gave me the form to try again with and so you are expecting me to do this too. Therefore you don&#8217;t need to pretend that you were programmed by a bratty 6 year old kid that asks you to guess what number s/he is thinking of. Seriously, drop the cute quips.</p>
<h3>Highlight the Problem.</h3>
<p>The entry form was redisplayed so why in the world won&#8217;t you indicate which field is broken?</p>
<p>Clearly the more appropriate messages is simply:</p>
<blockquote><p>&#8220;[fieldname] is [invald reason]&#8220;</p></blockquote>
<p>No quips are needed. No generic answer that doesn&#8217;t actually tell me what is wrong is needed. Just tell me what the problem is in what field. You don&#8217;t highlight the field, but it would be nice.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/rant/'>rant</a> Tagged: <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/tag/rant/'>rant</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=130&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/11/11/its-stuff-like-this-perlblogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>

		<media:content url="http://perladmin.files.wordpress.com/2011/11/perllogin.png?w=170" medium="image">
			<media:title type="html">perllogin</media:title>
		</media:content>
	</item>
		<item>
		<title>Dancer v2 is coming</title>
		<link>http://perladmin.wordpress.com/2011/11/10/dancer-v2-is-coming/</link>
		<comments>http://perladmin.wordpress.com/2011/11/10/dancer-v2-is-coming/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 02:00:00 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[perl modules]]></category>
		<category><![CDATA[Dancer 2]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=124</guid>
		<description><![CDATA[Perl Dancer one of the crop of new Perl web-app frameworks, and one that is related in style to Ruby&#8217;s successful Sinatra framework, is announcing the development of Dancer 2. Right now the code for Dancer 2 is reported to cover about 80% of the Dancer functionality. It has been completely rewritten so that it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=124&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://perldancer.org/">Perl Dancer</a> one of the crop of new Perl web-app frameworks, and one that is related in style to Ruby&#8217;s successful Sinatra framework, is <a href="http://lists.perldancer.org/pipermail/dancer-users/2011-September/001867.html">announcing the development of Dancer 2</a>.</p>
<p><span id="more-124"></span></p>
<p>Right now the code for Dancer 2 is reported to cover about  80% of the Dancer functionality. It has been completely rewritten so that it no longer uses any global variables in the core of the application. This is very good news as recent postings on the dancer mailing list have hinted that this may the cause for some random behaviour in Dancer.</p>
<p>In addition Sukria, Dancer&#8217;s founder, reports that the back end now is now completely OO through the use of <a href="https://metacpan.org/search?q=Moo">Moo</a>, the light weight clone of <a href="https://metacpan.org/search?q=Moose">Moose</a>.</p>
<p>Testing out Dancer 2 is easy. As noted in the <a href="http://lists.perldancer.org/pipermail/dancer-users/2011-September/001867.html">Dancer 2 announcement</a>, all that you need to do is to download Dancer 2 and then use that in preference to your default dancer libraries. E.g.:</p>
<p><code><br />
$ git clone http://github.com/sukria/dancer2.git<br />
$ cd YOUR_APP<br />
$ perl -I../dancer2/lib bin/app.pl<br />
</code></p>
<p>Somethings to note are that the default template is now Template Toolkit, and Dancer now defaults to using the default TT brackets of [% and %] instead of &lt;% and %&gt; which come from Sinatra.</p>
<p>You can always switch them back in config.yml:</p>
<blockquote style="white-space:pre;"><p>
template: &#8220;template_toolkit&#8221;<br />
engines:<br />
  template_toolkit:<br />
    encoding:  &#8216;utf8&#8242;<br />
    start_tag: &#8216;&lt;%&#8217;<br />
    end_tag:   &#8216;%&gt;&#8217;
</p></blockquote>
<p>So lets test our applications and see if we can catch all of the problems before launch. You can follow development over at Git Hub:</p>
<p><a href="https://github.com/sukria/dancer2">https://github.com/sukria/dancer2</a></p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/dancer/'>Dancer</a>, <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/perl-modules/'>perl modules</a> Tagged: <a href='http://perladmin.wordpress.com/tag/dancer/'>Dancer</a>, <a href='http://perladmin.wordpress.com/tag/dancer-2/'>Dancer 2</a>, <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=124&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/11/10/dancer-v2-is-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>What does that module do? aliased.pm</title>
		<link>http://perladmin.wordpress.com/2011/11/06/what-does-that-module-do-aliased-pm/</link>
		<comments>http://perladmin.wordpress.com/2011/11/06/what-does-that-module-do-aliased-pm/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 01:50:36 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[perl modules]]></category>
		<category><![CDATA[aliased]]></category>
		<category><![CDATA[Perl modules]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=122</guid>
		<description><![CDATA[In my first post in this series I explained how Task::Kensho provided a nice list of modules to install to give a good basis for many common actions. When installing some of those modules I had one of those &#8220;I wonder what that does&#8221; moments when cpanm showed that it was installing &#8220;aliased.pm&#8221;. Generally all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=122&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my first post in this series I explained how Task::Kensho provided a nice list of modules to install to give a good basis for many common actions.</p>
<p>When installing some of those modules I had one of those &#8220;I wonder what that does&#8221; moments when cpanm showed that it was installing &#8220;aliased.pm&#8221;. Generally all lower case module names are reserved for pragmas and modules that provide pragma like support, so I was curious to know what this module did.</p>
<p><span id="more-122"></span></p>
<p>aliased.pm is written by the talented Curtis &#8220;Ovid&#8221; Poe, whose name you have most likely seen if you&#8217;ve used Perl for a while. &#8220;aliased&#8221; fills a neat little spot for the programmer who is trying to reduce the clutter in their code because it allows to you &#8220;alias&#8221; one package name to another. This means that with all of those cases of:</p>
<p><code>Company::Application::Version::Module</code></p>
<p>Can now be written so much more clearly as just</p>
<p><code>Module</code></p>
<p>It comes with a built in helper routine to shorten your package name to the last section, so all you need to do is this to start using it:</p>
<p><code><br />
use aliased "Company::Application::Version::Module";<br />
Module-&gt;doSomething();<br />
</code></p>
<p>If you don&#8217;t like &#8220;Module&#8221; on its own then you can define the name that is used during the use call, for example:</p>
<p><code><br />
use aliased "Company::Application::Version::Module" =&gt; "MyModule";<br />
MyModule-&gt;doSomething();<br />
</code></p>
<p>The downside to using this module this is that you could easily mislead a reader of this code or get name clashes, especially with the automatic aliasing. Accordingly the best option is to assign it to a scalar variable and use that. For example:</p>
<p><code><br />
use aliased;<br />
my $MyModule = alias "Company::Application::Version::Module";<br />
$MyModule-&gt;doSomething();<br />
</code></p>
<p>Amazingly the basis for the code is so very simple. It effectively creates a sub of the given (or calculated) name that returns the original package name. So MyModule-&gt;doSomething() is really calling MyModule()-&gt;doSomething().</p>
<p>This module also has use in areas were you might change out one library for another. For example CGI =&gt; CGI::Lite.</p>
<p>There are definitely areas where it could add confusion, but it seems to be a useful addition to keep around.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/perl-modules/'>perl modules</a> Tagged: <a href='http://perladmin.wordpress.com/tag/aliased/'>aliased</a>, <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/tag/perl-modules-2/'>Perl modules</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=122&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/11/06/what-does-that-module-do-aliased-pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>What does that module do? Task::Kensho.pm</title>
		<link>http://perladmin.wordpress.com/2011/11/04/what-does-that-module-dotask-kensho-pm/</link>
		<comments>http://perladmin.wordpress.com/2011/11/04/what-does-that-module-dotask-kensho-pm/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 01:48:00 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[perl modules]]></category>
		<category><![CDATA[perl module]]></category>
		<category><![CDATA[Task::Kensho]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=114</guid>
		<description><![CDATA[Whenever I look at CPAN I am always amazed at the number of Perl modules that are available. Over 101,000 as of today. It just blows me away that that much time and effort has been put into coding these modules, by all of those people, and for free. But at the same time I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=114&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Whenever I look at CPAN I am always amazed at the number of Perl modules that are available. Over 101,000 as of today. It just blows me away that that much time and effort has been put into coding these modules, by all of those people, and for free.</p>
<p>But at the same time I can&#8217;t help but think how can anyone possibly find the time to know what they all do? How do you find out what modules are relevant or helpful for your daily programming? More over when you are installing a module and it pulls in other modules don&#8217;t you want to know why? Perhaps some of those other modules could be useful to you too.</p>
<p><span id="more-114"></span></p>
<p>So it occurred to me that perhaps a good way to address this is a little series that looks at modules that are new to me. Possibly they are new to you too. Or perhaps you know of them, but simply haven&#8217;t seen them. This is going to be infrequent, but it seems like a nice way to push out some more posts without having to provide lots of back story and detail for a project &#8211; to be able to provide a little trickle of information.</p>
<p>More importantly it might bring some extra attention to modules that are otherwise relatively obscure. So clearly we are not talking about LWP, etc. although given recent conversations on what people find when they search for the term &#8220;learn perl&#8221;, perhaps some blogs on what you can do with LWP might not be a terrible thing.</p>
<p>So today I was looking at <a href="http://learn.perl.org/">learn.perl.org</a> and I noticed a link to <a href="https://metacpan.org/module/Task::Kensho">Task::Kensho</a>.</p>
<p>Task::Kensho is a module from the <a href="http://www.enlightenedperl.org/">Enlightened Perl Organization</a>, a group within the Perl community  that has been formed to promote Perl using modern standards.</p>
<p>Task::Kensho is not a module in itself, but rather it provides a method for  importing groups of modules from CPAN. Those modules are arranged in groups such as &#8220;web dev&#8221; and &#8220;DB Dev&#8221;, &#8220;testing&#8221;, etc. to provide a simple method of importing a series of modules that would be useful.</p>
<p>The documentation lists all of the available modules so even if you are not sure about this method of installing modules it at least gives you an idea as to which modules are recommended for certain solutions. They may not be appropriate for every situation, but if nothing else it serves as a partial answer to the question of &#8220;but how do you know where to start?&#8221;</p>
<p>For example I&#8217;m currently shying away from Catalyst and looking in preference at <a href="http://perldancer.org/">Dancer</a> (come on Dancer 2!) so I would not install the Web Dev group. But I did cherry pick some items from the list and I so I would highly recommend this module to everyone. If for no other reason than it gives a nice concise list.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/perl-modules/'>perl modules</a> Tagged: <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/tag/perl-module/'>perl module</a>, <a href='http://perladmin.wordpress.com/tag/taskkensho/'>Task::Kensho</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=114&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/11/04/what-does-that-module-dotask-kensho-pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Three DOA Dell Scorpio Blue Drives</title>
		<link>http://perladmin.wordpress.com/2011/09/27/three-doa-dell-scorpio-blue-drives/</link>
		<comments>http://perladmin.wordpress.com/2011/09/27/three-doa-dell-scorpio-blue-drives/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 03:17:55 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=109</guid>
		<description><![CDATA[I have a Win 7 laptop at home. It was originally a donation from the family and it is now used for IE testing and Skype&#8217;ing. The HDD died on it a week after the 3 year extended warranty ran out (of course!) so I contacted Dell to get a replacement. I have to say [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=109&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a Win 7 laptop at home. It was originally a donation from the family and it is now used for IE testing and Skype&#8217;ing. The HDD died on it a week after the 3 year extended warranty ran out (of course!) so I contacted Dell to get a replacement.</p>
<p>I have to say that I will probably never buy a Scoripo Blue 320gb drive from Dell again after a really annoying experience where the first and then both replacement drives all turned up DOA.</p>
<p><span id="more-109"></span></p>
<p>I have no idea why all three arrived like this, but they would go into the machine and immediate issue the &#8220;Click of Death&#8221;. They were built in different months so it wasn&#8217;t a bad batch (unless it was a huge batch) so I can only assume it was a storage/delivery issue. I have to wonder what is happening with the drive though since the prices on these drives undercut the smaller capacity version of the same drive.</p>
<p>Most irritatingly I couldn&#8217;t find anyone else on the Dell forums or in general who had a problem with that drive so I could reassure myself that it wasn&#8217;t just me.</p>
<p>I finally caved and paid the extra for the Scorpio black drive. It is pretty much the same thing only 7200 RPM. I haven&#8217;t noticed the laptop running particularly faster, especially now that I&#8217;ve tasted SSD&#8217;s @ $work, but at least it works.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://perladmin.wordpress.com/tag/hardware/'>hardware</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=109&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/09/27/three-doa-dell-scorpio-blue-drives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Liking the First CentOS 6 Server at $work</title>
		<link>http://perladmin.wordpress.com/2011/09/26/liking-the-first-centos-6-server-at-work/</link>
		<comments>http://perladmin.wordpress.com/2011/09/26/liking-the-first-centos-6-server-at-work/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 02:50:47 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=105</guid>
		<description><![CDATA[Installed first box at $work with CentOS 6 the other day and so far I like it. I will say that the installer is no where near as slick as Ubuntu&#8217;s installer. I&#8217;m not really sure quite why it doesn&#8217;t feel as easy, but clearly someone at Canonical worked hard to make their installer slick, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=105&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Installed first box at $work with CentOS 6 the other day and so far I like it.</p>
<p>I will say that the installer is no where near as slick as Ubuntu&#8217;s installer. I&#8217;m not really sure quite why it doesn&#8217;t feel as easy, but clearly someone at <a href="http://ubuntu.com/">Canonical</a> worked hard to make their installer slick, but still, CentOS 6 installed smoothly.</p>
<p><span id="more-105"></span></p>
<p>I would just like to note too that with an SSD in the box the install is ridiculously fast and finally someone has gotten rid of my pet peeve with CentOS / Fedora (and presumably RHEL) for all of these years &#8230; CUPS is not installed by default.</p>
<p>The installation of <a href="http://en.wikipedia.org/wiki/CUPS" title="Common Unix Printing System">CUPS</a> as part of the LSB has always been a bane for me because I run servers and don&#8217;t want them to be able to print and therefore I don&#8217;t need CUPS and I don&#8217;t need the additional RPM&#8217;s that are its prerequisites. Most importantly of all I don&#8217;t need to waste valuable seconds during the start-up sequence starting CUPS nor waste any memory/CP resourcse on LKM&#8217;s like &#8220;lp&#8221; &#8220;parport&#8221; and &#8220;parport_pc&#8221;.</p>
<p>I have always just wanted the box to run only what it needs. There are already enough security nightmares with having customers on there, so I don&#8217;t need additional programs or LKM&#8217;s loaded to provide more potential intrusion vectors. It is just basic common sense.</p>
<p>It is nice to finally be able to install a server without being given a GUI or other nonsense that you didn&#8217;t ask for. I also like that one reboot later and I have all of the updates installed. Unlike Win 7, which I re-installed on a laptop at home a few weeks ago, which took 7 reboots :p</p>
<p>TIL: Apple wrote CUPS. I assumed it was a community thing.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/centos/'>centos</a> Tagged: <a href='http://perladmin.wordpress.com/tag/centos/'>centos</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=105&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/09/26/liking-the-first-centos-6-server-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Strong Growth in Perl Jobs market</title>
		<link>http://perladmin.wordpress.com/2011/09/25/strong-growth-in-perl-jobs-marke/</link>
		<comments>http://perladmin.wordpress.com/2011/09/25/strong-growth-in-perl-jobs-marke/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 01:45:56 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=95</guid>
		<description><![CDATA[According to eWeek the number of Perl jobs grew by 26% since 2009. Their survey of the jobs index show a heartening trend for the Perl community and the software development sector as a whole. &#8220;If an eWEEK survey of a jobs index is any indication, the action—and the jobs—are around Perl, Python, PHP, Ruby, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=95&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>According to eWeek the number of  <a href="http://www.eweek.com/c/a/Application-Development/Groovy-JavaScript-Ruby-Among-Fastest-Growing-Programming-Languages-505803/">Perl jobs grew by 26%</a> since 2009.</p>
<p><span id="more-95"></span></p>
<p>Their survey of the jobs index show a heartening trend for the Perl community and the software development sector as a whole.</p>
<blockquote><p>&#8220;If an eWEEK survey of a jobs index is any indication, the action—and the jobs—are around Perl, Python, PHP, Ruby, Java, &#8230;&#8221;</p></blockquote>
<p>The data is based on information from Simply Hired and it shows that many of the other software languages also increased the number of development positions. Only Fortran seems to have lost out in the development section and surprisingly COBOL jobs have picked up too. Great news for all of those COBOL developers who were suddenly turfed out of a job after the end of the last millennium.</p>
<p>The survey does not list whether or not the data is based on posts that were listed or positions that were filled. I would imagine the former. Similarly the article does not clarify if the positions were permanent or contract.</p>
<p>Certainly there do seem to be positions available though. Interestingly not all jobs are with dot-coms but from a broader sector. I was definitely surprised to see <a href="http://jobs.perl.org/job/14680">HSBC listed on Perl Jobs</a>.</p>
<p>I would be curious to know how many of the advertised positions are for developers and how many are a &#8220;Jack of All Trades&#8221; position in which you are the sys admin and the programmer and you should know MySQL, HTML, JavaScript, CSS and often PHP, Java, etc. as well.</p>
<p>Still, it is good news.</p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/advocacy/'>advocacy</a>, <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a> Tagged: <a href='http://perladmin.wordpress.com/tag/advocacy/'>advocacy</a>, <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=95&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/09/25/strong-growth-in-perl-jobs-marke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Using cpanminus</title>
		<link>http://perladmin.wordpress.com/2011/09/19/using-cpanminus/</link>
		<comments>http://perladmin.wordpress.com/2011/09/19/using-cpanminus/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 13:00:49 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=85</guid>
		<description><![CDATA[If you haven&#8217;t already tried cpanminus (cpanm) then you definitely should do. cpanm is a replacement/supplement for cpan that provides much less functionality and therefore faster and simpler. We are accustomed to more &#8211; more features, faster speed, etc. &#8211; but sometimes we don&#8217;t need more features. Sometimes we just want a tool to do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=85&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t already tried <a href="http://cpanmin.us/">cpanminus</a> (cpanm) then you definitely should do.</p>
<p>cpanm is a replacement/supplement for cpan that provides much less functionality and therefore faster and simpler.</p>
<p><span id="more-85"></span></p>
<p>We are accustomed to more &#8211; more features, faster speed, etc. &#8211; but sometimes we don&#8217;t need more features. Sometimes we just want a tool to do the job and do it quickly and efficiently. Over the years the cpan command has grown in response to requirements and, as any dev that has worked with software that has evolved this way knows, this leads to things getting slower and clunkier because you generally can&#8217;t strip out how the application used to work, only add new features.</p>
<p>cpanminus is a replacement for cpan which is designed to get modules installed quickly and that is all. This is often all I need and so I find it so useful rather than starting up cpan and having it download the updated module lists from CPAN before I can do anything.</p>
<p>Best of all cpanm is self-installing. So while cpanm is a Perl module (App::cpanminus) you don&#8217;t have to use cpan to install the module in order to use it. Instead you can download the perl script and tell it to install itself using:</p>
<p><code>curl -L http://cpanmin.us | perl - --self-upgrade<br />
</code></p>
<p>This means that it works well with <a href="http://search.cpan.org/perldoc?App::perlbrew">Perlbrew</a> installations of Perl. </p>
<p>Self-installing (bootstrapping, whatever you want to call it) seems to be a trend with some newer Perl applications which only makes them easier to use.</p>
<p>Once installed you simply type:</p>
<p><code>cpanm -i &lt;module&gt;</code></p>
<p>and through the powers of the cpanmeta database it will find and install your module. In my experience it is generally faster to use than the regular cpan.</p>
<p>I have two issues with the application which are both factors of the module installation process. </p>
<p>1. cpanm downloads files to a working folder that has a unique name based on a time stamp. If a module that you are installing fails to install then the next time that you try to install the module it is downloaded again to a new folder with a different time stamp. This can lead you to duplicating the downloads numerous times if you have installation issues (missing libraries is usually the reason).</p>
<p>2. If an installation fails then it directs you to read the build.log file:</p>
<p><code>! Installing XML::Parser failed. See /home/colin/.cpanm/build.log for details.</code></p>
<p>but that file is a symlink to the build.log file in the latest build folder, so if you build again then a new folder and new build log are created. That is okay except if you want to find the older version. In that case you have to work out what folder is what.</p>
<p>On the whole though these are minor points and cpanm is definitely my go-to installer now.</p>
<p><span style="font-size:7pt;">(Updated 25th Sept to correct spelling mistake and assign to a category)</span></p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a>, <a href='http://perladmin.wordpress.com/category/review/'>review</a> Tagged: <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=85&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/09/19/using-cpanminus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Perl&#8217;s Resurgence</title>
		<link>http://perladmin.wordpress.com/2011/09/18/perls-resurgence/</link>
		<comments>http://perladmin.wordpress.com/2011/09/18/perls-resurgence/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 02:43:43 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=82</guid>
		<description><![CDATA[It has been a long time since I posted on this blog. I haven&#8217;t posted due to being busy with work and life, but it seems that I stopped trying to write about Perl at exactly the wrong time because in the past two years Perl has flourished again. Almost like a play ground that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=82&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has been a long time since I posted on this blog.</p>
<p>I haven&#8217;t posted due to being busy with work and life, but it seems that I stopped trying to write about Perl at exactly the wrong time because in the past two years Perl has flourished again.</p>
<p><span id="more-82"></span></p>
<p>Almost like a play ground that has seen too much use and not enough love, over the years Perl had become slightly dusty and while people were always adding new modules to CPAN it no longer seemed to have the same sparkle as PHP, Python or Ruby.</p>
<p>At the time there was a stirring in the community, a few commentators who suggested that we, Perl developers all, stop hanging out in dingy backwaters of the internet (which IMHO means <a href="http://perlmonks.org">Perlmonks</a> and IRC) and instead of just writing websites, start using them. Although I didn&#8217;t recognise it at the time that was when a little seeding of change was planted.</p>
<p>Over the past two years I&#8217;ve been ever more delighted to see those seeds slowly grow putting more information about Perl in the spot light. From those tiny seeds have come the green shoots of new blogs and frameworks.</p>
<p>There is the announcement of an updated release schedule for Perl 5 with their additional features. There are new frameworks (<a href="http://perldancer.org">Dancer</a>, <a href="http://mojolicio.us">Mojolicious</a>, etc.) and blogs popping up all over the place. <a href="http://perlbuzz.org">Perlbuzz</a> is a perfect example.</p>
<p>There are even new books &#8211; and with the rise of self-publishing sites such as <a href="http://lulu.com">Lulu.com</a> not all are from major publishers. The increasing numbers of  cell phones and tablets and e-book readers like Kindle and Nook provide a larger audience for such books as well as providing great access to Perl information on Youtube, <a href="http://vimeo.org">Vimeo</a> and <a href="http://slideshare.net">slideshare</a>.</p>
<p>Needless to say the revamp of perl.org looks great and for me it is a major step forward in presenting Perl well to new audiences. <a href="http://padre.perlide.org/">Padre</a>, the Perl IDE, seems to be putting out updates all of the time.</p>
<p>And of course we shouldn&#8217;t forget that <a href="http://activestate.com">ActiveState</a> just propelled Perl into the cloud through the launch of their <a href="http://activestate.com/stackato/">Stackto</a> cloud platform for Perl and Python.</p>
<p>All I can say is WOW!</p>
<p>&nbsp;</p>
<p><em>[Note: This replaces an article I published Sept 17th which is the core for this, but which I felt was awkwardly worded]</em></p>
<br />Filed under: <a href='http://perladmin.wordpress.com/category/advocacy/'>advocacy</a>, <a href='http://perladmin.wordpress.com/category/perl/'>Perl</a> Tagged: <a href='http://perladmin.wordpress.com/tag/advocacy/'>advocacy</a>, <a href='http://perladmin.wordpress.com/tag/perl/'>Perl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=82&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2011/09/18/perls-resurgence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>ShadowCat&#8217;s &#8220;Enlightened Perl Iron Man Competition&#8221;</title>
		<link>http://perladmin.wordpress.com/2009/04/22/shadowcats-enlightened-perl-iron-man-competition/</link>
		<comments>http://perladmin.wordpress.com/2009/04/22/shadowcats-enlightened-perl-iron-man-competition/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 13:57:20 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Perl Iron Man competition]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=65</guid>
		<description><![CDATA[Bingo! ShadowCat Systems, an open-source development company from the UK posted an entry on their blog today which hits the nail on the head. Perl needs marketing and it needs it within the realms that the rest of the world moves. We, the collective Perl consciousness, do not really like all this modern internet stuff. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=65&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bingo!</p>
<p><a href="http://www.shadowcat.co.uk/">ShadowCat Systems</a>, an open-source development company from the UK posted an entry on their blog today which hits the nail on the head. Perl needs marketing and it needs it within the realms that the rest of the world moves.</p>
<p>We, the collective Perl consciousness, do not really like all this modern internet stuff. We don&#8217;t appear to like blogging, we don&#8217;t appear to like forums and pretty web 2.0 stuff? That&#8217;s right out. As Matt so correctly described it</p>
<blockquote><p>Perl people hang out on mailing lists. We bottom post, carefully interleaved, with 76 character lines. We have signatures that meet the McQ standard for acceptable size. We hang out on IRC servers and bitch, moan, interact and collaborate with the aid of an 80&#215;25 xterm with irssi, BitchX or IrcII in it[3]. Sometimes we sit at home with a beer and do one or more of the above. Forums? Meh. Those are the things the PHPtards like because they can&#8217;t figure out how to work a mailing list, right? Blogs? That&#8217;s not even a fucking word!</p></blockquote>
<p>I hate to quote so much at once, but this paragraph captures the issue completely. The reason for all of the &#8220;Perl is fading&#8221; nonsense is almost entirely because we don&#8217;t seem to like to talk about Perl in any format which is post-1997.</p>
<p>But it seems that we have finally started to realize that this is a problem and have, to paraphrase, <em>&#8220;become the change that we want to see&#8221;</em> because we&#8217;re actually seeing blogs about Perl which if not exactly web 2.0 are at least not from 1997.</p>
<p>The most popular &#8220;new&#8221; site of course is <a href="http://www.perlbuzz.com/">Perl Buzz</a>, but it isn&#8217;t the only site. There are many small blogs where people post infrequent articles about Perl, but finding them can be tricky. To help address this issue Shadowcat&#8217;s Matt Trought has decided to start handing out awards to people for frequent postings on Perl through his <a href="http://www.shadowcat.co.uk/blog/matt-s-trout/iron-man/">Enlightened Perl Iron Man Competition</a>.</p>
<p>If you haven&#8217;t already read the article then you should do. Really. Matt expresses his frustrations with what can only be described as proper English enthusiasm &#8211; yeah, that does mean with lots of swearing. And frankly he&#8217;s right. Every word of it is true.</p>
<p>Indeed I can remember posting a similar rant on starting to post at perladmin.oreally.co.uk blog. Sadly the server behind it was a freebie server hosted by a friend and it needed to be ditched and, as yet, I&#8217;ve not seen the data since to resurrect the blog else where. My irritations were something similar &#8211; although I also went on to criticize the fact that for years we&#8217;ve been told that Perl 6 will be better and &#8220;is coming&#8221;. For my efforts I got a couple of snarky comments telling me that I shouldn&#8217;t criticize Perl 6 , that I was only adding to the problems by doing so, and one note saying that <em>&#8220;I did go on..&#8221;</em>.</p>
<p>Well that was my rant, and Matt has posted his. But Matt has also gone on to proposed a solution, his &#8220;<a href="http://www.shadowcat.co.uk/blog/matt-s-trout/iron-man/#compo">Perl Iron Man Competition</a>&#8220;. To paraphrase a commonly used term about the current economy, perhaps we are seeing Perl&#8217;s <em>green shoots of recovery</em>?</p>
<p>I hope so. Rock on Matt!</p>
<br />Posted in advocacy, Perl, review Tagged: Perl Iron Man competition <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=65&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2009/04/22/shadowcats-enlightened-perl-iron-man-competition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Fix for SVN::Web and &#8216;subversion/libsvn_ra/deprecated.c&#8217; line 289: assertion failed (*path != &#8216;/&#8217;)</title>
		<link>http://perladmin.wordpress.com/2009/04/19/fix-for-subversionlibsvn_radeprecatedc-line-289-assertion-failed-path/</link>
		<comments>http://perladmin.wordpress.com/2009/04/19/fix-for-subversionlibsvn_radeprecatedc-line-289-assertion-failed-path/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 02:21:18 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Perl SVN::Web svn subversion]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=63</guid>
		<description><![CDATA[Updated: April 22nd 2009: This issue is actually SVN::Web Bug 37388. I didn&#8217;t see that because I that bug was filed using the error messages for SVN v1.5.0 and the function svn_ra_get_log() that is called is in a totally different library in v1.6.0 so searches for the v1.6.0 error do not find that bug report [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=63&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Updated: April 22nd 2009</strong>:<br />
This issue is actually SVN::Web <a href="https://rt.cpan.org/Ticket/Display.html?id=37388">Bug 37388</a>. I didn&#8217;t see that because I that bug was filed using the error messages for SVN v1.5.0 and the function svn_ra_get_log() that is called is in a totally different library in v1.6.0 so searches for the v1.6.0 error do not find that bug report or the patches. Thanks to commenter Alexandr for drawing this to my attention.</p>
<p><span id="more-63"></span></p>
<p>After upgrading to subversion 1.6.0 I wanted to use SVN::Web to provide web access to my Subversion repo.</p>
<p>To use SVN::Web you&#8217;ll need to install the SVN bindings for Perl. These come with subversion, but they&#8217;re not installed by default. You can find the installation information in</p>
<pre>subversion/bindings/swig/INSTALL</pre>
<p>In summary they require SWIG and SVN be installed. Once you&#8217;ve done this from the root of the source directory run</p>
<ul>
<li>make swig-pl</li>
<li> make check-swig-pl</li>
<li> make install-swig-pl</li>
</ul>
<p>Pretty simple stuff and then you can install SVN::Web.</p>
<p>Once SVN::Web is installed you can use the command &#8220;svnweb-install&#8221; to setup the directory for the web site that will serve your SVN repo information. This creates a file called index.cgi and the config.yaml that you need to configure it.</p>
<p>I have a number of repos installed under a single root, so I used the <strong>reposparent</strong> option to set the root to all of them using this value:</p>
<pre>reposparent: '/usr/local/svn/repositories'</pre>
<p>Calling up the site in my browser I&#8217;m presented with a list of the repos. However this is where things go wrong because when you click on a link you see a blank page . If you check the web server error log then you&#8217;ll see the following error message:</p>
<pre>svn: In file 'subversion/libsvn_ra/deprecated.c' line 289: assertion failed (*path != '/')
Premature end of script headers: index.cgi</pre>
<p>So I began to search through the Perl code, the XS and finally the subversion libraries trying to track down what was wrong with this code. Why did it matter that the path started with /? I wasn&#8217;t able to see anything obvious, including doing lots of searches for this error text and variants of it to see what other people had found.</p>
<p>I found nothing until I happened to search for svn_ra_get_log() and in doing so stumbled across this conversion thread from the svn-dev mailing list &#8220;<a href="http://svn.haxx.se/dev/archive-2008-01/0415.shtml">subversion/libsvn_ra/ra_loader.c:934: svn_ra_get_log: Assertion `*path != &#8216;/&#8221; failed.</a>&#8220;</p>
<p>This thread refers to a different svn lib because it appears that the function svn_ra_get_log() is deprecated in 1.6.0, but for legacy purposes (such as our code) it can&#8217;t be removed yet. This chances the library and the line number, but otherwise the error is the same. It turns out that&#8217;s because it is the same problem &#8211; you used to pass the first parameter as &#8216;/&#8217; to svn_ra_get_log() (which is known as get_log() in the Perl bindings) to indicate that you wanted any logs. Now you need to pass an empty string.</p>
<p>The reason why this is a problem is that in SVN::Web::action::recent_interesting_rev() $ra-&gt;get_log() is called with $path = &#8216;/&#8217;. The fix then is really simple &#8211; force $path to be an empty string before get_log() is called. Since I didn&#8217;t know what/where else this would break I patched it as close to the error as possible by adding this to line 244 of SVN::Web::action.pm as shown below;</p>
<pre>243     my @log_result;
244 $path =~ s!^/!!;
245     $ra-&gt;get_log([$path], $rev, 1, 1, 0, 1,
246                  sub { @log_result = @_; });</pre>
<p>Hope this helps anyone else who encounters this error.</p>
<p>Colin.</p>
<br />Posted in Perl Tagged: Perl SVN::Web svn subversion <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=63&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2009/04/19/fix-for-subversionlibsvn_radeprecatedc-line-289-assertion-failed-path/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>The use base.pm and SIGDIE problem, still not fixed in Perl 5.8.8</title>
		<link>http://perladmin.wordpress.com/2008/11/17/the-use-basepm-and-sigdie-problem-still-not-fixed-in-perl-588/</link>
		<comments>http://perladmin.wordpress.com/2008/11/17/the-use-basepm-and-sigdie-problem-still-not-fixed-in-perl-588/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 05:37:11 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Perl base.pm bug]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=61</guid>
		<description><![CDATA[This weekend I&#8217;ve been playing around with a &#8220;from scratch&#8221; idea for an app/framework thingy. I&#8217;ve been assembling the pieces in my head, in notes and in reading around. While I doubt its going to become the next &#8220;IT&#8221; framework, even if it gets released to the public, I&#8217;m hoping it will give me a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=61&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This weekend I&#8217;ve been playing around with a &#8220;from scratch&#8221; idea for an app/framework thingy. I&#8217;ve been assembling the pieces in my head, in notes and in reading around. While I doubt its going to become the next &#8220;IT&#8221; framework, even if it gets released to the public, I&#8217;m hoping it will give me a clearer understanding of how to make a modern web app in Perl.</p>
<p>On of the things I&#8217;ve been trying to do is make the core of the app fairly sensible in terms of setting up lots of stuff by default. So, for example, to default to using UTF8 encoding and Localization as well as basic stuff like signal handlers. I cheerily set up my SIGDIE handler in my <code>initApp()</code> method to handle stuff like checking if headers need sending before dumping the error message back to the browser and moved on.</p>
<p>After getting the basic thing working a little I decided to approach Localization (L10N). I&#8217;ve never tried this before and I have to be honest the suggestions on how to do this in Perl &#8230; err.. lack. I found myself hitting the same few articles time and time again. Heck even Bugzilla&#8217;s roadmap uses the same list of articles quoted else where (TJP13, Locale::Maketext::Lexicon, and the Cpanel.net roadmap for the future of Cpanel), but as with most things Perl trying and poking seems to get you somewhere.</p>
<p>In my case it got me more than I&#8217;d bargained for because in trying to make my app flexible the localization is optional, and more so, tried to make the use of Locale::Maketext::Lexicon optional so you can use other modules if you prefer. This meant that I was a prime candidate for the &#8220;use base&#8221; bug.</p>
<p>If you haven&#8217;t come across this bug then its pretty simple. There&#8217;s a bug in base.pm in which the die signal handler entry in %SIG is local()ized for part of import(). This is great because its localized and the author makes an attempt to restore it afterward to ensure it was reset correctly. Unfortunately it goes horribly wrong. And I&#8217;ve just wasted another couple of hours tracking this crap down only to discover that because this is a relatively new machine I hadn&#8217;t patched base.pm on it unlike my other servers &#8230; *grr*.</p>
<p>If you don&#8217;t know the bug a solution is documented on <a href="http://www.mail-archive.com/perl5-changes@perl.org/msg18629.html">the perl5 mailing list</a>. The code block in question is this:</p>
<pre>
 85             my $sigdie;
 86             {
 87                 local $SIG{__DIE__};
 88                 eval "require $base";
 89                 # Only ignore "Can't locate" errors from our eval require.
 90                 # Other fatal errors (syntax etc) must be reported.
 91                 die if $@ &amp;&amp; $@ !~ /^Can't locate .*? at \(eval /;
 92                 unless (%{"$base\::"}) {
 93                     require Carp;
 94                     Carp::croak(&lt;&lt;ERROR);
 95 Base class package "$base" is empty.
 96     (Perhaps you need to 'use' the module which defines that package first.)
 97 ERROR
 98                 }
 99                 $sigdie = $SIG{__DIE__};
100             }
101             # Make sure a global $SIG{__DIE__} makes it out of the localization.
102             $SIG{__DIE__} = $sigdie if defined $sigdie;
</pre>
<p>The general idea here is that base.pm doesn&#8217;t want a custom SIGDIE handler interfering with what&#8217;s going on and so overrides it and tries to reset it. The bug is that this doesn&#8217;t happen. What happens is that your signal handler is always removed. Why? Well that&#8217;s because line 87 causes SIGDIE to be defined, but to be defined with no value. It seems that this is the default for signal handlers, even though it doesn&#8217;t appear to happen for other variables, including hashes:</p>
<pre>
#!/usr/bin/perl
use strict;
use warnings;
use vars qw(%A);

print "\$A{B} def: ", defined($A{B}) ? 'Yes' : 'No', "\n";
$A{B} = 1;
print "\$A{B} def: ", defined($A{B}) ? 'Yes' : 'No', "\n";
local($A{B});
print "\$A{B} def: ", defined($A{B}) ? 'Yes' : 'No', "\n";

print "\$SIG{__DIE__} def: ", defined($SIG{__DIE__}) ? 'Yes' : 'No', "\n";
$SIG{__DIE__} = 'IGNORE';
print "\$SIG{__DIE__} def: ", defined($SIG{__DIE__}) ? 'Yes' : 'No', "\n";
local($SIG{__DIE__});
print "\$SIG{__DIE__} def: ", defined($SIG{__DIE__}) ? 'Yes' : 'No', "\n";
</pre>
<p>This outputs the following. Can you spot the problem?</p>
<pre>
$A{B} def: No
$A{B} def: Yes
$A{B} def: No
$SIG{__DIE__} def: No
$SIG{__DIE__} def: Yes
$SIG{__DIE__} def: Yes
</pre>
<p>That&#8217;s right. In a normal hash once we localize a hash variable then we end up with it not being defined, irregardless of whether or not the original var was defined. This doesn&#8217;t hold true for <code>%SIG</code>. In the case of <code>%SIG</code> localizing it causes the elements to be defined. ALWAYS.</p>
<p>Normally this isn&#8217;t a problem because you don&#8217;t use these, and besides which the value is defined but zero. But in the way this is handled in base.pm, its a problem because of the strange way that SIGDIE is restored from the var <code>$sigdie</code>, but <code>$sigdie</code> is assigned to after the call to local():</p>
<pre>
 99                 $sigdie = $SIG{__DIE__};
100             }
101             # Make sure a global $SIG{__DIE__} makes it out of the localization.
102             $SIG{__DIE__} = $sigdie if defined $sigdie;
</pre>
<p>Thanks to above quirk with %SIG and local in this situation <code>$sigdie</code> (line 99) is <strong>ALWAYS</strong> defined, but because $sigdie is assigned to after local() is used, $sigdie doesn&#8217;t contain your signal handler, but instead contains &#8220;&#8221;. So we hit line 102 where the block is conditional on $sigdie being defined, which it always is, remember, and thus the code always assigns &#8220;&#8221; to $SIG{__DIE__} after loading the given module. As line 102 is outside of the block in which local() is used at this point <code>%SIG</code> is the actual %SIG (the global copy if you prefer). Therefore this assignation has the effect of wiping out any signal handler you may have installed despite the fact that it is trying to achieve exactly the opposite and restore the original signal handler.</p>
<p>The solution mentioned above is to use <code>|| undef</code> on line 99. This has the effect of assigning undef to $sigdie because the signal handler is &#8220;&#8221;, or false, thus line 102 doesn&#8217;t pass the conditional and install this &#8220;&#8221; as the SIGDIE handler. It works, but I have to ask, why bother? It seems like the better way is to simply remove all of the <code>$sigdie</code> stuff and localize %SIG resetting it to its default, and then let the code exit the block. When it does the localized version of %SIG is removed and there&#8217;s no risk of clobbering an existing handler.</p>
<p>An alternative, if you must use $sigdie, is to assign the current SIGDIE handler as you&#8217;re declaring it, thus:</p>
<pre>
 85             my $sigdie = $SIG{__DIE__};
 86             {
 87                 local $SIG{__DIE__};
</pre>
<p>Then remove line 99 where the value is messed up:</p>
<pre>
 99                 $sigdie = $SIG{__DIE__};
</pre>
<p>Having just checked for updated modules the other day, I have to say, I&#8217;m very surprised that there isn&#8217;t a patched version of this which has been sent out to versions of Perl with broken versions. As I understand it 5.10 doesn&#8217;t suffer this problem, but since the stable version is still considered to be 5.8.8 it seems like it should be updated too. It would save people like me wasting a few hours trying to track down what&#8217;s going on with their code&#8230;.</p>
<p>Colin.</p>
<br />Posted in Perl Tagged: Perl base.pm bug <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=61&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/11/17/the-use-basepm-and-sigdie-problem-still-not-fixed-in-perl-588/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Firebug&#8217;s Hidden Gems</title>
		<link>http://perladmin.wordpress.com/2008/11/15/firebugs-hidden-gems/</link>
		<comments>http://perladmin.wordpress.com/2008/11/15/firebugs-hidden-gems/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 05:26:50 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=58</guid>
		<description><![CDATA[Like many people who develop sites these days I find that Firebug is an indispensable part of my toolkit. It has evolved from &#8220;yet another web developer extension&#8221; into a tool which is an essential part of any developer&#8217;s toolkit &#8211; at least if they&#8217;re using anything but plain HTML. Its facilities for observing, testing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=58&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Like many people who develop sites these days I find that <a href="http://www.getfirebug.com/">Firebug</a> is an indispensable part of my toolkit. It has evolved from &#8220;yet another web developer extension&#8221; into a tool which is an essential part of any developer&#8217;s toolkit &#8211; at least if they&#8217;re using anything but plain HTML. Its facilities for observing, testing and tweaking what&#8217;s going on in your web application are countless and as far as I&#8217;m aware, without compare.</p>
<p>If you haven&#8217;t tried it then you&#8217;re severely handicapping yourself so I would recommend that you install it and start playing. If you already have it, then you&#8217;ll know what I mean &#8211; the moment you end up on a computer without it, you feel like you need it installed. But even having used it for a good while (years?) now, I&#8217;m constantly amazed by the attention to detail the developers and contributors have paid.</p>
<p>For example I was just poking around with a test site trying out some CSS and discovered something new tonight. Like me you&#8217;re probably used to opening up Firebug to tweak the CSS styles to see how things will look without needing to reload the page. I should probably point out that if you&#8217;re not used to Firebug and you think it is just for looking at things, then you&#8217;re missing a good 50% of the picture&#8230; In fact lets try it.</p>
<p>Select an element on screen using the &#8220;Inspect&#8221; button in the HTML panel. You&#8217;ll see the DOM tree open up to that element. Want to try out a change, say a different background color? Select the &#8220;BODY&#8221; element and then right-click. Lots of options huh? Select &#8220;New Attribute&#8221; and you&#8217;ll get to add a new attribute to the element. So here&#8217;s a quick way of testing a new background, border, etc. &#8211; add the attribute &#8220;style&#8221;. Here&#8217;s a perfect example of the attention being paid. Instead of typing it all it, you enter only the name, and then hit &#8220;tab&#8221; and you&#8217;ll move on to entering the attribute&#8217;s value. You don&#8217;t need to worry about the equals symbol or quotes because FB fixes that for you, you just enter the value you want to use.</p>
<p>The alternative to editing this inline is to use the Sub-Panels on the right of the HTML Panel. When you view the DOM tree you&#8217;ll see that the sub-panels on the right update. They show the Style, Layout and DOM for the selected element. Here again is an example of the detail. The Style sub-panel shows by default the CSS rules applicable to this element. It strikes through rules which have been superseded as well as the source file and line number. This is extremely handy for working out why your DIV tag has a bright blue background instead of bright red. But by checking an option in the &#8220;Options&#8221; menu you can see the additional rules set by Firefox (this may be a 1.3 track setting) and view the computed style rules.</p>
<p>Okay so yes, this was available in the DOM inspector, but the packaging is nicer, and it is combined with the particularly useful Layout tab which allows you to see, and modify, the settings for the layout characteristics &#8211; border, padding, margin, height, width and top/left offsets. If you haven&#8217;t discovered it yet (or read the manual, may be its all in there?), then you can click on any of the numbers in the Layout tab and edit them. Did you also discover (read about?) how when you hit tab you move on to the next number in the square? And how you can tab all the way around from offset to margin to border to padding in a loop? Oh and of course how if you shift-tab you tab backwards in reverse order? Yeah, that&#8217;s the kind of attention that I&#8217;m talking about.</p>
<p>Well if you found all of that and think that&#8217;s cool then there&#8217;s the surprise I found tonight back on the &#8220;Style&#8221; tab. I knew that instead of editing the style attribute you could also edit the styles for an element from with in the Style tab &#8211; if you didn&#8217;t then select your element and right click in the style sub-panel and you&#8217;ll see a host of options for editing the style, adding new properties, editing the existing properties etc.</p>
<p>So here&#8217;s the cool bit&#8230; Can&#8217;t remember what the CSS property is called? No problem they&#8217;ve thought of that too. Type whatever you can think it starts with and hit up/down. You&#8217;ll scroll through all of the properties that FB knows about. This includes all of the new CSS3 and -moz extensions that FFx supports. If that wasn&#8217;t handy enough hit tab to go on to editing the value&#8230; and you can do the same thing.</p>
<p>This was the &#8220;easter egg&#8221; I found tonight, having FB be intelligent enough that I was able to scroll through appropriate values for an attribute (handy with some of the obscure/new -moz&#8230; attributes).</p>
<p>For example; If your value is numeric then up will increment and down will decrement, seems reasonable. But if it is a known CSS attribute then you&#8217;ll be stepped through a list of possible options. For example, can&#8217;t remember what border styles are supported? No problem add an attribute &#8220;border-style&#8221; tab into the value field and scroll through them all with up/down. Can&#8217;t remember the (256?) named web colours? Again, if its a recognized colour attribute then you can scroll up/down through a list of known colours.</p>
<p>If that isn&#8217;t good enough try it with a combination attribute such as &#8220;border&#8221;. Try editing a standard CSS value like &#8220;border: 1px solid black&#8221;. If you edit this value and hit up/down then the border width will increment/decrement. Okay so you&#8217;re not impressed because its only doing it because it starts with a number. So double-click on the border-style (in this case &#8220;solid&#8221;) and yeah, you can scroll through a list of known border-styles. When you&#8217;ve found something you like you can repeat this with colour attribute. If the auto-complete of the names, the tab/shift-tab support wasn&#8217;t enough then this while not commonly used, just makes it a much nicer experience.</p>
<p>A huge thank you to Joe Hewitt, John J Barton, and everyone else for this amazing extension.</p>
<p>Colin.</p>
<br />Posted in firebug, firefox, review Tagged: firebug, firefox <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=58&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/11/15/firebugs-hidden-gems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Perl 6 and the &#8220;Vaporware&#8221; Label</title>
		<link>http://perladmin.wordpress.com/2008/10/25/perl-6-and-the-vaporware-label/</link>
		<comments>http://perladmin.wordpress.com/2008/10/25/perl-6-and-the-vaporware-label/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 20:47:44 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[commentary]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=52</guid>
		<description><![CDATA[Perusing Perlbuzz, as I tend to do on a rainy saturday afternoon, I was intrigued by Andy Lester&#8217;s latest post &#8220;Perl 6 isn&#8217;t exactly vaporware&#8221; in which he comments on the vaporware label that is often used around Perl 6. I must say that I found it quite interesting to see Andy calling for an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=52&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Perusing Perlbuzz, as I tend to do on a rainy saturday afternoon, I was intrigued by Andy Lester&#8217;s latest post &#8220;<a href="http://perlbuzz.com/2008/10/perl-6-isnt-exactly-vaporware.html">Perl 6 isn&#8217;t exactly vaporware</a>&#8221; in which he comments on the vaporware label that is often used around Perl 6.</p>
<p>I must say that I found it quite interesting to see Andy calling for an early adopter&#8217;s release of Rakudo because as he notes,</p>
<blockquote cite="http://perlbuzz.com/2008/10/perl-6-isnt-exactly-vaporware.html"><p>but the fact still stands that Perl 6 is vapor enough for most organizations wanting to do anything useful.</p></blockquote>
<p>A while ago I moved this blog to my own site on perladmin.oreally.co.uk. Posting about the move I tried to explain what I was hoping to achieve with the blog &#8211; to do my part in building attention to Perl. As part of this I made the observation that I believe one of the reasons that industry interest has turned away from Perl is because, in part, that we keep being promised that P6 is coming, but there is no usable implementation.</p>
<p>The comments I received about the post concentrated only on this part of the post and it was noted that by &#8220;bashing&#8221; Perl 6 in this way I was only adding to the problem. I suppose that a comment such as this from someone who claims to support Perl could be construed as in-fighting, but this was not the intent of my comment. Rather I was pointing out what I believe to be a very simple flaw in our collective front; that by talking about how great this language will be, but never having anything substantial in circulation, we look bad. Think about the disparaging comments that circulated about Microsoft and its repeated resetting of release dates for various versions of Windows and Office.</p>
<p>I&#8217;m not, of course, knocking Perl 6, its hard working designers or developers, or any such thing. Indeed quite the opposite I&#8217;m trying to say how I think Perl can be improved after all more interest in Perl means more, and sustained, interesting in Perl 6. Having tried to explain my thoughts, I was amused to read Andy&#8217;s post stating exactly the same point that I was trying to get across &#8211; that I think Perl is already the best solution to many problems, and that the descriptions we get of Perl 6 make me curious and want to use it, but that I cannot because it isn&#8217;t yet available in a form which is stable enough for general use.</p>
<p>Of further interest to those in the Perl community who have a similar view to mine are some of the comments posted in response to Andy&#8217;s posting. Indeed the second commenter asks</p>
<blockquote><p>Have you actually looked at the November source code? It&#8217;s full of ugly workarounds and quirky hacks to work around Rakudo bugs</p></blockquote>
<p>This is a rather disconcerting comment is further strengthened as the author makes mention of some of the issues and while supporters can easily wave off most of them the comment author provides one example as:</p>
<blockquote><p>3. List assignment. my ($x, $y) = 1, 2; doesn&#8217;t work right now</p></blockquote>
<p>If something like this doesn&#8217;t work then it seems to be a long way from being usable. Now your definition of <em>usable</em> may be different from mine, but in my definition it means I can write my apps using it. It doesn&#8217;t, of course, mean that I don&#8217;t want/like Perl 6 or its designers or developers. I don&#8217;t have anything against it, I just don&#8217;t think that it is ready and both Andy&#8217;s post and the associated comments appear to emphasize that point.</p>
<p>So while it is being developed IMO that the rest of us can help rebuild the love for Perl by concentrating on what Perl can do right now and just accept that Perl 6 isn&#8217;t going to be in a cinema near you soon. So lets go Team Perl! :)</p>
<p>Colin.</p>
<p>Incidentally, this is being posted here rather than on my own site, perladmin.oreally.co.uk, because its currently being moved to a new server. It was previously hosted on a box thrown together from junk in 1999. As you might imagine it was slow when receiving any real level of traffic but it was finally withdrawn from service due to its power usage. As a sign of the times, RedBus &#8211; the London, England, data center in which the box was hosted &#8211; has recently changed its billing calculations to include power consumption and as such a 9 year old box was not a good thing to have around for free and so it needed to be pulled. As a comparison cabinet space and bandwidth, the usual billing metric for data centers, is all but free. The migration has yet to be completed due to various complicating factors. Until then I&#8217;ll likely be posting through wordpress again.</p>
<br />Posted in advocacy, Perl Tagged: commentary, Perl <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=52&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/10/25/perl-6-and-the-vaporware-label/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Search Trends for Scripting Languages</title>
		<link>http://perladmin.wordpress.com/2008/10/18/google-search-trends-for-scripting-languages/</link>
		<comments>http://perladmin.wordpress.com/2008/10/18/google-search-trends-for-scripting-languages/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 18:03:28 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Google trends]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=48</guid>
		<description><![CDATA[I was poking around on Google earlier and ended up on their search trends page. One of the examples they provided was to compare the searches for the four major script languages, Perl, PHP, Ruby and Python so I decided to see what the data was like for that. There are no major surprises, sadly, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=48&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was poking around on Google earlier and ended up on their search trends page. One of the examples they provided was to compare the searches for the four major script languages, Perl, PHP, Ruby and Python so I decided to see what the data was like for that.</p>
<p>There are no major surprises, sadly, but as you might expect PHP has more searches, but the most noticeable issue after this is that searches for <em>all</em> four languages have decreased since 2004 when the data was first collected.</p>
<p><span id="more-48"></span></p>
<h3>The trends for dynamic languages</h3>
<p><a href="http://perladmin.files.wordpress.com/2008/10/perl_search_trends.png"><img class="alignnone size-thumbnail wp-image-49" title="perl_search_trends" src="http://perladmin.files.wordpress.com/2008/10/perl_search_trends.png?w=98&#038;h=96" alt="" width="98" height="96" /></a></p>
<p>In looking at this data I wondered if there what the reasoning was behind it. Of course it should be noted from the start that the data presented here is not the result of an unbiased scientific poll, but simply a number from Google. For all we know these numbers have these values because of something wacky like Python devs only use Yahoo! So what follows is not a general information, it is simply speculation because I was curious if the general trend was downward for all four of these dynamic languages because less people are using scripting languages, or, as seems more likely, that they already know where to go to find information about them without searching through Google.</p>
<p>Obviously there must be a mix of both as in that time Java has improved and C#/.NET have become more popular. However it was in that same time period that a lot of Perl 6&#8242;s work has become available, that PHP moved to v5, and Ruby hit the headlines with Rails. It seems highly unlikely that all three of these events, which spawned books, and conferences and the like, didn&#8217;t do anything to boost interest in the corresponding language. I added all three of these examples to the list to compare and it seems that the only language to have had any real sustaining power is &#8220;C#&#8221; which has pretty much flat-lined since 2005. (You can test for yourself)</p>
<p>Google does explain that these numbers are &#8220;normalized&#8221; to a value between 0-100 rather than being the search numbers, but they don&#8217;t explain how that occurs. If this is as a portion of all searches then that clearly explains the trends. You could similarly argue that programmers have places to go for their languages which requires less searching on Google and it seems fair to speculate that programmers are also searching less because these languages are all matured and come with better documentation and thus there&#8217;s less trying to find help on how to program in them. This would further agree with Google&#8217;s own description of <a href="http://www.google.com/support/insights/bin/answer.py?answer=87284&amp;topic=13975">how they normalize the data</a> and the general trend of Google being used for more than geek searches.</p>
<h3>Comparing trends for the core script languages</h3>
<p>So whether or not this explains the decreases directly, it seems reasonable to assume that the data is comparable. If so then at first glance we are surely seeing  that PHP is &#8220;the best&#8221;, because people search for it more. Right? Well that&#8217;s one interpretation, but remember we&#8217;re looking at search numbers here and in that case do more searches really mean that the language is better? It could because it could mean more new users looking for information. But it might be that while there is appeal/interest/intrigue those who try the language find that it isn&#8217;t appropriate for them/their work, and so leaving for other languages.</p>
<p>The trend we see here doesn&#8217;t match that pattern exactly as I&#8217;d expect a sharper drop off, but its fair to say that percentagewise PHP has dropped more than any other language. A quick test from the highest value in the first month of the 2004 period to Oct 2008 shows that PHP dropped 50%, Perl 25% while Python and Ruby remain pretty much flat.</p>
<p>Does this suggest that while PHP is often looked at, there is a trend away from both PHP and Perl towards &#8220;newer&#8221; (&#8220;cooler&#8221;?) languages like Python and Ruby? Certainly Ruby has been getting a lot more attention with Rails and these trends show a distinct uptick around march in 2005. <a href="http://en.wikipedia.org/wiki/Ruby_on_Rails">According to Wikipedia</a> this would be the month following the opening of Rails to other developers. Consistent releases and updates appear to have helped maintain an interest in Ruby.</p>
<p>Similarly so with Python where newer versions and its popular tie-in to Django, etc., appear to have allowed it to maintain a small but steady &#8220;market share&#8221; over the same period. Indeed the downward trending of PHP and Perl could be an indication that we are losing developers to Python and Ruby. If this is the case, rather than people just not needing to search for them any more then it would appear that not only is PHP also considered to be &#8220;old&#8221;, as is often said of Perl, but that it is losing developers much more rapidly.</p>
<h3>Influencing the &#8220;trends&#8221;</h3>
<p>As one piece of evidence that this information from Google is easily influenced I noticed that if you zoom into the last month&#8217;s data then there appears to be a sudden upswing for Perl. What&#8217;s this? Is Perl suddenly cool and popular again?</p>
<p>Sadly, it doesn&#8217;t appear so because if you concentrate only on Perl and look at the most popular searches you start seeing queries for variations of the term &#8220;X-Perl&#8221;. X-Perl? You might ask. What is this? Is it some new Perl-GUI binding? Perl on MacOS X? Is it a new uberfast matrix inspired Perl platform with flashing lights and bells and whistles&#8230; ?</p>
<p>No, its none of these things. The &#8220;superman&#8221; in this case is a new UI for World of Warcraft called X-Perl. And it appears that because people can&#8217;t be bothered to type hyphens they&#8217;re searching for the term &#8220;x perl&#8221; and Google is notching up a point for &#8220;Perl&#8221;&#8230; Oops :-)</p>
<p>This is meant as a suggestion as to what this data could mean. It is by no means scientific and I know that.</p>
<p>Colin.</p>
<br />Posted in advocacy, Perl Tagged: Google trends, Perl <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=48&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/10/18/google-search-trends-for-scripting-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>

		<media:content url="http://perladmin.files.wordpress.com/2008/10/perl_search_trends.png?w=98" medium="image">
			<media:title type="html">perl_search_trends</media:title>
		</media:content>
	</item>
		<item>
		<title>Will the tightening economy make Perl more attractive?</title>
		<link>http://perladmin.wordpress.com/2008/09/25/will-the-tightening-economy-make-perl-more-attractive/</link>
		<comments>http://perladmin.wordpress.com/2008/09/25/will-the-tightening-economy-make-perl-more-attractive/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 00:47:22 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[advocacy]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[sysadmin jobs]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=45</guid>
		<description><![CDATA[Based purely on speculation and my own view of the universe, rather than on any material evidence, I was wondering if the tightening of economies around the world may not end up being beneficial for Perl. Don&#8217;t get me wrong. I&#8217;m not suggesting something insane like Perl makes you keep your job. But rather I&#8217;m [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=45&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Based purely on speculation and my own view of the universe, rather than on any material evidence, I was wondering if the tightening of economies around the world may not end up being beneficial for Perl.</p>
<p>Don&#8217;t get me wrong. I&#8217;m not suggesting something insane like Perl makes you keep your job. But rather I&#8217;m speculating that it might help simply because Perl isn&#8217;t used soley for the web. So take, for example, the situation where a company has a dedicated web developer and a site written in something other than Perl. If they also have a dedicated Sysadmin then you can bet that much of the stuff in the back end is written in either Perl or Python. Since Perl has been around longer, its more likely to be that.</p>
<p>To be fair, your web developer might be mightily skilled at design and PHP. They may be totally XHTML 1.0/strict and CSS2.1 + firefox/safari proprietary extensions compliant. They may have &#8220;mad Javascript skillz&#8221;, and they may even be pretty fun to hang out with &#8211; say Dex of 17, Chr of 16 and Int of 16. Your sysadmin character is likewise highly skilled at (whatever the hell it is that non-sysadmins think we do and get paid for, because yeah, we can do that :-). Okay, so your techie might have the social skills of a somewhat evolved baboon, easily distracted by shiny objects (or &#8220;hi tech gadgets&#8221; as we call them now), and the sole demand for raman noodles, but they too are pretty good at their job. Lets call it Chr 12, Dex 15, but an Int of 17 and Wis 17.</p>
<p>In a tightening economy, which would you fire, your Sysadmin or your Web designer?</p>
<p>You see people may believe that &#8220;Perl <em>whatever&#8217;s</em>&#8220;, but it doesn&#8217;t. Its actually pretty useful at doing things. At getting the data from your database to your Apache config, to your BIND zone files, to your password files and your websites. Its also pretty handy at quietly monitor the entire network 24/7, and record all of your important information, and parsing your log files.</p>
<p>PHP &#8230; not really quite the so handy in that arena. And I do remember a very intelligent developer (of C) friend of mine some 10 years ago back in PHP v3 days trying to admin her box with PHP scripts. More of the kind of thing that developers do when they&#8217;re bored than having any practical purpose.</p>
<p>And lets face it. You can let the servers run themselves, or you can let the web site run itself. Which is more likely to break. The fast moving always on, always doing things servers or the website?</p>
<p>I&#8217;m not saying that knowing Perl will save your job. I&#8217;m certainly not wishing any PHP/Ruby/Python devs lose their jobs. Please guys not spams, we like you, really. I&#8217;m just speculating that because Perl isn&#8217;t used solely for developing webapps, being a Perl dev might not be a bad thing right now.</p>
<br />Posted in Perl Tagged: advocacy, economy, Perl, sysadmin jobs <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=45&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/09/25/will-the-tightening-economy-make-perl-more-attractive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>I moved my Blog to perladmin.oreally.co.uk</title>
		<link>http://perladmin.wordpress.com/2008/09/16/i-moved-my-blog-to-perladminoreallycouk/</link>
		<comments>http://perladmin.wordpress.com/2008/09/16/i-moved-my-blog-to-perladminoreallycouk/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 04:05:57 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[moving]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=43</guid>
		<description><![CDATA[I moved my blog to WordPress hosted on my own box. It can now be accessed via the URL http://perladmin.oreally.co.uk/ As for why? Well I&#8217;ve played with wordpress on and off for a while, but I never really liked the previous versions that much and had given up several revisions ago. I decided to try [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=43&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I moved my blog to WordPress hosted on my own box. It can now be accessed via the URL <a href="http://perladmin.oreally.co.uk/">http://perladmin.oreally.co.uk/</a></p>
<p>As for why? Well I&#8217;ve played with wordpress on and off for a while, but I never really liked the previous versions that much and had given up several revisions ago. I decided to try looking at it again this time around and really prefered the interface. I&#8217;m still not at all convinced about much of the rest of it, particularly it being written in PHP since I have issues with that on several levels, but it is what it is. I decided to try it on line via this site with wordpress.com.</p>
<p>Interestingly enough Google must love this place because for certain searches the site is coming up in first place. Which is surprising, if not troubling since its a new site and if I can do it, any spammer can. I&#8217;ve even had people start stealing the content already, and there&#8217;s barely anything here&#8230;</p>
<p>But what I didn&#8217;t like is that I couldn&#8217;t customize it the way I wanted to. My PHP is limited but I know enough to hack on the code a little and wanted to try doing that on WP 2.6.2 as I have on earlier versions. I also wanted to try a different theme than the half dozen offered, and even something as simple as changing the CSS couldn&#8217;t be done without a paid update. This seemed a little much to ask for something so relatively simple, so I decided to move it off to my own box.</p>
<p>I&#8217;m not sure how well it will work since my box is about 10 years old, but hopefully it will be upgraded soon, and I have other options if needed :-)</p>
<p>So come on over to the new site, see if you like it:</p>
<blockquote><p><a href="http://perladmin.oreally.co.uk/">http://perladmin.oreally.co.uk/</a></p></blockquote>
<p>Colin.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/perladmin.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/perladmin.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=43&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/09/16/i-moved-my-blog-to-perladminoreallycouk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Why does IPTables not log when it is started/stopped?</title>
		<link>http://perladmin.wordpress.com/2008/09/09/why-does-iptables-not-log-when-it-is-startedstopped/</link>
		<comments>http://perladmin.wordpress.com/2008/09/09/why-does-iptables-not-log-when-it-is-startedstopped/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 17:58:08 +0000</pubDate>
		<dc:creator>perladmin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://perladmin.wordpress.com/?p=33</guid>
		<description><![CDATA[I have to say that it is very strange that iptables doesn&#8217;t log when it is started, stopped, restarted or even when a rule is added. Given how big of a part in the security scene iptables plays, you&#8217;d think that by default it would send a notice to syslog, probably at daemon.notice level, when [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=33&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have to say that it is very strange that iptables doesn&#8217;t log when it is started, stopped, restarted or even when a rule is added. Given how big of a part in the security scene iptables plays, you&#8217;d think that by default it would send a notice to syslog, probably at <code>daemon.notice</code> level, when it is stopped and started. After all this is one fairly important tool. Not the only (hopefully) but usually a pretty important one and in many cases it really is the only thing between a server and the bad guys (yes, <em>I know</em>, that it shouldn&#8217;t be the only thing..).</p>
<p>I mention this because I just came back from lunch to find my SSH connection wouldn&#8217;t respond to input. This has happened occasionally, but as far as I&#8217;ve been able to tell (by piecing together information afterwards), it has invariably been because iptables was restarted.</p>
<p>Now me, I just add the new rule to the firewall and if it works and I want to keep it, add it to the config file separately. I don&#8217;t believe in restarting iptables because if you f*ck up the new rule and restart the firewall you&#8217;re not only screwed then, but if you reboot the server too. For a remote connection that&#8217;s bad news. At least if you screw up the rule you know that you did the moment that you add it to the firewall, so if it comes to remotely rebooting the box you know it will come back up without a problem. And yes, I did do that once. It was a case of</p>
<blockquote><p>&#8220;I&#8217;ll just update the firewall rules before I leave this morni&#8230; oh er.. oh, what did I type? Sh*t!&#8221;.</p></blockquote>
<p>But my colleague believes that you should add it to the config file and restart because that way you&#8217;re only entering it once. Which is nice, and does indeed have its merits because there&#8217;s less chance of a typo, getting the order wrong, etc., but it also means you need to stop and restart iptables. Aside from the risk of locking yourself out of the server to me that&#8217;s a royal pain. You lose any temporary rules, and you worst of all you lose the connection tracking. Which means my nice and quiet SSH session which was working before lunch and has my open Vim session in it &#8230; is now not working because its state is not new or established or related, and thus not a valid connection state as far as iptables is concerned and thus the packets are blocked, and the connection gets dropped. *grr*</p>
<p>More irritatingly though is that I can&#8217;t *know* that that&#8217;s what happened because iptables doesn&#8217;t log when it stopped or started. Which is pretty crazy really if you think about the fact that every daemon under the sun logs that kind of information. It never occurred to me before, but its true, at least on my box.</p>
<p>Incidentally, if you&#8217;re looking to fiddle with the firewall remotely, a few good tricks are;</p>
<ol>
<li>Add a rule to allow your SSH connection through as a first rule. E.g.<code>iptables -I INPUT 1 -p tcp --dport 22 -s &lt;your ip&gt; -j ACCEPT</code></li>
<li>Use a <code>sleep</code>; <em>undo</em> system. This works for both the command line and restarting iptables. For example;
<ol>
<li>Add a rule on the command line, knowing the rule number you&#8217;ll give it, and then set it to undo a moment later;<code>iptables -I INPUT 23 &lt;what you want to happen&gt;; \</code><br />
<code>sleep 10; \</code><br />
<code>iptables -D INPUT 23</code></li>
<li>Restart iptables, then stop it again if it doesn&#8217;t work;<code>/etc/init.d/iptables restart; sleep 10; /etc/init.d/iptables stop</code></li>
</ol>
</li>
</ol>
<p>The second tip uses the a chain of commands  which do whatever might go wrong, sleep and then undo it. The reason for this is that it will execute a command and then move on to the next command in the list, so if you submit the commands like this, where you <strong>must</strong> include the semi-colons between the commands, (don&#8217;t forget the \&#8217;s in the first case, or just ignore them and don&#8217;t hit return) , then the shell will execute them one after another like this &#8230; do &#8220;fiddle with firewall command&#8221;, sleep, and do &#8220;undo fiddle command&#8221;. In the even that you don&#8217;t do anything, the firewall will be restarted and then ten seconds later, stopped. This is good because in the event that you f*ck up the firewall rules and can&#8217;t type, 10s later you&#8217;ll be able to type again because the firewall has been taken down again.</p>
<p>But the best part of this trick is that in the event that you can type you do &#8230; you wait a second or so, and then type <code>Ctrl-C</code> to interupt the currently running command. This will be the sleep command, so you&#8217;ll interrupt that and interrupt the list of commands to execute so your last command, the &#8220;undo&#8221; command, is never run. So if you can&#8217;t get into the box it unsets its firewall. If you can get in then you kill the sleep command before it finishes thus the &#8220;undo&#8221; is never executed.</p>
<p>As a tip, if you&#8217;re not sure when to hit <code>Ctrl-C</code>, add a command echo &#8220;Sleeping&#8221; into the list just before the sleep command. If you don&#8217;t see that then the firewall was messed up. If you do see it then your changes worked, and you can kill the rest of the commands with <code>Ctrl-C</code>.</p>
<p>Colin.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/perladmin.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/perladmin.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/perladmin.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/perladmin.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/perladmin.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=perladmin.wordpress.com&amp;blog=4713148&amp;post=33&amp;subd=perladmin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://perladmin.wordpress.com/2008/09/09/why-does-iptables-not-log-when-it-is-startedstopped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/61aae2dfc05a21ffc131c785d6dd26f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">perladmin</media:title>
		</media:content>
	</item>
	</channel>
</rss>
