Well in my last post I left of with my serializer working for boolean and json and recursing down into itself to work for objects, well one object anyway, and I left it at that with the gaping hole in my code if I need to look at any deeper objects.
Well I am in luck again as 'MooseX::MetaDescription' not only works for 'Attributes' It can also be applied at the 'Class' level.
It is a little more complected than just adding a 'trait' to an attribute or a class as one has to create a base class first and in my case it was like this
Last week, I travelled to Lyon, France for my first
QA
Hackathon
. Although it is even longer
than a YAPC (four full days rather than three), there were no formal talks, no
job fair... just thirty Perl programmers put together in a few rooms to work
on problems together and improve the Perl ecosystem. I felt very privileged to
have been invited, and came ready with a list of projects, problems, and
topics of conversation.
Most of the commenters liked the idea, but found the money I asked for too much. So I don't have high hopes in receiving the grant, but one of the points was to do a "market research" or a "survey" to find out which modules people use in their applications. Basically mapping part of the GreyPAN or DarkPAN to see which CPAN modules are in use and which modules should be included in such a "batteries included" distribution.
This information would be useful even if I don't get the grant. So let me ask you, which CPAN modules are in use in your applications? I am interested both in open source applications and ones that are proprietary. Just give me a list of prerequisites.
Please do it even if you don't use DWIM Perl and don't plan to switch to it. Others might find it useful to have a Perl distribution containing those modules.
Oh and if you don't want to publish the list here, then you are welcome to send them by e-mail to me: szabgab@gmail.com
A little time ago i commented on a blog on this site and gave an description about why Roles are better than inheritance. Or better, why i think so. That was how some people interpreted my comment, but my comment was more about "Inheritance sucks". I talked about Roles because it was the topic. So now i decided to do a series of "Inheritance is Bad". And i want to give different reasons and description for it, why i think this way. But only complaining isn't so much productive, so i also want to give examples what you can do, to make it better.
So I am happily programming along with my nice shiny new 'Serializer' sub that I have cobbled together over the last few post and it is now looking something like this
(A shorter version of this post has been sent as a thank-you email to our sponsors.)
The Perl QA Hackathon in Lyon has ended last Sunday. According to the
participants, it was a great success. They know, as well as the organisers, that we could never have made it without
the support of our sponsors. We would like to thank
them again for their help. Perl and CPAN come out better and stronger of
these four days of hacking and talking.
Tina Müller is organising the next edition of the Perl QA Hackathon in Berlin in 2015. We hope she and our sponsors will be in touch in the future. :-) And also that this post will inspire new sponsors to support an event that has become a yearly milestone for Perl and CPAN.
Rather than badly paraphrasing what the participants had to say, I'll
simply pass only some significant quotes from their blogs, on the topics
that are relevant to sponsors past and future.
A methodology for building modern, scalable, maintainable software-as-a-service apps.
12 factor is an interesting way to think about medium to large scale app development. I don’t use or agree with all of the ideas here, but at the very least this is a great starting point for developing your own methodologies.
In this round, The Grants Committee has received four grant proposals (list).
Since we posted them in public, we have received a number of public comments. At this point, here is the number of comments at the TPF site:
6: Automated generation of DWIM Perl
9: Perl::Lint - Yet Another Static Analyzer for Perl5
12: RPerl Test Suite Upgrade & Module::Compile Integration
10: JERL (Alien::Jerl) Perl5 running in the JVM
This includes the comments from the applicants.
The number of comments is one way to measure feedback but quality of the comments is more important. And most comments, if not all, were constructive and in great quality.
Thank you for those who spent time to give feedback.
You might of read my last post where I solved a problems with serializing an object to JSON by using 'MooseX::MetaDescription' well go a little deeper into coding today and then ran into this;
has 'spell_use' =>(
is =>'ro',
isa =>'Bool',
default =>0,
);
and then this gets turned into JSON with JSON::to_json I get this;
This year's Perl QA Hackathon has come and gone. I had an amazing time, and
I'm sad that it's already over.
The QA Hackathon is a gathering with the purpose of improving Perl's toolchain, testing infrastructure, and other bits surrounding language development and usage. At it's core is an incredibly friendly and intelligent group of people, and I always leave the conference feeling reinvigorated and motivated to get things done (and with a much larger todo list than I had going in...)
I brought my fiancée and a friend with me (we had a mini-vacation in Lyon after the conference), and they had many chances to meet and hang out with the group. They had a great time with the Perl people; everyone was incredibly welcoming and inviting, and for that I'm grateful.
I mentioned previously that we were aiming to organize a second free public talk in Oslo. And I can now confirm that, in addition to my talk next Wednesday night, I will now also be speaking at the University of Oslo, on Friday March 28, from 1615 to 1800.
Although there with be a definite CS slant to the talk, it will be neither abstract nor abstruse, but full of practical examples of working code. So anyone with an interest in programming languages—and how we might teach them better—is most welcome to attend. If nothing else, you should come along to see just how amazing (and how fully implemented) Perl 6 now is.
Meanwhile, there are still a few seats left in Monday's Perl 5 Masterclass here in Oslo. It's not too late to sign up on-line...though, admittedly, it probably is too late to get your boss to actually pre-approve the necessary funding and time-off. Still, as a truly great computer hacker once observed: "It's always easier to ask for forgiveness (or reimbursement) than it is to get permission (or budget)" ;-)
Well had another good day with Moose as I solved a little problem I was having when trying to write a serializer for my AD&D Character class.
Well the gist of it is I was starting to set up a little JSON web service nothing fancy just give the current character values when requested. Of course creating JSON is easy just express what you want as a hash ref and then use good old JSON::to_json to make it into a JSON string.
Well that was simple enough but then I ran into the problem that I did not always want all of the class to be sent down the pipe I just wanted the current Character Attribute levels not all the tombstone and historic data unless I asked for them.
Well I started out with a silly thing looking like this;
This year's QA hackathon was held last weekend in Lyon. 30 of the nicest and cleverest people I know met for four days with the common goal of improving Perl's quality with specific reference to testing and the toolchain. I was there too.
Now it's time to fess up, but I've posted the story of Veure to my personal blog instead of blogs.perl.org because it's not really about Perl (and blogs.perl.org kinda struggles with images). Veure was/is a Perl-based MMORPG. It's not done, but I included a few screenshots.
Today I had a case of the magically missing data structure. We have a bit of code that's very hard to test with automated testing, and that part of the code died at an important point in time. Pending the refactor guy getting onto the root cause I came up with this nice snippet. At the time I said "this is the kind of code that you're simultaneously proud of and ashamed of". So I figured I'd put it here as a bit of public shaming.
Is there no one out there that can fix it as it is rather embarrassing to the community as a whole, as this is suppose to be one of the leading Perl organizations.
Oh well at leas the donation page sort of works? However, do I really want to donate any money to a site that looks totally neglected broken or even worse hacked??
Not much of a post I know but I wanted to post on something a little more useful and I had I bookmarked a page in the perl wiki for it and I have been trying to get at it since before last week so I guess I am just a little frustrated.
Oh well I will take some cheese with my wine please!
Recently I wrote a post about a pjam - a perl applications build server. Now I continue the topic and try to uncover some pjam vital features.
First of all, central point of pjam is a "project", which is the collection of URLs with a source codes for your application:
Every url therefore holds a part of source code for you application. Modern applications can consists of many parts, so an application can be represented by many URLs in your VC system. Currently pjam supports only subversion VCS, one day I may also add git.
A sources codes, provided by the list of URLs are checked out from VCS and processed in order. Every source code must hold valid Build.PL / Makefile.PL in root directory. Pjam does standard perl Makefile.PL| Build.PL/ && make|./Build manifest && make | ./Build dist loop to create cpan distribution archive for every source.
Therefore every cpan distribution archive created from source code URL is added to pinto repository. The phase above is called "pinto" phase . If the pinto phase is successful we have *all* project dependencies added to pinto repository.
On the next post I will explain next phase called "compile" one.
The talk is free and open to anyone interested in project management, language design, or other related forms of sadomasochism.
While I'm in Lausanne, I'll also be offering two public classes: my Advanced Presentation Skills class and my recent update on "Perl Best Practices" (Perl Even-Better Practices). There are still some places available in both classes.
Note that the sign-up links I've given are specifically aimed at Swiss academics, but the classes are definitely open to everyone else as well. So, if you'd like to attend, but your details don't seem to fit into the sign-up page, you can contact Frédéric Schütz (who is the mastermind behind my repeated visits to Romandy) directly to find out about enrolling in either course.
Donc, j'espère vous voir nombreux à nouveau en Avril à Vaud. Et si vous êtes particulièrement chanceux, je ne vais même pas essayer de parler français! :-)
The position is not perl-exclusive; we're looking also for good skills on other web / browser technologies (see the listing above for more details). However, we do have many services running on perl, and many more to come. With good perl skills you'll get immediately to work with loads of modern perl code - mostly Catalyst based sites and web apps that we deploy to Heroku. I'm hoping to fill that need with this job listing, but we can also offer training (both ways) to make it happen.
At this point we're primarily looking for people who can work locally, here in Helsinki. This is because the job includes also some client communication and meetings, as part of the project teams. However, contract and/or remote work can be a possibility later.