Home Page Register Prices Workshops Presentations Presenters Venue Directions

This page is still under development and additional information will be added as presentations are confirmed.

Dyalog Presentations

Welcome to Dyalog '22 summary
Gitte Christensen, Managing Director (CEO)

Dyalog Ltd's CEO opens the user meeting.

The Road Ahead summary
Morten Kromberg, Technical Director (CTO)

How might Dyalog evolve in the years to come, and which technologies should you be trying to keep an eye on yourself? Morten attempts to answer these questions, and sets the scene for the technical presentations being given at Dyalog '22.

The P words… Projects and Packages summary
Morten Kromberg

Morten expressed his opinion that the growth of APL is hampered by a lack of widely-used libraries in an article he wrote for Vector in July 2003 (vol 20 issue 1), and his opinion has not changed since then. Has the tooling finally reached a point where off-the-shelf sample projects and shared libraries have become viable?

Report on Co-dfns summary
Aaron Hsu

Aaron reviews the current state of Co-dfns (a high performance compiler for a parallel extension of the dfns language), developments since the last update (at Dyalog '19), and what the future might look like. He also explores how the Co-dfns compiler has been received in the broader computing communities and its impact on other projects

Text Processing in APL summary
Aaron Hsu

APL has a reputation for being very good at numerical and financial types of calculations, but much of what modern data processing entails requires working with textual data of various sorts. Aaron discusses APL in the context of text processing, with an emphasis on parsing, architecture, and handling text-oriented applications.

Filling the Core Language Gaps summary
Adám Brudzewsky

Adám presents three proposed new primitives, and explains how their addition makes the language more complete. One complements the existing set of function composition operators, one generalises each in a manner similar to the powerful rank operator, and one supplies a functional form of the last remaining uses for square bracket indexing.

Simplifying Secure, Scalable Web Services summary
Brian Becker

Jarvis is Dyalog's framework for the easy development of APL-based Web Services. Once your APL code running as a Web Service you might need to address additional considerations:

  • Security – protecting your and your users' private information
  • Availability – keeping your service running at all times
  • Scalability – managing increases in demand

Brian introduces Jarvis, and discusses some options for running a secure, high-availability, scalable Web Service.

How I Won the APL Problem Solving Competition – Introduction and Prize Ceremony summary
Brian Becker

The 14th annual International APL Problem Solving Competition took place earlier this year. Brian summarises this year's contest and introduces the grand prize winner, culminating in the award ceremony.

2022 Conference Edition Part 1 – The Session Log summary
John Daintree

John has been noodling with some interesting things. In the first part of this series, he demonstrates some improvements to Dyalog's Session log.

2022 Conference Edition Part 2 – Tracing summary
John Daintree

John has been noodling with some interesting things. In the second part of this series, he demonstrates some improvements to tracing code in Dyalog.

2022 Conference Edition Part 3 – Asynchronous Programming summary
John Daintree

John has been noodling with some interesting things. In the final part of this series, he explores some ideas for asynchronous programming in Dyalog.

Performance Improvements in Set Operations summary
Karta Kooner

Dyalog version 18.0 introduced many useful performance enhancements, including some within the set-related primitives. Karta outlines the ongoing work that is being performed to understand what the performance profile of key primitives look like (beginning with the set-related primitives), discusses where performance gains can still be made, and describes how future evaluation of performance enhancements will be conducted by examining some of the shortcomings of the v18.0 performance work.

Test Your Code! summary
Michael Baas

Testing APL Functions is sometimes seen as optional, as the functions are so small and self describing. Michael challenges that view, demonstrating some essential tools that are used internally within Dyalog Ltd (and are available to all users) to enhance the level of testing and, therefore, improve the quality of delivered code.

Growing APLers summary
Rich Park

Rich describes the need for (and ways to achieve) increasing and improving the resources that are available to help new users learn the basics of the language, utilise the many features of Dyalog, and develop their skills. He also discusses some of his experiences over the last year in training new and existing APLers.

Implementing the Convolutional Neural Network U-Net in APL summary
Rodrigo Girão Serrão

The U-Net is an architecture of a convolutional neural network that is well-known in the machine learning literature. Rodrigo worked with Aaron Hsu on a paper about using APL to implement this architecture and experiment with it; in this presentation he explores the code base that they used.

back to top


User Presentations

Onetime Pure Mathematician Corrupted by Exposure to APL Loses Moral Compass and Discovers, after Several Mis-steps, a Useful Numerical Integration Method summary
Charles Brenner, DNA-View (U.S.A.)

Numerical integration is a computer task that arises in many practical problems. It is a key step in the evaluation of forensic DNA evidence that requires integrating a function likely of two to five variables corresponding to the number of people whose DNA comprises the evidential sample. Integrating a function of one variable1 by computer is familiar ground. For several variables2 there is some deep and technical literature, based on a superficially obvious extrapolation of one-variable integration. Charles will discuss an evidently elusive though simple and natural alternative extrapolation that overcomes multiple shortcomings of the published methods.

Referenced equations:

1: and 2:

Lift-off from APL2 Mainframe to Dyalog in the Cloud summary
Gilgamesh Athoraya, Tiamatica AB (Sweden)

This is the story of an ongoing project to move a large APL2 mainframe system to Dyalog on a modern platform. Gilgamesh presents the obstacles encountered and the milestones achieved in this ambitious endeavour.

APL on the Side summary
Justin Dowdy, Semantic Arts (U.S.A.)

Dyalog users are fortunate to be able to use APL for an entire project when it is a good fit. Traditional software engineers that are interested in APL often have to find ways to use APL on the side or incorporate APL thinking into their professional work. April* and May are two projects that allow APL to be evaluated from Common Lisp and Clojure, respectively. These projects allow APL to be incrementally employed in projects that don't currently use APL. Justin describes these projects and the ways that he uses them.

* For more on the April compiler, see APL Seeds '22 presentation U02.

Scheduling Array Operations summary
Juuso Haavisto, University of Oxford (U.K.)

Scheduling array operations has been a topical theme in the research of tensor computation. With the help of type theory, array operations are parallelised for graphics processing units and distributed computing. Juuso shares his findings in static scheduling, and how it can be used to optimise execution over different hardware and compute infrastructure settings.

A Modern APL Workbench summary
Kimmo Linna, FinnAir (Finland)

In addition to being an Airbus Captain at FinnAir, Kimmo prepares analyses that are used for operational optimisation and negotiation between the airline and staff. He has constructed his own workbench for data analytics, with Dyalog at the centre of a collection of modern tools: DuckDB for data storage and queries, Vega-lite for graphics, Jupyter Notebook for presentations, and Visual Studio Code and GitHub Copilot for managing the code. In this presentation, Kimmo demonstrates the workflow that he has been able to achieve with this collection of tools. All his interfaces are available as GitHub projects.

An APL to Vega-lite Interface summary
Kimmo Linna, FinnAir (Finland)

For many years, Kimmo has been searching for a modern replacement for Adrian Smith's RainPro graphics package, which is oriented towards printed output and cannot easily produce interactive web-oriented graphics. His current choice is Vega-lite, which is a "high-level grammar of interactive graphics" that can easily be driven from APL using JSON input. Kimmo describes his search for a new graphics library, and explores the mechanics of the interface.

Rebuilding a Production APL Environment using Dyalog summary
Mark Wolfson, BIG (U.S.A.)

BIG is a company in the jewellery industry that integrates with dozens of systems to import data from 1,000 retailers. The data is used to provide inventory analysis and merchandising consulting for the retailers, to provide sell-through data to manufacturers, and to integrate to several industry service companies. The end-user tools, and the integration applet, are written in C#, ASP.Net, JavaScript, MSSQL, and KendoUI.

APL was chosen to handle all data-related tasks, from processing the incoming data to infinite customisations of the data for customer use. Using the data manipulation capabilities, modular design, and rapid development capabilities of APL, BIG can respond quickly to user requests and changing data streams and configurations. The data comes in to BIG's servers in dozens of configurations, different numbers of files, different file formats, and inconsistent content. APL is used to transform this data to a standard upload into the production MSSQL database, normalising the formats and often converting the jumble of information into usable data.

For 15 years, BIG have used an organically-grown IBM APL2 environment that uses Microsoft Windows scheduled tasks to call .bat files to invoke APL2 to process the data at the time it is expected to come in. Over the past year, Mark has created an entirely new production environment using Dyalog that uses:

  • Windows Service to monitor incoming data and call the appropriate processes when it arrives.
  • SQAPL to communicate directly with the production database.
  • ⎕CSV, ⎕XML, and ⎕JSON to read from files of those types.
  • .NET integration to connect to DLL libraries for utilities including ClosedXML for reading/writing Microsoft Excel files.
  • HTTP calls to read from external APIs.
  • ]Link to read/write to text files containing the APL code.
  • source control for production code.

