Fixing SSL problems with Dist::Zilla and github

I’m using Dist::Zilla extensively to test/release the Perl code I write.

I had to fix a bug on one of the modules I wrote and I ran into this error when I tried ‘dist test’ on the freshly checked out repo:

[GitHub::Meta] Getting GitHub repository info
[GitHub::Meta] Err:  SSL connection failed for api.github.com: Client side SNI not supported for this openssl

After some searching I found that IO::Socket::SSL throws this error when it tries to use openssl releases from before the 1.0 release. I’m on OS X 10.9 so this makes sense as it comes with openssl v0.9.8.

Onto homebrew to install openssl, then link it so it appears in /usr/local/bin

$ which openssl
/usr/local/bin/openssl
$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

But alas, ‘dzil test’ is still not working.

Looking into the Dist::Zilla::Plugins::GitHub::Meta code I see this error originates from a HTTP::Tiny call. Now, how to tell HTTP::Tiny to use the recent openssl?

I did

cpanm IO::Socket::SSL
cpanm Net::SSLeay
cpanm Net::HTTP
cpanm HTTP::Tiny

And after the last module install all is working fine again.

I have no time to investigate this further currently, but maybe it is of use to somebody else when the same error pops up.

Garmin simple text convertor script

I needed to test some XBee long-range radios. Hmm, how can we make this test useful and fun at the same time? Well, let’s put one end of the radio in the lab connected to a computer, and wander around with the other radio while transmitting the current position obtained from a GPS.

Using the XBee evaluation kit, my (t)rusty eTrex GPS, a 12V battery and some cables, the hardware was quickly in place. Now, what to transmit over the link? Full NMEA? Hmm, maybe this is a bit overkill. Sending the position once a second ought to be enough. But then I need a microcontroller between the GPS and the radio to reformat the NMEA into simple position beacons. There has to be an easier way…

Continue reading Garmin simple text convertor script

File decimater

A simple script that allows to strip a certain file by retaining only a subset of the lines of the original file.

Usage:

 dcmate <inputfile> <lines_to_skip>

There is also a trivial graphical interface to the tool, called ‘dcmatex’. Put the file in the same folder as the ‘dcmate’ script. It requires the Perl::Tk module.

Download: dcmate

Download: dcmatex

Outlook calendar event generator

This script will generate a list of events that can be imported in your Outlook calendar. Comes in handy if you work in shifts that are not week-aligned.

You can enter the events quickly in a graphical representation of the days of a specific month. The idea is that you first select a ‘shift’ and that you then click on the days that should be assigned the selected shift. The buttons in the calendar view will change color to reflect the new shift.

Once all events are entered, the Outlook import file can be generated by clicking the ‘generate’ button.

The GUI looks like this:

Download: caltool

Continue reading Outlook calendar event generator