elvinguti.dev

Writing my personal experiences about GNU/Linux and development.

Tailscale with NordVPN at the same time on GNU/Linux

By default, NordVPN does not allow users to connect to Tailscale. This is because NordVPN blocks Tailscale traffic. To solve this, you just need to execute the following commands: nordvpn whitelist add subnet 100.64.0.0/10 nordvpn whitelist add subnet fd7a:115c:a1e0::/48 nordvpn whitelist add port 41641 Then, restart the NordVPN connection: nordvpn d nordvpn c US Finally, if you are not connected to Tailscale, then connect to Tailscale: sudo tailscale up --accept-routes --shields-up

October 3, 2024 · 1 min · Elvin Guti

Enable bluetooth in Arch Linux

First, check the status of the bluetooth service: systemctl status bluetooth.service If the status is not active (running), then enable it: systemctl enable bluetooth.service Then, start the service: systemctl start bluetooth.service Finally, check the status again: systemctl status bluetooth.service If the status is now active (running), then the bluetooth service is enabled.

October 3, 2024 · 1 min · Elvin Guti

Email aliases to improve your privacy

Recently, while browsing Reddit, I came across one of the most useful tools I’ve seen: an email alias. As its name suggests, you can create alternative names for email addresses. These email addresses are linked to your main email address. The way it works is very simple: you create an alias, which is essentially another email address, and it gets linked to your main email address. When you send an email, it will forward all emails received by the alias to your main email address. ...

September 30, 2024 · 2 min · Elvin Guti

Xargs command

xargs is a great command that can help us to run commands from the output of another command. From tldr xargs: Execute a command with piped arguments coming from another command, a file, etc. The input is treated as a single block of text and split into separate pieces on spaces, tabs, newlines and end-of-file. For the examples we’re going to use the seq command: # Print 3 numbers seq 3 # 1 # 2 # 3 # xorgs wil print the numbers "inline" seq 3 | xargs # 1 2 3 # -n will use a max number of arguments per command line seq 3 | xargs -n 2 # 1 2 # 3 # -I is used to replace {} with the argument from the previous command seq 3 | xargs -I {} echo 'number {} printed' # number 1 printed # number 2 printed # number 3 printed # Create 1, 2, 3 folders seq 3 | xargs mkdir # Remove 1, 2, 3 folders seq 3 | xargs rm -rf

July 3, 2024 · 1 min · Elvin Guti

Map array in server side Google tag manager

Sometimes you need to send to a third party service a different array structure than the one specified on Google Analytics 4 (GA4). So, in case you don’t want to create a new event only for this service and you want to reuse as much as posible a GA4 event like add_to_cart, then you need to map the GA4 built in array on GTM. This sounds pretty easy if you have used GTM (no server side) before, basically you create a new custom javascript variable and return the mapped array. However, on GTM using a server side container, the custom javascript variable is no longer available. ...

May 8, 2024 · 2 min · Elvin Guti