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.
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.
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.
Voici comment l’installer ainsi que ses dépendances sur Foilen Cloud.
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
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:
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:
(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
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.
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:
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.
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:
Actif | ID | Valeur |
Oui | 1 | aaa |
Oui | 2 | bbb |
Oui | 3 | ccc |
Oui | 4 | ddd |
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:
Actif | ID | Valeur |
Oui | 1 | aaa |
Non | 2 | bbb |
Oui | 3 | ccc |
Oui | 4 | ddd |
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:
Actif | ID | Valeur |
Oui | 1 | aaa |
Oui | 5 | eee |
Oui | 3 | ccc |
Oui | 4 | ddd |
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:
Le bout théorique est maintenant terminé. Voici les différentes commandes à exécuter selon votre base de données:
Base de données | Concept / Commande | Documentation |
PostgreSQL | Vacuum | https://www.postgresql.org/docs/current/sql-vacuum.html |
Greenplum (utilise PosgreSQL) | Vacuum | https://gpdb.docs.pivotal.io/6-0/ref_guide/sql_commands/VACUUM.html |
MySQL/MariaDB | Optimize table | https://dev.mysql.com/doc/refman/5.7/en/optimize-table.html https://mariadb.com/kb/en/library/optimize-table/ |
MongoDB | Compact | https://docs.mongodb.com/manual/reference/command/compact/ |
Microsoft SQL | sp_clean_db_free_space | https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-clean-db-free-space-transact-sql?view=sql-server-ver15 |
H2 | Shutdown compact | http://www.h2database.com/html/features.html#compacting |
DB2 | Reclaim | https://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:
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: