Home Page Register Prices Workshops Venue Directions

Some of the workshops require materials that should be installed on your laptop prior to attendance – details will be added to these webpages soon

You are very welcome to change which workshop you attend at the last moment, as long as there is space in the workshop room. However, before doing this, please check that you meet the pre-requisites for the workshop that you are joining.

Workshops

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

Key to workshop identifiers:

  • "SA" – workshop is scheduled for Sunday morning (AM)
  • "SP" – workshop is scheduled for Sunday afternoon (PM)
  • "TA" – workshop is scheduled for Thursday morning (AM)
  • "TP" – workshop is scheduled for Thursday afternoon (PM)

SA1: Problem Solving with APL summary
NOTE: This workshop will be repeated as workshop TP1

APL has a wide range of techniques that can be used to solve a given problem, and its terseness and versatility makes it feasible to try different approaches to see what works best in a particular scenario. In this workshop, we will solve a variety of problems and review our solutions to enhance our problem solving skills together.

SA2: Performance Basics summary

There are a few simple heuristics to consider when it comes to performance in Dyalog APL. This workshop is targeted at novice APLers and focuses on the fundamental aspects of the array model and the interpreter that will considerably affect performance when writing code. We will learn how to profile functions to find hot-spots (especially slow parts of code), and how to write the same computations in a more efficient manner - using flat arrays, specially optimised spellings ("idioms" in the documentation) and fewer computations overall where possible.

SA3: Web Services summary

A web service is a software system designed to enable communication and interoperability between different applications or systems over the internet. It provides a standardised way for different software applications to exchange data and perform various functions. Web services are commonly used for a wide range of purposes, such as integrating different systems, sharing data between applications, automating business processes, and building distributed applications. Web services provide a scalable and platform-independent way of enabling communication and data exchange between disparate software systems. These functionalities can be accessed and utilised by other software applications, irrespective of the programming languages or platforms they are built on.

In this hands-on workshop, you'll learn how to:

  • consume web services using HttpCommand.
    HttpCommand is a utility used to issue HTTP requests and receive responses. It can interact with practically any web service. We will:
    • cover the most commonly used features of HttpCommand
    • learn how to develop and debug web service requests
    • access a variety of web services including web services that require authentication
  • provide web services using the Jarvis web service framework.
    Jarvis makes it easy to make many Dyalog applications available over the internet. We will:
    • develop a simple web service in 5 minutes
    • cover the essential features of Jarvis
    • examine and experiment with a sample web service
    • demonstrate how to access our web service from a browser and using HttpCommand

Keywords: Web services, HttpCommand, Jarvis

SP1: Tacit Programming in Dyalog summary
NOTE: This workshop will be repeated as workshop TA1

In tradfns, arguments a function must be named in the header. In dfns, they are named for us ⍺ and ⍵. With tacit programming, we express a function directly as a composition of other functions, without reference to the arguments – the arguments are handled implicitly (tacitly!) according to syntactic rules. This can lead to terse and memorable function expressions to be drawn upon when needed, just like other idioms. Learn how to read, write and use function trains and compositions operators in this hands-on workshop.

SP2: Selected Primitives summary
NOTE: This workshop will be repeated as workshop TA2

Dyalog has been adding primitives to APL at a steady, but careful, pace. If you would like to get a better grasp of the newest functionality, then this workshop is for you! We will go over functions like Tally, Where, Interval Index, Unique Mask, and Left/Right/Same, in addition to operators like At, Constant, and Key. Plenty of exercises will be provided.

SP3: Migrating Your Win32 GUI to Linux, macOS, and the Cloud summary

Users, IT departments and auditors are pushing APL developers to move existing applications to the cloud, to simplify deployment, improve security and increase accessibility. If you have a Win32-based user interface (using ⎕WC objects), it may be valuable to preserve as much of the old user interface as possible, rewriting only what is required to give your system a fresh look – if that is required. In this workshop, we will demonstrate how existing Windows desktop applications can be converted to web applications with a minimum of effort.

TA1: Tacit Programming in Dyalog summary
NOTE: This workshop is a repeat of workshop SP1

In tradfns, arguments a function must be named in the header. In dfns, they are named for us ⍺ and ⍵. With tacit programming, we express a function directly as a composition of other functions, without reference to the arguments – the arguments are handled implicitly (tacitly!) according to syntactic rules. This can lead to terse and memorable function expressions to be drawn upon when needed, just like other idioms. Learn how to read, write and use function trains and compositions operators in this hands-on workshop.

TA2: Selected Primitives summary
NOTE: This workshop is a repeat of workshop SP2

Dyalog has been adding primitives to APL at a steady, but careful, pace. If you would like to get a better grasp of the newest functionality, then this workshop is for you! We will go over functions like Tally, Where, Interval Index, Unique Mask, and Left/Right/Same, in addition to operators like At, Constant, and Key. Plenty of exercises will be provided

TA3: Namespaces in Dyalog summary

In Dyalog, namespaces are a convenient way to organise a workspace. Namespaces simplify application development by allowing you to give the workspace a structure; they can be used as containers for objects, data and for code modules. Whether classes are implemented in APL, or external classes like ⎕WC GUI objects or classes from the Microsoft .NET framework, each object resides in a namespace. In this workshop we demonstrate the value of namespaces, showing how they have been integrated into the APL paradigm, their power and their limitations.

TP1: Problem Solving with APL summary
NOTE: This workshop is a repeat of workshop SA1

APL has a wide range of techniques that can be used to solve a given problem, and its terseness and versatility makes it feasible to try different approaches to see what works best in a particular scenario. In this workshop, we will solve a variety of problems and review our solutions to enhance our problem solving skills together.

TP2: Working with Non-APL Data Sources summary

The interpreter provides several built-in functions to import, export, and process data in files, to manage the host file system and to exchange data with external systems. These are invaluable tools in their own right, and can be the building blocks for powerful platform-independent APL applications. This workshop will help you get set up and give you experience using data from a variety of sources and in different formats, such as from text files and databases.

TP3: Link and the Basics of APL Source in Text Files summary

The Dyalog APL community is transitioning from binary formats to Unicode text files as the preferred mechanism for storing the source code of APL applications. Dyalog APL includes a tool known as Link, which maintains the connection between the names in the active workspace and the corresponding source files. This workshop is aimed both at users who are new to Dyalog APL and wondering how to start a project, and existing users who would like to transition to using text source.

  • Part 1: Getting started with Link
  • Part 2: Moving an existing APL application to Link
  • Part 3: Project, Package and Source Code Management tools: Git, Cider, Tatin and NuGet

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