Nitin Khanna

I was once described as a philosopher programmer. I think I'd like to describe myself as a lifelong student.

Really enjoying Call Of Duty: Mobile nowadays

I’ve been playing COD:M on my iPhone since the last few… months, and I’ve been really enjoying it. It’s a no-fuss game, with graphics settings to match even my older iPhone 7, and really good development cycles and fast moving seasons (storylines and season passes).

They’ve done a bit of work to gamify the interface though, with lots of pre-game notifications and pop ups that try to convince you to buy the season pass or individual weapons and characters. It’s just enough to not irritate me and feels not more than a hurdle to cross and get to the actual gameplay.

I’ve been getting good at the game. So good, in fact, that in the last five days I’ve gotten banned twice. Both times, I was playing really, really well, and came in first on the scoreboard, so I assumed that one or more players from the other team reported me as probably using a cheat.

I’m not, but that’s a sort of rite of passage of playing FPS games well – you get accused of cheating. Problem is, the first time I was banned for an hour and the second time, for a day! Now I’m worried that if I play too well and get reported again, I might lose access for even longer! And in typical fashion, there is no recourse in-app to contact the moderators when banned.

I wouldn’t say I’m addicted to the game, but who am I kidding. I’m afraid to lose access and this might affect how well I play in the future. But hey, every time I got banned, I ended up spending time on coding on side projects, which is awesome!

All said and done, I’m really enjoying Call Of Duty Mobile and I’d recommend it to everyone! It’s a free download.

[rant] I hate podcasts

Ok, listen up. Podcasts are stupid.

I’ve got good reasons too, if you read on.

There are two types of blog posts – ramblers (like this one) and informative. That’s generally what you’ll see on the Internet.

Most personal content is a rambler type of blog post. It may be the most succinct two line update, but it might contain content that you’re not interested in. You might be following a world-famous author (cough GRRM) for his book updates and end up reading more about his travels to various conventions instead of focusing on his books. So personal blogs (and personal blog posts) come with a disclaimer – here be ramblings.

Most professional content is, conversely, not a rambler. It’ll be informative, to the point, with a few asides. As any programmer will tell you, those asides are the true saving graces of the Internet – the aside might be an anecdote by the author about some small issue they faced and it’ll end up being the key that solves the reader’s biggest pain point! So in general, even with asides, a little rambling, and generally useless intro and outro content, professional content is mostly informative.

And it doesn’t have to be that personal and professional content is separate. My blog is personal, but my most visited blog posts are related to devOps and setting up certain software in cloud environments for free. Similarly, professional blogs, specially by indie hustlers, often contain gems about their personal travails which are amazing to read.

But podcasts. Ah, podcasts.

I’ve never come across a podcast that wasn’t an indie production and wasn’t a mishmash of nonsense. See, I figure that when people are given a chance to write, they edit. But when they’re given a chance to speak, they ramble on.

I’m a fan of conspiracy theories. They drive me nuts, they’re fun to analyze, they’re fun to call out the stupidity of people. I’m a sucker for flat-earther-takedowns. Those idiots!

But conspiracy podcasts? Oh, they suck! Never have I ever come across one that was by any measure good. I came across one recently that showed some promise. One episode was the podcaster just telling us a story. That felt good. A single person talking to you is a great medium to learn something new. But the very next episode was an interview with an author of a conspiracy book. Now, when the episode started, all was well – the podcaster introduced everybody, gave us a short intro of the book and the backstory, and then opened the floor to discussion. Then all went to hell. The book author first talked about his backstory. Then stopped midway to talk about how he knew the podcaster. Then stopped midway from that to talk about how he had been “permitted” to visit a certain telescope in Arizona AND THEN he stopped midway to give us the dang history of the Church’s involvement with…

At that point my eyes glazed over. I glanced through the wikipedia article and that was enough to educate me on the “conspiracy”. They’re idiots, the lot.

