Erlang

We love to share

We’re curious and inquisitive by nature. If we come across a smart new technology, something interesting or a little odd, we’re compelled to share it with the world. Our blog is a vehicle for our musings, observations, thoughts, technical debates and discoveries.
Subscribe via RSS

Build a complete iOS messaging app using XMPPFramework - Tutorial Part 1

2016-11-30 by Andres Canal

The idea of this tutorial series is to get a complete functional iOS messaging app using XMPPFramework. We are going to slowly start introducing XMPP concepts in an easy and understandable way while building our app at the same time. Our final goal is to get an app that allows us to authenticate with the server, add/remove contacts, send presences, one to one chat, group chats and more!

Read more

MongooseIM platform 2.0.0: higher value and lower friction

2016-11-14 by Nicolas Verite

MongooseIM is the open source mobile messaging platform that provides massive scalability. In the past months we worked hard on version 2.0.0 of the platform, which brings new features that allow the addition of innovative real-time, social features to existing apps. This post will walk you through all the changes that differentiate the MongooseIM platform on the market.

Read more

Elixir Module Attributes - Alchemy 101: Part 1

2016-11-08 by Thomas Hutchinson

As you start working with Elixir, you will start questioning how and why things work and behave the way they do, and if there are better ways to do things. The new Alchemy 101 blog series addresses common questions being asked throughout the community. In part 1 let's look at when module attributes are evaluated and what this means.

Read more

Erlang (and Elixir) distribution without epmd

2016-10-26 by Magnus Henoch

When Erlang nodes are connected to form a cluster, they usually use the Erlang Port Mapper Daemon (epmd) to find each other. In this post we explore how it works, what potential issues it has, and what we can use instead.

Read more

MongooseIM 2.0.0beta2: the power of an XMPP platform, with the simplicity of a REST API

2016-10-11 by Nicolas Verite, Michał Piotrowski

We are thrilled to announce the MongooseIM platform version 2.0.0beta2. MongooseIM platform 2.0.0beta2 is about one massive change: a REST API, both for backend integration, and for client/server development. This is a major step towards the game-changing version 2.0.0, which will be released in the coming weeks. MongooseIM 2.0.0 will tremendously lower the barrier of entry to our platform for most developers worldwide.

Read more

RabbitMQ monitoring: WombatOAM and the RabbitMQ Management plugin

2016-10-04 by Ayanda Dube

In this post we show how RabbitMQ nodes experience less strain, and thus perform much better when being monitored by WombatOAM, as compared to monitoring using the RabbitMQ Management Plugin. But both tools can be viewed as complementary to each other, and we suggest a best practice scenario for using them together.

Read more

Erlang Installer: A Better Way To Use Erlang On OSX

2016-09-22 by Karol Urbanski

Obtaining Erlang/OTP has become a lot easier on OS X. We're happy to share the better, slicker version of the Erlang Solutions OS X Installer.

Read more

Operational nightmare fun: dealing with misconfigured Riak Clusters

2016-09-21 by Viktoria Fordos and Csaba Hoch

We learnt many valuable lessons while providing professional Riak support. In this blog post, we tell one of our war stories. A story about investigating a struggling Riak cluster, and finding out why Riak's usual self-healing processes got stuck.

Read more

Erlang & Elixir DevOps From The Trenches - Why we felt the need to formalize operational experience with the BEAM virtual machine

2016-09-14 by Francesco Cesarini

Every time an operational issue is addressed and fixed in an Erlang or Elixir cluster, lessons are learnt. This blog post describes some of these lessons, and how, through WombatOAM, we try to formalise them in reusable code allowing us to share decades of operational experience across any system running on the BEAM virtual machine.

Read more

The continuing headaches of distributed programming

2016-08-10 by Guest author: Andy Oram, Senior Editor O'Reilly Media

Despite ground-breaking advances in languages and utilities that purport to simplify parallel or distributed computing, designing a system that supports modern commerce and other high-priority applications remains one of the most difficult tasks in computing. Senior editor at O'Reilly Media Andy Oram identifies the reason this is still an issue.

Read more

Learn to forget

2016-07-20 by Brujo Benavides

On experiences and patterns for learning Erlang (and Elixir?), with an example. From an experienced Erlang developer and trainer - Brujos Benavides, Inaka's CTO.

Read more

MongooseIM 2.0.0beta1 is out! Explore the new features

2016-07-05 by Michał Piotrowski

We are proud to present the latest step on our road to the MongooseIM 2.0.0 release. Enjoy MongooseIM 2.0.0beta1 - now available on GitHub, and see the scope of changes that made us jump to 2.0.0.

Read more

Erlang distribution over TLS

2016-06-28 by Magnus Henoch

Find out how to run the Erlang distribution protocol over TLS and what problems that may or may not solve. The "distribution protocol" is the means by which multiple Erlang nodes join together to form a cluster. When nodes are clustered, any process can send messages to processes on any other node, and spawn new processes on any other node. This forms the basis for distributed applications such as Mnesia, the database implementation that comes with Erlang/OTP, and RabbitMQ, the message broker.

Read more

Exploring with, the Elixir special form

2016-05-27 by Marcos Almonacid

Our colleague Marcos Almonacid from Inaka explored with, the new Elixir special form introduced in v1.2. A good tool to write simple code when it's used in the right situation.

Read more

Welcome to the third generation of Instant Messaging! Part 2/2

2016-04-20 by Nicolas Verite

