Home Page Register Prices Presentations Workshops Venue Directions

Dyalog Presentations

D01: Welcome to Dyalog '19 summary
Gitte Christensen, Managing Director (CEO)

Dyalog Ltd's CEO opens the user meeting.

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

In accordance with tradition, Morten will look briefly back over his shoulder before turning his gaze to the future and providing some predictions regarding the road that lies before Dyalog and users of Dyalog APL.

D03: Cor(e) Blimey! What's He Up To Now? summary
John Daintree

.NET is Dead. Long live .NET!

The .NET Framework ends its life at version 4.x. In 2020, .NET 5 (based on .NET Core) will be released. We'd better get started...

D04: Tacit Techniques with Dyalog version 18.0 Operators summary
Marshall Lochbaum

"Tacit" programming is a paradigm in which the programmer, rather than writing a dfn or tradfn that explicitly references arguments, builds a single derived function and relies on operators and trains to control the flow of arguments. While purely tacit programming is best used only for recreational confusion, everyone uses derived functions. Marshall intends to show how tacit programming can actually help organise your code and reduce complexity. This talk also introduces three new operators to be released with Dyalog version 18.0 which will prove crucial to writing clear tacit code: Atop (), Over () and Constant ().

D05: Link summary
Morten Kromberg and Adám Brudzewsky

The Link system, prototyped by Morten for version 17.0 in 2018 and then substantially rewritten by Adám in 2019, creates an invisible bond between the active workspace and one or more folders in a file system. Each function, operator, namespace or class is linked to a source file. Selected arrays, which are considered to be part of the source code of the application, can also be included in the link. Changes on either side of the link are immediately copied to the other side. The result is that – without changes to how APL prototyping, development and maintenance is done – APL source code can be brought under the control of mainstream editors, source code management systems, and other development tools.

D06: Cross-Platform Configuration Files summary
Richard Smith

Configuring the interpreter currently requires a mix of registry entries, environment variables and command-line options. We are at the early stages of designing a portable, human-readable and editable text file format that will greatly simplify the tasks of configuring the interpreter, setting different configurations for different applications, and moving the configurations between platforms. Richard will present an overview of what you might expect in next year's release of Dyalog.

D07: Shared Code Files summary
Geoff Streeter

Shared Code Files (.dwx files) allow code to be called without fully loading the workspace that contains it; code and data is only loaded on demand. This improves the performance of large applications while reducing their memory consumption and initialisation time. Geoff will explore the gestation, development and usefulness of Shared Code Files.

D08: Is it Christmas Yet? summary
Richard Smith

APL can easily answer that question: 12 25≡2↑1↓⎕TS

Sadly it will probably tell you it's not, but how might you calculate how long you have to wait? Richard will take you on a tour of dates and times and along the way will answer that question, discuss the best way of storing a large number of times and dates in an array, will finally make sense of the timestamp in the result of ⎕FRDCI, and will find out the time in Helsinki – which he will display to you in Welsh.

D09: Implementing Reduction summary
Marshall Lochbaum

Marshall provides an overview of the techniques used to quickly implement arithmetic and logical reductions on simple arrays. Topics include classifying reductions by shape, reordering reductions, vectorisation and shortcutting.

D10: What's New with HTMLRenderer? summary
Brian Becker

Some applications need only a simple user interface, popping up a window for the user to enter a bit of data or displaying messages back to the user. Others applications may need a fully interactive, rich, graphical user interface. HTMLRenderer can address both needs, across every platform where Dyalog runs.

Introduced with Dyalog version 16.0, HTMLRenderer offers the Dyalog user the ability to develop graphical user interfaces on all Dyalog APL platforms – Microsoft Windows, Apple macOS, Linux and even the Raspberry Pi. Dyalog version 17.1 adds many new features and updates to HTMLRenderer based on user feedback and our own experiences.

In this session Brian will provide a review of HTMLRenderer, demonstrate many of its new features, and present some of the tools and frameworks that are available or in development for use with HTMLRenderer.

D11: Easy Cross-Platform GUI Creation summary
Josh David

Wouldn't it be nice to have a single function to generate an operational GUI? Josh introduces a utility library that enables the cross platform creation of simple recurrent GUIs.

D12: T.B.A.
Nathan Rogers


D13: Uncle Andy's Fireside Chat v5 summary
Andy Shiers

