<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>acme</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/acme/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/acme//20</id>
    <updated>2012-08-22T13:37:55Z</updated>
    <subtitle>Orange Perl Euro-hacking</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>YAPC::Europe Day 3</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/08/yapceurope-day-3.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3722</id>

    <published>2012-08-22T13:37:25Z</published>
    <updated>2012-08-22T13:37:55Z</updated>

    <summary>The third and last day of YAPC::Europe and everyone is a little tired after all the socialising and thinking. This morning there was a little presentation about YAPC::Europe next year in Kiev, Ukraine. Should be cooler! Stevan Little presented A...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>The third and last day of YAPC::Europe and everyone is a little tired after all the socialising and thinking.</p>

<p>This morning there was a little presentation about YAPC::Europe next year in Kiev, Ukraine. Should be cooler!</p>

<p>Stevan Little presented <a href="http://act.yapc.eu/ye2012/talk/4069">A MOP for Perl 5</a> which sounds like he's chosen a very simple syntax for nice concise OO code (and a backend).  </p>

<p>Kenichi Ishigaki presented <a href="http://act.yapc.eu/ye2012/talk/4134">CPANTS: Kwalitative website and its tools</a> where he explained the story behind taking over CPANTS and improvements he has made.</p>

<p>Shawn Moore presented <a href="http://act.yapc.eu/ye2012/talk/4150"> Moose Role Usage Patterns</a> to a very packed room where he explained some useful patterns behind roles.</p>

<p>Philippe Bruhat presented <a href="http://act.yapc.eu/ye2012/talk/4192">Organizations of the Perl community</a> where he listed the many and varied Perl organisations, how they came to be and what they are doing now.</p>

<p>Mark Keating presented <a href="http://act.yapc.eu/ye2012/talk/4119">Adventures in Marketing: Part Two</a> where he explained marketing Perl over the last year and plans for this year, such as learning Perl, a Perl desktop environment and more. </p>

<p>Karen Pauley presented <a href="http://act.yapc.eu/ye2012/talk/4132">The Perl Foundation Review 2011 - 2012</a> where she explained the many and varied things that the Perl Foundation has achieved in the last year, such as the great success of the Perl 5 Core Maintenance fund.</p>

<p>Then Matt Trout presented the final keynote <a href="http://act.yapc.eu/ye2012/talk/4085">State of the Velociraptor</a> where he detailed the last year of Perl.</p>

<p>And then the lightning talks. And then it was all over...</p>

<p>Another excellent YAPC: many thanks to all the organisers!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::Europe Day 2</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/08/yapceurope-day-2.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3717</id>

    <published>2012-08-21T14:24:12Z</published>
    <updated>2012-08-21T14:36:21Z</updated>

    <summary>Yesterday&apos;s attendees dinner in Sachsenhausen was excellent and we did indeed have Apfelwein. The day started off with Curtis Poe explaining to us the agile manifesto. I think he was trying to get us to all launch startups or at...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>Yesterday's attendees dinner in Sachsenhausen was excellent and we did indeed have Apfelwein.</p>

<p>The day started off with Curtis Poe explaining to us the agile manifesto. I think he was trying to get us to all launch startups or at least reengineer our current employments.  </p>

<p>Then Clinton Gormley presented <a href="ihttp://act.yapc.eu/ye2012/talk/4164">To infinity and beyond: Storing your Moose herd in ElasticSearch"</a> where he talked a little about ElasticSearch, a little about scaling and a little more about object mapping.</p>

<p>Sawyer X presented <a href="http://act.yapc.eu/ye2012/talk/4187">Asynchronous programming FTW!</a> where we went through IO::Async, POE, and AnyEvent and how to think in callbacks.</p>

<p>Bernd Ulmann presented <a href="http://act.yapc.eu/ye2012/talk/4009">Array programming for mere mortals</a> where he scared us with APL.</p>

<p>Alberto Simões presented <a href="http://act.yapc.eu/ye2012/talk/4002">Building C/C++ libraries and applications with Module::Build‎</a> and went through all the options.</p>

<p>Then it was time for my talk: <a href="http://act.yapc.eu/ye2012/talk/4198">The Fallacies of Distributed Computing</a> which was a general talk about how network are useful but there are some things you need to keep in mind.</p>

