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…
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…
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. 
…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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,…
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…
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…
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…
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…
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…
go get git.icyphox.sh/* works! 
 go get requires the presence of the go-import meta tag 1 on the
repository’s web page. cgit doesn’t support it out of the box; instead,
we can make nginx inject it into every page. Enter: sub_filter . 2 

 sub_filter is a function that simply performs a string replace. For
example: 

 location / {
 sub_filter '<img…
My self-hosted infra, given the cloud native™ treatment 
 Update 2021–07–11 : It was fun while it lasted. I took down the
cluster today and probably won’t go back to using it. It was way too
much maintenance, and Kubernetes really struggles with just 1GB of RAM
on a node. Constant outages, volumes getting corrupted (had to fsck ),
etc. Not worth the headache.…
A review of Q1 2021 
 I realize I haven’t done one of these in a while, a few …
status-update-worthy things have piled up. Bangalore is currently in a
lockdown after ranking in the top 3 worst COVID-hit cities, in India. As
such, I’m sitting at home, in my home-office thing which now has an
extra monitor, writing this. We’ve got a lot to talk…
If you write free software, don't deny freedom zero 
 Any software is free, if it grants the users the four essential
freedoms: 

 
 freedom 0 : The freedom to run the program as you wish, for any
purpose. 
 freedom 1 : The freedom to study how the program works, and change
it so it does your computing as you wish 
 freedom 2 : The freedom to redistribute copies…
And switching from init.vim to init.lua 
 If you, like me, never really understood Vimscript and hate the language
with a passion, you’re in the right place! You can now get rid of
Vimscript wholesale and replace it with a simpler, faster and elegant-er
language—Lua! However , this is only possible from Neovim 0.5
onwards 1 and as of now, requires you to install…
Centralized silos are never the solution 
 Signal is possibly the most recommended pro-privacy instant
communication app—one that was commonplace in the hacker community,
and has now gained a lot of mainstream traction, thanks to WhatsApp
deciding to screw its userbase over. It certainly presents a more
compelling alternative than others in the same space, like…
Let's not act surprised here, this was bound to happen 
 Update 2021–01–17 : I’m now using Signal. It’s fine for now, but we
can do better . 

 Ever since Facebook acquired WhatsApp for $19bn, it was blatantly
obvious that they wanted in on the massive userbase, and consequently,
the data they could collect. The acquisition wasn’t all too bad…
Oh boy, here we go 
 It’s been a little over 9 months since the day I left my university
dorms (got kicked out, rather), in light of the
pandemic . I have my finals going on right now, and 5 days to go
for the next examination—a great time to reflect on what I managed to
do this year. So here I am, sitting at my little home office-thing, with
a bad cold—as…
Think Spotify, but self-hosted and not as good 
 Having a self-hosted, centralized music streaming setup has been on my
todo list for the longest time. I’d initially tried using NFS, but
mounting it on my phone was very inconvenient. Incidentally, a few days
ago, the existence of Subsonic/*sonic became known to me. 

 gonic 

 I found gonic to be the simplest…
I have a lot of free time on my hands (heh) 
 I’ve been at my computer everyday, for at least 10 hours at minimum.
These past ~6 - 7 months have been the most I’ve ever used my computer.
Eventually, I started experiencing discomfort and pain—especially in
my pinkie finger. Typing became a chore, and I found myself using my
shell’s command history more…
If I learnt one thing, it's that ARM is the future 
 r2wars is
a CoreWar -like game thar runs within the radare2
 ESIL 
virtual machine. In short, you have two programs running in a shared
memory space (1kb), with the goal of killing the other and surviving as
long as possible. r2wars was conducted as a part of
 r2con2020 . 

 day 1 

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

…
I fell for the mechanical keyboard meme 
 Thanks to the pandemic yada yada I’ve been working from home (and
attending college from home), and I figured my WFH setup could use an
upgrade. Unfortunately, the choices for mechanical keyboards in India are
fairly limited. All imports from China don’t get through, and imports
from elsewhere have a fat duty slapped on…
I've begun avoiding Twitter, here's why 
 This post has been a long time coming. Earlier this year, I decided to
not actively participate on Twitter, and stick to the fediverse
primarily. This has been quite possibly the best decision I’ve made,
with regard to curating my social / informational feeds—apart from
 not reading news . I’ll try to gloss over some…
Things I've been up to, for the past month-ish 
 I realize I haven’t updated this site in a while—mostly due to lack
of time. The past two weeks have been pretty busy (read: I now actually
have work to do), which also means I have very little time to devote to
personal projects. Anyway, on with the update. 

 I now work at CometChat 

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

 Our existing codebase heavily relies on
…
My hot 'n' spicy take on 'news' today 
 News—the never ending feed of information pertaining to “current
events”, politics, trivia, and other equally useless junk. News today is
literally just this: “<big name person> did/said <dumb thing>!”,
“<group> protests against <bad thing>!”, and so on. Okay, shit’s going
on in this world.…
Raspberry Pi shenanigans, and other things 
 I’d ordered the Raspberry Pi 4B (the 4GB variant), sometime early
this year, thinking I’d get to self-hosting everything on it as soon as
it arrived. As things turn out, it ended up sitting in its box up until
two weeks ago—it took me that long to order an SD card for it. No,
I didn’t have one. Anyway, from…
New stuff at the {back,front}end 
 The past couple of days, I’ve spent a fair amount of time tweaking this
site. My site’s build process involves
 vite and a bunch of
 scripts . These
scripts are executed via vite’s pre- and post-build actions. The big
changes that were made were performance improvements in the
 update_index.py script, and the addition…
Can we really write it off as 'not a threat'? 
 A few days back, NPR put out an article discussing why deepfakes aren’t
all that powerful in spreading disinformation.
 Link to article . 

 According to the article: 

 
 “We’ve already passed the stage at which they would have been most
effective,” said Keir Giles, a Russia specialist with…
This is why I meme mnmlsm so much 
 Although it is a very comfy one, it’s not just an aesthetic. Simplicity
and minimalism, in technology, is great for security too. I say “mostly”
in the title because human error cannot be discounted, and nothing is
perfect. However, the simpler your tech stack is, it is inherentely more
secure than complex monstrosities.…
And how to achieve a usable configuration for IMAP/SMTP 
 TL;DR: Here’s my .mailrc . 

 As I’d mentioned in my blog post about mael , I’ve been on
the lookout for a good, usable mail client. As it happens, I found
S-nail just as I was about to give up on mael. Turns out writing an MUA
isn’t all too easy after all. S-nail turned out to be the perfect…
Do you even understand federation? 
 No, really. Do you actually understand why the Mastodon network exists,
and what it stands for, or are you just LARPing? If you’re going to just
cross-post from Twitter, why are you even on Mastodon? 

 Okay, so Mastodon is a “federated network”. What does that mean? You
have a bunch of instances, each having their own…
I put a blowfish in my laptop this week 
 My existing KISS install broke because I thought it would be a great
idea to have apk-tools 
alongside the kiss package manager. It’s safe to say, that did not end
well—especially when I installed, and then removed a package. With
a semi-broken install that I didn’t feel like fixing, I figured I’d…
My thoughts on the distro, the philosophy and my experience in general 
 I installed KISS early in January on my main
machine—an HP Envy 13 (2017), and I have since noticed a lot of changes
in my workflow, my approach to software (and its development), and in
life as a whole. I wouldn’t call KISS “life changing”, as that would be
overly dramatic, but it…
An experimental mail client 
 Update : The code lives here: https://github.com/icyphox/mael 

 I’ve been on the lookout for a good terminal-based email client since
forever, and I’ve tried almost all of them. The one I use right now
sucks a little less— aerc . I have
some gripes with it though, like the problem with outgoing emails not
getting copied…
A lot of actors cashing in on the epidemic 
 The virus spreads around the world, along with a bunch of disinformation
and potential malware / phishing campaigns. There are many actors,
pushing many narratives—some similar, some different. 

 Interestingly, the three big players in the information warfare
space—Russia, Iran and China seem to be running similar…
An opinion-filled review of Nullcon Goa, 2020 
 Disclaimer : Political. 

 This year’s conference was at the Taj Hotel and Convention center, Dona
Paula, and its associated party at Cidade de Goa, also by Taj.
Great choice of venue, perhaps even better than last time. The food was
fine, the views were better. 

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