Invited Guest and User Presentations
(03) Snooping with APL summary | video (62 mins)
Charles H. Brenner, Ph.D. (Consulting in Forensic Mathematics)
Charles is a world recognised authority in forensic mathematics – covering complex areas such as DNA identification, biostatistics and population genetics. His DNA•VIEW APL-based software solution is the acknowledged leader and is standard worldwide for DNA identification. The software has been used in countless cases; amongst others, the World Trade Center victim identification work, Tsunami victim identification in Thailand, mass identification projects including desaparacito children from El Salvador and war victims in Bosnia.
DNA identification is a fascinating, challenging and constantly expanding and shifting area of genetics susceptible to mathematical treatment, and for these reasons well-adapted to APL. The facets of identification include linking crooks to crimes, bashful fathers to parental responsibilities, grieving families to mass disaster victims and anxious heirs to family fortunes.
Identification regions of the genome are a set of short DNA neighborhoods ("loci") that are conveniently coded as numbers which may be analysed using mathematical programs implementing genetic and population genetic principles. The digital nature of the genome, in striking contrast to the generally analogue nature of biology, inevitably appeals to the programmer's intellect.
Consequently the talk, while based on the APL program DNA•VIEW which Charles has developed and distributed world-wide over the past 20 years, will concentrate on the science and applications more than the implementation.
Charles will be covering topics such as:
- Identification genetics
- Mathematical meaning of "evidence"
- Relatives in haystacks
- World Trade Center identifications
- Finding offenders who are not there
He will also be peering back 70 years through a bedroom window, revealing the secret parentage of six elderly siblings.
(05) Performance Improvements in Dyalog: A Case Study summary | materials (ZIP) | video (47 mins)
Roger Hui (J Software Inc.)
In the next version of Dyalog, some common Boolean functions will be improved by factors ranging from 2 to 1600. We work through one particular example, ?/[0]x, and cover:
- Basic Properties of Boolean Arrays
- Initial Ideas
- Key Idea
- Implementation
- Testing
- Functional Interface
(09) OO For The Elderly (In Case You Are STILL Wondering What All This OO Is Good for!) summary | slides (PPT) | slides (ODP) | slides (PDF) | materials (ZIP)
Dick Bowman
APL, like many APLers, has been around a long time and many successful applications have been built using time-honoured approaches. The arrival of object-oriented extensions has opened new avenues, but established APLers may not adopt these new language features without some sort of struggle.
In some ways this parallels the battles that were fought with the arrival of nested/heterogeneous arrays two decades ago, where established methodology appeared to be threatened by the new.
The idea of this presentation is to explore Dyalog's OO features through a back door, following a path taken by one elderly APL bigot – it may interest others who have a similar background, or newcomers wanting to make fullest use of APLs functionality.
The presentation will focus on "what" rather than "how" and does not set out to present Dyalog's OO features systematically, rather some of the ways that they can be used in application development. The scenario is "traditional desktop application", and code for a small application is included.
The idea is also to avoid the conventional software engineering "OO is best" brainwashing.
(11) New Keyboards: Keyboard Layouts in Practice summary | slides (PPS) | materials (ZIP)
Adrian Smith & Veli-Matti Jantunen
There are great benefits in having one (and only one) keyboard layout installed on your computer. In much of Europe, the use of the Alt Gr combinations works fine for APL, but some East European languages have problems freeing enough keys. It also appears that a number of applications (like Google Toolbar) have started to steal a few of these keys for their own purposes. This session is intended as a forum for APLers from far and wide to chew over the still-unsolved problem of how to type APL characters in a natural way.
(12) ADOC summary | materials (ZIP)
Kai Jäger (APLTeam)
With the introduction of OO in Dyalog Version 11, implementation details of a class remain hidden. The user of a class only needs to know about and deal with the public interface of a class. ADOC is a self-contained class designed to extract and report information about the public interface. ADOC is able to report public methods, fields and properties of any class, by request with detailed syntax information.
But ADOC can do more than that: following a small set of simple rules one can put fully-fledged documentation into a class. ADOC is able to extract these pieces of information and create either an HTML-report or an XML file from that.
According to the rule that documentation should be as close to the code as possible, ADOC supports this approach to the edge. Furthermore, ADOC in itself is an example of the great advantages the introduction of OO brought to the APL World.
(13) OO Stats – Performing Statistical Calculations using Dyalog APL summary | slides (PDF) | video (40 mins)
Alan Sykes (Acadvent Ltd – previously a Senior Lecturer in Statistics in the Business School at Swansea University)
The advent of the object-oriented features in recent Dyalog interpreters provides a new and exciting framework within which to construct software to analyse data. The talk will demonstrate statistical objects that allow an APL user to perform statistical calculations on realistic data sets that may well contain missing values. All statistical functionality is made available either directly from user commands from the session or, for more speedy data exploration sessions where a variety of alternative analyses might be envisaged, by using a menu-driven GUI version
(14) COPA-MS – A Look Under the Hood summary | materials (PDF)
Michael Baas, (DLS-Planung.de)
Co-manufacturing Management System (COPA-MS) is an application based on the Hologram BI-System from Dyalog's Australian distributor Hologram Pty. Last year, this project was mentioned in Michael Baas' & John Miller's talk on networking as the first fruit of the collaboration between Hologram Pty. and Dynamic Logistics Systems GmbH.
After the nice photos in last year's talk, this presentation will actually show code (in APL, VB.NET and JavaScript), demonstrate the application and discuss technical details. Michael will discuss lessons learned along the way to this 'mixed' implementation, which uses several different tools; for example, some of the "data management" of COPA-MS is done with VB.NET in ASP.NET 2.0, with ASPX-pages generated by a Dyalog 10.1-application, using specs from a MS-SQL database and template files.
(15) Gridifying FinE using the Techila Grid summary | slides (PPT) | video (43 mins)
Claus Madsen, (FinE)
FinE is a comprehensive set of advanced financial functions covering all aspects of risk management, valuation and analysis. FinE is a developer's toolkit. The core of FinE comes as a COM-object (DLL). This makes it easier to integrate into any analytical environment. Furthermore, FinE has a flexible and powerful Microsoft Excel Add-in interface and more than 1,500 pages in its HTML help-manual.
Keywords: Bonds, Forwards/Futures(CTD), FX-and Equity Options, Swaps, Caps/Floors, Swaptions, Capped-Floaters/One-Way-Floaters, Danish MBBs, Index-Bonds/Inflation-Swaps. Plus advanced tools for YC estimation, Correlation, PCA, Volatility and Risk-Management. Apart from this FinE comes with a generic database interface.
Techila Technologies was established in 2006 and is headquartered in Finland. Techila GRID has been created to offer organisations an innovative technology that helps them gain reliable computing power without a huge capital investment in new hardware.
The purpose of this presentation is to show a practical and real-life embedding of the Techila Grid Technology into a financial commercial product – FinE. The core part of FinE is an In-Process OLE-Server written entirely in Dyalog v.11.0.1.
In the areas of risk management and asset-liability-matching (ALM) there has always been a need for doing a huge amount of calculations on a whole range of different types of financial products. With the new rules for Basel II and Solvency II, this requirement has, if not increased, then definitely not decreased. Furthermore, some types of financial products are fairly complex, with makes valuation relative slow.
The solutions so far have relied on a combination of the following 2 statements:
Now, using the Techila Grid Technology embedded in FinE, we will demonstrate that it is possible to:
- Do more
- No need for over simplification
(16) Demo of an ASP.NET application with a Dyalog Engine summary | slides (PDF)
Chris "Ziggi" Paul (The Childcare Company)
The LASER application is an online training tool for teaching NVQ levels 2, 3 and 4 to nursery staff. The system has an ASP.NET front end with Macromedia Flash plug-ins but is controlled and managed by a Dyalog APL.NET program.
In this presentation you will see a demonstration of LASER and Ziggi also will show examples of some of the techniques used.
The system has a very simple and user-friendly front end, but the management of data and "Learners'" work is relatively complex. Facilities were needed for "Assessors" to view work and determine if "Learners" had achieved competency against a number of Performance Criteria. The performance of "Assessors" is reviewed by an Internal or External Verifier, and everything must be monitored and logged by the system.
The ASP.NET/Flash provides the eye candy, whilst Dyalog APL does all the hard work. To generate the lessons themselves the system provides approximately 10 ASP.NET template pages which can be populated from the APL, thereby enabling non-technical staff to generate content.
(17) Herding cats for fun and profit – growing your APL business summary | slides (PPT) | materials (ZIP) | video (40 mins)
Joakim Hårsman (Profdoc Care)
Profdoc is a leading provider of healthcare information technology. Profdoc Care makes Profdoc HIS – a medical record system, and has grown from 2 to 13 APL developers in just a couple of years. Joakim was there for the ride and will talk about what had to change as the numbers of programmers grew and how development at Profdoc Care works today.
Joakim will address the following issues:
- Why the idea that it's impossible to recruit APLers is nonsense
- What changed as we got bigger
- How to handle a ten-year-old code base weighing in at more than 300,000 lines and remain nimble
- The importance of tools, and the ones used at Profdoc
(18) Airline Revenue Management summary
Maurice Jordan (formerly British Airways)
Airlines believe good revenue management enhances revenue by 5% or more. In an industry that struggles to return profits of even this magnitude, it has spawned a small army of consultants and its own mythology.
The presentation will show a simple APL approach to "classical" revenue management. The underlying model for this classical formulation relies on the traditional complexity of airline fares, where very few people can navigate the range of fares on offer. Internet selling blows a hole in this model. The presentation will show how dynamic programming (sorry, nothing to do with dfns) indicates that a simple modification to the input data allows the original algorithm to be used in this new marketplace.
There are parallels in Financial Services and many other industries where there is a fixed resource to be allocated to products offering different levels of return (and risk).
(19) Heterogeneous Development with Maximum Reuse of APL Assets summary
Lars Stampe Villadsen & Martin Petri (SimCorp)
SimCorp Dimension is an investment management system used world-wide in more than 150 financial institutions.
A part of our current development strategy has SimCorp invested in implementing the .NET framework using the C# programming language and integrating with Dyalog APL.
The existing SimCorp Dimension APL codebase is huge, so it is important that as much as possible can be reused while using new features provided by .NET/C#. This presentation will include a live demo on how development in APL and C# can be done in parallel by adding features to existing core functionality while maintaining the integrity of the system as a whole.
(20) Serving Lunch with Dyalog APL summary | materials (ZIP) | video (45 mins)
Tommy Johannessen (Jersie Data ApS)
The application is used by 25,000 school children and their parents for ordering and payment of school lunches. The lunches are produced in 25 kitchens in different geographical locations all over Denmark.
Each kitchen has its own set-up and menu, and the application caters for the design, creation and running of individual kitchen websites.
The application further handles catering for businesses as well as meals-on-wheels programmes for pensioners. It is possible to order fast-food as well as cater for special dietary requirements and one-off events such as children's birthday parties at the local swimming pool.
In order to stay in sync with the users the application also offers an online survey facility.
Access to the application is through a standard web browser from PDAs and smart phones. Users also have the option of sending a text message from their mobiles.
The presentation will focus on how this success story started and demo the various aspects of the application.
We will hear about the challenges encountered along the way, look at IIS settings, memory leak, trap settings, sessions and user behaviour.
The technical aspects will focus on how we created the .aspx files, the file structure, backup procedures, communication between the servers and the call structure.
(21) PKZIP Your Files Using APL and .NET summary | slides (PPT) | materials (ZIP)
Gianluigi Quario (APL Italiana)
ICSharpCode.SharpZipLib.Dll is a .NET compression library that supports zip files using PKZIP 2.0 style encryption with GNU long filename extensions. It is written entirely in C# for the .NET platform. It is implemented as an assembly, and can thus easily be incorporated into other projects (in any .NET language). Two Dyalog APL functions are presented that create and use objects that are instances of .NET classes derived from this library and other .NET base libraries. These functions allow the compression and deflation of zip files
(22) The Array Constraint Engine summary | video (45 mins)
Gert Møller (Array Technology)
Array Technology is a provider of technology for solving complex constraint problems in real-time – on a very small memory footprint. The technology is used in a range of business applications, for example, for product configuration with a lot of business rules or constraints. The key to the performance of the technology is the use of nested arrays (array-based logic) for handling logical constraints with a multitude of combinations. Dyalog 8.2 was used for prototyping the first version of the technology, but Gert will present how the next generation of the technology may benefit from the power of the latest Dyalog releases.
(23) Pocket APL – GPS, Sudoku and ?NA summary | materials (ZIP)
Ray Cannon (Independent Consultant)
Notes on developing a system that runs under Dyalog PocketAPL, with two example applications and some utilities making ?NA calls, to the underlying operating system.
Ray will show what the differences between ?NA calls under the "standard" desktop Windows 32-bit API and WinCE are.
Extreme Sudoku: an example of a Dyalog application that runs on Desktops and PocketPC. Ray will show how to manage screen calls for both environments.
GPS-APL: A PocketPC application accessing GPS hardware via the GPSID interface built into Windows Mobile 5 and 6, but developed with APL/W. This includes information on using Windows Events and Wait loops for when ?DQ and the Dyalog supported Events are not sufficient.
(24) APL – An Excellent Return summary | video (44 mins)
Romilly Cocking (Cocking and Co.)
In this presentation Romilly will show how he's been using APL to explore and experiment with genetic algorithms.
Romilly has been interested in biology-based Artificial Intelligence since the 1970s. He's recently started to follow up on his early AI research. After great frustration using Python and Java, he's now using APL again, and is delighted to find that the environment is even more pleasant and productive than it used to be.