I’ve almost never had a good experience with a podcast that has more than one person talking. It’s not even about the rambling all the time too. Too often, you’ll have the podcaster sitting in a home-studio environment with an excellent mic, a windscreen, and a crooning voice. Then they’ll cut to their guest, who will be in the middle of the Savannah on a shaky Internet connection talking into Skype! The podcaster won’t even have the decency to tape the audio, clean it up, and then plug it back into the stream. Who wants to do all that work? Let the listeners suffer, I say! It’s the only way they’ll learn! Those times when I have to constantly toggle the volume between the well set presenter’s baritone and their shaky-Internet guest’s squeaky voice are the ones when I rue ever having learnt the concept of podcasting.

Then there’s the problem of followup. I love listening to science and tech podcasts. But unless the content is professionally produced (and then too it’s not common), there are almost never any cliff notes. No links to the products or websites mentioned, no “here’s where to go to get more information”. Most of these folks just seem to wing it. If you, the listener, can remember a URL after an hour of someone talking to you, kudos to you! “But Nitin,” you say, “my podcast app allows me to bookmark points of interest, or does automatic speech-to-text so I can read along or find links easily!” Well, good for you. I don’t have those apps, and neither does the majority of the world. Unless that’s the standard, there’s no point in referencing these fancy tools. Notes are a must. That’s all! If you’ll notice, I’ve not linked to any of the stuff I’m talking about in this blog. None of the podcasts are linked to, no link to my own “most popular content” mentioned above. How irritating is that? Yeah.

Lastly, there’s the problem of finding a good podcast. You have to sit through multiple episodes to understand if you like the content and the author. This is much easier on YouTube, where you’re actively looking at the content, or on Instagram, where a few pics will set the tone of the page, or on blogs, because I can just scroll forward 🙂 Further, on any subject, there are dozens of podcasts and looking through that small search space on your phone is just not enough to know if you’ll end up liking a podcast. You kinda just have to dive in, and that sucks.

It’s not like there aren’t podcasts I like. Philosophize This does a great job of a single person, Stephen West in this case, talking into an excellent mic, and following up with text transcripts of the entire content. It’s not perfect, but it comes close to a podcast that I respect.

Spotify has been pushing me these past few days to get into the Michelle Obama podcast. My music app giving me podcasts? Blasphemy! I might check it out. But if she rambles, I’m out.

A new attempt at writing

My capacity for longform, or even longer than a few lines, seems to have evaporated from lack of use.

This is not good. I enjoy blogging, or at least, I used to. Nowadays, all I do when I visit my blog is to update the plugins and shove off.

Perhaps it’s time to try it out again? Writing regularly? Even if it’s a few lines here and there?

It’s not like I don’t have things to say. It’s just that most of my thoughts fit into tweets now. Perhaps I should embrace the tweets-as-a-blog-post model?

But no, that just doesn’t feel right. It’s not who I am. Over the course of the last week, I listened to the book Atomic Habits in audiobook form, and one of the takeaways from it was the concept of a presumed identity. If I tell myself I’m a certain type of person, and reinforce that with proof, and ask myself regularly, “what would this type of person do?”, then I can become that type of person over time.

So here’s me telling myself that I’m a person who likes to blog.

Update: To the end of putting writing front and center of my habit, I removed the static About Me page that I’ve had as my site’s front page since the past year or so. That static page was just too irritating to see every time. An eye sore and a writer’s block in one. Good riddance.

Adventures in NOT buying things

pexels-photo-2942361.jpeg

I’ve been thinking about external storage for the last few days, for our iOS devices. When we bought my wife’s iPhone XS Max, we made the mistake of going for the 64 GB option. Pretty soon, tired of a filled-to-the-brim phone, she opted for Apple’s 50GB iCloud solution, priced at $1/mo, to both backup her photos and to shut up Apple’s continuous prompts about a full iCloud.

This solution has been serving her well. Somehow, her photo storage needs have landed at about a 100 GB, which sits well between her phone and the cloud.

But more and more, I’ve been thinking that I want to get rid of the dollar a month charge. For that, the obvious way would be to have daily backups and cleanup, but the question becomes, “to what?”

