From 31193bf3d838a9ba13aaa131cf0172a6cee97173 Mon Sep 17 00:00:00 2001 From: "root@localhost" Date: Fri, 21 Jul 2023 11:11:07 -0400 Subject: removed public dir --- public/post/index.html | 157 ---------- public/post/index.xml | 47 --- public/post/nixos-p1/boot.png | Bin 12893 -> 0 bytes public/post/nixos-p1/dwl.png | Bin 3082421 -> 0 bytes public/post/nixos-p1/fox.jpg | Bin 30886 -> 0 bytes public/post/nixos-p1/index.html | 434 ---------------------------- public/post/nixos-p1/rice.png | Bin 1670023 -> 0 bytes public/post/programming-as-art/code.png | Bin 530926 -> 0 bytes public/post/programming-as-art/index.html | 179 ------------ public/post/programming-as-art/math.png | Bin 398307 -> 0 bytes public/post/programming-as-art/teaching.png | Bin 410632 -> 0 bytes public/post/programming-as-art/wand.png | Bin 356173 -> 0 bytes public/post/programs/index.html | 167 ----------- public/post/self-host/6imv05.jpg | Bin 66020 -> 0 bytes public/post/self-host/elections.jpg | Bin 97041 -> 0 bytes public/post/self-host/freedom.jpg | Bin 300014 -> 0 bytes public/post/self-host/index.html | 240 --------------- public/post/self-host/office.png | Bin 1443597 -> 0 bytes public/post/self-host/police.jpg | Bin 190074 -> 0 bytes public/post/self-host/why.jpg | Bin 110502 -> 0 bytes 20 files changed, 1224 deletions(-) delete mode 100644 public/post/index.html delete mode 100644 public/post/index.xml delete mode 100644 public/post/nixos-p1/boot.png delete mode 100644 public/post/nixos-p1/dwl.png delete mode 100644 public/post/nixos-p1/fox.jpg delete mode 100644 public/post/nixos-p1/index.html delete mode 100644 public/post/nixos-p1/rice.png delete mode 100644 public/post/programming-as-art/code.png delete mode 100644 public/post/programming-as-art/index.html delete mode 100644 public/post/programming-as-art/math.png delete mode 100644 public/post/programming-as-art/teaching.png delete mode 100644 public/post/programming-as-art/wand.png delete mode 100644 public/post/programs/index.html delete mode 100644 public/post/self-host/6imv05.jpg delete mode 100644 public/post/self-host/elections.jpg delete mode 100644 public/post/self-host/freedom.jpg delete mode 100644 public/post/self-host/index.html delete mode 100644 public/post/self-host/office.png delete mode 100644 public/post/self-host/police.jpg delete mode 100644 public/post/self-host/why.jpg (limited to 'public/post') diff --git a/public/post/index.html b/public/post/index.html deleted file mode 100644 index fbaa589..0000000 --- a/public/post/index.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - Posts – Kumar Damani - Home - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-

Posts

- -
- - -
-
-

Adventures in NixOS - Part 1

- -
- -
-

Almost a guide to getting started with NixOS the modern (2023) way.

-
-
- - - -
-
-

Why do I self-host?

- -
- -
-

My reasons for self-hosting.

-
-
- -
-
-

Programs and Equipment

- -
- -
-

The programs and equipment I use on a daily basis.

-
-
- - -
- -
-
-
- -

Links

-

Git, email, and resume

-
- - - -
-
-
-
-
- -

- - - - - - - - - - - - -

-

