rss

Vidéo en direct de FOSDEM : Miguel fait son show

Category : Mono, Quick note

Comme d’hab quoi :)

Pour le lien rendez-vous là : Turbo Caching Linux With Mono.

Dans cette vidéo, Miguel parle principalement de ce qu’est le projet Mono (but, état des lieux, performances…) et son avancement par rapport au dernier FOSDEM où il a été présenté (c’est à dire il y’a 5 ans, intéressant de savoir qu’a l’époque Mono ne pouvait se compiler que sous Windows :D ).

Il y’a aussi une petite démonstration de MoMa (l’outil de Mono pour mesurer la « portabilité » d’une application écrit en .NET sous Windows) et une démonstration live (et problématique :D ) de Paint.NET ainsi qu’une de la dernière version de Reflector.

Egalement une tentative plus ou moins réussi pour faire fonctionner Unity et les jeux construit avec (yeah vive les Mac :D )

QoTD: un-brice

Category : QoTD

Allez pour honorer la deuxième QoTD de ce blog, une remarque que je trouve marrant de un-brice (« kestumraconte ») :D :

<Lena_ocamlwarrior> un-brice : dommage que le lamda calcul donne de meilleures garanties de compilations que les machines du Turing sinon t'aurais presque été crédible
<un-brice> Lena_ocamlwarrior: garantie de calculs ? mais kestumraconte ?

Peut être un conducteur averti de plus ?

Category : Quick note

Demain épreuve pratique du permis de conduire. Résultats dans les 3-4 jours qui suivent. Stay tuned donc :P

EDIT: A priori tout c’est bien passé :D

EDIT2: Postière + lettre brune + papier jaune = un conducteur averti de plus, CQFD :D

Nouvelles fonctionnalités C#3.0 dans Mono !

3

Category : C#, Linux, Mono

Miguel de Icaza avait laissé sous-entendre que le projet Mono implémenterait C#3.0 dans le compilateur gmcs sans pour autant préciser de date. Hé bien ces derniers jours plusieurs fonctionnalités propre à C#3.0 ont atterri dans le SVN.

Il s’agit des lambda fonctions (tout droit venus des langages fonctionnels), des méthodes d’extension (pour étendre un type avec de nouvelles méthodes sans toucher a son code interne) et le typage implicite avec le keyword type (normalement le keyword var devrait suivre). Pour des exemples vous pouvez regarder les posts correspondant de Miguel et de Marek.

Il est vrai que, à part Linq qui est une assez grosse brique de C#3.0 (et plus largement de .NET3.0) et qui demandera du temps pour être correctement implémenté, ces fonctionnalités sont celles que j’attendait le plus dans C#. Elles permettent entre autres d’utiliser un style plus ‘fonctionnel’ (et ce encore plus lorsque Linq sera implémenté) ce qui est en vogue en ce moment. Les méthodes d’extensions sont aussi intéressantes selon moi car, utilisées avec modération, elles constituent un moyen souple pour éviter l’héritage et une composition trop lourde.