Dropbox seems like an obvious choice. So does OneDrive. But there’s something irksome about cloud storage. It feels like a gambit – these cloud providers want more of your money, and getting us hooked on Dropbox’s initial awesomeness and then baiting-and-switching to the shitty version of the company they’ve become leaves just an odd taste in my mouth.

So I started thinking of some sort of hardware solution. Many companies have come and gone (see pogoplug), but there’s a product from a few years ago that instantly popped into my mind – the SanDisk iXpand flash drive. This is a little widget that connects to your iPhone through a lighting connector and sucks out all your photos. Compared to when I first saw it, the pricing seems affordable now – 256 GB sets you back $60. The device is actually pretty neat because the other end is a USB-A port, so you can plug it into your computer when it’s time to backup your backups.

But then I started thinking – maybe 256 GB is enough, but the lightning port certainly is not. What if I move to Android one day? Or Apple dumps this port for a USB-C in the future? That’s what freezes me – the what-ifs. Instead of living (and spending) in the now, I worry that my choices might be proven wrong in the future.

So I started looking for wireless storage devices, the kind that can connect through wifi and an app, and work with a majority of devices. First hit – LaCie FUEL 1TB – for $136 on Amazon. Holy crabapples! Twice the price and 4x the storage? Ridiculous! The second result? WD 4TB My Passport Wireless Pro for $190. Oof. I need to do more research! What if I opt for the 4 TB and just around the corner (on the second page of the search results) is a 12 TB one for just a bit more? Storage is a strange world.

These external storage options aren’t without their issues though – sometimes their apps haven’t been updated in a few years, meaning they don’t support new features or even new iOS versions. Most of the apps I looked at (WD My Cloud Home being one) don’t seem to support background uploading. Google Photos and Dropbox can upload your photos to the cloud when charging, but WD has trouble uploading to the HDD sitting next to your phone. Cool.

So, once again, I’m frozen. I know the iXpand is not the best solution. The market has moved on, there is more storage available for a better price, and the future-proofing aspect of using wireless just makes sense.

But there’s one more weird thing at the back of my mind – why fix something that isn’t broken? If my wife’s current storage needs are met at $12/year, then why spend upwards of a hundred dollars to solve it in a worse way (if background uploads don’t work). If I just tell myself that I’m paying $1/month for “external storage”, I’m a much happier person. Aren’t I?

Do you, dear reader, use any external wireless mobile storage? Which one? Are you happy with it? What quirks does it have?

Refreshing my RSS feeds list

Welp, I’ve done it this time. I was fiddling with some settings in my current feed reader of choice – Fiery Feeds – and I hit a sync button that’s meant to download everything from iCloud and rebuild the database. Turns out, iCloud is, as usual, not good at actually saving important data. Part of this is my fault. I have had some 14,000 unread items in there, and about 900 feeds. Sync would often time out and almost never complete.

So I lost all my feeds. As I stared at it dumbly, waiting for the feeds to come back, a calm came over me. This is what inbox zero feels like. When, after multiple forced syncs later, nothing happened, I was relieved.

I thought about it. The last OPML export I have is from December of 2019. I’ve added maybe 20 feeds since then, which are now lost. If I import the OPML, I’ll get back my starred items and general state, but I’ll not get back the calm.

So, I’ve decided to do an overhaul of my feeds. I know a lot of sites I’ve subscribed to either don’t exist any more, or haven’t updated in a while. So it’s time to shed the load.

Working through this large an OPML file is a chore. First, I tried to do it manually. Too much work. Then I tried to find tools to help. I found a six year old github repo to find dead feeds. It found a few, but mostly got it wrong. Instead, I’ve imported the OPML to my Firefox LiveMarks extension. It’s not the perfect solution, but at least I’m able to go through the list faster and cull it satisfactorily.

Other than the feeds that are dead, I’m also striving to shed some weight. At some point, I subbed to some GTD and Productivity feeds. Deleted those. It’s no longer my area of interest. Older still are feeds related to Network Engineering. It’s what my MS is in, but it’s no longer my main area of concern. So I’ve removed those. I’m also removing webcomics that haven’t been updated since mid-2019. There are quite a few of those. Frankly, it’s fine if the authors want to take a break. I, too, don’t update my blog often. But there are other ways for me to discover their content. Tapas and Instagram are doing a good job, so I’m going to lean on those for my comic needs. This doesn’t mean all webcomics are going away from my feeds. On the contrary, I’m keeping most of them, specially long-running stories that I follow keenly, like Gaia comic, and Slack Wyrm. But others are out.

