Java’s Garbage Collector is one of the key features in the Java environment. When you develop in Java, the objects you instantiate are allocated in the heap of the Java Virtual Machine. In Java you don’t have to think about how to allocate and deallocate objects in memory. For an object that is no longer used, the Garbage Collector finds them by deduction. Most people think GarbageCollector finds unused objects in the heap space memory and removes them, in fact it’s the active objects that are tracked, everything else is marked for garbage collection....
Foreign Function and Memory API (FFM)
With the JDK 22 and the JEP 424, I discovered a new feature : Foreign Function and Memory API (FFM). Before diving into, let me introduce the motivations and goals behind this. Java Platform offers a rich foundation of tools, libraries and drivers (JDBC, HTTP, NIO, sockets), but sometimes developers have to deal with resources outside the JVM. FFM was created to interoperate with code and data outside of the Java runtime....
JDK 22 - What’s up doctor ?
I actually discovered what’s new in JDK22 and how Java became more attractive day by day. I’d like to share a compilation of what I have discovered and tried with my short conclusion and point of view. Before you start, you can find the release note here: https://jdk.java.net/22/release-notes JEP 456: Unnamed Variables & Patterns Sometimes you need to declare variables without using it, for matching patterns or for specific contexts. With JEP 456, you can now use _ instead of declaring the variable....
Mongodb & Docker - Expériences & Authentification
Contexte Pré-requis : concepts de conteneurisation maitrisés. Déploiement d’un container mongodb et mongo-express pré-configuré avec docker-compose. Mongodb docker-compose version: '3' services: mongo: image: mongo environment: - MONGO_INITDB_ROOT_USERNAME=<USER> - MONGO_INITDB_ROOT_PASSWORD=<PASSWORD> - MONGO_INITDB_DATABASE=test volumes: - ./etc/mongo-volume:/data/db - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro ports: - "27017:27017" Description du conteneur mongo Basé sur l’image mongo Descriptions des variables d’environnement Création de volumes pour le partage de fichiers Configuration des flux (ports) ⚠️ Ne pas oublier de modifier les valeurs USER et PASSWORD...
Kubernetes Commands - Toolbox
Collection de commandes et tips pour s’en sortir dans kubernetes Déploiment manuel ⛔️ Ne jamais, jamais, jamais déployer a la main ⛔️ Utiliser : kubectl apply -f Investigations & debug Quelques commande pour s’en sortir, quand ca va vraiment pas. kubectl logs <podid> kubectl describe pod <podid> kubectl describe deployer <deploymentid> kubectl describe service <serviceid> kubectl describe ingress <ingressid> kubectl get events kubectl top kubectl top <pod_name> logs tail -f /var/log/messages systemctl status kubelet journalctl -xe System Alias system Retourner toutes les ressources avec tous les namespaces...
OpenSSL Toolbox
https://raymii.org/s/articles/OpenSSL_manually_verify_a_certificate_against_a_CRL.html Verify SSL Certificate Get certificate openssl s_client -showcerts -connect <domain_name>:443 Certificate part CSR (Certificate Signing Request) CSR is an encoded text that is given to a Certificate Authority when you apply for an SSL Certificate. It’s generaly generated on the server where the certificate will be instaled. It contains some informatiosn that will be included in the certificate such as the organization name, common name (domain name), locality, and country....
Mini cluster Kubernetes avec rancher (k3s)
Découverte K3S Suivi d’installation d’un cluster mini-kubernetes. Par curiosité je souhaite simuler des systèmes complexe. J’aimerais découvrir de nouveaux concepts et apprendre des choses par cet apprentissage. Ce que je partage ici n’est que des expérimentations, elles ne sont peut être pas poussées jusqu’au bout niviable en prod. Simplement des sujets que je souhaite débunker. Outils utilisés Multipass K3S Création des machines Pour commencer nous allons créer 3 machines : 1 principales et 2 replications a l’aide de la CLI multipass...
Construire un cluster de VM avec Multipass
Il existe une multitupde d’outils pour virutaliser des machines (VM). Aujourd’hui j’ai décidé pour mes atelier et mes expérience d’utiliser Multipass, un outil de la team Canonical. Multipass est un outil de construction de VMs sous ubuntu, je compte utiliser cet outil pour construire très rapidement un environnement de developpement. Lancer une instance multipass launch --name <VM_name> lister toutes les instance multipass list Arreter / démarrer une instance multipass stop <VM_name> multipass start <VM_name> Supprimer une instance Attention, lorsque vous supprimez une instance elle ne l’est pas réellement....
Legacy Code
Si vous travaillez avec des développeurs vous avez certainement entendu parler de legacy. Un projet fréquemment perçu comme quelque chose de mystique, opaque, mal conçu faisant souvent référence à une période douloureuse ravivant de vieilles douleurs du passé… Mais qu’en est t’il vraiment ? Qu’appelle on Legacy ou bien Legacy Code ? J’aimerais partager avec vous ma définition: ce qu’est un projet legacy, le code legacy et comment on a fait pour en arriver la....
Legacy Code
Si vous travaillez avec des développeurs vous avez certainement entendu parler de legacy. Un projet fréquemment perçu comme quelque chose de mystique, opaque, mal conçu faisant souvent référence à une période douloureuse ravivant de vieilles douleurs du passé… Mais qu’en est t’il vraiment ? Qu’appelle on Legacy ou bien Legacy Code ? J’aimerais partager avec vous ma définition: ce qu’est un projet legacy, le code legacy et comment on a fait pour en arriver la....