C'est quoi un architecte ? Ça code ou pas ?

Je me pose la question depuis que je suis censé exercer ce métier. Je dis “censé” parce que c’est ma fonction officielle, mais que je ne saurais pas encore précisément la décrire en quelques phrases simples. De plus, j’ai conscience de ma relative faible expérience dans le domaine. Idéalement, je me qualifierais donc plutôt architecte junior^[1]^, pour montrer un peu d’humilité, chose dont j’ai souvent besoin, mais je me soigne.

Ce qui me rassure, c’est qu’il semble que je ne sois pas le seul à me poser la question, quant à la définition de mon métier…

Pour moi, pour faire court, un architecte, c’est un gars qui sait programmer. Quelqu’un qui adore ça. Curieux et ouvert, ce quelqu’un se doit de concevoir un système non pas pour se faire plaisir, mais pour qu’il soit à la fois propre, évolutif sans être non plus sur-conçu ^[2]^ et le plus simple possible à utiliser.

Je pense donc qu’un architecte (informatique) doit savoir programmer. En fait, je pense même plus précisément qu’un architecte n’est finalement qu’un bon programmeur. Et il doit continuer à coder, toujours, sinon il ne peut plus prétendre être architecte, c’est aussi simple que ça : comment une personne peut-elle oser (pro)poser des règles si ce ne sont pas celles qu’il utilise tous les jours et dont il est convaincu du bien fondé ?

Plusieurs articles vont dans ce sens. D’abord, le célèbre anti-pattern ArchitectsDontCode, demandant notamment :

How can someone who never writes a line of code be responsible for how that code will be written?

ou en français :

Comment quelqu’un qui n’écrit jamais une ligne de code peut-il être responsable de comment ce code sera écrit ?

En fait, il y a une différence importante entre un architecte du bâtiment et celui de l’informatique. C’est d’ailleurs le sujet d’un article de Martin Fowler :

A software architect is seen as a chief designer, someone who pulls together everything on the project. But this is not what a building architect does. A building architect concentrates on the interaction with client who wants the building. […] Given the focus on client interaction I think the closest equivalent in software development is a user-interface designer.

Le travail d’un architecte logiciel

  • Via a19s, les erreurs les plus courantes des “architectes”. Everybody Hates Architects. Écrit sur un ton humoristique qui le rend très agréable à lire, ce billet donne néanmoins des points très intéressants. Un qui me touche particulièrement :-)

Do You Talk A Lot? Then Just Shut Up - Have a nominated day where you don’t try to take over a conversation with either Technology, Patterns or some hair-brained new idea you’ve had that involves something you read in the new MSDN magazine regarding vector graphics on a device implanted inside the human skull using web services. Find the person on your team that you talk to the least, and spend some time listening to what they do and how they do it. Really try to just shut up and listen. If you don’t want to be the software world’s equivalent of a corridor bogey man, then practice some humility as often as you can. An occupational hazard of all that zippy confidence and rapid mouth action is that you’ll be blind-sided when the day comes that you didn’t listen enough.

This kind of architect must be very aware of what’s going on in the project, looking out for important issues and tackling them before they become a serious problem.

Ce billet n’est évidemment en rien exhaustif, mais il a le mérite de m’avoir permis de vous donner les quelques liens que je trouvais intéressants ci-dessus :).

Notes

[1] Même si je n’aime pas trop ce suffixe. En informatique, ce suffixe junior se rencontre parfois sur les CV, le plus souvent pour le pompeux “Chef de projet junior”. Toutefois, je me demande si l’informatique serait le seul métier où on n’est généralement pas X, mais X junior, lorsqu’on est jeune. Est-ce que les architectes du bâtiment sont au début de leur carrière affublés de ce type de suffixe ? À mon avis, ce suffixe est superflu. C’est au recruteur de regarder le CV pour calculer l’expérience du candidat. Selon le projet en question, il pourra ainsi juger de l’importance de la longueur de cette expérience.

[2] j’aurais bien écrit overdesigné, mais ça fait un peu pédant. J’entends pas là quelque chose d*‘usineàgazesque* :-)

Samsung YP-Z5

Samsung YP-Z5Je me suis acheté il y a maintenant quelques semaines ce lecteur MP3.

