<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Jeffrey Ryan Thalhammer</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/jeff_thalhammer1/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/jeff_thalhammer1//1559</id>
    <updated>2013-05-13T20:49:01Z</updated>
    <subtitle>All Perl, All The Time</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Thank You For Supporting Pinto!</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/05/thank-you.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4675</id>

    <published>2013-05-14T03:41:42Z</published>
    <updated>2013-05-13T20:49:01Z</updated>

    <summary>The crowd funding campaign for Pinto ended last week and I&apos;m delighted to report that it was a huge success! We completely surpassed our goal and received a total of $4,620.12 from 128 contributors (including payments through PayPal and Flattr)....</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="crowdfunding" label="Crowd Funding" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="Open Source" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>The <a href="https://www.crowdtilt.com/campaigns/specify-module-version-ranges-in-pint">crowd funding campaign</a> for <a href="https://metacpan.org/module/Pinto">Pinto</a> ended last week and I'm delighted to report that it was a huge success!  We completely surpassed our goal and received a total of $4,620.12 from 128 contributors (including payments through PayPal and Flattr).</p>

<p>I am extremely grateful to each and every contributor, and I am deeply moved by the overwhelming support of the Perl community at large.  As a humble token of my appreciation, every contributor will get a free lifetime account on <a href="http://stratopan.com">Stratopan</a>.  I will also list the name of every contributor in the documentation for Pinto and on the project web site. </p>

<p>I especially want to thank <a href="https://metacpan.org/author/VTI">Viacheslav Tykhanovskyi</a>, <a href="https://metacpan.org/author/SZABGAB">Gabor Szabo</a>, <a href="https://metacpan.org/author/PETDANCE">Andy Lester</a>, and <a href="https://metacpan.org/author/XSAWYERX">Sawyer X</a> who worked tirelessly to help spread the word about the campaign.  I also thank <a href="https://metacpan.org/author/BDFOY">brian d foy</a> for organizing the campaign, and <a href="http://crowdtilt.com">Crowdtilt</a> for generously allowing us to use their platform free of charge.</p>

<p>I believe the success of this campaign has a lot to teach us about the strength of the Perl community, the power of crowd funding, and the future of open source software.  So over the next several days, I'll be blogging about each of those things.  And of course, you'll also be hearing about the progress I've made toward implementing the promised features in <a href="https://metacpan.org/module/Pinto">PInto</a>.</p>

<p>Again, thank you, very much!</p>

<p>Sincerely,</p>

<p>-Jeff</p>]]>
        
    </content>
</entry>

<entry>
    <title>Pinto Jam Sessions On IRC This Thursday</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/pinto-jam-sessions-on-irc-this-thursday.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4626</id>

    <published>2013-04-29T17:41:00Z</published>
    <updated>2013-04-29T17:41:04Z</updated>

    <summary>I&apos;m on IRC just about all the time (my handle is &quot;thaljef&quot;). But I thought it might be interesting to actually schedule a session and invite people to come in and ask questions about Pinto, suggest a feature, report a...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="irc" label="IRC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>I'm on IRC just about all the time (my handle is "thaljef").  But I thought it might be interesting to actually schedule a session and invite people to come in and ask questions about <a href="https://metacpan.org/module/Pinto">Pinto</a>, suggest a feature, report a bug, or just say "Hi".</p>

<p>So there will be two one-hour jam sessions in the #pinto channel on irc.perl.org this Thursday, May 2.  The first will at 14:00 and the second will be at 18:00 (all times GMT). If you haven't used IRC before, <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">this</a> is an excellent guide.</p>

<p>Hope to see you all then!<br />
 </p>]]>
        
    </content>
</entry>

<entry>
    <title>You Are Invited To The Stratopan Beta</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/you-are-invited-to-the-stratopan-beta.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4605</id>

    <published>2013-04-24T16:50:00Z</published>
    <updated>2013-04-24T17:11:56Z</updated>

    <summary>Stratopan is a new service for hosting custom repositories of Perl modules in the cloud. Private beta trials will begin early this summer. If you&apos;d like to participate in the trials, please stop by https://stratopan.com and leave us your email...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="stratopan" label="stratopan" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p><a href="https://stratopan.com">Stratopan</a> is a new service for hosting custom repositories of Perl modules in the cloud.  Private beta trials will begin early this summer.  If you'd like to participate in the trials, please stop by <a href="https://stratopan.com">https://stratopan.com</a> and leave us your email address.  We'll contact you with all the details when the trials begin.</p>

