Planet Jabber

July 13, 2021

Debian XMPP Team

XMPP Novelties in Debian 11 Bullseye

This is not only the Year of the Ox, but also the year of Debian 11, code-named bullseye. The release lies ahead, full freeze starts this week. A good opportunity to take a look at what is new in bullseye. In this post new programs and new software versions related to XMPP, also known as Jabber are presented. XMPP exists since 1999, and has a diverse and active developers community. It is a universal communication protocol, used for instant messaging, IoT, WebRTC, and social applications. You probably will encounter some oxen in this post.

  • biboumi, XMPP gateway to connect to IRC servers: 8.3 → 9.0
    The biggest change for users is SASL support: A new field in the Configure ad-hoc command lets you set a password that will be used to authenticate to the nick service, instead of using the cumbersome NickServ method.
    Many more changes are listed in the changelog.
  • Dino, modern XMPP client: 0.0.git20181129 → 0.2.0
    Dino in Debian 10 was practically a technology preview. In Debian 11 it is already a fully usable client, supporting OMEMO encryption, file upload, image preview, message correction and many more features in a clean and beautiful user interface.
  • ejabberd, the extensible realtime platform: 18.12.1 → 21.01.
    Probably the most important improvement for end-users is XEP-0215 support to facilitate modern WebRTC-style audio/video calls. ejabberd also integrates more nicely with systemd (e.g., the watchdog feature if supported, now). Apart from that, a new configuration validator was introduced, which brings a more flexible (but mostly backwards-compatible) syntax. Also, error reporting in case of misconfiguration should be way more helpful, now. As a new authentication backend, JSON Web Tokens (JWT) can be used. In addition to the XMPP and SIP support, ejabberd now includes a full-blown MQTT server. A large number of smaller features has been added, performance was improved in many ways, and several bugs were fixed. See the long list of changes.
  • Gajim, a GTK+-based Jabber client: 1.1.2 → 1.3.1
    The new Debian release brings many improvements. Gajim’s network code has been completely rewritten, which leads to faster connections, better recovery from network loss, and less network related hiccups. Customizing Gajim is now easier than ever. Thanks to the new settings backend and a completely reworked Preferences window, you can adapt Gajim to your needs in just a few seconds.
    Good for newcomers: account creation is now a lot easier with Gajim’s new assistant. The new Profile window gives you many options to tell people more about yourself. You can now easily crop your own profile picture before updating it.
    Group chats actions have been reorganized. It’s now easier to send invitations or change your nickname for example. Gajim also received support for chat markers, which enables you to see how far your contact followed the conversation. But this is by far not everything the new release brings. There are many new and helpful features, such as pasting images from your clipboard directly into the chat or playing voice messages directly from the chat window.
    Read more about the new Gajim release in Debian 11 here.
    Furthermore, three more Gajim plugins are now in Debian: gajim-lengthnotifier, gajim-openpgp for OX 🐂 (XEP-0373: OpenPGP for XMPP) and gajim-syntaxhighlight.
  • NEW Kaidan Simple and user-friendly Jabber/XMPP client 0.7.0
    Kaidan is a simple, user-friendly and modern XMPP chat client. The user interface makes use of Kirigami and QtQuick, while the back-end of Kaidan is entirely written in C++ using Qt and the Qt-based XMPP library QXmpp. Kaidan runs on mobile and desktop systems including Linux, Windows, macOS, Android, Plasma Mobile and Ubuntu Touch.
  • mcabber, small Jabber (XMPP) console client: 1.1.0 → 1.1.2
    A theme for 256 color terminals is now included, the handling of carbon message copies has been improved, and various minor issues have been fixed.
  • Poezio, Console-based XMPP client: 0.12.1 → 0.13.1
    This new release brings many improvements, such as Message Archive (XEP-0313) support, initial support for OMEMO (XEP-0384) through a plugin, HTTP File Upload support, Consitent Color Generation (XEP-0392), and plenty of internal changes and bug fixes. Not all changes in 0.13 and 0.13.1 can be listed, see the CHANGELOG for a more extensive summary.
  • Profanity, the console based XMPP client: 0.6.0 → 0.10.0
    We can not list all changes which have been done, but here are some highlights.
    Support of OMEMO Encryption (XEP-0384). Consistent Color Generation (XEP-0392), be aware of the changes in the command to standardize the names of commands. A clipboard feature has been added. Highlight unread messages with a different color in /wins. Keyboard switch to select the next window with unread messages with alt + a. Support for Last Message Correction (XEP-0308), Allow UTF-8 symbols as OMEMO/OTR/PGP indicator char. Add option to open avatars directly (XEP-0084). Add option to define a theme at startup and some changes to improve themes. Add possibility to easily open URLs. Add experimental OX 🐂 (XEP-0373, XEP-0374) support. Add OMEMO media sharing support, ...
    There is also a Profanity light package in Debian now, the best option for systems with tight limits on resources.
  • Prosody, the lightweight extensible XMPP server: 0.11.2 → 0.11.9
    Upgrading to the latest stable release of Prosody brings a whole load of improvements in the stability, usability and performance departments. It especially improves the performance of websockets, and PEP performance for users with many contacts. It includes interoperability improvements for a range of clients.
  • prosody-modules, community modules and extensions for Prosody: 0.0~hg20190203 → 0.0~hg20210130
    The ever-growing collection of goodies to plug into Prosody has a number of exciting additions, including a suite of modules to handle invite-based account registration, and others for moderating messages in group chats (e.g. for removal of spam/abuse), server-to-server federation over Tor and client authentication using certificates. Many existing community modules received updates as well.
  • Psi, Qt-based XMPP client: 1.3 → 1.5
    The new version contains important bug fixes.
  • salutatoi, multi-frontends, multi-purposes communication tool: 0.7.0a4 → 0.8.0~hg3453
    This version is now fully running on Python 3, and has full OMEMO support (one2one, groups and files). The CLI frontend (jp) has among new commands a "jp file get" one which is comparable to wget with OMEMO support. A file sharing component is included, with HTTP Upload and Jingle support. For a list of other improvements, please consult the changelog.
    Note, that the upstream project has been renamed to "Libervia".
  • NEW sms4you, Personal gateway connecting SMS to XMPP or email 0.0.7
    It runs with a GSM device over ModemManager and uses a lightweight XMPP server or a single email account to handle communication in both directions.
  • NEW xmppc, XMPP Command Line Client 0.1.0
    xmppc is a new command line tool for XMPP. It supports some basic features of XMPP (request your roster, bookmarks, OMEMO Devices and fingerprints). You can send messages with both legacy PGP (XEP-0027) and the new OX 🐂 (XEP-0373: OpenPGP for XMPP).

That's all for now. Enjoy Debian 11 bullseye and Happy Chatting!

by Debian XMPP Team at July 13, 2021 00:00

July 07, 2021

Ignite Realtime Blog

inVerse Plugin for Openfire reaches 7.0.6.2!

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 brings the bugfixes released in Converse v7.0.5 and v7.0.6.

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

by danc at July 07, 2021 11:31

Erlang Solutions

FinTech Matters newsletter | July 2021

fintech newsletter

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.

