Wednesday, May 1, 2013

Quartam Analytical Data Processing Library 1.0.0 Available

Today, Quartam Software is proud to announce the release of Quartam Analytical Data Processing Library for LiveCode version 1.0.0, as open source under a dual license. Quartam Analytical Data Processing Library for LiveCode helps developers process large data sets by means of filter, map, reduce and aggregate functions.

So what can I do with it?

The Filter-Map-Reduce programming model is a data-processing construct coming from the world of 'functional programming' - and has recently made serious headway into languages such as Java or C#. This triad of higher-order functions combined offer a powerful tool for manipulating sequences of data.

- Filter is the easiest to understand: it simply takes one sequence of data and returns a sequence that is filtered according to a predicate (checking whether a number is odd or even, if a date falls in a certain year, etc.)
- Map is similar to Filter because it takes one sequence of data and returns another sequence, having transformed each item with a conversion function (taking out a particular chunk of interesting data, such as a price column)
- Reduce is the least familiar of the three and has as purpose to traverse one sequence of data and build a result value using each item (calculating the sum, minimum, maximum, or some other simple statistic)

But that triad doesn't cover all use-cases, so we add a fourth concept to the mix.

- Aggregate extends the Reduce concept by lifting its inherent limitation of having no memory of all the data that has passed through it (thus allowing the calculation of more complex statistics which require access to the entire dataset)

Of course you can already do these things manually in LiveCode, especially with the 'repeat for each' construct as a speedy way to iterate over a sequence of data. So why would you need a library? One good reason is to cut down on typing and prevent subtle logic errors ; but far more important is that code becomes easier to understand and maintain as you make abstraction of the iterative process.

How do you mean: open source under a dual license?

Although Quartam Analytical Data Processing Library is a free/open source software (F/OSS) project, giving you a lot of freedom and flexibility as to how you use it in your own projects, this doesn't mean you're free to do anything you want with it: you have to respect the GNU Lesser General Public License (LGPL).

You can be released from the requirements of the LGPL license by purchasing a commercial license from Quartam Software.

How can I contribute to the Quartam Analytical Data Processing Library project?

I'm glad you asked - the plan is to build a community around Quartam Analytical Data Processing Library in order to streamline the development of newer versions. If you can help with squashing bugs, researching new features, improving documentation, or any other way, you're more than welcome to join us.

All you need to do is download, sign and email back the Quartam Open Source Contributor Agreement so that your contributions can be incorporated into the project. Quartam Software has the role of project custodian, taking care of versioning and distribution.

So roll up your sleeves, download the first version and get stuck in!

Jan Schenkel.