Non-blocking Mojolicious apps are even easier now!

Hopefully by now you have seen that Mojolicious is a great way to build your non-blocking web (or even non-web) application. Mojolicious come with all kinds of non-blocking functionality out of the box. For more about that see my blog series on the topic. This post is an aside to show you the cool things happening in Mojolicious lately designed to make writing non-blocking apps easier.

Mojolicious is known for fast development and clean APIs. Mojo was that child with lots of excitement and energy, doing new and cool things, providing new and cool functionality, and yes, changing its mind on occasion. But Mojo is growing up and settling down a little bit. It recently went to its first conference and professional training. And it’s starting a family too!

Mojo is starting to feel more grown up, and grown-ups have responsibilities. To borrow one of Perl’s catch phrases, this more mature Mojo knows that it is not good enough anymore to just make things possible, it’s time to make them easy.

Perl Training and donation to TPF

Just a few hours ago Dan Wright mentioned that the Perl 5 Core Maintenance Fund of the The Perl Foundation needs donations. (In addition Makoto Nozaki just mentioned that the budget of the grants committee is only $16,000 for 2014.) Let me offer part of my work as a donation. The deal is that if you organize a Perl Training that I teach, I'll transfer half of the profit to The Perl Foundation. I think it is a 5 x win situation.

  • You win because you get a good training course.
  • Your company that pays the bills wins, because they get a better trained employee.
  • TPF wins because it gets donations.
  • The Perl Community wins by the grants.
  • I win because I can teach and earn some money with something I like to do.
I have the following courses:
  • Beginner Perl
  • Advanced Perl including Moo and Moose
  • Test Automation using Perl
  • Modern Web development with HTML5/CSS3/JS and Perl Dancer

These are all 4-5 days long courses filled with hands-on exercises.

If you'd like to hear more details, please send me an e-mail to gabor@szabgab.com.

Because Sometimes Lightspeed is Too Slow

Spaceballs: Lightspeed is too slow. We'll have to go right to ludicrous speed.

I've pushed Type::Tiny 0.045_03 to CPAN this afternoon. Initial results from CPAN testers seem promising, but if you've got a distribution that uses Type::Tiny it might be worth trying it out with the new version to see if anything breaks. (I don't think anything should!)

The big change in this release is that it adds support for an optional XS backend, which massively boosts the speed of many type constraint checks — especially parameterized types like ArrayRef[InstanceOf["HTTP::Response"]]. The XS backend is a fork of Mouse's type constraints, and needs to be installed separately. It's called Type::Tiny::XS. (OK; not a very creative name.)

Finding unused variables in your Template stash

Quite often companies who use Catalyst (with Template Toolkit) find that after a while, they're over relying on the use of the stash as a global dumping ground. To deal with that, I wrote a highly experimental module to print out unused template variables.

Some statistics from Debian package tags

I'm running Debian Stable (7.x, Wheezy, 7.4 to be exact) on amd64.

Count all Debian packages by their implementation language (I know, not the most efficient way):

P5CMF Needs some love

The Perl 5 Core Maintenance Fund was initially announce at YAPC::NA in 2011. Since then, it has been TPF's most successful grant program, awarding over $260,000 in grants for continued development and debugging of the Perl 5 core.

Unfortunately, most of the funds have now been depleted. Our four present grantees, Tony Cook, Paul Johnson, Dave Mitchell, and Jess Robinson are each running on allocations that have between 3 and 6 months remaining. Without further contributions to the fund, there will not be enough money to renew their grants.

If you value the work that these people are doing for the Perl 5 Core, please consider making a contribution to the P5CMF by visiting donate.perlfoundation.org soon.

See you at YAPC::EU!

I'm happy to announce that, as usual, Nestoria will be sponsoring this year's YAPC::EU in Sofia, Bulgaria.

Also as usual we will be sending along a contingent from our dev team. Other than myself you'll also see Sam, Ignacio and Tim - all of whom have never attended a YAPC before and some of whom have learned Perl quite recently. I'm hoping they are going to get as much out of YAPC as I did at my first one back in 2007.

You can read more - and see some photos so you'll know who to say Hi to - on the Nestoria Dev Blog: http://devblog.nestoria.com/post/91342766838/yet-another-yapc-eu.

Hope to see you there!

P.S. Although I'm not speaking at YAPC::EU this year, I am speaking about Test::Kit 2.0 at the London.pm technical meeting on Thursday July 24th :-)

Swiss Perl Workshop in Two Months :-)

In a bit less than two months the second Swiss Perl Workshop takes place.

Lots of cool things are going to happen!

Register soon to secure one of the limited tickets.

Book your seat at the courses by brian d foy.

To make waiting for the workshop easier, and to get in touch with fellow Swiss Perl Mongers, come to our Swiss Perl Community Meetups. The next event happens on July 24 in Zürich. You will know us by at least one small puppet camel on the table.

Last time we "meetupped" in Olten, the workshop venue. Look at the view we had:

meetup1.jpg

Thanks to our sponsors:
www.leanux.ch | www.perl-academy.de | www.oetiker.ch

Benchmarking several ASCII-table-generator modules

UPDATE #1 2014-07-11: Added Catmandu::Exporter::Table. This module is not exactly lightweight, so I will not consider it for usage in Perinci::CmdLine::Lite, but it's interesting to benchmark anyway.

