Dyalog Presentations
D01: Welcome to Dyalog '23 summary | slides (PPTX) | slides (PDF) | video (23 mins)
Gitte Christensen, Managing Director (CEO)
Dyalog Ltd's CEO opens the user meeting.
D02: The Road Ahead summary | slides (PPTX) | slides (PDF) | video (44 mins)
Morten Kromberg, Technical Director (CTO)
In accordance with tradition, Morten looks briefly back over his shoulder before turning his gaze to the future, presenting his view of the road that lies before Dyalog and users of Dyalog APL.
D03: Dyalog Version 20.0 – Part 1 summary | slides (PPSX) | slides (PDF) | video (28 mins)
John Daintree
John revisits token-by-token tracing (which will be in Dyalog v20.0, promise!), bringing us up-to-date with what it does and what's been added since last year.
John's Dyalog '22 presentation: video
D04: Setting and Getting Variable Values summary | slides (PPTX) | slides (PDF) | video (18 mins)
Adám Brudzewsky
Assignment and using the value of a variable are important elements of programming, but, in more complex systems, the name of a variable is sometimes dynamic, and determined separately. Current solutions to these situations suffer from poor readability and performance, so Adám proposes an alternative approach.
D05: Revisiting ⎕SH and ⎕CMD summary | slides (PPTX) | slides (PDF) | video (18 mins)
Peter Mikkelsen
Using ⎕SH/⎕CMD to run commands through the operating system's shell is a useful feature, but unfortunately this has some limitations. Peter explores these, and presents a new system function that aims to eliminate them and allow the user to control input output redirections, just like in a real shell.
D06: An Introduction to the Workspace summary | slides (PDF) | video (21 mins)
Richard Smith
Richard reveals a few of the interpreter's secrets as he explains what's inside a workspace and how it is managed. This could give you an advantage when tuning your applications for size, performance, or both.
D07: Future Performance Improvements in Set Functions summary | slides (PDF) | video (21 mins)
Karta Kooner
At Dyalog '22, Karta presented an introduction to work that he was undertaking to improve the performance of set-related primitives. He now presents the results of his work and explores what can be expected in upcoming versions of the interpreter.
Karta's Dyalog '22 presentation: slides (PDF) | video
D08: Using Packages summary | slides (PPTX) | slides (PDF) | video (26 mins)
Morten Kromberg
Following his presentation on Projects and Packages at Dyalog '22, Morten demonstrates a version of the Cider project management system that simultaneously supports two package managers – Tatin for packages implemented in Dyalog, and NuGet for .NET components.
Morten's Dyalog '22 presentation: slides (PDF) | video
D09: Dyalog Tools Update summary | slides (PPTX) | slides (PDF) | video (26 mins)
Brian Becker
In addition to Dyalog's language-level tools (for example, system functions), there are also many APL-based tools available for general programming, system interaction and interoperation, and application development tasks. Brian explains the efforts being made to make our APL-based tools more readily available, easier to learn, and easier to incorporate into your applications.
D10: Running Dyalog on ARM64 Machines summary
Ron Murray
With Dyalog v19.0, Dyalog can now run on the Apple Macintosh M1 and M2 machines, the Raspberry Pi-4, and Arm 64 processors in the AWS and the Microsoft Azure cloud environments. In this presentation, Ron demonstrates Dyalog running on the Raspberry Pi-4 and in the AWS environment.
D11: Dyalog + Kafka = True? summary | slides (PPTX) | slides (PDF) | video (27 mins)
Stefan Kruger
Apache Kafka is a distributed event streaming platform that allows you to build real-time data pipelines and streaming apps. It's horizontally scalable, fault-tolerant, and incredibly fast, with latency measured in milliseconds. It's often used as the backbone in microservice architectures in the cloud. Stefan describes his initial experiments on what a Dyalog interface to Apache Kafka might look like.
D12: Dyalog Version 20.0 – Part 2 summary | slides (PPSX) | slides (PDF) | video (30 mins)
John Daintree
John has some generic problems. What can he do about them?
D13: Giving Key a Vocabulary summary | slides (PPTX) | slides (PDF) | video (12 mins)
Adám Brudzewsky
The key operator (⌸), introduced in Dyalog version 14.0, is arguably the most successful recent addition to the language, enabling data scientists and finance processors to group, summarise, and count values in various ways. However, sometimes key disappoints because it doesn't know the intended order of results, is missing placeholders for absent keys, or includes unwanted data. Adám proposes a simple extension that addresses these issues.
D14: The Return of Uncle Andy's Fireside Chat summary | slides (PPTX) | slides (PDF) | video (70 mins)
Andy Shiers
Back by (allegedly) popular demand, Andy will once again delve into the lesser-known aspects of Dyalog and our backend systems – he's got several versions to talk about!
D15: Co-dfns Update 2023 summary | slides (PPTX) | slides (PDF) | video (18 mins)
Aaron Hsu
The Co-dfns project is an initiative to expand the reach and capabilities of APL through compiler design, language research, and the use of APL to tackle problems that have been previously under-represented in the modern APL community. Aaron provides an update on these efforts, including the status and current capabilities of the compiler, a roadmap for the future, and practical details concerning how Co-dfns can be applied today.
Aaron's Co-dfns presentations at previous Dyalog user meetings:
D16: Statistical Libraries for Dyalog summary | slides (PPTX) | slides (PDF) | video (24 mins)
Josh David
With Data Analytics and Machine Learning on the rise, it is now critical to have statistical libraries available. Josh takes a look at some of the open-source statistical libraries available to the APL developer.
D17: How I Won the APL Problem Solving Competition – Introduction and Prize Ceremony summary | slides (PPTX) | slides (PDF) | video (20 mins)
Brian Becker
The 15th 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.
D18: Vega Charts with Dyalog summary | slides (PPTX) | slides (PDF) | video (24 mins)
Rich Park
Vega-lite is a high-level data visualisation grammar - a declarative language for describing visual presentations in JSON (JavaScript Object Notation). Charts are rendered using a JavaScript library and, thanks to the HTMLRenderer, we can provide data directly from APL and produce graphics ready for publication on the web. Rich demonstrates a simple interface for producing graphs from APL data using Vega-lite.
D19: Behind The Scenes summary | slides (PPTX) | slides (PDF) | video (54 mins)
Stine Kromberg and Jada Andrade
Dyalog Ltd is growing and times are changing. Stine presents some of the work going on in the background to help us evolve in the years to come.
Licensing can be a very complex subject, and it can be difficult to determine what your exact licence requirements are. We've been looking at simplifying our current structure to make the process more intuitive. Jada presents the changes to licensing that will take effect in January 2024.
User Presentations
U01: APL Worker Bees – Another Way to Run APL Tasks in Parallel summary | slides (PPSX) | slides (PDF) | video (29 mins)
Stig Nielsen, SimCorp (Denmark)
Stig demonstrates a small “WorkerBees” project that enables you to run APL tasks in parallel on separate threads using the concept of “hosted APL” and .NET async/await and tasks. The aim is to create reusable “APL worker bees” that can be dedicated to certain tasks, where “parallel each” is short lived thread processes.
U02: Transforming and Streamlining a Complex Development Process using Dyalog summary | slides (PPTX) | slides (PDF) | video (23 mins)
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.
At Dyalog '22, Mark introduced us to BIG's new Dyalog-based production environment. Dyalog's tools and features, including SQAPL, Jarvis, HttpCommand, .NET integration, ⎕JSON, and ⎕CSV, have enabled BIG to address specific aspects of its processes, and provide the ability to respond to customer needs faster and more flexibly than ever before. Mark updates us on how BIG's use of Dyalog and its tools has grown in the last year.
Mark's Dyalog '22 presentation: slides (PDF) | video
U03: The Evolution of APLTree and APL-cation summary | slides (ZIP) | video (25 mins)
Kai Jaeger, independent (Germany)
At Dyalog '18, Kai presented the evolution of the APLTree and the APL-cation projects. In the five years since then, all APLTree projects have been transformed into Tatin packages. Kai discusses the benefits and implications of this change, and updates us on the latest changes and additions to these open-source projects.
Relevant projects:
- APLTree: a collection of tools to help Dyalog application developers – https://github.com/aplteam/apltree/wiki
- APL-cation: a library of tools ("members") for developing full-scale applications in Dyalog – https://github.com/aplteam/apl-cation/wiki
- Tatin: a package manager for Dyalog – https://tatin.dev
U04: Music: APL vs APS (A Pointy Stick) summary | materials (GitHub repository) | video (40 mins)
Ray Cannon, independent (U.K.)
Ray muses on about a decade of trying to play J.S Bach's "Toccata and Fugue in D minor, BMV565" using APL. His musings include sound "WAV" file format and their creation, what makes up a chord, (adding of 3 sine waves), what harmonics are and how they can be combined to convert a simple tone into the sound of organ pipes, and adding reverberation to a tune to give the effect of a large concert hall. He culminates in his rendition of BNV565 in full stereo, with an animation showing each note as it is played.
U05: Converting a COM Server to a Jarvis-based Web Service summary | slides (PPTX) | slides (PDF) | video (25 mins)
Finn Flug, Dittrich & Partner Consulting GmbH (DPC) (Germany)
DPC recently migrated an application from APL+Win to Dyalog. Finn describes the process, particularly the conversion of a COM Server to a Jarvis-based web service and the deployment of the application as a Docker container.
U06: Dyalog, AWS, Jarvis, Docker…What's Not to Like? summary | slides (PPTX) | slides (PDF) | video (23 mins)
Claus Madsen, FinE Analytics (Denmark)
Claus has put a complex financial application in the cloud and made it available to clients anywhere in the world. He explains how he – much to his surprise – ended up enjoying his journey from saved workspaces to the automated building and deployment of docker containers to Amazon Web Services.
U07: Once Upon a File summary | slides (PDF) | video (28 mins)
Elena Paviotti and Gianna Folladore, SimCorp Italiana (Italy)
Elena and Gianna present some amusing stories about frustrating experiences with files and people.
U08: quAPL – A Quantum Computing Library in APL summary | slides (PPTX) | slides (PDF) | video (22 mins)
Marcos Frenkel, NCSA/University of Illinois at Urbana-Champaign (U.S.A.)
Quantum computing is a promising technology emerging from harnessing the laws governing the world of atoms. Writing quantum programs equates to specifying circuits, which is cumbersome and does not scale intellectually. We have found at NCSA that APL naturally expresses quantum concepts, leading to higher level programming constructs. Marcos demonstrates these connections and how they might help to revolutionise this form of computing.
U09: APL and Metallurgy summary | slides (PPTX) | slides (PDF) | video (23 mins)
Jesús Galán López, Ghent University (Spain)
The capacity of APL enables domain experts to solve difficult problems makes it the perfect candidate to support scientific and engineering work. In the field of materials science and metallurgy, there are a large number of analysis and modelling problems that could be successfully tackled with the help of APL. Moreover, APL has traditionally been not only a programming language with useful applications, but also a powerful learning tool. Jesús shows us how APL is being used in the field of metallurgy, in an academic environment, both for education and research.
U10: Teaching Linear Algebra with APL summary | slides (PDF) | video (18 mins)
Asher Harvey-Smith, University of Warwick (U.K.)
As part of a Dyalog internship over the summer of 2023, Asher has been developing training courses for teaching linear algebra using APL to university students with the aim of spreading the APL message. Asher describes his Dyalog experience and how he thinks the first training course went.
U11: A YAML Parser in APL – Leveraging a Linear Dataflow Model to Unleash APL's Expressiveness summary | YAML Parser (GitHub repository) | video (18 mins)
Brandon Wilson, Effective Altruism (Japan)
YAML is a human-readable data-serialisation language. Brandon has written a YAML parser with an architecture that resembles that of Co-dfns (a high performance compiler for a parallel extension of APL's dfns). He discusses the parser implementation, the particular design decisions made, and how a linear data-flow model enables him to write APL that cuts across all levels of detail simultaneously.
U12: Grain Growth and Array Programming summary | slides (PPTX) | slides (PDF) | video (19 mins)
Jesús Galán López, Ghent University (Spain)
Suppose some students are confronted with a relatively simple programming problem in a computational materials course, like writing a grain growth model. These students are not software developers, but future materials scientists. What tools do they know to help them with this task? Could they benefit from using array programming techniques? What about APL? Jesús answers these questions by analysing a real, practical, case.
U13: How I Won the APL Problem Solving Competition (Non-student Winner) summary | slides (PDF) | video (26 mins)
Alexander Block, Viridium Insurance Group (Germany)
Alexander is the winning professional entrant of the 15th annual APL Problem Solving Competition. He describes what led him to Dyalog APL and the competition, and explores some of the approaches leading to the solutions behind his successful entry.
U14: How I Won the APL Problem Solving Competition (Student Winner) summary | slides (PDF) | video (37 mins)
Andrea Piseri, Università degli Studi di Milano (University of Milan) (Italy)
Andrea is the grand prize winner of the 15th annual APL Problem Solving Competition. Following the award ceremony, he describes his experiences of APL/Dyalog and tells us how he managed to master enough of it to win the competition.
U15: Introspections of an Intermediate APLer – The Good, Bad, and Ugly of Learning APL summary | slides (PDF) | video (25 mins)
Brandon Wilson, Effective Altruism (Japan)
Learning APL can be both exhilarating and excruciating. Most pedagogical materials aim at the early intermediate level or lower; other materials are aimed at experts. Brandon offers the perspective of a firmly middle-intermediate APLer trying to make the most of the glittering promises of "APL as a tool of thought" while the pains and joys are salient.
U16: An Implementation of APL Array Notation summary | slides (PPTX) | slides (PDF) | video (25 mins)
Kamila Szewczyk, Saarland University (Germany)
Array Notation is a convenient method for introducing APL array and namespace literals in APL code. Proposals for its syntax and implementation were first made by Phil Last in 2015, and have been discussed and refined for implementation in Dyalog over the last several years. As part of a Dyalog internship over the summer of 2023, Kamila has implemented support for Array Notation in the interpreter and now presents performance benchmarks for the new syntax.
Presentations on Array Notation at previous Dyalog user meetings:
- Dyalog '15 (Phil Last): slides (PDF) | video
- Dyalog '17 Adám Brudzewsky): slides (PDF) | video
- Dyalog '18 Adám Brudzewsky): slides (PDF) | video
- Dyalog '20 Adám Brudzewsky): slides (PDF) | video