<p>I'm currently in Matt S Trout's <a href="http://act.yapc.eu/ye2012/talk/4086">Distributed Daemon Discovery</a> which is a nice little story.</p>

<p>After that we have another hour of lightning talks and then off to Beers for Engineers... </p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::Europe Day 1</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/08/yapceurope-day-1.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3713</id>

    <published>2012-08-20T14:21:21Z</published>
    <updated>2012-08-20T14:23:59Z</updated>

    <summary>It&apos;s the first day of YAPC::Europe in Frankfurt and it&apos;s the hottest day of the year so far. It&apos;s pretty warm in the conference venue. Max gave us a good introduction to the conference and handed over to the announcement...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>It's the first day of YAPC::Europe in Frankfurt and it's the hottest day of the year so far. It's pretty warm in the conference venue. Max gave us a good introduction to the conference and handed over to the  announcement of YAPC::Europe next year: Kiev, Ukraine. Then the star of the show: Larry Wall took a small Perl 5 script and slowly converted it to Perl 6 live, showing some useful debugging features and nice compact clear code.</p>

<p>David Leadbeater presented <a href="http://act.yapc.eu/ye2012/talk/4114">An exploration of trie regexp matching</a> where he explained the inner workings of Perl's regular expression engine and RE2.</p>

<p>Damien Krotkine presented <a href="http://act.yapc.eu/ye2012/talk/4146">Dancing with<br />
WebSockets</a> digging into the live web.</p>

<p>I really enjoyed Lenz Gschwendtner's talk on <a href="http://act.yapc.eu/ye2012/talk/4059">Continuous deployment with Perl</a> on how to build robust deployment and deploy all the time.</p>

<p>Then I went to sleep outside in the shade as it was all getting a little too hot for me. The organisers kindly provided some icecream!</p>

<p>I came back to see Eric Johnson present <a  href="http://act.yapc.eu/ye2012/talk/4188">Selenium testing with Perl</a> which mirrors work I've been doing recently with Cucumber / Capybara / PhantomJS.</p>

<p>After that it's time for the lightning talks, hosted by me. Lots of little talks with lots of speakers: what could go wrong?</p>

<p>Tonight we have the attendees dinner on the other side of Frankfurt. Time for a little Apfelwein...<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::Europe day -1</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/08/yapceurope-day--1.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3709</id>

    <published>2012-08-19T08:53:42Z</published>
    <updated>2012-08-19T09:09:30Z</updated>

    <summary>YAPC::Europe 2012 in Frankfurt am Main, Germany starts on Monday. This is the biggest gathering of Perl people in Europe and I&apos;ll keep you updated day by day. I&apos;m presenting The Fallacies of Distributed Computing‎ on Tuesday afternoon. The star...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p><a href="http://act.yapc.eu/ye2012/">YAPC::Europe 2012</a> in Frankfurt am Main, Germany starts on Monday. This is the biggest gathering of Perl people in Europe and I'll keep you updated day by day.</p>

<p>I'm presenting <a href="http://act.yapc.eu/ye2012/talk/4198">The Fallacies of Distributed Computing‎</a> on Tuesday afternoon.</p>

<p>The star of the conference for me is the lightning talk sessions: lots of speakers giving 5-minute talks. R Geoffrey Avery normally hosts them but unfortunately he can't make it this year, so I'll be your host for the lightning talks this year. There are lightning talks at the end of each day. I can squeeze in a few more lightning talks: if you'd like to give one, come see me and send me an email: acme@astray.com.</p>

<p>Our journey to Frankfurt started off with a slight delay: a scratch found on the aircraft's door frame meant technicians measuring it and lots of paperwork, but we eventually made it to Germany. It's hot here. Today is the hottest day of the year - up to 35°C - and the next few days will be pretty hot too. I'll be wearing my shorts hoping the air conditioning in the venue isn't too strong.</p>

<p>I've landed in Frankfurt many times. My wife lives nearby in Falkenstein so she and my daughter have also come - but I don't think they'll be geeking out much. I haven't spent much time in Frankfurt itself so I'm looking forward to walking around town and visiting the <a href="http://www.senckenberg.de/root/index.php?page_id=5247">Senkenberg Museum</a> right next to the venue.</p>

