On that page you can grab the tutorials that are available on Perltuts.com as mobi or epub book.
It was easy to integrate those tutorials: Write a small script that gets all tutorial names, store them in a cache and list them on the webpage. Write a source plugin for EPublisher and that's it!
Thanks to Mojolicious it's very easy to extend the webapp and the script to fetch the tutorial names was written within "a few minutes". For future web scraping tasks I'll use Mojo::UserAgent...
If you have ideas what sources we can integrate, please drop us a line at perlybook@perl-services.de!
Installing DB_File has been a pain, especially when binaries for db is no where to be found and instruction is rare. After spending a lot of time going through Google search result, I finally found this good instruction.
Since my goal is to improve the compiler optimizer (staticly with B::CC, but also the perl compiler in op.c) I came to produce these interesting benchmarks.
So, as I said at YAPC::EU 2012, one thing that remains to be done before Dancer
2 can be released : migrating the plugins, making sure they work with it.
To be able to do that, what's best than an automatic testing facility ?
The goal is to get all Dancer plugins, test them with Dancer1, and Dancer2, and
produce a report, to check which one fails and need fixing.
Step 1. Get the list of Dancer plugins.
Easy ! let's use Metacpan. After searching, I finally
got a way to get the list of all modules that depend on Dancer. Then filtering
out the ones that don't contain "Plugin" will do the trick.
If you've ever had the pleasure of poking around in your WWW::Mechanize or LWP::UserAgent cookie_jar, you'll know it's not an entirely painless process. It's certainly not impossible, but it feels a bit like jumping through hoops. The cookie_jar functionality in LWP::UserAgent and the modules which inherit from it is provided by HTTP::Cookies. Before I go any further, I'd like to thanks Gisle Aas for HTTP::Cookies, which is a very important bit of code. This isn't a complaint about HTTP::Cookies, but rather an attempt to make it even more accessible.
Before we do anything with cookies, let's make one request to ensure we have some cookies in our cookie_jar.
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get('http://www.nytimes.com');
GraphViz V 2.11 adds support for vdx (Visio) output, provided you've patched the underlying Graphviz code first. The patch is presumably downloadable from the Graphviz site. I run Debian so I did not test it, but the user who requested this patch assures me it works perfectly.
GraphViz2 V 2.04 requires Perl V 5.14.2 for utf8 support. Also, the code handling subgraphs was incomplete, and a small but significant set of patches there should now support all expectations for subgraphs.
Sample output for all demo programs. Search that page for 'rank.sub.graph' to see the new demos' output.
There has been quite a lot of discussion on p5p about subroutine signatures, so I figured I'd lay out my current vision here with as much details as I can. As more of this gets hashed out on p5p, I expect I'll add notes at the bottom (can I do that?) pointing to a blog entry for Subroutine Signatures - my Plan (v.2), etc.
All of this is what I'm working on, but I don't have a commit bit, so it's not going anywhere without getting thoroughly vetted and blessed first.
I'm posting my code at http://github.com/PeterMartini/perl, in the peter/signatures branch (meant to be kept in tandem with doy/subroutine-signatures).
GOAL:
Part 1:
In the scope of use feature "signatures" (or whatever)
sub foo($bar,$baz) {}
equivalent to sub foo { my ($bar, $baz) = @_; }
sub foo($bar,@baz) {}
equivalent to sub foo { my ($bar, @baz) = @_;}
sub foo($bar,%baz) {}
equivalent to sub foo { my ($bar, %baz) = @_;}
This is a summary of the things I had to do, to add a simple test case for a script that I added to one of my distributions. It's taken over 2 elapsed days, 3 developer releases, and two sessions on IRC, to get to the end. I'm writing this up (a) so I don't forget, and (b) in case it's useful to someone else, and (c) in case the peanut gallery can point out any further gotchas I've missed.
Sometimes when scanning the feed of module releases from MetaCPAN, I see a module which I don't have a use for, but which I think I'd better make a note of.
I keep these notes in a TiddlyWiki, and I've just extracted them as a new page here .
HTTPS-Everywhere is a Firefox and Chrome extension brought by the EFF to automatically use https:// URLs instead of http:// if the site supports that. Think about what happens when you type http://github.com instead of https://github.com/ in your address bar.
So I added rulesets for PAUSE, BitCard and MetaCPAN.
Anyone who has been following my progress on Alien::Base knows that in the past few months I have been struggling to nail down the final problem, namely Mac’s library name problem. The short story is, on Mac, the library has the full path to the module baked into the library during compilation. My problem is that I don’t tell it the correct path during compilation. Why?
I've been using Storable's dclone for years, but there's a module on CPAN called Clone that is said to be much faster. However, it doesn't seem to work.
If you want to build a ship, don't drum up the men to gather wood,
divide the work and give orders. Instead, teach them to yearn for
the vast and endless sea.
-- Antoine de Saint-Exupery
Imagine that, the day the new machine arrives,
you are maintaining a parser.
Your parser
is the current state of the art
-- hand-written recursive descent.
The new computer will
replace your staid old von Neumann box is not
just a quantum computer.
It's fully non-deterministic.
You can superposition any time you'd like,
and then "unsuperposition" to restart.
And when superpositioning, you can can examine
all
the possibilities, not just one.
How would you rewrite your
recursive descent logic to take advantage of this new hyper-quantum computer?
Actually, this is exactly the same question that
Marpa
poses
to you today.
Because for all classes of grammar in practical use, including
the LL(k) grammars parseable by recursive descent,
Marpa
is efficient non-determinism.
Gabor Szabo realized that it's very easy to dare me to do things and then making them available for Perl. I'm somewhat like Marty in Back to the Future - "I am not chicken!"
So, now we have LDTP. However, it needs your help. What is LDTP you ask? Good question!
After our recent launch of a free perl hosting for dancer and other frameworks (feel free to try it out at http://1.ai or see it live in this retro page at http://hulk.1.ai/perl) I was thinking on how programmers choose one or another language to create web apps. I am not talking just about more experienced programmers that would certainly stick with what they know already - but beginners, students, the new geeks.
One of the most common complaints about the Perl MongoDB driver is that it tries to be a little too clever. In the current production release of MongoDB.pm (version 0.46.2 as of this writing), all datetime values retrieved by a query are automatically instantiated as DateTime objects.
The next release of MongoDB.pm will fix this problem, allowing for nearly tenfold speed increases under some circumstances. The details are available on my blog here: Fast datetimes In MongoDB.
The original driver for this blog was publishing short(ish) "summaries" of that looong log. Since starting it a few weeks ago things have been experimental, erratic, rapidlyevolving. Today things settled nicely.
From today forward, to see a "summary" (subset) of any day's log, just visit that day's log page and click the "summary" link that appears near the top, typically near Camelia. (Or, to save a click, here's a direct link to yesterday's summary.)
Q. Why is the summary blank?
A. Because neither you nor I have yet added some lines to the summary for the day you're viewing.
Q. How do I add lines to the summary for the day I'm viewing?
A. Make sure you are viewing the full log. Click the "Enable summary mode" link (below the words "All times shown according to UTC."). Click the checkbox of the line(s) you want to add. Click the "Save summary changes" link. Drink a beer.
Q. Does that mean no more #perl6 summaries at this blog?
A. Good question.
Q. Are you going to bring back the organized breakdown such as was done for 26 #perl6 summaries for 2012-09-02 or the earlier weekly summaries?