At some point I also subscribed to a lot of programming related blogs. Those are nice navel-gazing, but ultimately worthless to me. I’m not a programmer, I’m a scripter. I’m not into deep programming concepts even on the languages that are my bread, butter, and jam – python and JavaScript. So for me to sub to serious computer scientists and programmers was a mistake then, and is a mistake now. It’s not that I won’t glean something off them, just that I don’t need to, right now.

This is tough work, but it’ll be worth it in the end. Recently, I found out that a friend has a very strict gate on who she follows on Instagram. She has a roster of 99 people and whenever she has to follow someone new, she forces herself to remove one person from the list. I’ve never, ever removed a feed from my list. This is the same list I’ve been carrying around since my first RSS feed reader – Fever – and some items are even carried forward from Google Reader. I’ve always thought that at best, the feeds that die are not much extra weight than some processing cycles, and at worst, the items I don’t read get deleted at the end of my 15 days, one month, two months, 90 days limit. That moving limit is part of the cause of all this trouble I’m in.

But the largest forcing function is my feed reader. Fiery Feeds is an awesome piece of software and Lukas Burgstaller is an exceptional dev, and a highly responsive support person. But I made a conscious choice at one point to move away from all server-side RSS feed services and use Fiery Feeds’ native, on-device accounts. I’m paying for the app because I love and want to support it, so I might as well use the biggest feature Lukas has introduced. But this on-device, synced-via-iCloud system has its drawbacks, and this means that I can’t be an ignorant buffoon about my feeds any more. I have to shed, cull, strip, whatever you want to call it.

One very interesting thing I’ve done over time is to use kill-the-newsletter.com to the best of its abilities. I do not like newsletters, but there’s a LOT of content that’s going to email newsletters exclusively nowadays, and that sucks. Kill The Newsletter converts these emails to RSS feed items. It’s not a perfect solution, specially since it’s a bit of a blackbox, but it works just fine for now and it’s FOSS, so I’m happy. So, these are a guilty pleasure I’m not getting rid of. We’ll see how this decision pans out. Maybe I’ll have to figure out a way to merge all newsletters into one RSS feed. Or use a dedicated app to read newsletters on my iPhone. There are a few of those out there now.

All in all, this is an exercise in refreshing and rethinking what I consume online. Hopefully, it’ll lead to a better feed reading experience for me.

A couple times Mrs. Maisel displayed her naivete and privilege

Warning: Spoilers ahead, specially if you haven’t seen the latest season

I like the Amazon Prime show, The Marvelous Mrs. Maisel. It’s a story of upliftment, of empowerment, and of good comedy.

But there are times when the story shows a well crafted naivete and white privilege. These have really stung, because it becomes very apparent that while the good-natured comedienne grows as a person over time, she also ends up doing very real damage.

The first instance is in the first season, when Mrs Maisel spills the beans on the private life of a fellow female comic. She does it out of angst, and it’s truly misplaced. It’s not her place to tell the story. It’s not her right to divulge details revealed to her in confidence. The affected woman has created her own cocoon in a man’s world, a space where she’s comfortable being who she is, while her outside persona is completely defined by what she is told by her agents, audience, and powers-that-be. To dish out that bit of privacy is plain wrong. Further, the show and Mrs. Maisel herself, are appalled that the comedienne responds with an attack on the budding artist, as if this response is unfair and disproportionate.

As the first season unfolded, I did not give much credence to this event, thinking it’s just an obstacle in the hero’s journey telling of this tale. But looking back, this was a spiteful attack by one woman on another, who used her privilege to divulge details she was privy to, simply because she did not like the demeanor of someone who was forging her own path.

The second instance is in the latest season, where Mrs Maisel talks on stage about a person who is gay and not out of the closet, particularly because this person is black and revealing this detail about him would completely and viscerally destroy him. Mrs. Maisel is put on the spot and without thinking, again, about what is private and what is public, talks about the person’s affectations in a very blasé manner. While watching the episode, I was filled with dread. At any moment, the shoe would drop and her words would cause a maelstrom which she would calmly sit out of, while others’ lives are ripped apart. Luckily, the moment does not come. The public and those in power do not realize or do not take any action on her revelations, but what does happen, in the climax (spoiler), is that the person who has her confidence till now, simply drops her, showing her that her actions have consequences.

This second act showed me that while the character has some growth, she has not truly understood what her words mean, and that comedy, while often borderlining on the private lives of people, should not ever hurt. It should not transform from good-natured leg-pulling and cynical critique to a destruction of lives. Maisel often tells those around her that she talks about them on stage, and very clearly tells jokes that are too revealing. But to talk about things that she has no right to talk about, and doing it often, tells me that there’s a vein of this show which is highly unpalatable. This 1950s housewife who is thrust into the world because of events beyond her control does not have, as would be expected from a 1950s housewife, any semblance of her privilege, and its destructive powers.

The show is still good, and a few painful moments, which are followed by immediate punishment for her, do not take everything away from the series, but they do take away any respect in our eyes for such people.

Image Courtesy: IMDB

How to use nmap to ping scan which IPs are up in a subnet

TL/DR –

nmap -sP 192.168.10.0/24

Source – How to Scan an IP Network Range with NMAP

Story –

I love Angry IP Scanner for all my ping check needs. It’s nice, simple, and fast. But I like it mainly because I’ve used it since a very long time, and because it’s maintained by a guy named angryziber (get it? An Angry Zebra?)

But today, when I tried to install it on my Mac, it threw an error that I need to install JDK. Java. No.

So, I need a new way to pingscan. Turns out, angry IP is primarily a simplification of nmap. Since I’m more CLI than GUI nowadays, that fits perfectly. Also, shot in the dark – I didn’t have nmap installed on my mac, so I just did –

brew install nmap

and that worked! I’m a little surprised that it did, but that’s the power of homebrew, I guess.

Further, I’m surprised at how versatile nmap is when it comes to IP range input. You can do any of the following, they all work!

nmap -sP 192.168.10.0/24
nmap -sP 192.168.10.0-10
nmap -sP 192.168.10.1 192.168.10.2 192.168.10.3
nmap -sP 192.168.10.*

Cool discovery of the day. If only the IPs I scanned had any free IPs, I’d be on my way! Alright, back to work.

Things the YouTube Apple TV app needs to improve

black remote control

Just a short list of things that’s wrong with the Apple TV YouTube app –

1. Every time you pause and play a video the entire video interface comes up and doesn’t go away for a good ten seconds. Users have to hit the back button to get rid of that shitty interface. Learning this behavior is bad, because NO OTHER app does this and then the reinforced behavior causes a lot of headache when using other, better apps.

2. There’s no fast switching between user profiles. This is true for other apps as well, but particularly needed for YouTube, where since a very long time we’ll all had separate profiles and thus the algorithm has learnt to show us different things. Going from one profile to another is just irritatingly long a process.

3. There’s no way to quickly refresh the recommendations the algorithm throws at us. There are some recommendations that we get shown for days at end, and we have to just watch the video to get rid of it. There needs to be a clear refresh button that just washes the slate clean.

4. There’s no “Live” section. In today’s day and age, there are a LOT of livestreams going on and we’d like to see them. Right now, the only way you can see them is if you search for them with the keyword “live” and hope to see it in the results, or if the algorithm shows them to you. There’s a section for “gaming”, which we NEVER see, but clearly they’ve not made the sections “learnable”.

5. When you’re watching a video and you want to interact with the “interface”, you can’t pause the video and interact with it. As soon as you move your cursor, the video starts playing. This is highly unwieldy.

