Dyalog ’23 Videos: Week 4 – Research and Education

I am always thrilled to hear from people who have been able to use APL to gain insight into difficult subjects, or use APL to pass knowledge on to others. A truly fascinating and surprising example of this at Dyalog ’23 was the talk titled “quAPL – A Quantum Computing Library in APL”, in which Marcos Frenkel presented work that he has done together with Santiago Núñez-Corrales and Bruno Abreu at the National Center for SuperComputing Applications, University of Illinois at Urbana-Champaign in the USA.

I say “surprising” because I had imagined that quantum computers were a bit like the analog computers of old, where you would initialise some “circuits” and then let the thing settle into some kind of minimal energy state – and, therefore, about as far from APL as you could get. However, when you take a closer look at quantum computing, qubit states are “matrix multiplications all the way down”. To quote Marcos: APL naturally expresses quantum concepts, leading to higher level programming constructs.

Jesús Galán López is a metallurgist at Ghent University in Belgium. In two presentations at Dyalog ’23, he explains how he has been exploring the use of APL for scientific and engineering work. He takes us on a deep dive into the use of APL to help students write better models of processes like grain growth in metals than they would be able to using traditional programming languages.

Dyalog had two interns this summer: last week’s video collection featured work done on an Array Notation implementation by Kamila Szewczyk from Saarland University. This week, Asher Harvey-Smith talks about his experience as an intern, some of the teaching materials that he worked on over the summer, and his adventures teaching algebra to his mates using APL after he returned to the University of Warwick.

Not all education happens at an institution: sometimes you have to learn APL on your own, with the help of online friends. If you are really keen, you can attend conferences and hunt down Aaron Hsu. The final talk this week is by Brandon Wilson. In a talk titled “Introspections of an Intermediate APLer – The Good, Bad, and Ugly of Learning APL“, he (in his own words) 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.

——————————————

This week’s videos:

Materials for all presentations can be downloaded from the Dyalog ’23 webpage.

Dyalog ’23 Videos: Week 3 – Dyalog Core Development

This week’s collection consists of presentations by members of the development team, and concentrates on language features and development tools that the developers are currently designing or already implementing. Many of these features are likely to be in version 20.0 of Dyalog, which we plan to release in early 2025, about a year after version 19.0 becomes available. In other words, there is still time to comment on these ideas and propose changes or additions…please take a look and let us know your thoughts!

John Daintree presents an update to the design (and prototype implementation) of so-called Token-by-Token (TBT) debugging, which will make it possible to step through code one primitive at a time rather than one line at a time. This promises to be a wonderful teaching tool, and will also help experienced users debug complex expressions – especially trains and other tacit constructs.

In the presentation on “Setting and Getting Variable Values”, Adám Brudzewsky proposes extensions that will simplify (and speed up) a number of frequently-occurring patterns, where application code needs to reference or update variables based on arrays containing variable names. At the moment, most solutions require complicated, inefficient, and uncomfortable uses of the execute primitive (which some code scanners might identify as potentially unsafe).

Adám’s second presentation also proposes ways to simplify frequently-occurring use cases, this time related to a relatively recent addition to the Dyalog language, the key operator (). Similar to an SQL “group by” clause, key performs operations on groups of data that are partitioned using key values – and it suffers from similar issues if you want the results to be in a particular order, or include entries for key values that do not occur in the data which is at hand.

Peter Mikkelsen proposes a new mechanism for making shell commands from Dyalog. Rather than extending the existing mechanism (⎕SH and its synonym ⎕CMD), which is widely used by existing code bases, Peter proposes a new system function that will manage both binary and encoded input and output, and include features such as whether to error on a non-zero exit code and ways to redirect input and output

The final talk in this block is by Kamila Szewczyk, a student from Saarland University, who was an intern at Dyalog Ltd this summer. In this whirlwind talk, she covers her implementation of a prototype of an APL Array Notation deserialiser, which will be available as an I-Beam in version 19.0, and probably used by Link 4.0. When she needed a break from that project, she created internal experimental builds of the interpreter to try out a large number of interesting ideas that are present in other array language implementations, such as automatic numerical differentiation, the obverse operator, and a monadic inner product where, for example, -.× computes the determinant.

——————————————

This week’s videos:

Materials for all presentations can be downloaded from the Dyalog ’23 webpage.

Dyalog ’23 Videos: Week 2 – APL Problem Solving Competition

The section that is dedicated to the annual APL Problem Solving Competition is always one of my own favourite parts of a Dyalog user meeting, and the talks by the two winners this year were no exception. It is always a treat to hear about how the student winners are able to go from zero knowledge about APL to delivering very well designed, array-oriented, solutions in a few weeks, sometimes days!

This year, we were very pleased to have both the student grand prize winner Andrea Piseri and the professional winner Alexander Block present. Andrea is studying mathematics at Università degli Studi di Milano (University of Milan) and Alexander is an actuary at the Viridium Insurance Group in Germany.

