close
  • Mo chevron_right

    Movim just flattened the (connections) curve !

    Timothée Jaussoin · pubsub.movim.eu / Movim · 5 days ago - 07:37 edit · 1 minute

A few days ago I discovered that the #Eloquent database library (the one that Movim is using for a few years now) had some events that could be caught by an event listener.

With this simple mechanism #Movim could be aware of when exactly a #SQL request is done during the execution time.

The Movim #architecture is based on several processes that talk to each others, and each connected session (each user connected to a specific XMPP account) is having its own sub-process. The main issue with this architecture is that all those processes relies on a common database (PostgreSQL or MySQL) and each process open an unique connection to the database. See How's Movim made? Part I - The Architecture to know more about this architecture.

When you start to have a lot of users connected on the same instance, this is opening lots of connections to the database. This is creating a congestion and can slow down the general performances.

This simple commit ask Eloquent to close the connection after a few seconds of inactivity. Eloquent is reconnecting automatically if a new SQL request is made after the disconnection. This allows to free-up the socket resources once "we don't really need it anymore".

And here is the result once this commit deployed on nl.movim.eu

The PostgreSQL connections curve

  • favorite

    3 Like

    debacle , eyome , U

  • Mo chevron_right

    Movim 0.18 – Oterma

    Timothée Jaussoin · pubsub.movim.eu / Movim · Sunday, 27 September - 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!

  • favorite

    10 Like

    Adrien Dorsaz , eyome , Timothée Jaussoin , Thibaut , ericbuijs , debacle , Tom Teichler , Marzanna , Ali3n , U

  • 2 Comments

  • 27 September eyome

    Great release!

  • 3 days ago - 08:12 Adrien Dorsaz

    Super release, merci beaucoup !

And also here

Recommend Movim and share your experience ;-)

(No registrations recquired).

#Movim, #XMPP, #Recommendations

  • 3 Comments

  • 7 September preptorrent

    Movim (the app and a browser plugin/addon for mozilla and konqueror, maybe using webgl) should have libtorrent2 built-in so people can refer to a large file (e.g. a 4gigabyte DVD ISO of memes in GIF and short vine 480p ogg-theora clips and and collada 3D objects under 2meg in size and blender files). That way, even though movim might be used on a low bandwidth internet connection, as long as people already have the ISO they are all talking about that current year, the magnet link means they all know what they are referring to in text chats. It would also be cool if that Movim konqueror/mozilla function could (mount) "bust an ISO" (known by the magnet link) so as to refer to a subfolder in that ISO such as a GIF (or midi song or dosbox game) to link in a written post so it plays of the HDD or (sdcard) of the person reading the comment (and not the movim website). It is very little bandwidth used, see. Each year, filling an ISO with public-domain content should take no time for the community.

  • 7 September eyome

    I think it's not really the goal of Movim ;-)

  • 9 September preptorrent

    @eyome I appreciate I cannot always get what I want in life (aside from my existing castles, mansions full of my harems, my classic car collection and by butlers and jetpacks). ;p
    And I certainly do not wish to revolutionise what Movim is. I do think I have a case though for what helps with audience retention. People do like Movim and I mention it a lot. For example, the reply button could use the "@" operator (or a dropdown menu of people in the thread and your own contacts list). I have tested that in this post, just in case I am incorrect. I didn't even know you'd replied until, by chance, I used the #movim hashtag to look around at what Movim's progress was (such as the cool video conferencing yet to come in 1-to-1 or more ratios). Surely you can see I have a point there in audience engagement rention when the operator helps keep people chatting and in the loop. A good thing Movim has is a "print-preview" for posting text. The disqus comments and youtube do not have that nice feature. Movim is cool like that and it seems such a waste not to squeeze in some low bandwidth tweaks. I don't mean to be cheeky. I'm already wondering if my reply is too long.

    Regarding the html4 style picture embedding and hyperlinking (which is nice), I do not expect to be able to demand full html5 and canavas. However, wouldn't just the ability to upload a basic 3D model (in a written post, as if a image) solve everything? Is there no way the "upload-image" field can take a collada file (e.g. of a house or a ship) and display it in canvas api in place of a jpeg or animated gif?

    It would be small in filesize (not straining the movim server) and a 2D image can be a simple "flat" collada shape. People could make them in sketchup or whatever (maybe something like blender). I would be nice, although not mandatory to be able to trigger a ogg-vorbis audo trac (very low quality even just mono 32kbps would be fine at 1megabyte) when the 3D collada fle is "played". I'm not expecting Newgrounds website. I just think it would be eye-catching and would help audience retention, because people remember how they "feel" (emotions) about a post they saw. It also helps impart a concept better than just text with a GIF. The ability to upload a 1meg 3d model with a 1meg ogg-vorbis audio file, would be awesome. I understand the video-conferencing (sort of like skype) is a priority. I would attach a swf to my posts but nobody uses adobesoftware to run it, and if I use an exe file from flash , a virus assumption deters people. Also the Adobe Flash exe bundles in dependencies and the filesize exceeds the movim (2meg?) upload size.

    OpenShot (openshotstudios.com) Video editor, allows you to point to a HDD folder in blender2.8 (even if running 32bit or 64bit blender) and so it generates a template 3D model (which could be a collada file or other format) such as of a 3D text you type in, or a rotating planet earth or whatever 3D model (e.g. a house or castle or parked-lorry) in the templates (and so it animates, in a basic way sort of like a google-sketchup file).

    So for, with a movim upload example (ignoring blender and openshot for a moment), it could look as basic as this, below (a random image from OpenScad).
    https://1.bp.blogspot.com/-OBBjyQx8UfM/Xxi8sDFPUUI/AAAAAAAAdM4/ctWfQTU0_p85Ec9-IZARziHErTaxXI7kwCNcBGAsYHQ/s1600/main_assembled.png
    So it need not even be as complex as this example:
    https://1.bp.blogspot.com/-dFKCxscOs28/Xxk4hzktfuI/AAAAAAAAdNE/PSjDR2Q0CW4WnUDC7WzaZ0yz_llANBpAQCNcBGAsYHQ/s1600/mendel90.png

    In Movim, it could be just the simplest of collada files displayed (presumably in some hidden html5) just by using the image upload (and choosing filetype collada). It could even be pulled in from the google 3Dwarehouse website if movim felt a filesize was too large (such as 4meg). Here is an example of a kitchen-sink in google 3Dwarehouse. Just rotating 3D (a still static image) and one not even worry about being able to turn on the tap. It could do with an automated rotare function tbh.
    https://3dwarehouse.sketchup.com/model/0ed171b3-ce82-40e7-a41a-71ebfb50a992/kitchen-sink

    OpenShot linking with blender is a great example of Free software linking with other free software. The movim mswindows App (or pidgin plug-in) could totally do that.

    It might sound bold of me, but I think a goal of movim is to get more people to use it and then stay. That way, they continue to remember it exists and continue to use it for chat. As for the torrents, the fact it has RSS makes me wonder if there is a way to link a torrent magnet link via RSS to it like a blog in RSS. People do that in kodi. Kodi boxes can run blender. Even a PiZero runs blender.

    I honestly think I see it from the audience view-point from down here in the cheapseats, and these small features could help engagement becuase it helps impart concepts and is fun.

  • Mo chevron_right

    WebSocket connections on movim.eu

    Timothée Jaussoin · pubsub.movim.eu / Movim · Monday, 3 August - 22:09 edit

The movim.eu #XMPP server now supports connections through #WebSockets.

This means that if you're using a #web client like conversejs, you'll be able to connect directly using your movim.eu account.

If you are a #Movim user. Nothing changes as Movim is using standard good ol' TCP/TLS connections to login 😉

The clients that wants to connect to movim.eu using WebSockets will normally automatically discovers the endpoint (using the related XEPs). If not, it is available manualy at wss://movim.eu/xmpp.

That's all folks!

  • favorite

    5 Like

    Ravenbird , fabrixxm , U , Marzanna , Timothée Jaussoin

  • chevron_right

    mosi76 · Friday, 19 June - 13:23

    Trying again to build out my own #Movim self hosted pod via #Docker. Hopefully it will be a frustration free Friday

  • 2 Comments

  • 19 June ThUnD3r|Gr33n

    I'm here to help if needed :)

  • 6 September preptorrent

    #14October2023EpochEclipse Did you succeed? A tiny Movim pod/server should be solar-powered in the middle of the african desert, running on a raspberrypi3bplus retropie running on a battery with a qwerty keypad (made from a clone xbox360 chatpad modded with arduino) and it could have a solar powered bigger antannae. It could be placed in tibesti mountains Chad, and a second identical setup in Tchirozerine niger on high rocks, hills or mountain, and a third in Algeria "Erg Tiffernine" sand dunes. All very remote, hot dry places that eventually could link up via a weak signal, but enough for Movim. Maybe the signal from the third raspberry-pi could just about trickle to spain's africa enclaves and get the occassional internet update. Then the other two raspberry-pi machines get the update too. A LoRa gadget on each could help for a "ping" here and there.

  • Mo chevron_right

    Chat picture resolver and Telegram stickers

    Timothée Jaussoin · pubsub.movim.eu / Movim · Friday, 15 May - 07:50 edit · 3 minutes

Movim 0.18 is planned to be released soon.

In the meantime, let's have a look at one specific feature that is really useful when you integrate Movim with the Spectrum2 - Telegram bridge.

For those that are not aware, XMPP can connect to other chat networks using tools called "transport". One of the most used is called Spectrum2 and can connect to many other networks thanks to its libpurple support.

Telegram transport setup

What will we do here is:

  • Setup telegram-purple in Spectrum2 on Debian
  • Connect it to a XMPP server (here ejabberd)
  • Adapt the transport to integrate with Movim

Setup Spectrum2 and telegram-purple

Here I will not detail the basic installation, the official Spectrum2 documentation is pretty complete.

Once the repository is setup, please install the base package and the libpurple module:

apt install spectrum2 spectrum2-backend-libpurple

For telegram-purple the README is also quite complete

Create a Telegram transport

Once all the packages are setup, we will create a transport configuration file. You can reuse the spectrum.cfg.example located in the /etc/spectrum2/transports/ as a base.

# nano /etc/spectrum2/transports/spectrum_telegram.cfg

This is basically the config file that I used for my own telegram.movim.eu transport:

[service]
server_mode = 0
user=spectrum

jid = telegram.movim.eu
password = spectrumpassword
server = 127.0.0.1
port = 5347
backend_host = 127.0.0.1

users_per_backend=10

backend=/usr/bin/spectrum2_libpurple_backend
protocol=prpl-telegram

web_directory=/home/movim/upload/spectrum
web_url=https://upload.movim.eu/spectrum

[identity]
name=Telegram Transport
type=telegram

[logging]
config = /etc/spectrum2/logging.cfg
backend_config = /etc/spectrum2/backend-logging.cfg

[database]
type = sqlite3

[registration]
enable_public_registration=1

When Spectrum2 will connect to the Telegram network, the stickers will be downloaded as files on the server. By default an ugly path is simply sent to the XMPP clients. We will turn it to a proper URL and let Movim to its magic.

To do that we need to configure the Web Storage module. You can also find more documentation about it there.

web_directory=/home/movim/upload/spectrum
web_url=https://upload.movim.eu/spectrum

It's pretty self explanatory. The downloaded stickers will be put in the web_directory directory. The second parameter, web_url, is basically telling Spectrum2 how to general its URL before sending them in the messages.

Configure ejabberd

Then we need to add a new service in our ejabberd.yml configuration file.

  -
    port: 5347
    module: ejabberd_service
    access: all
    ip: "127.0.0.1"
    global_routes: false
    hosts:
      "telegram.movim.eu":
        password: "spectrumpassword"

Once everything is setup, restart Spectrum2 and ejabberd. For Spectrum2 you can do it using spectrum2_manager or a dedicated systemd configuration file.

