Skip to content

History

Tres Finocchiaro edited this page Feb 10, 2021 · 5 revisions

The QZ Story

The Java Applet

In 2008, Tres Finocchiaro wrote "jZebra", a free, open source Java Applet to circumvent limitations imposed by the web browser when printing to industrial hardware. Although initially written for magnetic card printing, the applet quickly grew in popularity for wider uses such as shipping labels (e.g. ZPL, EPL) and eventually receipt printers (e.g. ESC/POS) -- which too -- required special considerations to handle low-level commands to this hardware.

Over its 5-year lifespan, the jZebra project answered over 3,000 emails -- more than 2 emails per day.

Starting A Company

In 2013, Oracle (e.g. Java) began requiring certificates for Java Applets, resulting in an influx of security warnings to jZebra users -- in some cases -- inhibiting the ability to print altogether.

Faced with costs to of certification and community demand, QZ Industries LLC was born as a partnership between programmer Tres Finocchiaro and brother Lite Finocchiaro.

That year, jZebra was rebranded as "qz-print", and for a fee, was offered with a trusted certificate, complying with Oracle's new security requirements.

Java's Dead. Long Live Java.

The wildcard problem

In 2014, Oracle further restricted the abilities of a Java Applet, placing hard restrictions on which websites can run Java code. QZ fulfilled this need by hosting a custom build of qz-print for each customer, an unsustainable effort.

The NPAPI problem

Later that year -- to further thwart security concerns -- browsers started blocking Java altogether, forcing qz-print to stop using the Java Applet technology. Applets would soon stop working in all browsers.

Early 2015, qz-print introduced a websocket wrapper, allowing the applet code to continue functioning as a standalone desktop application.

QZ Tray is born

On June 1st, 2015 "QZ Tray" -- the qz-print applet, but running in the system tray -- was a websocket-first rewrite of qz-print, but with responsive design and bleeding edge technologies, such as JavaScript Promises. In collaboration with 3rdsoft and from the core of qz-print, a new API and desktop application were born.

Work smarter, not harder

In 2016, HID device support was added, adding a wide range of hardware support, such as barcode scanners, weight scales and much more.

In 2020, the desktop installer was rewritten using pure Java, removing development redundancies empower custom deployment tasks.

Following its success, QZ now works directly with upstream projects such as OpenJDK, OpenJFX, PDFBOX and JNA (and others) to solidify its role in the Java ecosystem.

By partnering on features, fixes and detailed feedback, QZ now focuses its energy on leading the industry on browser-to-hardware communication.

Clone this wiki locally