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.



Russians are harvesting our faces!

This Forbes article says that Faceapp is evil because they are harvesting user-data:

That (Faceapp’s TOS) may not be dangerous and your likeness may stay on Amazon servers in America, as Forbes has determined, but they still own a license to do whatever they want with it. That doesn’t mean the app’s Russian parent company, Wireless Labs, will offer your face to the FSB, but it does have consequences, as PhoneArena’s Peter Kostadinov says:

You might end up on a billboard somewhere in Moscow, but your face will most likely end up training some AI facial-recognition algorithm.

For context, here’s the lines from FaceApp’s Terms of Service which are been targeted:

You grant FaceApp a perpetual, irrevocable, nonexclusive, royalty-free, worldwide, fully-paid, transferable sub-licensable license to use, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, publicly perform and display your User Content and any name, username or likeness provided in connection with your User Content in all media formats and channels now known or later developed, without compensation to you. When you post or otherwise share User Content on or through our Services, you understand that your User Content and any associated information (such as your [username], location or profile photo) will be visible to the public.

In comparison, here are a few current (and one defunct) websites where users are known to share their faces quite a bit:


When you share, post or upload content that is covered by intellectual property rights (e.g. photos or videos) on or in connection with our Products, you grant us a non-exclusive, transferable, sub-licensable, royalty-free and worldwide licence to host, use, distribute, modify, run, copy, publicly perform or display, translate and create derivative works of your content (consistent with your privacy and application settings). This means, for example, that if you share a photo on Facebook, you give us permission to store, copy and share it with others (again, consistent with your settings) such as service providers that support our service or other Facebook Products that you use.


When you share, post, or upload content that is covered by intellectual property rights (like photos or videos) on or in connection with our Service, you hereby grant to us a non-exclusive, royalty-free, transferable, sub-licensable, worldwide license to host, use, distribute, modify, run, copy, publicly perform or display, translate, and create derivative works of your content (consistent with your privacy and application settings). You can end this license anytime by deleting your content or account. However, content will continue to appear if you shared it with others and they have not deleted it.


For all content you submit to the Services other than Public Content, you grant Snap Inc. and our affiliates a worldwide, royalty-free, sublicensable, and transferable license to host, store, use, display, reproduce, modify, adapt, edit, publish, and distribute that content. This license is for the limited purpose of operating, developing, providing, promoting, and improving the Services and researching and developing new ones. Because Public Content is inherently public and chronicles matters of public interest, the license you grant us for this content is broader. In addition to granting us the rights mentioned in the previous paragraph, you also grant us a perpetual license to create derivative works from, promote, exhibit, broadcast, syndicate, sublicense, publicly perform, and publicly display Public Content in any form and in any and all media or distribution methods (now known or later developed). To the extent it’s necessary, when you appear in, create, upload, post, or send Public Content, you also grant Snap Inc., our affiliates, and our business partners the unrestricted, worldwide, perpetual right and license to use your name, likeness, and voice, including in connection with commercial or sponsored content. This means, among other things, that you will not be entitled to any compensation from Snap Inc., our affiliates, or our business partners if your name, likeness, or voice is conveyed through the Services, either on the Snapchat application or on one of our business partner’s platforms.


By submitting, posting or displaying Content on or through the Services, you grant us a worldwide, non-exclusive, royalty-free license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, display and distribute such Content in any and all media or distribution methods (now known or later developed). This license authorizes us to make your Content available to the rest of the world and to let others do the same. You agree that this license includes the right for Twitter to provide, promote, and improve the Services and to make Content submitted to or through the Services available to other companies, organizations or individuals for the syndication, broadcast, distribution, promotion or publication of such Content on other media and services, subject to our terms and conditions for such Content use. Such additional uses by Twitter, or other companies, organizations or individuals, may be made with no compensation paid to you with respect to the Content that you submit, post, transmit or otherwise make available through the Services. Twitter has an evolving set of rules for how ecosystem partners can interact with your Content on the Services. These rules exist to enable an open ecosystem with your rights in mind. You understand that we may modify or adapt your Content as it is distributed, syndicated, published, or broadcast by us and our partners and/or make changes to your Content in order to adapt the Content to different media.


When you upload, submit, store, send or receive content to or through our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights you grant in this license are for the limited purpose of operating, promoting, and improving our Services, and to develop new ones. This license continues even if you stop using our Services (for example, for a business listing you have added to Google Maps). Some Services may offer you ways to access and remove content that has been provided to that Service. Also, in some of our Services, there are terms or settings that narrow the scope of our use of the content submitted in those Services. Make sure you have the necessary rights to grant us this license for any content that you submit to our Services. Our automated systems analyze your content (including emails) to provide you personally relevant product features, such as customized search results, tailored advertising, and spam and malware detection. This analysis occurs as the content is sent, received, and when it is stored.