Back by popular demand, Andy takes us on another venture down the lesser-known paths of Dyalog APL, showing us how to take advantage of some of the more obscure bits of functionality and avoid common gotchas.

D14: Molecular Dynamics in APL summary
Richard Park

Molecular Dynamics (MD) is a physics simulation paradigm known for requiring high performance computers and cleverly-constructed algorithms in compiled languages. Learning and developing for MD frameworks can be demanding in terms of both the physics and computational knowledge involved. Richard shows how fun and relatively intuitive it can be to build physics simulations from scratch.

D15: The APL Problem Solving Competition – How, What and Who summary
Brian Becker

This year, for the first time, Dyalog used an APL-based server to run an interactive web site for the annual APL Problem Solving Competition, which allowed interactive experimentation while solving some of the problems. Using technologies including MiServer, SQAPL, HttpCommand, GitHub and Docker, we were able to deliver a quality application that resulted in some of the best entries we've ever seen. Brian provides an overview of the architecture of the competition website, shares some data and reactions, and introduce the winners, culminating in the award ceremony for the grand prize winner and winning professional entrant.

D16: Creating your first Dyalog Jupyter Notebook summary
Richard Park

Jupyter Notebooks turn Donald Knuth's Literate Programming into a pragmatic tool for explaining code to other humans. Richard shows you how to use the Dyalog Jupyter kernel with markdown and LaTeX to take the expressiveness of APL, combine it with your finest prose and mathematical expression, and clearly express your solutions with executable code.

back to top


User Presentations

U01: Feeding Children with APL summary
Tommy Johannessen Jersie Data ApS (Denmark)

Tommy tells us how APL helps feed children in Denmark, in the form of a Dyalog application that runs under Microsoft IIS. For 15 years, he has survived changing business and technical requirements, and a quarter of a million kids have been fed!

U02: A Git Workflow for Dyalog APL summary
Paul Mansour, The Carlisle Group (U.S.A.)

Git is great, but the newcomer can easily drown in a sea of commands and options. Git doesn't tell you when or why to branch, when or why to merge or rebase, how to version your project or prepare a release. AcreFlow is a radically simplified Git workflow that answers these questions. It is implemented in Dyalog APL so you can branch, commit, and put out new versions directly from the APL session.

U03: Lessons for the Masses from the Trenches of Co-dfns summary
Aaron Hsu, Indiana University (U.S.A.)

Besides representing an easy way to do GPU programming in APL, the Co-dfns compiler also represents a novel, and somewhat stark, lesson on the nature of software performance, implementation and design. The compiler itself has always been designed not only to perform well on yesterday’s hardware, but also on the fine-grained parallel hardware of today and tomorrow, and to do so without the assumed costs of implementation and human-labour overheads usually associated with creating high-performance parallel code in more mainstream programming languages.

Recent benchmarking of the Co-dfns compiler has revealed much more than could have been originally anticipated when the project began, and the lessons on software design and implementation are as hopeful as they are shocking. The innovative philosophy of design of the Co-dfns compiler presents practical vectors of attack against the ever-growing problem of Software Obesity, in which software is not only difficult to write and debug, but also difficult to get performing as well as it could.

Fortunately, these lessons are not specific to the Co-dfns compiler, or even its type of program. Instead, these lessons are easily extrapolated to apply to design principles that have permeated the entire swath of programming problems and industries.

U04: TamStat 2019 summary
Richard Park

Stephen Mansour has presented his APL-based statistics framework, with a focus on teaching statistics to undergraduates, at several previous user meetings. This year, Richard presents the latest updates to the TamStat graphical interface with examples.

U05: TamStat 2019 – Technical Update summary
Michael Baas

Michael presents a more technical view of TamStat's implementation and demonstrates a few interesting details behind recent features.

U06: An Update on Mystika summary
Erik Wallace, Harbin Engineering University (China)

At Dyalog '18, Erik introduced the Mystika project, which includes a big number library, and cryptographic suite written in APL. In this presentation Erik demonstrates some of the new features of Mystika and presents some preliminary timing statistics. He also explains why the big number library might be useful outside cryptography to other users of the Dyalog interpreter.

U07: Web Enabling SimCorp Dimension summary
Stig Nielsen, SimCorp (Denmark)

As our customers are demanding services rather than software installed on premise, SimCorp has started the journey to transform SimCorp Dimension into a 3-tier solution, preparing for launching a full web-frontend version of the system. SimCorp Dimension consists of both APL and C# code, where APL is the "driver" for the entire system. Stig will take you through one of the major architectural changes that will take advantage of the "multi-concurrency" features of Microsoft.NET while at the same time continuing to use APL where much of the business logic resides.

U08: Getting to Know Each Other by…Sharing Code summary
Francesco Garue, SimCorp Italiana (Italy)

Since APL Italiana became part of SimCorp two years ago, there have been many opportunities to co-operate; we mainly shared knowledge, both between consultants and programmers. Francesco's team has been the only one, until now, to take part in a pioneering project that involves sharing a big chunk of code. He describes the origin of this project, a few bumps along the way and the current architecture of the solution.

U09: A Transaction-based Portfolio Management System in Dyalog-APL using .NET summary
Claus Madsen, FinE Analytics (Denmark)

Scrinium is a portfolio management system that can handle a comprehensive range of assets – Shares including Investment Companies and Holding Companies, Mortgages, Municipal and Corporate Bonds, Mutual Funds, Hedge Funds, Options, Warrants, Currency and Commodity based instruments, Subscription Rights, the list goes on. The system can compute returns (SR, ANN, TWR), risk (Std, VaR, Duration, Convexit, Delta, Gamma, Sharpe) and relative risk (Alpha, Beta, Jensens Alpha, Tracking Error) and deals with benchmarks and on-boarding as well as real-time calculations.

In this presentation, Claus will focus on the implementation in .NET using Dyalog APL, including speed issues and design of features.

U10: qWC – A Cross-platform Emulation of ⎕WC summary
Chris Hughes and Michael Hughes, MJH Software Services Ltd (U.K.)

⎕WC enables you to create GUI objects but is specific to Microsoft Windows; qWC allows you to emulate its behaviour across other platforms. Chris and Michael's update on the qWC prototype that they introduced at Dyalog '18 includes:

  • a general recap on the ideas and principles behind the qWC emulation
  • a progress report
  • a demonstration of some of the new features
  • the plan for the future and a road map

U11: Why Teach APL? The Art of Teaching Without Teaching summary
Roberto Minervini with Pietro Pio Palumbo, Gabriele Meroni and Alessandro Iaselli, Liceo Scientifico GB Grassi Saronno (Italy)

"I am a teacher, but I do not like teaching. In fact, I do not teach. The art of teaching without teaching is my way." (Tetsuya Miyamoto, the inventor of KenKen puzzle)

He also said that the essence of mathematics is to keep thinking. Ken Iverson said that mathematical notation is a tool of thought. From this, to think a solution to a problem using APL could be the best way to progress yourself in mathematical learning. Travel with Roberto and his students through puzzles, problem solving, APL coding and teaching.

U12: Young APLers Panel
Host: Stephen Taylor


U13: How I Won the APL Problem Solving Competition summary
Jamin Wu Monash University (Australia)

Jamin Wu is the grand prize winner of the eleventh annual APL Problem Solving Competition. Following the award ceremony, Jamin describes his experiences of APL/Dyalog and tells us how he managed to master enough of it to win the competition.

U14: APLcart: A Novel Approach to Finding Your Way in APL summary
Adám Brudzewsky

There is plenty of documentation about what different parts of APL do. For example, in the IDE, you can just press the F1 key while the caret is pointing at a primitive or system function. But what if you know what you want to do, but don't know how to do so? Enter APLcart; the largest ever collection of short APL phrases.

Adám presents the interface and demonstrates how you can use APLcart to become a more effective APLer. Just don't upset it!

U15: The Irma Story summary
Tomas Gustafsson, Stormwind Ab Oy (Finland)

M/S Irma was lost in a sudden autumn storm between Finland and Sweden 50 years ago. Despite the massive search efforts, said to be the biggest ever in Finnish history, the Irma accident became a mystery. No distress signals were heard during that fatal autumn night, and Irma had chosen the weirdest routes. Everyone on board perished, including a two-year old boy and three wives of crewmen. Only one body was ever found, days later, at an unexpected location. Wreckage from the ship was discovered in the archipelago at multiple contradictory spots.

Irma was found in May 2019 by a group of enthusiasts. The reverse drifting patterns calculated using Dyalog played a crucial role in the success of the search.

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