• Pl chevron_right

    Ignite Realtime Blog: inVerse plugin for Openfire version released! / PlanetJabber · Thursday, 2 December, 2021 - 17:47

The Ignite Realtime community is happy to announce the immediate availability of a an update to the inVerse plugin for Openfire, which makes the Converse.js web client available to your users.

This release updates Converse to version 9.0.0.

Your Openfire instance should automatically display the availability of the update. Alternatively, you can download the new release of the plugin at the inVerse plugin’s archive page . If you’ve got feedback or ideas about this plugin, come and join the conversation on Discourse !

For other release announcements and news follow us on Twitter

1 post - 1 participant

Read full topic

  • Pl chevron_right

    Jérôme Poisson: Libervia v0.8 « La Cecília » / PlanetJabber · Tuesday, 30 November, 2021 - 22:54 · 7 minutes

I'm proud to announce the release of Libervia 0.8 « La Cecília » (formerly known as « Salut à Toi »), after more than 2 years of development.

This version is a big milestone preparing the future of the project. Let's have an overview of some major changes.

Project Renaming

In the interest of simplicity, the project has been renamed to " Libervia " (with was formerly the name of the web frontend), and all official frontends have now a straightforward name such as Libervia Web , Libervia Desktop / Mobile (same frontend for both), Libervia CLI for Command-Line Interface , and Libervia TUI for Terminal User Interface . The backend is, as you can guess, Libervia Backend . The former names are for now still used as aliases.

Beside simplicity, the name change was also due to concerns with international audience: some people were thinking that "Salut à Toi" was dedicated to French-speaking people only. Hopefully, it will be easier for everybody, and people won't get confused any more by all the names which were previously used.

