Planet Libre

RaspbianFrance : Publiez un tutoriel chez Raspbian France et gagnez des bons d’achats !

Vous menez de nombreux projets autour de la Raspberry Pi et vous souhaitez faire profiter le reste de la communauté de votre expérience ? Ça tombe bien, Raspbian France est à la recherche d’articles de qualité, et nous sommes même prêts à vous offrir des bons d’achats de 30€ chez notre partenaire Kubii.fr !

Pourquoi achetons nous des articles, quelles sont les conditions pour écrire un tutoriel, combien sont-ils rémunérés ? Nous allons répondre à toutes ces questions dans cet article !

Pourquoi acheter des articles sur la Raspberry Pi plutôt que de les écrire nous même ?

Raspbian France n’est ni notre seule occupation, ni notre seul projet et nous avons du mal à trouver le temps d’écrire. Quand finalement nous trouvons ce temps, nous sommes limités à certains sujets plutôt qu’à d’autres (typiquement, la domotique et surtout l’électronique nous échappent un peu).

La seule façon pour nous de faire vivre Raspbian France sans abandonner nos autres projets est donc d’ouvrir les portes du site à d’autres auteurs.

En allant chercher des articles de qualité auprès de personnes réellement intéressées par le sujet et qui possèdent une expertise dans leur domaine, nous espérons pouvoir augmenter la fréquence de parution et diversifier les sujets abordés pour pouvoir aider plus de personnes.

Le fait d’offrir à ces auteurs des bons d’achat chez notre partenaire kubii.fr est pour nous une façon de motiver, mais surtout de remercier les auteurs pour le travail qu’ils effectuent pour la communauté et pour nous.

Finalement, l’objectif est de publier plus de contenu, plus régulièrement, sur plus de sujets.

Quelles sont les conditions pour écrire un article sur Raspbian France ?

Si nous souhaitons améliorer la fréquence de publication des tutoriels, nous ne voulons pas que cela impacte de façon négative la qualité de ceux-ci. Par conséquent, nous souhaitons nous assurer que ces tutoriels soient complets, agréables à lire et surtout utiles à de nombreuses personnes.

Pour nous assurer que les tutoriels respecterons ces exigences de qualité, vous devrez veiller à respecter ces quelques règles :

  1. Vous devez être l’auteur du tutoriel (les traductions « telles quelles » de tutoriels anglais, par exemple, ne seront pas acceptées).
  2. Vous ne devez pas avoir déjà publié ce tutoriel sur un autre site.
  3. Il ne doit pas exister de tutoriel traitant déjà du même sujet sur Raspbian France et votre tutoriel doit être susceptible d’intéresser suffisamment de personnes.
  4. Vous devez écrire votre tutoriel dans un français correct et faire attention à votre orthographe.
  5. Votre tutoriel doit donner à l’utilisateur toutes les informations nécessaires pour obtenir un système fonctionnel.
Quelques conseils pour écrire vos tutoriels.

Nous ne publierons que les articles que nous jugeons de bonne qualité.

Afin de faciliter la lecture de votre tutoriel, nous vous conseillons de suivre la construction suivante lors de sa rédaction :

  • Présentation du but du tutoriel.
  • Présentation des ressources nécessaires à la réalisation du tutoriel (par exemple, une Raspberry Pi, une carte MicroSD de 16 Go, un fer à souder, …).
  • Présentation des différentes parties qui seront mises en place, par exemple les différents logiciels, qui seront installés.
  • Installation des différentes parties.
  • Ouverture vers d’autres possibilités (association possible avec d’autres tutoriels, évolutions à envisager, …).

Notez également que chaque commande utilisée doit-être expliquée à l’utilisateur afin qu’il sache pourquoi vous utilisez cette commande et quels sont ses effets.

Dernier point, essayez de découper votre tutoriel par étapes, utilisez des parties et des sous-parties, établissez des transitions, etc.

Comment se déroule l’envoi, la publication et le paiement d’un tutoriel ?

Pour faire simple, nous allons décrire étape par étape le parcours d’un tutoriel depuis son écriture jusqu’à sa publication et son paiement.

Écriture du tutoriel

Avant tout, vous allez devoir écrire votre tutoriel.

Nous vous demandons de nous fournir le tutoriel au format PDF afin que nous puissions l’ouvrir sur toutes nos machines sans difficulté.

Si vous souhaitez utiliser des images dans votre article (et nous vous y encourageons, qu’il s’agisse de schémas explicatifs ou de simples images pour illustrer vos propos), vous pouvez tout simplement les insérer directement au sein de votre traitement de texte.

Si vous n’êtes pas sûr que le sujet de votre tutoriel puisse nous intéresser, n’hésitez pas à nous poser directement la question via notre formulaire de contact.

Proposer votre tutoriel

Une fois que vous avez écrit votre tutoriel, vous allez pouvoir nous le proposer en passant par le formulaire disponible sur cette page.

En nous proposant votre tutoriel, vous acceptez que nous le publions sur le site (potentiellement modifié) et vous le placez sous licence MIT.

Traitement de votre tutoriel

Une fois que vous nous avez envoyé votre tutoriel plusieurs cas peuvent se présenter.

Votre tutoriel n’est pas retenu

Vous serez alors averti assez rapidement par mail et nous vous expliquerons pourquoi nous n’avons pas retenu votre tutoriel.

Selon les raisons qui nous ont poussé à ne pas retenir votre tutoriel, nous pouvons éventuellement discuter ensemble pour que vous modifiez clui-ci afin qu’il corresponde à nos attentes.

Si nous pensons qu’il n’est pas possible de faire correspondre votre tutoriel à nos besoin, désolé, pour vous l’aventure s’arrête ici… Toutefois, rien ne vous empêche de revenir nous proposer un autre tutoriel !

Votre tutoriel est retenu

Si votre tutoriel est retenu, vous serez, là encore, averti assez rapidement par mail.

Une fois votre tutoriel retenu, il ne sera pas publié immédiatement.
Avant sa publication, il est possible que nous modifions votre tutoriel pour qu’il corresponde davantage à nos attentes.

Dans un premier temps nous attendrons probablement d’avoir quelques tutoriels disponibles avant des les publier.

Publication de votre tutoriel

Une fois que nous avons choisi une date et que nous sommes prêts à faire paraître votre tutoriel, nous le publions sur Raspbian France (au passage, nous vous envoyons un petit mail pour vous avertir).

Lors de la publication sur Raspbian France, nous indiquerons que cet article est un article invité et, uniquement si vous le souhaitez, votre nom et prénom ou votre pseudo.

Paiement de votre tutoriel

Si votre article est publié, vous gagnerez alors un bon d’achat de 30€ chez notre partenaire kubii.fr.

L’idée ici n’est pas de rémunérer un auteur professionnel, mais plutôt de motiver, de remercier et d’encourager, des passionnés pour le temps qu’ils ont consacré à partager leurs connaissances avec les autres.

Nous aurions souhaité pouvoir rémunérer davantage les auteurs mais Raspbian France ne dispose pas de gros budgets, et chaque fois que nous offrons à un auteur un bon d’achat de 30€, nous devons dans un premier temps les sortir de notre poche et espérer que nous pourrons par la suite les retrouver sur la durée.

Il ne vous reste plus qu’à écrire !

Désormais, vous savez tout sur l’achat de tutoriel et les raisons qui nous ont amenés à choisir cette solution.

Si vous êtes intéressé, il ne vous reste plus qu’à écrire votre tutoriel et à nous le proposer en passant par le formulaire dédié.

N’hésitez pas à utiliser les commentaires ci-dessous pour nous dire ce que vous en pensez ou pour nous demander des précisions, et n’hésitez pas non plus à relayer l’information autour de vous, sur les réseaux sociaux, sur vos sites, à vos amis, etc.. Plus nous aurons d’auteurs, plus nous pourrons trouver de tutoriels intéressants et utiles à la communauté !

Cet article Publiez un tutoriel chez Raspbian France et gagnez des bons d’achats ! est apparu en premier sur Raspbian-France.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Pourquoi Yunohost crée des comptes automatiquement ?

C'est dans le cadre de mon projet que j'évoque dans mon billet Lifehacking - Wallabag, Liseuse et fainéantise : mon projet. Billet N°1 que je me suis posé la question de pourquoi Yunohost créé des comptes automatiquement pour certaines applications (à l'installation de celle-ci).

Je n'ai pas encore creuser le côté technique (mais ça viendra), voici ce que je sais et ai compris :
- Yunohost dispose d'un SSO ce qui permet d'avoir un seul identifiant/mot de passe (un seul compte) qui permette une fois connecté à Yunohost d'utiliser différentes applications sans avoir à se connecter sur chacune d'elles ;
- Il faut que les applications gèrent l'authentification HTTP et la création automatique de compte (ou les comptes LDAP).

Par conséquence toutes les applications ne peuvent / ne pourront pas être gérées par le même utilisateur et il faut pour certaines, créer un compte dédié (ex : Sonerezh). Pour les autres, comme Wallabag, un utilisateur et un mot de passe sont créés à l'installation de l'application packagée pour Yunohost et un lien est fait entre l'utilisateur Yunohost et l'utilisateur spécifiquement créé pour Wallabag.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #49

Pour la 48ème semaine de 2016, voici 5 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Jean-Baptiste Holcroft : Migration Fedora 25 et l'expérience utilisateur non anglophone

Fedora 25 est une réussite, c’est stable, ça tient les promesses concernant ses nouvelles fonctionnalités de GNOME, de Wayland, les émoticônes, mais je vais vous parler d’expérience utilisateur concernant la migration depuis Fedora 24. J’ai profité du fait d’avoir deux machines pour tenter les deux migrations recommandées : mon ordinateur fixe avec Gnome Logiciels, c’est la migration la plus simple pour l’utilisateur non spécialiste, mon ordinateur portable avec dnf system-update, c’est la migration ligne de commande, pour les geeks amateurs ou avancés.

Avec Gnome Logiciels

Gnome Logiciels m’a correctement signalé que Fedora 25 était disponible et que je pouvais cliquer sur un bouton pour migrer. Si l’information sur la disponibilité de Fedora était en français, l’explication pour la mise à jour était en anglais, tout comme la description des logiciels. Tout le reste était écrit en anglais pour passer à l’étape suivante, les explications, etc. Un lien était donné vers le Fedora magazine, qui évidemment est en anglais et la documentation qu’on ne peut pas toujours traduire faute de capacité à faire de l’équipe de documentation (ou même d’être sûr qu’on traduit le bon contenu). Après un long téléchargement de plusieurs Gio, l’écran se grise pour poser la fatidique question ultime : c’est votre dernière possibilité avant de faire demi-tour, on y va ? Eh bien, ce texte est aussi en anglais !

Messages de GNOME Software en anglaisMessage de validation en anglais

Avec DNF

Sur le portable, en ligne de commande donc, c’était un peu mieux en termes de qualité de régionalisation puisque la quasi-totalité des informations était en français. Mais une fois arrivé sur Fedora 25, je veux virer le dépôt adobe que je n’utilise plus depuis des mois, je lance l’aide et je constate qu’une phrase sur deux de l’aide des commandes DNF est en anglais, alors que cela fait 6 mois que nous avons intégralement traduit le logiciel et ses extensions… Donc notre travail n’est pas parvenu à l’utilisateur final…

Conclusion

Nous ne sommes pas trop mauvais dans l’expérience générale, car la communauté française est vaste, mais globalement nous sommes loin d’être bons dans la régionalisation de Linux, il y a du travail ! On pourrait par exemple envisager d’avoir une traduction automatique pour combler les manques, ou simplement avoir des alertes quand des chaînes aussi critiques sont manquantes…

Gravatar de Jean-Baptiste Holcroft
Original post of Jean-Baptiste Holcroft.Votez pour ce billet sur Planet Libre.

Articles similaires

Ilphrin : Update: Neovim 0.1.7, petit tour

Ca y est, une nouvelle version de Neovim vient de sortir! Et avec elle sont lot de fonctionalités et de corrections bien sympa (voire même plus que sympa vous allez voir ;) ), profitons-en pour revoir les fonctionalités cool de Neovim

