Accueil
  
Menu

Blog pro

dimanche, 15 août 2010

Mise à jour Dotclear

Aujourd'hui j'ai profité d'être en vacances pour mettre à jour mon installation Dotclear. Depuis quelques temps j'avais un petit message, m'invitant à effectuer cette opération.

La plate-forme Dotclear dispose d'un module de mise à jour automatisé. J'ai pas réussi à faire la mise à jour en automatique. Heureusement, on m'a proposé un lien pour le faire à la mano.

J'ai pas trouvé les instructions claires, alors que c'est super simple. D'abord faire une sauvegarde de son installation, puis charger sur le serveur les nouveaux fichiers. Copier le fichier de configuration, les thèmes (il y a surement d'autres choses) et voilà c'est fini.

Quand je pense que j'ai attendu trois mois avant de le faire.

mercredi, 2 juin 2010

Blocs static et champs en lecture seule

Depuis que j'ai commencé à étudier la programmation, j'ai eu la chance d'avoir rencontré des profs particulièrement intéréssants. On peut enseigner la programmation en ne s'occupant pas trop de certaines spécifités des langages, parce qu'elles sont trop complexes ou pas assez utiles. Ma chance a été d'avoir des profs qui m'ont donné l'envie de découvrir ces particularités.

C'est la raison de cette note. Je pars du principe que les non-développeurs ont lâché la lecture et que ceux qui restent maîtrisent suffisament les concepts objets et les langages Java et C#.

Les deux questions que je me suis posé avant de faire cet article sont :

Première question : lors de la construction dynamique d'une classe, qui du bloc static ou de l'initialisation des champs de classe est effectué le premier?

Seconde question : une fois cet ordre déterminé, quels résultats vais-je obtenir avec des blocs en lecture seule (readonly en C# et final en Java) initialisés et redéclarés dans le bloc static?

J'ai donc conçu une application dans chacun des deux langages pour tenter d'obtenir une réponse et pour comparer les résultats entre les deux univers. Les codes-sources sont disponibles ici, à vous de faire les tests.

Résultats obtenus avec Eclipse et Java 1.6 pour Java et Visual Studio et .Net 3.5 pour C#.

A la première question, la réponse est la même pour les deux : la déclaration du champs et son initialisation est faite avant l'exécution du bloc static. C'est assez logique, mais il me semble avoir vu un exemple où l'inverse se produisait en Java. Note pour plus tard : faire le test en Delphi et PHP.

A la seconde question, je m'attendais à une erreur d'exécution, une belle exception, et j'ai eu deux choses différentes.

Pour Java, c'est l'erreur de compilation. C'est bien foutu, on ne peut faire qu'une seule initialisation.

Pour C#, les deux initialisations sont acceptées et c'est la dernière qui prime, du coup on se retrouve avec un champ readonly qui peut prendre plusieurs valeurs.

C'est bon j'ai mes réponses.

- page 1 de 3


CARYL LE BRETON
| Un peu plus qu'un informaticien | © 2009 - 2010 | Remonter | Plan du site |