Dyalog '21 was held online from 8-9 November 2021

Programme (PDF) Materials Presentation Videos

Dyalog Presentations

D01: Welcome to Dyalog '21 summary | slides (PDF) | video (9 mins)
Gitte Christensen, Managing Director (CEO)

Dyalog '21 will be different to previous Dyalog user meetings (except Dyalog '20!), but some traditions will survive...Dyalog Ltd's CEO opens the user meeting.

D02: The Road Ahead summary | slides (PDF) | video (33 mins)
Morten Kromberg, Technical Director (CTO)

Before presenting his view of the road that lies before Dyalog and users of Dyalog APL, Morten spends a little time talking about the year that has passed, and explains why the release of Dyalog APL that follows after 18.0 will be numbered 18.2.

D03: Scripting in Dyalog v18.2 summary | slides (PDF) | slides (PPSX) | video (29 mins)
John Daintree

Dyalog v18.2 supports the use of APL as a scripting language, a feature that John previewed in a talk at Dyalog '20. This year, John shows us what actually made it into the product, and revisits the extended multi-line session input that makes scripted APL much more powerful. He also discusses the difficulties of debugging scripts, and introduces a new I-beam that removes some of that pain until it is possible to attach the RIDE to failing script interpreters.

D04: Support for Statistical Distributions in Dyalog v18.2 summary | slides (PDF) | video (18 mins)
Ron Murray

Sampling from non-linear distributions is important for Monte Carlo simulation processes. Ron reviews the distributions for which Dyalog supports direct sampling through 16808⌶ and demonstrates how to sample distributions using Dyalog's interface to the R programming environment.

Useful links: Workspace for presentation examples on GitHub | Kimmo Linna's Dyalog-R interface on GitHub

D05: ⎕JSON Table Support summary | slides (PDF) | video (26 mins)
Richard Smith

The ⎕JSON system function provides efficient conversion between JSON-formatted text and APL arrays (including namespaces). However, APL developers use a variety of data structures to store two-dimensional tables, and these do not fit neatly into the non-APL world. Richard explains the extensions made to the ⎕JSON system function for Dyalog v18.2 that enable the JSON representation of APL matrices in ways appropriate for non-APL applications and developers using JavaScript and "similar languages" to understand them.

D06: Highlights of Dyalog v18.2 summary | slides (PDF) | video (31 mins)
Adám Brudzewsky

Dyalog v18.2 includes several new productivity tools and quality-of-life improvements, intended for both professionals and beginners. Adám presents some of these, and shows how programming in APL can now be more fun than ever.

D07: Link v3.0 summary | slides (PDF) | video (29 mins)
Morten Kromberg

Link makes it possible to use text source as the foundation for APL application development, rather than binary workspaces or component files. The first version to see significant use outside Dyalog Ltd. was v2.0, distributed with Dyalog v18.0. Link v3.0 is cleaner, more robust, more capable, and has more comprehensive documentation. If you have not looked at Link yet, this is a good time to start!

D08: Dado (Dyalog APL Development Operations) summary | slides (PDF) | GitHub | video (29 mins)
Josh David

Dyalog APL allows you to program at the speed of thought. But wait! Now that you're storing code in text files, you need to learn about source-code management systems and how to come up with an effective workflow in them, how to properly version an application, etc. A non-trivial amount of time must now be spent on daily development operations before you even get to write a line of APL code.

Josh introduces Dado (previously known as AcreTools), an open-source library from The Carlisle Group that takes care of these problems for you. The key functionalities of this DevOps system for Dyalog include:

  • streamlined cover functions for git commands
  • "one-click" releases to automatically generate release notes, handle application versioning, and upload assets
  • dependency management
  • a built-in git workflow

This can all be done with a few simple user command functions, without having to leave the Dyalog session.

D09: Python + APL = Py'n'APL summary | slides (PDF) | GitHub | video (28 mins)
Rodrigo Girão Serrão

What happens if you combine the raw power of APL – your tool of thought – with the countless modules that have been produced by the Python community? APL is famous for enabling the rapid prototyping of solutions to whatever problem you decide to solve, and Rodrigo believes that employing this in combination with the Python ecosystem is sure to maximise potential. To prove his point, he demonstrates how you can combine APL for your data manipulation with Python for your other needs.

