Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/03/2014, à 15:33

moths-art

Linkmanager : logiciel de gestion de ses URLs

Voici un petit soft que je vous propose de découvrir!

Gérer vos URL en ligne de commande
===============================

Marre d'avoir 300 onglets sous firefox qui mettent 3 plombes à se lancer et vous bouffent plein de ram.
Vous trouvez que les systèmes de marque page des navigateurs sont inutilisables?
Vous aimeriez un outil en ligne de commande rapide, souple et léger?

LinkManager répond à ce besoin!!

Vous pouvez ajouter/modifier/supprimer et surtout rechercher vos liens via votre prompt favori.
Afin de donner une expérience utilisateur satisfaisante, LinkManager utilise l'autocomplétion et la coloration syntaxique.
J'ai justement utilisé à cet effet la lib "clint" de Kenneth Reitz.
Etant légèrement insuffisante au niveau des couleur de fond, je l'ai forké ^^.

Malgré l'accroche "aguichante" et volontairement "présomptueuse", ce projet ne se prend pas au sérieux et n'a aucune prétention de changer le monde ni les habitudes... juste de proposer une alternative "simple".
Il part de plusieurs principes :
    * Un programme sert à une seul chose (philosophie Unix)...
    * Dev un soft minimaliste mais "propre" et "maintenable" plutôt que de se lancer dans un projet trop gros qui n'aboutira jamais. (et dont des parties risques d'être forcément impropre)
    * Un outil avant tout en ligne de commande plutôt qu'utilisant une GUI obèse.
    * Un soft "déconnecté" : même si l'objectif étant de sauvegarder des URL, la base est consultable off-line.
    Pas de service de "cloud" foireux ni de latence lié au web.
    * Extreme programming : j'ai d'abord créé l'API puis j'ai codé les tests en même temps que les fonctionnalités.
    Enfin, l'ensemble du code "critique" est couvert par des tests ou presque.(couverture de code)
    * DRY, KISS et autres acronymes sympa.

La recherche
------------

LinkManager est orienté recherche!
Le but est bien de retrouver le super lien qu'on avait archivé y'a 6 mois, qu'on veut absolument retrouver... et qui n'est pas facilement googeulable.
Pour cela, l'addition d'un lien donne la possibilité d'ajouter des tags (une liste de mots clés), une description et la pertinence. (valeur de 1 à 10)
Ce dernier point est essentiel : plus la pertinence est élevé et plus le lien sera susceptible d’apparaître en tête de liste.

Version Bétâ:
-------------

Cette version est en bétâ! Je préfère prévenir ^^!
Même si j'ai mis en place des tests unitaires etc, je ne garanti pas un soft sans bugs ni perte de données.
Donc prudence quant à une utilisation intensive sans sauvegarde.

Pour faciliter les choses, j'ai mis en place un script de flush (suppression de l'intégralité de la base), de "load" (récupération sous format json) et d'un dump (sérialisation de la base en un format json).

Pour l'occasion, j'ai créé un fichier d'exemple :

linkm load fixture_example.json

Pour sauvegarder sa base :

linkm dump >| snapshot_1.json

Enfin, le soft devrait rapidement sortir une version 1.0 si il y a un réel intérêt derrière.

Sous le capot
-------------

* python 3 et pas mal de dépendances juste incontournable de l'éco-système python.
* gettext
* la base de donnée redis
* pytest : pour des tests unitaires sans prise de tête
* un manpage (man linkmanager)

License
-------

BSD : pas vraiment de grande réflexion autours de ça.
On peut contribuer/forker sans prise de tête... c'est q'un passe temps donc no stress.

Le nom
------

Vraiment pas terrible... URLManager aurait sans doute été mieux.
Si il y a des suggestions, je suis preneur.

Tâches Cron/Anacron
-------------------

Vous désirez garder une trace de votre base de donnée et la sauvegarder régulièrement?
Il est bien évidement possible d'utiliser la périodicité sous linux.

Perso, je lance ceci en "daily" via anacron: (en user mode)

linkm dump >| /home/myuser/backup/linkmanager/$(date +"%d_backup.json")

Par la suite, je pense créer une variable de config dans les settings du fichier.

Pour les éventuels traducteurs
------------------------------

J'ai évidement attribué à chaque chaîne de caractère de pouvoir être traduite... en utilisant gettext.
Pour simplifier la traduction, j'ai pompé allègrement (mais adapté quand même) les merveilleux outils du projet Django.
Du coup, en ce mettant à la racine, un

./makemessages

parcourera le projet afin d'y chercher de nouvelles chaines de caractères à traduire.

et un

./compilemessages

compilera les fameuses chaines traduites.

Si on veut les 2 en 1:

invoke trans

Pour les empaqueteurs
---------------------

Paquet sur Pypi
~~~~~~~~~~~~~~~

Normalement, un simple

sudo pip3 install linkmanager

devrait suffire

Paquet PPA
~~~~~~~~~~