Neovim est en développement depuis une paire d’années maintenant et, avec le soutien de nombreux contributeurs, rajoute un interêt non negligeable à ce bon vieux Vim qui sort une version toutes les décennies. Voici une liste non-exhaustives des nouveautés non seulement dans la 0.1.7 mais aussi dans le travail antérieur:

  • En 0.1.7 nous avons maintenant le inccommand, successeur au incsub, nous permet d’avoir un aperçu temps-réel des modifs sur du texte, par le biais par example d’une substitution comme :%s/coucou/plop/g (une exemple ICI)
  • La Newsletter #7 est sortie, et dedans un il y un retour sur ce qui a été fait
  • La commande :tchdir qui permet de changer de répertoire localement à un ‘tab’
  • La ‘statusline’ peut maintenant aligner un nombre indéfini d’élements
  • oni est un GUI pour Mac, mais le support de Linux est en cours (chez moi il se lance mais n’affiche rien d’autre qu’une barre et une page blanche), il peut réussir là ou NyaoVim à été un peu décevant à mon goût
  • La commande :CheckHealth qui permet d’avoir des rapports d’erreurs sur la configuration, le statut des plugins, et diverses informations comme le statut de la gestion du clipboard sur votre système
  • Les utilisateurs de Debian seront heureux d’apprendre que Neovim sera dans la prochaine version de Debian ;)
  • Le transcompileur VimL vers Lua fait des progès intéressants, mais sont développement est mis en arrière-plan par rapport au support de Windows.

Bien sûr ce n’est pas une liste complète, pour cela je vous invite à aller voir CECI et CELA pour beaucoup plus de détails.

Désolé pour cet article un peu court, et en retard par rapport a mon planning hebdomadaire mais je dois avoue que j’ai pas mal de boulot en ce moment, mais promis je reviendrais assez rapidement, probablement pour parler des commentaires sur mon blog qui sont maintenant fonctionnel et ce grâce à Staticman!

Gravatar de Ilphrin
Original post of Ilphrin.Votez pour ce billet sur Planet Libre.

Raphaël Hertzog : Mes activités libres en novembre 2016

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci à eux !) mais aussi pour la communauté Debian au sens large parce que cela peut donner des idées aux nouveaux venus et que c’est également un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent à cœur.

Debian LTS

Dans les 11 heures de travail (rémunérées) qui m’incombaient, je suis parvenu à publier la DLA-716-1, aussi connue sous le nom de tiff 4.0.2-6+deb7u8, corrigeant les CVE-2016-9273, CVE-2016-9297 et CVE-2016-9532. On dirait bien que ce paquet est concerné par de nouvelles CVE tous les mois.

J’ai ensuite consacré pas mal de temps à passer en revue toutes les entrées dans dla-needed.txt. Je souhaitais me débarrasser des commentaires erronés ou qui ne sont plus pertinents, et en même temps aider Olaf, qui s’occupait du « frontdesk LTS » pour la première fois. Cela a abouti au marquage de pas mal d’entrées comme « no-dsa » (c’est à dire que rien ne sera fait pour elles, leur gravité ne le justifiant pas), telles que celles affectant dwarfutils, dokuwiki, irssi. J’ai supprimé libass, car la CVE ouverte était sujette à débat et marquée comme « pas importante ». Tandis que je faisais cela, j’ai corrigé un bogue dans le script bin/review-update-needed que nous utilisons pour identifier les entrées n’ayant fait aucun progrès dernièrement.

Je me suis ensuite attaqué à libgc, et publié la DLA-721-1, ou libgc 1:7.1-9.1+deb7u1. Elle corrige la CVE-2016-9427. Le patch était important et a du être rétroporté manuellement, car il ne s’appliquait pas correctement.

Enfin, la dernière tâche réalisée fut le test d’une nouvelle version d’imagemagick et la revue d’une mise à jour préparée par Roberto.

Travaux concernant pkg-security

L’équipe pkg-security continue sur sa bonne lancée : j’ai parrainé le travail de patator concernant le nettoyage d’une dépendance inutile de pycryptopp, qui allait être retiré de Testing du fait du ticket n°841581. Après m’être penché sur ce bogue, il s’est avéré que celui-ci était résolu dans libcrypto++ 5.6.4-3. Je l’ai donc clôturé.

J’ai parrainé plusieurs envois : polenum, acccheck, sucrack (mises à jour mineures), bbqsql (nouveau paquet importé de Kali). Quelques temps plus tard, j’ai corrigé quelques soucis dans le paquet bbsql, qui avait été rejeté de NEW.

Je me suis également occupé de quelques bogues critiques pour la publication, et liés à la transition vers openssl 1.1 : j’ai adopté dans l’équipe sslsniff et corrigé le n°828557, par une compilation dépendante de libssl1.0-dev. Ceci après avoir ouvert le ticket amont correspondant. J’ai fait la même chose pour ncrack et le n°844303 (le ticket amont est ici). Quelqu’un d’autre s’est occupé de samdump2, mais j’ai tout de même adopté le paquet dans l’équipe pkg-security, dans la mesure où il s’agit d’un paquet concernant le thème de la sécurité. J’ai aussi effectué un envoi en tant que non-mainteneur d’axel et du n°829452 (cela ne concerne pas pkg-security, mais nous l’utilisons dans Kali).

Travaux Debian divers

Django J’ai participé à la discussion débattant de l’opportunité de laisser Django compter le nombre de développeurs qui l’utilisent. L’impact quant à la diffusion de données personnelles que ce changement entraînerait a suscité l’intérêt des listes de diffusion Debian, et jusqu’à celui de LWN.

Sur un plan plus technique, j’ai poussé la version 1.8.16-1~bpo8+1 vers jessie-backports, et corrigé le bogue critique pour la publication n°844139. Pour se faire, j’ai rétroporté deux commits amont, ce qui a mené à l’envoi 1.10.3-2. Je me suis ensuite assuré que cela était également corrigé dans la branche amont 1.10.x.

dpkg et /usr fusionné. En parcourant debian-devel, j’ai découvert que le bogue n°843073 menaçait la fonctionnalité d’un /usr fusionné. Dans la mesure où le bogue était présent dans du code que j’avais écrit il y a plusieurs années, et du fait que Guillem n’était pas intéressé par sa correction, j’ai passé une heure à mettre au point un patch relativement propre que ce dernier pourrait appliquer. Guillem n’a malheureusement pas encore réussi à sortir une nouvelle version de dpkg embarquant ces patchs. Espérons que cela ne tardera plus trop.

Debian Live J’ai fermé le n°844332 , qui demandait le retrait de live-build de Debian. Étant marqué comme orphelin, j’avais toujours gardé un œil sur ce paquet, et avait poussé quelques petites corrections vers Git. J’ai décidé cette fois d’adopter officiellement le paquet au sein de l’équipe debian-live, et de travailler un peu plus dessus. J’ai passé en revue tous les patchs en attente dans le suiveur de bogues, et poussé de nombreuses modifications vers Git. Quelques changements restent à faire pour finaliser un meilleur rendu du menu GRUB, et j’ai prévu de pousser une nouvelle version très prochainement.

Diverses créations de tickets J’ai créé deux tickets amont concernant uwsgi, afin d’aider à la correction de bogues ouverts et critiques pour la publication affectant ce paquet. J’ai créé le n°844583 concernant sbuild, afin de supporter les suffixes arbitraires de version pour les recompilations binaires (binNMU). Et j’ai créé le n°845741 concernant xserver-xorg-video-qxl, afin qu’il soit corrigé pour la transition vers xorg 1.19.

Zim. Alors que j’essayais de corriger le n°834405 et de mettre à jour les dépendances requises, j’ai découvert que je devais mettre à jour pygtkspellcheck en premier lieu. Le mainteneur de ce paquet étant malheureusement aux abonnés absents (MIA – missing in action), je l’ai adopté en tant que membre de l’équipe python-modules.

Distro Tracker. J’ai corrigé un petit bogue, qui entraînait l’affichage d’une affreuse trace à l’occasion de requêtes avec un HTTP_REFERER non-ASCII.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in November 2016 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

Gravatar de Raphaël Hertzog
Original post of Raphaël Hertzog.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : mate-search-tool

J’aime les commentaires ! Vraiment, vraiment, vraiment ! Dans l’article De Thunar à Caja sur Xubuntu il y a eu quelques échanges autour d’un outil de recherche de fichiers. J’ai plutôt l’habitude et le besoin de chercher à l’intérieur des fichiers pour cela j’utilise une ligne de commandes grep (sous forme d’alias).

mate-search-tool est un excellent outil de recherche de fichiers et à l’intérieur des fichiers. Il s’installe ainsi sudo apt install mate-utils et il se lance ainsi mate-search-tool dans un terminal.

mate-search-tool_001

Il permet grâce à un système simple d’ajout (bouton Ajouter) de rajouter des conditions à sa recherche :

  • Contient le texte
  • Date de modification inférieure à (nombre de jours)
  • Date de modification supérieure à (nombre de jours)
  • Taille d’au moins
  • Taille d’au plus
  • Le fichier est vide
  • Appartient à l’utilisateur
  • Appartient au groupe
  • Le propriétaire n’est pas reconnu
  • Le nom ne contient pas
  • Le fichier correspond à l’expression régulière
  • Afficher les fichiers cachés et de sauvegarde
  • Suivre les liens symboliques
  • Exclure les systèmes de fichiers

mate-search-tool_002

mate-search-tool_003

C’est traduit en Français, léger, ça ramène pas 200 dépendances à l’installation, ça s’intègre très facilement à caja-actions. Bref installé, testé, approuvé pour ma part et un outil de plus sur GNU/Linux qui me ravit !

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Petit Pouyo : L’appel à la mobilisation de Genma sur le thème du logiciel libre

-> ATTENTION C’EST UN BILLET PLAGIÉ DU BLOG DE GENMA <-

METTEZ MOI EN ZONZON !!!!!

Quelques mois après son billet Pourquoi le Planet Libre est si vide ?, voici un nouveau billet de sensibilisation et un appel à publier autour du logiciel libre.

Peu de ressources francophones

Depuis des années le Planet libre se raréfie, la blogosphère francophone qui parle de logiciel libre se raréfie… Pourtant il me semble important qu’elle perdure et se renforce. Car à l’heure actuelle, pour s’informer sur les nouvelles versions, les logiciels, avoir des tutoriaux ou autres, les ressources ne sont pas nombreuses.

Dans l’univers du libre, je mets de côte le cas de LinuxFr. Personnellement je trouve que les journaux et les commentaires tournent souvent au débat avec un ton pas toujours très correct (les propos sexistes arrivent très vîtes et quand on les dénonce, on se fait rembarrer), avec des querelles de chapelles, des discussions sans fin ou chacun campe sur son point de vue. Je suis les fils RSS des dépêches et journaux de Linuxfr, ce qui me permet de faire ma veille, ensuite je parcours les commentaires en diagonale, commente parfois – mais c’est rare.