<p>Today: a bit of slide preparation and BBQ and then I head into town to check into my hotel and then off to the <a href="http://act.yapc.eu/ye2012/wiki?node=PreConferenceMeeting">pre-conference meeting</a>. I'll be wearing a "#!/usr/bin/perl" tshirt. See you there!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>The Fallacies of Distributed Computing</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/07/the-fallacies-of-distributed-computing.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3544</id>

    <published>2012-07-13T08:32:40Z</published>
    <updated>2012-07-13T08:33:51Z</updated>

    <summary>I&apos;ve just proposed the following talk at YAPC::Europe: Networks are great in theory, but have some well-known limitations that you should bear in mind when using them. Come find out what they are so that you don&apos;t make the same...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    <category term="yapceurope" label="yapc europe" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>I've just proposed the following talk at YAPC::Europe:</p>

<blockquote>Networks are great in theory, but have some well-known limitations that you should bear in mind when using them. Come find out what they are so that you don't make the same mistakes.</blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>WWW::UsePerl::Server </title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/05/wwwuseperlserver.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3229</id>

    <published>2012-05-10T18:45:56Z</published>
    <updated>2012-05-10T18:55:18Z</updated>

    <summary>use.perl.org was a Perl-specific blogging website created by Chris Nandor and hosted at Geeknet. It was up from early 2001 until late 2010. A little over a month ago I started a project along the lines of Archive Team to...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>use.perl.org was a Perl-specific blogging website created by Chris Nandor and hosted at Geeknet. It was up from early 2001 until late 2010. A little over a month ago I started a project along the lines of <a href="http://www.archiveteam.org/">Archive Team</a> to save historical Perl websites and keep the content going.</p>

<p>I've just released <a href="https://metacpan.org/release/WWW-UsePerl-Server">WWW::UsePerl::Server</a> to the CPAN. Using this module you can host your own use.perl.org mirror:</p>

<p><a href="http://blogs.perl.org/users/acme/useperl.png"><img alt="useperl.png" src="http://blogs.perl.org/users/acme/assets_c/2012/05/useperl-thumb-640x299-790.png" width="640" height="299" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>It comes with a MySQL database dump containing all the stories, journals and comments on use.perl.org. That way you can gain control of your content and import old journal entries into your current blog.</p>

<p>The <a href="https://github.com/acme/useperl">useperl repository</a> is up on GitHub.</p>

<p>Enjoy! Leon.</p>]]>
        
    </content>
</entry>

<entry>
    <title>London Perl Mongers Technical Meeting 2012-05-31</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/05/london-perl-mongers-technical-meeting-2012-05-31.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.3220</id>

    <published>2012-05-09T19:08:16Z</published>
    <updated>2012-05-09T19:10:26Z</updated>

    <summary>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software. The...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software.</p>

<p>The next technical meeting will be on the 31st May 2012 from 7pm to 9pm (you may arrive earlier, please sign in at the reception). You have to sign up to attend, see below.</p>

<p>This meeting is sponsored by Webfusion and will be held at the Conway Hall. Many thanks to Barbie, Webfusion and everyone involved for allowing us to use this wonderful venue.</p>

<p>The following speakers will present:</p>

<p>James Laver: Lovecraftian Perl<br />
Paul LeoNerd Evans: Terminal Interface Construction KIT<br />
Barbie: Labyrinth is/isn't a Web Framework<br />
David Leadbeater: RE2: Faster regexp matching</p>

<p>For more information and to sign up, please visit <a href="http://londonpmtech.appspot.com/">http://londonpmtech.appspot.com/</a></p>

<p>See you there, Léon.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>London Perl Mongers Technical Meeting 2012-04-11</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/02/london-perl-mongers-technical-meeting-2012-04-11.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.2863</id>

    <published>2012-02-23T14:23:35Z</published>
    <updated>2012-02-23T14:27:02Z</updated>

    <summary>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software. The...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software.</p>

<p>The next technical meeting will be on the 11th April 2012 from 7pm to 9pm (you may arrive earlier, please sign in at the reception). You have to sign up to attend, see below.</p>

<p>This meeting is sponsored by Venda who are inviting the world-renowned Damian Conway to amuse us for one evening and will appropriately be held at the Conway Hall. Many thanks to Anthony Webster, Venda and everyone involved for allowing us to use this wonderful venue.</p>

<p>Venda is a SaaS eCommerce provider with offices in London as well as the US and Asia. The platform is built predominantly in Perl, and powers over 100 sites for clients including Tesco and the BBC.</p>

<p>Damian will be presenting:</p>

<p><em>Temporally Quaquaversal Virtual Nanomachine Programming In Multiple<br />
Topologically Connected Quantum-Relativistic Parallel Spacetimes... Made<br />
Easy!</em></p>

<blockquote>Watch in terror as Damian writes a Perl program to extract square roots using nothing but quantum mechanics, general relativity, and the very fabric of the space-time continuum.

<p>Along the way we'll also investigate: Wittgenstein's dark secret; the diminishing returns of physical computation; Roman philosophy; when Super Science Adventures go wrong; the greatest Lego kit of all time; the secret identity of Sith; carbon logic vs silicon logic; the giants of 1930's physics; elementary spin-half quanta under relativistic motion; CAT scans; Will Smith; bongos; drunken bets    involving penguins; algorithmic consistency; God's dice and the     problem of free will; intrinsic self-inconsistency; the many worlds outside Copenhagen; and the inventor of stage diving.</p>

<p>What happens when Dirac meets Deutsch meets Damian? Mere anarchy is    loosed upon the world!</blockquote></p>

<p>For more information and to sign up, please visit:</p>

<p>    <a href="https://londonpmtech.appspot.com/">https://londonpmtech.appspot.com/</a></p>

<p>See you there, Léon.</p>]]>
        
    </content>
</entry>

<entry>
    <title>London.pm technical meeting 26th January 2012</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2012/01/londonpm-technical-meeting-26th-january-2012.html" />
    <id>tag:blogs.perl.org,2012:/users/acme//20.2681</id>

    <published>2012-01-15T11:12:41Z</published>
    <updated>2012-01-15T11:14:27Z</updated>

    <summary>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software. The...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software.</p>

<p>The next technical meeting will be on the 26th January 2012 from 7pm to 9pm (you may arrive earlier, please sign in at the reception). You have to sign up to attend, see below.</p>

<p>It will be hosted by NET-A-PORTER.COM and held at their offices in Westfield London Shopping Centre. Many thanks to Kristian Flint, NET-A-PORTER.COM and everyone involved for allowing us to use this wonderful venue.</p>

<p>Talks<br />
Gianni Ceccarelli - "Dispatch tables" inside regexes and nasty tricks in the name of speed<br />
Paul Makepeace - Ruby cuteness applied to testing & webserving<br />
Zefram - Customising ops for semantic fun and performance profit<br />
Tomas Doran - Using ZeroMQ and Elasticsearch for log aggregation</p>

<p><a href="https://londonpmtech.appspot.com/">https://londonpmtech.appspot.com/</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>New &quot;dot&quot; feature</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/11/new-dot-feature.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2409</id>

    <published>2011-11-07T20:59:54Z</published>
    <updated>2011-11-07T21:05:55Z</updated>

    <summary>I wrote the following email to the Perl 5 Porters mailing list a few days ago. I thought you might enjoy it. Hello Porters, I had a dream that Perl 5 had moved from using -&gt; to using . like...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>I wrote the <a href="http://www.nntp.perl.org/group/perl.perl5.porters/2011/11/msg178772.html">following email</a> to the Perl 5 Porters mailing list a few days ago. I thought you might enjoy it.</p>
<p>
Hello Porters,
</p>
<p>
I had a dream that Perl 5 had moved from using -> to using . like most modern languages. And moved the existing . for concatenation to ~ like Perl 6. Then I wrote the code and was shocked how tiny it was.
</p>
<p>
I have this in the leonbrocard/dot branch, but is is really one commit:
</p>
<blockquote>
<p>
  <a href="http://perl5.git.perl.org/perl.git/commit/0c1fbeee">http://perl5.git.perl.org/perl.git/commit/0c1fbeee</a>
</p>
</blockquote>
<p>
It's a very small tokenizer patch which interacts with a new "dot" feature. Then you can do things like:
</p>
<pre>
  use feature qw(say dot);
  use CGI;
  my $q = CGI.new;
  say ref($q);
  say $q.blockquote(
    "Many years ago on the island of",
    $q.a({href=>"http://crete.org/"},"Crete"),
    "there lived a Minotaur named",
    $q.strong("Fred.") ,
  ),
  $q.hr;

  my $arrayref = [1,2,3,4,5];
  say $arrayref.[-1];
  my $hashref = {a => 1, b => 2};
  say $hashref.{b};

  say "Hello" ~ "world";
</pre>
<p>
I think this is quite a cute example of how features can do neat little tricks. There may be complicated interactions which break things in ways I haven't thought about, but it seems like a tiny patch that doesn't seem to slow parsing down. I'm not entirely sure that I'm proposing this seriously, but...
</p>
<p>
What do you think?
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Extracting your archives</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/10/extracting-your-archives.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2343</id>

    <published>2011-10-24T08:28:50Z</published>
    <updated>2011-10-24T09:11:48Z</updated>

    <summary>I&apos;m on a bit of a roll about unpacking archives. Last week I wrote about peeking into archives and recently I was wondering about extracting archives. The classic tool for extracting archives is Archive::Extract. This module was originally written for...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    <category term="extracting" label="extracting" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>I'm on a bit of a roll about unpacking archives. Last week I wrote about <a href="http://blogs.perl.org/users/acme/2011/10/peeking-into-archives.html">peeking into archives</a> and recently I was wondering about extracting archives. </p>

<p>The classic tool for extracting archives is <a href="http://search.cpan.org/dist/Archive-Extract/">Archive::Extract</a>. This module was originally written for CPANPLUS and has been in the Perl core since 5.10.0. It tries a variety of methods for extracting archives, from pure-Perl modules such as Archive::Zip and Archive::Tar (portable but slow) to external tar and unzip commands (unportable but slightly faster).</p>

<p>Having played around with <a href="https://code.google.com/p/libarchive/">libarchive</a>, a "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats", I wondered if it would be interesting to use it instead.</p>

<p>Behold my newly-written module <a href="http://search.cpan.org/dist/Archive-Extract-Libarchive/">Archive::Extract::Libarchive</a>. This uses libarchive to extract archives, extracts most archive formats and is quite fast. It requires libarchive to be installed.</p>

<p>How fast? Well, it depends on what you are extracting. If you happen to be extracting all the current CPAN distributions (for a total of 7.1G), then Archive::Extract (with PREFER_BIN) takes about 20 minutes while Archive::Extract::Libarchive takes about two minutes.</p>

<p>Yet another tool for your archive extracting toolbox...</p>]]>
        
    </content>
</entry>

<entry>
    <title>Peeking into archives</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/10/peeking-into-archives.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2276</id>

    <published>2011-10-11T09:56:02Z</published>
    <updated>2011-10-11T09:59:33Z</updated>

    <summary>Peeking into archives At little insight goes a long way. I often say that I get my best ideas when I&apos;m in the shower. I relax and my sometimes my brain makes some pretty neat connections. One example of this...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    <category term="perlarchivepeek" label="perl archive::peek" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>Peeking into archives</p>

<p>At little insight goes a long way. I often say that I get my best ideas when I'm in the shower. I relax and my sometimes my brain makes some pretty neat connections.</p>

<p>One example of this is <a href="http://search.cpan.org/dist/CPAN-Mini-Webserver/">CPAN::Mini::Webserver</a>, which allows you to search and browse a MiniCPAN. One insight was that the <a href="http://www.cpan.org/modules/02packages.details.txt">02packages</a> file in CPAN mirrors was full of enough information to be useful to search. The other was that browsing through distributions didn't actually require the distributions to be unpacked - they could be unpacked on the fly. That lead to <a href="http://search.cpan.org/dist/Archive-Peek/">Archive::Peek</a>.</p>

<p>A few weeks ago I was noticed and was quite impressed with <a href="http://grep.cpan.me/">CPAN grep</a>, a neat website by David Leadbeater which allows you to use a regular expression to search the whole of CPAN. Check out the <a href="http://grep.cpan.me/about.html">example searches</a>. It's based on some pretty neat code including <a href="http://code.google.com/p/re2/">RE2</a>, "a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python" but which has memory limits so is useful for applying user-generated regular expressions.</p>

<p>However, the CPAN grep code not particularly lightweight. It requires a beefy multicore machine with lots of memory to unpack, index and search CPAN.</p>

<p>I wondered about using Archive::Peek (which uses Archive::Tar and Archive::Zip behind the scenes) to index a local CPAN mirror without unpacking it. I wrote some code and it took 40 minutes to index all distributions with authors with a PAUSEID that starts with A.</p>

