RSSAmplifier

Blog

Julien Desrosiers

Where I talk about stuff I'm passionate about.

juliendesrosiers.comRSS feed ↗51 posts

Latest posts

Track Web pageviews with Prometheus

I wanted to try my new Prometheus setup with some useful data, and since I want to learn how to use Prometheus, I thought it would be fun and useful to do this. In case you're not familiar with it, Prometheus is a server app that gathers metrics in a database. Metrics that are then displayed in some specialized web app such as Grafana (the most popular for this usage). I won't go into details of…

Minimum viable OpenID Connect with PHP

As we've seen in a previous post , you can install your own SSO, using Keycloak. In this post, we'll see how you can connect to that SSO using only one page of PHP. The dependencies Install these composer packages: composer install stevenmaguire/oauth2-keycloak composer install firebase/php-jwt The code Put this in your index.php at the root of your publicly-available web folder: <?php require…

Host your own Keycloak SSO

First, you'll need Keycloak. Server specs requirements I'm installing this on Ubuntu 24.04. Look at this page for more details . TL;DR: Have at least 2 vCPU and 2 GB of RAM for a start. Installing Keycloak First need to install the dependencies Start here: https://www.keycloak.org/getting-started/getting-started-zip Basically you'll: # install software sudo apt install openjdk-21-jdk wget unzip -y…

Configuring XDebug for VS Code over SSH

[...]

Top 10 skills every programmer should know

[...]

The Slow Web

[...]

Tools for thinking

Fact: I need exo-brain (tech-)tools to help me make sense of complex things. Here are some of them: 1. Kinopio Kinopio is quite fun to use. Here are a few examples: For philosophy For political sciences For linguistics For collaborative brainstorming / moodboarding A nice alternative to pinterest: Credits to @tiff and @Liby: board's link For mindmapping 2. Big-Ass Text File One big, always open,…

Self-Help, abridged.

Sometimes, I feel like I’m a self-help guru. I mean, I know everything there is to know about self-help. Don’t believe me? Here is a pretty thorough list of things that are taught in 80% of self-help books. Note: This list has contradictions in it. This is because there are many opinions in the field of self-help and productivity. Have a "morning routine" make your bed first thing in the morning…

Developers need stats

Web developers like love stats Today, I received a FWD of one of those Google Search Console email reports. That's great. Here's why: 0 page with first impression ? There is still room for improvement. Here, I can see what are the pages that receive the most traffic. As you can see, it's not much, but it's nevertheless from those points that we should work. It's nice to know that people look up…

Switching to the Colemak keyboard layout

Two weeks in I picked up Colemak gradually by mostly using colemak.academy , for 62 5-7 practices, over 13 days. I come from a QWERTY, ~42 WPM typing speed, that I got in 2005-ish, for my computer graphics design degree. Now, I feel very slow with my current record time of almost 18 WPM, and it keeps getting faster. I only stopped using QWERTY, 4 days ago. I still struggle mostly with the 'G', and…

Open Source, self-hosted SaaS alternatives

When open source web apps compete with SaaS, it's interesting. After learning about Baserow on HN , I decided that I needed to write about that trend in the open-source/startups world, to create an alternative of X (SaaS) that is self-hosted, but also that you can pay to have hosted for you, if you're not technically inclined. Here is a list of high-quality products that I've seen so far using…

Docker Compose logging to Papertrail

Problems: There's a limit on how much you can scroll back in your console to see previous outputs generated by Docker compose. If you deploy your services on many different servers, you need to chase logs on all those servers to debug your services. Solution: Centralized logging the remote logging service : papertrail.com the logging driver : syslog Here's how it works I use Docker version 18.09.7…

Getting started with the Monero cryptocurrency

Warning : It's likely that if you download the Monero GUI installer (file named like monero-gui-install-win-x64-v0.17.1.6.exe ) you will have notices from your antivirus (at least Windows Defender) warning you about the following viruses: PUA:Win32/Vigua.A , Program:Win32/Ymacco.AA29 or PUA:Win32/iByteInstaller . This is normal . Just make sure you remove the installer after installing the Monero…

The Fman File Browser

fman is a Dual-pane file manager for Mac, Windows and Linux. I decided to try it for my Windows (10) machine. Here are my thoughts. Things I don't like about fman: 1. Context menu is radically stripped down This is huge for me. Like, I have no: 7-Zip option to extract zip the way I prefer ("Extract Here"). Share options (Dropbox, OneDrive, etc) Git Bash Here (to open the current folder in the…

Setup WireGuard on Ubuntu and Windows

WireGuard is a modern VPN. Arguably the best in many crucial aspects like security, and simplicity, at the moment of writing this. So here's how to setup WireGuard on Ubuntu 20.04, and also, how to setup the corresponding WireGuard client on a Windows 10 machine. Concepts Keys We'll use Keys (key pairs): Public and Private keys. IP addresses We'll see IP Addresses : Those of the VPN server, the…

