Slideshows in Vroom: So Noted

Occasionally I give presentations.  Most often at work, but sometimes at my local PerlMongers.  Typically, a presentation is accompanied by some sort of slideshow.  And there are many, many different applications out there to create slideshows in.  Power Point is sort of the default of these, and I’ve used it before, and it sucks.  Google Docs Presentations uses the same basic model, and I’ve used that before too, and it sucks slightly less ... but it still sucks.  I just want some basic slides with a little bit of code on it, and maybe some text, but mostly in the “header” category.  I don’t like text-heavy slides.  You end up just reading your slides to people, most of whom can actually read themselves, and tend to be a bit insulted when you feel the need to do it for them.

Regexp::Debugger saved me twice today

I just wanted to say that if you stumble with a regex try Regexp::Debugger.
It saved me twice today facing problems too silly to describe here. :-)

Here is how I proceeded:
- write regex and see it not doing what I want
- think, rewrite, think again, rising anger
- insert Regexp::Debugger the line before regex
- play the regex, facepalm (in a positive way)

I now think about writing more complicated regexes. I want to enjoy the debugger even longer. ;-)

A Test::Class Anti-Pattern

I've been having a great time at YAPC::NA (my first YAPC In the US) and so far everything's been going swimmingly ... well, except for when I was giving a lightning talk and my phone kept buzzing in my pocket because my wife was lost.

I gave a talk on Test::Class::Moose and there were plenty of interesting questions and many of them were about topics I would like to have included in the talk, but simply didn't have time. One person emailed me later asking me a detailed question about test control methods and while I've discussed this before, I thought it was important to re-explain a common anti-pattern I see in Test::Class test suites.

Web Services Part 2: Using Joyent

I recently started trying out different cloud providers to find one that meets my Perl needs. I see many uses for cloud computing in the form of on demand, ubiquitus computing nodes that I can launch with a range of "hardware" specifications. This translates directly into saving money, the prices are different for each hardware plan and you pick what you think you need and erase it when you are done. This article is focused on using Joyent to run Perl applications, not using Perl to interact with the Joyent API, that is a future article already in the works.

Announcing App::Midgen v0.24

So what’s new?

  • Some extra speed taking advantage of some new developments in:
    • PPI::XS
    • Perl::MinimumVersion::Fast
  • Re-factor the Output formats to composed Roles
  • Start of conversion to Type::Tiny

for the rest of the blog go here

Any comments leave them here.

Making web applications like LEGO blocks - YAPC::NA 2013

It's like a LEGO blocks to making web applications for me. I'm using the Mojolicious as a web application framework. Mojolicious is a very good framework that is thin and simple, but it does not support a model, database accessing, form validation and others. So, we should choose CPAN modules to construct my web application and use the modules with the framework.

On YAPC::NA, I'll introduce my best practices of choosing CPAN modules and composing for web application that I'm developing in Japan. My application depends on many modules written by Japanese authors. The libraries I'll talk about are below.


  • Plack - Interface between web applications and servers
  • Mouse - Class builder
  • DBIx::Skinny or Teng - O/R Mapper
  • FormValidator::Lite - Simple form validator
  • HTML::FillInForm::Lite - Fast fill in form
  • Data::Validator - Validator for args
  • Devel::KYTProf - I/O profiler
  • Carton - Like a ruby bundler
  • Cinnamon - Cool deployment tool
  • And Others

Do you know these modules ? :-)

My presentation will be talked on Wednesday at YAPC::NA 2013 Austin .

Very fun to compose CPAN modules that I chose, it's like a LEGO blocks !

Ab(Using) the MetaCPAN API for Fun and Profit v2013

I'll be speaking about using (and abusing) the MetaCPAN API on day 2 of YAPC::NA. If you think you might be attending (or even if you're not), I thought I'd post some links to some helpful info. No, you don't need to do any prep for this talk, but for those who are interested, this is just some background info that will help you get your head around MetaCPAN.

This talk will touch on and expand on some of the points I discussed last year, so you could have a quick look at last year's slides. I've also put together some sample code for tomorrow's talk. If you use Carton, you can follow the instructions in the top-level README to get started in just a couple of minutes.

On a barely related note, iCPAN 2.1.0 is now in the app store. I used it on the flight down to prepare for my talk. Seemed to work well for my purposes. :)

Web Services Part 1: YouTube playlists

It started off with just a simple problem; a friend recommended some songs from various artists on YouTube. I go and listen to the songs, like them, and start looking for more from the same artists. Browsing around I find some interesting playlists but notice some of them have the same songs and I think "I'll just download the playlists and remove duplicates with a quick script".

Perl 5 Porters Weekly: May 27-June 2, 2013

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list. I'll be at YAPC all week, so be sure to say "Hi!" if you see me or come to my talk.

Topics this week include:

  • CGI.pm and Module::Build to leave core
  • CGI.pm is dead, long live CGI.pm
  • Building foundations...
  • Storable refactoring

Announcing: UAV::Pilot v0.2

UAV::Pilot, a library for controlling UAVs like the Parrot AR.Drone, has now released version 0.2. Details on my blog.

Some Diagnostic Features of Middle Irish

A friend of mine, with whom I am teaching Old Irish, asked for some diagnostic features of Middle Irish so I thought I would put it here to help them and anyone else who may want to know.

Introduction

