MP-17 ce soir

Ce soir, je donnerai une présentation éclair à Montréal-Python 17. Le sujet sera mon projet de fin de baccalauréat : un générateur de listes d’écoute en Python.

Je metterai plus d’informations concernant le sujet sur mon blogue lorsque je serai prêt à en fournir. Le code source ne devrait pas tarder à arriver non plus.

Si vous avez des questions, je vous invite à assister à la rencontre de ce soir!

Rétrospection de 2009.

Comme à chaque année, je dresse un bilan des 12 mois passés et fait une esquisse des 12 mois à venir. Contrairement à l’année dernière, je n’ai pas beaucoup de choses à dire sur mes activités parascolaires en relation avec mon domaine d’études puisque j’ai agis plus solitairement. D’où cette façon de me décrire : “indépendant collaboratif”.

Sur le plan scolaire et professionnel, j’ai complété deux sessions de cours et effectué un stage chez IBM Canada à Bromont. Le voyagement nécessaire durant l’été fut relativement pénible et m’enlevait le goût de faire autre chose après ma journée de travail. D’autant plus que je passais déjà mes journées devant un ordinateur. Par contre, durant ma dernière session, j’avais a créer un projet dans le cadre d’un cours. Projet dont j’ai déjà fait référence parce que les sources sont disponibles et je souhaite voir une certaine continuité. L’apprentissage de XMPP a été agréable et je souhaiterais continuer à l’utiliser en 2010. J’ai également fait hgstatusnet.

Si je compare ma liste de buts à atteindre de l’an dernier, je constate — malheureusement pour la liste, mais pas pour moi — que beaucoup restent à atteindre. Mon intérêt pour certains buts a bifurqué ou s’est concrétisé en quelque chose d’autre. Par exemple, l’application django n’a jamais vu le jour, mais un importateur wordpress (version 2.7) est disponible au sein de djavel. Je souhaite peut-être migrer mon blogue alternatif vers mon carnet de notes et changer la plateforme du carnet de notes qui sera alors peut-être dirigée par django.

La migration complète de WordPress à une autre plateforme se veut fastidieuse et garder un oeil sur celui-ci me permet de maintenir un certain niveau de connaissances de la plateforme. Ne me méprenez pas, je ne suis pas toujours en accord avec certains détails d’implémentation. Mais ce n’est pas mon projet.

Pour ce qui est de l’année à venir, voici ce que j’envisage sur le plan professionnel :

  • lancer un autre projet (dans le cadre d’un autre cours);
  • apprendre et travailler un peu plus avec un langage fonctionnel (si j’avais à choisir maintenant, ce serait haskell);
  • mettre à jour mon importateur WordPress pour la version 2.9;
  • divers petits projets;
  • profit.

Sur le plan scolaire, je planifie :

  • terminer mon baccalauréat cet été;
  • donner une ou même plusieurs présentations sur divers sujets;
  • rechercher de l’information concernant les maîtrises et prendre une décision quant à savoir si je m’y lance ou si je vais sur le marcher du travail;
  • profiter au maximum du peu de temps qu’il reste à mon bacc.

Et finalement, sur le plan personnel, j’ose espérer faire :

  • de l’exercice en masse;
  • améliorer ma technique en photographie;
  • recommencer à jouer d’un instrument de musique;
  • être une meilleure personne, ami, aidant, amant (mais ça, tout le monde le souhaite).

Et compte tenu du nombre de billets écrits sur ce blogue en 2009 (10), j’espère trouver l’inspiration nécessaire pour raviver cet espace personnel que je me suis créé.

Presenting HgStatusNet

This semester, I had to do a project totalizing about 300 man-hours. I chose to do VeHO, a distribution platform including a server and a client. The project was under revision control (mercurial, for that matter) and every part of the platform in its own sub-repository. Anyway, to help me keep track of what was being pushed to the main repository, I coded a little mercurial hook in python that, every time someone pushed a revision, it updated a StatusNet account. I present you hgstatusnet.

The configuration is pretty straight forward and can be set up to update a private account on your private StatusNet instance. In your .hgrc file, just add this section:

[statusnet]
username = hgstatusnet
password = secret
server = http://localhost
path = /statusnet
;preprend =

The server and path settings are used to locate the StatusNet instance. In my example, my instance lives at http://localhost/statusnet. I’m also updating hgstatusnet’s account. If I wanted, I could preprend a little bit of text to every message to differentiate repositories, for example.

You also need to configure the hook, like so:

[hooks]
incoming.hgstatusnet = python:hgstatusnet.statusnetutils.post_statusnet_hook

