Greg's blog

To content | To menu | To search

Keyword - haskell

Entries feed - Comments feed

Monday, November 17 2008

I'm back

Et oui de retour après... longtemps. Plein de prévisions, quelques réflexions, plein de projets mais finalement peu de concret sur ce blog. Pourtant il s'est passé des choses depuis. Un nouveau design (quelques changements dans la css) pour changer et pour que vos ecrans consomment moins d'énergie. J'ai finalement mis django de côté, je suis de loin les évolutions qui touchent le projet et m'intéresse toujours aux questions techniques qui concernent le framework mais j'ai plutôt jeté mon dévolu sur des framework bases sur des langages fonctionnels comme haskell (HaPPS) ou scheme (PLT-Scheme Continue). Le distribué et notamment erlang et les framework Map/Reduce (Hadoop, Disco...) m'attirent également beaucoup. Mon intérêt se porte également sur la visualisation d'informations et l'intelligence artificielle (a un niveau basique).

Nouveau job : virtualisation, développement kernel / système et du python. J'ai pu redécouvrir le C++ avec un autre regard. Bien qu'il reste difficile d'avoir le même niveau d'abstraction que des langages comme haskell, ocaml ou scheme; c'est agréable d'avoir :

  • un typage plus fort que le C,
  • une utilisation la plus systèmatique possible de const (sur lequel g++-4.3 est assez rigoureux comparé a du C avec gcc-4.x)
  • les references (pour éviter de passer des pointeurs non initialisés),
  • les functions classes pour avoir un mécanisme plus sûr de pointeur sur fonction,
  • les exceptions (avec la documentation des expressions susceptibles d'être levées par la fonction, dans son prototype i.e. int fonction(a, b, c) throw (runtime_error);
  • les templates pour disposer de structures génériques (avec modération pour ne pas avoir un binaire trop avide de mémoire)

Continue reading...

Saturday, February 23 2008

Quelques nouvelles : système et sécu, programmation fonctionnelle, moteur de blog

Quelques nouvelles pour les quelques lecteurs de ce blog qui doivent se demander si j'ai perdu les clés de la cave dans laquelle je me suis enfermé. Première nouvelle, non je ne suis ni dans une cave ni enfermé mais je n'ai pas trouvé le temps d'écrire un billet avant aujourd'hui. Je me suis replongé dans le dev d'exploit sous linux en me donnant pour objectif de gérer la plupart des protections userland (heap hardening, -fstrack-protector-all, ...) et kernel (ASLR, NX, et autres, en commençant par les fonctionnalités de base du noyau 2.6, puis en continuant avec ExecShield et Pax). Dans le même temps, l'actualité récente m'a poussé à m'intéresser de plus près aux vulns kernel.

En parallèle, je garde toujours un oeil sur la programmation fonctionnelle, notamment Haskell. Je profite de mes travaux en exploitation de vuln userland et kernel pour écrire du code concret et je l'espère utile en Haskell. Pour l'instant c'est du python ou un peu de ruby (metasploit), langages très appréciés par la communauté sécurité à côté des chers dinos que sont le C et le perl. Néanmoins je pense que ces travaux autour de la sécurité se prête bien à la programmation fonctionnelle et l'écriture de DSLs. Un projet intéressant était mosvm présenté par Wes Brown au DefCon et au HITB de 2006.Il consistait en l'exécution distante de processus dans une VM Lisp. C'est dans la continuité :

Pas mal de choses intéressantes à faire en perspective :). Je vais d'abord continuer ce que j'ai commencé et saisir les opportunités d'écrire du haskell quand elles se présentent.

Pour finir, j'avais parlé du redesign de ce blog. Je me suis dit que c'était l'occasion de migrer vers un moteur de blog écrit en python et pourquoi pas - à tous hasard - reposant sur django. J'ai regardé ce qui se faisait, tenté de construire sur le django-blog de basic apps et au final je me suis rendu compte que j'avais besoin de vraiment comprendre chaque élément et de pouvoir facilement les modifier. Je m'en suis vraiment rendu compte quand j'ai commencé à écrire une classe et des outils pour importer ce blog depuis dotclear2. J'ai alors décidé de ré-écrire un moteur de blog pour mes besoins. Dans un sens, c'est dommage, car ça répartit les efforts au lieu de les concentrer sur quelques projets, mais je prend ça comme un projet perso sans ambition autre que répondre à mes besoins et sans vouloir faire un moteur de blog de plus comme dotclear ou wordpress.