C1. Introduction to Object-Oriented Programming -
Classes were introduce into Dyalog APL in 2006, and are starting to appear in more and more applications, including utility libraries from Dyalog. This course takes a pragmatic APLer's eye view of object orientation. After introducing a little OO theory, the focus of the course will be on showing how OO has been implemented in Dyalog. Some time will be spent creating and using classes.
C2. Parallelization and Application Tuning Workshop -
Morten Kromberg and Michael Hughes
If you have code that you need to speed up, bring it along to this "hands-on" workshop – especially if you think it contains loops which are candidates for parallelization. After introducing tools that Dyalog has recently added to help locate and (with a bit of luck) eliminate hot-spots in your code, the idea is for the participants to do some assisted tuning. We will bring a couple of pre-cooked examples of code that we have recently speeded up along, but the workshop will only be a real success if participants bring their own code (for best results, the code should run under Dyalog 13.0, where all the tools are available).
Topics: ⎕PROFILE system function and the associated ]PROFILE user command (added in v13.0), "APLMON" for investigating how an application makes use of primitive functions and operators, the "Parallel Each" operator and the I-Beams that allow you to control the use of multi-threading by scalar functions.
C3. Web Applications WITH Microsoft.NET -
Learn how to build Web Servers and Web Services using ASP.NET under Microsoft IIS (Internet Information Services) –and how you can now also develop "Web Parts" for Microsoft SharePoint.
C4. Web Applications WITHOUT Microsoft.NET (aka Stand-Alone Web Applications) -
Dyalog APL integrates well with Microsoft web technologies for large and small enterprises, such as IIS, SharePoint and WCF. However, it is often desirable to build lightweight web applications on platforms where Microsoft.Net is either unavailable (under Linux or Unix), or adds unnecessary cost or complexity to a solution. Dyalog now provides tools which make it possible to build "industrial strength" web applications exclusively using tools which are either included with a standard Dyalog installation, or can be downloaded free of charge from our website.
The workshop will cover the MildServer, which is a simple but effective framework for building web servers, and SAWS (Stand-Alone Web Services). The course will also show how to set any Dyalog APL application up as a Windows Service (so that the application is started automatically when Windows starts, and can be started, stopped and monitored by operations staff).
C5. Using Excel to Produce Graphs and Reports under control of APL (Charting the APL/Excel Waters – Workshop) -
Richard Procter and David Crossley
The Windows COM (Component Object Model) interface standard is still useful to tie together applications on that platform, including APL applications. At Montreal's BCAResearch, an APL charting interface is now being extended with new links to Excel using COM, based on a suite of utility functions for APL & Excel integration developed by David Crossley. First we'll cover the basics of the APL-COM object interface - showing how APL can be integrated with any Office application. Next, we'll look at the Crossley toolkit for Excel, and discuss how it has been tailored to deliver specific charting functionality. Finally, we jump to the other side of the fence and explore how the same code in APL provides a template for VBA coding in Excel, pushing APL into the background as a server to the charting process.
C6. Windows Presentation Foundation -
Dan Baronet and Michael Hughes
Windows Presentation Foundation is a framework for developing Graphical User Interfaces. Although WPF is easy to use for simple GUI, it is designed to make it easy to provide separation between the user interface and business logic. You can drive WPF applications from APL, building GUI elements one by one in the same way as with ⎕WC. Alternatively, you can use XAML, which is a form of XML designed to represent user interfaces. XAML can easily be constructed using APL, but can also be designed using state-of-the-art design tools provided by Microsoft and third parties. By the end of the afternoon, we will have built a professional-looking application which includes spell-checking of input, integrated help, and a configurable toolbar.
C7- Productivity Tools for Dyalog Users -
This workshop will be an introduction to the use of new productivity tools for Dyalog Users. It will begin with the simple source code toolkit called SALT, and show how SALT can be combined with SubVersion and other sophisticated external source code management systems for use by team development.
Next, the workshop will look at User Commands, which are also based upon the same foundation: APL code stored in Unicode(typically UTF-8) text files. The workshop will introduce the collection of user commands distributed with version 13.0, and show how to develop and share your own user commands.
Finally, we will take a look at the tools that are available on the APL Wiki and talk about how to contribute to this open-source collection of tools for APL developers.
C8 - Unicode Conversion Workshop- Morten Kromberg
Since version 12.0, Dyalog APL has supported the full Unicode character set, and Dyalog now considers the "Unicode" edition to be the "mainstream" edition, while "Classic", with its special translate tables, is considered to be "obsolescent" – even though it will continue to be available for the foreseeable future. If you have not already done so, it is time to think about migrating your application to Unicode!
The first half of this workshop will be a refresher of the workshop that was held at Dyalog'08 (which can be viewed online here.). The remainder will be a hands-on workshop where participants are invited to bring examples of code, or descriptions of application architectures, for discussion and experimentation.
C9 - Building Secure Applications in Dyalog APL -
Hardly a week goes by without news of yet another breach of data. New security and privacy regulations and guidelines are issued by governments and industry groups at an ever increasing pace. The consequences of failing to secure data and intellectual property are numerous and include damage to corporate reputation, financial loss, liability, fines, sanctions, and other penalties.
This workshop will examine the need to provide secure applications and will cover a variety of tools and techniques to help you secure the data and intellectual property contained in your applications. We will introduce the Dyalog Cryptographic Library, a comprehensive tool set for all manner of cryptographic applications. We will examine methods to securely send and receive data, prevent tampering while in transit, and validate the authenticity of the sender.
We will also cover secure communications using Conga, Dyalog's TCP communications tool kit. Finally, we will look at other techniques to enhance your application's security.
C10 -Conference Edition Workshop - Jay Foad, John Scholes, Roger Hui
A "2011 Conference Edition" containing a number of experimental language features will be available to all conference delegates. The designers of many of the new features invite you to join them for a review and open discussion of the new language features.
Gitte Christensen, Managing Director, Dyalog Ltd.
Welcome to Dyalog’11 at the John Hancock Centre in Boston!
Road Map Part 1 – The Blue Hills Morten Kromberg, Technical Director, Dyalog Ltd. Morten will present an overview of Dyalog’s Technical Road Map. Keywords: Portability, Performance and the Power to express solutions.
Road Map Part 2 – The Next Intersection John Daintree, Chief Architect, Dyalog APL, Dyalog Ltd. John will talk about features of Dyalog APL that Dyalog plans to release in 2012 – including the new Remote Development Environment (RIDE) and key features of version 13.1.
Introducing the Dyalog’11 Conference Edition John Scholes, Roger Hui, Dyalog Ltd.
This year, the “Conference Edition” is an experimental interpreter containing the results of a number of research projects, rather than an early version of the next commercial release. The Dyalog’11 CE includes support for Rational Numbers, Verb Trains (Hooks/Forks), “Right Operand Currying”, and some experimental uses of the Variant operator. John and Roger will introduce some of these features and invite you to attend in-depth presentations later in the conference.
Rational Numbers Roger Hui, Dyalog Ltd.
The Dyalog'11 Conference Edition has an implementation of rational numbers. A rational number is a pair 12345r678 (numerator, denominator) of integers with an arbitrary number of digits. Rational functions applied to rational arguments produce rational results; other cases work as before. Further, a new function is provided to work with prime numbers.
Function Trains for Dyalog APL John Scholes, Dyalog Ltd.
Function trains (Hooks and Forks) have been a hallmark feature of the J programming language. John will demonstrate trains in Dyalog and discuss some possible differences from the J definition.
Closures John Scholes, Dyalog Ltd.
A closure is a function, bound with a symbol table, which supplies values for any non-local names. An example might be the binding of ⎕IO=0 with the ⍳function. Further, "Mutable Closures" allow the maintenance of local state between invocations of the function and can be used to implement a "poor man's OO".
Closures have recently made an appearance in a number of new languages and John will revisit Dyalog's experimental implementation, first shown at Dyalog 2006.
APL# Jonathan Manktelow, Morten Kromberg, John Scholes, Dyalog Ltd.
APL# (pronounced “APL Sharp”) is a new dialect of APL designed with object oriented virtual machine platforms in mind, such as Microsoft.NET. Designing APL# provides us with an opportunity to rationalize the language specification and produce a “modern” APL interpreter, which also has a more “functional” flavour. We will be presenting the current language specification, parts of which has changed significantly since APL2010, and demonstrating the latest incarnation of an experimental APL# interpreter.
Introducing the APL Tools Group Brian Becker, APL Tools Group Manager, Dyalog Ltd.
In January 2011, Dyalog formed the APL Tools Group to identify and develop software tools for Dyalog APL users. In this presentation, Brian Becker, APL Tools Group Manager, will present an overview of the tools currently available from Dyalog, including SQAPL, Conga, SAWS, MildServer, the Dyalog Cryptography Library, SharpPlot and NewLeaf - and several other workspaces supplied with Dyalog APL. Brian will then discuss tools that are currently in development or are planned for the near future. This is to be an interactive session, so please come ready to ask questions, discuss the tools you think we need to build, and explore ways that the APL community can share and exchange tools.
Dyalog in the Enterprise Morten Kromberg, CTO, Dyalog Ltd.
Following on from Brian’s talk, Morten will go into a little more detail on tools which may be of particular interest to large and medium-sized organizations and applications (without suggesting that the tools are not interesting in other contexts). Topics covered will include:
The Component File Server (remember the SHARP APL and STSC SHAREFILE systems?)
SQAPL Server (your application as an ODBC, JDBC or ADO data source)
Stand-Alone Web Services (SAWS)
The Dyalog Cryptographic Library
Source Code Management using SALT
Developing SharePoint WebParts in Dyalog APL
Parallel Each in the Clouds
Focus on Performance Jay Foad, Dyalog Ltd.
First, Jay will talk about performance measuring tools that Dyalog has implemented in recent releases, to help you locate hot spots in APL applications: ?PROFILE which can be used to “profiling” your application code, and APLMON which can be used to profile the interpreter while it is running your application.
Secondly, Jay will talk about ideas which he is working on, which aim to significantly reduce the interpretative overhead of Dyalog APL by partially or completely compiling APL functions.
The Doctor is In Andy Shiers, COO, Dyalog Ltd.
Andy (re-)joined Dyalog in 2009 to help us focus on Customer Support and Quality Assurance. In addition to talking about his plans for reminding both developers and managers of the need to keep that focus, Andy will present a number of helpful tips and tricks that he has discovered while testing and providing support for Dyalog APL. Recently, Andy assumed the role of Chief Operating Officer, and in this capacity he will also talk about some of the plans for systems that Dyalog makes available to customers, such as the DSS system for downloading patches and the Forums.
Windows Presentation Foundation Michael Hughes, MJH Software Services Ltd.
Windows Presentation Foundation is a framework for developing Graphical User Interfaces. Although WPF is easy to use for simple GUI, it is designed to make it easy to provide separation between the user interface and business logic. You can drive WPF applications from APL, building GUI elements one by one in the same way as with ?WC. Alternatively, you can use XAML, which is a form of XML designed to represent user interfaces.
In collaboration with Dyalog, Michael Hughes is developing a WPF Tutorial and other training materials. For those who do not have time to attend the half-day workshop on WPF that Michael and Dan Baronet are giving on Sunday afternoon, this session provides an opportunity to get a more condensed introduction to WPF and the new materials.
APL + R: An Example of Perfect Synergy! Prof. Alexander (Sasha) Skomorokhov, National Nuclear Research University, Obninsk
“R” (http://www.r-project.org/) is a free software environment for statistical computing and graphics, which has become very popular in recent years. This winter, Ronald Chan, winner of the APL Programming Contest in 2009, implemented an interface to R during his internship at Dyalog. Professor Skomorokhov, who has written an interface to R of his own in the past, has been putting the new interface through its paces.
Contest Prize Ceremony Joel Hough, The University of Utah
The third annual Dyalog Programming Contest was held in 2011. 130 educational licences were downloaded, and a number of excellent submissions were received. Following the prize presentation, Joel will tell us about the experience of learning APL, and explain some of the winning solutions.
Interactive Road Map Session Team Dyalog
As the conference draws to a close, we invite you all to discuss the overall direction and product features that have been presented during this year’s conference. What should take priority? Is there anything missing? All Dyalog conference delegates will be present.
See You in Elsinore for Dyalog’12 Gitte Christensen & Morten Kromberg, Dyalog Ltd.
A Roundabout Rescue -
(from 386-DOS to 64-bit Windows in 6 Easy Steps) Adrian Smith, Causeway Ltd.
Barry Crown is a world expert on traffic circles ("roundabouts" in the UK). Like many domain experts, he has written a little bit of very clever APL code to help him along, which he then sold to traffic engineers to help them along too. Unfortunately it is coded in APL*PLUS/DOS and it just stopped working. This is the story of the rescue process, spiced with some of Barry's wilder stories from the history of roundabouts, good, bad and ugly.
Optimising Matrix Operations Eugene Ying, Fiserv Inc. In the business world where APL is being used to perform large scale data processing, data matrices tend to be very large, with millions of rows and thousands of columns of data. In many cases, the data matrix is so large that we can only fit a small slice of it in our computer memory. When you work with a very large matrix inside a loop that consists of millions of iterations, optimizing matrix indexing is important in reducing the functions' run time. There are many cases where an application program running for over 24 hours can be reduced to 12 hours or 6 hours run time when the data indexing has been optimized. This presentation introduces several techniques that can be used to optimize APL matrix indexing based on the presenter’s experience with very large data matrices and spreadsheets.
APL from 3 sides of the fence Paul Grosvenor, Optima Systems Ltd. Simon Fitall, Galileo Analytics Anna McCollister-Slipp, Galileo Analytics
For many years we have been talking about how APL is perceived by our prospective clients and what is expected when new systems are delivered. Today, the expectation is much higher than ever before, which in turn offers us new challenges and opportunities. This non-technical discussion looks at APL from the perspective of three people;
Unfortunately our client is unable to attend the conference so instead Paul Grosvenor will explain his situation from the point of view of someone with many years’ experience in IT but no in-depth knowledge of APL. His company merged with another who already had products written in APL and as a result, he was forced to adopt a number of systems for which he had little understanding of, nor desire to continue with, in their current form. His position is one we may all be familiar with but the outcome may be very different …
Our second view is from Simon Fitall, CEO and co-founder of Galileo Analytics. He has been using PC APL for many years in a number of companies to great effect. He will detail why APL has worked for him, why he continues to make use of it and why he is happy to develop new systems with it.
Our final view is from Anna McCollister-Slipp, Chief Marketing and Communications Officer of Galileo Analytics. She has no technical knowledge of APL or wish to gain any but her primary interest is making her products look different. Today, our customers expect a much richer and better designed interface than before and usually they are well versed in the use of GUI to best effect. Anna’s challenge is to make a ‘standard’ [APL] application stand out from the crowd, to be just a little different and gain that essential first look ‘wow’ factor.
Finally, Simon will take us on a very quick tour of one of our recent applications, COSMOS, which fuses together Flash and APL to produce a new, web delivered, application that looks and works just a little bit differently.
Paul Grosvenor, Optima Systems Ltd.
Optima has spent the past 12 months or so developing a new Clinical Data analysis system called COSMOS which is just about to go into production and be used in anger for the first time. It is being discussed briefly in the ‘APL from 3 sides of the fence’ presentation as well but this talk goes into much more of the technical aspects of its design.
COSMOS is a brand new product for us and it is designed to allow Researchers, Practitioners, Pharmaceutical companies etc. to view their clinical data in a more ‘organic’ way. Our system makes no assumptions on what the data means other than what is necessary to be able to display it. COSMOS therefore presents an un-biased view of the information and, by using as much data as it can, provides a more complete picture of what is going on in the real world.
The aim was to be able to show multi-variant, time series, clinical data on screen in an intuitive way and allow the user to identify data ‘hot spots’ both quickly and easily.
We hope to show how the design has developed over the year, what we were trying to achieve and how some of the code modules work together to produce the final result.
Towards a Professional APL Development Environment Paul Mansour, The Carlisle Group
It takes more than three chords and an old guitar to become a country music star, and it takes more than a workspace full of code to produce a professional APL application. This presentation will cover some of the issues that arise when making the journey from coder to developer, with a particular focus on automated testing, including the automated testing of GUI code.
Charting the APL/Excel Waters Richard Procter, APL Borealis Inc and David Crossley, Gnosis Services
The Windows COM (Component Object Model) interface is still useful to tie everyday applications together with APL. At Montreal's BCA Research, the primary APL application produces charts for global investment research. Dyalog's native W... functionality has been successful for its ease of customization and flexibility - thus far - in delivering these charting results and analysis to internal staff and customers, but the need for integration with the dominant office and online platforms continues to drive innovation.
Hence, based on a suite of utility functions for APL & Excel integration developed by David Crossley, two new tools are emerging for BCA researchers to deliver charting functionality beyond the APL workspace. The "XLCHART" function manipulates the Excel object to chart timeseries data - according to "BCA standard" features. The same charting code was then used to create "BCAXL", an Excel spreadsheet that uses the APL OLE server object to retrieve and chart BCA timeseries data, using VBA. The Crossley toolkit, limitations, lessons learned and future goals will be discussed.
Migrating SimCorp Dimension to 64-bit Dyalog v13.0 Stig Nielsen, SimCorp A/S
SimCorp Dimension is an integrated single database investment management system mainly based on Dyalog APL, partly C#. As our customers grow in size, so do the data volumes handled in the system. To meet the request for handling larger data volumes, going 64 bit is the obvious and easy choice due to the increased address space. Stig will take you through the steps needed, and the pitfalls to be aware of, to get successfully through the migration process and finally release the product. The main challenge was actually the explosion in memory usage, but also to get all the interfaces to e.g. external C-libraries and third party products changed.
Vstar: A high-performance, full-featured database system implemented in J Eric Iverson, Vectornova Inc.
Vstar has similarities with MySQL, Oracle, DB2, kdb, etc. Vstar has differences that might interest you. It is implemented in J and is open source. It has been under development by Vectornova for more than a decade and has evolved through serious production use and is now in its 4th generation. Although not targeted in any sense at APL applications, the architecture and mindset might have particular appeal to APL developers. Although all client types are supported, the natural fit with APL clients can be rewarding. Vstar has SQL, but real power comes from non-SQL based on decades of APL and J array language development. The presentation will be informal and focused on architecture and design goals, rather than confusing demos of blistering performance.
Co-operators Phil Last, Independent Consultant
Phil has had a long interest in extending the language with user defined operators, thinks too little use is made of them and believes that many APLers are a bit afraid of them.
He will develop one or two of them before your eyes and perhaps demonstrate one or two more.
At least one of them is actually quite useful and he cherishes a hope that one day it will be implemented as a primitive.
Index Vector Scalarization in High-Performance Array Computation Robert Bernecky, Snake Island Research Inc.
Most of the research into creation of high-performance code for compiled array languages has focused on optimizations for array operations, including such methods as loop fusion and array contraction, with-loop folding, with-loop fusion, and loop peeling.
Such optimizations can improve the performance of array-based applications by increasing the level of available parallelism, by reducing memory subsystem traffic, by increasing locality of reference to array elements, and by amortizing loop overheads over several related computations.
However, it turns out that, for many applications, small arrays, such as index vectors, are a curse, because of the overheads associated with their creation, initialization, and destruction.
When such arrays are materialized in the inner loops of computationally intensive code, substantial performance loss -- up to two orders of magnitude -- can result.
Our recent work attempts to address this problem by rigorous scalarization of index vectors.
Our preliminary work shows significant performance improvements in many of the APEX benchmarks, as a result of such scalarization. Our talk will show why scalarization is needed in practical applications, will describe scalarization, and will present our current research results.
Monday October 3:
What is Functional Programming? (D18) John Scholes and Roger Hui, Dyalog Ltd.
Roger Hui and John Scholes will attempt to address this tricky question in an open forum with examples from J and D. We will try to understand why adopting the functional approach might produce programs that are both more efficient and less error-prone.
Tuesday October 4:
Cocktail party and Banquet dinner
Time to dress up or down, according to your custom.