I am Robot


I'm Charles Haven - a technologist* in North Carolina

A native Floridian I moved to the Piedmont region of North Carolina in 1990. After graduating from High Point University my wife and I chose to settle in High Point.

I have always been in the information business. Starting in high school by studying lithography and various aspects of the graphics trade. I would go on to become a very proficient press-operator, unknowingly following the generations of men in my family before me.

In the early 1990s I came to realize that the pace of change in the information field was increasing. I was doing more pre-press and composition work on a computer, and Xerox had recently delivered a machine that could do my job.

There were two paths before me: one, additional training to pursue fewer opportunities in traditional information sharing; or two, additional education to participate in the future of information sharing.

I love helping organizations embrace technology and show how it is essential for business success.


System Administration

I cut my teeth on system administration as a Computer Operator for a local hospital in the 1990s during college. Most of my career centered around Microsoft technologies with Linux filling-in the gaps.

As the technologies organizations use becomes more decentralized I believe Linux will fill important roles formerly addressed with expensive Microsoft solutions.

Microsoft Active Directory

Windows / Linux Users and Groups


Firewall (Windows / Sonicwall / Cisco)

Storage (SAN / NAS / File Servers)

Prophet21 ERP

Microsoft Exchange

Database (MySQL / SQL Server)

Webservers (Microsoft IIS / Apache / NGINX)

VPN (Windows / Sonicwall / OpenVPN)

Virtualization (VMWare / Virtualbox / Hyper-V)

Print Management

I excel at integrating data from disparate systems that help organizations make decisions essential for business success.


Web development

I believe in the concepts behind HTML. The idea that information can be displayed anywhere, on any device, in nearly any format (appearance), and link other information with the ease and openness not found in traditional forms of information sharing. It is open. It encourages sharing. It accomodates obscurity.











System Admin


“A project is complete when it starts working for you, rather than you working for it.”
Scott Allen



Case StudyA Better Way to Print Labels From a Browser


Old asset label

Figure 1: old asset label format

We employ a browser-based asset management application created in-house and written in PHP. The asset label is designed to print on 3" x 1" labels on a dedicated label printer. Clicking a link on the asset details page opens a "pop-up" window with the label displayed.

Printing labels was proving difficult due to many shortcomings. Among the following:

Bottom-line, the printing of labels was troublesome for the IT techs, despite them having created the application, and would have proved un-usable if rolled out to the less computer-savvy end-user populace.

The Challenge

Create a simple way to print labels from a browser that did not require the end-user to change page properties or printing preferences in the browser. Ideally, clicking a link to print a label would "just print a label" causing a label to spit out of a dedicated printer.

The Solution

Sample ZPL script

Figure 2: sample ZPL script

Create a Zebra Programming Language (ZPL) script using PHP and FTP the script to the printer causing the printer to generate a label.

Rather than using PHP to generate a label and display it to the end-user for him to print, the PHP page was re-written to generate a ZPL script then using built-in functions FTP the script to a Zebra printer at a specific IP address. Once the script has been FTP'd to a Zebra printer the printer automatically parses the script and generates a label.

The Result

A nearly fool-proof way to print asset labels without requiring any input or reliance on the end-user. All labels are identical in size and quality. All QR codes are natively generated by the printer instead of just an image being printed, eliminating the reliance on external APIs or PHP classes.

Labels can be printed from any device including tablets and smart-phones, and they do not have to be connected to the network to which the printer resides. This means labels can be printed from anywhere in the building (or the world).

Case StudyReporting Item Usage in Epicor's Prophet21


Prophet21 Usage

Figure 1: Prophet21 Item Usage screen

Air Power is a distributor of industrial tools primarily pneumatic. Like many distributors, we use an ERP from Epicor named "Prophet21." This software was initially named "Commerce Center" created by the company "Prophet21" before they were acquired by Activant (which was later acquired by Epicor).

When I started at Air Power in 2000 they were on a character-based system from Prophet21 named "Acclaim." In late 2005, the decision was made to upgrade to a Windows-based solution and logically we decided to move to Prophet21's Commerce Center. After a short 6 month conversion we went live in early July 2006.

Very soon after going live we discovered the way the software displayed an item's usage was not going to work for us. In Prophet21, usage is displayed by sales location. To determine the company-wide usage you have to record the usage for a location, then click another tab to select another location. Then click back on the Usage tab to see that location's usage for the item being displayed. Repeat this for all locations then add up the figure for each location to get the total usage. With several locations this is tedious and when reviewing several items is laborious.

The Challenge

Develop a way to view an item's usage that displays a company-wide total. The solution should be no more difficult to use than displaying usage for just one location in Prophet21. Furthermore, the solution must display the usage in real-time - not relying on a "data dump" of the previous day.

The Solution

Sample ZPL script

Figure 2: Web-based Item Usage on our intranet

In an attempt to find a solution quickly we hired a consultant from Prophet21 to work on-site for one week. At the same time I went to work on a web-based report that would be accessed from our company intranet. Having experience with Crystal Reports, I also started work on a custom report that I thought may be integrated into Commerce Center itself somehow.

Our on-site consultant proposed a Crystal Reports solution as well and began work on creating a custom report. After learning some of the requirements that would be needed and how the end-user was expected to use the report, I abandoned the idea of using Crystal Reports and focused on the web-based report. Both the Crystal Reports report and the web-based report would be presented to a steering committee to make the final decision.

After a few days both the consultant and I had working prototypes and presented them to the steering committee. Both options looked promising and the next two days were spent making design changes at the request of the steering committee. One concern over the web-based reports was acceptance by end-users, as this was to many the first time the Internet was relied on to produce a report. Everyone had heard of Crystal Reports and the canned reports within Commerce Center were written in Crystal as well.

Fortunately, the steps required by the end-user to use the custom report and the limitations to updating the report outweighed the perceived limitations of the web-based report and the steering committee selected the web-based report.

The Result

The web-based report was an instant hit with all end-users. Instead of resistence most users offered suggestions and requests for more information to be displayed. Although it is difficult to know how much time it has saved, nearly everyone agrees that this report is a timesaver.

The original report was written using Microsoft's Active Server Pages (ASP) technology. In 2010 the report was re-written in PHP and included features such as auto-complete, uploading of files, and displaying information specific to the location of the employee viewing the report.

July 2006, revised October 2010

* one who specializes in technology. I haven't touched a printing press since 1994.