Historically, intercepting Linux system calls was done with ptrace . While ptrace is more commonly known for debugging purposes, one could easily monitor system calls by using PTRACE_SYSCALL (or even PTRACE_SYSEMU ) to wait for the traced process to make a system call, then send off PTRACE_GETREGS and PTRACE_SETREGS to read and write the registers associated with the system call. So while the…
Recently a blog post called JavaScript Bloat in 2024 made the rounds, essentially putting up a wall of shame for the most bloated websites, with Slack taking the crown shipping a whopping 55MB of bloat in Javascript alone. If this is what modern web development best practices have ended up in, then it is not surprising that people think they need a CDN, load balancing and a Kubernetes cluster just…
Introduction Like with any sane operating system, in Linux it is possible to set default applications for specific URI schemes, for example the Spotify desktop file contains the following line: MimeType = x-scheme-handler/spotify ; This effectively makes Spotify the default application to be opened when the user clicks on any spotify:// link. If there are ever multiple applications…
Introduction Similar to editing text, I feel like working with mails is a workflow worth optimizing. This is why I have been using mutt as my email client for several years now. And just like vim, mutt is a deep rabbit hole that one can easily spend years customizing to fit one's workflow perfectly. Following the Unix philosophy, I only use mutt for viewing mails. For mail processing and…
Here are some command line git tricks that I have come up with over the years to improve my efficiency. I will mostly focus on vanilla git commands because that is the interesting stuff, but it goes without saying that Github CLI is a good productivity boost as well. Unfortunately it only works with Github. You can also find all of the below snippets in my public dotfiles repo . Rebasing…