Dyalog: the tool of thought for expert programming
  LO-Skolen Conference Centre in Denmark


Dyalog '12 has now finished

We're posting the video of each of the sessions as soon as we have processed it; in due course we'll put links to each of them next to the abstracts below. However, for now, please click here for links to all the completed videos.

Dyalog '13 will be held at Embassy Suites Deerfield Beach, Florida, USA, from 20th to 24th October 2013.
More details are available here; if you'd like to be informed when more information is available, please drop us an email.


Dyalog '12 was held at Konventum (previously LO-Skolen) in Elsinore, Denmark, between Sunday October 14th and Thursday 18th October 2012

Below is the final programme for Dyalog '12; in due course we will add links to the videos and conference materials.

Dyalog ’12 Courses

APL is easy – it only takes a short time to become proficient enough with the language to translate ideas and processes into executable APL and get the computer to act as a valuable assistant.

The development of “Applications” is a craft that takes time to learn, it requires insight into many different disciplines, including databases, communications, user interfaces, security and other issues.

Most APL developers are domain experts in other areas than software development and after the initial introduction to APL it is not unusual to struggle with turning “functions” into “applications”.

This year, an important focus of the conference training courses is application development. The current selection of courses is the start of a portfolio of courses which hopefully will develop into a complete set of introductions to various programming topics, and documentation of “best practices” which can be used by newcomers to APL on the road to being Application Developers.

The courses will give basic introductions to each discipline and present practices that Dyalog considers to be the best, at this point in time. They are not only intended to be useful to newcomers to APL but also to old-timers who want a “brush up”. We would also like to encourage experienced APL software developers to take part in the courses and help us make the discussions around each topic better and broader.

Dyalog '12 course schedule

C1 - Managing External Data I - Gitte Christensen

C2 - User Commands - Dan Baronet

C3 - Tuning Workshop - Roger Hui / Morten Kromberg

C4 - Web Applications I - Brian Becker

C5 - Managing External Data II - Gitte Christensen / Bjørn Christensen

C6 - Namespaces - John Daintree

C7 - Starting a New Application in Dyalog APL- Morten Kromberg / Dan Baronet

C8 - Web Applications II - Brian Becker

C9 - Managing External Data III - Gitte Christensen / Dan Baronet

C10 - Writing testable GUI - Kai Jaeger

C11 - Tuning Workshop (repeat) - Roger Hui / Morten Kromberg

C12 - Secure Applications - Brian Becker / Bjørn Christensen

Dyalog ’12 Conference Programme

Sunday October 14th



08:30 - 09:30


09:30 - 12:30

Courses and Workshops (Coffee when convenient)

12:30 - 13:30


13:30 - 16:30

Courses and Workshops (Coffee when convenient)

17:00 – 18:00


18:30 – 19:30


20:00 – 21:00

The Story of tryapl.org (D13)
Brian Becker and Morten Kromberg, Dyalog Ltd

Monday October 15th




08:30 - 09:30


09:30 - 10:15

Welcome! (D1)
Gitte Christensen, Managing Director (CEO), Dyalog Ltd

10:15 - 11:00

Technical Keynote (D2)
Morten Kromberg, Technical Director (CTO), Dyalog Ltd

11:00 - 11:30


11:30 - 12:30

Segmented Scans and Nested Data Parallelism (I14)
Andrzej Filinski, Associate Professor, Department of Computer Science, DIKU (DK)

12:30 - 13:30


13:30 - 14:15

Introducing Dyalog Version 13.2 (D3)
John Daintree, Chief Architect, Dyalog Ltd (UK)

14:15 - 15:00

Potential Version 14.0 Language Features (D4)
John Scholes and Roger Hui, Dyalog Ltd (UK + Canada)

15:00 - 15:30


15:30 - 16:15

An Array Editor for Dyalog APL (I15)
David Liebtag, davidliebtag.com (USA)

16:15 - 17:00

Building Web Apps in Dyalog APL(D5)
Brian Becker, APL Tools Group Manager, Dyalog Ltd (USA)

17.30 - 18:30


19:00 - 20:00


20:30 - 21:30

State-free Programming (D6)
John Scholes, Dyalog Ltd (UK)

Tuesday October 16th




08:30 - 09:15

