Skip to content

Blog

My Ubuntu Setup: From Barebones to a Productive Dev Environment

When I install a fresh Linux distribution like Ubuntu 24, I'm not just setting up a computer; I'm building a personal workspace. My goal is a clean, reliable, and portable development environment that can be replicated anywhere, from my local machine to a remote VPS.

A clean, minimalist desktop setup
Image generated using Google Gemini

This isn't just about a list of commands, it's a philosophy of intentionality. Every tool I choose, and every tool I leave behind, is a step toward a more efficient and less cluttered workflow.

This is my journey to a perfect setup, and it all starts with version control.

Python Type Checking Tools: mypy vs. pyright vs. pydantic vs. pandera vs. jaxtyping vs. check_shapes vs. typeguard

Introduction

Are you tired of runtime type errors that could have been caught earlier? Do you work with numerical computing, data science, or ML workflows where shape mismatches cause mysterious bugs?

python-code-carbon

The Python ecosystem offers a rich variety of type checking tools, from traditional static type checkers to modern runtime validation libraries and specialized shape checkers for scientific computing.

This comprehensive guide explores the landscape of Python type checking tools, helping you choose the right combination for your specific needs.

Guide pour utiliser NotebookLM

Guide pour utiliser NotebookLM : Simplifiez vos tâches et organisez vos informations

Bienvenue dans ce guide détaillé pour utiliser NotebookLM ! Que vous soyez un jeune étudiant, un professionnel expérimenté ou simplement curieux, ce guide vous aidera à maîtriser NotebookLM pour alléger vos tâches administratives, stocker et classer vos recherches, et bien plus encore...


Guide Perplexity AI and NotebookLM: Tutoriels pour Tous (part1)

Guide Perplexity AI : Tutoriels pour Tous

Bienvenue dans ce guide pas à pas pour utiliser Perplexity AI, pensé pour tous : jeunes, moins jeunes, débutants ou curieux. Chaque section propose des instructions simples, des icônes pour repérer les actions, et des indications pour insérer vos propres captures d’écran (pensez à ajouter des balises alt pour l’accessibilité).


1. Se connecter à son compte Perplexity

Page de connexion Perplexity

Git File and Commit Operations: Managing Changes Between States

Introduction

Ever stared at your repo, wondering why a “small” change just won’t commit or push?

GUI tools like GitHub Desktop or VSCode extensions are convenient—but they hide the magic. When things go sideways, or when you need to carefully craft commits, stage parts of files, or undo a “tiny mistake” that isn’t obvious, the GUI often leaves you helpless.

Full CLI Git is where you gain real control. It’s the difference between:

  • Clicking buttons blindly and hoping everything works
  • Understanding exactly where each change lives (Working Directory, Index, HEAD, Remote) and moving it precisely

Even minor mistakes—like accidentally staging a debug log or overwriting a feature—can snowball into hours of frustration. By mastering the CLI, you can fix problems before they become disasters, cherry-pick changes, or sculpt your commit history like a pro.

Think of this guide as your toolkit: practical commands, clear flows between Git states, and actionable tips to tame your repo—even when the “small” fixes aren’t so small after all.

Comprehensive Guide to SSH: Tunneling, File Transfers, and Key-Based Authentication

SSH (Secure Shell) is a powerful protocol used for secure communication between computers, offering a wide range of functionalities including secure remote access, file transfers, and key-based authentication.

In this guide, we'll cover various aspects of SSH, including:

  • Port tunneling for secure access to services like MySQL.
  • Secure file transfer using SFTP and SCP.
  • SSH agent forwarding and key-based authentication for enhanced security.
  • Dynamic port forwarding (SOCKS proxy) for secure browsing.

Database Management CLI: Equivalence in MySQL, PostgreSQL, and MongoDB

Introduction

Database management and querying are critical tasks for developers and database administrators. This guide explores syntax equivalences in MySQL, PostgreSQL, and MongoDB, enabling you to transition seamlessly between these systems using their command-line interfaces (CLI).

Understanding the corresponding syntaxes in each database system facilitates code portability and collaboration among developers and administrators across different platforms.

Numerical Analysis and Plotting: Equivalence in Python, R, MATLAB, and Scilab

Introduction

Numerical analysis and data visualization are fundamental aspects of scientific computing across various programming languages.

Ybc7289-bw

This guide explores syntax equivalences in Python, R, MATLAB, and Scilab, empowering you to transition seamlessly between these languages for numerical computations and plotting tasks.

Understanding the corresponding syntaxes in each language facilitates code portability and collaboration among researchers and developers across different platforms.

Generating API Documentation for Your Python Package with Sphinx-apidoc

Introduction

In this guide, we will explore how to generate API documentation for your Python package using Sphinx-apidoc. Effective documentation is crucial for understanding, maintaining, and collaborating on software projects. Sphinx-apidoc is a tool that automates the process of creating documentation from docstrings within your Python codebase. Let's dive into the steps required to set up and utilize this tool effectively.

Security Practices for Authentication: A Guide for Developers

Introduction

In the realm of digital security, authentication plays a critical role in safeguarding user data and system integrity. However, implementing robust authentication mechanisms is often a daunting task, fraught with potential vulnerabilities and pitfalls. This guide aims to shed light on common authentication practices, highlighting both their strengths and weaknesses, while providing insights into best practices for developers.