All code for the new environment is stored in text files (.aplf) and is brought into the running workspace as needed, and source control is used to share code within the team.

How I Won the APL Problem Solving Competition (Professional Entrant) summary
Michael Higginson (Canada)

Michael is the winning professional entrant of the 14th annual APL Problem Solving Competition. A newcomer to APL, he describes what led him to the competition and his experiences using it as a vehicle to learn APL/Dyalog, and explores some of the approaches and solutions behind his successful entry.

Integrating HTMLRenderer Into Existing Applications summary
Norbert Jurkiewicz, The Carlisle Group (U.S.A.)

HTMLRenderer is the most powerful addition to Dyalog in the last 10 years – there's never been greater ability to create modern interactive user interfaces. Norbert describes how The Carlisle Group are upgrading parts of their legacy Microsoft Windows application to take advantage of these new UI abilities while retaining a uniform theme. Integrating these complex environments comes with new challenges that require learning new programming environments (JS) and new ways to design application architecture… Async anyone?

Automating Application Builds with AWS summary
Norbert Jurkiewicz, The Carlisle Group (U.S.A.)

The application build process should be automated and always use a consistently clean environment. In this high-level overview about using Amazon AWS resources for on-demand releases, Norbert covers:

  • building a new VM.
  • installing Dyalog and other development tooling.
  • downloading source code and dependencies.
  • building and compiling the application.
  • uploading MSIs to a cloud provider.

