Firefox is dead... or something

In terms of market share, there has been no shortage of comparisons between Perl and Firefox over recent years. For that reason then, I found recent analysis of survey results interesting.

In the last 12 months, Firefox's user share -- an estimate of the portion of all those who reach the Internet via a desktop browser -- has plummeted by 34%. Since Firefox crested at 25.1% in April 2010, Firefox has lost 13.5 percentage points, or 54% of its peak share.

I personally use Firefox (via Debian's Iceweasel) and have yet to find a satisfactory browser on Android. I rarely use iOS for any serious browsing (not having an Apple tablet device). Whilst I have Chromium (again, Debian) installed - I haven't found it's experience compelling enough to abandon Firefox and my suite of plugins/add-ons. Firefox Hello was a nice fun new addition as well - and dropping the "Facebook Messenger for Firefox" integration was disappointing.

Class Abuse

This situation arose recently and it got me curious...

What if you needed to access an algorithm in a very simple class method, but the functionality of the class is significant and would be a pain in the ass to set up and create an object in, not to mention resource-intensive, all to use one small function...

You could copy the algorithm, but what if it changes? Then you'll have to change it twice. That's no good. I don't like either option.

More

CPAN PR-Challenge: March Report #2

The second pull request for this month is, this time, in the distribution that was assigned to me, Exobrain. In this case, it was a simple PR on dependencies.

First, define the minimum version for Data::Structure::Util, the distribution for which I created my first PR this month, in order to make it pass all the tests in version 5.20 and above. Also, took some time to clean up the C syntax.

Then, remove some dependencies that seems no longer needed from dist.ini (were hard coded) and also define a minimum version for a required module directly in the use statement.

So, a simple PR, but one needed (there were some comments requesting this change, as well). You can see it in all its glory (cough!) here: https://github.com/pjf/exobrain/pull/62

Asked NeilB to mark this month assignment as complete but, if time permits, I will prepare a more interesting PR.

The Company Culture: Go Leader

hdjjfchg.png

The Westfield Leader has been using Perl for more than a decade (since 1998), providing many essential functions. Over time they have received considerable learning help from the Perl community.

They are privately owned weekly newspapers in Westfield, NJ since 1890. Perl contributed to helping us digitize all of the archives, which run as far back as 1907, and they are now searchable on the Internet.

Perl provides point in time backup (20 minutes) for the composing of files during press time production by editorial staff.

"Sometimes a file may crash on our LAN during deadline and this saves the day."

Utilising Perl and rsync, they backup business data, sales data and production data for local archival, then sync this to a remote location that also runs using Perl and Debian servers.

Introduction to Mojolicious



Introduction to Mojolicious

[From my blog.]

Tree::Renderer: A partial replacement for Data::TreeDumper

It seem that since Perl V 5.20.0, Data::TreeDumper won't install because it depends on Devel::Size, but in fact the latter could be marked optional (I'm told via an RT ticket).

For my own use basically, I'll soon release a simple module called Tree::Renderer, whose default output is almost identical to that of Data::TreeDumper.

So far, I've only implemented these return values for Scalar::Utils's reftype:
ARRAY, CODE, HASH, REF and SCALAR.

If you want support for other types let me know. Being lazy I hope not - in the nicest possible way, of course!

Lastly, yes, the name Tree::Renderer could be Data::TreeRenderer, etc, etc. Suggestions tolerated.

Test-More status update

The new Test-More stuff will NOT be part of 5.22 as originally planned. Instead the latest stable with ship with 5.22. The reason for this is a perl-qa consensus about a design decision that should be changed.

Back when performance was a problem I tried out using array based objects instead of hash base ones. In profiling, the object system was one of the big time eaters. While I changed the base to arrays I also changed how the accessors were built, and how some other parts of the objects worked. In the end my profiling showed huge improvements. Unfortunately I failed to measure the array base and other optimizations independently. I also failed to record my data, making it impossible for me to provide a sound argument for the array based design.

The Company Culture - the process

