1
0
contenu/blog/2021/01/03/presentation-de-cyca/index.md

273 lines
13 KiB
Markdown
Raw Normal View History

2023-09-05 23:47:36 +02:00
> ⚠️ Cyca est en cours de réécriture, le dépôt git est toujours disponible mais
> pas le site officiel.
2024-04-11 01:17:20 +02:00
Je vous présente aujourdhui mon principal projet: Cyca, un gestionnaire de
2023-09-05 23:47:36 +02:00
favoris et de flux.
- [Dépôt git](https://git.athaliasoft.com/richard/cyca)
## (Bref) Historique du projet ##
2024-04-11 01:17:20 +02:00
Lhistoire de Cyca démarre il y bien longtemps. Au début, cétait une
2023-09-05 23:47:36 +02:00
application de bureau écrite en C#, et disponible pour Windows uniquement. Par
2024-04-11 01:17:20 +02:00
la suite, devenant de plus en plus à laise en PHP, jen ai fait une application
2023-09-05 23:47:36 +02:00
web. Mais que ce soit en C# ou en PHP, Cyca a toujours été mon projet
2024-04-11 01:17:20 +02:00
“laboratoire”: chaque fois que je voulais tester une technique, un framework,
une bibliothèque, je le faisais sur Cyca. Aujourdhui, évidemment, les process
de développement ont bien changé (parfois en bien), et ce nest plus un projet
2023-09-05 23:47:36 +02:00
laboratoire victime du syndrome de Frankenstein mais bien une application
2024-04-11 01:17:20 +02:00
fonctionnelle depuis **septembre 2020** et lapparition de son dépôt sur GitHub.
2023-09-05 23:47:36 +02:00
## Introduction ##
Cyca est un gestionnaire de favoris et de flux:
- Libre (publié sous licence [GNU GPL](http://www.gnu.org/licenses/gpl-3.0.html))
- basé sur le web (écrit en PHP)
- multi-utilisateurs
- _desktop-centric_ (pensé pour le bureau avant le mobile)
- non-intrusif (pas de notifications surgissantes ou visuellement agressives)
- respectueux de la vie privée (via différents moyens, mais en particulier par
2024-04-11 01:17:20 +02:00
l**absence de système de télémétrie**)
2023-09-05 23:47:36 +02:00
- aussi **simple** à utiliser que possible (peu de formulaires)
2024-04-11 01:17:20 +02:00
- destiné à récolter autant dinformations que possible à propos de vos favoris
2023-09-05 23:47:36 +02:00
et de vos flux
### Technique ###
La _stack_ de Cyca repose sur:
- [Laravel](https://laravel.com)
- [Vue](https://vuejs.org/)
- [TailwindCSS](https://tailwindcss.com/)
2024-04-11 01:17:20 +02:00
Puisque Cyca fait appel au framework Laravel, lapplication supporte:
2023-09-05 23:47:36 +02:00
- une base de données MySQL/MariaDB, PostgreSQL, SQLServer ou SQLite (non
2024-04-11 01:17:20 +02:00
recommandé pour des raisons de performance dans le cas dune utilisation
2023-09-05 23:47:36 +02:00
intensive)
2024-04-11 01:17:20 +02:00
- Redis pour le cache, les sessions, les files dattente
2023-09-05 23:47:36 +02:00
2024-04-11 01:17:20 +02:00
Dautres outils peuvent également être utilisés, tels que BeanStalkd, memcached,
Amazon SQS, etc. De plus, le système de stockage de Cyca permet lusage de
2023-09-05 23:47:36 +02:00
systèmes de fichiers tels que FTP, Amazon S3 en plus du stockage local. En
2024-04-11 01:17:20 +02:00
effet, Cyca est amené à stocker un certain nombre dinformations additionnelles
2023-09-05 23:47:36 +02:00
et offre donc le choix de leur emplacement.
## Fonctionnalités ##
### Arborescence ###
2024-04-11 01:17:20 +02:00
Cyca permet la gestion de favoris (ou _documents_) au sein dune arboresence de
dossiers (par opposition à un système de _tags_, quil sera toujours possible
dimplémenter ultérieurement sil y a une demande). Cette arborescence constitue
le premier panneau de linterface, occupant le côté gauche de lécran.
2023-09-05 23:47:36 +02:00
En outre, chaque utilisateur peut créer ou rejoindre un ou plusieurs groupes.
Un groupe permet de partager avec plusieurs utilisateurs la même arborescence de
dossiers, de documents et de flux, avec des permissions attribuables par
utilisateur et par dossier, par le créateur du groupe.
<!-- Capture de Cyca -->
Chaque nouvel utilisateur se voit attribuer son propre groupe, par défaut
2024-04-11 01:17:20 +02:00
inaccessible aux autres (“Seulement sur invitation”).
2023-09-05 23:47:36 +02:00
Un groupe peut être directement rejoint par un utilisateur, ou seulement sur
invitation. Une fonctionnalité prévue dans la _roadmap_ impliquera un système
2024-04-11 01:17:20 +02:00
de fédération, où il sera possible daccéder à un groupe hébergé sur une autre
2023-09-05 23:47:36 +02:00
instance de Cyca.
Il existe actuellement trois types de dossiers, chaque type ayant certaines
caractéristiques:
- Le dossier _Éléments non-lus_ permet de lister tous les documents possédant
des éléments de flux non-lus
- Le dossier _Racine_, où seront stockés les autres dossiers et les documents
2024-04-11 01:17:20 +02:00
- Les dossiers créés par lutilisateur
2023-09-05 23:47:36 +02:00
Chaque groupe possède sa propre arborescence de dossiers, incluant un dossier
_Éléments non-lus_ et un dossier _Racine_ qui lui sont spécifiques.
2024-04-11 01:17:20 +02:00
Lutilisateur a la possibilité de basculer dun groupe à lautre très facilement
2023-09-05 23:47:36 +02:00
grâce aux liens situés au-dessus de la liste des dossiers.
<!-- Capture de Cyca -->
Sur cette capture, vous pouvez voir le groupe en haut (avec le nombre total
2024-04-11 01:17:20 +02:00
déléments non-lus dans ce groupe), puis, en dessous, larborescence appartenant
2023-09-05 23:47:36 +02:00
à ce groupe.
2024-04-11 01:17:20 +02:00
Un formulaire simple permet de créer ou renommer chaque dossier (à lexception
des dossiers _Éléments non-lus_ et _Racine_). Le _dragndrop_ permet de
2023-09-05 23:47:36 +02:00
déplacer dossiers et documents.
Chaque dossier peut être déployé ou réduit (_expanded_ ou _collapsed_), comme
dans toute arborescence digne de ce nom, avec toutefois une subtilité: il est
possible de déployer ou réduire un dossier **et** ses sous-dossiers en
2024-04-11 01:17:20 +02:00
maintenant un clic long sur licône en forme de triangle à gauche du dossier.
2023-09-05 23:47:36 +02:00
Pratique pour cacher ou voir un sous-ensemble des dossiers en quelques instants.
<!-- Capture de Cyca -->
### Documents ###
Un dossier peut contenir un nombre illimité de documents. Cette liste occupe la
2024-04-11 01:17:20 +02:00
partie médianne de lécran. Elle peut afficher des listes différentes en
2023-09-05 23:47:36 +02:00
fonction du dossier sélectionné: soit les documents effectivement liés au
dossier en cours, mais aussi les documents contenant des éléments non-lus si le
dossier éponyme est sélectionné.
Là encore, le formulaire pour ajouter un document est extrêmement simple: il
2024-04-11 01:17:20 +02:00
suffit de renseigner lURL du document (ou du flux) qui nous intéresse dans le
panneau des détails (occupant la partie inférieure droite de lécran).
2023-09-05 23:47:36 +02:00
2024-04-11 01:17:20 +02:00
Si vous renseignez lURL vers un flux (RSS ou Atom), Cyca analysera ce flux à la
2023-09-05 23:47:36 +02:00
recherche du document parent. Cyca ajoutera alors à vos favoris ce document à la
place du flux RSS, qui, lui, sera associé au document.
Vous avez ensuite la possibilité de découvrir les informations collectées par
2024-04-11 01:17:20 +02:00
Cyca à propos de lURL qui vous lui avez soumise en sélectionnant le document,
2023-09-05 23:47:36 +02:00
ce qui provoquera la modification du panneau de détails en bas à droite de
2024-04-11 01:17:20 +02:00
lécran:
2023-09-05 23:47:36 +02:00
<!-- Capture de Cyca -->
2024-04-11 01:17:20 +02:00
Vous constaterez sur la capture ci-dessus la présence dun flux RSS quil est
possible dignorer. Cyca la automatiquement découvert, et me proposera donc
lactualité de ce site dès quelle sera disponible.
2023-09-05 23:47:36 +02:00
Vous remarquerez en outre la coloration de certains éléments des adresses
2024-04-11 01:17:20 +02:00
affichées dans Cyca, dans le but daméliorer leur lisibilité, et éviter certains
2023-09-05 23:47:36 +02:00
problèmes de sécurité les conçernant, malheureusement pas en évitant ces
problèmes (Cyca ne peut pas deviner si le site que vous avez ajouté à vos
2024-04-11 01:17:20 +02:00
favoris soit bien celui quil prétend être, en tout cas pas à ce stade), mais en
vous présentant lURL que vous venez dajouter dune façon plus claire, plus
2023-09-05 23:47:36 +02:00
lisible, en vous permettant de différencier rapidement les caractères disposant
2024-04-11 01:17:20 +02:00
dune graphie similaire (ce quon appelle les
2023-09-05 23:47:36 +02:00
[homoglyphes](https://fr.wikipedia.org/wiki/Homoglyphe)).
2024-04-11 01:17:20 +02:00
Enfin, vous noterez en bas de cette capture un groupe “Réponse HTTP” dépliable
2023-09-05 23:47:36 +02:00
qui contient toutes les informations récoltées lors de la requête HTTP au
serveur.
2024-04-11 01:17:20 +02:00
Ces informations ont un but informatif. Ce nest pas un outil de sécurité, qui
ne cherche ni à récolter des données auxquelles il na pas accès, ni à faire
2023-09-05 23:47:36 +02:00
usage de ces données à des fins malencontreuses. Les données récoltées par Cyca
sont des données publiques, accessibles à tous, telles que la version du
protocole, les en-têtes de la réponse, le type MIME, etc. Par ailleurs, aucune
2024-04-11 01:17:20 +02:00
donnée personnelle nest envoyée au serveur distant, pour qui cest Cyca le
2023-09-05 23:47:36 +02:00
client.
2024-04-11 01:17:20 +02:00
Pour les connaisseurs, cest la librairie [Guzzle](https://docs.guzzlephp.org/en/stable/overview.html)
2023-09-05 23:47:36 +02:00
qui est mise en oeuvre ici.
### Flux ###
2024-04-11 01:17:20 +02:00
Dès quun document est créé dans Cyca, lapplication va automatiquement
2023-09-05 23:47:36 +02:00
découvrir les flux associés de deux façons différentes:
- la méthode classique, consistant à analyser les balises ```<link>``` à la
recherche de flux **déclarés**
- la méthode brute, consistant à tester certaines URLs connues (par exemple,
_/feed_, _/rss_, etc.)
2024-04-11 01:17:20 +02:00
Grâce à ce fonctionnement, et cest le but de Cyca, même si vous ignorez que
certains sites déclarent un flux, ou même si vous ignorez ce quest un flux,
vous aurez accès à lactualité de vos favoris, même si vous nêtes pas encore
2023-09-05 23:47:36 +02:00
consommateur de flux. Autrement dit: Cyca a été conçu pour vous engager sur la
voie de la consommation des flux RSS et/ou Atom.
### Éléments de flux ###
Les éléments de flux sont affichés dans le panneau situé en haut à droite, et
2024-04-11 01:17:20 +02:00
se présente sous la forme dune liste, mêlant éléments lus et éléments non-lus
dans tous les dossiers, à lexception du dossier _Éléments non-lus_ qui ne
listera que les éléments… non-lus.
2023-09-05 23:47:36 +02:00
<!-- Capture de Cyca -->
Vous pouvez voir ici que Cyca liste les éléments lus en gris clair, tandis que
les éléments non-lus sont affichés en blanc. On dispose par ailleurs du titre
du flux dans lequel chaque élément a été publié, ainsi que la date de
publication.
Enfin, on aperçoit une fonctionnalité intéressante de Cyca: la mise en
surbrillance, qui vous permet de mettre en exergue certaines expressions qui
2024-04-11 01:17:20 +02:00
vous intéressent en particulier (ici, “Apple”).
2023-09-05 23:47:36 +02:00
Cyca respecte la décision des éditeurs de flux de ne pas inclure la totalité du
texte dans leur flux. Certains, particulièrement les geeks, les revues
2024-04-11 01:17:20 +02:00
scientifiques ou les systèmes dalerte incluent le texte complet de leur
2023-09-05 23:47:36 +02:00
publication, parfois même avec des pièces jointes (que Cyca ne supporte pas
2024-04-11 01:17:20 +02:00
encore), mais dautres se contentent dun résumé, voire dun simple lien.
2023-09-05 23:47:36 +02:00
2024-04-11 01:17:20 +02:00
Cyca na pas et naura jamais la volonté daller plus loin. Il existe des outils
spécifiques à cet usage, mais ils ne respectent pas léthique que je veux pour
2023-09-05 23:47:36 +02:00
Cyca.
### Mises en surbrillance ###
<!-- Capture de Cyca -->
Cyca vous permet de définir des mises en surbrillance, qui vous vous permettre
2024-04-11 01:17:20 +02:00
disoler, dans la liste des éléments de flux, ceux qui vous intéressent
2023-09-05 23:47:36 +02:00
particulièrement.
Il vous suffit pour cela de définir une expression et une couleur associée.
Cette expression peut être un simple mot, ou une
[expression régulière](https://fr.wikipedia.org/wiki/Expression_régulière).
### Autres fonctionnalités ###
- Cyca supporte un thème sombre et un thème clair, soit forcé soit adapté
2024-04-11 01:17:20 +02:00
automatiquement en fonction du système dexploitation
- Cyca est actuellement capable de lire les méta-données dune image et dun
2023-09-05 23:47:36 +02:00
fichier PDF
## Fonctionnalités à venir ##
2024-04-11 01:17:20 +02:00
- Jaimerais intégrer un système de fédération permettant, comme dit plus haut,
2023-09-05 23:47:36 +02:00
de rejoindre un groupe hébergé sur une autre instance de Cyca
2024-04-11 01:17:20 +02:00
- Jai commencé à travailler sur une [librairie](https://github.com/RichardDern/php-gemini)
2023-09-05 23:47:36 +02:00
pour le protocole [gemini](https://gemini.circumlunar.space/), qui permettra
2024-04-11 01:17:20 +02:00
dajouter des liens sur ce réseau à Cyca…
- …puis, en créant une abstraction des protocoles, permettre à Cyca de gérer
des favoris sur nimporte quel réseau (FTP, Gopher, etc.)
- Jaimerais introduire un moteur de recherche local, permettant de retrouver
2023-09-05 23:47:36 +02:00
facilement documents et éléments de flux (en cours lors de la publication de
cette présentation)
2024-04-11 01:17:20 +02:00
- Jaimerais ajouter la possibilité de trier les documents et les flux selon
les préférences de lutilisateur
2023-09-05 23:47:36 +02:00
## De quoi Cyca a besoin ? ##
2024-04-11 01:17:20 +02:00
- Dargent: jarrive en fin de droits au chômage, ce qui signifie que je ne
2023-09-05 23:47:36 +02:00
pourrais plus travailler sur Cyca à temps plein. Mon objectif était de monétiser
2024-04-11 01:17:20 +02:00
Cyca par la mise en place dun service hébergé, mais je nai plus le temps
datteindre cet objectif. Les dons me permettraient de financer lélectricité,
le matériel, et le travail que je fournis sur Cyca, en attendant datteindre
lindépendance financière.
- De traducteurs: Cyca nest pour linstant disponible quen anglais et en
2023-09-05 23:47:36 +02:00
français.
2024-04-11 01:17:20 +02:00
- De “colporteurs”: si vous avez lu mon premier post sur ce blog, vous savez
déjà quil me manque un réseau social, de personnes en mesure de tester Cyca,
en parler autour deux, et me remonter problèmes et suggestions.
2023-09-05 23:47:36 +02:00
## Conclusion ##
2024-04-11 01:17:20 +02:00
Jai développé Cyca parce que jestime que cest une application qui répond à
deux besoins que jai en tant quInternaute: gérer des favoris (en grande
2023-09-05 23:47:36 +02:00
quantité) et des flux (de même). Il me semblait logique de faire les deux au
même endroi.
2024-04-11 01:17:20 +02:00
Cest, pour moi, pour mon usage quotidien, une application essentielle, qui
2023-09-05 23:47:36 +02:00
répond à ces besoins de la meilleure manière possible, selon mes critères.
2024-04-11 01:17:20 +02:00
Mais je souhaite quelle puisse répondre aux vôtres aussi, afin quelle figure
dans le rang des outils “essentiels”, au même titre quun gestionnaire de mots
de passe, ou dun éditeur de texte.
2023-09-05 23:47:36 +02:00
2024-04-11 01:17:20 +02:00
Merci davoir lu cette présentation. Jespère quelle vous donnera envie de
donner sa chance à Cyca, et den parler à vos contacts.