Du coup, ma veille, je la fais essentiellement via les blogs auxquels je suis abonné au sein de mon agrégateur RSS. Au passage, une bonne source pour trouver des nouveaux blogs pour moi c’est le Journal du Hacker.

Partagez, diffusez, écrivez

Si vous avez des connaissances généralistes ou techniques, Rédigez tout ça et publiez. Pour ne citer que lui, faites comme Seb0S666, qui fait régulièrement des billets qui permette de mieux comprendre l’administration système Linux… et dont je fais des gros copier-coller dans mon wiki personnel pour centraliser tout ça dans une base de connaissance.

Vous expérimentez, rencontrez des difficultés et arrivez à les résoudre ? Publiez. Partagez vos retours d’expériences. Ecrivez. Ensuite, utilisez les réseaux sociaux pour partager vos écrits, faire connaitre votre blog (Mais ne créer pas une page Facebook pour publier vos écrits, il ne faut pas exagérer non plus, hein ;))

Youtube ?

Peut-être qu’il existe foison de tutoriel en vidéo sur Youtube, pour parler de logiciel libre… J’utilise Youtube pour voir des conférences qui ont été filmées sur différents sujets, parfois des présentations ou tutoriels, mais je ne suis pas particulièrement « abonné » à une chaine (voir à ce sujet Comment suivre une chaîne YouTube sans abonnement / compte ?), mais comme je suis de la vieille école de l’écrit, je lis beaucoup et donc j’appel à publier par écrit. CQFD.

Conclusion

En ayant un blog qui parle de logiciel libre (mais pas que), vous pourrez même publier des articles en vous revendiquant comme blogueur influent, lançant des trolls sur la mort de Linux, sur ses gauchistes libristes qui dénoncent mais utilisent Twitter (Toute ressemblance avec une personne existant ne serait que purement fortuite, je sais je suis taquin) Plus sérieusement, l’important c’est le partage de la connaissance, de vos connaissances. Car c’est via les publications de toutes celles et ceux qui ont publiés depuis des années que j’ai pu monter en compétence technique, nourrissant mon cerveau d’autodidacte avide de connaissances…

Source: Le Blog de Genma Partager sur diaspora*

Cet article L’appel à la mobilisation de Genma sur le thème du logiciel libre est apparu en premier sur Petit Pouyo.

Gravatar de Petit Pouyo
Original post of Petit Pouyo.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Full SSL, changement de moteur

Petite brève pour annoncer quelques changements sur obsd4a.

On me reprochait de ne pas proposer d'accès en https au site. En réalité, il y en avait un, mais un avertissement apparaissait puisque le certificat était auto-signé par phpnet. On peut désormais utiliser le site en https sans avertissement grâce à letsencrypt.

Cette modification m'a conduit à ne plus héberger le site chez phpnet. Il est donc désormais chez moi, avec tous les autres inconvénients que cela va apporter (lenteur...). Mais au moins, pas besoin de débourser des sous tout le temps.

Enfin, un vrai forum est disponible plutôt que le question/réponse qui posait pas mal de soucis à l'inscription et ne répondait pas vraiment au besoin de bavarder des visiteurs.

Obsd4a n'a pour l'instant pas tellement d'utilisateur, c'est pourquoi cette modification brutale a lieu.

En attendant, les remarques/retours/contributions sont les bienvenues.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

cpc6128 : Linotte 2.7

Après quelques mois très calme, voici une nouvelle version de l’Atelier de programmation du langage Linotte.
Quelques corrections de bogues mais aussi des évolutions syntaxiques sont au programme de cette dernière version de l’année 2016 !

L’Atelier 2.7 est disponible pour : Ubuntu, Fedora, MacOS et Windows avec Java 7 ou 8 d’installé.

SplashScreen

Maintenant, en plus de proposer mon logiciel libre depuis 11 ans, je veux maintenant proposer des formations pour apprendre à programmer avec le langage Linotte dans les écoles, collectivités ou entreprises. Si cela intéresse des personnes, n’hésitez pas à me contacter sur mon courriel contact@codevallee.fr ! Et oui, pourquoi ne pas vivre de son logiciel libre ? C’est mon prochain pari….

Bonne programmation !

Gravatar de cpc6128
Original post of cpc6128.Votez pour ce billet sur Planet Libre.

elementary OS : Encore plus de mises à jour pour Loki

Loki a encore eu droit à plusieurs mises à jour récemment.

Corentin a rajouté une fonction toute bête dans Paramètres Système, dans la zone de recherche il est possible d’accéder à l’onglet correct de plug Sécurité & Vie Privée avec les termes pare-feu, verrouillage et confidentialité.

loki-verrouillage

Il a également apportée une correction pour s’assurer les informations proxy sont correctement stockés et affichés dans les paramètres Réseaux.

Si vous utilisez plusieurs langues de clavier, sachez que le menu paramètres de l’indicator clavier vous redirige désormais directement dans l’onglet Disposition du plug Clavier de Paramètres Systèmes.

Daniel Foré a apporté une amélioration à l’indicator session pour ceux qui ont beaucoup de comptes utilisateurs, ainsi si la liste des utilisateurs est trop longue, elle sera plus facilement parcourue.

Felipe a fait en sorte que l’application de capture d’écran n’écrase pas un fichier du même nom lors de la sauvegarde, de plus, Artem, y a ajouté la fonctionnalité utile « Copier dans le Presse-Papier » (Copy to Clipboard au moment où j’écris l’article, la traduction n’a pas encore été réalisée à priori).

copytoclipboard

Jeremy a corrigé un tas de bugs avec Fichiers (crash quand on utilise la langue Hongroise, écriture de fichier en partage FTP, affichage de serveurs locaux comme SMB ou FTP…etc).

Il y aussi eu beaucoup de nettoyage dans le code pour faire en sorte que les compilations réussissent sans avertissements avec la dernière version en développement de Vala, pour améliorer la stabilité et les performances, et aussi corriger les problèmes de portabilité de Pantheon vers d’autres distributions. D’ailleurs, il a été reporté plusieurs retours positifs pour faire tourner une session Pantheon sur Fedora 25 avec le dépôt de Fabio.

Pour conclure, Corentin a introduit une specification pour l’interaction des applications avec switchboard (Paramètres Systèmes). Par exemple, une application de courrier mail peut utiliser l’URL settings://accounts/online interagir avec le plug des Comptes en Ligne. Les applications elementary officielles seront mis à jour avec cette fonction. Les développeurs d’applications tierces sont bien sûr inviter à intégrer cette spécification.

 

 

Le billet Encore plus de mises à jour pour Loki a été publié sur le site de la elementary OS -

Gravatar de elementary OS
Original post of elementary OS.Votez pour ce billet sur Planet Libre.

Ulrich Van Den Hekke : FindSimilarity - Trouver les différences entre plusieurs vidéos

Introduction

Bonjour,

Je souhaite vous présenter une petite expérience que je viens d'écrire.

Cela fait plusieurs années que je souhaitais m'amuser sur la librairie OpenCV mais sans jamais en avoir eu l'utilité. J'ai profité d'avoir un peu de temps libre, pour écrire un petit programme dont le but est de comparer un ensemble de vidéos.

Le but est ensuite de dire si dans cet ensemble de vidéos, deux vidéos sont identiques, ou se ressemblent, ou sont trop éloignées.

J'ai souhaité faire cette expérience par amusement, je n'ai donc pas passé beaucoup de temps sur la qualité du code écrit. Ce dernier aurait pu être mieux découpé, posséder des commentaires, des tests unitaires, ... . Si vous voulez utiliser ce code pour un véritable usage production, n'hésitez pas à améliorer celui ci.

Vous pouvez trouver le code source de cette expérience à l'adresse suivante : https://bitbucket.org/uvandenhekke/find-similarity.

Le jeux de données

J'ai pris plusieurs films en DVD que je possède. Possédant un NAS, et une chromecast, j'encode ces DVD au format vidéo et je les y dépose. Malheureusement la qualité est dégradée par rapport au DVD.

Pour constituer le jeu de données, je prends ces films encodés, que je dépose dans un dossier. Je copie certains d'entre eux telquel

mkdir example cd example cp ../film1.avi film1_copy.avi

J'encode certains de ces films avec une résolution différente :

avconv -i film2.m4v -preset veryslow -s 320x240 film2.320x240.m4v avconv -i film2.m4v -preset veryslow -s 640x480 film2.640x480.m4v Comment fonctionne la comparaison

Avant de parler de la comparaison, parlons des fichiers que nous allons comparer. Le programme va se constituer une liste des fichiers à comparer et pour chaque fichier va lire les informations suivantes :

  • la durée du film
  • la largeur
  • la hauteur
  • une miniature du film (utilisée pour comparer à l'oeil les vidéos)

Ensuite, une fois les méta-données récupérées, le programe se constitue une liste de paires de fichiers à comparer en sélectionnant les fichiers qui ont une durée identique à +/- 5 secondes. Ce paramètre est modifiable au niveau de la constante DELTA_SEC.

Enfin vient la comparaison pour laquelle je me suis simplement basé sur les exemples du site OpenCV que vous pouvez trouver dans la rubrique Video Input with OpenCV and similarity measurement.

J'ai utilisé l'algorithme PSNR (Peak signal-to-noise ratio) pour déterminer si les deux images de la vidéos sont plutôt proches ou éloignées. Cet algorithme calcul la distorsion entre deux images. Il est principalement utilisé pour quantifier la performance réalisée par un encodeur lors de la compression d'une vidéo. Une valeur entre 30 et 50 signifie que les images sont relativement proches. Plus la valeur est haute, et plus la qualité d'image est conservée entre les deux images. Si la valeur est inférieure à 30 on peut estimer qu'il y a une forte chance pour que les images soit différentes.

Vous pouvez retrouver les formules utilisées par le calcul sur le site d'OpenCV ou sur la page Wikipedia. Est-ce que ce calcul est le meilleur pour trouver les images similaires ? Je ne sais pas. Si vous avez d'autres propositions, on peut les tester.

Sur une vidéo on a une multitude d'images (sur un film d'une heure et demie à 25 images secondes, nous en avons 135 000), on pourrait comparer chaque image de la vidéo pour se faire une moyenne, de mon coté j'ai préféré comparer une image au milieu de la vidéo afin de parcourir plus vite les vidéos.

De la même manière pour m'abstraire de la taille de la vidéo qui peut avoir été modififée, je redimensionne, à tort ou à raison, les deux images à une taille identique (arbitrairement: 160x120).

Je vous présente donc ci-dessous l'algorithme que vous pouvez retrouver sur le site d'OpenCV. J'ai légèrement modifié l'algorithme pour redimensionner les images ainsi que pour retourner une valeur de PSNR infiniment grande quand deux vidéos sont identiques.

