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.

  • 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

    Here the screenshot

    Other tools

    • bluetoothctl
      • for managing bluetooth connections and devices,
    • nmtui
      • for managing network connections,
  • Privacy Project

    Why does it matter?

    The inspiration of this project:

    The most inspirational quotations from the Carissa Véliz 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.”

    Web Browser: Librewolf

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

    Also, it is possible to harden the Firefox by yourself, with the Arkenfox guides. It’s the best way to get to know what does each option do.

    Alternatives are:

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

    Self-hosted DNS

    With my own domain name server, I can filter the ads and trackers before they reach my client computer.

    Also, I blocked all the Google and Facebook domains, whose business models rely on user surveillance.

    Besides, it gives me statistics of connections that my devices perform. Even if I use mainly opensource software, it gives me peace to see that there are not any leaking connections.

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

    Private files: Cryptomator

    With this tool, I encrypt all my files before sending them to the hosting in the cloud where I do store the encrypted backup of them.

    Other tools

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