UPDATE #2 2014-07-11: Nudged by me, Jakob extracted the table-generating
functionality of Catmandu::Exporter::Table into its own module Text::MarkdownTable. This module depends on nothing but Moo. Great job Jakob. Although for my particular project Perinci::CmdLine::Lite, I declared that Moo is a bit too heavy, and so excluded it. :)

UPDATE #3 2014-07-11: Added more modules to the mix: Text::FormatTable, Text::Table::Tiny. Excluded more modules: Data::ShowTable, Text::UnicodeBox::Table.

UPDATE #4 2014-07-11: Excluded 2 more modules: Table::Simple, Text::SimpleTable::AutoWidth

Grants Committee Budget

I don't know the Grants Committee ever published the annual budget. I see reasons to do so and not to do, but let's do it. Transparency is a good thing.

Conclusion first. The Grants Committee's budget for 2014 is $16,000.

Here is how it works.

Rule #1: The committee evaluates and funds grants every two months. At the point of funding, the money is "spent".

Suppose you submit a grant proposal of $3,000. Your proposal is great, the community feedback is all positive, and your grant is funded. At this point, we have spent the money; it's like putting the $3000 in a special envelope that has your name on it. The money is still in the TPF safe but it is reserved for you.

Rule #2: We are out of the money when all the money is spent for the year.

Rex meet Rspec~

As an DevOps, I use Puppet and Rex, and like automatic testing for my infrastructure. So when I saw serverspec, I thought: maybe I can do such things in Perl?

I know there are already so many testing frameworks at CPAN. But I like the syntax used by serverspec( yes, evoloved from Rspec!) so DIY begin~

Here is my work:Rex::Test::Spec.

We can use it as follow:

Amazon & Ebay

We are going to start a project to provide easy to use + install interfaces for Amazon and Ebay for Interchange 6, similar to the one available for Magento and other Ecommerce software. It should be also possible to use this in conjunction with Interchange 5.

With your help this becomes a successful project, e.g. through

  • Feedback / Experiences with Amazon / Ebay and Perl modules
  • Feature suggestions
  • Developing time
  • Documentation
  • Testing
  • Funds

Regards
Racke

Metabase down?

Does anobody know what's wrong with metabase.cpantesters.org? Any attempt to submit test results ends in failure. Accessing the url returns a please come back later message.

Grants Cancellation

As announced in the official blog (link), three grants have been cancelled. All of them have been stalled for some time.

It is neither a pleasant nor easy decision for us to cancel grants regardless of a reason. I understand the grant managers and the grantees did their best to make progress but delivering a grant is not always easy.

One of the major reasons to terminate grants is our budget. In the next post, I will discuss our budget and explain why it is necessary to cancel stalled grants.

XS, Advanced XS Callback Patch For OCI, Part IX A little review

Well just another quick installment for my new chapter in XS Fun This time I am just going to review what we have gone over so far before we dive into the real fun stuff.

Now we are more than half way there at least in code changes and we have covered allot of varies subjects from general 'c' programming the very specific OCI programming and a little XS sprinkled about.

So I have shown you how to get your callback into and out of DBD::Oracle with the dbd_db_STORE_attrib and dbd_db_FETCH_attrib functions. Here we saw the use of a few XS macros to make our life a little eiaser , such as 'strEQ' a little memory management with SvREFCNT_dec and a few other.

We also saw how I used a 'c' struct (structure) to hold the pointers to my paremates and how I declared this in a '.h' or header so I could use them in other 'c' programs rather than just including them in the dbdimp.c file.

The Joy In What We Do by Sawyer X This is perhaps the best...



The Joy In What We Do by Sawyer X

This is perhaps the best speech I’ve ever heard about software development. Thank you Sawyer X.

[From my blog.]

Procedural Quest Generation in Perl

Yes, it's another post about Veure (whose actual name we might finally have chosen, but that's another story), the MMORPG that I've been writing.

There are 117 stars in a 20 light year radius around Sol. There are 544 space stations and currently there are 3,080 rooms in those stations (and that number is growing). That means there's a lot of area, but how do I fill that area? There's a lot of work still left to be done, but I took a quick stab at implementing a procedural mission generator as described in this paper. Surprisingly, the core of the code only took about an hour to write.

$4,000 grant approved

The Grants Committee approved and funded the grant proposal "Modern Object Oriented Programming in Perl" in the previous round.

This is our first time to fund a grant which exceeds $3,000 since we lifted the grant limit of $3,000 earlier this year.

I am pleased that we are now able to fund larger scale grants and help the Perl development. While we don't have unlimited budget, it is the right thing that appropriate amount of money is funded for good projects which will help the growth of Perl.

If you did not submit a grant proposal in the past just because $3,000 limit was too low, act now. The deadline of the next evaluation round is July 15th.

For choosing the grant amount, see "Improving the grant program (1) Grant Limit" too.

XS, Advanced XS Callback Patch For OCI, Part VIII Just a little 'c'

Just a quick one tonight's installment for my new chapter in XS Fun just looking at the next function from my patch.


Now just to continue on to the next logical step we will need a disable function as well so my patch is

Charlie Stross on the future of technology and Perl.



Charlie Stross on the future of technology and Perl.

[From my blog.]

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.