double getPSNR(const cv::Mat& F1, const cv::Mat& F2) { cv::Mat I1, I2; cv::resize(F1, I1, cv::Size(160, 120)); cv::resize(F2, I2, cv::Size(160, 120)); cv::Mat s1; cv::absdiff(I1, I2, s1); // |I1 - I2| s1.convertTo(s1, CV_32F); // cannot make a square on 8 bits s1 = s1.mul(s1); // |I1 - I2|^2 cv::Scalar s = sum(s1); // sum elements per channel double sse = s.val[0] + s.val[1] + s.val[2]; // sum channels if( sse <= 1e-10) { // for small values return zero return std::numeric_limits<double>::infinity(); } else { double mse = sse / (double)(I1.channels() * I1.total()); double psnr = 10.0 * log10((255 * 255) / mse); return psnr; } Optimisation

La raison qui fait que je voulais m'amuser avec OpenCV c'est qu'il permet de faire ces calculs à l'aide du GPU au lieu du CPU.

L'utilisation du GPU permet d'améliorer la vitesse de calcul pour tout ce qui est traitement d'image, ce pour quoi un GPU est prévu pour. Pour plus d'informations sur l'utilisation du GPU dans OpenCV peut être trouvé sur la page CUDA d'OpenCV.

Le problème est que sur la version de Debian jessie que j'utilise, OpenCV n'est pas compilé avec CUDA, et ne permet donc pas d'utiliser le GPU. J'ai donc dû compiler ma propre version d'OpenCV.

Pour cela la première étape consiste à récupérer le code source et à se positionner sur la branche que l'on souhaite compiler. Pour ma part je préfère compiler sur la branche 2.4, plus proche de la version de Debian.

git clone https://github.com/opencv/opencv.git git checkout 2.4

Viens ensuite la compilation :

mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/phoenix/usr/local -DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON -DWITH_TBB=ON -DWITH_1394=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_GTK=ON -DWITH_JASPER=ON -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_TIFF=ON -DWITH_OPENEXR=ON -DWITH_PVAPI=ON -DWITH_EIGEN=ON -DCMAKE_SKIP_RPATH=ON -D WITH_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -DWITH_IPP=ON -D CUDA_GENERATION=Auto -D WITH_FFMPEG=ON ../

J'active lors de la compilation le maximum d'optimisation dont CUDA. J'active également FFMPEG sans lequel le nombre de fichier reconnu baisse énormément sur ma machine. Après avoir lancé cmake j'obtiens le résultat suivant :

-- General configuration for OpenCV 2.4.13.1 ===================================== -- Version control: 2.4.13.1-48-gac118ae -- -- Platform: -- Host: Linux 3.16.0-4-amd64 x86_64 -- CMake: 3.6.2 -- CMake generator: Unix Makefiles -- CMake build tool: /usr/bin/make -- Configuration: RELEASE -- -- C/C++: -- Built as dynamic libs?: YES -- C++ Compiler: /usr/bin/c++ (ver 4.9.2) -- C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffast-math -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG -DNDEBUG -- C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffast-math -msse -msse2 -msse3 -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -- C Compiler: /usr/bin/cc -- C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffast-math -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG -DNDEBUG -- C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffast-math -msse -msse2 -msse3 -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -- Linker flags (Release): -- Linker flags (Debug): -- ccache: NO -- Precompiled headers: YES -- -- OpenCV modules: -- To be built: core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib java python stitching superres ts videostab -- Disabled: world -- Disabled by dependency: - -- Unavailable: androidcamera dynamicuda viz -- -- GUI: -- QT: NO -- GTK+ 2.x: YES (ver 2.24.25) -- GThread : YES (ver 2.42.1) -- GtkGlExt: NO -- OpenGL support: NO -- VTK support: NO -- -- Media I/O: -- ZLib: /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8) -- JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (ver ) -- PNG: /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.2.50) -- TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.3) -- JPEG 2000: /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1) -- OpenEXR: /usr/lib/x86_64-linux-gnu/libImath.so /usr/lib/x86_64-linux-gnu/libIlmImf.so /usr/lib/x86_64-linux-gnu/libIex.so /usr/lib/x86_64-linux-gnu/libHalf.so /usr/lib/x86_64-linux-gnu/libIlmThread.so (ver 1.6.1) -- -- Video I/O: -- DC1394 1.x: NO -- DC1394 2.x: YES (ver 2.2.3) -- FFMPEG: YES -- codec: YES (ver 56.1.0) -- format: YES (ver 56.1.0) -- util: YES (ver 54.3.0) -- swscale: YES (ver 3.0.0) -- resample: YES (ver 2.1.0) -- gentoo-style: YES -- GStreamer: NO -- OpenNI: NO -- OpenNI PrimeSensor Modules: NO -- PvAPI: NO -- GigEVisionSDK: NO -- UniCap: NO -- UniCap ucil: NO -- V4L/V4L2: NO/YES -- XIMEA: NO -- Xine: NO -- -- Other third-party libraries: -- Use IPP: IPP not found -- Use Eigen: NO -- Use TBB: NO -- Use OpenMP: NO -- Use GCD NO -- Use Concurrency NO -- Use C=: NO -- Use Cuda: YES (ver 7.5) -- Use OpenCL: YES -- -- NVIDIA CUDA -- Use CUFFT: YES -- Use CUBLAS: YES -- USE NVCUVID: NO -- NVIDIA GPU arch: 21 -- NVIDIA PTX archs: -- Use fast math: YES -- Tiny gpu module: NO -- -- OpenCL: -- Version: dynamic -- Include path: /home/phoenix/Developpement/ExternalSoftware/opencv/3rdparty/include/opencl/1.2 -- Use AMD FFT: NO -- Use AMD BLAS: NO -- -- Python: -- Interpreter: /usr/bin/python2 (ver 2.7.10) -- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.10rc1) -- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2) -- packages path: lib/python2.7/dist-packages -- -- Java: -- ant: /usr/bin/ant (ver 1.9.4) -- JNI: /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include -- Java tests: YES -- -- Documentation: -- Build Documentation: NO -- Sphinx: NO -- PdfLaTeX compiler: /usr/bin/pdflatex -- Doxygen: YES (/usr/bin/doxygen) -- -- Tests and samples: -- Tests: YES -- Performance tests: YES -- C/C++ Examples: NO -- -- Install path: /home/phoenix/usr/local -- -- cvconfig.h is in: /home/phoenix/Developpement/ExternalSoftware/opencv/build -- -----------------------------------------------------------------

Pour que la compilation se déroule sans problème, il vous faudra installer certains paquets sur votre distribution. Sur Debian Jessie, j'ai installé nvidia-cuda-toolkit en version 7.5.18-4~bpo8+1. Comme vous pouvez les voir c'est une version qui provient du repository de backports. La version 6.0.37-5 ne me permettait pas d'activer CUDA. J'ai donc du monter l'ensemble du driver propriétaire sur mon poste de développement.

Rasssurez-vous, si vous ne voulez pas utiliser les backports ou ne pas utiliser de driver propriétaire, vous pouvez tester le programme dans sa version CPU. :)

Voici comment le code a été ré-écrit pour utiliser le GPU à la place du CPU:

struct BufferPSNR { // Optimized GPU versions // Data allocations are very expensive on GPU. Use a buffer to solve: allocate once reuse later. cv::gpu::GpuMat gF1, gF2, gI1, gI2, gs, t1,t2; cv::gpu::GpuMat buf; }; double getPSNR_GPU_optimized(const cv::Mat& F1, const cv::Mat& F2, BufferPSNR& b) { b.gF1.upload(F1); b.gF2.upload(F2); cv::gpu::resize(b.gF1, b.gI1, cv::Size(160, 120)); cv::gpu::resize(b.gF2, b.gI2, cv::Size(160, 120)); b.gI1.convertTo(b.t1, CV_32F); b.gI2.convertTo(b.t2, CV_32F); cv::gpu::absdiff(b.t1.reshape(1), b.t2.reshape(1), b.gs); cv::gpu::multiply(b.gs, b.gs, b.gs); double sse = cv::gpu::sum(b.gs, b.buf)[0]; if( sse <= 1e-10) // for small values return zero return std::numeric_limits<double>::infinity(); else { double mse = sse /(double)(F1.channels() * F1.total()); double psnr = 10.0*log10((255*255)/mse); return psnr; } }

L'utilisation de la structure BufferPSNR permet de ne pas perdre de performance lors de l'initialisation relativement lourde des objets GpuMat. Sans cela, l'utilisation du Gpu serait moins performant que la version Cpu.

L'expérience

Maintenant place à l'expérience. Nous allons lancer notre programme sur notre jeu d'essai comprenant les vidéos issue des DVD, ainsi que les vidéos recompressées pour l'expérience. Si l'expérence se déroule bien l'algorithme devrait nous detecter les fichiers dupliqués, ainsi que les fichiers recompressés.

Lancement et selection des dossiers

La première étape est la sélection des dossiers que l'on souhaite comparer. Le programme ira lire récursivement l'ensemble des dossiers pour y trouver l'ensemble des fichiers vidéos.

La sélection d'un projet provient de mon envie de départ de pouvoir enregistrer l'avancement du projet au fur et à mesure. Cette étape n'a pas été réalisée mais l'existance du mode projet existe toujours.

Selection du projet

Une fois le dossier projet choisi, il faut sélectionner la liste des dossiers contenant les vidéos et lancer le programme ...

Comparaison des vidéos

Dans cette étape le programme compare l'ensemble des vidéos présentes dans les dossiers. L'ensemble du processus tourne dans des threads afin de ne pas figer l'IHM, grâce à l'API QtConcurrent.

RechercheRecherche encore

Les étapes de la recherche sont donc :

  • Constitution de la liste des fichiers
  • Récupération des méta-données
  • Création de la liste des paires de fichiers (en filtrant sur la durée)
  • Calcul du PSNR pour chaque paire de fichiers
  • Filtrage pour ne garder que les paires de fichiers dont le PSNR est supérieur à 30 db.

Lors de mon développement je me suis basé sur l'API QtConcurrent pour faire les différentes étapes. Faisant beaucoup de développement NodeJS ces derniers temps je suis habitué à l'utilisation des promesses et de leur enchainement pour faire des processus complexes. J'ai trouvé dommage de ne pas retrouver la même chose dans l'API QtConcurrent. Pour reproduire un équivalent, lorsqu'un QFuturese termine, le signal émis par QFutureWatcher est récupérer par un SLOT du moteur qui s'occupe de lancer l'étape suivante.

La page de résultat

La page de résultat liste les vidéos considérées identiques suite à l'étude d'une des images. Un coup d'oeil visuel permet alors de se faire un avis sur la question, et de supprimer la vidéo que l'on souhaite.

Résultat 1

Comme on peut le voir le programme retrouve les vidéos dont l'image est identique, ainsi que les films qui ont été redimensionnés sans trop de soucis. Le problème se situe alors au niveau du bruit qui est généré. Plusieurs films sont considérés comme proches alors que complètement différents. Pour régler ce problème, comparer plusieurs images d'une même vidéo à des timestamps différents pourrait peut-être régler le problème.

Résultat 2

Je vous conseille de vérifier manuellement la qualité et la similarité de chaque vidéo manuellement avant toute suppression.

Conclusion

En conclusion, j'ai trouvé l'expérience intéressante, et maintenant qu'elle est terminée, je vais pouvoir en tenter une autre ;). Est-ce que le programme continuera d'évoluer ? Pourquoi pas ? Cela dépendera des PR (Pull Request) et des demandes faites par les utilisateurs, ainsi que du temps que j'ai envie de passer dessus.

Gravatar de Ulrich Van Den Hekke
Original post of Ulrich Van Den Hekke.Votez pour ce billet sur Planet Libre.

Articles similaires

nIQnutn : Contribuer à un Wiki

Même si cet article traite de mon expérience et d'un cas spécifique, il s'agit d'un constat général des différentes communautés du logiciel libre.

La communauté du libre et particulièrement celle de Debian-Facile (site d'entraide pour Debian orienté grand public) repose en partie sur quelques personnes particulièrement active. Très impliquées à un certain moment, leurs contributions permettent de produire un grand nombre d'articles / tutos / TP / contributions sur le forum / ... et permettent de faire vivre et d'animer la communauté Debian-Facile.
Pourtant, on ne peut pas compter durablement uniquement sur certaines personnes. A un moment donné, elles auront probablement d'autres priorités et n'auront plus la possibilité de contribuer autant voire plus du tout.

C'est d'ailleurs l’intérêt de faire de la documentation collaborative. Chacun à la possibilité de contribuer à son niveau, en fonction de ses compétences, de son temps disponible et de ses envies. J'insiste sur le fait que tout le monde peut contribuer, des tâches les plus ingrates comme la correction de fautes de grammaire, syntaxe, mise en page ... ou ajouter quelques phrases pour intégrer quelques précisions ou faire un tutoriel complet.

La connaissance est la seule chose qui s’accroît lorsqu'on la partage. Sacha Boudjema dans Ordre du grand vol

Il n'y a pas de hiérarchie dans ces différents types de contribution et chacun permet d'améliorer ce qui existe et assure la pérennité de la documentation. Il n'est pas nécessaire d'être un expert pour écrire un tuto, et cela permet parfois d'avoir une documentation moins difficile d'accès pour les novices en évitant/occultant la partie technique. Il est même important d'avoir différentes articles traitant d'un même sujet mais à destination d'un public de niveau différent.

Pour les contributions sur Debian-Facile, on peut distinguer plusieurs cas:

Contribuer

Il y a quelques règles simples à respecter lorsque l'on contribue.

On commence par respecter les licences. D'une part la licence du wiki ou l'on va écrire mais également de la source si on en utilise.

Il est essentiel de citer ses sources. Cela permet principalement de pouvoir actualiser un tuto en cas de modification/mise à jour. Il est possible que la source soit plus complète que la source et certains auront envie d'en apprendre plus. C'est également l'occasion de découvrir de nouvelles sources d'informations.

Évidemment on demande d'écrire dans un français correct pour être compréhensible. Le minimum attendu étant de se relire. On peut éventuellement demander à quelqu'un de vérifier et qui pourra corriger les fautes éventuelles mais aussi donner son avis avant de publier.

J'ai souvent entendu certaines personnes qui pensent ne pas avoir les connaissances pour contribuer. C'est plus une barrière psychologique qu'un réel manque de connaissance (j'en soupçonne quelques uns de dissimuler leur fainéantise sous ce prétexte). Dans ce cas, il faut le voir comme un petit défi à relever. Il est évident qu'on n'a pas tous les mêmes capacités pour écrire et partager des connaissances. Il ne fait pas oublier que cela s'apprend et ça s'améliore avec l'expérience.

Pour ceux qui pensent n'avoir rien d'intéressant à dire, il y a toujours moyen de faire un tuto. La solution la plus simple est de reprendre un article/tuto écrit par un autre et de l'ajouter pour compléter le wiki.
Par exemple, on peut reprendre une page du wiki officiel Debian https://wiki.debian.org et l'ajouter sur Debian-Facile https://debian-facile.org/accueil.
Pour les polyglottes, on peut traduire un article d'une langue vers le français.
Bref, les possibilités sont nombreuses sans avoir besoin de connaissances particulières. Évidemment on respectera les règles expliquées plus haut.

Contribution sur un tuto existant

A partir d'un tuto existant, on peut contribuer de nombreuses manières différentes.

Pour ce qui est le plus accessible, on peut corriger des fautes d'orthographes ou modifier la mise en page. Dans ce cas, on ne change pas le fond et c'est rapide.

Il est possible d'intégrer des modifications pour ajouter des compléments d'informations ou d'actualiser le contenu dans le cas de mise à jour d'un logiciel. Dans ce cas, il faut faire attention d'insérer le contenu à l'endroit le plus adéquat et vérifier ce que l'on écrit (il suffit de faire un test et éventuellement demander validation à une autre personne).

Autre possibilité, compléter le tuto en ajoutant de nouvelles notions ou restructurer son contenu pour améliorer la compréhension.
A mon avis, c'est la chose la plus difficile car il faudra veiller à respecter l'objectif initial du tuto et de son auteur. Il faut faire attention à ne pas intégrer trop d'informations et allonger le tuto, ce qui pourrait nuire à sa compréhension globale. Dans ce cas, il est généralement préférable de découper le sujet en plusieurs pages.
En ajoutant simplement quelques éléments, on sera peut-être amené à rédiger entièrement le tuto pour apporter plus de clarté et de lisibilité.

Création d'un nouveau tuto

La solution la plus simple pour contribuer, c'est de partir d'une page blanche. Dans ce cas, il suffit de rédiger un tuto en se basant sur son expérience personnel ou pour répondre à une demande. Il faut éviter d'en faire trop, l'objectif du tuto doit rester relativement simple ou développer un point particulier.

On peut reprendre la structure habituelle d'un tuto pour un logiciel: présentation, installation, configuration, utilisation, liens et ressources.
Si on se limite généralement au texte et quelques images, on peut envisager des vidéos en complément.

Création d'un tuto perso

C'est la spécificité de Debian-Facile qui propose à tous ses membres un espace personnel pour rédiger des tutos. Il en sort plusieurs avantages.

D'abord, cela permet de se faire une première expérience de l'utilisation d'un wiki et de sa syntaxe.

On peut se servir des pages utilisateurs comme simple pense bête.
Ces informations n'ont pas vocations à intégrer le wiki car trop spécifique à un cas d'utilisation mais susceptible d'intéresser d'autres utilisateurs. On peut par exemple intégrer certains fichiers de config (un conky par exemple) en ajoutant une petite description et une capture d'écran. Il est aussi possible de faire un tuto qui répond à une problématique très précise, comme l'installation de la dernière version d'un logiciel à partir de ses sources.

Certains tutos peuvent évidemment être transférés dans la documentation principale si c'est pertinent. L'avantage est de pouvoir rédiger tranquillement et de valider le contenu avant d'être déplacé.

De cette manière, chacun à la possibilité de partager ses connaissances et de contribuer à son rythme. C'est relativement simple et accessible à tous.

Dokuwiki

C'est certainement le point qui freine le plus pour une première contribution.
Il faut apprivoiser la syntaxe dokuwiki. C'est pas évident au début, mais il n'y a rien de très compliqué.

Il faut commencer sur une page de test pour se faire la main et prévisualiser les modifications.
Petit à petit on s'habitue à la syntaxe et on peut se référer à la documentation https://www.dokuwiki.org/fr:wiki:syntax
L'essentiel est de bien distinguer les niveaux de titres, paragraphes, balises de codes et liens.

Ne pas oublier qu'on peut toujours demander de l'aide si on des difficultés avec la syntaxe du wiki, quelqu'un vous donnera certainement un coup de main.

Les bonnes habitudes

Il y a certaines choses à savoir lorsque l'on contribue (et pas seulement sur un wiki).

D'abord, ne jamais rien attendre des autres. Chacun contribue en tant que bénévole, sur son temps libre et ne peut pas être constamment disponible. Cela ne veut pas dire que personne ne pourra aider, simplement que ce n'est pas une obligation et qu'il faut être patient.

Les DOers (faiseurs) ont toujours raison. Celui qui va faire le travail aura toujours le dernier mot sur ce qui est réalisé.

Il est évident que si une remarque est pertinente elle sera prise en compte sinon vous avez toujours la possibilité de faire les choses à votre manière de votre côté. C'est simplement pour éviter que ceux qui ont un avis sur tout fatiguent ceux qui avancent sur leurs projets avec leurs idées et perdent du temps inutilement. Chez Framasoft, ça doit rappeler des souvenirs.

Ne pas vouloir intégrer trop de notions au sein d'un même tuto. D'une manière générale, s'il est trop est long, il vaut mieux le redécouper en plusieurs pages. C'est une bonne manière de simplifier la documentation.

On a généralement tendance à tout vouloir expliquer. Un wiki permet justement de faire référence à d'autres pages. Il faut éviter de faire doublon avec un autre tuto en renvoyant vers la page la plus complète et détaillée.
Cela facilite grandement les mises à jour et simplifier les autres pages.

Conclusion

Chacun a la possibilité de contribuer, selon son niveau, selon son rythme. Je dirai même qu'il est indispensable que chacun contribue. Dans ce domaine tout va très vite et il faut constamment se mettre à jour.

Contribuer sur Debian-Facile, son blog ou ailleurs n'est pas très important. L'essentiel est de participer. On trouvera facilement le moyen de relayer un article via planet-libre, le journal du hacker ou les réseaux sociaux.

Il n'est pas nécessaire d'avoir des connaissances techniques pour écrire. La présentation d'un logiciel que l'on utilise et de ses fonctionnalités est accessible à tous et c'est toujours utile.

Les opportunités pour participer à un wiki sont nombreuses. Il est possible de créer un tuto à plusieurs, on peut utiliser etherpad pour travailler sur un même document. C'est facile et c'est motivant.
Rédiger un petit tuto peut être tout aussi utile qu'un tuto technique et détaillé.

Pour moi, c'est la meilleure manière de diffuser le logiciel libre, créer plus de pages web pour être encore plus présent sur internet et espérer reléguer un jour les résultats de Microsoft et autres logiciels privateurs en 10ème page des moteurs de recherche.

Je vous recommande également, de toujours prendre des notes sur ce que vous faites sur votre machine.
C'est toujours utile lors d'une nouvelle installation et ça peut servir de base pour un tuto.
Pour ça, vous pouvez utiliser un petit wiki à installer: Zim.

Le logiciel libre vie en partie grâce à des bénévoles. On ne peut pas demander plus à ces personnes, chacun peut prendre le relais et créer une dynamique. Une communauté active et vivante est importante pour la motivation de chacun et partager nos idées.

C’est le devoir de chaque homme de rendre au monde au moins autant qu’il en a reçu. Albert Einstein

J'espère voir plein de nouveaux contributeurs et plein de tutos/articles très prochainement.

Ressources
2016 nIQnutn CC-BY

Gravatar de nIQnutn
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.

Vincent Gay : Installation d'une imprimante réseau Brother HL-5450DN

Au boulot j'ai hérité d'une Brother HL-5450DN, et on ne peut pas dire qu'elle marchait out of the box sur mon Archlinux. D'habitude il y a toujours un paquet AUR pour faire le job, mais dans ce cas le paquet brother-brgenml1 ne m'a pas été d'un grand secours.Il m'a donc fallu utiliser un script Brother se basant sur des .deb ou des .rpm.

préalable : installer le paquet AUR dpkg permettant d'installer un paquet deb

yaourt -S dpkg

Ensuite aller sur cette page de téléchargement de brother, accepter le CLUF et télécharger le Driver Install Tool.

Se rendre dans le dossier contenant le téléchargement, le décompacter et lancer la commande

sudo bash ./linux-brprinter-installer-2.1.1-1
Input model name ->HL-5450DL

You are going to install following packages.
hl5450dnlpr-3.0.0-1.i386.deb
hl5450dncupswrapper-3.0.0-1.i386.deb
OK? [y/N] ->y


=========================================
Brother License Agreement

Brother retains any and all copyrights to the Software. In no case this Agreement shall be construed to assign or otherwise transfer from Brother to User any copyrights or other intellectual property rights to whole or any part of the Software.

Brother grants User a non-exclusive license: to reproduce and/or distribute (via Internet or in any other manner) the Software. Further, Brother grants User a non-exclusive license to modify, alter, translate or otherwise prepare derivative works of the Software and to reproduce and distribute (via Internet or in any other manner) such modification, alteration, translation or other derivative works for any purpose.

The license of the Software from Brother hereunder is granted "AS IS." BROTHER HEREBY DISCLAIMS ANY WARRANTIES WITH RESPECT TO THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTY FOR THE QUALITY, MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE OR NON-INFRINGEMENT.
Brother shall have no liability in contract, tort (including negligence or breach of statutory duty) or otherwise for any interruption of use, loss of data, or for any indirect, incidental, punitive or consequential loss or damage, or for any loss of profit, revenue, data, goodwill or anticipated savings that arises under, out of, or in contemplation of this Agreement or otherwise arises due to any error, inaccuracy or defect in the Software even if Brother has been advised of the possibility of such loss or damage.
Further, Brother shall have no liability to disclose and/or distribute the source cord of the Software to User under any circumstances. In no case shall the above license by Brother to modify, alter, translate or otherwise prepare derivative works of the Software be construed as Brother's implied agreement or undertakings to disclose and/or distribute the source cord of the Software.
=========================================
Do you agree? [Y/n] ->y

wget -T 10 -nd --no-cache http://www.brother.com/pub/bsc/linux/packages/hl5450dnlpr-3.0.0-1.i386.deb
--2016-12-08 14:31:11-- http://www.brother.com/pub/bsc/linux/packages/hl5450dnlpr-3.0.0-1.i386.deb
Résolution de www.brother.com (www.brother.com)… 92.123.227.219, 92.123.227.168
Connexion à www.brother.com (www.brother.com)|92.123.227.219|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 33734 (33K) [text/plain]
Sauvegarde en : « hl5450dnlpr-3.0.0-1.i386.deb »

hl5450dnlpr-3.0.0-1 100%[===================>] 32,94K --.-KB/s in 0,03s

2016-12-08 14:31:11 (1,17 MB/s) — « hl5450dnlpr-3.0.0-1.i386.deb » sauvegardé [33734/33734]


=========================================
GPL License Agreement

This Software may be used in accordance with GNU General Public License (GPL). Please read carefully the following GPL and click on "I Accept" button. If you cannot agree with the following terms, please click "I don't Accept" button. In case of your non-acceptance, you can not use this Software.
Note:
Please click on "I Accept" while holding down "Shift" or right click on "I Accept" and select "Save Target As,,," from the menu.

GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.


Copyright (C)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author Gnomovision
comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
=========================================

Do you agree? [Y/n] ->y

wget -T 10 -nd --no-cache http://www.brother.com/pub/bsc/linux/packages/hl5450dncupswrapper-3.0.0-1.i386.deb
--2016-12-08 14:31:14-- http://www.brother.com/pub/bsc/linux/packages/hl5450dncupswrapper-3.0.0-1.i386.deb
Résolution de www.brother.com (www.brother.com)… 92.123.227.168, 92.123.227.219
Connexion à www.brother.com (www.brother.com)|92.123.227.168|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 13474 (13K) [text/plain]
Sauvegarde en : « hl5450dncupswrapper-3.0.0-1.i386.deb »

hl5450dncupswrapper 100%[===================>] 13,16K --.-KB/s in 0,006s

2016-12-08 14:31:14 (2,27 MB/s) — « hl5450dncupswrapper-3.0.0-1.i386.deb » sauvegardé [13474/13474]

./linux-brprinter-installer-2.1.1-1: ligne 1800: apt-get : commande introuvable
./linux-brprinter-installer-2.1.1-1: ligne 1804: apt-get : commande introuvable
./linux-brprinter-installer-2.1.1-1: ligne 1808: apt-get : commande introuvable
ln: impossible de créer le lien symbolique '/etc/init.d/cupsys': Aucun fichier ou dossier de ce type
ln: impossible de créer le lien symbolique '/etc/init.d/cups': Aucun fichier ou dossier de ce type
ln: impossible de créer le lien symbolique '/etc/init.d/lpd': Aucun fichier ou dossier de ce type
ln: impossible de créer le lien symbolique '/etc/init.d/lprng': Aucun fichier ou dossier de ce type
dpkg -x hl5450dnlpr-3.0.0-1.i386.deb /
dpkg -x hl5450dncupswrapper-3.0.0-1.i386.deb /
dpkg-deb: building package 'hl5450dnlpr' in 'hl5450dnlpr-3.0.0-1a.i386.deb'.
dpkg -b ./brother_driver_packdir hl5450dnlpr-3.0.0-1a.i386.deb
dpkg-deb: building package 'hl5450dncupswrapper' in 'hl5450dncupswrapper-3.0.0-1a.i386.deb'.
dpkg -b ./brother_driver_packdir hl5450dncupswrapper-3.0.0-1a.i386.deb
dpkg -i --force-all hl5450dnlpr-3.0.0-1a.i386.deb
dpkg: avertissement: problème contourné par utilisation de --force :
dpkg: avertissement: l'architecture du paquet (i386) ne correspond pas à celle du système (amd64)
Sélection du paquet hl5450dnlpr:i386 précédemment désélectionné.
(Lecture de la base de données... 0 fichier et répertoire déjà installé.)
Préparation du dépaquetage de hl5450dnlpr-3.0.0-1a.i386.deb ...
Dépaquetage de hl5450dnlpr:i386 (3.0.0-1) ...
Paramétrage de hl5450dnlpr:i386 (3.0.0-1) ...
chown: utilisateur incorrect: « lp »
dpkg -i --force-all hl5450dncupswrapper-3.0.0-1a.i386.deb
dpkg: avertissement: problème contourné par utilisation de --force :
dpkg: avertissement: l'architecture du paquet (i386) ne correspond pas à celle du système (amd64)
Sélection du paquet hl5450dncupswrapper:i386 précédemment désélectionné.
(Lecture de la base de données... 29 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de hl5450dncupswrapper-3.0.0-1a.i386.deb ...
Dépaquetage de hl5450dncupswrapper:i386 (3.0.0-1) ...
Paramétrage de hl5450dncupswrapper:i386 (3.0.0-1) ...
lpadmin -p HL5450DN -E -v usb://dev/usb/lp0 -P /usr/share/ppd/brother/brother-HL-5450DN-cups-en.ppd
#
Will you specify the Device URI? [Y/n] ->


0: ipps
1: beh
2: smb
3: socket
4: http
5: lpd
6: https
7: ipp
8: dnssd://Brother%20HL-5450DN%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-30055c980637
9: dnssd://MX-2310U%20(1501035Y00)._printer._tcp.local/
10: lpd://192.168.1.150/lp
11: lpd://BRN30055C980637/BINARY_P1
12 (I): Specify IP address.
13 (A): Auto. (dnssd://Brother%20HL-5450DN%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-30055c980637)

select the number of destination Device URI. ->12

enter IP address ->192.168.1.249
lpadmin -p HL5450DN -v socket://192.168.1.249 -E
Test Print? [y/N] ->y

wait 5s.
lpr -P HL5450DN /usr/share/cups/data/testprint
Hit Enter/Return key.
[vincent@taf linux-brprinter-installer-2.1.1-1]$

l'option 8 dnssd://Brother%20HL-5450DN%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-30055c980637 aurait étée tout aussi bien.

Gravatar de Vincent Gay
Original post of Vincent Gay.Votez pour ce billet sur Planet Libre.

Articles similaires

fgallaire : Base LEGI et système de fichiers : ext4 vs XFS

Comme je l’indiquais dans mon article sur la base LEGI, cette dernière est assez volumineuse et structurée d’une manière très complexe. Ainsi, la dernière version de la base est composée de 1 624 783 fichiers XML, répartis dans une arborescence absconse de 1 537 949 sous-répertoires pour une taille d’une dizaine de Go.

Cette structure est suffisamment extrême pour nous amener à nous interroger sur le choix et sur les performance de notre système de fichiers, alors que la plupart des gens utilisent un système de fichiers sans même en avoir vraiment conscience et a fortiori sans le choisir.

Le première chose si vous souhaitez travailler sur la base LEGI, qui est composée d’un très grand nombre de petits fichiers, c’est de privilégier l’utilisation d’un SSD à celle d’un disque dur classique. En effet, les performances seront 10 à 20 fois meilleures avec un SSD.

Les systèmes de fichiers sont un sujet très technique et de très bas niveau, sur lequel peu de personnes sont compétentes et où les convictions affichées relèvent parfois plus de la croyance que de l’analyse scientifique. Voici donc trois éléments de comparaison objectifs et compréhensibles des systèmes de fichiers ext4 – le choix par défaut sous Linux – et XFS.

1) Taille de la base LEGI

Dans mon article je mentionnais que la base LEGI pouvait varier de taille selon le système de fichier, sans citer explicitement ext4 et XFS.

ext4 : 15 Go
XFS : 9 Go

Pourquoi une telle différence ? C’est Jean-Baptiste Denis qui m’a aidé à percer ce mystère. En fait XFS possède des Shortform Directories qui permettent de stocker les petits répertoires directement dans leur inode. Les 6 Go supplémentaires correspondent donc aux 1 537 949 blocs de 4 Ko créés par ext4 pour chacun des sous-répertoires.

Vainqueur : XFS

2) Nombre d’inodes

Un inode est utilisé par fichier et par répertoire lors de la décompression de la base LEGI. Il faut donc que la partition dans laquelle est stockée la base possède au minimum 1 624 783 + 1 537 949 = 3 162 732 inodes. Or le nombre d’inodes varie selon les systèmes de fichiers et les options de formatage. Pour visualiser le nombre d’inodes de vos partitions il suffit d’utiliser la commande df -ih.

ext4 : 65 000 inodes/Go
XFS : 1 000 000 inodes/Go

Ceci n’est pas du tout anecdotique, car beaucoup d’hébergeurs ne permettent pas de choisir votre système de fichier : ce sera ext4 avec ses options de formatage par défaut et rien d’autre. Avec seulement 65 000 inodes par Go, il faudra une partition d’une taille minimale de 50 Go pour pouvoir stocker la base entière. Cela implique que certaines offres de VPS peu chères, avec une capacité de stockage SSD de petite taille, ne vous permettront pas d’exploiter la base LEGI.

Vainqueur : XFS

3) Performances

