GCP version 0.1.3

goffi 20/06/2011, 14:14 GNU-Linux projet Libre

4 jours après la précédente version, une nouvelle version mineure est disponible, qui corrige quelques bugs (syntaxe « gcp RÉPERTOIRE1 RÉPERTOIRE2 » et code de retour) et qui ajoute des tests.

Sinon ça avance toujours côté SàT, mais il y a énormément de choses à faire, aussi de l'aide serait bienvenue :)

GCP version 0.1.2

goffi 16/06/2011, 14:15 GNU-Linux projet Libre

Salut à tous,
une nouvelle version de gcp est sortie (j'ai pu trouver 5 min entre 2 développements sur SàT): la 0.1.2 .
Un grand merci à Thomas Preud'homme (aka Robotux) pour ses contributions et pour le paquetage Debian (mon premier logiciel à intégrer Debian, ça fait quelque chose -snif- :') ).
Merci aussi à Ganryuu pour le paquet Arch Linux (que j'ai vu par hasard, faut pas hésiter à me prévenir !), et aux autres empaqueteurs s'il y a d'autres paquets dispos.
J'en profite aussi pour remercier Wido qui a fait un paquet pour Salut à Toi, et l'a mis à jour dans dans la soirée qui a suivi l'annonce sur DLFP.
À noter aussi pour les pythonneux que j'ai mis gcp sur pypi.
Sinon pour les changements, il y a:
  • un script d'installation
  • une manpage
  • amélioration de la précision du os.stat
  • saut de liens symboliques (options --dereferrence et --no-dereferrence)
  • diverses corrections de bogues
N'hésitez pas à faire des demandes de fonctionnalités ou des rapports de bogues sur le traqueur de bogues, même si j'ai peu de temps à consacrer à autre chose que SàT...

Salut à Toi: a multi-frontends XMPP client

goffi 05/06/2011, 15:56 projet GNU-Linux technique jabber-xmpp-en Libre SàT

G'day all,

I have been working for a while on an XMPP client with a daemon/frontends architecture: the idea is that you have the main logic centralised in the daemon side, and you can make very different lightweight frontends for the view. The project is intended to be a modular, multi-platform, multi-frontend communication software. The frontends can be adapted to a particular use case, or platform.
Currently, there are a desktop frontend, a console frontend, a command-line frontend, and a web frontend. A Kde frontend is also planned.

The project is quite difficult to summarise, as it touch a lot of domains (it's not intended to be only an instant messaging software, but to explore deeply the power of XMPP): with it you have instant messaging, e-mail style heavy messaging, multi-user chat, microblogging, file sharing, games, etc.

Techical part

Salut à Toi (SàT) - which means « Hi to you » - is heavily based on the Twisted framework, and the XMPP library Wokkel, which is on top of it and should be integrated in Twisted in the future. The core backend concentrate only on the RFC, a couple of XEP, and the essential stuff to run. Most of the XEP and the advanced functionalities are put in plugins, that allow the code to be modular, and to choose which features you want (you can remove plugins to suppress features for e.g. a public station). SàT manage several profiles: you can use different profiles for different accounts on different servers.


The backend communicate with the frontends throught a "bridge", which is actually an IPC: so far, D-Bus is used, but it is possible to use an other one. All the frontends and the backend together make one client, that means that if you enter something in one frontend, it will appear in the other ones like if it was enterred there. It also means that the history of the conversations is shared, and that if you create one profile somewhere, it will be created globally.


As the backend is independent of the frontends, you can use SàT without graphical interface (i.d. without X running), or unplug a frontend while the backend is still running (e.g. to terminate a long file transfert).
As you can guess by seeing Twisted, SàT is made with Python, it is actually 100% Python, including browser side code (see below); but an other language can be used to make a frontend. Actually any language able to talk with D-Bus can work, and the planned Kde frontend will be made with C++.

Here is a global Diagram of the architecture:
Salut à Toi: Global view

The frontends

Wix: the desktop frontend

Wix is the reference frontend, it is used to test implementation of features. It is based on wxPython. It's intended to be a classical desktop frontend, which should work everywhere. In the future, it could be change its interface for a more experimental one.

Primitivus: the console interface

Primitivus is for console lovers. It is based on Urwid, and the interface is more worked. I had to make several widgets for this frontend, so I eventually put them in a separated library: urwid-satext (Urwid's SàT extensions), I hope they can be usefull for other projects.

primitivus_copie_fichier.png

JP: the command-line tool

JP is a swiss knife, it can be used in many ways. It can be use to easily send file: I spend most of my time in a shell, and it's often annoying to have to go in thousand dialogue boxes just to send a file, furthermore if I am already in the good directory. With jp, I can just type:
jp file mycontact@example.org
and I plan to use a more friendly interface like "jp file nickname".
In addition, jp can send a whole directory by compressing it, accept multiple files without having to accept each time, or send the output of an unix command. It can be used as a powerfull scripting tool, e.g. to notify you when something happen on your server.
In the future, it should gain lot of features like sending microblogs, or managing roster.

jp.png

Libervia: the web frontend

I have waited to make this frontend to start the communication about SàT. Libervia is close to what the fashion wants to name "social network", but with a big emphasis on privacy and user respect; it clearly wants to be an alternative to the massively centralised commercial services. It's entirely made in Python, thanks to pyjamas, with is a Python port of GWT.
There are many thing to say about pyjamas: group centred right management, clear interface, use of widgets, unique input box, visual indicator to show who will be able to read your message, etc.
All of this is shown in a video (in French, but I'm pretty sure it's understandable without the sound, any help to make subtitles welcome):

This video is under Creative Common BY-SA

In addition, a technical demo is online: http://www.libervia.org . Please don't pay any attention to the ugly appearance, we are working on it and it should be really nice looking soon.

Libervia, as the whole SàT project in linked to a social contract, see below.

libervia_prototype1.png

Some things you can do with SàT

Here are some stuff you can do with SàT:

  • Use your e-mail client (MUA) to read and send your messages: XMPP manage "normal" type message, which are heavy messages pretty similar to e-mails (with a subject and a body). This messages are often managed really basically by XMPP clients, but this job could be done by feature-full stable and well-known e-mail softwares like KMail, Thunderbird, Mutt, Roundcube, etc. So, 3 extensions have been made: one to manage a Maildir box, one to manage an IMAP server, and one to manage a SMTP server. Theses extensions allow to connect most of e-mails clients to SàT, and use them to send message to your XMPP contacts, receive messages from them, or even send message to standard e-mail network throught an SMTP gateway. I think XMPP is an excellent candidate to be used as an alternative to e-mail.
  • Microblogging: SàT manage microblogs (only in Libervia so far), not only in the popular classical public way, but also with access restriction through roster-based group access. For example, if you have all you family members in the group "family", you just have to enter "@family: Salut à toi la famille" in the input box, and only the member of your family will be able to read this message. If you want to publish this for everybody, just enter a double @, like this: "@@: my global public message". With this, not only all you contacts will be able to read your message, but even people you don't know as it is public (on the online demo, you can see them through http://www.libervia.org/blog/your_nick).
  • receive multiple files from one contact without having to individually accept them: jp, the command-line tool, allow (among other things) to automatically accepts files, or to send a full directory at once by making a tarball with it.*
  • Nothing to do with XMPP, but an extensions allow to send message to a Couchsurfing account. There is a way to make lightweight XML interfaces for plugins: that allow to make a plugin which will work with all frontends; the couchsurfing plugin was just an excuse to try it.
  • Play French Tarot: I have made a French Tarot game (a card game extremely popular in France), which is playable on the desktop with Wix, in text-mode with Primitivus, or in a browser with Libervia. It was a test in the idea to make a general card game XEP, any people interested in cards games for XMPP can contact me.

Games

Games are an important part of SàT. The following stuff are planned:

  • Generic card games engine: the Tarot Game was an implementation test of a card game. I'd like to take profit of this experience to make a generic XEP, wouldn't it be nice to play your favourite card game through your favourite XMPP client with your friends ? If you are too far to play on a real table of course :)
  • I'd like to do the same think for board games, and a Xiangqi game is planned (Chinese chess)
  • A quiz game is planned in the very short term, probably for next release
  • on the long term, everything can be made, even maybe real-time games

wix_tarot.pngprimitivus_tarot.png

Social contract

Maybe the most important point of all the project: a social contract has been made, and show the principles that SàT and people involved in it follow. It can be read here: http://www.libervia.org/contrat_social.html, but it's only available in French so far.

Licences

  • The SàT backend, Wix, Primitivus and jp are under GPL v3+
  • urwid-satex is under LGPL v3+
  • Libervia in under AGPL v3+

What's next ?

I have reached the point I wanted to build the foundations of the project, and make it credible. Now I need to stabilise everything, clean and re-factor several parts of the code, remove all the ugly Q&D hacks, finish half-made things, etc.
It's the perfect time to give a hand :)

But new features are planned on the short time, mainly picture sharing and quizz game.

You want to help ?

All the tools needed for contributions is here (wiki, bug tracker, mailing list, mercurial repository).
The project use many really interesting stuff like Twisted, Wokkel, Urwid, Pyjamas, etc. It can be a good way to discover them and improve you skill, and I hope give them some contributions.

The help I need:

  • developers ! The project begin to be too big for me alone. In particular, I need people to port SàT on other architectures (*BSD, Android, Mac OS X, Windows, etc.). Only portable technologies have been used, so it should ask a reasonable amount of work.
  • tester: SàT should work with most browsers, most platforms, most XMPP server, etc.
  • Graphic designers: many things to do: icons, design, etc. Somebody just started to help me on this point, that means that the aspect should improve quickly.
  • CSS designers, Libervia should offer different kind of presentations
  • translators
  • donations: if the project succeed, would you make some donation ? Should I take some time to have a donation system ?
  • ...

If you are interested, the first thing is to subscribe the mailing list: http://lists.goffi.org . I hope to have around 10 peoples to start to use it seriously.

Conclusion

This post is only an overview of Salut à Toi, and I think the potential is very big. I strongly believe in the community, and I hope I have interested you enough to have a hand :)

I finish with two videos showing the project (the third one is linked above), but they are in French. Any help to make subtitle for them welcome.

This video is under Creative Common BY-SA

This video is under Creative Common BY-SA

Z_God 07/06/2011, 11:57

I didn't read it very thorough, but isn't this very similar to Telepathy? Some of the examples (like a game) seem to be done with Telepathy as well.

Is this made on top of Telepathy?

Goffi 07/06/2011, 13:52

Hi,

Well I have thought about Telepathy when I started SàT, but I quickly discard it because I wanted to use Twisted (I like the architecture, and it's really powerful).

I haven't studied Telepathy in details, so maybe I'll say wrong things, but Telepathy is a framework to make communication software like XMPP client, while SàT *is* a XMPP client, and the backend and all the frontends make a whole unique client: that means, e.g., if you send a message in one frontend, it will appear in all others like if it was entered there. That also mean a common shared history.
The backend doesn't only manage all the XMPP stuff, it also manage stuff like progress bar or some UI parts.
I think that if you would want to put Telepathy in the SàT architecture, it would be instead of Twisted rather than instead of the backend.

In addition, you can use an other IPC than D-Bus with SàT, and it concentrate on XMPP.


author website

Z_God 10/06/2011, 01:16

Thank you for your response. I was indeed mainly wondering whether you had considered Telepathy :)

I'm also not very familiar with Telepathy, but I think it would be good to have a very thorough comparison of your framework and Telepathy, because currently at least on first sight they seem to have many similarities.

The bit that especially interested me was the command line example, that's something I would probably use a lot :)

Goffi 10/06/2011, 14:01

It's still unstable and early adoption, but don't hesitate to fill bugs reports or request features ( http://bugs.goffi.org ): it need more users to be more stable and usable anyway ;).


author website

(SàT 0.2) Salut à toi, le web !

goffi 31/05/2011, 20:40 GNU-Linux projet SàT jabber-xmpp Libre

Salut à vous,

ça faisait un moment que j'en parlais, voici la nouvelle interface web, qui se nomme Libervia, accompagnée de la sortie de la version 0.2 de SàT.
Je ne vais pas faire un trop long discours ici, mais juste évoquer les points les plus importants:

  • un service web va être associé à cette interface, et j'espère pouvoir le mettre sur pied très rapidement
  • les groupes vont être au centre de la gestion des droits, vous comprendrez en voyant la vidéo
  • oui parce qu'une nouvelle vidéo est disponible
  • et une version de démonstration aussi, elle est pas belle la vie ?
  • et le point le plus important: un contrat social à été rédigé, et indique les lignes suivies par tout le projet « Salut à Toi ». Vous pouvez le consulter ici: http://www.libervia.org/contrat_social.html, ou directement depuis Libervia
  • ça fait longtemps que je travaille seul sur ce projet, de manière assez confidentielle. Je voulais atteindre un certain point: pour apporter une crédibilité au projet, et pour en montrer les grandes lignes. Je considère ce point désormais atteint: même si le client n'est pas encore utilisable au quotidien, et qu'il manque certaines choses essentielles, je pense qu'il est maintenant véritablement lancé
  • Je vais avoir besoin d'aide !!! Les priorités actuelles sont la consolidation de l'existant, la traduction, la documentation. Si vous aimez Python (le projet est 100% en Python, y compris Libervia) ou même d'autres langages (on peut coder une interface dans n'importe quel langage qui peut parler à DBus), ou même si vous n'êtes pas développeur, je pense que ce projet est excitant, et touche à beaucoup de technologies et de domaines intéressants. N'hésitez pas à me contacter: goffi@goffi.org (courriel) ou goffi@jabber.fr (jid), et surtout à vous inscrire à une des 2 listes de diffusion, j'aimerais atteindre une dizaine d'inscriptions pour commencer à les utiliser.

Enfin, quelqu'un m'a récemment proposé de l'aide (Raiden) pour travailler l'aspect, et pour le prochain jeu (quizz) et à commencé des maquettes pour le site: c'est très bien parti :)

Pour tester la nouvelle interface: www.libervia.org mais je vous recommande très fortement de voir la vidéo avant
La nouvelle version de SàT se trouve sur le serveur ftp.

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_3.webm

Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_3.webm"

Cette vidéo est sous la licence Creative Common BY-SA

Présentation vidéo de Salut à Toi #2: jeu de tarot et client courriel

goffi 08/05/2011, 21:22 GNU-Linux projet SàT jabber-xmpp Libre

Une deuxième vidéo de présentation est disponible.
Cette fois on s'intéresse au jeu de tarot et à l'utilisation d'un client courriel avec SàT, expliquée dans un précédent billet.

Notez bien que les jeux vont être une composante importante dans SàT, et qu'il y aura aussi une volonté de standardisation: le jeu de tarot était un prototype dans le but de définir une XEP sur les jeux de cartes en général, n'hésitez pas à me contacter si vous êtes intéressés. Les cartes utilisées dans Wix viennent - comme indiqué dans le README - de Wikimedia Common, et j'ai fait un petit script pour les séparer, avis aux autres développeurs de jeux de tarot.

Tout n'est pas parfait: il y a quelques petits bugs, et tout n'est pas complètement fini; le jeu de tarot ne permet pour le moment de jouer qu'à 4 (les variantes sont prévues) et ne gère pas encore toutes les règles (pas de poignée par exemple), mais ça va s'améliorer avec le temps. Toute aide est la bienvenue :)

Ah et j'ai fait un lapsus, ce n'est pas SàT qui a toutes les qualités pour remplacer le courriel classique, mais XMPP bien sûr ;)

Encore une fois, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_2.webm

Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_2.webm"

Cette vidéo est sous la licence Creative Common BY-SA

RaiDen 09/05/2011, 11:09

Du beau travail Goffi!

Merci pour cette vidéo explicative, je vais de ce pas tester sat.


author website

Présentation vidéo de Salut à Toi

goffi 02/05/2011, 09:16 GNU-Linux projet SàT jabber-xmpp Libre

Salut à vous !

Comme ce n'est pas forcément évident d'installer pour tester, et que les concepts derrière « Salut à Toi » semblent encore flous pour pas mal de monde, j'ai décidé de faire une petite vidéo de présentation.

Cette vidéo explore vraiment la surface, d'autres devraient suivre (notamment assez rapidement pour montrer le jeu de Tarot et l'utilisation d'un client courriel avec SàT).

Quelques remarques:

  • Je n'ai pas parlé de deux idées importantes derrière SàT: il se veut aussi un outil de prototypage rapide (expérimenter rapidement des idées), et est destiné à être multi-plateforme (fonctionner sur plusieurs types de machines/environnement)
  • Il y a plusieurs « bogues » dans la vidéo (dont au moins 1 qui concerne SàT), je vous laisse les trouver dans les commentaires ;)
  • Ne prenez pas peur pour la console noire derrière et ce qui y est affiché, c'est juste des informations de débogage (bréf, surtout utiles pour le développement)
  • Désolé pour le vocabulaire parfois technique, n'hésitez pas à demander en commentaire pour expliquer au besoin
  • Je montre les interfaces console (en mode texte), mais d'autres interfaces graphiques sont également sur le feu (comme dit dans la vidéo d'ailleurs)

Pour lire la vidéo, vous devez utiliser un navigateur récent (Firefox 4 ou le dernier Chromium par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T.webm

Enfin, vous pouvez aussi utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T.webm"

Cette vidéo est sous la licence Creative Common BY-SA

RMLL: Avis aux équipes de dév XMPP

goffi 08/04/2011, 13:40 GNU-Linux projet SàT jabber-xmpp Libre

Petit message destiné aux équipes de dév de projets libres XMPP/Jabber: j'ai pris contact avec les organisateurs des Rencontres mondiales du logiciel libre (RMLL), qui auront lieu à Strasbourg du 9 au 14 juillet, pour tenir un stand commun XMPP, l'idée serait non seulement de présenter les différents projets, mais aussi d'avoir une occasion de rencontrer les autres membres de la communauté XMPP.

Pour le moment, l'auteur de Poezio et moi serons présents, n'hésitez pas à me contacter si ça vous intéresse. On peut également en discuter sur le salon jabberfr@chat.jabberfr.org

sonny 08/04/2011, 16:17

Salut
Je pense que ce serait une bonne idée d'en parler sur linuxfr et jabberfr.

Vanaryon 08/04/2011, 18:49

Julien, du projet Jappix, sera présent. Il donnera une conférence sur le projet.

Par contre je ne serai pas disponible normalement pour les RMLL.


author website

Goffi 08/04/2011, 18:55

sonny> En fait j'en ai déjà parlé sur jabberfr (forum et salon), mais j'attendais d'avoir un courriel de confirmation des organisateurs.

Vanaryon> ah dommage que tu ne sois pas là, mais c'est bien qu'il y ait quelqu'un de jappix. Julien peut également venir au stand avec nous ?


author website

Vanaryon 08/04/2011, 19:55

Oui, Julien devrait être avec vous sur le stand, je vais lui en parler.

Je crois qu'il aura déjà un stand, mais vous pouvez gérer pour vous mettre à côté ?


author website

Julien 17/04/2011, 16:32

Je serai en effet présent pour Jappix. Je viens avec Vidéoprojecteur, écran et affiches A3 pour le Stand, peut être une bannière Jappix si on a le temps de la faire. Je demande à l’orga de mutualiser le stand Jappix avec le stand XMPP du coup ;-)

Sinon, vous avez contacté la XSF pour qu’elle envoi Tshirts et tout le nécessaire ? Ça serait toujours un plus si on a ça ;-)


author website

Recevez et envoyez vos messages XMPP/Jabber avec votre lecteur de courriel grâce à Salut à Toi !

goffi 18/01/2011, 14:41 projet technique SàT jabber-xmpp Libre

Le courriel est un outil extrêmement pratique, mais qui souffre de plusieurs défauts majeurs. Par exemple, il est très facile de faire de l'usurpation d'identité (e-mail spoofing): juste en changeant les paramètres de n'importe quel lecteur courriel, vous pouvez faire croire que le courriel que vous avez envoyé vient d'une autre personne, une banque, ou autre. C'est une technique très utilisée par les pirates du dimanche pour avoir un mot de passe (en se faisant passer par exemple pour une banque et en disant que le mot de passe a été perdu) ou les spammeurs (une technique courante est d'utiliser votre propre adresse pour tenter de berner les filtres anti-spam).

XMPP/Jabber ne souffre pas de ce problème: les serveurs sont chargés de vérifier que l'émetteur d'un message est bien celui qu'il prétend être.

Or, XMPP définit un type de message, "normal", qui est très proche du courriel classique: il dispose d'un sujet et attend une réponse. Ces messages sont gérés par les clients classiques (c'est dans la norme de base), mais souvent de manière relativement basique.

Voulant gérer correctement ces messages avec SàT, je me suis dit qu'il me faudrait beaucoup trop de travail pour arriver au niveau de fonctionnalités d'un client courriel (ou MUA) correct. Aussi, je me suis dit « Pourquoi ne pas tout simplement réutiliser ces clients ? ».

Et c'est ainsi que j'ai développé un petit serveur courriel qui permet de déléguer la charge des messages de type "normal" à votre client courrier usuel (KMail, Mutt, Thunderbird, Roundcube ou que sais-je d'autre). L'idée est que la messagerie instantanée (messages de type "chat", "groupchat" - salon de discussion -, etc) reste affichée via les interfaces usuelles (Wix/Primitivus), et les messages normaux soient stockées par SàT et gérés par votre client courriel. C'est un pas vers le remplacement du courriel vers un protocole qui a de nombreux atouts.

Quelques raisons qui me font penser que XMPP/Jabber peut remplacer avantageusement (et pratiquement de manière transparente) le courriel:

  • les identifiants jabber (JID) sont similaires aux adresses courriel
  • si une passerelle courriel est disponible côté serveur, on peut utiliser aussi le réseau courriel normal, la boucle est bouclée :)
  • l'usurpation d'identité (spoofing) n'est (théoriquement) pas possible avec XMPP (les serveurs se chargent de vérifier ça)
  • Jabber n'est (pour le moment) pas touché par les messages indésirables autant que le réseau de courriels traditionnel
  • les serveurs XMPP sont souvent plus stricts à l'inscription, et il est plus difficile d'envoyer un message anonymement, pas de relai ouvert: une bonne protection contre le pourriel
  • vous pouvez configurer un compte XMPP pour ne recevoir des messages que depuis quelqu'un de connu (dans votre liste de contacts - roster list- )
  • les connections entre les serveurs Jabber sont chiffrées
  • Toutes les fonctionnalités du courriel (accusé de réception, message HTML, etc) sont soit déjà disponibles sur XMPP, soit peuvent l'être avec une extension
  • ...

De plus, il me semble peu probable qu'une adresse jabber ( ex.: errico@caserte.it ) et une adresse courriel similaire appartiennent à 2 personnes différentes. Il me semble tout à fait possible par la suite que SàT envoie automatiquement le message à la bonne adresse: d'abord tester si l'adresse XMPP existe, et dans le cas contraire envoyer via une passerelle courriel. Quitte à faire une petite bidouille syntaxique pour spécifier si on veut envoyer à une adresse Jabber ou à un serveur de courriel. L'avantage le plus évident d'une adresse courriel est sont côté standard: tout le monde ou presque en a une. Avec XMPP et ses passerelles, la transition entre messagerie courriel et Jabber est possible et quasi-transparente.

Les considérations techniques maintenant

Les serveurs utilisés sont IMAP v4 et SMTP: ce sont des protocoles que pratiquement tous les lecteurs de courriels connaissent. IMAP a l'avantage de permettre une synchronisation avec SàT (y compris l'état du message: est-ce qu-il est lu ? Est-ce qu'on y a répondu ?), et permet d'envoyer des notifications en temps réel de l'arrivée de nouveaux messages. SMTP est utilisé pour l'envoi de messages, c'est tout simplement le protocole le plus utilisé, et ça fonctionne bien. Les identifiants et mots de passes utilisés sont ceux du profil SàT à utiliser (identifiant: nom du profil, mot de passe: mot de passe du compte jabber). Les ports par défaut sont le port 10143 pour IMAP, et 10125 pour SMTP, j'ai pris soin de prendre des ports utilisables sans les droits root, et qui n'ont pas d'utilisation connue.

Les messages sont sauvés dans une boite de type Maildir , idéal pour l'archivage et l'utilisation avec IMAP. De plus, de très nombreux outils existent pour faire à peu près ce que vous voulez avec ces messages. La boîte se trouve dans votre répertoire SàT personnel: ~/.sat/[nom_du_profil]/Maildir

Pourquoi faire ça côté client (SàT) et non côté serveur XMPP ? Déjà au niveau sécurité c'est clairement un plus: le serveur IMAP est local, pas besoin d'ouvrir un nouveau port et donc une brèche éventuelle sur un serveur public plus sujet aux attaques, et une simple règle iptable (pare-feu) interdira les connexions en dehors de votre machine. Ensuite, il faudrait élaborer une XEP, et attendre qu'elle soit implémentée et répandue dans les serveurs. Et puis, j'ai pu faire ça rapidement (merci Twisted), et SàT permet de choisir d'utiliser ou pas cette fonctionnalité (grâce aux extensions), pourquoi s'en priver ? Un des buts de SàT est justement le prototypage rapide d'idées de ce genre...

L'installation

Si vous voulez essayer ça, installez la dernière version de développement, les détails sont sur le wiki.
Sur une *buntu, vous pouvez faire (en console):
sudo apt-get install python-pip python-dev mercurial
sudo pip install "hg+http://repos.goffi.org/sat/"

Évidemment, tout ceci est en développement: il n'est pas encore possible de créer un dossier avec IMAP par exemple, et y'a des tas de petites bricoles du genre qui vont s'améliorer avec le temps. Mais ça permet déjà de se donner une idée.

PS: petite précision: j'utilise parfois XMPP, parfois Jabber. XMPP est le nom du protocole utilisé par SàT (ce qui lui permet de communiquer avec d'autres logiciels similaires), et Jabber est le nom du réseau global qui utilise ce protocole.

xma 20/01/2011, 22:38

Salut,

je viens de tester et je pense ne pas avoir tout compris. J'ai bien tout suivi, fait le sat, crée le profil mais rien ne se passe. Mon compte reste desesperement a 'offline' alors même que les informations sont correctes.

Quelle est l'astuce ?

Goffi 21/01/2011, 00:17

Tu utilises quel frontend ? Primitivus ou Wix ?
Essaye de cliquer explicitement sur « connect » si tu ne l'as pas déjà fait.
As tu quelque chose de suspect dans ~/.sat/sat.log ?


author website

xma 22/01/2011, 23:39

Salut

merci pour l'astuce du fichier de log que je n'avais pas trouvé...

C'est tombé en marche après bidouille immonde dans le /etc/hosts

Il faut que je regarde ça de plus près.

Je vais pouvoir tester un peu plus maintenant car l'idée du projet me séduit.

xma 22/01/2011, 23:51

J'ai parlé un peu vite. La connexion s'effectue mais point de message dans le répertoire mentionné probablement dû à cette erreur:

2011-01-22 23:49:12+0100 [XmlStream,client] Unhandled Error
Traceback (most recent call last):
File "/builddir/build/BUILD/Python-2.6.4/Modules/pyexpat.c", line 656, in EndElement

File "/usr/lib/python2.6/site-packages/twisted/words/xish/domish.py", line 797, in _onEndElement
self.ElementEvent(self.currElem)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/xmlstream.py", line 107, in onElement
self.dispatch(element)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 317, in dispatch
callbacklist.callback(obj)
--- <exception caught here> ---
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 107, in callback
methodwrapper(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 27, in __call__
self.method(*nargs, **nkwargs)
File "/usr/lib/python2.6/site-packages/wokkel-0.6.3-py2.6.egg/wokkel/xmppim.py", line 724, in _onMessage
self.onMessage(message)
File "/usr/lib/python2.6/site-packages/sat/sat.tac", line 130, in onMessage
if not self.host.trigger.point("MessageReceived",message, profile=self.parent.profile):
File "/usr/lib/python2.6/site-packages/sat/tools/misc.py", line 63, in point
if not trigger(*args, **kwargs):
File "/usr/lib/python2.6/site-packages/sat/plugins/plugin_misc_maildir.py", line 88, in messageReceivedTrigger
if message['type'] != 'normal':
File "/usr/lib/python2.6/site-packages/twisted/words/xish/domish.py", line 426, in __getitem__
return self.attributes[self._dqa(key)]
exceptions.KeyError: 'type'

P.S: peut-être serait-il plus simple de communiquer via IM ou e-mail ;) Mon jid est mon mail.

xma 22/01/2011, 23:51

J'ai parlé un peu vite. La connexion s'effectue mais point de message dans le répertoire mentionné probablement dû à cette erreur:

2011-01-22 23:49:12+0100 [XmlStream,client] Unhandled Error
Traceback (most recent call last):
File "/builddir/build/BUILD/Python-2.6.4/Modules/pyexpat.c", line 656, in EndElement

File "/usr/lib/python2.6/site-packages/twisted/words/xish/domish.py", line 797, in _onEndElement
self.ElementEvent(self.currElem)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/xmlstream.py", line 107, in onElement
self.dispatch(element)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 317, in dispatch
callbacklist.callback(obj)
--- <exception caught here> ---
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 107, in callback
methodwrapper(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/twisted/words/xish/utility.py", line 27, in __call__
self.method(*nargs, **nkwargs)
File "/usr/lib/python2.6/site-packages/wokkel-0.6.3-py2.6.egg/wokkel/xmppim.py", line 724, in _onMessage
self.onMessage(message)
File "/usr/lib/python2.6/site-packages/sat/sat.tac", line 130, in onMessage
if not self.host.trigger.point("MessageReceived",message, profile=self.parent.profile):
File "/usr/lib/python2.6/site-packages/sat/tools/misc.py", line 63, in point
if not trigger(*args, **kwargs):
File "/usr/lib/python2.6/site-packages/sat/plugins/plugin_misc_maildir.py", line 88, in messageReceivedTrigger
if message['type'] != 'normal':
File "/usr/lib/python2.6/site-packages/twisted/words/xish/domish.py", line 426, in __getitem__
return self.attributes[self._dqa(key)]
exceptions.KeyError: 'type'

P.S: peut-être serait-il plus simple de communiquer via IM ou e-mail ;) Mon jid est mon mail.

xma 23/01/2011, 00:28

J'ai parlé un peu vite. La connexion s'effectue mais point de message dans le répertoire mentionné probablement dû à cette erreur

P.S: peut-être serait-il plus simple de communiquer via IM ou e-mail ;) Mon jid est mon mail.

Goffi 23/01/2011, 12:49

Ah oui un petit soucis en effet, mais facile à corriger

Je t'ajoute cette après midi et on voit ça dès que t'es dispo ;)


author website

Yag 24/01/2011, 22:27

Salut, existe il un salon jabber pour discuter autour de "salut a toi" ? Si non, ce serais pratique d'en créer un =) Je suis moi même en train d'étudier l'implémentation d'un lecteur de flux rss utilisant xmpp/pubsub et je me demandais s'il j'avais un avantage a le créer en tant qu'extension a salut a toi.

Goffi 24/01/2011, 23:49

@Yag: Salut, non pas encore, mais vu que il commence à y avoir plusieurs personnes qui me posent des questions, je pense en créer un rapidement (demain si je trouve le temps ;) ). Je pense pouvoir commencer aussi la mailing list, ça permettra de garder trace des questions/réponses.


author website

On s'organise un peu

goffi 12/01/2011, 19:14 GNU-Linux projet SàT jabber-xmpp Libre

Bonjour à tous,

après ce long silence, et une fin d'année très chargée (avec entre autres, le retour d'Australie), voici quelques nouvelles pour mes projets.

Les outils

J'attendais mon retour en France pour organiser un peu la gestion des projets, et ouvrir les dépôts au public, c'est désormais chose faite. J'ai passé pas mal de temps à tester et installer de nombreux outils, dont les liens suivent:

  • Un wiki est disponible (http://wiki.goffi.org), qui servira principalement à la documentation, autant pour l'utilisateur final que la documentation technique. Même si la documentation est son intérêt principal, tout sujet touchant de prêt ou de loin aux projets y auront leur place. Chacun peut y contribuer, et il est disponible pour le moment en français et en anglais.
  • Les dépôts Mercurial sont désormais publics et disponible à http://repos.goffi.org . Ceci devrait faciliter les contributions et le suivi des développements
  • Un bugtracker, et le plus connu en l'occurrence: Bugzilla est disponible à http://bugs.goffi.org . J'y attends aussi vos suggestions pour des fonctionnalités que vous aimeriez voir implémentées.
  • un serveur ftp public: vous trouverez la dernière version et toutes les précédentes sur ftp://ftp.goffi.org
  • des listes de diffusion (http://lists.goffi.org): aucune n'est créée pour le moment, mais l'infrastructure est en place pour créer une liste pour les développeurs et/ou utilisateurs si le besoin s'en fait sentir.

Les projets vont ainsi pouvoir s'ouvrir vraiment à contribution.

Les projets

Au niveau des projets en eux-mêmes, quelques nouveautés.

SàT

Salut à Toi dispose enfin d'un script d'installation, qui simplifie énormément la tache. Sous une Ubuntu ou dérivée par exemple, avec une installation fraîche de la dernière version stable, il suffit de faire:

sudo apt-get install python-pip python-dev
sudo pip install "ftp://ftp.goffi.org/sat/sat.tar.bz2"

Vous aurez plus de détails sur la page du wiki: http://wiki.goffi.org/wiki/Salut_à_Toi

D'autre part, les widgets pour Urwid (la bibliothèque qui permet de faire une interface pour un terminal) ont été mis dans un projet séparé sous LGPL à la demande du développeur principal d'Urwid. C'est ainsi que Urwid's SàT extensions suit sa propre voie (bien que toujours lié à SàT).
Enfin, la numérotation suit désormais un schéma standard; à savoir Version_Majeure.Version_Mineure.Incrément + une éventuelle lettre pour les versions particulières (D pour version de dév par exemple).

gcp

Pas de nouveauté de mon côté sur gcp, mais une très agréable surprise: j'ai reçu un mail d'un mainteneur Debian m'indiquant que mon projet était en voie d'intégration à cette magnifique distribution (cf le dépôt git). Ceci dit cela devrait prendre un peu de temps car il y a des vérifications à faire (en particulier au niveau de la licence) pour confirmer que ça correspond aux critères de Debian. Ça fait un petit quelque chose de voir mon premier projet (même si c'est un petit :) ) intégrer cette distribution majeure et collaborative, qui met l'accent sur les libertés des utilisateurs. Un grand merci à Thomas Preud'homme pour cela.
D'autre part, quelques patchs ont été fait pour l'occasion, avec en particulier une manpage (page de manuel Unix), que je n'ai malheureusement pas encore eu le temps d'intégrer, mais ça viendra.

urwid-satext

De la même manière que SàT, la nouvelle bibliothèque Urwid's SàT extensions est facile à installer. Les commandes sont similaires:

sudo apt-get install python-pip python-dev
sudo pip install "ftp://ftp.goffi.org/urwid-satext/urwid_satext.tar.bz2"


J'en ai profité pour mettre un petit exemple montrant comment afficher une boite de sélection de fichiers. D'autres suivront.

lm

List Movies lui n'a pas bougé du tout, si ce n'est qu'il a aussi profité de l'infrastructure mise en place. J'ai eu un patch il y a un moment que je n'ai même pas encore eu le temps de regarder, j'essaierai de trouver du temps à lui consacrer mais ce n'est vraiment pas évident.


La suite

Maintenant que la grosse et nécessaire étape de l'infrastructure est faite, le code de SàT lui même va pouvoir retrouver un peu plus d'attention. Il manque encore un système de tests, que je mettrai en place tôt ou tard.
Dans l'immédiat, j'ai quelques fonctionnalités en tête dont je parlerai j'espère très bientôt (nouvelle interface), et y'a pas mal de code a améliorer, en particulier au niveau de la copie. J'espère que les scripts d'installation et les outils mis en place permettront à un peu plus de monde d'essayer tout ça et de commencer à reporter les bogues.

gcp (Goffi's CoPier): un outil de copie de fichier à la cp

goffi 28/09/2010, 10:28 projet Libre

gcp: outil de copie à la cp

Bon, puisque je suis coincé à Broome depuis un moment (cf la note en bas de mon avant-dernier billet), j'ai avancé un petit outil de copie de fichier à la cp dont j'avais besoin. En gros c'est un cp amélioré (enfin, il ne fait pas encore tout ce que fait le respectable ancêtre) avec barre de progression, correction des noms de fichiers au besoin, sauvegarde de la liste des fichiers à copier, etc. Je vous laisse découvrir le README, et vous pouvez me contacter au besoin.

Comme je n'ai pas trop le temps pour faire une description détaillée, je mets un lien vers mon journal linuxfr où c'est un peu plus complet: https://linuxfr.org/~Goffi/30248.html

ça se passe ici: gcp (Goffi's cp)

MIS À JOUR: suite à quelques bugs, j'ai publié une version 0.1.1 qui corrige les problèmes suivants:

- syntaxe gcp FILE FILE_DEST maintenant gérée - erreurs affichées en fin de copie - mauvaises fermetures des fichiers/du journal en cas de fichier existant - erreur lors d'envoi du chemin source via dbus (via une deuxième instance de gcp)

jlaunay 28/09/2010, 21:53

J'utilise rsync pour avoir ces fonctionnalités (bar de progression, conserver les attributs etc...) et il semblerait que ça soit légèrement plus rapide et léger que gcp

$dd if=/dev/zero of=gigtest.file bs=1MB count=1000

jlaunay@arch-desktop:~/gcp (36 fichiers 859Mb) [21:26:13]
(jobs:0) :-)
$time ./gcp gigtest.file /mnt/sdb/
Copie de 953.67 Mio 100% |#########################################################################################################| 90.12 M/s Time: 00:00:11

real 0m11.172s
user 0m3.286s
sys 0m2.483s

$/usr/bin/top -b -n 1 | grep gcp | awk '{print $9}'
53

jlaunay@arch-desktop:~/gcp (36 fichiers 859Mb) [21:26:45]
(jobs:0) :-)
$time rsync -P --no-whole-file --inplace gigtest.file /mnt/sdb/
gigtest.file
1000000000 100% 95.51MB/s 0:00:09 (xfer#1, to-check=0/1)

sent 1000122145 bytes received 31 bytes 95249731.05 bytes/sec
total size is 1000000000 speedup is 1.00

real 0m10.048s
user 0m6.670s
sys 0m3.560s

$/usr/bin/top -b -n 1 | grep rsync | awk '{print $9}'
48


author website

Goffi 01/10/2010, 05:44

jlaunay> oui probablement, surtout que gcp est en python, mais ca se tient a peu pres, et il y a des fonctionnalites que je voulais et qui m'ont pousse a coder cet outil (correction du nom pour FAT et sauvegarde des sources). Dans les rapides tests que j'ai fait, ca avait l'air de se tenir avec cp (un poil plus lent,mais rien de catastrophique.

nox> ah cool, merci :)


author website

alpha_one_x86 03/10/2010, 11:30

Bonjour, je suis le développeur d'ultracopier.
J'aimerai que tu me contacte pour parler d'un rapprochement de nos projets et d'un potentiel partenariat.
Msn/icq/gtalk, ... trouvable sur le site.


author website

PPmarcel 09/10/2010, 14:13

Bonjour Goffi.

Ce projet est une bonne idée je trouve. Tu fais la différence à quelques autre projets grâce à la gestion d'une queue de copie unique.

Je me demandais si il serait possible que qcp puisse continuer un transfert d'un fichier incomplet? Par exemple, au lieu de recommencer la copie d'un transfert de 4 Go qui a été interrompu à 95%, que l'on puisse le reprendre là où le transfert s'est arrêté?


author website

al1.kd 11/10/2010, 12:36

./gcp:232: Warning: 'with' will become a reserved keyword in Python 2.6
File "./gcp", line 232
with open("/proc/mounts",'rb') as mounts:
^
SyntaxError: invalid syntax

Que faire ?

Goffi 15/10/2010, 07:25

Désolé pour les réponses tardives, je suis sur les routes et j'ai un accès assez difficile au net en ce moment.

PPmarcel> Pourquoi pas, c'est une idée. Mais encore une fois gcp n'est pas mon projet principale (c'est mon client XMPP qui me prend le plus de temps), aussi c'est envisageable, mais à plus ou moins long terme.

al1.kd> Tu as probablement une version trop vieille de python (sûrement la 2.5). Tu peux soit installer une version plus récente (2.6 ou la 2.7 qui est sortie plus récemment), soit ajouter cette ligne au début du script (au niveau où il y a tous les "import"):

from __future__ import with_statement

Ça devrait ensuite fonctionner.


author website

fab31 18/10/2010, 18:08

Hello Goffi!
Quoi de neuf ? :)

Tu n'as pas fait pypi et c'est mal !

http://pypi.python.org/pypi?:action...

Sinon pour le future, tu peux le mettre, ça ne casse pas même si tu es sur une version récente de python...

En tt cas, content de voir que tu t'éclattes & que tu es actif :)

++ fab.

Goffi 25/10/2010, 08:21

Oh fab, content de voir que tu passes par là (évidemment sur un billlet sur un script python ;) ). Oui je sais, j'ai prévu de packager tout ça à mon retour en France (idem pour lm, autre script pour afficher les films).

++


author website

mardek 18/01/2011, 17:46

Man !! Un gros merci pour ton outils. Fini les alias pouri de cp=rsync. Encore merci

mardek 18/01/2011, 17:46

Man !! Un gros merci pour ton outils. Fini les alias pouri de cp=rsync. Encore merci

Goffi 18/01/2011, 20:45

@mardek: c'est cool si ça sert :). Par contre va peut être falloir attendre que ça gagne un peu en stabilité pour l'utiliser comme remplaçant définitif ;). Le projet est jeune, et j'ai peu de temps à y consacrer...


author website