En résumé pour tester il vous faudra compiler Mono depuis les sources du dépôt Subversion (un ptit coup de svn co svn://svn.myrealbox.com/source/trunk/mcs et svn co svn://svn.myrealbox.com/source/trunk/mono) ou attendre la prochaine version de Mono.

Passage sous Feisty

Category : Ubuntu

Comme j’en avait marre d’utiliser les paquets de Meebey juste pour avoir un Mono fonctionnelle et que de toute façon je m’étais décrété à moi même qu’en ce jour de dernière épreuve du bac blanc j’avais mérité mon après-midi power glandouille j’ai décidé de tenter l’aventure.

Avant tout et première précaution d’usage : SAUVEGARDER. Personnellement j’utilise un disque dur externe qui contient tout mes gros fichiers ainsi que l’ensemble des projets sur lesquels je bosse ainsi qu’une partition séparée sur mon DD interne pour les choses diverses. Je n’avais donc qu’a sauver mon /etc et les fichiers de conf de mon dossier personnel (ceux qui commence par un point).

Ensuite j’ai commenté tous les dépôts qui pouvait poser problème comme celui de Meebey, ceux de Nemerle, de Bazaar … (en gros il faut toujours évité d’avoir des dépôts qui propose des fichiers plus à jour que ceux d’Ubuntu). J’ai réinstallé le paquet virtuel ubuntu-desktop au cas où et il ne me restait plus qu’a modifier mon sources.list pour avoir ça :

## Ubuntu Feisty Fawn
deb http://fr.archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse

Ensuite un petit coup de apt-get update et l’icône de notification m’avertit gentiment que j’ai environ 300 mise à jour à faire (fallait s’en douter). Toujours dans ma précaution douteuse j’installe les paquets les plus critiques lors d’une première phase (Linux, les drivers ATI, un peu de Xorg) et tout le reste ensuite.

Bref je n’ai eu aucun problème a déplorer, globalement Feisty est déjà très stable (Gnome est en phase de Beta donc pas trop de bug de ce côté là) et maintenant au moins j’ai toutes les dernières applications à ma disposition : Mono (ouais :D ), Banshee & Beagle (finis la compilation à la main) et divers autres trucs. Pour l’instant les deux seuls soucis que j’ai rencontré sont mon imprimante réseau qui ne voulait plus fonctionner (pour régler le problème suffit juste de supprimer et de réajouter l’imprimante dans gnome-cups-manager) et Nautilus qui m’affiche mes disques durs en plus des partitions qu’il y’a dessus dans son panel gauche (ça c’est plus chiant et je sais pas comment le régler) surtout que Dell a apparemment la sale habitude de foutre 2 partitions principales de 30 mo sans qu’on sache vraiment à quoi elles servent (quoique c’est sûrement pour vérifier l’authenticité du portable quand on réinstalle Windows), enfin heureusement que Linux peut s’installer sur une partition étendue :) .

I told you it was cold outside …

Category : Quick note, School

Si le bac blanc c’est fait pour se préparer au vrai baccalauréat alors faudra que je me souvienne d’éviter de choper un gros rhume la veille de l’examen de physique-chimie…

Dia, un modéliseur UML simple et efficace

Category : C#, Design

J’ai récemment (re)découvert Dia, un éditeur de diagramme sous Linux écrit avec le toolkit GTK. Il fait apparemment très bien les diagrammes classiques mais ce n’est pas pour ça que je l’utilise. En effet la particularité de la bestiole est de proposer un module pour faire de l’UML :) . Pour ceux qui ne connaissent pas UML (Unified Modeling Language) vous pouvez allez voir Wikipédia), basiquement UML est un langage de modélisation objet qui organise les classes comme des rectangles reliés entre eux par des flèches qui représentent différente relations qu’on retrouve en POO (héritage, agrégation…). Son utilisation intervient dans ce qu’on nomme l’étape de design qui situe bien avant le codage pur et dur. Son but ? Permettre de tester des idées via un support écrit normalisé et à la fin de la période de design avoir une hiérarchie de classe clair et net. La plupart du temps le code de base est ensuite généré à partir du graphe UML final.

Les IDE comme Visual ou Borland Turbo propose des modules pour faire de l’UML et ainsi assuré une forte relation entre le design et le coding. Sous Linux cependant l’éditeur qui est de facto standard (Monodevelop) ne propose pas d’éditer directement de l’UML (je crois me souvenir de quelque qui s’appelait MonoUML mais ça a du tomber aux oubliettes). Pour en revenir à Dia je l’ai utilisé afin de remettre a plat quelques idées que j’avais pour Circ et j’avoue que je trouve l’utilisation très agréable même si a priori il n’est pas fait pour ça à la base (a contrario ArgoUML m’a rebuté presque instantanément ;) ).

Les avantages de Dia à mon sens sont : indépendance du langage de prog sous-jacent (sous ArgoUML on est quasiment obligé d’utiliser des Java-ismes), les options d’export du diagramme (même si le module SVG merde un peu chez moi :) ), la possibilité d’écrire des générateurs de code (il n’y en a pas encore pour C# mais pourquoi pas un jour :) ) et globalement l’utilisation intuitive et rapide (Gnome powaaa :D ).

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 ;) )