CPAN PR-Challenge - April Report

This was a busy month in my teaching duties. Also, needed to debug and create pull requests for other projects. Nevertheless, I managed to create a small pull request in the PRC assigned module, Google::ProtocolBuffers Perl implementation.

The pull request was a validation of the google spec, adding a test for enumeration values with aliases. Looking to the existing tests it was not clear if that functionality was implemented. Therefore, my test was to know if I should try to implement that functionality or not. Fortunately, the tests passed. And because more tests is always good, this month PR is just a small test: PullRequest.

I hope I can get real contributions in my next assignments, but lately the time is not much.

Perl QA Hackathon 2015

Last post - the post that hurts the most.

It's been a while that I blogged. Yet, it's a tradition now to write my report about the Perl QA hackathon as probably the last one of the attendees. The 2015 edition of the Perl QA hackathon was a lot of fun. I'm one of the less visible guys there so I want to give some visibility into my work.

My topic is benchmarking.

Benchmarking the Perl 5 interpreter.

Over the years, I narrowed down that topic beginning with the problem statement over several steps: the search for workloads, the creation of a framework for executing and producing meaningful numbers, the bootstrapping of Perl with CPAN, ensuring a stable CPAN, a system to store benchmarks together with general testing results, and the actual execution on dedicated hardware.

You can recapitulate some intermediate steps here:
Perl Workloads - YAPC::Europe 2010
Perl::Formance - YAPC::Europe 2011
Perl::Formance / numbers - YAPC::Europe 2012

With the 3 projects that hold my overall vision together being those:
bootstrap-perl
Perl::Formance
Tapper

Test Driven Development by David Delikat



Test Driven Development by David Delikat

[From my blog.]

Wanna Getta Drink (in Veure)?

So, it turns out that working full time on a great contract, overseeing employees/contractors on other contracts, trying to build an MMORPG, working through legal issues associated with said MMORPG, preparing conference talks, and trying to be a good husband and father is a wee bit time-consuming. That's why I probably didn't answer your email or write a blog post in the past month.

So to let those interested in Veure know that it's not dead: we have bars! (Amongst many other things). Read on!

Alien::Base past, present and future (upcoming change in behavior)

Alien::Base has made a great deal of progress since last September when Joel Berger turned over day to day development for the project to the then newly created Alien::Base team. We’ve closed most of the major issues and pull requests. One remaining important issue will hopefully be solved soon (I will get to that later; if you are an Alien::Base user you may want to skip to The Future below). Stability and reliability has improved to the point where it is good enough to be used by real projects. My own FFI::Platypus depends on Alien::Base tech to provide libffi, as an example. I’d like to see some other projects take advantage of Alien::Base as well.

What have we fixed? A number of things:

CPAN reverse dependencies as a tree

CPANdeps has always shown what your code depends on as a tree. But the reverse dependencies - that is the report of what code depends on yours - has always just been a list. Until now. And, of course, it's all available as XML so you can more easily use it as a data source.

If you want to generate reports from this, please be gentle!

Exodist @ perl-qa 2015

I am finally home from the perl-qa hackathon in Berlin. For me personally I consider this hackathon a huge success. I think many things happened at this hackathon that will propel the perl5 ecosystem forward.

Before diving into details, I want to thank my employer, DreamHost for sponsoring my attendance at the hackathon, they paid for my travel and hotel. DreamHost also went a step further by providing the perl-qa group with a dreamcompute account we were able to use to do smoke testing among other things.

So, what did I accomplish at the hackathon? The simple answer is Test-Simple.

On the first day of the hackathon we had a group discussion related to Test-Simple (Test::Builder, Test::More, etc). This discussion was made up of 3 parts:

1) What from Test-Simple could be improved? If Test-Simple is going to be revamped, what things should change? Who would benefit from these changes? Are the benefits enough to outweigh the risk in changing Test-Simple.

The QA Hackers have left the building

Finally, the QA Hackathon 2015 in Berlin is over.

It was my first hackathon, and it was a pleasure to organize it. Just to mention a few, I want to thank Andreas for organizing at the venue and staying there as long as people wanted to stay and hack (like midnight), Wendy and Liz for serving all kinds of delicious food, Neil and Olaf for helping me contacting sponsors, Max from Frankfurt.pm for doing the paperwork and letting us use their bank account, BooK and Barbie for giving lots of useful advices for organizing and all the hackers for attending.

Liquid Ingy Quality Berlin

I just finished up a fun and successful Perl QA Hackathon in Berlin. This was my first such event and I'd really like to thank my new employer Liquid Web (more at the bottom) for sponsoring the event and my attendance of it!

As usual I worked on a multitude of various things that were either very interesting or needed my personal attention. The highlights were:
  • Participated in all the toolchain consensus sessions (led by xdg++)
  • Wrote the first version of an interaction Perl YAML Tinker site.
  • Found many many YAML bugs between implementations.
  • Worked on plan to normalize behaviour across YAML implementations. ether++
  • Started a common test suite for Perl YAML modules.
  • Worked with tadzik++ on a YAML parser for Perl6.
  • Worked on some Pegex / Perl6 Rules interop projects with tadzik++
  • Fixed some YAML bugs
  • Fixed bin hashbanging in Zilla::Dist. eserte++
  • Worked on Pegex and String::Slice stuff with alh++
  • Went to a Social Distortion concert with tinita++!!!

