Enhancing your daily TDD with QuickCheck mini

Author: Juan Piug
Purpose: London Early User Group Meeting
Involvment:
Abstract:

EUnit has proved to be a good tool for black-box testing, however, there are many cases where property-based testing might give us more valuable input and better performance. In this presentation, we will go through an small study case to see how to improve unit testing within a probability theory library based on its formal properties with QuickCheck mini, the free version of the Quviq popular tool.



Attachments:

Early Fault Detection with Model Based Testing

Author: Jonas Boberg
Purpose:
Involvment: The research, paper and presentation was made by a member of Erlang Training and Consuting staff
Abstract: Current and future trends for software include increasingly complex requirements on interaction between systems. As a result, the difficulty of system testing increases. Model based testing is a test technique where test cases are generated from a model of the system. In this study we explore model-based testing on the system-level, starting from early development. We apply model-based testing to a sub-system of a message gateway product in order to improve early fault detection. The results are compared to another sub-system that is tested with hand-crafted test cases. Based on our experiences, we present a set of challenges and recommendations for system-level, model-based testing. Early results indicate that model-based testing, starting from early development, significantly increases the number of faults detected during system testing.

Attachments:
Paper
Slides
Slides
Paper
Bridging the gap between Jabber/XMPP and Gadu-Gadu

Open Telecommunications Platform, OTP for Open Communications

Author: Francesco Cesarini
Purpose:
Involvment: Author
Abstract:

Francesco Cesarini, Technical Director of Erlang Solutions, discusses the benefits of the Erlang Open Telecom Platform and how it can be used in product development for writing software for telecommunications systems.

 



Attachments:
Open Telecommunications Platform, OTP for Open Communications

Remote Controlling Devices Using Instant Messaging

Author: Simon Aurell
Purpose: Bachelor's thesis at IT University of Gothenburg
Involvment: Paper is based on a project at Erlang Training and Consulting Ltd
Abstract: This paper shows how instant messaging technology can be used for remote controlling of devices, and outlines some of the issues involved, of which the most important is security. The concept of controlling and monitoring devices using instant messaging dialogue, presence and buddy list features is applied to a home automation context, and the idea and implementation of a prototype system is described. The paper describes how the excellent robustness and prototyping qualities of Erlang/OTP were exploited to quickly build a prototype system. It also shows how a gateway capable of speaking multiple device protocols can provide a single access point to different kinds of devices and services, and how the concept of agents can be used to add a layer of intelligence to the set of devices being controlled or monitored.

Attachments:
Paper
Slides
Slides
Paper

Interfacing Erlang with Standardised Management Protocols.

Author: Francesco Cesarini
Purpose: A Master's thesis from Uppsala University, Sweden.
Involvment: Thesis written by the founder of the company.
Abstract: This report describes how different standardised management protocols can be incorporated into telecom applications with little or no impact on the overall software architecture. It presents a framework providing the necessary flexibility needed when different standardised management protocols have to coexist along side each other, or need to be interchanged due to changing system requirements. The report shows there is a mapping from this framework to management protocols commonly used in telecom applications, namely SNMP, Corba and HTTP. OSI based management is also superficially discussed. The framework has been developed in Erlang, but can be used in any high level functional programming language.

Attachments:
Paper
Paper

Test Driven Development In Erlang

Author: Martin Carlson
Purpose: Bachelor's thesis at IT University of Gothenburg
Involvment: Paper is based on a project at Erlang Training and Consulting Ltd
Abstract: Test Driven Development has been around for quite some time, but it has recently re-emerged through the introduction of Agile methods such as Extreme Programming and Internet Speed Programming. Test Driven Development has been proven to reduce faults in software written in Java and C++, but there are no reasons to believe these results are language specific. A case study was conducted during the development of an Erlang/OTP prototype comparing Test Last and Test Driven Development. It was concluded that Erlang/OTP based Test Driven Development improved the quality of the code by reducing faults and increasing overall productivity.

Attachments:
Paper
Paper
Slides
Slides

Misultin

Author: Roberto Ostinelli
Purpose: Erlang User Group Meeting
Involvment:
Abstract:

The talk will cover:

An introduction to Misultin with basic code examples
Server design
Some Benchmarks
Practical considerations in library design to support Comet applications



Attachments:

Erlang Testing and Tools Survey

Author: Tamas Nagy and Aniko Nagyne Vıg
Purpose: Erlang Testing and Tools Survey
Involvment: Erlang Training & Consulting, Erlang community
Abstract: As the commercial usage of Erlang increases, so does the need for mature development and testing tools. This paper aims to evaluate the available tools with their shortcomings, strengths and commercial usability compared to common practices in other languages. To identify the needs of Erlang developers in this area we published an online survey advertising it in various media. The results of this survey and additional research in this field is presented. Through the comparison of tools and the requirements of the developers the paper identifies paths for future development.

Attachments:
Paper
Slides
Slides
Paper

A Comparative Evaluation of Imperative and Functional Implementations of the IMAP Protocol

