Loved YAPC::EU::2014? Hated it? Perhaps the conference would have been perfect if only we'd done X? What was your favourite talk? Could some talks have been improved?
You should have received an email from Barbie with an invitation to complete the YAPC::Europe 2014 Survey:
As an attendee of YAPC::Europe 2014, we would like to invite you to participate in the online conference surveys. Whether you are an attendee, speaker or sponsor, we would like to get your feedback regarding any talks and tutorials you attend, as well as the conference itself, with the aim of helping to improve the conference experience for future attendees.
Please shout at the organisers or email barbie[at]missbarbell.co.uk if you have any problems completing this, or did not receive an email with your keycode!
There are still some seats free. The organisers would like to ask for timely registration to make it easier to buy food, drinks and appropriate amount of fun. Inadvertent last minute show-ups only get water, dry bread and seats in the hallway. ;-)
Attendees, please leave your preferences and allergies here, so that our kitchen team can try and take these into account. This is especially important for the attendees dinner, taking place at the venue, but also for the lunches and coffee breaks.
Also, and especially if you are from Switzerland: Help tilt the Kickstarter Campaign for brian d foy who wants to work for his expenses and is going to teach "Mastering Perl" after the workshop, in Switzerland. The campaign is well underway, but could use a little more love, especially local love.
Just while I was having a shower, the hotel had a 5-minute power cut. I decided to walk down the stairs to breakfast.
Another day of two breakfasts, one at the hotel and one at the conference venue (even more Баница) while meeting everyone.
Today I've mostly stayed in the "Devops" track as I've been doing a lot of web operations recently.
First talk of the day: SyContent - Content in the Cloud with V8. Torsten took us through the history of content management systems. He explained how he thinks content management should work, with Perl, PHP, static JSON files and V8.
Then Docker with Perl - an Introduction where Denis explained what Docker is and how he suggests we use them with Perl, although he doesn't run Docker in production yet. He explained that it really comes out of a DevOps culture. I currently use Docker to package the applications on my personal servers, so perhaps I'm a little too experienced for this talk. I particularly like the Docker workflow.
In Perl, hashes are typically used for two sorts of purposes: maps (where the hash key acts as an object identifier) and dictionaries (where the hash key acts like a field name). A quick illustration of what I mean by this:
These are two different styles of using hashes. Sometimes one is useful, and sometimes the other is. Sometimes neither is better and your choice of one over the other is fairly arbitrary.
Types::Standard contains a type constraint called Map which is useful for validating references to the first kind of hash. (I copied the idea from MooseX::Types::Structured.) But today I'm mainly going to talk about another type constraint: Dict. (Yeah, I copied that one too.)
Ignat Ignatov talked about physical formulas.
When I was planning to attend this talk, I thought it is going to be some sort
of symbolic formulas computation, possibly with an analysis of dimensions
of the physical quantities.
However, despite my (a bit long in the tooth) background in physics, I did not
understand a word of it. Apparently, some sort of unification of physical
formulas, not entirely unlike the periodic table in chemistry, was presented, with
almost no comprehensible details and with scary words like co-homology and
algebraic topology. The fact that half of the slides were in Russian, while
irrelevant for me personally, probably did not help matters for the majority of
the people in the audience. I did not expect any questions at the end of the
talk, but there were at least two, so I was probably wrong about general
level of understanding in the audience.
In my previous blog post I wrote a lot more about Time::Moment, than appeared in the post (could have been my mistake due to a preview and error and a incomplete copy and a paste, but still very inconvenient). So I have decided to break down my original blogpost in several blogposts.
Time::Moment implements a subset of ISO 8601 (known as 4.3 Date and time of day, 4.3.2 Complete representations), Wikipedia has a good article regarding ISO 8601, but it's not an authoritative source for the ISO 8601:2004(E) standard.
Time::Moment is capable of parsing any string that purports to be formatted in ISO 8601:2004(E), 4.3.2 Complete representation.
If ever you're unsure of how a type constraint has been defined, you can examine the string of Perl code used to implement it. For example, does an ArrayRef[Int] accept an empty arrayref?
When I came to the venue 15 minutes before the official
start of the registration, people at the registration desk
were busily cutting sheets of paper into attendees' badges.
Finding my badge turned out to be a tad not trivial.
This conference is somewhat unusual not only because
it is conducted over the weekend instead of in the middle of the week,
but also because the keynotes for every day are pushed till the
end, even after the daily lightning talks session.
The welcome talk from Marian was about practical things
such as rooms locations, dinner, lunches, transportations
and so on. Then I went on stage to declare the location of
YAPC::Europe 2015 (which is Granada, Spain by the way).
After that Jose Luis Martinez from Barcelona.pm did a short
presentation of YAPC in Granada, and Diego Kuperman gave
a little present from Granada to Sofia.
A day of two breakfasts, one at the hotel and one at the conference venue (more Баница) while meeting everyone.
First big announcement of the day was that YAPC::Europe 2015 will be in Granada, Spain.
And then the first talks of the conference. I chose to attend Welcome to Auditing and toughening as part of the Security Development Lifecycle which was an interesting look at how hardening a system is just a small part of the security development lifecycle. John highlighted the importance of a threat model and how avoiding vulnerabilities as early as possible is the only way to go. He went though a few practical examples of where was the best place to fix
vulnerabilities.
Over sandwiches at lunch we had a little discussion about the compromises between fixing vulnerabilities and maintaining backwards compatibility.
The Wi-Fi has been a little spotty, but mosh make it usable.
Next up was Code I'm proud of: where Thomas explained lots of little hacks, from passwords and Bread::Board to microblogging.
Let's say you want an attribute to accept a pair of numbers - perhaps a geographic co-ordinates [ 50.873, -0.002 ]. You could constrain the attribute as ArrayRef[Num], but that would accept an arrayref containing a single number, or eight numbers, or even a reference to an empty array.
With the Tuple type constraint, you can be more exact in expressing which values are acceptable:
Currently, in designing languages,
we don't allow ambiguities --
not even potential ones.
We insist that it must not be
even
possible
to write an ambiguous program.
This is unnecessarily restrictive.
This post is written in English, which is full of ambiguities.
Natural languages are always ambiguous,
because human beings find that that's best way for versatile,
rapid, easy communication.
Human beings arrange things so that every
sentence is unambiguous in context.
Mistakes happen, and ambiguous sentences occur,
but in practice, the problem is manageable.
In a conversation, for example,
we would just ask for clarification.
I travelled from Heathrow to Sofia, Bulgaria very early this morning. I managed to bump into a few
Perl Mongers on the flight over and we were welcomed by a camel sign at the
airport. I managed to find my hotel and have a proper shower.
First order of business was to have a proper lunch, I bumped into someone and
we took the shiny new metro system into town and explored the center of town. I
managed to pick up a
Баница
, a pastry with fresh cheese. We then wandered
around, found a great Rodin exhibition and made it to the evening meetup a
little early.
Luckily we weren't the only people turning up early and started drinking a
Zagorka
or two. Very drinkable.
It turns out that it’s quite hard to change Ukrainian Hryvnia back into your local currency. Apparently you need to get a special form to do it, which seems to be about as common as a Ryanair refund.
Given that quite a few of us aren’t that likely to return to Ukraine any time soon, it implies that there’s quite a lot of paper money sitting around various Perl monger’s desks, drawers etc, not earning its keep. For each individual it’s not much in value, but I suspect that all together it adds up to a few thousand Pounds/Euros/Dollars etc. Meanwhile, the Ukrainian central bank is very happy about all currency it got in return for selling us [its] bits of paper.
So I thought that it would be a good idea if we put the notes carefully to one side, and then all took them to Sophia next year, where at YAPC::Europe 2014 someone from Kiev can come with a big bucket, collect the money, and take it back to do useful things with it.
I assume that the intervening events have not made changing the currency any easier…
Eventually you'll steal what you need from MooseX::Types::Perl, so you don't have the Moose dependency, but for now what you really want is to be able to use a Moose type constraint within a Moo class! What a predicament you've gotten yourself into! Type::Tiny to the rescue!
Sometime in May 2014, ETHER mentioned on IRC that she would soon be passing me up on this leader board. I was number 20 and she wasn't far behind. I guess I took that as a challenge, because this past weekend on CPAN day, I moved into the #6 spot. This post explains how.
I've created a couple CPAN packagers over the years, like Module::Install, and Module::Package, but earlier this year I decided to give up on those and just use Dist::Zilla, so I moved most of my active stuff to that. In the past year, as an Acmeist, I started doing a lot of real programming in Bash, and recently I made a Bash-heavy wrapper around Dist-Zilla called Zilla-Dist.
Yesterday (August 16th 2014) we celebrated the anniversary
of the first upload to CPAN
by Andreas König (ANDK)
(as he worked on what became PAUSE).
It was the 19th anniversary, but the first that we've marked in this way.
In one day, 107 people uploaded 775 releases, 41 of which were the first
uploads of new distributions, and 10 of which were the first upload
by new CPAN contributors. The first two numbers were outright records,
and the second equalled the previous best. All of those numbers were higher than I expected.