With most people’s summer plans thoroughly disrupted for another year, there is not much sign of winding down for holidays in the FinTech space just yet with mega investment rounds and big deals making the news. If you haven’t already subscribed for regular updates on tech innovation in the industry – click the button below. 

Michael Jaiyeola, FinTech Marketing Lead

[Subscribe now]

The Top Stories Right Now

Goldman Sachs starts trading on JPMorgan’s Onyx blockchain platform

Goldman Sachs Group has joined JPMorgan’s Onyx trading platform that is based on the Ethereum blockchain. They will use the platform to execute smart contracts in the repo market, a digital version of the dollar repurchase agreement. The use of blockchain technology will solve the pain points around conducting large-scale transitions in the repo market.

Read more

The UK and Nordics lead Europe’s Open Banking 

A new report by Mastercard has revealed the UK and Nordic countries as being best placed to take advantage of open banking thanks to their advanced digital infrastructures, high-speed broadband accessibility and smartphone usage.

Open banking is the technology and regulation that has democratised banking data, putting consumers more in control of how they use their financial information and opening the door for innovative fintech firms to offer exciting alternative products. By early 2021, more than 3 million UK consumers and businesses used open banking products. And, most recently, we have seen global payments giant Visa acquire the Swedish open banking provider Tink in a €1.8bn deal.

Read more

Klarna raises $639M at a $45.6B valuation thanks to US growth

Klarna, the European BNPL provider, has raised fresh funding as it heads towards IPO amid “massive growth” in the US market.  Klarna is now established as the highest-valued private FinTech in Europe. The increase in US users has been dramatic, growing from 10 million towards the end of 2020 to 18 million. Overall, Klarna operates in 20 countries and has more than 90 million global active users making more than 2 million transactions a day conducted on its platform. 

Read more

What Else We’re Reading

5 Interesting Use Cases of Erlang and Elixir in Financial Services

Lessons FinTech Can Learn from Telecoms

We’re joining FinTech Week London on July 12 to co-present a panel discussion livestream from Barclays Rise – ‘What’s Next for Blockchain in Financial Services’. You can register for free here.

RabbitMQ Summit is happening 13-14 July – RabbitMQ is the Erlang based message broker used by many of the major global financial services firms including Goldman Sachs,  Credit Suisse and JPMorgan

Trifork – our parent company has undergone a very successful IPO bringing many more new shareholders and investors to the group which will help power our continued success in the development of technologies that make people’s lives better.

Erlang Solutions byte size

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

Email: michael.jaiyeola@erlang-solutions.com

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

by Michael Jaiyeola at July 07, 2021 11:11

July 06, 2021

Ignite Realtime Blog

Smack 4.4.3 released

We are happy to announce the availability of Smack 4.4.3, the third patch level release of Smack’s 4.4 series. It mostly contains bugfixes. Thanks to everyone who contributed by reporting and fixing bugs. 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

by Flow at July 06, 2021 12:56

Erlang Solutions

Our Take on Blockchain in FinTech and the BEAM

As things stand, FinTech solves problems and addresses pain points through innovative models, however, it is still reliant on legacy banking infrastructure. Cryptocurrency and its underlying technology, blockchain, has the power to revolutionise that infrastructure and, in doing so, revolutionise financial services work.

Even though Bitcoin has been making the big headlines, the main use cases in financial services are more practical – to store data in blockchain-based distributed databases for better efficiency and transparency. For example, we’ve seen our FinTech clients use blockchain, for storing financial operations logs and signature management. There are other uses too: for example, in lending blockchain can remove the need for centralised gatekeepers, making it more secure to borrow money and provide lower interest rates or in trade finance creating more transparency, security and trust among the trade parties.

There are many other use cases for the technology and we will explore them in detail as part of Fintech Week London for our sponsored session panel discussion ‘What’s Next For Blockchain In Financial Services’ on 12 July – you can get a free all-access online pass discount code here.

So, how does the landscape look right now? Firstly, there is a substantial difference in how blockchain can be used by players in different segments of financial services. Established banks and technology firms are primarily focusing on the applications for digital identities and regulatory compliance, whereas ‘start-up operators’ are mostly engaged in activities related to capital markets. 

For banks blockchain’s power to reduce operational costs is the strongest business case while the current most relevant segment is that of payments. A decentralised ledger for payments can facilitate faster payments at lower fees, while clearance and settlement can get closer to real-time at reduced costs away from time-consuming and error-prone settlement processes. 

Encouragingly for those working with blockchain, PoCs are being replaced with deployments to real production systems. While most use cases remain private and permissioned at this point, they are an encouraging indicator. The underlying technology of the network and protocol layers are now widely accepted as robust and stable allowing innovations to move to the application layer where the real value lies. As the higher stack application layer is more nascent, this is where using developers who are experienced becomes especially valuable to avoid wasting time and resources.

Technologies based on the BEAM VM and OTP such as Erlang and Elixir are often the right tool for the job when it comes to embarking upon a blockchain project. You can find the languages being used by a number of players in the space such as with ArcBlock’s blockchain developer platform that has a core infrastructure powered by BEAM technologies. They chose Erlang because it comes with built-in features that are critical to a blockchain system, like hot-upgrade, concurrency and high availability. This solid foundation has meant their team can focus more on building high-level features and making their platform developer friendly. Check out our recent webinar with Ty Chen, VP of Engineering, on building dApps on blockchain using Erlang.

Another example is POA Network, the Ethereum-based sidechain that offers an open-source framework for smart contracts to solve scalability, affordability, and interoperability issues. Erlang and Elixir give them the lightweight code needed to run thousands of processes concurrently on the same virtual machine, which is beneficial for scaling. 

Our team consists of domain experts who have been involved in a wide variety of innovative blockchain projects with our clients. æternity blockchain is an Erlang-based scalable smart contract platform that looks to address some of the most fundamental​ elements of the technology – contract language, oracle and governance mechanisms and methods of consensus. æternity uses Erlang because it allows their team to write code that can respond to many requests in parallel and without crashing. Check out this talk from the Code BEAM conference on how and why æternity chose to use Erlang.

The last few years show blockchain technology stacks that can solve real problems in financial services. Ultimately, true advancements will emerge from the intersections of different disciplines. Interfaces of blockchain technologies with AI, ML and IoT need to be explored as we move to greater actual design and production engineering.

At Erlang Solutions we continue to collaborate closely with our partners in researching and delivering innovative solutions to support blockchain projects. This ranges from core blockchain technologies to more specific distributed applications supported by automated smart contracts. As experts with cutting edge know-how derived from direct exposure in building blockchain solutions and having been operating in this space for quite some time, we advocate that business leaders, regardless of industry, consider how to best use the technology to unlock value in their business models. 

Join us to as we talk about the wider industry at Fintech Week London on July 12. Register for free.

The post Our Take on Blockchain in FinTech and the BEAM appeared first on Erlang Solutions.

by Michael Jaiyeola at July 06, 2021 08:03

July 05, 2021

Peter Saint-Andre

Blended Vision