Before Gitte Christensen presented the prizes to the winners and they gave their talks, our “Chief Problem Maker” Brian Becker gave us a brief history of the competition and overview of the contest website (which uses Dyalog-grown tools). He also mentioned that we are revising the format of the competition, most likely by running simpler/smaller problem sets at a higher frequency. We’ll be making official announcements about that early in 2024.

Read more about this section of the user meeting in our Dyalog ’23 daily blog post.

——————————————

This week’s videos:

Materials for all presentations can be downloaded from the Dyalog ’23 webpage.

Welcome to the Dyalog ’23 Videos!

Welcome to the 2023 edition of the Dyalog user meeting presentation recordings. This year, we plan to release a few talks each week until the Winter Solstice – and I will be doing my best to introduce each block of related talks.

Week 1 – A New CEO!

For the 19th year running, the annual Dyalog user meeting started with CEO Gitte Christensen’s Welcome, followed by my own Technical Road Map presentation. However, all is not as it has been: this year, Gitte opened the user meeting with the announcement that she intends to retire from her role as CEO when she turns 70 at the end of this year. The final presentation in this first block is by our incoming CEO, Kirstine Kromberg, and our new Administration Assistant, Jada Andrade, who closed Dyalog ‘23 with a presentation of the vision for the future of Dyalog Ltd.

The similarity between my name and that of the new CEO is not a co-incidence – she is the daughter of the current CEO and CTO. Kirstine (Stine for short) has an MBA in Business Administration and Information Technology from Copenhagen Business School, and everyone believed she was destined to become a manager at one of the large Danish shipping or pharma companies. However, after Stine’s second maternity leave, she discovered that returning to her job as a business consultant would mean twiddling her thumbs until the consulting market picked up again after the Covid pandemic. At the same time, the search for a new CEO for Dyalog Ltd had started.

Stine has been working for Dyalog Ltd for almost four years now, learning how everything works as an accountant and CFO and running several internal projects both on the administrative and technical side of the business. This experience confirmed to us – and to the board, where half of the directors represent our largest clients – that she could strike the right balance between preserving continuity and having the “change management” skills that are required as we grow beyond 25 full-time employees.

As you will see if you watch my presentation, I have a long list of features that I want to see in Dyalog before I retire – and since everything takes longer than I think, I expect to be around for quite some time! Uncharacteristically, both the first and the last talk mention money: Gitte introduces “The APL Fund”, which will allow successful APLers to contribute to the future growth of APL, and Jada speaks about the new prices for Dyalog licences (effective from 01 January 2024). Except for an initial adjustment when Gitte and I joined Dyalog Ltd, the price of a licence has not changed in the 19 years that Gitte and I have been with the company (don’t worry, they are not changing significantly now unless you are still running a 32-bit version!).

I hope you enjoy watching the first set of recordings from Dyalog ’23!

——————————————

This week’s videos:

Materials for all presentations can be downloaded from the Dyalog ’23 webpage.

Dyalog ’23 Day 5: The End, Yet Still Much More to Do

In his second presentation of the week, Brandon Wilson relayed some of his experiences as a relative newcomer to APL and Dyalog. Having heard that most users learn APL through an apprentice model in which they enter an organisation and are taught by already experienced users, he sought out further help to learn array programming beyond the toy problems that are explored in introductory materials. He urged Dyalog and the APL community to find a way to fill the gap for self-learners to be able to fulfil the Iverson promise, to reap the benefits of notation as a tool of thought in larger applications, and to learn how to map array thinking to their own problem domains.

Kamila talks about her experience this summer at Dyalog

Kamila Szewczyk is the second of Dyalog Ltd’s summer interns. Her primary task was implementing APL Array Notation in the interpreter. She also had lots of great ideas that she has been able to try in internal experimental builds of the interpreter, such as automatic numerical differentiation, the obverse operator as seen in the J language and a monadic inner product where, for example, -.×D computes the determinant of an array D.

Rich shows an interface from Dyalog to Vega-Lite

Rich Park has been exploring data visualisation with Dyalog. In particular, he has been seeing what it would be like to use Vega-Lite – a library inspired by the Leland Wilkinson’s Grammar of Graphics – to visualise data from APL. As well as this Dyalog to Vega-Lite interface, he mentioned that The Carlisle Group has also been exploring similar covers for SharpPlot in their Playfair project; it is exciting to see new work on data visualisation from the APL community.

In the last of the presentations, Stine Kromberg presented some of her thoughts moving forward as the future Managing Director (CEO) of Dyalog Ltd. Although she is not an APLer, she has been around APL all of her life and we feel secure that she understands the business and the people involved…and Gitte says she can call on her for advice for a long time to come! Of course, there has been a lot of new growth at Dyalog Ltd recently, and there are some changes required to co-ordinate the growing team, but Stine’s focus is on staying flexible and open-minded to meet future challenges and support the next generation of Team Dyalog and APL users. New administrative assistant and internal legal reviewer Jada Andrade explained the upcoming simplification of our licence terms, offering a new annual developer licence with access to all supported platforms.

Stine talks about the future of Dyalog