Some Useful Debian Packages

Obviously these are probably in other distributions and BSD's. Debian is win though.

adjtimex

Actually reduce/stop clock drift, rather than having ntp constantly tweaking the system time. Useless on VM's obviously.

apticron

Emails you a list of packages to be updated.

Configure it via /etc/apt/listchanges.conf

cpulimit

Control max cpu usage of a process

disktype

A convenient way to show disk size, partitions, format, uuid etc etc

dstat

vmstat, iostat and ifstat all in one... with color!

eatmydata

Disables fsync, so programs that ask to sync data to disk only think they have. Dangerous as important data can be lost, but can improve performance.

ferm / shorewall

Both try to make iptables (and firewall stuff generally) more straight forward. Both happen to be in written in perl

gdebi-core

Useful for installing local packages plus deps (which you would like to draw from remote repos)

Runs like this...
gdebi local-file.deb

jq

command line json processing

libpam-ssh

Dancer Master Class at YAPC::NA 2015

If you're interested in web development and/or the Dancer web framework, we're running a very special Dancer Master Class at this year's YAPC::NA.

Amazon Development Center is sponsoring the Perl QA Hackathon 2015

We would like to announce that Amazon Development Center Germany is sponsoring the Perl QA Hackathon.

Logo-Amazon.png

The Amazon Development Center Germany is happy to sponsor the Perl QA Hackathon 2015.

In the Kernel and Operating System team we automate testing and qualification of new hardware and the Amazon Linux distribution. With our test infrastructure, based on Tapper we test bare metal and virtualized operating systems and qualify them for use in the Amazon Web Services. We combine the philosophy and technology behind CPANTESTERS with OS and virtualization testing to validate functionality and performance in a very complex environment.

Using Apache's Swiss Army Knife - mod_rewrite for RESTful endpoints (part III)

Last in the series on mod_rewrite.

http://openbedrock.blogspot.com/2015/04/using-apaches-swiss-army-knife_16.html

I broke plenv and cpanm, and the systems they run on

I didn't break them myself, but the Perl Power Tools project that I revitalized did. Well, that's not even strictly true. The Perl Power Tools, which install thin implementations of common Unix tools, highlighted a problem with the idea of tools such as plenv.

mic

For awhile perlbrew was a really hot idea. It downloads, compiles, and installs completely separate perls for you. When you want to make a particular perl the default, you run a command and symlinks are shuffled around. I never particularly liked the tool because I use several versions of Perl at the same time so I don't rely of what I might find in the PATH environment variable and what that symlink might point to. Changing symlinks affects the entire system and every other session. This is also the reason that #!/bin/env perl doesn't work for me. It always finds the first perl, which is not the one I usually want.

Fun with logical expressions 2: Electric boogaloo

tybalt89 discovered a bug in Fun with logical expressions:

$ echo IEabEba | perl try.pl
ORIG: IEabEba
MOD: V~V~V~a~b;~V~~a~~b;;V~V~b~a;~V~~b~~a;;;
...> V~V~V~a~b;~Vab;;V~V~b~a;~Vba;;;
...> V~V~V~a~b;~Vab;;~V~b~a;~Vba;;
Not a tautology

(a equals b) implies (b equals a) is a tautology but the program fails to recognize it. With the fixed code below it generates this output instead:

AffinityLive is sponsoring the Perl QA Hackathon

We are happy to announce that AffinityLive is sponsoring the Perl QA Hackathon 2015.

affinitylive-logo.png
What language do you use? Whether I'm talking to investors, prospective hires or just curious clients, many people are surprised to hear AffinityLive is written in Perl. Part of the reason was luck - I started hacking away on what would later become AffinityLive over a decade ago. As someone who went to university before Java became the lingua franca of colleges trying to shape job-ready graduates, I cut my teeth more on C++ and found the unshackled freedom of Perl and its incredible list of Internet-friendly modules incredibly appealing.

Sydney-PM Tonight ! (April 14th)

Hosted by us at Broadbean. The address is Level 8, 9 Hunter Street, Sydney 2000.

The front doors close promptly at 6pm. If you arrive before 6pm, then walk straight in (there's no sign in process). When on the 8th floor, there's signs to say we're to the left. Come on in!

If you arrive after 6pm then please give Peter me a call. His number is 0414 331 769. Someone will then come and let you in.

Tonight Stuart Cooper will present a talk on using perl in a perl hostile environment. Ivan Wills will also present on a mystery topic. There will also be some house keeping discussions for the group to decide upon.

Huh. Multiple beginning-of-line anchors work

Anchor

I've never had a reason to use multiple beginning-of-line anchors in a regex, so I wondered if it would work. I guess it does.

Test Driven Development

Test Driven Development is the topic of the night at MadMongers tomorrow night. If you’re in Madison, come, have a beer, and hear about TDD. 

[From my blog.]

Document, Document, Document

Some ideas on how to document your web applications and modules...

http://openbedrock.blogspot.com/2015/04/serving-up-pod-five-cs-of-good.html

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.