Sid Verma Unnecessary tautology is unnecessary

Hi. I’m Sid. Some people also know me as Siddhartha.

I write software code for a living. For living, I take photographs, hike and bike across mountains, and explore filmmaking.

I’m currently available for hire. Feel free to reach out if you think we might work well together.
My previous employers are Tower Research Capital, CultureAlley and Smallcase.

ResumePhotosGithubInstagram

EmailTwitterKeybase


iOS Shortcuts for Firefly III

I’ve been using the excellent Firefly III to manage my expenses for a while. As a result, I have developed a habit to actively monitor every transaction I do, which, in my opinion is a much better way than using other automated expense managers which can only track your non-cash expenses, without a lot of context.

Android had an unofficial app which made it easier to interact with Firefly, but iOS doesn’t seem to have one, and the web-ui is not a very mobile friendly one.

While searching for solutions, I came across this blog post by Jesse Dyck where they utilised iOS Shortcuts to create transactions in Firefly. Honestly, I was pretty surprised that Shortcuts is powerful enough to do this, given Apple’s approach to customization.

The shortcuts provided by Jesse didn’t work for me (they were written for iOS 12, before Shortcuts were revamped for iOS 13), so I decided to build one for myself, with a UX more suited for my needs.

Here it is in action:


To use these for yourself, you have to download the following three shortcuts from your iOS device. The first two are function-like dependencies of the third one, which is used to add a transaction.

If you’re not into categories, you’d probably have to edit the Add Transaction shortcut and remove the steps where it deals with them. A fair bit of trial and error should probably give you what you want.

Note that, to be able to import shortcuts from outside the app gallery, you have to go to Settings > Shortcuts and enable Allow Untrusted Shortcuts.

