Nitin Khanna

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

Sticky is good, brimming is better

In my last post on the topic, I said that when I reached into my memory for alternatives to Goodreads, I remembered only StoryGraph and Literal.

This is good. Whatever is sticky is what we use in the end.

Recently, it went a little further. Lately, I’ve become a fan of a lot of alternatives to books. 13 out of the 18 books I “read” this past year were audiobooks. Another 3 were actually Harry Potter fan fiction web novellas from a series called Ever Upward. It’s worth a read.

There’s another web novel which I’m reading right now, on and off, which I have no hopes of finishing soon. It’s called Worm and it’s three times the size of War and Peace, which took me well over 2 years to read.

But the significant thing is that both the fan fiction and the web novel are online entities that have no ISBN, publishing house, or even profit motive. They are purely labors of love, freely given to the world, published online in a format that may outlast humanity or may disappear tomorrow.

Which means there’s no serious way to track the fact that I’m reading them other than putting them in my notes or on my blog. Goodreads doesn’t acknowledge them. Neither does Literal.

But StoryGraph does.

A few months ago, I wanted to record that I’m reading Worm. None of the services – Goodreads or it’s alternatives seemed to have Worm as a “book”. But StoryGraph did. I added it. But I’ve not really used it to track my progress. Mostly lack thereof.

A few days ago, I felt like adding my progress on the Ever Upward series to the reading services. Sure enough, StoryGraph is the only one that has it, with each numbered novella a separate entity. I added it and quickly marked the first three novellas as “read”, adding them to my 2023 Reading list.

I like Literal. It’s got a nice interface, a very good community. They have this cool feature where you can create Clubs based on any random criteria and people can join them and add recommended books as well as posts to those Clubs. I’m an active member of a club called “Complex Females” and the creator of a club called “Short books“. But like most other non-Goodreads platforms, Literal suffers from a lack of records. Books are missing or not available in the format I’m reading them in. To fight this, Literal created a program called Librarians where you can contribute information about missing books and editions. Still, there doesn’t seem to be a way in Literal to track non-ISBN books.

StoryGraph doesn’t have a program like this per se. But any member can import a ISBN based book. What they also have is a feature that says that if you don’t have an ISBN, you can manually add a book and plug in information about the work. This is probably what some kind strangers used to add Worm and Ever Upward to the platform. I’ve found this to be a rather unique option that’s not present anywhere else. In general, if you want to track something you’re reading on the web, your main options are Read Later tools like Instapaper or Omnivore. I do not want StoryGraph to track every article or LongRead out there, but the idea of tracking web novellas is unique and very satisfying.

I want to give my money to StoryGraph. It’s $50 a year for the annual plan (or $5 a month for the monthly plan). That seems like a reasonable way to support the platform. Literal on the other hand, has a “Patron” system where you can contribute $5/$10/$20 a month to help keep the lights on and improve the platform. Seems reasonable too.

Literal has a social aspect that StoryGraph lacks. StoryGraph has Stats. Who doesn’t like stats?

Ideally, I’d like these platforms to merge so I can have exceptional stats as well as a social aspect that’s entirely around book clubs. But that’s just wishful thinking.

What do you think dear reader? Where should my money go?

Oh, and about the title of the post. I am leaning towards StoryGraph because it’s brimming with more than just ISBN based books. It’s helping me track web novellas which I would have no way of tracking through a “reading platform” otherwise.

DNR’d two books back into 2023

Not a 2023 roundup post.

Just wanted to note that I was trying to finish 2023 with two audiobooks – To Her Credit and Classic Women’s Short Stories. Could not finish either of them. To the point that these are the only books that I picked up in 2023 that I will not finish.

“Classic Women’s Short Stories” is just too dated to read. There are a few short stories in there by some famous authors – Katherine Mansfield, Kate Chopin, Virginia Woolf. But most of the stories were just too… boring… to read. Ultimately had to drop the entire book. Woolf’s story, A Mark on the Wall, and Mansfield’s The Garden Party and Daughters of the Late Colonel, were the only ones I finished. I would recommend you to read these stories individually instead of through this book.

