phone

    • chevron_right

      Ignite Realtime Blog: Smack 4.4.5 and 4.5.0-alpha1 released

      Flow • news.movim.eu / PlanetJabber • 3 March, 2022 • 1 minute

    We are happy to announce the release of Smack 4.4.5. Thanks to numerous contributors this patch level release includes many fixes and improvements.

    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.5 release is

    Florian Schmaus (21):      Smack 4.4.5-SNAPSHOT      [core] Remove erroneous "assert !connected" in connect()      [muc] Correctly processes self-presences      [muc] Only notify() about processed self-presence once      [pubsub] Allow for character data before <item/>'s payload      [formtypes] Add FormFieldRegistry.register(String, FormField.Type, String...)      [softwareinfo] Register urn:xmpp:dataforms:softwareinfo's field types      Add o.j.smackx.softwareinfo.form.SoftwareInfoForm to startup classes      Prevent password enforcement for SASL GSSAPI      [xdata] Adjust behavior of BooleanFormField.getValueAsBoolean()      [xdata] Add BooleanFormField.getValueAsBooleanOrNull()      [core] Improve warning message of ExceptionThrowingCallbackWithHint      [core] Use Enum.toString() in XmlStringBuilder.attribute(String, Enum<?>)      [core] Factor PacketParserUtils.parseIqData() in extra method      [core] Support IqProvider in SmackTestUtil      [jingle] Improve Jingle <reason/> support      [SmackFuture] Invoke the callbacks at most once      [tcp] Unravel SSLSocketFactory.createSocket() invocation      [core] Deprecate some SSLContext config options and add KeyManager option      Switch to CHANGELOG.md      Smack 4.4.5cmeng-git (2):      [core] Fix IQProvider javadoc      [jingle] Add element and text to JingleReason's XMLBoris Grozev (1):      [core] Correctly handle due time of '0' in SmackReactor

    Together with 4.4.5, we released the first alpha version of the upcoming Smack 4.5 series. It contains many exciting new features and improvements. We are happy about your feedback.

    As always, all Smack releases are 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

    • chevron_right

      Erlang Solutions: Is Elixir the Right Choice for Hypergrowth Startups

      Erlang Admin • news.movim.eu / PlanetJabber • 3 March, 2022 • 3 minutes

    We always love to see and share stories that so perfectly capture the benefits of using Elixir. Today, we’ll be taking a look at an example that captures why Elixir is the perfect technology for startups that are anticipating fast growth, including how choosing Elixir allows your development team to focus on improving the product.

    I think Elixir is the best way to build for the web today. Everything is top-notch. Documentation is best in class. Focus on dev-ex is great, even though Elixir is still a niche community, we’ve yet to discover any missing tool.

    Danni Friedland Co-Founder and CTO Walnut

    The company

    Walnut i s a hypergrowth startup designed to provide companies with an easy-to-use platform that delivers perfect demos to prospective customers. In less than two years, Walnut has grown to 60 employees, raising $54 million in total. Their technical team has grown from 3 developers to 20 in that time and all product research and development has been fully distributed from the company’s inception.

    The opportunity

    As a new product, the Walnut team had the opportunity to pick a technology stack that perfectly suited their needs. Other technologies considered included Go, Ruby on Rails, Rust and NodeJS. The decision to choose Elixir was a relatively easy one, with the following assessment against their core needs:

    • Easy to start – Elixir developers can be productive using Phoenix in next to no time. There is no need to understand Erlang / OTP to get started and create great APIs and websites.
    • Scales well – The BEAM VM’s fault tolerance is famed for its scalability. For an ambitious and fast-growing startup, this provides confidence that the tech stack will not require huge changes as the business grows at a rapid rate.
    • Reliable, stable environments – OTP provides a huge advantage when creating incredibly stable demo environments for Walnut’s customers. Their system was reliable, stable and fast from the get-go, delivering a high-quality customer experience.
    • Ability to handle usage spikes – The Walnut demo environments are sometimes hosted on the clients marketing websites. This can result in huge traffic bursts. Whilst they have now created a solution for this using CDNs, they were able to run for a significant period of time simply because Elixir (OTP and the BEAM) were robust enough to handle unpredictable traffic spikes.

    The results

    Since its launch, Walnut has grown its user base by 1000%, with over a thousand times more traffic just in recent months alone. Their system has been able to handle this huge growth with minimal changes to their infrastructure while still running on single-digit servers.

    Due to the reliability and stability of their Elixir backend, their team is able to spend more than 90% of their time focusing on frontend and product development because they have built a back-end system that ‘just works.’

    Despite only being two years into the journey, the decision has already been vindicated from both an organizational (growing from 3 to 20 engineers without trouble) and a technical perspective (handling a 1000x increase in traffic).

    An added benefit to the choice of Elixir has been the ecosystem’s documentation. Not only has this helped them onboard new team members, but it has also led to a positive organizational culture when it comes to documentation. The example set by the tools and documentation has led them to build a culture where documentation is a core principle of their developer culture. You can imagine how advantageous this is to a fast-growing remote team.

    Summary

    As we’ve seen in other industries such as banking, startups need to build products with the ability to scale elegantly in mind. Elixir’s documentation, the ecosystem of libraries and frameworks and use of OTP and the BEAM makes it perfect for any ambitious new company. It’s easy-to-start, easy to scale, and offers full-stack capabilities allowing for greater flexibility within your teams. If you’d like to learn more about Walnut, they’re hiring. If you want to talk about whether Elixir is right for you. We’re always happy to help. Start the conversation today here.

    The post Is Elixir the Right Choice for Hypergrowth Startups appeared first on Erlang Solutions .

    • wifi_tethering open_in_new

      This post is public

      www.erlang-solutions.com /blog/is-elixir-the-right-choice-for-hypergrowth-startups/

    • chevron_right

      Monal IM: Insights into Monal Development

      Friedrich Altheide • news.movim.eu / PlanetJabber • 27 February, 2022 • 6 minutes

    TLDR:

    Info: Monal will stop support for iOS 12, iOS 13 and macOS Catalina!
    We are searching for a SwiftUI developer.
    We need a new simplified website.
    With better continuous funding, our push servers will move from the US to Europe.
    We have a new support mail: info@monal-im.org

    Two years ago we decided to rewrite the Monal app almost entirely and improve it gradually in the process, instead of creating another XMPP Client for iOS and macOS. We successfully managed to transform Monal from an app that had flaws and issues with many functions to a level that promotes a user-friendly experience with working features such as push notification, group chat, and partially end-to-end encryption support (OMEMO). If you are selecting an XMPP client for Apple systems we think that Monal is a great choice nowadays. We have been investing more than a thousand hours and worked hard to overcome all the flaws, the legacy app had. We invite you to give the recent beta a try!

    The development of Monal has not yet finished though, and many more features are hopefully to come. But due to our time constraints, it sometimes takes a bit longer than we and the community would like. We are at most two developers at the moment using our spare time to maintain Monal and develop new features. As we are developing Monal in our spare time without decent funding, it is sometimes hard to prioritize specific features. Please give this circumstance some credits.

    What should Monal look like in the future?

    To give you a bit of insight knowledge of our plans we tried to summarize the most important tasks.

    Interface (SwiftUI)

    In the future Monal should be easy to use. Therefore, the interface requires a proper rework and while we are at it, it should be ported to SwiftUI. While we are still improving in designing with SwiftUI, we would be glad if there is a SwiftUI & Open Source enthusiast who would like to help us with this.
    With this transition we would like to improve the accessibility of the app as well. If you like to support an open source project, and you would like to be part of our SwiftUI journey please contact us.

    Task:

    • Add new MUC creation and management UI
    • Port the chat view
    • Finish contact Details
      • List group chat (MUC) participants
      • Display OMEMO encryption fingerprints for verification
    • Port our settings
    • Port all other remaining views

    Qualifications:

    • General knowledge around SwiftUI (iOS and Catalyst)
    • Interest in improving a (XMPP) chat client
    • Optional, but preferred: Some experience with XMPP (e.g. some weeks, or maybe months of usage of Monal or any other “modern” XMPP client)
    • Optional: Experience in designing inclusive / accessible UI

    Website

    We need a modern (simplified) Hugo based website that is easier to understand, similar to Conversations, Dino or Gajim.

    If you have some spare time, and you are a skilled in creating websites with Hugo please contact us.

    Requirements:

    • Simple design nothing too fancy
    • Privacy by design → No analytics, no external CSS, jss, … usage

    OMEMO Encryption in Group Chat (MUC)

    We started to integrate OMEMO for group chats (MUC) into our alpha build. The receiving and sending sides are already implemented, but there are a few more steps until we can release it into the beta.

    Switching to our new Domain monal-im.org

    In late 2021 we decided that we would like to have a domain with DNSSEC as our current top level domain does not support it. This domain will mainly be used for our push servers and mail servers in the future. From now on you will be able to reach us via info@monal-im.org.

    Build server

    Thanks to ~20 generous donors, we were able to buy a new build server that will be used to build our alpha, beta and stable releases. Furthermore, Thilo is now finally able to debug code with a proper debugger connected to his phone.

    Redundant Push Servers

    We are currently using an AWS US instance for our push server that is not redundant and failed in 2021 more frequently than we liked it to. For that reason we started an internal project to auto-deploy our push server with Ansible and looked into ways for running a redundant push server setup. The first tests look promising so far, but a few more things need to be sorted out before we can switch over to our new setup.

    Before we can switch to the new push server setup, we need a stable funding each month. We estimate that renting a VM in Germany and one at a different hoster in Finland would cost us between 16€ to 32€ each month. Without a stable funding we might not be able to afford this new setup and our push servers would stay in the US.

    Thanks to our generous build server donors, we have a few bucks left that will be used as a ~5 month buffer in case of fluctuant push server funding

    Privacy improved push servers

    With our current push implementation our so-called “app servers” see your JID (username + server), a unique but otherwise opaque device id and an opaque token generated by apple, as well as your interaction times (when you register for push notifications, timestamps when your XMPP server triggers a push notification device).
    If you use multiple accounts on one device, the unique device id is shared across all accounts. We don’t think that this is ideal, as we know all jid’s a user is using.
    In the future we want to try to reduce our knowledge by hiding your username from our app servers. If our idea works, we would only see that a device is registered on one or more domains and the timestamps that a push message was triggered from each domain that is used.

    Audio and Video Calls

    Many clients such as Conversations and Dino support audio and video calls, so Monal should be next 🙂

    End-of-life: iOS 12, iOS 13 and macOS Catalina will not be supported anymore

    Our user group on iOS 12, iOS 13 as well as macOS Catalina has decreased in last years while the resources needed to maintain these old platforms increased. We therefore decided to focus on newer iOS versions and drop the old ones. The next stable release will only be supported on iOS 14 and higher and macOS Big Sur and higher. We are still unsure how long we will support iOS 14, as most of the devices also support iOS15.

    Donations and Support

    Monal is developed by volunteers and community collaboration. The work which has been done is usually not paid, and the developers need to keep up service costs and development in the future! Please consider giving a bit back for the hard work which has been conducted. Currently, there are three ways to financially support the Monal development:

    Here you can read about further support of the development ! Find general information in the Monal Wiki .

    Translations

    We host and manage translations via Weblate .

    Many thanks!

    Of course, thank you very much to everyone who supported us in the past two years! 🙂

    You can follow us via Mastodon .

    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/insights-into-monal-development/

    • chevron_right

      Gajim: Development News February 2022

      Gajim • news.movim.eu / PlanetJabber • 24 February, 2022

    February brought a unified Groupchat Details window, which offers all the configuration knobs you need. Also this month: less memory leaks and improved OMEMO QR codes.

    Changes in Gajim

    In April last year, we introduced Gajim’s new Contact Information window . This month, we took on group chats and their various windows and management pages, introducing a unified ‘Groupchat Details’ window. Groupchat Details offer:

    • an information page
    • a settings page for your local preferences (e.g. whether to send read markers or not)
    • a management page (for subject, avatar, etc.)
    • two pages for managing affiliation of participants and banned users
    • a configuration page for owners
    Groupchat Details

    Groupchat Details

    What else happened:

    • Gajim’s file preview received some fail-safes
    • Removed support for server announce (already covered by Ad-Hoc Commands)
    • Removed Single Message window
    • Fixed several memory leaks
    • Added an ‘unread marker’ for your accounts in the account sidebar
    • Fixed displaying emojis on MacOS

    Plugin updates

    Gajim’s OMEMO plugin received some improvements which should make it easier for cameras to scan QR Codes.

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

    Gajim

    • wifi_tethering open_in_new

      This post is public

      gajim.org /post/2022-02-24-development-news-february/

    • chevron_right

      JMP: Why Bidirectional Gateways Matter

      Stephen Paul Weber • news.movim.eu / PlanetJabber • 23 February, 2022 • 3 minutes

    A big part of the vision of Sopranica, and Cheogram in particular, is bidirectional gateways.  A bidirectional gateway is one that allows (at a minimum) any user of either protocol to contact any user of the other protocol without creating an account.  This is not possible with all protocols, but works well when both sides are federated.

    Simple Example

    Take for instance sip.cheogram.com , which is a bidirectional gateway between XMPP and SIP.  Any federated Jabber ID can communicate with any federated SIP URI with no configuration at the gateway.  This is possible because every valid SIP URI is assigned a Jabber ID of the format xmpp:user\40domain.tld@sip.cheogram.com and every Jabber ID is assigned a SIP URI of the format sip:user%40domain.tld@sip.cheogram.com .

    Contrast this with irc.cheogram.com , which is not a bidirectional gateway even though IRC is an open protocol, due to the non-federated nature of that protocol.  While every IRC channel and nick is given a Jabber ID, not every Jabber ID can be given a channel or nick on every IRC network out there, and even to do it on a single network would require creating many connections or a special peering arrangement.  Using the Jabber ID assigned to an IRC channel may require registering a nick with that IRC network and configuring the associated password at the gateway.  It works well enough, and is quite useful, but it’s not bidirectional.

    User Experience

    One of the big advantages of a bidirectional gateway is the seamless user experience for those who know the gateway exists.  Instead of asking “is this room bridged to protocol X” or “do you also have an address on protocol Y” the existance of the bridge is sufficient to know that, yes, with no extra setup by either party, communication will be possible.  One does not need to convince users to switch to the favored protocol, or bend by creating an identity with the other’s favored protocol, but simply to add the other party directly.  Users with Jabber IDs can advertise how they may be contacted via SIP , SMTP , Matrix , SMS , and more without the other party thinking anything more than “this address looks a bit long”.

    Raising the Whole Network with Chaining

    Because a high-quality bidirectional gateway effectively makes one network out of two networks, any service or gateway added to either network can be used from both sides.  Thus, Matrix, SMTP, or even SMS users can get phone numbers from JMP.  Even further than that, a Matrix user could advertise an SMTP or SIP contact address using the Cheogram gateways, all without any SMTP or SIP gateway needing to exist for Matrix at all.

    Stable Addresses

    If someone is going to give out an address that goes via a gateway, they need confidence that this address will not need to be changed.  So long as their main address on their preferred protocol remains the same, so should their address on other protocols.  This requires a stable DNS name with gateways that are open to anyone, free of charge.  That is the vision behind Cheogram , an infrastructure project inside of Sopranica to maintain stable addressing for bidirectional gateways.

    Conclusion

    Obviously there is still lots of work to do. Most of the gateways mentioned in this post are missing important features they could have in order to facilitate more seamless communication.  Clients of every protocol can gain features to make using a bidirectional gateway a more obvious choice for users.  Unique use cases need more testing to find where the rough edges are.  Cheogram infrastructure is supported in part by JMP, but can always use financial support .  Together we can help people connect to all their contacts. Come join us .

    • wifi_tethering open_in_new

      This post is public

      blog.jmp.chat /b/2022-bidirectional-gateways

    • chevron_right

      Erlang Solutions: Blockchain Tech Deep Dive 4/4 | Innovating with Erlang and Elixir

      Erlang Admin • news.movim.eu / PlanetJabber • 22 February, 2022 • 8 minutes

    Why do companies use Erlang & Elixir for their blockchain solutions?

    Building a robust and scalable blockchain presents a number of challenges that a research and development team typically needs to address. Often the ambitious goals to drive decentralised consensus and governance require unconventional approaches to achieve extra performance and reliability.

    Improved Transactions per Second (TPS) is the most common challenge that blockchain related use cases expose. It is inherently difficult to produce a distributed peer-to-peer (P2P) network that can register transactions into a single data structure.

    Guaranteeing consensus while delivering high TPS throughput among a vast number of nodes active on the network is even more challenging. Also, the fact that most public blockchains need to operate in a non-trusted mode requires adequate mechanisms for validation, which implies that contextual data needs to be available on demand. A blockchain should also be able to respond to anomalies such as network connectivity loss, node failure and malicious actors.

    All of the above is further complicated by the continuous growth of the blockchain data structure itself, which becomes problematic in terms of storage.

    It is clear that, unless we are prepared to invest vast amounts of resources, we would benefit from a high-level language and technology that allows us to quickly prototype and amend our code as we work our way towards an optimal solution to respond to our use case. It’s also ideal if such technology offers strong network and concurrent capabilities . A technology built with distribution in mind that offers a friendly paradigm for asynchronous computation , and which does not collapse under heavy load , but rather degrades gracefully and keeps delivering when traffic exceeds capacity.

    The Erlang Beam VM (available also in the Elixir syntax flavour) undoubtedly scores high on the above list of desirable features.

    “We needed to build our own protocol blockchain to power this decentralized network and the team chose Erlang as the language to build it. Key among the reasons for choosing Erlang were safety, composability, networking, and robustness.”

    Dal Gemmell, Head of Product at Helium Inc.

    Erlang & Elixir’s strengths for blockchain

    Fast development

    The Challenge: Blockchain technology is present in extremely competitive markets, such as fintech, and it is critical for organisations operating in them to be able to release new features in time to attract new customers and retain existing ones.

    The Answer: Both Erlang and Elixir are functional languages, operating at a very high level of abstraction which is ideal for fast prototyping and development of new ideas. By using these languages on top of the Beam VM, developers dramatically increase the speed to market when compared to other lower level or object-oriented technologies.

    Solutions developed in Erlang or Elixir also lead to a significantly smaller code base, which is easier to test and adapt to changes of direction. This is really helpful when you proceed to fast prototyping new solutions and when you discover that amendments and upgrades are necessary, which is very typical in blockchain R&D activity.

    Both languages offer support for unit testing in their standard library. This enables developers to adopt Test Driven approaches ensuring the quality is preserved when modules and libraries get refactored. The common test framework also provides support for distributed tests and can be integrated with Continuous Integration frameworks like Jenkins. Both the Erlang and Elixir shells let the programmer flesh out ideas really fast and access running nodes for inspection.

    Introspection

    The Challenge: To keep a competitive advantage in a fast-changing market, it is critical for organisations to promptly identify issues and opportunities by extracting relevant information about their running systems so that actions can be taken to upgrade them where appropriate.

    The Answer: Erlang and Elixir allow connection to an already running system and a status check. This is an extremely useful debugging tool, both in the development and production environment. Statuses of processes can be checked, deadlocks in the live system can be analysed. There are various metrics and tools that can show overload, bottlenecks and other key performance indicators. Enhanced introspection tools such as Erlang Solutions’ Wombat OAM are also helping with the identification of scalability issues when you run performance tests.

    Networking

    The Challenge: Delivering a highly scalable and distributed P2P network is critical for blockchain enterprises. It is important to rely on stable battle-proven network libraries as reliable building blocks for exploiting use case specific innovative approaches.

    The Answer: Erlang and Elixir come with strong and easy to manage network capabilities. There is a proven record of successful enterprises that rely on the BEAM VM’s networking strengths; including Adroll, WhatsApp, Riot Games, Klarna, Bet365 and Ericsson. Most of their use cases have strong analogies with the P2P networking that is required to deliver a distributed blockchain.

    Combined with massive concurrency, the networking makes Erlang and Elixir ideal for server applications and means it can handle many clients. The binary and bitstring syntax makes parsing binary protocols particularly easy.

    “Erlang has a strong networking story – there’s a claim that something like 60-80% of internet traffic goes through some Erlang code somewhere along the line.”

    Dal Gemmell, Head of Product at Helium Inc.

    Massively concurrent

    The Challenge: There is a weakness afflicting Bitcoin and Ethereum where the computation of a block is competitive rather than collaborative. There is the opportunity to drive a collaborative concurrent approach: i.e. via sharding so that each actor can compute a portion of a block.

    The Answer: The BEAM VM powering Erlang and Elixir provides lightweight processes for applications. These are lightweight so that hundreds of thousands of them can run simultaneously. These processes do not share memory, communication is done over asynchronous messages (unlike goroutines) so there’s no need to synchronise them. The BEAM VM implementation also makes use of all of the available CPUs and cores. This makes Erlang and Elixir ideal for workloads that involve a huge amount of concurrency and consist of mostly independent workflows. This feature is especially useful in addressing the coordinated distribution of portions of work to compute a Merkle Tree of transactions.

    High availability and resilience

    The Challenge: These are the requirements for every type of application and even more so for competitive and highly distributed blockchain networks. The communication and preservation of a state need to be as available as possible to avoid inconsistent states, network forks and disruptions experienced by the users.

    The Answer: The fault tolerance properties mentioned in the previous paragraph combined with built-in distribution leads to high availability even in cases of hardware malfunction. Erlang and Elixir have the built-in mnesia database system with the ability to replicate data over a cluster of nodes so if one node goes down, the state of the system is not lost.

    Erlang and Elixir provide the supervisor pattern to handle errors. Computing is done in multiple processes and if an error occurs and a process crashes, the supervisor is there to handle the situation, restart the computing or take some other measures. This pattern lets the actual code be cleaned as error handling can be implemented elsewhere. As processes are isolated, they do not share memory meaning errors are localised.

    Built-in distribution

    The Challenge: This is highly relevant for trusted or hybrid networks where a central network takes authoritative decisions on top of a broader P2P network. Using the “out of the box” Erlang distribution and proven consistency approaches such as RAFT can be a quick win towards a fast prototype of a blockchain solution.

    The Answer: Erlang and Elixir provide out of the box tools to run a distributed system. The message handling functionalities of the system are transparent, so sending a message to a remote process is just as simple as sending it to a local process. There’s no need for convoluted IDLs, naming services or brokers.

    Safety and security

    The Challenge: Among the security features that both trusted and untrusted blockchain solutions strongly require, is the critical protection of access to the state memory thus reducing the exposure to a range of vulnerabilities.

    The Answer: Erlang and Elixir, just like many high-level languages, do not manipulate memory directly so applications written in Erlang and Elixir are effectively immune to many vulnerabilities like buffer overflows and return-oriented programming. Exploiting these vulnerabilities would require direct access to the memory, but the BEAM VM hides the memory from the application code.

    Concluding Thoughts

    “Working with our R&D partners, Erlang Solutions, was a very rewarding experience. The POA Netstat Agent exceeded our expectations and the team really went the extra mile to deliver this! When it comes to Elixir development, we highly recommend Erlang Solutions.”

    Igor Barinov, Tech Lead at POA Network

    While many business leaders are still trying to figure out how to put the technology to work for maximum ROI, most agree on two things: firstly, blockchain unlocks vast value potential from optimised business operations and secondly, that it’s here to stay too.

    The technology’s potential is massive, working products and fulfilled promises are beginning to take shape. What this means for our partners is that talk about blockchain implementation is no longer merely food for theoretical debate, it is now with a view to imminent business application based on an ever growing library of proven use cases.

    We strongly recommend that organisations do not sit on the side waiting for others to create effective business cases but ensure that they are building strong in-house knowledge so that they are ready to make effective decisions to embrace blockchain technology when the time is right.  Even without a completely solid business case to implement, organisations should, at the very least, keep an eye on developments in blockchain tech so that they can take advantage of opportunities when they present themselves.

    Business leaders must start planning how to best use this transformative technology to unleash trapped value in key operational processes. It’s clear – blockchain should be on every company’s agenda, regardless of industry.

    In this blockchain blog post series we have presented an in-depth discussion about the technology on a variety of technical, theoretical and human themes. We hope you will be inspired by reading, reflecting and taking an active stand in the discussion. We are here to help you avoid a ‘do nothing’ mindset and encourage you to consult with us on how to scale your distributed systems.

    The post Blockchain Tech Deep Dive 4/4 | Innovating with Erlang and Elixir appeared first on Erlang Solutions .

    • wifi_tethering open_in_new

      This post is public

      www.erlang-solutions.com /blog/blockchain-tech-deep-dive-4-4-innovating-with-erlang-and-elixir/

    • chevron_right

      Erlang Solutions: Saving lives with Elixir

      Erlang Admin • news.movim.eu / PlanetJabber • 17 February, 2022 • 28 minutes

    When you think about programming languages, you might not think about them literally changing people’s lives, but they do more often than you would expect. Elixir has empowered Linda Achieng and Sigu Mawa to build emergency software that is already saving lives in Kenya. What started with the death of a close friend, has expanded into an inspirational project, with Elixir being used to empower local communities. Watch the video below or read the transcript for one of the most moving tech stories we’ve seen.

    If you want to be the first to see the amazing stories shared at our conferences you can join us at ElixirConf EU will be held on 7-8 April in London and online, Code BEAM Europe , 19-20 May in Stockholm and Online or Code BEAM America , 3-4 November, in Mountain View or online. We hope to see you soon.

    Intro

    Linda Achieng : I’m doing this with a longtime friend. We’ve known each other for I think a decade now. So, my name is  Linda Achieng and my friend is Sigu Magwa. I think he’ll introduce himself.

    Linda Achieng : Well, thank you. My name is Linda Achieng . I’m a software engineer at Synchro. And, yes, my second name is Achieng.

    Sigu Magwa : Oh, and that’s your Twitter handle, I guess?

    Linda Achieng : Yes, yes.

    Sigu Magwa : I’m Sigu Magwa . And I just found a new favorite tagline. Open Source made me. Open source, in that, I use Open Source tools to do almost everything. Elixir is Open Source. Open source again, because I got better programming because I was in a community of Open Source learning, not Open Source software. We could just meet and do more programming. That’s actually how I also met Elixir some years back.

    I’m the co-founder and CTO of Podii, we do Elixir consulting over here. So, I had to rush to the office with a nice background logo over there. Just because of too many kids at home.  Linda, I loved your profile. But I think my profile is way cooler than yours.

    Let’s start from 2018.

    The story behind the emergency software

    Linda Achieng : Okay, so it’s 2018. At that time, I’m learning how to code, doing professional things. I get to reconnect with a friend of mine. This friend is called Malcolm. So I’m learning how to code and at that point, I still don’t know of Stack Overflow. I mean, I know it’s a site but I don’t know what it does. I didn’t know what it did by then. And I’m learning new things and Malcolm is my go-to person because he’s a friend I’ve known for a long time. And just learning software for the first time like in a professional environment and getting to understand what is happening and having that arm to always go to was just like a good experience.

    I’d just like to introduce Malcolm, he’s the one with a computer. That little guy over there I’m carrying is my little guy, he’s my son. So as I said, Malcolm was is a key person in my software development journey. I got to learn a lot from him. He’s also a Python guru. He loves Python. He also loves Elixir because it’s functional. He feels like now he now has control over functional programming he now understands it. So, a little story about Malcolm. Malcolm has sickle cell anemia. So, he gets attacks frequently. But since we are in Kisumu, we know how to do it. If he’s sick, we know we call his dad, his dad is going to call his physician, and his physician is going to come to where we are. Since Kisumu is a small city, the whole thing might take like 10, 15 minutes tops, and we are for sure that Malcolm is going to get treated.

    But  Malcolm has got a job offer in the city. It’s an exciting thing. It’s exciting because he’s quite a handful, so we’re excited that he’s leaving. But it’s also emotional, because, this is my one person to go-to person, if I have anything that I want to do or if I’m having a problem, he’s not going to be around. That was just like the first part.

    Malcolm goes to the city. One time, this is like the third time he’s going there. And he’s still not familiar. I remember us making jokes that, “Make sure you know one place so that when you’re lost, you can call us and we’ll ask our contacts in the city. And they will come for you.” So this was just something funny because it was his third time officially in the city alone. So, it’s an interesting time for him. It’s really interesting. But in the city, Malcolm gets an attack. We have to get him to the hospital. I mean, it’s crazy. We have to get him to the hospital. We are new in Nairobi, Nairobi is the city, we are sure of one hospital. We want to take him there. Just to give you an example of how far we’ve gone. The hospital we are at this point, we are here and the hospital is down here. So, we left we went through all this whole journey and it’s long, there’s traffic. It’s a crazy journey. We get to the hospital and he’s treated. We are a little…we feel like we’ve taken about an hour and a half to go to the hospital, but he’s treated. So we let him go. We tell him, “Hey, let me go get a few things, and then I will come back.” Before we leave the hospital, just like 10 minutes after the hospital and we get called. “Malcolm is dead.” Yes, he died.

    It’s crazy because when we were leaving the hospital, we were talking like, “Hey, this was close, because we came a long way. We were just happy that he was given, like, something to stabilize him but we didn’t know how bad it was. We were a little bit late. And when the mum was giving a eulogy, she said that “If these people would have gotten to hospital earlier I’m sure Malcolm will still be alive.” So, that is one thing that haunted us and give us a really hard time in the office.

    Sigu Magwa :I remember that time. It was a bit of us. Not a bit, it was a sad moment for us in the office. You could not get night sleep and sometimes I remember you were not…you refused to get out just maybe to the washrooms alone, thinking that maybe Malcolm is still playing some tricks on you. So you just wanted someone to accompany you to the washrooms.

    Linda Achieng : You’re pushing.

    Sigu Magwa : Yes. So during this period is when you started talking about, “What if we did something for Malcolm?” I remember all the time, every time we have our morning stand-ups or the evening stand-ups you’re like, “What if we did something so that we don’t have another Malcolm or family and friends of another Malcolm with a sickle cell attack do not go through the same?” And during this period, again, we were in the office just on the whiteboard trying to come up with a name before even coming up with the product. So what can we call this? We need to do something, we need to build something for another Malcolm of the future. We started coming up with a name then we settled on Nai Linda Achieng.

    Linda Achieng : Yes. And it has nothing to do with my name.

    Sigu Magwa : And what really does Nai Linda Achieng mean actually?

    Linda Achieng : So, Nai Linda Achieng is a Swahili word it means to protect. Yes. Am I right,Sigu Magwa?

    Sigu Magwa : Yes, it means to protect your loved ones and it’s called Nai Linda Achieng, so everyone confuses and thinks that you named it after yourself. We know people name things after themselves. But…

    The Emergency Software

    Linda Achieng : Nai Linda Achieng gives you an option of locating a hospital and an extra option of locating and sending a notification to a hospital. So what happened to us is we went, we travelled for like an hour, but in between, we had hospitals that we could go to, but we didn’t know about it since we are new in that place. We thought, “Okay, fine, this thing happens, people go to new places.” Someone like me, I don’t look at the hospital, I don’t look for hospitals around me, because I’m not thinking that I’m going to get sick. That is not the first thing in my mind. So, this is one thing that we wanted to have so that you don’t think about getting sick. But if you do, if something happens, you have the option of finding a place near you. We understand at that time there’s panic, there’s a lot of things going through your mind. So we want to give you a seamless experience to find a hospital and also let the hospital know that you’re coming. So, I will talk about the third option. The second option just gets you to a hospital. But I’ll talk more about the third option, maybe Sigu you can play the video to see how it works.

    This is how it works- we ask you where you are, what your emergency is, and we ask you your landmarks, like just any landmark that you see around you. When we’re asking about a landmark, we are expecting names of bars, we’re expecting names of parks, or we’re expecting the name of a building.

    We’ve done our research to know that if I am at this place, these are some of the names that we are expecting people to say. So, the moment you give us that we give you the closest hospital that is close to you. We send it to you as a text message. We also sent a notification to the hospital. What the hospital does is they have a responsibility to respond to your emergency by either telling you, “Yes, you can come, we can handle your emergency, we are waiting for you,” or, “No, you can’t come, we can’t handle your emergency.” So, we don’t want you to go to this hospital and waste your time over there. Don’t waste your time. We don’t want you to go and wait and in the end be taken to another hospital. So, that is what Nai Linda Achieng does.

    We created it in a way that allows you to be able not to use the internet because we don’t have very reliable internet in Kenya, you would be lucky to be in the rural places and even get 3G, I usually get a lot of network interruptions. So many times I’ve had to drop out of calls just because my internet is not stable. But this is an emergency service. I don’t want you to have to think about not having the internet, and you want to get to a hospital. So honestly, the vision we have is to just have health care for people. We want people to be able to rely on us when they have an emergency. Am I getting it right, Sigu? I’m I leaving anything out?

    The current state of the emergency app

    Sigu Magwa : No, I don’t think you’re leaving anything. I think maybe you’ve not just told us the current state of the application?

    Linda Achieng : Currently we are at our soft launch, we are testing the site. We have a few users that have access to the software. We are also talking to hospitals and they also have the software. So, we’re testing what is happening, how many requests we are getting, if we can handle the requests, how we are handling…if the users are experiencing errors, how are we handling it? That is what we are doing right now. It’s been an interesting journey, a learning journey. And it’s exciting. It’s exciting to be able to see this come to action.

    Sigu Magwa : Awesome. So, I think I can add a few things to that. The first thing is that the soft launch is getting out but also, when things are going out there’s this crazy idea of, “What can we do? What can we add on top of this?” So we also thought, “What if we provide this as infrastructure?” Because we can’t do this alone, we need other third parties or those who are existing to help us do this. What if we provided an infrastructure for everyone else to just plugin and use this?

    The first people that we approached were a group of girls. They call themselves the iCut Group. So, what they do is deal with FGM. I know some of you might be hearing this for the first time, it’s full…it’s an abbreviation for female genital mutilation. It’s more of circumcision, but female circumcision. In some parts of the country, they normally practice this. So, the ladies are out there to stop this. They’re out there to educate other people on how to stop this particular practice. They’re also giving out emergency numbers and responses. So, we’re talking with them to provide them with such a kind of infrastructure so that they can concentrate on getting the word out and getting to the right people. I think  Linda, that’s as far as we’ve gone, right?

    Linda Achieng : Yes.

    Sigu Magwa : I think so far, maybe there might be a question from the audience asking themselves, we’re not opening up. But they might be asking, “Have we managed to save any life yet? Or has Elixir managed to save any life yet?”

    Why Elixir?

    Linda Achieng : Before I answer that, I’ll probably say why Elixir…

    Sigu Magwa : I think that’s a great idea.

    Linda Achieng : Let me say why Elixir . This is an emergency service, we can’t afford to lose a connection. If we lose one, we want to be able to reconnect. We don’t want to worry about this. So, this is one of the major reasons why we chose Elixir. Also, when we are learning it, we are finding more about it. And it’s exciting. We’re seeing people talking about, like, the promises it has, and getting to see it in action was just amazing. And just as I was saying, real-time is crucial. We can’t afford to lose a connection. And another thing we had in mind. Sorry?

    Another thing we had, is this is an application, we want to give out for free. We don’t want anyone to have to pay if the hospital paid, they might be reluctant to have it if a patient pays. That is not an emergency, that’s a business. So, we are giving it free of charge. This is why we were looking for something that is going to scale. We are seeing the promise that it can scale, but also save us costs. So that was one thing that we also thought about. We said, “Okay, we can chip into our pocket and say, okay, we can maintain this.”

    Sigu Magwa : Yes. Sorry I interjected earlier, but you reminded me of the fun times when you were aligning Elixir in the office, the mob sessions in the afternoon, and you’re like, “Ah, this is exciting, we need to use this.” So that’s also contributed to why we chose Elixir at that particular moment. So, I’ll just throwback that question to you. Have you managed or has Elixir managed to save any life so far?

    Linda Achieng : Not yet.

    Sigu Magwa : Not yet.

    Linda Achieng : I don’t think we have.

    How Elixir has changed people’s lives

    Sigu Magwa : Okay. So it’s because of the state that we are in at the moment. But I have a few things to share about how Elixir has touched and changed a few lives. Can I take the stage for a minute?

    I’ll share with you how Elixir has managed to touch and change some lives. Looking at that photo for a minute is a bit too long. So, just do it for just three or four seconds. One, two, three. Okay, three seconds are up. So, if you try to guess what’s going on in this photo, it’s a bit like throwing everything everywhere.

    I’ll let you know what’s going on. Let me tell you a story about the old man, the man in the red t-shirt. He is a farmer. He’s a farmer, and he has a farm right next to his home. This farm is not a big place. It’s big enough for him. But it’s not commercially viable. So, what the farmer does is every year he has to farm for his domestic consumption. Where we live there are two seasons, we have the long rain season and the shorter dry season. So the farmer has to time the longer rain season, be prepared so that he can cultivate for his domestic consumption. Sometimes if they miss being prepared, the rains might start, and you don’t yet have your farming inputs. So really, this needs to be done as soon as possible.

    Luckily enough, there’s a nonprofit organization that covers the area that this farmer lives in. This nonprofit organization allows the farmers to register and tell them what they intend to cultivate for the next season. So, they prepare them early enough. They don’t get shocked that the long rains are here.

    What the organization does is, once you’re registered, you tell them what you want for the next long rain season, they have experts that package your inputs. Some of the inputs start from about $20 or so. But you have to pay for that input for you to pick it up. So the least package, I think it’s about $20. And $20 according to our living standards, not everyone, but according to the living standards for some people it’s a bit on the higher side,  Linda was a witness to that back when we were in the office.

    Linda Achieng : You’re putting me in the spotlight. But yes, I think that’s a lot. There were times we walked from the office to home, we would be walking as a group, so it’s fun. But what we’re trying to do is to save 30 cents, so that we could be able to use it the next day. So be able to come back to the office from home.

    Sigu Magwa : That’s back when lunch would cost 30 cents and sometimes you’ll have to think about, “Should I eat lunch? Or should I take a ride back home?” So 20 USD is a lot, sometimes and even to the farmer, it might be a lot of money. The organization luckily allows the farmers to pay bit by bit. The fact that they can pay this bit by bit means that by the end of the year or something, they’ll have finished their payments. We’ve witnessed cases of a farmer not being able to clear up the 20 USD by the end of the year.

    They’re allowed to pay as little as 10 cents, 30 cents, or even $1. If a farmer pays regularly, and they have a good payment pattern, you will be allowed to pick a product without fully paying for it once you attain a particular percentage. The photo you’re seeing right here is one of the days that we were lucky to accompany the organization to the delivery site. There you have the fertilizers they are being ready to be given out to the farmers. On this day, there are a few things that might happen, there might be problems. But sometimes things go well. So, they pick up their product. Right here you can see the old lady, she’s happy. She has the fertilizer, the big bang, and the smaller bag it’s a bag of a seed of maize. So, this is enough for farming for one hectare of one acre of land.

    Just take a look at the phone that she’s using. It’s of interest to us in a few. Let’s go back to the old man. So this story was the story of the old man, don’t forget about it. So, let’s go back. What do you think might have been the problem?

    I want to let you try to guess that but there are a couple of problems that might have been there. So, the first one is that maybe he sent some payments but the payments are missing. Maybe he requested a seed but the seed is no longer there. Maybe an officer accidentally delivered items and it was claimed that the items were already delivered, but they were not. Maybe he was among qualifiers but actually, he qualified. So, here they are trying to find out what the problem is for this old man. So I designed a system for this. Yes,  Linda Achieng.

    So what did Elixir help with in this case? Why are we even telling you all these stories for the old man? The first thing we were approached to talk about, was to design a system that can help manage all this from the beginning to the end. We chose Elixir for some reason, we get spikes. The spikes are during registration deadlines or payments. They have deadlines to make their payments, and they are micropayments. So, most of them try to beat the deadline, they pay as late as 11:59 in the night, just so that they can beat the deadline, and they can get their farming input. The other thing is you saw the phone that the lady was using, sometimes we don’t have a smartphone or anything. Sometimes when we do deliveries, it’s somewhere we don’t have completed, we don’t even have GSM, or we don’t have internet connectivity. So we collect all the information offline, then when we get back to the internet, we do a synchronization back to the servers. The second reason is this one.

    Sigu Magwa : Can you guess how I felt when instant cameras came out?

    Linda Achieng : I remember the feeling, getting instant photos. Yes.

    Sigu Magwa : The fact that you can validate everything instantly, was a nice feeling. And that’s why the dashboard for the system has been designed using Live View, in this case, and scenario. So, this is why we continue using Elixir for such system designs. The other reason is yes, it’s a tool we know, it’s a tool we know how to handle. Not really I can’t claim expertise in this, but it’s something we know how to use. So, it’s a natural choice when you go into that. I know when you have a hammer, everything looks like a nail. But this looks like the right nail for the hammer that we had. Yeah, so those are some of the advantages that we had. The disadvantages, why we should not have used Elixir, this is more of a paradoxical thing. If you look at this image, and you’re a bit young, you might know where he lived. It’s in the middle of nowhere. So that’s where sometimes you take your deliveries in the middle of nowhere. Things have to work offline. That’s sometimes why you can not just use Elixir. But again, we had to find other solutions like mobile applications or having progressive web apps just to handle that.  Linda, you talked about your child a few minutes ago?

    The future

    Linda Achieng : Yes.

    Sigu Magwa : You want a good future for your child, right?

    Linda Achieng: Yes, he’s three now. And that is all I can think of now.

    Sigu Magwa : Awesome. But again, I know you want them to have the best education and all that for the future of your kid.

    Linda Achieng : I think that is all parents’ dream.

    Sigu Magwa : Okay, so let’s go to this. I would like you to make a guess. Now I’m not talking to the audience, just not a guess. Can you tell me what you can see?

    Linda Achieng : I see kids. And I see an adult who looks like a tutor. And this kid is holding some alphabet, a paper that has alphabets? So, probably they’re learning or something?

    Sigu Magwa : You’re right. I took a photo of this. And we were requested to create a system again in Elixir that helps these kids to improve in their education. So it’s a complementary system to help an existing running system to help these kids improve. The criteria for choosing the children as they take the bottom 10. So, look at this classroom, look at these kids. And again, you take the bottom 10 out of this. So, these are the kind of things that we have used Elixir to improve their lives. The challenges and the reason as to why we chose Elixir is the same as what you’ve just talked about above. I know you’ve done a bit of commercial nonprofit work. We’ve talked a lot about nonprofits. So, I don’t know if you have anything about that.

    Linda Achieng : Yes. And you’ve put me in the spotlight so many times I’ll have to put you too. So, I want you to guess something.

    Sigu Magwa : Okay.

    Linda Achieng : Yeah. What do you think is happening here, Sigu?

    Sigu Magwa : So there’s frustration, but there’s the money going up? So it’s a bit confusing because if this was my monthly salary, I’ll be like, “Yes,” I would not be this emoji. I’ll be the emoji. The happy one.

    Linda Achieng : Yes, the figures look good. This is good money if it’s coming in. But the thing is, this money was going out. So we were outsourcing an API for real-time data, we wanted to be able to give our users notifications, whether they’re offline, or they’re online, or when they’re back online, the most important thing was to have them online. Anytime they went offline, we wanted to give them a notification. The moment we got to a hundred good socket connections, our bill started going high. The more internet connections we got, the more the bill came up. And the moment it got to 15,000. We were like, “Hey, no, no, no, I think we can do this.” We were thinking, “Hey, Elixir is promising as real-time. So, we can try and build this service we are paying for. That is what we did. At that point, we jumped into channels. I remember when we were doing mob obsessions when I was still with Sigu, I would ask myself, “Okay, so where am I going to use channels in my Elixir life?” But life is so funny, I feel like programming is so funny, you never know what is waiting for you, and solving this problem we talked about channels.

    So we came up with the name “Free Bird” because we are breaking up with our PubSub provider and we are now building ours. There’s this song called “Free Bird” by Lynyrd Skynyrd. It’s a breakup song. It’s a really interesting song. I had it from a colleague and it was really interesting. So when we were now building this, we had to make sure that we are still going to give our clients the same promise that we have been giving them the same experience. We don’t want them to start complaining, “Hey we’re having notifications that we are offline yet we are online.” We wanted to give them the same experience that they were having before. We also didn’t want them to know that we are shifting, or rather we are now doing something different. So we ended up coming…we built this. The reason why we built this was because we knew we were going to scale, we knew we’re continuing, we were growing, it’s a business, we are growing and we didn’t want to have our costs go high. Once we were able to build this, we cut our costs. Now our bill came from 15,000 to something less, we only have to pay for hosting now for our servers, which is much cheaper than what we were doing.

    I think we saved the day. We didn’t save it because we are having problems. We chose Elixir because we knew it would solve our problem but to some point, we also dug ourselves into a pit hole. Now we are having problems that we don’t…I honestly don’t know how to solve them. Like sometimes when we…what is this thing called in English? We are getting connections and when one device goes offline, we get like 7 or 10 API calls depending on the number of nodes we have up. So, we are having problems that we still don’t know how to go about. But we are happy we use Elixir because yeah, we solved a problem that we cut our costs down. So, thank you Sigu Magwa for jumping me. But one last thing we swear this is the last thing you’re going to see.

    Sigu Magwa : Thanks for promising that this is the last thing.

    Linda Achieng : I’m I talking too much?

    Sigu Magwa : Not really. Let’s go to the last thing, which is a disclaimer. So you’ve heard a lot, you’ve seen a lot. The first disclaimer, let’s start with that. You might not be able to guess what’s going on here, again, this has been a lot of guesswork. But again, San Francisco is one of the richest regions in the world. But again, you find such photos, you find such regions, and everyone who’s been to San Francisco knows about downtown San Francisco. Any photo that you have witnessed during this talk, is a disclaimer, is a niche, and it’s a selected region. And there are selected problems that we work with. And in that case, I think,  Linda Achieng, we can show them a bit about where we live. Where I currently am, yeah?

    Linda Achieng : Yes. We have nice nightlife. It’s an active nightlife. It’s amazing. We have amazing clubs, we love our beer, and our spirits too. Yeah. And we live in a very beautiful city, we have amazing places. Yes, we have some places that don’t have internet. Even in the city, we have places that don’t have, like, really good internet. But it’s a really beautiful place that one time you should put on your bucket list. And as you can see, there is a lake over there that is the largest freshwater lake in…is it the world?

    Sigu Magwa : Milder Africa not sure yet. But I’m happy to talk about the internet and if I didn’t have internet, then we would not be streaming this while I’m right in the office, our office is somewhere there. So this is the lake that you’re talking about. That’s the sunset.

    Linda Achieng : It’s one of the most beautiful sunsets that we have. I feel like I want to say the best. But yeah.

    Linda Achieng : Thank you so much for taking this journey with us. It’s really exciting to know that we can help. And we have a tool, and we have a community that is actively developing and giving us more tools to be able to just solve problems that not many people have heard of. And we’re excited to share with you all this. Sigu Magwa, you have something else?

    Sigu Magwa : Yeah, it’s a very big thank you to the whole Elixir team, the core team, the support, Elixir forum, Slack, and all everywhere that we’ve been able to go to. The books that have been published enabled us to know this. Thank you for the Elixir conferences, we get a lot of information, lightning talks, and all that. We get a lot of help from there. So, thank you very much and thank you for attending these. I think I can say that in Swahili for those who are interested. So, in Swahili you say thank you, you say asante. Sorry, I almost blew that. So you say asante?

    Linda Achieng : You say, asante.

    Sigu Magwa : Yes, asante in Swahili.

    Linda Achieng : Yes, asante sana.

    Sigu Magwa : Asante sana.

    Linda Achieng : So, I think we can take questions now right?

    Sigu Magwa : Yes, yes.

    The post Saving lives with Elixir appeared first on Erlang Solutions .

    • chevron_right

      Ignite Realtime Blog: Openfire 4.7.1 Released!

      akrherz • news.movim.eu / PlanetJabber • 16 February, 2022 • 1 minute

    The Ignite Realtime Community is happy to announce the 4.7.1 release of Openfire. This release fixes a number of bugs and represents our effort to provide a stable 4.7.x series while work continues on the next feature release of Openfire.

    Notable fixes include security updates to bundled database drivers, logging configuration fixes, and an important fix for users experiencing troubles with users getting booted from group chat rooms.

    You can find download artifacts available here with the following sha256sum values

    ec8e0a8a52cb28b50afea8060664d2c28a66b99f529e1c79a80e44d3dd14322d  openfire-4.7.1-1.noarch.rpmbe5fd37af0d45f5b22a56b617154615ac8ed0d8424744d8cfb0b94c34b182cbb  openfire_4.7.1_all.deb2a5db207e92482147082157ea7c0b308865cbf5efc414be244fb29d14a87c0d3  openfire_4_7_1.dmg5632e794bc13cb00556d1fa80a3262837049e21a6c9a40ea6dce06b4411d8608  openfire_4_7_1.exec8007ca87780b349db2c42e013fd129c7f24a189ce34c4595fe2a55fcb8ac404  openfire_4_7_1.tar.gzece0e0adaa907710779633427be96b0c72b00bf61d335a28f18a04e0d32fd683  openfire_4_7_1_x64.exe112b0ef0604e6d3a3ee5eaac9fc604d468c679fa453825164fb51ea16149348b  openfire_4_7_1.zip

    If you have any questions, please stop by our community forum or our live groupchat . We are always looking for volunteers interested in helping out with Openfire development!

    For other release announcements and news follow us on Twitter

    1 post - 1 participant

    Read full topic

    • chevron_right

      JMP: Newsletter: JMP is 5 years old today, and now with international calls!

      Denver Gingeric • news.movim.eu / PlanetJabber • 15 February, 2022 • 3 minutes

    Hi everyone!

    Welcome to the latest edition of your pseudo-monthly JMP update!

    In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client.  Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free as in Freedom; Share one number with multiple people.

    Today JMP turns 5 years old!  We launched on this day in 2017 with a fairly basic set of features: bidirectional Canada/USA SMS and MMS, with incoming calls directed to a pre-existing phone number.  Since then we’ve kept pushing further and further toward feature-parity with the most popular mobile phone number providers, adding outgoing calls, international texting, and group texting.

    We have been actively testing the final piece of this work, international calling, and are pleased to announce today that we made it!  With the addition of international calling, which is available to all JMP users as of right now, we are now phone-feature-complete.

    What does this mean?  In short, we now support all the features that other providers of mobile phone numbers support: bidirectional MMS (including group texting), domestic and international SMS, and domestic and international calling.  So if you or your friends have been waiting to try JMP until we finished all these features, now is the time to get the word out and try it!

    On top of international calling, we now support using as many minutes per month as you like (with 120 Northern America minutes worth of credit included by default) - see our new comprehensive pricing page for details.

    You may be wondering: Where do we go from here?  Well, we still have much work to do, and many more newsletters like this one coming up to let you know about it!  There are two main areas of work left:

    First, we want to keep our finger on the pulse of telephony, specifically making sure that we add any features that mobile carriers are adding to their phone numbers, like RCS .  If we find such a feature supported on at least Android and iOS, we’ll get it into JMP as soon as possible (for RCS, the rollout is limited, and only on Android so far - if you know of other phone number features we’re missing, reply to let us know!).  Also, we have not forgotten about the many kind requests we’ve received for JMP numbers outside of the USA and Canada.  Those are on our list!

    Second, we want to make JMP as easy to use as possible.  There is still much work to do here, particularly on simplifying signups, adding and managing contacts, and group texting.  We want to make sure that group text threads are easier to follow, which requires a little bit of development work yet.  And we are actively working on improving the Cheogram app that many of you have started using on Android, to include these fixes and an easy way to signup for JMP.  In the not too distant future you’ll be able to install the Cheogram app, pick a JMP number from the app, and start using it right away.

    In other news, Dino 0.3 has been released which brings with it voice calling features compatible with those used by Converations, Snikket, Movim and JMP! It’s still early days and so there may be some compatibility issues, but reports say the features are working for people.

    Lastly, as part of JMP’s 5 year anniversary, we are unveiling our new logo today too!  You can check it out at the usual places, such as https://jmp.chat/ and elsewhere.  Our old logo (which is still live at its old location for the nostalgic) has served us well for the past half decade, and we appreciate all it’s done for us.  The new logo reflects how increasingly close we’re getting to JMP being easy to use for the average person, and hopefully our approachableness.

    As always, we’re very open to feedback and would love to hear from you if you have any comments, questions, or otherwise.  Feel free to reply (if you got this by email), comment, or find us on any of the following:

    Here’s to many more years of JMP!

    • wifi_tethering open_in_new

      This post is public

      blog.jmp.chat /b/february-newsletter-2022