Expériences


Double initialisation Java

Posté dans Astuces, Programmation par Enisséo le 19 juin 2008

J’ai découvert il y a peu de temps une subtilité dans le fonctionnement du langage Java. Il s’agit du déroulement de l’étape de construction d’une nouvelle instance d’une classe.

Saurez-vous deviner le résultat de l’exécution du programme suivant :

public abstract class ClasseA {
 
	private String parent = "A";
 
	public ClasseA() {
		System.out.println(parent);
		System.out.println(enfant());
	}
 
	public abstract String enfant();
 
	private static class ClasseB extends ClasseA {
		private String enfant = "B";
 
		public ClasseB() {
			System.out.println(enfant());
		}
 
		@Override
		public String enfant() {
			return this.enfant;
		}
	}
 
	public static void main(String[] args) {
		new ClasseB();
	}
}

(plus…)

Vous avez dit bizarre…

Posté dans Astuces par Enisséo le 31 mars 2008

Aujourd’hui, je me suis vu écrire en Java une méthode très pratique (si, si) qui consiste à retourner le paramètre d’entrée. method(a) { return a; }. À quoi pouvait donc servir cette méthode qui apparaît a priori bien inutile ?
(plus…)

Applications de poche

Posté dans Astuces par Enisséo le 15 août 2007

Chez des amis ou sur des ordinateurs publics, un des principaux problèmes est la confrontation à un environnement inconnu : logiciels absents ou mal configurés, disque dur en vrac, etc. Avec l’augmentation de l’espace mémoire des clefs USB et leur encombrement, plusieurs solutions ont émergé pour permettre à tout un chacun de voyager avec son espace de travail dans la poche.

Je vais développer ici dans un premier temps ce que j’utilise actuellement : les applications portables. Il existe de nombreux logiciels qui ne nécessitent pas de s’infiltrer dans le système d’exploitation pour être utilisés, et qui peuvent donc être installés sur un disque amovible. On trouve à peu près tout ce dont on a besoin en matière de fonctionnalités : navigateur internet, client mail, traitement de texte… Wikipédia en possède une liste très complète et organisée, avec en bonus-track une liste de jeux portables.

Si vous vous sentez un peu perdu dans tout ça, John Haller a prévu de quoi vous simplifier la vie : PortableApps.com. Ce site très bien fait fournit une sélection d’applications portables (Firefox, Thunderbird, OpenOffice…) ainsi qu’un menu qui permet de lister les logiciels installés et des dossiers personnels (”Musique”, “Vidéos”…) pour donner à la clef un aspect plus “Mes Documents”. L’installation s’effectue sans souci (je conseille d’ailleurs également de l’effectuer à la racine de la clef pour une question de clarté) et l’utilisation est simple. Pour installer des applications non proposées sur le site c’est tout aussi facile : il suffit de l’installer dans le dossier prévu à cet effet sur la clef et le menu se charge d’explorer ce dossier pour trouver les fichiers exécutables et les rajouter dans le menu.

Un environnement de travail assez complet prend entre 100 Mo et 300Mo - OpenOffice en utilise déjà plus de 100 !. Il ne reste ensuite qu’à configurer les applications et à synchroniser les documents (en utilisant les porte-documents de Windows ou un logiciel comme Toucan, proposé par PortableApps) : on se sent enfin chez soi !

J’ai eu l’occasion de rencontrer d’autres solutions encore plus intéressantes, mais pas de les tester moi-même (pour le moment). Il s’agit d’environnement virtuels complets, détectés automatiquements à l’insertion de la clef et qui modifient jusqu’au bureau Windows : U3, Ceedo, MojoPac… Les vidéos de démonstrations sont explicites, et ces logiciels seront peut-être l’objet d’un prochain article.

En attendant, on peut donc, pour une somme dérisoire - les clefs USB 2Go sont maintenant disponibles à moins de 20 € et la plupart des logiciels portables (tous ?) sont gratuits - et pour un effort assez réduit, gagner sensiblement en confort et productivité loin de son ordinateur personnel.

Hard link sous Windows

Posté dans Astuces par Enisséo le 5 août 2007

Microsoft propose, en cherchant un peu, un système de hard link (lien hard) sous le système de fichier NTFS. Pour les fichiers, ils sont désignés comme tels (”Hard links”), mais pour les dossiers il s’agit des “Junction Points”. Pour les utiliser, deux solutions sont possibles. Très brutalement, à l’aide des scripts du système (programmes fsutil ou linkd) ou bien en utilisant des applications qui permettent d’abstraire ces commandes. J’ai testé plus particulièrement ntfslink, qui s’intègre dans l’explorer et qui permet de créer ou supprimer ces hard links ou junction points en quelques clics.

Cependant, tout comme pour les hard link proposés par Unix, la prudence est de mise : pour éviter les incohérences ou suppression non voulues, il est conseillé d’utiliser les outils du système de fichiers et non pas les commandes classiques de l’explorer Windows.

Synchronisation et porte-documents Windows

Posté dans Astuces par Enisséo le 29 juillet 2007

Ça fait maintenant quelques mois que je me plains ou déplore tout du moins l’absence d’outils de synchronisation de données efficaces pour d’une part sauvegarder les informations en plusieurs copies, et d’autre part travailler le plus possible avec des versions à jour de mes fichiers. Après un nombre incroyable de logiciels testés, j’ai finalement décidé de créer ma propre application de synchronisation. Seulement, ma maudite curiosité et un entêtement hors du commun m’ont fait reprendre la piste de la synchronisation de fichiers réseau par mon bon vieux Windows (menu “Outils” > “Synchroniser…”). J’ai donc commencé à fouiller sur l’aide pour (enfin) comprendre comme fonctionne cet outil. Et voilà qu’après quelques minutes je tombe sur un bout d’article de la documentation qui me parle de Porte-documents.

Il s’avère que Microsoft a déjà un peu pensé à un cas courant : travailler sur un autre ordinateur en apportant son travail sur clef USB (ou disque dur externe, c’était un exemple), et mettre à jour ses fichiers de retour à la maison. Pour cela, on créé un porte-document sur la clef (menu “Fichier” > “Nouveau” > “Porte-documents”). On copie ensuite tout un tas de cochonneries à synchroniser (le dernier projet sur lequel vous travaillez, vos documents personnels…) dans ce dossier spécial qui va stocker vos fichiers et le chemin absolu vers le fichier source sur votre ordinateur principal. Ensuite, il suffit de cliquer sur “Mettre à jour” dans le dossier (ou dans le menu contextuel) pour que chaque modification soit reportée de votre ordinateur principal aux fichiers du porte-document, même les suppressions de fichiers. On peut donc se balader de PC/Windows à PC/Windows avec sa clef et travailler dessus, quand on rentrera chez soi il suffira de mettre à jour le tout !

Il est cependant dommage que cet outil ne soit pas plus mis en valeur, et également plus abouti. Il manque en effet tout un tas d’options, notamment pour automatiser et rendre transparente la mise à jour (aux premiers essais il ne semble pas très autonome en matière de décisions, et il faut toujours cliquer sur mettre à jour : la documentation ne fournit pas apparemment de solution pour lancer la mise à jour dès insertion de la clef). Enfin, la synchronisation se fait sur un seul dossier : il n’y a pas moyen d’avoir une version du projet en local sur plusieurs ordinateurs.

J’ai appris que ce système existe depuis un moment sous Windows. Cependant, a-t-il été plus développé sous Windows Vista ? J’ai enfin pu constater que les dossiers semblaient lisibles sous Mac. Apparemment il s’agirait seulement d’un dossier classique avec un fichier spécial contenant les informations pour la synchronisation. C’est donc un point positif puisque ça rendrait le système utilisable sous Linux ou MacOS. À voir donc…