Archive de la catégorie ‘Développement’

 

Heaver-it : un backlog virtuel en JQuery

The Proclaimers - Sunshine on LeithNon ce blog n’est pas complètement à l’abandon. Il est juste moins prioritaire que pas mal d’autres trucs ces temps-ci.

J’ai quand même pris le temps d’apprendre un peu plus à utiliser JQuery. J’en ai profité pour réaliser Heaver-it un petit gestionnaire de Post-it® virtuel en JQuery et PHP.

Post-it® étant une marque déposée et n’ayant pas envie de me prendre un procès, j’emploierai le terme de note dans la suite de l’article.

CE QUE JE VEUX
L’idée donc est de pouvoir gérer le backlog d’un projet AGILE au format électronique (Parce que je trouve que les notes adhésive en papier c’est pas Green IT).
Les données doivent pouvoir être sauvegardées dans le dépôt SVN, GIT ou autre. Ce qui facilite la gestion de projet à distance par exemple.

Une version démo est accessible là : DEMO !

TECHNIQUEMENT PARLANT
Heaver-it est réalisé en JQuery, JQuery UI et utilise PHP pour la sauvegarde des données. Les données sont sauvegardées au format JSON.
Je ne suis pas super satisfait de l’utilisation du PHP car ça oblige à avoir un serveur PHP mais je ne voyais comment faire la sauvegarde autrement. Si Dr Benton passe par là il me dira peut-être d’utiliser Node.js.

PLUS EN DETAIL
Le code est assez simple et je ne présenterai ici que quelques astuces qui m’ont paru intéressantes durant la réalisation. Ça pourra servir à d’autres ou à mon « moi futur » .

ONE PLUGIN TO RULE THEM ALL
Pour chaque transformer une div en une note virtuelle il faut appliquer un certain nombre de plugins. J’ai donc créé un plugin qui regroupe tous les autres.
Le plugin s’appelle comme ça

<script>
$(function() {
$('#mydiv').taskify();
});
</script>

Il permet d’appliquer à « mydiv » en un ligne les plugins click, draggable et editable nécessaire pour en faire une note virtuelle. Yeah !

ONE PLUGIN TO BIND THEM
Lorsqu’on modifie quelque chose sur le backlog le bouton de sauvegarde prend en compte qu’il y a eu une modification. Pour réaliser cela j’ai utilisé la gestion d’évènements de JQuery.
Venant du monde Java ce fonctionnement m’a beaucoup rappelé le système des ActionListener.

J’ajoute donc au bouton « Save » la classe actionlistener.

<a href="#" class="actionlistener">Save</a>

Je définis ce que doit faire le bouton « Save » lorsqu’il y a une modification. Dans mon cas le texte change et devient « Save Now ».

$<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal;">( "#save" ).bind("modification", function () { $( "#save span" ).html("Save Now"); });[/</span>javascript]</pre>
Il n'y a plus qu'à déclencher l'événement "modification" sur tous les éléments implémentant la classe "actionlistener" pour chaque action modifiant le backlog.

1$<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal;">( ".actionlistener" ).trigger("modification");

Le fonctionnement est le même pour la gestion des plans. Lorsqu’on clique sur une note, un événement est déclenché informant toutes les notes que la note du plan N passe au premier plan.

$(".task").trigger("putTaskOnTop", [$$.css('zIndex')]);

Toutes les notes sont informées du déclenchement. Celle par qui l’événement a été déclenché passe au premier plan. Les notes qui se trouvent sur les plans supérieurs descendent d’un cran.

// Puts task on top
 $$.bind("putTaskOnTop", function(event, zIndex) {
 // Lows tasks currently on higher levels
 if (zIndex < $$.css('zIndex')) {
 $$.css({
 zIndex: $$.css('zIndex') - 1
 });
 }
 // Puts the one task on top
 else if (zIndex == $$.css('zIndex')) {
 $$.css({
 zIndex: $(".task").length - 1
 });
 }
 });

ONE PLUGIN TO BRING THEM ALL AND IN GITHUB SHARE THEM
Heaver-it est disponible sous licence GPL. Tout est publié sur GitHub ici.