6. Their end-of-video interface is shit. SOOOO many videos have content all the way till the end, but they wash over the last ten or fifteen seconds with the “in-video links”, thereby destroying my ability to see the content all the way to the end. This also creates a learning for channel owners to add a goodbye template at the end, which major news channels do, but this is not a good learning for when you’re watching a video on mobile or desktop. So for YouTube to do this, just focusing on Apple TV, is terrible!

There are some good things too –

1. The keyword search is epic. Much better than other apps and well integrated into the Apple TV search by voice model (here’s looking at your shitty search HBO). Though I’d like for the search to be deeper, with more sections to separate the searched content as “Live”, “popular”, “recent”, etc.

2. They’ve finally added a quick button to access the Channel from the video interface, but they’ve hidden the like/dislike buttons behind the “additional options” section in the video interface. This is, I guess, a move to trust the algorithm more, but it’s terrible, because I’d LOVE to downvote some videos after watching them.

3. The algorithm is actually doing well in recommending similar content over time. Not in the immediate instance, but over time.

That’s all for now. If you’ve been watching the news, you know that the police in the US has been attacking and arresting peaceful protestors all over the country, so please consider donating to the National Bail Fund Network here.

Streaks

white book

If you came here to read about a fitness streak, you’ll be sorely disappointed. I’ve been on a different kind of streak lately – I’ve been reading a lot of RSS feeds. Specifically, I’ve been spending time going through a lot of webcomics.

See, I love reading RSS feeds. I definitely overload every feed reader I’ve used, but none so much as I’ve overloaded my current one – an app on iOS called Fiery Feeds. I have about 16k unread items on here (don’t judge me).

Out of these, about three thousand are webcomics. So I’m starting from there. I pick up an unread feed and blaze through it. Usually, that’s 60-100 items that I end up marking as read in a day. At this rate, I’ll be current in a couple of months. Of course, I’m focusing on webcomics because they’re super easy to read, with not a lot of context needed, and a quick read time.

But that’s not all. Comics are able to portray the ethos of their time very easily. Whether I’m reading a slice of life comic from a few years ago, where the biggest topic was the latest Starbucks winter theme, or I’m reading the latest xkcd, talking, of course, as everyone else is, about COVID-19, it becomes very easy to see the timeline and to consume the news of the day through comics. Of course, I also love reading more serious endeavors like Gaia and Slack Wyrm, which have enduring storylines, recurring characters, and a vein you kinda have to hold on to, preferably by reading from the first comic. These are just plain fun to read and follow along!

While reading may be all fun, I’m sure writing and making webcomics is not. All the hard work of describing the scene, the props, the clothing, is already done by the artist, and I just have to consume all those visuals. Compared to essays, where I have to read through to understand the story from top to bottom, and where my attention is definitely pulled away before I’d like it to, comics are easy to consume, though I’m sure the effort that goes into a good essay is perhaps less than that which goes into a good comic.

Now, once I get done with the comics, I’d like to continue reading my RSS feeds. I follow a lot of personal feeds, mostly from random strangers I’ve encountered online. It feels great to be in a space where I can just read a person’s diary entry, with some of their personal thoughts splashed on the Internet for me to see. Besides the occasional rant, most people put good thoughts on their websites, and it feels great to read those positive thoughts.

One of the reasons these “personals” are easy to read is because, frankly, of twitter. A lot of folks try to cross-post from their blogs to twitter and other microblogging sites. This means they have to stick to a length limit, and most of them try to get done with their thoughts in about 30 words or less. I wouldn’t say that’s the real average, because I’ve never measured. But birdbrained that we are, reading more than those has often ended in my attention getting pulled away, so people who post 30 words or less and express themselves fully still, are aces in my book!

But once I’m done catching up with the personals, of course I’d like to read more serious, longer stuff, which has been piling up. Most of the time, I’ll read a few paragraphs and either abandon the writing for being too dry, or shove it into Instapaper to catch up with it in a few years. My “long articles” section is at about five thousand entries, with writing from AI Weirdness, Linux Journal Blogs, and InkMango, to name a few. One of these days, once my habit is built and my streaks have left me with no webcomics to indulge in, I’ll dive into these heavier writings, and hopefully come out more educated. For now though, laughs are enough!