New SALT features and User Commands (D7)
Dan Baronet, Dyalog Ltd (Canada)

09:15 - 10:00

Fire (U16)
Kai Jäger, APL Team (UK)

10:00 - 10:30


10:30 - 11:15

Organizing Disorganization (U17)
Elena Paviotti, APL Italiana (Italy)

11:15 – 12:00

When Excel is Not Enough (I18)
Susie Wagner Bondorf (Denmark)

12:00 - 13:00


13:00 - 13.45

Working with Sparse Data (U19)
Lars Stampe Villadsen, SimCorp A/S (Denmark)

13:45 - 14.30

The Three Beaars: Basically, Every Array Allocation Reduces Speed (U28)
Robert Bernecky, Snake Island Research (Canada)

14.30 - 15.00


15.00 - 15.45

APL Coding Optimization for Application Programmers (U21)
Eugene Ying, Senior Software Developer, Fiserv Investment Services (USA)

15:45 – 16:30

Dyalog APL Benchmarks and Performance Enhancements (D8)
Roger Hui, Dyalog Ltd (Canada)

1700 - 18:00





Crackpot Files and Other Stories of Forensic Mathematics (I22)
Charles Brenner, Forensic Mathematician (USA)

Wednesday October 17th


Session A

Session B

08:30 - 09:15

Optimization of Parallel Multi-Digit Algorithms (U23)
Andriy Tereshchenko, Senior Developer, SimCorp A/S, Front Office (Ukraine)

Enhancements to Dyalog APL for UNIX (D9)
Andy Shiers, Dyalog Ltd (UK)

09:15 - 10:00

Three Blind Mice (U24)
Paul Grosvenor, Managing Director, Optima Systems (UK)

Visual Studio Integration (D10)
Liam Flanagan, Dyalog Ltd (UK)

10:00 - 10:30


10:30 - 11:15

Secure, High Performance Component Files using The Dyalog File Server (D11)
Morten Kromberg, Technical Director (CTO), Dyalog Ltd

11:15 – 12:15

Migrating from APL2 mainframe to Dyalog APL Windows (U25)
Peter Simonsson, Jonas Stensiö and Lars Wentzel, ADLEPA (Sweden)

12:15 - 13:15


13:30 - 15.30

Viking Challenge

16:00 - 16.45

Teaching APL - Fun and Games in Hawaii (U26)
Jerry Brennan (USA)

16:45 - 17.00

Prize Ceremony, Worldwide APL Contest 2012

17.00 - 17.45

How I won the Dyalog Programming Contest (U30)
Hayato Hashimoto, Kyoto University (Japan)


Time to dress up





Thursday October 18th




09:00 - 09:45

Optimisation Across Networks (U27)
Paul Grosvenor, Managing Director, Optima Systems (UK)

09:45 - 10:00

From Zero to a Bloomberg Power App in 21 days (U31)
Adrian Smith (UK)

10:00 - 10:30


10:30 - 11:15

Building an Android Application with an APL Computational Engine (U29)
Illse Nell and Danie Maré, Riskflow Technologies (South Africa)

11:15 – 12:00

APL & Raspberry Pi: At ARM's Length (D12)
Liam Flanagan and others, Dyalog Ltd (UK)

12:00 - 12:30

Closing Session
Team Dyalog

12:30 - 13.30


14:00 - 17.00


17:30 - 18:30


19.00 - 20:00


Dyalog Talks

(D1) Welcome! (Monday 09:30-10:15)
Gitte Christensen, Managing Director (CEO) back to top

(D2) Technical Keynote (Monday 10:15-11:00)
Morten Kromberg, Technical Director (CTO) back to top

(D3) Introducing Version 13.2 (Monday 13:30-14:15)
John Daintree, Chief Architect back to top

(D4) Potential Version 14.0 Language Features (Monday 14:15-15:00)
John Scholes (UK), Roger Hui (Canada)

Potential version 14.0 language features are described: forks, merge, .back to top

(D5) Building Web Apps in Dyalog APL (Monday 16:15-17:00)
Brian Becker, APL Tools Group Manager (USA)

