Using LLMs Daily

The software industry is moving towards a world where every engineer is expected to use LLMs more; the practice of keeping track of LLM usage frequencies and advocating for more usage will probably become the norm in a few years.1 I don’t believe the hype; I think we’re in a fairly early state. If one looks at what is possible today, and the historical practice in this area to over-promise and under-deliver, it seems highly unlikely that significant changes are just around the corner. But every article about AI has this mandatory suffix: “AI can’t do that; at least, not yet.” I am not sure what all of that is based on. As a full-time software engineer, I have been unable to ignore these products completely. People in other professions should definitely consider ignoring it, even though there are vague reports of LLMs having some impact everywhere. This post is a summary of what I have been using LLMs for recently and where I think they are usable.

Read More

The Promise of Open Source

Using open source software can be a fair bit of work. I emphasize that this is a choice, as it is entirely possible to install Ubuntu on your computer and use it for all your daily activities, without thinking about customization. Say you want to open multiple windows, and have them all take up equal space on your screen automatically. This is possible: You can use a tiling window manager. There is free and open source software out there which can do it. However, it is not being marketed anywhere by anyone: so you have to search for it. There are no automatic QA suites that run against it, nor is there testing to verify if each version installs without hiccups on a wide variety of supported operating systems. There is no such thing as a fixed release schedule, or quarterly OKRs, or a vision document. The project does not employ UX researches, who talk to users of other tiling window managers, or product managers that compare the project against its competition. The setup that the project author is using might be the only supported system. To me, these are minor annoyances when one considers the substantial promise of free and open source software.

Read More

The Perfect Window Manager

Over the past 10 years, I have tried off and on to stick to a single tiling window manager, i3wm. It has never really stuck on with my workflow: One of the biggest problems that I have faced is that while i3 solves one major problem (efficient screen space usage), it introduces several small ones (audio input/output selection, display selection, and many others). Others who are more proficient with the complete Linux stack face similar issues too. This post is part rant and part solution. The solution is to use PaperWM, a Gnome Shell extension that makes the simplest form of tiling possible: vertical tiling with window resizing. I have been using it for a week, and I am very excited about it, because it combines the battle hardened it will work guarantee of Gnome, with the features of a tiling window manager that I am most interested in.

Read More

Better Ansible Playbooks and Roles

Ansible is one of those technologies that most SREs have come across at some point or the other. Despite the mindnumbing increase in abstraction layers in the past few years, trusty old Ansible does not go anywhere.1 Ansible is based on a very simple idea: declarative management of the state of a computer. The implementation of this idea, and its final use-cases are fairly complex. Ansible is used for everything from setting up computers and servers, to deploying continuously to VMs. I have been using Ansible for the servers that I manage: DNS, RSS reader. I have also used Ansible for setting up my personal Linux computer. With both these approaches, I have found some limited success, but I am left with a list of pain points almost always. The pain points are indicative of the increase in complexity when it comes to setting up computers, installing software and keeping it up-to-date.

Read More

Adventures with Wireguard and MTU

This past weekend, I wanted to set up Miniflux, a browser-based RSS1 reader. I have been using it locally for the past two weeks and it has been extremely worthwhile. It has the dual advantage of always being online and the ability to categorize feeds, which helps me group the feeds that I want to read (blogs) from those that I want to skim (news). I did not want to set up a Miniflux instance which would have ports open to the Internet. I wanted the instance to be available only inside a private network; I wanted to use Wireguard to set up the private network. I ran into a problem that looks extremely simple in hindsight: The packets which were being sent on the Wireguard interface were larger than the Max Transmission Unit of some router between the VPS2 and my laptop. This is something that I have not run into before. It was interesting to delve through the various layers of Linux’ networking stack. What follows is an account of my investigation.

Read More

Using an iPhone Without Windows or Apple Computers

I bought an iPhone 5 years ago. Admittedly, it was a strange choice: I don’t like proprietary software that one can not customize. I knew that iPhones work well only if one was willing to pay for subscription services like iCloud and Apple Music. The fights that Epic Games and Spotify have started in court over Apple’s attempts to block their native integration into iOS is well-known. But I bought one anyway, because I could not get an unlocked Android phone (back then) in Japan, and I certainly did not want to buy a locked phone, pay for overpriced cellular network coverage for 2 years before the phone could be unlocked and I could switch to a different carrier. So, an iPhone was the least worst option. Over the years, I have struggled with iPhone’s software to do basic things, such as writing a text file, transferring photos to a hard drive, understanding how exactly WhatsApp and other such apps store their pictures within the phone, optimizing to never go past the 30% disk usage mark because flash memory becomes extremely slow beyond it and makes the phone unusable, and using browsers like Firefox without the ability to install ad or tracker blocking plugins. This post is a summary of some of the things that I have learned.

Read More

Notes and Review - White Noise (DeLillo)

Rating: 5/5

What if a novel was very funny? If every single sentence that came out of the protagonist’s mouth, only served to make him look progressively less important and more foolish than you thought? What if it was the author mocking the protagonist privately to the reader, without letting the protagonist in on the joke? That would be a great novel, and White Noise fits the bill. The protagonist is a man who walks around a college in long robes and dark glasses, because it makes him look important and unapproachable, because it gives him authority. He continues this pretense in his thoughts as well. The chaotic misinformation rallies that go around in the back of his car, as everyone is talking over each other, and no one is answering the question which sparked the conversation, are a treat to read. The level of ignorance is deliberately exaggerated to a comic level. I can’t wait to watch the movie adaptation. Meanwhile, here’s a review of the book.

Read More

Beyond 100 Megabits Per Second

After moving to a new apartment recently, I made a contract with an ISP offering a best effort 1 Gigabit connection. At both apartments I lived in previously in Japan, an Internet connection was bundled with the rental agreement. As these connections had a maximum bandwidth of 100 Megabit, I never looked at my peripherals to see whether they were capable of Gigabit. When I bought a computer, I noticed (without much interest) that the computer’s motherboard was capable of Gigabit ethernet. When I checked my Internet speed with a Gigabit connection, I noticed that it was only about 93 Mbps. This post is the story of understanding my home network, the various bottlenecks along the way, and finally, going beyond 100 Mbps.

Read More

Look Up

“Look up,” “Take it easy,” and “Keep it real.” What do these phrases mean? Their literal meaning is easy enough to grasp. But they are never used in the literal sense. They are touted as cures to our collective ills; metaphors for the actual processes which would make everyone less cynical and more attentive. I heard these phrases in the coda of an inane Hindi movie recently. The movie contained generic drivel about young people: the improbably rich MBA graduate in her 20s, the extremely hardworking gym trainer that luck does not favor, and the stand-up comedian who appears to be happy-go-lucky but is in fact hiding a dark part of his past. These characters are “finding their way” in the world; the typical plot of a “coming-of-age” movie. The lesson of this movie was to convince everyone to put their phone in a (stupid and futile) bowl, “look up,” and take notice of the world around them. One of the characters is told to stop stalking her ex-boyfriend on Instagram; “I don’t know [why]; I can’t stop.” It is ironic that it is this same character, a few minutes later in the movie, who recommends “keeping it real.” What was the great revelation?

Read More

A Chronicle of Predominant Conversations (2023)

A large number of articles, opinion pieces, blog posts, video essays, podcasts, television dramas, and movies saturate the information landscape. It is bad form to say that there is more out there than can be read by any one person. The dreaded information overload has arrived. A few acknowledge the existence of this swarm of multimedia. The majority beckon an Algorithm, entrusting it with the responsibility of collecting, filtering, and sorting them in the unknowable order that each component particle of the majority expects. Opting out is futile. Not knowing about something is superior to not knowing about its occurrence. What follows is a view of culture and society based on the contents of 3 issues of the WIRED magazine.

Read More