Dyalog User Conference 2008 - Preliminary Conference Programme

Latest update: 28 September 2008


Training Courses/ Workshops

As usual, a variety of courses and workshops will be presented, to allow you to dig more deeply into new features introduced in recent versions of Dyalog, learn techniques for building "modern" applications, or brush up your skills in the company of seasoned veterans.

Program for Sunday October 12th

Registration: 8.00-9.00 a.m.

Lunch: 12.30-13.30


Tutor Morning (9:00 - 12:30) Tutor Afternoon (13:30-16:30)

Kai Jaeger

Sharpening Your APL Knife (C1)
Part 1 – The Basics

Kai Jaeger

Sharpening Your APL Knife  (C5)
Part 2 – Advanced Features

Adrian Smith

Fast-track your GUI Design (C2)

Dan Baronet

Source Code Management using SALT and SubVersion (C6)

John Daintree

Using the Microsoft .Net Framework (C3)

Morten Kromberg

Migrating to Unicode (C7)

View video

Part 1

View video

Part 2

View video

Part 3

Dan Baronet

Introduction to Object-Oriented Programming (C4)

Stephen Taylor

Web Creole (C8)


Richard Procter

Office Automation using Dyalog (C12)

16.30 -18.00





Adrian Smith: Rain Flips its Q. A database engine even Adrian can understand. Loughborough 1983 Take 2
View video




Program for Wednesday October 15th October (pm)


Tutor Afternoon (13.30 -16.30)

Kai Jaeger

Sharpening Your APL Knife 
Part 3 - Design, Readability, Maintainability (C9)

Dan Baronet

Source Code Management using SALT and SubVersion (C10)

John Daintree

Using the Microsoft .Net Framework (C11)


Conference Program - Monday October 13th


Time Stream A   Stream B  



9.30 – 10.15

Gitte Christensen:




Morten Kromberg:
Technical keynote
View video






Charles Brenner:
Snooping with APL
View video






John Daintree:
Version 12.1 IDE Features
View video



14.15 -15.00

Roger Hui:
Performance Improvements in Dyalog: A Case Study
View video





15.30 -16.00

Nicolas Delcros & John Scholes:
Interpreter Performance


Gitte Christensen:
Educating APL’ers


16.00 -16.30

Richard Smith & John Scholes:
Journaled Files
View video


Dick Bowman: 
OO for the Elderly. In case you are still wondering what all this OO is Good for!


16.30 -17.00

Jonathan Manktelow:






Adrian Smith & Veli-Matti Jantunen:
Keyboard Layouts in Practice


Kai Jaeger:


18.00 -19.00


19.30 -20.30

John Scholes: 25 Years of Dyalog


Conference Program - Tuesday 14 October


Time Stream A   Stream B   Stream C

09.00 - 09.45

Alan Sykes:
OO Stats - Performing Statistical Calculations using Dyalog APL
View video


Michael Baas:
COPA-MS - A Look Under the Hood



09.45 – 10.30

Claus Madsen:
Gridyfying FinE using the Techila Grid
View video


Chris “Ziggi” Paul:
Demo of an ASP.NET application with a Dyalog Engine



10.30 -11.00


11.00 -12.00

Joakim Hårsman:
Herding cats for fun and profit - growing your APL business
View video





13.00 -15.30

Viking Challenge

15.30 -16.00


16.00 – 16.45


Maurice Jordan:
Airline Revenue Management


Morten Kromberg:
Conga and SSL Tutorial (T1)

View video

Part 1

View video

Part 2


Adrian Smith:
RainPro Tutorial (T2)


Lars Stampe Villadsen & Martin Petri:
Heterogeneous development with maximum reuse of APL assets



17.30 -18.00



18.00 -19.00


19.00 - ??



Conference Program - Wednesday October 15th Morning


Time Stream A   Stream B  

09.00 -09.45

Tommy Johannessen:
Serving Lunch with Dyalog APL
View video


Gianluigi Quario:
PKZIP Your Files Using APL and .NET


09.45 -10.30

Gert Møller:
The Array Constraint Engine
View video


Ray Cannon:
Pocket APL - GPS, Su-Doku and ⎕NA





Romilly Cocking:
APL - An Excellent Return


11.45 -12.30

Gitte Christensen & Morten Kromberg:
Closing Session




Wednesday afternoon is dedicated to Courses - please see here


Abstracts - Courses/Workshops
Sunday and Wednesday

"Sharpening your APL Knife" (C1- C5 - C9)

Kai Jaeger

If you only recently migrated to Dyalog, have been maintaining old code for a long time, or learned APL "on the road", this set of courses provides an opportunity to bring you up-to-date and get a better grip on modern APL.

The three courses are independent of each other, and can be combined with other tutorials.

a. The Basics (Sunday Morning)

Putting key components on a firm theoretical footing: Arrays, Namespaces, Prototypes, Identities, References, Scalar extension. Learn to predict results a bit better, including "administrative overhead", performance - and get better at avoiding common traps.

b. Advanced Features (Sunday Afternoon)

Building on the concepts discussed on Sunday morning, we move on to more advanced and powerful features of APL: Operators, Dynamic Functions and new language features introduced in Version 11.0. If time permits: A look at some real world examples implemented with Object-Oriented features, including some GUI. When is object orientation really useful?

c. Design, Readability, Maintainability (Wednesday Afternoon)

A catalogue of things to avoid; learn how to recognize problems. Performance and other design issues. Readability and debugging (about names). DRY (don't repeat yourself), "broken Windows", a discussion of "agile" concepts.

Source Code Management using SALT and SubVersion (C6 - C10)

Daniel Baronet

The Simple APL Library Toolkit (SALT) is a mechanism for storing Namespaces and Classes as text files, rather than using internal binary formats. SALT makes it easier to share code and take advantage of a variety of source code management tools developed for users of other programming languages. Dyalog is moving towards the use of SALT as the primary delivery mechanism for code libraries. In version 12.0.3, SALT has been enhanced to support the management of APL code which is not part of namespace of class scripts, so SALT can now be applied to all applications written in Dyalog.

The workshop will introduce SALT and show how it can be used together with an industry standard source code management system.

Pre-requisites: Dyalog 11.0 or later. Ideally, Dyalog 12.0 and SubVersion.

Workshop on Migrating to Unicode (C7)

Morten Kromberg

The defining feature of Dyalog Version 12.0 is support for Unicode character data. Unicode is an industry standard allowing computers to consistently represent and manipulate text expressed in any of the world's writing systems. It assigns a number, or code point, to each of approximately 100,000 characters, including the APL character set.

The workshop will briefly introduce the new Unicode features, and then focus on the differences between the Classic and Unicode "editions" of Version 12.0. The Classic edition, which is upwards compatible with version 11.0, will continue to exist for an extended period to allow for an orderly migration. The workshop will discuss inter-operability between the editions, and offer suggestions on how to approach the issue of migrating applications to take advantage of the Unicode data.

Fast-track your GUI Design (C2)

Adrian Smith

This session is for anyone who feels that writing Graphical User Interfaces is a "necessary evil". Adrian claims to hate GUIs more than most, which is why Causeway Pro exists to make his life easier. From version 12.0, CPro is included with Dyalog APL. This session will get you started with the Designer, and will give you enough background to pick up the toolkit when you need to.

Pre-requisites: Version 12.0, or CPro installed with an earlier version.

Using the Microsoft .Net Framework (C3 - C11)

John Daintree

Version 11.0 of Dyalog integrates comfortably with the Microsoft.Net Framework. This course will give an overview of, and show how you can take advantage of, the features included in the Framework itself, and in Visual Studio, Microsoft's cross-language development platform. John will show you how to find and understand documentation of the framework class libraries, and he will introduce you to some of the most useful classes. We will explore how to use the VS Form Designer to build forms which use APL code, and write APL classes which can be used from C# and VB.Net. The course will very briefly show how to call APL code from Microsoft Internet Information Services (IIS).

Pre-requisites: Dyalog 11.0 or later, Microsoft .Net Framework 2.0 (with SDK), ideally Microsoft Visual Studio 2005 or later.

Introduction to Object-Oriented Programming (C4)

Daniel Baronet

Version 11.0 of Dyalog introduced Classes to the APL language. This course takes a pragmatic APL'ers eye view of object orientation and after introducing a little OO theory, the focus of the course will be on showing how OO has been implemented in Dyalog. Some time will be spent creating classes and using them.

Pre-requisites: Dyalog 11.0 or later.

Web Creole (C8)

Stephen Taylor

APL is an excellent tool for creating web sites - both for "static" pages which simply consist of text files containing HTML, and "dynamic" pages where a Dyalog process is acting as a simple web server and responding to browser requests. The goal of this presentation is to teach the minimum set of skills that are required to cook a pleasant "Gumbo" using technology that is already well-known or easy for the average APL user to learn. No heavy machinery or magic is involved.

Pre-requisites: Conga/v12.0 (for the dynamic part of the workshop).

Office Automation using Dyalog (C12)

Combining Excel, Word and other tools with Dyalog applications

Richard Procter
APL Borealis & BCA Research

Many applications can benefit from using "Office Products" like spreadsheets and word processors for data entry, reports and presentations, or further analysis. Dyalog can be "in the driving seat", using external products as "servers", or Dyalog can be used as an embedded component driven by applications written in scripting languages like Visual Basic within other products.

Richard will introduce the subject using Microsoft Office products, focusing primarily on Excel as both server and client. Later, the same concepts will be briefly explored using other Office products and database tools

Abstracts – Tutorials
Tuesday Afternoon

Conga & SSL Tutorial (T1)

Morten Kromberg

Conga is a new tool which enables the easy construction of client/server and peer-to-peer applications. Conga is included with version 12.0, and from 12.0.3 it also includes support for "Secure Sockets", allowing the use of encrypted communication channels.

The tutorial will introduce Conga and some of the code samples which are included and makes it straightforward for Dyalog users to implement web client and server programs, and "remote procedure call" mechanisms.

RainPro Tutorial (T2)

Adrian Smith

RainPro is a charting tool which is included with version 12.0. This tutorial is primarily an opportunity for experienced RainPro users to share experiences and get their good ideas into the queue for next year. If you are not familiar with RainPro and wondering whether it would be useful to you, the workshop will provide an opportunity to see what some of the existing users have been doing with it.

Abstracts – Conference Sessions:

(2) Technical Keynote

Morten Kromberg
Dyalog Ltd

Morten will review version 12.0, which was released during the summer, and talk about what’s in the pipeline for 12.1 and beyond.

(3) Snooping with APL

Charles H. Brenner, Ph.D.
Consulting in Forensic Mathematics

Charles is a world recognized authority in Forensic Mathematics - covering complex areas such as DNA identification, biostatistics, and population genetics. His DNA•VIEW™ APL based software solution is the acknowledged leader and is standard worldwide for DNA identification. The software has been used in countless cases amongst others the World Trade Center victim identification work, Tsunami victim identification in Thailand, mass identification projects including desaparacito children from El Salvador and war victims in Bosnia.

DNA identification is a fascinating, challenging, and constantly expanding and shifting area of genetics susceptible to mathematical treatment, and for these reasons well-adapted to APL. The facets of identification include linking crooks to crimes, bashful fathers to parental responsibilities, grieving families to mass disaster victims and anxious heirs to family fortunes.

Identification regions of the genome are a set of short DNA neighborhoods ("loci") that are conveniently coded as numbers which may be analyzed using mathematical programs implementing genetic and population genetic principles. The digital nature of the genome, in striking contrast to the generally analogue nature of biology, inevitably appeals to the programmer's intellect.

Consequently the talk, while based on the APL program DNA•VIEW which Charles has developed and distributed world-wide over the past 20 years, will concentrate on the science and applications more than the implementation.

Charles will be covering topics such as:

  • Identification genetics
  • Mathematical meaning of "evidence"
  • Relatives in haystacks
  • World Trade Center identifications
  • Finding offenders who are not there

He will also be peering back 70 years through a bedroom window, revealing the secret parentage of six elderly siblings.

(4) Version 12.1 IDE Features

John Daintree
Dyalog Ltd

John has started work on a number of new features which – amongst other things – will make it easier to edit class and namespace scripts. This session will offer a sneak preview of some of these features, and there should also be ample time for discussion and suggestions from the audience.

(5) Performance Improvements in Dyalog: A Case Study

Roger Hui
J Software Inc.

In the next version of Dyalog, some common boolean functions will be improved by factors ranging from 2 to 1600. We work through one particular example, ≠/[0]x

  1. Basic Properties of Boolean Arrays
  2. Initial Ideas
  3. Key Idea
  4. Implementation
  5. Testing
  6. Functional Interface

(6) Interpreter Performance

Nicolas Delcros and John Scholes
Dyalog Ltd

A number of projects are underway to significantly increase the performance of the interpreter. One of the first steps is the availability  of a profiling tool, which allows you to pin-point those primitives that an application is using heavily, to allow you to put pressure on us to enhance the parts of the interpreter that your application needs to be fast.

(7) Educating New  APL’ers

Gitte Christensen
Dyalog Ltd

Abstract to be posted shortly.

(8) Journaled Files

Richard Smith and John Scholes
Dyalog Ltd

Version 12.0 allows you to switch Journaling on for component files, which protects them from damage due to many kinds of system failure.

(9) OO For The Elderly

In Case You Are STILL Wondering What All This OO Is Good for!

Dick Bowman

APL, like many APLers, has been around a long time and many successful applications have been built using time-honoured approaches.  The arrival of object-oriented extensions has opened new avenues, but established APLers may not adopt these new language features without some sort of struggle.

In some ways this parallels the battles that were fought with the arrival of nested/heterogeneous arrays two decades ago, where established methodology appeared to be threatened by the new.

The idea of this presentation is to explore Dyalog's OO features through a back door, following a path taken by one elderly APL bigot - it may interest others who have a similar background, or newcomers wanting to make fullest use of APLs functionality.

The presentation will focus on "what" rather than "how" and does not set out to present Dyalog's OO features systematically, rather some of the ways that they can be used in application development.  The scenario is "traditional desktop application", and code for a small application is included.

The idea is also to avoid the conventional software engineering "OO is best" brainwashing.

(10) APL+WPF

Jonathan Manktelow
Dyalog Ltd

The Windows Presentation Foundation: What is it? How can I use it from APL? Why would I want to?

(11) Keyboard Layouts in Practice

Adrian Smith & Veli-Matti Jantunen

There are great benefits in having one (and only one) keyboard layout installed on your computer. In much of Europe, the use of the AltGr combinations works fine for APL, but some East European languages have problems freeing enough keys. It also appears that a number of applications (like Google Toolbar) have started to steal a few of these keys for their own purposes. This session is intended as a forum for APLers from far and wide to chew over the still-unsolved problem of how to type APL characters in a natural way.

(12) ADOC

Kai Jaeger

With the introduction of OO in Dyalog Version 11, implementation details of a class remain hidden. The user of a class only needs to know about and deal with the public interface of a class. ADOC is a self-contained class designed to extract and report information about the public interface. ADOC is able to report public methods, fields and properties of any class, by request with detailed syntax information.

But ADOC can do more than that: Following a small set of simple rules one can put a fully-fledged documentation into a class. ADOC is able to extract these pieces of information and create either an HTML-report or an XML file from that.

According to the rule that documentation should be as close to the code as possible, ADOC supports this approach to the edge. Furthermore, ADOC in itself is an example of the great advantages the introduction of OO brought to the APL World.

(13) OO Stats - Performing Statistical Calculations using Dyalog APL

Alan Sykes
Acadvent Ltd (Alan was previously a Senior Lecturer in Statistics in the Business School at Swansea University)

The advent of the object-oriented features in recent Dyalog Interpreters provides a new and exciting framework within which to construct software to analyse data. The talk will demonstrate statistical objects that allow an APL user to perform statistical calculations on realistic data sets that may well contain missing values. All statistical functionality is made available either directly from user commands from the session, or, for more speedy data exploration sessions where a variety of alternative analyses might be envisaged, by using a menu-driven GUI version.

(14) COPA-MS - A Look Under the Hood

Michael Baas

Comanufacturing Management System (COPA-MS) is an application based on the Hologram BI-System from Dyalog's Australian distributor Hologram Pty. Last year, this project was mentioned in Michael Baas' & John Miller's talk on networking as the first fruit of the collaboration between Hologram Pty. and Dynamic Logistics Systems GmbH.

After the nice photos in last years talk, this presentation will actually show code (in APL, VB.NET and JavaScript), demonstrate the application, and discuss technical details. Michael will discuss lessons learned along the way to this 'mixed' implementation which uses several different tools: Some of the "data management" of COPA-MS is done with VB.NET in ASP.NET 2.0 - with ASPX-pages generated by a Dyalog 10.1-application, using specs from a MS-SQL database and template files.

(15) Gridifying FinE using the Techila Grid

Claus Madsen

FinE is a comprehensive set of advanced financial functions covering all aspects of risk management, valuation and analysis. FinE is a developer's toolkit. The core of FinE comes as a com-object (DLL). This makes it easier to integrate into any analytical environment. Furthermore FinE has a flexible and powerful Microsoft Excel Add-in interface and more than 1500 pages HTML help-manual.

Keywords: Bonds, Forwards/Futures(CTD), FX-and Equity Options, Swaps, Caps/Floors, Swaptions, Capped-Floaters/One-Way-Floaters, Danish MBBs, Index-Bonds/Inflation-Swaps. Plus advanced tools for YC estimation, Correlation, PCA, Volatility and Risk-Management. Apart from this FinE comes with a generic database interface.

Techila Technologies was established in 2006 and is headquartered in Finland. Techila GRID has been created to offer organizations an innovative technology that helps them gain reliable computing power without a huge capital investment in new hardware.

The purpose of this presentation is to show a practical and real-life embedding of the Techila Grid Technology into a financial commercial product - FinE.
The Core part of FinE is an In-Process OLE-Server written entirely in Dyalog v.11.0.1.

In the areas of Risk-Management and Asset-Liability-Matching (ALM) there has always been a need for doing a huge amount of calculations on a whole range of different types of financial products. With the new rules for Basel II and Solvency II, this requirement has if not increased then definitely not decreased. Furthermore, some types of financial products are fairly complex, with makes valuation relative slow.

The solutions so far have relied on a combination of the following 2 statements:

  • Do less
  • Simplify

Now, using the Techila Grid Technology embedded in FinE we will demonstrate that it is possible to

  • Do more
  • No need for over simplification

(16) Demo of an ASP.NET application with a Dyalog Engine

Chris "Ziggi" Paul
Head of Information Technology
The Childcare Company

The LASER application is an online training tool for teaching NVQ levels 2, 3 and 4 to nursery staff.  The system as an ASP.NET front end with Macromedia Flash plug-ins but is controlled and managed by a Dyalog APL.Net program.

In this presentation you will see a demonstration of LASER and Ziggi also will show examples of some of the techniques used.

The system has a very simple and user-friendly front end, but the management of data and "Learners" work is relatively complex.  Facilities were needed for "Assessors" to view work and determine if "Learners" had achieved competency against a number of Performance Criteria. The performance of "Assessors" is reviewed by an Internal or External Verifier, and everything must be monitored and logged by the system.

The ASP.NET/Flash provides the eye candy, whilst Dyalog APL does all the hard work. To generate the lessons themselves the system provides approximately 10 ASP.NET template pages which can be populated from the APL, thereby enabling non-technical staff to generate content.

(17) Herding cats for fun and profit - growing your APL business

Joakim Hårsman
Head of Development, Profdoc Care

Profdoc is a leading provider of healthcare information technology. Profdoc Care makes Profdoc HIS - a medical record system, and has grown from two to 13 APL developers in just a couple of years. Joakim was there for the ride and will talk about what had to change as the numbers of programmers grew, and how development at Profdoc Care works today.
Joakim will address the following issues:

  • Why the idea that it's impossible to recruit APL:ers is nonsense
  • What changed as we got bigger
  • How to handle a ten year old code base weighing in at more than 300 000 lines, and remain nimble.
  • On the importance of tools, and the ones used at Profdoc

(18) Airline Revenue Management

Maurice Jordan
Formerly British Airways

Airlines believe good Revenue Management enhances revenue by 5% or more. In an industry that struggles to return profits of even this magnitude, it has spawned a small army of consultants and its own mythology.

The presentation will show a simple APL approach to "classical" revenue management. The underlying model for this classical formulation relies on the traditional complexity of airline fares, where very few people can navigate the range of fares on offer. Internet selling blows a hole in this model. The presentation will show how dynamic programming (sorry, nothing to do with d-fns) indicates that a simple modification to the input data allows the original algorithm to be used in this new marketplace.

There are parallels in Financial Services and many other industries where there is a fixed resource to be allocated to products offering different levels of return (and risk).

(19) Heterogeneous development with maximum reuse of APL assets

Lars Stampe Villadsen & Martin Petri

SimCorp Dimension is an investment management system used world-wide in more than 150 financial institutions.

As a part of our current development strategy has SimCorp invested in implementing the .NET framework using the C# programming language and integrating with Dyalog APL.

The existing SimCorp Dimension APL codebase is huge so it is important that as much as possible can be reused while using new features provided by .NET/C#. This presentation will make a live demo on how development in APL and C# can be done in parallel by adding features to existing core functionality while maintaining the integrity of the system as a whole.

(20) Serving Lunch with Dyalog APL

Serving Lunch with Dyalog APL
Tommy Johannessen
Jersie Data ApS

The application is used by 25,000 school children and their parents for ordering and payment of school lunches. The lunches are produced in 25 kitchens in different geographical locations all over Denmark.

Each kitchen has its own set-up and menu, and the application caters for the design, creation and running of individual kitchen websites. 

The application further handles catering for businesses as well as meals-on-wheels programmes for pensioners. It is possible to order fast-food as well as cater for special dietary requirements and one off events such as children's birthday parties at the local swimming pool.

In order to stay in sync with the users the application also offers an online survey facility.

Access to the application is through a standard web browser, from PDA's and smart phones. Users also have the option of sending a text message from their mobiles.
The presentation will focus on how this success story started and demo the various aspects of the application.

We will hear about the challenges encountered along the way, look at IIS settings, memory leak, trap settings, sessions and user behaviour.

The technical aspects will focus on how we created the .aspx files, the file structure, backup procedures, communication between the servers and the call structure.

(21) PKZIP Your Files Using APL and .NET

Gianluigi Quario
APL Italiana

ICSharpCode.SharpZipLib.Dll is a .NET compression library that supports Zip files using PKZIP 2.0 style encryption, with GNU long filename extensions. It is written entirely in C# for the .NET platform. It is implemented as an assembly, and can thus easily be incorporated into other projects (in any .NET language). Two Dyalog APL functions are presented that create and use objects that are instances of .NET Classes derived from this library and other .NET base libraries. These functions allow the compression and deflation of Zip files.

(22) The Array Constraint Engine

Gert L. Møller
Array Technology

Array Technology is a provider of technology for solving complex constraint problems in real-time - on a very small memory footprint. The technology is used in a range of business applications, e.g. for product configuration with a lot of business rules or constraints. The key to the performance of the technology is the use of nested arrays (array-based logic) for handling logical constraints with a multitude of combinations. Dyalog 8.2 was used for prototyping of the first version of the technology, but Gert will present how the next generation of the technology may benefit from the power of the latest Dyalog releases.

(23) Pocket APL - GPS, Su-Doku and ⎕NA

Ray Cannon
Independent Consultant

Notes on developing a system that runs under Dyalog PocketAPL, with two example applications, and some utilities making ⎕NA calls, to the underlying Operating System.
Ray will show what the differences between ⎕NA calls under the "standard" desktop Windows 32bit API and WinCE are.

Extreme Su-Doku: an example of a Dyalog application that runs on Desktops and PocketPC. Ray will show how to manage screen calls for both environments.

GPS-APL: A PocketPC application accessing GPS hardware via the GPSID interface built into Windows Mobile 5 and 6, but developed with APL/W. This includes information on using Windows Events and Wait loops for when ⎕DQ and the Dyalog supported Events are not sufficient.

(24) APL - An Excellent Return

Romilly Cocking
Cocking and Co.

In this presentation Romilly will show how he's been using APL to explore and experiment with Genetic Algorithms.

Romilly has been interested in biology-based Artificial Intelligence since the 1970s. He's recently started to follow up on his early AI research. After great frustration using Python and Java, he's now using APL again, and is delighted to find that the environment is even more pleasant and productive than it used to be

(25) Closing Session

Gitte Christensen & Morten Kromberg
Dyalog Ltd

The closing session will include a feedback session, where you will have the opportunity to tell us what you think we should be focusing on, and we will tell you which features we would most like to get rid of!




Click for Dyalog 08 Pricing information

Click for Dyalog 08 booking infomation

Click for Dyalog 08 registration