J’y ai adjoint des écouteurs Koss pour un son de grande qualité. Ces écouteurs intra-auriculaires sont tellement “isolants” que je suis obligé de mettre le son au minimum lorsque je marche dans la rue, afin d’entendre un peu l’environnement (voitures, vélos…).

Je suis globalement très satisfait du lecteur et des écouteurs. La radio marche très bien, elle possède un mode recherche automatique bien pratique. Le seul point noir que j’ai trouvé au lecteur est une traduction française absolument catastrophique. Celle-ci m’énervait tellement que j’ai repassé le lecteur en anglais. Deux petits exemple rapides : Shuffle All, qui permet une lecture aléatoire de tous les morceaux, a été traduit Brouillez Tous, ou Language laissé Language… N’importe quoi ! Y a aucun français qui bosse chez Samsung qui pourrait se sortir les doigts du cul pour nettoyer cet immondice de traduction ? Ou alors au moins un responsable des ventes en France qui pourrait au moins s’intéresser à ce qu’il vend ?

Grâce à Seb, j’ai trouvé le site Z5 Lounge grâce auquel, à peine déballé, j’ai upgradé mon lecteur au dernier firmware 2.47. Soit dit en passant, c’est bluffant de simplicité à faire. Un autre avantage est son autonomie, effectivement impressionnante. Je n’ai pas compté pour vérifier, mais la trentaine d’heures annoncée ne me semble pas être démentie à l’utilisation. Toujours à propos de ses points forts, il est l’un des rares lecteurs du moment à supporter autant de format, et notamment le ogg, format ouvert alternatif au mp3 (mieux, donc).

Si j’étais sûr de pouvoir réparer mes éventuelles conneries, j’essaierais bien d’éditer le binaire de ce firmware pour corriger cette traduction ni faite ni à faire, mais je ne vais pas risquer de devoir renvoyer mon lecteur chez le fabriquant, voire de devoir le jeter, pour ça…

Note : Si quelqu’un de chez Samsung lit ce billet, je suis même prêt à aider pour la traduction si besoin. Franchement, vu les qualités techniques du matériel, c’est affligeant une qualité pareille sur la version française ! batmat chez batmat point net :-).

Ressources intéressantes sur le YP-Z5 :

JSR 310 : Date and Time API

Génial.

L’API standard de Java manque encore aujourd’hui cruellement d’une API de traitement des dates, de calcul des durées entre deux dates et tout ce qui peut avoir un rapport avec le traitement du temps dans un programme. L’une des bibliothèques les plus connues qui comble cette lacune est Joda-Time.

Une JSR est donc en marche pour répondre à ce besoin de façon standard. Ceux qui ont déjà utilisé les classes Calendar et Date savent à quel point elles sont incomplètes et parfois même bugguées. Vivement que ce groupe de travail produise la base de ce javax.time.*, base sur laquelle nous pourrons jeter un oeil afin de commenter. Ça va sûrement être très intéressant. Nous découvrirons alors notamment s’il est entrevu un chemin de migration entre la classe Date actuelle et celle qui sera conçue. A priori, les deux classes devraient en effet être rendues obsolètes :

It is intended that this JSR will produce classes that effectively replace the need for the existing Date and Calendar APIs. Over time we look forward to other specifications being updated to us the new date and time API.

Mais le groupe de travail tentera évidemment si possible de réintégrer ces classes dans le nouveau modèle :

In terms of design, it is intended that immutable classes will form the core. It is also intended to use interfaces, if possible, to bring the old Date and Calendar classes into the new model. The expert group will also examine if Calendar can be reimplemented internally using the new date and time classes.

Vu la base de code dans la nature qui dépend de Date/Calendar, j’espère qu’on trouvera un moyen de fusionner l’ancien et le nouveau modèle…

Thème du site en cours de mise à jour

Ceux qui consultent le site directement de temps en temps sans passer par le fil RSS remarqueront certainement des changements sur son rendu.

Pour ceux que ça intéresse, j’ai utilisé comme base le thème Aorakit 3F de Kozlika. Maintenant que la structure qui me convient est posée, je récupère bout par bout les parties de la CSS que ce blog avait lorsqu’il tournait avec dotclear 1. J’essaie à cette occasion de supprimer les trucs un peu tordus qui s’étaient accumulés avec le temps dans la CSS :-).

