La première fois que j'ai vu une vidéo de Spi0n, je crois que c'est grâce à Timo qui avait partagé une vidéo de leur célèbre Zap. Si vous ne connaissez pas voici le dernier : Zap 177.
J'ai trouvé sympa l'idée d'une compilation des meilleures vidéos et je l'ai ajouté à mon lecteur de flux. J'ai commencé à recevoir des dizaines et dizaines de vidéos que je ne regardais que de temps en temps ; je ne manquais par contre aucun zap. Je trouvais ça cool mais pour les autres vidéos j'étais souvent dérangé par leur pratique. Vous l'avez peut-être remarqué dans mes liens inutiles, mais quand je voulais partager une vidéo que j'avais découvert grâce à eux, j'étais obligé de rechercher la vidéo d'origine car ils ont une pratique assez particulière qui consiste à ré-uploader toutes les vidéos. Malheureusement, les sources ne sont pas systématiquement citées et c'est un truc qui m'énervait un peu... beaucoup...
Un autre petit détail c'est l'utilisation systématique de dailymotion qui fonctionne très mal chez moi. Ce n'est pas un problème de bande passante, mais leur lecteur vidéo est d'une lourdeur qui m'empêche de suivre une vidéo correctement même en très basse qualité... Je n'ai pas 4 cœurs et 32 Go de RAM et la différence avec youtube est juste impressionnante.
Peu de temps après Spi0n, je suis tombé sur le site de Koreus. Il m'a semblé beaucoup moins connu mais avec un concept identique : le partage de vidéos. Contrairement à Spi0n, il ne faisait pas de compilation mais avait une approche que je préférais (et un lecteur perso très léger) alors j'ai aussi ajouté à mon lecteur de flux. Depuis plus d'un an j'avais donc 2 flux similaires et ce n'était pas rare de voir passer plusieurs fois la même vidéo. Cela ne me dérange pas car comme je vous l'ai dit au début je ne les regarde pas systématiquement et je suis un grand utilisateur de la touche 'n' dans KrISS feed :-)
Depuis 1 an koreus s'est mis à faire des compilations : koreusity 50 dernier en date. Et dès la première j'ai tout de suite apprécié. Je préfère d'ailleurs les montages koreusity aux zaps de spi0n. L'intégration des vidéos verticales est par exemple mieux réalisée (même si c'est mal, ça existe de plus en plus ! VVS).
La version 8 est presque prête. J'attends quelques retours de votre part avant de l'officialiser !
Cette version s'adresse donc aux personnes un peu plus averties (même s'il n'y a pas de grands risques : pensez juste à bien sauvegarder votre data.php et votre opml avant) qui utilisent la version de développement située dans src
Dans les nouveautés :
- Un favicon : cela n'a pas été facile, mais depuis mon dernier sondage, j'ai eu une autre idée qui j'espère mettra tout le monde d'accord. Pour rappel, je voulais un logo qui me permette de regrouper tous mes projets. Ce logo sera une pièce de puzzle avec 3 trous. Regardez de plus près et vous devriez voir un K. J'aime beaucoup cette idée alors si vous voulez me faire changer d'avis, il va falloir que vous avanciez de solides arguments :-)
J'aime bien les puzzles depuis tout petit, la notion de choses qui s'emboîtent les unes dans les autres pour former un tout me plaît énormément (le terminal, le symbole K (pas le potassium hein :-p), la possibilité d'inclure un logo existant et d'en créer un nouveau.
Cela donne pour KrISS feed ce favicon : . Alors qu'en pensez-vous ?
Je n'ai pas encore eu le temps de l'améliorer et il n'est pas encore au format vectoriel, mais ça donne une bonne idée.
- Support multilingue : à vous de jouer pour les traductions (messages.pot), j'ai fait la version française (désolé pour les volontaires qui s'étaient proposés, mais je l'ai fait pour pouvoir tester le code : n'hésitez pas à relire, j'ai traduit assez rapidement). D'ailleurs je me demandais si ça n'existait pas des trucs pour traduire automatiquement en ce basant sur une base de .po (github possède beaucoup de fichiers de traduction mais je n'ai pas trouvé quelque chose qui permettrait de traduire automatiquement. Les seuls sites que j'ai trouvé nécessitaient une inscription...) ? J'ai utilisé poedit si vous avez des alternatives je suis preneur :-)
- Ajout des plugins : pour le moment ça reste sommaire, je m'en suis surtout servi pour inclure le support multilingue. Il n'y a pas encore de menu de gestion des plugins.
Par exemple, pour traduire, il faut connaître l'URL :
KrISS en français : http://tontof.net/feed/?lang=fr_FR
KrISS en anglais : http://tontof.net/feed/?lang=en_GB
- Favicon dynamique : le nombre d'articles non lus dans le favicon (très pratique quand on épingle un onglet) (par Tvelter).
- Nouveau raccourci 'z' : permet d'ouvrir tous les articles de la page en cours dans des onglets et de les marquer comme lus (par Tvelter).
- Préchargement des articles : option preload pour précharger les articles de la page en mode liste (par TiTi).
- Icônes Unicode : permet de personnaliser plus facilement avec css. Pour activer les icones dans le menu, il faut créer un fichier user.css dans un dossier inc avec :
.menu-ico:before {
display: inline-block;
}
Il me reste encore le + et - à changer. Inspiré de knacss.com.
J'ai eu de nouveaux retours sur les problèmes liés à des données corrompues. Une piste probable est l'utilisation d'un cron. Il semblerait que toutes les personnes touchées utilisaient un cron. Si vous avez des idées d'où pourrait venir le problème... (les données corrompues sont particulières car le fichier data.php peut se décompresser et c'est la sérialisation php qui semble poser problème... du coup je n'ai aucune idée d'où cela peut venir et comme le bug n'est pas reproductible à souhait, ça ne simplifie pas les choses...)
Dans les idées que je souhaite développer, il y a la possibilité de compiler sa propre version de KrISS feed (un peu comme ça se fait bien pour les projets javascript comme http://knacss.com/builder/ http://jqueryui.com/download/ etc.). Je ne sais pas ce que vous en pensez, mais je pense qu'il y a quelque chose à creuser là dedans... Pour le moment les plugins sont inclus dans le fichier index.php mais ce n'est pas obligatoire et ça peut fonctionner autrement. L'avantage c'est que les gens qui n'y connaissent rien peuvent avoir accès à tout dans un seul et unique fichier. L'autre avantage c'est que les gens qui souhaitent optimiser leur programme ont la possibilité de le faire. En gros je pense que ça permettra une plus grande modularité. À voir...
Maintenant la prochaine étape va être la création d'un plugin pour inclure le code de shrk69 car cela permettra de refactoriser le code de KrISS feed (qui en a bien besoin depuis la version 5. Il a évolué trop vite) et d'adapter les plugins pour les rendre entièrement fonctionnels.
Comme vous avez pu le constater ces derniers temps, il n'y a pas eu beaucoup de nouveautés en ce qui concerne KrISS feed et malheureusement cela va durer jusqu'à mi juin. Je serai bientôt offline alors si vous m'envoyez un message, ne vous attendez pas à une réponse rapide de ma part :-)
En attendant, je vous ai préparé une petite page de présentation des outils KrISS... euh que KrISS feed en fait. Je sais, c'est moche, mais je n'ai pas eu le temps de faire de CSS pour le moment et mon but était de faire des pages statiques facilement maintenables avec de multiples possibilités. Pour le moment c'est juste en anglais et c'est très incomplet mais c'est un début... Pour cela, j'ai utilisé Org-mode qui est juste génial !
Je vous ai déjà dit que j'utilisais Emacs et Org mode est un mode emacs (mais pas que) qui permet d'organiser tout et n'importe quoi dans de simples fichiers textuels (Org mode for Emacs - Your Life in Plain Text) :
Par exemple, voici le source de la page de KrISS feed : http://tontof.net/kriss/feed/index.org (Pour générer le html correspondant à partir d'emacs : C-c C-e h)
Si vous voulez contribuez à la documentation, corriger des fautes, etc. c'est ici que ça se passe : https://github.com/tontof/kriss
Je ne vous passerai pas en revue toutes les possibilités offertes par Org mode, mais si vous voulez un aperçu, c'est ici : http://orgmode.org/features.html
Je vais par contre vous parler de Babel qui permet d'utiliser directement dans un fichier org une multitude d'outils qui utilisent des fichiers textes :
- DITAA - DIagrams Through Ascii Art
Super pour créer des graphiques lisibles directement à partir du fichier texte
- Graphviz - Graph Visualization Software
Plus complet que DITAA, mais les graphiques ne sont plus visibles aussi facilement dans le source
- Eukleides
Pour faire des figures géométiques avec la possibilité de faire des animations : http://eukleides.org/thales.html
- LaTeX
LibreOffice Writer c'est fini quand on connaît LaTeX :-)
On parle souvent de LaTeX pour les formules mathématiques, mais c'est bien plus que ça.
Si vous cherchez un symbole particulier, je vous conseille detexify
Vous pourrez même inclure vos formules directement dans vos pages html grâce à mathjax (supporte aussi MathML)
- Lilypond
Le latex pour les musiciens
- Gnuplot
Pour faire des graphiques (parfois animés) :
image : http://gnuplot.sourceforge.net/demo_4.7/
svg : http://gnuplot.sourceforge.net/demo_svg_4.7/
gnuplot existe depuis 1986, mais ne cesse d'innover, il est même possible d'exporter en html5 canvas : http://gnuplot.sourceforge.net/demo_canvas_4.7/
Bref, plein d'outils qui me permettront de faire des pages de présentation statiques sans trop me prendre la tête :-)
Le résultat s'est vite fait ressentir :
En 9 jours, 617 BLOCKED 8-D (Heureusement tous ne réussissaient pas hein !)
Malheureusement, cela n'a pas suffit car les spams ont continué.
Comme mon captcha était simple et très classique, je l'ai changé. Je l'ai laissé simple mais moins classique. (Ça devrait faire plaisir à V!nc3r parce que c'est un peu plus lisible ^^)
Seulement voilà, les spams ont continué. Je me suis dit que les catpchas avec les écritures ascii c'était peut être trop facile à pirater alors j'ai créé des questions du style : Quelle est la première lettre du mot Arbre ?
Mais rien n'y faisait, les spams continuaient. J'ai donc mené ma petite enquête et il s'avérait que les robots ne réussissaient pas du tout les captchas. En fait, KrISS blog avait juste un petit bug introduit quand j'avais changé le fait de ne plus demander le captcha après la preview s'il était correct.
J'ai donc remis le captcha avec l'alphabet ascii et j'ai viré honeypot pour faire quelques tests. Depuis plus de spam !
En fait, dans la majorité des cas, les robots sont vraiment simples à détecter. J'ai un textarea invisible appelé message et ils le remplissent tous.
Quand j'aurais un peu plus de temps, je supprimerai le catpcha et je testerai le contenu du textarea invisible. S'il contient quelque chose je redigirai vers le piège de honeypot pour essayer de contribuer à la détection de nouveaux robots spammeurs !
En faisant ça, je n'aurais pas besoin de demander à honeypot si l'ip correspond à un spammeur et en plus je contribuerai au projet. Tout ça sans captcha pour les vrais gens.
Je me pose plusieurs questions concernant KrISS feed et j'aimerais savoir ce que vous en pensez avant de me lancer dans la modification du code et ainsi me retrouver dans cette situation : http://bobineau.blogspot.fr/2013/04/72.html(via).
Les problèmes de flux :
Je ne sais pas si tout le monde est conscient du problème, alors je vais essayer de donner quelques précisions qui vous permettront peut-être de comprendre pourquoi des fois ça marche et des fois ça ne marche pas.
Tout d'abord, il faut savoir que les flux RSS ça génère beaucoup de trafic (et quand Google Reader aura définitivement fermé, ça sera encore pire, car je pense que son rôle intermédiaire était très important dans la limitation de ce trafic lié au flux RSS et peut expliquer aussi pourquoi il ferme ; c'est tout ce trafic qu'ils n'auront plus à gérer eux-mêmes et qui leur coûtait des sous).
Il faut également savoir qu'il y a des gens qui, de mon point de vue, ne se rendent pas vraiment compte qu'ils peuvent être une vraie plaie pour les serveurs. Un petit exemple d'une personne qui a réglé son lecteur de flux (en l'occurrence Thunderbird) à télécharger mon flux RSS toutes les minutes. Mon serveur ovh mutualisé a de la chance, son ordinateur n'est pas allumé toute la journée, mais il fait quand même des bonnes journées (environ 8h - minuit). Un autre point positif, il gère la compression et mon flux qui fait environ 150 ko n'est transmis que pour 30 ko.
Faisons un rapide calcul pessimiste. Une personne qui télécharge mon flux toutes les minutes sans la compression et toute la journée, ça nous donne :
24*60*150 = 216 000 ko
Vous vous rendez compte ? 216 Mo pour une seule personne par jour ?
Quand on sait que je poste moins d'un article par jour, ça fait pas mal d'octets inutilement transférés. Tout ça pour quoi ? Avoir mon article dans la minute... Youhou, vive le monde hyper connecté. Personnellement, ça ne me surprend pas tant que ça que Free, Orange en arrivent à brider Youtube... et que Deutsche Telekom veut limiter à 75 Go par mois.
Alors ce n'est pas très grave en soi, moi ça me dérange pas personnellement, je suis sur un mutualisé OVH. Mais si je m'auto-hébergeais sur ma connexion perso, je réagirais sûrement différemment et je pense que je serais obligé de blacklister de temps en temps ce genre de personne.
Et ben figurez-vous que c'est ce que font certains sites et du coup vous vous dîtes, KrISS feed c'est tout pourri je peux pas ajouter ce flux. Désolé, mais la faute ne vient pas toujours de KrISS feed :-)
Les serveurs peuvent réagir différemment. Pour cela, je vais prendre 2 exemples : Google avec Youtube et Live Journal.
Je trouve ça assez drôle, car les flux RSS ont justement pour but d'être lu par des robots, pas par des humains, alors un commentaire dans un flux RSS, euh...
Pour résumé, s'ils vous suspectent d'être un robot trop gourmand, ils vous bannissent et KrISS feed, mais n'importe quel autre lecteur de flux, ne sera plus capable de récupérer leur flux et vous obtiendrez un timeout :-(
Alors des gens me disent qu'ils ne peuvent pas ajouter tel ou tel flux alors qui marche sous Google Reader. Dans cet exemple concret de live journal, la réponse est simple, le serveur vous a banni. Quand c'est sur un serveur perso, c'est moins fréquent, mais sur un mutualisé, ça l'est un peu moins. Juste pour votre information Google Reader ne fait la demande de flux que toutes les heures et bizarrement vous ne vous êtes jamais plein en disant que c'était nul parce que vous n'aviez pas l'info en temps réel (Ah... on me dit que si, vous vous plaignez tout le temps :-p).
D'autres serveurs, comme ceux de Youtube, vous bannissent temporairement et vous obtenez fréquemment l'erreur : Problem with last update. En fait, je soupçonne Youtube, pour leur éviter un trafic inutile, de vous bannir tant qu'il n'y a pas de nouvelles vidéos. Il garde donc une information sur les demandes de flux et gère un historique de leur côté. C'est difficile de savoir vraiment ce qu'il en est, mais je pense que c'est ce qu'ils font (et je trouve assez malin de leur part pour limiter ce trafic inutile). Ça veut dire que si KrISS feed vous indique un problème lors d'une mise à jour, il ne faut pas trop vous inquiéter, c'est tout à fait normal et il y a de grandes chances pour qu'il n'y ait tout simplement pas eu de nouvelles vidéos.
Donc en gros comme pour Live Journal, Youtube vous bannit, mais contrairement à Live Journal, je pense que c'est volontairement bien étudié et il ne faut donc pas trop vous inquiéter si vous avez un Problem with last update ou que vous n'arrivez pas à ajouter une vidéo du premier coup.
Dans l'évolution de KrISS feed, je ferai des messages plus explicites pour distinguer les problèmes de flux (mal formés) et les problèmes liés à la récupération du flux (genre timeout).
J'ai quand même quelques interrogations sur comment je peux aussi essayer d'améliorer ça. Ma question concerne donc l'amélioration du cache, l'utilisation des ttl (time to live qui semble être ignoré de toutes les lecteurs de flux), e-tag, last-modified etc. Certains flux comme ceux générés par shaarli ne tiennent pas compte de ces informations et retournent systématiquement le flux rss mis à jour. Alors peut-être que c'est inutile mais je me demandais, s'il fallait essayer d'intégrer ça pour soulager les serveurs qui pourront répondre un code 304 (not modified) plutôt que d'envoyer le flux à chaque fois. J'attends vos avis sur la question.
Un logo KrISS ?
Vous êtes plusieurs à m'avoir demandé un favicon pour KrISS feed et comme je suis indécis, je vous fais ici quelques propositions. En tête, je n'avais pas que KrISS feed, mais l'idée de plusieurs outils KrISS, parce qu'avec le temps j'espère bien vous proposez encore plus d'outils avec la même philosophie :
- La première icône, c'est juste un K (pour KrISS) formé à l'aide d'un T (de Tontof). J'aime assez la forme, mais je ne vois pas trop comment je pourrais l'adapter pour différents outils.
- La deuxième est un K qui forme la moitié d'un carré et qui permet d'inclure une autre icône, comme celle du RSS. En faisant la symétrie on peut écrire les initiales KF pour KrISS feed.
- La troisième est identique à la deuxième avec une branche prolongée pour former en plus le T de Tontof. L'icône s'apparente au logo peace and love.
- La quatrième est un K formé d'un demi-cercle et d'un demi carré.
Voili voilou, j'ai fait ça vite fait pour vous donner une idée et savoir ce que vous en pensez. Je reste ouvert à toute proposition.
Les certificats SSL :
Certains d'entre vous ne peuvent pas ajouter certains flux https à cause de problème de certificats qui ne sont pas installés sur le serveur. Curl a une option pour ignorer ça, mais je ne pense pas que c'est une bonne idée de l'ajouter par défaut. <?php curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); ?>
Une option, un plugin, tout est possible, qu'en pensez-vous ?
Les attaques XSS :
Actuellement, il n'y a aucune modification du contenu d'un flux. Si ce dernier ajoute du code javascript, il sera exécuté. Je voulais savoir si vous aviez des idées pour limiter les risques. Je connais http://htmlpurifier.org mais je cherche quelque chose de plus simple et léger. Des idées ?
KrISS feed en français :
Je vous ai dit que la version 8 serait multilingue, mais je voulais savoir si vous pensez que c'est plus intéressant d'avoir un fichier index par langue ? Toutes les langues disponibles dans le même fichier index ou l'ajout des langues grâce aux plugins ?