I thought To Her Credit would be similar to Figuring by Maria Popova, the book that kick-started my love for Feminist Memoirs. Instead, it was just a series of “here’s a woman who did amazing things and here’s a man we want to put down through her”. We need more writing like Popova’s which celebrates women’s accomplishments (or non-accomplishments, like Three Women by Lisa Taddeo) without demeaning them with comparisons. I’m still looking for anything as well written as Figuring.

I’m starting 2024 with a wondering book named Berlin by Bea Setton. It’s very along the lines of A Year of Rest and Relaxation. I’m loving the inner monologue of the main character and the audio narration by Ell Potter.

Sticky is good

Huh, I just realized that I’ve basically forgotten what all goodreads alternatives I was using. The only one that stuck properly was StoryGraph and after a little pressure on my brain, Literal.

That’s good! That’s what I wanted to do – use a few of these services and let some of them fall away, till I am left with the ones I remember.

It’s like email addresses – we’ve all got a few – gmail, yahoo, personal domain. But which is your goto? It’s the one that pops into your head as soon as you need to give your email to someone.

Sticky is good.

Another rant on software updates

When I opened my blog today, after quite some time, I didn’t have any idea I wanted to write about. Just an ache to see my space. I’ve been reading my RSS feeds a lot more recently, since I’ve been able to get my homelab going on a new mini pc I bought. I also setup Cloudflare tunnels to the software I’m running on said mini-pc-turned-server so I can access it anywhere. The majority of blogs I follow in my feed reader is personal blogs and with reading all those blogs comes the ache of wanting to write to my own.

But soon as I opened it, it prompted me to deal with 15 updates. I hate software updates. They’re so irritating. I get the point, but come on. This is part of the reason why I like working for the company where I recently joined – JFrog. One of their big ideas is “liquid software”. Updates shouldn’t come in your way. They should just happen in the background. So I went into the WordPress interface and turned on automatic updates for as many plugins it made sense for. I’d rather deal with updated and broken plugins by removing them than have to update them every time I come to the blog to think. I also took action on this previous statement by deleting the Apple News plugin. It throws some sort of error on the WordPress Gutenberg editor which always irks me. Besides, I don’t think Apple News works for personal blogs any more. Hasn’t worked for a while. So why keep a relic around? Out with it!

I recently had about half an hour of “me” time and chose to pick up my rarely used Nintendo Switch to play something, anything on it. I own Zelda Breath of the Wild on it, but I never feel like diving into a storymode game any more. So I had remotely installed Apex Legends on it at some point. I thought I’d dive into that game and setup my character and maybe play a quick match.

First the Switch had some software updates it forced upon me. Then Apex Legends had a software update it forced upon me. I keep the Switch plugin in and charging at all times. This way if I ever have the time, I can pick it up and just enjoy it. But no, updates got in the way again. You’re plugged in and charging. How about just download these damn updates in the background? Dejected, I shoved the device back into its charging slot while Apex Legends was downloading its update. I’m almost sure that the stupid thing didn’t finish the download and install and will irk me the next time I have a few minutes to myself.

I have a policy on my iPhone – no software updates unless I’m forced to. Banking apps and my Car Insurance app will often force me to update. The insurance app is the most egregious. It’s almost always needed when stared in the face by a cop or in an accident. Instead of letting the user get to vital information, this stupid app forces an update. So I’ve taken to opening it once a month or so to get any potential updates out of the way. The banking app, I open regularly enough to get the updates in as needed.

All other apps can shove it. Facebook has figured out that people hate updates, so they have a shitty SDK that does the updates for them, all within the app. This leads to a loss of control, but at least it’s consistent – I can open the app and use it, even if I have to deal with a whole new UI when I do. Still other apps will keep working till things break, and that’s when I go hunting and realize there was an update a year ago that fixed said bug. So I missed a year of updates. No worries.

