Writing XS Like a Pro - The INTERFACE Keyword

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.

Why I donated to the Perl QA Hackathon

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.

Call for Venue for YAPC::Europe 2016

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:

  • Friday, 15 May: Deadline for sending a letter of intent. This letter simply expresses interest in hosting the conference and provides contact information (both email and telephone) for at least two organizers. This is an optional step but it can be to your advantage to alert the venue committee of your proposal.
  • Thursday, 16 July: Deadline for sending proposals to host YAPC::Europe 2016.

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.

MadMongers (Madison Perl Mongers)

MadMongers (Madison Perl Mongers) :

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.]

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.


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


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.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.