Note that the renaming has implications on your configuration file which is now named libervia.conf ( sat.conf is still working for now). The sections have been updated with new names (to configure the CLI frontend you now use [cli] section instead of [jp] , for the web frontend it's now [web] instead of [libervia] ). Please check documentation in case of doubt.

Technical Changes

Libervia has been ported to Python 3, which has opened the door to other changes.

Brython has been integrated to Libervia Web, to replace the unmaintained "Pyjamas" (which was a Python port of GWT ).

Nunjucks is also now integrated in Libervia Web, making it possible to share some templates with Jinja . This is notably useful to make some pages working with or without JavaScript.

OMEMO implementation has been completed with support for MUCs (group chats) and files (via XEP-0454: OMEMO Media Sharing ).

Many other changes are not explained in this note to avoid it being indigestible, you can check the CHANGELOG for more information.

Libervia Web New Default Theme

A new theme for Libervia Web based on the nice Bulma CSS framework has been made and is now the default one. Thanks to it the interface is clearer and more pleasant to use.

Events list with the new theme


An easy to use invitation system has been implemented in Web frontend, and can be used either to give access to something to somebody with an existing XMPP account, or to invite somebody by email. The goal is to be able to share things (e.g. photo album, event) with family or friends without having to expect them to install a software or create an account.

Inviting people to see a photo album


A decentralised issue tracking system was implemented since version 0.7, which was notably used to manage Libervia's own tickets. It was using a non-standard feature available only in Libervia Pubsub (formerly "SàT Pubsub", server independent Pubsub/PEP component, a side project).

This feature has been renamed to "Lists" and now uses XEP-0346: Form Discovery and Publishing which makes it usable with a generic Pubsub service.

Any kind of list can be created, from project tickets to keep track of bug report of feature requests, to To-do list, grocery list, etc. Being based on XMPP pubsub, lists can be federated, and permissions can be managed easily (for instance to allow various family members to modify a shopping list).

Grocery List on Libervia Web

For the moment 3 kinds of lists are available (generic tickets, To-Do, grocery), but more are expected to come in future versions.

Photo albums

Lots of improvements have been made on the photo albums in the web frontend. They can now be created or deleted from Libervia Web, photos or videos can be uploaded, a touch/mobile-friendly slideshow is available, ogv.js has been integrated to make possible the viewing of videos in Ogg Vorbis/Opus/Theora ans WebM VP8/VP9/AV1 on platforms not supporting them natively, and the invitation system mentioned above has been integrated.

you can now use a slideshow to see your photos and videos


Libervia Desktop UI has also been updated, the top menu has been removed, file dropping is now possible on suitable platforms, chat has infinite scrolling, a new "chat selector" screen makes it easier to select entity to chat with or room to join, message attachments are show in a more user-friendly way, and several other improvements has been done.

Chat Selector on Libervia Desktop

Work has also been done on Libervia Mobile (which is Android only for now), but this frontend is not user-friendly enough yet for end-user.

Attachment on Libervia Mobile


The CLI frontend is now fully documented and following the renaming can now be accessed either by libervia-cli or the shorter li (legacy jp is still working for now). Among new commands we can highlight li file get which retrieve a file with support of aesgcm scheme (i.e. OMEMO Media Sharing), which makes it a kind of OMEMO enabled wget like. li file upload also handle end-to-end encryption, it's thus easy to share an encrypted file from command-line or a script.

Background colour is now automatically detected on compatible terminal emulator, and theme is adapted consequently.

But Also…

File Sharing Component

Libervia can act as a component (which can be seen as generic XMPP server plugins), and it includes a File Sharing Component.

This component store files which can be retrieved either according to given permissions or publicly.

Files can be uploaded or downloaded via XEP-0234: Jingle File Transfer and XEP-0363: HTTP File Upload is now also implemented, making it possible to share files via HTTPS link.

This component can now be used to replace internal XMPP servers HTTP File Upload implementations. In addition to the fine permission management, it does not have a size limit and user quotas can be set, check the documentation to see how to set them. Files uploaded can be retrieved using XEP-0329: File Information Sharing and deleted with XEP-0050: Ad-Hoc Commands .

This component is necessary to use the Photo Album feature.

Libervia Pubsub

A Pubsub/PEP component (formerly named "SàT Pubsub") is developed next to Libervia. It aims to provide a server independent feature-full implementation.

Libervia Pubsub is released at the same time as the Libervia XMPP client, and has also been ported to Python 3.

Among novelties, Full-Text Search has been implemented ( XEP-0431: Full Text Search in MAM ), as well as XEP-0346: Form Discovery and Publishing which replaces the former non-standard node schema, and PEP is now working for the server itself, making it usable for XEP-0455: Service Outage Status .

Docker Images

Docker images have been updated and moved directly to libervia-backend repository (in docker subdirectory).

Official Website

The Official Website has been updated with a new theme (based on Libervia Web new theme).


Libervia is available on several GNU/Linux distributions (at least Debian and derivative and Arch Linux). Unfortunately, the current Debian version is outdated (due to incompatible Debian and Libervia release dates), hopefully the new version will be available as a backport soon.

You can easily install Libervia on any distribution by using pipx :

$ pipx install libervia-backend$ pipx install libervia-desktop

Then launch libervia-backend , and a frontend (e.g. libervia-cli or libervia-desktop ). Check the documentation for details.

Docker images are available, and notably a web-demo.yml file can be used with docker-compose to quickly try a local demo:

$ hg clone $ cd libervia-backend/docker$ docker-compose -f web-demo.yml up

Then open your browser on http://localhost:8880 and use the login demo with password demo .

What's Next

A Libervia based project has been selected by NLnet for a grant. This project is in 2 parts: working on an XMPP ⟺ ActivityPub gateway, then on pubsub and files end-to-end encryption. You'll find more information on this blog post and on NLnet project page . The project has already well started, and you can follow the progress on my blog (which is Libervia/XMPP powered) or on the ticket tracker (which is also Libervia/XMPP powered). A huge thanks to NLnet/NGI0 Discovery Fund!

Besides, work is planned to improve user experience and instant messaging feature (notably on Web frontend). Libervia aims to be a good fit for private networks for family and friends.

Last but not least, I've been pleased to see that Libervia Web is used to power blog . JMP is a company which give you a real phone number which can be used with XMPP and SIP (you can call this number from a traditional phone and get the voice call from a XMPP client).

This concludes this release post. Stay tuned!

  • wifi_tethering open_in_new

    This post is public /b/libervia-v0-8-la-cecilia-BdQ4

  • Pl chevron_right

    Erlang Solutions: Blockchain Tech Deep Dive 1/4 / PlanetJabber · Monday, 22 November, 2021 - 16:36 · 6 minutes


Blockchain technology is transforming nearly every industry, whether it be banking,  government, fashion or logistics. The benefits of using blockchain are substantial – businesses can lower transaction costs, free up capital, speed up processes, and enhance security and trust. So it’s no surprise that more and more companies and developers are interested in working with the technology and leveraging its potential than ever before.

This blog post series will cover some of the thinking from Erlang Solutions’ subject matter experts on blockchain technology published over the last couple of years. Across four main themes, we will explore how companies and developers are working with blockchain, the principles behind the technology, what we can expect in the future and where we all fit into things.

Theme I – 6 Principles – Blockchain Guidance

Theme II – Blockchain Myths vs Reality

Theme III – Digital Asset Ownership

Theme IV – How Erlang Optimises Blockchain

Blockchain – an overview

The world is becoming decentralised.

A multitude of platforms, technologies, and services are moving from centralised proprietary systems to decentralised, open ones. This is being driven by several powerful social and psychological factors which you can find discussed later in Blockchain: Myths vs Reality and Digital Asset Ownership in the Era of Blockchain by Dominic Perini and MIchael Jaiyeola.

A blockchain is one architectural design of the broader concept of distributed ledger technology (DLT). Essentially, a blockchain is an expanding list of cryptographically signed, irrevocable transactional records that are shared by all participants in a network. Each record is time-stamped and references links to previous transactions. Anyone with access rights can trace back a transactional event, at any point in its history, belonging to any participant.

For organisations, blockchain presents an opportunity for a fundamental change in how data is managed; from where every company has its own copy of a data set to a scenario in which all parties in a network have controlled access to a shared copy.

The key benefit of this is that traditional independent institutions can collaboratively work together to integrate and optimise existing processes to mutual advantage while, crucially, not compromising on the security of sensitive data.

We view it as vital that relevant parties from every industry are across the latest in debate surrounding blockchain as the technology is set to become increasingly prevalent in all of our lives.

Theme I

6 Principles – Blockchain Guidance

1. Software Engineering

Embrace the best practices in software engineering, in particular, the exploitation of functional programming and the design patterns that emerge from it. Develop and optimise code that speeds up the software development process, its evolution and adaptation, delivering on critical time-to-market business requirements, which is essential when it comes to blockchain!

Take a modern approach to test ensuring that a high degree of quality is preserved throughout the lifecycle of a system. Leverage auto-generated Property-Based Test and continuous stress tests combined with traditional Test-Driven Development.

Empower your software engineers to embrace modern agile software development methodologies that support scaling the workforce whenever and however needed. Practising agile ways of deployment automation, type checks, sensible naming conventions and documentation is extremely important, especially during handovers or when onboarding new developers.

Distributed Systems

Work with engineers previously involved in the development of massively scalable systems. Their experience working on messaging systems or distributed databases gives you the confidence that they will choose the correct partitioning, sharding and replica parameters.

The need for engineering highly scalable and distributed systems has grown, and this is what we do every day. Building distributed systems to cater to billions of users and transactions on a daily basis. Delivering solutions that are resilient against node crashes or bad actors, and therefore exclude single points of failure.

“Having numerous clients around the globe spanning from startups to Fortune 500 companies, Erlang Solutions has gained invaluable experience and thrives when working on complex cases and providing solutions to distributed systems.”

Yanislav Malahov, æternity founder


Find a team with vast experience in growing automated network traffic management and dynamic topologies. Check if their monitoring capacity and expertise can be embedded to allow adaptation to changing scenarios, and identify problems before they occur (preemptive adaptation).

Does their approach also ensure that back-pressure control protects the system’s capacity against overloads and increases its robustness? These modern approaches are valid for centralised, decentralised and distributed peer-to-peer (p2p) networks, often associated with bespoke service discovery mechanisms, and should be something that you clear with your team early on.

Security & Resilience

Make sure that you have the right people to monitor your system and repair mechanisms, and strategies using important resilience components. Dedicated secure p2p protocols, static analysis and property-based testing are among the techniques you should adopt to drive the security of a system. Information validation is used to protect against the man in the middle (MitM) attacks. Back pressure mechanisms protect against distributed denial of service attacks (DDOS).

Both symmetrical and asymmetrical encryptions are used to achieve the highest level of security possible. It’s also worth checking on hardware security ensuring that sensitive private keys are only accessible via hardware security modules (HSM).

Erlang is a high-level language that avoids a lot of the security issues that are an issue with C/C++ (no buffer overflows, no dangling pointers, etc)

Dal Gemmell, Head of Product at Helium Inc.


‘Blockchain needs to be integrated into existing technology to be usable and affordable.’
Arzu Toren, Global Banker

Integrating applications on top of complex backends, as well as providing synchronous and asynchronous interfaces among backends, is a serious job. So it’s worth checking if your team uses frontend facing APIs such as REST and Websocket to implement responsive applications. They should comply with industry standards for compatibility and security to drive message exchanges on top of a variety of AMQP and JMS queuing mechanisms.

In the Blockchain space, we are highly competent in designing cross-chain smart contracts capable of changing anchor data to major networks such as Bitcoin, leveraging its security against history revisions. We can provide guidance to plan effective and reliable integration tests, ensuring the compliance of data validation and communication protocols is preserved throughout the development process.

Erlang can easily interface with C/C++/Rust libraries using Native Implemented Functions (NIFs), and we do that a lot to talk to cryptographic libraries and for performance-critical code.

Dal Gemmell, Head of Product at Helium Inc.

Programming Language

Engage with us as true polyglots! We specialise in Erlang and Elixir, but we are highly competent in every other language in the industry, this could be Java/Scala, JS, C/C++, Python, Rust or Go , we stay relevant!

Vast expertise in language interpretation and virtual machines has proven to be critical know-how in a variety of modern blockchain solutions.

“Erlang Solutions is renowned for its technical talent, and having already embedded some of its engineers and architects in our development team, we have no doubt that Erlang Solutions will play a crucial part in building out an extremely strong core team.”

Yanislav Malahov, æternity founder

For any business size in any industry, we’re ready to investigate, build and deploy your blockchain-based project on time and to budget.

Get in touch with your blockchain project queries or via the contact us form. Stay tuned for the next theme in this series ‘Blockchain: Myths vs Reality by Dominic Perini.

The post Blockchain Tech Deep Dive 1/4 appeared first on Erlang Solutions .

  • Pl chevron_right

    Ignite Realtime Blog: Smack 4.4.4 released / PlanetJabber · Monday, 1 November, 2021 - 18:06 · 2 minutes

We are happy to announce the release of Smack 4.4.4. Thanks to numerous contributors this patch level release includes many fixes and improvements. I’d like to especially thank the folks from Jitsi , namely Boris Grozev, Damian Minkov, Ingo Bauersachs, and Jonathan Lennox. Who tracked down multiple bugs, including a nasty concurrency bug. Furthermore, thanks to Ingo, Smack and its important dependencies jxmpp and MiniDNS are now, again, OSGi compatible.

For a high-level overview of what’s changed in Smack 4.4.4, check out Smack’s changelog .

The shortlog for the 4.4.4 release is

flo@neo-pc ~/code/smack $ git shortlog -n --no-merges 4.4.3..4.4.4 Florian Schmaus (23):      Smack 4.4.4-SNAPSHOT      [xdata] Add missing ensureAtMostSingleValue() to parseBooleanFormField      [xdata] Safe the raw character data of form field values      [caps] Use the raw character data of form fields when caclulating the hash      [pubsub] FormNode(Provider) should not fail if there is no DataForm      [socks5] Ensure that the local SOCKS5 proxy is running (if enabled)      [core] Assert that 'event' is not END_DOCUMENT in forwardToEndTagOfDepth()      [socks5] Fix javadoc of getLocalStreamHost()      [socks5] Remove stale null check      [disco] Add DisocverInfo.nullSafeContainsFuture(DiscoverInfo, CharSequence)      [muc] Check mucServicedDiscoInfo for null in serviceSupportsStableIds()      [carbons] Remove erroneous assert statement in connectionClosed()      [muc] Check for self-presence first in presence listener      [muc] Call userHasLeft() *after* the leave presence was sent      [jingle] Add empty element optimization for <content/>      [core] Pass down the XML environment in IQChildElementXmlStringBuilder      [jingle] Mimic Manager.connection() in JingleTransportManager      [jingle] Make Jingle.Builder extend IqBuilder      [jingle] Add unit test to check that there are no redundant namespaces      [build] Remove OSS Sonatype Snapshot repository      Update NOTICE file      [resources] Rename to generate-notice-file      Smack 4.4.4Ingo Bauersachs (5):      Prevent password enforcement for SASL anonymous      Fix BOSH connection establishment      Make Smack jars OSGi bundles      Add getter for the stanza associated with the exception      Add missing stream namespace to xml declarationJonathan Lennox (2):      Update documentation of default SecurityMode.      Add removeExtension methods to StanzaBuilder.Damian Minkov (1):      [muc] Also process destory message if it contains <status/>Guus der Kinderen (1):      SMACK-908: Don't use components to count tabs in DebuggerSimon Abykov (1):      Accept an empty string as the label value

As always, this Smack release is available via Maven Central .

We would like to use this occasion to point at that Smack now ships with a NOTICE file. Please note that this adds some requirements when using Smack as per the Apache License 2.0 . The content of Smack’s NOTICE file can conveniently be retrieved using Smack.getNoticeStream() .

1 post - 1 participant

Read full topic

  • Pl chevron_right

    Ignite Realtime Blog: Push Notification Openfire plugin 0.9.0 released / PlanetJabber · Wednesday, 27 October, 2021 - 16:09

I’m happy to be able to announce that we’ve released version 0.9.0 of the Push Notifications plugin for Openfire!

This version does not bring new functionality. It does fix a bug that older versions of this plugin had, when running on Openfire 4.6.4 or later.

For other release announcements and news follow us on Twitter

1 post - 1 participant

Read full topic

  • Pl chevron_right

    Paul Schaub: A Simple OpenPGP API / PlanetJabber · Sunday, 10 October, 2021 - 15:45 · 2 minutes

In this post I want to share how easy it is to use OpenPGP using the Stateless OpenPGP Protocol (SOP).

I talked about the SOP specification and its purpose and benefits already in past blog posts. This time I want to give some in-depth examples of how the API can be used in your application.

There are SOP API implementations available in different languages like Java and Rust . They have in common, that they are based around the Stateless OpenPGP Command Line Specification , so they are very similar in form and function.

For Java-based systems, the SOP API was defined in the sop-java library. This module merely contains interface definitions. It is up to the user to choose a library that provides an implementation for those interfaces. Currently the only known implementation is pgpainless-sop based on PGPainless.

The single entry point to the SOP API is the SOP interface (obviously). It provides methods for OpenPGP actions. All we need to get started is an instantiation of this interface:

// This is an ideal candidate for a dependency injection framework!SOP sop = new SOPImpl(); // provided by pgpainless-sop

Let’s start by generating a secret key for the user Alice:

byte[] key = sop.generateKey()        .userId("Alice <>")        .generate()        .getBytes();

The resulting byte array now contains our OpenPGP secret key. Next, lets extract the public key certificate, so that we can share it with out contacts.

// public keybyte[] cert = sop.extractCert()        .key(key) // secret key        .getBytes();

There we go! Both byte arrays contain the key material in ASCII armored form (which we could disable by calling .noArmor() ), so we can simply share the certificate with our contacts.

Let’s actually create an encrypted, signed message. We obviously need our secret key from above, as well as the certificate of our contact Bob.

// get bobs certificatebyte[] bobsCert = ...byte[] message = "Hello, World!\n".getBytes(StandardCharsets.UTF_8);byte[] encryptedAndSigned = sop.encrypt()        .signWith(key) // sign with our key        .withCert(cert) // encrypt for us, so that we too can decrypt        .withCert(bobsCert) // encrypt for Bob        .plaintext(message)        .getBytes();

Again, by default this message is ASCII armored, so we can simply share it as a String with Bob.

We can decrypt and verify Bobs reply like this:

// Bobs answerbyte[] bobsEncryptedSignedReply = ...ByteArrayAndResult<DecryptionResult> decrypted = sop.decrypt()        .verifyWithCert(bobsCert) // verify bobs signature        .withKey(key) // decrypt with our key        .ciphertext(bobsEncryptedSignedReply)        .toByteArrayAndResult();// Bobs plaintext replybyte[] message = decrypted.getBytes();// List of signature verificationsList<Verification> verifications = decrypted.getResult().getVerifications();

Easy! Signing messages and verifying signed-only messages basically works the same, so I’ll omit examples for it in this post.

As you can see, performing basic OpenPGP operations using the Stateless OpenPGP Protocol is as simple as it gets. And the best part is that the API is defined as an interface, so swapping the backend can simply be done by replacing the SOP object with an implementation from another library. All API usages stay the same.

I want to use this opportunity to encourage YOU the reader: If there is no SOP API available for your language of choice, consider creating one! Take a look at the specification and an API definition like sop-java or the sop Rust crate to get an idea of how to design the API. If you keep your SOP API independent from any backend library it will be easy to swap backends out for another library later in the process.

Let’s make OpenPGP great again! Happy Hacking!

  • wifi_tethering open_in_new

    This post is public /2021/10/10/a-simple-openpgp-api/

  • Pl chevron_right

    Erlang Solutions: FinTech Matters newsletter | September 2021 / PlanetJabber · Friday, 17 September, 2021 - 11:44 · 4 minutes

Subscribe to receive FinTech Matters and other great content, notifications of events and more to your inbox, we will only send you relevant, high-quality content and you can unsubscribe at any time.

Read on to discover what really matters for tech in financial services right now for the Erlang ecosystem and beyond.

It’s back to school season following what was a disrupted summer for most, but one where the FinTech world has continued to innovate and grow – global investment in H1 reached $98bn (£18bn in the UK) and Revolut raised a funding round of $800m at a valuation of $33bn.

Michael Jaiyeola, FinTech Marketing Lead

[Subscribe now]

The Top Stories Right Now

Study To Investigate The Impact Of Open Source Software On The EU Economy

This detailed report from the EU examines the technological independence, competitiveness and innovation around open source software. The main breakthrough of the study is described as being the ‘identification of open source as a public good’. The value of open source technologies for many modern industries is well recognised but financial services have lagged behind somewhat. It is true that in highly regulated industries the compliance requirements may require some extra work when it comes to open source, but the idea that to be successful you must build using proprietary technology is finally being dispelled. A report at the beginning of the year by forecast The Open Source Service Market to grow by 24 % by 2025.

Communities like those of Erlang and Elixir offer collaboration and information sharing to raise standards for all – it’s not about free software. Where financial services infrastructure leverages open source technology that meets shared requirements then individual companies can focus on adding differential value to their products and services. For FinTech faster innovations while driving down development costs and speed to market is the holy trinity and open source technology enables this in the right use cases where being agile, responsive and scalable will determine competitiveness and success.

Get the report

Solarisbank raises $224M at a $1.65B valuation

Solarisbank, the tech company with a banking license, (whose platform is built using Erlang and Elixir) will use the new funding to acquire Contis and expand API-based embedded banking tech in Europe. Solaris was one of the first to be a fully-fledged bank that offers Banking-as-a-Service which is one of the FinTech segments (along with embedded finance) that has thrived over the pandemic period.

Read more

FCA loses £300k worth of electronic devices

In a do as I say not as I do comedy own goal, the FCA has misplaced a total of 323 electronic devices (estimated worth £310,600) over the past three years, according to a freedom of information request.  The devices are predominantly made up of hundreds of laptops, tablets, desktops and mobile phones reported lost or stolen by FCA employees. Unsurprisingly, this raises questions about data protection standards at the industry regulator.

Read more

Verizon and Mastercard partner to bring 5G capabilities to payments

The strategic aim is to integrate 5G into payments focusing on contactless shopping, checkout automation and Point of Sale (POS) experience solutions. It is stated that this will be achieved by harnessing the latest in IoT technology alongside real-time edge computing.

Read more

More content from us

Kivra – Nordic FinTech case study for digital document sending platform

Memo Bank’s story – How they used Elixir to build a bank from scratch

State of play in FinTech – I take a high-level look at some of the industry trends of 2021 so far

Kim Kardashian’s cryptocurrency Instagram post – the ‘financial promotion with the single biggest audience reach in history’!

When ultra influential influencers meet newly developed tokens, what could possibly go wrong? Well potentially plenty according to the head of the FCA, Charles Randell, who called Ethereum Max (nothing to do with the Ethereum platform) ‘a speculative digital token created a month before by unknown developers’. Read more

One in four UK financial services workers want to work from home full-time

A new survey from Accenture has found 24 per cent of the UK’s 1m financial services workers “would prefer to work entirely from home once a full return to office is possible”. Read more

Klarna joins leading climate change programmes

The Swedish BNPL unicorn is the first FinTech to sign up for The Climate Change Pledge and the Race to Zero campaign . Read more

Erlang Solutions byte size

Did you miss joining our livestream of “What’s Next for Blockchain in Financial Services’ during FinTech Week London? Well, don’t worry you can get exclusive early access to the full video of the panel debate here.

Code BEAM America – Created for developers, by developers, the conference is dedicated to bringing the best minds in the Erlang and Elixir communities together to SHARE. LEARN. INSPIRE. over two days November 4-5

Trifork Group (our parent company) reports revenue growth of 55% in Q2 and 46% in H1 2021. The Q2-2021 Interim Report can be downloaded here. In Q2, Trifork Labs continued its active investment strategy and increased investments in the new Fintech startups Kashet, a new mobile-first challenger bank in Switzerland, as well as in a joint-venture Fintech startup (Money), co-owned by three mid-sized banks. Trifork has entered an integration partnership with Modularbank, a cloud-native core banking as a service solution.

To make sure you don’t miss out on any of our leading FinTech content, events and news, do subscribe for regular updates. We will only send you relevant high-quality content and you can unsubscribe at any time.

Connect with me on LinkedIn


The post FinTech Matters newsletter | September 2021 appeared first on Erlang Solutions .

  • wifi_tethering open_in_new

    This post is public /blog/fintech-matters-newsletter-september-2021/

  • Pl chevron_right

    The XMPP Standards Foundation: The XMPP Newsletter August 2021 / PlanetJabber · Saturday, 4 September, 2021 - 22:00 · 8 minutes

Welcome to the XMPP Newsletter covering the month of August 2021.

Many projects and their efforts in the XMPP community are a result of people’s voluntary work. If you are happy with the services and software you may be using, especially throughout the current situation, please consider to say thanks or help these projects!

Read this Newsletter via our RSS Feed !

Interested in supporting the Newsletter team? Read more at the bottom.

Other than that - enjoy reading!

Newsletter translations

Translations of the XMPP Newsletter will be released here (with some delay):

Many thanks to the translators and their work! This is a great help to spread the news! Please join them in their work or start over with another language!


XMPP Office Hours - Also, checkout our new YouTube channel !

Berlin XMPP Meetup (remote) : Monthly Meeting of XMPP Enthusiasts in Berlin - always 2nd Wednesday of the month.


What is project XPORTA? As announced in the April '21 newsletter , the Data Portability and Services Incubator at NGI is sponsoring the XMPP Account Portability project named XPORTA. This month they host an interview with Matthew Wild about how this project came into existence.

The "have your own TelCo based on XMPP" service has a new blog, with a twist, now based on Libervia so based on XMPP, with all the nice blog features that you want (like RSS) and even subscriptions via XMPP (with compatible clients like Movim or Libervia). The post announcing the new blog also covers the new registration flow and billing system. But the previous post is the real jewel, called Adventures in WebRTC: Making Phone Calls from XMPP . It details the journey through WebRTC debugging, multiple clients, NAT, ICE and all monitored through Wireshark. Get a hot or cold beverage to go with this about 70 minutes long read.

In the previous newsletter we mentioned that Debian Linux 11 will soon be launched with updated XMPP software, as this happened in the meantime, server admins are already updating or even setting up new deployments. Such as Nelson from Luxembourg, who published a blog post about setting up a server with ejabberd on Debian 11 Bullseye .

While the Snikket iOS client app was just released, read more below, the behind the scenes development continues. In the latest blog post, Matthew Wild announces that the expert folk at Simply Secure will be performing a usability audit of the current app , as well as conducting usability testing thanks to funding from the OTF’s Usability Lab. The analysis will help to improve the UX of the iOS app and Snikket as a whole.

Missed in last month's issue, the folks at cometchat have blogged about XMPP's history, working architecture, stanzas and features in general in Everything About XMPP - Extensible Messaging & Presence Protocol . If you want a quick technical overview (or need one to show others what XMPP is all about) this ~15 minutes read can bring one up to speed.

"Spaces" are the new XMPP frontier to be explored, and you'd get a glimpse of them in Gajim client news below, but the work is pretty elaborate and ongoing with many people involved. Renga 's (an XMPP client for Haiku) developer pulkomandy has blogged Some random thoughts about XMPP spaces thinking about use cases (family, business, communities) and user interfaces.

Any Turkish speakers reading the newsletter? We don't have a translation yet, but Ged has just published an in-depth blog post about XMPP titled Hangi "Chat" Programı? . In about 40 minutes it takes the reader through the story of the protocol, tells about apps, servers, comparisons with popular apps and privacy.

The March `21 newsletter brought the news that JSXC (the Javascript XMPP Client) got funding to work on group chat calls. This month they report on the work done and explain the current progress that can even be tested.

Finally, how does FaceTime work? They interestingly use the same port (5223) as XMPP does...

Software news

Clients and applications

Gajim 1.4 Preview: Workspaces . The Gajim team has been hard at work in the past months to prepare the next v1.4 release. The upcoming version brings a major interface redesign. In this post, they explain how the new interface works and what remains to be decided or implemented before the release.

Gajim Workspaces (preview)

Libervia progress note 2021-W31 is out with information about Docker integration, the translation portal and the first 0.8.0 beta. It also has plenty of details about the work done on the ActivityPub Gateway project (grant announced in the April '21 newsletter ) with SQL, DBus, PubSub and with new and updated XEPs.

Communiqué is a new XMPP client from the Mellium Co-op team. It was announced this month and presented at the XMPP Office Hours (unfortunately recording did not work out). The source code can be found in the repository .


Monal 5.0.1 is now available for both iOS and macOS bringing mostly corrections and more polish over the previously major release.

JSXC Openfire plugin gets a 4.3.1-1 release , with mostly bug fixes and improvements from the JSXC project.

After so many months of waiting the Snikket iOS app is now publicly released . Snikket server admins can add the app to the invitations pages to have Apple users easily find it. If you are not running Snikket you can still use the app (you can use credentials directly) but do read the blog post to know what you need to add to your Prosody instance (invitations modules) or what limitations you might experience using any other server software.

Snikket on iOS


Prosody 0.11.10 has been released with a fix for CVE-2021-37601 and some minor changes. Prosody developers recommend server admins to upgrade in order to fix the remote information disclosure issue.


The Mellium Dev Communiqué for August includes updates to the Mellium XMPP library as well as the new Communiqué instant messaging client. The biggest updates this month are MAM and ad-hoc commands support! You can read more here.

Extensions and specifications

Developers and other standards experts from around the world collaborate on these extensions, developing new specifications for emerging practices, and refining existing ways of doing things. Proposed by anybody, the particularly successful ones end up as Final or Active - depending on their type - while others are carefully archived as Deferred. This life cycle is described in XEP-0001 , which contains the formal and canonical definitions for the types, states, and processes. Read more about the standards process . Communication around Standards and Extensions happens in the Standards Mailing List ( online archive ).


The XEP development process starts by writing up an idea and submitting it to the XMPP Editor. Within two weeks, the Council decides whether to accept this proposal as an Experimental XEP.

  • No XEPs proposed this month.


  • Version 0.1.0 of XEP-0460 (Pubsub Caching Hints)
    • Accepted by vote of Council on 2021-07-21. (XEP Editor (jsc))


If an experimental XEP is not updated for more than twelve months, it will be moved off Experimental to Deferred. If there is another update, it will put the XEP back onto Experimental.

  • No XEPs deferred this month.


  • Version 1.21.0 of XEP-0060 (Publish-Subscribe)

    • Revert change from version 1.15.5 which changed meta-data to metadata in wire protocol. That was an unintended breaking change which has now been reverted. (pep)
  • Version 0.3.0 of XEP-0214 (File Repository and Sharing)

    • Revert change from version 0.2.1 which changed meta-data to metadata in wire protocol. That was an unintended breaking change which has now been reverted. (rm)
  • Version 0.3.0 of XEP-0248 (PubSub Collection Nodes)

    • Revert change from version 0.2.1 which changed meta-data to metadata in wire protocol. That was an unintended breaking change which has now been reverted. (rm)
  • Version 0.2.0 of XEP-0283 (Moved)

    • Re-write the flow with a more focused approach. (mw)
  • Version 1.1.0 of XEP-0429 (Special Interests Group End to End Encryption)

    • Add discussion venue after creation by the Infrastructure Team. (mw)
  • Version 1.24.0 of XEP-0001 (XMPP Extension Protocols)

    • Change "Draft" to "Stable". (ssw)

Last Call

Last calls are issued once everyone seems satisfied with the current XEP status. After the Council decides whether the XEP seems ready, the XMPP Editor issues a Last Call for comments. The feedback gathered during the Last Call help improving the XEP before returning it to the Council for advancement to Draft.

  • No Last Call this month.

Stable (formely known as Draft)

Info: The XSF has decided to rename 'Draft' to 'Stable'. Read more about it here.

  • No Stable this month.

Call for Experience

A Call For Experience - like a Last Call, is an explicit call for comments, but in this case it's mostly directed at people who've implemented, and ideally deployed, the specification. The Council then votes to move it to Final.

  • No Call for Experience this month.

Thanks all!

This XMPP Newsletter is produced collaboratively by the XMPP community.

Therefore many thanks to Adrien Bourmault (neox), Anoxinon e.V. community, anubis, Benoît Sibaud, emus, Sam, Licaon_Kter, nicola, seveso, SouL, wurstsalat3000, Ysabeau for their support and help in creation, review and translation!

Spread the news!

Please share the news via other networks:

Find and place job offers in the XMPP job board .

Subscribe to receive the next edition in your inbox

Also check out our RSS Feed !

Help us to build the newsletter

We started drafting in this simple pad in parallel to our efforts in the XSF Github repository . We are always happy to welcome contributors. Do not hesitate to join the discussion in our Comm-Team group chat (MUC) and thereby help us sustain this as a community effort. We really need more support!

You have a project and write about it? Please consider sharing your news or events here, and promote it to a large audience! And even if you can only spend a few minutes of support, these would already be helpful!

Tasks which need to be done on a regular basis are for example:

  • Aggregation of news in the XMPP universe
  • Short formulation of news and events
  • Summary of the monthly communication on extensions (XEP)
  • Review of the newsletter draft
  • Preparation for media images
  • Translations: especially German and Spanish


This newsletter is published under CC BY-SA license .

  • wifi_tethering open_in_new

    This post is public /2021/08/newsletter-08-august/