- - -
- -
- - - diff --git a/public/post/index.xml b/public/post/index.xml deleted file mode 100644 index be7d5ab..0000000 --- a/public/post/index.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - Posts on Kumar Damani - Home - https://kumardamani.net/post/ - Recent content in Posts on Kumar Damani - Home - Hugo -- gohugo.io - en-us - Fri, 24 Mar 2023 00:00:00 +0000 - - Adventures in NixOS - Part 1 - https://kumardamani.net/post/nixos-p1/ - Fri, 24 Mar 2023 00:00:00 +0000 - - https://kumardamani.net/post/nixos-p1/ - <p>Almost a guide to getting started with NixOS the modern (2023) way.</p> - - - - Romanticism in Programming - https://kumardamani.net/post/programming-as-art/ - Tue, 29 Nov 2022 00:00:00 +0000 - - https://kumardamani.net/post/programming-as-art/ - <p>Why there is art in programming.</p> - - - - Why do I self-host? - https://kumardamani.net/post/self-host/ - Mon, 12 Sep 2022 00:00:00 +0000 - - https://kumardamani.net/post/self-host/ - <p>My reasons for self-hosting.</p> - - - - Programs and Equipment - https://kumardamani.net/post/programs/ - Fri, 12 Nov 2021 00:00:00 +0000 - - https://kumardamani.net/post/programs/ - <p>The programs and equipment I use on a daily basis.</p> - - - - diff --git a/public/post/nixos-p1/boot.png b/public/post/nixos-p1/boot.png deleted file mode 100644 index 4e3d972..0000000 Binary files a/public/post/nixos-p1/boot.png and /dev/null differ diff --git a/public/post/nixos-p1/dwl.png b/public/post/nixos-p1/dwl.png deleted file mode 100644 index 8ecbe4d..0000000 Binary files a/public/post/nixos-p1/dwl.png and /dev/null differ diff --git a/public/post/nixos-p1/fox.jpg b/public/post/nixos-p1/fox.jpg deleted file mode 100644 index 3ace57f..0000000 Binary files a/public/post/nixos-p1/fox.jpg and /dev/null differ diff --git a/public/post/nixos-p1/index.html b/public/post/nixos-p1/index.html deleted file mode 100644 index 54c7ccb..0000000 --- a/public/post/nixos-p1/index.html +++ /dev/null @@ -1,434 +0,0 @@ - - - - Adventures in NixOS - Part 1 – Kumar Damani - Home - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-

Adventures in NixOS - Part 1

-
- -
-

Almost a guide to getting started with NixOS the modern (2023) way.

-

There seems to be a shortage of written guides on the Internet for setting up NixOS -the “modern” way - Flakes + Home Manager. It doesn’t help that Nix’s official -docs are very disjointed so hopefully this will fill in some gaps that I observed -when setting it all up.

-

meme

-
-

Warning: NixOS is not exactly beginner friendly - -you should have familiarity installing Linux distros before trying this.

-
-

But Why NixOS?

-

Eh… FOMO regarding all the memes.

-

There is one particular feature that is intriguing - -the ability to roll-back your entire system (not incl. BIOS) in case of a -misconfiguration or a broken update. You can’t do this with Ansible. -This allows you (in theory) to get the benefits of a rolling release as well as the -stability benefits of a traditional distro.

-
-

It takes the idea of reproducible builds, and extends it to the OS.

-
-

For example, NixOS will present you with all previous “builds” at boot time -for you to revert to in case something gets messed up. -boot prompt

-

Things I want to explore as part of this exercise:

-
    -
  1. How hard is it to go from a minimal install to productive? -At minimum I need a graphical environment with working vol, mic, camera, wifi, -and hibernation. -Is it harder than doing the same in something like Manjaro?
  2. -
  3. Is Wayland truly ready?
  4. -
  5. Try out dwl (the Wayland port of dwm by the suckless folks)
  6. -
-

Constraints

-
    -
  1. I want to stick to the “Nix” way of doing things as much as possible -where it makes sense to me.
  2. -
  3. Stick to Wayland only applications as much as possible.
  4. -
-

Spoilers! (End result)

-

my rice -(Probably too ugly for r/unixporn, but works for me :)

-

Installation

-

Getting a Live USB going

-
    -
  • I used the minimal iso.
  • -
  • Create a bootable USB with the usual - sudo dd if=/path/to/iso of=/dev/sdX bs=4M.
  • -
  • Boot up.
  • -
  • Then start following the steps for manual installation -from the official guide to complete the install.
  • -
-
-

Make sure to give SWAP as much space as your memory capacity for hibernation to work properly.

-
-
-

