Blog myBlog = BlogFactory.getWordPressBlog();
Archives pour octobre, 2010
Développement d’un module ODT pour Play Framework
30/10/10
Lors du dernier Paris JUG, l’enthousiasme de Guillaume et de Nicolas à propos de Play Framework était très communicatif. J’ai donc décidé de m’y mettre pour voir ce qu’il en était.
Pour s’y mettre très rapidement, plusieurs méthodes :
- Suivre le tutoriel officiel très complet traduit en français par Romain
- Prendre une base de données existante, générer les entités Play avec le plugin DataBase, générer les pages CRUD avec le plugin de « scaffolding », et regarder le résultat
Comme promis lors de la soirée, l’effet « Whaou » vient très vite !
Afin de poursuivre un peu plus mon étude du Framework, plutôt que de développer une application jetable, je me suis lancé dans le développement d’un module.
La suite >
Fusion RTF : MS Office ou OpenOffice ?
20/10/10
Tout d’abord un peu d’actualité
Décidément, l’actualité autour d’OpenOffice est riche en rebondissements. Rappelons très brièvement les épisodes récents :
- Depuis le rachat de Sun par Oracle, le projet n’avançait plus très vite.
- Afin de faire bouger les choses, une partie des membres de la communauté d’OpenOffice a créé un « fork« , LibreOffice, ainsi que « The Document Foundation » pour supporter ce projet. Celle-ci a vite eu de nombreux sponsors, y compris parmi de gros acteurs du marché IT.
- Cette fondation a pris contact avec Oracle, pour essayer d’établir une relation cordiale. Celle-ci aurait pu déboucher par exemple sur une collaboration technique et/ou sur une session gracieuse de la marque déposée « OpenOffice » à la fondation.
- Oracle a décliné l’offre et annoncé sa décision de poursuivre le développement d’OpenOffice sans collaborer à la fondation.
- Il y a 3 jours, Microsoft a publié une nouvelle vidéo dans laquelle il s’attaque très clairement à OpenOffice. Ce n’est d’ailleurs pas sa première attaque du genre contre la suite OpenOffice…
- Hier, Oracle a poursuivi les hostilités face à la « Documentation Fondation » en adressant un ultimatum aux membre du OOo Council.
Compte-Rendu du Paris-JUG sur les technologies web
15/10/10
Mardi soir se tenait la soirée web au Paris JUG, avec un succulent menu, Ruby on Rails, HTML5, et Play! framework… auquel j’ai bien failli ne pas pouvoir assister. Grâce à la RATP et les grèves, malgré les 20 grosses minutes de marge que j’avais prises, je suis arrivé à 19h28 (soit 3 minutes après l’horaire limite). J’ai de justesse pu me faufiler à une des dernières places assises au dernier rang.
Donc, note pour moi-même : à l’avenir, arriver avec beaucoup d’avance ! Etre bien placé par rapport aux écrans, ça aide à mieux suivre les conférences… surtout lorsque les présentations sont en blanc et rouge sur fond noir (toute allusion au début de la présentation de Ruby on Rails serait purement fortuit).
La suite >
Allons un peu plus loin avec Git-SVN
12/10/10
Il y a très peu de temps, j’expliquais comment utiliser Git avec SVN dans Eclipse. C’est maintenant quelque chose que j’utilise au quotidien, que ce soit avec Eclipse ou IntelliJ IDEA, mon nouveau choucou. Dans un cas comme dans l’autre, on ne coupera pas à l’utilisation des « external tools » pour la configuration des commandes « git svn rebase/dcommit/etc. »
Après plusieurs semaines d’utilisation, j’ai voulu étendre cette utilisation à d’autres commandes, afin de voir si on pouvait pousser plus loin les interactions entre Git et SVN.
La suite >
Problème d’accès concurrent… au restaurant
7/10/10
Une petite histoire vraie qui nous est arrivée alors que je déjeunais avec des collègues, dans un restaurant près du travail. Nous étions huit, et au moment du déssert, entre les cafés et les désserts, les commandes sont passées de manière un peu désordonnée. C’est là que le drame s’est produit !
Un collègue commande un café. Un autre renchéri « deux cafés ». Un troisième et moi-même annonçons presque en même temps « trois cafés ». Avec nos quatre autres collègues qui commandaient simultanément des parts de tarte, des îles flottantes, etc., nous ne nous en sommes pas aperçu… jusqu’au moment où la serveuse nous apporta les desserts, et les trois cafés !
Le problème a évidemment été rapidement résolu, mais je me suis fait la réflexion : « tiens, un problème d’accès concurrent ! », qui (outre la déformation professionnelle qu’il prouve) m’a donné l’idée de ce billet.
Pour ceux qui n’auraient pas suivi, revoyons la scène au ralenti :
- l’instance unique « serveuse » de la classe « Serveur » maintient une variable « nombreCafes » (entre autres variables qui ne nous intéressent pas)
- chacun des huit threads « collegues » accède à « serveuse » pour faire des mises à jour de la commande
- la variable « nombreCafes », malheureusement non synchronisée, a été récupérée par deux « collegues » avec la valeur ’2′. Chacun l’a incrémenté, puis a effectué la mise à jour de cette valeur à ’3′.
Le problème étant maintenant identifié, il convient de le résoudre de manière durable. En en discutant avec ces mêmes collègues, voici déjà plusieurs idées qui ont germé (les auteurs se reconnaitrons) :
- Idée numéro 1 : on pose un jeton au milieu de la table. Seul la personne qui a le jeton en main a le droit de mettre la commande à jour. Pour l’acquisition du jeton, la loi du plus fort s’applique.
- Idée numéro 2 : le problème provient évidemment d’une charge trop importante sur l’unique instance de « Serveur ». Il faut donc la remplacer par un pool de serveurs. Chaque collègue récupère du pool un serveur libre auprès duquel il passe sa commande. J’aime bien cette idée d’un serveur dédié au traitement de ma commande.
Si vous avez d’autres idées issues du monde de l’informatique (ou pas) pour empêcher ce problème de se reproduire (si possible donnant lieu à une situation loufoque), proposez-les en commentaire !
Découverte de IntelliJ IDEA
4/10/10
Je pourrais titrer ce billet « Confessions d’un éclipsien repenti », mais on m’accuserai de mauvais plagiat… et malgré la très bonne impression que m’a faite IntelliJ IDEA, j’apprécie toujours également mon fidèle Eclipse.
Mais revenons un tout petit peu en arrière… Depuis plus d’un an, j’entends parler de cet IDE : blogs, un récent comparatif, le Paris JUG, etc. J’avais donc décidé d’y regarder de plus près, mais sans jamais vraiment prendre le temps de m’y mettre. J’en ai eu récemment l’occasion, en testant le Play! Framework. Celui-ci dispose en effet d’une commande « idealize » permettant de générer le projet au format IDEA, qui n’a pas d’équivalent pour Eclipse. J’ai donc décidé de faire d’une pierre deux coups et de tester Play! en même temps qu’IntelliJ IDEA.
J’ai rapidement beaucoup apprécié les fonctionnalités de l’IDE, et j’ai donc étendu mon test à un projet Java/J2EE. Voici pas à pas le déroulement de ma découverte de l’IDE, pour les retardataires qui, comme moi, n’avaient pas encore franchi le pas…
La suite >