J’ai évalué les performances des deux systèmes de fichiers avec plusieurs commandes parcourant la base LEGI sur un serveur Xeon 8 cœurs 3,7 GHz doté de 16 Go de RAM et d’un SSD. Les résultats permettent de comparer Ext4 et XFS, mais les performances sur votre ordinateur risquent d’être nettement inférieures.

J’ai utilisé la commande echo 3 | sudo tee /proc/sys/vm/drop_caches pour vider les caches avant chaque essai (merci Jean-Baptiste bis).

Commandeext4XFSext4/XFS du -hsc legi3'08"0'53"3,5 find legi -type d | wc -l3'06"0'56"3,3 find . -name "*.xml" | wc -l2'54"0'51"3,4 tar xzf Freemium_legi_global.tar.gz2'26"1'18"1,9

On peut ici conclure que XFS se révèle globalement 3 fois plus rapide qu’ext4.

Vainqueur : XFS

XFS sort donc grand vainqueur de cette comparaison avec ext4, et je ne peux que vous encourager à l’utiliser si vous voulez exploiter la base LEGI. À titre personnel, j’ai décidé de ne plus utiliser que XFS.

Tweet

Gravatar de fgallaire
Original post of fgallaire.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Appel à publier sur le thème du logiciel libre

Quelques mois après mon billets Pourquoi le Planet Libre est si vide ?, voici un nouveau billet de sensibilisation et un appel à publier autour du logiciel libre.

