Invited Guest and User Presentations
(03) Keynote: Vectors – Lightning in the Clouds summary
Dave Thomas (Bedarra Research Labs, Object Mentor at Carleton University and Queensland University of Technology – www.davethomas.net)
Dave Thomas has a wide spectrum of experience in the software industry as an engineer, consultant, architect, executive and investor. He is the Founder and Chairman of Bedarra Research Labs – a company specialising in emerging software technologies and applications. Bedarra provides virtual CTO and CEO, as well as directors, advisors and business mentors to support new initiatives. He is also the Managing Director of Object Mentor – a company specialising in the training and deployment of agile and object-oriented software development methodologies.
In this talk we briefly discuss global trends in software development and the barriers facing major software development efforts. Next we discuss Cloud Computing platforms and the programming challenges associated with using them. We argue that there is a large class of business and engineering applications that need a radically different approach. Domain oriented programming supports rapid development of high performance applications by small teams of knowledgeable end users. We discuss the essential features of domain oriented infrastructure and application programming. It is our thesis that vector functional computing is a core part of a DOP infrastructure.
(04) A Programming Language – The Movie summary
Catherine Lathwell (Lathwell Productions)
Catherine Lathwell's involvement with APL and the APL community is literally a life-long experience. As the daughter of Richard Lathwell, one of the original developers of APL recruited by IBM in 1966, she officially started her career at age sixteen as a summer student in the Operations department of IP Sharp in Toronto in 1981. This first job evolved over the years into a fully-fledged career where she moved through the ranks as a Sharp APL in-house support representative, APL programmer and research and development manager with Reuters. Who remembers MRD?
At the same time, Catherine nurtured a love and interest in the visual arts and storytelling, graduating with distinction from the University of Toronto in Fine Arts and English Literature in 1994. Then, in 2003 she entered an exclusive post graduate programme at the Canadian Film Centre specifically designed for people, like herself, with competencies in both technology and the arts. It was while she was in this programme that she fell in love with video and began dreaming of making a film about APL.
APL in Cyberspace
Catherine will talk about APL's presences in cyberspace, and how the by-products from her film are filling some spaces there. She will also premiere an excerpt from her latest short interview.
(07) Building an APLer (intro to the online tutorial) summary | slides (PPT) | materials (ZIP) | video (35 mins)
Gary Bergquist (Zark Incorporated)
Given the scarcity of APL programmers, it's good to know there is a practical alternative to an exhaustive search. You can build one, and the process is not especially daunting or time-consuming.
Gary Bergquist will take you through the steps Zark follows to fill an open APL position. The blueprint and instructions are straightforward, the effort is nominal, and the results are outstanding. Moreover, by building your own APLer, you get exactly what you're looking for, a programmer "built to spec."
One of the tools used by Zark in this process is the Zark APL Tutor, a computer-based training program that has been training APLers for years. Now it's available on the Internet; it speaks Dyalog APL and it's free!
(08) APL in Second Gear summary | slides (PPT) | materials (ZIP) | video (35 mins) | video (38 mins)
Gary Bergquist (Zark Incorporated)
If you use and love APL, as we all do, it's normal to wonder and worry about its future. Are APL and I on the same evolutionary path? Will we grow together or will we go separate ways? To answer these questions, we need to do some soul-searching.
What is the point of APL? What sets it apart? What defines its life cycle? Who are the players in a successful APL application? What roles do they play? What role do I want to play in that drama? How can I prepare myself?
In this session, we will wrestle with the answers to these questions, as Bergquist presents his own world-view. In that view, he imagines the sound of the APL engine whining like crazy, waiting for us to finally shift into second gear, and pull away from the pack.
(13) Introduction to Design Patterns for APL Developers summary | slides (PPT) | materials (ZIP)
Alexander Balako
With Version 11 Dyalog introduced object orientation. This allows for defining classes in APL. In addition to providing a powerful tool of thought, APL classes provide much better integration with .Net, allowing APL classes to derive from, or be used as base classes of .Net classes written in C# or other languages (for .Net versions 1.1 or 2.0). With the introduction of object orientation, APL Developers were also faced with the challenge of considering application development using object oriented programming.
Design patterns are reusable templates of solutions for commonly occurring problems in software design. In this presentation Alex Balako will demonstrate the usability of patterns and how they may help to solve design problems.
P.S. If you haven't yet had the opportunity to familiarise yourself with the concept of object oriented programming using Dyalog we can recommend that you read Introduction to Object Oriented Programming for APLers which you can download for free on http://stores.lulu.com/dyalog.
(14) Acre – APL Code Repository summary
Phil Last
Written entirely using dynamic functions, Acre is a fully-featured source code management system that uses a remote FlipDB™ relational database to store functions, operators and namespace/class scripts in a number of tables that (can) reflect the namespace structure of your application. It:
- works via TCP using Conga to manage the efforts of an international team of developers
- protects developments by saving both locally and remotely
- prevents "leapfrogging"
- overcomes change conflicts between users by facilitating merging of concurrent changes
- permits multiple concurrent development sessions by a single user
Changes are reversible across consecutive sessions at both local (private) and global (public) levels
(16) Winning the Dyalog Programming Contest 2009 summary | materials (ZIP) | video (58 mins)
Ronald Ping Man Chan
Before the Dyalog Programming Contest, Ronald Ping Man Chan, soon to be Bachelor of Engineering (Mechatronics), University of Auckland had no APL experience. He is going to tell us the story of how he learned the language and how he attacked the problems in the contest so well that he ended up winning first prize.
(17) Building a Web Application with Dyalog APL and ASP.Net summary | materials (ZIP)
Robert Pullman (Managed Account Performance Solutions)
Recently Robert Pullman collaborated with an ASP.Net developer to build a web application. The APL components turned out to be remarkably easy to write. The learning curve was surprisingly shorter than with other platforms (DOS, Windows, UNIX). The APL components perform financial calculations without any burden of presentation, communication or database interaction. In this presentation Bob will focus on what it takes to create APL components for web applications.
(20) Bio-Check (or, I'm feeling well and can prove it) summary | video (25 mins)
Gilgamesh Athoraya (Optima Systems)
Gilgamesh is a relatively new entrant into the APL scene but he has, as they say, taken to it like a "duck to water". In the few years he has been working with Optima he has shown an aptitude for the language that is second to none and has great rapport with our customers. When he is not programming in APL, Gilgamesh works toward his Masters which forms the basis of his talk.
In the medical industry there is often the need to monitor the progress of patients or participants in clinical trials. Traditionally this has been very hit and miss, and in some cases quite invasive. The information collected was often of low quality and sometimes arrived too late to be of any use.
The idea was to find a way of collecting a variety of Bio-Markers (temperature, pulse, heart rate, and so on) together with user appended information then collect, transmit, analyse and report all in real time. This is actually not a new idea and has been marketed by a variety of companies for some time, however, the use has primarily been for the family practitioner rather than the pharmaceutical industry.
The solution being adopted is to create a number of Bio-Sensors which will transmit collected data via Bluetooth connections to a PDA or SmartPhone running Dyalog's Pocket APL. Once collected, the information can be displayed as appropriate and the patient can annotate if they so wish. All of the collected data is then transmitted conventionally to a web server where the researcher can analyse then report as needed.
The overall solution uses many different skills and technologies and has been an interesting project to work on. It also allows the easy interface of the collected data with existing analysis and presentation tools – also written in APL of course.
(21) APLAPL: A Programming Library in APL summary
Kai Jäger
Sharing code is something quite unusual in the APL world, and always has been. For decades technical reasons could be blamed: integrating someone else's code was close to impossible due to potential name clashes and side effects. With the introduction of classes in Dyalog this is history. It is very easy now to use code written by someone else.
The APLAPL project tries to establish an open source library with classes designed to solve every-day tasks every programmer is likely to face. It follows a number of standards to ensure quality of both code and documentation. These standards will be discussed. In a small sample project Kai will show us how to find, download, get acquainted, test, integrate and use some of the classes available on APLAPL.
(22) Put an Array on your Tray – Meal Planning with Pocket APL summary | slides (PPT) | video (37 mins)
Richard Procter (APL Borealis)
Mealtracker Dietary Software has used Pocket APL to deliver hand-held menu planning and meal consumption data collection at U.S.-based long-term care facilities for several years. Detailed room-to-room feedback collected by nutritionists allows these facilities to fine-tune their menu preparations and food inventory, reduce food waste and accurately deliver correct daily nutrition to facility residents. Two Pocket APL applications have been developed and continue to evolve – now deployed at several institutions. Various challenges and lessons encountered along the way will be discussed.
(23) Keynote: Arrays in Real Life summary | video (63 mins)
Gert Møller (Array Technology)
Many diseases are multi-genetic in the sense that only certain combinations of SNPs (and associated genes) will cause the disease. The big technological challenge is that a huge number of SNP combinations must be tested to identify groups of patients with common SNP profiles. Nevertheless, we have succeeded in identifying certain SNPs causing bipolar disorder. This work has been carried out in a joint research project between Array Technology A/S and the Institute of Neuro Science in Copenhagen. Gert will present the results of the project and the use of nested arrays for representing complex SNP patterns – and some benchmarks with the new PEACH operator in Dyalog.
(24) The Key West Project – Why my mother-in-law has special serving dishes for corn on the cob and I don't – or – Technology Stack: APL, APL, APL and APL summary
Paul Mansour (The Carlisle Group)
Conventional wisdom has it that it is best to use the right tool for the right job. Scorn is heaped upon those troglodytes who, armed only with a hammer, treat every problem as a nail. But every tool comes with costs: a cost to purchase, a cost to learn how to use, a cost to integrate with other tools and a cost to maintain. These costs are often drastically underestimated and may outweigh any benefits. More importantly, a program is not a hammer and programming is not carpentry. Programming is programming, software is software, and analogies to all other forms of human endeavor break down on even cursory inspection. However, these observations are only tangential to the point of this presentation, which demonstrates wrapping up the awesome power of the Dyalog APL interpreter in a few trivial cover functions to create a new product without cheating on your licence agreement. Topics to be covered include relational database theory, domain specific languages and interpreters, object-oriented programming and of course, dynamic functions. There will be nothing about XML. This is a PowerPoint-free presentation.
(25) Tables, Buttons, Flash and Spinning Images summary
Chris "Ziggi" Paul (The Childcare Company Ltd.)
After explaining why APL was chosen for a non-traditional APL application last year, Ziggi returns to show how ASP.NET can act as an effective GUI for an APL engine, using as an example "The LASER", an e-learning system designed for nursery practitioners by The Childcare Company. He will demonstrate the various techniques used in the "Big & Chunky" visual style to make an APL system look modern and accessible to people with little or no IT experience. The LASER system was designed to meet the various learning styles so uses video, games, web hyperlinks and good old-fashioned text to make sure that everyone is catered for.
The system uses Flash Plug-in, embedded video and even utilises Visual Basic freeware where useful, all controlled and monitored from Dyalog APL.
(27) Emulating an APL+Win Application in Dyalog APL summary
Joachim "JoHo" Hoffmann (J Austria)
In this talk the experiences of emulating an APL+Win GUI application, namely ConDim by Thomas Lorenz ZT GmbH in Europe, are reported. ConDim is an intuitive program, used by civil engineers to check compliance with various structural standards, e.g. Euro Standard. The APL+Win emulator running in Dyalog APL V12 Unicode is presented and the rationales it is based on, in contrast to a complete rewrite. We close with a discussion of future improvements of the APL+Win emulator.
(28) The "Scratch" Multimedia Programming Environment for Children using APL summary | slides (PPS) | materials (ZIP)
Steve Halasz (Fiserv)
This talk explores a new way of writing APL, inspired by the "Scratch" multimedia programming environment for children developed by the Lifelong Kindergarten group at MIT Media Lab. A prototype APL programming environment will be demonstrated which supports features found in Scratch: creating and editing expressions using "drag and drop" within independently executing tabbed "workspaces" associated with animated graphical objects.
(29) Cuda Libre – A Pioneering Approach to Parallel Array Processing in Quantitative Finance summary | slides (PDF)
Yigal Jhirad & Blay Tarnoff
Yigal Jhirad and Blay Tarnoff will discuss the application of CUDA within APL to leverage the NVIDIA GPU parallel processors and supercharge quantitative and derivatives trading and risk models. APL-CUDA is a powerful means to exploit existing and future multi-processor technology and more efficiently drive mathematical and econometric applications.
Yigal D. Jhirad is a senior vice president at Cohen and Steers. He is a portfolio manager and director of quantitative and derivatives strategies. Prior to joining Cohen and Steers, he was an executive director and head of portfolio and derivatives strategies at Morgan Stanley. He was responsible for developing, implementing and marketing quantitative and derivatives products to hedge funds, active and passive funds, pension funds and endowments.
Blay A. Tarnoff is a senior project manager and applications developer. He specialises in array based languages and has developed equity and equity derivatives applications for program trading, proprietary trading, quantitative strategy and risk management. He was most recently a senior consultant at Morgan Stanley where he developed quantitative and real time trading and risk technology.
(30) Amazing Performance Looms summary | slides (PDF)
Robert Bernecky (Snake Island Research Inc)
Array languages, despite their proven advantages in time-to-solution and terse expression, continue to have a reputation for poor performance compared to imperative languages, such as C and Fortran. That reputation is about to change, thanks to recent advances in array compilation theory, APL's inherent parallelism and the many-core computers that are now commonplace.
We will showcase the state of the art of array languages, pitting interpreted APL code against compiled APL against Fortran 77 and Fortran 95, in both serial and parallel environments. We will also outline how we propose to close the remaining performance gap between interpreted APL and compiled array languages.
(31) Young APLers Panel – New Views on APL summary | slides (PPT) | video (60 mins)
Moderator: Stephen Taylor
Panellists: Ronald Ping Man Chan, Brendan Duncan, Kendall Alvarez Eskew
This year, we have assembled a panel of APL programmers who either started using APL recently, or who regularly update their view of APL by combining APL with other technologies. In other words, people who can remind those of us who now take APL for granted what it was that they found attractive about APL – but also let us know about things that they think we might want to add or consider changing. We're hoping that this panel can point out a few tricks that old dogs should consider – or even, dare we say, deliver a couple of well aimed kicks! Each of our 3 panellists will have 4-5 minutes to present their "position", leaving 20 minutes for what we hope will be a lively discussion.
Ronald Ping Man Chan – Winner of the Worldwide Computing Programming Competition 2009 – soon to be Bachelor of Engineering (Mechatronics), University of Auckland. Before the Dyalog Programming Contest, Ronald had no APL experience.
Brendan Duncan – Brendon is a new APL convert, having used it over the past year as a component in risk management software at a Fortune 500 company, SunGard Data Systems. In his decade in the software industry, he has developed commercial products in 10 different languages on various platforms, all the way from 8-bit microcontrollers, to mobile devices, to enterprise-level PC applications.
Kendall Alvarez Eskew – Kendal is an associate software developer with Fiserv Investment Services. He started studying computer science at New Jersey Institute of Technology, in Newark, New Jersey in 2004. After a year of taking Java classes, he switched to a degree in Mathematics of Finance and Actuarial Sciences, graduating cum laude in December of 2008. Before graduating though, he found he had returned full circle, working as an APL programmer at Fiserv Investment Services. With little programming experience, and no programming practice for several years, APL baffled him at first glance, but came quickly into focus after a little study. Kendall has worked at Fiserv for a little over a year, and has used that time to expand his knowledge of APL, UNIX, and more recently Dyalog APL for Windows, Python, Haskell and Ruby.