Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.
nombre réponses : 25

#0 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 12/04/2014, à 16:45

moths-art
Réponses : 35

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

#1 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 14/04/2014, à 09:42

moths-art
Réponses : 35

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.

#2 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 14/04/2014, à 18:53

moths-art
Réponses : 35

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.

#3 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 14/04/2014, à 21:01

moths-art
Réponses : 35

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...

#4 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 16/04/2014, à 18:37

moths-art
Réponses : 35

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.

#5 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 17/04/2014, à 12:30

moths-art
Réponses : 35

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

#6 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 19/04/2014, à 13:38

moths-art
Réponses : 35

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.

#7 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 19/04/2014, à 17:09

moths-art
Réponses : 35

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.

#8 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 23/04/2014, à 15:06

moths-art
Réponses : 35

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.

#9 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 25/04/2014, à 12:27

moths-art
Réponses : 35

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...

#10 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 25/04/2014, à 15:27

moths-art
Réponses : 35

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.

#11 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 21/05/2014, à 21:46

moths-art
Réponses : 35

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...

#12 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 24/05/2014, à 18:21

moths-art
Réponses : 35

Bon, ça prend forme!

Désolé du temps pris : je suis un peu perfectionniste et je veux vraiment traiter certains soucis critiques avant de lancer une 1.0...
Et surtout éviter au possible de maintenir des architectures bancales...

De +, je consacre un temps volontairement "limité" sur ce projet, en ayant d'autres en cours plus ou moins avancés/complexes.
Ca reste un soft pour mon usage que je mets gracieusement à la vue de tous.

J'ai donc mis mes derniers travaux sur une branche "develop" pour les plus téméraires.
On test ici :

sudo pip3 install -e git+https://github.com/mothsART/linkmanager.git@5f9046ae297501892e95a779961f80fb3ad8d125#egg=linkmanager

Il me reste principalement à :
    * rajouter des tests unitaires (et à corriger pas mal de tests qui ont sautés)
    * étoffer la partie "serveur"
    * permettre l'auto-complétion des tags dans le shell!
    * i18n : un peu de taf à ce niveau d'effectué mais ça reste encore inégal : du franglais par moment...

Suite à ça, je pourrais sereinement penser à :
    * lancer la version 0.4 sur ppas/pypi
    * corriger le wiki en conséquence
    * refaire une campagne de pub

Qu'est-ce qui a changé ? (Liste non exhaustive)

* ajout de la prise en charge de titres et d'URLS minimisés.
Comme évoqué, lors d'un ajout d'URL, une requête "asynchrone" va rechercher le titre d'une page web afin de la suggérer.
l'URL est automatiquement minimisé à la fin de l'ajout d'un lien : via l'api d'un webservice.
On peut déjà choisir/changer son webservice en éditant les settings du soft mais prenez ça comme temporaire.
Mon objectif est de fournir un fichier de conf générique (/etc/linkmanager/settings.conf) et par utilisateur (/home/user/.config/linkmanager/settings.conf) selon les principes d'UNIX.
* Justement, des variables de conf commencent à prendre place :
    * paramêtrage de la Base de donnée
    * minimizer
    * Options de la recherche : nombre maximum dans l'auto-suggestion de tags, nombre maximum de réponses
* ajout de l'option "verbose" sur une recherche :
permet d'avoir toutes les propriétés corresponds à un lien :

$ linkm search -v
6 liens au total trouvés :
      1 ➤ http://ubuntu.com
         ├── title : The leading OS for PC, tablet, phone and cloud | Ubuntu
         ├── 5431572c-d859-46c2-87c8-5e1c0c1fa402
         ├── ordre de priorité : 10
         ├── tags : linux python shell ubuntu
         ├── description : Fr Ubuntu site
         └── create the 27 January 2014 at 17:37:19 and not updated yet.
      2 ➤ https://www.404.io/404.html
         ├── 1afae9bb-8e71-46f7-aadb-701bb1353937
         ├── ordre de priorité : 10
         ├── tags :
         ├── description : no response
         └── create the 27 January 2014 at 17:37:19 and not updated yet.
      3 ➤ https://www.docker.io
         ├── title : Homepage - Docker: the Linux container engine
         ├── ef91d3dd-35f5-40a6-9410-4a79db9175ef
         ├── ordre de priorité : 10
         ├── tags : container golang linux ubuntu
         ├── description : Container engine...
         └── create the 27 January 2014 at 17:37:19 and not updated yet.

