Thursday, July 4, 2013

LiveCode 6.1 released

Just two days ago, RunRev announced the release of LiveCode version 6.1 - the first new version to include new functionality contributed by the community. I would call this clear evidence that the KickStarter project is propelling the platform forward.

I'm proud to have worked on two of the community contributions:
- getting the page ranges of a field (complementing the existing page heights feature)
- additional statistical functions (geometricMean, harmonicMean, averageDeviation, populationStandardDeviation, populationVariance and sampleVariance)

 Another contribution of mine was too late to the party, but has been accepted and will make its appearance in the next functional release:
- enhanced filter command (allowing you to filter items in addition to lines, match against regular expressions and place the output into a different container)

 If you too want to contribute, there's plenty of ways:
- write engine code if you have C++ experience
- enhance the IDE if you have LiveCode experience
- update the documentation with examples
- participate in the discussions on the forums where new features are fleshed out
- and test the developer previews and release candidates

I am looking forward to my next contribution project, and hope to see you there!

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.