Recent Posts

Adding History to fpp (Facebook PathPicker)

published on
I’ve been a fan of `fpp` (Facebook PathPicker) since I first heard about it. I had long been looking for something like this and had even considered writing it myself. Fortunately someone else spared me the work and did a much better job than I would have. It’s no exaggeration to say that I use this utility every day at $work. In fact I use it many times per hour. It’s part of my normal workflow now. Read More...

HTTP::Response may have a different definition of success than you do

published on
This has bitten me before, so I thought it was worth writing about. This RT ticket explains it better than I can, but let me sum things up here. Consider this code: 99 times out of 100, this will do what you mean. Occasionally it doesn’t. What is the definition of success? In this case it means that there’s an HTTP response code in the 200s. Q: What happens if you’ve gotten a 200 response code in the server headers but (for example) there’s a problem with the response body? Read More...

Upgrading Business::PayPal::API

published on
I got co-maint on Business::PayPal::API about 3 years ago in order to patch one line that was throwing a warning. The previous release had been 2 years prior to that. So it’s fair to say that this module has not lately been on a rapid release cycle. It’s still in use, though, and lately there has been some activity on rt.cpan.org related to it. So, I finally took an evening to sit down and try to cut a new release. Read More...

Stop Writing Your Own Commify Functions

published on
Writing your own commify function may well be right up there with writing your own web framework or templating system. Most of us have done it and it probably wasn’t worth the effort. Enter CLDR::Number. (I should note here that it’s not obvious from the name that this module will commify for you – that’s one of the reasons I’m writing this up.) Let’s see if we can do this: Read More...

On the status of HTTP::BrowserDetect

published on
One of the first modules I ever took over on CPAN is the venerable HTTP::BrowserDetect. I remember I was giving a talk at Toronto PerlMongers one night about a UserAgent parser I had worked very hard to build. When I was finished, one of the comments was “Why didn’t you just use HTTP::BrowserDetect”? The answer was pretty simple – I just didn’t know about it. After I got familiar with HTTP::BrowserDetect, I saw that it was on some levels better that what I had written, but that it needed some love. Read More...

How I Spent my 2015 NY.pm Hackathon

published on
On May 2, 2015 I had the pleasure of attending the NY.pm hackathon, which was hosted at the Bloomberg tower in Manhattan. I was privileged to be one of 5 developers to have their travel and hotel sponsored by Bloomberg L.P. This made attending the event very easy for me. Basically all I had to do was show up at the airport and the rest was taken care of for me! Read More...

I’ll be at the 2015 New York Perl Hackathon

published on
I’m happy to say that I’ll be participating in the 2015 New York Perl Hackathon. I’d like to thank Bloomberg, L.P. for sponsoring me so that I can attend this event. While I’m at the hackathon, I hope to continue my work on MetaCPAN as I did at the QA Hackathon one week ago. I’ve put together a list of possible MetaCPAN projects. If anyone would like to take on any of these projects, feel free to get in touch with me in advance if you have any questions on what might be involved with any of these proposals. Read More...

How I Spent My 2015 Perl QA Hackathon

published on
One week ago I was in Berlin at the Perl Quality Assurance Hackathon (QAH), happily hacking away on MetaCPAN. Today I’ll summarize the good, the bad and the ugly about my time in Berlin. Spoiler alert: it was all good. This was the third year that I’ve been able to attend the QAH. I was previously in Paris and Lyon. From my past years, I knew that I’d have some serious time to put my head down and get some work done. Read More...


Bat (2)

Cpan (1)

Fd (3)

Fzf (3)

Go (2)

Metacpan (15)

Perl (35)

Perlimports (1)

Programming (25)

Prove (3)

Tab Completion (3)

Testing (3)