Author: Francesco Cesarini, Viviana Pappalardo, Corrado Santoro
Purpose: Paper presented at the 2008 Erlang Workshop, Victoria (BC)
Involvment: A paper written in cooperation with the University of Catania as a result of a Master's thesis at Erlang Training and Consulting.
Abstract: This paper describes a comparative analysis of several implementations of the IMAP4 client-side protocol, written in Erlang, C#, Java, Python and Ruby. The aim is to understand whether Erlang is able to fit the requirements of such a kind of applications, and also to study some parameters to evaluate the suitability of a language for the development of certain type of programs.

Attachments:
Slides
Paper
Paper
Slides

Enhancing your daily TDD with QuickCheck mini

Author: Juan Piug
Purpose: London Early User Group Meeting
Involvment:
Abstract:

EUnit has proved to be a good tool for black-box testing, however, there are many cases where property-based testing might give us more valuable input and better performance. In this presentation, we will go through an small study case to see how to improve unit testing within a probability theory library based on its formal properties with QuickCheck mini, the free version of the Quviq popular tool.



Attachments:
EUnit has proved to be a good tool for black-box testing, however, there are many cases where property-based testing might give us more valuable input and better performance. In this presentation, we will go through an small study case to see how to improve unit testing within a probability theory library based on its formal properties with QuickCheck mini, the free version of the Quviq popular tool.

A metrics for Evaluating Internet Applications

Author: Lukas Larsson
Purpose: Bachelor's thesis at IT University of Gothenburg
Involvment: Paper is based on a project at Erlang Training and Consulting Ltd Paper: HTML PDF
Abstract: Erlang was first used for developing web based applications soon after it was invented. What is missing however, are standardized components which handle common web related activities such as news bulletins and mailing lists. To guide development of generic web components an object oriented metrics was translated to a concurrency orientated one. The metric was used to improve three web components by making them less complex, both externally and internally. As a result, the metrics only showed a marginal decrease in complexity, proving that it is of little help when creating small generic web components. It might however, help when developing more complex components in larger systems, but for the components used in this case study, the metric failed to deliver. Further study has to be done to determine whether the metric is can be used to measure complexity of larger Erlang components.

Attachments:
Paper
Paper

The Migration from Erlang to OTP. A case study of a heavy duty TCP IP based client server application.

Author: Francesco Cesarini and Mickaël Rémond
Purpose: Proceedings to the Seventh International Erlang User Conference, Stockholm, Sweden
Involvment: Presented by Erlang Training and Consulting Ltd. and one of its clients.
Abstract: A team of software engineers at IDEALX set out to build a proxy for a heavy duty TCP-IP application. They had Erlang experience from previous in house projects, but had never come in contact with the Open Telecom Platform's design principles. When an external Erlang/OTP consultant was taken in to review the code, he discovered a system written in pure Erlang. This paper describes reasons why development on OTP design principles were developed in the first place, and explains why they were bypassed in the prototype phase of this project. It concludes by describing how the migration of the Erlang prototype to an OTP product was achieved, looking at the advantages gained through such a migration. The intended readers are companies and individuals considering using Erlang in product development, but do not have access to in house Erlang expertise.

Attachments:
Slides
Paper
Paper

Optimising TCP/IP connectivity

Author: Oscar Hellström
Purpose: Paper presented at the 2007 Erlang Workshop
Involvment: The research, paper and presentation was made by a member of Erlang Training and Consuting staff.
Abstract: With the increased use of network enabled applications and server hosted software systems, scalability with respect to network connectivity is becoming an increasingly important subject. The programming language Erlang has previously been shown to be a suitable choice for creating highly available, scalable and robust telecoms systems. In this exploratory study we want to investigate how to optimise an Erlang system for maximum TCP/IP connectivity in terms of operating system, tuning of the operating system TCP stack and tuning of the Erlang Runtime System. The study shows how a series of benchmarks are used to evaluate the impact of these factors and how to evaluate the best settings for deploying and configuring an Erlang application. We conclude that the choice of operating system and the use of kernel poll both have a major impact on the scalability of the benchmarked systems.

Attachments:
Slides
Slides
Paper
Paper

Embedded Erlang Simulation

Author: Rickard Olsson & Reza Javaheri
Purpose: Thesis Project
Involvment:
Abstract:

The goal of this thesis is to develop simulators for device drivers and to create and describe a work flow for developing on Erlang Embedded using simulators. The motivation is that frequently testing code on hardware is inconvenient, takes time and only is possible if you have access to the hardware. By simulating simple device drivers like serial ports, buttons and leds, this thesis aims to prove that a better development environment can be created. A development work flow describes how the current work flow with Erlang Embedded can be improved by using simulators. The idea is that you should be able to switch between real hardware and simulated mode by just changing an environment variable and providing necessary con configuration files. No changes in code are required. A recorder tool was developed to support simulation of devices that generate data such as sensors. The recorder can also be used to quickly create a simulator replaying data traffic that have been recorded from an application previously. Taking advantage of dbgmodule, the recorder captures messages that a process receives or sends off without any modification to the source code. Using the recorder tool, no API or application logic is needed to simulation a sensor.



