User Presentations
U01: What's Wrong with SQL? summary | video (49 mins)
Paul Mansour, The Carlisle Group (U.S.A.)
What is an SQL query? Does it offer the proper level of abstraction for complex queries? Why is it not traceable the way we can trace an APL function? What good is a column-store without a column-oriented query language? What is the difference between imperative and declarative programming? Is declarative always better? These and other fascinating questions will be asked and probably not definitively answered in a presentation on FlipDB, a database management system and query language written in Dyalog that shamelessly steals lock, stock, and barrel from APL.
U02: WPF/UWP and Xaml on the Web summary | materials (ZIP)
Chris Hughes and Michael Hughes, MJH Software Services Ltd (U.K.)
There is still a need to have applications that are compatible, ideally to run natively on Windows, but which will run on other platforms too. With the advent of WebSockets in Conga it is now possible to create standard Xaml and C# to run as compiled HTML5/Javascript/CSS – this will also soon be possible using WebAssembly, the new exciting entrant to the Web to challenge JavaScript's dominance.
This presentation will show how easy it is to build applications using the new user command interface to the compiler from www.CSHTML5.com, which will allow access to all the standard WPF controls via Xaml (demonstrated) and C# (not demonstrated, but used indirectly in the ⎕WC emulation).
U03: Taming Statistics with TamStat summary | slides (PDF) | video (29 mins)
Dr Stephen Mansour, The University of Scranton (U.S.A.)
TamStat is a Statistics Program written in APL and developed for use in teaching statistics to business students at the University of Scranton. What makes this program unique is the use of APL objects such as operators, functions, arrays and namespaces as a natural way to describe and implement various statistical operations. Four basic classes of functions can be combined with operators to produce new and useful functions without increasing the overall vocabulary.
U04: Co-dfns 2018 – What's New? summary | slides (PDF) | video (24 mins)
Aaron Hsu, Indiana University (U.S.A.)
The Co-dfns compiler has been undergoing a significant rewrite to improve performance, flexibility and "research" worthiness. However, this hasn't only been an academic exercise. Previous limitations of the compiler's capabilities have been lifted, and we have improved the usability of the compiler across the board. Moreover, it is now simpler to install, use and configure the Co-dfns compiler, as well as integrate it with other software. We have also been working on performance improvements of the generated code, including improvements to the runtime behaviour, reliability of the code and expanding the language that the compiler recognises.
Aaron discusses improvements, as well as describing a roadmap for future improvements that are likely to be tackled sooner rather than later.
U05: The APL Package Manager summary | slides (URL link) | video (16 mins)
Gilgamesh Athoraya, Data Analytics AB (Sweden)
A rapidly-growing collection of tools like acre, SALT and the new ]Link user command are making it easy to create APL projects based on source code in text files and take advantage of additional tools born outside the APL community, like GitHub. One of the advantages of these tools is that it is easy to share source code and load utilities written by other APL developers into your application – for example, the tools found in the APLTree. But how do you MANAGE these dependencies? What happens when one of the utilities that you are using is updated?
Gil walks through the APL Package Manager (APM), a system designed to help deal with these issues. APM is under development, so if you want to have a say, now is the time to acquaint yourself with the concepts and features of APM.
U06: The Workspace is Dead! Long Live the Workspace! summary | video (29 mins)
Paul Mansour, The Carlisle Group (U.S.A.)
Storing functions in text files has huge advantages, not the least of which is the use of a source code management system like Git. However, the APL programmer, used to the comfort of the workspace, can quickly become overwhelmed with a plethora of third party applications. In addition, there are many ways to work with Git. There are tons of commands and a zillion options. An extremely small, carefully selected and configured set of these commands, encapsulated into the workspace as user commands, can make working with Git and text files as easy as )SAVE.
U07: Teaching an Old Dog New Tricks – Our Fair Price Engine summary | slides (PDF) | video (28 mins)
Ilaria Piccirilli, SimCorp Italiana (Italy)
In 2005, to comply with new regulations, SimCorp rewrote their fair price engine, making it more flexible; Ilaria describes the significant benefits that this has had for subsequent development.
U08: The British APL Association – An Update summary | slides (PDF) | video (14 mins)
Paul Grosvenor, Optima Systems Ltd (U.K.)
Over the past year or two, the BAA has been rather quiet and the Vector magazine publication has stopped. The purpose of this presentation is to let you all know that the BAA is alive, well and moving forward on a number of new initiatives including an electronic version of Vector. Paul will show the new BAA website, the new Vector website and provide details of a BAA conference in London next year which is currently in the planning stage.
U09: The Evolution of the APLTree Library summary | slides (URL link) | video (24 mins)
Kai Jaeger, APL Team Ltd (UK)
The APLTree project, a collection of tools and applications useful to most APL programmers, has moved from the APL wiki to GitHub.
The APLTree project takes full advantage of the features offered by GitHub. The talk will briefly discuss the benefits of the GitHub platform as a home for APL utilities.
Kai will also discuss new tools that have been added recently, as well as major changes and upgrades to existing tools that are in the APLTree repository.
U10: Excel Mining – Part 2 summary | slides (PDF) | video (26 mins)
Richard Procter, APL Borealis Inc (Canada)
Continuing where we left off at Dyalog '15, this technical presentation will take a deeper dive into the depths of Microsoft Excel's XML-based structures, using a combination of the Microsoft OOXML SDK and APL. The focus will be on the basics of reading and writing spreadsheets (without the need for Excel), options which developers can explore to suit particular needs, efficiency concerns for large spreadsheets, automation and generally how APL enhances the experience (as usual).
U11: Quaternions (Hamiltonians) and Image Recognition summary | slides (PDF) | video (25 mins)
Prof. Dr. Dieter Kilsch, Bingen University of Technology (Germany)
Quaternions are well known as an algebraic skew field (or division ring) of dimension four over the real numbers. Although they have some interesting algebraic features, this presentation concentrates on properties that facilitate calculations concerning rotations in solid mechanics and image recognition. This is based on the fact that, apart from the real numbers, quaternions contain three, linearly-independent, imaginary axes; on this three-dimensional real subspace, multiplication by a unit quaternion acts as a rotation. Furthermore, multiplication allows calculation of the precise rotation needed to map a model object onto a real object by least square fitting.
U12: Rectangles All The Way Down summary | slides (PDF) | video (44 mins)
Martin Thompson, Real Logic (U.K.)
Moore's Law has come to an end. Spectre and Meltdown mitigations have resulted in significant performance impacts for server applications. "Throw hardware at it..." is no longer a valid approach to performance issues. How do we design applications that afford good performance given all the conflicting advice we can find on the Internet?
In his talk, Martin highlights performance characteristics exposed by usage patterns of computing resources. Some patterns of usage are significantly more efficient than others. By understanding the performance characteristics and trends for contemporary hardware, we can then design algorithms and data structures which are efficient regardless of programming language.
U13: Simplicity can be Confusing – Understanding the Manly Chromosome partly through APL summary | slides (PDF) | video (38 mins)
Charles Brenner, DNA-View and UC Berkeley Human Rights Center (U.S.A.)
My job for the defense was to persuade the court to exclude the Y-chromosome DNA evidence of sexual assault as I had in two previous similar cases. The defending attorney sardonically noted that if my part were successful he could handle all the other hurdles except a previous conviction for rape. "Against whom?" I asked.
"The same woman."
All three of my cases involved charges of sexual assault on Native American tribal land. The tribal context is relevant.
The Y chromosome is physically just like any other though a bit of a runt. Any chromosome is a DNA strand. They all incidentally include some regions with quasi-random patterns which are useful for forensic identification because of their variation among individuals. Y is unique because it is transmitted to offspring (always a son – for mammals having a Y is the definition of maleness) not by sexual mixing as the other chromosomes, but clonally like bacteria. That genetic difference, which everyone understands, has population genetic (=distribution of genes in populations) consequences that almost everyone does not understand. Several years ago I learned from a Monte Carlo simulation of a simple population evolution model that Y haplotypes (haplotype=the identification pattern data of a man) don't migrate very far. The implication is that the FBI's influential idea that e.g. Navajo Y data is more or less adequate for evaluating Apache Y evidence, is very far wrong.
Such a simulation can provide insight because one can make measurements of the data it produces. But stochastic modelling inherently has a black-box aspect. This year I realized that a suitable combination of nested inner and outer products yields a functional route, deterministic rather than stochastic, to similar results and more. (I'll explain in the talk the basis of originality.) That allows a deeper understanding of what the model implies and why, including at least one surprise.
U14a: How I Won the APL Problem Solving Competition – Introduction and Prize Ceremony summary | video (14 mins)
Brian Becker
The tenth annual International APL Problem Solving Competition took place earlier this year. Brian introduces the contest and grand prize winner, culminating in the award ceremony.
U14b: How I Won the APL Problem Solving Competition summary | video (30 mins)
Alve Björk, Uppsala University (Sweden)
Alve Björk is the grand prize winner of the tenth annual International APL Problem Solving Competition. Following the award ceremony, Alve describes his experiences of APL/Dyalog and tells us how he managed to master enough of it to win the competition.
U15: ⎕WC on the Web summary | materials (ZIP) | video (20 mins)
Chris Hughes and Michael Hughes, MJH Software Services Ltd (U.K.)
The Dyalog native GUI for Windows is still the most natural and creative development environment for an APL developer to work with. However, with the advent of Linux, various Internet browsers and other non-Windows platforms it has become a little endangered.
Hopefully no longer; this presentation will show how an APL system developed with ⎕WC can be converted to run on any modern browser available on the internet.
This presentation will give a demonstration of how a simple Form with a Grid and some Buttons can be converted from "Windows ⎕WC" to "qWC anywhere" by the substitution of a ⎕ for a q. The extension to multi-user will be demonstrated too.
U16: Serverless APL summary | slides (PDF) | video (47 mins)
Marko Vranic, SimCorp (Denmark)
New serverless frameworks have emerged in recent time; several open-source serverless platforms are available on the Kubernetes platform. Using the serverless approach, APL functions can be deployed directly to Kubernetes. Marko addresses (and demonstrates) the following:
- Introduction to Kubernetes:
- basic concepts of Kubernetes
- how to run kubernetes on a local PC
- how to build/deploy APL service on Kubernetes
- Introduction to Serverless:
- Lambda Functions and Cloud events
- how APL goes with Serverless
- how to run an open-source Serverless platform on a local PC in Kubernetes
- calling the lambda function using various serverless triggers
U17: IFRS 9 – How What Started as a 'Simple' Project Became a Breakthrough summary | slides (PDF) | video (23 mins)
Arianna Francia, SimCorp Italiana (Italy)
In 2017, due to the IFRS 9 regulation, SimCorp Sofia went through a huge restructuring of its core: beside technical issues, the project triggered an organizational change. Arianna describes the main difficulties SimCorp faced and how it reacted by modifying the way they work to achieve the desired results.
U18: Introducing the Mystika Project summary | slides (PDF)
Erik Wallace, University of Connecticut (U.S.A.)
In recent years, various weaknesses have been exposed in OpenSSL, the current open source standard for encrypted communications. The mystika project was initially conceived of as a replacement for OpenSSL. Since the project is APL-based, a big number library native to APL is required and is a foundational part of mystika. However, due to both the style of the big number library and our choice of algorithms, we expect that it will have applications far beyond cryptography, and we hope that it will set a new standard for the design of big number libraries in general. The presentation will include the current state of progress on the project as well as further discussion of our goals and possible applications. Time permitting, there will be some examples of mystika in action.
U19: High-performance Tree Wrangling, the APL Way summary | slides (PDF) | video (31 mins)
Aaron Hsu, Indiana University (U.S.A.)
Don't let hierarchical tree like structures get you down in APL-land. Despite what modern C.S. theorists would have you believe, there's more than one way to prune, chop, graft and otherwise mangle and wrestle with tree data.
Aaron discusses a novel approach to interacting with Trees, particularly in the manipulation and transformation of trees, that leverages the unique and special qualities of APL to achieve not only greatly reduced code size, but also improved performance, amenability to parallelisation and ease of maintenance/productivity improvements. These techniques are easy to pick up, general and practical.
TL;DR – Why everything you learned about working with trees in University is wrong.