Report from Dyalog ’16 – Tuesday


Last night’s whisky and chocolate tasting

Last night’s dinner ended with a talk from Glengoyne, a highland distillery based fourteen miles north of Glasgow. We were presented with three different whiskies in their range, and a talk explaining how they were produced and how that gave them their different flavours. They were served with single origin chocolate truffles.

Today’s events

Today was the second “traditional” user meeting day, a very full schedule containing a mix of presentations: four from Dyalog; one from Aaron Hsu, a PhD student sponsored by Dyalog, and eight from Dyalog users and invited speakers.

Tonight the traditional Viking Challenge will be a little different from usual – the challenge will be to navigate the Finnish archipelago using Tomas Gustafsson’s Stormwind Simulator. Tomorrow’s report should have all the details!

Winners of the International APL Problem Solving Competition 2016: Marinus Oosters

Mariunus Oosters is studying for a master’s degree in Computing Science at Universiteit Utrecht in The Netherlands, whose interest in APL was started by his enthusiasm for “code golf” – programming challenges which have to be solved using the fewest number of characters possible. He won the Grand Prize Problem Solving Competition in the Bioinformatics category. His presentation was also streamed live at and is discussed in one of Vibeke’s posts.

Discussion Point: random bits

In today’s presentation “Performance: The Neverending Story” Jay Foad described some upcoming improvements in the way (pseudo-)random numbers are generated. In Dyalog version 16 the default will be for the system to produce non-reproducible streams of random numbers. This gives the flexibility to implement optimisations that change the exact sequence of numbers that is produced. It’s particularly effective when generating a large array of random bits or Booleans:


In this case, generating the random data is now so fast that the time it takes to generate the intermediate result 1E6⍴2 is significant. Fortunately there’s a way to avoid the overhead by using a specially optimised function train:


This last expression will be around 65 times faster in version 16 than in version 15.

Discussion Point: Conga WebSockets

Conga now implements WebSockets, a bidirectional way to communicate between browsers and WebServers. Websockets are part of the HTTP protocol that Conga 3.0 will support, providing separate HTTP header, body etc. events, and relieving applications of the burden of assembiling and disassembling HTTP data streams. When the connection is upgraded to WebSockets there is also: WSUpgrade, WSFText and WSFBin to handle the bidirectional communications.

Bjørn , Morten and Gil (remotely)  discussing the Web Stack of the Future

Bjørn , Morten and Gil (remotely) discussing the Web Stack of the Future

Discussion Point: Andy’s third annual fireside chat

Once again Andy discussed a number of the less well-known features of Dyalog APL – the little things that perhaps don’t merit a session of their own, but which he feels are worth a mention. He also previewed some features planned for future versions.

He pointed out that sometimes the amount of development that Dyalog does means that some of the smaller – but often significant – changes and features can get lost in the release notes and update lists. But that then leads to the question: how can Dyalog better highlight all of the features and improvements and how can it be made easier to find these features? Cheat sheets and videos help, but what else can be done?  How do you make a new user aware that you can double click on a name to open the editor on it?  How do you make a new user aware that 1500⌶ creates hashed arrays?

Until these questions are answered, there will always be a need for Uncle Andy’s Fireside chats.

And also…

Some of the many other things we saw and heard today…

  • Aaron Hsu’s Co-dfns compiler can speed up inner product by up to 400 times.
  • The Dyalog Cookbook, which is in development, can be seen at the Leanpub website.
  • Markdown is a writing  format whereas HTML is a publishing format.
  • RIDE was made open source live in Nick’s presentation about it.

Essential deliveries

With the complex planning needed for the user meeting it’s very easy to overlook the simpler things and Morten ably demonstrated this by forgetting to pack for tomorrow’s banquet. Fortunately, Vince and his wife, back in Basingstoke, were able to collect and send the things he needed and their parcel arrived today.

Morten gets a parcel

Morten gets a parcel

We’re also indebted to local delivery drivers – we had needed to order some essential kit online and they managed to deliver it, despite having been given an incomplete address…


50 years of APLTomorrow, in events being hosted jointly by Dyalog and the British APL Association, proceedings turn to celebrating 50 years of APL when we will hear from some of the grandees of the APL community. In addition, the third and final Problem Solving Competition winner’s presentation will take place along with the prize ceremony for all the student winners, and in the evening will be the banquet dinner – again a celebration of APL’s milestone anniversary.

Don’t forget that if you’re not in Glasgow you can still watch the day’s presentations online at; the schedule of events is on the user meeting website.

Comments are closed.