What – Another APL Book? summary
Ray Polivka, Polivka Associates (U.S.A.)

Ray is working on another APL textbook and is at the point where he needs feedback!

There exists an important group of people who should be exposed to APL – students aged 14-18 years old. Ray's book is intended for this audience. It also could benefit college students who need to be exposed to computer languages, but do not want to study computer science.

The text does not cover all aspects of APL; instead, it focuses on introducing students to the APL language. It accomplishes this through many illustrations and exercises. Ray has been working on this for several years and the text is now at a point where he believes it could benefit greatly from your views and comments.

ALPS – A Linear Programming System summary
Stephen Mansour, Misericordia University (U.S.A.)

Mathematical programming is a technique that can be used to optimise resources. The typical mathematical notation for linear optimisation is:

max c'x subject to Ax ≤ b

where x is a vector of decision variables, b is a vector of constraints, c is a vector of unit profits, and A is a matrix of resource usage. We can create similar-looking expressions using standard APL syntax, that is:

NS ← max c x subjectTo A x ≤ b

Stephen demonstrates this using ALPS, a linear programming system written in Dyalog. A user interface for ALPS has been written in Abacus, an HTML framework for Dyalog.

Semi-globals and Multi-threading are like Chalk and Cheese summary
T.B.A., SimCorp Italiana (Italy)

30 years ago, SimCorp Sofia started as a single-threaded application, (ab)using lots of global and semi-global variables. As new technologies emerged, Sofia evolved into a multi-threaded client-server application. Adapting old code often proved difficult; they describe some of the issues encountered over the years, and how they approached – and (hopefully) solved – them.

back to top


Copyright and Trademarks

UNIX® is a registered trademark 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.
macOS® and OS X® (operating system software) are trademarks of Apple Inc., registered in the U.S. and other countries.
All other trademarks are the property of their respective owners.

back to top