<p>Stratopan will host both public and private repositories with any combination of proprietary and open source Perl modules.  And Stratopan is built on <a href="http://metacpan.org/module/Pinto">Pinto</a>, the open source tool for creating custom CPAN-like repositories, so it has the same helpful tools for managing your application dependencies.</p>]]>
        
    </content>
</entry>

<entry>
    <title>A Dead Simple CPAN API</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/a-dead-simple-cpan-api.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4497</id>

    <published>2013-04-16T06:00:00Z</published>
    <updated>2013-04-16T05:53:25Z</updated>

    <summary>Since the crowd funding campaign for Pinto is already off to such a great start, I figured that I better roll up my sleeves and start writing some code. The primary goal of the campaign is to enable Pinto users...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metacpan" label="MetaCPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>Since <a href="http://blogs.perl.org/users/brian_d_foy/2013/04/crowd-funding-pinto.html">the crowd funding campaign for Pinto</a> is already off to such a great start, I figured that I better roll up my sleeves and start writing some code.  The primary goal of the campaign is to enable <a href="https://metacpan.org/module/Pinto">Pinto</a> users to pull specific versions of modules into their repository without having to know precisely which distribution they came from.  Read on to hear what I've done so far...</p>]]>
        <![CDATA[<p>The first step toward solving this problem is to create (or find) a mapping from module/version to distribution archive (i.e. tar ball).  Fortunately, <a href="http://metacpan.org">MetaCPAN</a> has tons of information about every module that has ever been released to CPAN.</p>

<p>With some help from the wonderful crew on the #metacpan channel, I was able to put together a query that would tell me which distributions contained any particular version of a module.  And by taking <a href="https://github.com/miyagawa/cpanminus/blob/devel/lib/App/cpanminus/script.pm#L529">a bit of code from cpanm</a>, I could even use notation like ">=1.34, !=1.56, < 2.45".</p>

<p>I'm still a novice with the <a href="https://github.com/CPAN-API/cpan-api">MetaCPAN API</a>, so the query felt cumbersome to me.  Plus, it required two trips to the server to get the final answer.  Since I have a Pinto repository that also contains all of BackPAN, I tried to roll my own minimal CPAN API.</p>

<p>Each of these queries will return a JSON array containing the AUTHOR/Dist-File for every distribution that contains the requested version(s) of the Plack module.  They are sorted most recent first.  Feel free to try these at home with your favorite module (beware the database is about 2 weeks old now)...</p>

<p>Where is Plack?<br />
<a href="http://lookup.stratopan.com/Plack">http://lookup.stratopan.com/Plack</a></p>

<p>Where is version 1.0016 of Plack?<br />
<a href="http://lookup.stratopan.com/Plack==1.0016">http://lookup.stratopan.com/Plack==1.0016</a></p>

<p>Where is a version of Plack that is greater than 0.9949 and less that 1.0006 but not 1.002?<br />
<a href="http://lookup.stratopan.com/Plack>=0.9949,<=1.0006,!=1.0002">http://lookup.stratopan.com/Plack&gt;=0.9949,&lt;=1.0006,!=1.0002</a></p>

<p>But I've already run into one stumbling block: unauthorized distributions.  Pinto doesn't know about PAUSE's permission system, so it will report distributions that don't contain "official" versions of the module.  But MetaCPAN <em>does know</em> about the permissions, so you can filter unauthorized modules out of the results.</p>

<p>So in the end, building on the MetaCPAN API is probably the right way to go here.  But it was an interesting exercise to see what I could do with a very large Pinto repository.  And it only took about 20 lines of code!</p>]]>
    </content>
</entry>

