<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Randal L. Schwartz</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/randal_l_schwartz/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/randal_l_schwartz//61</id>
    <updated>2012-06-05T18:23:37Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Mail::Audit and presuming a bit too much</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2012/06/mailaudit-and-presuming-a-bit-too-much.html" />
    <id>tag:blogs.perl.org,2012:/users/randal_l_schwartz//61.3347</id>

    <published>2012-06-05T18:17:39Z</published>
    <updated>2012-06-05T18:23:37Z</updated>

    <summary>I was tweaking my procmailrc today. My procmailrc recognizes a number of common pattern-based spam items and logs those into logs that I rotate on a regular basis. Anything else gets fed into a Mail::Audit-based &quot;Sortmail&quot; script. As I was...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="mailauditthreeargopen" label="Mail::Audit three-arg-open" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>I was tweaking my procmailrc today.  My procmailrc recognizes a number of common pattern-based spam items and logs those into logs that I rotate on a regular basis. Anything else gets fed into a Mail::Audit-based "Sortmail" script.  As I was testing a minor tweak, I noticed that the logfile for Sortmail (driven by the Mail::Audit object) wasn't getting any messages.</p>

<p>Long story short... I had opened the Mail::Audit logfile as "-", because I wanted it to use stdout, which in my procmailrc I had directed to the proper log.</p>

<p>But RJBS recently changed Mail::Audit from using the two-arg open for this name to the three-arg open for this name, and this was only apparent once I had used the CPAN diff tools (only in the source, and not documented, sadly).</p>

<p>Yes, I had created a 30MB logfile named "-" in my home directory.  After carefully removing that file, and using an explicit filename for logfile, all was good.</p>

<p>But this is a heads-up for anyone else who might have presumed that "-" means stdout in Mail::Audit... you might be logging somewhere odd right now. :)</p>]]>
        
    </content>
</entry>

<entry>
    <title>A compelling reason for Perl6</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2011/08/a-compelling-reason-for-perl6.html" />
    <id>tag:blogs.perl.org,2011:/users/randal_l_schwartz//61.2082</id>

    <published>2011-08-11T16:45:27Z</published>
    <updated>2011-08-11T16:50:52Z</updated>

    <summary>Had a great chat with the Thousand Oaks PerlMongers last night, as an ongoing series of conversations I&apos;ve been having recently about finding a compelling reason for Perl6. I was inspired by Larry&apos;s Onion talk to continue thinking about the...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="perl6webframework" label="perl6 webframework" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>Had a great chat with the Thousand Oaks PerlMongers last night, as an ongoing series of conversations I've been having recently about finding a compelling reason for Perl6.</p>

<p>I was inspired by Larry's Onion talk to continue thinking about the relation of Perl5 and Perl6 (and frankly, me and Stonehenge as well).</p>

<p>First, Perl6 is not "the next Perl5". Perl5 will be alive and well for another decade at least, independently maintained and released. That's happening quite efficiently and effectively already.  (Translated: "I will quite possibly be able to continue making money off Perl5 for years to come".)</p>

<p>So, what is Perl6 then? It's a different language. Businesses aren't going to migrate from Perl5 to Perl6, but they will consider Perl6 for a new project, just as if they'd consider Ruby or Python or Grails or Scala or any other language.</p>

<p>What's missing is the equivalent for what Rails did for Ruby: a compelling web framework.</p>

<p>If we had a compelling web framework for Perl6, people would start taking notice. And like Rails, I think we can start by building something to "eat our own dogfood". Perhaps a Perl6 equivalent of Perlmonks or Mediawiki.  Whatever it is, it should be an application that will also be able to be used by other communities, so that people will want to start using not only the application, but also the framework.</p>

<p>The framework might be a derivative of Catalyst, or something entirely new that takes advantage of pluggable grammars and DSLs.  I don't know.</p>

<p>I know the framework needs tight integration with client-side libraries like jQuery though.</p>

<p>One thing I'd really like to get into such a framework is some sort of coroutine or continuation processing.  A recent IRC chat left me a bit disappointed that proper Seaside-style continuations aren't possible with Perl6, but maybe something similar could be created.</p>

<p>Rakudo Star might not be fast enough or complete enough for this at the moment, but if we can organize the development of this framework, we could also be Rakudo's biggest customer in a short while... driving development.</p>

<p>But more importantly, moving Perl6 from "this is an interesting idea" to "this language actually gets things done".</p>

<p>Is it time to start on this? I think so. I'm still wildly brainstorming, so I don't have a lot more to say yet. But maybe you do.</p>

<p>If you are interested in helping me brainstorm this idea, maybe we can set up a mailing list or something.  I'm also interested in hearing if pieces of this are already in play, so maybe it's just a matter of coordination.</p>]]>
        
    </content>
</entry>

