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
MediaWiki extension.json change in 1.25
I recently released a new version of the MediaWiki “Request Tracker” extension, which provides a nice interface to your RequestTracker instance, allowing you to view the tickets right inside of your wiki. There are two major changes I want to point out. First, the name has changed from “RT” to “RequestTracker”. Second, it is using the brand-new way of writing MediaWiki extensions, featuring the extension.json file.
The name change rationale is easy to understand: I wanted it to be more intuitive and easier to find. A search for “RT” on mediawiki.org ends up finding references to the WikiMedia RequestTracker system, while a search for “RequestTracker” finds the new extension right away. Also, the name was too short and failed to indicate to people what it was. The “rt” tag used by the extension stays the same. However, to produce a table showing all open tickets for user “alois”, you still write:
<rt u='alois'></rt>The other major change was to modernize it. As of version 1.25 of MediaWiki, extensions are encouraged to use a new system to register themselves with MediaWiki. Previously, an extension would have a PHP file named after the extension that was …
json mediawiki extensions
Int’l — JavaScript numbers and dates formatting, smart strings comparison
Introduction
WARNING — At the time of writing this text all of the things mentioned below are not yet supported by Safari and most of the mobile browsers.
It’s almost three years now since Ecma International published the 1st version of “ECMAScript Internationalization API Specification”. It’s widely supported by most of the browsers now. A new object called Intl has been introduced. Let’s see what it can do.
To make it easier imagine that we have a banking system with a possibility of having accounts in multiple currencies. Our user is Mr. White, a rich guy.
Intl powers
Number formatting
Mr. White has four accounts with four different currencies: British pound, Japanese yen, Swiss franc, Moroccan dirham. If we want to have a list of current balances, with a correct currency symbols, it’s pretty simple:
// locales and balances object
var accounts = [
{
locale: 'en-GB',
balance: 165464345,
currency: 'GBP'
},
{
locale: 'ja-JP',
balance: 664345,
currency: 'JPY'
},
{
locale: 'fr-CH',
balance: 904345,
currency: 'CHE'
},
{
locale: …html javascript

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

