Petit article pour vous indiquer qu’est ce qui a changé avec la nouvelle version de Pydéfis actuellement en ligne ici : Pydéfis.

Tout d’abord, j’ai complètement enlevé l’ancienne version, ce qui me facilite la migration des données d’une application à l’autre. A priori, vous pouvez tous vous loguer sur la nouvelle appli, et vos validations de défis sont à jour. Si vous avez l’impression qu’il y a un problème, vérifiez d’abord à deux fois, SVP (il commence à y avoir beaucoup d’utilisateurs…) et si vraiment vous pensez qu’il y a un problème, envoyez-moi un email.

Scores

Avant, c’était un point par challenge. Il y avait donc pas mal d’ex-aequos. En plus, gagner un tout petit point… c’est pas toujours satisfaisant. Surtout si on l’a gagné à la sueur de son clavier, alors qu’un défi super-facile aurait aussi permis de gagner un point.

Le système de comptage des points a donc basculé pour quelque chose qui ressemble à ce qu’on fait pour c0d1ngup : un défi rapporte d’autant plus de point qu’il a été peu résolu. Mais attention ! l’acquisition des points n’est pas définitive (vous ne gagnez rien de plus en résolvant le problème avant les autres). Votre score est en permanence recalculé. Si vous avez 500 points, que vous quittez le site, puis qu’avant votre retour, un autre callicodeur résout un défi que vous aviez vous même résolu, ce défi là rapportera éventuellement moins de points, et votre score va baisser (sans que vous n’ayez rien fait… c’est cruel 😀).

Voici la formule qui indique combien de points rapporte un défi :

max(1, round(555 / (nb + 55)))

avec nb le nombre de résolutions du défi en question. Si vous êtes le seul à avoir résolu un défi, celui-ci vous rapporte donc 10 points. Si vous êtes 100, il vous en rapporte 4. À partir de la 316e résolution, il n’en rapporte plus que 1, ce qui est le minimum que peut rapporter un défi.

Sécurité

La gestion des mots de passe était un peu légère dans l’ancienne version. C’est maintenant du costaud (scrypt salé et poivré). Toutefois, il faut que vous vous connectiez pour basculer sur le nouveau mode de stockage des mots de passe (non… je les avais pas stockés en clair quand même…). Je profiterai de ce basculement pour supprimer les comptes qui n’auront pas migré dans quelques mois (je préviendrai par courrier électronique avant).

Interface

L’interface de résolution des défis en elle-même n’a pas changé, ni sur le fond, ni sur la forme. Vous avez juste parfois un écran en moins lors de la proposition d’une réponse (le retour du site s’affiche sur la page du défi elle-même).

Pour le reste des écrans (scores, réglages etc…), l’organisation a changé. Toutes les fonctionnalités ne sont pas de retour, mais vous pouvez tout de même changer de mot de passe 😇. Le reste sera ajouté petit à petit.

Forum

Ça ne se voyait peut être pas trop, mais le forum était une appli complètement séparée, avec un système à la noix de jeton (qui a bien marché quand même) qui permettait de se retrouver authentifié sur l’appli de forum lorsqu’on l’était sur Pydéfis. Les deux applis ont maintenant fusionné, ce qui a un peu simplifié la base de code et évitera probablement des écrans bizarres vous demandant de vous connecter. Toutefois, j’ai laissé un bandeau supérieur différent entre le forum et l’interface principale, ça me semblait mieux.

Les messages vides, grosse erreur de design de code de ma part, ne vont plus polluer le flux RSS ou le panneau d’affichage des messages. Dans l’ancienne version, en créant un nouveau message et en annulant finalement (pourquoi vous avez été si nombreux à cliquer sur Nouveau message alors que vous n’aviez rien à écrire, je sais pas… 😋), il y a un message vide qui restait en ligne. Ça ne devrait plus arriver.

Vous pouvez récupérer tous vos message (voir section Mes données)

Le flux RSS des demandes d’aide a aussi changé d’adresse. Vous trouverez l’icône avec la nouvelle adresse dans la barre de menu de la partie forum.

Intégration WeChall

Pydéfis est maintenant intégré à WeChall. Si vous êtes inscrit sur WeChall, vous pouvez donc y faire remonter votre score PyDéfis. Si vous avez épuisé PyDéfis, regardez un peu sur WeChall, vous trouverez sûrement d’autres sites de challenges qui vous plaisent.

Les Tags

Le comportement des tags a un peu changé. Si vous cliquez sur un tag, il s’allume en jaune. Si vous allumez plusieurs tags en jaune, seuls les défis ayant tous les tags sélectionnés s’affichent (c’est un et).

Il y a des tags spéciaux (boutons verts) dont le nom commence par @ et qui permettent de filtrer, par exemple, juste les défis non résolus, ou juste les faciles etc…

Attention, les filtres sont persistants (à vote session). Si vous quittez la page de liste des défis et revenez dessus, les filtres sont encore actifs. On peut les enlever en cliquant sur le tag @!Reset_filtres.

Mes données

Sur votre page de profil, vous disposez d’un bouton vous permettant de récupérer, au format JSON toutes les données qui vous concernent, sauf le mot de passe haché. En particulier, vous pouvez ainsi récupérer vos messages de forum, et donc les solutions que vous avez posté sur le site (merci de ne pas les publier ailleurs de manière ouverte).

Divulgâchage des solutions

Enfin, ça n’a pas changé, et je le remets ici : merci de ne pas publier de solution toute prête sur le net (souvent GitHub), surtout si elle sort lors d’une recherche Web toute simple. Autant l’écriture de docs explicatives sur la manière de procéder doit être encouragée (d’ailleurs vous pouvez me soumettre des posts pour ce blog, vous serez bien sûr crédité comme auteur !), autant les solutions toutes prêtes sont à éviter. Il y a le forum pour ça, qui n’est accessible qu’à ceux qui ont déjà résolu le problème (et maintenant vous pouvez récupérer à tout moment votre travail, c’est pas perdu).

Technos

Pour information, le nouveau site est codé en Python/Flask (l’ancien était en Python/Bottle). Il n’y a (presque) pas de Javascript. Le design est basé sur Bulma (au lieu de Bootstrap avant).