<entry>
    <title>There Is Some Cash Up For Grabs</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/there-is-some-cash-up-for-grabs.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4554</id>

    <published>2013-04-12T04:39:55Z</published>
    <updated>2013-04-12T04:56:09Z</updated>

    <summary>Last night, I went shopping for a service to monitor servers and API performance. So I looked at New Relic, AppDynamics, and a few others. From what I saw, none of them supported Perl. That seems like a golden opportunity...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="api" label="API" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="momoney" label="Mo&apos; Money" 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/jeff_thalhammer1/">
        <![CDATA[<p>Last night, I went shopping for a service to monitor servers and API performance.  So I looked at New Relic, AppDynamics, and a few others.  From what I saw, none of them supported Perl.  </p>

<p>That seems like a golden opportunity to me.  Those companies are making some serious money (New Relic is likely to do an IPO this year).  I think an enterprising Perl developer could get a piece of that pie.</p>

<p>If you put together the right hooks to support one of their monitoring agents from Perl,  I am certain those companies would be happy to license you work from you.  Or at least offer you a good job.</p>

<p>Individually, those companies may not feel the Perl market is worth the effort, or perhaps they just can't find the expertise to support Perl (good Perl devs are not easy to find).  But if you find a way to leverage code across <em>all</em> those companies, then I think you would be sitting pretty.</p>]]>
        
    </content>
</entry>

<entry>
    <title>A New CPAN Mirror Is Born</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/a-new-cpan-mirror-is-born.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4496</id>

    <published>2013-04-10T01:07:48Z</published>
    <updated>2013-04-09T17:42:05Z</updated>

    <summary>As part of my work on Stratopan, I&apos;ve setup a spankin&apos; new CPAN mirror located at http://cpan.stratopan.com. It is an &quot;instant mirror&quot;, so it should get new releases almost immediately after they ship to PAUSE. It also has everything from...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="stratopan" label="Stratopan" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>As part of my work on <a href="http://stratopan.com">Stratopan</a>, I've setup a spankin' new CPAN mirror located at <a href="http://cpan.stratopan.com/index.html">http://cpan.stratopan.com</a>.  It is an "instant mirror", so it should get new releases almost immediately after they ship to PAUSE.  It also has everything from BackPAN too.</p>

<p>Other than that, it's not anything special.  It's a mid-sized Linode server located in Texas with 8000 gigabytes/month of traffic.  I get a warm and fuzzy feeling from hosting a CPAN mirror.  It makes me feel like a more useful part of the community.</p>

<p>Feel free to point <a href="https://metacpan.org/module/MIYAGAWA/App-cpanminus-1.6104/bin/cpanm">cpanm</a> or <a href="https://metacpan.org/module/THALJEF/App-Pinto-0.066/bin/pinto">pinto</a> at http://cpan.stratopan.com.  We'll see if my hosting bill goes through the roof :)</p>]]>
        
    </content>
</entry>

<entry>
    <title>Saved By Pinto</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/04/saved-by-pinto.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4489</id>

    <published>2013-04-03T07:00:00Z</published>
    <updated>2013-04-03T19:41:21Z</updated>

    <summary>That title may remind you of a certain song by The Fixx. Last week a new version of CPAN::Meta was shipped to CPAN. Unfortunately, it caused a test to fail in Module::Build. In turn, that set off a whole chain...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="carton" label="Carton" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>That title may remind you of a certain song by The Fixx.</p>

<p>Last week a new version of <a href="http://https://metacpan.org/release/CPAN-Meta">CPAN::Meta</a> was shipped to CPAN.  Unfortunately, it caused a test to fail in <a href="https://metacpan.org/release/Module-Build">Module::Build</a>.  In turn, that set off a whole chain of downstream failures in hundreds of distributions that depend on Module::Build.</p>

<p>So if you were building up a complete application stack last week (like on Stackato or Heroku) and you were pulling the latest dependencies from CPAN, you were hosed.  This sort of thing happens all the time, and when it bites you, it will be at the worst possible time.</p>

<p>Pinto also uses Module::Build.  But those who were building it with the installer at <a href="http://getpinto.stratopan.com">http://getpinto.stratopan.com</a> were completely insulated from the failure.  This is because the installer pulls dependencies from a <a href="http://stratopan.com/Stratopan/Pinto/Production">private repository</a>.  Unlike the public CPAN, that repository is stable and only changes when I decide to upgrade or add a dependency.</p>

<p>Fortunately, the problem with CPAN::Meta was short-lived.  Dave Golden had released a fixed version only 23 hours later.  But I think this perfectly demonstrates why you should lock down your dependencies with a tool like <a href="https://metacpan.org/release/carton">Carton</a> or <a href="https://metacpan.org/release/Pinto">Pinto</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Bringing Old Modules Up To Modern Specification</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/03/bringing-old-modules-up-to-modern-specification.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4482</id>

    <published>2013-03-29T16:18:14Z</published>
    <updated>2013-03-29T16:30:17Z</updated>

    <summary>While working on Pinto, I discovered that a fair number of distributions on CPAN have invalid or incomplete metadata. This makes it hard for the toolchain (Pinto especially) to fully utilize them. Usually the offenses are pretty minor -- misspelled...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>While working on <a href="https://metacpan.org/release/Pinto">Pinto</a>, I discovered that a fair number of distributions on CPAN have invalid or incomplete metadata.  This makes it hard for the toolchain (Pinto especially) to fully utilize them.</p>

<p>Usually the offenses are pretty minor -- misspelled or missing keys in the META files, or a non-parsable version number.  Some of us have probably made local patches of these distributions to fix those problems.  But there's no reason everyone should have to do it.</p>

<p>So I had an idea -- what if there was a secondary public CPAN where folks could contribute patched versions of these older distributions?  Read the rest of the story here:</p>

<p><a href="https://github.com/Stratopan/Patchpan/blob/master/README.md">https://github.com/Stratopan/Patchpan/blob/master/README.md</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Code Pornography</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/03/code-porn.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4481</id>

    <published>2013-03-29T15:51:41Z</published>
    <updated>2013-03-29T16:02:14Z</updated>

    <summary>Ok, that title is a bit of a teaser. But I do think that code should be sexy. In this full-color high-definition world, we&apos;ve come to expect things to actually look attractive. I&apos;d love to see pretty logos or icons...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="marketing" label="marketing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metacpan" label="MetaCPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>Ok, that title is a bit of a teaser.  But I do think that code should be sexy.  In this full-color high-definition world, we've come to expect things to actually look attractive.</p>

<p>I'd love to see pretty logos or icons for each module on MetaCPAN.  Perhaps we could add a new attribute to the META spec that points to an image file inside the distribution, or a URL somewhere. </p>]]>
        
    </content>
</entry>

<entry>
    <title>Fat Versus Thin Core</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/03/fat-versus-thin-core.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4480</id>

    <published>2013-03-29T08:19:48Z</published>
    <updated>2013-03-29T09:26:59Z</updated>

    <summary>I used to feel the Perl core should be as small as possible. That is, it should ship with the smallest number of modules whilst still being &quot;practical&quot;. For everything else, there is CPAN. So naturally, I was pretty pleased...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="perl5cpan" label="perl5 CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>I used to feel the Perl core should be as small as possible.  That is, it should ship with the smallest number of modules whilst still being "practical".  For everything else, there is CPAN.</p>

<p>So naturally, I was pretty pleased when I heard that CGI and some other modules were going to be removed from the core in perl 5.20.  But lately, I've started to change my view on that.  Here is why...</p>]]>
        <![CDATA[<p>I've been watching the p5 porters for a couple years, and I feel that major enhancements to the language just aren't going to happen.  There are lots of different reasons for that -- some technical, some social.  I'm not bitter and I'm not pointing the finger.  This is just what happens when programming languages and their communities mature.  The same will happen to Ruby and Python.</p>

<p>But I know that Perl still has a very long and prosperous life ahead of it.  But if the future does not lie in the language itself, then where does it lie?  I think the answer might be the modules it ships with.</p>

<p>Perl owes some of its success to the fact that CGI.pm was right there in the core at a time when lots of people were starting to do dynamic web sites.  Here we are 20 years later, and CGI-style progamming has been replaced by frameworks with routers and templates and controllers.  It makes sense to remove CGI.pm from core now, but perhaps we should also be looking to put something in its place.  And we have plenty of things to choose from: Catalyst, Dancer, Mason, Mojolicious.  How we pick one is a whole other story.  But I contend that shipping one of them in the Perl core could be path to the future [1].</p>

<p>I understand that a fatter core presents a maintenance burden for p5p.  But these frameworks actually have pretty large and vibrant communities.  Most are probably bigger that p5p itself.  So putting one of them into core could help bring many new contributors into the p5p sphere.  Some of them might even make significant contributions to the language while they are there.</p>

<p>To put it another way, some folks call Ruby a language with "batteries included".  At one time, Perl was the "batteries included" language too, because it had regexes, and interfaces to common system calls, and *gasp* CGI.pm.  But now, the world has caught up and we expect more from our languages.</p>

<p>So maybe we need to think about what kind of stuff people want to do with computers these days, and then focus on providing them with a Perl offers them a way to do it.  Perl doesn't have to be all things to all people, but it ought to make a strong effort to appeal to <em>some</em> group of people.  That probably means putting more modules in the core, rather than less.</p>

<p>[1] The same thinking could potentially be applied toward DBIx::Class or Poe, or some of the other widely used frameworks.</p>]]>
    </content>
</entry>

<entry>
    <title>FLOSS Weekly Interview on Pinto</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/03/floss-weekly-inteview-on-pinto.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4478</id>

    <published>2013-03-27T19:59:40Z</published>
    <updated>2013-03-27T20:02:21Z</updated>

    <summary>My FLOSS Weekly interview on Pinto is now online here: http://twit.tv/show/floss-weekly/246 Big thanks to Randal Schwartz and Aaron Newcomb for having me on the show!...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>My FLOSS Weekly interview on Pinto is now online here:</p>

<p><a href="http://twit.tv/show/floss-weekly/246">http://twit.tv/show/floss-weekly/246</a></p>

<p>Big thanks to Randal Schwartz and Aaron Newcomb for having me on the show!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Pinto on FLOSS Weekly next Wednesday</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/03/pinto-on-floss-weekly-next-wednesday.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4458</id>

    <published>2013-03-23T08:56:18Z</published>
    <updated>2013-03-23T09:20:59Z</updated>

    <summary>I&apos;ll be doing a live webcast about Pinto with Randal Schwartz for FLOSS Weekly. Tune in to http://live.twit.tv next Wednesday, March 27 at 08:30 (Pacific Time) to the see the show. Your can send in your questions in real-time via...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl5" label="perl5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="Pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>I'll be doing a live webcast about <a href="https://metacpan.org/release/THALJEF/Pinto-0.065_06">Pinto</a> with Randal Schwartz for FLOSS Weekly.  Tune in to <a href="http://live.twit.tv">http://live.twit.tv</a> next Wednesday, March 27 at 08:30 (Pacific Time) to the see the show.  Your can send in your questions in real-time via the #twitlive channel on irc.twit.tv.</p>

<p><a href="https://metacpan.org/release/THALJEF/Pinto-0.065_06">Pinto</a> is a robust tool for creating custom CPAN-like repositories of Perl modules.  You can fill your repository with any combination of private and public modules, and then build/test/install them using the standard tools (e.g. cpan, cpanm, cpanp).  Since you control the repository, you'll get exactly the same modules every time.  Pinto also has some novel tools for tracking and managing changes, so you can upgrade modules with confidence and control.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Bringing Perl5 to GitHub</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/02/bringing-perl5-to-github.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4323</id>

    <published>2013-02-13T18:02:09Z</published>
    <updated>2013-02-13T19:15:16Z</updated>

    <summary>Even though Git sometimes gives me heartburn, I&apos;m a huge fan of GitHub. The fork &amp; pull workflow makes it sooo easy (and fun) to contribute to other projects. And as a project owner, it is very easy for me...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="perl5github" label="perl5 github" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>Even though Git sometimes gives me heartburn, I'm a huge fan of <a href="http://github.com">GitHub</a>.  The fork & pull workflow makes it sooo easy (and fun) to contribute to other projects.  And as a project owner, it is very easy for me to manage incoming contributions.  My absolute favorite feature is the discussions that are inline with the code.  To me, that is much more natural than talking about code in a separate mailing list.</p>

<p>So I started thinking...what if Perl5 was developed on GitHub[1]?   </p>

<p>Moving a large and mature project like Perl5 to a new set of tools and workflows will certainly not be easy and I expect a lot of resistance.  I don't expect perfect feature parity either -- some capabilities will be gained and others will be lost.  But GitHub has worked really, really well for a lot of projects (including <a href="http://github.com/Perl6">Perl6</a>).  So I think it is definitely worth investigating.</p>

<p>In my heart, I hope that GitHub eventually becomes the primary platform for Perl5 development.  But I don't want to alienate everyone who is comfortable with the current development tools & processes either.  So I'm going to try and get the best of both worlds by creating a two-way bridge with GitHub.  For example, submitting a ticket to RT could automatically create an issue on GitHub (and vice-versa).  Or making a pull request on GitHub could automatically generate a patch and send it to the p5 mailing list for review.</p>

<p>Of course, this is all speculative.  But I've already taken the first steps:  I have established a <a href="http://github.com/Perl">Perl organization</a> in GitHub with a (mostly empty) <a href="http://github.com/Perl/Perl5">Perl5 repository</a>.  Next, I'll look into marshalling commits back and forth between GitHub and perl5.git.perl.org.  And I'm especially eager to try migrating all the tickets from RT into GitHub's issue tracker.</p>

<p>I don't know how this will all work out, but I am optimistic.  I'm even hopeful that it might bring new energy and new blood into Perl.  So give a shout if you like the idea.  And please contact me if you'd like to pitch in.</p>

<p>[1] Yes there is a <a href="https://github.com/mirrors/perl">mirror</a> of the Perl5 repository on GitHub, but it is read-only.  I'm talking about doing real development of the P5 core directly on the GitHub platform.</p>]]>
        
    </content>
</entry>

<entry>
    <title>On Perl Names And Numbers</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2013/02/on-perl-names-and-numbers.html" />
    <id>tag:blogs.perl.org,2013:/users/jeff_thalhammer1//1559.4275</id>

    <published>2013-02-08T05:52:15Z</published>
    <updated>2013-02-08T06:02:10Z</updated>

    <summary>This was originally posted in response to this discussion on the p5-porters mailing list and similar discussions on blogs.perl.org. I am also reposting it here. I started cooking a big editorial essay in my head, but I&apos;m just going to...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="perl5perl6marketing" label="perl5 perl6 marketing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p><em>This was originally posted in response to <a href="http://www.nntp.perl.org/group/perl.perl5.porters/2013/02/msg198170.html">this discussion</a> on the p5-porters mailing list and similar discussions on blogs.perl.org.  I am also reposting it here.</em></p>

<p>I started cooking a big editorial essay in my head, but I'm just going to try and boil it down…</p>

<p>So long as a fixed number ("5" in this case) is *prominently* attached to Perl, it will be seen as stuck.  Specifically, it is stuck behind that thing called "Perl6".  </p>

<p>You may understand the distinction between "Perl" and "Perl5" and "perl-5.16.2", but the rest of the world (including many developers) does not.</p>

<p>Others (notably Apple, Java, Mozilla) understand how to manage perceptions through names and numbers.  We should learn from them.</p>

<p>Continuing the affiliation between Perl5 and Perl6 is harmful to both camps.  Negative or false perceptions about either needlessly end up affecting both.</p>

<p>The Perl5 community must pursue its own best interests and cannot be held hostage by the name and number of another language.</p>

<p>Establishing a way forward through both minor and major (i.e. non-backcompat) releases to Perl5 will help to energize and accelerate development.</p>

<p>The Perl6 community will not take offense at anything the Perl5 community does.  We all understand that we have common roots, but we are now on separate paths.</p>

<p>I will not argue whether Perl is thriving or dying, but I will assert that the language and community does not receive as much "buzz" as it deserves.</p>

<p>Rebranding, renaming, and/or renumbering are useful tools for generating "buzz."  But these alone are not sufficient -- a compelling message is also required.</p>

<p>Initial reactions to these kinds of changes are always mixed.  But those feelings will fade and the benefits will come over time.</p>

<p>Yes, this is mostly about marketing and image, but that doesn't mean it isn't worthwhile.  Perceptions do matter, regardless of whether they are rational.</p>

<p>Not everyone in the community cares about marketing (nor should they), but we must not impede or discourage those who do.  We are all on the same team.</p>

<p>If we want things to *be* different, than we must *do* things differently.  Let us not be afraid to try.</p>]]>
        
    </content>