Wifi did not work for me out of the box. So I used my phone to tether via USB.

-
-

First boot

-

If everything went well, you should be presented with a TTY prompting you to login:

-
NixOS ...
-Login: <your username>
-Password: <your password>
-

Once you login, you will still just have a TTY, but we can now go ahead and start -installing our graphical environment.

-

Housekeeping

-
    -
  • You should have two NixOS config files in /etc/nixos/:
  • -
-
configuration.nix
-hardware-configuration.nix
-
    -
  • -

    Edit the configuration.nix file by setting the correct values for hostname, networking, timezone and users. I also add a few basic system-wide packages here such as git, rsync, neovim, htop etc.

    -
  • -
  • -

    To apply and use your changes to any of these files you need to run:

    -
  • -
-
sudo nixos-rebuild switch
-
    -
  • Since we want all our configuration to be version controlled, -I copied these files to live under my user’s config: -~/.config/{nix, nixpkgs}/:
  • -
-
cp /etc/nix/nix.conf ~/.config/nix/nix.conf
-cp /etc/nixos/configuration.nix ~/.config/nixpkgs/configuration.nix
-

Nix will now use these user-specific files to read its config :)

-

Flakes Support

-

Nix (the pkg mgr) does not come with Flakes support out-of-the-box. -So we need to enable it:

-
    -
  1. In ~/.config/nix/nix.conf add:
  2. -
-
experimental-features = nix-command flakes
-
    -
  1. Apply it:
  2. -
-
sudo nixos-rebuild switch
-

Read about Flakes.

-

Home Manager Support

-

Now we can install the Home-Manager flake.

-
    -
  1. Init our base flake:
  2. -
-
cd ~/.config/nixpkgs
-nix flake init
-

This should generate two files:

-
flake.nix
-flake.lock
-
    -
  1. Next we tell flake.nix to manage all our configuration (system + home) for our system:
  2. -
-
{
-  description = "NixOS configuration";
-
-  inputs = {
-    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
-    home-manager.url = "github:nix-community/home-manager";
-    home-manager.inputs.nixpkgs.follows = "nixpkgs";
-    nixos-hardware.url = "github:NixOS/nixos-hardware/master";
-  };
-
-  outputs = inputs@{ nixpkgs, home-manager, nixos-hardware, ... }: {
-    nixosConfigurations = {
-      # Change below to use your hostname from configuration.nix
-      "art-sr" = nixpkgs.lib.nixosSystem {
-        system = "x86_64-linux";
-        modules = [
-          ./configuration.nix
-          nixos-hardware.nixosModules.framework
-          home-manager.nixosModules.home-manager
-          {
-            home-manager.useGlobalPkgs = true;
-            home-manager.useUserPackages = true;
-      	    # Change below to use your username from configuration.nix
-            home-manager.users.kdam0 = import ./home.nix;
-
-            # Optionally, use home-manager.extraSpecialArgs to pass
-            # arguments to home.nix
-          }
-        ];
-      };
-    };
-  };
-}
-
-

“art-sr” is my hostname for this machine.

-
-

In my case, I also have the following two lines specifically to load settings for my hardware:

-
    nixos-hardware.url = "github:NixOS/nixos-hardware/master";
-    ...
-          nixos-hardware.nixosModules.framework
-

you will need to modify these values based on your hardware support.

-
    -
  1. Create a ~/.config/nixpkgs/home.nix file with your values:
  2. -
-
{ config, pkgs, ...}: 
-{
-  home.username = "kdam0";
-  home.homeDirectory = "/home/kdam0";
-
-  programs.home-manager.enable = true;
-  home.stateVersion = "22.11";
-
-  services.gpg-agent = {
-    enable = true;
-    defaultCacheTtl = 1800;
-    enableSshSupport = true;
-  };
-}
-
    -
  1. Apply:
  2. -
-
sudo nixos-rebuild switch
-
-

It took a few attempts to get NixOS to re-build successfully. -I ran into a few different issues involving users, and hostnames -while following the official docs until I arrived at the configs above which worked.

-
-

Read about Home Manager flake.

