Ciao ! 💻

I’m coco (aka k0rventen), 28 yo IT engineer.

Hot topics for me right now are kubernetes, devops & software supply chain.

As I don’t have a very good memory, this is a place for me to put projects and important or tedious things that I’ve done, so that I won’t have to reinvent the wheel each time a similar situation arise.

But it’s also a way of sharing my ideas, solutions etc so that maybe one day it might help someone (hi future self).

State of the Setup 2024

I always had some form of homelab/servers running at home. For a while I had a k8s cluster composed of 3 Raspberry pi 4(8g), then a more traditionnal x86 pc, then back on some raspberry pis.. I changed quite a few things this year, having moved from macOS to linux on my work computer, and my own macbook pro 2015 being replaced by an iPad for media consumption, and my linux desktop for gaming/dev etc.. ...

December 17, 2024 · 5 min · 945 words

Randomized Tesla Lock Sounds using a Pi

What and why Since the Winter 2023 Holiday Update, a new feature appeared on my model 3 Highland: you could change the lock sound to some sounds provided by Tesla, or provide your own, by putting a LockChime.wav file at the root of the TESLADRIVE usb key. I’ve been playing with it with various sounds found here and there, but I still had to open the glovebox, take the USB key out, change the file and plug it back in. ...

June 24, 2024 · 4 min · 814 words

E Ink Message frame

Transmit paper-like messages from 18000 kms away: A simple, e-ink display that receives messages from loved ones from the other side of the globe. why About 10 months ago, my sister left our country to do a WHP (Work-Holiday-Program) on the other side of the world (fun fact, this is almost true as the antipodes of France where we live is right next to New-Zealand, where my sister went). ...

May 27, 2024 · 7 min · 1469 words

How to resize an LVM ext4 partition (and also non-LVM because old VMs)

what & why Every now and then, I have to resize a root partition on an LVM linux machine. Every time, I take more time to recall what steps to do, and in which order. Is it pvresize, then lvrezise, or lvextend ? Every. god. damn. time. Let’s put an end to this by having the steps written down somewhere, so I can reference them when the ‘we should increase this vm’s disk’ sentence is heard. ...

April 29, 2024 · 9 min · 1770 words

Using a local LLM as a personnal engineering sidekick

what & why Lately (in the last year) I’ve been using openAI’s chatGPT 3.5-turbo in my terminal, as kind of a personnal rubberducky/sidekick engineer. In my fish config I had the following function (from my dotfiles): # needs set -U OPENAI_KEY <KEY> if command -q https; and command -q yq alias h 'hey_gpt' function hey_gpt --description "talk to gpt" set prompt (echo $argv | string join ' ') set gpt (https -b post api.openai.com/v1/chat/completions \ "Authorization: Bearer $OPENAI_KEY" \ model=gpt-3.5-turbo \ temperature:=0.25 \ stream:=true \ messages:='[{"role": "user", "content": "'$prompt'"}]') for chunk in $gpt if test $chunk = 'data: [DONE]' break else if string match -q --regex "content" $chunk yq -0 '.choices[0].delta.content' < (echo -n $chunk | string replace 'data: ' '' | psub) end end end end This allowed me to do things like this right in my terminal: ...

March 20, 2024 · 5 min · 1059 words

Remote layer cache for multiple docker CI runners

what and why At $job, we are using jenkins with a dozen or so docker runners, each running their own docker daemon. At least a few hundred builds are carried out daily on these runners, mainly producing docker images that are then pushed onto a testing/production container registry. But two jobs from the same repo might not be using the same CI runner (most of the time they are not). It means each docker runner might need to rebuild the first couple of layers from a given Dockerfile, despite another worker having already built the same layers a few hours/minutes ago. That’s wasting CPU cycles, bandwith, and it’s also increasing the time each build is taking. ...

February 19, 2024 · 10 min · 2083 words

A smart city demonstrator

A smart city model that I helped build a few years back, to better explain what IoT could mean for a city: what & why When I arrived at $old_job in 2019, one of my first project was to build a small scale, smart city model that could : be tranported anywhere, be installed on a table easily show what improvements to city life could be made using IoT and be pretty to lure people on our stands ;) The actual model was built by architecture students, with whom I devised a plan to integrate various sensors, LEDs and interactive elements to play with. The whole thing took around a week to be finished. ...

January 10, 2024 · 5 min · 904 words

An E-Ink watch

An ‘almost 1 month-battery-life-e-ink-display-watch’ that you can build/program. what & why This summer I came across this project: https://sqfmi.com/watchy/. It’s a watch with an e-ink display, and a esp32 based platform that you can build upon. And you even have to build it yourself once it arrives in the mail ! And it’s “open source hardware and software” ! So i ordered one, and played with it when it arrived. The websites claims you can even do OTA update to the watch faces from your phone ! Disclaimer, I never managed to make this feature work. But it’s a very cool project nonetheless. ...

November 27, 2023 · 3 min · 467 words

A PYPI cache proxy to improve our CI workflows

what & why a bit of context At $dayjob, our backend stack is 99% python based, and deployed through containers on k8s clusters. That means that a lot of time spent in our CI is downloading and installing librairies and modules from Pypi, the Python Package Index. For the sake of data sovereignty and integrity, our CI workers are deployed on-prem, using Gitlab Runners. But due to the variety of projects, we are depending on hundreds of various libraries, ranging from fastapi/flask and their related libraries, to more esoteric ones like pysnmp, yang, scrapli, netmiko/paramiko.. ...

September 9, 2023 · 7 min · 1318 words

Reset a lost account password using docker

Story time A funny thing happened today. A remote Raspberry Pi deployed a few years back for $client was having issues connecting with another system. When setting up the Pi, I thought of sharing my ssh key from my laptop so I could SSH into it passwordless-style. But it didn’t occured to younger (and stupider apparently) me to save the password for that account somewhere. And on that system (and generally on Debian I believe), standard accounts are in the sudo group, but not with passwordless access, meaning you can run sudo but you have to enter your session’s password. ...

August 9, 2023 · 3 min · 498 words