Lephenixnoir
  • Joined on Apr 12, 2019
Loading Heatmap…

Lephenixnoir opened issue devs/PCv5#69

L'éditeur de messages bloque l'annulation

4 days ago

Lephenixnoir pushed to dev at Lephenixnoir/gint

  • 4288dc27d9 keyboard: add custom repeat filters for full repeat control This change introduces a new getkey_repeat_filter() function that can be used to individually accept, deny or delay repeat events for specific keys and timings.

4 days ago

Lephenixnoir commented on issue devs/PCv5#45

Réorganisation du Wiki

C'est le setup normal, après on peut faire du `flask run` mais dans ce cas j'aimerais bien garder le tutoriel nginx quelque part. La VM je laisse voir Darks, c'est lui qui gérait à l'époque donc j'ai pas vraiment suivi... > Cette issue risque de se transformer en une issue sur l’organisation du wiki… désolé. Non non c'est le bon endroit pour en parler.

5 days ago

Lephenixnoir commented on issue devs/PCv5#67

Longueur des noms de fichier non vérifiée

Oui, de toute façon ça passe à `secure_filename()` donc il n'y pas de risque de sécurité, et c'est pas avec 64 caractères que ça va spammer.

1 week ago

Lephenixnoir pushed to dev at devs/PCv5

  • 03c577316f thread: add a reference to the owner post

1 week ago

Lephenixnoir pushed to dev at devs/PCv5

  • 7e11469183 forum: add basic comment edition with preview Limitations: * Works only for registered users * Does not redirect to the proper MainPost page * Does not check permissions
  • 127c121eb4 forum: add basic comment edition with preview Limitations: * Works only for registered users * Does not redirect to the proper MainPost page * Does not check permissions
  • Compare 2 commits »

1 week ago

Lephenixnoir pushed to dev at devs/PCv5

  • 127c121eb4 forum: add basic comment edition with preview Limitations: * Works only for registered users * Does not redirect to the proper MainPost page * Does not check permissions
  • 79600e8598 templates: add a dynamic date format More reader-friendly (in French at least).
  • 8a95d43eb0 templates: represent actual level in XP bar in user widget This is much more useful in determining a user's activity than the current level progression. Since the XP bar is the second most visible item apart from the avatar, it's more relevant.
  • Compare 3 commits »

1 week ago

Lephenixnoir commented on issue devs/PCv5#20

Ajout des modèles de contenu

Voilà un début, le modèle des programmes avec promotions de topics devrait être bon. Il faut encore tester, ce qui sera plus facile une fois qu'on aura complété le forum (et notamment de quoi modifier les commentaires et topics) donc on y reviendra un peu plus tard.

1 week ago

