Top 7 Funniest Perl Modules
And now for something completely different …
Programmers in general, and Perl programmers in particular, seem to have excellent, if warped, senses of humor. As a result, the CPAN library is replete with modules that have oddball names, or strange and wonderful purposes, or in some delightful cases—both!
Let’s take a look.
1. Bone::Easy
I’m going to take the coward’s way out on this one right away. Go see for yourself, or don’t.
2. Acme::EyeDrops
Really, anything in the Acme::* (meaning “perfect”) namespace is just programmer-comedy gold, depending on what you find amusing and what is just plain forehead-smacking stupid to you. This one allows you to transform your Perl programs (small ones work better) from this:
print "hello world\n";to this:
jeff@Wyvern:~$ perl bin/eyedrops.pl
1 shapes completed.
use re 'eval';
''=~('('.'?'
.'{'.( '`'|'%').("\["^
'-').('`'| '!').('`'|',').'"'
.('['^'+') .('['^ …perl
Updating rbenv, ruby-build on Ubuntu: ruby version not found
Hi! Steph here, former long-time End Point employee now blogging from afar as a software developer for Pinhole Press. While I’m no longer an employee of End Point, I’m happy to blog and share here.
A while back, I was in the middle of upgrading Piggybak, an open source Ruby on Rails platform developed and supported by End Point, and I came across a quick error that I thought I’d share.
I develop locally and I use rbenv on Ubuntu. I need to jump from Ruby 1.9.3 to Ruby 2.1.1 in this upgrade. When I attempt to run rbenv install 2.1.1, I see errors reporting ruby-build: definition not found: 2.1.1, meaning that rbenv and ruby-build (a plugin used with rbenv to ease installation) do not include version 2.1.1 in the available versions. My version of rbenv is out of date, so this isn’t surprising. But how do I fix it?
I found many directions for updating rbenv and ruby-build with Homebrew via Google, but that doesn’t apply here. Most of the instructions point to running a git pull on rbenv (probably located in ~/.rbenv), but give no references to upgrading ruby-build.
cd ~/.rbenv
git pullI did a bit of experimenting and simply tried pulling to update the ruby-build plugin (also a git …
ruby rails
End Point’s 20th anniversary meeting, part 2
Friday, October 2nd, was the second and final day of our company meeting. (See the earlier report on day 1 of our meeting if you missed it.) Another busy day of talks, this day was kicked off by Ben Goldstein, who gave us a more detailed rundown of End Point’s roots.

The History of End Point
Ben and Rick met in the second or third grade (a point of friendly dispute), and from the early days of their friendship were both heavily influenced by each other’s parents. Their first business enterprise together was painting houses in the summer to earn money for college.
After attending college, Ben worked with Unix and dabbled with the World Wide Web when it was brand new. Rick worked on Wall Street for a while, then decided he had had enough of that and worked briefly in real estate, then left to pursue more creative interests.
Ben showed Rick some simple websites he had been working on and Rick said that is what they should do: they should start a business building websites together. Soon they made the big decision and End Point was officially incorporated on August 8, 1995. Their earliest clients were all found by word of mouth, with the first website being made for one of Ben’s …
company conference remote-work travel
AngularJS & Dancer for Modern Web Development
At the Perl Dancer Conference 2015, I gave a talk on AngularJS & Dancer for Modern Web Development. This is a write-up of the talk in blog post form.
Legacy Apps
It’s a fact of life as a software developer that a lot of us have to work with legacy software. There are many older platforms out there, still being actively used today, and still supporting valid businesses. Thus, legacy apps are unavoidable for many developers. Eventually, older apps are migrated to new platforms. Or they die a slow death. Or else the last developer maintaining the app dies.
Oh, to migrate
It would be wonderful if I could migrate every legacy app I work on to something like Perl Dancer. This isn’t always practical, but a developer can dream, right?
Of course, every circumstance is different. At the very least, it is helpful to consider ways that old apps can be migrated. Using new technologies can speed development, give you new features, and breathe new life into a project, often attracting new developers.
As I considered how to prepare my app for migration, here are a few things I came up with:
- Break out of the Legacy App Paradigm
- Consider that there are better ways to do things than the way …
angular dancer javascript perl
Perl Dancer Conference 2015 Report—Conference Days
In my last post, I shared about the Training Days from the Perl Dancer 2015 conference, in Vienna, Austria. This post will cover the two days of the conference itself.
While there were several wonderful talks, Gert van der Spoel did a great job of writing recaps of all of them (Day 1, Day 2), so here I’ll cover the ones that stood out most to me.
Day One
Sawyer X spoke on the State of Dancer. One thing mentioned, which came up again later in the conference, was: Make the effort, move to Dancer 2! Dancer 1 is frozen. There have been some recent changes to Dancer:
-
Middlewares for static files, so these are handled outside of Dancer
-
New Hash::MultiValue parameter keywords (route_parameters, query_parameters, body_parameters; covered in my earlier post)
-
Delayed responses (asynchronous) with delayed keyword:
- Runs on the server after the request has finished.
- Streaming is also asynchronous, feeding the user chunks of data at a time.
Items coming soon to Dancer may include: Web Sockets (supported in Plack), per-route serialization (currently enabling a serializer such as JSON affects the entire app—later on, Russell …
conference dancer interchange perl
Perl Dancer Conference 2015 Report — Training Days
I just returned from the Perl Dancer Conference, held in Vienna, Austria. It was a jam-packed schedule of two days of training and two conference days, with five of the nine Dancer core developers in attendance.
If you aren’t familiar with Perl Dancer, it is a modern framework for Perl for building web applications. Dancer1 originated as a port of Ruby’s Sinatra project, but has officially been replaced with a rewrite called Dancer2, based on Moo, with Dancer1 being frozen and only receiving security fixes. The Interchange 5 e-commerce package is gradually being replaced by Dancer plugins.
Day 1 began with a training on Dancer2 by Sawyer X and Mickey Nasriachi, two Dancer core devs. During the training, the attendees worked on adding functionality to a sample Dancer app. Some of my takeaways from the training:
- Think of your app as a Dancer Web App plus an App. These should ideally be two separate things, where the Dancer web app provides the URL routes for interaction with your App.
- The lib directory contains all of your application. The recommendation for large productions is to separate your app into separate namespaces and classes. Some …
conference dancer interchange perl
NOAA Marine Sanctuaries in Liquid Galaxy
End Point enjoys a strong presence in the aquarium and museum community with our ability to deploy the Liquid Galaxy display platform. Our content team recently embedded 14 graphic overlays in the Aquarium of the Pacific and Monterrey Bay National Marine Sanctuary Liquid Galaxy systems. These layers highlight National Marine Sanctuary PDF maps created by the National Oceanic and Atmospheric Administration (NOAA). The Office of National Marine Sanctuaries serves as the trustee for a network of 14 protected areas encompassing more than 170,000 square miles from American Samoa to the Florida Keys. As marine sanctuaries, however, these locations are not gong to see as many humans as Yosemite or Yellowstone. Embedding the maps on the Liquid Galaxy allows viewers to dynamically explore the marine sanctuary map and its relationship to the larger landscape in Google Earth, and brings these remote locations to many more interactions with the public.
We are happy to share some of the media that goes into these presentations: A short YouTube video featuring the Marine sanctuary overlays in Google Earth is here. If you would like to explore the marine sanctuaries overlays on your desktop in …
event visionport
End Point’s 20th anniversary meeting
End Point held a company-wide meeting at our New York City headquarters for two days on October 1 and 2. We had an excellent two days of presentations, discussions, and socializing with each other.
In addition to our main Manhattan office we have an office in Tennessee, and many of us work throughout the world from home offices. Because of this, we usually work together through text chat, phone, video call, and other remote means. Everyone traveling to New York City for this gathering was a great chance to get to know each other more personally.
The meeting itself was prefaced by a meetup at the Metropolitan Museum of Art, which turned out to be an fun game of hide-and-seek, trying to find each other throughout the museum’s exhibits.
We’re 20 years old!
This gathering was a special occasion because this year we are celebrating our 20th anniversary as a company! Day one of our meetings began with introductory comments by End Point’s founders, Rick Peltzman, CEO, and Ben Goldstein, President. Together with Jon Jensen, CTO, they took a look back at where we’ve been, where we are now, and where we’re going.
Rick had this message for our clients and friends in August, the month the …
company conference remote-work clients

![[image of Vienna]](/blog/2015/10/perl-dancer-conference-2015-report/image-0.jpeg)
