Dyalog ’19 Videos: Week 4

Welcome to week 4 of the Dyalog ’19 recordings! This week, Tommy Johannesen of Jersie Data tells us about an interesting application that he has written in Dyalog APL. In the Copenhagen area, many school children are “fed with APL” in the sense that Tommy’s APL system connects the parents of ten thousand hungry children to about 60 vendors of school lunches. The service currently handles about 100,000 users with a system that runs under IIS and uses Dyalog as an ASP.NET implementation language. Each year 10,000 children leave after 10 years at school and another 10,000 enter grade 0; over the 30 years that Tommy has been in business, he has served more than a quarter of a million users.

Tommy Johannesen of Jersie Data

Tommy Johannesen of Jersie Data ApS

Peak time is Sunday evening, when parents and children log on to order meals for the coming week. Tommy tells the story of how he has been struggling with a memory leak that caused some user requests to fail when loads grew large; obviously not a good thing! Since upgrading to Dyalog version 17.0 he has been chasing this problem together with John Daintree – it was not completely solved at the time Tommy was at Dyalog ’19, but I am happy to be able to report that we believe it finally bit the dust in October!

The other two recordings in week 4 are centred around the topic of source code management. First, Adám Brudzewsky and I introduce the tool called “Link” which is included with version 17.1. Link creates a link (hence the name) between each function (or other “code object”) in an active workspace and a corresponding text file. The namespace structure of the workspace corresponds to the directory structure that the workspace is linked to. Changes made to either side of such a link – to code in the workspace or to files outside it – are immediately reflected on the other side.

Paul Mansour of the Carlisle Group

Paul Mansour demonstrates Git integration with AcreTools

The intention of a tool like Link is to enable the use of source code management systems like SVN or Git to manage source in the form of text files. These source code management systems allow the implementation of many different “workflows”, defined by parameters like how branches are used, how frequently merges are done, and how conflicts are handled. Git allows a lot of freedom, which many small teams (and that includes one-man-bands 😊) don’t need. Immediately following the talk on Link, Paul Mansour took the stage at Dyalog ’19 to talk about tools that he has developed to implement a simple but effective Git workflow, suitable for many APL projects.

Summary of this week’s videos:

Dyalog ’19 Videos: Week 3

Stig Nielsen of SimCorp

Stig Nielsen of SimCorp

In the third week of Dyalog ’19 recordings, Stig Nielsen from SimCorp A/S talks about recent work to turn a very large body of APL code, originally designed to work well on workstations, into a 3-tier solution. This requires turning everything “inside out”, making the application a service that can be called from cloud-based components. Fortunately, the parts of the application that have been implemented in APL have been using a model-driven approach to user interface specification for decades. This makes the task a lot simpler compared to some of the code written in other languages (which needs a complete rewrite). Stig explains both the obvious solution and the one that might actually work.

Brian Becker shows us the HTMLRenderer

Brian Becker shows us the HTMLRenderer

The other two talks that we are releasing this week are also related to producing portable user interfaces. The HTMLRenderer is a component that is integrated with Dyalog APL under Microsoft Windows, GNU Linux and Apple macOS. It allows APL applications to use HTML/JavaScript to produce Desktop applications that behave identically on all these platforms – in much the same way that NodeJS allows. Brian Becker introduces new features of the HTMLRenderer in version 17.1, and a number of tools that allow you to build user interfaces that run not only on the HTMLRenderer, but also as a Web Server.

Josh David demonstrates his Easy GUI

Josh David demonstrates his Easy GUI

Josh David follows up with a talk about “EasyGUI”, a tool that he built as his final year project at Scranton University. EasyGUI is built upon the HTMLRenderer, and allows applications to have a very simple UI for collecting input from the user and for displaying progress bars, simple reports or graphics. It does this without requiring that the user learn any HTML, JavaScript or CSS – it is all generated by a set of very simple functions.

Summary of this week’s videos:

See you next week for the next three recordings from Dyalog ’19.

Dyalog ’19 Videos: Week 2

Welcome to the second week of recordings from Dyalog ’19 in Elsinore! This week we are featuring three presentations about work that is either already available, or will appear in Dyalog version 18.0 in 2020.

APLcart logo

All three talks are by members of the Dyalog development team, but Adám Brudzewsky’s talk on APLcart is labelled U14 because the bulk of the work has been done in his own time. APLcart is a novel way of making it easy to find information about how to do things in APL, as opposed to finding documentation for a particular feature of the language or development environment. Although it is brand new, APLcart is already a very effective tool. I recently had the pleasure of teaching an introductory APL course where I told the students about APLcart on the first day. By the end of the week, every time the students had to solve an exercise, they headed straight for APLcart. Please check it out, try to find things, and let Adám know about anything that you can’t find so he can add it!

Richard Smith talks configuration files

One of our most important goals is to make Dyalog APL as capable – and as similar – as possible on all significant computing platforms, ideally allowing you to develop on any supported platform and deploy the solution to all others. One of the remaining hurdles is configuration of the interpreter, the development environment – and applications. This is currently done very differently from one platform to the next. Richard Smith introduces a project he is working on that aims to provide a single format for configuration files across all platforms. The choice of a file format is not an easy one, and a significant part of this recording consists of comments from the audience – including members of the Dyalog development team – voicing a variety of opinions about this.

