• Configure your sockets with URIs

    Everybody knows Uniform Resource Identifier (URI)1. As its name suggests, it’s a way to identify a resource (for instance a file or a phone number). It is often confused with Uniform Resource Locator (URL), which is actually a form of URI. A URL is a compact string representation for a resource available via the Internet2.

    Today I want to share with you the way I define another type of resources: network sockets.

    Read more...
  • JWT scope claim compression using a bitmap

    JSON Web Tokens (JWT) are often used in stateless authentication flows. Thanks to the signature, the server does not need anything else to verify the token validity. The scope claim (RFC8693 section 4.2) contains a space-separated list of scopes associated with the token. The server can use it to check the application permissions. Although this claim can quickly become heavy. The more scopes you have, the bigger your token is! But JWT are meant to be a compact token format

    Today I’m proud to present you an idea to compress scope list into a bitmap where one bit represents one scope.

    Read more...
  • Manage multiple identities with Git

    I work on many different Git repositories. For each of them I have a particular email address and sometimes a GPG key. Even the Git flow might be different; always --no-ff (or not), pull --rebase instead of merge,…

    Read more...
  • I hate capital letters!

    I hate capital letters! At least in directory and file names. By default your home directory has a few directories with first capital letter (Documents, Music, Downloads,…). Ok, it looks nice! But I always make mistake when I type capital letter in my terminal. Fortunately, all of this is configurable…

    Read more...
  • Cascade routing with AIOHTTP

    A common routing use-case is to share a route URL pattern for multiple purposes. For instance GitHub is using github.com/<something> for both users and organizations. Indeed the user and organization pages are different. A way to implement this is using a fallback mechanism called by some of us cascade routing.

    Read more...
  • Open RXVT terminal in current directory

    Two years ago I switched from terminator to URXVT. This is now my day to day terminal emulator. URXVT is the unicode version of RXVT started long time ago by Rob Nation. Today I’ll show you how I fixed one of the very missing useful feature: open a new terminal in current working directory. By “current working directory” I mean “the working directory of the shell in the most recent focused terminal”.

    Read more...
  • Versioned FSM (Finite-State Machine) with Postgresql

    Inspired by Felix Geisendorfer blog post I implemented a database FSM (Finite-State Machine) with Postgresql. I brought some improvements to Felix’s implementation but before reading the following I recommend you to read carefully the original post.

    Read more...
  • Let's get cracking!

    It’s been a while I’m thinking to start a blog. It raised a lot of questions and I was not sure how/why/when to start. In the following lines I answer some of these questions and I explain how I’ll (try to) maintain this blog.

    Read more...