So maybe this internet thing isn't a fluke after all... but writing web apps means you've got to learn HTML, CSS, SOAP, HTTP, and a lot of other acronyms, right? Not so! In this session Brian will show MiServer and SAWS, two APL-based tools that make it possible for APLers to easily develop and deploy web applications. MiServer is a web server written in APL that allows you to deliver your application to any platform with a web browser including PCs, laptops, tablets, and smart phones. SAWS is the Stand Alone Web Services framework and alleviates much of the complexity of providing and consuming web services. back to top

(D6) State-free Programming (Monday 20:30-21:30)
John Scholes (UK)

Frazzled? Seeking serenity? Come and unwind for half an hour in the tranquil world of definitions, where nothing changes ... back to top

(D7) New SALT features and User Commands (Tuesday 08:30-09:15)
Dan Baronet (Canada)

Want to know about the new features in SALT and User Commands added since version 13.1? This is where you'll hear all about them. back to top

(D8) Dyalog APL Benchmarks and Performance Enhancements (Tuesday 15:45-16:30)
Roger Hui (Canada)

We describe a suite of unit performance tests followed by some performance improvements available in v13.2, and finish with an amusing story. back to top

(D9) Enhancements to Dyalog APL for UNIX (Wednesday 08:30-09:15)
Andy Shiers, Chief Operating Officer

A sight-seeing trip around some of the newer features specific to Dyalog APL on UNIX, many of which are used by TryAPL and other web-serving APL applications. back to top

(D10) Visual Studio Integration (Wednesday 09:15-10:00)
Liam Flanagan (UK)

Visual Studio is an Integrated Development Environment (IDE) developed by Microsoft primarily used for the creation of applications on Windows platforms. This presentation discusses the improvements made to further integrate Dyalog APL in the Visual Studio eco-system allowing Visual Studio users to leverage the advantages of working with Dyalog APL. back to top

(D11) Secure, High Performance Component Files using The Dyalog File Server (Weds 10:30)
Morten Kromberg, CTO

Using APL component files over a local area network is often problematic due to low bandwidth, dropped connections, insufficient control over security, and poor performance of file holds and locks. The Dyalog File Server uses a client/server architecture similar to the SHARP APL or STSC SHAREFILE systems on “mainframe” computers. Because all file I/O is performed on exclusively tied files on the server, multi-user performance, security is absolute, and overall reliability is significantly improved. A browser-based front end allows real-time instrumentation and management of the file system. back to top

(D12) APL & Raspberry Pi: At ARM's Length (Thursday 11:15-12:00)
Liam Flanagan (UK)

ARM processors have been controlling our low power and embedded devices for almost 30 years. Now with the introduction of open operating systems like Android and Linux to the platform, it's quickly becoming hotbed for software development and consumption. This presentation deliberates the findings of research into porting Dyalog APL to various ARM-based platforms. back to top

(D13) The Story of tryapl.org (Sunday 20:00-21:00)
Brian Becker (USA), Morten Kromberg (DK)

At Dyalog’11, Joel Hough, the winner of the Programming Competition, mentioned that he had tried in vain to learn about APL by visiting tryapl.org, as he had successfully done similarly when learning other programming languages. On Sunday evening, we will tell the story of how we responded to his challenge. TryAPL is visited every day by users spread across the face of the globe - and once had 8,000 visitors over a single weekend. back to top

User Conference 2012

Invited Speakers and User presentations

(I14) Segmented Scans and Nested Data Parallelism (Monday 11:30-12:30)
Andrzej Filinski, Associate Professor, Department of Computer Science, DIKU (DK)

APL's vector-oriented programming model appears well suited for execution on SIMD-style parallel hardware, such as GPGPUs. However, some cross-element operations, such as scan or compress, appear inherently sequential because of cumulative data dependencies and even nominally independent computations, such as applying a complex (perhaps even recursive) function to each element of a vector, appear to require general MIMD-style parallelism, precluding efficient implementation on throughput-oriented, data-parallel hardware. This talk will sketch how a simple but non-trivial data-parallel algorithm for computing (nested) scans of associative functions can serve as the cornerstone of efficient, data-parallel implementations of a wide variety of seemingly non-uniform computations in array-oriented languages - obviously including, but not limited to APL. back to top

(I15) An Array Editor for Dyalog APL (Monday 15:30-16:15)
David Liebtag, davidliebtag.com (USA)

