Nouvelle du 3 février 2021

Bintray vient d’annoncer que leur service va fermer. À partir du 31 mars 2021, il ne sera plus possible de publier de nouvelles versions de nos librairies Java sur Bintray et aussi sur JCenter. Leur but est de fermer JCenter le 1er février 2022.

En quoi est-ce un problème?

Avant que JCenter existe, l’endroit par excellence où publier les librairies en sources libres était Maven Central. Par contre, pour y arriver, il fallait se créer un certificat pour signer les fichiers JAR, se créer un compte et configurer tous nos projets pour avoir toutes les métadonnées utiles et signer les artéfacts. C’était quand même lourd comme processus d’entrée, mais une fois fait, c’est ensuite simple de continuer à utiliser.

Quand Bintray est arrivé avec son JCenter, son utilisation était beaucoup plus simplifiée. Il suffisait de créer un compte, d’utiliser leur extension Gradle et de publier les fichiers. Aucune signature électronique n’était requise. C’était tellement merveilleux que beaucoup de projets ont utilisé JCenter comme endroit où publier leur projet, mais aussi d’où télécharger les dépendances puisque JCenter copie aussi ce qui provient de Maven Central. Par exemple, un nouveau projet sur Android Studio utilise JCenter par défaut.

Solution

Tout « simplement » migrer à Maven Central. Je vais essayer de rendre cela plus simple en vous montrant les étapes dans la vidéo ci-haut. Les instructions officielles en anglais sont disponibles ici.

  • Créer un compte Jira sur Sonatype (00:08)
  • Créer un ticket pour le « groupe » Maven (00:40)
  • Prouver que nous possédons le « groupe » (03:20)
  • Créer une clé et un certificat pour signer (05:05)
    • gpg –gen-key (05:33)
    • gpg –list-keys (06:23)
    • gpg –export-secret-keys > ~/.gnupg/secring.gpg (06:32)
    • gpg –keyserver hkp://pool.sks-keyservers.net –send-keys XXXXXX (07:19)
    • gpg –send-keys XXXXXX (07:55)
  • Créer ~/.gradle/gradle.properties (08:27)
    • gpg –list-keys –keyid-format short (09:29)
  • Modifier le fichier « build.gradle » (11:21)
  • Créer une version et la téléverser sur OSSRH (20:30)
  • Fermer et déployer
    • https://oss.sonatype.org/#stagingRepositories (21:11)
    • Vérifier les fichiers (21:41)
    • Cocher et fermer (22:15)
    • Cocher et « Release » (22:44)
    • https://repo1.maven.org/maven2/ (23:27)

Voici comment l’installer ainsi que ses dépendances sur Foilen Cloud.

  • Toute la documentation suivie dans cette vidéo est disponible sur https://cloud.foilen.com/fr/recipe/nextcloud/
  • Contenu de la vidéo (00:00)
  • Se connecter sur https://infra.foilen.com/ (00:38)
  • Les ressources déjà présentes (01:02)
  • Créer la base de données (01:26)
  • Créer le site PHP (03:33)
  • Installer les fichiers de Nextcloud (11:04)
  • Installer Nextcloud (formulaire) (13:34)
  • Page d’accueil (15:02)
  • Ajouter le cron job pour les tâches de fond (15:32)
  • Les configurations suggérées (23:04)
  • Introduction (00:00)
  • Ajouter un utilisateur (00:48)
  • Déconnecter et essayer le nouvel utilisateur (01:53)
  • Introduction (00:00)
  • Ouvrir l’application « fichiers » (00:35)
  • Ouvrir des fichiers dans le navigateur (ex: vidéo et PDF) (00:50)
  • Effacer des fichiers (01:15)
  • Voir les fichiers supprimés (01:33)
  • Créer et éditer un fichier texte (01:53)
  • Partager un fichier (02:53)
    • Avec d’autres utilisateurs (03:12)
    • Permissions d’écriture (03:28)
    • Permission de repartager (03:40)
    • Expiration du partage (03:56)
    • Avec un lien public (04:30)
    • Mettre un mot de passe (05:09)
    • Voir ce qu’un utilisateur externe voit (05:46)
  • Partager un répertoire (06:09)
    • Partage spécial en tant que dépôt de fichiers (envoi uniquement) (06:24)
      • Essayer d’envoyer des fichiers (07:29)
      • Avec le même nom (08:05)

Motivations (00:00)

Que ce soit pour offrir un service de recherche de points d’intérêts dans un certain radius, pour savoir quel serveur est le plus rapproché physiquement d’un utilisateur ou pour trouver le chemin le plus proche, il y a plusieurs raisons de vouloir calculer la distance entre deux points sur la Terre.

