I started working as a professional web developer 10 years ago, and thought that the upcoming new year was a good moment to write a retrospective of these last 10 years, so that others could learn from my mistakes to avoid repeating them.

From 2010…

10 years ago, I was starting to work with the latest, bleeding-edge version of a well-known CMS, Drupal 6. I was coding entirely in PHP, with tiny bits of Javascript, but pretty much all of the web technologies were focused on server-side rendering.

I loved open source, and also loved the idea of modular CMS such as Drupal, where you could just install and configure a series of modules and get a complex website up & running with almost no coding. It did not mean that I did not like coding, but I just felt like the best code was “no code at all”, whenever it was possible. …


When you create a class in Typescript, you might need to perform some asynchronous operations in the constructor. For example, if you are creating a class to encapsulate some calls to a specific API, you might want to, in the constructor, authenticate to the API to get a fresh token that you will then be able to use in your API calls. Writing something like this:

async constructor (args) {
this.apiInstance = new Api(args);
await this.apiInstance.authenticate();
}

is very tempting, unfortunately, at the time I’m writing this article, asynchronous constructors are not supported in Typescript. …


Imagine the following scenario:

  1. User A requests resource 1 via a GET endpoint
  2. User B requests resource 1 via a GET endpoint
  3. User A makes changes on resource 1 and saves its changes via a PUT request
  4. User B makes changes on resource 1, on the same fields as user A, and saves its changes via a PUT request

Since users A and B both requested the same version of resource 1, you now have a problem, because the PUT request triggered by user B erased the changes made by user A, and chances are, user A is mad and wondering why his changes do not show up anymore, even though he swears that he did not forget to save. Does that scenario sound familiar? …


Le conseiller financier de votre banque vous a t-il déjà parlé d’un système financier ? A t-il, ne serait-ce qu’une seule fois, évoqué le mot « système » devant vous ? Probablement non. La raison n’en est probablement pas qu’il veut vous cacher quelque chose, mais plutôt que les formations qu’il a suivies sont bien plus destinées à la meilleure manière de vous vendre ses produits plutôt qu’à améliorer vos finances.

Il y a maintenant 3 ans, lorsque j’ai décidé de réellement prendre en main mes finances personnelles et commencé à lire sur le sujet, une image s’est formée dans ma tête, une image qui m’a beaucoup aidé durant ces années: vos finances personnelles sont une baignoire qui fuit !


Part of the series of articles about “Pragmatic decisions for your RESTful API”, this post talks about what your options are when you want to handle multiple languages in your API, and comes with a recommendation on which structure to use.

Language negotiation: your options

Option 1: language negotiation via the Accept-Language header

When a request comes with the Accept-Language header set to, for example, fr-FR, your API should respond with the requested resource, in French. If the Accept-Language header is set to en-US, the response should be in English etc…

GET /resource
Accept-Language: fr-FR
{
title: “Mon titre en Français”
}
GET /resource
Accept-Language: en-US
{
title: “My title in English”…

Lorsque votre compte bancaire est à découvert, vous perdez à la fois du temps (en gestion administrative) et de l’argent. Je vous propose dans cet article un système qui vous permettra de ne plus être à découvert, sans avoir à faire de budget ou encore à suivre votre compte bancaire régulièrement. La mise en place du système peut prendre un peu de temps, mais une fois en place, vous n’avez pratiquement plus rien à faire, tout se fait automatiquement sans que vous n’ayez quoi que ce soit, et vous réduirez alors beaucoup vos chances d’être à découvert.

Votre système actuel

Il y a de bonnes chances pour que votre mode de fonctionnement bancaire actuel ressemble à…


Il y a quelques semaines, un prospect me contacte pour la création d’un site web d’une nouvelle marque qu’il veut lancer. Rendez-vous fixé rapidement dans un café, puis prise de contact: chose qu’on ne m’avait jamais faite, le prospect me fait signer un accord de confidentialité ! Je ne révélerai donc bien entendu pas son idée dans cet article.

Mon prospect, appelons le Clément, cherche à créer une marque qui vendra des objets plutôt branchés. Il veut donc que je lui fasse un devis pour la création d’un site e-commerce afin de pouvoir vendre en ligne. Je lui laisse me parler de sa future marque, des idées de fonctionnalité pour son site web etc… Une fois que c’est à mon tour de parler, je lui pose alors une question plutôt insolite de la part d’un consultant créateur de sites web: “Êtes-vous sûr d’avoir besoin d’un site web ?” …


Dans un article précédent, je parlais des différentes solutions de gestion pour associations, que ce soit pour encaisser des inscriptions en ligne, gérer sa comptabilité ou encore gérer ses adhérents.

A juste titre, on m’a fait remarquer que je n’avais pas abordé le thème des logiciels open source, qui sont utilisés par beaucoup d’associations.

Plutôt que d’ajouter un simple paragraphe dans mon article précédent, j’ai préféré faire un article à part entière, car les logiciels open source sont selon moi un cas à part.

Logiciel libre ou open source ?

Je n’entrerai pas dans cet article dans le débat sur la différence entre un logiciel libre et un logiciel open source, et j’utiliserai dans la suite de l’article la terminologie “open source”. …


Image for post
Image for post

L’offre de logiciels de gestion pour association est extrêmement vaste, et il est bien difficile de choisir une solution dans ce panel très varié. Voici un article qui je l’espère vous aidera à faire votre choix.

Posez-vous les bonnes questions

Avant de commencer à partir à la recherche du logiciel miracle qui réglera tous vos problèmes, commencez par vous poser les bonnes questions.

Quels sont vos besoins réels ? Avez-vous besoin d’un logiciel essentiellement pour faire de la comptabilité ? Pour gérer vos adhérents ? Pour gérer les inscriptions en ligne ? Pour donner de la visibilité à votre association ? …


Article 11 in the series of “ Pragmatic decisions for your RESTful API”, this post talks about how to implement custom actions in your RESTful API. This article also updates this older blog post (and actually does not provide the same recommendation).

Implementing custom actions: use actions in the URL even if it’s not RESTful

Some actions do not fit in the CRUD world. Consider, for example, powering on or off a virtual machine, subscribing a user to a list or starring a product.

You could have the following endpoints:

Strictly speaking however, these endpoints are not RESTful, because they do not use nouns in their URLs, but action verbs.

Here are some possible options to overcome these issues and be as RESTful as…

About

Guillaume Viguier-Just

Développeur web et passionné de finances personnelles

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store