Dyalog version 13.2 will include an Array Editor that supports editing character, numeric, and nested arrays. The Array Editor display of arrays is similar to the output of the DISPLAY function. However, unlike DISPLAY, the Array Editor supports modifying the data. Data can be overtyped and elements can also be rearranged using copy, paste, and APL primitives. This presentation will include demonstrations of the Array Editor and some discussion of future enhancements. back to top

(U16) Fire (Tuesday 09:15-10:00)
Kai Jäger, APL Team (UK)

FiRe stands for "Find and Replace". Fire offers plenty of useful features making it easy to refine a search until you get exactly what you want. Fire's main feature however is the "Replace" part which offers precise control over what is going to be replaced. Fire is certainly helpful for any kind of programming task but is particularly useful when dealing with legacy code: improving code quality in a legacy system almost always implies search and replace, and Fire makes this significantly easier. back to top

(U17) Organizing Disorganization (Tuesday 10:30-11:15)
Elena Paviotti, APL Italiana (Italy)

Fighting the growing chaos in a growing company. back to top

(I18) When Excel is Not Enough (Tuesday 11:15-12:00)
Susie Wagner Bondorf (Denmark)

Two naïve and simple questions…
The national education curriculum of the nursing education prescribes 210 ECTS points (European Credit Transfer System) over 3.5 years of full time study.
As the newly employed Director of Nursing Studies at The Deaconess University College I asked myself the questions:

1. Do we actually provide each student with 12 lessons a week in the specified subjects?
2. How much does each lecturer lecture?

This was indeed more difficult to investigate than I ever imagined, but Dyalog APL was a great help and I got great insight into data and information needs. back to top

(U19) Working with Sparse Data (Tuesday 13:00-13:45)
Lars Stampe Villadsen, SimCorp A/S (Denmark) back to top

This presentation will illustrate some techniques used in SimCorp Dimension for representing sparse data, including the motivation for not using native Dyalog structures. The presentation will focus on storage methods, typical operations and performance and space impact for the application using sparse data.

(U20) Actuarial Applications with APL (Tuesday 13:45-14:30)
Axel Holzmüller and Christiane Görges-Holzmüller, DPC Consulting (Germany)

Actuarial applications in the field of life insurances cover several business problems such as tariff and rate calculation, preparation of balance sheets or product development.
In this presentation we would like to give an overview about applications and solutions in this area which are based on APL programming or include APL parts. We will provide a short introduction into the maths of a life insurance company along with the implementation of the basic functions in APL. We will highlight APL's strength and best fitness for those kind of tasks. back to top

(U21) APL Coding Optimization for Application Programmers (Tuesday 15:00-15:45)
Eugene Ying, Senior Software Developer, Fiserv Investment Services (USA)

In commercial APL applications, we frequently encounter I/O functions that slow down the business applications in ways that are not obvious to the casual programmer. Similarly, many programmers do not know that they are not using the advanced computational functions properly, causing WS FULL, LIMIT ERROR, and stopping or slowing down the entire business application. In this presentation, for the I/O optimization, we will take a look at how to optimize the initialization of a component file that has numeric data, and how to simplify the contents of a native file that contains numeric data in character format. For the computational optimization, we will examine how to use (or avoid) the outer product, the inner product, and the match functions to speed up APL application functions.

This will be a remote presentation from Jersey City, NJ. back to top

(I22) Crackpot files and Other Stories of Forensic Mathematics (Tuesday 20:00)
Charles Brenner, Forensic Mathematician (USA)

I coined the term "Forensic mathematics" for the application of mathematical principles to evidence, in practice to problems and ideas in DNA identification. Inventing a term like this comes with certain prerogatives, including specifying the principles -- the Likelihood Ratio is thereby the central concept of forensic mathematics -- and of course product endorsements. Of all the tools of forensic evidence, DNA is most suited and perhaps uniquely suited to mathematical treatment. Unlike fingerprinting, its behavior nearly conforms to a tractable model, and is quantifiable. Like fingerprinting it is individualistic, but in addition the inherited nature of DNA makes it useful for identification -- solving crimes -- via relationships.