Peu de ressources francophones

Depuis des années le Planet libre se raréfie, la blogosphère francophone qui parle de logiciel libre se raréfie... Pourtant il me semble important qu'elle perdure et se renforce. Car à l'heure actuelle, pour s'informer sur les nouvelles versions, les logiciels, avoir des tutoriaux ou autres, les ressources ne sont pas nombreuses.

Dans l'univers du libre, je mets de côte le cas de LinuxFr. Personnellement je trouve que les journaux et les commentaires tournent souvent au débat avec un ton pas toujours très correct (les propos sexistes arrivent très vîtes et quand on les dénonce, on se fait rembarrer), avec des querelles de chapelles, des discussions sans fin ou chacun campe sur son point de vue. Je suis les fils RSS des dépêches et journaux de Linuxfr, ce qui me permet de faire ma veille, ensuite je parcours les commentaires en diagonale, commente parfois - mais c'est rare.

Du coup, ma veille, je la fais essentiellement via les blogs auxquels je suis abonné au sein de mon agrégateur RSS. Au passage, une bonne source pour trouver des nouveaux blogs pour moi c'est le Journal du Hacker.

Partagez, diffusez, écrivez

Si vous avez des connaissances généralistes ou techniques, Rédigez tout ça et publiez. Pour ne citer que lui, faites comme Seb0S666, qui fait régulièrement des billets qui permette de mieux comprendre l'administration système Linux... et dont je fais des gros copier-coller dans mon wiki personnel pour centraliser tout ça dans une base de connaissance.

Vous expérimentez, rencontrez des difficultés et arrivez à les résoudre ? Publiez. Partagez vos retours d'expériences. Ecrivez. Ensuite, utilisez les réseaux sociaux pour partager vos écrits, faire connaitre votre blog (Mais ne créer pas une page Facebook pour publier vos écrits, il ne faut pas exagérer non plus, hein ;))

Youtube ?

Peut-être qu'il existe foison de tutoriel en vidéo sur Youtube, pour parler de logiciel libre... J'utilise Youtube pour voir des conférences qui ont été filmées sur différents sujets, parfois des présentations ou tutoriels, mais je ne suis pas particulièrement "abonné" à une chaine (voir à ce sujet Comment suivre une chaîne YouTube sans abonnement / compte ?), mais comme je suis de la vieille école de l'écrit, je lis beaucoup et donc j'appel à publier par écrit. CQFD.

Conclusion

En ayant un blog qui parle de logiciel libre (mais pas que), vous pourrez même publier des articles en vous revendiquant comme blogueur influent, lançant des trolls sur la mort de Linux, sur ses gauchistes libristes qui dénoncent mais utilisent Twitter (Toute ressemblance avec une personne existant ne serait que purement fortuite, je sais je suis taquin) Plus sérieusement, l'important c'est le partage de la connaissance, de vos connaissances. Car c'est via les publications de toutes celles et ceux qui ont publiés depuis des années que j'ai pu monter en compétence technique, nourrissant mon cerveau d'autodidacte avide de connaissances...

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Marthym : LaTeX, L'éditeur qui va bien

L’histoire

Dans un précédent billet, j’expliquais comment j’avais publié mon CV LaTeX sur GitHub. C’était ma première expérience LaTeX et quand on connaît pas et qu’on apprend, on a besoin de voir ce que l’on fait en temps réel. Je modifie une ligne, ça change le PDF généré, … Je m’étais alors tourné vers Gummy. Léger, pratique, pour les deux pages de mon CV c’est très bien. Mais déjà il y avait quelques points gênant comme un affichage pas toujours fidèle à mon PDF de sortie.

Et puis dernièrement j’ai commencé un projet demandant la rédaction d’un PDF assez conséquent. D’expérience, World/OpenOffice n’ont pas la qualité de rendu que j’espère et la gestion du volume et de la présentation avec ces deux solutions est bien trop couteuse. Je suis donc naturellement reparti sur LaTeX en me disant en plus que ça sera l’occasion d’en apprendre un peu plus.

Partant pour un document important avec beaucoup de chapitres et de section, j’ai dès le début structuré le projet en répertoires sous répertoires pour ne pas me retrouver avec des fichiers texte de 10 Mo. Et c’est là que les ennuis commencent, Gummi a beaucoup de mal à gérer les structures de répertoire hiérarchiques et les compilations successives.

Trouver un éditeur LaTeX qui va bien

J’ai donc cherché un éditeur LaTeX qui correspond mieux à mon besoin. Déjà, y a pas foule… En dehors Gummi et TexMaker ça ne se bouscule pas. Je suis sous Debian Gnome, je n’ai pas envie d’installer toutes les lib de KDE ou qt pour que ça fonctionne. Et je veux quelque chose de léger, parce que j’ai déjà mis les 1.5 Go que demande LaTeX et j’ai envie de beaucoup plus.

J’allais lâcher l’affaire et me débrouiller à la ligne de commande quand je tombe sur l’option -pvc de latexmk.

Latexmk

Bon le but n’est pas de faire la promotion de latexmk surtout que j’imagine que d’autre personnes préfèreront d’autres outils. Je vais juste présenter ce qui est pour moi le meilleur éditeur LaTeX, les problèmes que j’ai eus et les solutions trouvées.

Structure du projet

Prenons un projet structuré comme suit :

  • monprojet
    • build
    • chapitres
      • 01
      • 02
    • images
    • fonts
    • monprojet.tex
    • latexmkrc
Configuration du build

Voici mon fichier latexmkrc :

$pdf_mode = "1"; $out_dir="build"; $pdflatex = "xelatex %O %S";
  • $pdf_mode indique que l’on veut un pdf en sortie
  • $out_dir demande à ce que les fichiers généré soient placé dans build, C’est plus pratique pour le .gitignore
  • $pdflatex redéfinit la commande car j’utilise xelatex pour tout les avantages qu’il apporte

Le fichier monprojet.tex lui inclue les chapitres :

\\include{chapitres/01/section01.tex} \\include{chapitres/02/section01.tex}

A ce stade on a déjà une compilation qui fonctionne à condition que l’arborescence des chapitres existe bien dans build. C’est un problème que j’ai rencontré et qui est assez contraignant, quand on supprime le répertoire build, la compilation échoue car elle ne trouve pas les fichiers intermédiaires. C’est dû au fait que latexmk ou xelatex ne crée pas les répertoires dans le out_dir.

Heureusement ce problème n’est pas trop compliqué à régler en ajoutant la création de ces répertoires dans le latexmkrc:

$pdf_mode = "1"; $out_dir="build"; $pdflatex = "find chapitres -type d ! -path './.git*' -exec mkdir -p $out_dir/{} \\\\; && xelatex %O %S";

C’est un peu barbare mais ça fonctionne. Et cette fois, on a une compilation sans échec.

Visualisation instantanée

Jusque-là c’est un peu facile m’enfin on n’a pas un éditeur ni rien qui y ressemble ! La fonctionnalité surtout recherchée (dans mon cas) étant l’aperçu instantané de ce que j’écris. Et c’est là qu’intervient l’option -pvc. Cette option permet de scruter le répertoire et de relancer la compilation chaque fois qu’une modification est repérée dans les fichiers. Et latexmk est suffisemment malin pour ne pas tout recompiler mais seulement ce qui a changé.

Néanmoins, cette option n’a d’intérêt que si elle est associée à un visualiseur de PDF capable de rafraichir l’affichage quand le PDF change. J’ai testé avec Evince mais c’est plutôt décevant, ça rame et Evince à tendance à frizzer lors des changements de page dès que le PDF prend une dizaine de pages. Mais gv lui répond très bien ! L’interface est spartiate et rebutante mais pour un aperçu c’est largement suffisant.

Enfin, pour lier tout ça, on va modifier le latexmkrc comme suit :

$pdf_mode = "1"; $out_dir="build"; $pdflatex = "find chapitres -type d ! -path './.git*' -exec mkdir -p $out_dir/{} \\\\; && xelatex %O %S"; $pdf_previewer = 'gv --watch';

ce qui a pour effet de compiler le document puis de lancer automatiquement gv avec les bons paramètres.

Pour finir il ne vous reste plus qu’à choisir l’éditeur de texte qui vous plaît, je fais avec Sublime Text 3, mais il y en a d’autres plus “Libre” je suppose.

Problème d’erreur

Un problème que j’ai eu avec cette configuration c’est que si je fais une erreur dans mon fichier tex, la compilation continue s’arrête et il faut la relancer une fois l’erreur corrigée. Pour pallier ce problème, on peut rajouter l’option -interaction=nonstopmode dans le fichier latexmkrc

$pdf_mode = "1"; $out_dir="build"; $pdflatex = "find chapitres -type d ! -path './.git*' -exec mkdir -p $out_dir/{} \\\\; && xelatex %O -interaction=nonstopmode %S"; $pdf_previewer = 'gv --watch';

LaTeX, L'éditeur qui va bien écrit à l'origine par Marthym pour J'ai acheté un PC neuf cassé ... le December 08, 2016.

Gravatar de Marthym
Original post of Marthym.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : Retours sur la mise en ligne de wallabag.it

Bon, on peut souffler un peu. La mise en ligne de wallabag.it s'est plutôt bien passé : beaucoup de retours, quasiment que des retours positifs. Un article sur NextInpact (un peu critique, mais ces critiques sont justifiées donc bon).

Il a fallu surtout supporter l'effet Capital (à une moindre échelle, je le reconnais).

Rapidement, des utilisateurs sont arrivés, se sont créés un compte et ont décidé de récupérer leurs milliers d'articles de Pocket ou Instapaper : des gens ont plus de 15.000 articles chez Pocket. Mais vous êtes fous ? Passons.

Ça a surtout permis de tester à grande échelle l'import asynchrone de wallabag. Pour tester, on a testé.

Dans un premier temps, j'avais mis en place Redis pour stocker les articles et les traiter de manière asynchrone. wallabag supporte aussi RabbitMQ, mais Redis étant plus léger, plus simple à installer, ça me paraissait un bon compromis.

J'avais lancé les workers (script qui consomme les articles stockés dans Redis pour les récupérer en ligne et les stocker dans la base de wallabag) en ligne de commande, classiquement. Quasiment une dizaine de workers pour Pocket, pareil pour Instapaper et tous les autres (environ 70 workers).

Ça marchait. Presque.

Il ne fallait pas trop charger la mule, sinon le CPU était vite sous l'eau. Problème constaté : certains workers mourraient, il fallait donc les relancer. Hop, un cron qui vérifie régulièrement le nombre de workers qui tournent et relance ce qu'il faut pour qu'on ait toujours nos 70 workers. Une ébauche de ce cron se trouve ici.

Pendant que les workers tentaient despérément de consommer les articles, les utilisateurs, eux, continuaient d'envoyer des articles. On est très rapidement arrivé à 100.000 articles à importer. CENT. MILLE. En moins de 24h.

@bourvill, qui développe l'appli wallabag pour iOS, me conseille de ne pas laisser tourner mes worker indéfininement, mais de les faire consommer quelques messages, puis de les tuer pour les relancer. Y'a eu un peu de mieux. Mais c'était pas la forme non plus.

Il me parle ensuite de supervisor. Hop, à la poubelle mon cron, supervisor c'est génial. On lui dit : "voici une commande à surveille : si elle meurt, tu la relances."

Extrait de configuration pour mes workers Pocket par exemple :