CONCLUSION
Voilà ma première publication Open Source. Mon premier plugin JQuery. C’est ma Maman qui va être fière de son fiston.

Pour réaliser cet article et le plugin taskify, je me suis pas mal inspiré d’un article Jay Salvat sur la conception de plugin JQuery.

[picto]

Note de service

Clé anglaiseJe viens de corriger un bug : on ne pouvait plus voir les applications générées en ligne. Voilà c’est reparti.
En passant j’en profite pour vous dire que je bosse toujours sur la prochaine version du K-MetaModule et que ça devrait sortir dans pas longtemps.

[picto]

Déménagement

Après moult tergiversations ce blog change d’adresse. Mettez à jour vos bookmarks comme on dit. Le K-MetaModule a désormais un vrai nom de domaine à lui, avec une nouvelle home dont je reparlerai sûrement dans quelques temps.

Nouvelle adresse du : blog.k-metamodule.com.

Si vous utilisez feedburner aucune modification à faire sinon il n’est jamais trop tard pour bien faire : http://feeds.feedburner.com/k-metamodule.

[photo]

Mon test d’Aptana Cloud

Aptana Cloud n’est pas un IDE en ligne à la Bespin. Aptana est bien un client lourd type Eclipse dont il est issu d’ailleurs. Il apporte cependant quelques réponses aux problèmes que nous rencontrons quotidiennement lors de nos développement et que je vais essayer de détailler ici. Pour ce test j’ai utilisé la version d’essai gratuite d’Aptana Cloud, les versions payantes proposent peut-être plus de fonctionnalités. La première offre payante est à 20$/mois.

1- Premièrement une solution d’hébergement de votre site
Aptana vous propose d’héberger votre site qu’il soit en PHP, Java, Python, Coldfusion ou encore Rails sur un serveur Apache associé à une base de données MySQL. Pour chaque projet, Aptana créera en fait 3 sites : un site de développement, un site de pré-production et un site public. 3 sites donc mais une et une seule base de données. Il serait peut-être préférable d’en avoir plusieurs… peut-être disponible dans une version payante ?
Plus qu’un simple hébergement la solution permet par exemple de redémarrer MySQL, impossible sur un hébergement mutualisé classique.

2- Une palette d’outils d’aide au développement
Aptana Cloud ajoute à cet hébergement, un grand nombre d’outils d’aide au développement configurés et disponibles instantanément.

  • Subversion avec gestion de comptes
  • SSH
  • SFTP
  • et serveur mail

En conclusion Aptana Cloud simplifie la vie du développeur en lui offrant les outils classiques d’aide au développement en ligne et immédiatement disponibles.

L’avenir est dans le Cloud

Mozilla avec Bespin n’est pas seul à croire que l’IDE du futur sera dans le Cloud. Lors de leur conférence « Darwin Among the IDEs » jeudi dernier au EclipseCon 2009, Tim Wagner (Microsoft Visual Studio) et Kevin McGuire (IBM) sont allés dans ce sens. Un résumé est disponible ici [en].

« I think that’s a natural evolution, and I think that the Bespin technology is leading the way« , Kevin McGuire

Il y a donc fort à parier que les prochaines versions de Visual Studio et d’Eclipse se tourne vers le Cloud et ils ne seront pas les seuls. Je suis tombé sur 2 autres initiatives du genre.

  • Le projet Enlide mené par une société française actuellement en Beta privé. Je n’y ai pas eu accès mais je suis ça de près.
  • Ecoder un projet OpenSource d’IDE en ligne. (Via JaySlavat et son Twitter)

Parmis les autres évolutions qu’on peut attendre une meilleure gestion du multi-écran. Comment vous n’avez encore qu’un écran ? Mouah ah ah !

K-MetaModule : le fan club !

Vous pouvez désormais m’envoyer vos questions, remarques, bugs et autres messages d’amour !! J’ai ajouté un bouton Feedback, que vous trouverez sur la droite de votre écran et qui vous permettra de donner votre avis sur le K-MetaModule. Le K-MetaModule est à votre écoute !!

