Yandex.Direct: our successful anti-modern Perl

Oleg Komarov will give a talk at YAPC::Europe 2012 described as

Yandex is the leading internet company in Russia, operating the most popular search engine and the most visited website. Yandex.Direct is a system for the placement of text-based advertising. Yandex.Direct web interface is a mature Perl project with lots of users and data, a big codebase and a large team.

We always have lots of new features to implement, maintenance problems to solve and legacy code to refactor.
We'd like to give a brief talk on how we do it. Using Perl, of course.

A brief introduction to Prima

Prima is a graphical toolkit actually developed and maintained by Dmitry Karasik, now at version 1.34. If offers a large set of feature that makes it a good choice for anyone looking for an event driven environment.

Prima basic concept is that of building an application as a process of creating windows, adding any needed menus, childs, images, properties, and relationships and then starting the whole.

The basic use directives to use Prima are:

use Prima;
use Prima::Application;
use Prima::ComboBox;

and so on or using the qw syntax:

use Prima qw (Application ComboBox);

When we have available the modules we could start creating a window that will be the main window of our application.

Introducing Class::ConfigHash

A while ago I saw a post by Ovid on boxing hashes for configuration in Dancer. The idea seemed pretty neat, and I found myself doing something similar in some work for Net-A-Porter, so I wrote a generalized implementation (although the underlying mechanism is different). From the synopsis:

OT: Reset/Use Another Netflix Streaming Server

To reset/use another Netflix streaming server, disconnect your Internet service for 5 minutes (as in "turn off your cable/DSL modem"). Once you reconnect your Internet service, Netflix acts as if you had never connected to Netflix before so it assigns you a fresh server. This does not guarantee that you will switch servers, but it has been found agreeable to my practice.

I wish Netflix would publicize this tactic.

Logging Hell

Thomas Klausner will give a talk at YAPC::Europe 2012 described as

Logging looks so easy, yet it's very hard to get right. A hateful rant about logging in general and several CPAN modules that "help" with logging.

So apparently this is creepy

Responding to RT #78146 (and a recent CPAN rating) I am pulling the library off CPAN.

However, I would like to elicit some comments here, especially from members of the discussed gender (that is, if they want to expose themselves). I admit, having never worked or lived in America/Europe/anywhere abroad really, I am pretty oblivious to the politics of the whole thing. Were this done in my country, I would expect no such ballyhoo. Something related to religion, however, ...

On the one hand, the information gathered is publicly available. In fact, most people's names indicate gender pretty clearly. Also, isn't nationality something that can also be the basis of discrimination (for which there are plenty Acme-CPANAuthors dists)?

On the other hand, I never asked for permission for the authors to be listed. But then I was also not asked for permission when included in a couple of other Acme-CPANAuthors dists.

Nevertheless, I understand the good intention of those who requested the library to be pulled.

How Not To Highlight Women In Perl

Here's the short version: gender anonymity is protection, and in a male-dominated community many women prioritize safety. A machine parsible list of female CPAN authors threatens their anonymity even if they're not on it.

Here's the even shorter version: highlighting gender is advanced and should not be done lightly.

A module was recently uploaded to CPAN whose aim was to provide a big list of female CPAN authors. I believe the author had good intentions, or at least nothing more than "I was curious", and has been quite puzzled at the reaction that it's creepy and the requests for it to be deleted. Fortunately, he voluntarily removed the module when asked. Unfortunately, because the community is not well versed in gender politics, this sort of thing is likely to happen again. Here's an opportunity to talk about it so it doesn't.

YAPC::EU 2012 - here I come!

So after further deliberations (or basically me nagging), I’m allowed to go to YAPC::EU. The rules? I can’t have hobos, drunks, robbers or serial killers as roommates. I have to take a single flight (not 3!) to get to my destination. I can’t stay for more than a week. I can’t have my head cut open. And… I must bring a shirt back. I think I can do it!

So, now that I’m coming to YAPC::EU 2012, there are few things to settle, and I require your assistance.

Adventures in Marketing: Part Two

Mark Keating will give a talk at YAPC::Europe 2012 described as

Part One of this ongoing series was presented at YAPC::EU::2011, in this second instalment I shall quickly refresh from part one (a previously on) and then run through with what we are doing in marketing, the state of the Perl promotional world, what we can do next and more...

Caution: may contain Lego, warfare, film references and idle speculation, the audience may bring kittens and beer (but only if they share with the speaker)

Downloading dilbert strips

some things fun: i like dilbert and so should you. Its fun, witty, and its online. You can view every strip online. You could use curl or LWP to download strips, but I used bash and wget to do it:
Look!
wget --recursive --convert-links -A gif www.dilbert.com #recursively downloads the .gif images from ww.dilbert.com
cd www.dilbert.com/dyn/str_strip/000000000/00000000/0000000 #changes to the directory with the strips
mv $(find . -name "*.gif" $HOME) #moves the strips to a home directory. I would change this to a directory only for the images

YAPC::NA!

This year I attended my first YAPC in Madison, Wisconsin. I first met several Perl community members at OSCON and was amazed at how open, nice, and welcoming everyone has been. I had the same experience at YAPC::NA and I look forward to attending moar YAPC's!