The other day I went to see the eye doctor, who told me I have blended vision: one of my eyes is farsighted and the other is nearsighted, but they function well together. Quite a fitting analogy for what Pierre Hadot called philosophy as the love and practice of wisdom. We tend to think of philosophy as hopelessly abstract, but if it is in part a practice then it focuses not only on what is far but also on what is near. One of the poems in my book Songs of Zarathustra tries to capture this insight:...

July 05, 2021 00:00

July 04, 2021

The XMPP Standards Foundation

The XMPP Newsletter June 2021

Welcome to the XMPP Newsletter covering the month of June 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!

XSF Announcement

The XMPP Operators Channel is a place primarily for operators of federated XMPP services, to have civil and low-bar discourse and resolution of interoperability issues. While discussions can get further from on-topic there was no written code of conduct or rules until this month. You can read them here and join if you find the topic interesting.

Events

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

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

Videos

Demo: ad-hoc commands and data forms in Mellium - Sam Whited demos the new support for XEP-0050: Ad-Hoc Commands and XEP-0004: Data Forms in the Mellium XMPP library.

Articles

Axel Reimer published a short installation and configuration guide for Monal 5.0. It is available in English and German.

Ingrid’s Space has thoughts on why decentralised applications don’t work.

Martin Dosch wrote a short blog post about how to use the "Jabber-ID" email header with neomutt [DE]. The setting of this header is also described in the xmpp.org wiki.

Software freedom conservancy moved their chat from IRC to XMPP using Snikket.

Vaxbot, the XMPP based vaccine bot has been featured on Canadian National News.

Software news

Clients and applications

Blabber.IM XMPP service has been discontinued and has shut down its server. On June 25, the blabber.im website reported that they were discontinuing support for their XMPP server due to personal reasons.

In this respect, MattJ announced created a tool for users to migrate their roster and vcards but also subscriptions to another XMPP account. Find the XMPP account exporter here.

Gajim Development News: This month brought some fixes for themes and spell checking. Development on the new Gajim version made a big step forward: file previews are working again and more important they're now a core integrated feature, they look even better while also being privacy respecting for those anonymous chats.

Monal 5.0 has been released, featuring support for group chats (not yet OMEMO encrypted, will come next) and sending voice messages and videos, but also a lot of internal code refactoring and bug fixes.

Monal Group Chat (MUC)

Profanity, a console-based XMPP client, has implemented attention flags. Use the shortcut ALT+F to toggle the flag.

UWPX v.0.33.0.0 has been released. It includes support for XMPP Providers for convenient auto-complete and registration of new accounts to XMPP servers. Besides that, this release fixes a few bugs related to stream close and open message parsing.

UWPX Server Onboarding

Servers

Jackal, an XMPP server written in Go, released version 0.54.0 with support for XEP-0198: Stream Management, docker compose support, graphana service dashboard and a new fancy logo:

New Jackal Logo

OpenFire 4.6.4 has been released, bringing some bug fixes.

Libraries

Have you heard about qxbridge a Qt XMPP Bridge for Telegram based on QXmpp.

There is a new ProtoXEP for for pre-auth key generation, which would allow for fancy new uses, such as XMPP Self Provisioning with Mastodon

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).

Proposed

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.

New

  • Version 0.1.0 of XEP-0459 (XMPP Compliance Suites 2022)

    • Accepted by vote of Council on 2021-05-26.
  • Version 0.1.0 of XEP-0458 (Community Code of Conduct)

    • Accept as Experimental after unanimous approval by Board of the ProtoXEP draft for discussion within the community.

Deferred

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 XEP deferred this month.

Updated

  • Version 0.2.0 of XEP-0458 (Community Code of Conduct)

    • Integrate various comments from various sources (dwd)
  • Version 0.3 of XEP-0377 (Spam Reporting)

    • Rework based on list feedback. (ssw)
  • Version 0.11 of XEP-0292 (vCard4 Over XMPP)

    • Recommend use of contact bare JIDs for item IDs (ka)
  • Version 1.20.0 of XEP-0060 (Publish-Subscribe)

    • Add integer-or-max datatype to use with Data Forms Validation. (pep)

Obsoleted

  • Version 1.0.0 of XEP-0423 (XMPP Compliance Suites 2020)
    • Update to Draft as per council vote on 2019/11/07
    • Successors are XMPP Compliance Suites 2021 (XEP-0443) and 2022 (XEP-0459)

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.

Draft

  • No Draft 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, alkino, BAud, emus, Jeybe, nicola, mdosch, Leirda, Licaon_Kter, Pierre Jarillon, pmaziere, seveso, VI, wurstsalat, xdelatour, Ysabeau for their support and help in creation, review and translation!

Spread the news!

Please share the news on "social networks":

Find and place job offers in the XMPP job board.

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

License

This newsletter is published under CC BY-SA license.

by emus at July 04, 2021 22:00

June 28, 2021

Monal IM

Monal 5.0 released with group chat and voice messages

Hello everyone!

Well, you read correctly: Monal supports group chat and voice messages now! Apart from this an insane amount of work has been put into this update. Let’s look at the details! But first let’s say many thanks to our core developers who made this update happen: Thilo Molitor and Friedrich Altheide. Apart from this also many thanks to the support of Anu Pokharel (initial author), Jim Tsai, Jan Stoyke and Edward Maurer for the contribution and support! Last but not, least also great thanks to all the reviewers (especially foss- !) and testers of the beta and alpha builds! Please keep on doing! (Here you can read how to support the development)

This version 5.0 is a very big update to Monal. But it is and was also hard and tedious work. So now – what’s in it?

MUC, group chatMonal has group chat support

