rss

DBus-Explorer 0.3.1

Category : English

A little update for 0.3 fixing some reported issues and adding new features.

What’s new :

  • New improved Parser, support complex D-Bus type expression
  • Search function modified to behave more naturally
  • Synced icons with MD
  • Various cosmetic & bugs fixes (including the two issues reported by Anders Rune Jensen ;) )

Download :

Premiers résultats à l'UTBM

1

Category : General, Life, School

En direct du oueb :

CM11 – ADMIS (E )
LO10 – ADMIS (A )
MG00 – ADMIS (E )
MT11 – ADMIS (B )
PM11 – ADMIS (C )
PS12 – ADMIS (A )

Quelques impressions :

  • J’ai apparement majoré en LO10 (final expédié en 1h, c’est bien le seul d’ailleurs :-P ) et en PS12 (!). Maintenant je peux oublier toute ma connaissance impie de VBA (enfin, juste après le stage vu que mes collègues en sont fan et que je dois faire une interface de stock avec).
  • CM11 et MG00 validés de justesse (6 et 9.5 aux médians respectivement). Bonne surprise pour CM11 qui est, paradoxalement, un des finaux que j’ai trouvé les plus faisables. Pour MG00 ça illustre bien l’intérêt des sujet d’examen (proche de 0) alors que les cours sont (pour la plupart) intéressants.
  • Et enfin MT11 réussi avec B, ce qui est pas mal sachant le mauvais feeling que j’avais du final en sortant (je pense qu’ils ont du remanier le barème vu les notes). Merci Petitjean \o/ .

Pour les résultats des finaux

Category : School

Juste un petit script Python à mettre en anacron :

#!/usr/bin/python
from urllib import *
from os import *
from os.path import *
import filecmp

import dbus, gobject, dbus.glib

url = "http://services.utbm.fr/ACTU/resuv/index.php"
name = "nom"
ine = "numéro d'ine"
save_directory = "/tmp/"
save_name = "exam.html"
save = join(save_directory, save_name)

posts = { "nom" : name, "motdepasse" : ine }
post_request = urlencode(posts)

f = urlretrieve(url, data=post_request)

if not exists(save):
	rename (f[0], save)
else:
	if not filecmp.cmp(f[0], save, False):
		no = dbus.SessionBus().get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
		ni = dbus.Interface(no, 'org.freedesktop.Notifications')
		ni.Notify("python", 0, '', "Resultats UTBM", "Votre page des notes d'examen a ete mise a jour\n\n", {}, {}, 0)
		rename (f[0], save)

Travels in preparation

Category : General, Life

Strasbourg : after a little momentum during when I thought that, in the end, C# was not admissible in the exams, I received today a mail telling that I had been selected for the semi-finals of Prologin in February. Yay !

Brussels : if everything go smoothly I should be able to attend this year FOSDEM in Brussels meeting folks like Antti (who should really be there :P ) and Alp. Pretty sure it’s going to rocks :) .

It's again that time of the year

Category : General, Life

1:=> (define old-age 18)
 old-age
1:=> (define current-age (+ 1 old-age))
 current-age
1:=> (print current-age)
 19

Why Scheme ? Because parentheses are funny and because I hope this year to be as funny as the precedent.

(BTW: It also marks the first birthday of this blog ;) )

Philosophy

Category : General, Life, QoTD

Trying hard to write good and functional Scheme, while you come from a totally imperative world, is like recursively shooting yourself in the foot.

ParserNg

Category : C#, DBus Explorer, Mono

First of all, happy new year everyone.

ParserNg is the name of the new parser that I committed today in git. It’s a somehow more flexible redesign of the precedent parser which allow to parse D-Bus type expressions to other things than just string and will, thus, facilitate the coding of, both, the code autogenerator and the langage-agnostic prototype viewer, the two main features I want to add for next release.

ParserNg uses a forward-only approach with IEnumerator instead of the old List.GetRange way resulting in no temporary List creation. Moreover the parser now display correctly complicated expressions like the ones in Telepathy (e.g : a{u(ua{sa{sv}})}Dictionary<UInt32, struct { UInt32; Dictionary<String, Dictionary>; }> ), expressions that were borked with the precedent code.

The actual processing is also deferred to an external class via a sort-of Visitor pattern allowing easier customization of the produced result (though for the moment I just rewrote a CSharpVisitor class to behave like the ancient parser).

Code available in latest git pull.