* un load de JSON est maintenant un peu plus "intelligent" : il permet de rechercher automatiquement les titres des pages, de minimizer à la volé les URLS etc.
C'est du traitement asynchrone "répartie" (le nombre de tâches simultannées est par défaut de 5 car c'est à priori la meilleur config pour mon serveur mais ça peut être modifié dans les settings) donc optimisé pour être le plus rapide possible.
Cependant, j'imagine que ça peut vite devenir bloquant pour des grosses bases!
Il faudrait rajouter une barre de progression sans doute, une option "offline" etc.

Enfin, le load est un peu plus regardant de l'intégrité de votre base.
Il déclenche par exemple des erreurs si dans vos fichiers json (je rappel qu'on peut très bien chargé plusieurs json d'un coup : linkm load fixture1.json fixture2.json fixture3.json) vous vous retrouvez plusieurs liens semblables présentant des propriétés différentes.


Maintenant, la grosse évolution (celle qui vous a fait attendre) :
Un serveur web qui se lance via :

$ linkm w
ou
$ link web

ça lance automatiquement la page sous firefox mais vous pouvez changer le navigateur soit dans les settings soit :

$ linkm w chrome

C'est vraiment minimaliste pour l'instant mais l'idée est là : la recherche de liens via des tags avec de l'auto-suggestion.

Tout est centré autours de la recherche est j'ai pris soin d'utiliser des libs solides : jquery, jquery-ui, _underscore, twitter-bootstrap.
On peut reprocher qu'il n'y a pas d'indentité graphique (on reconnait l'apparence de twitter-bootstrap à des kilomètres) mais j'ai vraiment pas l'envie de me concentrer sur ce point.
Ca doit à mon sens être sobre et fonctionnel.
L'idée forte c'est "tout sur une page" : on est pas dans un site web mais plus dans de l'appli. (cqfd : bcp d'ajax)
Les boutons sur la droite ne sont pas actifs mais prévisionnels :
    * un bouton "édition" : une fois activé, on peut rajouter des liens, et éditer ceux existants.
    * un bouton "paramètres" : changer pas mal d'options de settings en live et user-friendly.


Bon, je demande votre indulgence car c'est vraiment tout frais et y'a pleins de bugs potentiels :
par exemple, le serveur ne fonctionne pas encore en mode off-line : j'utilise pour toutes les libs css/js des cdn pour booster un peu les  choses mais il faudrait dans l'idéal livrer du static si c'est off.


J'aurais souhaité vous apporter une version demo mais j'ai essuyé quelques platres pour l'hébergement.
Au départ, je me suis tourné vers "Alwaysdata" : avec leur offre gratuite, je pensais avoir tout à porté de main...
C'est sans compter sur les dépendances : Alwaysdata propose python 3.1 et Flask ne tourne pas dessus... en plus, il faut compiler Redis.
Bref, pas du clé en main...
Je suis en train d'étudier des solutions de VPS gratuit :
    * google app engine : n'utilise pas Redis donc obligation d'utiliser leur api Big data...
    * heroku : sans doute le meilleurs mais j'suis pour l'instant un peu perdu...
    * je viens de faire des demandes auprès d'autres VPS gratuits

Si bien évidement, une âme charitable se propose d'héberger ou financer l'hébergement, ça serait le top.
Je pense m'investir suffisement pour encore me soucier de ça.
Néanmoins, je trouve que ça serais une superbe vitrine d'avoir un truc en live.

