Dyalog Presentations
D01: Welcome to Dyalog '15 summary | slides (PDF) | video (11 mins)
Gitte Christensen, Managing Director (CEO)
Dyalog Ltd's CEO opens the user meeting.
D02: Technical Road Map summary | slides (PPTX) | video (42 mins)
Morten Kromberg, Technical Director (CTO)
The Road Map provides a high-level view of recently completed projects and active development, and a declaration of intent with respect to the areas where Dyalog Ltd is likely to invest significant energy in the next few years.
Keywords in 2015: cross-platform application development, new development tools, and (as always) performance.
D03: RIDE: a New Way to Interact with the Interpreter summary | slides (PDF) | video (22 mins)
Nick Nickolov
The RIDE (Remote Integrated Development Environment) is a graphical front end that can be used to develop and maintain Dyalog applications, irrespective of the computer that the Dyalog engine is running on. Nick explains how you can make the most of RIDE's latest features and enhance your coding comfort and efficiency by customising the default keystrokes, characters, and colours.
D04: Core Performance summary | slides_JF (PDF) | slides_RH (ZIP) | video (34 mins)
Roger Hui & Jay Foad
Recent and future versions of Dyalog have benefitted from several implementation techniques, including:
- range finding with vector instructions
- CRC hashing
- special codes in operators
- magic functions
- special code for ?CT=0
- upgrading C compilers
Roger and Jay will discuss these techniques and the impact they have on the performance of the interpreter.
D05: User Commands Update summary | video (20 mins)
Adám Brudzewsky & Dan Baronet
This presentation concentrates on the latest changes to user commands. Particular emphasis is given to the new ]CopyReg command (introduced at version 2.01 with Dyalog version 14.1), which enables a Microsoft Windows user to copy configurations from one version of Dyalog to another.
D06: MyDyalog and other Backroom Processes summary | slides (PDF) | video (15 mins)
Andy Shiers
Andy highlights some of the new features that have been added to MyDyalog or will be available in the near future, and explains some of the changes to the way in which updates are supplied, etc. Much of what he describes in this talk is Jason Rivers' work (Andy is presenting it since Jason is tied up with AV duties this week); if you have any feedback on MyDyalog then please let Jason know.
D07: Cross-platform User Interfaces summary | slides (PDF) | video (26 mins)
Morten Kromberg
In 2015, Dyalog released the first version of Dyalog APL for Mac OS, and other platforms will be targeted in the near future. Cloud deployment provides opportunities to deliver web applications on both Microsoft Windows and Linux. An important challenge is to find a mechanism that can make it straightforward to develop user interfaces to run on all these platforms with a minimum of effort.
D08: Cross-platform File Functions summary | slides (PDF) | video (23 mins)
Richard Smith
Popular modern programming languages benefit from access to good quality, community-built, code libraries. However, there has been no great tradition of this in the APL community; this is something that Dyalog wishes to address.
The interpreter can exchange data and workspaces between different platforms with ease – but has also evolved in ways that make it difficult to distribute a single, portable, code library. For example, filename extensions are different on Microsoft Windows and non-Windows platforms, and code that wants to access the underlying host file system often has to invoke non-portable host commands to do so.
Dyalog version 14.1 addressed some of the problems of filename extensions. Version 15.0 is expected to take this further and also introduce new system functions to allow greater access to the underlying file system. Richard explains the changes that have been made and those that are being planned and the thinking behind them.
D09: Dya(b)log summary | slides (PDF) | video (30 mins)
Fiona Smith
Following a brief review of Dyalog's social media, Fiona turns her attention to one of the main channels through which we communicate with the world – the Dyalog blog. Contributed to by all members of Team Dyalog, posts range from the highly intellectual to the rather more frivolous and cover topics as diverse as explorations of language elements, recollections of why APL evolved in the way it did, personal musings on the future of APL, solutions to previous student competition questions, travelogues and (of course!) the Dyabot. Fiona concentrates on three particular blog posts from the last 12 months and asks the authors of those posts to summarise and take questions/feedback on their musings. Up for discussion are:
- Name colouring for dfns (John Scholes). Published 27 May 2015
http://www.dyalog.com/blog/2015/05/name-colouring-for-dfns/ - Zero-length Regular Expression Matches Considered Harmful (Richard Smith). Published 9 February 2015
http://www.dyalog.com/blog/2015/02/zero-length-regular-expression-matches-considered-harmful/ - In Praise of Magic Functions – Pt I and Pt II (Roger Hui). Published 22 & 29 June 2015
http://www.dyalog.com/blog/2015/06/in-praise-of-magic-functions-part-one/
http://www.dyalog.com/blog/2015/06/in-praise-of-magic-functions-part-two/
D10: MiServer UI Controls summary | slides (PDF) | video (25 mins)
Adám Brudzewsky & Dan Baronet
User Interface controls, form elements, widgets – these create the end user experience for an interactive application. MiServer, Dyalog's framework for building cross-platform, browser-based applications, has an ever-growing library of UI controls. These include popular JavaScript libraries, to which Dyalog has provided interfaces to make them easily and naturally accessible to the APLer. In this presentation, Dan and Adam demonstrate and discuss several of the available controls, from those necessary to build simple input forms to more elaborate data visualisation widgets. For those who build interactive applications, this session will provide an understanding of the scope and capability of the MiServer widget library.
D11: DP2 – The Dyalog Project Project summary | slides (PDF) | video (21 mins)
Morten Kromberg
Dyalog intends to develop new tools for application development. A central idea is the notion of a shared definition of a "Dyalog Project": a mechanism for declaring the source code components that an application is built from and build directives to build and deploy different variants or sub-sets of the application, for different uses or target platforms. Future tools are likely to revolve around such "project definitions", which need to be sufficiently flexible to allow new users to ask for "A New Dyalog Web Application" and have it up and running in minutes, and still describe legacy applications well enough to allow selected tools to be brought to bear on them.
Keywords: Source Code Management, Dependency Management, Building and Deploying applications.
D12: Data Binding – The Matrix summary | slides (PDF) | video (42 mins)
John Daintree
Databinding has been extended to support binding to matrices. John demonstrates this, along with more ideas for databinding in the future.
D13: External Workspaces summary | slides_MK (PDF) | slides_SN (PDF) | video (15 mins)
Morten Kromberg & Stig Nielsen, SimCorp (Denmark)
An External Workspace is a workspace saved in a new format that allows an application to page code and data into the active workspace on demand, rather than loading the entire workspace when the application starts. The files are memory mapped, which means that processes running on the same machine can share the memory used by the parts of the workspace which have been paged in, and the file is only read by the first process that uses any particular function or variable.
SimCorp Dimension is a rapidly growing application. At run time, code is usually loaded from a network drive. The time required to load the workspace and subsequently to page code in from component files is also steadily growing. Details of the implementation of External Workspaces at SimCorp will be discussed – including some timings.
D14: Waste Time with John Daintree summary | video (47 mins)
John Daintree
Get your geek on with John Daintree as he has a devil of a time with JSON and Databinding. May contain images of partial nudity...
D15: Compilation and Bytecode Execution summary | slides (PDF)
Jay Foad
Dyalog version 14.0 included an experimental compiler for APL functions, allowing you to compile functions ahead of time and run them with an optimised bytecode execution engine. Dyalog version 14.1 greatly extended the support for compiling tradfns and for functions that reference other global functions, variables and constants. Jay will demonstrate these features and describe further improvements that are planned for the future.
D16: Future Operator Proposals: Cut, Under, Merge summary | materials (ZIP) | video (31 mins)
Roger Hui & John Scholes
Three operators are presented to stimulate discussion and feedback from the user community. Roger opens with:
- Cut: A dyadic operator that applies a function to the data cut by a leading or trailing separator, to a tessellation of the data, or to a rectangle in the data.
- Under (AKA dual): A dyadic operator f?g where
f?g ? ?? g?¯1 f g ?
? f?g ? ?? g?¯1 (g ?) f (g ?)
That under is a superior tool of thought is illustrated through examples.
John then looks at merge, exploring some suggestions for the functional merging of arrays as alternatives to the procedural mechanism of indexed and selective assignment.
D17: SharpLeaf : Flowing Automated Reports to Paper summary | slides (PPTX) | video (27 mins)
Nicolas Delcros
SharpLeaf is a typesetting and tabulation engine that allows automated production of high-quality reports using a simple yet powerful API. It is the replacement for NewLeaf, and will be bundled within the SharpPlot package. Nic takes us through why and how to use it.
D18: Uncle Andy's Fireside Chat v2.0 summary | slides (PPTX) | video (37 mins)
Andy Shiers
Last year Andy spoke about some of the new(ish) or lesser-known little features of Dyalog that are buried deep in the documentation. There's plenty that he didn't mention, and even more with Dyalog version 14.1, so he's back with the second in a potentially never-ending series of conversations...
As ever, let us know if there are any features that you think would make Dyalog easier to use.