I could just turn on autoupdates on iOS, but there’s a stark difference between WordPress and iOS – on WordPress, on the plugins view, I can choose which of the plugins would get the autoupdates feature. Plugins that are critical or those that I don’t trust enough should not be autoupdated OR force updates on me.

iOS has no such features. Autoupdating is an all-in or all-out approach. This is a horrible UX. Granted, we all have hundreds of apps on our phones and such granular controls can be cumbersome. But it’s a better problem to have than to have no autoupdates at all.

Thought about WordPress as a digital garden

I was just thinking that WordPress is amazing as a website builder and a blogging solution but really not great as a knowledge base or a digital garden. It obviously supports back links, which seem to be an integral part of digital gardens, and it supports markdown to an extent, which also seems to be the markup system of choice for most writing and thinking tools now. But it still acts like a web app. It expects you to be in one view and one view only. You’re either editing or administering. You can’t ever be “collating”.

For example is that purpose, tools like Obsidian (which I’m using a lot these days) work very well, though each tool has its own flaws. I’d love for there to be an alternative interface for WordPress. One that acts like a digital garden app but uses WordPress as its backend. Too much to ask for?

Update: Desktop tools are something I’ve stopped exploring. But today I looked at MarsEdit and it’s… there?

random musing

I can sorta imagine a future where scientists experimenting with genetically modified bacteria looking to solve pollution will create a bacteria which will eat all carbon based fuel instead. We’ll end up with a globally spread bacteria that will force us into a post-fossil fuel era where only electricity from renewables and nuclear will work and everything else will just not even start.

But how does such a bacteria differentiate between carbon based fuels and carbon based living organisms?

Setting Up a Local Webserver on Debian: Solving the Mystery of .local Domain Advertisement with Avahi

I recently purchased an Intel N100 based mini PC with the idea of turning it into a local webserver hosting many services like RSS feed reader, pi-hole, an open source memos app, and a few other smaller open source projects. I currently host all of these on an ailing Macbook Pro which has a tendency to go into “darkwake”, i.e. it wakes up when I send it a Wake-on-LAN command, and then within 15 seconds it goes back to sleep. Rather a lethargic fellow, that.

Initially wanting to install ubuntu on this new machine, I opted for debian because I’ve recently had some interaction with the OS at work and I’ve found it to be very stable and light. I’m sure someone might disagree and I’ll gladly experiment with other Linux OS somewhere down the line.

While I was installing debian, it asked me what the domain should be and I answered “local” because I want to access the server on my local network with the completely innovative domain name “server.local”. My other machines are “laptop.local” and “macserver.local”.

The latter two are Macbooks, so they automatically advertise the .local domain on the network using Apple Bonjour. But the debian wasn’t doing so. I was googling around but didn’t even know what to ask. Some stackoverflow answers spoke of how Ubuntu automatically advertises the “.local” while debian does not.

Before I rued my fate and having to wipe out my just setup server, I decided to ask the AI powers how I can solve this problem. My go-to is Bing Chat, since it has internet access. I asked the

Does debian 12 advertise itself on the lan with a .local domain name like Ubuntu and MacOS do?

Bing Chat looked around and regurgitated an answer I’d already found on Stackoverflow – that while it is possible to do so, the SO answer author decided to leave out the vital detail of what the heck this service is called on the Linux side of things (Apple Bonjour is a damn well known name in tech circles). The alternatives that the SO answer mentioned and Bing Chat vomited were to setup a local DNS server or to use /etc/hosts. The latter option is NOT available on iOS devices, which are painfully inadequate in terms of actually completely owning your device.

Before I gave up, I went to ChatGPT and pasted the question above exactly as is. I wasn’t really expecting a different answer, but I sure got it.

According to ChatGPT, as of its January 2022 cutoff date, Debian 12 hadn’t been released. But, the technology I’m talking about is called Avahi. Ubuntu and MacOS have it preinstalled and I can check if Avahi is installed using the following command –

