Home Page Register Prices Workshops Venue Directions

A code starting with "SA" indicates that a workshop is scheduled for Sunday morning, "SP" indicates Sunday afternoon and "TP" indicates Thursday afternoon.

Workshops have significant time set aside for participants to experiment with the subject matter.

Some of the workshops require materials that should be installed on your laptop prior to attendance... Pre-requisites


SA1: Source Code Management with Git, SVN & Dyalog APL – Part 1: Installation + Demos summary
Morten Kromberg and Adám Brudzewsky

Storing APL source code in text files (as opposed to APL-specific formats like component files or saved workspaces) allows the use of a growing collection of excellent tools for source code management (SCM), building, testing and distributing applications. This workshop will provide an introduction to the most popular tools use within the Dyalog user community, including:

  • Git, GitHub and (if workshop participants request it) SVN for source code management
  • Link for synchronisation of changes between source files and the active workspace
  • Acre Desktop for project management
  • AcreFlow for simple, Git-based, workflow management

The workshop is split into two sessions:

  • SA1 – Installation and Demos: we will help with installation and demonstrate the basic functionality of each tool, and show how to use them together.
  • TP1 – Bring Your Own App: we will start with a brief recap of some key features but will mostly provide an opportunity to get started with moving your own source code into text files and setting up a work environment, with experienced users in the room.

SA2: A Decade of APL Extensions – Grouping and Processing Text summary
Nicolas Delcros and Richard Smith (asst. Marshall Lochbaum and Richard Park)

Richard and Nic take an in-depth look at some of the tools for grouping and processing text. No prior knowledge is expected.

⎕R and ⎕S use standard regular expressions (also known as search patterns) to provide powerful text processing capabilities to APL. They might look daunting at first but, by gradually building up from the basics, you will learn how to really benefit from their power within your applications. The workshop will provide a gentle introduction to regular expressions, and take a comprehensive look at how ⎕R and ⎕S make use of them.

⍺⊂⍵ and ⍺⊆⍵ are the two historical flavours of array partitioning. The workshop will illustrate their subtle differences using typical text partitioning use cases.

SA3: Introduction to HTMLRenderer summary
Brian Becker and Josh David

Introduced with Dyalog version 16.0, HTMLRenderer is a Dyalog object that enables you to build cross-platform user interfaces. You write code once, then run it wherever Dyalog APL runs – on Microsoft Windows, macOS, Linux, even the Raspberry Pi.

HTMLRenderer uses the Chromium Embedded Framework (CEF) to render HTML, which allows you to display formatted output including graphics on any platform – and implement simple input forms. With the addition of Cascading Style Sheets (CSS) and JavaScript, you can implement highly interactive user interfaces of any level of complexity.

In this workshop you will:

  • learn about the HTMLRenderer object – its properties, methods, and events
  • perform hands-on experimentation with HTMLRenderer and build a small application
  • explore some of the utilities and frameworks developed using HTMLRenderer
  • learn debugging techniques

No knowledge of HTML, CSS or JavaScript is required for this introductory workshop.

SP1: Getting started with Linux, Docker and Cloud Computing summary
Morten Kromberg

Providers of "cloud computing" allow you to rent any quantity of (virtual) hardware on demand. Docker containers provide an easy way to get the software that you need onto any number of virtual machines and keep it up-to-date. Most cloud computing infrastructure and tooling is designed with Linux in mind. If you would like to learn how to develop Dyalog applications on any platform, deploy, manage and test it on Linux in the cloud, this workshop will provide you with a few recipes for getting started.

No prior experience with Linux is required. Using the tools introduced in workshop SA1 is recommended, but not a requirement.

SP2: A Decade of APL Extensions – Trains and High Rank Operations summary
Adám Brudzewsky and Marshall Lochbaum (asst. Richard Park, Richard Smith and Nicolas Delcros)

Marshall and Adám take an in-depth look at modern ways to apply functions. No prior knowledge is expected.

Trains (atops and forks) provide a succinct way to express common code structures. They might look cryptic at first but, by gradually building up from the basics, you will learn how to read them and benefit from their power of expression. The workshop will provide a comprehensive introduction to trains and includes plenty of hands-on time to exercise your new skills.

The rank operator () offers full control over how your functions are applied to arrays of any shape. The workshop will teach you how to wield its awesome power.

SP3: qWC – Freeing ⎕WC from Microsoft Windows to Cross-platform and into the Cloud summary
Michael Hughes and Christopher Hughes

At Dyalog '18, MJH Software Services presented ⎕WC on the Web. MJH Software Services plan to market this project as a product in the near future (hopefully beta by Christmas 2019 and first release by Spring 2020). This workshop is your chance to play with an alpha copy along with the authors, and to influence the order in which things are implemented going forward.

You will be able to take a copy of the latest emulation away with you; updates will be available to download throughout the project until the final beta build. All alpha and beta versions prior to the first release will be free to the workshop attendees; but each will be time limited. Basic support will be offered to workshop attendees by MJH Software Services throughout the stages to the first release.

The workshop will be mostly hands-on, with explanations where necessary. Time will be allowed during the workshop for discussion of issues raised by the usage of the emulation and enhancement/inclusion requests. During the workshop you will build a simple cross-platform ⎕WC application and, optionally, make your form look like a standard web page simply by setting a switch.

TP1: Source Code Management with Git, SVN & Dyalog APL – Part 2: Bring Your Own App summary
Morten Kromberg and Josh David

This workshop is a continuation of workshop SA1; we will start with a brief recap of some key features but will mostly provide an opportunity to get started with moving your own source code into text files and setting up a work environment, with experienced users in the room.

Attendance of SA1 is necessary unless you already have some knowledge of the tools. If you already know a bit about them and just want the hands-on workshop part, then TP1 alone is fine.

TP2: Dyalog APL Drop-In Clinic (Not a Workshop – no need to sign up!) summary
Andy Shiers, John Daintree and friends

This is not a workshop, but we have put some specific time aside for you to come and talk to us without other distractions. You are always welcome to talk to any of us during the course of the user meeting, but at other times we might be busy doing other things.

The session will continue after the other workshops have finished so don't worry if you want to attend one of them…go to that workshop and pop in to see us afterwards.

We'll try to answer your questions and sort out your problems, but we might need to go away and think about your issues and then continue the discussion at a later time. We don't guarantee to solve your issue there and then, but we can try – and that can make a big difference!

TP3: Code Golf – Learn Cutting-Edge APL summary
Adám Brudzewsky and Marshall Lochbaum (asst. Richard Park, Nicolas Delcros and Richard Smith)

Back by popular demand! Join us for a light-hearted but deadly serious session of code golf – the challenge of writing code to solve a problem using the fewest characters possible. Exercise your own skills and collaborate with the entire group on the challenges posed. Our problems have been selected to encourage the use of recently-added language features.

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