At my $job, we often use files and logs as the cheap way of managing queues of data.
We then read them using Log::Unrotate module, but this is the topic for another post.
Anyway, it's important that all items written in log are never lost and never get corrupted.
So here is the task: write serialized data to file from multiple processes.
Sounds easy, right?
Hey, folks. Thank you all for submitting so many excellent talks and making our lives difficult regarding choosing which to accept! Our main schedule is rather finalized now, any cancellations notwithstanding. That said, we still need lightning talks!
In addition, I would like to remind everyone that early bird registration closes at 23:59:59 EST5EDT on 2011-05-06. So register now if you want that low rate!
So it's been over a year since I posted anything here. I've been working on Perl code at a big company, and I've mostly been enjoying myself. It's not easy diving into a large legacy application, especially when you have strong opinions about legacy code. But there are plenty of crunchy problems to sort through.
I'm thinking about dumping more random Perlish thoughts here. My Perl world includes Parrot and Rakudo, so some connections may be tangential at best.
Tomorrow I leave for the São Paulo Perl Workshop. I thought for a bit on what I would want to talk about, which always depends on the audience. For this one, I'll go for the general audience.
Why I Love Perl: The CPAN Ecosystem
The Comprehensive Archive Network, or just CPAN, isn't any one thing.
It means different things to different people, and even different
things to the same people in different contexts. CPAN is a repository,
or a website, a client, and many other things that a diverse and
disconnected group of people have created to give people many ways to
get or think about reusable Perl code where no one is in charge and
there's no one person controlling all of the action. Find out how the
parts relate to each other, what the different parts can do for you,
and where to go to get help.
I'm also going to Rio after São Paulo and we'll see what we can arrange for a social event (or a talk) there too.
As you might have heard, my MetaCPAN project has been accepted for the Google Summer of Code. If you are unfamiliar with the proposal, you can find it here.
The first few weeks are called the "bonding period". In this period the student is supposed to bond with their mentors and the community, read docs and get to know the project.
My tasks for this period are mainly to contact maintainers and author of CPAN Ratings, CPAN Testers and CPAN Vote to figure out how to include their data in the index. With CPAN Testers this was quite easy. They provide a SQLite database that includes test results for each release on the CPAN. Unfortunately we were not yet able to contact Ask, who is maintaining the CPAN Ratings page. There is a CSV file that includes some data, but it's heavily aggregated and thus not very useful for MetaCPAN.
In episode #15 of Hypercritical, John Siracusa presented Perl in (largely) a very positive light to what I assume is mostly a non-Perl audience.
I'm including my notes on the discussion below, but I recommend listening to the podcast yourself to form your own impression: http://5by5.tv/hypercritical/15
Geeks love a meritocracy, but languages often become popular for reasons other than their technical merit. Why do languages become popular? They are the official language of a platform. They promise the ability to write once, run everywhere. They enable a new type of application (i.e. CGI). They allow you to use the hot new thing (Rails). It's your only choice (JavaScript, Flash).
To apply for either job send your resume in PDF or plain text AND
samples of your Perl code to resumes AT PerlHunter.com.
If your shop has a Perl job you want filled, send it to me as well. I
have placed over 30 Perl developers all over the country and can help
you out. You save time and money by doing reading fewer resumes, and no
wasting hours of time interviewing candidates who have no chance of
being hired. Read more about my services at PerlHunter.com.
Yesterday was May Day, also known as Labor Day. We finished a development release cycle successfully and it was about time to release a stable.
This release, as promised, is named after someone who has been in the Dancer community for a while and indeed deserved the recognition: Yanick Champoux. You can find the first commit by Yanick in the 4th development release of 1.2000 - wayyyy back. Since then he has also written quite a bit on Dancer as well, showing off how to use Dancer in production environments and having a lot of fun with it at the same time.
Yanick has made a major contribution to this release - the megasplat route ability allows for much more sophisticated chained actions. By using a double asterisk in the route syntax, you're able to get the remainder of the route path , already split, at your convenience. Then you can reroute using pass(). Here is an example from the documentation:
I have released Template::Simple .04 to CPAN. This is a major update
with the addition of compiled templates, a runnable cookbook script and
a benchmark script. Templates can be compiled and run much faster. The
benchmark shows nested templates rendering up to 34 times faster than
Template::Toolkit and faster than Template::Teeny. If you want to flame
about the speed issue, you are better off adding entries to the benchmark (it needs a
redesign as it was sent to me) and showing faster templating
examples. The cookbook is a runnable script showing many examples of how
to use T::S along with pod describing each example.
The design philosophy of T::S is total isolation of data logic from the
template itself. A template designer can work independently from a coder
who works on the data. Also this give more flexibility you can mix and
match different templates with different data trees without rewriting
either. All the common idioms are supported including nested data and
templates, include files, loops, conditionals, etc. You can also customize behavior with code callbacks in the data. The cookbook script
in extras/ will get you started with all of the idioms. And with the
compiled templates you now get the fastest rendering.
Апрель выдался богатым на события в perl сообществе. Чего только стоит первый за три месяца релиз Rakudo Star (2011.04). Об этом и не только мы поговорим в очередном выпуске YAPP.
Если и у вас есть какие-то новости, которые кажутся вам интересными, присылайте ссылки на них и мы с удовольствием озвучим их.
Свои предложения Вы можете писать в
twitter: twitter.com/yapp_ru,
по почте: yapp_ru@gmail.com,
в jabber: yapp@demond.org
или в комментариях к данному анонсу на blogs.perl.org по адресу: https://blogs.perl.org/users/perl_demon
By popular demand and after careful considerations, Dancer has been accepted to GSoC. Two proposals were submitted and one was accepted, so we will be happily participating.
The accepted proposal is by Carlos Ivan Sosa (gnusosa), you can read his blog post right here on his blog, which is powered by Dancer itself. :)
Carlos will be focusing on factoring out the stand-alone script into a module in core, and then inserting there all the logic of the scaffolded maintenance scripts, so upgrading will be easy as pie (or something else which is really easy).
The major point of reference for this is Catalyst, and it is probably of no coincidence that Catalyst has done such a cleanup of their own in a previous GSoC, so this is quite the circle closure!
Congratulations to Carlos are in order, and keep your eyes on his blog since he intends to update the community on his progress.
In version 0.36, $scrolled_search->next() returned the next $size results. Now, by default it returns the next one result, which makes it easier to write:
Thanks to a post on Hacker News, I got access to the beta test for DotCloud.
In this blog post, I show how I got started and successfully deployed a small PerlDancer web app to the service.
I was extremely pleased with how easy it was to do the above, and wanted to share it!
Deploying a Perl Plack / PSGI application to DotCloud hosting is very easy.
Following the announcement that DotCloud are now supporting Perl I managed to get a test account and had a play.
I already had python installed on my Mac so the steps were...
sudo easy_install dotcloud
dotcloud create leotest
dotcloud deploy --type perl leotest.www
git://github.com/ranguard/plack-example.git
cd plack-example/multiple_roots/
dotcloud push leotest.www ./
open http://www.leotest.dotcloud.com/
My multiple_roots test is a slightly contrived configuration, using Plack::App::TemplateToolkit with multiple roots for static and dynamic content,
this is configured in the app.psgi. I had put it together when I was developing Plack::App::TemplateToolkit so thought it was a good example to test.
The only issue I had was that the default configuration of DotCloud serves anything in ^static directly through nginx so I had to rename my directories to get it to work. Previously I didn't have a Makefile.PL as this had just been for testing, I created one, so the dependencies could be installed.
I want first-class classes that I can store in a variable. I want to be able to load multiple and different versions of a distribution. As part of that, I'd want to load distributions, not particular modules. I'd get to the modules through the distribution. I haven't really thought about the syntax for this, though.
Quickly now, without too much thought about it (unless you insist), reply with the top three things you would change about Perl (the language, not the community) if you could.