RSSAmplifier

Blog

Anirudh Oppiliappan

anirudh.fiRSS feed ↗72 posts

Latest posts

The strain in your brain

Do you feel it? 
 

 Do you remember the feeling? You’re reading something: something new and
complex. And you’re really trying—pushing through that strain in your brain.
Do you feel that anymore? 

 It’s a strange thing. As a programmer, it was that feeling that signalled to
me that I was learning something new. When the strain dissipated, I…

The founder box

Thinking inside boxes 
 For the entirety of my life up until a year ago, I put myself in a box.
A metaphorical box, categorized by my skills, interests and epistemic
scope. This was entirely self-imposed, but I suppose clinging onto
identity is only human. Let’s call this the “programmer box”. The term
is somewhat lossy but it serves the purpose here. The…

Building for the future

On Tangled's existence and direction 
 Also published at: https://icy.leaflet.pub/3m47cll72hs25 

 We set out to build Tangled for one simple reason: the existing options
just… suck. Some more, some less—but they all do in their own ways. 

 
 GitHub? Where do we even begin… 
 GitLab? Way too enterprise-y, and definitely not easy to self-host. 
…

atproto and ownership of identity

The new age of social-enabled apps 
 atproto is very exciting to me as it’s the
perfect abstraction between the identity and user data layer, and the
application layer. Compare that to the fediverse and some striking
differences become apparent. 

 On the fediverse, your application—Mastodon, Pleroma, WriteFreely,
whatever—and your user account are…

Push-based productivity

Getting told when to get things done 
 Way back in 2021, I wrote about my productivity endeavours ,
which were—in summary—me writing a list of todos in a notebook.
I still carry these around to quickly note stuff down or to summarise my
pursuits of the week every Sunday evening. 

 

 However, I quickly realised a glaring issue with this system: it…

Being better

My epistemic breakthrough to better living 
 A year and a half ago, I decided to go completely vegan. Actually,
scratch that—completely plant-based . I only went vegan about a year
ago 1 . It took six months for the reasoning to actually click . It’s
kind of like an optical illusion: you know it’s an illusion because it
says so, but it still takes you a while…

I am moving to Finland

This is what I was packing for 
 The past two weeks or so have felt like a fever dream. It’s been a
blurry daze ever since I received my passport from the Finnish Embassy
in New Delhi. I still can’t believe everything has finally materialized
and this move is actually happening. In about 10 hours from now, I will
be boarding my flight from Bangalore, transiting via…

2022 in review

Late again because I was busy packing 
 Quite possibly the “fastest” year I’ve experienced—it feels like
yesterday when 2022 began. I think I did a lot last year, contrary to
previous years where I felt I’d just squandered my time away. Which is
partly great because more content! But also not great, because I have to
write it. It’s not that I…

Installing OpenBSD on Oracle Cloud

It finally works in 7.2! 
 I’ve been trying to get OpenBSD to install on OCI since early last
year . As
described in my email to misc@, my intial method of installation was
rather unconventional: 

 
 Download the install image to tmpfs 
 dd it onto the host boot device (/dev/sda) 
 Reboot 
 

 This works perfectly for Alpine, I’ll have…

Unicode text input in ZMK

A hacky interim solution using macros 
 As a highly cultured em-dash (over-)user, being able to type ‘—’ easily
is very important to me. While waiting for
 zmkfirmware/zmk#232 to
get merged, I’ve discovered a rather nifty workaround for inputting
Unicode text. This method makes use of
 IBus and a ZMK macro. 

 Unicode input in IBus is done by…

The Logitech Ergo M575 trackball

A short review of my first ever trackball 
 Ever since switching to a split keyboard, using a mouse has been rather
awkward. Do I put it in between the two halves? Not enough space. Do I
put it to the right? Again, not enough space since that’s where my
notebook sits. And then there was the pain. I had to take routine breaks
from using the mouse due to pain on the…

Honkin' on the Fly

Running honk on fly.io 
 Update 2022–08–11 : As with literally every update of mine, I’m no
