From d9f340f2f07857e275044e4d9ed31ec86b27e77b Mon Sep 17 00:00:00 2001 From: Gregory Trolliet Date: Fri, 27 Mar 2020 14:03:26 +0100 Subject: [PATCH 1/4] =?UTF-8?q?[POST]=20Surveillance=20d'=C3=A9tat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/010-surveillanceEtat.md | 69 +++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 content/posts/010-surveillanceEtat.md diff --git a/content/posts/010-surveillanceEtat.md b/content/posts/010-surveillanceEtat.md new file mode 100644 index 0000000..fc09550 --- /dev/null +++ b/content/posts/010-surveillanceEtat.md @@ -0,0 +1,69 @@ +--- +draft: false +date: 2020-03-27T13:34:40+01:00 +title: "Surveillance généralisée?" +description: "En partenariat avec Swisscom, le gouvernement commence à espionner la population..." +images: [] +tags: ["Surveillance", "Vie privée"] +categories: ["Surveillance"] +externalLink: "" +series: [] +--- + +Vous n'avez peut-être pas encore vu passer l'information mais apparemment, +suite à l'interdiction de se regrouper définie par l'article 7c de +l'ordonnance 2 COVID-19, +la Confédération a demandé à Swisscom de surveiller les zones d'un +hectare comptant plus de vingt téléphone mobiles à l'intérieur. +Le but est de savoir si la population respecte ou non +l'interdiction de rassemblements. + +Sur le journal Le Temps, Anouch Seydtaghia décrit très bien la +situation actuelle dans +[un article du mercredi 25 mars](https://www.letemps.ch/economie/swisscom-aidera-confederation-detecter-attroupements-via-telephones]). + +## Le début de la surveillance généralisée? +Alors bien évidemment, vous pourrez vous dire que de toute façon vous +n'avez rien à cacher, d'autant plus en cette période de confinement, +et si cela peut aider à contenir cette pandémie, c'est une bonne idée. +Sauf qu'une fois de plus, +cela pose la question de la légitimité de cette surveillance. +De quel droit la Confédération nous impose un pistage généralisé, +sans nous avertir? + +Nous avons suffisamment d'exemples de dérives de ce genre de méthodes. +Personnellement je refuse d'être pisté en permanence et je refuse +que nous mettions en place une société de ce type. + +## Comment s'en protéger +La collaboration semble être uniquement entre Swisscom et la Confédération. +Évidemment, si vous êtes client chez M-Budget, vous êtes également ciblés, +ce dernier utilisant les antennes de Swisscom. + +Anouch Seydtaghia a écrit +[un article dans Le Temps](https://www.letemps.ch/economie/possible-dempecher-swisscom-partager-position-nest-facile) +qui explique comment éviter d'être suivi en permanence. +Malheureusement cet article ne parle pas de M-Budget. +Du coup, je vous explique. +Une fois connecté à votre compte, dans *Mon profil*, en bas de la page +vous verrez un encart *Vous avez le contrôle de vos données*. +Selon M-Budget, il suffit de s'assurer que les deux coches *Smart Data* +soient décochées.[^coche] + +## Conclusion + +Une fois de plus, le but n'est pas de céder à la paranoïa, +mais il serait rassurant d'avoir des communications de la part de notre +gouvernement lorsque de telles mesures sont prises, afin d'éviter +d'avoir l'impression de virer vers un état policier et de surveillance +généralisée. + +Si vous ne l'avez pas lu, ou vous ne vous en souvenez pas, +je vous conseille de prendre le temps pour (re)lire *1984*, de George Orwell. +Il décrit très bien une société vers laquelle nous ne voulons pas aller. + +Bonne suite de confinement à toustes. + + +[^coche]: Vous pouvez sans soucis désactiver les deux autres coches +pour éviter de communiquer pour de la publicité. From f78f0fc31e4b6e17200c65cdc1e582e40de46004 Mon Sep 17 00:00:00 2001 From: Gregory Trolliet Date: Fri, 3 Apr 2020 16:20:12 +0200 Subject: [PATCH 2/4] =?UTF-8?q?[POST]=20T=C3=A9l=C3=A9conf=C3=A9rence=20(p?= =?UTF-8?q?remier=20jet)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/011-teleconference.md | 364 +++++ static/images/011-bigbluebutton.png | Bin 0 -> 26590 bytes static/images/011-discord.svg | 18 + static/images/011-jitsi.svg | 650 ++++++++ static/images/011-mumble.svg | 2252 +++++++++++++++++++++++++++ static/images/011-nextcloud.svg | 103 ++ static/images/011-skype.svg | 1 + static/images/011-teamspeak.svg | 83 + static/images/011-zoom.svg | 1 + 9 files changed, 3472 insertions(+) create mode 100644 content/posts/011-teleconference.md create mode 100644 static/images/011-bigbluebutton.png create mode 100644 static/images/011-discord.svg create mode 100644 static/images/011-jitsi.svg create mode 100644 static/images/011-mumble.svg create mode 100644 static/images/011-nextcloud.svg create mode 100644 static/images/011-skype.svg create mode 100644 static/images/011-teamspeak.svg create mode 100644 static/images/011-zoom.svg diff --git a/content/posts/011-teleconference.md b/content/posts/011-teleconference.md new file mode 100644 index 0000000..b9a115a --- /dev/null +++ b/content/posts/011-teleconference.md @@ -0,0 +1,364 @@ +--- +draft: true +date: 2020-04-03T08:04:59+02:00 +title: "Le confinement et les outils de téléconférence" +description: "Aperçu des outils de téléconférence disponibles en cette période de confinement." +images: [] +tags: ["Informatique", "Visioconférence", "Téléconférence", "Audioconférence"] +categories: ["Informatique"] +externalLink: "" +series: [] +--- + +Pendant cette période de confinement obligatoire, +nous devons apprendre à nous réorganiser. +Que cela soit pour un emploi rémunéré, +pour du bénévolat ou encore simplement pour partager des moments +de plaisir avec d'autres personnes, +la communication textuelle, audio et vidéo est un outil nécessaire. + +Il convient à chaque groupement de personnes de définir ses besoins, +mais ensuite quelles sont les différences entre les logiciels disponibles? + + +# Les outils de communication textuelle +Les outils uniquement textuels sont les moins attrayants pour la majorité +des utilisateurs et utilisatrices, +mais il ne faut pas oublier que ce sont des outils extrêmement performants +et qui ont fait leurs preuves depuis de nombreuses années. + +Ce mode de communication nécessiterait un article précis. +Pour ne pas encombrer celui-ci, je vais uniquement vous conseiller +de vous tourner vers +[IRC](https://fr.wikipedia.org/wiki/Internet_Relay_Chat "Internet Relay Chat"). + +# Les outils de communication audio +En général, les outils sont cumulatifs. +La grande majorité des logiciels de communication audio contiennent un +logiciel de communication textuelle, communément appelé un tchat. + +Je choisis d'exclure **WhatsApp** car il peut faire des appels vidéo de groupe +mais limité à quatre personnes uniquement. + +## Skype + + + +[Skype][urlSkype] est le logiciel de téléphonie par Internet de Microsoft. +Il permet de faire des appels de groupe vocaux jusqu'à 25 personnes. + +Il est utilisable sur la majorité des systèmes d'exploitation mais souffre +apparemment de problèmes de latence ainsi que d'une charge importante +pour le processeur. +Il nécessite également à chacun de créer un compte sur la plateforme +de Microsoft. + +## Mumble / TeamSpeak + + + +Ces deux logiciels, [Mumble][urlMumble] et [TeamSpeak][urlTS], +nécessitent la configuration d'un serveur, +ce qui implique quelques connaissances informatiques +et de posséder / louer un serveur. +En revanche, l'utilisation est très simple, il suffit d'installer le +client et de se connecter au serveur. +Il est ensuite possible de créer autant d'espaces de discussion que vous +voulez et n'est que limité par la configuration que vous aurez choisie. +Bien évidemment, ces logiciels sont utilisables sur tous les systèmes +d'exploitation principaux. +Leur utilisation a été éprouvée, +*Mumble* datant de 2005 et *Teamspeak* de 2001. + +Après avoir utilisé les deux logiciels, +je conseille d'utiliser *Mumble* qui est un logiciel libre. +Il permet également de s'authentifier avec un certificat ce qui est pratique +et sécurisé. + +Ces deux logiciens ne souffrent d'aucun problème de latence +et implique une très faible charge sur votre processeur. + +Ils sont également très facilement configurables, +que ce soit pour régler la gestion de son propre micro ou +augmenter le volume d'un protagoniste. +Il y a également moyen de définir des droits et donc d'avoir de la modération, +ce qui n'est pas un luxe lors de discussions à plusieurs. + +## Discord + + + +[Discord][urlDiscord] est le petit nouveau, sa première version datant de 2015. + +Il est fortement orienté gaming et se comporte de manière semblable à un +réseau social, avec une gestion de contacts +et leur suivi (de leur présence en ligne ou de leur activité). + +Il a l'avantage d'avoir, en plus d'une application dédiée, +une application web qui fonctionne donc +sans rien installer sur sa propre machine. +Cette dernière étant cependant moins pratique d'utilisation et +moins configurable. +*Discord* ne souffre apparemment d'aucun problème de latence. + +Pour l'utiliser, il suffit de se créer un compte sur leur site et +de se connecter avec ses amis, +c'est une solution extrêmement rapide à mettre en place. +Cela peut être déconseillé dans le cadre où vous désirez communiquer +avec des personnes qui se trouvent en dehors de votre cercle d'amis. + +# Les outils de communication vidéo +Comme précisé précédemment, si l'outil fait de la vidéo, +il comporte un support de l'audio et du texte. + +Cette fois, je choisis d'exclure **Skype** car il peut faire des appels vidéo +de groupe mais limité à dix personnes et également limité dans la durée. + +Les fonctionnalités que je juge nécessaires à ce genre d'applications sont +les suivantes: + +* la discussion audio et vidéo, +* un tchat textuel, +* la possibilité de partager son écran, ou des parties de son écran, +* permettre à chacun·e de demander la parole, +* avoir un système de modération. + + +Je rajoute des fonctionnalités qui me paraissent utiles: + +* faire des sondages, +* avoir un tableau blanc, +* diffuser une présentation (et écrire dessus), +* sécuriser l'accès par un mot de passe. + + +Je n'ai pas connaissance de services ne nécessitant pas de passer +par un serveur pour héberger le système. +Dans ce domaine il y a vraiment énormément de choix, +selon la [page de comparatif Wikipedia][wikiCompa], +il y a une trentaine de prétendants. +Je vais donc m'attarder uniquement sur les quatre logiciels suivants: + +* [Nextcloud Talk](#nextcloud-talk) +* [Zoom](#zoom) +* [Jitsi Meet](#jitsi-meet) +* [BigBlueButton](#bigbluebutton) + +## Nextcloud Talk + + + +[*Nextcloud*][urlNextcloud] est un logiciel libre de site d'hébergement de fichiers. +À la base utilisé uniquement pour cela, +en concurrence à des solutions privées comme *Dropbox*, +il contient maintenant plusieurs plugins très intéressant, +dont celui en rapport avec ce billet, *Nextcloud Talk*. +Le principal avantage de cette option est que si vous avez déjà accès à +un serveur Nextcloud, l'installation du plugin est sans encombres, +il suffit de l'activer et cela fonctionne. +Aucun besoin de configuration, on peut directement l'utiliser. + +C'est le logiciel le plus basique des quatre. +Il ne remplit pas tout à fait les conditions que j'ai énoncées, +il lui manque un système de demande de parole. +Dans le cas d'une utilisation avec une équipe qui a l'habitude de travailler +ensemble, cela n'est pas forcément un problème, +mais dans le cas d'un cours / formation, +les soucis risquent d'arriver rapidement. + +Il est également possible d'avoir une sécurité par mot de passe ou +d'ouvrir le salon uniquement sur invitation. + +En dehors de cela, il fonctionne a merveille. + +## Zoom + + + +[Zoom][urlZoom] est un logiciel de téléconférence complet. +Il répond à tous les critères indispensables que j'ai énuméré et permet +en plus de faire des sondages. +En revanche il ne me semble pas permettre de partager une présentation ou +un tableau blanc. + +Avec l'utilisation d'un compte gratuit, +la durée des communications est limitée à 40 minutes +et à 100 participant·e·s[^limitPart]. +Il est bien évidemment possible de payer pour augmenter ces limites. + + +## Jitsi Meet + + + +[*Jitsi*][urlJitsi] est également un logiciel dédié à la téléconférence, +mais complètement libre cette fois. +Comme *Zoom*, il remplit parfaitement les critères indispensables. +Il permet également de sécuriser l'accès par un mot de passe. + +Il est possible de créer une conférence sur le site officiel directement, +mais également, comme tout bon logiciel libre, +d'installer son instance sur son propre serveur. +[Framasoft][framasoft] propose également son instance, [Framatalk][framatalk]. + +## BigBlueButton + + + +[*BigBlueButton*][urlBBB] est également un logiciel libre. +C'est le logiciel de téléconférence le plus abouti que je connaisse. +Il permet de faire tout ce que j'ai listé, indispensable ou non. + +En créant un compte sur leur site, +il y a moyen de tester avec des réunions non-enregistrables et +limitées à une heure. +Mais comme c'est un logiciel libre, +il est possible d'installer son instance perso sur son propre serveur, +et donc de contrôler complètement les capacités. + + +# Notre empreinte numérique +Une chose à garder à l'esprit est le volume de donnée nécessaire +pour chacune des technologies. +Sans rentrer dans les détails, voici le poids de différents formats[^poids]: + +* 1000 mots au format texte[^lipsum], 6.7 Ko +* 1 minute de format audio avec une compression destructrice[^destr], 1 Mo +* 1 minute de format audio avec une compression non-destructrice[^ndestr], 4 Mo +* 1 minute de format audio sans compression, 8 Mo +* 1 minute de format vidéo DVD avec un bon algo de compression, 10 Mo +* 1 minute de format vidéo HD avec un bon algo de compression, 16 Mo + +Une comparaison que j'aime bien, +la totalité des articles anglophones de Wikipedia représente environ 15 Go, +soit l'équivalent d'une dizaine d'heures de vidéos HD sur votre plateforme +de vidéo préférée. +Même en conservant l'historique de modification et les discussions +le poids de l'encyclopédie est +seulement multiplié par dix[^comparaison]. + +# La confidentialité et la vie privée +Lors de l'utilisation de n'importe quelle plateforme, +il est important de savoir ce que cette dernière va pouvoir récupérer +comme informations et ce qu'elle en fera. +C'est une chose assez aisée lors de l'utilisation de [logiciels libres][urlLL], +mais c'est vite compliqué de savoir ce que fait un logiciel dont le code +n'est pas connu. +Je ne vais pas m'étendre ici sur les risques encourus, +mais il est toujours bon de savoir qu'il y a des risques de fuites +d'informations privées ou confidentielles lors de l'utilisation de chaque +logiciel et que les logiciels libres sont les seuls qui permettent +d'avoir des garanties à ce niveau-là. +Pour les autres, la parole des développeurs et des développeuses est la +seule chose sur laquelle nous pouvons nous appuyer. + +Il y a un autre point sur lequel porter son attention c'est la +confiance que nous mettons dans le serveur qui héberge notre service. +Par exemple, si j'héberge mon serveur *Mumble* sur une machine qui m'appartient, +ou appartient à une association / société que je connais +et à qui je fais confiance, +j'ai de bonnes raisons de ne pas m'inquiéter. +En revanche, le même serveur *Mumble* hébergé sur la machine de quelqu'un +en qui je n'ai pas confiance peut être utilisé pour espionner ses utilisateurs +et utilisatrices. + +C'est pourquoi je conseille **toujours** d'utiliser des logiciels libres +et hébergés chez des personnes de confiance. + +# La charge sur les serveurs +Comme tous les services, +la téléconférence n'est pas gratuite en termes de consommation de ressources +informatique. +Les gros serveurs (Google, Microsoft, Zoom, etc.) ont les épaules pour +tenir des centaines de salons, des milliers d'utilisateurs et d'utilisatrices. +Ce n'est pas le cas de tout le monde et ça a un coût. +Ce coût est répercuté sur les utilisateurs et les utilisatrices, +soit par des abonnements (la bonne manière), +soit par de la pub (la manière *meh*), +soit en vendant des informations personnelles (la mauvaise manière). + +Les associations comme *Framasoft* ne peuvent pas absorber la charge +générée par des crises comme celle du COVID-19, +c'est pourquoi il est important de monter ses propres instances, +de s'organiser en association, +de rémunérer correctement les fournisseurs. +Nous avons tendance à croire que tout est gratuit sur Internet, +c'est un mythe, il nous faut réapprendre à payer pour des services +que nous ne sommes pas capables de mettre en place. + +[^lipsum]: Générés par [Lorem Ipsum](https://www.lipsum.com), + une suite de mots sans signification utilisée pour calibrer une mise en page. +[^destr]: La compression destructrice est utilisée entre autres par les formats + *mp3* et *ogg*. Elle supprime une partie des informations jugées pas ou peu + pertinentes pour l'oreille humaine. +[^ndestr]: La compression non-destructrice ne supprime aucune information. + Dans le monde audio il y a les formats *flac* et *alac* par exemple. + Le format *zip* est un format non-destructeur, une fois l'archive + décompressée, tous les documents s'y trouvant sont retrouvés intacts. +[^poids]: Les outils de compression sont extrêmement dépendants du fichier + source, les poids donnés ici sont uniquement indicatifs. +[^comparaison]: On peut voir ici également l'effet de la compression + sur du texte, la totalité de Wikipedia, + articles et suivi des modifications inclus, + en date du 2 juin 2015, représentait environ 100 Go alors + que la version non-compressée représente 10 To, à savoir 100 fois plus. + [Source Wikipedia][wikiSize] +[^limitPart]: La limitation du nombre de participant·e·s me paraît largement + suffisante. Le but est d'avoir des interactions, à plus de 100 personnes + cela commence à devenir difficile. + +[urlSkype]: https://www.skype.com/ "Website de Skype" +[urlMumble]: https://www.mumble.com/ "Website de Mumble" +[urlTS]: https://teamspeak.com/ "Website de TeamSpeak" +[urlDiscord]: https://discordapp.com/ "Website de Discord" +[urlZoom]: https://www.zoom.us/ "Website de Zoom" +[urlJitsi]: https://jitsi.org/ "Website de Jitsi" +[urlBBB]: https://bigbluebutton.org/ "Website de BigBlueButton" +[urlNextcloud]: https://nextcloud.com/ "Website de Nextcloud" +[urlLL]: https://fr.wikipedia.org/wiki/Logiciel_libre + "Wikipedia - Logiciel libre" +[framasoft]: https://framasoft.org "Site de Framasoft" +[framatalk]: https://framatalk.org "Site de Framatalk" + +[wikiSize]: https://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia#Size_of_the_English_Wikipedia_database + "[EN]La taille de Wikipedia" +[wikiCompa]: https://en.wikipedia.org/wiki/Comparison_of_web_conferencing_software + "[EN]Page de comparatif des logiciels de conférence web Wikipedia" + +[skype]: /images/011-skype.svg "Logo de Skype" +[mumble]: /images/011-mumble.svg "Logo de Mumble" +[ts]: /images/011-teamspeak.svg "Logo de TeamSpeak" +[discord]: /images/011-discord.svg "Logo de Discord" +[zoom]: /images/011-zoom.svg "Logo de Zoom" +[jitsi]: /images/011-jitsi.svg "Logo de Jitsi" +[bbb]: /images/011-bigbluebutton.png "Logo de BigBlueButton" +[nextcloud]: /images/011-nextcloud.svg "Logo de Nextcloud" diff --git a/static/images/011-bigbluebutton.png b/static/images/011-bigbluebutton.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ea9a92556b947de2308ecee751435b048d6228 GIT binary patch literal 26590 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 literal 0 HcmV?d00001 diff --git a/static/images/011-discord.svg b/static/images/011-discord.svg new file mode 100644 index 0000000..882ac63 --- /dev/null +++ b/static/images/011-discord.svg @@ -0,0 +1,18 @@ + + + + + + + diff --git a/static/images/011-jitsi.svg b/static/images/011-jitsi.svg new file mode 100644 index 0000000..5a3526a --- /dev/null +++ b/static/images/011-jitsi.svg @@ -0,0 +1,650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/011-mumble.svg b/static/images/011-mumble.svg new file mode 100644 index 0000000..9414a0a --- /dev/null +++ b/static/images/011-mumble.svg @@ -0,0 +1,2252 @@ + + + + + Mumble logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Mumble logo + 2009.08.17 + + + Martin Skilnand + + + + + Martin Skilnand + + + + + Mumble team + + + mumble.svg + git://mumble.git.sourceforge.net/gitroot/mumble + Logo for voice chat program mumble + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/011-nextcloud.svg b/static/images/011-nextcloud.svg new file mode 100644 index 0000000..628c953 --- /dev/null +++ b/static/images/011-nextcloud.svg @@ -0,0 +1,103 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/static/images/011-skype.svg b/static/images/011-skype.svg new file mode 100644 index 0000000..4a6dc0d --- /dev/null +++ b/static/images/011-skype.svg @@ -0,0 +1 @@ +Skype_64x \ No newline at end of file diff --git a/static/images/011-teamspeak.svg b/static/images/011-teamspeak.svg new file mode 100644 index 0000000..39d6497 --- /dev/null +++ b/static/images/011-teamspeak.svg @@ -0,0 +1,83 @@ + + + +image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/static/images/011-zoom.svg b/static/images/011-zoom.svg new file mode 100644 index 0000000..6ccaf3f --- /dev/null +++ b/static/images/011-zoom.svg @@ -0,0 +1 @@ + \ No newline at end of file From aea62d5fca068293350931f34e95808cbe284053 Mon Sep 17 00:00:00 2001 From: Gregory Trolliet Date: Fri, 3 Apr 2020 16:21:04 +0200 Subject: [PATCH 3/4] Add direct html for the new goldmark renderer --- config.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config.toml b/config.toml index 6575c2e..0c5950c 100644 --- a/config.toml +++ b/config.toml @@ -16,6 +16,12 @@ pygmentscodefencesguesssyntax = true footnoteReturnLinkContents = "↩" disqusShortname = "yourdiscussshortname" +[markup] + # defaultMarkdownHandler = "blackfriday" + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + [params] author = "Gregory Trolliet" From bc23feb52f3bb35dbf116004974d6346affdd02f Mon Sep 17 00:00:00 2001 From: Gregory Trolliet Date: Fri, 3 Apr 2020 16:21:22 +0200 Subject: [PATCH 4/4] Add a class for small logo / images --- static/own-style.css | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/static/own-style.css b/static/own-style.css index 48e955a..49ea445 100644 --- a/static/own-style.css +++ b/static/own-style.css @@ -8,3 +8,14 @@ body { .tags { display: inline-block; } + +.logo { + display: inline-block; +} +.logo>p { + margin: 0; +} +.logo>p>img { + width: 100px; + vertical-align: bottom; +}