Mon avancement vient forcément avec de nouvelles idées :
La plus probante : possibilité de suggérés des tags automatiquements lorsque la racine du lien est reconnu.
Exemple :
tous les sites commençant par https://www.youtube.com suggère automatiquement "video".
Il faudrait que je rajoute une option pour ça.
Dans l'idéal : ça devrait être enregistré en base mais je pense sans doute inclure ça dans les settings. (trop de taf d'un coup sinon pour peu d'avantages immédiats)


PS: je me suis aussi créé pas mal de petits outils dédiés afin d'améliorer ma productivité future sur le projet :
Par exemple, 1 config Tmux afin de lancer 1 session pour les tests, 1 pour lancer le serveur web, 1 pour les tests unitaires, 1 pour l'accès ssh et 1 pour 1 accès sur le site en remote avec Midnight Commander. (pour passer des gros fichiers JSON par exemple)
Ca m'évite bcp de tâches répétitives!

J'attend vos retour avec attention.

#13 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 26/05/2014, à 00:48

moths-art
Réponses : 35

Petite précision : si vous désirez tester à chaque fois la dernière version (cqfd : le dernier commit github) sans attendre des versions packagées :

sudo pip3 install --upgrade -e git+https://github.com/mothsART/linkmanager.git@numero_du_commit#egg=linkmanager

upgrade vous permet de forcer la dernière version si vous en avez déjà une d'installé et le numéro de commit, vous le trouverez facilement ici : https://github.com/mothsART/linkmanager/commits/develop

Bien à vous!

#14 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 11/06/2014, à 10:48

moths-art
Réponses : 35