By submitting Content to YouTube, you hereby grant YouTube a worldwide, non-exclusive, royalty-free, sublicenseable and transferable license to use, reproduce, distribute, prepare derivative works of, display, publish, adapt, make available online or electronically transmit, and perform the Content in connection with the Service and YouTube’s (and its successors’ and affiliates’) business, including without limitation for promoting and redistributing part or all of the Service (and derivative works thereof) in any media formats and through any media channels. You also hereby grant each user of the Service a non-exclusive license to access your Content through the Service, and to use, reproduce, distribute, display, publish, make available online or electronically transmit, and perform such Content as permitted through the functionality of the Service and under these Terms of Service.


You acknowledge that you have granted us a worldwide, non-exclusive, royalty-free license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, display, and distribute such Content in any and all media or distribution methods (now known or later developed). We may modify or adapt your Content in order to transmit, display, or distribute it over computer networks and in various media and/or make changes to your Content as are necessary to conform and adapt that Content to any requirements or limitations of any networks, devices, services, or media. You are responsible for your use of the Vine Archive, for all Content you provided, and for any consequences thereof, including the use of your Content by other users and our third party partners. You understand that your Content may be syndicated, broadcast, distributed, or published by our partners and if you did not have the right to submit Content for such use, it may subject you to liability.

I’m not telling you to go install this app and bombard social media with aged photos of yours, but if you do - that photo is now with FaceApp, and also almost every other platform you shared it on.

The only difference would be that FaceApp has a Russian developer, while the rest of the companies are American.

Kodi controllers

For the past five years, a Raspberry Pi, running Kodi, has been attached to my TV. The Pi, TV and the software all get updated time to time, but the overall setup has been the same for most of it.

+----+              +----+              +-----+
| TV |----(HDMI)----| Pi |--(USB/DLNA)--| HDD |
+----+              +----+              +-----+

Controllers I’ve used for Kodi over the years -

  • Desktop Keyboards (Wired/Wireless)
  • Wireless Mouse
  • Web Interface
  • Tasker scenes utilizing the web interface API
  • Kodi remote apps (for Android/iOS)
  • Emulated keyboard over SSH
  • VNC
  • Arduino based bluetooth remote
  • Game controllers

Some of these were novelty ones, others were used because of circumstantial needs+availability.

My primary controller is the excellent app Yatse (Lets you browse/play media on the phone itself - much faster than the TV UI). When the phone’s not nearby, or there’s a guest involved, I use a game controller (connected for retroPie anyway).

Last week, I was setting up Kodi (OSMC to be exact) on my old roommate’s Raspberry Pi. While I was installing Yatse on his phone, this other guy present there, who isn’t familiar with the software, doesn’t have any of the controller I know of, starts browsing movies on the TV. I look over, dumbfounded, and see him casually using the TV remote to play around in the UI.

Five years of having a CEC-compatible TV with a CEC-compatible SBC, and it never dawned on me to try the simplest UI possible - The TV remote.

Video - The Monkey Business Illusion by Daniel Simons

Minimalistic npm packages.

A follow up to my previous post, this time we look into some of the lesser known, but widely used javascript packages.

Javascript’s NPM package manager, is one of the biggest and fastest growing package manager out there. As of writing this:

  • RubyGems - 145,675 (25 new packages/day)
  • PyPI - 149,111 (104 new packages/day)
  • Packagist - 191,577 (103 new packages/day)
  • Maven Central - 244,143 (149 new packages/day)
  • npm - 679,009 (508 new packages/day)

Minimalism doesn’t only apply to design, lifestyle and ownership, but also to code. Here are some of the most minimal packages in npm:


Returns false if the value of a property is either strictly false, or it’s inverse is strictly true.

5 weekly downloads

Let’s take a look at its github repository:

Pretty standard set of files. You’ve got your test cases, test runner config, editor config, lint config, and other necessary files. Let’s look at the code:

Absolute minimalism.



Return true if the given number is even.

27,881 weekly downloads

This was slightly more minimalistic.



check if a number is a positive integer

173 weekly downloads

Oh, the beauty!*




* The author has updated the code to a very non-minimalistic monstrosity. But for the sake of this post, we are gonna pretend that the initial commit is where it’s at.