phone

    • chevron_right

      Aditya Borikar: Chapter 13: Testing

      Aditya Borikar • news.movim.eu / PlanetJabber • 9 August, 2020

    Hi there,
    Last week I had started to mock classes in order to test them. It is difficult to test classes performing network operations using normal JUnit tests. And hence I moved on towards using mockito. Through mockito I was able to add more unit tests which led to an increase in the overall code coverage.

    Another significant improvement is that I was able to remove another WebsocketConnectionPhase, readyToReceiveFeatures from the implementation. This now means that there are only three phases in websocket connection. I believe that OkHttpConnectionImpl connection logic has improved considerably over the course of past two weeks since we witnessed removal of two WebsocketConnectionPhases along with other uncessary logic .

    OpenElement and CloseElement from the websocket module now extend StreamOpen and StreamClose respectively. However, this hierarchy is prone to modifications under the newly opened #420.

    After lot of playing with debuggers, I now am able to obtain pretty output from the debuggers for the sent and received data between client and server.

    This was my week. See you next week.
    • wifi_tethering open_in_new

      This post is public

      adiaholic.github.io /gsoc2020/2020/08/09/Chapter-13-Testing.html

    • chevron_right

      Peter Saint-Andre: Philosophy and Money

      Peter Saint-Andre • news.movim.eu / PlanetJabber • 6 August, 2020

    Some great thinkers - Plato, Aristotle, Gautama Siddhartha, Epicurus, Thoreau, Rand, and many more - have reflected deeply on the place of money and wealth in human life. The reasons are not hard to find:...
    • wifi_tethering open_in_new

      This post is public

      stpeter.im /journal/1646.html

    • chevron_right

      The XMPP Standards Foundation: XMPP Newsletter - Monal update, eturnal and GSoC progress - 6 August 2020

      emus • news.movim.eu / PlanetJabber • 5 August, 2020 • 7 minutes

    Welcome to the XMPP newsletter covering the month of July 2020.

    Newsletter translations

    Translations of the XMPP Newsletter will be released here:

    XSF Announcements

    JC Brand created an XMPP job board ! This enables people to review job offers as well as advertise XMPP services. Please take a look, post your own offers and recommend it. XMPP works!

    XMPP job board

    Articles

    Just how scalable is the XMPP server MongooseIM? See how Bartek Górny, one of the MongooseIM team members,achieved almost 2.5 million connections, passing 45 thousand messages per second.And, why he thinks 10 million connections is easily achievable. Find out more in Scaling a Mongoose .

    Pep., contributor to the Poezio XMPP client and member of the XSF board, wrote an article detailing his thoughts on XMPP and on the importance of design.

    Yarmo Mackenbach wrote an article on XMPP and OMEMO integration in Keyoxide , a modern, secure and privacy-friendly platform to establish your decentralized online identity and perform basic cryptographic operations.

    Software news

    Clients and applications

    The multi-platform desktop client Gajim 1.2.1 has been released. Just two weeks after the release of Gajim 1.2, the next update is already there. Gajim 1.2.1 features spam reporting as specified by XEP-0377 , automatic activation of shipped plugins which implies OMEMO available by default, and some bug fixes. Audio/Video calls gain some improvements, but remain highly experimental. More development news from July : an automatic update check for Gajim on Windows/MacOS, account password storage enhancements, an OMEMO fix, and many small improvements.

    Profanity, the text based user interface client, released version 0.9.5 to fix a potential segmentation fault when using the /theme properties command. It is used to display colour settings for the current theme.

    Anurodh Pokharel released Monal 4.7 for iOS and macOS . Despite the small version number update, this is a large upgrade. Besides the usual UI fixes and stability improvements you'll find: a new in chat title bar (as seen below), support for XEP-0319 (Last User Interaction in Presence) so you know when your contact was last seen online, support for XEP-0085 (Chat State Notifications) for those useful typing notifications and support for XEP-0191 (Blocking Command) for when a spammer comes along.

    Monal navigation bar

    The git repository of Pix-Art Messenger has been moved from Github to Codeberg. This migration process is not finished yet. Until then, both repositories will run in parallel.Concerning the software itself, Pix-Art Messenger versions 2.5.1 and 2.5.2 have been released, highlighting pinned chats in color, improving the video quality, and dynamically optimizing file compression.

    Kontalk for Android has released a new version (4.4.0) ! Apart from bugfixes and improvements it has now a dark theme, supports sharing to groups, exporting media to storage and deleting media with messages. The settings have been revamped and Android 10 is now supported.

    The Android client aTalk released several patches for their 2.3.0 release with bugfixes and improvements .

    Servers

    MongooseIM 3.7.1 has been released! This one is built on top of the 3.7.0 May release, which introduced support for channel binding to prevent replay attacks for all methods of SCRAM , a family of modern, password-based challenge–response authentication mechanisms providing authentication of a user to a server. This previous version also provided a range of new SCRAM authentication methods based on different flavors of the SHA cryptographic hash functions, the ability to retract messages as specified by XEP-0424 , and support for Proxy Protocol which safely transports connection information such as a client's address across multiple layers of NAT or TCP proxies. Version 3.7.1 improves on that by speeding up all the SCRAM methods significantly!

    Tigase XMPP Server 8.1.0 General Availability has been released and it is packed with improvements! SASL-EXTERNAL mechanism defined in XEP-0178 (Best Practices for Use of SASL EXTERNAL with Certificates) to allow certificate based authenticated connections was added for server-to-server connections, greatly improving compliance with the XMPP federated network. Depending on support in other servers, it’s possible to use both SASL-EXTERNAL and Dialback, another authentication mechanism defined by XEP-0220 . Set of XMPP extensions were added: - XEP-0398 (User Avatar to vCard-Based Avatars Conversion) - XEP-0156 (Discovering Alternative XMPP Connection Methods) - XEP-0410 (MUC Self-Ping (Schrödinger’s Chat)) - XEP-0153 (vCard-Based Avatars) - XEP-0411 (Bookmarks Conversion) - XEP-0157 (Contact Addresses for XMPP Services)

    This version also improves management of multiple domains in virtual hosts and enables by default a new anti-spam plugin.

    A new TURN server called eturnal has been published . This is a standalone version of the TURN server part of ejabberd (with some improvements) and a straightforward alternative to servers such as Coturn which can be used for offering STUN/TURN services to A/V clients using external service discovery as defined by XEP-0215 .

    Libraries

    Tigase JaXMPP 3.3.0 has been released !Main features included in this release are support for OMEMO encryption, making it easier to carry out encrypted conversations, and support for XEP-0305 (XMPP Quickstart) allowing connections to be established faster. Apart from that, SCRAM support was extended with SCRAM-SHA512 flavour. Service items discovery can now be controlled with XEP-0059 (Result Set Management). DataForms with multiple items got implemented and MUC message delivery was improved. Last but not least, connectivity with Google's Firebase Cloud Messaging (FCM) was fixed.

    Version 1.0.1 of python-nbxmpp , the library developed for and used by Gajim development team, has been released. This version includes a fix for a bug where messages from ChatSecure could not be decrypted after a longer period of time has passed. It also includes some fixes for Websocket connections.

    The Ignite Realtime community is pleased to announce the release of jXMPP version 1.0.0 !jXMPP is a library that provides common functionality required by all sorts of XMPP implementations (servers, clients, components, ...).Among other things, it provides a sane implementation of JID types.Check out its javadoc documentation!

    Others

    whatsxmpp , the WhatsApp (Web) to XMPP bridge, has seen a variety of bugfixes and improvements this month, mainly as a result of various users using the bridge and reportingerrors. The development team switched to using the Nix package manager to build Docker images, resulting in more reproducible and faster builds! A stable 0.1 release is getting closer, and the basic functionalities are already working and battle-tested. A few more stability improvements are still required and some features, such as proper MUC history support and file uploading via native WhatsApp servers, are missing! Please do pop by their MUC whatsxmpp@conf.theta.eu.org if you're interested in using or running the bridge.

    Google Summer of Code

    Since the beginning of May students all over the world are working on many open-source projects within the Google Summer of Code Season 2020. We would like to introduce the students who work on GSoC XMPP projects and share their blog posts:

    Aditya Borikar is working on WebSocket support for Smack. Blog history:

    Anmol (wolfie_anmol) is working on implementing Real Time Texting in Dino ( XEP-0301 ). Blog history:

    Enable/Disable RTT in Dino

    Thank you for joining GSoC XMPP projects and keep up the good work! To be continued.

    Extensions and specifications

    Updated

    • Version 0.7.0 of XEP-0313 (Message Archive Management)

    TL;DR: add new filtering fields, allow for reversing results order and migrate some information to external documents. - Add 'before-id' and 'after-id' fields, flipped pages, single-item retrieval and a new mandatory disco feature - Split preferences protocol into a separate document - Split the details of pubsub archives into a separate document

    • Version 1.0.0 of XEP-0338 (Jingle Grouping Framework)
    • Advance to Draft as per Council vote from 2020-07-01

    • Version 0.3.0 of XEP-0420 (Stanza Content Encryption)

    TL;DR: some changes concerning elements allowed/denied to be encrypted, and security improvement by increasing the entropy of random padding elements.
    - Allow origin-id elements, disallow stanza-id and extended stanza addressing elements inside the payload element - Clarify wording on stanza processed elements and improve XEP formatting - Remove limitation of random padding content to base64 characters alone - Chat messages MUST contain message processing store hint - Credit where credit is due

    Thanks all!

    This XMPP Newsletter is produced collaboratively by the community.

    Thanks to eta, emus, erszcz, Ge0rG, Holger, kriztan, jerome-poisson, jonas', Licaon_Kter, pmaziere, vanitasvitae, wurstsalat, woj-tek, zash for their help in creating it!

    Spread the news!

    Please share the news on "social networks":

    Subscribe to the newsletter

    We suggest you subscribe to receive the next editions in your inbox as soon as it is published! Promote this newsletter to whoever may be interested.

    Help us to build the newsletter

    We are always happy to welcome contributors. Find our monthly drafts here in the XSF Github repository . Do not hesitate to join the discussion in our Comm-Team group chat(https://join.jabber.network/#commteam@muc.xmpp.org?join) and thereby help us sustain this as a community effort.

    You have a project and write about it? Please consider sharing your news or events here, and promote it to a large audience! Even if you can only spend a few minutes, 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
    • Translations: especially German and Spanish

    License

    This newsletter is published under CC BY-SA license .

    • wifi_tethering open_in_new

      This post is public

      xmpp.org /2020/08/newsletter-06-august/

    • chevron_right

      Jérôme Poisson: SàT progress note 2020-W31

      goffi • news.movim.eu / PlanetJabber • 3 August, 2020 • 3 minutes

    Hello, it's time for a summer progress note.

    Libervia has seen a major UI revamp with a new theme based on Bulma CSS framework.

    I've been hesitating for long to use a CSS framework, and the default theme has been home made with CSS classes following BEM naming convention. On the paper it's nice because you can easily extend it without breaking accidentally other components/pages, but in practice that was more work for a not so great result regarding the UI. It could become nice with time and efforts, but I'm desperately lacking time, and I rather put my efforts on other things.

    So I've decided to work on theming and try the Bulma framework, on which I was keeping an eye for a little while. I was so far quite reluctant to use super popular CSS frameworks, because we tend to end with all websites looking the same, but I have to admit that using one save a LOT of time, and the result is clean and good looking with little effort.

    Here is a screenshot of the forum page with the new theme:

    new "bulma" theme in Libervia

    Last time I've explained how I have implemented dynamic part of Libervia with Brython. This is now completed by the use of Nunjucks for dynamic templating. The goal is to have the same templates in the backend and in the browser, and Nunjucks is more or less compatible with Jinja2. I say "more or less" because some features, filters or extensions are missing. To work around that, I've implemented myself missing filters ( xmlattr for instance), or a way to parse keyword arguments with Nunjucks convention. Nunjucks doesn't handle kwargs in macros so I've add to rewrite macros where it was used. The most tricky part was the use of i18n extension : Nunjucks doesn't have it, and thus it was failing when reaching a {% trans %} tag. I've had to implement an extension myself, but for now it doesn't translate and just returns the string unmodified.

    Finally, it's working quite well, and the same templates can be used for static (backend) and dynamic (in browser) parts. This is particularly useful when you're doing a website which can be used without JavaScript, and which is enhanced when JavaScript is activated.

    I've implemented server part of HTTP File Upload in the file sharing component included with SàT. This way you can see all files uploaded (with SàT or any other XMPP client) in your uploads directory, and you can delete them, which is something I was badly missing from current ecosystem.

    Deletion is currently done using Ad-Hoc Commands , but I'm planning to move at some point to a PubSub based file sharing which would give all we need to manage correctly deletion or notifications. There is some work to do on the standards first, that's why I haven't done it from the beginning.

    In addition to the ability to delete files, there is no upload limit with SàT file sharing component. Instead there will be a quota system (not implemented yet).

    Some import mechanism should come soon, at least to import files uploaded on Prosody HTTP Upload, so the switch to SàT file sharing component will be easy.

    I've put some efforts on the photo album, the goal is to have something simple and straightforward to use, working well on desktop or mobiles platforms, with or without touchscreen. There is a permission system to indicate who can view the pictures. From Libervia, pictures are currently uploaded with HTTP Upload (with some specific headers to indicate the path of the albums), until I have time to implement Jingle with WebRTC (maybe in next version?).

    Here is a screenshot of the photo album with the new theme:

    photo album in Libervia with "bulma" theme

    I'm currently putting my effort to make SàT/Libervia a good fit for sharing with family or close friends, little communities or small team. In other words a familial social network.

    If everything goes well, I have good hopes to go beta in August and release 0.8 somewhere in September.

    That's all for this note! As usual, feedbacks are welcome.

    • wifi_tethering open_in_new

      This post is public

      www.goffi.org /b/n9nzn3ySF7Lv4pYBpTqYtP/progress-note

    • chevron_right

      Jérôme Poisson: SàT progress note 2020-W31

      goffi • news.movim.eu / PlanetJabber • 3 August, 2020 • 4 minutes

    <div><p>Hello, it's time for a summer progress note.</p><p>Libervia has seen a major UI revamp with a new theme based on Bulma CSS framework. </p><p>I've been hesitating for long to use a CSS framework, and the default theme has been home made with CSS classes following BEM naming convention. On the paper it's nice because you can easily extend it without breaking accidentally other components/pages, but in practice that was more work for a not so great result regarding the UI. It could become nice with time and efforts, but I'm desperately lacking time, and I rather put my efforts on other things.</p><p>So I've decided to work on theming and try the Bulma framework, on which I was keeping an eye for a little while. I was so far quite reluctant to use super popular CSS frameworks, because we tend to end with all websites looking the same, but I have to admit that using one save a LOT of time, and the result is clean and good looking with little effort.</p><p>Here is a screenshot of the forum page with the new theme:</p><p><img alt="new &quot;bulma&quot; theme in Libervia" src="https://upload.goffi.org/upload/aCcRWJ_u8urLbpHy/libervia_theme_bulma_forum.jpg"/></p><p>Last time I've explained how I have implemented dynamic part of Libervia with Brython. This is now completed by the use of Nunjucks for dynamic templating. The goal is to have the same templates in the backend and in the browser, and Nunjucks is more or less compatible with Jinja2. I say "more or less" because some features, filters or extensions are missing. To work around that, I've implemented myself missing filters (<a href="https://jinja.palletsprojects.com/en/2.10.x/templates/#xmlattr">xmlattr</a> for instance), or a way to parse keyword arguments with Nunjucks convention. Nunjucks doesn't handle <a href="https://jinja.palletsprojects.com/en/2.10.x/templates/#macros">kwargs in macros</a> so I've add to rewrite macros where it was used. The most tricky part was the use of <a href="https://jinja.palletsprojects.com/en/2.10.x/templates/#i18n">i18n extension</a>: Nunjucks doesn't have it, and thus it was failing when reaching a <code>{% trans %}</code> tag. I've had to implement an extension myself, but for now it doesn't translate and just returns the string unmodified. </p><p>Finally, it's working quite well, and the same templates can be used for static (backend) and dynamic (in browser) parts. This is particularly useful when you're doing a website which can be used without JavaScript, and which is enhanced when JavaScript is activated.</p><p>I've implemented server part of <a href="https://xmpp.org/extensions/xep-0363.html">HTTP File Upload</a> in the file sharing component included with SàT. This way you can see all files uploaded (with SàT or any other XMPP client) in your <code>uploads</code> directory, and you can delete them, which is something I was badly missing from current ecosystem.</p><p>Deletion is currently done using <a href="https://xmpp.org/extensions/xep-0050.html">Ad-Hoc Commands</a>, but I'm planning to move at some point to a PubSub based file sharing which would give all we need to manage correctly deletion or notifications. There is some work to do on the standards first, that's why I haven't done it from the beginning.</p><p>In addition to the ability to delete files, there is no upload limit with SàT file sharing component. Instead there will be a quota system (not implemented yet).</p><p>Some import mechanism should come soon, at least to import files uploaded on Prosody HTTP Upload, so the switch to SàT file sharing component will be easy.</p><p>I've put some efforts on the photo album, the goal is to have something simple and straightforward to use, working well on desktop or mobiles platforms, with or without touchscreen. There is a permission system to indicate who can view the pictures. From Libervia, pictures are currently uploaded with HTTP Upload (with some specific headers to indicate the path of the albums), until I have time to implement Jingle with WebRTC (maybe in next version?).</p><p>Here is a screenshot of the photo album with the new theme:</p><p><img alt="photo album in Libervia with &quot;bulma&quot; theme" src="https://upload.goffi.org/upload/b7A8uVHU7Q35nNxG/libervia_theme_bulma_photos.jpg"/></p><p>I'm currently putting my effort to make SàT/Libervia a good fit for sharing with family or close friends, little communities or small team. In other words a familial social network.</p><p>If everything goes well, I have good hopes to go beta in August and release 0.8 somewhere in September.</p><p>That's all for this note! As usual, feedbacks are welcome.</p></div>
    • wifi_tethering open_in_new

      This post is public

      www.goffi.org /b/n9nzn3ySF7Lv4pYBpTqYtP/progress-note

    • chevron_right

      Peter Saint-Andre: How Useful Is Philosophy, Really?

      Peter Saint-Andre • news.movim.eu / PlanetJabber • 3 August, 2020

    It's a commonplace of research into human behavior that most of what you do is caused by your inborn personality traits, your underlying biology, the society and location and class and family into which you're born and in which you're raised, and so on - plus a smattering of luck and chance events. It can seem that all these causes conspire to leave little room for your ideals and aspirations and worldview and conscious choices to have much of an impact....
    • wifi_tethering open_in_new

      This post is public

      stpeter.im /journal/1645.html

    • chevron_right

      Aditya Borikar: Chapter 11: TLS - The Last Stage

      Aditya Borikar • news.movim.eu / PlanetJabber • 2 August, 2020 • 1 minute

    Hi,
    The primary task I am focussed on currently is to fix any flaw I come across in the code base. This week I stumbled upon multiple instances where workflow could have been better.

    A tiny but significant change made at the start of this week is the removal of smack-tcp from the websocket module. Remains from previous approach (eg: failureMap inside okHttpWebsocketImpl, not so useful - boolean usingHttp inside transport descriptor) have been removed. Exception descriptions now show meaningful messages instead of `ClassName@someHexNum`. WebsocketRemoteConnectionEndpoints no longer hassle by extracting host, port and scheme from the endpoint obtained through http lookup. Instead WebsocketRemoteConnectionEndpoint conveniently wraps the endpoint inside a URI.

    Logging descriptor has been changed significantly and is now moved inside okHttp's dedicated package. It no longer extends okHttp's Interceptor and now depends on SmackDebugger. Even so I am still trying to figure my way around debuggers. Improvements have been made to the core class - OkHttpWebsocketImpl, for the closingWebsocket phase.

    The most important learning this week explained to me by my mentors,

    wss_vs_ws.jpg


    The websocket subprotocol states that TLS cannot be used at XMPP subprotocol layer instead it should be enabled at at the websocket layer. So whenever, we use an endpoint using `wss` scheme, it refers to an endpoint secured by TLS. This concept has now been realised inside websocket module. When SecurityMode is set to `disabled` it connects only to endpoints with `ws` uri scheme. When SecurityMode is set to `required` connection is established only with endpoints with `wss` uri scheme. Incase we preferrably want to connect to a secure endpoint but are open to establish connection with insecure endpoints if something goes wrong, we can use SecurityMode `if-possible`.

    This was my first week of the last phase. See you later.
    • wifi_tethering open_in_new

      This post is public

      adiaholic.github.io /gsoc2020/2020/08/02/Chapter-11-TLS.html

    • chevron_right

      Ignite Realtime Blog: JSXC web client now available as a plugin for Openfire!

      guus • news.movim.eu / PlanetJabber • 1 August, 2020

    The Ignite Realtime community is happy to announce the immediate availability of a new plugin for Openfire that makes available the JSXC web client to your users!

    JSXC is a feature rich web client, which, among others, supports video calls and screen sharing. For more information on its features and usage, please visit its project web page at https://www.jsxc.org

    Much like the inVerse and Candy plugins for Openfire, the new JSXC plugin installs a pre-configured version of JSXC in an embedded web server that is ready for use out-of-the-box. Install the plugin, and point your users at the URL where the webclient is available (by default: https://<your-server-name>:7443/jsxc/ ) and they’re ready to go!

    Your instance of Openfire should automatically display the availability of the new plugin in the next few hours. Alternatively, you can download the the plugin directly from the JSXC plugin archive page .

    As always, we’d love your feedback on our work! Stop by our support groupchat to get in touch, or leave a message on our community site .

    For other release announcements and news follow us on Twitter

    1 post - 1 participant

    Read full topic

    • wifi_tethering open_in_new

      This post is public

      discourse.igniterealtime.org /t/jsxc-web-client-now-available-as-a-plugin-for-openfire/88467

    • chevron_right

      Monal IM: Final betas for 4.7 out

      Anu • news.movim.eu / PlanetJabber • 29 July, 2020

    The final betas for Monal 4.7 for iOS and mac are out. I hope to release to the app store this week.

    Notable changes:

    1. New title bar in chat
    2. Show when user was last seen online ( XEP 0319 : Last User Interaction in Presence )
    3. Show typing notification (XEP-0085: Chat State Notifications)
    4. XMPP blocking (XEP-0191: Blocking Command)
    5. Fixed ui glitch that shows incorrect unread mesages
    6. Added button to mark all messages as read
    7. Many other Ui and stability improvements
    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/final-betas-for-4-7-out/