J’ai gagné un temps précieux grâce au travail de Kozlika pour poser la structure que je voulais. Merci beaucoup.

Comment fusionner plusieurs listes en une seule avec Spring [Test de coloration syntaxique :-)]

Attention, fonctionnalité en test :-). Merci GeShi

C’est pas mal du tout, mais il faut encore améliorer le rendu. Notamment les espaces inter-lignes. Il faut aussi que je passe en mode “class” et que j’écrive le code CSS associé au rendu que je veux donner à mon code.

package fr.mipih.foundation.spring;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.config.AbstractFactoryBean;

/**
 * Classe Spring permettant de fusionner plusieurs tableaux ou listes en une seule.
 * 
 * @author Baptiste Mathus
 */
public class ListMergerFactoryBean extends AbstractFactoryBean
{
    List<String> mergedSourceList;

    public Class getObjectType()
    {
        return List.class;
    }

    public void setSourceLists(List[] sourceLists)
    {
        mergedSourceList = new ArrayList<String>();
        for(List<String> l : sourceLists)
        {
            mergedSourceList.addAll(l);
        }
    }

    @Override
    protected Object createInstance() throws Exception
    {
        logger.debug(mergedSourceList);
        return mergedSourceList;
    }
}

Remise de diplôme, septembre 2005. Que de souvenirs...

J’ai eu enfin l’idée que j’aurais dû avoir il y a longtemps tout à l’heure. J’ai eu un mal fou à essayer de faire tourner la vidéo de la soirée de remise de diplôme d’ingénieurs de mon école : Ingénieurs 2000.

Je me suis donc créé mon compte YouTube tout à l’heure et j’ai uploadé la vidéo. La qualité est assez basse, à cause du fait que la caméra numérique utilisée n’était qu’une très bas de gamme. Mais c’est toujours beaucoup mieux que rien, et ça m’a quand même presque mis la larme à l’œil de revoir cet évènement et toutes ces têtes d’un coup…

Aspect particulièrement énorme de la remise : Dominique Revuz nous a tous appelé chacun notre tour par nos prénoms, noms ET surnoms. La vidéo se termine par quelques plans pris lors du restaurant après la remise, où DR était d’ailleurs aussi présent. Ça donne ça :

9o960aO-mJQ

Ça a été trois années géniales. On en a bavé, ça c’est clair, mais je le referais dix fois s’il le fallait.

Citation d'une vieille truffe

L’autre jour, dans le bus, une dame dans les 60 ans, pas BCBG mais presque, parlant à une dame de 70 ans passés :

Et vous avez entendu parler de la maison à 100000 euros ? Non mais dites donc ! Vraiment, les gens (petit rire narquois). Non, mais c’est encore un coup médiatique, rien de plus ma bonne dame.

l’autre

Oh oui, hein !

la première

Non, mais si les gens se renseignaient un peu au lieu d’écouter ce genre d’information, ils se rendraient compte de la réalité. Une maison, ça se trouve à partir de 70000€ sans problème. Non, mais vraiment, hihi. C’est affligeant.

l’autre

Oooh ben oui, hein !

Et moi, entendant ces anneries, je me disais : “tais toi, Baptiste, tais toi, ne t’énerve pas !”.

Truffasses !

Le marché immobilier est en telle explosion que les prix augmentent sans arrêt. Vous voulez un exemple de prix réel d’aujourd’hui, en 2007, et pas celui d’une vieille neuneute qui se réfère certainement aux prix de 1980 ? Eh bien, ça me désole, mais en gros, pour une petite maison d’environ 90m² de surface habitable et 3 ou 400m² de jardin, ce à une dizaine de km de Toulouse au minimum (et je suis gentil) vous pouvez compter 200000€… Oui, deux cents mille euros, vous avez bien lu.

Autre exemple : T3 de 60m² dans Toulouse, pas dans le centre, dans un quartier agréable comme St Michel, comptez 130000€ au bas mot (et plutôt 140 à 150000 minimum en étant plus réaliste).

Le plus triste dans tout ça, c’est que je ne comprends pas comment il est encore envisageable pour les bas salaires d’acheter une maison à moins de 50km d’une ville comme Toulouse. Au taux d’emprunt actuel, il faut en gros en effet s’endetter aujourd’hui 25 ans, en payant 1200€ par mois, pour rembourser 200000€ “seulement”…

Pascal Nègre à propos des DRM : champion de la métaphore

Via 404BNF, notre star des neurones gravés sur CD a proféré :

Je ne sais pas si vous avez une voiture, mais si vous avez une voiture, elle roule soit à l’essence, soit au gazole, eh bien votre moteur n’est pas interopérable. Vous pouvez pas mettre du gazole dans un moteur à essence.

ou

Le mec qui achète une PlayStation ne va pas acheter des jeux Nintendo. C’est la même chose pour la musique.

Donc, si vous voulez payer vos musiques une fois pour votre chaîne HiFi, une fois pour l’autoradio, une fois pour votre lecteur mp3 et une fois pour votre grille pain, votez pour Pascal Nègre et les DRM…

Amélioration de myPIXmania : utiliser les informations exif

Récemment, nous avons commandé une centaine de photos chez myPIXmania. Je viens de finir de noter au dos de chacune :

  • la date
  • les personnes présentes
  • le lieu

Vous imaginez le temps que j’ai passé à faire ça. Ça se compte clairement en heures. Et encore, j’utilise fort heureusement KPhotoAlbum (anciennement KimDaBa) qui me permet de retrouver une photo en tapant quelques noms et trois clics. Ça me désespère d’autant plus que la date, au moins, aurait pu être automatiquement inscrite au dos de la photo.

Si vous ne saviez pas que votre appareil photo numérique stockait des informations très intéressantes en plus de la photo elle-même, c’est le moment de le découvrir. On appelle ces informations des méta-données, c’est à dire des données sur les données (ici, la photo). Le standard informatique permettant de décrire une photo s’appelle EXIF.

Exemple de ce que je peux voir dans ma fenêtre propriété :

Propriétés EXIF d’une photo

Comme cette information est présente, il est à mon avis très dommage que des entreprises comme PIXmania sur le marché de la photo numérique ne l’exploite pas. J’ai cherché à leur faire la remarque sur le site, mais les critères pour poster une question sont tellement restrictifs que c’est impossible sans choisir un problème au hasard et sans indiquer de numéro de commande…

Si quelqu’un connaît d’ailleurs un autre site d’impression de photos numériques capable d’imprimer au moins la date de la photo au dos, je suis très intéressé.

Migration Dotclear 2 #2 - RewriteRule et appel à contribution

Bon, c’est mieux. Maintenant, normalement les flux RSS sont correctement redirigés. Il me reste à supporter les anciennes URL, ce que je m’escrime à faire depuis plusieurs heures sans succès.

Je suis principalement reparti du billet de kozlika sur dcTips.

Pour les flux des billets et des commentaires d’ici, ça marche sans problème et ça donne ça :

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^dotclear/rss.php /blog/feed/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^dotclear/rss.php /blog/feed/rss2/comments? [R=301]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^dotclear/atom.php /blog/feed/atom [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^dotclear/atom.php /blog/feed/atom/comments? [R=301]

Par contre, pour la redirection des anciens billets, je patauge. Exemple http://batmat.net/blog/2005/05/02/1… ne fonctionne pas de base. La nouvelle inclut en fait simplement “post” entre “blog/” et la date, ce qui donne http://batmat.net/blog/post/2005/05…. J’ai donc fait comme ça :

RewriteRule ^blog/(\d{4})/(\d{2})/(\d{2})/(\d+.+)$ /blog/post/$1/$2/$3/$4 [R=301]

Mais visiblement, cela ne fonctionne pas (cliquez sur le premier lien pour en être convaincu :-)). Je ne comprends pas trop pourquoi. Ceci est très certainement dû au fait que je ne connaissais de mod_rewrite que le nom il y a encore quelques heures. J’ai l’impression que le fait que le fichier blog.php existe prend le pas et n’exécute pas la règle de réécriture.

Si quelqu’un a une idée de comment résoudre le problème, et par la même occasion pourquoi je mange une Internal Server Error dès que j’essaie d’activer l’option RewriteLog pour comprendre ce qui se passe, je suis ouvert à toute proposition…

D’avance merci

Page 10 of 33 Older