ppmax no sekai

Informations sur l'auteur | Curriculum vitae

WorkWork

Ici je parle de mon travail, en gros, des techno Microsoft :)

Fil des billets - Fil des commentaires

vendredi 11 avril 2008

BDC 2008, un pas en avant...

Hier se tenait ce que l'on pourrait appeler l'événement annuel toulousain dédié aux technologies Microsoft. Les bewisiens ont décidé cette année de déplacer la BDC (Bewise Developer Conference) au temple toulousain du rugby : le stade Ernest Wallon (le rugby, les valeurs, l'honneur, le fair play toussa quoi... ). Bref, comme l'année dernière, j'étais présent en tant que visiteur professionnel (la classe hein :) ). Et autant le dire tout de suite, j'ai pris une claque.

Tout commença à notre arrivée, une hôtesse a échangé nos affaires contre un badge et une poche Microsoft (la même que l'année dernière en fait) contenant diverses docs sur bewise et les techno Microsoft (yeah ! je vais exploser mon ratio de Microsoft/post à force de répéter crosoft partout), des cds de démo, un stylo Visual Studio 2008 et... c'est tout , snif, pas de T-shirt Microsoft MSDN cette année, bon tant pis.

Cette BDC était décomposée en trois parties :

  • Les sessions plénières
  • Les sessions de démonstrations
  • Les plots de démonstrations

Je vais donc commencer par la première session plénière, la seule à laquelle j'ai participé. Elle était présentée par Sacha Leroux, David Catuhe et Michel Rousseau. La démonstration était sous le signe du Silverlight, démonstration assez bluffante je dois dire; l'année dernière la démonstration de la session plénière était jolie, mais trop technique, en effet, les outils n'étaient pas au point, la majorité de la démo consistait à de la copie de code à l'arrache. Cette année, on a vraiment pu suivre pas à pas la démarche, et je dois dire que réaliser une appli Silverlight en quelques clics ça fait envie. Tout ça dialoguant avec une base de données via WCF tout en requettant la BD avec LinQ, que du bonheur pour les yeux.

J'ai ensuite assisté à 2 sessions de démo, la première traitait de LinQ, cette petite chose qui va faire que nos admins BD vont se retrouver au chômage : plus besoin de faire de store proc, plus besoin de réfléchir au SQL, .NET est là pour ça : génération des objets métiers en mappant les bases de données, persistances des données : que du bonheur.

La session d'après était sur les nouvelles interfaces utilisateurs : en gros le WPF. On reprend les même et on recommence, David Catuhe et Michel Rousseau étaient de la partie. En quelques clics, on a vu comment faire une application WPF (moche) sous Visual Studio 2008 et comment l'habiller avec Expression Studio. Comme toujours, le résultat était bluffant.

Concernant les plots, j'ai visité ceux dédiés à l'ASP.NEt 3.5 (forcément hein), au Silverlight, à WPF, à WCF 3.5 et ça doit être tout. Le plot dédié au XNA n'avais pas beaucoup changé par rapport à l'année dernière, j'ai passé mon chemin. J'ai aussi passé pas mal de temps au plot SharePoint : Kazou animait le stand,  revoir un ancien de l'IUP ISI, ça fait plaisir :)
Vers 21h, nous avons eu le droit à un buffet, diantre, ils ont pas mis de maki cette année, seconde déception de la journée (avec celle des T-shirt ), mais bon, c'était très bon quand même :=).

Bref, pour conclure, un très bon événement qui m'a consolé de ne pas être allé aux TechNet de Paris le mois dernier ! J'étais quand même un peu morose en sortant de là, c'est bien gentil de faire tout ça, mais faut avoir des outils qui suivent, or, Expression Studio, Visual Studio et le reste, c'est pas donné, je m'étais inscrit il y a quelques semaines au système de distribution de logiciels en ligne MSDN Academic Alliance DreamSpark, un truc dédié aux étudiants permettant d'avoir accès aux licences Microsoft. Mais j'avais abandonné l'idée de l'avoir (3 semaines sans nouvelles, ça calme ), sauf que par magie, ce matin en regardant mes mails, j'avais un courrier de billou m'indiquant que ma demande a été validée, à moi le plaisir de Visual Studio, yeah!

Sur ce, mon Visual Studio 2008 vient de finir son installation, je vais aller tâter du Silverlight :)

jeudi 6 mars 2008

Recherche dans des listes grâce aux délégués ( C#)

Le quotidien d'un développeur consiste le plus souvent à trouver l'information dont il a besoin et de l'utiliser de façon intelligente, et j'ai remarqué une petite chose lorsque je regarde des exemples de code sur le net,c'est que pas mal de gens ne savent pas utiliser ce que j'appellerai "'une des plus grande invention du langage" : la recherche dans les collections d'élément via des délégués.

Qu'est-ce que sont les délégués ?
Un petit exemple rapide:
Une classe Personne avec des attributs Nom, Prenom.
Une liste contenant des personnes serait du genre :

List<Personne> listePersonne = new List<Personne>();
///Nouvelles personnes
Personne p1 = new Personne("Duran", "Paul");
Personne p2 = new Personne("Dupont", "Paul");
listePersonne.Add(p1);
listePersonne.Add(p2);

Pour rechercher une personne contenu dans la liste, une grande partie des personnes fait avec la méthode old-school:

Personne perso;
for (int i = 0; i < listePersonne.Count; i++)
{
    if (listePersonne[i].Nom == "Duran")
    {
        perso = listePersonne[i];
    }
}
Ce code marche, mais en C#, il existe la méthode Find :
///Recherche d'une personne
Personne perso = listePersonne.Find(delegate(Personne p) { return p.Nom == "Duran"; });
///Recherche de plusieurs personnes
List<Personne> lperso = listePersonne.FindAll(delegate(Personne p) { return p.Nom == "Paul"; });

Ça fait exactement la même chose (à part que find renvoie la première occurrence trouvée alors que le code avec le for renvoie la dernière occurrence)
De nombreuses méthodes utilisent les délégués (Find, FindAll...) C'est très utile et c'est surtout beaucoup plus propre dans le code. Je suppose que du coté des performances, c'est la même chose, un gain de rapidité grâce au Find, à confirmer toutefois.

jeudi 16 août 2007

SelectedIndexChanged qui ne marche pas sur un Dropdownlist

Dans le genre, le .net ca marche pas, c’est nul, il y a le : pourquoi ma Dropdownlist ASP (liste déroulante) ne va pas dans son événement SelectedIndexChanged lorsque je clique sur un élément de la liste?

Solution : il ne faut pas oublier d’activer l’attribut AutoPostBack du DropDowlList, après ça miracle, on va automatiquement dans l’évènement SelectedIndexChanged !

Où comment perdre 2h dans une matinée pour trouver ça...

mercredi 18 juillet 2007

WPF mon Ami !

Lors de la BDC, j’avais entrevu un peu le WPF, kesako le WPF : le Windows Presentation Foundation. C’est le nouveau système IHM de crosoft. ET wouha ! C’est joli et facile *sik* (enfin quand crosoft se décidera à sortir un vrai bon éditeur XAML parce que le XML à la mano, non merci).

Enfin bref, un de ces jours, je vais me pencher là-dessus et voir ce qu’on peut en tirer. Ca serait pas mal que je puisse trouver un stage là-dessus pour mon année de M2.

*I have a dream…*

Plus d’info :
article sur le jdn
wikipedia

.Net : Request for the permission of type

Voilà, un petit truc sur lequel j'ai galéré pendant une bonne journée sans rien trouver de très explicite, c'est grâce à ce site que j'ai reussi à me débloquer. Je poste ça, on sait jamais, ça peut aider d'autres galériens de l'ASP ^^;

Mise en place du contexte: Je développe une application WEB ASP.NET 2.0. Mon appli communique avec une base de données Access pour récupérer des données via le provider Microsoft.JET.OLEDB.4.0 et là cette erreur apparait :

"Request for the permission of type 'System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."

Comment faire pour résoudre cette erreur?

Il faut tout simplement vérifier le niveau de sécurité dans le web.config de l'appli; en effet, le driver OleDb ne permet pas l'acces à la BD si les droits sont à bas niveau, bref si jamais la ligne ci-dessous est présente:

<trust level="Medium" originUrl="" />

Suppprimez là ou placez là en trust level full. Ca devrait supprimer l'erreur ci-dessus.
Pour plus d'info: la doc sur msdn

dimanche 19 novembre 2006

Umbrello, next step.

Hi~

Last Friday, Ervin asked us if we want to be reffered to by KDE's community. I accepted... but I have to write my post on english, so I'll try to write good sentences... My excuse for my bad english, but I'm only a developer :)

So now my KDElibs are compiled, I have had many problems with them >_<; I lost my OS 3 times (Ubuntu, Kubuntu and finally Ubuntu). But now, everything is good. I had several problems with Dbus make, it claimed root right and when I gave it what it wanted, It killed my old dbus, and KDE crashed -___-.

During this process, we had to find a right solution to our problem concerning bad performance of Umbrello, specially the Undo/Redo problem... We found 3 solutions, one of them looks better, it is the Qt Undo/redo pattern... We'll speak about it tomorrow!

I hope this part of my blog will be read by many people at KDE.

************************

Comme vous l'avez vu, j'ai blablaté dans la langue de shakespeare avant ce message, pour ceux qui n'ont pas compris le message que j'ai tenté de faire passer, je vais expliquer un peu le problème:
Vendredi dernier, Ervin nous a demandé si on voulait que notre blog soit référencé par un aggrégateur de blog de la communauté KDE, j'ai accepté, mais voila, il faut que les posts soient écris en anglais. Donc dorénavant, je vais écrire les messages concernant UMbrello / KDE en anglais. Mais en dessous du message en anglais, je mettrai la traduction en français... Donc pour résumé ce qu'il y a écrit au dessus:

Mes Kdelibs sont installées, ces méchants trucs m'ont couté 3 OS en tout, j'ai perdu mon beau Ubuntu qui avait 5 mois d'age *snif*, j'ai ensuite installé KUbuntu, rien de meilleur, toujours le même problème, lorsque je tentais de compiler moi-même Dbus, ca me faisait planter le système, donc j'ai installé la version 6.10 d'Ubuntu, "Edgy", J'ai retenté l'installation du Dbus à la main, pan! Plus de Ubuntu... Finalement, j'ai réinstallé et j'ai utilisé le Dbus disponible sur synaptique ainsi que le CMake et le Qt 4.2... Et après un long combat, j'ai réussi à avoir mes KDE Libs comme il faut.

Nous avons commencé à cherché un moyen d'améliorer les performances d'Umbrello, et il y a 3 manières d'implémenter le Annuler/ Refaire, dont un qui semble plus prometteur, on verra ça demain!

lundi 9 octobre 2006

pp et Umbrello: prologue.


    - Oh it's modeling today?
    - Where is my Umbrello?

Voila qui aurait pu être une partie du spectacle de Gad Elmaleh version geek... Et oui, umbrello n'est pas un parapluie mais un outil de modélisation UML. Oh le bonheur ! Et ceci complétement gratuit ! Que demander de plus?

Ah on me signale qu'il faut améliorer les performances du logiciel et intégrer la norme UML 2.0...

Et qui va s'occuper de ça? Et bah c'est nous, les membres de l'IUP ISI :) En effet, ervin nous a trouvé des jolis projets KDE, autre chose que les machins trucs de la suite APES :) Et ça, ça fait plaisir, on espère que cette expérience va être fructueuse en relation humaine dans le monde du libre !

C'est parti pour 1 an de participation au projet KDE!

mardi 9 mai 2006

Koha

Koha.... cela vient du Maori "cadeau, don", ce logiciel est un SIGB (un logiciel de gestion de bibliothèque) gratuit et open-source sous licence GNU. L'interface est plus ou moins conviviales (les goûts et les couleurs...), celle-ci est séparée en deux blocs distincts: l'interface Administration et l'OPAC (interface publique). Alors que du coté de l'OPAC, les utilisateurs peuvent consulter les notices des ouvrages, réservé un livre ou faire une proposition d'achat, du coté de l'administration, toute la gestion de la bibliothèque est quasiment disponible (de la commande du livre jusqu'à son catalogage).

La version courante est la 2.2.5, moi je suis sur la 2.2.4, po le courage d'affronter l'installeur et l'upgradeur :) Car autant Koha est abouti au niveau de la gestion de la bibliothèque, autant son installation peut ressembler à un vrai parcours du combatant... et encore je suis gentil, cha peut plutôt faire penser à l'enfer... M'enfin passons, faut dire que je suis pas vraiment un linuxien dans l'âme... Quel soulagement le soir quand je rentre chez moi avec mon beau portable qui m'appelle "pp! pp! viens me voir, j'ai un beau windows à te montrer", bon une fois allumé, je déchante un peu... en même temps, mon windows a beau planter et ramer comme pas possible, c'est un windows qui tourne sur un pc qui est en fin de vie et avec un espace disque tournant autour de 100mo :) Mais bon, là je m'égare! Revenons à Koha.

D'un point de vue technique Koha est programmé en PERL, au début je pensais que c'était parceque les expressions régulières sont facilement accessibles... mais j'ai découvert cette aprem qu'il y avait de nombreux modules pour la gestion du MARC en PERL, youpie! cha fait ça de moins à faire! Et ne l'oublions pas, la devise de tout bon informaticien est: "Pourquoi refaire quelque chose que quelqu'un a déjà fait!" Je pense que le staff de koha l'a appliqué à la lettre. Après pour stocker les donénes, Koha utilise simplement un serveur Apache-mysql... enfin ça s'était pour la version 2xx, la prochaine grande release, la 3.0 qui devrait sortir à la fin de cette année utilisera un autre moteur pour l'indexation des données: Zebra.

Mardi 2 et Mercredi 3 Mai se tenait une conférence intrenationnale sur Koha à l'école des Mines de Paris, conférence instructive à tous les points, en premier lieu, ça m'a fait prendre l'avion pour la première fois (bon ok, ça n'a rien à voir!), donc..... j'ai appris pas mal de choses sur la future release (2.4) et sur la 3.0. Et j'ai surtout rencontré des personnes pouvants me renseigner en cas de problèmes... J'ai reçu quelques réponses à mes problèmes de champs MARC que je n'arrivais pas à trouver...

Donc jeudi matin, une fois de retour au bastion iritien, je me jette sur mes scripts PERL et je m'amuse avec eux pour commencer à faire le transfert des données de la Base de l'IRIT vers Koha... malheureusement une table était impossible à remplir soit-même, après une petite question sur la liste de diffusion de Koha, et d'une réponse de Paul Poulain, me voila rassuré, le script que j'ai fait ne sert à rien, je dois recommencer :) Youpie!