Configure our web server

We then need to expose those files to the web. A simple nginx configuration will handle it.

server {
    server_name upload.movim.eu;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    …

    root /home/movim/upload;

    location /spectrum {
        alias /home/movim/movim/spectrum;
    }
}

Fix the nasty file rights with Incron

If you start to use your Telegram transport at this point you'll notice that the stickers URLs are returning a 403 Forbidden error.

Indeed, Spectrum2 is writting the files in the directory using it's own rights. And this can't be configured.

We will then use another useful tool called Incron. This tool works like CRON but instead of working on time events, it works on file events.

You can find a pretty complete documentation there.

apt install incron 
nano /etc/incron.allow # add your spectrum user there
sudo -su spectrum
incrontab -e

In the incrontab file well then change dynamicaly the rights of the files once they are wrote in the directory (check the documentation for more details).

/home/movim/upload/spectrum   IN_CLOSE_WRITE          chmod 664 $@/$#

Enjoy your nice Telegram stickers in Movim

In Movim, nothing more to do. With the version 0.18, Movim will try to resolve the incoming messages that contains a URL and see if it's a valid picture. Which is the case for Telegram stickers.

Telegram stickers displayed in the Movim chat

You can also note that it works for any other incoming picture URL, including those sent using Conversations or other XMPP clients.

That's all folks!

#telegram #xmpp #movim #transport #stickers #ejabberd #admin

  • favorite

    7 Like

    Felipe , Slavko , debacle , Marzanna , U , Sandeep , norz

  • 1 Comments

  • 15 May ThurahT

    Fantastic that libpurpl is still useful : ) I hope the bridge works out, not that I have any telegram contacts.

Now that Saudi Arabia has allowed women to drive just as cars are becoming A.I. driverless (Nelson Muntz, "Ha Ha"), its time to put Movim into a carputer. One of the uses for this is to have the XMPP video conferencing streaming your dashcam footage to your home (or other remote location), probably to be captured in a stream to a remote home-computer maybe via FOSS software similar to OBS or miracast (even though the local carputer might be set up to be a video-recording 'blackbox' in the car itself too).

Carputer

It basically doesn't matter if Movim video-conferencing only does a video-call via just two computers linked in peer-to-peer at the moment. The carputer could have several cameras "mixed" into say 4 way split screen (like diddykong-racing or goldeneye 4-player on the N64 resembles). The 4 cameras could point out the windows in a Front, Back, Left and Right configuration (or something similar).

Of course, Movim in an HTPC could also have similar functionality. To build the carputer, it would be perfectly possible to choose either a MITX mainboard or to gut-out a laptop. The processing should be fine, as long as a computer is capable of playing Blu-Ray (usually dual-core 1.6Ghz with zacate or AMD graphics APU is fine, but double it to a rasperry-pi3bplus quad core of a 3GHz dual-core to be on the safe side and a little virtualisation ability might help, and future 3D collada support could capture physics from cameras acting as stereoscopic). Having opengl4.4 is nice but if you need opencl, something like a a6-6400k APU gives opencl 1.2 but an AMD 7400k gives opencl2.0 on the apu. Power efficient equivalents would need to be considered as alternatives. A 12volt car stereo can be powered from a modified xbox360 psu at home, if you want an htpc to match the carputer.

Fitting the carputer into a car-stereo bay so a DVDRW is included would be tidy and it also means, if a network fails, you could burn two 1GB DVD-R 8cm discs and pop them in a standard-letter-size (110 x 220 mm) envelope with a first class stamp to friends or family at a nearby postbox, so that within a day or three, at least some footage can get to them (and maybe have a folded Return Address SAE inside the envelope too). Or have the computer installed somewhere in the car it won't get stolen, and the DVDRW drive could simply be connected by a long cable to the car-stero bay. If the carputer is running Kodi many touchscreen options exist and so can voice-activation.

