The Evolution of (FileMaker) Charting, Part 1a

For this article I have taken a different approach, and offer up my current perspective on events in the history of data visualization and the FileMaker platform. Naturally, our viewpoints are formed by our direct experiences, but the passage of time also affects our interpretation. The other things that happen leading up to and following a point in time can alter the context — and meaning — of that moment.

Steve Jobs shared an example of this in his 2005 Stanford University commencement speech. He told the story of how his taking a calligraphy class as a college “drop-in” created his bias towards the first Mac having rich typography. He pointed out how everything is connected — but that we really never know how, until later.

So in this spirit and from the perspective of mid-2011 (text edited), please enjoy my retrospective wanderings.

~ Lee Lukehart

IN THE BEGINNING, there was data.

The first area chart, by William Playfair

The first area chart, by William Playfair

Of course I’m referring to data in the times B.C. (Before Computing) — circa 1800 and earlier, before Charles Babbage invented the mechanical difference engine. This event begat teletype tape, punchcards, dot matrix line printers, and monstrously laborious plotters such as the CalComp pen plotter I commanded in college with Fortran IV. Its output looked like string art — colored thread strung between nails (often on black velvet) — a fad that was still popular at the time. Coincidence?

Contrast that image with the very first published line and area graphs, in 1786. Their creator, Scottish engineer William Playfair, also invented and published the first bar graph and pie chart within five years of one other. Those were heady times for paper and pen, printing press and engraver. One year after Playfair’s graphs debuted, a Dr. E.A.W. Zimmerman introduced the word “statistik” to the civilized world. And the first true topographical map was drawn by Marcellin du Carla-Boniface in that same 10-year period. Heady times indeed.

So why the fuss over events that happened more than 200 years ago? Because a case can be made that our present world is experiencing a similar graphical renaissance. In universities and creative labs across the globe, fresh minds are producing new visualization techniques that improve on the old methods, as well as to better prepare us for dealing with the increasing quantity and complexity of data. These new methods are informed by the cognitive sciences to help us mere mortals better perceive and comprehend the subtle connections between cause and effect. We are tapping the new human factors knowledge from industrial and information device design. Attendees of my prior DevCon sessions may be relieved to know that I hope to retire one of my ever-present images representing the basic design challenge: that of a door — a device we have been designing and using as a species for thousands of years — labeled with instructions for use… either Push or Pull (and occasionally, No Exit).

Our Charting Legacy

To help us plot our trendline trajectory into the future, please accompany me on a short stroll down memory lane. Reaching back almost twenty years, I’ve been able to collect a few stories about those early days. The first makers of charts in FileMaker Pro truly were pioneers. In the early- and mid-1990s Reinhold Stadelmann and Brian Dunning were wrestling with Cartesian coordinate systems in an heroic fashion. Their successes became the foundation on which FileMaker charting rested for nearly a decade.

timeline of FileMaker charting

timeline of FileMaker charting

  

xmCHART, by X2max http://www.x2max.com
Reinhold Stadelmann was in need of a graphing tool to help him evaluate engineering and scientific data. At that time (the early 1990s ) he found nothing on the market that fit his needs. So, as anybody in that position would obviously respond, he decided to develop a graphic engine himself. Well, perhaps not everyone would pursue this exact course — but then Reinhold had recently written a source code editor, and a friend and he developed a data transfer protocol to exchange data between computers running different OSes. This was during the late ’80s, remember.

One of his goals was to find a way to keep the plot data and the definition of the chart layout in one single text file, so the preparation of the file could be done manually or programatically on any platform. His solution was to define a chart by a series of function calls — which is pretty much how everyone does it today. Another goal was to provide precise error messages to assist debugging during chart development. FileMaker came into play as a way to store the source texts and other chart components.

As FileMaker did not yet have an extension architecture, AppleEvents were used as the communication method between FileMaker and his graphic engine. When FileMaker Pro 4.0 introduced the plug-in API in September 1998, the graphic engine could be much better integrated into FileMaker — and a commercial product was feasible.

