Blog

  • GTD – Getting Things Done

    The method that I use to organize all the tasks in my professional and personal life.

    Based on the David Allen’s book: Getting Things Done

    Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states “there is an inverse relationship between things on your mind and those things getting done”.[3][a]

    The GTD method rests on the idea of moving all items of interest, relevant information, issues, tasks and projects out of one’s mind by recording them externally and then breaking them into actionable work items with known time limits. This allows one’s attention to focus on taking action on each task listed in an external record, instead of recalling them intuitively.

    Source: https://en.wikipedia.org/wiki/Getting_Things_Done

    It sounds complicated, but it’s quite simple.

    The David Allen’s method involves writing down every task, idea, thought, responsibility and brainwave in an organized list.

    The essential steps are:

    1. Write each idea to the “Inbox list”
    2. Then, move each one to:
      • A project. For example:
        • The task “Pay the car insurance” goes to the “Car” project,
        • The task “Water the cactus” goes to “House” project
      • Or to “Incubation” (for ideas that don’t require immediate action). For example:
        • Travel to Las Vegas at some point in the future,
        • Buy a sports car (maybe – I don’t know if I will do it).

    The full workflow

    This way, you can liberate your brain and its biological RAM from mental clutter. Otherwise, every idea, task, and duty will reside in your head, causing unnecessary stress. If you know that every task is written in a trusted place, you can forget about it.

    The place you can trust

    David Allen says that a piece of paper is enough to apply his method. He is right; however, modern technology lets you get the most out of it.

    The most popular tool is https://www.todoist.com

    However, the tool I use for my professional and personal life is https://ticktick.com

    It’s cheaper and it has more functionalities.

  • Playing with Ansible

    Goal: Replace the terminal cursor with đŸŸ on all hosts

    Why?

    Because I am practicing working with Ansible.

    The modules that I will use

    • lineinfile for ~/.bashrc

    Working on it…

  • Self-Hosted VPN server

    This is a mini-project that lets me configure my self-hosted VPN server.

    Why?

    As described in the Privacy Project, I use my own Domain Name Server. It works well on the local network, but I cannot access it from outside.

    That’s why I need my own VPN server.

    Other possible solutions

    • Port Forwarding on my home router
      • It’s not possible, because:
        • I don’t have administrator access to the router’s configuration.
        • I don’t have a static IP.
          • There are solutions like Dynamic DNS, but they are not reliable on the long run,
    • Tailscale or other similar commercial solution
      • It would work, but they are not so much fun.

    The VPN server configuration

    The configuration is simple:

    [root@vps-dc91297d fedora]# cat /etc/wireguard/wg0.conf 
    [Interface]
    Address = 10.8.0.1/24
    ListenPort = 51820
    PrivateKey = (redacted)
    
    PostUp = firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -j ACCEPT
    PostDown = firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -j ACCEPT
    
    # Example peer (add one per client)
    [Peer]
    PublicKey = (redacted)
    AllowedIPs = 10.8.0.2/32
    
    [Peer]
    PublicKey = (redacted)
    AllowedIPs = 10.8.0.3/32

    The interface’s will be named “wg0“, and the network will be class A with the range in 10.8.0.1/24.

    The firewalld rules allow forwarding packets between client devices.

    The rest of the configuration consists of just the peer’s public keys.

    The VPN Clients’ configuration

    I generate the public/private keys for each peer with wg command.

    root@komputer01:/etc/wireguard# cat wg0.conf 
    [Interface]
    PrivateKey = (redacted)
    Address = 10.8.0.3/24
    
    [Peer]
    PublicKey = (redacted) 
    Endpoint = vpn.tomasz-avila.pl:51820
    AllowedIPs = 10.8.0.0/24   # route all VPN traffic through the server
    PersistentKeepalive = 25

    This is a client configuration. I set up the private key, the peer’s address and the server’s FQDN.

    PersistentKeepalive sends periodic empty packets to keep the connection alive for clients behind NAT.

    The results

    [root@vps-dc91297d fedora]# wg show
    interface: wg0
      public key: (redacted)
      private key: (hidden)
      listening port: 51820
    
    peer: c2dz9nLrd7bYfyTFj7fMQHBMkHaIz7GFoH1bRK+ermY=
      endpoint: 46.205.194.178:60080
      allowed ips: 10.8.0.3/32
      latest handshake: 15 seconds ago
      transfer: 10.89 MiB received, 3.80 MiB sent
    
    peer: XoOt5kWRfvUSFf8I+SGUHcDcC9TeNloifDspq9uw0BI=
      endpoint: 185.246.208.88:39392
      allowed ips: 10.8.0.2/32
      latest handshake: 1 minute, 5 seconds ago
      transfer: 4.07 MiB received, 11.15 MiB sen

    This way, on the server, using the wg show command, I can see all connected peers and the last time they were seen.

    Everything took less then one hour to configure and the results are great.

  • Vim-like bindings everywhere

    Vim is my favorite editing program. Fortunately, I can use it everywhere. How? That’s what I will describe in this post.

    Why?

    Using only the keyboard is much more efficient than using it with a mouse. I can keep my index fingers on the F and J keys, with the rest of my fingers in their respective positions—exactly as computers and keyboards were designed. Now, I use the mouse only when it cannot be replaced, such as when working with graphics or gaming.

    However, using only the keyboard completely changes the relationship between human and machine.

    If it’s possible to use Vim-like keybindings, it’s just awesome.

    Sway

    The window manager that focuses only on keyboard. Thanks to its configuration files, I can open, close and move windows with H, J, K, L keys just as in Vim:

    Here, on their official website, you can find a video showing how it works:

    https://swaywm.org

    The alternatives are:

    • hyprland
      • It’s beautiful and modern, but it does not support tabbed windows,
    • niri
    • bspwm

    Firefox + Vimium C

    https://addons.mozilla.org/en-US/firefox/addon/vimium-c

    With this Firefox add-on, I can treat each page as if it were a document in Vim. It’s highly customizable, but it works great with the defaults.

    The alternatives are:

    Caution: Installing add-ons increases browser fingerprinting. In consequence, it’s easier to follow your moves on the internet. Read more at: Privacy Project

    ncmpccp music player

    The music player relies on an MPD server.

    It doesn’t have Vim-like bindings, but it can be used exclusively with the keyboard.

    Other tools

    • bluetoothctl
      • for managing bluetooth connections and devices,
    • nmtui
      • for managing network connections,
  • When we lose control of our data, we lose control of our lives

    Why does it matter?

    The inspiration for this project:

    The most inspirational quotes from Carissa VĂ©liz’s book:

    • “Privacy is not a luxury. It is a fundamental right that protects our dignity, autonomy, and democracy.”
    • “Privacy is not about hiding something. It’s about deciding for yourself what you want to share and with whom.”
    • “Data is the new oil—but unlike oil, it’s infinite and it’s being extracted from us without our consent.”
    • “The more we are watched, the more we conform.”
    • “Privacy is power because it allows us to resist manipulation and coercion.”
    • “In a world where everything is recorded, freedom of thought is at risk.”
    • “If you think you have nothing to hide, you have misunderstood the nature of power.”
    • “The lack of privacy is a form of oppression. It takes away our ability to think, act, and be ourselves without fear.
    • “When we lose control of our data, we lose control of our lives.”

    Below are the tools I use to protect myself from surveillance capitalism:

    Web Browser: Librewolf

    The best browser that maintains a good balance between usability and privacy. It’s a hardened Firefox. Its authors aim to protect users from surveillance capitalism.

    You can also harden Firefox yourself using the Arkenfox guides. It’s the best way to learn what each option does.

    Alternatives inclue:

    • Mullvad Browser
      • Better fingerprinting protection, but with more trade-offs,
    • Brave Browser
      • Better site compatibility, but it uses Chromium engine,
    • Tor Browser
      • The best protection, but at the cost of slow connection.

    Self-hosted DNS

    With my own DNS server, I can filter ads and trackers before they reach my computer.

    I’ve also blocked all Google and Facebook domains, whose business models rely on user surveillance.

    Besides, it provides statistics on connections that my devices make. Even though I mainly use open-source software, it gives me peace of mind to see that there are no leaking connections.

    For example, I noticed that my Chinese e-book reader makes suspicious connections to Chinese servers. With this tool, I can block them manually.

    Private files: Cryptomator

    With this tool, I encrypt all my files before sending them to my cloud storage, where I store their encrypted backups.

    Other tools

    • Joplin
      • Note taking application
    • Signal
      • For communication
    • GrapheneOS
      • Hardened Android fork,
    • Bitwarden
      • Password Manager
    • Proton Mail
      • Email Service