Javascript est un langage qui dispose de sa propre logique un peu tordue. Sa syntaxe ressemble vaguement à celles d'autres langages, mais on obtient parfois des résultats suprenants. Et puis ces erreurs incompréhensibles « this is undefined », « undefined is not a function », etc. Mais pas de paniques, suivez ce tutoriel pour bien comprendre Javascript.
Vous savez tous ce que sont les automates cellulaires, n'est-ce pas ? Bon, pour les cancres et les gens qui ont vécu dans une cave pendant des années, je vous fait un court rappel. Un automate cellulaire est une grille à n dimensions, découpée en cases ou « cellules », chaque cellule pouvant adopter une parmi plusieurs valeurs à un instant t. La vie d'un automate cellulaire est découpée en intervalle de temps distcrt. À chaque itération, la valeur d'une cellule depend de la valeur des cellules environnantes lors de l'itération précédente. C'est clair ?
Le plus célèbre des automates cellulaires est très probablement le Jeu de la vie et ses fascinantes évolutions, mais c'est loin d'être le seul. Aujourd'hui, pour la beauté des yeux et du code, nous nous intéresserons aux automates cellulaires élémentaires.
Ce type d'automate est le plus simple qu'il puisse exister : une seule dimension (une ligne au lieu d'une grille), deux valeurs possibles pour chaque cellule (0 ou 1) et chaque cellule ne dépend que d'elle même et ses deux voisins les plus proches pour ses changements d'états. Pourtant, même avec une telle simplicité, certains automates conservent des propriétés amusantes.
Imaginez un combat homérique entre les forces du bien et du mal, luttant pour la domination du monde. Dans le camp des forces du mal : la procrastination, Internet Explorer et les cycles en V ; dans le camp des forces du bien : Python, le café et les tests automatisés.
Tout le monde aujourd'hui est d'accord pour dire qu'écrire des tests est probablement la tâche la plus efficace quand il s'agit de garantir un code robuste et maintenable. (Enfin, presque tout le monde ; ceux qui dénigrent les tests sont en général ceux qui sont trop flemmards pour en écrire.)
À ce titre, Django se montre exemplaire, et la documentation relative aux tests est aussi complète que détaillée. Seulement voilà, quiconque a déjà travaillé sur un projet Django pendant plus de quelques semaines sait que de nombreuses questions sont laissées de côté. Et notre développeur / testeur est réduit à parcourir les bas-fonds du web pour trouver réponse à ses questions.
Comment écrire une suite de tests maintenable ?
Comment tester des fonctionnalités qui utilisent javascript intensément ?
Comment tester des fonctionnalités qui font appel à des web services et sont fortement couplés ?
Comment être certain que les tests qui tournent sur ma machine fonctionneront aussi sur la prod ?
Sans plus tarder, voici quelques réponses à ces questions.
L'obsolescence des compétences est l'un des dangers qui guettent le vaillant
travailleur du Web. Notre domaine d'activité évolue tellement vite, tant au
niveau des outils, des méthodes, des pratiques, des technologies… que rester à
la page est un défi permanent.
Si, fraîchement émoulu de son école, notre jeune Webie·ne se lancera à corps
perdu dans l'apprentissage du x-ième framework Javascript avec un enthousiasme
toujours renouvelé, le senior finira peut-être par ressentir ennui et lassitude
face à la répétitivité de la chose.
Comment prendre de la distance avec sa veille techno sans pour autant se
laisser distancer par le Web ?
Ces quelques années m'ont amené à considérer certaines façons de faire plutôt
que d'autre, et à compiler une liste de bonnes pratiques qui me paraissent
positives dans la majorité des cas.
Ces bonnes pratiques ont différents objectifs, qui finissent plus ou moins par
se rejoindre :
Il y a quelques semaines, nous avons vu comment créer une page spécifique dans Mezzanine pour afficher une carte grâce à OpenStreetMap. Nous allons poursuivre l'exercice et en faire une application un peu plus puissante. Notre but : permettre à un administrateur de rentrer lui-même différents « lieux » ou points intéressants, pour qu'ils puissent s'afficher sur la carte. Chaque point est cliquable, et dispose de sa propre url. Pour pousser un peu le raffinement, nous utiliserons Backbone.js pour que la navigation soit dynamique, et éviter la nécessité de recharger toute la page à chaque fois.
Si vous n'avez pas vécu sur une branche d'arbre les dix dernières années, vous
savez probablement que le concept de vie privée est quelque peu chahuté ces
derniers temps.
S'il y a un type, dans l'Histoire des Sciences, qui mérite le respect absolu,
c'est bien Isaac Newton. D'ailleurs, ce n'est pas pour rien si Gotlib en a fait
son égérie : les génies se reconnaissent entre eux.
Voilà la reprise, les premiers froids, les feuilles qui tombent, la nostalgie des vacances, etc. Mais la rentrée est également pour moi l'opportunité de dépoussiérer un peu mon cerveau et ce blog, avec du temps consacré à l'indispensable… Veille techno. Parce que la veille, c'est comme le sport. Quand on ne pratique pas, on s'encrasse vite.