While adding these shortcuts, you’d be prompted to enter your firefly URL and Personal Access Token for each of the shortcut. The URL is where you’ve hosted the app, complete with the protocol and without a trailing slash (like https://demo.firefly-iii.org). You can generate the token from Firefly by going to Options > Profile > scroll down to Personal Access Tokens and click on Create New Token.

After spending 3 hours creating these 150-step shortcuts on a very tiny screen, I was wondering if it’d have been easier to create a basic iPhone app itself. Not really, I don’t know Swift yet.



Moving to an iPhone (for now)

I spent the last two days trying to switch from my three year old Oneplus 3, to a brand new iPhone 11. I thought I was probably done with expensive phones (I count Oneplus as an expensive purchase), but resigned to giving iOS a chance this time around.

The Oneplus has served as my phone for 33 months now, and has had its fair share of rough usage. The screen broke twice (and got replaced once). Its battery had degraded so much that I didn’t dare go out without carrying a small sling bag with a charger and a power bank in it. Screen-on time would have been somewhere between 50-90 mins. At least it charged fast.

It wasn’t a fast phone by any means anymore too, and I’d gotten used to waiting a few seconds for apps to launch.

The iPhone, is a stark contrast to that. It’s a recent phone with the latest and greatest Apple processor, and things are super fucking fast on it. I am almost in disbelief of how much the battery lasts on this thing. That carry bag isn’t a necessity anymore (though I have gotten used to it - it came in handy a lot more times than it became a hindrance).

Comparing the front of iPhone and Oneplus phones

Shiny vs battered.


Comparing the back of iPhone and Oneplus phones

I much prefer the back of the Oneplus. It looks interesting. That sticker is a washed out logo of the 34C3 F.U.C.K. assembly

Actually moving to iOS.

The first thing was setting up contacts and calendar on the iPhone. I use radicale as the CardDAV and CalDAV server to store my contacts and calendar. On Android, I had to use an app called DavX to synchronize the files, which didn’t work perfectly. Rarely ever synced in the background for me. I had to frequently open the app and manually refresh it. I was very pleased to know that iOS supported these standards natively (much like MacOS). Syncing works quite smoothly now.

Setting up Email was pretty easy too in the stock app. UI is really slick, and it sends plain-text emails by default. It’s infuriating how many clients send HTML mails by default, even when not doing any sort of formatting.

The next step would be reinstalling the iOS counterparts to all the apps I had on Android. Most of the popular apps had an iOS version themselves, which didn’t really create many issues. I had to replace few apps with different ones when they weren’t available in the App Store, but the real problem was with apps which had no replacement. This was my first frustration with the walled garden.

Replacement apps

  • Moon+ Reader → Marvin 3 - This was basically a drop-in replacement. I needed an app which could access my OPDS server, and Marvin seems to handle that really well.
  • Readable → Reeder 3 - This was my replacement for an RSS reader. I use a FreshRSS server as an aggregator and Reeder (I am using the older, free version which seems sufficient for my needs right now) has good support for Fever APIs.
  • Slide → Apollo - Slide was probably my favorite Reddit client on Android. The gestures were smooth, and it looked pretty nice. Slide for iOS had much more whitespace and had a different design which I wasn’t a big fan of. Apollo, on the other hand seemed like a much better alternative, and had a closer UX to Android’s Slide than iOS’ Slide itself.
  • Hyperlapse → Microsoft Pix - Microsoft Hyperlapse, while not a very well-designed app, was a good enough one to convert standard videos into Hyperlapse one. There’s a Hyperlapse app from Instagram on iOS, but it doesn’t let you import videos from outside, and stabilization didn’t seem to work in iPhone 11. Microsoft Pix is a complete camera app, but one of its features is converting videos to hyperlapse. That’s probably the only use I’m gonna get out of this app.
  • Juice SSH → Blink - This was also basically a drop-in (and probably better) replacement for a mosh-enabled shell. The App Store version is pretty expensive, but given that it’s an open source app, one can build it from the source and install the app.
  • Solid Explorer → Files/Airdrop - Solid explorer used to solve two problems for me. One was being a pretty solid file manager, and the other was the built-in FTP server. It was my preferred way of transferring files between my computer and phone wirelessly, without using the internet. I’m currently using the stock Files app for file management (There might be better apps out there - but this one works well for me right now), and Airdop for exchanging files with my computer. Airdrop is just so nice, man.
  • Sky map → SkyView Lite - There doesn’t seem to be a good free astronomy app for iOS, so this would have to make do for now. Stellarium is available for iPhone, but I’m putting off buying paid apps for now.
  • Revolution IRC → Lounge - I was unable to find a free and good IRC client for iOS — so, for now, I’m using a web-based Lounge instance to connect to IRC. It works pretty well, except for the fact that iOS browsers don’t support notifications yet. I’m not really bothered by that though, as I don’t like to be perma-connected to channels on my phone anyway.
  • Jellyfin → Jellyfin (web) - Jellyfin also didn’t have an iOS app, but the web interface is so good that it almost makes up for it.

These were the apps that were easy to replace. Now there were some which didn’t seem to have any sort of replacement (at least not without jailbreaking the phone – which I’m not very keen on doing right now).

  • Flud - Flud is a torrent client I used to run on my phone. It was pretty convenient to be able to download torrents on the phone without any hiccup or afterthought. Apple doesn’t seem to allow anything torrent related on their store. I, now have to use the web-ui of a torrent client hosted at my home.
  • Transdroid - Speaking of managing a hosted torrent client - Transdroid is an app which can remotely control hosted torrent clients really easily. I now have to use a web-browser for that, and most torrent clients don’t really have a mobile-friendly UI.
  • NewPipe - NewPipe is a Youtube client on steroids. It doesn’t have ads, can download videos as MP4s, can play in the background, and has an overall better interface than the official youtube app. No such replacement on iOS sadly.
  • Firefly III - I use a self-hosted version of Firefly III for managing my expenses. The web interface is not a mobile friendly one, but there were some Android apps which could connect to the API and make changes. No such things on iOS. But I did find this blog by Jesse Dyck where they utilized iOS shortcuts to interact with the server. That’s something I wanna give a try later on.
  • SMS Organizer - I am so bummed that this app is not available on iOS. SMS seems like a medium for spam these days, and SMS Organizer did a very good job silencing those messages. I am now back to blocking senders as they come to reduce spam. I’d happily block all SMS messages (I don’t really use SMS for personal communication anyway) but that doesn’t seem to be an option on iOS.
  • Google Play Services - Okay, not really sad about this. I wrote this because I’m glad to not be dependent on Google APIs anymore. There’re literally zero google apps on my phone right now, and it’s really nice.

The UX

Some things about the iPhone are really amazing. And other things, quite awful.

Right off the bat - I love the seamless clipboard syncing with macOS. Honestly, exchanging strings between the phone and computer was such a pain. My method was to use Signal’s “Note to Self” feature for this. I’ve seen others using note-app synchronizations, self-emails, etc. This seamless copy-paste is basically my favorite thing about iOS right now.

There’re also other nice integrations with macOS - Airdrop is super-nice. You can use your phone as a Wifi-hotspot without touching the phone itself. Can even accept calls right from the computer.

iOS Shortcuts seem to be pretty nice and well-integrated with Siri. Though not as powerful as Android’s Tasker - they seem to be good enough for my needs as of now.

Permissions also seem to be better managed. The ability to disallow location access in the background is something which Android should have implemented long back. I like that iOS also asks for notification permissions explicitly. Though I do miss the granular notifications permissions from Android. There, I could disable all promotional notifications, and only keep the important variety. iOS does all-or-none. And this has led to me disallowing notifications from a lot of apps. I refuse to ever receive any promotional anything ever – SMSs, emails, notifications - everything must go.

And I really really miss the customizability of Android. There just seems to be no personality on iOS home screens. Even the widgets on iOS are vastly inferior to the android ones. Also, the status bar is worthless on iOS. On Android, I can see all the apps with notifications, current network speed, ringer status, VPN status, and so many other things. iOS has just the time, network, wifi and battery.

Comparing iOS and Android home-screens

I find the latter layout much better. Everything is reachable on the bottom. The icons are nice, and there's a play button for music right there.

The hardware

The “True Tone display” is quite nice. It matches the ambient light and temperature much better than any other phone I’ve seen. The speakers are actually great for a mobile phone. What sucks is that there is no headphone jack in this phone. This phone is thicker and heavier than my previous phone. It could have had a fucking headphone jack in it. I do use wireless headphones with my phone, but ever so often, they run out of battery, and then it’s very convenient to attach a wire and use it with that instead. I’ll probably have to buy the lightning-to-AUX dongle now - which I hear, at least has a pretty good DAC in it. Which reminds me - it sucks to move away from USB-C to the lightning port. I’d been getting closer to everything USB-C with every new hardware purchase since the past few years, and now I just took a step back due to this iPhone.

And finally, it’s laughable that Apple includes a 5W charger in the box. I hadn’t seen a 5W charger in years lol. And this, when the phone actually supports 18W fast charging. I don’t understand why they had to cheap out on this.

Comparing iPhone and Oneplus chargers

What the fuck, Apple?


I hope the good outweighs the bad in this move. It took way too much time to shift ecosystems, and I don’t want to repeat that anytime soon.



Eight months of unemployment and traveling

In March 2019, I left my job at Tower Research Capital, to take a small break from work and live aimlessly for a while. My mental health had been declining steadily for the last few years, and going away for a while seemed like the only way out.

I spent a lot of this period making small changes to my lifestyle. I started sleeping well (7 hrs is apparently a good sleep for me), and now I’m at a state where I’ve completely stopped using an audible alarm to wake up. Instead I’m mostly able to wake up at will. For really tight naps though, a lightly vibrating smartwatch has proven to be enough.

I think I’ve also made progress at becoming mildly competent at conversations, from being completely inept at it. I am reaching out to more friends now, and make sure to visit at least a few when I’m in their town. Dating, as a result is also much more easier and fun now.

I tried to get physical exercise into my schedule, but so far have failed to keep it up. I did, however, improve my diet a lot. Largely cutting out sugar and snacking did make enormous differences.

Most importantly, after a really long time though, I don’t feel depressed and anxious anymore. I’m able to focus more, and in general be more creative. Being intoxicated has gone back to being a leisure activity rather than an escape.

I’ve slowly incorporated back “work” into this lifestyle, and while it hasn’t been very long, it seems to be going pretty well. I’m working on being better at scheduling, managing stress, and being more efficient — which might be something for a later post.

A huge improvement, however, has been on how I travel. I spent the majority of the this time traveling around India and southeast Asia. While I was used to backpacking for long stretches, they were often localized to a smaller area. Leading a nomadic life on a budget for longer periods had other challenges. Things become expensive when you start covering large distances frequently. I started taking more items into consideration when traveling now. In no specific order, I’m just gonna list things I take into consideration now which I didn’t really before:

  • Location of the airport/station - The ticket cost is only part of the cost of getting from city A to B. Most airports tend to be located far away from the inner city or where I’d probably intend to stay. Arriving at odd hours could mean that public transport might not be available at that time, and I’d have to spend a quite a bit on taxis to get to my ho(s)tel. Sometimes, I spent a day for cheap near the airport, to move to a better place the next day.
  • Frequent flier miles - While budget airlines would often have cheaper tickets, sometimes you are able to spot cheap flights on full service airlines with rewards programs. If you fly frequently, factor in the value of miles you acquire too while making a decision. They can add up to quite a significant amount.
  • Wide open dates - Having wide open dates allows you to be able to choose cheaper options of travel, as cost of stay might not vary a lot between cities.
  • Keep day-to-day schedule light - Having too many things to do in a day can get a bit hectic, which might negate why you’re traveling in the first place. Keep a light schedule. It also allows you to opt for slower but cheaper public transport than otherwise.
  • Work for stay - I used workaway and worldpackers to find places where I can spend some amount of my time helping out small businesses or organizations in exchange for free stay/food. Worth checking out if you find something suitable.
  • Focus on your diet - It’s often easy to fuck up your diet while traveling. You want to try out the local food, dessert, beer, etc; and by all means - do, but keep track of your calories. If you’ve been planning on getting on a lighter diet, it can be a good time to start that too. I, personally feel a lot less hungry while I’m traveling, so I’ve been using that to my advantage. Eating less is cheaper too.
  • Fruits are your friend - Complement your diet with fruits. They tend to be a lot cheaper, and pretty good for you. Also, note that these two points don’t mean that you should be starving yourself. Use your brain and don’t fuck yourself up.
  • Layer up in colder climates - This is a popular advice which really helps in keeping your luggage light. On a snowy trail I was even able to get by with a thinner sleeping bag by sleeping in my layers. YMMV.
  • Invest in lighter/smaller items - When going camping, a very good part of my luggage would be made up of a foam mattress, a cheap sleeping bag and a heavy tent. Investing in slightly expensive tiny inflatable mattresses, denser sleeping bags and a lighter tent reduced my luggage by half in volume.
  • Reduce your baggage - A lighter bag allows you to move around in the city without massive pains. Sometimes, you can opt for leaving stuff you definitely won’t need, at a friend’s place, or in rented locker rooms (most airports, bus and railway stations would have them). Eg - work equipment, extra/unseasonal clothes, etc. Also, get into the habit of doing laundry and pack fewer clothes.
  • Embrace your laptop - I had gotten far too comfortable with my home and office setup to be able to work on a chiclet keyboard with a single tiny screen again. It took me a lot longer than expected to adapt to this setup. I wish that I had a smaller machine too, as a 15-inch laptop can sometimes be too big to carry and fit in day-packs. If you really like multiple screens, there are many laptop-sized portable USB-C powered screens available in the market which you can try.
  • Smaller power banks - It’s far more advantageous to carry multiple tiny power banks instead of one huge one. They are easier to carry around while using the device, and you can charge all off them parallelly in a short period of time.
  • Keep track of your expenses - At least weekly, go through your categorized expenses and check for anomalies. It’s quite common for people to save a lot while living in cheap hostels, but spend a huge amount on their pub crawls. I use Firefly III which is really powerful at what it does. But, even a plaintext list would work for a start.
  • Work from cafes - I tend to like working from cafes — all the white noise allows me to focus much more easily. On most last days in towns, when I check out in the morning and have to travel in the night, I’d just spend the whole day at a cafe, saving on the stay cost. Though, initially, quite a few times, I did burn myself by spending more at those cafes than I’d have if I’d just stayed at my hostel. So, do take that into consideration.
  • Break long journeys up - If your next destination takes a lot of time to get there (I get really restless after spending 4+ hours awake in a closed vehicle), it might serve good to pick a point in between to split the journey at.