Attachments:
Embedded Erlang Simulation

Misultin

Author: Roberto Ostinelli
Purpose: Erlang User Group Meeting
Involvment:
Abstract:

The talk will cover:

An introduction to Misultin with basic code examples
Server design
Some Benchmarks
Practical considerations in library design to support Comet applications



Attachments:

ERESYE. An Erlang Expert System Engine

Author: Antonella Di Stefano, Francesca Gangemi, Corrado Santoro
Purpose: Contribution to the fourth ACM SIGPLAN Erlang Workshop 2005 in Tallinn, Estonia
Involvment: Research involving Erlang Training and Consulting staff
Abstract: This paper describes ERESYE, a tool for the realization of intelligent systems (expert systems) using the Erlang language. ERESYE is a rule production system that allows rules to be written as Erlang function clauses, providing support for their execution. ERESYE is also able to support object-oriented concepts and ontologies thanks to a suitable ontology handling tool, providing means to translate object-based concepts into an Erlang form. The architecture of ERESYE and its basic working scheme are described in the paper. A comparison with CLIPS, one of the most known tools for expert system programming, is also made. The description of some examples of ERESYE usage are provided to show the effectiveness and the validity of the proposed solution, which opens new and interesting application scenario for Erlang.

Attachments:
Slides
Paper
Slides
Paper

Priority Messaging Made Easy

Author: Jan Henry Nystrom
Purpose: Contribution to the sixth ACM SIGPLAN Erlang Workshop 2007 in Freiburg, Germany
Involvment: Research and presentation preformed by Erlang Training and Consulting staff PDF
Abstract: This paper provides an introduction to the finer points of priority based message reception. A new behaviour is devised to provide a generic server that does priority based message reception. The combination of generic finite state machines and prioritised is also discussed. Finally it is demonstrated how behaviours could be significantly strengthened in usefulness by allowing the behaviour info to specify that a parse transform. An Erlang Extension Proposal suggesting the change is included in the appendices.

Attachments:
Slides (Presented at the 2007 Erlang Workshop)
Slides
Paper
Paper

Evaluation of Database Management Systems

Author: Emil Hellman
Purpose: Bachelor's thesis at IT University of Gothenburg
Involvment: Paper is based on a project at Erlang Training and Consulting Ltd
Abstract: Erlang/OTP's DBMS Mnesia is lacking in several important areas to consider when implementing very large databases with massive scalability requirements. This article reveals the result from a study examining what Erlang developers consider important aspects of DBMSs and an AHP evaluation on four mature open source DBMSs based on those criteria. AHP is suggested as good method to evaluate DBMSs for Erlang projects. The criteria used in this evaluation were derived from a survey on sent to the Erlang community. It should therefore be noted that which DBMS to use in Erlang projects should also be determined by the project's and the software's own specific criteria.

Attachments:
Paper
Paper

From HTTP to HTML. Erlang/OTP Experiences

Author: Francesco Cesarini, Lukas Larsson, Michal Slaski
Purpose: Contribution to the fifth ACM SIGPLAN Erlang Workshop 2006 in Portland, USA
Involvment: Research, paper and presentation by Erlang Training and Consulting staff
Abstract: This paper describes the lessons learnt when internally developing web applications in Erlang. On the basis of these experiences, a framework called the Web Platform has been implemented. The Web Platform follows a design pattern separating data processing and formatting, allowing the construction of flexible and maintainable software architectures. It also delivers mechanisms for building dynamic pages and components. On top of the platform and components, web interfaces to commercial Erlang systems have been built.

Attachments:
Slides (As presented prior to the demo at the Workshop)
Paper
Paper
Slides

Massively Multiplayer Online Game Servers

Author: Michal Slaski
Purpose: Master's Thesis at the AGH University of Science and Technology, Krakow
Involvment: Paper was co-authored and presented by a consultant at Erlang Training and Consulting Ltd
Abstract: At present massively multiplayer online games allow several thousands of players to stay in a single, persistent virtual world. Because of the fast growing interest in this type of servers, we started researching their efficiency and scalability. Our target was an analysis of the MMOG server, which could service up to 1000 players in a single virtual world. We made an assumption that the server will be distributed and running on a dedicated cluster. As the implementation platform we chose Erlang/OTP its main advantages being integration with a distributed database, soft real-time and supporting distributed applications. In this paper we discuss the realisation of the project, and practical aspects of the measurement of server parameters.

Attachments:
Paper
Paper
Slides (Presented at the Erlang User Conference 2005 in Stockholm, Sweden)
Slides (Presented at the Erlang User Conference 2005 in Stockholm, Sweden)

Adding special-purpose processor support to the Erlang VM

Author: Christofer Ferm
Purpose: Thesis Project
Involvment:
Abstract:

This thesis investigates the possibility to extend the Erlang runtime system such that it can take advantage of special purpose compute units, such as GPUs and DSPs. Further more it investigates if certain parts of an Erlang system can be accelerated with help of these devices.



Attachments:
Adding special-purpose processor support to the Erlang VM