[group:pocket-workers] [program:pocket-01] command=php bin/console rabbitmq:consumer -e=prod import_pocket -w -vvv directory=/var/www/app.wallabag.it/current/ autostart=true autorestart=true startretries=3 stderr_logfile=/var/log/import-workers/pocket.err.log stdout_logfile=/var/log/import-workers/pocket.out.log user=www-data [program:pocket-02] command=php bin/console rabbitmq:consumer -e=prod import_pocket -w -vvv directory=/var/www/app.wallabag.it/current/ autostart=true autorestart=true startretries=3 stderr_logfile=/var/log/import-workers/pocket.err.log stdout_logfile=/var/log/import-workers/pocket.out.log user=www-data

supervisor est aussi plus pratique pour arrêter / démarrer / ajouter de nouveaux workers.

Bon, c'était mieux pour gérer les workers, mais les problèmes de performance étaient toujours là.

Au bout de 48h, je décide de couper les imports. Le temps de laisser Redis digérer les 50.000 articles avec seulement quelques workers : le fait d'en faire tourner trop faisait ramer l'appli en elle-même, certains utilisateurs avaient des timeout.

Après avoir discuté avec @j0k3r et @bourvill des optimisations possibles, je décide d'abandonner Redis pour installer RabbitMQ.

Et là, surprise : ça trace. Alors que RabbitMQ est plus lourd, il s'en sort mieux. Logique, il est fait pour ça (Redis n'étant à la base pas fait pour ça), si jamais un worker plante, on ne risque pas de perdre de messages. Et le bundle utilisé pour communiquer avec RabbitMQ est surement plus performant que la librairie PHP utilisée pour Redis.

RabbitMQ

Joie donc. Je décide de faire un test grandeur nature : import de 8.000 articles depuis Pocket avec 15 workers. Pour les 4.000 premiers articles, ça a plutôt bien tourné. Et puis après, c'est devenu plus compliqué, les CPU ont commencé à chauffer.

Grrr.

De la RAM ajoutée et c'était mieux : je décide donc de réouvrir les imports à tout le monde après des tests de plusieurs milliers d'articles (Merci elpep, gnppn et lpenou).

@bourvill, toujours lui, me dit d'activer aussi la quality of service dans RabbitMQ : en gros ça permet de n'affecter que quelques messages à un worker, pour éviter qu'il les prenne tous (le gourmand) et il en laisse ainsi aux autres et le parallélisme peut ainsi fonctionner. J'ai donc appris que sans ça, j'avais beau lancer 42 workers pour une même queue, ça n'aurait rien changé.

Pendant ce temps, et comme depuis le début de l'aventure de toute façon, Benoit, de web4all (mon hébergeur), a toujours été là pour me soutenir, pour changer les perfs des serveurs (ajouter de la RAM, ajouter des CPU, surveiller les serveurs), tester plein de trucs. Un grand merci à lui !

Résultat : ce soir, ça semble se stabiliser, y'a des moments où les CPU chauffent encore, je tue les workers si vraiment les 4 CPU sont à plus de 80% chacun et ça repart. Donc encore un peu de boulot à faire niveau performance, mais c'est beaucoup plus supportable : ça importe et le site est utilisable.

Depuis 3 jours, mon ordi, c'est ça quasi en permanence : surveiller les CPU, voir le nombre d'articles en base, regarder ce qu'il reste à importer.

contrôle

Aujourd'hui, tout s'est un peu calmé (et c'est pas plus mal), mais ça m'a permis de corriger des bugs dans wallabag (découverts via les imports), d'apprendre plein de choses et de voir que finalement, le service tournait pas trop mal :)

Quelques chiffres :

  • 2500 visiteurs uniques en moins de 48h
  • 160.000 articles importés en moins de 72h
  • une base de données de 2,5 Go
  • beaucoup de retours extrêmement positifs : merci !

C'était éprouvant, mais intéressant ! On continue !

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

Bridouz : Zsh et bidouilles

La bidouille ça ne s’arrête jamais, et c’est parfois un exutoire, un moyen de pouvoir décompresser après une journée chargée. Mais c’est avant tout la possibilité de se construire un OS taillé sur mesure, où du moins un OS adapté pour l’usage qu’on souhaite en faire.

Notons également que la bidouille c’est bien mais qu’il fut un temps linuxien fort lointains où la bidouille faisait fréquemment tout planter bien comme il faut, sans moyen de récupérer ses données. Au hasard : une rapide installation d’une Lubuntu en 2006 faisait, si bien naturellement on était un jeune homme pressé, un formatage complet de votre disque dur, y compris les partitions non-vides…

Ce qui m’intéresse aujourd’hui c’est de parler ligne de commande, de parler interprétateur et d’éditeur de texte. De parler barbe quoi, enfin barbe naissante vu mon piètre niveau.

Depuis que j’utilise Linux, j’ai à ma disposition un invité de commande BASH, on retrouve cet interprétateur sur la plupart des distributions actuelles et je ne m’étais jamais posé la question des alternatives. Alors j’ai ouvert le grand livre Internet et m’en suis allé découvrir les possibilités existantes et, finalement, je me suis arrêté sur Zsh.

Kesako

Bash est interprétateur le plus connu et installé d’office sur la plupart des distributions linux actuelles. Là où zsh se démarque c’est qu’il propose des fonctionnalités que bash n’apporte pas comme un système d’auto-complétion assez poussé qui fonctionne même avec les différents logiciels utilisables en ligne de commandes. Bash le fait également mais en plus sommaire, il ne propose pas par exemple une description des commandes disponibles, des arguments possibles pour la commande.

Slimzsh

Oh My Zsh est une communauté d’utilisateurs proposant thèmes, plugins en un outil global pour simplifier la personnalisation et l’utilisation de zsh. Et pourtant il me paraît bien trop complet, je souhaite quelque-chose de simple pour l’utilisation basique que je fais du terminal alors j’ai regardé les autres frameworks zsh et mon dévolu s’est arrêté sur slimzsh.

Slimzsh est un framework minimaliste pour Zsh, il n’apporte pas une myriade de plugins mais juste ce qu’il faut pour mon utilisation :

  • Un thème minimaliste nommé Pure
  • L’auto-complétion activée pour les commandes et les arguments
  • La coloration syntaxique quand une commande est erronée ou correct
  • Indication en fonction du statut du dépot git

Pour moi c’est amplement suffisant.

Complétion, git et features

Zsh regorge de petits utilitaires qui facilite grandement la fluidité dans l’usage de la ligne de commande, l’auto-complétion en fait partie et c’est vraiment agréable de pouvoir l’utiliser. Un vrai gain de temps.
La colorisation syntaxique peut paraître peu intéressante mais au contraire j’y trouve une forme d’apport pédagogique. Cela m’incite à utiliser la ligne de commande et lorsque je me plante je prends le temps d’aller regarder mon erreur et ainsi en apprendre toujours un peu plus sur les commandes disponibles ainsi que leurs arguments respectifs.

micro

Niveau éditeur de texte en ligne de commande j’ai toujours utilisé nano. Il est simple et fait le maigre job que je lui demande. Et puis je suis tombé sur micro, un nano enrichi en quelque sorte. Snippets, colorisation syntaxique dans un terminal c’est top. Et puis c’est construit avec du langage Go, je n’y connais pas grand-chose mais j’aime le fait que tout soit contenu dans un seul binaire, pas de dépendance et ça tourne nickel.
Attention tout n’est pas parfait et pour l’écriture d’un billet par exemple je trouve cela un poil restrictif, car je n’arrive pas, pour le moment, à obtenir un retour à la ligne propre et fonctionnel, le logiciel est encore jeune et est en cours de polissage.

Voilà pour le moment, je découvre et j’apprends, mais je commence à être de plus en plus utilisateur de la ligne de commande pour les petites opérations et c’est un réel plaisir dans apprendre encore un peu plus sur l’utilisation possible de Linux.

Gravatar de Bridouz
Original post of Bridouz.Votez pour ce billet sur Planet Libre.

alterlibriste : Activités informatiques de ces derniers mois

Bon, c’est bien beau de faire de longs billets philosophiques mais quoi de neuf sur mes activités libres et numériques ?

Cet été, j’ai fait plusieurs billets sur le lancement de mon auto-hébergement. Qu’est-ce que ça devient ?
Mon serveur tourne comme un charme et se fait discret, jusqu’à il y a quinze jours, je n’ai pas tenté grand-chose de nouveau, juste un peu de maintenance et de surveillance pour voir si tout tournait bien. Suite à la série de billets de Starsheep qui tente de mettre en place des tas de services très simples (KISS), j’ai installé BoZon (tuto : coller ça dans un répertoire, faire pointer un sous-domaine dessus, enjoy) et essayé quelques services de prise de note sans pour le moment trouver mon bonheur.
Bref, je remets le nez la-dedans de façon moins intensive que cet été parce que j’ai moins de temps mais aussi parce que tout ça a eu le temps de décanter et je ne me prends plus un mur dès que je veux mettre quelque chose en place. Il faut dire aussi qu’après avoir attaqué en force avec des services bien costauds à mettre en place, revenir à des trucs plus simples est largement plus facile.

Pour les dix ans de mon gamin, on lui a offert une tablette premier prix. Je me suis empressé de désactiver toutes les saloperies de Google et les remplacer par leurs pendants libres disponibles sur F-Droid. Me frotter un peu plus à Android ne me fait vraiment pas rêver comparé à Firefox OS qui tourne toujours comme un charme sur mon téléphone.

Côté PC, je suis toujours sur Debian stable avec un dual-boot en testing que j’adopterai probablement rapidement après le freeze. Comme je l’ai déjà mentionné, faire des mises à jours de centaines de paquets toutes les semaines avec des évolutions pas toujours heureuses, ce n’est pas mon truc. Par contre, la Debian 9 offrira entre-autres des émulateurs bien sympa qui font la joie de mes gamins (la mienne aussi, je dois avouer) et étant donné que ce sont des consoles de ce siècle, je ne parle pas de rétro-gaming mais plutôt de reprendre les jeux là où je les avais laissés lors de mon abandon de Windows concomitant à une période (bébés toussa) où les jeux n’étaient plus un centre d’intérêt pour moi.

Sur mes PC toujours, j’ai eu une période pas très joyeuse avec LibreOffice Calc du dépôt Backports qui était bloqué depuis cet été en RC juste avant la 5.2 avec un bon gros bug qui ralentissait énormément le logiciel, ça s’est réglé il y a un bon mois mais quand on utilise ça pour le boulot, si je m’appelais Cyrille, j’aurais presque pu faire un passage sur Excel.
Autre bonne nouvelle, Firefox 50 améliore grandement sa vitesse de démarrage.

Sinon, pour éviter la Gnomisation outrancière de mes utilitaires et en attendant une diffusion plus générale des X-Apps, j’ai opté pour tous les utilitaires de Mate (Pluma comme éditeur de texte, Engrampa comme gestionnaire d’archives, Eye of Mate comme visionneuse d’images et Atril comme visionneuse de documents) qui sont de bons forks de ceux de Gnome mais sans toucher à l’apparence des fenêtres. Et ils sont dispos dans les dépôts officiels de Debian.

Enfin, j’ai une tour qui attend de passer sur le billard. Mon père me l’a refilée en disant qu’elle avait des problèmes. Il va falloir que je diagnostique ça et voir si on peut en faire un poste Linux convenable...
Faut être con quand même pour avoir l’œil qui brille devant un PC de presque 10 ans.

La bidouille, une passion qui ne coûte pas cher

Gravatar de alterlibriste
Original post of alterlibriste.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages