<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>blogs.perl.org</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/atom.xml" />
    <id>tag:blogs.perl.org,2009-10-07://1</id>
    <updated></updated>
    <subtitle>There&apos;s more than one way to blog it.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.37</generator>

<entry>
    <title>CPANdeps now understands META.json files</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/david_cantrell/2012/05/cpandeps-now-understands-metajson-files.html" />
    <id>tag:blogs.perl.org,2012:/users/david_cantrell//230.3248</id>

    <published>2012-05-16T14:59:38Z</published>
    <updated>2012-05-16T15:04:04Z</updated>

    <summary>Because YAML isn&apos;t hip and trendy enough, at some point recently the toolchain started using META.json files as well as META.yml. Some foolish module authors only use META.json. Because CPANdeps didn&apos;t know about this file, their dependency graphs weren&apos;t being...</summary>
    <author>
        <name>David Cantrell</name>
        <uri>http://www.cantrell.org.uk/david/journal/</uri>
    </author>
    
    <category term="cpandeps" label="CPANdeps" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="json" label="JSON" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yaml" label="YAML" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/david_cantrell/">
        <![CDATA[<p>Because YAML isn't hip and trendy enough, at some point recently the toolchain started using META.json files as well as META.yml.  Some foolish module authors <em>only</em> use META.json.  Because CPANdeps didn't know about this file, their dependency graphs weren't being generated.  Well, now they are.  I just now pushed the updated code to the site, and you should start to see dependencies for things like <a hrefhttp://deps.cpantesters.org/?module=DBIx%3A%3AClass%3A%3AHelpers&perl=5.14.2&os=any+OS>DBIx::Class::Helpers</a>, which <a hrefhttp://cpansearch.perl.org/src/FREW/DBIx-Class-Helpers-2.009001/META.yml>has no META.yml</a>.</p>

<p>The reverse dependencies - that is, the list of what modules depend on a particular module - will update over the next few hours.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Look @this_job twitter feed</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/wickline/2012/05/look-this-job-twitter-feed.html" />
    <id>tag:blogs.perl.org,2012:/users/wickline//151.3247</id>

    <published>2012-05-16T01:20:34Z</published>
    <updated>2012-05-16T01:26:02Z</updated>

    <summary>I claimed a while ago that I maintained a list of pdx and telecommute jobs of potential interest to folks I know who are looking for new gigs. Well, I suck at maintaining that list. I&apos;m going to try to...</summary>
    <author>
        <name>wickline</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/wickline/">
        <![CDATA[<p>I claimed a while ago that I maintained a list of pdx and telecommute jobs of potential interest to folks I know who are looking for new gigs. Well, I suck at maintaining that list. I'm going to try to make it easier to maintain by re-inventing the page as a twitter feed. The idea is that it is easier to post a couple tweets each day than to edit an html document. If it is sufficiently easier, then I might actually do it regularly.</p>

<p>If you use twitter, follow <a href="https://twitter.com/#!/this_job">@this_job</a>. If you use rss, subscribe to <a href="https://twitter.com/statuses/user_timeline/this_job.rss">https://twitter.com/statuses/user_timeline/this_job.rss</a>. If you prefer email updates, well I'm sure there is some service out there which will turn twitter streams or rss feeds into email. Actually, I think twitter started doing that themselves.</p>

<p>We'll see if this experiment works any better.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Announce: WWW::Scraper::Wikipedia::ISO3166</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/ron_savage/2012/05/announce-wwwscraperwikipediaiso3166.html" />
    <id>tag:blogs.perl.org,2012:/users/ron_savage//297.3246</id>

    <published>2012-05-15T11:57:10Z</published>
    <updated>2012-05-16T06:13:26Z</updated>

    <summary>Hi Folks After an email discussion with Kim Ryan, author of Locale::SubCountry, and a recent exchange on this very blog, about removing Locale::Country::SubCountry from CPAN, I&apos;ve released WWW::Scraper::Wikipedia::ISO3166 V 1.01. It&apos;s main purpose is to ship a SQLite database of...</summary>
    <author>
        <name>Ron Savage</name>
        <uri>http://savage.net.au/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/ron_savage/">
        <![CDATA[<p>Hi Folks</p>

<p>After an email discussion with Kim Ryan, author of <a href="https://metacpan.org/release/Locale-SubCountry">Locale::SubCountry</a>, and a recent exchange on this very blog, about removing <a href="http://blogs.perl.org/users/ron_savage/2012/05/removing-localecountrysubcountry-from-cpan.html">Locale::Country::SubCountry</a> from CPAN, I've released <a href="https://metacpan.org/release/WWW-Scraper-Wikipedia-ISO3166">WWW::Scraper::Wikipedia::ISO3166 V 1.01</a>.</p>

<p>It's main purpose is to ship a SQLite database of countries and subcountries, and an interface to that db.</p>

<p>The db can be used directly, or exported as CSV or HTML.</p>

<p>Pre-exported files are shipped in the distro as data/*.csv and data/*.html.</p>

<p>The HTML looks like <a href="http://savage.net.au/Perl-modules/html/WWW/Scraper/Wikipedia/ISO3166/iso.3166-2.html">this</a>.</p>

<p>The Wikipedia files I downloaded are also shipped in the distro under data/*.html, to encourage you to access them locally if playing with the code, rather than hitting Wikipedia itself repeatedly.</p>

<p>If you think this makes the distro too big (4Mb) let me know. I can easily drop the those files.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Data::Printer - A New Look on Dumping Variables</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/dataprinter---a-new-look-on-dumping-variables.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3245</id>

    <published>2012-05-15T12:00:04Z</published>
    <updated>2012-05-15T12:00:04Z</updated>

    <summary>Brenno de Oliveira will give a talk at YAPC::NA 2012 described as: Data::Printer is a simple and powerful solution to viewing your complex Perl data structures. Contrary to Data::Dumper and similars which stringify your data in a restrictive way so...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Brenno de Oliveira will give a talk at <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> described as:</p>
<blockquote>
<p>Data::Printer is a simple and powerful solution to viewing your complex Perl data structures.</p>
<p>Contrary to Data::Dumper and similars which stringify your data in a restrictive way so it can be eval&#8217;d back into your code, Data::Printer cares only about letting you easily see what&#8217;s in there using colors, filters, a lot of customization and no hassle.</p>
<p>In this talk I&#8217;ll showcase Data::Printer and walk through some of its main usage scenarios, customization, filters, and general tips for you to tame your variables!</p>
</blockquote>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Hackathon Extended!</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/hackathon-extended.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3241</id>

    <published>2012-05-15T04:00:05Z</published>
    <updated>2012-05-15T04:00:05Z</updated>

    <summary>Due to a cancellation by someone else using the building, we&#8217;ve been able to add an additional 40 seats to the Hackathon on June 11th and 12th before YAPC::NA 2012. So if you can make it into town early, and...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Due to a cancellation by someone else using the building, we&#8217;ve been able to add an additional 40 seats to the Hackathon on June 11th and 12th before <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a>. So if you can make it into town early, and want to stop by, then by all means do so. We&#8217;ll officially have room for you. </p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>YAPC Game Night</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/yapc-game-night.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3240</id>

    <published>2012-05-14T20:00:05Z</published>
    <updated>2012-05-14T20:00:05Z</updated>

    <summary>As many of you know, cPanel is sponsoring a game night at YAPC::NA 2012 with food and drinks for all. To ensure that everyone has something to play The Perl Foundation, LiquidWeb, and The Game Crafter have teamed up to make...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>As many of you know, <a href="http://job.listings.cpanel.net/" target="_blank">cPanel</a> is sponsoring a game night at <a href="http://job.listings.cpanel.net/" target="_blank">YAPC::NA 2012</a> with food and drinks for all.</p>
<p>To ensure that everyone has something to play <a href="http://www.perlfoundation.org" target="_blank">The Perl Foundation</a>, <a href="http://www.liquidweb.com" target="_blank">LiquidWeb</a>, and <a href="https://www.thegamecrafter.com" target="_blank">The Game Crafter</a> have teamed up to make custom Perl &amp; YAPC themed playing cards that will be yours to take home as a keepsake of the event. The Game Crafter will also be providing a small amount of mini-poker chips in case any of you wish to start an impromptu poker tournament. </p>
<p>All that said, we&#8217;d like to encourage you to bring your own games for YAPC Game Night. We know some people will be running the Pathfinder Role Playing Game. Others have said they&#8217;d like to do a LAN party perhaps playing Diablo III, Team Fortress 2, Left4Dead 2, or Portal 2. And others still have brought up the idea of various board games like Settlers of Catan, Apples to Apples, Carcassonne, Trivial Pursuit, Pandemic, Bang!, and more. Whatever your flavor, bring a game to YAPC!</p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Put your Doorbell on the Internet</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/put-your-doorbell-on-the-internet.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3239</id>

    <published>2012-05-14T12:00:05Z</published>
    <updated>2012-05-14T12:00:05Z</updated>

    <summary>Robert Blackwell will give a talk at YAPC::NA 2012 described as: This talk will explain how to have your doorbell do do more. By separating the chime and the button you can do more.  I will show how to send...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Robert Blackwell will give a talk at <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> described as:</p>
<blockquote>
<p>This talk will explain how to have your doorbell do do more. By separating the chime and the button you can do more.  I will show how to send a text mesasge and pause your TV when the button pressed. I will also show you how to ring your chime when some sends you a tweet. That will be enough to get you started to do even more cool things.</p>
<p>Please watch<a href="http://act.yapcna.org/2012/wiki?node=Hardware%20Hackathon" target="_blank"> the wiki page for the latest information about the Hardware Hackathon</a>. I&#8217;ll give you hands on experience at the Hackathon on how to do exactly this.</p>
</blockquote>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Using the Record Separator</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/alberto_simoes/2012/05/using-the-record-separator.html" />
    <id>tag:blogs.perl.org,2012:/users/alberto_simoes//250.3238</id>

    <published>2012-05-13T17:35:51Z</published>
    <updated>2012-05-13T17:39:50Z</updated>

    <summary>I use Perl for years, but there are some details that I still am unable to use correctly in Perl. I think they should be my fault. And probably, if I rtfm I would get an answer. Nevertheless, and although...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://ambs.perl-hackers.net/</uri>
    </author>
    
        <category term="Perl Syntax" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="question" label="question" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recordseparator" label="record separator" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/alberto_simoes/">
        <![CDATA[<p>I use Perl for years, but there are some details that I still am unable to use correctly in Perl. I think they should be my fault. And probably, if I rtfm I would get an answer. Nevertheless, and although this is not <i>perlmonks</i>, I'll post my problem anyway.</p>

<p>I use <code>local $/ = "\n\n"</code> as record separator to read a file. The code that processes that file, uses a module, that decides to open a config file, and that expects that the record separator is a single new line. That library fails.</p>

<p>My main doubt is if all modules shout set the record separator explicitly, as we never know if someone changed it, or if there is any way I can change my own copy of it without messing with other modules.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Only 1 Month To YAPC::NA</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/only-1-month-to-yapcna.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3237</id>

    <published>2012-05-13T08:00:05Z</published>
    <updated>2012-05-13T14:02:44Z</updated>

    <summary>If you haven&#8217;t already made your final travel arrangements for YAPC::NA 2012, what are you waiting for? It&#8217;s only one month to the conference, get on it already. Remember, YAPC::NA 2012 is June 13-15 in Madison, WI. See you there. And...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>If you haven&#8217;t already made your final travel arrangements for <a href="http://www.yapcna.org/" target="_blank">YAPC::NA 2012</a>, <strong>what are you waiting for?</strong> It&#8217;s only one month to the conference, get on it already.</p>
<p>Remember, YAPC::NA 2012 is June 13-15 in Madison, WI. See you there. And <a href="http://www.yapcna.org/conference/spouses" target="_blank">bring your spouse</a>!</p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Be Your Own Big Brother</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/toby_inkster/2012/05/be-your-own-big-brother.html" />
    <id>tag:blogs.perl.org,2012:/users/toby_inkster//1019.3236</id>

    <published>2012-05-12T19:24:14Z</published>
    <updated>2012-05-16T04:45:42Z</updated>

    <summary>Many modern browsers (including recent versions of Firefox and Opera) support the W3C&apos;s geolocation API. This is a standardised mechanism for Javascript to ask your browser where it geographically is in the world. Typically the browser will then pop up...</summary>
    <author>
        <name>Toby Inkster</name>
        <uri>http://tobyinkster.co.uk/</uri>
    </author>
    
        <category term="HTTP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="JSON" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PSGI" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Plack" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="geo" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="geo" label="geo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="http" label="http" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="json" label="json" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plack" label="plack" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="psgi" label="psgi" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/toby_inkster/">
        <![CDATA[<p>Many modern browsers (including recent versions of Firefox and Opera) support the <a href="http://enwp.org/W3C_Geolocation_API"><span class="caps">W3C'</span>s geolocation <span class="caps">API</span></a>. This is a standardised mechanism for Javascript to ask your browser where it geographically is in the world. Typically the browser will then pop up a message asking you if you wish to reveal this information, giving you the opportunity to opt out.</p>

<p>But how does your browser know where it is? The method that Firefox and Opera both seem to use is this:</p>


<ol>
<li>They sniff data on your Wifi to figure out the local hotspots;</li>
<li>They submit the details of these hotspots to a web service run by Google;</li>
<li>Google tells them where you are.</li>
</ol>



<p>How is Google able to figure out where you are based on local wifi hotspots? The answer is their Street View cars. At the same time that they drive around photographing streets for Street View, they also take a survey of wifi hot spots.</p>

<p>Sounds cool, albeit a little scary, right? Well, if you're afraid of living under such surveillance, here's something that might comfort you: in my case at least, Google tends to be off by around 80 kilometres.</p>

<p>But that's a problem, because I actually <strong>want</strong> certain websites to know where I am. So how can I customize my browser's response when a website asks where I am?</p>

<p>Firefox has a setting "geo.wifi.uri" which allows you to customise the web service they call for the data. The default is Google's at https://www.google.com/loc/json. In Opera, there's a "Location Provider <span class="caps">URL</span>" setting listed in opera:config. So, what other web services are available that I can plug in there? Here's a list:</p>

<p>*</p>

<p>That was a short list, wasn't it?</p>

<p>But let's think about it another way. Whenever I'm using my computer, there's always something sitting right beside my computer... me. And what's in my pocket? An Android phone with access to the <span class="caps">GPS.</span> If I could query my phone, problem solved.</p>

<p>Step one, <a href="http://bk.gnarf.org/creativity/bigbrothergps/">Big Brother <span class="caps">GPS</span></a> is an open source (GPL 2) Android app which allows you to regularly post (15 minute updates, or any other interval you choose) your phone's location (and speed and bearing if you're travelling) to a web service of your choice. <span class="caps">OK, </span>so we'll point it to a <span class="caps">URL </span>on my server.</p>

<p>The app has the ability to configure a shared secret (i.e. password) to pass to the server. We'll do that, and call it "s3cr3t".</p>

<p>Step two, on the server, we'll create a little <span class="caps">SQL</span>ite database to log each ping:</p>



<pre>
  $ sqlite3 pings.sqlite
  sqlite&gt; CREATE TABLE pings (
     ...&gt; time INTEGER,
     ...&gt; latitude REAL,
     ...&gt; longitude REAL,
     ...&gt; altitude REAL,
     ...&gt; accuracy REAL,
     ...&gt; bearing REAL,
     ...&gt; speed REAL,
     ...&gt; );
  sqlite&gt; .quit
</pre>



<p>Step three, we need to create a little Perl script to receive data from Big Brother <span class="caps">GPS </span>and log it to the database. For this we'll be using:</p>


<ul>
<li>DateTimeX::Auto</li>
<li><span class="caps">DBD</span>::SQLite</li>
<li><span class="caps">DBI</span></li>
<li><span class="caps">JSON</span></li>
<li><span class="caps">LWP</span>::Simple</li>
<li>Plack::Request</li>
</ul>



<p>So we need to install them from <span class="caps">CPAN </span>if we don't already have them. Now, here's our basic script, which I'll call app.psgi.</p>



<pre>
use 5.010;
use DateTimeX::Auto qw[dt];
use DBI;
use JSON qw[from_json to_json];
use LWP::Simple qw[get];
use Plack::Request;

(my $dbfile = __FILE__) =~ s/app.psgi$/pings.sqlite/;
my $dbh = DBI-&gt;connect(&quot;dbi:SQLite:dbname=$dbfile&quot;);
my $sth = $dbh-&gt;prepare(&lt;&lt;GO);
INSERT INTO pings (time, latitude, longitude, altitude, accuracy, bearing, speed)
VALUES (?, ?, ?, ?, ?, ?, ?);
GO

my $app = sub
{
	my $req = Plack::Request-&gt;new(shift);
	
	if (uc $req-&gt;method eq 'POST' and $req-&gt;param('secret') eq 's3cr3t')
	{
		$sth-&gt;execute(
			dt($req-&gt;param('time'))-&gt;epoch,
			map {
				~~eval~~ $req-&gt;param($_)
			} qw(latitude longitude altitude accuracy bearing speed)
		) or return [
			400,
			[ 'Content-Type' =&gt; 'text/plain' ],
			[ $dbh-&gt;errstr ],
		];
		
		return [
			200,
			[ 'Content-Type' =&gt; 'text/plain' ],
			[ $sql ],
		];
	}
	
	# We'll add some more stuff here soon...
};
</pre>



<p>That should mostly be self-explanatory with one possible exception: <code>dt($req-&gt;param('time'))-&gt;epoch</code> converts the incoming <span class="caps">ISO</span> 8601 formatted datetime into a Unix timestamp. <span class="caps">SQL</span>ite doesn't have a datetime data type, so we're storing the time as an integer.</p>

<p>Now, configure your web server to run that <span class="caps">PSGI.</span> Make sure Big Brother <span class="caps">GPS </span>is pointing at the right <span class="caps">URL </span>and watch the data come in.</p>



<pre>
echo &quot;SELECT datetime(time, 'unixepoch'), latitude, longitude FROM pings ORDER BY time DESC LIMIT 5;&quot; | sqlite3 pings.sqlite
</pre>



<p>Once you have a few data points, it's time to move onto step four: hooking your browser up to the service. Your browser is going to <span class="caps">HTTP POST </span>a bunch of <span class="caps">JSON </span>to that <span class="caps">URL </span>(which is why it's useful to have that Big Brother <span class="caps">GPS </span>secret set up, to help distinguish between <span class="caps">POST</span>s from it, and <span class="caps">POST</span>s from your browser - yes, there are other ways) but we can actually just ignore that and give it a canned response. The <a href="http://code.google.com/p/gears/wiki/GeolocationAPI#Response_Format">response format</a> is actually pretty simple. We just need to grab the latest row from the database and serve it up as <span class="caps">JSON.</span></p>

<p>We'll add this to our app.psgi...</p>



<pre>
# ... start is unchanged
my $app = sub
{
	my $req = Plack::Request-&gt;new(shift);
	
	if (uc $req-&gt;method eq 'POST' and $req-&gt;param('secret') eq 's3cr3t')
	{
		# this is unchanged too
	}
	
	my $sth = $dbh-&gt;prepare('SELECT * FROM pings ORDER BY time DESC LIMIT 1');
	$sth-&gt;execute;
	if (my $result = $sth-&gt;fetchrow_hashref)
	{
		return [
			200,
			[ 'Content-Type' =&gt; 'application/json' ],
			[ to_json({
				location =&gt; {
					(map { $_ =&gt; $result-&gt;{$_} }
					qw(latitude longitude altitude accuracy bearing speed)),
				},
			}, { pretty =&gt; 1, canonical =&gt; 1 })],
		];
	}
};
</pre>



<p>Our response is missing the 'address' structure that Google's <span class="caps">API </span>provides. As far as I can tell, the browser doesn't use this information, but it's not actually especially difficult to add. I leave this as an exercise for the reader, but I'll give you a clue... 'http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&amp;sensor=false'</p>

<p><i>This article was originally published on <a href="http://tobyinkster.co.uk/blog/2012/05/12/byo-big-brother/">my blog</a>. It is available under a <a href="http://creativecommons.org/licenses/by-sa/2.0/uk/">CC BY-SA 2.0 licence</a>. </i></p>]]>
        
    </content>
</entry>

<entry>
    <title>Mix Perl and C++/CLI</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/xiaoayfeng/2012/05/mix-perl-and-ccli.html" />
    <id>tag:blogs.perl.org,2012:/users/xiaoayfeng//863.3235</id>

    <published>2012-05-12T17:41:13Z</published>
    <updated>2012-05-12T18:08:53Z</updated>

    <summary></summary>
    <author>
        <name>xiaoyafeng</name>
        
    </author>
    
    <category term="c" label="C" 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/xiaoayfeng/">
        
        <![CDATA[<p>
Perl is a language with many features to manipulate string. I always want to embed Perl into C program.  But a conclusion in perlembed shocks me:

<p><i><br />
Corollary: you can't use Perl from your C program unless Perl has been compiled on your machine, or installed properly--that's why you shouldn't blithely copy Perl executables from machine to machine without also copying the lib directory.<br />
</i></p>

<p>I posted <a href="http://www.perlmonks.org/?node_id=969929"> this </a> on perlmonks and got excellent advice from <a href="http://www.perlmonks.org/?node_id=5348"> Corion </a>, and know in windows, all you need is just copy perl dll with c program. ;) <br />
</p><br />
<p><br />
As monks help, I made a toy program embedded perl, and works fine! Thanks, perl! thanks perl community!</p>

<p>post main code here below, hope it could help guys who want to embed perl like me. ;)</p>

<p>#include "stdafx.h"<br />
#include "Form1.h"<br />
#pragma unmanaged<br />
#include "perl.h"<br />
#include "EXTERN.h"<br />
#pragma managed<br />
using namespace perl_form;<br />
PerlInterpreter *my_perl; <br />
[STAThreadAttribute]</p>

<p>int main(array<System::String ^> ^args)<br />
    {<br />
		char *embed[] = {"", "-e", 0};<br />
		char *argss[] = { NULL };<br />
      PERL_SYS_INIT3((int *)NULL,(char ***)NULL,(char ***)NULL);<br />
      my_perl = perl_alloc();<br />
      perl_construct(my_perl);<br />
	<br />
      PL_exit_flags |= PERL_EXIT_DESTRUCT_END;</p>

<p>	// Enabling Windows XP visual effects before any controls are created<br />
	Application::EnableVisualStyles();<br />
	Application::SetCompatibleTextRenderingDefault(false); </p>

<p>	// Create the main window and run it<br />
	Application::Run(gcnew Form1());<br />
    <br />
	perl_destruct(my_perl);<br />
        perl_free(my_perl);<br />
       PERL_SYS_TERM();</p>

<p>	return 0;<br />
}</p>

<p></p>

<p><br />
</p>]]>
    </content>
</entry>

<entry>
    <title>Introduction to Performance Tuning Perl Web Applications</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/introduction-to-performance-tuning-perl-web-applications.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3234</id>

    <published>2012-05-12T08:00:05Z</published>
    <updated>2012-05-12T08:00:05Z</updated>

    <summary>Perrin Harkins will give a talk at YAPC::NA 2012 described as:  Your new viral marketing campaign is working a little too well?  Servers are melting?  Step right up. This talk will show you how to use CPAN tools to find...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Perrin Harkins will give a talk at <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> described as: </p>
<blockquote>
<p>Your new viral marketing campaign is working a little too well?  Servers are melting?  Step right up.</p>
<p>This talk will show you how to use CPAN tools to find and fix performance problems in your web application.  The focus will be on using modules to simulate visitors and analyze performance, with some practical advice about possible fixes for different kinds of problems.</p>
</blockquote>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>A Look At Arrays</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/05/a-look-at-arrays.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.3233</id>

    <published>2012-05-11T19:13:33Z</published>
    <updated>2012-05-11T19:14:33Z</updated>

    <summary>A Look At Arrays Perl&apos;s built-in datatype, array, is a multi-purpose tool which can be used for many things. It&apos;s primary purpose is to preserve the order of data. But it comes with a powerful set of tools to make...</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<h1><a class='u' name="A_Look_At_Arrays" id="A_Look_At_Arrays">A Look At
Arrays</a></h1>

<p>Perl's built-in datatype, array, is a multi-purpose tool which can be
used for many things. It's primary purpose is to preserve the order of
data. But it comes with a powerful set of tools to make manipulating it
easy. This article is to show how to use these tools by implementing a
linked list.</p>

<p><a href="http://en.wikipedia.org/wiki/Linked_list" class=
"podlinkurl">Linked lists</a> were originally created for languages like C
which only had simple datatypes. They are a technique for using the
system's memory allocation to create a data structure that allows unlimited
expansion, that is, until it runs out of memory. They use a simple datatype
called a pointer that records a position in memory. Without pointers,
linked list would be impossible.</p>

<p>Perl has a datatype similar to pointers, the <a href=
"http://perldoc.perl.org/perlref.html" class="podlinkurl">reference</a>.
Like pointers, it records a memory location and it can be used link them.
But using references to implement a linked list the same way one would do
in C, needlessly complicates the code. Linked lists can be implemented
using just arrays. Here's how.</p>
]]>
        <![CDATA[<h2><a class='u' name="The_Difference_Between_an_Array_and_a_List" id=
"The_Difference_Between_an_Array_and_a_List">The Difference Between an
Array and a List</a></h2>

<p>Perl makes a distinction between an array and a list. An array is a
datatype and has permanent storage for its contents. This allows a
reference to be made to it. A list is a temporary structure and cannot be
referenced. Lists are used both as parameters to a subroutine and their
returned values. And lists can be assigned to arrays and hashes to store
their values.</p>

<h2><a class='u' name="Simple_Manipulations" id=
"Simple_Manipulations">Simple Manipulations</a></h2>

<h3><a class='u' name="Creating_a_Linked_List" id=
"Creating_a_Linked_List">Creating a Linked List</a></h3>

<p>Simply declare an array using <a href=
"http://perldoc.perl.org/functions/my.html" class=
"podlinkurl"><code>my</code></a> or <a href=
"http://perldoc.perl.org/functions/our.html" class=
"podlinkurl"><code>our</code></a>.</p>
<pre>
my @list = ();
</pre>

<h3><a class='u' name="Clearing_a_Linked_List" id=
"Clearing_a_Linked_List">Clearing a Linked List</a></h3>

<p>Clear the array by assigning the empty list to it.</p>
<pre>
@list = ();
</pre>

<h3><a class='u' name="Add_an_Item_to_the_End_of_the_List" id=
"Add_an_Item_to_the_End_of_the_List">Add an Item to the End of the
List</a></h3>

<p>Use the <a href="http://perldoc.perl.org/functions/push.html" class=
"podlinkurl"><code>push</code></a> command to addend the item to the end of
the array.</p>
<pre>
push @list, $item;
</pre>

<h3><a class='u' name="Add_an_Item_to_the_Front_of_the_List" id=
"Add_an_Item_to_the_Front_of_the_List">Add an Item to the Front of the
List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/unshift.html" class=
"podlinkurl"><code>unshift</code></a> command will insert the item at the
beginning of the array.</p>
<pre>
unshift @list, $item;
</pre>

<h3><a class='u' name="Remove_an_Item_to_the_End_of_the_List" id=
"Remove_an_Item_to_the_End_of_the_List">Remove an Item to the End of the
List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/pop.html" class=
"podlinkurl"><code>pop</code></a> command will remove an item from the end
of the array.</p>
<pre>
$item = pop @list;
</pre>

<h3><a class='u' name="Remove_an_Item_to_the_Front_of_the_List" id=
"Remove_an_Item_to_the_Front_of_the_List">Remove an Item to the Front of
the List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/shift.html" class=
"podlinkurl"><code>shift</code></a> command will remove an item from the
beginning of the array.</p>
<pre>
$item = shift @list;
</pre>

<h3><a class='u' name="Checking_for_an_Item_in_the_List" id=
"Checking_for_an_Item_in_the_List">Checking for an Item in the
List</a></h3>

<p>To check if an item is in a list, use <code>first</code> from <a href=
"http://perldoc.perl.org/List/Util.html" class=
"podlinkurl"><code>List::Util</code></a>. <code>List::Util</code> is a
standard Perl module and is installed with Perl. For a list of all the
standard modules and pragmatics, see <a href=
"http://perldoc.perl.org/perlmodlib.html#THE-PERL-MODULE-LIBRARY" class=
"podlinkurl"><code>perlmodlib</code></a>.</p>
<pre>
use List::Util qw( first );
$found = defined( first { $_ eq $item } @list );
</pre>

<p>The test inside the block may be replaced with a match. Any valid
pattern may be used.</p>
<pre>
$found = defined( first { /^$item$/i } @list );
</pre>

<h3><a class='u' name="Counting_the_Occurrences_of_an_Item_in_the_List" id=
"Counting_the_Occurrences_of_an_Item_in_the_List">Counting the Occurrences
of an Item in the List</a></h3>

<p>To count the occurrences of an item in a list, use <a href=
"http://perldoc.perl.org/functions/grep.html" class=
"podlinkurl"><code>grep</code></a>.</p>
<pre>
$count = grep { $_ eq $item } @list;
</pre>

<p>The test inside the block may be replaced with a match. Any valid
pattern may be used.</p>
<pre>
$count = grep { /^$item$/i } @list;
</pre>

<h3><a class='u' name="Reverse_the_List" id="Reverse_the_List">Reverse the
List</a></h3>

<p>A list can be reversed with the <a href=
"http://perldoc.perl.org/functions/reverse.html" class=
"podlinkurl"><code>reverse</code></a> command.</p>
<pre>
@list = reverse @list;
</pre>

<h3><a class='u' name="Rotate_the_List_Forward" id=
"Rotate_the_List_Forward">Rotate the List Forward</a></h3>

<p>An array can be rotated by combining the <code>shift</code> and
<code>push</code> commands.</p>
<pre>
push @list, shift @list;
</pre>

<h3><a class='u' name="Rotate_the_List_Backward" id=
"Rotate_the_List_Backward">Rotate the List Backward</a></h3>

<p>An array can be rotated backward by combining the <code>pop</code> and
<code>unshift</code> commands.</p>
<pre>
unshift @list, pop @list;
</pre>

<h3><a class='u' name="Extracting_the_i-th_Item" id=
"Extracting_the_i-th_Item">Extracting the <i>i</i>-th Item</a></h3>

<p>Extracting a single item from a list can be done by indexing the
position in the list.</p>
<pre>
 $item = $list[$i];
</pre>

<h3><a class='u' name="Replacing_the_i-th_Item" id=
"Replacing_the_i-th_Item">Replacing the <i>i</i>-th Item</a></h3>

<p>An item can be replacing with indexing.</p>
<pre>
 $list[$i] = $item;
</pre>

<h3><a class='u' name="Extracting_a_List_of_Items" id=
"Extracting_a_List_of_Items">Extracting a List of Items</a></h3>

<p>To extract a list of items from the <i>i</i>-th to <i>j</i>-th position
inclusive, use a <a href="http://perldoc.perl.org/perldata.html#Slices"
class="podlinkurl"><code>slice</code></a>.</p>
<pre>
@items = @list[ $i .. $j ];
</pre>

<h3><a class='u' name="Replacing_a_List_of_Items" id=
"Replacing_a_List_of_Items">Replacing a List of Items</a></h3>

<p>Items can be replaced by assigning them to a slice.</p>
<pre>
@list[ $i .. $j ] = @items;
</pre>

<p>The range of items from the <i>i</i>-th to the <i>j</i>-th position
inclusive will be replaced. If <code>@items</code> is longer than the
range, those left over will be ignored. If it is shorter,
<code>undef</code> will be place in <code>@list</code>.</p>

<h2><a class='u' name="Using_splice" id="Using_splice">Using
<code>splice</code></a></h2>

<p>Although slices can be used to replace items in a list, it will not
remove them. Use Perl's <a href=
"http://perldoc.perl.org/functions/splice.html" class=
"podlinkurl"><code>splice</code></a> command for this.</p>

<h3><a class='u' name="Removing_Items_from_a_List" id=
"Removing_Items_from_a_List">Removing Items from a List</a></h3>

<p>Removing a number of items starting in the <i>i</i>-th position of list.
The list will shrink in size by the number of items removed.</p>
<pre>
@removed_items = splice( @list, $i, $number );
</pre>

<h3><a class='u' name="Inserting_Items_into_a_List" id=
"Inserting_Items_into_a_List">Inserting Items into a List</a></h3>

<p>Inserting a number of items starting in the <i>i</i>-th position of
list. The list will grow in size by the number of items inserted.</p>
<pre>
splice( @list, $i, 0, @items );
</pre>

<h3><a class='u' name="Replacing_Items_With_a_List_of_Others" id=
"Replacing_Items_With_a_List_of_Others">Replacing Items With a List of
Others</a></h3>

<p>Replacing a number of items with others starting in the <i>i</i>-th
position. The list will grow or shrink to accommodate the new items. The
removed items can be saved.</p>
<pre>
@saved_items = splice( @list, $i, $number, @new_items );
</pre>

<h2><a class='u' name="Conclusion" id="Conclusion">Conclusion</a></h2>

<p>Perl's array datatype has powerful tools that can be used for many
tasks.</p>
]]>
    </content>
</entry>

<entry>
    <title>How do you update your system Perl?</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/brian_d_foy/2012/05/how-do-you-update-your-system-perl.html" />
    <id>tag:blogs.perl.org,2012:/users/brian_d_foy//178.3230</id>

    <published>2012-05-11T07:23:16Z</published>
    <updated>2012-05-11T07:50:58Z</updated>

    <summary>Although I&apos;m an advocate of configuring and installing your own perl while leaving the system perl alone, I&apos;d like to have a list of the various ways particular distros and package managers do it for the system perl. The package...</summary>
    <author>
        <name>brian d foy</name>
        <uri>http://www.theperlreview.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/brian_d_foy/">
        <![CDATA[<p>Although I'm an advocate of configuring and installing your own perl while leaving the system perl alone, I'd like to have a list of the various ways particular distros and package managers do it for the system perl.</p>

<ol>
<li>The package manager program (e.g. yum, apt-get)
<li>The package name(s) to get the standard distribution, including the docs, ExtUtils::MakeMaker, and everything else
<li>Does that package manager allows you to configure, per-package, the installation location.
<li>Discovering module packages (what is the name, version of the module, etc)
<li>Your distro version, if it matters (do some distros change package managers)?
</ol>

<p>I can make a chart here if people chime in with what they know about their system. I've seen scattered hints, but no where that pulls this all together for the various major distros.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Deploying Perl Web Applications</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/deploying-perl-web-applications.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3231</id>

    <published>2012-05-11T08:00:08Z</published>
    <updated>2012-05-11T08:00:08Z</updated>

    <summary>Cory Watson will give a talk at YAPC::NA 2012 described as:  Perl web applications have been running for a really long time.  What started as CGI scripts has evolved into frameworks and middleware with JavaScript frontends. Perl itself has evolved...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Cory Watson will give a talk at <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> described as: </p>
<blockquote>
<p>Perl web applications have been running for a really long time.  What started as CGI scripts has evolved into frameworks and middleware with JavaScript frontends. Perl itself has evolved with Perl 5 barreling along.  Our modern applications also use lots of modules from CPAN.  How can we use all this new, awesome stuff without making for a deployment nightmare? In recent client work we&#8217;ve tackled this problem and we&#8217;ve come up with a pretty good solution.  </p>
<p>In this talk we&#8217;ll take the journey from concept to deployment. We&#8217;ll discuss the advantages, limitations and lingering problems.  We&#8217;ll cover local::lib, cpanm, Dist::Zilla, carton, pinto and how much I hate all of them. We&#8217;ll culminate with a self-contained, repeatable, upgradeable Perl application and only a few unsolved gotchas.</p>
</blockquote>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </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-10T23:45:56Z</published>
    <updated>2012-05-10T23: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>YAPC::Russia + Perl Mova 2012 in Kiev, Ukraine</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/andrew_shitov/2012/05/yapcrussia-perl-mova-2012-in-kiev-ukraine.html" />
    <id>tag:blogs.perl.org,2012:/users/andrew_shitov//218.3228</id>

    <published>2012-05-10T22:55:17Z</published>
    <updated>2012-05-11T12:42:13Z</updated>

    <summary>I&apos;m very excited to see more than 200 people registered to the forthcoming YAPC::Russia conference. We started YAPC::Russia in 2008 in Moscow and since than it migrates between Kiev and Russia each year. That explains why its full name includes...</summary>
    <author>
        <name>Andrew Shitov</name>
        <uri>http://andy.sh</uri>
    </author>
    
    <category term="conference" label="conference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kiev" label="kiev" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perlmova" label="perl mova" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ukraine" label="ukraine" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc" label="yapc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcrussia" label="yapc::russia" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/andrew_shitov/">
        <![CDATA[<p>I'm very excited to see <a href="http://perlmova.org/yr2012/stats">more than 200 people</a> registered to the forthcoming YAPC::Russia conference.</p>
<p>We started YAPC::Russia in 2008 in Moscow and since than it migrates between Kiev and Russia each year. That explains why its full name includes <i>plus Perl Mova</i>, which is the name of the Ukrainian Perl Workshop (held separately in the years when YAPC::Russia is in Moscow), that easy. By the way, did you know that Kiev was once the capital of former <a href="http://en.wikipedia.org/wiki/Kievan_Rus%27">Kievan Rus&#146;</a>? No political context here today :-)</p>
<p>This year is a special one in the history of our annual event. This time the organisers managed to invite a few guest speakers, Tatsuhiko Miyagawa, Gabor Szabo and Florian Ragwitz. In addition to that great fact it's a pleasure to see attendees from 13 countries! Kiev is a wonderful place to come to, as you most probable don't need a visa to enter there.</p>
<p>There will be <a href="http://perlmova.org/yr2012/schedule">two days of talks</a> and social activities, and the organisers insist all the slides are dubbed in English (actually, they wanted to make the official language English only), which makes the conference more and more attractive to non-Russian speakers. I think we will continue that trend in the following years.</p>
<p>I wish 1) you come to our conference sooner or later, and 2) we will be able to host a YAPC::Europe in Kiev in the visible future. Two wishes, dear Goldfish, can you? :-)</p>]]>
        
    </content>
</entry>

<entry>
    <title>Announcing: PerlGSL - A Collection of Perlish Interfaces to the Gnu Scientific Library</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/joel_berger/2012/05/announcing-perlgsl---a-collection-of-perlish-interfaces-to-the-gnu-scientific-library.html" />
    <id>tag:blogs.perl.org,2012:/users/joel_berger//1022.3227</id>

    <published>2012-05-10T16:19:43Z</published>
    <updated>2012-05-10T16:57:27Z</updated>

    <summary>With this post I am happy to announce the release of my new distribution: PerlGSL. This accompanies several other releases I&#8217;ve made in the past few days, I&#8217;ll get to those in a moment. A few days ago I asked...</summary>
    <author>
        <name>Joel Berger</name>
        <uri>https://github.com/jberger</uri>
    </author>
    
        <category term="Announcing" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Science/Math" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/joel_berger/">
        <![CDATA[<p>With this post I am happy to announce the release of my new distribution: <a href="http://p3rl.org/PerlGSL"><code>PerlGSL</code></a>. This accompanies several other releases I&#8217;ve made in the past few days, I&#8217;ll get to those in a moment.</p>

<p>A few days ago I <a href="http://blogs.perl.org/users/joel_berger/2012/05/on-cpan-namespaces-urban-namespace-planning.html">asked</a> what I should call my new multidimensional integration module. The discussion centered on whether it was more important that it required the GSL library, or whether it was a set of bindings for the GSL (was that set complete)? Was it a dist in its own right needing a toplevel name, or that it was mathematical and should be under <code>Math::</code>? </p>

<p>After discussion and reflection, I have decided that I wanted a toplevel namespce for this project, mostly because the need to satisfy the external dependency on the GSL separates these modules from others. To make it worthy of that honor, I have made it into a dist in its own right, not unlike other named dists like Mojolicious or Catalyst, though more modular.</p>

<p>Unlike those projects I am not reserving the entire namespace for myself; I want people to contribute to the <code>PerlGSL</code> namespace. Is it a set of bindings to the GSL? No, but close. I&#8217;m calling the namespace a &#8216;collection of interfaces&#8217;. Can there can be more than one interface to the same library? I&#8217;m OK with that. Does any need to span an entire library? No. Can a library pull several functions from different places to create one useful Perl module? By all means!</p>

<p>So what does the dist named <code>PerlGSL</code> do? First it serves to define the namespace. Second, if you install it, it will install what I am calling the &#8220;standard modules&#8221;. So far I am the only author of these &#8220;standard&#8221; modules, but I would love to add yours, though I reserve the right no to. I want the individual modules to live on their own, but be installable together; a modular, bottom-up collection, but one that can be installed together for convenience. <a href="http://pdl.perl.org"><code>PDL</code></a>, for example, is a great dist, but it&#8217;s huge and mostly monolithic; I can&#8217;t just install what I need. I hope that <code>PerlGSL</code> finds a nice balance between monolithic and separate dists.</p>

<p>Ok on to the technical stuff. So far I have uploaded two new modules, and rechristened another. The new ones are <a href="http://p3rl.org/PerlGSL::Integration::SingleDim"><code>PerlGSL::Integration::SingleDim</code></a> and <a href="http://p3rl.org/PerlGSL::Integration::MultiDim"><code>PerlGSL::Integration::MultiDim</code></a>, I think their names give away their tasks :-). I have rechristened <code>Math::GSLx::ODEIV2</code> as <a href="http://p3rl.org/PerlGSL::DiffEq"><code>PerlGSL::DiffEq</code></a>. These are all part of the &#8220;standard&#8221; modules, though you only get <code>PerlGSL::DiffEq</code> if you have GSL >= 1.15. I have also released a new version of <code>Math::GSLx::ODEIV2</code> which announces its deprecation, though it does still provide the <code>ode_solver</code> function via <code>PerlGSL::DiffEq</code> for now.</p>

<p>I hope to add more functionality as I need them. I hope you might do the same. The GSL is too big to ask one person to wrap it all; very few people will ever need all of it. It is really good software though, and it works really well with Perl. I hope you enjoy it.</p>

<p>(Sorry, this has been a bit stream of consciousness, I have been working on this a little too much in the past few days to compose something concise it would seem.)</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Don&apos;t use Cache::Memcached for UTF8 strings</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/domm/2012/05/dont-use-cachememcached-for-utf8-strings.html" />
    <id>tag:blogs.perl.org,2012:/users/domm//69.3226</id>

    <published>2012-05-10T13:12:38Z</published>
    <updated>2012-05-10T13:18:18Z</updated>

    <summary>Read about our adventures while trying to store/retrieve an UTF-8 string via Cache::Memcached in my Perl blog...</summary>
    <author>
        <name>domm</name>
        <uri>http://domm.plix.at</uri>
    </author>
    
    <category term="cachememcached" label="Cache::Memcached" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cachememcachedfast" label="Cache::Memcached::Fast" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="develpeek" label="Devel::Peek" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="memcached" label="memcached" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="utf8" label="utf8" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/domm/">
        <![CDATA[<p>Read about our adventures while trying to store/retrieve an <span class="caps">UTF</span>-8 string via Cache::Memcached in <a href="http://domm.plix.at/perl/2012_05_10_dont_use_cache_memcached_for_utf8_strings.html">my Perl blog</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>BlueHost has become a sponsor of YAPC::NA 2012! And...</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/bluehost-has-become-a-sponsor-of-yapcna-2012-and.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3225</id>

    <published>2012-05-10T08:00:06Z</published>
    <updated>2012-05-10T08:00:06Z</updated>

    <summary>BlueHost has become a sponsor of YAPC::NA 2012! And they’re hiring! Bluehost is one of the leading web hosting firms in the United States. The company has a rock solid shared hosting platform to support individuals, professionals and small businesses. In...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<img src="http://25.media.tumblr.com/tumblr_m3rzjdT1mq1qm5pt2o1_250.png"/><br/><br/><p><a href="http://www.bluehost.com" target="_blank">BlueHost </a>has become a sponsor of <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a>! And they’re <a href="http://www.bluehost.com/careers/" target="_blank">hiring</a>!</p>
<p><span class="Apple-style-span">Bluehost is one of the leading web hosting firms in the United States. The company has a rock solid shared hosting platform to support individuals, professionals and small businesses. In addition, Bluehost has the best customer support rating (NPS) in the industry. All development at Bluehost is done with Perl. The development team has a number of senior Perl developers who are regular contributors to CPAN, having written modules such as CGI::EX and Template::Alloy. One of the Bluehost developers helped write Strawberry Perl. If you are interested in joining a leading edge Perl development shop, come talk to us at the YAPC job fair. </span></p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>7th Week of Perl 6 Tablets</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/lichtkind/2012/05/7th-week-of-perl-6-tablets.html" />
    <id>tag:blogs.perl.org,2012:/users/lichtkind//275.3222</id>

    <published>2012-05-10T05:56:25Z</published>
    <updated>2012-05-10T06:12:35Z</updated>

    <summary>... and what happened? I added a FAQ (Appendix F) page (and moved links to appendix H aka href appendix), but its just questions so far. You migth ask, but there is already a semiofficial FAQ. True. But would you...</summary>
    <author>
        <name>lichtkind</name>
        <uri>http://www.himmelblauergarten.de/</uri>
    </author>
    
        <category term="Perl 6" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Tablets" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/lichtkind/">
        <![CDATA[<p>... and what happened?</p>

<p>I added a <a href="http://tablets.perl6.org/appendix-f-faq.html">FAQ (Appendix F)</a> page (and moved links to appendix H aka href appendix), but its just questions so far. You migth ask, but there is already a <a href="http://faq.perl6.org/">semiofficial FAQ</a>. True. But would you not prefer better sorted anwers with links where all the parts of the answer are even better explained in more detail?</p>

<p><br />
I added also a report.pl which gives you output like:</p>

<p>    page     title   item  anchor  links   lines    bytes <br />
---------------------------------------------------------<br />
 Appendix-A     30    756    909    2253    4103   184498<br />
 Appendix-B     46      0      0     770     850    83065<br />
 Appendix-C      0      0      0       0       4      131<br />
 Appendix-D     19      0      0       9     136     6127<br />
 Appendix-E      8      0      0       4     102     5154<br />
 Appendix-F      5      0      0       0      23      639<br />
 Appendix-G     24    120    120     302     582    25523<br />
 Appendix-H      8      0      0      42      83     3835<br />
   Tablet-0      3      0      0       0      73     3274<br />
   Tablet-1     16      0      0       5     141     7461<br />
  Tablet-10      6      0      0       0      20      287<br />
   Tablet-2     33      0      0      31     333    13365<br />
   Tablet-3     23      0      0      46     306    16564<br />
   Tablet-4     32      0      0      13     154     4289<br />
   Tablet-5     30      0      0       7     158     4365<br />
   Tablet-6     19      0      0       0      57      513<br />
   Tablet-7      0      0      0       0       3       42<br />
   Tablet-8      0      0      0       0      11      533<br />
   Tablet-9     10      0      0       5      63     1825<br />
---------------------------------------------------------<br />
        Sum    312    876   1029    3487    7202   361490<br />
TODO:<br />
 empty index entries: 5<br />
 unanswered questions: 8<br />
 empty glossary terms: 25</p>

<p>Yes almost 3500 links, mostly hand crafted and just recently reformated. Simply not possible without some decent potion of Kephra substitution-fu.</p>

<p>The rest are details . <a href="https://github.com/perl6/tablets/commits/master">A lot of them</a>, but mostly boring. And hej I started to work on tablet 2.</p>

<p>Further plans: complete Glossary and then FAQ. :)</p>]]>
        
    </content>
</entry>

<entry>
    <title>We’ve moved the YAPC::NA 2012 Job Fair and Expo into a...</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/weve-moved-the-yapcna-2012-job-fair-and-expo-into-a.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3223</id>

    <published>2012-05-10T04:00:06Z</published>
    <updated>2012-05-10T04:00:06Z</updated>

    <summary>We’ve moved the YAPC::NA 2012 Job Fair and Expo into a larger room to accommodate  demand. As a result we now have a few more tables available for those looking to exhibit. Contact admin [at] yapcna [dot] org if you’re...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<img src="http://27.media.tumblr.com/tumblr_m3s3e1E6pZ1qm5pt2o1_500.png"/><br/><br/><p>We’ve moved the <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> <a href="http://www.yapcna.org/job-fair" target="_blank">Job Fair and Expo</a> into a larger room to accommodate  demand. As a result we now have a few more tables available for those looking to exhibit. Contact admin [at] yapcna [dot] org if you’re interested.</p>
<p>Also, we this means we have more space for <a href="http://www.yapcna.org/conference/startup-row" target="_blank">Startup Row</a>. If you have a new startup and are looking to promote it, we’ll give you a free table at YAPC!</p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</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-10T00:08:16Z</published>
    <updated>2012-05-10T00: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>Considering NPW2012 rescheduling</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/claes_jakobsson/2012/05/considering-npw2012-rescheduling.html" />
    <id>tag:blogs.perl.org,2012:/users/claes_jakobsson//869.3219</id>

    <published>2012-05-09T21:27:03Z</published>
    <updated>2012-05-09T21:30:15Z</updated>

    <summary>Unfortunately there&apos;s been very few talk submissions and registrations for NPW2012 so far which could be due to it being the week before YAPC::NA and a bit of tight schedule from announcement to workshop. Therefore I&apos;m considering rescheduling it for...</summary>
    <author>
        <name>Claes Jakobsson</name>
        <uri>http://www.surfar.nu</uri>
    </author>
    
    <category term="npw2012" label="npw2012" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/claes_jakobsson/">
        <![CDATA[<p>Unfortunately there's been very few talk submissions and registrations for NPW2012 so far which could be due to it being the week before YAPC::NA and a bit of tight schedule from announcement to workshop.</p>

<p>Therefore I'm considering rescheduling it for later this year.</p>

<p>Comments, thoughts?</p>]]>
        
    </content>
</entry>

<entry>
    <title>Lots of Perl Authors</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/lots-of-perl-authors.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3221</id>

    <published>2012-05-09T20:00:05Z</published>
    <updated>2012-05-09T20:00:05Z</updated>

    <summary>From guest contributor brian d foy: Based on the YAPC::NA schedule, I noticed that we have quite a few Perl authors will be at the conference, representing at least 15 different Perl titles. There may be more authors and more titles...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>From guest contributor brian d foy:</p>
<p><span class="Apple-style-span">Based on the</span><span class="Apple-style-span"> </span><span class="Apple-style-span"><a href="http://act.yapcna.org/2012/schedule?day=2012-06-13" target="_blank">YAPC::NA schedule</a></span><span class="Apple-style-span">, I noticed that we have quite a few Perl authors will be at the conference, representing at least 15 different Perl titles. There may be more authors and more titles (please let us know so we can update this list), but this is quite impressive for a 400 person conference. Bring your favorite books to get them signed by your favorite authors. Track them down on Facebook or Google Images so you can know what they look like. I&#8217;ve already tracked down some images for you:</span></p>
<ul><li><a href="http://www.oreillynet.com/pub/au/1071" target="_blank">brian d foy</a>
<ul><li><em>Learning Perl, 6th Edition</em></li>
<li><em>Intermediate Perl, 2nd Edition</em></li>
<li><em>Mastering Perl</em></li>
<li><em>Programming Perl, 4th Edition</em></li>
<li><em>Effective Perl Programming, 2nd Edition</em></li>
<li><em>The Learning Perl Student Workbook</em></li>
</ul></li>
<li><a href="http://en.wikipedia.org/wiki/Randal_L._Schwartz" target="_blank">Randal Schwartz</a> (merlyn)
<ul><li><em>Programming Perl, 1st and 2nd Edition</em></li>
<li><em>Learning Perl</em></li>
<li><em>Intermediate Perl</em></li>
<li><em>Perls of Wisdom</em></li>
</ul></li>
<li><a href="https://plus.google.com/115292682483614648446/posts" target="_blank">Tom Christiansen</a> (tchrist)
<ul><li><em>The Perl Cookbook</em></li>
<li><em>Programming Perl</em></li>
</ul></li>
<li>Andrew Johnson
<ul><li><em>Elements of Programming with Perl</em></li>
</ul></li>
<li><a href="http://www.trout.me.uk/" target="_blank">Matt Trout</a> (mst)
<ul><li><em>The Definitive Guide to Catalyst</em></li>
</ul></li>
<li><a href="http://twitter.com/#!/petdance" target="_blank">Andy Lester</a> (petdance)
<ul><li><em>Land the Tech Job You Love</em></li>
<li><em>Pro Perl Debugging</em></li>
<li><em>Mac OS X Tiger in a Nutshell</em></li>
</ul></li>
<li><a href="http://www.linkedin.com/in/autarch" target="_blank">Dave Rolsky</a> (autarch)
<ul><li><em>Embedding Perl in HTML with Mason</em></li>
<li><em>RT Essentials</em></li>
</ul></li>
<li><a href="http://twitter.com/#!/scrottie" target="_blank">Scott Walters</a> (scrottie)
<ul><li><em>Perl 6 Now</em></li>
</ul></li>
</ul>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Statistics and data mining with Perl Data Language</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/statistics-and-data-mining-with-perl-data-language.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3218</id>

    <published>2012-05-09T08:00:06Z</published>
    <updated>2012-05-09T08:00:06Z</updated>

    <summary>Maggie Xiong will give a talk at YAPC::NA 2012 described as:  I will start with a refresher (or intro if this is your first encounter with statistics) on the core statistical reasoning, namely the null hypothesis and the partitioning of...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>Maggie Xiong will give a talk at <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> described as: </p>
<blockquote>
<p>I will start with a refresher (or intro if this is your first encounter with statistics) on the core statistical reasoning, namely the null hypothesis and the partitioning of variance, and go through a few standard statistical tests in PDL::Stats. We will also touch on how this core reasoning extends to typical data mining techniques such as linear regression and k-means cluster analysis.</p>
</blockquote>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Reddit API for Perl</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jeff_ober/2012/05/reddit-api-for-perl.html" />
    <id>tag:blogs.perl.org,2012:/users/jeff_ober//1318.3217</id>

    <published>2012-05-09T00:43:35Z</published>
    <updated>2012-05-09T00:55:39Z</updated>

    <summary>I have completed the meat of a reasonably complete API wrapper for Reddit. You can grab it at https://github.com/jsober/Reddit-API. It is pretty simple to use, and the docs are complete, but here is the gist: use Reddit::API; my $session_file =...</summary>
    <author>
        <name>Jeff Ober</name>
        <uri>http://www.artfulcode.net</uri>
    </author>
    
    <category term="reddit" label="reddit" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jeff_ober/">
        <![CDATA[<p>I have completed the meat of a reasonably complete API wrapper for Reddit. You can grab it at <a href="https://github.com/jsober/Reddit-API">https://github.com/jsober/Reddit-API</a>.</p>

<p>It is pretty simple to use, and the docs are complete, but here is the gist:</p>

<pre><code>use Reddit::API;

my $session_file = '~/.reddit';
my $reddit       = Reddit::API-&gt;new(session_file =&gt; $session_file);

unless ($reddit-&gt;is_logged_in) {
    $reddit-&gt;login('someone', 'secret');
    $reddit-&gt;save_session();
}

$reddit-&gt;submit_link(
    subreddit =&gt; 'perl',
    title     =&gt; 'Perl is still alive!',
    url       =&gt; 'http://www.perl.org'
);

my $links = $reddit-&gt;fetch_links(subreddit =&gt; '/r/perl', limit =&gt; 10);
foreach (@{$links-&gt;{items}}) {
    ...
}
</code></pre>
]]>
        

    </content>
</entry>

<entry>
    <title>Twitter Bootstrap templates for Dancer Applications</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/max_maischein/2012/05/twitter-bootstrap-templates-for-dancer-applications.html" />
    <id>tag:blogs.perl.org,2012:/users/max_maischein//227.3216</id>

    <published>2012-05-08T20:41:44Z</published>
    <updated>2012-05-08T20:48:18Z</updated>

    <summary> I&apos;m writing an internal application using Dancer. To give it a &quot;current&quot; look, I&apos;m using the Twitter Bootstrap CSS framework. A side effect is, that I wrote Dancer::Layout::Bootstrap, a set of Template Toolkit templates that import the Bootstrap layout...</summary>
    <author>
        <name>Max Maischein</name>
        <uri>http://corion.net</uri>
    </author>
    
    <category term="perlbootstrap" label="perl bootstrap" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/max_maischein/">
        <![CDATA[<p>
I'm writing an internal application using Dancer. To give it a "current"
look, I'm using the <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>
CSS framework. A side effect is, that I wrote <a href="https://github.com/Corion/dancer-layout-bootstrap">Dancer::Layout::Bootstrap</a>,
a set of Template Toolkit templates that import the Bootstrap layout
into Dancer. I hope that this will evolve into a way to add external data files
and maybe even layout templates to scaffolding frameworks such as Dancer.
</p><p>

<b>Pretty Pictures</b>
</p><img alt="Dancer Start Screen with Bootstrap" src="https://github.com/Corion/dancer-layout-bootstrap/raw/wiki/images/index.png">
<p>
The demo application has a tiny bit of logic to demonstrate the effect of showing "flash messages" with Bootstrap, the green bar you see in the below image:
</p><img alt="Dancer Screen with User and Message" src="https://github.com/Corion/dancer-layout-bootstrap/raw/wiki/images/user-login.png">
</p><p>
The issue why I haven't released this onto CPAN yet is that I'm not aware
of a better way to distribute ephemeral projects like templates and Javascript
via the CPAN toolchain than to package them into a module / application.
Maybe Dancer will come up with an API to load data from modules or to
create/update templates from modules, or somebody will point me
to an appropriate method to do such things in the comments.
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>CPAN Testers Summary - April 2012 - Pictures At An Exhibition</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/cpan_testers/2012/05/cpan-testers-summary---april-2012---pictures-at-an-exhibition.html" />
    <id>tag:blogs.perl.org,2012:/users/cpan_testers//73.3215</id>

    <published>2012-05-08T17:27:52Z</published>
    <updated>2012-05-08T17:30:21Z</updated>

    <summary>Firstly for this summary, I would like to extend a big thank to lestrrat, Mark Allen and Ron Savage for the first individual donations to the CPAN Testers Fund, as managed via the Enlightened Perl Organisation. The fund has been a long time coming, and we are really greatful to all the donations. If you&apos;d like to contribute something to help CPAN testers, whether as a one-off or a regular contribution, please see the EPO CPAN Testers Fund page for further details. We plan to list all donators on the CPAN Testers Sponsors website, as a further thank you to you all. Continuing the thank yous, a very special thank you goes to Bytemark Hosting, who host the main database and webserver for us. Back in March we were running out of space running the backups, which occasionally took out the websites. As such we approached the guys at Bytemark to see whether we could increase the disk space. Having re-evaluated their server offerings recently, they now provide the bigger hard drives for our package, and so we scheduled a day of time after Easter to allow us to upgrade. Unsurprisingly the databases took the longest to copy across, but once new disks were mirrored, we were up and running very quickly, with no issues at all. Very many thanks go specifically to Chris and David for making the upgrade so seemless and smooth. And finally, but no means least, a further thank you has to go to Webfusion. They are donating a server for CPAN Testers use, which we will be using to host a 2nd tier BACKPAN, CPAN and MiniCPAN, as well as some of the CPAN Testers family of websites. expect more details very soon. Last month saw some blog posts, particularly from Jonathon Swartz and Martin Evans, which looked at why the CPAN installer tools shouldn&apos;t run tests. While I can appreciate their perspective, the argument is slightly flawed. Their reasoning is based on the fact that DEB and RPM packages can be installed without testing, except the problem with this is that you&apos;re not comparing like for like. The Debian and RedHat package maintainers actually run the tests on your behalf before packaging and releasing the distributions. As such there isn&apos;t a need to test on install when using the DEB and RPM installers. The CPAN installers (cpan, cpanp and cpanm) are all retrieving the source distributions, not pre-prepared packages for a given platform. In this case you have no idea whether the distribution will install on your platform. However, as a way to avoid the testing stage for those who really want to skip it, it would be interesting to see whether the CPAN installers could make use of CPAN Testers to attempt to verify the platform, and see whether reports have been submitted and what success rate it achieved. Tests could then be skipped if the number of reports and success rate is above a (user) pre-determined value. CPANPLUS has alreay previously looked at this, but I don&apos;t believe it currently makes use of the new data structures. I would be interested to see if the maintainers of the installers wanted to pursue this. The JSON data is already there and the CPAN-Testers-WWW-Reports-Query-AJAX distribution aims to provide the statistics for a specific platform/perl. For several months I have been getting email, both privately and via the mailing list, highlighting missing reports. Although we are aware of the deficiencies of Amazon&apos;s SimpleDB, and David Golden is closer to moving to a new infrastructure, it is often difficult to find the specific reports we need to reimport. Recently Andreas sent me some very specific details, and as such I have now started running a regeneration script that can look for holes in the lists SimpleDB returns and make further requests for the reports within a shorter time limit. So far it has picked up several thousand missing reports from the last month. As such I will now start periodically running this agains the whole database to try and discover missing reports from the last 18 months. Until the new system is in place, I will now look at running the regeneration script at least on a weekly basis to catch any reports that slip through SimpleDB&apos;s very dubious net. Once again, I would also like to make you aware of the problems with the cpanstats SQLite database. We still have not been able to resolve the issues, and the lifetime for the SQLite download is going to be limited now. I haven&apos;t decided on a date to decommision the file, but if you are using it, please look into CPAN-Testers-WWW-Reports-Query-Reports and see how you can make use of it. The new API reduces the need to download Gigabytes of data, and reduces the overhead for producing the database considerably. If you have any problems with the API, please let me know. More news coming soon... Cross-posted from the CPAN Testers Blog...</summary>
    <author>
        <name>CPAN Testers</name>
        <uri>http://blogs.cpantesters.org</uri>
    </author>
    
    <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cpantesters" label="cpantesters" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="reports" label="reports" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="summary" label="summary" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/cpan_testers/">
        <![CDATA[<p>Firstly for this summary, I would like to extend a big thank to <strong>lestrrat</strong>, <strong>Mark Allen</strong> and <strong>Ron Savage</strong> for the first individual donations to the <a href="https://members.enlightenedperl.org/drupal/donate-cpan-testers">CPAN Testers Fund</a>, as managed via the <a href="http://www.enlightenedperl.org/">Enlightened Perl Organisation</a>. The fund has been a long time coming, and we are really greatful to all the donations. If you'd like to contribute something to help CPAN testers, whether as a one-off or a regular contribution, please see the EPO <a href="https://members.enlightenedperl.org/drupal/donate-cpan-testers">CPAN Testers Fund</a> page for further details. We plan to list all donators on the <a href="http://iheart.cpantesters.org">CPAN Testers Sponsors</a> website, as a further thank you to you all.</p>
<p>Continuing the thank yous, a very special thank you goes to <a href="http://www.bytemark.co.uk/">Bytemark Hosting</a>, who host the main database and webserver for us. Back in March we were running out of space running the backups, which occasionally took out the websites. As such we approached the guys at Bytemark to see whether we could increase the disk space. Having re-evaluated their server offerings recently, they now provide the bigger hard drives for our package, and so we scheduled a day of time after Easter to allow us to upgrade. Unsurprisingly the databases took the longest to copy across, but once new disks were mirrored, we were up and running very quickly, with no issues at all. Very many thanks go specifically to Chris and David for making the upgrade so seemless and smooth.</p>
<p>And finally, but no means least, a further thank you has to go to <a href="http://www.webfusion.com">Webfusion</a>. They are donating a server for CPAN Testers use, which we will be using to host a 2nd tier BACKPAN, CPAN and MiniCPAN, as well as some of the CPAN Testers family of websites. expect more details very soon.</p>
<p>Last month saw some blog posts, particularly from <a href="http://www.openswartz.com/2012/01/31/stop-running-tests-on-install/">Jonathon Swartz</a> and <a href="http://www.martin-evans.me.uk/node/136">Martin Evans</a>, which looked at why the CPAN installer tools shouldn't run tests. While I can appreciate their perspective, the argument is slightly flawed. Their reasoning is based on the fact that DEB and RPM packages can be installed without testing, except the problem with this is that you're not comparing like for like. The Debian and RedHat package maintainers actually run the tests on your behalf before packaging and releasing the distributions. As such there isn't a need to test on install when using the DEB and RPM installers. The CPAN installers (cpan, cpanp and cpanm) are all retrieving the source distributions, not pre-prepared packages for a given platform. In this case you have no idea whether the distribution will install on your platform.</p>
<p>However, as a way to avoid the testing stage for those who really want to skip it, it would be interesting to see whether the CPAN installers could make use of CPAN Testers to attempt to verify the platform, and see whether reports have been submitted and what success rate it achieved. Tests could then be skipped if the number of reports and success rate is above a (user) pre-determined value. CPANPLUS has alreay previously looked at this, but I don't believe it currently makes use of the new data structures. I would be interested to see if the maintainers of the installers wanted to pursue this. The JSON data is already there and the <a href="http://search.cpan.org/perldoc?CPAN::Testers::WWW::Reports::Query::AJAX">CPAN-Testers-WWW-Reports-Query-AJAX</a> distribution aims to provide the statistics for a specific platform/perl.</p>
<p>For several months I have been getting email, both privately and via the mailing list, highlighting missing reports. Although we are aware of the deficiencies of Amazon's SimpleDB, and <strong>David Golden</strong> is closer to moving to a new infrastructure, it is often difficult to find the specific reports we need to reimport. Recently Andreas sent me some very specific details, and as such I have now started running a regeneration script that can look for holes in the lists SimpleDB returns and make further requests for the reports within a shorter time limit. So far it has picked up several thousand missing reports from the last month. As such I will now start periodically running this agains the whole database to try and discover missing reports from the last 18 months. Until the new system is in place, I will now look at running the regeneration script at least on a weekly basis to catch any reports that slip through SimpleDB's very dubious net.</p>
<p>Once again, I would also like to make you aware of the problems with the cpanstats SQLite database. We still have not been able to resolve the issues, and the lifetime for the SQLite download is going to be limited now. I haven't decided on a date to decommision the file, but if you are using it, please look into <a href="http://search.cpan.org/perldoc?CPAN::Testers::WWW::Reports::Query::Reports">CPAN-Testers-WWW-Reports-Query-Reports</a> and see how you can make use of it. The new API reduces the need to download Gigabytes of data, and reduces the overhead for producing the database considerably. If you have any problems with the API, please let me know.</p>
<p>More news coming soon...</p>
<p>Cross-posted from the <a href="http://blog.cpoantesters.org/diary/145">CPAN Testers Blog</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::NA Planning Meeting Tonight</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/yapcna-planning-meeting-tonight-4.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3214</id>

    <published>2012-05-08T08:00:05Z</published>
    <updated>2012-05-08T08:00:05Z</updated>

    <summary>It&#8217;s the first Tuesday of the month, so that means it&#8217;s YAPC::NA Planning Meeting time. If you&#8217;re in the Madison area, or don&#8217;t mind a drive there is a YAPC planning meeting tonight at the Essen Haus at 7pm.  It&#8217;s...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>It&#8217;s the first Tuesday of the month, so that means it&#8217;s <a href="http://www.yapcna.org/" target="_blank">YAPC::NA</a> Planning Meeting time. If you&#8217;re in the Madison area, or don&#8217;t mind a drive there is a YAPC planning meeting tonight at the <a href="http://essen-haus.com/" target="_blank">Essen Haus</a> at 7pm. </p>
<p>It&#8217;s just over a month to YAPC::NA so we&#8217;ve got a lot to discuss tonight. The meeting will probably last until around 9pm, but you&#8217;re free to come and go as you please.</p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Floating Point Rounding Errors</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/ovid/2012/05/floating-point-rounding-errors.html" />
    <id>tag:blogs.perl.org,2012:/users/ovid//11.3211</id>

    <published>2012-05-08T00:20:38Z</published>
    <updated>2012-05-08T00:29:04Z</updated>

    <summary>In Chapter 3 of my book, I mentioned offhand that sometimes you expect the number 5, but you get 4.99999999998 instead. I sort of punted on the explanation because it seemed to be a touch of a distraction. Naturally, chromatic...</summary>
    <author>
        <name>Ovid</name>
        <uri>http://overseas-exile.blogspot.com/</uri>
    </author>
    
    <category term="book" label="book" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="floatingpoint" label="floating point" 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/ovid/">
        <![CDATA[<p>In Chapter 3 of my book, I mentioned offhand that sometimes you expect the number 5, but you get 4.99999999998 instead. I sort of punted on the explanation because it seemed to be a touch of a distraction. Naturally, chromatic called me on that and suggested I explain a bit more. As part of my explanation, I wrote a sample program that would print out the fractions used to build the mantissa of a number. For example, .75 is 1/2 + 1/4.</p>
]]>
        <![CDATA[<p>Here's the program:</p>

<pre><code>use strict;                                                                                                                                                                    
use warnings;

my $num  = .75;
my $bits = 32;

my $accumulator = 0;
my $bitstring   = '';
my @fractions;
for ( 1 .. $bits ) {
    my $denominator = 2**$_;
    my $fraction    = 1 / $denominator;
    if ( $accumulator + $fraction &lt;= $num ) {
        push @fractions, "1/$denominator";
        $bitstring .= "1";
        $accumulator += $fraction;
    }
    else {
        $bitstring .= "0";
    }
}
my $fractions = join " + ", @fractions;
print &lt;&lt;"END";
Fractions: $fractions
Bits:      $bitstring
Result:    $accumulator
END
</code></pre>

<p>So running that will print:</p>

<pre><code>Fractions: 1/2 + 1/4
Bits:      11000000000000000000000000000000
Result:    0.75
</code></pre>

<p>But using .3 for the number will print (formatted to fit the blog):</p>

<pre><code>Fractions: 1/4 + 1/32 + 1/64 + 1/512 + 1/1024 + 1/8192 
  + 1/16384 + 1/131072 + 1/262144 + 1/2097152 
  + 1/4194304 + 1/33554432 + 1/67108864
  + 1/536870912 + 1/1073741824
Bits:      01001100110011001100110011001100
Result:    0.299999999813735
</code></pre>

<p>I think this plus my accompanying text (not reproduced here) does a reasonable job of showing the rounding errors. Can I do better?</p>
]]>
    </content>
</entry>

<entry>
    <title>On CPAN Namespaces: Urban Namespace Planning</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/joel_berger/2012/05/on-cpan-namespaces-urban-namespace-planning.html" />
    <id>tag:blogs.perl.org,2012:/users/joel_berger//1022.3210</id>

    <published>2012-05-07T19:14:50Z</published>
    <updated>2012-05-07T21:34:49Z</updated>

    <summary>I&#8217;m having a bit of a conundrum over where to put my next GSL-based module. First some background. I&#8217;m already the author of a GSL-based module (see my first rant), the horribly named Math::GSLx::ODEIV2. This name reflects the same odd...</summary>
    <author>
        <name>Joel Berger</name>
        <uri>https://github.com/jberger</uri>
    </author>
    
        <category term="CPAN Love" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Feedback Wanted" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/joel_berger/">
        <![CDATA[<p>I&#8217;m having a bit of a conundrum over where to put my next GSL-based module. First some background.</p>

<p>I&#8217;m already the author of a GSL-based module (see my <a href="http://blogs.perl.org/users/joel_berger/2012/01/on-cpan-namespaces.html">first rant</a>), the horribly named <a href="http://p3rl.org/Math::GSLx::ODEIV2"><code>Math::GSLx::ODEIV2</code></a>. This name reflects the same odd namespacing conundrum that I find myself in again, as well as the sub-library name <code>odeiv2.c/h</code>.</p>

<p>Duke Leto has already essentially taken the whole <a href="http://p3rl.org/Math::GSL"><code>Math::GSL</code></a> namespace by brute-force SWIG-ing the entire library. Much of this work is <a href="https://metacpan.org/module/Math::GSL::Monte">not fully implemented</a>, but still parked. Further, since the namespace is already fairly crowded, its next to impossible to tell which parts are his and which would be anyone else&#8217;s. So lets call that out of the running. Note that I&#8217;m not complaining about his efforts, but it makes choosing a name harder.</p>

<p>I released my first module which uses GSL under the namespace Math::GSLx, but this is also less than desirable since it seems to be related to Math::GSL which it isn&#8217;t (at least not in the way that MooseX is related to Moose). Its also hard to type and hard to search for.</p>

<p>This leave me thinking about starting a new toplevel, which I do not undertake lightly. My two concepts are the simple <code>GSL</code> and the more namey <code>PerlGSL</code>. I say namey since toplevels with names like <code>Mojolicious</code> are not contentious since they represent more of a concept than an implementation detail (like <code>Net::</code>). </p>

<p>To be distinct from <code>Math::GSL</code> I would encourage users of <code>PerlGSL</code> to </p>

<ol>
<li>Make their interfaces Perlish rather than the utilitarian output the SWIG may produce</li>
<li>Give their module a name that is descriptive without squatting on the sub-library name or other implemenations</li>
</ol>

<p>In this way if two different authors want to provide an interface to GSL&#8217;s Monte Carlo multidimensional integrator, one might be <code>PerlGSL::Integration::MultiDim</code> (since there are a number of 1D integrators to be considered) and another might be <code>PerlGSL::Integration::NDim</code>.</p>

<p>Once I settle on a toplevel, I expect that I will &#8220;release&#8221; a namespace decriptor module (not unlike <a href="http://p3rl.org/Alien"><code>Alien</code></a>) describing this for future users. It might also eventually pull in the GSL library via <a href="http://p3rl.org/Alien::GSL"><code>Alien::GSL</code></a> once my <a href="https://github.com/jberger/Alien-Base"><code>Alien::Base</code></a> work permits. From there I would release <code>PerlGSL::Integration::MultiDim</code> and rechristen <code>Math::GSLx::ODEIV2</code> as <code>PerlGSL::DiffEq</code> (assuming the toplevel <code>PerlGSL</code>). </p>

<p>Anyway, I&#8217;m interested in your comments, so please let me know!</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Acme::MetaSyntactic is back!</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/2012/05/acmemetasyntactic-is-back.html" />
    <id>tag:blogs.perl.org,2012:/users/book1//208.3208</id>

    <published>2012-05-07T17:15:00Z</published>
    <updated>2012-05-08T05:31:21Z</updated>

    <summary>After a hiatus of five and a half years, Acme::MetaSyntactic is finally back! For this version, I have split the distribution in two: the &quot;core&quot; modules, available in the Acme-MetaSyntactic distribution, the historical themes (with a few additions), available in...</summary>
    <author>
        <name>BooK</name>
        <uri>http://www.bruhat.net/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/book1/">
        <![CDATA[<p>After a hiatus of five and a half years, <a href="https://metacpan.org/module/Acme::MetaSyntactic">Acme::MetaSyntactic</a> is finally back!</p>

<p>For this version, I have split the distribution in two:<br />
<ul><br />
	<li>the "core" modules, available in the <a href="https://metacpan.org/release/Acme-MetaSyntactic">Acme-MetaSyntactic</a> distribution,</li><br />
	<li>the historical themes (with a few additions), available in the <a href="https://metacpan.org/release/Acme-MetaSyntactic-Themes">Acme-MetaSyntactic-themes</a> distribution. I will slowly update it (weekly?) with the themes I received in 2005-2006 and didn't include at the time.</li><br />
</ul></p>

<p>The main change is the creation of the <a href="https://metacpan.org/module/Test::MetaSyntactic">Test::MetaSyntactic</a> test module, that makes it much easier for theme authors to create their own theme distributions, and check that they follow the rules for Acme::MetaSyntactic themes.</p>

<p>Anyone willing to create new Acme::MetaSyntactic themes is invited to simply create<br />
their own distribution (no need to send me patches any more!), and stick in a t/metasyntactic.t test file with the following content:</p>

<p><code><br />
use Test::MetaSyntactic;<br />
all_themes_ok();<br />
</code></p>

<p>Simply email me so that I can update the  <a href="https://metacpan.org/module/Bundle::MetaSyntactic">MetaSyntactic bundle</a>.</p>

<p><small>(In other news, <a href="https://metacpan.org/module/BOOK/Acme-MetaSyntactic-Themes-1.000/lib/Acme/MetaSyntactic/french_presidents.pm">France has a new president</a>.)</small></p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::NA Will Be Televised!</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/jt_smith/2012/05/yapcna-will-be-televised.html" />
    <id>tag:blogs.perl.org,2012:/users/jt_smith//242.3209</id>

    <published>2012-05-07T16:00:05Z</published>
    <updated>2012-05-07T16:00:05Z</updated>

    <summary>We wanted to do something that, to our knowledge, has never been done before at YAPC, so I&#8217;m pleased to announce that YAPC::NA 2012 will be streamed live out to the internet for free! We will have professional videographers in...</summary>
    <author>
        <name>JT Smith</name>
        <uri>http://www.plainblack.com/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/jt_smith/">
        <![CDATA[<p>We wanted to do something that, to our knowledge, has never been done before at YAPC, so I&#8217;m pleased to announce that <a href="http://www.yapcna.org" target="_blank">YAPC::NA 2012</a> will be streamed live out to the internet for free! We will have professional videographers in all four of our main track rooms (not the workshop or hackathon rooms). Those feeds will be streamed live to the internet so that anyone who couldn&#8217;t make it to YAPC will be able to watch in real-time for free. </p>
<p>These feeds will also be recorded, however, we don&#8217;t know yet what to do with those recordings. We&#8217;ll probably upload them to YouTube or some other online video service, but we&#8217;re hoping to get some volunteers to help with that task, as we&#8217;d like to automate that process as much as possible. If you have experience with this, and want to help, please email admin at yapcna dot org. </p>

         <p>[From the <a href="http://blog.yapcna.org">YAPC::NA Blog</a>.]</p>

    ]]>
        
    </content>
</entry>

<entry>
    <title>Perl 6 and D separated at birth</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/brad_gilbert/2012/05/perl6-and-d.html" />
    <id>tag:blogs.perl.org,2012:/users/brad_gilbert//619.3186</id>

    <published>2012-05-07T14:39:05Z</published>
    <updated>2012-05-02T15:35:58Z</updated>

    <summary>When I first learned of Perl6 and D, They seemed to me to have similar sensibilities. One of the motto&#8217;s of the Perl community is to &#8220;Make easy things easy and hard things possible&#8221;. I find it interesting that D...</summary>
    <author>
        <name>Brad Gilbert</name>
        
    </author>
    
    <category term="perl6d" label="Perl6 D" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/brad_gilbert/">
        <![CDATA[<p>When I first learned of <a href="http://perl6.org">Perl6</a> and <a href="http://dlang.org">D</a>, They seemed to me to have similar sensibilities.</p>

<p>One of the motto&#8217;s of the Perl community is to &#8220;Make easy things easy and hard things possible&#8221;. I find it interesting that <a href="http://dlang.org">D</a> actually does that to some extent. It has built-in resizeable arrays, and associative arrays for example.</p>

<p><a href="http://perl.org">Perl</a> has always tried to shield the programmer from memory management. <a href="http://dlang.org">D</a> also does that by having a garbage collector built into the language.</p>

<p>Neither language has been designed for complete backwards compatibility, because it has proven limiting in their respective ancestry. ( Perl4 -> Perl5 and C -> C++ )</p>

<p>Both <a href="http://www.wall.org/~larry/">Larry Wall</a> and <a href="http://www.walterbright.com">Walter Bright</a> decided that different things should look different. This helps the compiler to parse them, but also helps the programmer to tell the difference.</p>

<p>I suggest that everyone who wants to learn a new programming language, learns both of them. Even though there is a large overlap in design ethos, they don&#8217;t have much overlap in actual design.</p>

<hr />

<p>Of all the <em>new</em> languages, these two are the only ones that don&#8217;t feel like toys, or minor improvements of earlier languages.</p>

<ul>
<li>Go</li>
<li>Coffee Script</li>
<li>Dart</li>
<li>C#</li>
<li>F#</li>
</ul>
]]>
        

    </content>
</entry>

</feed>