Be sure that the hgstatusnet module is in your python path. Otherwise, it won’t work. Also, be aware that this is an early version and I may want/need to implement more features in the future and that this code comes without warranty.

update (jan. 5th):
If you have any questions, comments or just want to share your experience, please don’t hesitate.

VeHO – Project de session

Cette session-ci, j’ai pris un cours où je dois réaliser un projet. Vallant 6 crédits, chaque étudiant se doit d’investir 300 heures d’ici la fin de la session d’automne afin de réaliser ce qui correspond à la description et au mandat que nous avons remis il y a presque 2 semaines. Trois cents heures, c’est beaucoup. Je m’attends à ce que l’apprentissage de certaines technologies ne nuise pas à l’application des méthodologies apprises tout au long de mon bacc. J’ai donc décidé de partager mon expérience au fur et à mesure que le projet avance sur mon blogue afin de vous connaître et suivre, mais aussi de critiquer le processus de développement du projet.

Je pense que c’est une bonne opportunité d’en apprendre en dehors de mes recherches personnelles et du travail en équipe, mais aussi de clarifier mes idées en les exposants.

Qu’est-ce que VeHO?

VeHO sera, si tout se déroule comme prévu, une plateforme de vente et de distribution électronique. Oui, une autre. Elle s’apparente aux Steam, Impulse, et autres. Sauf qu’elle sera moins complète/complexe. Il n’y aura pas de système de protection (DRM, ou autre), pas de système d’intégration des jeux grâce à une API, etc. Après tout, nous ne sommes que 2 et nous n’avons pas vraiment d’application concrète pour pouvoir tester tout ça. Mais le système devra être assez souple pour permettre et faciliter la mise en place de fonctionalités semblables.

VeHO sera d’abord et avant tout un site Web où les usagers pourront effectuer leurs achats. Nous ne souhaitons pas réinventer les systèmes e-commerce, alors nous allons nous baser sur un déjà existant. Chaque usager, qu’il soit publieur ou acheteur, pourra donc se utiliser complètement le catalogue à partir d’un navigateur Web. Aussi, les publieurs d’applications aura la possibilité de consulter les statistiques de ventes selon plusieurs critères.

Mais VeHO est aussi une application cliente multi-plateforme. Elle servira d’interface avec le site Web, mais permettra aussi aux usagers de communiquer entre eux. Le but étant de joindre communauté et magasin en ligne. Nous en sommes toujours à déterminer si l’application supportera les tranfers pas le biais d’un réseau P2P ou si nous nous limiterons aux transfers de fichiers plus classiques (c-à-d server->client).

Et pis ma job dans tout ça?

J’agis comme chef d’équipe et de coordonnateur. Certes, c’est pas très difficile de coordonner une équipe de deux personnes, moi inclus, mais c’est une autre chose de s’assurer que les fonctionalités sont prêtes en temps et que notre plan de projet est respecté et sera respectable selon les délais déjà définis.

De plus, depuis le début, j’ai consacré mon temps à l’exploration de technologies possibles utilisables pour le projet. L’objectif est d’utiliser quelque chose de simple et de portable sans nous mettre des batons dans les roues d’ici à la fin du projet. Ensuite, j’ai consacré mes efforts sur le client VeHO. Chose qui continuera durant les prochaines semaines.

La suite?

Le projet en est encore à ses débuts, mais nous avons pas mal déterminé les technologies que nous allons utiliser comme fondation. Maintenant, nous devons construire par dessus.

L’interface utilisateur principale avance, mais est dépourvue de fonctionalités utiles. Le problème est que le serveur doit supporter ces fonctionalités d’abord avant qu’on puisse les implémenter dans le client.

Mais je vais arrêter de parler de ce qui n’existe pas encore et donnerai plus de détails concernant le client dans un autre billet.

Hah et j’oubliais, les sources du produit final (i.e. tel qu’on le remettra) seront disponibles ouvertement. À suivre.

BestBuy : ma pire expérience d’achat en ligne

Je suis en train de vivre ce qui est probablement la pire expérience d’achat de ma vie, grâce au système d’achats en ligne de BestBuy.

Tout à commencé mercredi passé lorsque j’ai voulu profiter d’une offre spéciale avec laquelle je sauvais un bon montant d’argent, ou 30% pour rester flou. Je savais que le magasin de Sherbrooke n’était pas encore ouvert (il ouvrait le samedi suivant) et le site me l’a bien fait savoir : lorsqu’on passe une commande, on a la possibilité de faire livrer la marchandise ou d’aller la chercher soit-même en magasin et Sherbrooke n’était évidemment pas dans la liste des magasins disponibles. Read More »