My thoughts on AI in blogging
Given the recent rise in text-based language models, sometimes called AI tools, I wanted to share my thoughts and experiences in using them, especially in the context of blogging.
[Read More]What to do with your own server
Tools, tips & tricks
![What to do with your own server](https://blog.marco.ninja/img/posts/tools-on-table.jpg)
How to run your own server
There are many ways to run your own server, from setting up a Raspberry Pi on your desk to renting a physical server at a provider.
In this post, we will focus on setting up a virtual server with DigitalOcean, which is one of the easiest ways to get started.
[Read More]Benefits of running your own server
![Benefits of running your own server](https://blog.marco.ninja/img/posts/server-racks.jpg)
In the world of technology, we are moving further and further away from operating directly on servers, but there are still significant benefits to be gained from running a personal server.
I have been running some kind of personal server for many years now and I strongly believe anyone working in technology can benefit greatly from doing so. Here’s why:
[Read More]The (MVP) making of Honeypot Login
In this post I will go over the MVP building phase of Honeypot Login, from idea to launched product and what my next steps will be.
[Read More]1Password CLI Cheatsheet
The 1Password CLI op
works either in connection with a client app, like on the Mac,
or standalone, useful on a server.
# Login
eval $(op signin)
# Get favorites
op item list --vault "Private" --favorite
# Get a specific item
op item get <ID>
# !! Important: Sign out at the end
op signout
Some helper functions
Helpers to more easily work with the op
cli.
1login() {
eval $(op signin)
}
alias 1signout="op signout"
1search() {
term=$1
if [ -n "$2" ]
then
vault="$2"
else
vault="Private"
fi
echo "Searching for '$term' in vaut '$vault'"
op item list --vault "$vault" --long | grep "$term" --ignore-case
}
1get() {
op item get $*
}
Being a good code reviewee
Things I do to be a good code reviewee.
[Read More]yamllint error: "invalid config: ignore should contain file patterns"
ArgoCD Python Client
A simple Python client to interact with ArgoCD.
[Read More]WSL2 & Keychain
The problem
If you use ssh-agent with an encrypted ssh key it does not persist when you open a new terminal window.
The solution
Use keychain
instead.
- Install
sudo apt install keychain
- Add to your shells rc file, eg.
.bashrc
or.zshrc
# Repeat this line for all keys you want to unlock and use this way /usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa source $HOME/.keychain/wsl-sh
- Unlock your keys on shell startup and enjoy
Self-hosted notifications
![Self-hosted notifications](https://blog.marco.ninja/img/posts/self-hosted-notifications.png)
Running any kind of personal infrastructure sometimes requires your attention based on certain events or failure states, no matter how much you automate tasks.
Over the years I have used E-Mail, Telegram bots and a variety of other tools for this purpose. However all of them have the drawback that they mix with other kinds of information and are not easilly usable in scripts.
[Read More]Git: Add only changed files
Sometimes you may want to commit only the files you have changed and not any newly created files,
this can easily be achieved by this command: git commit -a
Post Mortems
Learning from incidents
GitLab: User owned projects report
Export a CSV formatted report of projects in user-namespace on a GitLab instance.
This is especially useful if you think about limiting or disabling this feature.
[Read More]Monoliths & Microservices
An opinionated overview
Simple git changelog
The WSL Onion
Calling powershell.exe from PowerShell inside WSL
The other day I was playing around in WSL with a colleague of mine and we did this:
[Read More]Windows Subsystem For Linux 2: Debian+Podman
The problem: Docker itself can’t be run in WSL2 as it requires the docker daemon, usually run though systemd.
The solution: Podman works just fine and can easily be installed, although we will need to configure some things to make it work properly.
[Read More]