-

This would be a good time init a git repo in ~/.config/nixpkgs/ and publish your progress.

-

Setting up the GUI

-

Window Manager + bar + system info.

-

Getting dwl is easy enough. In my home.nix:

-
  home.packages = [
-    pkgs.dwl
-    ...
-  ];
-

This will install dwl on a rebuild. -Then I can run it with dwl.

-

Oh it fails…something about permissions… -In ~/.config/nixpkgs/configuration.nix make sure you have:

-
  security.polkit.enable = true;
-

Oh it fails again with GLE errors :( Add:

-
  hardware.opengl = {
-    enable = true;
-    driSupport = true;
-  };
-

Sweet now it launches!

-

But of course I need to configure the keys - that’s the whole point of a WM. -Additionally, dwl requires a re-build on every config change…

-

How do I tell Nix to use my config file while installing/building dwl?

-

Lucking all packages (pkgs.*) build files are defined on their GitHub. -We can see that we are allowed to pass in a conf argument to -this -file.

-

After a bit of digging around, I arrived at how to do it:

-
    -
  1. First copy your config.h to ~/.config/nixpkgs/dwl/config.h.
  2. -
  3. Then point to it in your home.nix:
  4. -
-
  home.packages = [
-    (pkgs.dwl.override {
-      # trying to supply config.home.homeDirectory here leads to "impure" usage.
-      # so disabling it for now.
-      # conf = (builtins.readFile "${config.home.homeDirectory}/.config/dwl/config.h");
-      conf = ./dwl/config.h;
-    })
-    ...
-  ];
-
-

I know I can just clone the source myself and build it, but I like to use the default -package manager whenever possible to manage packages.

-
-

Of course since dwl is as minimal as it gets, it does not ship with a bar. -We have many options for which bar to use, -I have very little use for a bar, so I kept it very simple and went with somebar:

-
  home.packages = [
-    ...
-    pkgs.somebar
-    ...
-  ];
-

If you want status info on your bar you can use something like someblocks - which will -let you script simple scripts with text output you want displayed in each block. -This will need to be cloned and built manually as it is not available in the Nix repos.

-

Oh but you probably don’t have make or any requirements to actually build it…fear not:

-
nix-shell -p gnumake
-

which put you in a temporary environment with all the common build tools available. -Now you can:

-
sudo make install
-

wbg is a simple background setter for Wayland……aaaand BAM!

-

dwl pic

-

Terminal

-

I use foot.

-

Create the config file in ~/.config/nixpkgs/foot/foot.ini:

-
# for transparency #
-[colors]
-alpha=0.7
-

Use it in home.nix:

-
  home.file.".config/foot/foot.ini".source = ../../common/foot/foot.ini;
-
-

I use this pattern for pretty much all my dotfiles:

-
-
  # script that sets a bg.
-  home.file."bg.sh".source = common/bg.sh;
-  # script that starts my gui env.
-  home.file."start.sh".source = common/start.sh;
-  # foot config
-  home.file.".config/foot/foot.ini".source = common/foot/foot.ini;
-  # wofi config (app launcher)
-  home.file.".config/wofi/style.css".source = common/wofi/style.css;
-  # mako config (notifications)
-  home.file.".config/mako/config".source = common/mako/config;
-

Sound

-

In my configuration.nix:

-
  security.rtkit.enable = true;
-  services.pipewire = {
-    enable = true;
-    alsa.enable = true;
-    alsa.support32Bit = true;
-    pulse.enable = true;
-    wireplumber.enable = true;
-    media-session.enable = false;
-    jack.enable = true;
-    systemWide = false;
-  };
-

Nextcloud

-

I want a purely CLI way to handle this, and a periodic sync is sufficient for me. -We do this with systemd-timers (Nix advises against cron). -In my home.nix:

-
  systemd.user.services = {
-    nextcloud-sync = {
-      Unit = {
-        Description = "Auto sync Nextcloud";
-        After = "network-online.target";
-      };
-      Service = {
-        Type = "simple";
-        EnvironmentFile = "${config.home.homeDirectory}/.nextcloud.env";
-        ExecStart = ''
-          ${pkgs.nextcloud-client}/bin/nextcloudcmd \
-          -h --non-interactive \
-          --user "''${NEXTCLOUD_USER}" \
-          --password "''${NEXTCLOUD_PASSWORD}" \
-          ''${NEXTCLOUD_DIR} \
-          ''${NEXTCLOUD_URL}
-        '';
-        TimeoutStopSec = "180";
-        KillMode = "process";
-        KillSignal = "SIGINT";
-      };
-      Install.WantedBy = ["multi-user.target"];
-    };
-  };
-  systemd.user.timers = {
-    nextcloud-sync = {
-      Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 10 minutes";
-      Timer.OnUnitActiveSec = "10min";
-      Install.WantedBy = ["multi-user.target" "timers.target"];
-    };
-  };
-  systemd.user.startServices = true;
-

Conclusions

-
    -
  1. Yes setting things up from a minimal iso is harder than in Manjaro. -Although I got everything I wanted working, there were many times I felt -like giving up. (Aside: I am so grateful for Manjaro, and Arch wikis). -That said, I expect this friction is a one-time cost for building familiarity with Nix, -and well worth the benefits that come with it.
  2. -
  3. You bet Wayland is ready. Multi-monitor works out-of-the-box, -all my apps support it, and things just feel more polished than I have ever felt with Xorg.
  4. -
  5. dwl is as awesome as I had hoped! This is my daily driver now.
  6. -
-

My configs

-

All the configs discussed (and more) are in my nixdotfiles repo.

-
-
- -
- -
-
-
- -

Links

-

Git, email, and resume

-
- - - -
-
-
-

Guide to getting started with NixOS the modern way.

- -

- By Kumar Damani, - 2023-03-24 -

- - - - -
-
- -

- - - - - - - - - - -

-

- - -
- -
- - - diff --git a/public/post/nixos-p1/rice.png b/public/post/nixos-p1/rice.png deleted file mode 100644 index 4fd97cf..0000000 Binary files a/public/post/nixos-p1/rice.png and /dev/null differ diff --git a/public/post/programming-as-art/code.png b/public/post/programming-as-art/code.png deleted file mode 100644 index 30c3522..0000000 Binary files a/public/post/programming-as-art/code.png and /dev/null differ diff --git a/public/post/programming-as-art/index.html b/public/post/programming-as-art/index.html deleted file mode 100644 index 32ff96c..0000000 --- a/public/post/programming-as-art/index.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - Romanticism in Programming – Kumar Damani - Home - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-

Romanticism in Programming

-
- -
-

Why there is art in programming.

-

During my early days as a CS student, one of the first mind-blowing moments was -watching Hello World! getting printed out to the console thousands of times -in just two functional lines of code.

-
for _ in range(1, 1001):
-  print("Hello World!")
-

At the time it felt like having the Elder Wand. -Dumbledore with Elder Wand pic

-

But there was more to our lesson. -The TA then asks us to put our newly found power to use by computing the -sum of 1 to 100. Of course, it was a natural application of what we had just done earlier:

-
sum = 0
-for i in range(1, 100+1):
-  sum = sum + i
-

Sure enough we saw the answer 5050 in the console. -But then the TA reminds us that we are making our computers work too hard. -In other words, the computer needs to do one-hundred ADD instructions in order to make this computation happen.

-

What if the number was a million? How well would our method scale?

-

Well then it would take a million ADD instructions. -We call this scaling linearly with the input size. -Later we would formalize this to $\mathcal{O}(n)$ (pronounced: Big Oh of N).

-

The TA hinted that there is a better way, and that we already know of the better way in math.

-

Teaching meme

-

$\displaystyle S_n = \sum\limits_{i=1}^n i = 1 + 2 + … + n = \frac{n (n + 1)}{2}$

-

With this we are no longer using loops, but a known mathematical fact about sequences. -If you don’t belive me, see the proof.

-

Written as code:

-
sum = n (n + 1) / 2
-

This one-liner solves our problem with just 3 (ADD, MULTIPLY, DIVIDE) instructions. -Crucially, it does not depend on the size of the input like our previous solution, thus -no matter the input, it always takes 3 instructions to compute! -This is a HUGE win!

-

Math meme

-

Later we would formalize this to $\mathcal{O}(1)$, or constant scaling.

-
-

Yes, yes I know IRL the complier would optimize the loop solution -such that it does not take N instructions but for the purposes of -learning we were not allowed to depend on that.

-
-

Looking back at it now, -both solutions are equally correct, and modern compilers would optimize the first solution -in the final instructions sent to the cpu, such that any performance differences would be negligible. -In other words, the computer wouldn’t acutally be working so hard.

-

Objectively, the first solution is more readable, and friendly to a new observer than the second.

-

Why then am I still so drawn to the second solution?

-

The first solution reminds me of the saying “to a hammer, eveything looks like a nail”. -Its a brute force approach. -In comparison, the second solution is using the exact tool for our particular problem. -It somehow feels personalized and dare I say romantic.

-

When I reflect on moments like this, it reminds me that there is emergent elegance and beauty -even in the seemingly arbitrary sequence of symbols that is code. -The Matrix code going by image

-

Programming is not quite as objective as people would have you believe. -There are trade-offs to each solution, and which solution you prefer relect on the trade-offs -you are willing to accept, which varies by the observer: much like art.

-
-
- -
- -
-
-
- -

Links

-

Git, email, and resume

-
- - - -
-
-
-

How programming is romantic.

- -

- By Kumar Damani, - 2022-11-29 -

- - - - -
-
- -

- - - - - - - - - - -

-

- - -
- -
- - - diff --git a/public/post/programming-as-art/math.png b/public/post/programming-as-art/math.png deleted file mode 100644 index bbdc372..0000000 Binary files a/public/post/programming-as-art/math.png and /dev/null differ diff --git a/public/post/programming-as-art/teaching.png b/public/post/programming-as-art/teaching.png deleted file mode 100644 index 9bf5dce..0000000 Binary files a/public/post/programming-as-art/teaching.png and /dev/null differ diff --git a/public/post/programming-as-art/wand.png b/public/post/programming-as-art/wand.png deleted file mode 100644 index 5eefc9c..0000000 Binary files a/public/post/programming-as-art/wand.png and /dev/null differ diff --git a/public/post/programs/index.html b/public/post/programs/index.html deleted file mode 100644 index 067706d..0000000 --- a/public/post/programs/index.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - Programs and Equipment – Kumar Damani - Home - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-

Programs and Equipment

-
- -
-

The programs and equipment I use on a daily basis.

-

Programs and Equipment I Use

-

I’m about getting things done quickly and having as little space between -my thoughts and actions on the computer.

-

I like having vim-like bindings and prefer running programs in the terminal for simplicity’s sake. -That said, I’m very much against the cringe meme that things in the terminal are “cooler” or “nerdier” XD. -Terminals are good for most tasks, but useless for others, for example, browsing the web -(I admit this unfortunate fact with much consternation) or looking at maps.

-

Software I Use

-

OS Distribution

-

Manjaro (stable) though this is a bit of a moot point since there’s been a lot of convergence among the -popular distros recently especially since they all offer some dedicated channel for getting up-to-date -software. The real day-to-day difference to workflow comes from the choice of desktop environment. -I do like Debian, and Fedora as well.

-

Desktop Environment

-

I’ve settled on KDE Plasma w/ Wayland after many years of hopping. -Plasma comes with all the tools you’d expect to see in a modern desktop, -and for the most part these tools are perfectly capable of doing the task they are meant to do. -Prior to KDE, I’ve used Dwm/Bsmpw + Sxhkd, i3 etc. I’m glad these exist and people get -use out of it, but for now I do not miss it - I’m sure that will eventually change too.

-

KDE Plasma

-

Text Editor

-

(neo)vim. Less of a text editor and more of a lifestyle. Check out my dotfiles for this. -No, I’m not going to ever switch to emacs.

-

Neovim

-

Web Browser

-

Firefox / -Brave / -Vivaldi. -I have tried, Chromium, Qutebrowser in the past.

-

File Manager

-

nnn. Yes, I have used ranger.

-

nnn

-

Where can I find good software options?

-

The program of your dreams is probably listed below:

-
    -
  • The suckless website’s list of programs that “rock”. -Generally minimalist programs.
  • -
  • A more comprehensive list -of minimalist software.
  • -
  • FSF’s Free Software Directory. -Emphasis on libre software (although most software in the links above will have free licenses as well).
  • -
  • Gentoo Wiki Recommendations -A good mix of programs for novices and advanced users.
  • -
-

Hardware I Use

-

Laptop

-

The main laptop I use is the Framework laptop. -I’m a huge fan of the whole upgradability concept coming from a few generations of ThinkPads.

-

What I don’t use

-

Proprietary software.

-

I’m not going to endorse proprietary services that have gone out of their way to spy on or politically -suppress their users, just as Facebook, Discord etc. -One of the many take-aways you should get from me is that the use of libre/free software, -by its nature, is more constructive and extensible; and that’s the point.

-

There are philosophical reasons for this I’ll talk about in time, but for now, -suffice it to say I will not endorse the usage of proprietary software.

-
-
- -
- -
-
-
- -

Links

-

Git, email, and resume

-
- - - -
-
-
-

Overview for the programs and equipment I use day-to-day.

- -

- By Kumar Damani, - 2021-11-12 -

- - - - -
-
- -

- - - - - - - - - - -

-

- - -
- -
- - - diff --git a/public/post/self-host/6imv05.jpg b/public/post/self-host/6imv05.jpg deleted file mode 100644 index d042d7a..0000000 Binary files a/public/post/self-host/6imv05.jpg and /dev/null differ diff --git a/public/post/self-host/elections.jpg b/public/post/self-host/elections.jpg deleted file mode 100644 index ac4ac96..0000000 Binary files a/public/post/self-host/elections.jpg and /dev/null differ diff --git a/public/post/self-host/freedom.jpg b/public/post/self-host/freedom.jpg deleted file mode 100644 index d62048a..0000000 Binary files a/public/post/self-host/freedom.jpg and /dev/null differ diff --git a/public/post/self-host/index.html b/public/post/self-host/index.html deleted file mode 100644 index f1ec3b7..0000000 --- a/public/post/self-host/index.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - Why do I self-host? – Kumar Damani - Home - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-

Why do I self-host?

-
- -
-

My reasons for self-hosting.

-

Digital freedom/independence

-

Freedeom pic

-

To put it simply, if you use a service such as Lastpass, iCloud, Dropbox, GDrive, OneDrive, etc. -to store your data, you do not own it.

-

You are trusting corp. X to store it, secure it, and make it available to you. -Beyond the obvious privacy pitfalls with this, there are many other things that -could go wrong with your data being stored this way:

-
    -
  • Corp. X could vanish/close/“declare bankruptcy” (as with many crypto corps. lately), and you lose your data.
  • -
  • Corp. X could make a policy change and lock you out from accessing your account.
  • -
  • Or you could “forget” to pay the bills a few times and get locked out.
  • -
  • Corp. X could get hacked, and your data gets stolen. This is the latest trend!
  • -
  • Many other doomsday 💀 scenarios.
  • -
-

Personally, I don’t feel comfortable depending on the existence of corp. X for data that is important to -me i.e. a lifetime’s worth of documents, memories, and passwords etc. -I 💤 much better at night knowing I am avoiding most if not all of the risks above.

-

Privacy

-

Normies often ask me some variation of:

-
    -
  • Why do I care if corp. X has my data? I have nothing to hide!
  • -
  • Since I’m aware of targeted advertising, it won’t work on me, -so why should I care if corp. X has my data?
  • -
-
my pic -
- -

To such questions, I follow-up with:

-
-

Do you want to contribute to a dystopian (Orwellian future?

-
-
thought police -
- -

If your answer is yes, then no need to read further, the following will not change your mind.

-

If your answer is no, but you aren’t convinced that/how these are related, -then the argument goes something like this…

-
    -
  • We live in a world of mass data-collection/surveillance.
  • -
  • This enables corp. X to use techniques such as ML (Machine Learning) to build/train models (or “AI” - -Artificial Intelligence)that aim to predict human behaviour.
  • -
  • That by itself is not a problem here.
  • -
  • The problems arise when corp. X use these techniques for profit without -regard for the harm they cause at a population level.
  • -
-

I have unfortunately lived through enough of these cases to be able to cite a few recent examples:

-
    -
  • -

    Instagram (etc.) designs its apps/products optimizing for maximum addiction1. -Think slot-machines. -You might think you are “too smart” to fall for these tricks, and you might be right, -but what about the millions of adolescents using these platforms who aren’t as wise as you? -The data collected, and techniques developed from your usage enables platforms -to target not only you, but all users on the platform, including the most vulnerable.

    -

    Unfortunately, many of these kids will end up suffering from mental-health, -body-image, self-esteem issues2, -and for some it will be fatal. -I do not think this is morally acceptable, and is primary reason I refuse -to participate in social-media platforms.

    -

    Depression

    -
  • -
-

You could say “well that’s due to bad parenting”, but the point remains that -more and more of the digital world is having real world negative consequences regardless of -your individual participation level. Another example:

-
    -
  • -

    By now its well known that Facebook’s (etc.) targeted advertising -played a significant a role in the 2016 US Elections3. -Facebook was able to do this thanks to its users voluntarily giving personal information for two decades. -However, the policies that come out of this election has real world consequences to millions -(if not billions) of people, regardless of their individual Facebook usage, which -undermines the very purpose of a democratic republic. -Regardless of your political affiliation, it should worry you that this can happen.

    -

    Elections

    -
  • -
-

To summarize, it might not be a problem if individuals disregard their -privacy at the individual level, but in aggregate, a population-wide disregard -has dystopian consequences.

-

So the question you have to ask yourself is:

-
-

What can I do?

-
-

Start by valuing your privacy. -Then, follow some of these tips to say no…

-
    -
  • Limit your exposure to these services. If a friend stops talking to you because -of this, then congratulations, you’ve just gotten rid of a fake friend. You’re welcome.
  • -
  • Self-host -as much as you can. -You can see how I implement this and replicate it yourself, -though it is a bit involved for normies.
  • -
  • If neither of the above work for you, then you’ll need to do some research to -find an alternative source that you can trust isn’t doing the same thing. -Use this -as a starting point and try to search (Ctrl+f) for your service. For eg. Twitter, and -Instagram both have popular options available.
  • -
  • Stop using Chrome. If you must use it, use Brave instead. -I advocate for Firefox. -Neither are perfect, but both offer privacy respecting options in their settings. -Specifically disabling cross-site tracking is important. -Beyond that, install an ad-blocker extension such as UBlock Origin -on both of them. Don’t forget to do the same on your mobile device!
  • -
  • Things get more complicated on cell-phones. -I suggest switching to a privacy respecting operating-system such as GrapheneOS -Short of this, you can only limit your usage.
  • -
  • Support government policies that respect user-privacy.
  • -
-
office pic -
- - -
-
- -
- -
-
-
- -

Links

-

Git, email, and resume

-
- - - -
-
-
-

Overview of why I self-host.

- -

- By Kumar Damani, - 2022-09-12 -

- - - - -
-
- - - -
- - - diff --git a/public/post/self-host/office.png b/public/post/self-host/office.png deleted file mode 100644 index 9cff3ce..0000000 Binary files a/public/post/self-host/office.png and /dev/null differ diff --git a/public/post/self-host/police.jpg b/public/post/self-host/police.jpg deleted file mode 100644 index dde2b44..0000000 Binary files a/public/post/self-host/police.jpg and /dev/null differ diff --git a/public/post/self-host/why.jpg b/public/post/self-host/why.jpg deleted file mode 100644 index eda5402..0000000 Binary files a/public/post/self-host/why.jpg and /dev/null differ -- cgit v1.2.3