J’ai utilisé un service qui s’appelle Get Satisfaction. Vous pourrez aussi trouver ici les remarques de tout le monde.

A bientôt j’espère !

Home Sweet Home

Ça y est la nouvelle home du K-MetaModule est en ligne. Vous ne tomberez plus sur un page vide vous demandant de vous inscrire sans vous expliquer pourquoi.
Désormais il y a une belle? page dans laquelle j’ai essayé d’être le plus clair et le plus concis possible en répondant aux questions :

  • Qu’est ce que c’est ?
  • Comment ça fonctionne ?
  • Où je dois cliquer ?

Dîtes moi ce que vous en pensez ! Les avis sont les bienvenus !

[picto]

Bonne année 2010 !

Pourquoi 2010 ? Parce que j’ai décidé que le K-MetaModule aurait un an d’avance sur tout le monde. J’annonce donc la sortie de la version 2010 build A02 en version Beta.

Quoi de neuf ? Pour cette nouvelle mouture quelques fonctionnalités ont été ajoutées ou corrigées :

- Sécurisation des données : Les comptes sont sécurisés et les informations sensibles cryptées. C’était un minimum pour une sortie en Beta ;
- Possibilité de télécharger les sources du projet générées sous forme d’archive zip : Disponible à la fin de la génération du code ;
- Correction de quelques bugs ;
- Création d’un logo ! : J’ai trouvé le temps et l’inspiration pour créer un logo au K-MetaModule. Il est susceptible d’évoluer quelque peu mais ça va me permettre de communiquer un peu plus sur le produit.

A venir dans la prochaine version :

- Faire une jolie page d’accueil pour le K-MetaModule : Aujourd’hui elle est moche, elle n’explique rien. J’ai du boulot !
- Nettoyer le framework : Suite au développements successifs certaines portions de code sont un peu crades. Un nettoyage de printemps est nécessaire (quand je vous disais que le K-MetaModule était en avance sur tout le monde ;-) ).
- D’autres surprises ?

Meilleurs vœux 2010 donc ! Stay tuned !

Comparatif de générateurs de code

Suite à cet appel à contribution sur JDN Développeurs, je continue ma découverte des outils MDA/MDD et autres générateurs de code.

Voici un rapide comparatif des différentes solutions du marché que j’essaierai de mettre à jour au fur et à mesure. Vous pouvez d’ailleurs m’envoyer un petit message si vous en connaissez d’autres.

Pour chaque solution j’ai essayé de réunir les informations suivantes :

  • La version testée
  • La source, c’est-à-dire à partir de quoi le logiciel génère le code
  • Le(s) langage(s) supporté(s)
  • Le(s) SGBD supporté(s)
  • Le prix
  • Un lien vers un ou plusieurs tutos

Suite de l’article »

I’m Blu da dou di dam dam

Je viens de voir sur JDN Développeur une interview intéressante de Christian Champagne de Netfective. Un société qui propose une solution de générateur d’application web nommé Blu Age. Il se présente sous la forme d’un plugin Eclipse et permet générer automatiquement et industriellement des applications J2EE ou .NET à partir de modèles UML et d’une maquette XHTML statique.

principe de fonctionnement de Blu Age

principe de fonctionnement de Blu Age

La nouveauté c’est la possibilité d’intégrer des schémas BPEL et BPML !!
Et là je me suis dit super !! Mais c’est quoi ?
BPEL, Business Process Execution Language, et BPML, Business Process Modeling Language, servent à décrire et à modéliser des processus métier. En clair vous décrivez un workflow et Blu Age se débrouille pour vous sortir l’application web correspondante.
Autre fonctionnalité qui me paraît super intéressante : la possibilité de faire du reverse modeling. C’est-à-dire reprendre un projet existant et en ressortir des schémas UML. Mais alors là je demande à voir.
Blu Age est destiné à des grands comptes et apparemment assez coûteuse mais un version gratuite de démonstration est en ligne. J’essaierai de tester ça plus en profondeur. En attendant des démos en ligne assez bien faites sont disponibles ici.

 

Images hosting provided by ImageShack Via ImageShack Migration plugin