xmCHART began as and remains the most powerful charting option available expressly for FileMaker Pro. The other great thing with xmCHART is its flexibility. You simply send it a text string of configuration declarations. The plug-in interprets those instructions, placing the result in a FileMaker Pro container field. xmCHART does have 8 external functions that appear in the Set Calculation dialog, but the power comes from the 150+ commands it can parse out of a text string. With power comes responsibility, as the saying goes, so knowing how to assemble and tap those functions comprises the bulk of the learning curve. For example, the following code produces the accompanying chart. Every element on this chart can be indivually specified and controlled.

example of xmCHART

example of xmCHART

xmCH_DrawChart(
OpenDrawing(600;400;0;2)
  OpenChart(40;60;460;300;on)
    ChartData(4 10 10 19 12 10;
              7 12 12 14 9 8;
              9 9 15 16 15 5)
    BarChart(label;120)
    /* set up styles */
    FillStyle(1;1 40 0 0.0 41 8 160 255 1.0 11 0 56 255)
    FillStyle(2;1 40 0 0.0 208 0 0 255 1.0 56 18 18 255)
    FillStyle(3;1 40 0 0.0 249 202 118 255 1.0 56 45 25 255)
    BorderStyle(all;none) /* hide borders */
    LabelStyle(all;"Verdana";10;bold;200 200 200)
    /* set up axes */
    AxisOptions(y;none) /* hide y-axis */
    AxisLine(x;0)       /* hide x-axis line */
    AxisMajorTicks(x;0) /* hide x-axis tick marks */
    AxisMajorTickLabelTexts(x;"Jan";"Feb";"Mar";"Apr";"May";"Jun")
    AxisMajorTickLabelStyle(x;"Verdana";10;bold;180 180 180)
    /* set up title */
    TitleText("Revenues")
    TitleStyle("Verdana";16;bold;180 180 180)
    TitleOptions(topCenter;off;
                 0; /* horizontal offset */
                -5) /* vertical offset */
    /* set up legend */
    LegendTexts("Region A";"Region B";"Region C")
    LegendStyle("Verdana";10;bold;180 180 180)
    LegendOptions(centerRight;off;
                  16;   /* horizontal offset */
                   0;   /* vertical offset */
                  -1 1; /* variable number of rows, one column */
                   0;   /* marker type (automatic) */
                  16;   /* marker width */
                  16;   /* marker height */
                   6;   /* gap between marker and text */
                  40;   /* gap between rows */
                   0;   /* gap between columns */
                   bottomCenter)
    /* set up grid */
    MajorGridLineWidths(all;all;0) /* hide grid lines */
    GridLocation(xy;front)
    GridFrame(xy;1;gray)
    ChartBackground(;1 -30 1 .65 78 97 130 255 0 25 39 67 255 1 21 36 68 255;;0)
  CloseChart()
  Background(1 30 1 0.0 25 39 67 255 0.35 78 97 130 255 1.0 21 36 68 255;;0)
CloseDrawing()

Reinhold says that over the years xmCHART has been improved and enhanced in so many ways that is was necessary to completely rewrite the graphic engine twice. A third rewrite has been underway for more than two years now, a direct result of the growing significance of the Web. He says this is a completely new code base which will break new ground, adding such features as interactive charts, alternative methods for piping data to a chart, support for the new HTML standards, and much more. Reinhold’s last words to me were: “Creating all that stuff was great fun and still is.”  xmCHART is at version 3.4.4 as of this writing; pricing starts at US$129 for a single user.

“The Evolution of (FileMaker) Charting, Part 1” will be made available in its entirety,
in the Everything Reference 4 published by FMPUG.org.

Next up: Part 1b: ChartMaker Pro, by Brian Dunning, Cris Ippolite, 360Works, and 24U

One comment.

  1. Lee,

    As always, you amaze me with your thoroughness whether in requirements gathering or anything else – in this case your historical research. Thank you for your in-depth analysis, the education you provided with this historical perspective and your ever lucid writing.

    I never leave your blog entries or your company the same person I was when I arrived. I’m always better informed, better educated, and a better person.

    All the best,

    Jim Medema
    Surefoot Database Consulting

Post a comment.