Imager::Barcode128
If you need to generate GS1-128 compliant bar codes, then look no further than my new Perl module Imager::Barcode128.
[From my blog.]
If you need to generate GS1-128 compliant bar codes, then look no further than my new Perl module Imager::Barcode128.
[From my blog.]
Like many Perl hackers with a C background, I did my fair share of XS programming. But mostly, I contributed bug fixes and other minor changes. In the rare case that I had to add a new XSUB, I typically used another XSUB from the same project as template. Unfortunately, this cargo cult is common among XS authors.
When I wrote my first public XS module, CommonMark, from scratch, I decided to read the perlxs documentation front to back to get a better understanding of the features XS provides. It did pay off. There are many things I missed and some of them can be extremely helpful. So I take the opportunity to share the things I learned with my fellow XS writers in a series of two or three posts.
It's great when organizations with (marketing? public relations? good will?) budgets authorize financial backing of events like the Perl QA Hackathon. Donations to these kinds of efforts are one of the many ways to contribute to the Perl ecosystem. But did you know you can donate to the Hackathon personally?
This year, I decided that I wanted to make a donation to the Perl QA Hackathon (albeit modest). For those of you who have some spare change burning a hole in your wallet, maybe some of the reasons I decided to donate will resonate with you.
My relationship with Perl is personal. I use the Swiss Army chainsaw because I choose to. The fact that I am employed by a company that wants to leverage this choice is almost happenstance. Said another way, if my employer decided to stop developing in Perl, I would seek a new employer.
Although YAPC::Europe::2015 preparations are well underway in Granada, it is time for the venue committee of the YAPC::Europe Foundation (YEF) to think about the location of the 2016 conference. YAPC::Europe wouldn't exist without dedicated teams of volunteers, and we are always excited to see the enthusiasm and learn about the new ideas the community has to offer.
Further information about preparing a complete application can be found at here. Proposals submitted to the venue committee will be added to this public repository (you may provide private information separately) to benefit future organizers.
The deadlines which apply to this portion of the procedure are:
If you do not receive a confirmation for your letter of intent or proposal within a couple of days, please personally contact a member of the venue committee.
Please send your questions, letters of intent, and proposals to venue@yapceurope.org.
If you’d like to learn more about Amazon’s web services, specifically Simple Email Service and Simple Notification Service, and you’re in Madison, come to MadMongers tomorrow (Tuesday) night.
[From my blog.]
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.
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.
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.
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.
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.
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.