There is a myth that women drivers are safer drivers. The truth is, men drive more. The self-heating tin of all-day-breakfast exists because of men drivers. Necessity is the mother of invention, and hunger is the brother of indigestion. It is part of men in careers involving driving, as business not just residential. The majority of accidents happen 2 minutes from home. The flooding of women onto the roads as drivers is really just a quantitative easing, creating a hyperinflation of drivers. It is a way to launder funny money. Like alcohol-prohibition era America, more rules paves the way for more corruption. All roads lead to Rome, and when in Rome, the fall of Rome is by driving drunk on girl-powah. That'll put lead in your pencil. When women hold up half the sky, they take up your braking-distance. Women destroyed the environment in creating more roads by exceeding the capacity of those roads already existing. Carpooling spreads diseases. Arguing against it gets car companies and insurers calling you a male chauffeurnist. So with the abundance of falsehoods pre-emptively trying to find men autoguilty, don't get caught out by the social-distancing cameras that only put A.I. red-boxes around the chosen few, and don't get caught out by the establishment's electronic-line-judge or their equivalents to "HawkEye Cyclops" where corruption in sport is in court, found to be rigged. Driving is a sport, and could we be surprised if they'd employ their same tactics there on the main road? Speed cameras have been questioned in the past. Create your own data and have your own specialists, friends and back-ups at hand.

Movim RSS could keep you abreast of new changes on a road before the mainstream media or traffic reports get the information.

An automatic message over the XMPP chatroom or conferencing could send a message and a hash file of the video file you make such as a magnet link to a torrent. When the airbag goes off, a torrent is seeded, and an (atom) RSS published. War-driving with your IPFS could also be used, and could be a mobile Movim Pod. With that, finding driving routes via a route-finder can be done in a way that finds today's best war-driving route if the journey is tweaked, so maybe even coverage is mapped when microwave or other wireless comms are affected by weather or impaired communications masts.

And if all else fails, make your carputer's A.I. brain one of them #MGTOW wuvbots and you can just call anybody who disagrees with you sexist. If she crashes, she is the primary victim of wardriving for she is the one left behind.

  • Carputer

    A carputer is a computer with specializations to run in a car, such as compact size, low power requirement, and some customized components. The actual computing hardware is typically based on standard PCs or mobile devices. Because they are computer based they typically have many standard interfaces such as Bluetooth, USB, and WiFi. The first carputer was introduced by Clarion Co. on December 4, 1998, although on-board diagnostics have already been employed ever since the 1980s in order to measure precisely the amount of fuel entering the engine as the carburetors got too complex.A challenge to installing a computer in a car is the power supply. Energy is supplied as a nominal 12V DC in cars or 24V in some trucks. The real voltage varies according to whether the engine is on or off since the battery generally delivers less than 12V, while the generator supplies more. There can be peaks, and at ignition time the current supply drops. External DC/DC converters can help to regulate voltages so these can be used.Police cars often have Mobile data terminals in the form of a laptop swivel mounted where the driver's armrest would be. This can be used to log data...

  • person chevron_right

    Chris · Sunday, 3 May - 18:17

    J'ai essayé de télécharger l'application #movim sur mon téléphone. Je n'ai pas réussi. pas trouvé dans Google play et je n'arrive pas à avoir F-droid.

  • favorite

    1 Like

    preptorrent

  • 4 Comments

  • 3 May preptorrent

    https://nl.movim.eu/?contact/edhelas@movim.eu Vous pouvez poser des questions sur movim à cet hyperlien (conference). It took me a while to realise you need to ask questions about movim in the chatroom. Here at the hyperlink it says : "If you have any questions about Movim, XMPP or something related, please ask it in the official chatroom : movim@conference.movim.eu"

  • 4 May Timothée Jaussoin

    Movim n'est pas disponible sur Google Play mais est sur F-Droid, une version plutôt récente de Android est requise.

  • person

    5 May Chris

    Mon problème est que il faut f-droid est je ne sais pas comment faire pour l'avoir. J'ai l'impression qu'il faut être trés doué et informaticien. J'ai chercher sur google plais et pas trouvé.

  • 9 September eyome

    https://f-droid.org/fr/ Comment as-u cherché ? :D