Gincker: A New Platform for Charts and Graphics

Gincker is a new SaaT (Software as a Template) based platform for creating and delivering dynamic graphics content. It converts different graphics software packages into templates and expose a simple and common interface that allows users to create advanced graphics by entering a mathematical formula, pasting a dataset, or loading a data file without the need to write a single line of code. 

Traditional Graphics Software  

We have all heard the saying, "A picture is worth a thousand words." Charts and graphics are some of the most informative pictures and play an important role in every application. They make mathematical functions or data easier to understand, improve communication effectiveness, add interest to reports, and have wide applications in our daily life.

Generally, there are two options to create charts and graphics: implementing your own chart and graphics program or using existing (open-source or commercial) software packages. Implementing your own program for creating even simple charts and graphics from scratch takes lots of effort and time. This is usually not the solution for the web time.

Most likely, you end up to use the existing charts and graphics packages. Traditional graphics software, whether commercial or open sources, usually comes as independent packages. Different packages have different interfaces and output formats.

Those independent graphics packages have the following issues:

  • Waste resources and time. Independent graphics software packages are large and complicated and usually require installation on a local machine. Users need to install multiple packages in order to create different types of graphics, which takes up lots of computer resources and time for configuring the development environment.
  • Hard to use. Creating different types of graphics requires different graphics packages with different interfaces. Even for experienced graphics developers, it is still difficult to switch from one package to another because users have to learn how to use the new package in order to create a new type of graphics.
  • Hard to prepare the input data for the packages because each package requires different input format, which is not standardized.
  • Hard to share and explain the output results. The outputs from different graphics packages are unidirectional, i.e. independent of the package. They are usually a numerical data file with different formats, static graphics, or images with a large file size. Without accessing the original graphics package used to create those results, users have no way to confirm, reproduce, modify, and customize the graphics content. In addition, exchanging large graphics or image files over the Internet is slow and inefficient.
    Selecting, evaluating, and integrating suitable packages into applications can pose a significant challenge and take up a lot of time. This is usually not a recipe for rapidly building applications on web time.
  • Different packages may be implemented with different programming languages, which usually require users to have a strong mathematical background and programming experience. Therefore, these graphics packages are for technical professionals, but not for the general public – the user base is very limited.
  • Recently, the hosted solutions, such as SaaS (software as a service) or ASP (application service provider), allow users to access software over the Internet. The SaaS or ASP approach does solve the problems associated with installation and configuration of the development environment, however, the other issues remain. For example, different software services on SaaS or ASP are still independent – they are still have different user interfaces and input/output formats.

The Gincker Platform

Gincker aims to solve those issues by converting different graphics packages and programs into templates that have a simple and unified user interface. This interface consists of two modules: an input module and a graphics customization module. The input module allows users to enter a mathematical formula, paste a dataset, or load a data file, while the customization module is used to customize the graphics, such as color, axes, title, colormap, etc.

The Gincker platform first processes the inputs from the user interface and converts them into a standard graphic data format that can be used by Gincker’s render engine (GRE). The GRE then creates the graphics according to the specified template, processed data, and customization options from the user. The output results will be displayed on the screen.

Unlike traditional graphics packages or services that directly save the graphics content as output, the Gincker platform saves the output as a unique URL link called a gincker through the output routing engine (ORE). The ORE couples with the GRE and the state storage database that stores the development environment state and the template used to generate the output.

Comparing to traditional independent graphics packages or services, we can call the Gincker platform an application template provider (ATP) or software as a template (SaaT). The SaaT-based Gincker platform possesses the following advantages:

  • Wide user base. Gincker is developed not only for technical professionals, but also for teachers, students, and the general public. Gincker converts different software packages into templates. It encapsulates and centralizes internally all the complexities and details of computer graphics programming and implementation associated with each template and exposes a simple and unified interface to users. This allows users to create advanced graphics by simply entering a mathematical formula, pasting a data set, or loading a data file, without the need to write a single line of code. This way, Gincker can easily expand its user base to the general public.
  • Short learning curve. As long as users work through one template on the Gincker platform, they will be able to use all the other templates to create advanced charts and graphics. This is because all templates on Gincker share the same user interface and input/output formats.
  • Dynamic output results. The output from the Gincker platform is a gincker – a simple URL link. This gincker can be embedded in external websites, incorporated into desktop applications, or integrated into research papers or reports. Users can also bookmark the gincker for later use or share it with friends, colleagues, or other users. The advantage of ginckers over the static results from traditional software packages is that a gincker can deliver dynamic graphics content – users can use the gincker to regenerate, manipulate, modify, and customize the graphics to meet their requirements. This is because a gincker is bidirectional relative to the platform; namely, it interacts with the Gincker platform via the ORE and brings Gincker’s development environment state directly to users. Thus, users can access the same development environment as the gincker’s developer does. We can consider a gincker as a recorder of the development environment state used by its developer.
  • Small file size. Another unique feature of a gincker is its small file size: it is simply a single line of text with the format “{template}#{xxxxxxxxxx}”, which is shorter than a Twitter message. It consists of three parts: that is our website name, the template name, and ten randomly generated characters that are used to identify the gincker. Therefore, exchanging ginckers over the Internet will be much faster and more efficient than transmitting large graphics or image files.


Add comment