Dyalog '08 was held in Elsinore, Denmark, from 12-15 October 2008

Programme (PDF) Materials Presentation Videos

Dyalog Presentations

(01) Welcome video (45 mins)
Gitte Christensen, Managing Director (CEO)

(02) Technical Keynote summary | materials | video (51 mins)
Morten Kromberg, Technical Director (CTO)

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.

(04) Version 12.1 IDE Features summary | video (45 mins)
John Daintree, Chief Architect

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.

(06) Interpreter Performance summary
John Scholes & Nic Delcros

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.

(07) Educating New APLers
Gitte Christensen, Managing Director (CEO)

(08) Journaled Files summary | materials | video (31 mins)
Richard Smith & John Scholes

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

(10) APL and WPF summary | materials
Jonathan Manktelow

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

(25) Closing Session summary
Gitte Christensen, Managing Director (CEO), & Morten Kromberg, Technical Director (CTO)

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!

back to top


Invited Guest and User Presentations

(03) Snooping with APL summary | video (62 mins)
Charles H. Brenner, Ph.D. (Consulting in Forensic Mathematics)

Charles is a world recognised 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 analysed 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.

(05) Performance Improvements in Dyalog: A Case Study summary | materials | video (47 mins)
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, and cover:

  • Basic Properties of Boolean Arrays
  • Initial Ideas
  • Key Idea
  • Implementation
  • Testing
  • Functional Interface

(09) OO For The Elderly (In Case You Are STILL Wondering What All This OO Is Good for!) summary | materials
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.

(11) New Keyboards: Keyboard Layouts in Practice summary | materials
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 Alt Gr 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 summary | materials
Kai Jäger (APLTeam)

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 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 summary | materials | video (40 mins)
Alan Sykes (Acadvent Ltd – 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 summary | materials
Michael Baas, (DLS-Planung.de)

Co-manufacturing 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 year's 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; for example, 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 summary | materials | video (43 mins)
Claus Madsen, (FinE)

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 1,500 pages in its 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 organisations 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 summary | materials
Chris "Ziggi" Paul (The Childcare Company)

The LASER application is an online training tool for teaching NVQ levels 2, 3 and 4 to nursery staff. The system has 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 summary | materials | video (40 mins)
Joakim Hårsman (Profdoc Care)

Profdoc is a leading provider of healthcare information technology. Profdoc Care makes Profdoc HIS – a medical record system, and has grown from 2 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 APLers 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
  • The importance of tools, and the ones used at Profdoc

(18) Airline Revenue Management summary
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 dfns) 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 summary
Lars Stampe Villadsen & Martin Petri (SimCorp)

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

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 include 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 summary | materials | video (45 mins)
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 PDAs 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 summary | materials
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 summary | video (45 mins)
Gert 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, for example, 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 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, Sudoku and ?NA summary | materials
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 32-bit API and WinCE are.

Extreme Sudoku: 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 summary | video (44 mins)
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.

back to top


Workshops and Tutorials

(W01) Sharpening your APL Knife – Part I summary | materials
Kai Jäger (APLTeam)

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.

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.

(W02) Sharpening your APL Knife – Part II summary
Kai Jäger (APLTeam)

Building on the concepts discussed in Part I, we move on to more advanced and powerful features of APL: operators, dfns 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?

(W03) Sharpening your APL Knife – Part III summary
Kai Jäger (APLTeam)

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

(W04) Source Code Management using SALT and Subversion summary | materials
Dan 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.

(W05) Migrating to Unicode summary | materials | video 1 (54 mins) | video 2 (54 mins) | video 3 (62 mins)
Morten Kromberg, Technical Director (CTO)

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 interoperability between the editions and offer suggestions on how to approach the issue of migrating applications to take advantage of the Unicode data.

(W06) Fast-track your GUI Design summary
Adrian Smith (Causeway Ltd.)

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.

(W07) Using the Microsoft .NET Framework summary
John Daintree, Chief Architect

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).

(W08) Introduction to Object-Oriented Programming summary | materials
Dan Baronet

Version 11.0 of Dyalog introduced classes to the APL language. This course takes a pragmatic APLers 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.

(W09) Web Creole summary | materials
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.

(W10) Conga and SSL summary | materials | video 1 (64 mins) | video 2 (37 mins)
Morten Kromberg, Technical Director (CTO)

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.

(W11) RainPro summary | materials
Adrian Smith (Causeway Ltd.)

RainPro is a charting tool which is included with version 12.0. This workshop 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.

(W12) Office Automation using Dyalog: Combining Excel, Word and Other Tools with Dyalog Applications summary | materials
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.

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