longer running honk on Fly. It’s way easier to simply run it on a server
myself, behind nginx. Huh—who knew? 

 For those unaware—first of all, how? it’s literally everywhere— fly.io is the new platform-as-a-service du jour. The
idea is…

The Asus ROG Flow X13

My hunt for a new laptop has finally concluded 
 

 I’ve been on the lookout for a new laptop for a while now. While the HP
Envy was good—is good—the measly 8 gigs of RAM was struggling to
hold in all the beefy stuff that I run these days (skaffold, k3s, etc.).
And it being a “budget” laptop of its time didn’t do its chassis…

Cloud (F)OSS is a good model

On building (mostly) open source startups 
 Of late, I’ve been thinking a lot about what makes a startup work, and I
think open sourcing your product—or a good portion of it—is a
great approach. To be clear, I’m only talking about SaaS platforms, and
not any other kind of product. Hence, I’m dubbing this as “Cloud FOSS”. 

 The…

2021 in review

The post-year ramble is here, slightly late this time 
 The last year was quite eventful to say the least, and I’d been putting
off on writing this retrospective simply because of the sheer number of
things that happened/I did, of varying levels of importance—both to
you as a reader, and me as… well, the one who experienced them. 

 I’ll try to…

Signal Desktop on OpenBSD via vmm(4)

X11 forwarding to the rescue 
 Early this year, I completely switched over to Signal and I’m fortunate enough
to have everyone that I talk to switch over as well. I know I wrote what some
might view as a hit piece on Signal , but I have immense respect
for the project and will continue to use it until an actually viable
alternative comes along. 

 Unfortunately,…

The quest to optimize productivity

This blog is devolving into a techbro cliché 
 Us folks in tech have this general obsession with productivity. It’s all
about getting the workflow just right . Or at least, that’s the goal.
Heck, there are entire companies built around optimizing productivity in
specific workflows—email, notes, tasks, etc. Suffice to say, there’s
a lot of activity in…

How I built forlater.email

A technical breakdown of my first big side-project 
 Ever since I began browsing sites like Hacker News and Lobsters, coming
across new and exciting links to check out every day, I found it hard to
keep up. On most days, I just didn’t. And that’s fine— good,
even . But oftentimes, I’d come across a genuinely
interesting link but no time to actually read…

Launching forlater.email

An email-based bookmarking service 
 This is a shill post. I’m launching my new side-project:
 https://forlater.email . It’s an email-based bookmarking service—you
send an email to save@forlater.email , get a readable, clutter-free
version of it back. 

 I’ll write a more technical post on how I built it; this weekend
perhaps. Until then, go try…

I can't take Formula E seriously

Toy cars racing in parking lots 
 For those unaware, Formula E ,
or rather, the ABB FIA Formula E World Championship 1 is the only
fully electric open-wheel racing sanctioned by the FIA. The first season
was in 2014 - 2015. 7 years later, it’s just as bad as before. 

 Formula E was supposed to be this new, revolutionary motorsport set to
eventually replace…

Writing a shell prompt in Go

Kinda faster than bash 
 For context, my bash prompt was previously written in, well,
bash .
It used to call out to git for getting the branch and worktree status
info. Parsing the output of git status and all that. It was ok, but I
wanted something … cleaner. 

 I chose Go, despite having written
 nicy in Nim 1 ; I’m in a Go-phase right
now, just…

Make cgit go gettable