Marshall talks tacit techniques

Finally, a delicacy for language geeks: The word tacit means “unspoken”. Tacit programming involves expressions consisting only of functions, operators and constants; the arguments are implied. For example, the expression (+⌿ ÷ ≢) is a function train, which should be read “sum divided by count” – without speaking about what the functions are applied to. The corresponding “explicit” expression would be {(+⌿⍵) ÷ ≢⍵} which mentions the argument twice. In his talk on Tacit Techniques, Marshall explains how tacit programming can be elegant and powerful, and why a set of new operators planned for Dyalog version 18.0 will be particularly useful for tacit programming. His talk includes a neat way of ranking poker hands with the over () operator, which will be available in Dyalog version 18.0.

Summary of this week’s videos:

Join us again next week for another three recordings from Dyalog ’19.

Welcome to the Dyalog ’19 Videos!

It is still true that most APL users live north of the equator, which means that at this time of year the sun is below the horizon more than half the time. It’s the perfect time to snuggle up in a warm place and watch some videos, and we’ll be offering you about three a week from now until just after the Winter Solstice, when we can start looking forward to the Spring.

As usual, we’ll be releasing videos of the vast majority of the presentations that were made at the recent Dyalog ’19 user meeting, which was held in Elsinore, Denmark in September. If you would like to get a feeling for what is coming, take a look at the blogs from the meeting itself, starting with this one.

In accordance with tradition, we’re opening with the three keynote presentations by Dyalog’s CEO Gitte Christensen, CTO Morten Kromberg, and Chief Architect John Daintree.

Gitte welcomes delegates to Dyalog '19

2019 is the first “Year of the Hammer”: after seven years of Norse wyrms and seven years of Viking ships, we were now entering the era of seven hammer-inspired logos. As Gitte explains in her talk, we are celebrating the first year under Thor’s Hammer by making Dyalog APL freely available for non-commercial use – without requiring registration – under Microsoft Windows, Apple macOS and GNU/Linux (including a collection of public Docker images). The intention is to make APL much more easily accessible for experiments – especially in the cloud!

Gitte’s talk also contains sombre tones, remembering that we lost John Scholes in February as well as Harriett Neville, who had registered to attend Dyalog ’19 but passed away most unexpectedly just before the meeting.

After last year’s Technical Road Map, which was almost entirely a live demonstration of using APL with modern development tools like Git, VS Code and Docker, I decided to play it safe this year and do no demos at all in my keynote. Instead, I concentrated on explaining some of our thoughts about making Dyalog APL easier to discover, learn and integrate into modern frameworks and development processes – and making applications written in APL easier to deploy and maintain. As a result, despite the world premiere of our new Webinar Jingle, composed by Stefano Lanzavecchia (short and long versions are available), I probably shocked the audience by leaving three minutes at the end for questions!

 

The title of John’s talk was “Cor(e) Blimey!”. The Cor(e) is of course a reference to Microsoft’s “.NET Core” but if English is not your first language, the title of John’s talk may need a little explanation. “Cor blimey” is an exclamation of surprise, a euphemism derived from “God Blind Me”. In this talk, John explains how Dyalog is poised to provide a bridge to Microsoft’s new portable, open source version of .NET. Scheduled for release with Dyalog version 18.0 next year, this will provide APL users with access to a vast collection of libraries under Linux and macOS, in addition to Windows.

Summary of this week’s videos:

I hope you enjoy these presentations. Join us again next week for another three recordings from Dyalog ’19!

Dyalog ’19: Thursday 12 September

Dyalog Pictures Ltd?

After a wonderful banquet dinner bonding with fellow teammates of last night’s Viking Challenge, we were invited to the Jorns Auditorium for the world premiere of our movies from earlier in the day. The screening and awards show was a roaring success with everybody being surprised and thrilled at the quality of what came out from the editing room. We would like to thank Filmteambuilding.dk for an incredibly enjoyable afternoon and evening.

How do I… in APL?

In another world premiere, Adám Brudzewsky introduced us to APLcart this morning. This is the new answer to the question “how do I… in APL?”. Luckily Adám’s presentation strategy of asking the audience for functionality to search for was a win-win – if APLcart had it then we were impressed, and if not Adám had a new item to add to APLcart. Try it now and see if APLcart has what you’re looking for. If you can’t, Adám invites you to email the functions you want to see to adam(AT)aplcart.info.

Richard Park then gave his third and final presentation of the week on the theme of using APL for education. He showed us how you can quickly and easily create Dyalog Jupyter notebooks and recommended using them for how-to, instructional documents and problem sets for students. You can view and download his presentation (which is a notebook) from GitHub, and interact with the live running notebook by clicking this button → .

Tomas Gustafsson tells the Irma story

We then had the final talk of the User Meeting. Tomas Gustafsson, creator of the Stormwind boating simulator, told us the fascinating story of the Finnish ship M/S Irma. It disappeared while travelling a common route in 1968 and became one of the greatest mysteries in Finnish maritime history. Eventually some wreckage was found near Åland and Tomas was able to use APL, reconstructing possible paths of the debris via simulation, to make an educated guess of where to search for the main wreckage.