APL has been my tool for 30 years of forensic genetic programming, mostly my software product DNA-VIEW which is internationally widely used by crime and some other laboratories. I'll review some basics of DNA genetics, a fascinating and surprisingly digital (not statistical, not analog) subject, and discuss a couple of program features. The kinship module generalizes the paternity testing question and has found wide application including in disaster zones for body identification, for inheritance and immigration, and for generating stories some of which I would like to share.

The forensic mathematician perspective on human nature may fall short of bartender's and prostitute's, but still has a few offerings over the years. Potential illegitimate heirs and their attitudes -- a common story. Suspiciousness about DNA results based on opaque science -- another.

And an ambivalent story of greed: Larry Hillblom, the wealthy "H" of DHL, disappeared leaving several potential heirs and no available reference DNA. Nonetheless with a slightly novel way of thinking, DNA was able to prove the childrens' case. back to top

(U23) Optimization of Parallel Multi-Digit Algorithms (Wednesday 08:30-09:15)
Andriy Tereshchenko, Senior Developer, SimCorp A/S, Front Office (Ukraine)

In software implementations of double-key cryptography one needs to be able to perform arithmetic computations quickly on multi-digit numbers whose length exceeds that of traditional floating point numbers; numbers with 150-200 decimal places.

Multiplication (including modular multiplication) takes most of the computational time in operations of asymmetric cryptography such as generation and distribution of a secret key, encryption and decryption of information, stacking and verifying a digital signature, etc.

In this presentation we consider how APL can be used to determine the most appropriate optimisation of multi-digit multiplication operations. The analysis of the complexity of the used algorithms of multiplication of such numbers shows that, with development of cryptographic methods of information protection with a public key, one must have a library of programs that implement various algorithms for fast multiplication - every one of which has its own area of effective application depending on the range of meaning of N (word length), computation model, hardware or software implementation. This increases the performance of double-key cryptography system.

It is shown in comparison with other languages that APL is one of the best to model the multiplication algorithms of large numbers based on the fast orthogonal transforms (like fast Fourier transforms (FFT), fast Walsh transforms (FWT), etc.), which reduce the number of needed calculations by one or two orders. APL gives clear picture to analyse the multi-digit algorithms and find reserves of optimization to increase performance of existing algorithms several times over.

It is known, the efficiency of multiplication of large numbers depends on the number of multiplication of single precision. The main attention is paid to APL as a tool to reduce the total number of multiplication operations.

It will be shown how APL can be used to describe parallel algorithms before implementing them using CUDA C on NVIDIA GPU, thereby reducing total time spent on development.back to top

(U24) Three Blind Mice (Wednesday 09:15-10:00)
Paul Grosvenor, Managing Director, Optima Systems (UK)

Over the past 2 or even 3 years, Optima together with Dyalog have been talking about introducing new people into the APL community, teaching them APL and solving all of the world's problems with a single line of code. As of August 2012 we are pleased to be able to say that we have 3 new apprentices, funded by both companies, who are now on that path of learning and enlightenment.

This presentation aims to give a little bit more insight into the process we have undertaken and also give you the ability to meet with all 3 apprentices and see what they think of it all.

Time permitting we will explore possible extensions to our initiative and see how other companies can also get involved.

See how they run …… back to top

(U25) Migrating from APL2 mainframe to Dyalog APL Windows (Wednesday 11:15-12:15)
Peter Simonsson, Jonas Stensiö, Lars Wentzel, ADLEPA (Sweden)

We will describe two cases where we have migrated large systems from IBM mainframe APL2 to Dyalog APL Windows using two different approaches. First we will describe the systems and explain why this migration was done. We continue by describing the architecture and how we have solved the user interface (3270) and data storage. We will then describe language incompatibility problems, code and data transfer, technical components needed, tools for automatic code migration and diagnostics as well as testing. How integrations with other systems are migrated will be described. Finally we will cover the problem of migrating a living system constantly being changed and updated. back to top

(U26) Teaching APL - Fun and Games in Hawaii (Wednesday 16:00-16:45)
Jerry Brennan (USA)

I had a problem. APL solved it. I was hooked. I showed others what I could do and my career began.

I think the best way to teach students APL is:

1. Find their problem
2. Teach them how APL solves it
3. Help them share with others and their careers begin.