dpkg -l | grep avahi

My debian install was of the netinstall flavor, which means it installed all the basic packages it thought were relevant and everything else was left to this poor user to figure out. I googled and found a method to install avahi-daemon on debian and the tutorial even mentioned that after installing it, I basically have to do nothing.

Lo and behold! One quick install step later, I can now access “server.local” on my LAN. Nice!

I don’t often do this, but I dropped the following feedback to the ChatGPT team regarding this excellent answer their LLM provided to me –

Though it doesn’t know that Debian 12 has been released after its cutoff date, ChatGPT was nevertheless point me in the right direction because the underlying technology – avahi – has been around for a while and is clearly the answer to the question I was looking for. In contract, Bing Chat was not able to come to the same answer even though I asked it the same question.

Spelling mistake and all.

The title of this post was created by ChatGPT after I fed it the entire post above and asked it what to name the post. I gave it the title “ChatGPT still wins over Bing Chat”, but that felt too sensational.

Cheers.

Interesting ad

I was just on Twitter and I saw an ad for the new iPhone 15. It said, quite politely, that the iPhone 15 can take photos of 4x more resolution. Compared to what? Well, it had an image of an iPhone 12 and an image of an iPhone 15. “Oh, that’s so nice”, I thought, “but why is it comparing those two phones?”

It dawned on me that the ad is not random, it’s customized. It’s customized to my phone. So if I were on an iPhone 14 Pro, I might see a different ad. Except, here’s a problem – I am not on an iPhone 12. I’m on an iPhone 12 Pro. It doesn’t make a difference. The 12 and the 12 Pro both sport a 12 Mega Pixel main camera setup. The Pro simply adds a nice fish-eye lens, which is very, very useful to me.

What does make a difference is how the ad was crafted. It’s likely iOS is only sending a generic device signature of an iPhone 12 to the Twitter app, which is then passing it on to the Apple advertising vendor and I’m being shown that customized ad accordingly. The sad thing is that it’s just as likely that the exact device information of my phone is being handed to the app and the ad vendor is instead choosing to show me an ad to upgrade from an iPhone 12 to an iPhone 15 instead of an iPhone 12 Pro to an iPhone 15 non-Pro. After all, who wants to lose a camera in an “upgrade”? Apple does a great job of pushing the non-Pro phones every year as budget alternatives to the Pro models. So it’s no surprise they’d want someone using as “old” a phone as an iPhone 12 (Pro) to upgrade to the latest. But it’s an interesting marketing strategy to try to sell me on a non-Pro phone, if it is that.

I dunno which version of this is true. Interesting ad though.

I thought that in reading Bird by Bird after Parisian Lives, I’m stepping away from Samuel Beckett. But Anne Lamott brings him back into my musings, with these lines –

But a writer always tries, I think, to be a part of the solution, to understand a little about life and to pass this on. Even someone as grim and unsentimental as Samuel Beckett, with his lunatics in garbage cans or up to their necks in sand, whose lives consist of pawing through the contents of their purses, stopping to marvel at each item, gives us great insight into what is true, into what helps. He gets it right—that we’re born astride the grave and that this planet can feel as cold and uninhabitable as the moon—and he knows how to make it funny. He smiles an oblique and private smile at us, the most delicious smile of all, and this changes how we look at life.

Bird by Bird: Some Instructions on Writing and Life by Anne Lamott

I’ve been reading listening to “Bird by Bird” by Anne Lamott and two things stuck out – one, I didn’t know Anne Lamott is funny, and by extension, that this book is funny. Two, I love that Anne calls the very first draft of what writers write as “shitty first drafts”. I love it not because I write shitty first drafts and then better second drafts, but because I only write shitty first drafts, and then hit publish. That’s the glory of blogging. Sure, you can write, rewrite, edit, perfect. Or you can just fire off a missive into the ether and care or not that someone reads it. I know this is yet more navel-gazing re: blogging, but it’s the kind I enjoy the most. 🙂