(00:50) Pour ce faire, chaque endroit peut être précisément positionné avec deux angles: la latitude (de -90 à 90 degrés) et la longitude (-180 à 180 degrés). https://fr.wikipedia.org/wiki/Coordonn%C3%A9es_g%C3%A9ographiques

Les difficultés

La principale difficulté est que la Terre est ronde et nous sommes habitués de la voir sur une carte. Il y a plusieurs projections plus ou moins connues:

(05:08) Alors, si nous voulons savoir la distance entre le Canada et la Russie, il faut vérifier le chemin le plus court. Est-ce:

  • De gauche à droite
  • Faire une boucle vers la gauche pour se rendre à droite
  • Passer par l’Arctique

Le calcul (05:53)

La Terre peut être approximée par une sphère (c’est déjà mieux que si c’était un ellipsoïde) alors le principe est:

  • (06:16) de trouver le grand cercle qui passe par les deux points,
  • (06:45) trouver l’angle entre ceux deux points
  • (07:03) et de mesurer l’arc sachant que le rayon de la Terre est de 6371km.

(07:14) Il y a la formule de haversine qui s’occupe de cela en utilisant les latitudes et longitudes des deux points. https://fr.wikipedia.org/wiki/Formule_de_haversine

Les librairies (07:36)

  • Créer une conférence (00:30)
  • Donner les permissions au navigateur (01:26)
  • Choisir les paramètres d’entrées (avec ou sans micro/caméra) (02:00)
  • L’interface (02:33)
  • Inviter des gens (02:43)
  • Joindre une conférence (03:21)
  • Mosaïque (04:04)
  • Mettre le micro en silencieux et fermer la caméra (04:32)
  • Partager
    • l’écran ou application (04:53)
      • arrêter de partager l’écran (06:20)
    • une vidéo sur youtube (06:27)
      • arrêter de partager la vidéo (08:18)
  • Clavardage
    • Public (08:37)
    • Privé (09:22)
  • Sécurité
    • Lobby (10:14)
    • Mot de passe (11:28)
  • Gestion des utilisateurs
    • Couper tous les micros (12:45)
    • Couper le micro d’une seule personne (14:14)
    • Lever la main (14:34)
    • Éjecter des utilisateurs (15:20)
  • Quitter (15:45)

  • Joindre une vidéoconférence existante pour la première fois (00:00)
    • ou télécharger pour Android
    • ou télécharger pour Apple
    • installation du logiciel (00:26)
    • joindre quand installé (00:52)
    • donner les permissions (00:59)
  • contrôles durant une conférence
    • choisir la personne à voir (01:23)
    • voir tout le monde (mosaïque) (01:31)
    • pour couper notre micro et caméra (02:02)
    • clavardage (02:14)
    • lever la main (02:41)
    • activer le lobby (02:44)
    • partager l’écran (02:46)
    • quitter la conférence (03:03)
  • Créer une nouvelle vidéoconférence (03:14)
  • Télécharger sur https://handbrake.fr/ (00:00)
  • Démarrer l’installateur (00:17)
  • Démarrer l’application (00:48)
  • Modifier la langue (00:58)
  • Download on https://handbrake.fr/ (00:00)
  • Start the installer (00:14)
  • Start the application (00:50)
  • Change the language (00:55)
  • Open a video (00:00)
  • View video information (00:21)
  • Choose a starting configuration (00:40)
  • Choose file format (01:12)
  • Adjust the dimensions if necessary (example: remove the black bands) (01:24)
  • Choose video codec (02:21)
  • Choose audio tracks (03:33)
  • Choose subtitle tracks (04:20)
  • The chapters (04:37)
  • Choose where to save it (04:45)
  • Queue or encode now (04:59)
  • Ouvrir une vidéo (00:00)
  • Voir les informations de la vidéo (00:13)
  • Raisons pour changer le format (00:30)
    • Changer la qualité
    • Changer la taille du fichier
  • Choisir une configuration de départ (00:53)
  • Choisir le format de fichier (01:33)
  • Ajuster les dimensions si nécessaire (exemple: enlever les bandes noires) (01:48)
  • Choisir le codec vidéo (02:26)
  • Choisir les pistes audio (03:13)
  • Choisir les pistes de sous-titres (03:46)
  • Les chapitres (04:00)
  • Choisir oũ l’enregistrer (04:16)
  • Mettre en file ou l’encoder tout de suite (04:30)
  • Trouver le lien vers l’installateur à partir de l’interface web (00:12)
  • Télécharger l’installateur https://nextcloud.com/install/#install-clients (00:38)
  • Ouvrir l’installateur et l’installer (00:51)
  • Démarrer le logiciel (01:10)
  • Se connecter sur notre fournisseur (01:23)
  • Choisir quoi synchroniser (02:03)
  • Choisir où synchroniser (02:34)
  • Démarrer la synchronisation initiale (03:04)
  • Regarder le répertoire (03:22)
  • Créer un fichier dans Windows (03:51)
  • Le voir dans le navigateur (04:05)
  • Voir les dernières modifications (04:21)
  • Partager à partir de l’application (04:25)
  • Les liens rapides (04:40)
  • Aller dans un compte administrateur (00:08)
  • Passer par les notifications (00:12)
  • Mettre à jour en choisissant une à la fois (00:24)
  • Passer par la section d’applications (00:37)
  • Tout mettre à jour (00:55)
  • Connexion (00:07)
  • Machine – Graphics (01:01)
  • Extension – Pour créer des ressources (01:24)
  • Resources – Pour lister les ressources (02:38)