Lastly Gitte expressed to us how enjoyable the week had been, and all in the audience seemed to agree. We thanked Helene, Karen, Jason, Fiona and all of the staff at Konventum for their hard work “behind the scenes” to make the User Meeting run smoothly.

For the last afternoon of the User Meeting three final workshops were held. Two focused on technical software development issues, with Morten and Josh answering users’ questions related to using text-based source with ]LINK and Git. Andy Shiers and John Daintree were generally helping users with application-related issues, but were especially helpful to some of the young new users of APL. Some of our delegates took on another challenge in the workshop on code golfing.

I think it is safe to say that we have all thoroughly enjoyed this week. You can look forward to seeing our commercials from the Viking Challenge as well as recordings of talks from this week at some point in the future on dyalog.tv.

Dyalog ’19: Wednesday 11 September

Floaty balls

In contrast with Monday night’s brain-bending puzzles, last night there was some lighter entertainment as Richard Park presented his molecular dynamics framework APLPhys. He showed us how elegantly APL could express mathematical equations and we joined in his fascination watching simulations of little balls flying around on his MiServer based graphical interface.

APL for every kid

Roberto and students from Liceo Scientifico GB Grassi Saronno

This morning we got to hear from Roberto and his students again. Pietro, Alessandro and Gabriele told us how after they were shown APL in school their interest was sparked to the point that they would write APL in other, slightly more dull lessons. They gave us more details on their competitive league scoring algorithm which was used in Monday evening’s contest. Lastly they expressed how APL’s ability to have you think differently led them to develop their puzzle competition platform called MathMaze. They had familiarity with Python but were new to APL, so they used Py’n’APL to make Dyalog communicate with a python-based Django server. In that way, MathMaze contestants could enter either a direct puzzle solution, or an APL statement which is evaluated on the server to solve the puzzle.

Afterwards Stephen Taylor led the Young APLers panel. To begin he introduced us to Josh David from the small town of Scranton, PA. We learned how he started working with APL at 15 years old after being introduced to it by his neighbour Paul Mansour of The Carlisle Group. Next was James Heslip from Optima, telling of his discovery of programming through Visual Basic. During and after university he wanted to pursue computing but keep the maths aspect of his work in the future. After meeting Paul Grosvenor he managed to convince Paul to take him on as an apprentice at Optima, and now APL allows him to write programs using mathematical notation. Yuliia Serhiienko from Ukraine came next to the stage, and said how she loved mathamatics in school but never imagined becoming a programmer. She had been an actuary in a previous life but, in the end, her transition from Excel macros to APL turned out wonderfully. Alve Björk, last year’s competition winner, claimed to spend more time reading about programming languages than actually programming. He said that in many languages he will think of a program but not write it. However, since APL is terse he actually sometimes tries it out when he thinks of a program. Alve also stated that he found it interesting that when you have a problem, in APL it’s not the first thing you do to go online looking for a ready made solution.

The young APLer’s panel. From left: Stephen Taylor, Alve Björk, Yuliia Serhiienko, James Heslip and Josh David

All of the panelists discussed the importance of having a teacher and being able to ask questions. It was suggested that some kind of mentor system for APL could be fostered. Once again the idea of “spreading the gospel” and getting APL in front of more people was brought up, and how it may be necessary to do this in order for the community to grow – as much as some of us would like it to remain niche.

The 2019 APL Problem Solving Competition

Professional prize winner Torsten Grust

Finally, the moment we’d all been waiting for: the prize ceremony for this year’s problem solving competition. Brian Becker talked about how we had made the leap to “eat our own dog food”, having built and hosted the competition website using MiServer (you can still see it at dyalogaplcompetition.com). Many technologies came together so that Dyalog could have the Phase I “one-liner” problems automatically validated in collaboration with TiO.Run. We saw some stastics about registrations and submissions, and heard about the extremely high quality of both Phase I and Phase II entries this year.

Then Gitte presented the top professional and student competition winners with their prizes. Torsten Grust expressed how much fun he had thinking about the problems and how clever he felt when he managed to come up with his solutions.

Grand Prize winner Jamin Wu


The Grand Prize winner Jamin Wu told us about how he discovered programming when he was looking into ways to solve problems using computers – something he still needs to do despite being a medical student – and how he had found the APL family of lanugages via the project Euler website. Jamin then took us through some of his solutions, including his incredible invertible tacit functions for tap encoding and decoding. He expressed how nice it had been to think about his implementation of the Romberg method of integration by solving the problem with a pen and paper first, and then implementing the refined solution at the end, since writing the APL was so cheap in terms of effort. We were enthralled by his brilliant explanations and incredibly impressed by his well considered problem solutions.

After lunch we were made extremely busy in the Viking Challenge. The delegates were split into teams and had to make short commercials emphasising a certain aspect of APL to a particular audience. We expect to see some oscar-winning performances at the screening after the banquet dinner – so now it’s time to get on my Sunday Best ready for the prize acceptance speech I expect to make.