go get git.icyphox.sh/* works! &#xA; go get requires the presence of the go-import meta tag 1 on the&#xA;repository&rsquo;s web page. cgit doesn&rsquo;t support it out of the box; instead,&#xA;we can make nginx inject it into every page. Enter: sub_filter . 2 &#xA;&#xA; sub_filter is a function that simply performs a string replace. For&#xA;example: &#xA;&#xA; location / {&#xA; sub_filter '<img…

Setting up a multi-arch Kubernetes cluster at home

My self-hosted infra, given the cloud native™ treatment &#xA; Update 2021&ndash;07&ndash;11 : It was fun while it lasted. I took down the&#xA;cluster today and probably won&rsquo;t go back to using it. It was way too&#xA;much maintenance, and Kubernetes really struggles with just 1GB of RAM&#xA;on a node. Constant outages, volumes getting corrupted (had to fsck ),&#xA;etc. Not worth the headache.…

Status update

A review of Q1 2021 &#xA; I realize I haven&rsquo;t done one of these in a while, a few &hellip;&#xA;status-update-worthy things have piled up. Bangalore is currently in a&#xA;lockdown after ranking in the top 3 worst COVID-hit cities, in India. As&#xA;such, I&rsquo;m sitting at home, in my home-office thing which now has an&#xA;extra monitor, writing this. We&rsquo;ve got a lot to talk…

Free software should not censor

If you write free software, don't deny freedom zero &#xA; Any software is free, if it grants the users the four essential&#xA;freedoms: &#xA;&#xA; &#xA; freedom 0 : The freedom to run the program as you wish, for any&#xA;purpose. &#xA; freedom 1 : The freedom to study how the program works, and change&#xA;it so it does your computing as you wish &#xA; freedom 2 : The freedom to redistribute copies…

Configuring Neovim using Lua

And switching from init.vim to init.lua &#xA; If you, like me, never really understood Vimscript and hate the language&#xA;with a passion, you&rsquo;re in the right place! You can now get rid of&#xA;Vimscript wholesale and replace it with a simpler, faster and elegant-er&#xA;language&mdash;Lua! However , this is only possible from Neovim 0.5&#xA;onwards 1 and as of now, requires you to install…

We can do better than Signal

Centralized silos are never the solution &#xA; Signal is possibly the most recommended pro-privacy instant&#xA;communication app&mdash;one that was commonplace in the hacker community,&#xA;and has now gained a lot of mainstream traction, thanks to WhatsApp&#xA;deciding to screw its userbase over. It certainly presents a more&#xA;compelling alternative than others in the same space, like…

What&#39;s next after WhatsApp?

Let's not act surprised here, this was bound to happen &#xA; Update 2021&ndash;01&ndash;17 : I&rsquo;m now using Signal. It&rsquo;s fine for now, but we&#xA;can do better . &#xA;&#xA; Ever since Facebook acquired WhatsApp for $19bn, it was blatantly&#xA;obvious that they wanted in on the massive userbase, and consequently,&#xA;the data they could collect. The acquisition wasn&rsquo;t all too bad…

2020 in review

Oh boy, here we go &#xA; It&rsquo;s been a little over 9 months since the day I left my university&#xA;dorms (got kicked out, rather), in light of the&#xA;pandemic . I have my finals going on right now, and 5 days to go&#xA;for the next examination&mdash;a great time to reflect on what I managed to&#xA;do this year. So here I am, sitting at my little home office-thing, with&#xA;a bad cold&mdash;as…

My music streaming setup

Think Spotify, but self-hosted and not as good &#xA; Having a self-hosted, centralized music streaming setup has been on my&#xA;todo list for the longest time. I&rsquo;d initially tried using NFS, but&#xA;mounting it on my phone was very inconvenient. Incidentally, a few days&#xA;ago, the existence of Subsonic/*sonic became known to me. &#xA;&#xA; gonic &#xA;&#xA; I found gonic to be the simplest…

The Workman keyboard layout

I have a lot of free time on my hands (heh) &#xA; I&rsquo;ve been at my computer everyday, for at least 10 hours at minimum.&#xA;These past ~6 - 7 months have been the most I&rsquo;ve ever used my computer.&#xA;Eventually, I started experiencing discomfort and pain&mdash;especially in&#xA;my pinkie finger. Typing became a chore, and I found myself using my&#xA;shell&rsquo;s command history more…

My submissions for r2wars 2020

If I learnt one thing, it's that ARM is the future &#xA; r2wars is&#xA;a CoreWar -like game thar runs within the radare2&#xA; ESIL &#xA;virtual machine. In short, you have two programs running in a shared&#xA;memory space (1kb), with the goal of killing the other and surviving as&#xA;long as possible. r2wars was conducted as a part of&#xA; r2con2020 . &#xA;&#xA; day 1 &#xA;&#xA; My first…

Migrating from Mastodon to Pleroma

Mastodon bad. Pleroma good. &#xA; If you&rsquo;ve been following me on the fediverse, you would&rsquo;ve witnessed my&#xA;numerous (failed) attempts at migrating from Mastodon to Pleroma,&#xA;running on my Raspberry Pi. I finally got it working, and these are the&#xA;steps I took. It&rsquo;s sort of a loose guide you could follow, but I can&rsquo;t&#xA;promise it&rsquo;ll work for you. &#xA;&#xA;…

The Ducky One 2 SF

I fell for the mechanical keyboard meme &#xA; Thanks to the pandemic yada yada I&rsquo;ve been working from home (and&#xA;attending college from home), and I figured my WFH setup could use an&#xA;upgrade. Unfortunately, the choices for mechanical keyboards in India are&#xA;fairly limited. All imports from China don&rsquo;t get through, and imports&#xA;from elsewhere have a fat duty slapped on…

Some thoughts on Twitter

I've begun avoiding Twitter, here's why &#xA; This post has been a long time coming. Earlier this year, I decided to&#xA;not actively participate on Twitter, and stick to the fediverse&#xA;primarily. This has been quite possibly the best decision I&rsquo;ve made,&#xA;with regard to curating my social / informational feeds&mdash;apart from&#xA; not reading news . I&rsquo;ll try to gloss over some…

Status update

Things I've been up to, for the past month-ish &#xA; I realize I haven&rsquo;t updated this site in a while&mdash;mostly due to lack&#xA;of time. The past two weeks have been pretty busy (read: I now actually&#xA;have work to do), which also means I have very little time to devote to&#xA;personal projects. Anyway, on with the update. &#xA;&#xA; I now work at CometChat &#xA;&#xA; I&rsquo;ve begun…

Flask-JWT-Extended × Flask-Login

Apparently I do webshit now &#xA; For the past few months, I&rsquo;ve been working on building a backend for&#xA; $STARTUP , with a bunch of friends. I&rsquo;ll probably write in detail about&#xA;it when we launch our beta. The backend is your bog standard REST API,&#xA;built on Flask&mdash;if you didn&rsquo;t guess from the title already. &#xA;&#xA; Our existing codebase heavily relies on&#xA;…

You don&#39;t need news

My hot 'n' spicy take on 'news' today &#xA; News&mdash;the never ending feed of information pertaining to &ldquo;current&#xA;events&rdquo;, politics, trivia, and other equally useless junk. News today is&#xA;literally just this: &ldquo;<big name person> did/said <dumb thing>!&rdquo;,&#xA;&ldquo;<group> protests against <bad thing>!&rdquo;, and so on. Okay, shit&rsquo;s going&#xA;on in this world.…

Migrating to the RPi

Raspberry Pi shenanigans, and other things &#xA; I&rsquo;d ordered the Raspberry Pi 4B (the 4GB variant), sometime early&#xA;this year, thinking I&rsquo;d get to self-hosting everything on it as soon as&#xA;it arrived. As things turn out, it ended up sitting in its box up until&#xA;two weeks ago&mdash;it took me that long to order an SD card for it. No,&#xA;I didn&rsquo;t have one. Anyway, from…

Site changes

New stuff at the {back,front}end &#xA; The past couple of days, I&rsquo;ve spent a fair amount of time tweaking this&#xA;site. My site&rsquo;s build process involves&#xA; vite and a bunch of&#xA; scripts . These&#xA;scripts are executed via vite&rsquo;s pre- and post-build actions. The big&#xA;changes that were made were performance improvements in the&#xA; update_index.py script, and the addition…

The efficacy of deepfakes

Can we really write it off as 'not a threat'? &#xA; A few days back, NPR put out an article discussing why deepfakes aren&rsquo;t&#xA;all that powerful in spreading disinformation.&#xA; Link to article . &#xA;&#xA; According to the article: &#xA;&#xA; &#xA; &ldquo;We&rsquo;ve already passed the stage at which they would have been most&#xA;effective,&rdquo; said Keir Giles, a Russia specialist with…

Simplicity (mostly) guarantees security

This is why I meme mnmlsm so much &#xA; Although it is a very comfy one, it&rsquo;s not just an aesthetic. Simplicity&#xA;and minimalism, in technology, is great for security too. I say &ldquo;mostly&rdquo;&#xA;in the title because human error cannot be discounted, and nothing is&#xA;perfect. However, the simpler your tech stack is, it is inherentely more&#xA;secure than complex monstrosities.…

The S-nail mail client

And how to achieve a usable configuration for IMAP/SMTP &#xA; TL;DR: Here&rsquo;s my .mailrc . &#xA;&#xA; As I&rsquo;d mentioned in my blog post about mael , I&rsquo;ve been on&#xA;the lookout for a good, usable mail client. As it happens, I found&#xA;S-nail just as I was about to give up on mael. Turns out writing an MUA&#xA;isn&rsquo;t all too easy after all. S-nail turned out to be the perfect…

Stop joining mastodon.social

Do you even understand federation? &#xA; No, really. Do you actually understand why the Mastodon network exists,&#xA;and what it stands for, or are you just LARPing? If you&rsquo;re going to just&#xA;cross-post from Twitter, why are you even on Mastodon? &#xA;&#xA; Okay, so Mastodon is a &ldquo;federated network&rdquo;. What does that mean? You&#xA;have a bunch of instances, each having their own…

OpenBSD on the HP Envy 13

I put a blowfish in my laptop this week &#xA; My existing KISS install broke because I thought it would be a great&#xA;idea to have apk-tools &#xA;alongside the kiss package manager. It&rsquo;s safe to say, that did not end&#xA;well&mdash;especially when I installed, and then removed a package. With&#xA;a semi-broken install that I didn&rsquo;t feel like fixing, I figured I&rsquo;d…

The Zen of KISS Linux

My thoughts on the distro, the philosophy and my experience in general &#xA; I installed KISS early in January on my main&#xA;machine&mdash;an HP Envy 13 (2017), and I have since noticed a lot of changes&#xA;in my workflow, my approach to software (and its development), and in&#xA;life as a whole. I wouldn&rsquo;t call KISS &ldquo;life changing&rdquo;, as that would be&#xA;overly dramatic, but it…

Introducing mael

An experimental mail client &#xA; Update : The code lives here: https://github.com/icyphox/mael &#xA;&#xA; I&rsquo;ve been on the lookout for a good terminal-based email client since&#xA;forever, and I&rsquo;ve tried almost all of them. The one I use right now&#xA;sucks a little less&mdash; aerc . I have&#xA;some gripes with it though, like the problem with outgoing emails not&#xA;getting copied…

COVID-19 disinformation

A lot of actors cashing in on the epidemic &#xA; The virus spreads around the world, along with a bunch of disinformation&#xA;and potential malware / phishing campaigns. There are many actors,&#xA;pushing many narratives&mdash;some similar, some different. &#xA;&#xA; Interestingly, the three big players in the information warfare&#xA;space&mdash;Russia, Iran and China seem to be running similar…

Nullcon 2020

An opinion-filled review of Nullcon Goa, 2020 &#xA; Disclaimer : Political. &#xA;&#xA; This year&rsquo;s conference was at the Taj Hotel and Convention center, Dona&#xA;Paula, and its associated party at Cidade de Goa, also by Taj.&#xA;Great choice of venue, perhaps even better than last time. The food was&#xA;fine, the views were better. &#xA;&#xA; With those things out of the…

Setting up Prosody for XMPP

I setup Prosody yesterday—here's how I did it &#xA; Remember the IRC for DMs article I wrote a while&#xA;back? Well&hellip;it&rsquo;s safe to say that IRC didn&rsquo;t hold up too well. It first&#xA;started with the bot. Buggy code, crashed a lot&mdash;we eventually gave up&#xA;and didn&rsquo;t bring the bot back up. Then came the notifications, or lack&#xA;thereof. Revolution IRC has a bug where…