• chevron_right

      Reply to chat messages, a new Movim feature coming soon!

      Timothée Jaussoin · pubsub.movim.eu / Movim · Sunday, 1 November, 2020 - 15:02 edit

    A new useful #feature has been merged into Movim today. It will also be part of the upcoming 0.19 #release.

    This change relies on the standard XEP-0201: Best Practices for Message Threads and allows you to #reply to a chat message using any XMPP account using Movim.

    You could already find such feature on other chat platforms like #Telegram or #WhatsApp, the flow is also quite similar: on supported messages, click on the reply button and a little preview will appear next to the chat box input, fill in your message, publish, et voilà !

    You can also navigate to the original message by clicking on the little preview (if this message is currently shown in the conversation).

    Reply to chat messages feature

    Enjoy :)

    • chevron_right

      Movim 0.18 – Oterma

      Timothée Jaussoin · pubsub.movim.eu / Movim · Sunday, 27 September, 2020 - 16:58 edit · 5 minutes

    It's been six months since the last #release, and for the 0.18 – Oterma one there's a lot to show!

    So let's dive in this list of exciting features and changes that you will find in this new release.

    Notifications

    0.18 is coming with quite some changes regarding how the notifications are handled and displayed within Movim. This also came with lots of bug fixes to ensure that the counters are up-to-date everywhere across the UI and between all the devices.

    One of the first notable changes you will find is how the global chat counter is behaving. This counter is now displaying the total number of unread discussions and not the total number of unread chat messages anymore.

    picture chat counter

    Related to this change, an update on the chatrooms bookmark specifications is now allowing you to save a per-chatroom notification configuration. With this new feature you'll be able to choose, for each chatroom, if you want to “always be notified” for each new messages, “only when you're mentioned”, or “never”.

    picture chatroom config

    Movim can now use sound to notify you of a new incoming message, if you allow it to (see the configuration panel).

    audio notif screenshot

    Stickers, drawing and emojis

    We also improved some existing chat features. Some work has been done by Christine Ho on the Draw widget. The drawn lines are now smoother, even on large resolution pictures. The feature has also been extended to allow you to draw on existing pictures you upload from your device.

    picture draw upload

    Christine Ho also improved the existing emoji picker to add useful search bar, you can find it when trying to add a reaction bellow a message.

    A new pack of fresh meme stickers was also added to the stickers panel.

    meme

    And finally, the Movim emojis support has been updated to Unicode 12.0, bringing a pack of new emojis in.

    emojis

    Video conferencing

    A big part of the time spent on this release was focused on the video-conference features. The related code was heavily reworked to ensure a smooth compatibility with the #Conversations Android client, it's still not perfect but works already quite well.

    This was especially because of the integration of XEP-0215: External Service Discovery in the project. Allowing the web browser to easily perform STUN/TURN discovery (it's a way to discover alternative routes on the Internet for the video and audio feeds to be streamed on) using the #XMPP server services.

    The call flow was also split to conveniently allow audio-only calls.

    And the screen-sharing feature was integrated on the video-side. Useful when you want to quickly show a document or a presentation during your call!

    The new videoconferencing features

    Video-conferencing is hard. For this release we made quite a lot of work to improve the user experience but we are still not totally satisfied with the result. Some more work will be needed in the upcoming releases to really deliver the best we can offer for that feature.

    And a many other things…

    Chat and chatrooms

    The interfaces between the chat and chatrooms (header bar, drawer menu) are now unified to display general information the same way. A little gallery was added which displays recently sent and received pictures.

    emojis

    The pictures handling in chat messages has been improved. Movim is now trying to resolve picture URLs, even if they were sent using a client that doesn't embed pictures in messages.

    The scrolling behavior in chat was greatly improved and simplified, a little "go to bottom" button was also added.

    scroll

    Movim now handles the XEP-0319: Last User Interaction and can therefore be more precise to tell you the last time your contacts were seen active.

    Post publication

    Movim was already automatically saving your draft posts while you were writing, but since this version it actually displays when a draft has been saved. The post publication panel was also slightly redesigned to be clearer and more accessible.

    publish form

    Performance

    On the technical side, a PresenceBuffer system was added to handle wave of presences coming from the network and mass insert them in the SQL DB. This reduces by a factor of 10 to 100 the number of requests that are done to the database during those "spikes" of incoming presences from the network. This little feature greatly improves logins speed and shortens the time it takes to join a new chatroom.

    Favicon

    The favico.js library, that was handling the little counter in the browser tab icons had been removed and rewritten using only vanilla JavaScript, keeping only the required bits which also made it way smaller. This was actually the last (external) JavaScript dependency coming with Movim.

    XMPP Authentication

    Regarding the authentication process, Movim now supports XEP-0368: SRV records for XMPP over TLS to directly connect to XMPP using an encrypted socket (better than the historical STARTTLS negociation system that is still used as a fallback mechanism). Regarding the IP resolution Movim now uses the Happy Eyeballs mechanism to resolve the server IP on IPv4 or IPv6.

    Android application

    Finally, the official Android app gained nice features thanks to the improved integration of Movim on your phone.

    The notification handler has been reworked to handle newer Android versions, conversations are now stacked properly.

    android notifs

    From any application you can now share a URL to Movim directly and publish it in a Post. In the future we are planning to add more sharing capabilities like this one (share to contacts or chatrooms for example).

    share

    Related to the video-conferencing improvements, audio and video calls are now launched in a separate task to allow you to switch back easily to your chat or publications while having your call. This makes it close to the experience you can already have on desktop.

    Finally some work was done in #Movim and on the Android app to improve the general performance, especially regarding the touch features and general responsiveness.

    To conclude…

    As always you can test all those features on our official pod, or deploy them in a few steps on your own server :)

    We always need some funding to help us promoting Movim and covering project costs, feel free to help on our Patreon.

    And stay tuned for the upcoming releases, it seems that there are some interesting features already planned ;)

    That's all folks!

    • chevron_right

      A 3in1 surprise! Movim 0.17.1, Movim Android 0.17.0.0 and Movim Account Panel

      Timothée Jaussoin · pubsub.movim.eu / Movim · Sunday, 22 March, 2020 - 15:19 edit · 2 minutes

    A bit more than a month after the #Movim 0.17.1 Catalina release I'm pleased to deliver two new releases and a new tool to all the movim.eu users. Let's dive in all those new exciting features.

    Movim 0.17.1

    This minor #release focuses on a few things. We could call it an "integration release". In fact most of the work done were to help with the new Debian package and for the new Android app release.

    Regarding the Debian package, I'd like to personally thanks Dominik George aka Natureshadow from Teckids e.V. and mirabilos for their continuous work on the dependency packaging, patches and general maintenance of the .deb. They were both added in this release on the Core Contributors page. Thanks!

    Upload widget improvements

    The #Upload #widget, that is used to upload files and pictures during the Posts and Messages publication has been redesigned. You can now drag and drop files from your explorer directly in the drop area. The picture visualization has also been improved and now display more information about it.

    Uploaded widget screen, uploaded using the upload feature, this is so META

    Integration with the new Movim Android release

    The Movim #Android app has not been updated for a while. This new release improves the integration experience one step further.

    In fact, the top bar is now transparent and integrates with the rest of the user interface. The pod switching button is not shown anymore during the startup process (that was slowing down the launch of the app) but directly in the navigation bar (you will need to upgrade both Movim and Movim Android to handle this feature). This allows Movim to launch in only a few seconds on a standard 4G connection.

    Movim now integrates even more within the Android UI

    On the Chat page, it is now possible to close the conversations using a simple drag-to-left movement. Similar to what you can find on Telegram for example.

    Movim Account Panel

    Last but not least, all the movim.eu #XMPP accounts have now access to a new panel. Available on api.movim.eu/accounts it allows some account wise configuration to complete some features unavailable client side.

    To authenticate a "one click link" mechanism has been added. Once your identifier entered this authentication link will be send directly by chat allowing you to access your Account Panel.

    Through this panel you'll be able to list all the existing files you ever uploaded using your XMPP account, in the future you'll be able to also delete them.

    Uploaded browser files on the Movim Account Panel

    Email to XMPP

    This Panel also contains an exclusive feature, the possibility to receive #emails on your XMPP account.

    This feature is only working one way, in fact it's our mascot, and now postwoman Miho that will take care of delivering the emails as chat messages directly to you. Please notice that the attachments are not forwarded and we are not applying any form of SPAM filtering on them. The emails are transferred as it in their textual version to you.

    The Email to XMPP feature

    That's all folks! And don't forget, to prevent the spread of the #COVID19, stays safe at home!

    • chevron_right

      Movim 0.17 – Catalina

      Timothée Jaussoin · pubsub.movim.eu / Movim · Friday, 14 February, 2020 - 14:58 edit · 2 minutes

    Here comes a new exciting Movim release. Two months after Cesco, here comes Catalina.

    In this releases, many fixes but also some nice new features, both for the social and messaging sections of Movim.

    New features

    Global chatroom search

    From the chatrooms widget, you can now directly search rooms globaly and join them in a click. This new feature relies on the search.jabber.network service, that is also implemented in Conversations and Gajim.

    Global search

    New design for the XMPP forms

    The XMPP forms handling and display has been fully redesigned. With nice icons and proper labels it will now be simpler to configure Communities, chatrooms and other XMPP items.

    XMPP Form redesigned

    Disable social features

    Pod admins can now disable all the social features in one click in the admin panel. This is useful for those that only wants to use Movim as a chat frontend for their XMPP services.

    Messages retractation

    After ConverseJS Movim is the second XMPP client that implements the message retractation feature. This allow you to delete any published messages from the history. Be careful, this only works if the contact is also using a compatible client.

    Retracted message

    New night theme colors and design adjustments

    Some small design adjustments were made to improve user experience. Some useless paddings were also removed to give more space to the content (like around the chat bubbles).

    The night theme is now having darker, bluer colors, strongly inspired by the Aritim-Dark KDE/GTK theme.

    New dark theme

    Fixes and improvements

    Beside those changes, many things were fixed in this release, regarding chatroom presences handling, notification counters or complex JID handling (especially if you're using transport services such as IRC or Telegram).

    But the biggest internal change was to bring a new request type to the frontend. Now the current Movim UI (HTML + Javascript + CSS) can request the backend in 3 different ways regarding the usage.

    1. Pure WebSocket requests: the request and the response are not linked together. This is the default case for the Movim requests.
    2. Ajax requests to the daemon: this is useful when the UI needs to know if the message was handled by the server (useful when you publish articles or send chat messages) and if those messages needs to be processed by the daemon (to trigger XMPP requests for example)
    3. And, since this version, some good ol' pure Ajax requests. They directly requests the HTTP backend, without even touching the daemon internaly. This is useful to load pieces of the UI and allows parallelisation. With this changes you'll see that parts of the UI (especially on the chat page) are now loaded way faster, without disturbing the daemon.

    Requests

    What's next?

    In the upcoming weeks we're planning to do some maintenance on the XMPP services. Add some new features and do some administration. On Movim side, nothing really planned for now.

    That's all folks!

    #movim #ajax #http #release #xmpp

    • chevron_right

      Movim 0.16.1 – Cesco

      Timothée Jaussoin · pubsub.movim.eu / Movim · Friday, 6 December, 2019 - 09:50 · 1 minute

    Only a few weeks after the 0.16 release here is the 0.16.1 one!

    This release includes several fixes and a few new features.

    Features

    You can now share posts to your connected chatrooms :)

    Chatroom post sharing

    Communities layout were a bit redesigned, publication rules are now displayed clearly in the right column and the header shows more information on mobile.

    Communities redesigned

    All the messages that you sent in the one to one discussions can now be edited.

    Message edition for the whole history

    The videoconferencing feature was heavily refactored and several issues were fixed during this process. A new XEP was also used partially to improve the call negociation flow, XEP-0353: Jingle Message Initiation.

    Fixes

    In the database an index was added on the key that was tracking contacts avatars. This sounds maybe a bit technical to you but this small fix boost quite a lot the performances during the login process, when you join a chatroom (especially that one) or when a contact updates his/her avatar. Because it's a database change you should run the database migrations when updating from 0.16 to 0.16.1.

    All the entities that are on the XMPP network needs to declare what they are capable of to the others. This allows feature discovery and negociation and is specified in the #XMPP extension XEP-0115: Entity Capabilities. After the big code refactor of the handling of those #capabilities within the Movim codebase some other small improvements and fixes were done to wrap up properly this feature.

    Presences sent to MUC are now generated the same way than those sent to contacts, this fixes #711.

    DNS resolution errors an timeout are now handled properly displayed during the authentication flow (#368).

    The SQL_DATE constant was renamed to MOVIM_SQL_DATE to prevent some naming conflicts (#820).

    What's next?

    PHP 7.4 was released a few days ago, so the upcoming version will focus on fixing issues to make Movim fully compatible with that version.

    This new PHP release also includes an exciting feature that allows #PHP developpers to call directly C libraries in their codes. This could allow #Movim to directly use the libsignal C library and therefore (finally) allow OMEMO end-to-end-encryption to be implemented. This will be a lot of work and verifications so we're not promissing anything anytime soon. Stay calm please!

    That's all folks!

    #omemo #videoconference #jingle #release

    • chevron_right

      Movim 0.15.1 in preparation, some fixes and improvements in the meantime…

      Timothée Jaussoin · pubsub.movim.eu / Movim · Friday, 23 August, 2019 - 15:15 edit

    Only a few weeks after the 0.15 release, a lot of improvements were made (and bugs fixed!) in #Movim for the upcoming 0.15.1 #release. They are listed, like always, on our CHANGELOG file.

    We are also working on a new exciting feature for this release. Some of you already tried it (if you're curious you'll find it already on nl.movim.eu). For the others, here's a little clue:

    Got it?

    We also fixed some issues in the feedcleaner and atomtopubsub projects to improve and fix some compatibility issues between the RSS/Atom streams we are parsing and the #XMPP network. Some broken links were fixed within the articles (especially for pictures and external links), article tags are now transferred and handled properly within Movim and the articles content are now sanitized directly by feedcleaner.

    Tell us what you think and do not hesitate to join us on our official chatroom to discuss about the project!

    That's all folks!

    • chevron_right

      Movim 0.15 – Donati

      Timothée Jaussoin · pubsub.movim.eu / Movim · Sunday, 28 July, 2019 - 12:59 · 4 minutes

    After months of work, Movim 0.15 is finally out!

    This version was planned as a 0.14.2 but was finally retagged as a major release regarding the number of changes, improvements and new features introduced. This #release note will also sum up the changes introduced in the minor 0.14.1 version.

    So what's new in Movim?

    User features

    Local nicknames

    In the configuration panel you can now set a local nickname, this allows you to shorten the identifier you are using on your current pod and gives you a nice looking url for your blog (https://nl.movim.eu/?blog/edhelas%40movim.eu/ becomes https://nl.movim.eu/?blog/edhelas).

    Chats reactions

    In one-to-one chats and chatrooms you can add and remove #reactions to your contacts messages. A first implementation was using the Message Attaching XMPP extension. During the Lyon XMPP Sprint, the feature was refactored to implement the incoming XEP - Message Reactions. During this sprint we also worked with the #Dino and #Poezio developers to make the feature fully compatible with their clients.

    Chat reactions

    Publication sharing

    You can now easily share any article found in Movim inside a conversation by clicking on the send button just bellow the article.

    This uses the References XMPP extension.

    Publication sharing

    Snap!

    Do you want to quickly snap a picture and directly send it to a friend in a discussion or in an article? The new #Snap feature allows you to do that from any devices. Switch between your different cameras, shoot and send. It's that easy!

    The Android application has been updated as well to integrate this feature properly.

    Small improvements

    • You can now slide a one to one discussion to close it quickly, just like the Conversations client allows you to.
    • Search navigation has been improved, there is no page reload anymore to open a new discussion from the Search panel.
    • The Community page was fully redesigned to be snappier and propose contents that might interest you.
    • The UI now handles small disconnections way better . The conversations are not fully reloaded anymore when the connection is brought back.
    • In the configuration you can now define the Chat page as the default one to open when launching Movim, this is quite useful on mobile.

    Fixes, fixes, many fixes

    Lots of small things were fixed here and there.

    • The chat notifications counter was fully refactored to prevent some counter issues, each message is now independently checked as read (or not) in the database
    • The composing/paused chat state are now handled more properly in Movim. Those states are also displayed during chatrooms discussions. This fixes a 3 years old ticket.
    • Websockets are now reconnected properly if the browser is doing some intensive throttling, this was especially the case on Chrome on mobile devices.

    Architecture and technical changes

    From ZeroMQ to Websockets

    One of the biggest changes technically wise was the replacement of #ZeroMQ sockets with WebSockets. This technology was used internally for the inter-processes communications. In the end this replacement allows us to become independent from the php-zmq library without any noticeable performance impact.

    This simplifies even more the deployment of Movim and helps with the packaging of the project.

    New base web server directory

    For the administrators, please notice that the main file, index.php is not at the root of the project anymore but in the public/ directory (as well as many other files). These small changes allow the Web server to expose only the public files without extra configuration. So please point your root repository to that public subfolder.

    This change was about securing the basic setup by default .

    SQLite support removed

    The #SQLite support, introduced in the version 0.14, has been removed for now. We had lots of issues to maintain consistency and fix our migrations for that specific database.

    Some work has been done on the Eloquent library to fix some of those migrations issues upstream but it is too early to have something sufficient to bring back SQLite support in Movim.

    You can still fully use Movim with #MySQL and #PostgreSQL.

    What's next?

    Movim has now reached a stable state, both UX/UI wise as architecturally wise.

    There is still a lot of improvements to do, especially regarding the integration between the social network part and the chat part. Plus, we are always interested to hear about new ideas or improvement suggestions!

    For the 0.16 version we are planning to improve video-conferencing and bring it properly for the mobile devices. Some work is also planned to improve the Communities navigation.

    We need your help

    To continue developing and hosting our infrastructure and to support the project we would be really pleased to cover our monthly expenses, it's not much.

    We already have a few hundreds users connected daily on our main servers. If each of them could give a few euros per month it would easily allow us to reach that goal.

    You can help us by giving monthly on our official Patreon page or by using Paypal.