New features worth to mention:

  • The group chat function (MUC) has been rewritten entirely and now works reliably.
  • Added voice messages and sending videos
  • QR-code scanning for macOS (including account setup, adding contacts and validating OMEMO keys)
  • MUC Bookmarks (XEP-0048) (This was the five years old #1 community wish! Great Thilo <3)
  • Privacy: Push server now uses XMPP for registering new push tokens (now the Monal app-server never sees your IP)
  • MacOS (especially on Apple Silicon devices) now has real push support and can receive messages even if the app is closed, like iMessage does.
  • MacOS: drag drop support for files
  • Photo share option on iOS
  • Showing of own OMEMO key QR codes for quick fingerprint verification (Thank you Friedrich for diving into this rabbit hole!)
  • Encryption: Show trust stage (ToFU (Trust on First Use), trusted, untrusted)
  • New upload queue user interface for sending multiple files at once. This makes Monal send files after confirmation only.
  • Chat: Message quote swipe action
  • Chat: Show Emoji in bigger font
  • Added image quality slider in settings to configure quality of sent images
  • Buddies can be muted per account
  • TLS 1.3 support (if not connected via STARTTLS, and really your server should support direct TLS nowadays!)

Resolved issues (especially with OMEMO encryption):

  • OMEMO encryption to and from Sisikin IM or Beagle IM is now functional
  • Improve OMEMO encryption handling for broken sessions
  • Persistence of trust levels even if OMEMO encryption errors occur
  • Increased app startup speed
  • Fixed crash on account deletion
  • Do not allow change of account ID (JID)
  • Send Last Message Correction encrypted if used in an encrypted chat
  • Many small and bigger fixes, improvements and stability changes.

Of course this is just a limited summary, find a detailed listing here. Almost all code has been touched and many parts have been rewritten. We have received many question on improvements – now your patience paid of. The app should update itself – otherwise take a look at the App Store.

And now? First thing YOU can do is saying thanks to the developers. You can reach the public chat here.

Second, Monal is being developed entirely in spare-time of the named developers and has no commercial interest – for the freedom of software but also to enable ad- and tracking-free communication. More than 500 hours of software engineering work have been spent on this update. If that would have been paid, one could talk about more than 20,000 USD (approx. 16,500 EUR) (assuming 40 USD per hour). Therefore, we kindly would ask you to consider to make a donation. We will spend the money on the very expensive Apple hardware (we need a M1 mac for faster builds – that would significantly increase the development speed).

If you have hardware to donate please reach out to us first!

Last but not least, you can check out the new features and give us feedback, that helps a lot to improve the app. Read about how to support!

What else? There are still many things to do. We plan to implement encryption in group chats (MUC OMEMO, XEP-0384) and also implement Audio and Video Calls. Furthermore, some polishing and other less important things also need to be done. Finally, do you know someone you could imagine to volunteer in support visual design and improvement of the app’s interface? Then please reach out to us as well.

Spread the word! We have this blog but also a Mastodon account, Twitter account and you can read this via the Planet Jabber RSS feed.

Development is conducted via GitHub.

Let’s change the digital communication via XMPP in the Apple environment, together!

Your Monal IM developers!

by emus at June 28, 2021 19:28

June 27, 2021

Gajim

Development News June 2021

This month brought some fixes for themes and spell checking. Development on the new Gajim version made a big step forward: file previews are working again, and they look even better now.

Changes in Gajim

Gajim offers theming support for many parts of the GUI (Graphical User Interface). It also offers to switch between light and dark themes. While switching, some custom styles didn’t get applied instantly, leading to poor contrast and wrong colors in general. This issue has finally been fixed (#10441). While fixing this issue, Gajim’s Themes window also received some improvements, making it easier for you to customize Gajim to your needs.

Meanwhile, work on the next Gajim version made some progress:

  • URL Image Preview plugin has been integrated into Gajim’s core
  • Previews will not load automatically in anonymous group chats
  • The layout of file previews has been reworked, making it more compact
  • The chat list will now indicate if the last message contains a file
  • Workspace editing and removing have been simplified
  • User highlighting in group chats has been implemented

What else happened

  • #10558: Spell checking has been fixed
  • #10551: Gajim’s GStreamer dependency check now includes more packages
  • The provider blabber.im has been removed from the server list due to the service being shut down

Plugin updates

Gajim’s URL Image Preview plugin received a fix for timestamps not being displayed correctly for voice messages.

Changes in python-nbxmpp

No changes in python-nbxmpp this month.

As always, feel free to join gajim@conference.gajim.org to discuss with us.

Gajim

June 27, 2021 00:00

June 24, 2021

Erlang Solutions

5 Erlang and Elixir Use Cases In FinTech

It can hardly be described as ‘secret sauce’ anymore, given that Cisco ships 2 million devices per year running Erlang. That means a whopping 90% of internet traffic is going through routers and switches controlled by Erlang. But what is perhaps less well known within the tech community is that, away from telecoms, Erlang and other languages running on the BEAM virtual machine are powering some of the world’s biggest and most productive financial services systems. Here are just five to start with.

1. Vocalink

Why Erlang?  

For ultra-reliable transaction delivery

Erlang is used for immediate payment switches by many companies facilitating instant bank transfers and bill payment services. Erlang, Mnesia and RabbitMQ are used for Vocalink’s global instant payment systems (IPS) which enables real-time payments in Singapore, Thailand, the US and other countries. The Vocalink IPS is now in use by The Clearing House – the banking association and payments companies owned by the largest commercial banks in the US. It has also been selected as the payment technology for the innovative P27 Scandinavian cross/border payment initiative. 

Vocalink has been a driving force around the world in the evolution of real-time payments for over a decade. These real-time solutions sit at the centre of the global payments infrastructure and are designed to ‘run on their own rails’ at a massive scale. Their systems are relied on by financial institutions, corporates and governments to provide high availability and resilient payment solutions. 

The ability to be able to securely and reliably handle payments requests at scale is thanks to Erlang, which, being originally designed for telecoms switching, is ideal for systems that need to be always on and always processing.

2. Æternity

Why Erlang and Elixir?

For groundbreaking innovation with smart contracts and blockchain

æternity is one of the world’s most innovative open-source blockchains with an ambitious mission to bridge the gap between technology and society. They are using Erlang to scale a distributed peer-to-peer network and make their blockchain more reliable and available. 

Founded in 2016 by Yanislav Malahov, known in some circles as “the Godfather of Ethereum”, æternity is designed to deliver productivity, transparent governance, and global scalability. Erlang Solutions were engaged to help them tackle the issues of scalability, which are inherent in modern blockchains. 

The platform needed to handle large volumes of information in parallel. They wanted to increase transaction speed and scalability while also ensuring privacy by designing a unique state channel to enable the off-chain verification of data and smart contracts, allowing for all transactions to be independent of each other. The Erlang-based smart contract platform features oracles, a unique governance system, and a functional smart contract language called Sophia.

3. Solaris Bank

Why Erlang and Elixir? 

To be disruptive via fast and agile development

Solarisbank is a Berlin-based 400-person FinTech company making waves at a pace rarely seen before in the financial industry. Their Banking-as-a-Service platform enables businesses to offer their own financial products via Elixir powered APIs. It took Solarisbank less than three years to build the platform, scale up a team, and raise almost €100m in funding with investments. 

Their full banking license enables companies to offer their own financial products. Partners can access Solarisbank modules in the fields of e-money, instant credit, lending, and digital banking as well as services from third-party providers integrated with the platform via an API. 

4. Goldman Sachs

Why Erlang and RabbitMQ?

To create system reliability for application innovation 

The Erlang programming language is being used by Goldman Sachs in part of its hedge fund trading platform. Erlang is used as part of the real-time monitoring solution for this distributed trading system enabling changes to be made rapidly in response to market conditions.

Goldman Sachs leverages hundreds of applications communicating with each other. The Data Management and Distribution group provide messaging middleware services to the firm’s ecosystem. RabbitMQ, which is built in Erlang, is a key part of the messaging portfolio at Goldman Sachs. 

RabbitMQ is a free, Open Source message broker that is highly available, fault-tolerant and scalable. As a system middleware layer, it enables different services in your application to communicate with each other optimally. The key value of using RabbitMQ at Goldman Sachs has been the freedom it has afforded its developers to innovate with minimal friction. This freedom helps Goldman Sachs to be one of the traditional financial services firms recognised as keeping pace with the most exciting FinTechs. You can learn more about how Goldman Sachs uses RabbitMQ in their talk at RabbitMQ Summit 2018

5. Sum Up

Why Erlang and Elixir?

Because of their 24/7 system availability and fault-tolerance

SumUP is the leading mobile point-of-sale (mPOS) company in Europe, enabling hundreds of thousands of small businesses in countries worldwide to get paid. They used Erlang to build their payment service from scratch.

They picked Erlang as the ‘right tool for the job’ because card processing is an industry requiring backend systems of a certain type, where availability and fault-tolerance is a must, and Erlang boasts a battle-proven track record in delivering this in telecoms and FinTech.

Nowadays, beyond the original hardware, mobile, and web apps, SumUp has also developed a suite of APIs and SDKs for integrating SumUp payment into other apps and services.

SUMMARY

As you can see Erlang, Elixir and other BEAM VM based technologies are being used in production across the FinTech landscape – this includes private and public blockchain, payment and credit card gateways, banking APIs and more traditional infrastructure management. In fact, it is likely you will find an Erlang team in all of the major banks and financial institutions. 

It is easy to build prototypes with Erlang which is why it’s a great choice for fast-moving FinTech startups. While the Elixir programming language mixes the best of Erlang in terms of runtime, the concurrency model, and fault-tolerance, with powerful and battle-tested frameworks.

There are many more use cases for Erlang and other BEAM VM technologies from the biggest investment banks in the world to nimble FinTech challengers. Stay tuned to find out more soon.

Sign up for our FinTech newsletter >

The post 5 Erlang and Elixir Use Cases In FinTech appeared first on Erlang Solutions.

by Michael Jaiyeola at June 24, 2021 13:48

June 21, 2021

Monal IM

Vaxbot on Canadian National News

Vaxbot, a service built by the Monal team to vaccinate people in the US and Canada was featured on the Canadian Broadcast Corporation (CBC) The National and was broadcast nationwide.

This was great exposure for the project and XMPP in general, introducing it to a whole new population that likely skews older and less tech savvy. They don’t show Monal but you can see one of the users in the clip using Converse.js to access the bot. There has been a massive spike in new users since it aired on TV. At its peak in the US, we were doing about 1 million messages a day. We are approaching 800k again in Canada now.

by Anu at June 21, 2021 12:54

June 20, 2021

Monal IM

Monal 5.0 RC2 ready

We fixed some bugs in this second release candidate:

  • fixed background image bug
  • fixed wrong message direction displayed for some incoming messages in non-anon mucs
  • fixed reconnect-all button in logs settings
  • fixed changing of roster names of contact via contact details

by Thilo at June 20, 2021 23:35

June 18, 2021

Ignite Realtime Blog

Openfire 4.6.4 is released

The Ignite Realtime Community is pleased to announce the release of Openfire version 4.6.4. This release contains a number of bug fixes and denotes our desire to provide stable 4.6.x series releases while development work continues on a 4.7.0 release.

You can find download artifacts available having the following sha1sum values:

42bff5adc51a2347952f436fed25b5013ee0a146  openfire_4_6_4.dmg
d1f85a2854e42ae48e4000480fbbb55e39f84e56  openfire-4.6.4-1.i686.rpm
1a5c43e904726192e2abc36858eb2df0b17244a2  openfire-4.6.4-1.noarch.rpm
689c046afdbd63e22615a599f076851a49af50cd  openfire-4.6.4-1.x86_64.rpm
18117c3fee17d1b6d704b85c42d7d3386e520983  openfire_4.6.4_all.deb
36b1953db86406a1eb2344d1b0ffada0f57b8b32  openfire_4_6_4_bundledJRE.exe
72de355806bb2ce414655cf0da2801ce47032f03  openfire_4_6_4_bundledJRE_x64.exe
3086b70e04077b56dbb59931a87937e619995f0b  openfire_4_6_4.exe
7dab9c9a61456508793ede0ab13c7fe1f18e12d1  openfire_4_6_4.tar.gz
4f05ea94729800bbc6272b8ff98f3c8aa81d9207  openfire_4_6_4_x64.exe
792f68efc3943658e71586dbe305420499aab6b2  openfire_4_6_4.zip
9b3e031e4b064b5e4c618476b5429e077d4c1abb  openfire_src_4_6_3.tar.gz
bd79eae0079cba4a84cc9d1e249a62c3f45d6539  openfire_src_4_6_3.zip

Please report any issues you have with this release in our Community Forums.

We are always desperate for folks interested in pitching in with development, testing, and code reviews. Please consider dropping by our webchat forum if you are interested in helping.

Thanks again for your interest in Openfire!

For other release announcements and news follow us on Twitter

1 post - 1 participant

Read full topic

by guus at June 18, 2021 20:20

Peter Saint-Andre

Opinions vs. Truths

In recent posts we've looked into holding opinions about fewer topics, holding multiple opinions about the same topic, and changing our opinions about the opinions that other people hold. But what exactly is an opinion? Let's take a closer look....

June 18, 2021 00:00

June 17, 2021

Monal IM

Monal 5.0 RC1 ready

We are pleased to announce that we just published a new beta build (746) of Monal 5.0 (iOS and macOS)

If nothing big happens, this will be the last beta build of Monal 5.0 and we’ll finally see the release of Monal 5.0 stable next week!

by Thilo at June 17, 2021 05:14

June 06, 2021

Peter Saint-Andre

The Number Six

Everyone has their idiosyncrasies. One of mine is a particular fascination with the number six....

June 06, 2021 00:00

June 05, 2021

Profanity

Attention, attention!

Hello folks,

we have implemented an attention flag in profanity.

The attention flag can be used to mark chats and groupchats where you would like to pay particular attention.

This is only available on master, but will be in the next release (0.11.0).

How it works

Open the chat or groupchat window and press shortcut ALT+F. Profanity will display a line to inform you when the attention flag has been activated and deactivated.

05/06/21 15:25:49 - Staff restaurant: Lunch recommendations:
05/06/21 15:27:04 ! Attention flag has been activated
05/06/21 15:27:04 ! Attention flag has been deactivated

You can use the shortcut ALT+F to toggle the flag.

The /wins attention command can be used to display all windows with you pay attention.

15:38:19 - 3: Room roomA@conference.domain.tld
15:38:19 - 15: Room roomB@conference.server.tld, 1 unread
15:38:19 - 28: Room roomC@chat.server.tld
15:38:19 - 29: Room roomD@chat.server.tld, 3 unread

You can just circle around the marked windows with shortcut ALT+M.

June 05, 2021 13:07

June 04, 2021

The XMPP Standards Foundation

The XMPP Newsletter May 2021

Welcome to the XMPP Newsletter covering the month of May 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!

XSF Announcement

Voting the membership applications can be done via xmpp:memberbot@xmpp.org (by XSF members only). We will hold a member meeting on June 10th to formally approve the voting results. The meeting particulars are:

  • Date: June 10th, 2021
  • Time: 19:00 UTC
  • Location: xmpp:xsf@muc.xmpp.org
  • Further information: https://wiki.xmpp.org/web/Membership_Applications_Q2_2021

Events

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

Berlin XMPP Meetup (remote): Monthly Meeting of XMPP Enthusiasts in Berlin - always 2nd Wednesday of the month. Next topic will be the Curated XMPP provider list on Wednesday, 2021-06-09 18:00 CEST.

Videos

Gajim 1.4 UI/UX Preview presented by Philipp Hörist.

Gajim 1.4 UI/UX Preview

Articles

JC Brand, the developer behind Converse.js, the web client, blogs about the current development towards version 8.0.0 in Mergebounce: Increasing performance by batching IndexedDB writes.

Ingo Jürgensmann wrote the article The Fediverse – What About Resources? on the resources of different messaging technologies. He states that XMPP consumes a lot less hardware resources and thereby energy than comparing services.

Sumit Khanna wrote an article about moving their phone numbers from Google Hangouts/Voice to a SIP/XMPP Service by using XMPP and jmp.chat.

jmp.chat is also used by craftyguy to send test MMS to himself during mmsd development.

Vaxbot US has been shutdown after change of the situation in the USA. But the service has been deployed for Canada instead. All in all, that was an interesting approach and use of XMPP technology!

Software news

Clients and applications

Video calls in Dino are slowly coming together. Dino's developers are already making successful OMEMO encrypted video calls. The feature is included in their nightly builds now, but there's still further work to be done.

Dino AV calls

Gajim development News: This month brought improved Ad-Hoc commands, fixes for Gajim Portable, and new image preview capabilities. Meanwhile, work on Gajim’s next version made some progress: better code block styling, chat filters, note to myself, and much more. Also in Gajim news: Gajim celebrated its 17th birthday this month. Philipp Hörist (lovetox), maintainer of Gajim, gave a preview of the new Gajim 1.4 User Interface. Gajim is an XMPP client written in Python. It currently receives a big UI overhaul, of which the first results were presented at the XMPP Office Hours.

Kaidan 0.8 has been released with noteworthy new features, including typing notifications (Chat State Notifications) and message history synchronization (using MAM)!

"Salut à Toi" is now "Libervia". Read more about the changes behind the curtain.

UWXP, a Microsoft Windows (UWP) client, has been released in version 0.32.0.0 with focus on MUC and MAM bugfixes.

Servers

ProcessOne published a tutorial on how to install and configure MariaDB with ejabberd.

Prosody 0.11.9 has been released: This release addresses a number of important security issues that affect most deployments of Prosody. Full details are available in a separate security advisory. We recommend that all deployments upgrade or apply the mitigations described in the advisory.

Snikket just published their May update to the Snikket server software. This includes a few security fixes from Prosody, so upgrade soon! It also now allows you to manage user roles and access levels.

Libraries

No updates on XMPP libraries reach our attention :-(

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).

Proposed

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.

  • XMPP Compliance Suites 2022
    • This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.

New

  • No new XEP this month.

Deferred

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 XEP deferred this month.

Updated

  • Version 0.7.0 of XEP-0373 (OpenPGP for XMPP)

    • Recommend PubSub access model 'open' for public key data node and metadata node. (ps)
  • Version 1.3 of XEP-0013 (Flexible Offline Message Retrieval)

    • Deprecate after council vote of 2021-03-31 (XEP Editor (jsc))

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.

Draft

  • No Draft 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 community.

Therefore many thanks to emus, Florent Zara, Goffi, jeybe, Licaon_Kter, mdosch, nicola, pmaziere, snark, wurstsalat and Ysabeau for their support and help in creation, review and translation!

Spread the news!

Please share the news on "social networks":

Find and place job offers in the XMPP job board.

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

License

This newsletter is published under CC BY-SA license.

by emus at June 04, 2021 22:00

May 31, 2021

Peter Saint-Andre

Holding Multiple Opinions

Sometimes it's difficult to hold fewer opinions in your own mind or to engage in cognitive empathy toward others; that's when it can help to hold multiple opinions at the same time. This might sound like the mental equivalent of juggling plates, but it's a skill worth cultivating (and one with an ancient pedigree, as evidenced for example by the Letter to Pythocles by the ancient Greek philosopher Epicurus)....

May 31, 2021 00:00

May 28, 2021

Kaidan

Kaidan 0.8 released: Typing notifications & message synchronization

We are happy to publish a new release of Kaidan that brings it closer to fulfilling the daily messaging needs.

As promised, this release includes some major new features: The chat history is now being synchronized across devices, to allow finding information in old messages. It is now indicated when the chat partner is typing, which makes conversations easier.

Typing notifications in action

We have also polished the general usability, so that now the size of the windows is preserved across restarts. Some of the strings in the user interface have received some rewording, to make them easier to understand.

The registration now integrates as good as possible with servers which have registration through chat apps disabled, by showing the link to register through the server’s website.

On the cross-platform side, we have decided to use the breeze theme also on macOS, as the macOS style does not support a few features we want to use in the user interface.

Changelog

This release adds the following features:

  • Add typing notifications (XEP-0085: Chat State Notifications)
  • Add message history syncing (XEP-0313: Message Archive Management)
  • Window size is restored
  • The server’s website link is displayed if account creation is disabled
  • Use breeze theme on macOS
  • Improved user strings & descriptions

Download

Or install Kaidan from your distribution:

Packaging status

May 28, 2021 21:01

Gajim

Development News May 2021

This month brings improved Ad-Hoc commands, fixes for Gajim Portable, and new image preview capabilities. Meanwhile, work on Gajim’s next version made some progress: better code block styling, chat filters, note to myself, and much more.

Changes in Gajim

Through Gajim’s Ad-Hoc commands window, you are able to configure service settings, gather infos, or trigger various other actions offered by your provider. The Ad-Hoc commands window has now been ported to the new Assistant, which you already know from Gajim’s Account Creation for example. This lowers maintenance effort and allows all tasks with a ‘wizard’ workflow to have consistent design and behaviour.

On Windows, you can choose whether you want to install Gajim on your system or if you want to have a portable version of Gajim inside a single folder. For distribution of Gajim Portable, we use an installer which extracts all relevant files into a directory of your choice. However, this process sometimes fails if you upgrade an existing Gajim Portable folder. This issue has now been fixed by applying a cleaning mechanism before extracting the new version. Your user data won’t be touched, of course.

Meanwhile, work on the next Gajim version made some progress:

  • ‘Note to myself’ feature: write messages to your own contact (e.g. to another device), now improved
  • Code block styling is now aligned to your theme (light/dark)
  • Chats can be filtered by ‘chats’ and ‘group chats’ in the Start Chat window and in the Chat List
  • Status message styling has been improved
  • File transfers (uploading) are now displayed inline
  • Gajim update notifications will now be displayed in a separate App Page, so there won’t be disrupting update notifications anymore
  • Status Icon has been fixed, and the App Indicator plugin has been integrated
  • Status message window has been removed: it’s now a simple input field

If you haven’t seen it yet: lovetox (Philipp Hörist), current maintainer of Gajim, gave a first introduction to what’s coming with the next version:

This is only part of what we’re planning to do for the next release of Gajim. Stay tuned!

What else happened

  • Profile window: Fixed initial state of privacy switches
  • Profile window: Added Note element
  • #10559: Fixed issue with Server Info window when using PLAIN connection

Plugin updates

Gajim’s URL Image Preview plugin is now able to generate previews for WEBP and JXL files. MIME type guessing has been improved as well.

Changes in python-nbxmpp

This month, Ad-Hoc Commands (XEP-0050) compliance has been improved.

As always, feel free to join gajim@conference.gajim.org to discuss with us.

Gajim

May 28, 2021 00:00

May 27, 2021

ProcessOne

Install and configure MariaDB with ejabberd

By default, ejabberd uses the Mnesia internal database. It is great for home and small office environments, but in larger companies, as the amount of chat logs and users grows, we need more scalability. Today, I will show you how to install MariaDB, a MySQL-compatible database, migrate your data and configure ejabberd to use MariaDB instead of Mnesia.

» Don’t want to migrate data yourself?
ProcessOne experts will make your communication scalable. Contact us »

MariaDB with ejabberd

Installing MariaDB

We assume the usual Debian configuration as in my previous tutorials. I have updated my ejabberd to version 21.01 (the update process is the same as the initial ejabberd installation, so check my first tutorial).

To install MariaDB simply use:

apt-get install mariadb-server

Then run the installation wizard and follow the instructions:

mysql_secure_installation

Preparing MariaDB for ejabberd

To get MariaDB ready for ejabberd, we need to create a new database, its user, and then populate the database with the ejabberd SQL schema.

First, let’s create the database using your MariaDB root user:

echo "CREATE DATABASE ejabberd;" | mysql -h localhost -u root -p

Next, let’s create a dedicated ejabberd user authenticated with a password, and assign it to this database. The Enter password prompt is again asking about the root MariaDB user:

echo "GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY 'password';" | mysql -h localhost -u root -p

Finally, let’s download the latest ejabberd SQL schema and load it into our database. This time, we are switching to using the ejabberd MariaDB user, and the Enter password prompt is asking for the password we just specified in the GRANT command above:

wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql
mysql -h localhost -D ejabberd -u ejabberd -p < mysql.sql

To verify that everything is correct, run a command to display all the database tables, again using the ejabberd MariaDB user, and the output should look something like that:

echo "SHOW TABLES;" | mysql -h localhost -D ejabberd -u ejabberd -p --table
Enter password: 
+-------------------------+
| Tables_in_ejabberd      |
+-------------------------+
| archive                 |
| archive_prefs           |
| bosh                    |
| caps_features           |
| last                    |
| mix_channel             |
| mix_pam                 |
| mix_participant         |
| mix_subscription        |
| motd                    |
| mqtt_pub                |
...

Configuring ejabberd for MariaDB

Now that our MariaDB tables are ready, we need to configure ejabberd to use this MySQL-compatible database. Edit your ejabberd.yml config and add the following settings, where password refers to the ejabberd MariaDB user:

sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "password"

Migrating Mnesia data to MariaDB database

At this point, if you restart your ejabberd, it won’t be using MariaDB just yet. Let’s first migrate Mnesia data into our new SQL database using ejabberdctl – we first export the data into a mnesia.sql file, and then we import it into the MariaDB database:

cd /opt/ejabberd-21.01/bin/
./ejabberdctl export2sql marekfoss.org /tmp/mnesia.sql
mysql -h localhost -D ejabberd -u ejabberd -p < /tmp/mnesia.sql
rm /tmp/mnesia.sql

It’s a good practice to remove the /tmp/mnesia.sql after we are done with it. Now, add default_db: sql and auth_method: sql to your ejabberd.yml configuration file:

default_db: sql
auth_method: sql

sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "password"

Then, restart your ejabberd instance – it will now use the MariaDB database! Please note that the Mnesia database will still be started up and used for non-persistent data and clustering.

In this ejabberd tutorial series:

Photo by Amy Asher on Unsplash

The post Install and configure MariaDB with ejabberd first appeared on ProcessOne.

by Marek Foss at May 27, 2021 13:33

May 21, 2021

Gajim

Gajim’s Birthday

Today is Gajim’s birthday! 🎉 Seventeen years of Instant Messaging with open standards and open source software.

About Gajim

On Mai 21th 2004, Asterix (Yann Leboulanger) released Gajim 0.1. Gajim (is) a Jabber Instant Messenger. Development started back when XEPs (XMPP Extension Protocols) were named JEPs (Jabber Enhancement Proposals) and the XSF (XMPP Standards Foundation) was called JSF (Jabber Software Foundation). Right from the first year, Gajim was available for both Linux and Windows. Supported by many contributors, there have been more than 70 releases until today. The code repository counts around 18,000 commits, and the issue tracker (once powered by Trac, now Gitlab) lists a history of over 10,500 opened issues in total.

Today, Gajim supports around 85 XEPs. Driven by the community, Gajim has been translated into 29 languages. A calculated effort of around 31 person-years went into developing Gajim.

With the release of Gajim 1.0 in March 2018, a big switch from Python 2 and GTK 2 to Python 3 and GTK 3 had been completed. For the following releases, Gajim’s core had been gradually rewritten. Since February 2021, we’ve been working on the next version. It will include a complete rework of Gajim’s main component: the message window. lovetox (Philipp Hörist), current maintainer of Gajim, gave a first introduction to what’s coming with the next version:

This is only part of what we’re planning to do for the next release of Gajim. Stay tuned!

As always, feel free to join gajim@conference.gajim.org to discuss with us.

Gajim

May 21, 2021 00:00

May 19, 2021

Snikket

May 2021 server release

We’re pleased to introduce a new release of the Snikket server. The Snikket server is an easy-to-install server package that allows you to run your own private messaging service for family, friends and other small groups.

As well as some new features, this release has some important security fixes for the built-in Prosody component. We advise all administrators to update as soon as possible.

For information on how to upgrade, see the (very short) upgrade guide.

Web interface

User and role management

This release brings a new interface for viewing and editing user accounts on the server. Among the changes is the ability to select the “access level” of an account via the web interface. In particular this allows you to add/remove other administrators of your server.

In the future we will also be adding an additional ‘limited’ access level that can be used to restrict access to features such as invites and federation for certain user accounts (such as guests and minors).

Invitations

Invitation pages now include a link to download the Snikket app from F-Droid, as well as Google Play. Although F-Droid doesn’t yet support the seamless registration flow, it’s important that we help people discover free (as in freedom) alternatives whenever possible!

Translations

Translation improvements have been made for Polish, German, Danish, Spanish (Mexican), Indonesian and Swedish.

Certificate renewal

A bug has been fixed that eventually caused Snikket to present an expired certificate for web links (the web interface and also shared files). Restarting the service is a temporary fix, but this release will prevent it happening again in the future.

Technical improvements

Here’s a bunch of lower-level changes for advanced users that are included in this release:

  • You can now configure what address Snikket’s built-in HTTP server will listen for connections on (useful for certain advanced setups behind a reverse proxy)
  • Add docker health checks, allowing docker to inform you about the health of the Snikket services
  • Switch to a more robust DNS resolver (used for federation when connecting to other servers)
  • Allow configuration of an external TURN server (replacing the built-in one)
  • Fix support for BOSH and websockets (allowing third-party web clients)

If you have any questions or feedback about this release, let us know!

by Snikket Team (team@snikket.org) at May 19, 2021 12:45

Erlang Solutions

Lessons FinTech Can Learn From Telecom – Part 2/2

In the second half of this blog series, Erik Schön looks next at the ‘right tool for the jobs’ that are required for FinTech 3.0. The Erlang/Elixir/OTP open-source ecosystem for software development has its roots in telecom – an industry that has already resolved many of the new challenges confronting FinTech. Revisit Part One.

The Right Tool for the Job

One of the most important tools in the telecoms toolbox for real-time, secure, reliable, scalable and interoperable systems that can be developed quickly and operated at low cost, is the open-source programming language and associated frameworks, tools and libraries called Erlang/OTP (Open Telecom Platform) originally developed by the telecom giant Ericsson.

erlang and elixir stickers on laptop

The Need: Quick Development of the Right Thing

Mike Williams, co-creator of Erlang/OTP, wrote down his credo in 1985 which was then used to guide the development of Erlang/OTP during the 80s and 90s (Däcker, 2009):

  • “Find the right methods – design by prototyping.”
  • “Make mistakes on a small scale – not in a production project.”
  • “It’s not good enough to have ideas – you must also be able to implement them to know that they work.”

These insights contributed to making Erlang/OTP suitable for iterative, incremental development with quick feedback from real customers. This also ensured a smooth developer experience making it easier to build the right thing that: 

  • customers find valuable, usable and sometimes even desirable
  • is feasible from a technical perspective; 
  • is viable from a commercial perspective;
  • is reasonable from a societal perspective, e.g. sustainable and ethical.

The Need: Real-Time, Secure, Reliable and Scalable Solutions 

Bjarne Däcker, head of the Ericsson computer science lab and Mike Williams’s manager at the time, formulated the requirements on the new programming language system as follows (Däcker, 2000):

  • Real-time:  “Actions to be performed at a certain point in time or within a certain time.”
  • Security: “Stringent quality”
  • Reliability: “Very large software systems … Interaction with hardware … Complex functionality such as feature interaction … Continuous operation for many years … Software maintenance (reconfiguration, etc.) without stopping the system … Fault tolerance both to hardware failures and software errors”
  • Scalability: “Systems distributed over several computers … handling of a very large number of concurrent activities.”

Joe Armstrong, co-creator of Erlang/OTP summarised it as “making reliable distributed systems in the presence of software errors”. (Armstrong, 2003).

Business Outcomes: Faster, Safer, Better, and, More for Less

Over the past 20+ years Erlang/OTP has provided the following business outcomes (Cesarini, 2019):

  • 2x FASTER development of new services thanks to the language’s design, the OTP middleware, the set of frameworks, principles, and design patterns that guide and support the structure, design, implementation, and deployment where e.g. Motorola saw 4-20 times less code compared to traditional languages. 
  • 10x BETTER services that are down less than 5 minutes per year thanks to built-in fault tolerance and resilience mechanisms built into the language and the OTP middleware, e.g. software upgrades and generic error handling, as seen by e.g. Ericsson in their mobile network packet routers.
  • 10x SAFER services that are hard to hack and crash through denial of service attacks thanks to the language construction with lack of pointers, use of messages instead of shared memory and immutable state rather than variable assignments, as seen by the number of vulnerabilities compared to other languages (CVE, 2021).
  • 10x MORE users (billions), transactions per second (millions) within milliseconds thanks to a battle-tested virtual machine as seen by e.g. WhatsApp with more than 2 billion users.
  • 10x LESS costs and energy consumption thanks to fewer servers needed where e.g. Bleacher Report were able to reduce their hardware requirements from 150 servers to 5.

It has been used in telecom since the 90s by e.g.

  • Vendors: Cisco, Ericsson, Nokia, Motorola, 2600Hz
  • Operators: T-Mobile, Telia
  • Social: WhatsApp

and in FinTech. since the mid-00s by e.g.

Robert Virding, co-creator of Erlang/OTP formulated the unique value proposition like this:
Any sufficiently complicated concurrent program in another language [for this job to be done] contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.” (Virding, 2008).

What about Elixir? 

Elixir has all the benefits of Erlang with a lower threshold for developers used to traditional programming languages like Ruby since Elixir’s syntax looks much more familiar to them. Additionally, Elixir gives a very smooth developer experience including state-of-the-art libraries e.g. for graphical user interfaces with Phoenix LiveView.

The Developer Experience

Both Erlang and Elixir are easy to learn within a couple of weeks for people with practical experiences and skills equivalent to a computer science degree as well as a curiosity to learn. And, experience shows that they get up to speed within a couple of months which is what it normally takes to understand a new product codebase or business domain (Däcker, 2000).

Engineers and developers love the experience of using Elixir and Erlang, and as of today, there are over 50,000 members in over 140 Meetup groups in all continents of the world except Antarctica (Schön, 2021). 

The Road Ahead

The Erlang/Elixir open-source ecosystem is thriving like never before.

During 2020-2021 we have seen companies like WhatsApp and Klarna working together on improving the developer experience further and companies like Ericsson evolving the OTP middleware where the next OTP release in May, 2021 is expected to improve the out-of-the-box performance of Erlang and Elixir applications by 30-130% (Larsson, 2020) and reduce the energy consumption by 25% (Cathcart, 2021).

And, we haven’t even mentioned the recent and exciting announcement of Elixir optimised for quick development of safe machine learning solutions for new innovative, automated services (Valim, 2021).

Conclusion

We hope that you now see what FinTech. can learn from telecom and how FinTech. companies can use the Erlang/Elixir/OTP open-source ecosystem to go 2x FASTER, 10x SAFER, 10x BETTER with 10x MORE for 10x LESS – resulting in happy and loyal customers as well as engaged developers.

What are your jobs to be done? What tools are you using? How can we help? Visit our FinTech Hub Page or, if you’re ready to find out how we can work together, tell us about your development project or idea.

Acknowledgements

Kudos to Michael Jaiyeola, for the original idea, helpful pointers, examples and feedback; Noman Azim, for valuable input and concrete examples; Steve Roberts for helpful feedback, insights and examples from a telecom perspective; Phil Harrison for insights and feedback from a FinTech. perspective; Francesco Cesarini for co-creating a generous and welcoming community, for spreading the word and feedback; Joe Armstrong, Robert Virding, Mike Williams and Bjarne Däcker for perseverance, professionalism and respect in co-creating and managing Erlang/OTP.

Writer

Erik Schön, Managing Director, Erlang Solutions Nordic, is an executive with 20+ years of telecoms experience from global standardisation, system design and managing R&D organisations of up to 400 people at the global telecom giant Ericsson. Erik is a big fan of Erlang since the 90s and his latest book is The Art of Strategy.

References

Armstrong, Joe (2003). Making reliable distributed systems in the presence of software errors

Cathcart, Will (2021), Improving WhatsApp’s server efficiency by 25%

Cesarini, Francesco (2019). Which companies are using Erlang, and why? 

CVE (2021). CVE Security Vulnerability Database

Däcker, Bjarne (2000). Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction

Däcker, Bjarne (2009). CS Lab and all that … 

Larsson, Lukas (2020). Implement BeamAsm – a JIT for Erlang/OTP.

Rubio, Manuel (2019). Which companies are using Elixir, and why?

Schön, Erik (2021). Elixir & Erlang Developers

Valim, José (2021). Nx (Numerical Elixir) is now publicly available.

Virding, Robert (2008). Virding’s First Rule of Programming

The post Lessons FinTech Can Learn From Telecom – Part 2/2 appeared first on Erlang Solutions.

by Erik Schön at May 19, 2021 12:40