There are many different features which mark the change from Old to Middle Irish. Much of this is discussed in much more detail in Kim McCone’s ”A First Old Irish Grammar and Reader” pp. 173—217. I will give a small précis of this here. For a more full account for verbs, see Kim McCone ”The Early Irish Verb” pp. 163—240. A full analysis by Liam Breatnach is detailed in ”Stair na Gaelige” pp. 221—333. The main problem with Breatnach’s analysis is that it is entirely in Modern Irish so unless you know that language first, or you enjoy typing and trust Google Translate, it will be inaccessible to you.

The "sky" command-line application and other Recent hacktivity

If you have a good web hosting, you may have run into a pattern, where you are uploading files to it for other people to download and need to find the URL where they were uploaded to. Thing is - recalling the exact Rsync (= a file uploader) command and then going to the web browser to access the URL is time-consuming, and repetitive. sky, written in Perl using Moo and available on CPAN, aims to fix all that.

Here is a sample invocation from the web-site:

The Design of Four

[ This is cross-posted from the Ocean of Awareness blog. ]

In the Perl world at this moment, a lot is being said about the consequences of bad design. And it is useful to study design failures. But the exercise will come to nothing without a road to good design. This post will point out four Perl-centric projects that are worth study as models of good design.

The projects are ack, cpanm, local::lib and perlbrew. Each of these is perfect in the older sense of "having all that is requisite to its nature and kind" (Webster's 1828). If you are into Perl, they are all widely useful, and looking at them as a potential or an actual user is the best way to gain an appreciation of the art behind them.

Visualizing YAPC::Asia with HRForecast

This year we're using HRForecast to keep track of ticket sales and talk submissions for YAPC::Asia Tokyo 2013, and it's looking good. I highly recommend you using these tools to visualize your data

Notes from a Newbie 20: YAPC::NA 2013 Austin

This entry provides details for my talk Notes from a Newbie that I will give at YAPC::NA 2013 Austin.

Among other things, I will briefly discuss a series of tutorials I created titled Notes from a Newbie, which document the creation and deployment of yardbirdfanclub.org with Perl Catalyst on shared hosting. They are intended for a Perl Catalyst Newbie who would like to study the creation and deployment of a simple Perl Catalyst application.

Get Yourself In The Perl Companies Database

Vicky Brasseur has started a project on GitHub to collect information about companies that use Perl. I think this could be a huge asset to the Perl community. Just knowing who uses the language is immensely helpful to job seekers, managers, module authors, language maintainers, conference organizers, and entrepreneurs.

The database has already been seeded with information extracted from several years of job postings[1]. So if your company is listed, please make sure the information is correct. And if it's not listed, then feel free to add it. All you have to do is fork, edit the CSV file and make a pull request. You can do it all right in your browser at GitHub.com!

If you have a bit more bandwidth, then consider contributing some code too. I would love to see a web form that makes it easy for folks to add & update data, or some online tools for slicing and filtering and graphing the data. There are lots of really interesting possibilities. And you'll be helping to inform the future evolution of Perl!

Once again, that URL is https://github.com/vmbrasseur/Perl_Companies


[1] Many thanks to brian d foy for providing this data

If there's a shortage of programmers, why aren't wages up?

"There's no shortage of IT workers because wages would rise!"

I've heard that so many times that I want to scream. And it's all because of one damnably simply, yet misunderstood, supply and demand graph:

supply and demand graph

We all learn about that graph in introductory economics classes and, to misquote Mencken (as everyone does), it's simple, elegant, and wrong.

PerlX, sub-communities, etc.

TL;DR: I just finished and gisted a transcript of a Russian Perl podcast discussing Perl's future, and many other things. I made it with the strong belief it will be very beneficial to have access to yet another point of view during certain future events.

Read on for my take on the subject of communication.

Securing your website against Cross Site Request Forgery Attacks

I was pleasently surprised to find out that there is already a Plack Middleware that improves security against CSRF attacks. And it's very easy to use.

I'll demonstrate with a Catalyst example but any app running with Plack can make use of it.

In your application you simply configure the middleware.
(Note: Plack::Middleware::CSRFBlock depends on Plack::Middleware::Session)

   # lib/MyApp.pm
   use Catalyst qw/ EnableMiddleware /;
   __PACKAGE__->config(
      # ...
      'Plugin::EnableMiddleware' => [qw/
         Session
         CSRFBlock
      /],
   );

And that's it. From now on CSRFBlock adds a token to your forms and when you submit the form it will check if the token is valid.

Visualizing Dependencies On Stratopan

I've always found it difficult to comprehend the relationships between all the Perl modules in a large application. So for a long time I used GraphViz to create dependency graphs. But I was never quite happy with them because they were fairly static and hard to understand once you had more than a couple dozen modules in play.

prereq-wheel.png

Then a few weeks ago, I discovered D3. The sample gallery has a very nice interactive dependency graph. Since it is organized in a circle, it scales to a large number of modules very well. So now, every repository on Stratopan will have graphs like this one (click the picture at left to view the interactive demonstration).

The graph isn't as intuitive as I would like yet, so let me explain a bit... What you're seeing are the relationships between all the distributions on a "stack" in a Stratopan repository. In this case, the stack contains everything required to build, test, and run Perl::Critic. When you hover over a distribution name, the relationships are highlighted. Dependencies (i.e things it requires) are connected with red lines, and Dependers (i.e. things that require it) are connected with green lines.

Over time, I hope to add more helpful visualizations like this to Stratopan. If you've got some ideas, I'd love to hear them.

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.