From 08254491955bfe4f07eb073b2829cabf90130747 Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Wed, 2 Jul 2008 06:38:17 +0000 Subject: [PATCH] MOD maj TODO et doc technique --- doc/TODO.txt | 33 +++++++++++++++++----------- doc/technique.txt | 56 ++++++----------------------------------------- 2 files changed, 27 insertions(+), 62 deletions(-) diff --git a/doc/TODO.txt b/doc/TODO.txt index b34919f..b74e68b 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -1,7 +1,8 @@ == TODO == === v1.1 === -* étudier la solution SVG et le calcul de pourcentage pour la largeur des fenêtres +* étudier la solution SVG et le calcul de pourcentage pour la largeur des fenêtres + * le calcul des largeurs devra surement être fait en pixel et actualisé lorsque le conteneur change de taille * Gestion de l'historique au niveau du navigateur (pouvoir revenir aux pages précédentes). Utiliser un plugin jQuery si possible. Voir du coté des ancres (fragment d'url) : #ancre. * http://www.euphorik.ch/#page=chat * Revoir le système de conversation : @@ -22,19 +23,21 @@ * supprimer le cookie si le client n'arrive pas à s'authentifier avec (réponse négative du serveur) * Mise à jour automatique de la version dans le about en fonction du tag/branche courant (lors de la mise en production) ? * Tests de monter en charge coté serveur, analyse de la complexité (regarder du coté des TODO dans le code). Utiliser eventuellement Tsung -* Profiling pour améliorer les performances (client et serveur) +* Profiling pour améliorer les performances (client et serveur) + * Ne plus attacher chaque evenement sur chaque message mais de manière générale à l'ensemble des messages * traitementComplet() de euphorik.js est très très lent à executer * Pouvoir récupérer son mdp (ou en générer unhttp://www.euphorik.ch/ autre) via son email. Marquer dans le profile que l'email sert à cela et n'est pas visible pas les autres personnes * (Pouvoir inverser le chat) tester la faisabilité * Réaliser un système de preproduction, étapes de preprod : - * Renommer euphorik_bd_update en euphorik_bd_maintenance et ajouter deux fonctions pour faire un backup et reprendre depuis ce backup + * Renommer euphorik_bd_update en euphorik_bd_admin et ajouter deux fonctions pour faire un backup et reprendre depuis ce backup + * Déplacer également les fonctions d'admin de euphorik_bd vers euphorik_bd_admin tel que "print_users" par exemple * 1) Réalisation d'un backup de la BD dans BD/backups/preprod.bckup - * 2) copie parfaite de l'environnement de prod vers /var/euphorik_preprod/ (sauf BD) - * 3) déplacement du backup de la BD dans preprod - * 4) copie d'un yaws_conf_preprod - * 5) lancer yaws (attention : port différent dans yaws_conf_preprod !) - * 6) lancer le processus de mise en prod pour la preprod - * 7) tester si tout va bien + * 2) Copie parfaite de l'environnement de prod vers /var/euphorik_preprod/ (sauf les mutables : BD) + * 3) Copie d'un yaws_conf_preprod + * 4) Lancer yaws (attention : port différent dans yaws_conf_preprod !) + * 5) Restoration des données preprod.bckup + * 5) Lancer le processus de mise en prod pour la preprod + * 6) Tester si tout va bien === v1.2 === * option dans le profile pour ouvrir les liens dans un nouveau tab * Pouvoir auto répondre à une conversation @@ -78,10 +81,14 @@ * gestion des timezone (fuseaux horaire) : * L'utilisateur peut simplement définir une timezone dans son profil, les dates sont alors affichées en fonction de sa zone (en option) * Transfert des messages JSON (AJAX) en https et le noter dans la faq (même la mafia chinoise ne peut pas sniffer les messages). En fait il suffit (sauf erreur) de sécuriser euphorik : https://www.euphorik.ch - * voir : http://cert.startcom.org/ pour un certif gratuit ou du coté de cacert.org (linuxfr.org l'utilise) + * voir : http://cert.startcom.org/ pour un certif gratuit ou du coté de cacert.org (linuxfr.org l'utilise) +* Mega stabilisation du code pour la cloture de la version 1 ! .. et en route pour la version 2 ! === v2.0 === -* Création des channels, un file de discussion ainsi qu'un troll de la semaine par channel - * Un channel possède un nom, une langue, une description et une série de mots clefs (tags) +* Création des channels, un file de discussion ainsi qu'un troll de la semaine par channel (est ce que les channels enfants possèdent aussi un troll de la semaine??) + * Un channel possède un nom, une langue, une description et une série de mots clefs (tags) + * Un channel peut être l'enfant d'un autre channel (et ceci de manière récursive). + * lorsque l'on se trouve sur un parent on voit récursivement les messages de tous les enfants + * S'il l'on répond à un message d'un channel enfant le message fait alors "partie" de ce channel enfant * Une page ressence tous les channels, il est possible de faire des recherches de channel par mot clef de la même manière que pour les conversations * N'importe qui peut créer un channel * Il est alors admin pour ce channel et peu nommer d'autres admins (à réflechir) @@ -356,7 +363,7 @@ ok : Implémenté [4] Ajouter un skin "simple" sans images ni fioritures (éventuellement le proposer par défaut) [4] Créer un style "super old school" (couleur 8 bit, pas de smiles/images, font fixe) [4] Unifier tout le code en anglais (sauf les commentaires) -[4] Inscrire le nom de l'image dans les les liens vers des images (à la place de simplement [jpg] ou [gif]) +[4] Inscrire le nom de l'image dans les liens vers des images (à la place de simplement [jpg] ou [gif]) [4] Réduire les pseudos trop long en mettant un ".." à la fin et permettre de le voir en entier lorsque le curseur le survol. [4] Compatible OpenID pour l'identification [4] Outil de localisation des personnes un peu comme ca : http://bouchot.org/cps diff --git a/doc/technique.txt b/doc/technique.txt index 458c81f..2ec2dda 100644 --- a/doc/technique.txt +++ b/doc/technique.txt @@ -1,58 +1,16 @@ -Euphorik - doc technique +== Euphorik - doc technique == +Cette documentation à pour but de réunir certaines explications concernant des concepts, des algorithmes ou des détails techniques. + +=== Compilation avec "+native" === +Il est possible de compiler le code Erlang avec le flag "+native", cela rend l'execution plus rapide de l'ordre d'un facteur +trois sur des calculs bruts. -== euphorik.js == -Sequences : - * Chargement d'une page - -=== Client === -== pageMinichat.js == -=== Classes === - * Messages - * Conversation - * Message - -=== Compilation avec +native === Mesure du temps d'execution pour : * euphorik_test:start(20, 20) : 20 personnes postants 20 messages sans +native : 3:39 - avec +native : 3.41 + avec +native : 3:41 Conclusion : l'ajout de +native n'a pas de répercussions significatives sur les performances, cela provient surement du fait que le gros du travail est fait du coté de la base de donnée Mnesia. - -=== Séquences === - * Attente de nouveaux messages - a) Messages.rafraichirMessages - b) pour chaque conversation - i) Messages.ajouterMessages(lesMessages, numConv) - ii) Conversation.flush - - * Ajout d'un message - PageMinichat.envoyerMessage(pseudo, message) : requête AJAX - - * Extraction d'une conversation - a) Conversation.click - b) Client.ajouterConversation(idMess) - c) Client.flush(false) // mise à jour du profile de manière synchrone - d) Messages.rafraichirMessages(true) - - * Suppression d'une conversation - -=== Exemple de conversation === -Utilisé lors des tests - -m1 -m2 -> m1 -m3 -> m1 -m4 -> m2 -m5 -> m3 -m6 -> m3 -m7 -m8 -> m7 -m9 -> m7 - - - - -- 2.45.2