Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Organisez vos comics, magazines et livres avec Komga

Si vous cherchez un bon moyen d’auto-héberger vos magazines, vos livres et bandes dessinées, ne cherchez plus, Komga est la solution !

Si les comics vous intéressent et que vous avez tout ça au format numérique, c’est forcement un peu galère pour organiser tout ça et s’y retrouver. Grâce à Komga vous pourrez vous sortir de ce pétrin et créer des bibliothèques pour vos BDs afin d’organiser totalement vos collections.

Komga est donc un serveur de comics / mangas open source et gratuit. Vous pouvez même y mettre vos magazine PDF ou vos livres. Il supporte les formats epub, pdf, cbz et cbr et une fois en place, vous profiterez d’une jolie d’une interface web responsive.

Organisez vos comics avec Komga

Vous pourrez ainsi organiser votre bibliothèque avec des collections et des listes de lecture, et même modifier les métadonnées de vos séries de BDs et de vos livres. Komga permet également d’importer automatiquement les métadonnées intégrées à ces fichiers et vous pouvez tout lire sans quitter votre navigateur via le lecteur web.

Gérez vos magazines avec Komga

D’ailleurs plusieurs modes de lecture sont dispo et vous pouvez même gérer plusieurs users avec un contrôle d’accès par bibliothèque, mais également des restrictions d’âge.

En plus de cela, il dispose d’une API REST et de nombreux outils et scripts développés par la communauté qui sont capables d’interagir avec Komga.

Vous pourrez, d’un clic, télécharger les fichiers à l’unité ou des séries entières de BDs entières et si vous avez des petits soucis de mémoire lors de vos imports, l’outil est également capable de détecter les fichiers en double et même les pages en double. Komga peut également importer automatiquement les BDs déposées dans un répertoire.

Stockez vos livres avec Komga

Le plus beau là-dedans, c’est que ça s’installe très facilement avec Docker Compose, ou lancé directement via le .jar fourni (java). Donc vous l’aurez compris, ça peut tourner sur un Windows, un Linux mais également un NAS.

Si vous voulez tester par vous-même, une démo est accessible ici : https://demo.komga.org/

  • Login: demo@komga.org
  • Password: komga-demo

Matchering – Pour faire votre mastering audio gratuitement

En matière de création musicale, il y a souvent une étape qui casse un peu la tête, c’est le mastering. Il s’agit de la dernière touche qu’on apporte à un morceau de musique en relevant certaines de ces caractéristiques. On peut par exemple ajuster certaines fréquences, améliorer l’aspect stéréo, retirer certains parasites sonores…etc pour avoir quelque chose de très léché avec un son propre et optimisé pour tous les systèmes de diffusion du vinyl au streaming en passant par le CD.

Heureusement, pour cette étape, il y a des outils qui font également le boulot. C’est par exemple le cas de ce projet open source codé en Python et nommé Matchering, qui prend en entrée votre morceau ainsi que le morceau qui sera utilisé comme référence.

Capture d'écran de l'interface utilisateur de Matchering

L’algo de matchering va vous permettre de donner à votre morceau de musique la même sonorité que celui de votre artiste préféré. Cela permet également de mettre toutes les chansons d’un même album au diapason. Et pour cela, Matchering analyse le morceau de référence et en extrait la moyenne quadratique (RMS), la réponse en fréquence, l’amplitude, mais également la spatialisation stéréo. Puis applique ces mêmes paramètres à votre morceau.

Comme c’est un logiciel libre, vous pouvez l’installer via Docker sur votre propre machine. C’est également une lib python, donc vous pouvez intégrer ses fonctionnalités dans vos outils.

import matchering as mg

# Sending all log messages to the default print function
# Just delete the following line to work silently
mg.log(print)

mg.process(
    # The track you want to master
    target="my_song.wav",
    # Some "wet" reference track
    reference="some_popular_song.wav",
    # Where and how to save your results
    results=[
        mg.pcm16("my_song_master_16bit.wav"),
        mg.pcm24("my_song_master_24bit.wav"),
    ],
)

Et si tout cela n’est pas possible pour vous mais que vous voulez quand même tester, il y a des services (avec quelques crédits gratuits) qui l’ont implémenté comme Songmastr et Moises.

Maintenant si vous êtes producteur ou ingénieur son, ça peut valoir le coup de vous pencher sur Docker en cliquant ici.

Centralisez toutes vos créations réalisées avec les outils de la Digitale dans le tout nouveau Digidrive

DigidriveDernière mise à jour le 31 mars 2023 Digidrive manquait à la formidable suite d’outils numériques libres pour l’éducation proposée par l’ami Emmanuel Zimmert dans La Digitale. Un espace en ligne pour centraliser l’accès...

L’article Centralisez toutes vos créations réalisées avec les outils de la Digitale dans le tout nouveau Digidrive est apparu en premier sur Les Outils Tice.

Comprendre les différentes licences

La licence est une sorte de contrat qui permet d'expliquer les différentes utilisations que peuvent faire les utilisateurs du logiciel et du code source. Il en existe plusieurs types (libre, open source et propriétaire) avec certaines subtilités parfois (copyleft).

Je vais essayer ici d'expliquer clairement les différents concepts autour de ces licences ainsi que leurs différences. Et ce de la manière la plus claire possible, ce qui n'est pas chose aisée. Et j'essaierai de rester objectif.

Le libre

Le libre est avant tout un mouvement politique et social (merci Wikipedia) fondé en 1983 par Richard Matthew Stallman. Il promeut la liberté de l'utilisateur sur les logiciels, et cela se passe avec l'ouverture du code source. Un logiciel avec une licence libre doit pour ce faire respecter 4 libertés:

  1. Exécuter le programme
  2. Étudier et modifier le programme (donc son code source)
  3. Redistribuer des copies du programme
  4. Redistribuer des versions modifiées

Si un logiciel respecte ces quatre libertés, il est donc libre. C'est le cas de LibreOffice, VLC, Linux, ou encore ce site ! La FSF est le principal organisme qui promeut le libre dans le monde. Elle se bat aussi en justice et aide les projets lorsque leurs licences libres ont été enfreintes. Elle fourni aussi un guide détaillant les nouvelles licences pour qu'elles puissent être utilisés dans des projets libres, en expliquant les libertés enfreintes ou non ainsi que les différentes compatibilités possibles. En France, il existe les associations April et Framasoft (pour ne citer que les plus grosses) qui se chargent de promouvoir le libre.

Il existe nombreuses licences, voici une courte liste non exhaustive : GPL3, AGPL3, LGPL3, MIT, BSD, Apache 2.0, CC-BY... Chaque licence ayant certaines subtilités propres qu'on ne prendra pas le temps de traiter ici. Peut-être pour un prochain article ? ;)

Ce genre de licence peut s'appliquer aussi bien à du code qu'à des livres, des articles, de la documentation, des images, des vidéos...

L'open source

L'open source a été créé à la fin des années 90 (1998). L'OSI (pour Open Source Initiative) est l'organisme qui va approuver les licences comme Open Source. Une licence Open Source doit respecter 11 règles. Elles se rapprochent du libre à une exception près. La règle 4 permet d'avoir des licences qui restreignent la redistribution du code source modifié et enfreint donc la 4e liberté.

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. [...]

Si le libre met en avant l'utilisateur et sa liberté, l'open source met en avant l'entreprise. Mettre son code en open source, c'est l'ouvrir dans un but productif, permettre à la communauté de l'améliorer pour le profit de l'entreprise.

Le propriétaire

Les logiciels propriétaires sont tout simplement ceux qui ne rentrent dans aucune des deux précédentes catégories. Certaines licences sont tout à fait compréhensible moralement, mais qui ne sont pas libre au sens propre du terme. La licence de ce blog (CC-BY-NC-SA) interdit la redistribution payante des articles. Moralement compréhensible, mais pas libre pour autant, enfreignant ainsi la 3e liberté. Certaines licences vont aussi interdire certains usages de leur logiciel (ne pas utiliser à but militaire, par de grosses entreprises...), en cassant donc la première liberté. Et les exemples sont encore nombreux !

Cependant, la plupart du temps, un logiciel propriétaire va tout juste redistribuer son binaire et non son code source. Ou va imposer de fortes contraintes sur son utilisation tout en faisant signer un contrat utilisateur, les fameuses cases "J'ai lu et j'accepte" surplombées par un long texte juridique. C'est le cas de Windows par exemple.

Le copyleft

Le copyleft est quelque chose qui vient en plus de la licence. C'est pour ça qu'on nomme certaines licences "avec copyleft" et d'autres "sans copyleft". Le copyleft va forcer la réutilisation de la même licence sur des versions modifiées du code.

Par exemple, le code source pour Linux est en GPLv2. Si on modifie ce code, on doit appliquer la GPLv2 à cette nouvelle version. Le code source de Minix est sous licence BSD, qui n'a pas de copyleft. On peut donc reprendre ce code, le modifier et le rendre propriétaire.

Conclusion

Si on peut résumer cet article :

  • Licence = contrat au sens juridique expliquant ce qu'on peut faire avec le programme et son code
  • Libre = 4 libertés
  • Open Source = 11 règles
  • Propriétaire = peut être bien moralement, mais surtout code fermé
  • Copyleft = type de licence "contaminante"

Il convient ensuite de choisir la bonne licence selon vos projets et vos convictions.

Comme je l'ai indiqué plus haut, les licences (libres ou non) peuvent s'appliquer à des logiciels, des dessins, des vidéos ou encore du texte (comme des articles, de la documentation, un livre...). Cependant, certaines sont plus adaptées pour du code et d'autres pour du texte, de la musique, etc. Je ne suis pas rentré dans ces détails, car la philosophie derrière reste à peu près la même peu importe le support.

Voici quelques liens qui pourront vous êtres utiles :

J'espère que j'ai été assez clair dans cet article en expliquant succinctement les différents types de licences. N'hésitez pas à me faire des retours (rick [at] gnous [dot] eu, ou en commentaires) pour que je puisse améliorer l'article / en faire un nouveau !

Comment fonctionne le Fediverse ? Introduction à ActivityPub

Si vous vous êtes déjà intéressé à la décentralisation, vous avez sûrement déjà entendu parler du Fediverse, vendu par certain-e-s comme le futur des réseaux sociaux et décrit comme une invention de barbus par d'autres ; nous tenterons de faire la lumière sur ce qu'est le Fediverse dans cet article.

Le Fediverse est un ensemble de réseaux interconnectés à l'aide du protocole ActivityPub notamment.

Il existe de nombreux services qui utilisent le Fediverse. Ils sont tous reliés entre eux par le protocole ActivityPub

Image par Imke Senst, Mike Kuketz et RockyIII, CC-BY-SA 4.0

Cette interconnexion a plusieurs avantages, premièrement, elle permet une décentralisation très importante, si un serveur Pleroma vient à être down, tous les autres contenus resterons accessibles. Alors qu'aujourd'hui, et on l'a bien vu récemment avec la panne de Facebook, si un gros acteur tombe, un pan entier d'internet devient inaccessible.

Le second avantage, est que si je commente une photo sur Pixelfed par exemple, mon commentaire sera visible depuis une instance Mastodon. Les contenus sont partagés entre les différentes instances du Fediverse, même si elles n'utilisent pas le même logiciel.

Le protocole permettant cette interconnexion est ActivityPub ce protocole permet l'échange d'informations entre les instances en exploitant le format ActivityStream.

📁 ActivityStream

Le format ActivityStream est un standard basé sur le format JSON permettant de déclarer des objets. Par exemple, ci-dessous un objet Person qui correspond à un profil utilisateur sur Mastodon.

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "PropertyValue": "schema:PropertyValue",
      "value": "schema:value"
    }
  ],
  "id": "https://mastodon.social/users/Gargron",
  "type": "Person",
  "attachment": [
    {
      "type": "PropertyValue",
      "name": "Patreon",
      "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span}"
    },
    {
      "type": "PropertyValue",
      "name": "Homepage",
      "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span}"
    }
  ]
}

Et ici un objet encore plus classique appelé "Note", il est accepté par un grand nombre de services du Fediverse.

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "toot": "https://joinmastodon.org/ns#",
    }
  ],

  "id": "https://example.com/@alice/hello-world",
  "type": "Note",
  "content": "Hello world"
}

Comme vous pouvez le voir, certaines propriétés prennent en valeur des balises HTML (🤮). Le fonctionnement du format ActivityStream est vraiment trivial.

🌐 ActivityPub

Avoir un format de fichiers, c'est bien beau, mais encore faut-il pouvoir partager ces fichiers.

ActivityPub normalise certains objets, comme l'objet Person qui se voit affublé de nombreuses valeurs comme les followers, l'image de profil, etc.

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "ja"}],
  "type": "Person",
  "id": "https://kenzoishii.example.com/",
  "following": "https://kenzoishii.example.com/following.json",
  "followers": "https://kenzoishii.example.com/followers.json",
  "liked": "https://kenzoishii.example.com/liked.json",
  "inbox": "https://kenzoishii.example.com/inbox.json",
  "outbox": "https://kenzoishii.example.com/feed.json",
  "preferredUsername": "kenzoishii",
  "name": "石井健蔵",
  "summary": "この方はただの例です",
  "icon": [
    "https://kenzoishii.example.com/image/165987aklre4"
  ]
}

ActivityPub normalise aussi bien les communications client/serveur que serveur/serveur. Avec ce protocole, un utilisateur est appelé "acteur", il a deux "boîtes", une boite d'envoi et une boite de réception. Les URL de ces deux boites sont indiquées dans l'objet Person correspondant.

Le fonctionnement est assez trivial, pour recevoir les messages, les différentes instances qui veulent poster un message auprès de l'acteur envoient une requête HTTP POST contenant les nouveaux messages. Ledit acteur peut ensuite, via une requête HTTP GET récupérer le contenu de son Inbox. Ensuite, si l'acteur veut poster un message, il peut envoyer une requête POST à l'outbox et les autres acteurs pourront consulter cette outbox avec une simple requête GET.

Si Alice veut envoyer un message à Bob, elle poste simplement son message dans son outbox avec le destinataire, l'instance d'Alice s'occupera d'aller trouver l'inbox de Bob et d'acheminer le message vers cette inbox.

Schéma détaillant les informations ci-dessus.

Comme on a pu le voir, ActivityPub est un protocole plutôt simple dans son fonctionnement et qui permet d'interconnecter de nombreux services. Il s'appuie sur HTTPS, ce qui lui permet de bénéficier des dernières avancées de ce protocole comme la récente version 3 de HTTP.

❌
❌