<entry>
    <title>comp.lang.perl.announce was stalled, now fixed</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2011/07/complangperlannounce-was-stalled-now-fixed.html" />
    <id>tag:blogs.perl.org,2011:/users/randal_l_schwartz//61.2028</id>

    <published>2011-07-28T21:12:07Z</published>
    <updated>2011-07-28T21:13:50Z</updated>

    <summary>The NNTP injection host that I use to feed comp.lang.perl.announce had moved, and for some reason I had hardwired the old IP address into my posting script. Once I got that sorted out, it looks like it&apos;ll be business as...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>The NNTP injection host that I use to feed comp.lang.perl.announce had moved, and for some reason I had hardwired the old IP address into my posting script. Once I got that sorted out, it looks like it'll be business as usual for CLPA once again.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Perl to the rescue: case study of deleting a large directory</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2011/03/perl-to-the-rescue-case-study-of-deleting-a-large-directory.html" />
    <id>tag:blogs.perl.org,2011:/users/randal_l_schwartz//61.1570</id>

    <published>2011-03-17T18:53:59Z</published>
    <updated>2011-03-17T19:02:31Z</updated>

    <summary>When I moved from OpenBSD to FreeBSD a year ago, I also had to move the email being handled by my server. As things were a bit different, I added a &quot;Just-in-case&quot; MailDir for one of my users so that...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>When I moved from OpenBSD to FreeBSD a year ago, I also had to move the email being handled by my server.  As things were a bit different, I added a "Just-in-case" MailDir for one of my users so that no matter what else happened to the rest of their procmailrc, they'd have a backup copy.</p>

<p>Flash forward a year.</p>

<p>Yeah, you guessed it... we never turned that off. It's been accumulating spam at the rate of a few messages a second.  For a year. I couldn't figure out why my 80GB of freespace a year ago was now dangerously under 15GB.</p>

<p>The MailDir/new directory was 2.5GB.  Not the contents.  The directory itself! I tried an "ls", realizing after a few minutes that ls would want to load the entire list of names into memory, then sort them, then dump out.  Ouch.</p>

<p>So I tried the next obvious thing: "mv new BADnew; rm -rf BADnew".  Nothing happened, for a very long time. I tried tracing the process, and saw that "rm" was like "ls" here: it was sucking in all of the names without doing any deletes yet. Foiled again.</p>

<p>I remembered that "find ... -delete" probably wouldn't need to sort things. Tried that. Again, after a few minutes of nothing happening, I traced it. What? Same thing. find was pulling all names in first. Ouch. Foiled again.</p>

<p>On a whim, I fired up "perl -debug", and tested a scalar readdir(). Woo hoo! Name immediately! So I set up a quick loop:<br />
<blockquote>perl -e 'chdir "BADnew" or die; opendir D, "."; while ($n = readdir D) { unlink $n }'</blockquote><br />
And immediately, names were being deleted, and space was being returned to the OS. It took about four hours to delete the entire directory, but yeay, there it was!</p>

<p>Perl to the rescue!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Perl&apos;s &quot;readability&quot;</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2010/11/perls-readability.html" />
    <id>tag:blogs.perl.org,2010:/users/randal_l_schwartz//61.1214</id>

    <published>2010-11-29T03:31:32Z</published>
    <updated>2010-11-29T03:34:55Z</updated>

    <summary>You know, when I look at Russian Cyrillic, or Greek letters, it looks like squiggles. I&apos;ve never studied it, so I have no means to relate it to sounds, let alone meanings. So, when people say, &quot;I can&apos;t read Perl&quot;,...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="readability" label="readability" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>You know, when I look at Russian Cyrillic, or Greek letters, it looks like squiggles. I've never studied it, so I have no means to relate it to sounds, let alone meanings.</p>

<p>So, when people say, "I can't read Perl", it only tells me they haven't studied it.</p>

<p>And if people choose to be vocal about their own ignorance, saying "Perl is unreadable!", that's saying a lot more about them than it does about Perl.</p>

<p>As far as I can tell, millions of people speak Greek and Russian.  I'm not one of them, and that's ok. I don't keep saying "Russian is impossible", simply because I personally don't know it.</p>

<p>If it matters, I've seen some pretty impenetrable Python, Ruby, and Java code.  And I even pretend to know those languages at least in passing.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Perl &quot;Certification&quot; - still Snake Oil</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2010/11/perl-certification---still-snake-oil.html" />
    <id>tag:blogs.perl.org,2010:/users/randal_l_schwartz//61.1195</id>

    <published>2010-11-22T19:07:59Z</published>
    <updated>2010-11-22T19:12:51Z</updated>

    <summary>I think &quot;certification&quot; for most software is snake oil. And, despite the participation of fellow Perl trainer Peter Scott (whom I have the highest respect for), and my primary publisher O&apos;Reilly (whom I also have the highest respect for) in...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="certification" label="certification" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="oreilly" label="O&apos;Reilly" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="peterscott" label="Peter Scott" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>I think "certification" for most software is snake oil.</p>

