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.
You can now share posts to your connected chatrooms :)
Communities layout were a bit redesigned, publication rules are now displayed clearly in the right column and the header shows more information on mobile.
All the messages that you sent in the one to one discussions can now be edited.
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.
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).
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!
A bit less than 4 months after the previous 0.15 release we are pleased to announce the release of the 0.16 version of Movim.
This release comes like always with both new exciting features and performance improvements. But for this one we focused more on making the general usage more accessible and bringing some useful features in.
Drawing and content sharing
Thanks to the awesome collaboration with my girlfriend this release comes with a totally new feature that will allow you to draw quickly something over a picture you just took or a blank canvas. Those drawings can then be published within chat discussions or as publications.
The Snap feature was slightly redesigned to integrate with the Draw feature, you can also now switch between different cameras if multiple are detected (useful on mobile phones).
The camera switching feature was also integrated in the video-conferencing system allowing you to switch from your front and back views within a video-conference.
The attachments menu in the chat panel was redesigned to integrate this new Drawing feature while keeping the UI clean and accessible.
Movim now integrates a quick #emoji insertion feature 😱😍 in the chat discussions. When writing a message you can directly type the emojis code using its related :shortcut:. On desktop some work was also done to do all this process using only the keyboard.
Chats and chatrooms list improvements
The chats and chatrooms list now displays more information about the currently opened discussions:
- The chatstates (to know if the contact or one of the rooms occupants is currently typing a message) are displayed in real-time
- Movim is showing if the last chat message was sent by you
- The chatrooms are now displayed with a specific icon if they can be publicly discovered and if the occupants can see each-other public profiles (some issues were also fixed regarding the handling of those information backend wise). This allows the users to know more clearly what are the risks of discussing within a room and for the admins to change the rooms configurations regarding their privacy needs.
Big refactoring of how the XMPP clients and servers capabilities are handled
This is one of the biggest internal changes that was made for this release. On the XMPP network, the clients and servers are telling each-others what they are capable of. This allows, for example, for a client to know if a server supports file upload to display the feature automatically in the UI.
Movim was handling very weirdly the content of those capability information for several years. The related code was heavily refactored fixing some features detection issues and adding some new features for the users.
Movim now displays all the connected clients of all your connected contacts. This allows you to call a device specifically if your contact can be reached on several clients that supports the video-calling feature.
The search panel was improved and now allows you to search in Communities. It is also faster to load (especially on mobile) and displays more reliable results especially for tags results.
Slight design changes
The general design and animations were slightly changed to allow more content to be displayed (some padding were removed in the chat to display more information within the discussion bubbles) or to make the UI a bit more snappy.
Last but not least! New features don't mean performance hit. Two big performance improvements were introduced in this release.
A small database change that was overseen until now allows Movim to load chat messages way faster if you have hundreds of thousands (or even millions) of records stored.
The upgrade of one of our dependencies, reactphp/http, improved the overall speed of around 10 to 20% (especially during the connection and during page switching). This allows Movim to stay around or bellow 300ms for most of the pageloads.
What's next ?
For the next release some work is planned to support the PHP 7.4 version and to boost code regarding the new performance features that are coming with this exciting release (especially with the Preloading feature).
We will see if those changes will come into a minor 0.16.1 release or a major 0.17 release.
In the meantime we hope you'll enjoy all those new features and keep spreading Movim around. You can also support us by giving a bit of money monthly on our Patreon. This allows us to cover our expenses (servers, domains) and to create some goodies (I heard that some new stickers are planned).
That's all folks!
Just a little article that sum up a few small info around the Movim project.
We are currently working on fixing the last known bugs before the 0.16 release that will contains many new features and improvement for the project. You can already discover them on our updated website!
Lots of new Communities were also added recently on our official XMPP server, especially web comics and news websites. You can easily follow them and get notified in real time of new XKCD comics or articles by The Intercept.
All the info about the 0.16 release will be detailed in an incoming article, stay tuned.
Two data injection security issues were just fixed on Movim master in the following commit 71fcff40d70abd84f10baa252f86eba64264e841.
Movim was not verifying the origin of two kind of XML messages (called stanza) coming from the XMPP connection. This could allow some attacker to inject, in the current client session, some hazardous data. Those data are not persistent after a session reconnection.
- The roster items
- The Bookmarks 2 PEP items
The Roster items security issue was left open for many years and there is no known exploit from the team of it yet. But we strongly recommend you to patch your Movim instance by adding the following line in the
lib/moxl/src/Moxl/Xec/Payload/Roster.php file on line 12.
if (current(explode('/', (string)$parent->attributes()->from)) != \App\User::me()->id) return;
The Bookmark 2 PEP item issue is very similar but was only recently introduced in master with the implementation of the Bookmark 2 feature. We simply recommend to pull master and restart you Movim instance to clear the cache and remove any unwanted data.
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:
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!
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?
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 (
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.
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.
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.
- 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
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.
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 may have noticed that there was less updates about Movim the past few weeks. I was indeed a bit busy with other things (jobs, other projects…) but don't worry I'm still working on the upcoming release and maintaining things up.
Our #ejabberd instance (for movim.eu and jappix.com) was updated to ejabberd 19.05 a few days ago (we also found a little issue in the release related to the #Pubsub module, which was kindly fixed upstream by the ejabberd team).
A new "share posts to chat contacts" feature was also introduced recently. This will need a bit of polishing but will be part of the upcoming release.
I am also renewing our call to help the #Movim project on #Patreon, we lost a few bakers and went again bellow the 50€/month that allows us to cover the servers + domains and few other expenses for the project.
So if you want to help us, do not hesitate to join our Patreon as well as participating to our little community by doing translations, bug reports (or better, fixes!).