The Tools I use

Update : check out my new post on the tools I use for thinking, specifically. I use a few tools in my day to day work as a Web developer. Here they are, in case you need some inspiration or ideas: The OS I use Windows. 10. Pro. But I used to use macOS. I was using Macs since 2007, when I think the version was Mac OS X Tiger. It was the perfect thing. Actually, I think the perfect thing came with…

A Python trick that helps developping in Ruby on Rails

Back in the days, when I was learning Python and did a few projects with it, I realized that I could run Python code directly by running a class' file, without introducing any side effect to the rest of the code that was using that class. Here is the example def main(): foo = Base1() foo.base1() if __name__ == "__main__": main() Source: https://stackoverflow.com/a/20532554/242404 Explanation There…

Notes on trying Linux Desktop in 2020

Earlier this year: Ubuntu 20 Here's how it went: 2020-05-23: Chrome, while using Notion.so, crashed. 2020-05-25: Firefox, while using Slack, crashed. And when I say "crashed", I mean: no response. Even if I would wait for 1 hour. It froze. Hard. The first freezing happened while I was using the version 440 of the NVIDIA driver for my video card. The second freezing happened while I was using the…

Backing up your Thunderbird profile

First thing: what is a Thunderbird Profile ? (Note: I am NOT responsible for the loss of your data. These instructions are only there to help you learn things.) In Thunderbird , the profile stores two main sets of items. First, it stores your local mail, and possibly copies of messages that reside on the mail server (depending on your account configuration). Second, it stores any changes you make…

HTML & CSS courses

I like to share my knowledge about tech. And one of the easiest tech to teach at a level where it can be used in the short term is HTML and CSS. No high-level concepts. Just layout of documents with code. Here is what I've done today, for 2 people who joined me on a Zoom meeting. The result What they got 1 hour of live coding action, where they could interrupt me to ask questions at any time.…

The Psychology of blogs and social networks popularity

(This post is a response to that post I found on HN .) The currency we have right now on Twitter, Instagram and Facebook is reputation . There, it's manifested in the form of Followers . That's the very currency that Stack Overflow uses to grow and sustain. It's "gamified". And the blogosphere needs that, too. And in a way, blogs have that, but it's pretty much in the form of Reddit and HN and…

Choosing an entreprise-grade Password Manager

Our IT team at my church was comparing several options for our internal password management tool. We need to securely share passwords and other sensitive information with staff and volunteers of pretty much all walks of life. The features we needed Industry-standard encryption algo/level Cloud-based (We don't want the risky task of managing an on-premise installation for such a secure component of…

IRC basics

Internet Relay Chat WARNING ABOUT FREENODE: This post refers to Freenode server. I now suggest that you use Libera chat that is the de-facto alternative, now that Freenode went nuts . Concepts Protocol Servers Clients Commands Protocol IRC is an Internet Protocol, as specified in https://tools.ietf.org/html/rfc1459 Servers IRC clients connect to IRC servers in order to chat in IRC channels. IRC…

PGP pour des emails sécuritaires

Vidéo d'introduction Table de matières Le problème (insécurité des emails) La solution (signatures GPG) Key pairs (privée et publique) Identités Key Servers Signature de emails Encryption de emails Le problème Imagine une seconde que quelqu'un veut se faire passer pour ton boss (ou autre autorité), afin de te faire faire quelque chose qui compromet la sécurité de l'organisation. Par exemple: Il va…

My system for managing data, operations and events of my life.

[...]

Librairies PHP intéressantes

[...]

Comment j&#039;ai commencé

[...]

WordPress plugins for complex websites

[...]

The WordPress database diagram

[...]

(WordPress) Automatically prefix Custom Post Type slugs with the Author name

[...]

My best practices for local WordPress development

[...]

How to: test web applications with the Android SDK on Mac OSX Lion

[...]

New side project: The Daily WordPress Reference

[...]

Build an Automator script to upload images to your server

[...]

YegorDyachkov.com

[...]

Run Gollum on Pow

[...]

JulienMP3Player: an MP3 Player jQuery plugin (Yes, in JavaScript!)

[...]

Auto-Generating CRUDs in Sinatra, for fun and profit

[...]

Fixing the “bundled mysql.rb driver has been removed from Rails 2.2″ error

[...]

KahnawakeVoices.com

[...]

Saving hours with Anemone and Nokogiri

[...]

Announcing my first jQuery plugin: JulienRSSWidget

[...]

howto bootstrap your own server at home (with a dynamic IP)

[...]

MontrealHackers.com

[...]

Fixing ActionView::SafeBuffer deprecation warning with Ckeditor in Rails 2.3

[...]

bash script to zip a folder while ignoring git files and copying it to dropbox

[...]

Déployer une application Lua (orbit) sur Webfaction

[...]

Backuper toutes mes DB MySQL sur un serveur distant

[...]

Intro à PhoneGap

[...]

Charger une image en Actionscript 3

[...]