Welcome to my personal website/tech blog¶
Hi. I’m Jonas from Norway. I’m a DevOps/backend/cloud native engineer and avid learner.
Here’s some of the stuff I enjoy: Linux (
arch
btw), NixOS
, vim/neovim
, tmux
, open source
, Kubernetes
, programming, tinkering, computer science, technology, gadgets, CLI/TUI tools, automation, productivity, books, movies, nature, science, people, history and culture.
Recent posts¶
I have been guilty of doing this myself.
Instead of doing cat file1 file2 | grep -i searchTerm, it is better to use grep directly. The result is not only more efficient, but it’s more informative aswell.
Here is why I came across a video by [[Luke Smith]], where he explains why you should avoid using cat into grep. This video made me reflect on my own usage of cat , and what it’s really meant for, which is concatenate and write files.
...
I’ve been using this terminal file manager for a few weeks now, and I must say; I absolutely love it! It’s written in Rust , so all I/O operations are asynchronous, which means CPU tasks are spread across multiple threads, utilizing available resources. And the best part; it has vim keybindings!
Not convinced yet? Check out the GitHub page , and scroll down a bit until you reach “example.mp4”. You’ll see a video that demonstrates some of its cool features.
...
Helm Helm is the best way to find, share, and use software built for Kubernetes . It helps you manage Kubernetes applications and helps you define, install, and upgrade even the most complex Kubernetes application.
Helm is a graduated project in the CNCF and is maintained by the Helm community .
...
The relationship between nodes and pods In Kubernetes, the relationship between nodes and pods is central to how applications are deployed and managed. Understanding what nodes and pods are, individually, helps clarify their interaction.
What are Pods? A pod is the smallest deployable unit in Kubernetes and serves as a wrapper for one or more containers. Each pod is designed to run a single instance of a given application or service. It can contain one or multiple containers (usually Docker containers), and these containers within a pod share resources like networking and storage. Containers in the same pod can communicate with each other using localhost, as they share the same network namespace.
...
Today I learned that if you have Inkscape installed on your machine, you can convert .SVG files into .PDF, using this simple command:
inkscape input.svg --export-filename=output.pdf Replace input.svg with the name of your SVG file and output.pdf with the desired output PDF file name. Example use case Say you have developed a drawing or mindmap in Excalidraw. You can export this to SVG and then run the command to convert it to PDF. Very cool!
...
obsidian-sync-github Why write this script? I’m using Arch Linux (btw) and the Obsidian electron AppImage from AUR. It works great, but for some reason the obsidian git community plugin makes the app super sluggish. I removed the plugin and wrote my own bash script instead.
How the script works Auto-pushes Obsidian notes to GitHub via a cronjob every 30 minutes crontab -e -> */30 * * * * /home/jonash/.local/bin/obsidian-sync-github Sends a notification via dunstify and your e-mail address of choice #!/bin/bash # Navigate to your repository directory cd ~/obsidian/ # Fetch changes from remote repo and merge updates into current local branch git pull --rebase # Add all changes to git git add . # Commit the changes with a current timestamp git commit -m "Automated commit on $(date)" # Push the changes git push origin main # Send notification after the push is sent if git push origin main; then # Check if dunstify is available (dunst's notification tool) if command -v dunstify >/dev/null 2>&1; then # Send a notification dunstify "Successfully pushed obsidian notes to GitHub!" else echo "dunstify not found, cannot send notification" fi # Email details recipient="jonash@jonash.xyz" subject="Subject: Obsidian Notes Push Successful" body="Your Obsidian notes have been successfully pushed to GitHub on $(date)" # Send the email echo -e "$subject\n\n$body" | msmtp "$recipient" else echo "git push failed" fi
What is HUGO? It’s a framework written in Go , designed to convert code and content into static websites. HUGO is exceptionally fast at compiling websites, even those with thousands of pages. It is an excellent choice for projects where speed, security, and simplicity are prioritized.
Here’s how it works HUGO takes your content, which you can write in Markdown (a lightweight markup language), and your templates, which define the structure and design of your site, and combines them to generate a complete, static website. These websites are made up of prebuilt HTML files, making them very fast to load and easy to host.
...
Get a Google Pixel phone, so you can install GrapheneOS . I recommend Google Pixel 6a. Very cheap and very good. Get rid of all the apps you don’t need Sync your data with SyncThing Create your own NextCloud server Use VimWiki / Obsidian + vim/ neovim to take notes in markdown , and take full ownership over your own data Use Linux on your personal computer(s) Use pass to store your accounts/passwords Don’t let proprietary software take your money and own YOUR data Never look back
First of all, what is GRUB? GRUB is a boot loader, which lets you boot up your system. The abbreviation stands for GNU GRand Unified Bootloader, and is a boot loader package from the GNU Project. GRUB is the primary bootloader for many Linux distributions, allowing users to choose from multiple operating systems or different versions of the same operating system at boot time. It’s designed to be highly configurable and supports a wide range of operating systems, not just Linux.
...
These modern Linux tools might enhance your workflow fd is a simple and fast file search tool, enhancing the Unix find command. exa is a modern replacement for ls, enhancing file listing with better defaults. dog is a modern, feature-rich DNS client for the command-line. ncdu is a console disk usage analyzer for quick space management. bat is a cat clone with syntax highlighting and Git integration for the command-line. sd is a simple and intuitive find-and-replace CLI tool, aiming to improve upon sed. dust visualizes disk usage with an emphasis on clarity, acting as a more intuitive du. xh is a friendly and fast HTTP client for the terminal, inspired by curl and HTTPie. duf is a modern disk usage utility for the command-line with an intuitive interface.
Development (Dev) and Operations (Ops), is a culture and mindset. It is also a software development and delivery approach, which emphasizes:
Communication Collaboration Integration Automation The goal of DevOps is to improve and speed up the delivery of software applications and services. By fostering a culture where building, testing, and releasing software can happen rapidly, frequently, and more reliably, DevOps has become a key practice in the software industry.
Key Principles of DevOps Continuous Integration (CI): Developers merge their changes back to the main branch as often as possible. Automated tests run with these integrations to catch bugs quickly.
...