New server and bitcoin donations

Movim keeps getting improving a step at a time and now boasts a responsive design layout, a better and much faster database access layer and customizable CSS3 elements like the page background.

marketplace-giantfox-combined

Perhaps you’ve heard that Mozilla has released its new mobile operating system Firefox OS. This new operating system is a breath of fresh air in a market that focuses much of its development into repackaging HTML5 and javascript websites into native “apps”. Indeed Firefox OS lets developers create an application to run on their platform by simply adding a description file to it, the OS is entirely written in HTML5 and javascript itself so websites just run natively on it.

At Movim we’re very excited by this new opportunity and we plan to release Movim as a webapp for Firefox OS. This means that we could be the second social platform on the Mozilla marketplace (after Twitter) and get more attention from the general public.

That also means that our existing server platform will not suffice to back a webapp. So we’ve invested into an AWS instance that now runs Movim’s reference pod. This isn’t an official pod, as we insist we will never have one. However it will be maintained by us and kept in sync with the development trunk. And thus it has all the goodness you’ll find in the next version!

bitcoin

Before you rush to the new pod, consider making us a small donation. We already supported Flattr, and now we also accept donations in Bitcoin. We try to run with minimal expenses, but still need a bit of money to cover the domain names and AWS hosting.

You can now check out the latest code, or go ahead and try out the latest and greatest pod!

Movim 0.6 “Cumulus” is out, version 0.7 in progress

As you know, Movim is a Jabber client written in PHP, that can be  accessed from anywhere and using the decentralised XMPP network. The project’s goals are to offer features similar to that of social networks (blog, timeline, sharing, privacy options and chatrooms) and they’re coming soon.

What’s up ?

It’s been months since you last heard of Movim, nevertheless the project has improved a lot. Let’s review the main changes.

The installer has been greatly simplified. It doesn’t require you to register on an Movim node if you already have a Jabber account elsewhere. MoXL replaced JAXL as the underlying XMPP library and allows to connect directly to any Jabber account anywhere and creates a local cache of your profile on the web server.

This cache has pros and cons:

  • profile loading is greatly optimised, whatever device you use at any time and any place
  • heavier bits that can’t be stored on the XMPP server (photos, music, videos) that will make an entrance in the version 0.7 will be stored, with the cache, on the web server (this is also Jappix’s behaviour)

Because of this, you’ll have to be “loyal” to your favorite Movim node. On the other hand, those items will benefit from an import/export feature that will let you transfer them from node to node.

Movim 0.6.1Finally, to compare stand-alone and web-based Jabber clients, it is necessary to connect through a BOSH proxy that serves as glue between XMPP and HTTP, which also generates some latency, making cache mandatory (this is also the case for Jappix).

Version 0.6 was released at the beginning of December after five months of development. It brings the following features:

  • simplified installer
  • a re-designed CSS theme
  • a WYSIWYG editor
  • privacy options for posts (public/private)
  • more translations
  • improved user experience (although the UI still has some slow downs)
  • many improvements to make contacts loading faster
  • implemented of the XEP-0115 Entity Capabilities, which enables the client to communicate its features and the extent of its XMPP support to the server
  • implemented DIGEST-MD5 and CRAM-MD5 as more secure log-in mechanisms

Version 0.6.1 was released soon afterwards in mid-January to address SSL certificates problems with BOSH servers.

Movim 0.7 is being worked on and its feature list contains the following:

  • media hosting (pictures, videos etc.)
  • XMPP groups management
  • an administration interface

You can try out the latest development version at http://polytech.mov.im/ :

  • with the jabber ID demonstration@movim.eu
  • with the password demonstration

And here is Moxl! The new Movim’s XMPP library

It has been several weeks in intensive development, and now Moxl (Movim XMPP Library) the new XMPP library that will replace Jaxl is merged into Movim’s development branch and will be released with the next version.

Why develop yet another XMPP library?

Movim has specific needs and Jaxl didn’t provide for some of them. Jaxl was conceived as a standalone framework that works in a synchronous fashion with a heavy javascript part whereas Movim is asynchronous and has a heavy and complex server-side. Jaxl is also very complex and difficult to maintain, much of the code provides unnecessary modularity and dirty hacks were needed to link it with Movim.

Example: The requirement to parse for a second time each packet received by Jaxl to extract informations while keeping the structure, the base parser “putting flat” all packet informations.

The Jaxl complexity was heaving performances and code size (almost 65% of Movim), causing serious delays on small machines moderately stressed. The last major defect was related to the integration with Movim: sessions.

For instance, interfacing Movim’s sessions with Jaxl’s relied on very dirty glue code that created a maze of callbacks and exceptions so that Movim could be synchronised with Jaxl’s status and vice versa.

Moxl cleans this all up

The Jabber class that previously glued Jaxl and Movim has disappeared altogether. The sessions system could be cleaned up and simplified further. We now only have a single session managed by Movim instead of two, which means that when the XMPP session is disconnected, so will the web session.

Moxl features a powerful events system called XEC (XMPP Events Controller) that lets it smartly route communication packages and thus simulate a stateful system. You can find XEC’s documentation online.

Moxl lets Movim connect to existing XMPP accounts

Thanks to Moxl, Movim can now connect to an existing XMPP account straight through. There is no need for a web-server side registration any more, and thus Movim does not store user account details, leaving this responsibility to the XMPP server and preventing data leaks. The project’s documentation is online and you can find the project’s code on Launchpad.

What of its support in Movim?

Testing of Moxl happens within Movim. Therefore the library is entirely supported by the social network only 2.5 weeks after the development started. Movim on Moxl has already reached the same feature level as Movim 0.5 but with a much cleaner and maintainable code. It is furthermore possible to connect to a large variety of accounts and to connect without first registering on the web interface.

Conclusion

Moxl give a boost to Movim and accelerate its development by simplifying the code and provide easier error management. This also benefits the user with more granular error messages to take better decisions. With Movim 0.5, when an XMPP error happened, Movim just skipped it, Jaxl didn’t provide error reports.

Porting Movim to the new library took only 2 weeks, thus it is realistic to expect a new release with only Moxl by the end of the year.

 

LSM 2012: Podcast of the conference

Timothée Jaussoin (Edhelas) and Guillaume Pasquet (Etenil) has given a conference in french on the Tuesday, 10th July.

We want to offer a transcript in the conference for the visually impaired and its translation to English. To do this, we need volunteers to make this work incredibly long and boring, that is impossible for a single person to achieve this goal.

Here is the full transcript produced by Clement, and here is the beginning of the timing of the transcription in SRT format. I advise you to open the video in Audacity, which you can listen to the soundtrack and note the time very precisely. Each sentence should be cut to stick on the sound.

The SRT file will be translated after. You could find all the others podcasts on the Wiki.