<p>Cue a shower idea: <a href="http://search.cpan.org/dist/Archive-Peek-External/">Archive::Peek::External</a>, which uses external tools "tar" and "unzip" to peek into archives. That reduced the time taken to 13 minutes.</p>

<p>While investigating <a href="http://www.tarsnap.com/">Tarsnap</a>, an online backup service, a few months ago, I had noticed that it used <a href="http://code.google.com/p/libarchive/">libarchive</a> a "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats".</p>

<p>Cue another shower idea, which involved writing some XS: <a href="http://search.cpan.org/dist/Archive-Peek-Libarchive/">Archive::Peek::Libarchive</a>, which wraps libarchive. That reduced the time taken to 16 seconds.</p>

<p>Sixteen seconds! That's so fast I wrote <a href="http://cpansearch.perl.org/src/LBROCARD/Archive-Peek-Libarchive-0.37/examples/search_cpan.pl">search_cpan.pl</a>, which allows you to search a local CPAN mirror for a Perl regular expression while unpacking distributions on the fly. Takes about a minute.</p>

<p>Yay for showers and superior technology!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Mail user agents</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/09/mail-user-agents.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2222</id>

    <published>2011-09-25T15:55:02Z</published>
    <updated>2011-09-25T16:04:29Z</updated>

    <summary>Recently I&apos;ve decided that I should change the way I host my email. I&apos;ve moved to fastmail.fm + offlineimap + Dovecot + Mutt. I&apos;ve played with a few IMAP clients and am currently back to using Mutt like I used...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    <category term="email" label="email" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>Recently I've decided that I should change the way I host my email. I've moved to <a href="https://fastmail.fm/">fastmail.fm</a> + <a href="http://offlineimap.org/">offlineimap</a> + <a href="http://www.dovecot.org/">Dovecot</a> + <a href="http://www.mutt.org/">Mutt</a>. I've played with a few IMAP clients and am currently back to using Mutt like I used to ten years ago.</p>

<p>I wondered what email clients my friends are using. I could ask them all... or I could <a href="https://github.com/acme/mua">write a program</a> to query the London.pm and perl5-porters mailing lists for email user agents (one random email per email address)  for the last year.</p>

<p><big>London.pm results</big></p>

<p>     76 Gmail<br />
     29 Mutt<br />
     27 Thunderbird<br />
     22 Apple Mail<br />
      7 Alpine<br />
      6 Evolution<br />
      4 KMail<br />
      4 Gnus<br />
      3 SquirrelMail<br />
      3 Exchange<br />
      2 Unknown<br />
      2 Internet Messaging Program<br />
      2 Claws Mail<br />
      1 YahooMailRC<br />
      1 tin<br />
      1 RoundCube Webmail<br />
      1 Postbox<br />
      1 Pine<br />
      1 Opera Mail<br />
      1 Microsoft Outlook<br />
      1 LinkedIn<br />
      1 iPhone Mail<br />
      1 iPad Mail<br />
      1 Hotmail<br />
      1 Blackberry</p>

<p><big>perl5-porters results</big></p>

<p>   277 RT<br />
    100 Gmail<br />
     76 Thunderbird<br />
     50 Mutt<br />
     31 Apple Mail<br />
     14 Exchange<br />
     11 Gnus<br />
     10 Evolution<br />
      8 KMail<br />
      7 Unknown<br />
      7 Alpine<br />
      6 perlthanks<br />
      4 Microsoft Outlook<br />
      4 Claws Mail<br />
      3 Opera Mail<br />
      3 Microsoft Windows Live Mail<br />
      3 A Perl smoker<br />
      2 Zimbra<br />
      2 WWW<br />
      2 Wanderlust<br />
      2 SquirrelMail<br />
      2 MIME<br />
      2 Microsoft Office Outlook<br />
      2 Internet Messaging Program<br />
      2 Google Groups<br />
      1 YahooMailWebService<br />
      1 VM<br />
      1 Thoth<br />
      1 The Bat<br />
      1 Sup<br />
      1 slrn<br />
      1 Postbox<br />
      1 perlbug-summary<br />
      1 Perl<br />
      1 Pan<br />
      1 nmh v<br />
      1 Mulberry<br />
      1 Mobile Office v<br />
      1 Microsoft Windows Mail<br />
      1 Microsoft<br />
      1 MessagingEngine<br />
      1 Loom<br />
      1 Kaiten Mail for Android<br />
      1 iPhone Mail<br />
      1 Hotmail<br />
      1 /home/nicholas/bin/summary.pl<br />
      1 Heirloom mailx<br />
      1 git<br />
      1 ELM<br />
      1 CERT<br />
      1 Becky</p>

<p>So it looks like Gmail, Thunderbird, Mutt and Apple Mail are in the lead. As usual with exploring data, no huge surprises. Is this about what you expected? Are there any ultraneat IMAP clients I should look at?</p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::Europe 2011 Day 3</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/08/yapceurope-2011-day-3.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2106</id>

    <published>2011-08-17T15:31:42Z</published>
    <updated>2011-08-17T15:32:09Z</updated>

    <summary>A short sleep later and it&apos;s time for the third day of talks at YAPC::Europe 2011 in Riga, Latvia. The attendees dinner yesterday was great fun - hundreds of Perl programmers at Lido in an underground cavern with a wide...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    <category term="europe" label="europe" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="riga" label="riga" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc" label="yapc" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>A short sleep later and it's time for the third day of talks at <a href="http://yapceurope.lv/ye2011/">YAPC::Europe 2011</a> in Riga, Latvia.</p>

<p>The attendees dinner yesterday was great fun - hundreds of Perl programmers at <a href="http://www.rigalatvia.net/lido/">Lido</a> in an underground cavern with a wide spread of food and beer. Today I attended:</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3291">Perl 5.16 and Beyond</a> where Jesse Vincent explained the development of Perl and his vision for an exciting future of Perl. Andy Lester <a href="http://perlbuzz.com/2011/08/the-future-of-perl-5.html">summarised</a> a previous version of this talk. Jesse has expanded on many points since, but it boils down to declaring the semantics your code expect - and future versions of Perl will attempt you give you the semantics of older versions (making deprecations easier). And making the core smaller, and shipping two flavours of Perl (codenames: "Hotel California" - like now, and "The Times, They Are A-Changin'" - just enough to bootstrap CPAN). Making the language smaller through making it possible for CPAN modules to add/change syntax and features. Making Perl run under every platform.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3406">Introduction to writing readable and maintainable Perl</a>, where Alex Balhatchet covered best practices for readable code with lots of little hints.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3389">Perl Training</a>, where Dave Cross talked "about the kinds of people who want Perl training and the kinds of training that they want".</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3314">The Legend of Data::Query - a LINQ's awakening</a>, where Matt Trout talked about the history of the API decisions in <a href="http://search.cpan.org/dist/DBIx-Class/">DBIx::Class</a> and how he's slowly evolving his ideas into what will become <a href="http://search.cpan.org/dist/Data-CapabilityBased/">Data::Query</a>.</p>

<p>After a tasty lunch, I presented <a href="http://yapceurope.lv/ye2011/talk/3405">How CPAN Testers helped me improve my module</a> which talks about how <a href="http://www.cpantesters.org/">CPAN Testers</a> helped improve my <a href="http://search.cpan.org/dist/JSON-YAJL/">JSON::YAJL</a> module. You can <a href="http://www.slideshare.net/acme/how-cpan-testers-helped-me-improve-my-module">view the slides</a>.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3386">Perlude: a taste of haskell in perl</a>, where Marc Chantreux talked about how <a href="http://search.cpan.org/dist/Perlude/">Perlude</a> allows you to do Haskell-style lazy UNIX pipe-like things in Perl.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3427">How I learned to stop worrying and love threads</a>, where Leon Timmermans explaind why threads are hateful and how some playing with Erlang led to <a href="http://search.cpan.org/dist/threads-lite/">threads::lite</a>.</p>

<p>And then the ever-wonderful <a href="http://yapceurope.lv/ye2011/talk/3212">lightning talks</a>, which amazed and amused us as always.</p>