D10: Packaging Dyalog Tools summary | slides (PDF) | video (32 mins)
Brian Becker

As the number of utilities and utility libraries for Dyalog grows, it's becoming more important for the APL developer to understand how to manage and employ these utilities as packages. A package can be thought of as a utility that you incorporate into your application. Packages can comprise one or more files containing the APL code that implement the utility; they can also have non-APL resources such as shared libraries (.dll files), configuration files, image files, and so on.

Tatin is a package manager for Dyalog APL that has been developed by APL Team and is currently being adopted by Dyalog to package a number of its tools. Tatin helps manage several aspects in the use of packages including:

  • Versioning, so that the APL developer can know what version of a package is being used. This is valuable information for support and upgrade purposes.
  • Dependencies between packages, so that when a package depends on other packages, the APL developer is aware of any specific version requirements for a package.

Brian provides an overview of Tatin for both consumers (APL developers who desire to incorporate packages into their applications) and authors (APL developers who desire to publish packages for the use of consumers). He demonstrates how Tatin will be used within Dyalog to publish forthcoming versions of Dyalog tools and utilities, and how the Dyalog user can utilise Tatin as a consumer of those utilities in their application development.

D11: APL Media Update 2021 summary | slides (PDF) | video (30 mins)
Rich Park

The world of new media continues to grow for APL and array languages. Rich presents an overview of recent and upcoming publications and events.

back to top


User Presentations

U01: Here's The Plan: Learn APL, and Write a Book About It summary | slides (PDF) | slides (PPTX) | slides (KEY) | links (TXT) | video (29 mins)
Stefan Kruger, IBM (U.K.)

Stefan explains how he discovered APL and decided to write the book he thought was missing, how that book came to be, and what he learnt in the process. How can we make APL appeal to a new generation of programmers?

U02: APL in the Driver's Seat summary
Alexey Miroshnikov, InfoStroy Ltd (Russia)

Many applications use APL as an engine in the background, employing different user interface technology to make calls to business logic written in APL. Alexey describes how InfoStroy's GAMA (Global Asset Management Assistant) asset management solution uses APL to interface with a variety of technologies so that users are presented with a state-of-the art experience.

U03: Extending the Domain of the Probability Operator in TamStat summary | slides (PDF) | ReadMe (TXT) | TamStat for Linux (ZIP) | TamStat for macOS (ZIP) | TamStat for Microsoft Windows (ZIP) | video (30 mins)
Stephen Mansour, The University of Scranton and Misericordia University (U.S.A.)

The probability operator in TamStat ordinarily takes a distribution function as its left operand and a relational function on the right to produce a probability from a statistical distribution. The domain of the probability operator has now been extended to take a logical function as its left operand and a contingency matrix as the right operand. This allows the computation of probabilities using the complement rule (not), the addition rule (or), the multiplication rule (and), and the conditional rule (if) – other logical functions are also included in the domain. Stephen explains how replacing the contingency matrix with the independent operand means that the same probabilities can be calculated assuming that the two events are independent and introduces the Probability Wizard (which generates Venn Diagrams) that has been created to work with this new functionality.

U04a: The 2021 APL Problem Solving Competition – Introduction summary | slides (PDF)
Brian Becker

The 13th annual APL Problem Solving Competition took place earlier this year. Brian introduces the contest and second place winner.

U04b: The 2021 APL Problem Solving Competition – Runner-Up's Presentation summary
Victor Ogunlokun, Obafemi Awolowo University (Nigeria)

Victor describes his experiences of APL/Dyalog and tells us how he managed to master enough of it to win second place in this year's APL Problem Solving Competition.

U05: The Array Cast (live podcast recording) summary | podcast (56 mins)
Host: Conor Hoekstra, NVIDIA (Canada)

Conor Hoekstra is the host of The Array Cast, a panel-based podcast on array languages. Since launching a few months ago, Conor and his panellists have produced a series of extremely interesting podcasts, with special guests from many walks of Array Life. As the final session of Dyalog ‘21, The Array Cast will be broadcast live for the first time.

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