Polymorphisme ? Ou

Lorsque j’ai lu la définition du polymorphisme sur le blog de Jose, j’ai été assez intrigué. En effet, pour moi, à la base, le polymorphisme, c’est la possibilité dans une classe Java d’écrire :

public class MyClass { 
	// no constructor for this code sample 
	public void doThat(int _int) {
		// do something 
	} 
	public void doThat(Integer _int) {
		// do something 
	} 
	public void doThat(String _str) {
		// do something 
	}
}

Le polymorphisme qu’il décrit ne ressemble absolument pas au mien. Heureusement, Comment ça marche me rassure et m’explique que nous avons tous les deux raison : Jose parle de polymorphisme par héritage et moi de polymorphisme paramétrique.Je trouve personnellement cette confusion entre deux notions assez éloignées (dans son cas la surcharge et dans le mien la redéfinition de méthode) plutôt étrange …

via Nicolas Delsaux’s posterous import script

Est-ce que Swing est lent ?

La question est récurrente. Sur ce blog l’auteur la pose. Et trouve naturellement la réponse évidente :

So the bottom line is swing is fast enough but then again itéés up to the developer to make it swing as fast as possible or make it as slow as a walking turtle.

Et comme d’habitude, en guise d’exemple, il incite les autres développeurs à créer des applications Swing performantes. J’ai eu la chance de bosser sur une superbe application Swing, largement assez rapide pour l’oeil humain, et qui plus est utilisée dans le contexte industriel, donc je ne peux que l’encourager à y jeter un coup d’oeil : GlobalScreen Intra. Ca été sans doute ma période la plus productive en tant que développeur Java. Bref, une belle page de ma carrière. Et à chaque fois qu’on me parle de Swing rapide, j’y repense. Comme je repense aux Swing Sightings qui référence un paquet de très jolies applications Java. Bref, tout un tas de démonstrations que Swing est vraiment loin d’être aussi pataud qu’on le dit, en plus d’être une API formidablement écrite (à la différence de SWT).

IE n’a pas fini de souffrir de la concurrence

Raphaël nous explique qu’IE n’a pas fini de veillir.

En attendant quoi ?

La version 8 d’Opera ? Blague à part, il s’agit sans doute de la seule manière de permettre aux industriels de mettre en place avant la prochaine version d’IE des sites modernes et utilisables par tous les navigateurs. Parce que proposer aux gens d’utiliser un navigateur déja vieux de deux ans et qui continue à s’enfoncer dans sa sénilité (et ses bugs pas toujours détectés) pour des applications, ça risque fort de ne pas être très sérieux pour des banques, ou des administrations, qui s’en tiennent pour l’instant soigneusement à leur politique de dépendance vis-à-vis de cette antiquité. [EDIT] Et pendant ce temps-là, avec un égal bonheur, Denis nous parle de ce navigateur obsolète

Une excellente initative

Pourquoi les programmes java sont si longs à lancer et occupent tellement de place ? Parce qu’avant de se lancer, chaque programme Java lance sa propre instance de la JVM (qu’elle soit Sun ou autre) puis se lance. Ce lancement de la JVM est effectivement obligatoire, mais pas forcément au lancement de l’application. Il pourrait avoir lieu par exemple au démarrage de la machine. Puis, chaque application se connecterait à la machine virtuelle déjà lancée pour s’exécuter. Dans ce cas, l’utilisateur gagne, pour chaque application Java, le temps de lancement de la JVM et son occupation mémoire. Foin de rêve ! ce miracle existe déjà : c’est NailGun qui n’a qu’un inconvénient (logique). Tout programme Java utilisant dans son code la méthode System.exit() arrête cette JVM serveur. Dommage. Mais il me semble que ça fait partie des projets de Sun pour l’avenir …

Mes indispensables gadgets

Quand j’arrive sur un nouveau poste, comme tout bon geek, je passe un bon bout de temps à installer toute une série de logiciels et de thèmes rigoureusement indispensables à mon équilibre noosphérique. J’avais trouvé un blog sur lequel l’auteur référençait tout ça intelligement. Malheureusement, je n’ai pas son talent (dès que je retrouve cette super-liste, je la rajoute). Voici donc ma liste :

  • Réseau
    • Opera (adware honnête) est, à mon sens, le meilleur navigateur du moment (et ce depuis au moins huit ans). Devant FireFox (freeware), et largement devant la bouse de Microsoft (qu’on devrait interdire de web).
    • XNews (freeware) malgré son aspect … rustique, est le meilleur client NNTP du monde, mais son meilleur manuel en français n’est pas du tout au même endroit (il est même particulièrement difficile à trouver).
    • RndSig IV (freeware) est le seul gestionnaire de signatures pas-tout-à-fait-aléatoire que je connaisse. Il permet en effet d’associer aux signatures des mots-clés qui les « déclenchent ». Bref, le résultat est rigolo. De plus, il marche n’importe où (ou plus exactement dans n’importe quel champ de texte) et donc avec Opera, XNews ou même (mais c’est folie d’y penser) Outlook.
  • Développement
    • Pendant longtemps, je pensais que TextPadétait le meilleur éditeur de texte possible … Mais récemment, j’ai changé d’avis. D’abord, parce que je ne me trouvais pas très honnête d’utiliser un logiciel d’une manière pas totalement honnête. Et ensuite, parce que j’ai découvert Notepad++ qui fait tout aussi bien que Textpad, mais qui est gratuit et open-source.
    • Eclipse (freeware) est mon IDE de choix. C’est quasiment le plus puissant (seul Idea (499 $) est mieux). Et c’est aussi le plus extensible (car conçu dans ce but).
    • HttpLook (freeware) est un très bon analyseur HTTP qui permet pour le développement web de savoir ce qui se passe.
    • Ultr@VNC (freeware) est une version un peu améliorée du fameux VNC accélérant encore le transfert.
    • PuTTY (freeware) fait partie des standards du développeur un minimum intelligent, surtout lorsqu’il doit ouvrir un terminal Unix quelconque. Et quel bonheur de l’associer à un client X Open-Source (freeware) pour lancer les applications graphiques avec un confort inégalé (même par Ultr@VNC, du reste).
  • Système
    • Agent Ransack (version gratuite d’un logiciel plus puissant) est le plus simple des outils de recherche dans des fichiers, bien avant les Google Desktop (freeware) et autres grosses mécaniques d’indexation qui ne fonctionnent que pour certains types de fichiers.
    • WhoLocksMe (freeware) ne fait qu’une chose : dire, en cliquant droit sur le nom d’un fichier, qui le bloque et empêche, par exemple, sa suppression
    • CLCL (freeware) est le meilleur outil d’amélioration du presse-papier que j’ai eu sous les yeux. il est simple, pas trop intrusif et marche dans tous mes logiciels exotiques (comme par exemple opera et Eclipse, conçus sur des bases multiplateformes assez différentes)
    • SuperCopier (freeware) permet de définir une priorité aux copies, et surtout de les effectuer tranquillement les unes après les autres, sans saturer le processeur.
    • Les Power Toys pour XP (freeware). Parmi eux, on trouve l’indispensable « CmdHere » qui permet d’ouvrir l’invite de commande depuis l’explorateur de fichiers, ou un très beau remplaçant pour la fenétre ouverte par ALT-TAB.
    • 7-zip est sans doute le meilleur archiveur-désarchiveur. Compatible zip, tar et autres rar, il est en plus open-source et très pratique.
    • PDFCreator (freeware) est une imprimante virtuelle vers du PDF. Il permet donc de générer ces adorables documents à partir de n’importe quel document imprimable, comme par exemple mon CV en HTML.
    • Un patcheur pour la DLL UxTheme (freeware). A quoi ça sert ? A avoir tout simplement un beau Windows XP qui vous ressemble, plutôt que de se contenter de ce que Microsoft veut bien vous offrir !
    • Allway sync (freeware) permet la synchronisation facile de deux répertoires.

Et ce ne sont là que les indispensables[EDIT]Ca y est, j’ai retrouvé le site : http://www.marktaw.com/reviews/MyFavoriteSmallware.html

Les hotlines peu touchées par le tsunami

Quand je parlais récement de ce raz-de-marée, je ne m’attendais pas à ce fascinant article de Wired. J’en retiens notamment la phrase (tout à fait effrayante pour moi)

« What does this mean for outsourcing? » she asked. « The other thing is why don’t they train their customer service people to say it the way it is? I don’t want them to tell me someone will pick up the phone in 10 minutes and then they don’t. Or, if they don’t call me back, I don’t want to hear, ‘I will get back to you’ and then they don’t. It’s frustrating and it’s unprofessional. »

En gros, cette brave dame qui a planté son Symantec demande à son fournisseur pourquoi le centre d’appel indien ne répond pas, et s’insurge du fait qu’on lui dise ben … euh … (gasp) … on va vous répondre dans dix minutes. Tout ça parce que le gars au bout du fil vient d’apprendre que sa tante, qui habitait jadis un charmant village de la côte, est sans doute morte à l’heure qu’il est.

Réfléchissons ensemble au blonomic

Bon, allez, puisque le blog est approximativement stabilisé (il manque encore un ou deux plugins intéressants, mais c’est une autre histoire), commençons ensemble la réflexion sur ce que pourrait être un nomic par blog. J’ai l’avantage d’avoir déja participé à deux nomic par liste de diffusion (tous deux défunts) et à un nomic par newsgroup (qui lui semble plutôt entré dans la léthargie qui menace tout nomic trop peu intéressant). C’est dommage pour Conanomic (le nomic par newsgroup) car il portait quelques idées intéressantes (comme par exemple l’obligation de règles courtes, le fait qu’il soit ouvert, autrement dit sans limite explicite, et son côté impérial mais pas trop). Voici donc pour moi quelques qualités d’un bon nomic :

  • Adapté à son support (car la forme définit le fond). Dans le cas présent, les règles devront tenir compte des possibilités de commentaires (évidement utilisés comme moyen de vote), et de trackback (peut-être utile comme contre-proposition, et à tout le moins pour faire vivre le nomic).
  • Adapté à son public. Je doute personnellement que ce blog soit lu par plus de cinq personnes. Ca fait donc très peu de votants potentiels (je ne parle même pas ici de vrais votants). Bien sûr, ça simplifie la vie, en évitant la mise en place de procédures complexes de décompte des votes, mais d’un autre côté, ça donne peu de grain aux votes.
  • Et finallement, correspondant à mes possibilités de maintenance (parce qu’en le lançant, il me paraît évident que je vais hériter d’une responsabilité de type administrative).

Bref. ça me paraît assez peu évident.