Technology Artisan

Today's technology world is mostly composed of "enterprise" software, or mainstream languages. Think kubernetes or python, OIDC and LDAP. Working in this world requires you to know about a lot of those technologies, stay up to date, and know how to tweak the thousands of parameters available to you to make them work exactly as you want them. That's today's equivalent of the manufacturing process, where every part makes sense when you have a lot of the same product to get out of the door, with as little cost as possible per unit. That's working at scale. ...

January 27, 2026 · Marin Gilles

Single entry point

Getting started working on an unknown repository can be daunting. Getting all the tools, setting up your environment, running the tests, building the artifact, deploying the new version of the software… All those can take a lot of time and back and forth with other colleagues who are used to working there (hopefully they're still working in your company) just so that you can get started working. If you're lucky, you will find scripts for those actions. You might only find an example of an arcane command in the README that has not been updated in the last 2 years. Or you might not encounter any indication of the direction in which to go. ...

September 13, 2024 · Marin Gilles

Autoreload your Rust webserver with rust

When you create a long running application in Rust, you have to recompile your files everytime you make a change. The first way is to just run cargo run and Ctrl-C the process then run it again when you want to reload. A better way is to install cargo-watch, which will do this process automatically when you change a file in your project. You just need to run it with ...

March 17, 2022 · Marin Gilles

Using cargo-edit to simplify dependency management

Getting back into Rust, I want to start documenting my journey to getting a small service running. The first "problem" I had to solve was to add dependencies to the project. The official method is to add the dependencies manually in your Cargo.toml file. However, this is not convenient, and could lead to errors quite easily. Thankfully, you can make this easier using cargo-edit. This will let you add, remove, upgrade dependencies or set-version of your crate. ...

March 17, 2022 · Marin Gilles

A Simple Wifi Menu With Rofi on i3

I’ve been using nm-applet in i3 to manage my networks, and it works pretty well. However, I don’t really like the icons it comes with in my systray, so I decided to try my hand at creating a little helper to get rid of it and manage my networks in an other way. Basically, I want to be able to connet to a wifi from the list of available ones. This article is based on ArchLinux, assumes that you are using NetworkManager and that you have rofi installed. ...

January 26, 2021 · Marin Gilles

Alert on Low Battery in I3

Working on i3, you have to define a lot of functionalities yourself, or install the program that does it for you. One of those functionalities is to be alerted in case of a low battery. Let’s explore two options, the very simple and the very customizable, so that you can choose what fits you best. You’ll learn more about linux going the custom route, but it will take longer to get running. ...

January 1, 2021 · Marin Gilles

Discovering TailwindCSS

I just finished following a quick tutorial about TailwindCSS, you can find it here. My first impressions are really good, but let’s go in details about what I liked, a few questions and some extra resources. What I liked most: Easy to get started (with a caveat) Getting started with TailwindCSS, once you understand the concept, is very easy. Just add a few classes to your HTML, and you get desired styling. The classes are clear in what they achieve, you get sane defaults and pairing colors out of the box. Fantastic for someone with basically no experience, as these can be overwhelming to define when getting started. ...

November 4, 2020 · Marin Gilles

Add a Server Struct for Better Handlers Management

On my previous post, I was explaining how to access a database from inside a HTTP handler in go using closures. While this method works, it comes with the disadvantage that if you want to access more than the database, you’ll have to add the new element to the list of arguments. In every single handler. On top of that, closures are not that simple to understand, and may lead to confusion. ...

October 18, 2020 · Marin Gilles

Accessing your database from inside an HTTP handler in Go

Note: While this is interesting to learn more about creating closures, it was pointed out to me that there is a better way to do this. Look at this next post to learn more about it. Writing my last project backend in Go, I was confronted with how to actually write my HTTP handlers. The main issue I encountered was how to get the database handle in the handler so that I could actually use it for incoming requests. Since you usually have to respect a given interface, you cannot just add new arguments to the handling function. ...

October 17, 2020 · Marin Gilles

Scrot useful options

When I wrote this post about installing KVM and virt-manager, screenshotting the windows that I was seeing was the easiest way to describe the steps to follow. On linux, one of the most used tools for that is scrot. As I used it in a few ways, I wanted to have a little reference, for the next times I have to use it. Basic commands The simple command will let you screenshot the whole desktop you’re currently on If you have multiple screens, this will capture only the current screen. To capture multiple screens, use the -m option. ...

May 13, 2020 · Marin Gilles