<p>As part of the lightning talks, brian d foy announced the 2011 White Camel Awards, which are all for non-technical work. The Community award went to Leo Lapworth for tireless work in improving the Perl websites. The user group award went to Daisuke Maki for organising YAPC::Asia and the Japan Perl Association. The last award went to Andrew Shitov for organising so many Perl conferences.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3316">http://yapceurope.lv/ye2011/talk/3316</a>, where Matt Trout summarised all manner of things that have happened in the last year in Perl: lots of Perl releases, lots of IRC users, lots of CPAN Testers results, <a href="https://metacpan.org/">MetaCPAN</a>. The Perl community is you!</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3556">YAPC::Europe 2012</a>, where Max Maischein and Frankfurt.pm gave us a few details about YAPC::Europe 2012 in Frankfurt am Main, Germany. They are aiming for the end of August.</p>

<p>It's been exciting, exhilarating and exhausting. Many thanks to Andrew Shitov, the organisers and speakers and I'm looking forward to next year!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::Europe 2011 Day 2</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/acme/2011/08/yapceurope-2011-day-2.html" />
    <id>tag:blogs.perl.org,2011:/users/acme//20.2103</id>

    <published>2011-08-16T14:42:42Z</published>
    <updated>2011-08-16T14:43:38Z</updated>

    <summary>A short sleep later and it&apos;s time for the second day of talks at YAPC::Europe 2011 in Riga, Latvia. (Re)Developing in Perl 6, where Damian Conway showed us how to convert some of his Perl 5 modules into Perl 6...</summary>
    <author>
        <name>acme</name>
        <uri>http://www.astray.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/acme/">
        <![CDATA[<p>A short sleep later and it's time for the second day of talks at <a href="http://yapceurope.lv/ye2011/">YAPC::Europe 2011</a> in Riga, Latvia.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3532">(Re)Developing in Perl 6</a>, where Damian Conway showed us how to convert some of his Perl 5 modules into Perl 6 code. He was amusing as always and it was very impressive how some of his modules, such as <a href="http://search.cpan.org/dist/Smart-Comments/">Smart::Comments</a> will involve much less code in Perl 6 (when the implementations are finished). "CPAN is an enormous Borg cube".</p>

<p>There was a little break for tasty pastries and coffee and I'd also like to mention that handily there are power sockets everywhere in the rooms.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3325">Bending semantics with 5.14</a>, where Zefram explained (while wearing a <a href="http://en.wikipedia.org/wiki/Tricorn">tricorn</a>) how to add different semantics to Perl by editing the optree, and even adding new opcodes. See <a href="http://perldoc.perl.org/perlapi.html#cv_set_call_checker">cv_set_call_checker</a>).</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3499">The State of the Acmeism</a>, where Ingy döt Net, the father of <a href="http://acmeism.org/">Acmeism</a> tried to get us to join his fold: "People who create technology that is not limited to a particular language are known as Acmeists".</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3568">DBIx::Class guts 1.1 (or how SQL sausage is made)</a>, where Peter Rabbitson tried to explain the loosely coupled abstractions of <a href="http://search.cpan.org/dist/DBIx-Class/">DBIx::Class</a>, including the history behind it and how some initially-confusing designs make everything flexible and the plans to extract bits of it into separate CPAN distributions.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3650">The Perl Foundation: Year in Review</a>, where Karen Pauley listed all the wonderful things that the <a href="http://www.perlfoundation.org/">Perl Foundation</a> has been doing this year, all the grants programs, marketing ideas, and funding David Mitchell since March 2010 (798 hours so far) to fix hard bugs in the Perl 5 core, and the surprise success of funding the Perl 5 Core Maintenance Fund to continue with this work. A lot of work on an ongoing trademark court case on Perl in Japan. And <a href="http://www.google-melange.com/gsoc/org/google/gsoc2011/tpf">Google Summer of Code</a> projects.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3409">Medieval Perl: charting the history of medieval texts with a modern language</a>, where Tara Andrews explained her research into computational text criticism using Moose, GraphViz and Catalyst.</p>

<p><a href="http://yapceurope.lv/ye2011/talk/3384">Adventures in Marketing</a>, where Mark Keating, in a display of nominative determinism, explained the many things he has been covering as <a href="http://www.shadowcat.co.uk/blog/mark-keating/2011/04-marketing-tpf/">chair</a> of the Perl Foundation Marketing Committee. </p>

<p>And then the ever-wonderful <a href="http://yapceurope.lv/ye2011/talk/3212">lightning talks</a>, which amazed and amused us as always.</p>

<p>Heading off to the attendees dinner now.</p>]]>
        
    </content>
</entry>

</feed>
