Engineering for Evolution

The criteria for engineering a good user experience spans across diverse incentives.

Ease of use is the most well known one, but I find it to be subjective. A cognitive device that helps me when in the development cycle is a flavor of iterating with the question of “how do I make this more intuitive?”. This follows from the realization that even for measurement along qualitative dimensions, we generally find comparing two entities (and ranking them higher/lower) easier than to come up with an absolute measure of that quality and resuming with a global sort. Working on concrete iterations also allows me explicitly think out loud in terms of what worked and what did not and then abstract later on for future wisdom.

Flexible SWE Experiments

From time to time, I pick up a long running swe experiment : one where I choose to iteratively explore a domain by playing around with the ecosystem and tooling available. This is such a common occurence now that I’ve begun implicitly templatizing this process.

Surf a little, and this pops up: polylith : an optimal (at a first glance and first use and consequent uses and reglances and meditations as well) way of separating concerns in a monorepo, while allowing for rapid experimentation.

Setting up snapper on Arch

had thinkpad to spare; old opensuse tumbleweed; snapper on btrfs was convenient post mess ups.

don’t like distrohopping, like rolling releases, like docs, like snapper - installed arch (arch wiki’s great), will hijack with bedrock linux 1 some day.

installed with minimal defaults first(systemd-boot instead of grub), later decided to setup snapper : an involved process: crude state transitions as follows:

  • systemd-boot + UKI -> grub + initramfs
    • grub-btrfs convenience
    • readily shows snapper snapshots
  • setup pacman (pre and post mutation, temporal) snapper snapshot creation and cleanup hooks

been my DD for a while now : sway + waybar, wayland, gcc emacs, tmux, some handrolled CSS, a bunch of TUIs: been fun

Staples

  • Have converged onto a DE agnostic workflow.
  • need only a few keybinds to help me move across windows and monitors.
  • window estate management is done via emacs and tmux : don’t really need a tiling wm.
  • opencode when I’m not learning anything and mostly know what needs to be done.
    • open a bunch of these in multiple tmux panes and you’re good.
  • a vim-keybinds enabled browser

there's a lisp for that

“For years, I’ve defended lisp in pragmatism oriented SWE back and forths with ’they’re all an AST underneath, anyway..”

Now that I’m writing lisp on the job, I’m in a “gotta catch’em all” kinda mood and thinking of elaborating upon the eccentricities in my upcoming blogs and videos.

There’s a lot of questions I have:
- when do you deploy which one?
- are there any bad ones?
- why does that one exist?
- ..

This Is Work Now

  • I’d always wanted to write production lisp: was dreaming about it since sophomore year of uni (~7 years to that): finally.., we’re here
  • going to start work on goose : along the way, chasing that lisp flow/enlightenment I once experienced long ago
  • post discussions with some folks, clojure isn’t supposed the vanilla lisp and aspects orthogonal to that mindset await to be grasped
  • going for a focused burst of immersion (practical coupled with a literature sweep (blogs, papers, books)) to really get a feel for what’s up
  • have been going easy for the past couple of years when it comes to levelling up on my lisp speak because there was always some work I had to get done
  • interesting that this is work now, long way..

hobbies

Onboarding my next batch of hobbies you would sorta care about:

  • software defined radio - was gifted (I asked for it explicitly) an RTL SDR kit
  • hacking - hacking the art of exploitation is my bedtime read
  • operating systems : writing an operating system - is what I promised my the (bit-mage)’s viewers lately : a promise, is a promise
  • random wikipedia : I’m bored of the world and sorta intellectually hangry

stuff you wouldn’t care about:

Pragmatic Opacity


This video explores a productivity workflow in Emacs that leverages window opacity, moving it beyond a purely aesthetic feature. The creator demonstrates how a translucent Emacs frame can be used as an overlay to view and control background applications, improving efficiency and saving screen real estate.

OSDEV[0x1]: Studying Strategy (for Writing an Operating System)


This video is the second part (0x1) of a series on writing an operating system. The creator, Raj, details the comprehensive studying and logging strategy he has designed to tackle this long-term project. The goal is to create a structured approach that fosters deep understanding, maintains motivation, and effectively manages the vast scope of the endeavor.