This week I will be starting the company promotion that I mentioned in my last blog post (https://blogs.perl.org/users/shadowcat_mdk/2015/03/perl-and-the-company-culture.html). I thought I would take a few moments to explain some more what I am doing and what the process will be.

As I said previously this is not a structured approach, there is no definite action or reward to be achieved and no promises on time. My plan is to keep collecting the information and to promote one company each week until I run out of information and/or companies.

How things get done in Djet

How things get done in Djet

CPAN PR-Challenge: March Report #1

This month I was assigned Exobrain. My first problem is that I can not install install it at all because dependencies are failing. The first failing dependency was Data::Structure::Util.

Looking around in Testers Matrix I found that is was failing only on 5.20 or above. Then, looked up the failing test, and understood Perl changed the way undef are passed to subroutines as first argument. After reading the Perl Delta and discussing with Andy Armstrong (the module maintainer) about that, the test was removed (it was based on a bug or not standard behavior). I did not get a chance to create the PR as AndyA fixed the code and released a new version.

Nevertheless, when trying to find the problem, I noticed the XS code was giving a lot of warnings on recent GCC, so I went out and fixed them, preparing a PR available here: https://github.com/AndyA/Data--Structure--Util/pull/3

Now waiting for Andy to release a new version.

Perl 6 for Mere Mortals - FOSDEM Video

My FOSDEM talk, Perl 6 for Mere Mortals, is now online:

You can see the rest of the Perl dev room videos here. Sadly, there were some technical problems, so a couple of videos have audio issues.

All of FOSDEM videos will eventually be here, but not all videos are ready yet.

Are you the one person left on the planet using a Palm Treo?

If you are, then I have two very important things to say to you.

First, why the hell haven't you upgraded to something - anything! - else?

Second, I just released updated versions of Palm::SMS, Palm::Treo680MessagesDB, and Palm::TreoPhoneCallDB. Now they should build with a vaguely modern perl toolchain (in the case of Palm::SMS) and will work with a modern version of Palm::PDB, which appears to have mysteriously travelled back in time and gone from version 1.29 in 2002 to version 1.016 today.

PEG: Ambiguity, precision and confusion

In my lastest blog post , I talk about PEG, the popular parsing algorithm.

CPAN PR-Challenge: February Report

Given the lack of answers and/or comments from Ovid and the Community on my Pull Request on MooseX::Role::Strict, and given my lack of knowledge on Moose internals, I will declare the February assignment as finished.

Nevertheless, if meanwhile anybody comments on my Pull Request and suggest any change, I am happy to make the PR better.

Wish list: SVG to PNG converter

I think once I used Image::LibRSVG to convert images created by SVG to PNG, but now it has 70% test fail rate and I could install it on Mac .

I wish someone saw it as a CPAN challenge, took overt the maintenance of the module and made it easy to install it.

MOJO!!!!

mojo1.jpg

Well it seems somehow I always have great luck (not sure if it is good or bad) when getting a new computer and then loading Mojolicious on it.

So twice before this has happened to me, I set it up with all my dev software, a few flavors of perl, Padre and so on. Then I add start to port over some of my web apps then I try to run them and sure enough Mojolicous gives me great grief.

It seems I have an uncanny knack to update or break in a new box just as a new n.0 version of Mojolicious comes out (this time it is 6.0, I might of actually been one of the first to download it). Well at least I am savvy enough not to update the Mojo on my production boxes as quickly, so there is no real loss money wise just some frustration.

Upcoming 2015 Sydney PM Meets

In brief...

Catalyst have agreed to host us on March 10th.

Broadbean have asked to have us on April 14th.

SiteSuite have agreed to host on the 14th of May.

Dates beyond that are up for grabs, and speakers are welcomed for any and all meetings.

Help promote by printing and hanging either the A3 or A4 poster around your workplace, university, college, local hang outs etc. (ask for permission first!)

More details to come, or subscribe to Sydney-PM mailing list

Announcing Statocles Static Site Generator

Static site generators are popular these days. For small sites, the ability to quickly author content using simple tools is key. The ability to use lower-cost (even free) hosting, often without any dynamic capabilities, is good for trying to maintain a budget. For larger sites, the ability to serve content quickly and cheaply is beneficial, and since most pages are read far more often than they are written, generating a full web page to store on the filesystem can improve performance (and lower costs).

For me, I like the convenience of using Github Pages to host project-oriented websites. The project itself is already on Github, so why not keep the website closely tied to it so it doesn't get out-of-date? For an organization like the Chicago Perl Mongers, Github can even host custom domains, allowing easy collaboration on websites.

It's through the Chicago.PM website that I was introduced to Octopress, a blogging engine built on Jekyll. It's through using Octopress that I decided to write my own static site generator, Statocles.

Uploading a new package

Since I got no answer from modules@perl.org I take the liberty to ask here.

PAUSE interface disceased the request for ownership of a new package, fine.

Now I uploaded two new packages and systematically got: Failed: PAUSE indexer report.
Why ?
Sorry if I made a so stuuuupid mistake that is too big so I have not seen it!

Example on a distribution for which I have always been the single unique uploader:

Perl and the Company Culture

A couple of recent events, and a long running conversation, have set me to thinking about all the companies who contribute to the world of Perl. When I say contribute I mean any, or multiple of the following:

  1. Use Perl;
  2. Have Perl developers;
  3. Sponsor Perl events;
  4. Send delegates to conferences;
  5. Buy Perl services from consultants;
  6. Sponsor development;
  7. Release Code;
  8. Sponsor a module creation;
  9. Manage an event;
  10. Host an event;
  11. Encourage employees to be community members;
  12. Allow employees time to pursue community participation;
  13. etc.[1]

When it comes to us talking about people who contribute to the world of Perl it can be real easy to just mention those most visible[2] as being 'paid up' or 'most contributory' participants. This is not done to disregard the others who do participate and promote but out of a lack of understanding.

So I want to change that.

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.