The user meeting concluded with a choice of three workshops; many delegates lamented the lack of a time machine to be able to attend all the sessions! The Testing APL Systems workshop gave participants a look into techniques and best practices for testing and showed some of the existing testing frameworks, such as APLTeam’s Tester2 or the lightweight method shown in Stefan Kruger’s book. In the workshop on Leading Axis Theory and Practice, participants were guided on how to think about arrays in terms of cells (a type of sub-array) and use the rank operator with dyadic transpose to apply any function to parts of data. The third workshop had participants looking at handling files, from some of the nuances of reading text files – much of the time hidden from users of system functions – to functions for copying files and listing the contents of directories.

It’s been another fantastic week, and we’ve really enjoyed getting to know all of you who joined us to Elsinore. There is a strong sense of reinvigoration and revitalisation that comes with face-to-face meetings with the people who we love to work with and support, both newly-hired APLers and familiar faces, and it’s always wonderful to hear about all the growing businesses and new areas that APL is expanding into. We’re already looking forward to seeing you again in Glasgow next year for Dyalog ’24!

Today’s presentations (links to recordings will be added as they become available):

Dyalog ’23 Day 4: So Many Problems to Solve

We started Wednesday with an update to the co-dfns project by Aaron Hsu. Aaron is trying to make APL more accessible to more people for tackling more problems. He explained how version 4 focusses on good performance on GPUs and detailed error reporting – including a parser that can be used for static analysis of APL code outside of Co-dfns – and how version 5 intends to target more platforms, improving integration of APL in other systems. There are even rumours of a JavaScript backend on the horizon! Dyalog available in the browser, wherever you go.

Brandon Wilson presents the challenges of parsing YAML

Brandon Wilson is a relative newcomer to APL. Although his main interest is in AI safety, he has significant experience in mainstream computer systems. This is part of what made him decide to write a YAML (YAML Ain’t Markup Language) parser in APL. Interestingly, most of the existing YAML parsers in use today fail some part of the test suite. This speaks to the complexity of the task and how there are many interactions between different parts of YAML that are not obvious. Brandon is hoping that writing a complete parser the APL way will lead to insights into the YAML specification that he can give back to the YAML community to help the specification developers better communicate what is needed to other parser maintainers.

Next, Josh David highlighted the huge demand for statistics in data science, machine learning, and the increase of data-driven decision-making in business. Although data preparation is easy in APL, he noted the lack of ready-made code for doing statistics. Simple summaries and linear regression take just a few primitives, but Josh showed us a couple of libraries for doing more complex statistical analysis. He demonstrated rapid iteration on multiple linear regression using KokoStats by Dr. Bill Koko, performing multiple tests and seeing the impact of the selected data on the predictive power of the regression model. In Professor Stephen Mansour’s TamStat package, the use of operators reduces the overall number of functions that users need to memorise, and a cross-platform graphical interface makes a great environment for exploring and learning statistics.

Jesús Galan Lopez returned to expand on something that he mentioned in his previous presentation – the modelling of grain growth in solid materials. Students at his university were tasked with reproducing models from published research. They wrote their solutions in Python because it was familiar to them, but Jesús wanted to see how array programming would compare. He found that his APL solution was generally shorter, cleaner, and faster. Of course, he had to compare more like-for-like programs by trying his solution in NumPy as well, and he found Dyalog had comparable performance.

Grand Prize winner Andrea Piseri

Then it was time for the presentation of prizes to winners of this year’s APL Problem Solving Competition. Brian Becker gave a brief history of the competition and overview of the contest website (which uses Dyalog-grown tools). He also announced future changes to the competition, such as quarterly sets of Phase-1-style one-liner problems. Gitte then presented certificates to the student grand prize winner, Andrea Piseri, and professional winner, Alexander Block.

Alexander was first to introduce himself – he is an actuary using APL to solve problems, working in insurance companies in Germany – and talk us through a couple of his solutions. Having used Haskell, he is a big fan of point-free (tacit) programming, and liked his use of the over operator () in his solution to the Risk attack problem from phase 1 (problem 5).

Professional winner Alexander Block

Andrea Piseri is a mathematics student with a particular interest in abstract algebra and mathematical logic, as well as a programming language enthusiast. Coming from the functional programming world, Andrea first solved the DNA reading frames problem (phase 2, problem 1, task 5) using the “flatmap” pattern, but then came up with another solution leveraging comparison and interval-index to process the whole input at once. When tackling the “make change” problem (phase 2, problem 2, task 3) he was surprised to find APL was not so opinionated and that he could quite easily map iterative and recursive patterns from Haskell onto dfns.

This afternoon was the annual Viking Challenge, and this year the team from Midgaard Event set up a thrilling mystery in which we were split into teams to solve a variety of puzzles. The individual puzzles offered a range of challenges to suit all participants, with the ultimate challenge being to piece clues together in a process of elimination. There was temptation to write an APL program to solve the problem, but it was resisted as nine of the twelve teams managed to work out the solution with pen and paper. Eyes rolled with chagrin all around the auditorium when it was announced that the winning team was the team that included both Gitte and Stine!

The winning team of this year’s Viking Challenge

Today’s presentations (links to recordings will be added as they become available):