<p>And, despite the participation of fellow Perl trainer Peter Scott (whom I have the highest respect for), and my primary publisher O'Reilly (whom I also have the highest respect for) in a new "Perl Certification" program, I <strong>still</strong> think this is snake oil.</p>

<p>Therefore, I will be discouraging individuals from taking such courses, and HR people and clueless managers from looking for such certifications, particularly demanding them to be considered for an application. I will continue to work hard with my clients and my fellow contractors to have actual track records be considered, not some test one has managed to pass and pay for.</p>

<p>Please, people. Don't feed the trolls.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Learning Perl Master Course (video) now available</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2010/09/learning-perl-master-course-video-now-available.html" />
    <id>tag:blogs.perl.org,2010:/users/randal_l_schwartz//61.1020</id>

    <published>2010-09-16T14:18:14Z</published>
    <updated>2010-09-16T14:23:26Z</updated>

    <summary>The Learning Perl book (&quot;Llama book&quot;) is the best-selling intro-to-Perl book available. For most of the 90&apos;s and the early 200x&apos;s, teaching the classroom course based on the book (which was based on the previous course, which was based on...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="learningperl" label="learning perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="llama" label="llama" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="masterclass" label="master class" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="oreilly" label="O&apos;Reilly" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="video" label="video" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>The Learning Perl book ("Llama book") is the best-selling intro-to-Perl book available. For most of the 90's and the early 200x's, teaching the classroom course based on the book (which was based on the previous course, which was based on the previous book...) had been my primary living.</p>

<p>More than once, I had thought about turning the course into a video, but lacked the time, energy, coordination, etc.  This especially became important as fewer and fewer "groups of 10 or more" popped up for me to present the classic course.</p>

<p>O'Reilly approached me earlier this year to ask me if I'd work on the video with them.  Yeay!  Finally.  We shot it a few months ago, and the editing is now complete.  You can finally see me give the course I've given probably hundreds of times before, bad jokes and all.</p>

<p>See it at <a href="http://oreilly.com/catalog/0636920014430">O'Reilly's site</a>. Oh, it's not free, but considering that you'd be paying about 5-10 times that much to see me in person, it's a bargain.</p>]]>
        
    </content>
</entry>

<entry>
    <title>PDX.pm videos</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2010/09/pdxpm-videos.html" />
    <id>tag:blogs.perl.org,2010:/users/randal_l_schwartz//61.992</id>

    <published>2010-09-09T21:51:55Z</published>
    <updated>2010-09-09T21:55:07Z</updated>

    <summary>When I&apos;m in town during a Portland Perl Mongers meeting, I livestream the event with UStream, and record the presentations if the speakers permit it. Last night, I taped Michael Schwern talking about Test::Builder2 and Chromatic regarding Modern Perl. Check...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="chromatic" label="chromatic" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pdxpm" label="pdx.pm" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="schwern" label="schwern" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ustream" label="ustream" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>When I'm in town during a Portland Perl Mongers meeting, I livestream the event with UStream, and record the presentations if the speakers permit it.  Last night, I taped <a href="http://www.ustream.tv/recorded/9444310">Michael Schwern talking about Test::Builder2</a> and <a href="http://www.ustream.tv/recorded/9443645">Chromatic regarding Modern Perl</a>.  Check them out!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Just another Perl blogger,</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/randal_l_schwartz/2010/06/just-another-perl-blogger.html" />
    <id>tag:blogs.perl.org,2010:/users/randal_l_schwartz//61.684</id>

    <published>2010-06-29T21:56:50Z</published>
    <updated>2010-06-29T22:02:53Z</updated>

    <summary>Inspired by some conversations at YAPC NA 2010, I&apos;m abandoning my use.perl.org blog, and starting here. I&apos;ve never used Movable Type before, so this might take some adjustment. This blog will be primarily about Perl-ish things in my awareness. I...</summary>
    <author>
        <name>Randal L. Schwartz</name>
        <uri>http://www.stonehenge.com/merlyn/	</uri>
    </author>
    
    <category term="first" label="first" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/randal_l_schwartz/">
        <![CDATA[<p>Inspired by some conversations at YAPC NA 2010, I'm abandoning my use.perl.org blog, and starting here.  I've never used Movable Type before, so this might take some adjustment.</p>

<p>This blog will be primarily about Perl-ish things in my awareness.  I have quite a few other publishing realms, each with their own specialization.</p>

<p>If you want to follow everything I post, I suggest subscribing to <a href="http://friendfeed.com/merlyn?format=atom">my FriendFeed feed</a>.</p>]]>
        
    </content>
</entry>

</feed>
