Shell: pipe you commands out via XMPP with SàT

goffi 07/10/2011, 13:46 projet GNU-Linux technique jabber-xmpp-en Libre SàT

G'day all,

just a short notice to show a feature i'm currently implementing, the hability to pipe out a command line stream via XMMP, using jp, the command line frontend of the "Salut à Toi" project.

The syntax is quite easy: imagine you have 2 people Pierre and Louise talking together. Louise is talking about the last Blender Foundation movie, Sintel, and Pierre is interested, and want to see the trailer Louise is talking about. To do that, he just has to enter the following command:

jp --pipe-in louise | mplayer -


Which mean "I'm waiting for an incoming stream from louise". Louise correspond to the name Pierre gave to its contact louise@example.org, jp do the association.
He could also have used the full jid instead: louise@example.org/Noumea .

In the other side, Louise can pipe out the trailer to Pierre with the following command:

cat sintel_trailer-480p.ogv | jp --pipe-out pierre

Quite easy isn't it ? You don't have to worry about the IP address of your contact, just to know its jid, or to have it in your roster with an easy-to remember name.

Note that jp was already allowing you to pipe out command line result as a XMPP message (to do some ascii art for example ;) ).

If you want to copy a file, the syntax is quite similar:

jp -wg louise

for reception and:

jp -g sintel_trailer-480p.ogv pierre

to send the file. The -g flag means you want to see the progress bar.

The following short video show this in action. It's in french, but you don't really need the comments to understand it.


To play the video, you nead a recent browser (e.g. Firefox 4+ or the last Chromium).
You can also use VLC (>=1.1 only), by using this url as a flux: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_4_copie_et_pipe.webm

Last but not least, you can use mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_4_copie_et_pipe.webm"

This video is licensed under Creative Common BY-SA

For the technical side, it's just a modified XEP-0096 . It would be intersting to propose this as a standard to the XSF, but maybe by using jingle transfer instead.

Please not that all of this is really experimental.

I plan to release the next version of "Salut à Toi" soon, stay connected :)

Ligne de commande: envoyez vos tubes (pipes) par XMPP (avec vidéo)

goffi 07/10/2011, 11:38 jabber-xmpp GNU-Linux technique projet Libre planet-libre SàT

Salut à vous,
une nouvelle vidéo, très courte, pour vous montrer 2 choses:
  • la copie (transfert de fichier pour faire plaisir à Neustradamus) qui a été améliorée, vous avez ici un exemple avec jp - le frontal en ligne de commande -. J'avais déjà fait une démo dans la première vidéo, mais cette fois la syntaxe est simplifiée (plus besoin de fournir le jid complet), et sous le capot les protocoles ont été améliorés (gestion de in-band bystreams et gestion du proxy dans Socks5), bien que pas tout à fait fini.
  • j'en ai profité pour ajouter une nouvelle fonctionnalité qui devrait plaire aux amoureux de la ligne de commande: la possibilité d'envoyer la sortie d'un tube (pipe) par XMPP.
    La vidéo montre ça en action en streamant une vidéo par XMPP.

    C'est un test que j'ai fait, et c'est juste une légère modification de la XEP-0096. Ça peut être intéressant d'essayer de standardiser ça, peut être en passant par jingle.
Tout ça est encore très expérimental - et en cours de finition -, tout retour est le bienvenu.

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_4_copie_et_pipe.webm

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

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

Comment changer la disposition du clavier (keyboard layout) sous Android

goffi 31/08/2011, 16:34 technique

Bonjour à tous,
j'ai depuis peu une tablette Android, dont j'aimerais me servir comme portable en y ajoutant clavier/souris, et me permettre ainsi de travailler sur mes projets quand je bouge.

Android n'étant pas vraiment prévu pour ça à la base, il faut bidouiller pas mal (rooter la tablette, installer un GNU/Linux dans un chroot, ou en natif si possible, ou au minimum cross-compiler des outils comme vim). Un des mes problèmes a été que la disposition clavier par défaut est QWERTY, alors que mon clavier, acheté en France, est AZERTY. Ne connaissant pas (encore) Android, j'ai du chercher un peu, et j'ai finalement trouvé une solution qui fonctionne bien, donc voici un petit tuto qui peut éventuellement servir à d'autres (sous CC By-SA si vous voulez vous en servir), j'ai fait le même en anglais sur le site tabletroms: http://tabletroms.com/forums/showwiki.php?title=NotionInkAdamFAQ:Howto-change-keyboard-layout

Pour changer la disposition clavier, il vous faut (à adapter selon votre matériel): votre tablette sous Android (testé sous une ROM derivée d'Honeycomb - Adamcomb v0.3 - sur une tablette Adam de Notion Ink) qui doit être rootée, une émulateur de terminal (on en trouve un libre sur l'Android Market, dommage qu'il ne soit pas (encore) sur le dépôt libre F-Droid, et un moyen de copier un fichier sur une machine GNU/Linux (ici une carte micro SD, mais vous pouvez faire l'édition directement depuis l'émulateur de terminal, c'est juste un peu plus galère).
Ici la carte micro SD est montée sur /mnt/external_sd.
Les étapes à faire:
  • lancer l'émulateur de terminal, passez à l'utilisateur root, puis copiez les fichier de /system/usr/keylayout et /system/usr/keychars sur votre carte:

    su
    cp -r /system/usr/key* /mnt/external_sd/
  • démontez votre carte, et montez là sur votre GNU/Linux. Nous allons maintenant déterminer l'identifiant de votre clavier usb, aussi gardez-le près de vous mais ne le branchez pas. Commencez par sauver les informations des périphériques déjà présents:

    lsusb > /tmp/1
  • maintenant branchez votre clavier, et faire la même chose, le diff vous donne les informations qui nous intéressent:

    lsusb > /tmp/2
    diff /tmp/1 /tmp/2
  • Par exemple pour mon clavier, ça donne:

    > Bus 002 Device 005: ID 04d9:1503 Holtek Semiconductor, Inc. Shortboard Lefty
    La partie importante est 04d9:1503 (04d9 est l'id du vendeur, 1503 celle du produit)
  • maintenant branchez votre clavier, et faire la même chose, le diff vous donne les informations qui nous intéressent:

    lsusb > /tmp/2
    diff /tmp/1 /tmp/2
  • Sur votre carte que nous avons montée, utilisez les fichiers keylayout/Genric.kl et keychars/Generic.kcm comme références, et copiez les dans des fichier sous la forme Vendor_xxxx_Product_xxxx.ext, par exemple chez moi ça donne:

    cp keylayout/Genric.kl Vendor_04d9_Product_1503.kl
    cp keylayout/Genric.kcm Vendor_04d9_Product_1503.kcm
    Éditez ces fichiers (avec vim, kate, gedit ou ce que vous voulez), leur contenu est facile à comprendre. Vérifiez bien que les noms (label) du fichier characters map (.kcm) correspondent à ceux du fichier layout (.kl).
  • Une fois que vous avez édité et sauvé les fichiers, démontez votre carte et remontez la sur votre appareil sous Android. Retournez sur votre émulateur de terminal, et copiez les fichiers (toujours en avec root)

    cp /mnt/external_sd/Vendor_xxxx_Product_xxxx.kl /system/usr/keylayout
    cp /mnt/external_sd/Vendor_xxxx_Product_xxxx.kcm /system/usr/keychars
    chmod 644 /system/usr/keylayout/Vendor*kl
    chmod 644 /system/usr/keychars/Vendor*kcm
  • C'est tout ! Vous n'avez plus qu'à brancher votre clavier, pas besoin de redémarrer.
Tout ceci a été testé comme indiqué plus haut sur le Adam, il est possible que cela ne fonctionne pas, ou différemment sur un autre appareil. Notez aussi que les manipulations sous root peuvent être dangereuses, et que vous pouvez facilement rendre votre appareil inutilisable si vous ne savez pas ce que vous faites, aussi allez y à vos risques et périls.

sonny 31/08/2011, 19:22

Ah si tu es en Qwerty ça peut t’intéresser: http://kazhack.org/lafayette/
'Une adaptation du Qwerty-US pour les francophones'

Goffi 31/08/2011, 19:26

Non en fait mon problème est plutôt que le clavier est AZERTY, et la disposition par défaut d'Android est QWERTY, mais merci pour le lien quand même, ça peut toujours servir.


author website

Proxy 25/01/2012, 15:33

Un développeur à trouvé la solution et propose une petite application pour pouvoir passer son clavier QWERTY en AZERTY sans être rooté.

Je vous met l'application en lien : http://thibault-martin.fr/2012/01/2...

En espérant que ça puisse aider les moins bidouilleurs ; )


author website

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

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

Un petit script de transcodage

goffi 11/10/2008, 17:20 GNU-Linux projet ancien site technique

Un petit post pour dire que j'ai retrouvé un script que j'avais écrit il y a deux ans pour transcoder une vidéo utilisant un codec non lisible par VLC dans un fichier mkv. Vous pouvez le télécharger à ce lien: http://www.goffi.org/public/telecha.... Ca peut toujours servir...

Au passage j'ai retrouvé d'autres projets entamés mais non fini, dont je m'occuperai peut être à moyen terme. Pour le moment j'ai un projet qui me tient à coeur depuis un moment que je me suis décidé à commencer, j'en parlerai plus précisément si je ne l'abandonne pas avant qu'il soit utilisable :). Je suis désolé pour ceux qui utilisaient le driver SP2500, l'API du kernel change en permanence et je n'ai pas le temps ni le goût de le maintenir. Si un jour je n'ai que ça à faire je le recoderai en userspace, mais je ne promets rien et de toute manière ça ne sera pas de sitôt.