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.
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.
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 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.
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.
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.
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.
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
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.
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.
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.
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!)
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.
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:
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:
Use Perl;
Have Perl developers;
Sponsor Perl events;
Send delegates to conferences;
Buy Perl services from consultants;
Sponsor development;
Release Code;
Sponsor a module creation;
Manage an event;
Host an event;
Encourage employees to be community members;
Allow employees time to pursue community participation;
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.