I want to build a community of contributors that provides ideas and code to interest and teach new APL'ers. Creating and playing educational games are fun and facilitate learning. In the schools the maths/science/business curriculum needs a major computer upgrade. Computer graphical tools can make mathematics come alive and facilitate conceptual learning. With the help of APL real world problems can now be tackled by students. Creating educational games/tools on the internet is a fantastic way to share them and attract new users.

In a community, users at different levels learn from the level above and teach to the level below. If we help each other everyone benefits. I am here to learn and to give. How about joining me?

Now I want to share some examples of what I have been doing with you and hear your suggestions for going forward. back to top

(U27) Optimisation Across Networks (Thursday 08:30-09:15)
Paul Grosvenor, Managing Director, Optima Systems (UK)

We are all very aware of how important it is to write efficient code and generally we write our core processing algorithms to operate as quickly as possible. What is often ignored is how applications, even well written ones, perform across a computer network.

This presentation aims to shows some of the performance pitfalls we can commonly encounter when operating across networks of unknown or unstable bandwidth.

At the end of the presentation the audience will be invited to share their experiences and strategies for avoiding some of these problems. back to top

(U28)The Three Beaars: Basically, Every Array Allocation Reduces Speed (Thursday 09:15-10:00)
Robert Bernecky, Snake Island Research (Canada)

The execution time of computationally intensive applications is usually dominated by time spent in a few kernel functions. Naive execution, common practice in interpretive array-language environments, such as APL or J, can exacerbate the performance impact of these factors, often by orders of magnitude.

In our talk, we show that the state-of-the-art array language compilation can often bring those kernels to the same level of performance as good-quality hand-coded C. In addition, the code generated by APEX/SaC automatically preserves or increases the parallelism of APL applications, offering significantly improved performance on multi-core systems with no application modifications. Finally, SaC's automatic generation of GPU-based code provides even more dramatic performance gains for some classes of array-based applications.

The speedups available through use of such tools varies, depending on application characteristics, such as array size and the target system. In order to give users an intuitive feel for how much improvement their own applications could gain from use of compiled kernels, we present several case studies, of applications with different array shape characteristics, along with the speedups we have attained thus far:

The baby bear, dominated by operations on scalars, is exemplified by the Floyd-Warshall graph theory algorithm. The mama bear, dominated by operations on small arrays, is typified by dynamic programming algorithms and by numerically intense computations on complex numbers. The papa bear, dominated by operations on large arrays, is typified by acoustic signal processing and geophysics benchmarks.

Our talk includes a brief presentation of the various methods by which we achieve those speedups, on each class of array size. back to top

(U29) Building an Android Application with an APL Computational Engine (Thursday 10:30)
Illse Nell and Danie Maré, Riskflow Inc (South Africa)

Riskflow's APL software for Cashflow Management was developed with banks and major corporates as clients. These applications were developed using APL2000's version of APL. Having identified the need for a much simpler application for use by individuals and SMEs, code was extracted from this application, converted into Dyalog APL and made available in DLL format for development of a Cashflow App on Android devices. This presentation will illustrate the App as well as details of the APL development that was required to incorporate the computational engine into the App architecture. back to top

(U30) How I won the Dyalog Programming Contest 2012 (Wednesday 17:00-17:45)
Hayato Hashimoto, Kyoto University (Japan) back to top

Hayato is the winner of the fourth edition of the International APL Programming Contest. Following the prize ceremony, he will tell us how he learned APL well enough to win the competition.

back to top Back to top of page

Training courses - Abstracts

(C1) Managing External Data I - Gitte Christensen

Getting your external data structure right has always been key to the success of an application. This course will present a number of ways to organize data in order to support the business content of an application. In addition to a theorectical discussion, the course will discuss how to implement the chosen structures using APL. At the end of the course, the participants should be able to analyze a given set of data and to choose an appropriate way to persist the data for use by an application.

Part l will be an introduction to different types of data structures and the underlying theories. Typical use cases will be used by the participants to do analysis of data and design appropriate data structures. back to top

(C2) User Commands - Dan Baronet

