Evolution du design des plans de métros

Le blog Creative Review propose un article intéressant retraçant un siècle d'évolution dans le design des plans des métros européens (français, anglais, allemand).

Si les premiers plans restaient fidèles à la topologie réelle des lignes, les travaux de George Dow et de Harry Beck, au début du 20° siècle, ont popularisé un style graphique épuré, plus géométrique, utilisant des lignes colorées et des symboles spéciaux pour les interconnexions. Curieusement, ce style ne sera adopté que très tardivement par la RATP (1999).

Sun racheté par IBM ?

Il semblerait qu'IBM envisage de racheter Sun Microsystems. Les pourparlers préliminaires sont en cours, et l'on annonce déjà un montant de presque 7 milliards de dollars, soit plus du double de sa valorisation boursière actuelle.

Si elle se réalise, cette opération donnerait à IBM un sérieux avantage stratégique sur ses concurrents directs Oracle et RedHat. De fait, IBM deviendrait propriétaire de MySQL (racheté par Sun l'année dernière), de Solaris, et surtout de... Java.

Je me demande s'il faut s'en réjouir ou s'en soucier.
Les produits IBM ayant des temps de développement et des cycles de vie très longs, je crains que l'évolution du langage Java ne soit fortement freinée, ou du moins pilotée par le marketing plutôt que par l'excellence technique. Même s'il était déjà fortement influencé techniquement par le géant bleu, Java avait réussi à en rester relativement indépendant sur le plan politique.

La consolidation du marché s'accélère à un rythme effréné. D'ici quelques années, je vois bien IBM (ou Sun, s'il n'est pas gobé par BigBlue) racheter Adobe pour étoffer son pôle "ergonomie/productivité" et absorber RedHat notamment pour sa division JBoss+Hibernate.
Dans ce grand western, il ne resterait plus qu'IBM et Microsoft dans la grand-rue, le regard d'acier et le brevet chargé à la hanche, prêts à en découdre pour assurer leur domination sur le marché de l'informatique d'entreprise.

Mais je me fais sans doute des idées. Wait & see comme on dit...

Collection accessors considered harmful

L'art du design objet repose sur la détermination des rôles et responsabilités de chaque classe. Quelle classe est responsable de la gestion de telle ou telle donnée ? A qui et sous quelles conditions ces données sont-elles exposées ? Il est bon de se poser ces questions souvent et de questionner son modèle objet tout au long de sa conception.

Actuellement, la mode est aux POJOS. Depuis quelques années, depuis Hibernate et Spring, tout le monde a appris à programmer comme ça. On crée une classe, on déclare ses champs privés, et on génère des accesseurs : un coup de bouton droit dans Eclipse, et le tour est joué - easy as pie.
Le problème, c'est que ce réflexe conditionné est dangereux dans le cas des collections, car il affaiblit l'encapsulation de la classe.

Lire la suite...

Paris JUG "Web" : compte-rendu

Mieux vaut tard que jamais, voici le compte-rendu du dernier Paris JUG qui portait sur les technologies innovantes du web.

Mais avant de commencer, les organisateurs du JUG avaient quelques messages à faire passer.

  • Tout d'abord, le JUG cherche des sponsors ! Si la salle est généreusement mise à disposition par l'ISEP, le buffet en revanche est à la discrétion des sponsors. Ceux-ci commencent à manquer, et nous avons dû nous contenter de quelques bouteilles de soda pour cette fois... Ayez pitié des développeurs, sponsorisez des buffets !
  • Java Black Belt, le site d'entraînement aux certifications Java, offre des points aux participants du JUG ! Il suffit de les demander sur la mailing-list.
  • Jazoon offre des réductions également. Même principe, il suffit d'être spectateur assidu du JUG et de les demander sur la mailing-list. Ne ratez pas cet événement !
  • Enfin, Lille fête la création du Chti-JUG ! Tous les speakers intéressés par l'animation de présentations sont les bienvenus.
Lire la suite...

Java Barcamp #4 le 31 mars

Barcamp_small.png Pour cette 4° édition, le Java Barcamp se réunira le 31 mars chez Google (38 avenue de l'Opéra, Paris 2°)

Pour rappel, le principe du Barcamp est très différent de celui du JUG. Ici, aucun présentateur, pas de slides, pas de thème prédéfini : chacun peut proposer un sujet et participer aux ateliers de son choix.
Afin de faciliter l'organisation des séances, il est possible de préciser ses centres d'intérêt sur la page d'inscription. Les précédents Barcamps ont abordé des domaines variés comme l'usine logicielle, les tests unitaires, la méthodologie Scrum, la génération de code, les approches MDA... Soyez créatifs !

L'inscription est obligatoire (les identités seront vérifiées à l'entrée), et se fait en éditant la page du Wiki du Barcamp4 (créez-vous un compte, et éditez la page grâce au lien "edit" dans la barre verte en haut). Les places sont limitées à 70.

En attendant, pour vous mettre l'eau à la bouche, vous pouvez toujours consulter les compte-rendus des éditions précédentes :

PS : Que pensez-vous de ce logo ? Et de ceux proposés par le Touilleur-Express ?

Java : les exceptions enfin expliquées (ou pas)

Merci au Touilleur-Express d'avoir signalé cette page, qui vous fera sûrement sourire en ce lundi matin : Explanations of common Java exceptions.

Edit : je complète avec cette liste des choses que les ordinateurs font dans les films. C'est si vrai !

MkTree : créez facilement une hiérarchie de répertoires

Je vous livre (en pièce jointe de ce billet) un petit script shell que j'ai développé suite à un besoin récurrent : créer une hiérarchie de répertoires.
Le besoin typique est de créer une structure de projet Java (à la Maven), mais le script peut naturellement se révéler utile dans nombre de situations.

Lire la suite...

Rétrospective des supports de stockage

Maximum PC publie une rétrospective des supports de stockage à travers l'histoire de l'informatique.

On pourra ainsi redécouvrir :

  • la carte perforée, inventée en 1725 par Basile Bouchon pour programmer les métiers à tisser : 960 bits, 960 occasions de se planter.
  • la bande magnétique qui, si l'on en croit la pub, permet un gain de place de 90% par rapport aux cartes perforées (incroyable !)
  • la bonne vieille cassette audio, qui pouvait contenir jusqu'à 700Ko par face (ou 90mn de disco, au choix)
  • les disquettes souples de 8" et 5.25", remplacées par les disquettes de 3.5" vers 1982 (dont on pouvait doubler la capacité en perçant un trou judicieusement placé, rappelez-vous)
  • les disques compacts (CD) (dont la rumeur veut qu'ils durent 74 minutes pour pouvoir diffuser l'intégralité de la 9° symphonie de Beethoven sans interruption), puis les DVD à partir de 1995
  • plus près de nous encore, l'ère des cartes flash et des micro disques durs
  • et enfin, le vainqueur actuel, du haut de ses 25 Go : le disque BluRay.

Si j'en crois la calculatrice, un disque BluRay contient l'équivalent de plus de 26 millions de cartes perforées.
Distribuer les films sur cartes perforées, l'ultime moyen de stopper le piratage ? (et de redonner du travail aux projectionnistes de cinéma)

Paris JUG : Soirée Web le 10 mars

Le Java User Group de Paris (Paris JUG) organise une soirée sur le thème des technologies web émergentes.
Elle aura lieu le mardi 10 mars, dans les locaux de l'ISEP.

Au programme :

  • 19h15 à 19h30 : Accueil
  • 19h30 à 20h25 : Présentation de Wicket, framework web par composants, par Carl Azoury et Nicolas André (Zenika)
  • 20h25 à 21h05 : Buffet
  • 21h05 à 22h00 : Les technologies du web sémantique, par Alexandre Bertails

Je vous rappelle que, pour des raisons de sécurité, l'inscription est désormais obligatoire et sera vérifiée à l'entrée.

JavaScript Quiz #5

Suite du quiz JavaScript précédent.

Soit le bloc JavaScript suivant :

  1. function Personne(nom, age) {
  2. this.nom = nom;
  3. this.age = age;
  4.  
  5. this.isMajeur = function() {
  6. alert("1");
  7. return (this.age >= 18);
  8. }
  9. }
  10.  
  11. Personne.prototype.isMajeur = function() {
  12. alert("2");
  13. return (this.age >= 18);
  14. }

On crée ensuite l'objet Personne suivant :

  1. var jean = new Personne("Jean", 43);

Une alerte va alors s'afficher. A votre avis, qu'affichera-t-elle ? 1 ou 2 ? Et pourquoi ?

Lire la suite...