An Empirical Study of Performance in Laravel Applications

As part of my Software Verification and Testing class at Concordia University, my team and I chose to study empirically the performance of some popular Laravel applications. The goal was to replicate the paper “How not to structure your database-backed web applications: a study of performance bugs in the wild” by Junwen Yang et al. This paper, focused on the Ruby ecosystem, found that ORM API misuses such as inefficient queries, lack of pagination, inefficient eager loading or lazy loading were common causes for performance degradation....

January 11, 2019 · 4 min · Adrien Poupa

Block attackers on CloudFlare using Fail2Ban

Recently, I had to counter a layer 7 HTTP Flood DDoS attack on my server, that is using CloudFlare. I started by setting up Fail2Ban using the Nginx logs, and Fail2Ban would ban attackers but they would still be able to hit my server. I finally understood that since they were passing through CloudFlare, I had to block them at a higher level, CloudFlare itself. Fortunately, CloudFlare offers a firewall and an API to block offenders....

December 9, 2018 · 5 min · Adrien Poupa

Introducing Vinyl Music Player

We all listen to music on our smartphones. Since I’m old-fashioned, I still have a local library and no Spotify subscription. I’ve been using the Phonograph music player for a few years but after having see its development stopped for a few months, its creator decided to put some of its best features behind a paywall. For instance, it was not longer possible to browse files to play a music....

January 13, 2018 · 1 min · Adrien Poupa

Formalités pour étudier au Canada

Depuis Septembre, je suis étudiant en Masters de Software Engineering à l’Université de Concordia, à Montréal ! J’en suis très heureux, mais les formalités administratives qui ont précédé ce moment ont été plutôt lourdes et nombreuses. Il m’avait été assez difficile de trouver des ressources complètes sur ces démarches. J’écris donc cet article pour les futurs étudiants (pourquoi pas de l’Efrei) destinés à partir au Canada, et même au Québec pour être plus précis....

October 8, 2017 · 4 min · Adrien Poupa

Certificat SSL avec Let's Encrypt, Nginx et CloudFlare

Avec Google qui fait ressortir les sites en HTTPS prioritairement et Firefox qui affiche désormais un joli message d’avertissement lors du remplissage d’un formulaire de connexion en HTTP, il est temps d’installer un certificat SSL sur vos sites, d’autant plus que c’est gratuit ! Nous allons en effet nous servir de Let’s Encrypt, fondation à but non lucratif qu’on ne présente plus, qui a l’avantage de fournir gratuitement des certificats SSL acceptés par tous les navigateurs modernes....

August 13, 2017 · 4 min · Adrien Poupa

Mise en place d'un environnement chroot avec identification en clés SSH

Sur mon serveur dédié, je voulais mettre en place un environnement chroot afin de pouvoir donner un accès limité à leur espace à des utilisateurs externes. La mise en place d’un tel espace n’est pas complexe en soit, mais j’ai en revanche eu beaucoup plus de mal à activer la connexion par un jeu de clés SSH. Nous allons partir du principe que le système est déjà configuré pour la connexion avec des clés SSH....

January 31, 2017 · 3 min · Adrien Poupa

Autocomplétion des adresses avec la Base Adresse Nationale

Lors de mon stage à Diagamter cet été, j’ai eu pour tâche de créer un formulaire d’autocomplétion des adresses. Après avoir fait un tour d’horizon des outils disponibles, un m’a marqué : la Base Adresse Nationale. Tout d’abord parce cette API est officielle, qu’elle peut faire office de référence ; toutes les modifications de communes y sont répertoriées rapidement. Ensuite, elle simple, bien documentée et n’a pas de quota de requête à ma connaissance....

October 14, 2016 · 3 min · Adrien Poupa

Installer un serveur web LNPM (Linux, Nginx, PHP, MariaDB)

Source: unixmen.com Cet article est surtout là pour me servir de pense-bête en cas de réinstallation d’un serveur, mais sait-on jamais, il peut être utile à d’autres 🙂 Le but est de mettre en place un serveur web qui soit le plus léger possible ; pour ce faire, j’utilise Linux et sa distribution Debian (8 Jessie pour le tutoriel ci-dessous, mais facilement adaptable pour d’autres version), Nginx en remplacement d’Apache, PHP 7 en FPM et MariaDB en remplacement de MySQL....

June 10, 2016 · 3 min · Adrien Poupa

Bangkok : the big mango

Dernier voyage de mon immersion, mais pas des moindres : Bangkok ! Par une matinée à la chaleur dévastatrice, nous commençons par visiter l’incontournable Grand Palace (Palais royal). Malheureusement, il était bondé de touristes. Pour ne rien arranger, nous étions arrivés lors de la journée la plus sainte de leur calendrier, le Visakha Bucha : anniversaire du Bouddha, cette journée est la plus importante du calendrier religieux en Thaïlande, où 90% de la population est bouddhiste....

June 7, 2016 · 3 min · Adrien Poupa

Quelques jours à Bali

Pour ma première sortie hors de Malaisie, j’ai décidé de ne pas faire les choses à moitié et d’aller en Indonésie sur l’île de Bali, destination dont la simple évocation suffit à faire rêver et imaginer des paysages idylliques. C’est en partie vrai ! Quatre jours ne suffisent pas mais permettent de se faire une bonne idée de l’île. De toute façon, j’ai quand même quelques cours entre mes voyages 😉...

May 10, 2016 · 4 min · Adrien Poupa