User Commands are tools and utilities that are written in APL but are part of the development environment and are available in any workspace. Dyalog APL ships with many User Commands out of the box but, as the name suggests, you can also create your own. In this workshop you'll learn about existing User Commands and you'll create new ones of your own. In the process you will learn how to add command options, learn about APL's built-in search and replace operators and how to use the existing utilities to locate items in the workspace and in files using regular expressions. As a result you will have a more productive development environment. back to top

(C3) Tuning Workshop - Roger Hui / Morten Kromberg

Making application code run faster is a never-ending process; as soon as you speed things up the users start running more simulations or transactions, data volumes increase or platform changes move the bottlenecks around. First, Morten and Roger will take you through the process of identifying hot-spots in your application using the "PROFILE" user command and other techniques. Next, we will discuss a number of common optimisation techniques including the use of "Parallel Each" to take advantage of multiple cores. Finally, you will be invited to put your new skills to work on your own application code, so please bring a piece of code that you need to speed up! back to top

(C4) Web Applications I - Brian Becker

At the end of this hands-on workshop, you will have built your own web server application using the MiServer framework, which is included with Dyalog APL. Applications can be deployed without changes under Windows, Linux or AIX. Basic APL programming skills should be all that is required to implement a web server; the workshop will include brief (but sufficient) introductions to HTML, CSS, JQueryUI and the MiServer itself. Both part I and II of this workshop will show how to implement secure servers and services using encrypted communications. back to top

(C5) Managing External Data II - Gitte Christensen / Bjørn Christensen

Part ll will focus on "relational" data. We will look at different databases and their underlying technology, and the exercises will make use of SQAPL and Microsoft.Net DataTable objects to create relational tables, populate them with data and extract it again. Different methods of exchanging relational data between applications will also be discussed and demonstrated. back to top

(C6) Namespaces - John Daintree

John will demonstrate the use of Dyalog's Namespaces from their very basic use to more complicated data and code management.
The workshop will include examples and problems using the now world famous CD database. back to top

(C7) Starting a New Application in Dyalog APL - Morten Kromberg / Dan Baronet

When you start a brand new application, there are a number of decisions to be made. The evolution of Dyalog APL, the platforms on which APL runs, an increased focus on server applications and the ability of source code management tools to handle APL code means that application architectures need to adapt. This workshop will be based around a discussion of the architectures of a number of applications built recently by the APL Tools Group at Dyalog, including the MiServer, the Stand-Alone Web Service framework (SAWS) and the Dyalog File Server (DFS). Topics will include:

  • Structure and organization of source code, including utility libraries
  • The choice of user interface technologies for desktop, mobile and web applications
  • Running as a Service: Process management and load balancing
  • Error and Usage Logging back to top

(C8) Web Applications II - Brian Becker

The "Web Service" protocol is the lingua franca of the internet. This hands-on workshop will put you through the paces of both "consuming" web services written by 3rd parties from APL, and "providing" web services that you implement in APL. The workshop will use the SAWS framework that is provided with Dyalog APL, and allows you to call or be called by modules written in other languages, whether they reside on the same computer or have been implemented using a potentially unknown location (and on an unknown platform). back to top

(C9) Managing External Data III - Gitte Christensen / Dan Baronet

Part lll will deal with the use of APL to construct databases that are "customized" to support different data structures. Various models for persisting relational, multidimensional and tree structures will be presented, and simple examples developed. Performance considerations will be an ongoing discussion throughout this module. back to top

(C10) Writing testable GUI - Kai Jaeger

Implementing a GUI with Dyalog is not exactly a difficult task.

However, implementing it in a way that results in readable and maintainable code is a different matter. This workshop imparts the skills that makes is actually possible to achieve these goals. As a side effect you get a GUI that can be tested automatically. back to top

(C11) - Tuning Workshop (repeat - see C3) - Roger Hui / Morten Kromberg
back to top

(C12) Secure Applications - Brian Becker / Bjørn Christensen

Hardly a day goes past without the media discussing the theft of or unauthorised access to data. As computer systems become more connected, often using the internet as a communication mechanism or access path, it becomes less and less practical to control access to data using "physical" mechanisms like needing to be in a particular building to gain access to a system. This hands-on workshop will discuss typical situations in which you should consider encrypting data, and provide examples (and exercises) showing how the Dyalog Cryptographic Library can be used to protect your data from unauthorised access or tampering. back to top

back to top Back to top of page



Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player