J'ai commencé l'empaquetage mais je boque sur pas mal de soucis de dépendances.
Je m'y repencherais volontier si le soft succite de l'intérêt.
(https://launchpad.net/~jerem-ferry/+archive/linkmanager)

Pour les développeurs
-----------------------------

Ce projet n'est pour l'instant qu'un passe-temps comme un autre.
Il m'a permis de jouer avec du NoSQL en dehors d'un projet professionnel.

Il est tourné vers l'avenir... et l'avenir c'est python3.
Perso, j'utilise python3.3 dans mon virtualenv

mkvirtualenv -p /usr/bin/python3 linkmanager

La rétro-compatibilité vers python 2 est normalement assuré (je ne pense m'y attarder que si il y a une vrai demande)... ce n'est cependant pas ma priorité et j'invites tous les éventuels contributeur à passer sous python 3 pour éviter les soucis vicieux d'encodage ou autre.

Ma 1ère version n'utilise que la base de donnée Redis (très minimaliste mais super performante, elle nécessite de bien réfléchir à la structure des données) mais il est prévu d'avance de pouvoir rajouter le support d'autres bases... et ça risque d'être aisé wink
Merci à python pour le Duck typing!
Ma future priorité : MongoDB.
Dès son support, j’inclurais un script de bench : j'ai envie de voir si la différence avec Redis est frappante et à partir de combien d'entrées elle devient significative.
Ensuite, pourquoi pas tester elasticsearch...

https://github.com/mothsART/linkmanager

Tests unitaires
---------------

Attention : avant de lancer cette procédure de test, assurez-vous que vous n'avez pas de données sensibles sur vos bases redis!
Si oui, assurez-vous de sélectionnez une base vierge via le fichier settings.py : variable "TEST_DB_NB"

(C'est d'ailleurs étonnant que redis ne prévoit rien à cet effet...)

Pour lancer la couverture de test, il suffit de lancer

invoke test

et si on veut lancer un fichier de test en particulier :

python -m pytest linkmanager/tests/db.py

Evolution possible
------------------

* recherche interactive (avec du ncurses)
* autres facteurs de recherche tel que la date d'enregistrement/date de mise à jour/auteur.
* Contenu en cache :
    Suis-je le seul à pester lorsque je désire re-visiter un lien et que ce dernier n'existe plus? quel désarroi!
    Et bien, LinkManager pourrais combler ce déficit en proposant la mise en cache du fameux lien.
    Si le lien n'existe plus, il est consultable sur le cache...

    Il serait également possible de comparer le lien en cache avec le site actuel : ce diff permettra de voir rapidement quels sont les éléments qui ont changés depuis!

    Et pourquoi pas proposer un mini-serveur web lancé en localhost pour parcourir ces contenus.
    Naviguer en non connecté en somme.
* un load à partir d'une url : linkm load http://monsite.fr/linkm.json
* une extension firefox/chrome/autre browser pour rajouter des fonctionnalités
* une connexion avec Evernote (ou un autre service de cloud)
* fichier de log d'utilisation : possibilité d'avoir des stats, d'améliorer la recherche etc.

Je regorge d'autres idées... mais pour le cela, il faut s'en donner les moyens.
Pour l'instant, ce soft ne sert que mes propres besoins mais je suis ouvert à des propositions!

Dernière modification par moths-art (Le 08/04/2014, à 08:22)

Hors ligne

#2 Le 12/04/2014, à 15:45

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

J'ai finalement décidé de travailler mon packaging : linkmanager est donc disponible sur launchpad via un PPA (ubuntu 13.10 saucy only).
Pour l'installer, rien de plus simple :

add-apt-repository -y ppa:jerem-ferry/linkmanager
apt-get update
apt-get install linkmanager

Pour les pythoneux, il reste toujours possible de faire un (pip3 sur ubuntu pour dire qu'on utilise du python3) :

pip3 install linkmanager

Je rappel que ça s'utilise via

linkm [-option]

J'ai tenté de trouver une solution pour que l'auto-complétion soit fourni de base mais ce n'est définitivement pas simple : cf http://forum.ubuntu-fr.org/viewtopic.php?id=1545351

La page man incontournable :

man linkm

Pour ce faire, j'ai utilisé "Docker" : ça m'a permis d'automatiser les règles d'installation et de me garantir le bon fonctionnement dans un environnement vierge. (gestion des dépendances etc.)
Afin de faire partager mon taf, j'invites les plus geek d'entre vous à regarder mon github (https://github.com/mothsART/linkmanager_docker) contenant mes "Dockerfile".

Bien à vous

Hors ligne

#3 Le 13/04/2014, à 18:35

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,

Quand je fais un apt-get update j'ai une erreur :

2 917 ko réceptionnés en 6s (446 ko/s)                               
W: Impossible de récupérer http://ppa.launchpad.net/jerem-ferry/linkmanager/ubuntu/dists/precise/main/source/Sources  404  Not Found

W: Impossible de récupérer http://ppa.launchpad.net/jerem-ferry/linkmanager/ubuntu/dists/precise/main/binary-amd64/Packages  404  Not Found

W: Impossible de récupérer http://ppa.launchpad.net/jerem-ferry/linkmanager/ubuntu/dists/precise/main/binary-i386/Packages  404  Not Found

E: Le téléchargement de quelques fichiers d'index a échoué, ils ont été ignorés, ou les anciens ont été utilisés à la place.

Ubuntu 12.04

Sinon le soft à l'aire vraiment intéréssant, question toute bête qui n'est pas marquer dans la doc, comment on ajoute des tagg quand on ajoute un lien ?

Dernière modification par White Angels (Le 13/04/2014, à 18:40)


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#4 Le 14/04/2014, à 08:42

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Merci de ton retour "White Angels", c'est toujours enrichissant!

Effectivement, j'ai précisé que le PPA n'a été prévu que pour la version d'Ubuntu 13.10... mais je vais regarder ce que je peux faire pour la LTS 12.04.

Pour ajouter des tags, il faut soit ajouter soit modifier un lien (ou plusieurs séparés par un espace).
Un enregistrement te pose plusieurs questions dont les tags (traduit par "étiquettes" en français).
Dans le cas d'une modif, tous les questions sont pré-remplies.

Y'a quelques subtilités mis en place que j'encourage à découvrir.
Par exemple, si le lien existe déjà, une addition le précise et demande si tu veux le modifier.

Aussi, il n'est pas possible d'ajouter des tags qui ne sont pas attachés à un lien.
Dans la même logique, un lien supprimé supprimera aussi les tags orphelins.

J'ai pas mal travaillé sur l'intuitivité mais ça n'empêche pas de compléter la doc.

Dernière modification par moths-art (Le 14/04/2014, à 08:48)

Hors ligne

#5 Le 14/04/2014, à 15:06

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,

J'attends avec impatience le ppa sur 12.04 et 14.04 big_smile

Je trouve le projet vraiment intéréssant, un petit plus serait d'ajouter une extension pour une interface web (histoire que ça soit un plus userfriendly). ça fait des mois que je cherche une solution de gestion des marques pages intuitif, j'ai trouver shaarli mais pas satisfaisant à mon goût.


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#6 Le 14/04/2014, à 17:53

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Pour le packaging : je m'y suis mis par goût d'apprentissage mais aussi pour améliorer la visibilité mais je suis loin d'être expert en la matière.
L'idéal serait de proposer un PPA pour toutes les versions d'Ubuntu en cours de support (LTS y compris) mais ça demande de vérifier que tout fonctionne bien.
Maintenant que je commence à maitriser Docker, ça ne devrait pas être insurmontable!
Je projette aussi ArchLinux (AUR) à moyen terme.

Une interface web n'est pas forcément plus userfriendly. (des projets tel que weboob n'existerait pas si l'ergonomie était toujours au rendez-vous) C'est une question de culture ça : y'a plus de personne à l'aise sur du web, c'est indéniable.

Mon but n'est pas non plus de me substituer à des trucs déjà existant genre Shaarli. (pas assez de recul pour exprimer un avis dessus)
Je ne suis pas certain d'avoir le temps/l'énergie/les compétences suffisantes pour me substituer à ces softs.

L'objectif d'une version stable est déjà une API propre et pourquoi pas de devenir une librairie (dont la plus probante utilisation serait une interface cli).
Dans ce cadre, plusieurs idées seraient réalisables :
* un lens Unity par exemple
* des imports/exports avec d'autres projets
* automatisation de synchro via pubsub par exemple

Pour tout ça, je ne veux surtout pas me disperser et travailler sur le coeur : que ça soit robuste et réactif avec des milliers d'enregistrements. (benchmarks)

Du coup, pas d'interface web avant la 1.0.

Hors ligne

#7 Le 14/04/2014, à 18:33

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Je comprend parfaitement ton point de vue par contre un ppa pour chaque version d'ubuntu supporté serait le top.

Sinon une autre idée serait  que ton logiciel soit intégré à unity. Tu commence à taper le tag dans le luncher et il te sort les URL, là ça serais le must de l'user-friendly

Dernière modification par White Angels (Le 14/04/2014, à 19:20)


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#8 Le 14/04/2014, à 20:01

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

White Angels : j'suis pas un utilisateur de Unity mais, comme je le mentionne, l'idée d'un lens unity  (plugin pour le dash unity)  est envisageable.
Ce n'est pas ma priorité première car elle ne se destine qu'à une niche d'utilisateur. Unity n'existe que pour Ubuntu et tous les utilisateurs d'Ubuntu n'utilise pas le dash...

Dernière modification par moths-art (Le 14/04/2014, à 20:04)

Hors ligne

#9 Le 16/04/2014, à 17:37

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Quelques news :

J'ai essayé de prendre en compte les critiques de "White Angels" et j'ai du coup mis à jour : version 0.3.
Voici la liste des changements :
    * doc complété pour l'ajout/modification d'un lien

    * correction d'un bug d'i18n + amélioration de l'outil "makemessages"
    * il est possible maintenant de connaître la version de linkmanager : "linkm --v" ou "linkm --version"
    * Pour les dev: "invoke version -e 0.3.0" permet maintenant de releaser facilement le soft :
        * plusieurs fichiers sont automatiquement mis à jour (README.rst, HISTORY.rst, linkmanager/__init__.py et debian/changelog)
        * édition des différents correctifs : HISTORY.rst et debian/changelog sont édité en même temps
    * pour briller un peu sur github, j'ai ajouter des outils d'intégration continue : travis CI et coveralls :
    ils sont dépendant de Tox donc il est sera facile de tester en locale plusieurs versions de python sans tout casser en remote.

    * PyPi/PPA pour Ubuntu 13.10/14.04 mis à jour
    Pour la 12.04, c'est un peu plus compliqué pour des histoires de version de python et de dépendances non satisfaites.
    Elle est soutenu jusqu'à avril 2017 ce qui m'oblige à m'y consacrer... mais ça va être choco.

Hors ligne

#10 Le 17/04/2014, à 11:30

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Pour une doc moins brouillon, je me suis permis d'ajouter un article dans le wiki : http://doc.ubuntu-fr.org/linkmanager

Hors ligne

#11 Le 17/04/2014, à 12:21

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Normalement j'installe ubuntu 14.04 aujourd'hui, je pourrais tester ton soft smile


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#12 Le 19/04/2014, à 09:33

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,

Après quelques testes, j'ai une petite remarque : Il faudrait la possibilité de rajouter un titre au lien, ça serait plus facile pour s'y retrouver quand on en as beaucoup !

Parce qu'actuellement j'ai :

morgan@morgan-laptop:~$ linkm search phpmyadmin
1 links founded : 
    http://www.it-connect.fr/installer-un-serveur-lamp-linux-apache-mysql-php/

Si on pouvais avoir un truc du genre :

morgan@morgan-laptop:~$ linkm search phpmyadmin
1 links founded : 
    Titre du lien  :
                http://www.it-connect.fr/installer-un-serveur-lamp-linux-apache-mysql-php/

Et quand on ajoute un lien, le script va allé chercher dans les balises <title></title> (ou un autre endroit) pour suggérer un titre.

PS : Le système de priorité, c'est top !


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#13 Le 19/04/2014, à 12:38

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Merci pour ton retour précieux.
J'en déduis que ton passage à la récente Ubuntu 14.04 c'est bien passé wink

1. Premier constat : il va falloir que je corrige le soucis de langue.
Y'a une traduction en français normalement mais l'archive deb à fait perdre cette fonctionnalité.

2. L'histoire du titre me convainc à moitié : l'idée est de rester rapide à l'édition et rajouter encore 1 champ me pose par conséquent soucis.
Il y a déjà un champ "description" qui devrait faire emploi.

Voici comment je vois les choses dans un future proche :

$ linkm search phpmyadmin
1 lien au total trouvé :
    f252f3d1-dfcc http://www.it-connect.fr/installer-un-serveur-lamp-linux-apache-mysql-php/

$ linkm search -p phpmyadmin
1 lien au total trouvé :
    f252f3d1-dfcc http://www.it-connect.fr/installer-un-serveur-lamp-linux-apache-mysql-php/
    ├── ordre de priorité : 6
    ├── tags : phpmyadmin, mysql, php
    ├── descriptif : tuto sur l'installation de phpmyadmin
    └── créé le ... à tel heure et mise à jour le ... à tel heure

Tu remarqueras que le lien est précédé par un uuid.
Plein de soft en cli (GIT par exemple) utilise se principe pour éviter de recopier un élément potentielement long (une URL).
J'ai remarqué ce défaut à l'usage : quand on veut modifier/supprimer un lien existant.

Dans le 2ème exemple, l'option -p permettra d'avoir les propriétés de l'élément.

Dans un avenir plus lointain, j'aimerais créer un outil de recherche en Curse lancé tel quel

linkm search -i phpmyadmin

-i comme interactif donc avec la possibilité de se déplacer sur les résultats, d'affiner encore la recherche, de lancer un lien dans un navigateur, de faire des actions via à la sourcis dans des VTE etc.

3. Pour l'idée de l'auto-suggestion : c'est effectivement intéressante mais c'est pas forcément simple à réaliser proprement.
Je m'explique : si le serveur est lent ou temporairement down, on fait comment?
Il ne faut surtout pas que l'utilisateur final ressente une quelquonque l'attence.

Mon idée actuelle :
vu que l'odre d'une saisie ce fait ainsi : URL, tags, priorité puis commentaire.
Il suffirait de lancer en tâche de fond (thread) une requête http entre l'URL et le commentaire.
Si on a eu le temps de l'intercepter le titre, on l'affiche.

Je vais voir si je peux inclure ça rapidement.

Dernière modification par moths-art (Le 19/04/2014, à 12:39)

Hors ligne

#14 Le 19/04/2014, à 14:51

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

L'idée d'afficher les infos détaillé est plutôt cool !

Par contre, pour le titre, c'est vraiment primordial à mon goût. Pour cette URL ça va, le titre est plus ou moins détaillé dans l'url  : [...].fr/installer-un-serveur-lamp-linux-apache-mysql-php/

Mais imagine que j'utilise des Minimiseurs d'url (pour ne pas encombrer le terminal par exemple), c'est plus possible de s'y retrouver en un coup d'oeil (si la recherche phpMyAdmin me renvoie 10 liens, c'est plus gérable).
D'où l'idée d'y mettre un titre (qui ressortirais en couleur) qui serait plus succin qu'une description (donc qui se lit en un coup d’œil) et qui serrait suggéré automatiquement (donc peut d'effort à faire pour compléter le champ).

Dernière modification par White Angels (Le 19/04/2014, à 14:52)


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#15 Le 19/04/2014, à 16:09

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

Bon, tu fais bien d’insister... un titre parait effectivement nécessaire.

Même si je fais parti de la vielle école qui dit qu'une URL devrait désigner précisément une ressource : du côté client, on ne maitrise rien donc on peut s'attendre à des URLS vraiment pas parlantes alors que le contenu, lui est probant.

Pour ce qui est des minimiseurs : je ne suis vraiment pas partisan dans ce contexte.
Les minimiseurs sont sympa pour du tweet par exemple ou les caractères sont comptés.
En revanche, certains minimiseurs rajoutent des bandeaux de pub et on a pas vraiment de recul sur les durées de vie de se genre de service tiers : si je cherche une URL dans plusieurs mois/années et qu'on sauvegarde que le raccourci : on peut se retrouver dans le cas ou la ressource existe encore mais plus le raccourci... ça me parait vraiment dommage.

Le pire des cas serait qu'un utilisateur minimise l'ensemble de ses URLs avec le même service : le jour ou c'est down temporairement ou définitivement, il s'assoit sur l'ensemble de ses archives.

Je vais encore réfléchir si j'enregistre l'URI de la ressource seul ou bien également la redirection.

Dernière modification par moths-art (Le 30/04/2014, à 16:12)

Hors ligne

#16 Le 20/04/2014, à 19:05

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,

Je suis en train de voir pour créer une lentille Unity pour ton programme (voir : http://forum.ubuntu-fr.org/viewtopic.php?id=1552011 ).
Comme je n'ai que de très vagues connaissances en python, je me demandais qu'elle est le meilleur moyen pour exécuter une commande shell en python et récupérer le résultat de cette commande.


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#17 Le 23/04/2014, à 10:26

melixgaro

Re : Linkmanager : logiciel de gestion de ses URLs

salut,

Je m'incruste à la discussion. En fait, je suis ce sujet depuis que moths-art l'a créé. Mais aujourd'hui, je viens ajouter mon grain de sel big_smile

Premièrement, l'idée d'avoir un gestionnaire de marque-pages est très bonne. Ça fait un moment que je me casse la tête là-dessus pour trois raisons :
1/ Comme je jongle entre plusieurs ordis, je cherche à avoir un compte Firefox identique de partout. Je n'ai pas trouvé d'outils de synchronisation qui m'ont plus (il y a bien les machins en ligne, mais bon, ça ne me plaît pas de confier mes données à des sites tiers (et ça date d'avant les révélations de Snowden wink)). Je cherche plutôt un système de synchro utilisant le réseau local par exemple. En plus, Firefox met tout dans une base de donnée sqlite, donc pas possible d'éditer la base de marque-pages à partir d'un simple éditeur de texte. Finalement, je reste avec mes Firefox différents.
2/ Je cherche aussi un moyen d'avoir des marque-pages bien organisés, car au bout d'un moment je ne m'y retrouve plus. Et je ne suis pas non plus complètement satisfait de ce que propose Firefox.
3/ Je cherche un moyen d'accéder simplement à ma base de marque-pages, sans avoir à lancer Firefox si celui-ci est fermé. Si c'est de la la ligne de commande, c'est encore mieux.

Comme White Angels, je pense que le champ titre est nécessaire. Je verrai bien pour chaque favori les champs suivants :
l'url
l'url effective (c'est-à-dire après redirection)
le titre
la date d'ajout
la description
les mots-clefs
la pertinence
version locale (bouléen : Vrai si on a fait une capture de la page, Faux dans le cas contraire)

Pour faciliter l'ajout d'url, une idée serait de récupérer le titre dans la page web directement au lieu de le rentrer manuellement.
Tu parlais d'archiver localement une page web. Je crois qu'il est indispensable d'offrir cette possibilité car une ressource peut disparaître.

J'en viens à ce qui me pose problème. J'avoue, je n'ai pas testé ton logiciel par manque de temps. Mais d'après ce que j'en ai lu, ça crée une base de donnée invisible à Firefox. Quand j'utilise mon navigateur, je n'ai pas un accès direct aux marque-pages. Et inversement, lorsque je navigue, je ne peux pas ajouter rapidement une url depuis Firefox : il faut ouvrir un terminal, copier l'url etc etc. C'est bein ça, ou j'ai loupé un épisode ?
Donc, ma question est : ne serait-il pas possible d'améliorer cet aspect là. Par exemple, en utilisant la base de donnée sqlite de Firefox.


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#18 Le 23/04/2014, à 14:06

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

melixgaro :
Pour les champs enregistrés en base pour chaque favori, je suis à peu de chose près du même point de vue que toi.

Je comprend ton désire d'étendre les fonctionnalités de Firefox via un outil en ligne de commande.
Maintenant, plusieurs raisons font qu'il me semble délicat de s'interfacer sur cette base dans l'immédiat.
Je m'explique : j'ai fait le choix de partir sur du NoSQL pour des raisons de rapidité de recherches.
Il est fort possible que je rajoute un archivage SQL derrière et SQLite me parait être le meilleur choix pour plusieurs raisons.

  • Le NoSQL (Redis à l'heure actuelle) ferait office de cache en quelque sorte.
    L'avantage, c'est de pouvoir faire facilement de l'autosuggestion de tags (en ligne de commande, c'est le top, non?) sans latence visible même avec des milliers d'enregistrements.
    Avec du SQL, c'est quasi impossible. (La base de Mozilla, n'en parlons pas : 11 tables avec des jointures pour du marques-pages!)
    Firefox ne pourra pas bénéficier de cet avantage.

  • Y'a d'autres points ou il faudrait trancher qui ne sont pas forcément simple : on vient de partir sur l'idée d'un lens Unity.
    Unity sépare les tags par des espaces, LinkManager (pour l'instant) et Firefox par des virgules : y'a potentiellement un soucis de taille.

  • Firefox crée aussi des marques-pages organisés en dossiers/sous-dossiers en plus des tags.
    Je ne vais pas rajouter cette complexité dans LM (LinkManager) donc comment on fait : il faudrait que les liens créés par LM soit mis dans un dossier à part par exemple.

  • comment récupérer une édition de firefox via LM.
    Imaginons, je rajoute 10 liens dans firefox puis je décide de les retrouver 10 minutes plus tard dans LM.
    Comment on fait? Il faut resynchroniser les données de LM avec celle de Firefox.
    3 possibilités (y'en a peut-être d'autres) :

    1. un cron qui va resynchroniser toutes les **n** minutes : problème > si c'est avant synchro, l'utilisateur ne verra pas ces nouveaux enregistrements.

    2. chaque lancement de LM fait un md5 sur la base SQLite afin d'identifier si elle a changé : si oui, mettre à jour la base de LM.
      problème > il faut que cette mise à jour ne soit pas trop gourmande en temps.

    3. créer une extension Firefox qui "observerais" les marques-pages : à chaque nouvel enregistrement, LM serait également mis à jour.
      Le meilleur des mondes mais demande de s'y connaître dans le dev d'une extension Firefox.

  • Enfin, Firefox permet de créer plusieurs instances par utilisateur.
    J'ai une réflexion similaire pour LM mais ça veut dire qu'il faut dans un fichier de config définir quel instance de LM correspond à quel instance de Firefox.

Mon tour d'horizon a été rapide et je suis certain de tomber sur d'autres soucis.

Tout ça pour 1 navigateur!!!
Est-ce vraiment raisonnable? Je dirais OUI mais pas dans l'immédiat.
Je vais réfléchir à une possibilité d'étendre LM via un plugin pour ça mais avant tout j'aimerais vraiment me concentrer sur une version 1.0 stable.
Si je peux inclure un

linkm server

avant, ça serait top. L'idée derrière c'est de créer un mini-serveur web en local (genre http://127.0.0.1:777) qui se lancerais dans le navigateur de son choix avec un mini-moteur de recherche.

Pour la question de la synchro : c'est forcément délicat.
J'imagine que des utilisateurs d'Ubuntu utilisait Ubuntu One jusqu'à peu.
Perso, j'ai pas encore vraiment tranché : j'utilise du GIT sur un dépôt privé avec une grosse archive JSON mais j'ai conscience que c'est pas forcément l'idéal.
Il faudrait déjà que je fragmente chaque favori en un fichier séparé : ça permettrais de mieux gérer les conflits.
Et puis utiliser du PGP serait un plus : dois-je rappeler après "Heartbleed" que le SSL ne suffit pas.

Mais tout le monde ne veut peut-être pas cacher ses favoris et préfère la transparence.
Je pense me concentrer sur une API simple avec un exemple de plugin possible...
Du coup, on pourra sans doute envisager des plugins pour Evernote, Firefox sync etc.

Enfin, voilà : c'est un peu tôt pour aborder tout de front mais en discuter permet déjà de prendre certaines orientations.
Merci pour ça.

Hors ligne

#19 Le 23/04/2014, à 16:20

melixgaro

Re : Linkmanager : logiciel de gestion de ses URLs

Au sujet de Firefox : oui j'avais pensé que le mieux serait sans doute d'utiliser un système de marque-page parallèle (ou qui prend le dessus sur celui de Firefox), genre une extension qui discute avec linkmanager et utilise une bdd indépendante. Car si deux logiciels accèdent et éditent le même fichier, il y aura une situation de concurrence, avec risque de bdd corrompue. Comme ça, pas besoin de s'embêter avec les spécifités de chaque navigateur. Une extension qui discute avec linkmanager suffit, d'où l'utilité de l'API.

J'avais pas pensé au serveur local pour accèder aux marque-pages. C'est une bonne idée. Ça permettrait l'accès facile sans appeler la ligne de commande à la rescousse. Ça résoudrait partiellement le problème de communication entre Firefox et linkmanager wink

Au sujet de l'utilisation : je ne sais pas pour toi mais je suis un utilisateur compulsif de marque-pages, il m'arrive de marquer 15 pages d'affiler. En cliquant sur la petite étoile, c'est hyper rapide. Si je dois m'amuser à copier/coller le lien dans le terminal, ça vite devenir la galère. Un bouton avec ajout rapide ou ajout détaillé (donc en remplissant les champs) dans Firefox serait pas mal. La ligne de commande permettrait l'édition a posteriori.

Oui, c'est pas mal de discuter des possibilités. Après, on verra ce que ça donne big_smile Je ne m'y connais absolument pas en bdd (sqlite, sql ou autres) donc je te fais confiance sur tes remarques/critiques/choix big_smile big_smile


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#20 Le 24/04/2014, à 05:38

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,
je rejoint ce que pense melixgaro, si on pouvais rajouter un bouton à firefox, en haut à droite, ầ côté de la barre de rechrerche (comme le fait déjà certaines extensions (adblock, disconnect.me, etc ...).
Lorsqu'un utilisateur clique sur ce bouton, ça ouvrirait une page en nouvelle onglet (genre http://127.0.0.1:777/addlink)  avec quelques champs pré-remplis !
ça serait le top pour avoir un marque page interfacer avec le navigateur, comme ça pas besoin de se prendre la tête avec des soucis de synchro.
En plus, moi qui suis partisan du cloud personnelle (j'ai un serveur dédié avec owncloud dessus), avec ce système, je pourrais me faire un service de marque page auto-héberger, que je pourrais choisir de partager avec des amis !

Pour ce qui est de la recherche, étant un utilisateur d'unity, j'ai juste à appuyer sur "SUPER" et taper mon mot clés pour accéder à mes favoris ! Si on pouvais avoir tout ça pour la version stable ça serait l'idéale !
Par contre, si je choisi d'utiliser une version héberger sur un serveur, il faudrait pouvoir configurer LinkManager pour aller intéroger l'API sur une autre adresse que localhost.

(D'ailleurs j'ai vu qu'il existe déjà une lentille Unity qui recherche dans les favoris firefox, je ne savais même pas que firefox incluais le système de tagg.
Mais bon, après quelques testes, la lentille ne recherche que les liens ranger dans un dossier, et ne supporte pas la recherche pas tagg c'est dommage).

En tout cas c'est un projet très intéressant et je suis le topic attentivement !

Dernière modification par White Angels (Le 24/04/2014, à 06:00)


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#21 Le 25/04/2014, à 11:27

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

melixgaro : ne t’inquiètes pas sur la concurrence pour des bases SQL : les enregistrements sont ACID :
http://fr.wikipedia.org/wiki/Propri%C3%A9t%C3%A9s_ACID
En gros, soit la transaction se déroule sans accrocs et il y a enregistrement, soit ça échoue :
y'a pas d'intermédiaire en SQL donc pas de possibilité de corruption. Pendant une transaction, la ressource en base est bien évidement verrouillé.
Bref, je t'épargnes les détails : pour l'instant c'est pas au programme...


Bon, je vois que l'histoire d'un serveur web fédère tout le monde : je me concentre la dessus.
J'ai pas mal hésité entre bottle et Flask. (Django étant vraiment trop gros pour ce genre de chose)
Je vais partir sur Flask qui me permettra plus facilement de faire du REST et sans doute par la suite de l'Oauth.


Pour ce qui est de Firefox, je vais devoir réfléchir à une extension minimaliste pour la 1.0 :
1 bouton d'ajout via le service web.

Problèmes :
   * ça nécessite de daemoniser le serveur (et une relance auto du daemon si il est arrêté et qu'on clique sur le bouton)
   * les utilisateurs risquent de se mélanger les pinceaux entre le système de bookmarks du navigateur et de LM.

Avantage : ça ne me parait pas insurmontable et je peux sans doute envisager une extension chrome.

Après la 1.0, je pourrais sans doute me concentrer sur une véritable surcouche du système de bookmark de firefox/chrome (avec des appels à LM transparents).
Bon, ça va forcément me forcer à des questions du genre : comment gérer l'installation de LM post navigateur alors que ce dernier a déjà des bookmarks...

J'ai essayé de regarder en détail la lentille en question (unity-web-history-lens) : y'a de la technique et de la prise de tête derrière mais c'est vraiment fait n'importe comment : en gros, on stock l'ensemble des bookmarks de firefox et chrome dans des variables en RAM puis on l'interroge... je ne veut même pas réfléchir à comment ça se passe quand il y a énormément d'enregistrements.

Bon, ça m'a néanmoins permis de savoir un peu mieux comment les bookmarks sous chrome fonctionnent (un simple fichier JSON qu'on peut facilement étendre avec des tags par exemple).

Je reviens à vous dès que j'ai du probant...

Hors ligne

#22 Le 25/04/2014, à 13:07

melixgaro

Re : Linkmanager : logiciel de gestion de ses URLs

En effet, il y a pas mal de possibilités et donc beaucoup de boulot en perspective. J'aurais bien volontiers mis la main à la pâte mais mon niveau en python est intermédiaire, ni débutant, ni confirmé. Donc sans doute trop faible pour un tel projet. Quant à coder une extension Firefox, c'est même pas la peine (c'est du javascript, non ?).


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#23 Le 25/04/2014, à 14:27

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

melixgaro : tu sais, je me suis perfectionné en python principalement sur des projets web avec le framework Django.
J'y ai soumis quelques patches et j'ai appris sur le tas avec persévérance : quand on te rejettes un patch parce qu'il est mal codé (alors que l'idée est approuvé), tu cherches à te mettre en conformité rapidement.

Si tu as du temps, je te conseil déjà de lire le code avec attention et d'essayé de le comprendre.
Le soft est encore vraiment petit (donc abordable) et j'ai essayé de tout de suite utiliser des libs incontournables.
ça ne peut que faire progresser de connaitre des bons outils du dev python?

L'étape d'après serait déjà de suivre le dépôt GIT et éventuellement remonter des bugs, créer des branches avec des nouvelles features etc.

Pour Firefox : mais non voyons, c'est plus compliqué que ça lol
On va dire que les petites extensions sont en HTML5 (donc effectivement, l'interactivité est en javascript) et les plus grosses en XUL.
La raison est historique : avant, Firefox, c'était que du XUL mais depuis la concurrence plus rude de chrome et la survenue de pas mal de features HTML qui gomme les avantages de XUL... il y a une volonté de Mozilla de supprimer le XUL mais ça se fait pas du jour au lendemain.

Hors ligne

#24 Le 21/05/2014, à 20:06

White Angels

Re : Linkmanager : logiciel de gestion de ses URLs

Bonjour,

je viens prendre des nouvelles du projets, j'ai vu que sur le github il n'y a pas eu de mise à jour depuis mi avril. Je me demandais ou en était l'interface web ?  Comme ça je pourrais essayer de filer un coup de main sur mon temps libre en développant une extension firefox et/ou mobile.

PS : Je pensais à un truc : il y aurait pas moyen de renommer le projet ? Le nom "Link to the past" (LTP) me paraissait cool, un petit clin d’œil à zelda et en plus ça fait un jeux de mot ^^


OS : Ubuntu 14.04 Trusty Tahr  || Nombre de convertis aux libres : 2 (peut-être une troisième)

Hors ligne

#25 Le 21/05/2014, à 20:46

moths-art

Re : Linkmanager : logiciel de gestion de ses URLs

White Angel :
En effet, le compte github n'a pas trop bougé :
J'ai eu peu de temps sur le projet et surtout j'ai pris le temps de choisir/expérimenter différentes technos pour finalement tout "casser" (léger changement d'API et quelques tests unitaires qui pête) et inclure toutes les modifs évoqués.
Mettre à dispo un truc en chantier ne me paraissait pas envisageable même dans une branche.

J'ai aussi commencer à basculer la partie web sur un serveur afin de pouvoir vous faire expérimenter en live. (sans installation)
La partie "recherche" par exemple, fonctionne bien avec l'auto-suggestion des tags.

Ca devrait me prendre encore quelques jours avant de faire un vrai retour mais l'attente devrait valoir le coup!

Une fois la version 0.3 opérationnel, tu pourras sans soucis avancer sur l'extension.

Pour le nom, j'attend que ça se stabilise.
En revanche, ça demande quand même un peu de taf pour tout renommer : je vais donc agir avec sagesse.
L'urgence est donc minime...

Dernière modification par moths-art (Le 21/05/2014, à 20:48)

Hors ligne