This is the second and last part of the “Welcome to the third generation of Instant Messaging!”. This post identifies and discusses the third generation of IM, starting recently and continuing to present day. Let’s simply walk through some usages and user experiences, core concepts, underlying technologies and their social impact, as well as philosophies that have greatly evolved over time. This is a very simple and basic list of market observations and analysis.

Read more

Welcome to the third generation of Instant Messaging! Part 1/2

2016-04-14 by Nicolas Verite

Instant Messaging has come a long way from the moment IRC’s success paved the way for the development of online communication. This post identifies and discusses three generations of IM, starting in 1998 and continuing to present day. Let’s simply walk through some usages and user experiences, core concepts, underlying technologies and their social impact, as well as philosophies that have greatly evolved over time. This is a very simple and basic list of market observations and analysis.

Read more

Erlang Innovation Race: The Winners!

2016-04-12 by Andra Dinu

To honour the tradition of the Grand National, we organised our own Erlang Innovation Race: We picked some pretty cool Erlang companies and over the weekend we allowed everybody to push them ahead in the race with one click. See the companies and the results here.

Read more

Erlang 19.0 Garbage Collector

2016-04-07 by Lukas Larsson

This blog post describes the state of the Erlang garbage collector in Erlang/OTP 19.0. The things that will change in 19.0 are clearly marked in each of the sections. The Erlang/OTP master branch is a moving target and some of the things may have changed by the time 19.0 was released.

Read more

Keep in touch with Erlang & Elixir

2016-04-04 by Erlang Solutions

Every month we send around our monthly selection of Erlang and Elixir related news, blogs, case studies, videos and podcasts. Over 3000 people subscribed to receive it so far, and we hope you will join them. Read our last issue in this post.

Read more

Erlang gen_server Reloaded

2016-03-30 by Zsolt Laky

Writing gen_servers has become a routine. We have dozens of gen_servers in our applications, but when we get to a point of extending the server behaviour, we start scratching our heads. Which of our servers have the lowest response time? How long does it take for a request to be processed? Implementing these metrics may involve changing the code in all of our servers. With CSI, we can manage our servers' behaviour and metrics in one place.

Read more

Take Control of your RabbitMQ queues

2016-03-23 by Ayanda Dube

Queues are the most fundamental aspect of RabbitMQ. Previously, users didn’t have as much control over determining queue locations within a cluster. This blog will show you how to use a new feature and take control over distribution of queues.

Read more

MongooseIM 1.6.2 is out. Time to upgrade!

2016-03-22 by Michal Piotrowski and Rafal Studnicki

We are pleased to announce the release of MongooseIM 1.6.2, the last release in the 1.6.x family.  We encourage everyone to upgrade.Find out more about our demo, load tests and all the significant changes. 1.6.2 is about "stability": finished Riak for all major modules, docker-based demo, load test, improved tests, new enhancements.

Read more

Improving Erlang Enterprise Tooling: An Open Source Initiative by bet365

2016-03-14 by Andra Dinu

Last week bet365 released the source code for implementing SOAP in Erlang and announced that they'll also release the code for improving ODBC stability and performance in the near future. Chandru Mullaparthi, Head of Software Architecture at bet365 gave us a short interview about the initiative and what it could mean for the Erlang community.

Read more

Docs in the Shell

2016-02-09 by Radek Szymczyszyn

Still can't write match specs from the top of your head? Forgetting again and again dbg flags or the syntax of recon trace patterns? Ever wished for access to documentation straight from erl the way it's possible in other languages like Python, Ruby or Elixir? Radek Szymczyszyn has felt this pain, and he tried to come up with a solution. World, meet docsh.

Read more

XMPP Summit 19 & FOSDEM 2016: our thoughts

2016-02-02 by Michal Piotrowski and Nicolas Vérité

Part of the MongooseIM team attended the XMPP Summit and FOSDEM last week. They put together a quick review of the most interesting things they saw and did at the two events.

Read more

How to analyse a BEAM core dump?

2016-01-26 by Rafal Studnicki

You have your Erlang system running for a long time now and all of a sudden the BEAM process disappears on one of the nodes. In the OS logs you can see that the process was killed because of a segmentation fault, but besides that you have nothing. Obviously, you hadn't been prepared for such a scenario and a core dump of the crashed process wasn't generated. Now, after waiting (too long) for the segmentation fault to occur again, you ended up with a precious core.xxx file. But what's next?

Read more

MongooseIM 1.6.1 is released

2016-01-18 by Nicolas Vérité, Ludwik Bukowski, and Stefan Strigler

MongooseIM 1.6.1 starts the maintenance series with more Riak KV, more tests and more enhancements.

Read more

Secure Shell for Your Erlang Node

2016-01-14 by Marc Sugiyama

Say you want to connect to the shell of your Erlang node. It's easy. You connect a remote shell from another Erlang node - if you're on the same subnet - and know the cookie - and have Erlang installed. OK, maybe not that easy. How about connecting via ssh? You don't need to know the cookie, you don't need Erlang installed, and you can connect from anywhere. Here's how you add an ssh server to your Erlang node.

Read more

MongooseIM 1.6: Riak, DevOps love, and so much more!

2015-11-25 by Nicolas Vérité and Joseph Yasemides

MongooseIM is a massively scalable instant messaging platform, based on the XMPP protocol and written by us in Erlang. The new release includes Riak support, significant improvement to DevOps and ease-of-integration with existing infrastructures. Read all about it in the new blog post.

Read more
×

Request more information:

* Denotes required
×

Thank you for your message

We sent you a confirmation email to let you know we received it. One of our colleagues will get in touch shortly.
Have a nice day!