This month, we take a break from our usual Haskell and Scala and delve into introductions into both Erlang + OTP and R.
A Quick Introduction to Erlang and the OTP Libraries by Robert Ellen
Erlang and OTP are a language, system and platform that are well-established but experiencing a resurgence in popularity due to their well-known use in products such as Riak, CouchDB, Chef, RabbitMQ and ejabberd to name just a handful. Erlang and the OTP libraries are popular because they form a 'battle-tested' platform for developing (soft) real-time software with very high up-times, availability, fault-tolerance, concurrency, scalability and reliability.
This talk will attempt to communicate some of the substance behind the hype, and will provide some background to Erlang's development before covering the three main aspects of the Erlang platform: being the language, the run-time system and the Open Telecom Platform (OTP) libraries. There will be some basic code examples throughout.
Erlang itself is a functional programming language that (among other things) is strictly evaluated, dynamically-typed, has single-assignment on 'variables' and has its concurrency features built-in.
There is also a run-time system for Erlang, that (among many other things) implements light-weight processes (a.k.a. green-threads, actors), isolates processes from each other, efficiently utilises multi-core systems to achieve parallelism on top of concurrency, can scale from multi-core to distributed with very little (if any) code change, allows new/ improved code to be hot-loaded and has multiple facilities to integrate with other languages, esp. C/Java/.NET
The OTP libraries are a set of well-tested libraries (and design principles) that actually allow the Erlang platform to do what it says it can do on the box. This includes: fault-tolerance, high availability and up-time, granular management of highly-concurrent systems, live patching of systems in production! and web-scale! OTP is the recommended (and really the only sane) way to develop non-trivial Erlang-based production software.
Speaker:Robert Ellen is an electronics and software engineer by qualification. Robert is a long-term contractor to CUB's Yatala Brewery, where he dabbles in software development and industrial informatics for the brewery's engineering team. He has also been on an overly-long research degree journey, where he has recently (less than 12 months) settled upon Erlang as one of the central tools upon which to develop his ideas.
Introduction to R by Brad Clow
R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
To give a practical introduction to R we will look at:
- the R environment and ecosystem
- the R language itself
- simple examples of importing data, working with it and visualisation
Brad has been working with software for way to long and generally finds himself in management/leadership these days, yet somehow still dabbles in programming, DevOps and data analytics. He has diverse interests in business strategy and financial and scientific computing.