Le problème d'une installation avec Pip c'est qu'il ne t'installes que les dépendances python et non le reste. (à la différence d'un PPA)
Il faut installer la base de donnée Redis sur un environnement vierge sinon ça ne fonctionnera pas :

apt-get install redis-server

Pour le lancement  du serveur, ça doit se faire en auto : linkmanager test si c'est lancé et le démarre dans le cas contraire.

Bon, je vais tenter d'avancer rapidement sur les points bloquants afin de produire une release PPA...

#15 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 11/06/2014, à 12:21

moths-art
Réponses : 35

Pour les raccourci urls et la recherche simple, je suis dac : je vais changer ça...

Pour l'interface web, je préfère ne pas daemonizer d'entrée : c'est pas vraiment un serveur comme apache à la base.
J'imagine que tu souhaiterais quelque chose de persistant : genre le serveur web dispo après un reboot?
Je vais réfléchir à ça car je ne veux pas l'imposer : (genre une option de config) tous ne veulent pas ce service web en tâche de fond.

En attendant, fait

nohup linkm w &

J'imagine que tu sais comment faire pour le lancer en auto au démarrage de ta bécanne?

et pour le killer

killall linkm

#16 Re : -1 »  Linkmanager : logiciel de gestion de ses URLs » Le 13/06/2014, à 11:28

moths-art
Réponses : 35

Pour le serveur persistant, je vais voir ce que je peux faire mais je ne veux pas m'éparpiller.
Pour que les bugs soient loggés et que le serveur soit relancé en cas d'erreur, il faudrait que je mettes en place un soft comme "supervisor" : en somme, faire un vrai daemon.
Cette experience me permettra sans doute de mieux apréhender une version "desktop" persistante.
(genre un paquet deb à part qui ajoute un lanceur avec son logo)

Pour la lentille Unity, tu l'as peut-être bien installé mais vu que l'API a changé, elle ne fonctionne tout simplement pas.
Une fois la 0.4 sortie, je regarde pour la mettre à jour et en faire un .deb dans le ppa.
Je me créerais une VM virtualbox pour la tester...

#17 Re : -1 »  Résolveur de rubik's cube » Le 14/04/2014, à 09:33

moths-art
Réponses : 19

Chapeau l'artiste! vraiment sympa...

Pour la réponse à "Madeba" : c'est bien de l'openCV derrière : il suffisait de se plonger un peu dans les sources big_smile

#18 Re : -1 »  Résolveur de rubik's cube » Le 14/04/2014, à 21:25

moths-art
Réponses : 19

MinecraftBreizh : l'idée d'utiliser des lego technique est tout bonnement fabuleux!

#19 Re : -1 »  Création d'une lentille » Le 22/04/2014, à 13:50

moths-art
Réponses : 4

Je viens de me pencher sur les lens Unity.
Du peux que j'ai testé, ça à l'air assez simple... (tout est relatif)

Je me suis empressé de te répondre car je pense que tu pars dans la mauvaise direction, White Angels.
Les lens Unity et LinkManager sont tous les 2 en python!
Du coup, il serait vraiment dommage d'executer du shell avec python pour lancer LinkManager.

J'en ai pas assez parlé car LinkManager n'en est qu'à ces balbutiements mais l'objectif est aussi de figer une API afin de l'utiliser comme librairie.
Du coup, il est possible d'importer "linkmanager" dans le fichier __init__ de ton lens.

Pour l'exercice, j'ai "bricolé" rapidement un exemple sous https://github.com/mothsART/linkmanager-lens
Ca fonctionne sous Ubuntu 13.10 : pas encore eu le temps d'essayer ailleurs.

Problème : les lens Unity utilise encore Python 2 alors que mon soft est dev pour python 3.
Du coup, pour tester, il te faudra faire au préalable un

sudo pip install linkmanager

Il faudra que je rende ça possible sur les PPA également pour les versions prochaines.

Comme évoqué sur le topic du projet, il va falloir que j'intègre les titres, les descriptions dans l'API afin d'en profiter pleinement dans un lens.
De plus, il va falloir que je conserve dans un cache les favicons des sites...

Dans tous les cas : ça rajoute des contraintes non prévu au projet initial :
C'est plutôt positif d'y réfléchir maintenant wink

Merci White Angels, et en espérant que ma contribution t'aideras...

#20 -1 »  Software lacks : lack n°2 : PIM en cli » Le 18/04/2014, à 13:42

moths-art
Réponses : 0

Je continue dans mes articles concernant des faiblesses logiciels.

Beaucoup de monde connaissent les PIM (Personal Information Manager).
Y'a des softs standalones pour ça, des plugins.
Des versions libres, propriétaires (pardon Mr Stallman : privateur), du multi-os etc.
Mais aussi dans le cloud.

Perso, j'utilise depuis un moment "lightning" : une extension de thunderbird.
C'est sympa mais sans plus et même si je n'ai pas fait le tour de tout ce qui existe, je suis quasi certain d'en venir à un constat similaire.

J'aimerais faire une recherche simple genre "qui a son anniversaire dans le mois qui vient?" sans forcément ouvrir une grosse usine à gaz.

Encore une fois, je prend le parti pris d'avoir un équivalent plus ou moins abouti en ligne de commande.
Pourquoi? Parce que je suis intimement convaincu qu'une GUI pour ce genre d'outil n'apporte quasi rien.
De plus, sous linux : on devrait avoir le choix : ajouter un contact en cli puis être averti par notification qu'il fait son déménagement samedi prochain.

Autre avantage du CLI (plus dans la réalisation) :
    * une IHM minimaliste, ça évite de mal structurer son prog en se perdant dans les détails graphique > une meilleur API et un soft livré plus rapidement.
    * Possibilité de programmer des scénarios de tests de A à Z.
C'est aussi possible via une GUI mais ça nécessite beaucoup plus d'investissement et il est diablement plus facile d'oublier un scénario d'utilisation.
Résultat : la qualité final s'en fait ressentir.
    * autre point intiment lié à celui précédent : le choix de la GUI > combien de projets sont morts dans l'oeuf ou on stagné car ils passaient d'une lib à une autre (l'éternel QT ou GTK) ou d'une version à une autre. (exemple : Amarok)

Bon, je vois aussi un avantage à un outil minimaliste : ne pas dépendre d'un gros soft/webapp qui va disparaître.

ça ouvre aussi le débat sur les formats/l'archivage des données.

#21 Re : -1 »  Apprendre le Python » Le 17/04/2014, à 14:47

moths-art
Réponses : 13

Kr1ll :

La killer-feature en python c'est ipython (la version 2.0 vient de sortir http://linuxfr.org/news/sortie-d-ipytho … rsion-2-0)

ipython notebook

est vraiment excellent pour tester des trucs en live dans un navigateur et en garder une trace.

Si tu veux faire un tour d'horizon, je conseil d'acheter un bouquin : internet c'est bien pour chercher des tutos précis mais les infos sont fragmentés.

Python, c'est du "batterie include" donc t'as pas mal de chose inclus de base mais tu peux l'étendre avec "pip".
Tu as grosso-modo 40 000 libs python dispo sur https://pypi.python.org/pypi en faisant un "pip install lenomdelalib"

Si tu commences à créer des softs un peu complexe, avec pas mal de dépendances, je te conseil de jeter un coup d'oeil à virtualenv (ou venv  à partir de python 3.3)
Ça te permet de créer un environnement isolé pour chacun de tes projets et du coup éviter les soucis de dépendances non résolu.

Avec l'usage, y'a pas mal de lib que tu installeras de base :
arrow pour jouer avec des dates
path.py pour parcourir une arborescence
requests pour faire des requêtes http
pillow pour manipuler des images (crop, resize, filtres)
...

Sinon pour l'éditeur : j'utilise pas mal SublimeText.

#22 Re : -1 »  quizz géographie (java) » Le 17/04/2014, à 11:28

moths-art
Réponses : 2

Perso, si vous voulez un truc portable, j'aurais tablé sur des technos web plutôt que sur du java.
La carte serais dans ce cas une balise <canvas> ou <svg> : du coup, la détection de contour serait un jeu d'enfant... (faire un onclick sur un polygon)
Pour les villes : le principe reste le même : tu crée des ronds cliquable et transparent avec un périmètre d'action.
Les interactions seraient du coup en javascript.
Le tout peut être enrobé dans un logiciel standalone (si vous ne voulez pas du quiz (que) dans un navigateur.)
Pour cela, il suffit d'inclure WebKit (moteur de rendu web contenu dans chrome/safari/opéra) dans une appli en QT.

En plus, niveau tech web, les exemples ne manquent pas...

Dans le cas ou Java serait déjà arrêté, il vous faudra de toute façon un toolkit graphique : je conseil QT plutôt que GTK.
QT utilise également un "canvas" pour des interactions tel que prévu pour votre carte mais ça m'étonnerais qu'il existe quelque chose de tout fait pour des détections de contours : va falloir faire ça à la mano.

#23 -1 »  ajout de règles shell lors de l'installation d'un soft » Le 12/04/2014, à 10:42

moths-art
Réponses : 0

Bonjour,

Je package depuis peu un soft en ligne de commande écrit en python.
L'idée est de disposer de toutes les fonctionnalités dès l'installation. ("apt-get install" pour ubuntu et "pip install" pour la bibliothèque python)
J'ai déjà bien avancé :
https://pypi.python.org/pypi/linkmanager/
https://launchpad.net/~jerem-ferry/+archive/linkmanager

+ sources : https://github.com/mothsART/linkmanager/tree/develop
+ explication : http://forum.ubuntu-fr.org/viewtopic.php?id=1534131

Cependant, le soft nécessite pour avoir l'auto-complétion d'une commande bash/zsh :

$ eval "$(register-python-argcomplete linkm)"

J'aurais souhaité forcer l'auto-complétion sans post-manip (dans son ~/.basrc)...
Du coup, j'ai fait un fichier "postinst" qui ajoute des règles dans mon /etc/zsh/zshrc et dans /etc/bash.bashrc.
C'est moche car ça oblige de tester que cette règle n'existe pas déjà et surtout ça m'obligerais de faire un "postrm" pour supprimer également ces règles à la désinstallation...
sans compter que l'utilisateur vient, par exemple, à installer zsh après mon soft, l'auto-complétion ne sera pas active.

Mon autre idée a été de mettre un script.sh dans /etc/profile.d/ mais il faut relancer une session shell (genre logout/login) pour en profiter... bref, pas parfait.

Quelqu'un aurait-il une piste pour améliorer ça?

PS: à débugger, les pre|post{inst|rm} c'est vraiment tendu.