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++!!!

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.

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.

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

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.

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:

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.

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.]

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.

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

Functional fun with logical expressions

Here's a quickly thrown-together version of "Fun with logical expressions", written in Haskell:

A Marpa/Moops powered M4 implementation

Introduction

The M4 language is a powerful macro processor, turing complete as well as a practical programming language. It is the core tool behind GNU Autoconf, in particular.

MarpaX::Languages::M4 package is a Marpa::R2/Moops powered implementation of it, 99% with the GNU M4 version ([1]) and have switches to alter its behaviour as wanted, so that one can have e.g. POSIX M4 as well.

Command-line

MarpaX::Languages::M4 is distributed with an m4pp command-line, with all the GNU M4 implementation options, plus some other handy items, for example:

conversion to UNIX native end-of-line
comment start and end delimiters
string start and end delimiters

and some "advanced" options to alter the behaviour or extend M4 as you wish:

buffers unwrap order at the end (LIFO or FIFO)
any default can be altered on the command-line
unlimited number of bits for eval arithmetic (thanks to the really remarquable Bit::Vector package)
use perl or GNU Emacs regexps (via the new re::engine::GNU package)
etc...

Using Amazon SES and SNS from Perl.



Using Amazon SES and SNS from Perl.

[From my blog.]

Using Apache's Swiss Army Knife - mod_rewrite for RESTful APIs (part II)

Part II of a series on Apache's mod_rewrite.

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

Fun with logical expressions

Addendum 2: This set of rules is incomplete. See Fun with logical expressions 2 for an improved version.

Addendum: I've written a more or less equivalent Haskell version of this program.

Some programmers, when confronted with a boolean expression, think "I know, I'll use regular expressions". Now they have true problems.

This post was inspired by the TAUT exercise on SPOJ.

You're given a boolean expression consisting of variables (each being either true or false), a unary operator (not), and several binary operators (and, or, implies, equals). Your task is to determine whether the expression is a tautology, i.e. whether it evaluates to true for all possible variable values.

To make parsing easier, we're going to use a very simplified syntax:

Booking.com is sponsoring the QA Hackathon

Today we would like to announce that Booking.com is sponsoring the 2015 Perl QA Hackathon. Booking.com has been supporting many Perl events and was the main sponsor and host of the QA Hackathon in 2014.

booking.png

Booking.com is one of the world’s leading e-commerce companies.
Each day, over 800,000 room nights are reserved on our websites and apps by both leisure and business travelers.
Truly international, Booking.com is available in 42 languages, and offers over 600,000 properties in 211 countries. Over 8,600 people all over the world are dedicated to serving Booking.com’s customers, and we love having the opportunity to create an even better experience for them. We have our IT Department with over 750 employees and more than 54 nationalities based in Amsterdam, the Netherlands. Booking.com is a dedicated contributor to the Perl and MySQL community.
Will you be joining us? Please following this link to see our current vacancies workingatbooking.com.

How Perl + StickK helped me get organized

The last three months have been some of the most professionally productive months I've had in years. In true Perl fashion, it all boils down to a Perl-related "hack" with StickK.com.

Looking for BZ::Client Author

I am looking to contact Jochen Wiedmann who is the BZ::Client author (amongst other modules) whom I am guessing resides in Finland. I have emailed the associated cpan.org email address and I created an RT ticket 1 year ago. Hopefully ownership of this module can be shared and development continued.

In the interim, users of BZ::Client (i.e. Bugzilla XMLRPC Client) might be interested in my GitHub Repo which includes a number of patches.

Update: Contact has been made! Persons with patches for BZ::Client are encouraged to submit them via GitHub for inclusion in a soon to be released new version.

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.