Pour obtenir accès à l’application web libre-service (Foilen Infra) pour gérer vos ressources et machines dédiées, vous pouvez aisément créer un nouveau compte et demander l’accès.

  • Instructions sur https://cloud.foilen.com/fr/fcloud/embarquer/
  • Créer et accéder à votre compte (00:00)
  • Demander les permissions en créant un ticket (01:37)
  • Accéder au compte une fois les permissions reçues (02:39)
  • Exemple de création de ressources (03:05)

Pour avoir un site web ou pour facilement accéder à des ressources web, il est normal de créer un nom de domaine personnalisé pour votre entreprise ou votre projet.

Par contre, quand vous voulez simplement tester quelque chose rapidement ou créer des applications personnelles, vous pouvez utiliser n’importe quel sous-domaine de user.foilen.org .

Par exemple:

  • Directement:
    • ventrillo.user.foilen.org
  • Avec un sous-domaine personnel:
    • ventrillo.simon.user.foilen.org
    • jenkins.simon.user.foilen.org

Peu importe le sous-domaine ou sous-sous domaine, une fois créé par vous, personne d’autre ne pourra l’utiliser tant que vous l’utilisez. Ainsi, dans le second exemple, personne d’autre ne peut créer des sous-domaines comme xxxx.simon.user.foilen.org .

Pour utiliser un nom de domaine dans Foilen Cloud, il faut d’abord le créer chez un registraire et ensuite le faire utiliser les serveurs DNS de Foilen.

  • Instructions sur https://cloud.foilen.com/fr/fcloud/serveur-dns/
  • Acheter un nom de domaine chez un registraire (00:50)
  • Changer le serveur DNS (02:56)
  • Vérifier le WHOIS (04:41)
  • Créer une redirection d’URL pour tester (05:58)
  • Tester la redirection (06:26)
  • Voir les instructions sur https://cloud.foilen.com/fr/fcloud/machine-dediee/
  • Créer le serveur dans DigitalOcean (01:20)
    • Choisir Ubuntu 16.04
  • Aller sur votre serveur en SSH (03:27)
  • Donner accès root à Foilen (04:00)
  • Créer la ressource Machine (05:12)
  • Amorcer la Machine (05:46)
  • Utiliser (09:20)

Toutes les bases de données qui persistent leurs données sur un disque dur se doivent de trouver la façon la plus efficace de le faire.

La façon la plus simple est de créer un répertoire par « table » et un fichier par « rangée », mais ce n’est pas vraiment la plus efficace lorsque nous avons des millions de fichiers à créer. De plus, chaque requête qui doit retourner quelques milliers de rangées devrait ouvrir des milliers de fichiers et les refermer.

C’est pourquoi, la majorité des bases de données vont tenter d’ouvrir le moins de fichiers possibles et créer leur propre structure interne. Dans le cas d’une base de données avec toutes les tailles maximales de colonnes connues d’avance, la structure interne aurait la même taille pour chaque rangée. S’il utilise un fichier par table, il devient facile de garder le fichier ouvert entre les requêtes et de sauter à des rangées précises puisqu’elle connaît la taille fixe à sauter. Lire et créer de nouvelles rangées est très facile dans ce cas.

Là où ça se corse, c’est lorsqu’il faut effacer des données. Prenons ce fichier avec une entrée par rangée:

ActifIDValeur
Oui1aaa
Oui2bbb
Oui3ccc
Oui4ddd

Si nous voulons effacer la dernière rangée (ID 4), il suffit de tronquer le fichier après l’entrée précédente (ID 3). Par contre, si nous voulons effacer la rangée avec le ID 2, il n’est pas possible de faire un trou dans le fichier. Les bases de données vont donc simplement modifier l’indicateur « Actif » et le fichier deviendrait:

