Dyalog '13 was held in Deerfield Beach, Florida, U.S.A., from 20-24 October 2013
Programme (PDF) Materials Presentation Videos
Dyalog Presentations
(D00) Robot Wars summary | slides (3.7 MB) | video (36 mins)
Morten Kromberg, Technical Director (CTO)
Dyalog APL is available for the Raspberry Pi and Morten has been trying to control a hardware Pi-based robot with APL since the spring. He will now demonstrate the results of his efforts and talk about the joys that hardware can add to the life of a software developer.
This session will also include the finals and prize ceremony for the "robot race", which is part of the Robot Workshop (SP04).
(D01) Welcome to Dyalog '13 summary | slides (1.5 MB) | video (32 mins)
Gitte Christensen, Managing Director (CEO)
Dyalog's CEO opens the conference and introduces Team Dyalog.
(D02) Technical Keynote summary | slides (10 MB) | video (41 mins)
Morten Kromberg, Technical Director (CTO)
This year, the keynote will focus on features to be delivered in Version 14.0. Keywords: Performance and Parallel Computing, Modern Graphical User Interfaces, Cross-Platform Application Development and Delivery.
(D03) The Remote IDE Version 1.0 summary | slides (637 KB)
John Daintree, Chief Architect & Andy Shiers, Operations Manager (COO)
After several years of prototyping and one complete technology switch, the first version of RIDE will be delivered next year to accompany Version 14.0. The RIDE will provide a graphical development environment on desktops and (in the future) mobile devices, allowing development and debugging of applications running on local or remote Dyalog APL systems.
(D04) Windows Presentation Foundation: Part I – WPF and Data Binding summary | materials (140 MB) | video (58 mins)
John Daintree, Chief Architect
Build State-of-the-art Windows Desktop applications using Windows Presentation Foundation and Syncfusion Libraries and (from Version 14.0) employ data binding to share the content of APL arrays in your workspace with GUI controls (or other Microsoft .NET components).
(D04) Windows Presentation Foundation: Part II – Simplifying WPF summary | slides (300 KB) | video (27 mins)
Michael Hughes (MJH Software Services Ltd)
Build State-of-the-art Windows Desktop applications using Windows Presentation Foundation and Syncfusion Libraries and (from Version 14.0) employ data binding to share the content of APL arrays in your workspace with GUI controls (or other Microsoft .NET components).
(D05) Towards Industrial Strength Web Applications summary | slides (1.5 MB) | video (42 mins)
Brian Becker, APL Tools Group Manager
For the last few years, the "MiServer" has evolved from an experimental web server framework to a web development platform with a handful of users using it to build simple web applications. At Dyalog, we have used MiServer as the basis for
TryAPL.org and the Dyalog File Server (DFS) console. Based on feedback from users and reviewers, Version 3.0 introduces a new object-based programming model to allow the creation of rich user interfaces while minimizing or eliminating the need of the user to learn JavaScript. The goal is to bring the development of industrial strength web/mobile apps within reach of all APL developers.
(D06) Version 14.0 File System Enhancements summary | materials (430 KB) | video (48 mins)
Richard Smith, Development Manager
Starting with the introduction of large span component files in version 10.1 (in 2004), Dyalog has incrementally enhanced the component file system on each new release. Version 14.0 is no exception, with an emphasis on improved performance and some new functionality. Ten years after the introduction of large span component files, Version 14.0 removes some legacy support for older small span files – but Dyalog remains committed to making them accessible in all new releases for a further ten years. This presentation will briefly review the functionality prior to Version 14.0, explore the features introduced at 14.0 and suggest some further enhancements that might see the light of day in the future.
(D07) Parallel Language Features in Version 14.0 summary | slides (200 KB) | video (27 mins)
Morten Kromberg, Technical Director (CTO) & Jay Foad
Version 14.0 will include three new language features designed to support parallel programming – futures, isolates, and the parallel operator. The goal is to make it easy to express parallel sections of algorithms in a "deterministic" fashion, without locks or semaphores.
(D08) Rank and Friends summary | materials (50 KB) | video (19 mins)
Roger Hui
Function rank was first described by Ken Iverson in the 1978 IBM publication Operators and Functions. Its utility was greatly enhanced by the invention of the rank operator by Arthur Whitney in July 1982 and described by Iverson in the I.P. Sharp publication Rationalized APL in January 1983. The rank operator provides for the generalization a function to higher-rank arrays and for its consistent application to lower-rank arrays, and is a simpler alternative to the bracket-axis operator. It also provides a generalization of scalar extension. Version 14.0 adds this powerful tool of thought to Dyalog APL, together with a handful of related features: The key operator which applies the operand function to data grouped according to key values, the tally function, and the extension of index-of to higher rank left arguments. In this presentation, Roger will quickly review the final Version 14.0 specifications for these features, and move on to discussing the benefits of the new features for application programmers.
(D09) Train Spotting in Version 14.0 summary | slides (26 KB) | video (29 mins)
John Scholes
The
Function Train is a new syntax construct, supported in Version 14.0, which assigns meanings to expressions of juxtaposed functions in isolation. For example, the expression
x(f+g)y, where the parentheses surround a
fork, is equivalent to
(x f y)+(x g y); and
x(f g)y, where the inner expression is pronounced
f atop g, is equivalent to
f(x g y). The J language has supported these constructs for many years and they have been shown to add significant expressive power to the language, simplifying the translation of mathematical expressions into executable code through
tacit programming. This presentation demonstrates the benefit of trains and gives examples of how they occur naturally when coding APL.
(D10) Reducing Interpreter Overhead summary | slides (330 KB) | video (45 mins)
Jay Foad
Long-term investigations into interpreter overhead (essentially the time spent selecting what needs to be done as opposed to actually performing the core operation of a primitive function such as +) have resulted in enough progress being made in this area to consider including the outcome in Version 14.0. For example, for small functions (which are usually called with small arguments), significant speed improvements have been achieved. Find out about the discoveries to date and the implications they could have for your projects.
(D11) Primitive Performance summary | slides (1.3 MB) | materials (1.4 MB) | video (44 mins)
Morten Kromberg, Technical Director (CTO) & Roger Hui
With each recent release, an increasing amount of time has been spent tuning primitive functions and operators, and Version 14.0 is no exception. This session will review the most important performance improvements and present a preview of the "performance profile report" that Dyalog intends to produce for each future release.
(D12) Dyalog File Server Version 2.0 summary | slides (900 KB) | video (42 mins)
Morten Kromberg, Technical Director (CTO)
The second release of the DFS is in the final stages of preparation. New features include the ability to take backups of (and restore) component files while the server is running, support for native files and a performance monitor.
(D13) Social Skills for Programmers summary | video (49 mins)
John Scholes
John has point-blank refused to provide further information regarding this session.
(D14) Interfaces to R, Q and NAG summary | slides (850 KB) | video (25 mins)
Morten Kromberg, Technical Director (CTO)
R is a free software programming language and a software environment for statistical computing and graphics. The R language is widely used among statisticians and data miners for developing statistical software and data analysis, and the popularity of R has increased substantially in recent years.
Q is a powerful query language for high-performance data analysis, based on a kdb+ database. Kdb+ from Kx systems is based on K, an APL variant, and provides a full relational database management system capable of handling data both in memory and on disk. Kx technology is used in finance, energy, telecom, government and other industries that have high-speed database and analysis requirements.
The
Numerical Algorithms Group (NAG) is a software company that provides methods for the solution of mathematical and statistical problems and offers services to users of HPC systems. Its products and services are employed by tens of thousands of users including
Global 500 companies, universities, supercomputing sites and numerous independent software vendors.
This presentation will review interfaces to R, Q and NAG that are being developed by Dyalog to make these packages easy to use from applications written in Dyalog APL.
(D15) User Command Update summary | slides (300 KB) | video (28 mins)
Dan Baronet
In addition to reviewing new user commands that have been added recently, Dan will provide an overview of the current collection of commands and present the re-organisation of existing commands that he has been working on.
(D16) Documenting Dyalog APL summary | materials (550 KB) | video (21 mins)
Fiona Smith, Documentation Manager
Fiona joined Dyalog in April as our first full-time technical writer. In this presentation she will discuss her plans for existing and new documents as well as looking for input from the user community to help determine prioritisation and requirements for printed and electronic documentation.
(D17) The Future of SharpPlot and RainPro summary | slides (1MB) | video (35 mins)
Nicolas Delcros
For many years, Dyalog APL for Microsoft Windows has included the RainPro and SharpPlot libraries for the production of high quality business and technical charts – this year, a Linux version of RainPro has become available and is included with Dyalog APL on the Raspberry Pi. These two libraries have essentially the same functionality; SharpPlot started its life as a version of RainPro that is machine-translated to C# to make it easier to embed in web applications written in C#. However, SharpPlot excels in graphics quality and execution performance, and is much simpler to port between platforms. For these reasons, Dyalog is making SharpPlot the primary product going forwards.
For Version 14.0, Dyalog is working on making SharpPlot portable to all the platforms (current and future) on which APL is available and to providing tools that help users to migrate from RainPro to SharpPlot. We are also working on adding a "Chart Wizard" to help users quickly create the most common chart types using data in the workspace.
back to top
Invited Guest and User Presentations
(I01) The Syncfusion Libraries summary
Chad Church (Syncfusion)
Tired of the same old battleship grey? Want to make your users go "Wow!"? Then make the jump to WPF. Specifically, Syncfusion WPF. We have controls that will take your application from merely functional to exciting. How about a grid with embedded charts? Charts that let you touch and edit points or zoom and pan – literally – at your fingertips? Come and let me show you how cool your apps could look. All our controls are pixilation free.
(I02) Optimising APL Expressions summary | slides (440 KB)
Eugene Ying (Fiserv)
In data centres APL can support large processing workloads involving table lookups. In this situation, users can sometimes encounter WS FULL or LIMIT errors and long function runtimes. While WS FULL errors can often be solved with larger workspaces, LIMIT errors are more difficult to overcome.
Commercial APL data processing workloads often use simple arithmetic expressions that are repetitively performed in loops that have millions of iterations.
This presentation introduces:
- a simple way to transform slower and more memory-intensive table lookup algorithms into faster algorithms that use less memory and avoid WSFULL and LIMIT errors
- some simple ways to rearrange these expressions to better optimise APL processing
- some techniques for using scalars to help optimise functions at runtime
(U03) COSMOS Performance Improvements summary | slides (1 MB) | video (43 mins)
Paul Grosvenor (Optima Systems)
COSMOS is a visualisation tool developed by Optima to allow the observer to look down onto large datasets and "see" hidden meaning. Currently Optima is experimenting with Electronic Medical Records from a variety of sources; any problems working with such datasets quickly come to light. Whilst the COSMOS system itself has been demonstrated at previous conferences, this presentation introduces the audience to some of the techniques now being employed to improve performance and allow the system to be used with ever larger pools of data. For example:
- Load balancing
- Mapped files
- Long vectors
- Caching
(I04) Co-dfns Compiler summary | slides (14MB) | video (38 mins)
Aaron Hsu (University of Indiana)
Dyalog APL is fast, but faster is always better. The interpreter for Dyalog is capable of some nice optimisations thanks to things like idiom recognition, but interpretation naturally limits how much performance is readily accessible. Moreover, the language of dfns presents an ideal opportunity for compilation. This talk presents the Co-dfns compiler, a new project to develop a compiler for an extended dfns language called Co-dfns. The presentation includes a demonstration of the current compiler as well as illustrating how the compiler will help to make Dyalog scale better in performance and reliability. Aaron will also explain how Co-dfns is designed to take full advantage of modern hardware architectures.
(U05) To Unicode Or Not To Unicode summary | slides (275 KB)
Alexei Miroshnikov (InfoStroy Ltd)
Implemented in Dyalog APL, The Global Asset Management Assistant (GAMA) is the leading application for asset management in Russia and the Former Soviet Republics. Since the application already handled single-byte but non-ANSI character data, the conversion had a few extra twists.
(U06) Applying Version 13.2 GUI Features to SOFIA summary | slides (4.5 MB) | video (21 mins)
Valentina Settimi (APL Italiana)
In the last few years, with the emergence of new devices like smart-phones and tablets, human-computer interaction is undergoing fundamental changes. APL Italiana has decided to revise the Sofia GUI, in order to bring it up-to-date.
Since our product is a financial application which is heavily used on a daily basis, we did not want to revolutionise it, but instead to renew it: and have so far decided to limit ourselves to use of the new GUI features provided by Dyalog.
By comparing the old GUI and the new GUI of SOFIA, this presentation will demonstrate the use of Native Look & Feel, the enhancements for icons, SysTrayBalloon and Cue controls, explaining the benefits obtained for each one.
(I07) Test Driven Development (TDD) in APL summary | slides (1.8 MB) | references (1 KB) | video (47 mins)
Gianfranco Alongi (Ericsson AB)
Gianfranco describes himself as a Polyglot Software Craftsman and very passionate Functional Programmer with a strong interest in Agile Programming Practices and a passion for structure and esoteric topics. He finds great enjoyment in Clean Code developed using TDD. Since discovering APL a couple of years ago, he has been working on a TDD framework for APL, and exercising it to write applications in APL.
(I08) Computer Science Outreach and Education with APL summary | slides (450 KB) | video (43 mins)
Aaron Hsu (University of Indiana)
APL was originally a device of the classroom, but most modern examinations of it are distinctly industrial in nature. Why not bring APL back to the classroom? This presentation is a first look at the results of a summer program for high school students to introduce them to computer science. The program was very non-traditional on many fronts and leveraged APL in more than one way. Unlike many programs, students were able to work in multiple disciplines according to their interests and were never taught traditional serial programming. Instead, students used parallel programming in dfns to solve all problems. Moreover, all problems were real world problems instead of toy problems. This presentation will describe the results of the study as well as the theoretical foundations that drove the design of the study. Special consideration is given to the traditional objections to using this language, and what we learned from observing student interaction.
(U09) How I Won the Dyalog Programming Contest summary | slides (570 KB) | video (53 mins)
Yanqing Chen (State University of New York)
Yanqing Chen is the winner of the fifth annual International APL Programming Contest (he was placed second in 2011). Following the prize ceremony, he will describe his experiences of Dyalog APL and tell us how he managed to master enough of it to win the competition.
(U10) The Three Blind Pis summary | slides (32.5 MB) | video (18 mins)
The Mice Who Were Once Called Blind a.k.a. James Greeley, Sam Gutsell & Shaquil Sidiki (Optima Systems)
The Three Blind Mice have been working on three different projects developed using Dyalog APL, MiServer and, of course, the Raspberry Pi. Over the past few weeks they have battled with hardware, software, cables, power and sensors but they have now got their devices working. This presentation, given by all three of them, will show what they have done and how they have done it combined with a demonstration of their resulting robots. If all goes to plan you might even be able to have a go yourself! Keep your fingers crossed…
(U11) Cash Flow for Business and Personal Use summary | slides (5.8 MB) | video (37 mins)
Illse Nell (Riskflow)
Riskflow Technologies developed a financial application, the CFO (Cash Flow Optimizer) that runs on multiple devices (laptops, tablets and mobile phones). The development was cross-platform; the front-end development (Cascading Style Sheets) was done in HTML5, the database is SQL and the back-end (calculations) was developed in Dyalog APL.
This presentation will discuss the development process, from proof of concept to final launch. Many challenges had to be overcome and the way forward is still debatable: should APL be used for more than the calculation engine? The presentation will also include a demonstration of what Riskflow believe is a world-class application.
(I12) The Stormwind Simulator summary | demo (12 mins) | video (53 mins)
Tomas Gustafsson (Stormwind.fi)
The Stormwind Simulator is a unique "virtual reality" boating simulator for navigation training in the complex archipelago between Finland and and Sweden. It presents more than 30,000 square kilometres of "driveable" space to the user as beautiful, almost photo-realistic scenes, highly reminiscent of the digital games that our children play today. Dyalog APL turned out to be a tremendous tool for coding all of the program logic controlling the middleware 3D-engine and running the game loop in a super-fast manner. Thanks to Dyalog APL, the simulator is essentially a one-man show; only part of the artwork has been the outsourced. Users of the simulator include rescue services, defence, coast-guard, oil accident simulations – but also home users. Mystic secrets of getting a game-like application to work with APL, Windows and DirectX, Microsoft .NET packet transmission utilities and cloud technology may be revealed…
back to top
Workshops and Tutorials
(SA01) Starting a New Application in Dyalog APL summary
Morten Kromberg, Technical Director (CTO)
When you start a new application, or a significant revision of an existing one, there are a number of decisions to be made. The evolution of Dyalog APL, the platforms on which APL runs, an increased focus on server applications and the availability of source code management tools which can handle APL code, means that application architectures need to adapt. This workshop will be based around a discussion of the architectures of a number of applications built recently by the APL Tools Group at Dyalog, including the MiServer, the Stand-Alone Web Service framework (SAWS) and the Dyalog File Server (DFS). Topics will include:
- Structure and organization of source code, including utility libraries
- Application configuration and access to external data
- Error and usage Logging
- Running as a "service": Process management and load balancing
- The choice of user interface technologies for desktop, mobile and web applications
This workshop is designed to lead into either
Introduction to WPF (SP01) for users wishing to focus on Windows Desktop applications or
Introduction to MiServer (SP02) for users more interested in Web or Cross-platform apps – and will feature "teaser" introductions to both user interface technologies.
(SA02) Secure Applications summary
Brian Becker, APL Tools Group Manager & Bjørn Christensen
Let's face it …
- Hardly a day goes by without the media reporting the theft of or unauthorised access to sensitive data
- Security is a pain in the neck – it's complicated, cumbersome, and there's always someone out there looking to circumvent it
- Security isn't exciting – unless it fails, and then it's exciting in an altogether unpleasant manner
- The days when you could put your applications and data behind a locked door with limited access over a private network are by and large over
- Nevertheless, security must be a core discipline in your operation if you have data, yours or your clients', that needs to be protected
In this tutorial we will examine common situations in APL application development where security measures might need to be applied. We will then work through a number of examples in the use of digital certificates, encrypting and decrypting data, authentication, digital signing, and secure communications using Conga (Dyalog's TCP/IP communications framework) and the Dyalog Cryptographic Library.
(SA03) OO and CC summary
Dan Baronet
Dan is one of the most experienced trainers and tool builders in the APL community. In this session, he will introduce two sets of tools that should be in the belt of anyone who wants to build real applications in Dyalog APL. This session consists of two separate 90-minute tutorials:
Part 1: Object Oriented Programming
This workshop is about putting together an application made mostly of OO objects. In it you will learn to create objects and combine them to build a simple game. You will learn about and use classes, base classes, properties, overloaded constructors and other object-oriented features – and how to "encapsulate" the resulting application. The final product will be a fully-fledged Windows (GUI) game.
Part 2: Code Coverage
Code Coverage (CC) is the art of discovering how thoroughly your tests exercise your code base, to verify that ALL of your code does what it's expected to. In this workshop you will learn to identify unused code (line coverage) and branches of control structures which are never taken (decision coverage). The pitfalls of certain types of expressions will be discussed. The goal is to put you in a better position to write complete test suites for your code and eliminate "dead" code.
(SA04) APL on the Raspberry Pi (and other UNIX platforms) summary
Andy Shiers, Operations Manager (COO) & Jason Rivers
APL for the Raspberry Pi is the most recent addition to the Dyalog APL family, and is an exciting target for educational projects, electronic gadgets, and other low-cost computing applications. Linux is growing in popularity as an efficient and cost-effective platform, especially for server applications. This workshop leads you through installing and configuring Dyalog APL on a Raspberry Pi, explaining how to use the new RIDE, as well and the original "character mode" user interface, and how to use a number of common methods of remotely accessing the Dyalog APL session from Linux and Windows. It will also include an example of using shared libraries, and demonstrate a new delivery mechanism for Dyalog APL, using Linux repositories.
Although the end goal of this workshop is to send a command from APL on a Raspberry Pi to an Arduino "front end processor" used to control a robot, it will cover subjects that would apply to creating any application using Dyalog APL on any flavour of UNIX using RIDE.
(SP01) Introduction to WPF summary
John Daintree, Chief Architect & Michael Hughes (MJH Software Services Ltd)
Windows Presentation Foundation is the current "state of the art" technology for rendering "Desktop" user interfaces under Microsoft Windows. Dyalog recommends WPF as an alternative to the Win32-based GUI tools that are built-in to Dyalog APL. Version 14.0 will provide enhanced support for WPF, including mechanisms for data binding.
In this tutorial, John Daintree and Michael Hughes will first demonstrate how WPF applications can be driven entirely by Dyalog APL – and follow up with an introduction to the development of WPF-based applications using external GUI design tools like Microsoft Expression Blend and Visual Studio (including the free "Express" version of VS).
(SP02) Introduction to MiServer summary
Brian Becker, APL Tools Group Manager
- Do you have a legacy APL application that needs a facelift ?
- Do you have an application that you'd like to deliver over the Internet, perhaps to mobile devices ?
- Do HTML, CSS, or JavaScript intimidate you ?
If you answered "yes" to any of these, or if you simply have an interest in learning about APL and the Internet, then please join us in this tutorial.
MiServer, Dyalog's APL-based web server, enables you to combine the power of APL with the ease of delivery via the web. Even if you've used MiServer before, you may want to check out this tutorial as we will introduce MiServer 3.0 which features, among other things, a new object-oriented framework for building web content, mobile platform support, and a host of new jQuery widget interfaces. MiServer runs on any platform supported by Dyalog APL: Windows, AIX, Linux, even the Raspberry Pi.
More than just a web server, MiServer includes a comprehensive and extendable framework for the development of web content in APL. By the end of the tutorial, you'll have installed MiServer
* and at a minimum written your first web page (we call it a MiPage :-) ) and have an understanding of the major features of MiServer.
* presumes that you'll have a laptop and administrative rights to install Dyalog APL, if not already installed, and MiServer.
(SP03) User Commands summary
Dan Baronet
User Commands are tools and utilities that are written in APL but are part of the development environment and are available in any workspace. Dyalog APL ships with many User Commands out of the box but, as the name suggests, you can also create your own.
In this workshop you'll learn about existing User Commands and create new ones of your own. In the process you will learn how to use the Dyalog command parser, how to add command options and how to use the existing utilities to locate items in the workspace and in files using regular expressions. As a result you will be able to create a more productive development environment.
(SP04) Robot Workshop summary
Andy Shiers, Operations Manager (COO), Jason Rivers & Liam Flanagan
This workshop concentrates on understanding how the "DyaBot" is constructed, and how to use Dyalog APL running on a Raspberry Pi, embedded in the robot, to implement an autonomous navigation system. Following an introduction, the last 2 hours of the workshop will be run as a competition between teams working together to write APL code to enable robots to move round a course, making use of the sensors on the robot to avoid obstacles. Robots will be provided, you will not need to bring a soldering iron.
Although this workshop is aimed at those who have an interest in driving a robot, it would also be of interest to anyone who wants to get experience of writing and debugging code under UNIX versions of Dyalog APL.
(TP01) WPF Masterclass summary
Michael Hughes (MJH Software Services Ltd)
Following on from the introduction on Sunday, Michael will go into the detail of a complete WPF-based application that was written for a customer. The application will be dissected layer by layer. Topics will include:
- The range of tools and WPF objects available, including
- enhancements to the interpreter
- utilities to make WPF easier to use
- third party objects available with Dyalog APL
- free downloads such as Visual Studio Express
- sources of information available
- The structure of XAML used, including:
- linking commands, both standard and user defined, with APL callbacks
- linking events with APL callbacks
- linking XML data sources with menu structures
- using databinding to link APL data with WPF properties, ideas on MVVM (Model View ViewModel) strategies
- using validation rules as part of the data binding
- Considering usage where APL is the driver ("Loose XAML") and where Visual Studio is the driver ("Compiled XAML") and how the same APL code can be used in both scenarios and where you might consider one over the other.
- Comparing a simple XAML user defined class with the same class created using only APL and how they are used.
The aim is to encourage debate on the techniques so that, by the end of the session, an attendee will have the confidence of a general understanding to enable them to start digging deeper into what is possible.
All of the tools and objects used during the session will be freely available with Dyalog APL or through free downloads of Express or open source code.
(TP02) MiServer Masterclass summary
Brian Becker, APL Tools Group Manager
You don't need to be a MiServer Master to attend; this workshop will be informative and useful to those who are new to MiServer as well as old hands. We'll dive into greater detail on some of the features of MiServer 3.0, including, but not limited to:
- deploying MiServer in a corporate environment by running behind IIS or Apache
- database integration
- customising the look and feel of your web site using templates and CSS
- integrating new JavaScript widgets
- developing sites for both desktop and mobile use
- developing advanced web page interaction using APL and AJAX
- content handlers – MiServer comes with handlers for HTML, SOAP, and of course MiPages...learn how to extend MiServer to support additional resource types.
This is a hands-on, interactive workshop – bring your laptop and come prepared to work. :-)
(TP03) Introduction to SharpPlot summary
Nicolas Delcros
For many years, Dyalog APL for Microsoft Windows has included the RainPro and SharpPlot libraries for the production of high quality business and technical charts – this year, a Linux version of RainPro has become available and is included with Dyalog APL on the Raspberry Pi. These two libraries have essentially the same functionality; SharpPlot started its life as a version of RainPro that is machine-translated to C# to make it easier to embed in web applications written in C#. However, SharpPlot excels in graphics quality and execution performance, and is much simpler to port between platforms. For these reasons, Dyalog is making SharpPlot the primary product going forwards.
For Version 14.0, Dyalog is working on making SharpPlot portable to all the platforms (current and future) on which APL is available and to providing tools that help users to migrate from RainPro to SharpPlot. We are also working on adding a "Chart Wizard" to help users quickly create the most common chart types using data in the workspace.
This workshop introduces the most important functionality of SharpPlot, demonstrates the RainPro-to-SharpPlot conversion tools and shows a prototype of the Chart Wizard. Bring along your RainPro scripts to migrate them to SharpPlot!
(TP04) Test Driven Development summary
Gianfranco Alongi (Ericsson AB)
Test Driven Development (Test First Programming) is a programming practice in which the tests are written before any production code. This seemingly reversed way of handling testing and coding leads to easily-tested code (because it was written to pass the tests!), removes gold-plating (code that results from "this could be nice to have..." thinking) and documents assumptions and use-cases (by small and fast tests for specific use-cases of each building block).
Not only does this quickly yield a full set of tests that gives confidence in the code, the code also gets a clearly-defined reason for existing. Through these small "developer tests", we know that the code is written correctly; later, when heavier Function and System Testing are applied, the code can be proven to behave correctly too. These two complement each other very nicely.
This workshop includes a TDD presentation and an introduction to APLUnit (a TDD library for APL). You will then use APLUnit to solve a small problem in a fun format and friendly atmosphere. After practising the fine art of TDD, you will hopefully feel that your life has been enriched in many sensible ways.
back to top
Copyright and Trademarks
UNIX® is a registered trade mark in the United States and other countries, licensed exclusively through X/Open Company Limited.
Windows® is a registered trademark of Microsoft Corporation in the United States and other countries.
Oracle and Java™ are registered trademarks of Oracle and/or its affiliates.
All other trademarks are the property of their respective owners.
back to top