</entry>

<entry>
    <title>CPAN In The Sky With Diamonds</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_thalhammer1/2012/11/cpan-in-the-sky-with-diamonds.html" />
    <id>tag:blogs.perl.org,2012:/users/jeff_thalhammer1//1559.4008</id>

    <published>2012-11-02T16:13:34Z</published>
    <updated>2012-11-02T16:23:04Z</updated>

    <summary>A few weeks ago, I pondered a service for hosting private CPAN repositories in the cloud. The idea was well received, so I pulled together a prototype. The result is here: http://alpha.stratopan.com Be aware that this site is not secure...</summary>
    <author>
        <name>Jeffrey Ryan Thalhammer</name>
        <uri>https://metacpan.org/author/THALJEF</uri>
    </author>
    
    <category term="cpan" label="CPAN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pinto" label="pinto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="stratopan" label="stratopan" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_thalhammer1/">
        <![CDATA[<p>A few weeks ago, I <a href="http://blogs.perl.org/users/jeff_thalhammer1/2012/09/your-personal-cpan-in-the-sky.html">pondered</a> a service for hosting private CPAN repositories in the cloud.  The idea was well received, so I pulled together a prototype.  The result is here:</p>

<p><a href="http://alpha.stratopan.com"><strong>http://alpha.stratopan.com</strong></a></p>

<p>Be aware that this site is not secure nor reliable, but I think it demonstrates the concept pretty well.  Most of the links on the landing page go nowhere.  Just click the big "Sign Up Now" button and you'll be on your way.  If you like what you see, let me know.</p>]]>
        
    </content>
</entry>

</feed>