ActifIDValeur
Oui1aaa
Non2bbb
Oui3ccc
Oui4ddd

Dans cet état, si quelqu’un demande de lister tous les ids de la table, il recevrait: 1,3,4. Tout va pour le mieux, mais nous avons un fichier qui est plus gros que désiré. La majorité du temps, cela n’est pas un problème puisque d’autres rangées seront éventuellement insérées et vont prendre sa place. Par exemple, si nous insérons le ID 5, le fichier serait ensuite comme suit:

ActifIDValeur
Oui1aaa
Oui5eee
Oui3ccc
Oui4ddd

L’espace est réutilisée et il n’y a pas de gaspillage. Le cas où cela devient un problème est lorsque le disque dur commence à être pleins, que nous savons que plusieurs rangées contiennent des données qui ne nous intéressent plus et que nous sommes prêt à les perdre (ou les sauvegarder ailleurs avant de les effacer). Si nous effaçons ces données, ensuite, nous ne voyons pas d’espace disque libéré et l’exercice devient futile. C’est pourquoi toutes les bases de données permettent de compacter ou nettoyer les tables.

Pour ce faire, il y a plusieurs algorithmes qui sont utilisées alors lisez bien la documentation et comprenez bien les limitations de chacune. Voici quelques exemples:

  • Récréer la table et effacer l’ancienne
    • + c’est un algorithme très simple à implémenter
    • – il faut beaucoup d’espace disque libre puisque cela copie toutes les bonnes données. L’espace n’est libéré qu’à la fin de la copie
    • – comme toutes les données sont copiées, c’est lent
    • – très fréquemment, c’est une opération qui bloque l’accès à la table jusqu’à la fin de cette opération
  • Remplir les trous et tronquer
    • Si nous prenons le tableau avec ID 2 d’inactif, la rangée ID 4 serait copiée par-dessus ID 2 et ensuite le fichier pourrait être tronquer après ID 3
    • + N’a pas besoin de beaucoup d’espace
    • + Pourrait être fait sans bloquer les autres opérations sur la table (à confirmer dans la documentation)
    • – l’algorithme est plus complexe et donc pourrait conduire à plus de bogues
    • – si le processus s’arrête en plein milieux, est-ce que l’état de la base de données est garantie d’être correct? (vérifier la documentation)

Le bout théorique est maintenant terminé. Voici les différentes commandes à exécuter selon votre base de données:

Base de donnéesConcept / CommandeDocumentation
PostgreSQLVacuumhttps://www.postgresql.org/docs/current/sql-vacuum.html
Greenplum (utilise PosgreSQL)Vacuumhttps://gpdb.docs.pivotal.io/6-0/ref_guide/sql_commands/VACUUM.html
MySQL/MariaDBOptimize tablehttps://dev.mysql.com/doc/refman/5.7/en/optimize-table.html
https://mariadb.com/kb/en/library/optimize-table/
MongoDBCompacthttps://docs.mongodb.com/manual/reference/command/compact/
Microsoft SQLsp_clean_db_free_spacehttps://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-clean-db-free-space-transact-sql?view=sql-server-ver15
H2Shutdown compacthttp://www.h2database.com/html/features.html#compacting
DB2Reclaimhttps://www.ibm.com/support/pages/how-reclaim-space-after-dropping-indexes-or-rows-db2-table

Quand vous désirez utiliser des applications qui utilisent internet tout en cachant votre adresse IP, vous pouvez utiliser un VPN qui va relayer toutes vos connexions ou utiliser un proxy SOCKS5 que vous pouvez configurer par application.
Les applications peuvent être:

  • votre navigateur
  • votre client BitTorrent
  • votre client IRC
  • etc

Si vous avez accès en SSH à des serveurs Linux, vous pouvez les utiliser sans rien installer de leur côté en utilisant le client Putty sur Windows.

Contenu de la vidéo:

  • Introduction (00:00)
  • Information du compte SSH sur linux (00:49)
  • Télécharger Putty https://putty.org (01:14)
  • Installer Putty (01:28)
  • Ouvrir Putty du menu démarrer (01:44)
  • Configurer Putty
    • Connections / Data (01:57)
    • SSH / Tunnels (02:09)
    • Sessions (02:33)
  • Démarrer le proxy dans Putty (03:03)
  • Firefox avant l’utilisation du proxy (03:49)
  • Configurer Firefox pour utiliser le proxy (04:03)
  • Firefox après l’utilisation du proxy (04:46)
  • Fermer le proxy (04:59)
  • Enlever le proxy de Firefox (05:14)