rss

Avancement de CirC (ou devrais-je dire Monologue ?)

Category : C#, Circ

Et voilà des nouvelles du front. J’ai eu pas mal de désagrément au cours de cette dernière semaine en essayant de tout faire marcher. Le principal problème auquel je me suis heurté c’est des problèmes d’identification aux serveurs IRC.

Un peu de background. Pour se connecter à un serveur IRC il y’a 4 étapes. D’abord on se connecte au serveur par l’entremise d’un simple socket (comme toute connection finalement) puis on envoie trois messages : un message PASS (facultatif) qui contient un mot de passe de connection, un message NICK qui contient le pseudonyme de l’utilsateur (et qui sert ensuite au serveur à nous rerouter des messages) et enfin un message USER qui contient des infos utiles (le nom réel entre autres).

Problème les 3/4 du temps le serveur IRC d’Epiknet m’envoyais un foutu message comme quoi il n’arrivait pas à m’identifier (erreur 451). J’ai eu beau tout essayé (et là vous pouvez me croire j’ai essayé un sacré paquet de possibilité : trafiquage du buffer, utilisation de thread complice, des appels à Sleep() etc…) pas moyen de me connecter correctement (autant dire que j’étais content quand rarement ça marchait). C’est pourquoi, finalement exaspéré, j’ai décidé de me la jouer brute force et de bombarder le serveur de ces trois messages (PASS, NICK et USER) jusqu’à ce qu’il m’accepte ce qui semble fonctionner pour l’instant (on croise les doigts). Histoire de quand même montré l’avancement j’ai fait un petit screen de l’interface temporaire (sert uniquement à se connecter à Epiknet et à parler sur le chan #sdz d’autant que rien n’est parsé :p) :

Et comme le titre de la fenêtre le laisse supposé je me tâte pour changer le nom de mon client pour Monologue (référence au monologue qui est un type de discours, j’ai pas dit que vous étiez bête hein :p ). Petite histoire en fait à la base du changement de nom. Je cherchais à avoir un VCS (Version Control System) afin de garder une trace de tous mes changements et comme Mono.Xna est récemment passé sur Google Code Hosting et que ma foi ça semblait bien je me suis dit que j’allais y ouvrir un compte. Problème : ce scregneugneu de site trouve le moyen de vérifier sur SourceForge si le projet que vous êtes entrain d’enregistrer n’existe déjà pas et il bloque l’inscription le cas échéant, et devinez quoi ? Le nom Circ est déjà pris sur SourceForge. En fait le truc qui m’a cassé c’est que ce projet n’a absolument rien produit (code, page web, nada) et qu’il est inactif depuis 2004. Donc bon bluestorm m’a (gentiment) suggéré ce nom de Monologue qui est déjà utilisé par le Planet Mono mais qui finalement me plaît pas mal.

PS : finalement j’ai pris Bazaar comme VCS qui a le mérite d’être décentralisé et donc de ne nécessiter aucun serveur d’appoint.

EDIT: Bon décidant que l’UI était vraiment … pas top :p j’ai refait une petite version à checker ici : http://netherilshade.free.fr/Capture-7.png .
Prochaine étape : updater correctement la liste des personnes présente dans le chan Ca c’est bon, Youpi

Toying with Dia: what CirC will look like

Category : C#, Circ, Design, SharpWidgets

As I was a little bored today I decided to draw on Dia the sketch I had already made on a paper that describes the architecture of CirC and how everything fit together, so here it is (click on it to see it fullsize) :

Circ

Quick note

Category : C#, Circ, Mono.Xna, Quick note, School

  • Mono.Xna a bien avancé, dernièrement Rob et duff ont travaillé sur les classes Texture2D et SpriteBatch qui devraient nous permettre d’atteindre notre deuxième milestone à savoir jouer au jeu de Pong de Rob :) . Les bibliothèques SDL.NET et Tao ont été également mise à jour mais il semblerait qu’elle pose problème sous Linux (faut que je vois si ça vient de Mono ou de Tao).
  • Demain c’est la première épreuve du bac blanc qui va durer jusqu’à mercredi et c’est… philosophie (sic).
  • Circ a avancé, j’arrive maintenant à me connecter à un serveur IRC :D . D’ailleurs je prévois de renommer la bibliothèque IRC qui va avec Circ sous le doux nom de CIL (Circ’s IRC library) qui est aussi le nom officiel du langage IL utilisé par Mono/.NET (encore une dédicasse aux anti-Monoïstes de service je suppose ;) ).

Edit: Par hasard je suis tombé sur la page du framework Telepathy que je connaissais déjà de nom mais que je n’avais jamais vraiment étudié à fond. Cependant j’ai trouvé que le projet Tapioca fournissait des bindings C# pour Telepathy qui propose entre autre un accès IRC. Ce qui me ramène à l’idée que même la bibliothèque IRC que Circ utilisera devrait être interchangable (mais normalement si mon PAC est bien fait il n’y aura pas de problème ;) )

Nouveau projet : Circ

Category : C#, Circ, Linux

Après avoir entendu tout le monde sur #sdz parler de choses tel que des bots, clients, serveurs… IRC je me suis dit pourquoi pas en fait ? Le principal client sous Linux/Gnome reste X-Chat (ou irssi pour les fana de la ligne de commande). La plupart du temps il me convient bien mais j’avoue que certaine chose me chagrine et je trouve intéressant de m’exercer sur un projet de ce type puisque pour l’instant mon action c’est plutôt limité à des bibliothèques sous Mono.

Donc voilà je vais essayer de me faire un petit client IRC que j’appellerais Circ (acronyme de « C# is really cool », petite dédicasse aux gens de #sdz ;) ) et qui grosso modo obéit à ce cahier des charges :

  • Le client devra suivre le modèle PAC et être construit suivant de bonne règle de design.
  • Il devra être facilement extensible à l’aide de plugin simple à concevoir et pouvant être coder dans n’importe qu’elle langage CLI. A une certaine extension toute les fonctionnalitées devraient être implémentées sous forme de plugin.
  • Il devra être hautement configurable.
  • Il ne devra pas être gourmand en mémoire et relativement performant en général.
  • Un des plugins devra fournir une interface D-Bus pour manipuler Circ.
  • Il faudrait prévoir une suite de plugin interargissant avec d’autres logiciels compatible D-Bus comme NetworkManager et Banshee par exemple.

Pour l’instant j’ai écrit la partie Plugin et gestion de ceux ci et là je vais m’atteler a modifié une bibliothèque IRC (SmartIRC4NET) pour mes besoins. Ensuite viendra le coeur du programme PAC et un backend GTK# et éventuellement à ce moment là une première release 0.1