Lephenixnoir pushed to dev at devs/PCv5

  • d3f137b92d programs: add models for programs and topic promotions (#20) Not tested yet since there is a lack of tools to manipulate comments, topics and programs. The /programmes routes is used to display a list of all programs, temporarily.
  • ea39b5d787 templates: fix indent and tags of forum index
  • Compare 2 commits »

1 week ago

Lephenixnoir commented on issue devs/PCv5#20

Ajout des modèles de contenu

La question des backrefs des types spécialisés de posts vers les utilisateurs est a priori réglée, Darks ayant trouvé que ``` my_programs = db.relationship("Program") ``` collecte automatiquement tous les programmes en relation avec l'utilisateur considéré, ce qui implémente élégamment la solution envisagée avec l'héritage.

1 week ago

Lephenixnoir pushed to dev at Lephenixnoir/gint

  • a4d23ef7ad libc: faster memset
  • 492f61f7b2 libc: faster memcpy for on-chip memory An optimization suggested by TSWilliamson, which pushes not only RAM, but also on-chip memory and the CPU pipeline to their limits.
  • 7b4eb078c4 move src/core to src/kernel
  • d12be8add0 remove features that are deprecated as of v2.1
  • Compare 4 commits »

1 week ago

Lephenixnoir pushed to master at Lephenixnoir/mystnb

2 weeks ago

Lephenixnoir pushed to master at Lephenixnoir/mystnb

2 weeks ago

Lephenixnoir commented on issue devs/PCv5#64

Ajouter la pagination sur l'index des forum

Ça me va bien, c'est un peu dommage de devoir ajouter `/page` alors qu'on ne le fait pas ailleurs mais c'est vrai que ça créerait encore des collisions avec les IDs ou noms de topics... on s'en remettra, ces liens sont rarement partagés directement de toute façon. En tous cas je valide.

2 weeks ago

Lephenixnoir pushed to master at Lephenixnoir/mystnb

2 weeks ago

Lephenixnoir created repository Lephenixnoir/mystnb

2 weeks ago

Lephenixnoir commented on issue devs/PCv5#60

Panel admin refuse les connections (local)

Soit dit au passage, la 302 c'est la redirection vers la page de connexion donc parfaitement normale. Si je vire le décorateur `@priv_required` la réponse à la requête est une 200 normale mais je suis quand même déconnecté. ``` [pid: 2857188|app: 0|req: 5/5] ::1 () {48 vars in 1289 bytes} [Thu Jul 23 14:46:53 2020] GET /admin => generated 14428 bytes in 13 msecs (HTTP/1.1 200) 4 headers in 247 bytes (1 switches on core 0) ``` Bon je vais utiliser `flask run` je crois, même si ça m'emmerde pas savoir d'où ça vient tout ça...

2 weeks ago

Lephenixnoir commented on pull request devs/PCv5#61

Modèle des fichiers joints

Merci de m'avoir rejoint ici. Je pense aussi que c'est plus élégant si on peut éviter l'ordre. > Et je viens de me dire. Si on proxifie pas les reqûetes d'une manière ou d'une autre, on ne peut pas tracer le nombre de téléchargements sans parser les logs de connexion. À la rigeur on peut ajouter une route qui compte les téléchargements du fichier et retourne une 302 vers le fichier statique. Ça ne comptabilisera que les téléchargements via le lien de redirection, mais c'est déjà ça. Hmm j'ai cherché un moyen de faire ça avec Nginx, je pense avoir trouvé un bon compromis. Ce qu'on peut faire c'est utiliser le [module `mirror`](https://nginx.org/en/docs/http/ngx_http_mirror_module.html) pour émettre une sorte de requête miroir purement interne *après* avoir envoyé le fichier au client. Donc le client obtient le fichier sans le surcoût de la redirection et sans le surcoût du passage à Flask. ``` location /static/programs { alias /home/pc-dev/data/programs; mirror /count-downloads/programs; } location /count-downloads/programs { # Envoyer à Flask, qui écoute sur @application try_files @fake @application; } ``` Et ensuite dans Flask : ``` @app.route("/count-downloads/programs/<file>") def count_download(file): # Ajouter 1 au compteur de téléchargements de <file> ``` Les avantages donc c'est que Nginx sert le fichier de façon transparente pour l'utilisateur sans redirection, avant d'émettre la requête miroir ; et il *ignore* la réponse à la requête miroir, donc la connexion HTTP n'est pas maintenue.

2 weeks ago

Lephenixnoir commented on pull request devs/PCv5#61

Modèle des fichiers joints

On va y arriver ! > Le cas du tuto, j'aurais tendance à générer le PDF nous-même. Euh... je suis pas chaud pour avoir LaTeX sur le VPS surtout avec tous les modules classiques qui nécessite `-shell-escape` (eg. `minted`). Oublie pas qu'on avait ça dans le viseur. --- Et... tout dans l'usage des fichiers pour les MainPost est plus subtil que ce que tu présentes. > la banque de sprites ? On met dans une galerie les fichiers images, on affiche en bas les .xcf et les liens de téléchargement. Tout le monde n'utilise pas Gimp/Photoshop, les PNG sont souvent les images de travail. Donc tu traites pas pareil les images sources PNG et les images sources XCF - problème de sémantique. Tu es incapable de distinguer un PNG de preview où je présente une map d'exemple du PNG de mon tileset qui est le véritable asset. C'est bâclé ! > Tu veux pouvoir mettre des images dans une news et définir une image principale pour le partage sur les réseaux sociaux ? Tu prends la première image en PJ. Justement non c'est ce raisonnement qui est le problème ! Non, si tu veux mettre une image de présentation d'une news qui part sur les réseaux sociaux, tu mets un attribut dans Topic pour définir quel fichier joint est cette image. Et je te rappelle qu'il n'y a pas d'ordre sur ces fichiers dans le modèle que tu défends ! (Et pas non plus dans ce que je propose ci-dessous) Pourquoi vouloir hacker sans cesse avec des cas particuliers, des traitements par extension pour la visualisation et des premiers touts ? Puisque tu laisses l'utilisateur uploader les fichiers, laisse-lui dire comment ces fichiers doivent être traités ! --- Proposition pour le gestion des MainPost, incluant les photos de présentation/réseaux sociaux, l'ordre des fichiers à télécharger, les PDF principaux de tutoriels, etc : 1. On ajoute les fichiers dans le top comment comme on le ferait pour n'importe quel commentaire. Il n'y a pas d'ordre, pas de métadonnées, pas de propriétés. 2. Dans chaque MainPost on référence les fichiers joints qui ont un rôle particulier. * Dans Program, l'image de présentation et les 3/5/whatever fichiers à télécharger (on a donc 3/5/whatever combo box dans laquelle on peut choisir parmi les fichiers uploadés - zéro trick CSS, zéro JS) * Dans Topic, l'image de présentation qui va aussi sur les réseaux sociaux * Dans Tutorial, le PDF LaTeX précompilé aux petits oignons * Dans les assets graphiques, le ou les 3/5/whatever fichiers qui ne sont pas des preview ou des showcase de ce que l'asset peut faire

2 weeks ago

Lephenixnoir commented on pull request devs/PCv5#61

Modèle des fichiers joints

Hmm d'accord, je pense que je peux me ranger sur l'usage d'un système identique pour la modération des contenus et les commentaires. Avec les points importants suivants : * Limites par membre plutôt que par contexte, avec la possibilité pour les admins de remonter manuellement les seuils (évite les abus) * Une seule méthode d'inclusion de fichiers joints avec vérification d'extension et application de limites est utilisée pour les commentaires et les contenus Je souhaiterais seulement revenir sur le traitement qui est fait de ces fichiers. Je pense qu'un peu de flexibilité serait bienvenue pour accomplir les tâches "élaborées" que les contenus réservent au fichier joints. En particulier... * Pouvoir définir une image de présentation [Program] * Pouvoir masquer des fichiers joints par défaut, pour utiliser dans la description [Program] ou le texte [Tutorial] (évidemment les admins peuvent tout voir) * Pouvoir ordonner les fichiers en téléchargement [Program] * Pouvoir définir un fichier principal dans un tutoriel (sous-entendu un PDF pour lecture hors ligne) [Tutorial] * ... et probablement d'autres. Les détails seraient certainement à fixer ; ici je défends seulement l'attitude d'ajouter des propriétés aux Attachment ou aux MainPost qui les référencent pour gérer ces fonctionnalités-là en donnant le contrôle à l'utilisateur, plutôt que de partir du principe qu'une preview des fichiers dont le nom laisse entendre que c'est des images suffira.

2 weeks ago