I'd like to thank the organizers and all the of the participants!! I had a great time and I will definitely be participating in the future :D

Preventing Collisions with Perl cron jobs

Imagine you are a brilliant developer who just created a Perl script that takes form submissions from your website and imports them to your ticketing system. Well done! Now you want to set this script to run periodically so that as new requests come in they are automatically submitted to your ticketing system. Working in a Linux environment, you quickly add a line to the crontab to ensure this script runs every 5 minutes.

Perfect! Your done.

Time passes …

One day you start receiving complaints that duplicate tickets are being submitted to your ticketing system. After some investigation, you discover that the number of forms being submitted to your website is more than your script can process before another instance of your script is being called again. This results in your script processing the same form multiple times!

Larry will be in town...

We are very pleased to announce that Larry Wall has agreed to join YAPC::Europe 2012. Most of you probably know him as the guy that created Perl itself. Larry will come along with his wife Gloria. If you have attended more conferences you might know her...

We hope Larry will share some of his insights and reflections on Perl/perl, community and the world in general, but we do not currently know what he has planned.

We are however happy to have him and his wife visiting Germany and the YAPC::Europe conference.

Vegan/Vegetarian Food at YAPC::Europe 2012 in Frankfurt

I created a page and listed some restaurants which are vegan/vegetarian or have vegan options:
http://act.yapc.eu/ye2012/wiki?node=Food

If you ask for vegan options in a restaurant, don't be surprised if not everybody knows what it means - or worse, they think they know it but don't =)
Regarding that Germany still seems to be a developing country. When in doubt, ask explicitly for no dairy products (Milch, Sahne, Käse, Joghurt etc.).

If you are from Frankfurt and know more vegan restaurants or shops, please add them to the wiki page.

Windows CPANtesters, please test Alien::Base

Hi everyone, normally I talk to you all, but today I have a special request for all of you who are CPANtesters on Windows. I have been waiting for a couple weeks now for the automated systems to get around to filing tests for Alien::Base but the waiting is starting to hinder progress. I wanted to wait until I got the passing tests on windows before I both

  1. Dive deeper into handling Mac’s problems
  2. Announce an alpha version

So if you are a Windows-based CPANtester or have thought about becoming one and could move Alien::Base up your queue, I would be eternally grateful!

Popular ebooks on perlybook.org in week 26/2012

Here are the most popular ebooks from Jun 25 2012 to Jul 1 2012:

Module
  1. Excel-Writer-XLSX
Release
  1. Moose
  2. Mojolicious
  3. AnyEvent
  4. Padre-Plugin-RunPerlExternal
  5. DBIx-Class
  6. Catalyst-Manual
  7. AnyEvent-RFXCOM
  8. MooseX-IOC
  9. Template-Toolkit
  10. Catalyst-Runtime

CPANTS: Kwalitative website and its tools

Kenichi Ishigaki will give a talk at YAPC::Europe 2012 described as

I've started maintaining a CPANTS (Kwalitee) website since YAPC::Asia 2011, and now the site is being redirected from cpants.perl.org.

In this session, I'd like to share some of the tools I made to maintain it. I'll also explain what's going on behind the scene.

code test

print 'hello world! \n'; #code test

Thank you for an awesome conference! (YAPC::NA2012)

With all I've written about regarding YAPC::NA 2012, I forgot one crucial thing: to thank those who made the conference what it was: fucking amazing!

I want to thank JT Smith and the Mad Mongers who were really both mad and mongering!

I want to thank all the people I've met during the conference, who both enriched and tolerated me, which I'm sure wasn't easy. :)

To the sponsors who made it possible for JT and Mad Mongers to set up such a conference.

It was my first NA conference, my first US trip and an experience I'm not likely to forget any time soon.

My hat's off to you.

Also, we're opening a new foundation called "Dancing Scientists", which will incorporate the best of both worlds. Here are the founding members, in their default stance, thanks to garu:

dancing_scientists.jpg

[source]

The Case of the Incompatible Safe -- Epilog

"You know," I said to my friend C. Auguste Dupin, "I can not help feeling that there must be a simpler solution for M. Tueur's problem of the Incompatible Safe".

"But there is, mon ami -- now."

"Now? Why now and not before?"

"Because in the interim, M. Garcia-Suarez, the author of the Safe module, has enhanced it to work nicely with Devel::Cover."

"Wonderful," I replied. "It must have been a complicated matter."

"Simplicity itself, mon ami. He simply adds '&Devel::Cover::use_file' to the default share list if Devel::Cover is detected."

"So, Dupin, you know this M. Suarez-Garcia and informed him of the problem?"

"Non, mon ami, this was done without my involvement. Though it would be nice to think that your small note upon the problem helped to bring it to his attention."

My apologies to Rafaël Garcia-Suarez and my readers for being so long about writing this epilog. The change was made in version 2.32 released March 31 2012. His solution could probably have been implemented by hand, but though Dupin is certainly smart enough to figure this out, I was not.

No, I do not consider a blog entry a substitute for an RT ticket, but in this case I was unsure which module to ticket, and then other things in life intervened.

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.