
Morten Kromberg
Specialises In
Morten Kromberg has been developing applications and tools for developers in APL since 1979 – almost ¾ of the time that has passed since the first APL interpreter saw the light of day in 1966 (coincidentally, this is roughly the same fraction of his own life). Amongst other things, he was the CTO of Adaytum Software from 1995 to 2000 (http://www.thefreelibrary.com/Adaytum... where he was responsible for the development of a highly successful business planning solution based upon APL, which was subsequently acquired by Cognos and is currently known as IBM Cognos 8 Planning.
Since 2005, Morten has been the CTO of Dyalog Ltd (www.dyalog.com) , which has become the fastest-growing vendor of APL interpreters, based in Bramley (Hampshire), UK. Morten is a frequent speaker at APL conferences, and presented a paper titled “Arrays of Objects” at 2007 the symposium on Dynamic Languages, on the integration of object and array paradigms in Dyalog APL (http://portal.acm.org/citation...).
More at http://www.dyalog.com/blog/about-the-cto/.
-
keyboard_arrow_down
APL Workshop Intensive
Aaron W HsuComputer ScientistIndiana UniversityMorten KrombergCXODyalogschedule 1 year ago
Sold Out!480 Mins
Workshop
Beginner
This is an intensive workshop for those who are interested in learning how to think, read, and write APL. It will help give you the tools, mental framework, and structure for doing things "the APL way." In this workshop, you will have the chance to spend intensive time thinking like an APL programmer. What makes it different? How does the code look at the end? What thought process do you go through to get there? Get a chance to play around with a wide array of problems and solving them "the APL way."
Taijiquan Classics say, "Four ounces deflects a thousand pounds."
APLers might say instead, "Fifty characters solve a thousand problems."
-
keyboard_arrow_down
Delivering your APLs
45 Mins
Tutorial
Beginner
Most talks on APL at FunctionalConf have focused on the way array oriented programming allows you to quickly deliver concise and efficient solutions to problems with an analytical core. This talk will focus on the development environment, and follow the life of an APL code snippet from it's interactive discovery, via testing and debugging, through to delivery as a web service and a shared object, embedded into a solution implemented in Python.
-
keyboard_arrow_down
APL Workshop Intensive
Aaron W HsuComputer ScientistIndiana UniversityMorten KrombergCXODyalogschedule 2 years ago
Sold Out!480 Mins
Workshop
Beginner
This is an intensive workshop for those who are interested in learning how to think, read, and write APL. It will help give you the tools, mental framework, and structure for doing things "the APL way." In this workshop, you will have the chance to spend intensive time thinking like an APL programmer. What makes it different? How does the code look at the end? What thought process do you go through to get there? Get a chance to play around with a wide array of problems and solving them "the APL way."
Taijiquan Classics say, "Four ounces deflects a thousand pounds."
APLers might say instead, "Fifty characters solve a thousand problems."
-
keyboard_arrow_down
Array-oriented Functional Programming
Aaron W HsuComputer ScientistIndiana UniversityMorten KrombergCXODyalogschedule 2 years ago
Sold Out!90 Mins
Workshop
Beginner
APL is the original functional programming language, the grand-daddy, the Godfather, and the old workhorse. But don't let Grandpa's age fool you. APL programmers have been leveraging the use of functional programming with arrays long before it was cool to be chasing pointers in an ADT using statically typed pattern matching, and they've refined their own style and approach to getting the most from a "functional paradigm."
In this workshop, you will have the chance to spend some time thinking like a functional array programmer. What makes it different? How does the code look at the end? What thought process do you go through to get there? Get a chance to play around with some classic problems and try solving them "the APL way."
Taijiquan Classics say, "Four ounces deflects a thousand pounds."
APLers might say instead, "Fifty characters solve a thousand problems."
-
keyboard_arrow_down
Code Jugalbandi - Exploring Concurrency
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Morten KrombergCXODyalogschedule 2 years ago
Sold Out!45 Mins
Demonstration
Beginner
In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.
In a similar way, we will perform Code Jugalbandi (http://codejugalbandi.org) to see how the solution looks using different programming languages. This time the focus of Code Jugalbandi will be on exploring concurrency models in different languages. Functional Programming has made programming concurrency easier as compared to imperative programming. For deeper perspective on Code Jugalbandi, check out http://codejugalbandi.org/#essence-of-code-jugalbandi
-
keyboard_arrow_down
Code Jugalbandi
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Morten KrombergCXODyalogschedule 3 years ago
Sold Out!45 Mins
Demonstration
Beginner
In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.
In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.This time the focus of code jugalbandi will be on solutioning in different paradigms - object-oriented or functional programming and array-oriented paradigms.
During the session, Morten and Dhaval will take turns at coding the same problem using different languages and paradigms. There would be multiple such rounds during the Jugalbandi.
-
keyboard_arrow_down
Blow Your Mind with Functional Programming Demos
45 Mins
Keynote
Beginner
We've several conference attendees who would show how they've used Functional Programming to do something really awesome! If you are trying to convince other people to use Functional Programming, you should watch these demos and show them these demos.
-
keyboard_arrow_down
Array Oriented Functional Programming with Dyalog
480 Mins
Workshop
Beginner
Dyalog is a modern, array-first, multi-paradigm programming language, which supports functional, object-oriented and imperative programming based on an APL language kernel. During the morning and early afternoon, we will explore the fundamentals of functional programming in APL. At the end of the day, Dyalog CXO Morten Kromberg will round off with an application development session, showing how a simple application with a HTML5/JS front-end and a RESTful web service can be used to deliver the power of APL to end users, or as embeddable components for other application tools. The "hands on" sections of the workshop can be followed under Mac OS X, Linux, or Microsoft Windows.
-
keyboard_arrow_down
vecdb - the vector database
45 Mins
Experience Report
Beginner
"vecdb" is a simple but powerful columnar database system implemented as a thin layer of open-source code which wraps memory-mapped arrays in Dyalog APL. It supports parallel queries on sharded databases, and is designed to support high-performance analytics on large datasets. It can be embedded in applications written in Dyalog APL, or called as a web service.
-
keyboard_arrow_down
Notation for Parallel Thought
45 Mins
Talk
Beginner
Since the original APL\360 interpreter saw the light of day in 1966, a large part of the of primitive functions in APL (A Programming Language) implicitly map operations to all elements of array arguments (and arrays of numbers or characters are the only “types” available in the language). Over the decades, the parallelism at the core of the notation has been extended, to nested arrays in the 80’s and arrays of objects in the 00’s. In this decade, arrays of futures have been added to provide users of APL with the ability to express asynchronous – but deterministic -algorithms.
This talk will introduce the most important parallel constructs available in current Dyalog APL, which (despite the name) essentially remains an executable mathematical notation.
-
keyboard_arrow_down
Parallel Programming in Dyalog using Futures and Isolates
45 Mins
Keynote
Beginner
Dyalog is an array first multi-paradigm language based on an APL language kernel. In APL, it is common for the application of primitive functions to arrays of conforming shape to imply a map; the function is applied item-wise to corresponding elements of the arguments, producing a result of the same shape. APL also provides a variety of explicit operators that provide different mappings of user-defined functions, or more generally functional compositions, to multi-dimensional and nested arrays.
One might expect that such language features would provide a complete framework for parallel programming. In practice, writing programs that can be efficiently executed in parallel on current hardware is extremely difficult, if implicit or explicit maps are the only parallel language feature available and an interpreter or compiler needs to deduce where to introduce the asynchronicity that is required in order to take advantage of the hardware.
This talk will present Futures and Isolates, and related parallel operators constructed upon them, which were added to Dyalog version 14.0 in 2014. The goal has been to provide explicit forms of deterministic asynchronous execution, designed to be very familiar to APL users, and continue to allow them to view the language as an executable mathematical notation, while taking advantage of parallel hardware that is now readily available.
-
keyboard_arrow_down
Array Oriented Functional Programming with Dyalog
480 Mins
Workshop
Beginner
Dyalog is a modern, array-first, multi-paradigm programming language, which supports functional, object-oriented and imperative programming based on an APL language kernel. During the morning and early afternoon, Dyalog's functional language guru John Scholes will introduce the fundamentals of functional programming in APL. At the end of the day, Dyalog CTO Morten Kromberg will round off with an application development session, showing how a simple web application with a HTML5/JS front-end and a RESTful web service can be used to deliver the power of APL to end users, or as embeddable components for other application tools. The "hands on" sections of the workshop can be followed under Mac OS X, Linux, or Microsoft Windows.
-
keyboard_arrow_down
Pragmatic Functional Programming using Dyalog
60 Mins
Demonstration
Beginner
APL is a member of the family of languages that are approaching middle age (Ken Iverson’s book titled “A Programming Language” was published in 1962). APL was very influential in the 60’s and 70’s, and widely used to deliver “end user computing” - but although the REPL, dynamic scope and lack of a type system endeared APL to domain experts, it also drew fire from computer scientists, most famously when Edsger Dijkstra declared that “APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past it creates a new generation of coding bums.”
Dyalog is a modern, array-first, multi-paradigm programming language, which supports functional, object-oriented and imperative programming based on an APL language kernel. Dyalog allows people with good ideas – from bright high school students to PhDs – to contribute directly to the software development process using a notation which fits comfortably with those used in their own domains. Subject matter experts can write prototypes or, with suitable training and/or support, highly efficient, parallel and robust code that can be embedded in high-performance production applications.
-
No more submissions exist.
-
No more submissions exist.