Give your modules a good abstract

If you're looking for something to release on CPAN day, check the abstract for your modules, and make sure they have a good abstract. The abstract should not only be compliant pod, but should succinctly describe what your module does. The name and abstract are often the first thing that potential users see, so make them count.

Conference Schedule

We are very proud and delighted to announce the conference schedule!

http://act.yapc.eu/ye2014/schedule

We've tried our hardest to balance the wealth of topics that our lovely speakers have proposed. But please let us know if you notice any issues with scheduling, as we will be fine-tuning this over the next weeks.

Dezi::App completes Doozi release

The final dependency for Dezi has been released as Dezi::App on CPAN. In addition Search::OpenSearch::Engine::Lucy 0.400 has been released which supports Dezi::App.

Read more about it on the Dezi site.

Easily add tab completion feature to your CLI program using Getopt::Long::Complete

There are several modules to help you create command-line program with tab completion feature, including Getopt::Complete and Perinci::CmdLine (and its new lightweight alternative Perinci::CmdLine::Lite. Now here's another one. Introducing Getopt::Long::Complete.

This module is a drop-in replacement for the venerable Getopt::Long. Most of the time, you should be able to take your existing script which uses Getopt::Long, replace the use statement use Getopt::Long; with use Getopt::Long::Complete and suddenly your script supports tab completion.

For more details, see the module's POD.

The ghost of CPAN Days past

How many releases were done on previous CPAN Days? I know you've been dying to find out, so here are a few graphs, and I'll also compare with the top days in CPAN history. If 100 people each do one release on this coming CPAN Day (16th August, UTC), then it'd be the best CPAN Day yet. If between us we manager 151 releases, that would be the highest day ever.

CPAN and PAUSE record their timestamps in UTC, as all sane systems do. So if you're planning to release on CPAN, please take that into consideration.

One Month To Go!

There’s only one month left until YAPC::Europe 2014. The conference takes place on the 22nd - 24th of August in Sofia, Bulgaria.

We’ve done our best to keep the cost of the conference low and if you still haven’t bought a ticket - don’t delay, buy it today!

  • Regular price 99 EUR
  • Student price 60 EUR
  • Business price 500 EUR

Bulgaria, Romania, Macedonia, Serbia and Baltic states(proof of citizenship is required)

  • Regular price 60 EUR
  • Student price 35 EUR (student card is required)

Once you’ve bought your ticket remember to take a look at the scheduled talks and “star” the ones you’re planning on attending. The finalised schedule will be ready by the 1st August.

Looking forward to seeing you in Sofia!

A quick and very dirty pastebot.

I started a new job. One that requires me to leave the house on a regular basis. And talk to people in the day time, in person. In fact I'm finding it not much different to normal. It seems that instant message is the first line of communication, and people will come and talk to you if you have mutual cycles available at the time. Plus there's a contingent of remote staff, so IM is still important.

When you have IM communication between programmers, you need a pastebin as well. The new guys are using bitbucket that doesn't have that facility, and I wasn't happy with suggesting using a public pastebot. So here's something that does the job. I don't think it's ideal but it achieves 90% of the job in a tiny amount of time.

How to create an installable web application with config/data/bin stuff?

I'm writing a Dancer2 web application which contains configuration (config.yml, development.yml, production.yml, and-so-on.xml), application data (js, css, templates) and application binary (Perl bootstrapper, Perl tools) parts.

Usualy a web distribution is installed via extracting a ZIP file and there you have your e.g. /public, /environments, /lib and /bin. You start your web application with perl ./bin/app.pl or similar.

What I currently think about is to actual install a Dancer2 web application like normal (linux/unix) applications would do. So /public would end up at /usr/share/mydist/public, /views would be /usr/share/mydist/views, /environments including /config.yml are located at /etc/mydist/environments and /etc/mydist/config.yml. /logs moved to /var/log/mydist and /lib is system wide installed like you install a normal dist with cpan. Scripts in /bin would "installed" to /usr/bin

Assuming I use Dist::Zilla to create dists how could I achieve this?

I remember there was a previous discussion about installing web application with CPAN but I can't find it anymore. Neither - IIRC - was the discussion concluded.

CPAN Day - 16th August!

Celebrate the inauguration of CPAN on the 16th August by doing something related to CPAN: release something, blog about your favourite module, or email its author thanking her or him.

Between Learning and Doing

ive-made-a-huge-mistake.gif

A long time ago, when I started building my first video game server for Double Cluepon, my video game company, I did a bad thing. I looked at the AMF library for Perl and Python and decided that Python's looked better. I had always meant to learn Python, and this felt like the perfect opportunity. It had cooperative multitasking (Twisted) and it had an ORM (SQLAlchemy), so along with the messaging format (PyAMF), I had everything I needed to build a server for a Flash MMO (later migrated to AIR).

Let me reiterate my mistake: While under time constraints, I chose to learn a new programming language. I didn't realize my mistake until it was too late.

Communication Channels

As YAPC::EU draws closer, here are some ways to stay informed about the latest news and views about the conference, talks, venue, and city:

  • all major news items will be announced here
  • we are tweeting as @yapceu
  • all news items will be posted on the front page of our main website
  • all registered attendees should shortly be added to a mailing list for important announcements
  • you can see what other attendees are discussing and join in on our wiki
  • ... and if you still can't find the information you need, then Contact us!

Drinking the Data::Printer Kool-Aid

A long-time user of Data::Dumper, here. I have seen several talks about using Data::Printer in cases when you want the output to be readable by humans, not machines. I've always meant to eventually get around to checking it out. Today was that day.

I had a huge data structure at work, nested many layers deep and full of repetition with slight variances. My job was to find out what was wrong with it. After looking at the Dumper output for about 10 minutes, I became aware that I had actually stopped looking at the Dumper output a few minutes prior and my mind had wandered somewhere else (squirrel!) So, I decided to see if Data::Printer made the job any easier.

Net:: vs WWW:: vs WebService::

(This blog post will serve as a document that I point to for people to read when I suggest people renaming their third-party-API modules [although not necessarily always from Net:: to WWW:: or WebService::]. I'm currently on a Questhub quest that does exactly this.)

Perl being a glue language, people write many modules to connect to third-party API services. These days, most public API services are web-based. What namespace should you pick for your module?

Net::

A lot of people still use Net:: as a namespace. For example: Net::GitHub, Net::Amazon::Glacier, Net::Backpack.

This namespace is not recommended by PAUSE module naming guideline because it's supposed to be used for modules that implement various network protocols, e.g. Net::DBus, Net::Ping, Net::DNS.

July 2014 Grant Proposals

We have received two proposals for this round. Take a look and give them feedback. Your input is important for us to determine how to use the community money.

If you have a grant idea but missed this round, you can still submit a proposal now. We will review them in the Septermber round.

First Round of Talks Accepted - But Still Room for More!

We're very happy to announce a fantastic selection of talks: Perl in industry and the media, web frameworks new and old, new syntax, the Perl job market, and of course, the latest on Perl 6!

http://act.yapc.eu/ye2014/talks

If you are now kicking yourself for not submitting a talk, fear not AND SUBMIT!

We are juggling the schedule at http://act.yapc.eu/ye2014/wiki?node=Schedule and will release the timetable over the next weeks. We will do our best to squeeze in some more speakers, and having extra talks really helps us plan!

  • we'd love to see more talks from new speakers! (20 minute or 5 min lighting talks are best)
  • (and of course we always love talks from veteran speakers)
  • YAPC::EU is an inclusive conference (race, gender, sexuality, ability, faith, etc.) We're already delighted to have a good selection of talks by female speakers, for example, but We Can Do Better, so please help us by submitting a talk!

If you have submitted talks, you should have received an email from us listing which ones have been accepted. Please confirm that you will give the talk as soon as possible!

YAPC::EU is taking place from Friday, August 22nd till Sunday, August 24th in Sofia, the capital of Bulgaria.

Guest Speaker Peter Rabbitson at Perl::Dancer Conference

We managed to get Peter Rabbitson also known as ribasushi as guest speaker for our conference in October.

Peter is very famous for being the master mind and release manager for DBIx::Class, the most popular ORM in the Perl world. He also plays an important role in the Perl community and goes long ways to help people.

Getting experts to the conference isn't possible without sponsors, please check if you can support us. Every contribution will be helpful, please checkout our sponsoring page and/or contact me by email.

Please note that amount of tickets for the conference are limited, better register now and save money with early bird prices!

If you want to hear about a specific subject from Peter, please let us know and we will pass your suggestion on to him.

Enjoy
Racke

Asynchronous Task Distribution with AnyEvent and ZeroMQ

Some months ago i wrote how to (ab)use your database as a messagequeue in order to distribute tasks among worker-processes.

"From your code, it also looks like having more than one demon will put you at risk of processing the same jobs more than once." (Jerome Eteve)

"Abuse" is the right word. The moment you hit more than three concurrent jobs, you will see a nasty slowdown ..." (rob.kinyon)

The comments made pretty clear that this was not a good idea and I promised to clean up. (Note: it worked pretty well but only as long as you didnt upscale the system)

Here we go!

I decided to go with ZeroMQ as a messagequeue and ZMQx::Class + AnyEvent.

Processing tasks takes some time in my project (5 seconds up to 20 minutes) and are of varying priority. So I cannot have some low priority task delay incoming high priority tasks.

Meta-Meta-Meta Problem Solving

OK, so I'm working on a project and some unexpected bug crops up. It turns out to be a bug in a dependency. I could work around it, but...

I happen to maintain the dependency, so better to fix it at source. Done. Let's set up Travis testing for this dependency too...

Oh no, build fails. Test::Modern won't install on all the versions of Perl I'd hoped it would. (In particular, Perl 5.6.) Why? Turns out some of Test::Modern's dependencies use Module::Build and Module::Build::Tiny, and they require Perl 5.8.

So let's try out Ingy's Alt concept and release alternative distributions of these dependencies which will install cleanly on Perl 5.6. Hence Alt::Test::Warnings::ButEUMM (which led to this) and Alt::Module::Runtime::ButEUMM.

Foster Care

Today I contributed to Scott Walters’ Kickstarter project.  You may have read Scott’s own blog posts on the topic.  Executive precis: for $10,000, Scott will complete work on the latest version of WebGUI, a world-class CMS written in Perl.

I’ll freely admit that I didn’t contribute that much, mainly on account of me not being rich.  As I’m fond of pointing out here, I’m just a regular Joe working-class programmer.  But, at the same time, Perl has been very good to me throughout the years, and I’m not averse to giving a little back when I can.  And, as it happens, right now I can.

The perversity of traditional Perl 5 dereferencing syntax

I wrote this article almost a year ago as part of an omnibus reply to a bunch of different posts from a perl5-porters thread. I never finished all parts of the reply and thus never sent this part either, but in contrast to the other parts of this stillborn mail, I think this one is worth reading. So asked Johan Vromans:

It still escapes me why @* was chosen instead of the much more logical []:

$h{a}[0]->[]

The reason is that there are a number of problems to solve with any new deref syntax:

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.