How to add all kinds of feeds to your nextjs app router based app You’ve rediscovered the small web. You came across amazing RSS readers like FreshRSS Capy Reader . And suddenly you realized your NextJS based blog/website doesn’t have an RSS feed. So you start thinking. Should I add RSS or should it be Atom? Oh, I have heard about this jsonfeed format, perhaps that’s what I want.…
SMC’s blog on ghost was compromised as part of a mass compromise of ghost blogs. This is how I cleaned it up. In February, using Claude, someone discovered an SQL injection vulnerability in Ghost . It had a score of 9.4/10. Basically, attackers could read anything in the database. Some time after that, a mass compromise was done with this vulnerability. Read Ghost CMS Mass Compromised via…
Decompiling Poshan Tracker app to inspect its face verification functionality A Decode investigation reported that “AI Facial Recognition Is Denying Food To Pregnant Women Across India” on March 19. The article is worth reading and includes quotes from several people with lived experience talking about the exclusionary systems being designed. As a public health professional who has…
How I migrated old services of Swathanthra Malayalam Computing to a new server saving software (and money) When web based software get old, people stop caring for them. Shiny new alternatives become commonly used. The old ones are forgotten. One day you’ll find the server down. And poof, nobody can restart the service anymore. This is one way death of software looks like. There are other…
I built an extension for mediawiki to prevent spam sign-ups. This is the story I’ve been working on building a wiki for health (including its social determinants) in India. In that process I’ve been fighting spam by installing various extensions (including StopForumSpam which I wrote about ). There’s a limit to how much extensions can do, and therefore I had made it such that…
Here’s how I do CI/CD without all the fuss You need only one thing for Continuous Integration - a working test suite. You need only one thing for Continuous Deployment - automatic database migrations. And you need only one thing for rolling out your own CI/CD - (web)hooks. What? Let’s look at how traditional CI/CD operate in github. You write a new feature. You push the commit to…
MediaWiki = Spam. But can you install StopForumSpam? It has happened to all of us. We set up a wiki with the grand goal of letting everyone contribute to a fledgling knowledge base. And then 5 days later the wiki is taken over by penis enhancement advertisements. MediaWiki documentation has a page on combating spam and another on combating vandalism to help you with a few tools you could try out.…
Heard about HTTPS record and want to set it in OctoDNS. You can now! SVCB is a new type of DNS record that’s like CNAME but with more powers. It is defined in the Service Binding and Parameter Specification via the DNS RFC . HTTPS record is a specifically named variant of SVCB record. @ 7200 IN HTTPS 1 . alpn=h3 A record like this makes the apex domain (@) be marked as supporting QUIC and…
An invitation to join a safe space for learning programming (hopefully towards a social purpose) Programming (coding, software engineering, or development, whatever you call it) is a very useful skill. Almost like cooking. If you have been looking for a safe space for learning programming, read on to find out if “Purposeful Programming” community is of use to you. Purposeful…
On the FSCI wiki there were some old pages which were erroring out even though it had page history entries. This is how I fixed it. In the last couple of days, I’ve been doing some maintenance work on FSCI Wiki. First I upgraded the mediawiki version , then I created an article on Self-hosting complete with an image from Wikimedia Commons using the InstantCommons extension, and so on.…
Google recently announced that it’ll be forcing developers to register with government identity cards on their platform to be able to distribute Android applications anywhere. I came across keepandroidopen.org in FSMK’s chat group today. So I quickly composed an email to Competition Commission of India. Here’s the mail that I sent. Sub: Google is abusing market monopoly to force…
Clickbait aside, this is a description of how I upgraded an old Peertube instance multiple versions Free Software Community of India has a peertube instance at videos.fsci.in . It was set up originally in 2018 and upgraded last in 2021. It was not just a tech debt, but also a financial debt costing about ₹11,000 rupees every year to be running as it is (without even getting new uploads). The key…
This is a documentation of me building an online card game Twenty-Eight is an important card game in my home back in Kerala. It is played usually in weekends, holidays, weddings, and other occasions. If there are 4 players and there is time, we play it. 28 is played in teams of two who sit alternatively around a table (like carroms). Only the cards 7, 8, 9, 10, J, Q, K, A are used to play. The…
These days everyone wants to crawl the internet. And if you’re a sysadmin of a mediawiki instance, that means hundreds of thousands of requests to the links on your site The problem is especially bothersome for mediawiki because each page in wikis built with mediawiki open hundreds of links. There’s Special:RecentChanges which link to several pages, and each page’s history has…
Loomio has a container that listens on port 25 to accept incoming emails (for post via mail). How do we then run an MTA on the same server? On FSCI’s loomio instance there’s been a situation I noticed since a few months. To make the wiki (mediawiki) send emails out, it needs a local sendmail functionality. This takes up port 25. But loomio was also listening on port 25 with its…
What’s the difference, if any, between erotic and love? What’s the difference, if any, between erotic and passion? Is the erotic present only in women? If so, isn’t it some sort of biological/psychological essentialism?
In my previous post I wrote about moving to Hugo. Now today I again searched for a work flow that involves writing from phone. And I discovered very nice blog post and I immediately copied the whole thing with termux, tasker, and everything. I set it up also for learnlearn.in This post is from that workflow!
Since I am now making block pose using marker app within Android I am able to also use Google voice typing. This is an excellent way to avoid repetitive strain injuring to my Tom joint. It also appears like a very good way to ensure that my pronunciation is good.
After years of struggling with jekyll’s limitations and idiosyncracies, today I moved to hugo. It took several hours. Importing content The Migrate to Hugo page suggests a few tools. First I tried the jekyll import command built-in. It moved the posts correctly. But the filename retained the date prefix as in jekyll. And I wasn’t sure if the date was correctly captured in frontmatter.…
What if there are domains you care about but the expiry alerts don’t necessarily come to your email address? Update on 2025-05-26 : There’s a bug in this code that causes lines to disappear. Read more at the end of the post. I’ve had it before. There are people who start websites. And they forget to renew their domain. And then they ask me whether I can recover the domain…
Firefox somehow changed its behaviour of what it does when I paste multiline strings from pdf into the titlebar. Here’s how I undid that for me You know how when you copy a paragraph from a PDF, the lines are broken into new lines at the end of where the column originally ended? There’s a trick I use to quickly fix this which is basically the following series of shortcuts in Firefox:…
Google groups makes you accept 5 emails at a time. How can you do this in bulk? In Google Groups when you have scores of pending messages, you are able to approve only 5 at a time. How to do this for all? Just open developer console on the pending messages page, and run the following: let sleep = (ms) => new Promise ((resolve, reject) => setTimeout(resolve, ms)); async function clear() { document…
If you are using Visual Studio Code Insiders on Arch Linux and encounter the error message signature verification failed with 'UnknownError' error when trying to start using GitHub Copilot, here is a solution to resolve it. Error Description When attempting to use GitHub Copilot, you might see the following error message: signature verification failed with 'UnknownError' error This error occurs…
My friend got scammed by a seller on Amazon named “No Doubt” who sold a very old, used Seagate hard disk as new. I was helping do some testdisk/photorec data recovery for my friend. Since I am not a professional I don’t have all the hardware tools. The most important of which is a spare hard disk. So I asked my friend to get me one. He ordered on Amazon and I received a brand new…
Upgrading to postgresql 17 when postgis exists As is often the case, archlinux upgraded my postgresql to 17, and gave me the wiki link to https://wiki.archlinux.org/title/PostgreSQL#Upgrading_PostgreSQL to fix the upgrade myself. So, I just followed the pg_upgrade section of it and did: # mv /var/lib/postgres/data /var/lib/postgres/olddata # mkdir /var/lib/postgres/data /var/lib/postgres/tmp #…
What is an interview? What to do in one? I have been part of several interviews — more often as interviewer than as interviewee . Here I will list down my philosophy in and around interviews. Power There are several reasons for an interview to happen. It could be: A is offering a job, B is looking for a job. A is looking to buy something, B is selling something. A wants to know something, B has…
AI is a tool for augmentation, not replacement. But unfortunately many humans use it as a replacement, and therein lies the problem. In the past many months, I have been observing the effects of AI (LLMs) in various aspects of software development. There is good news and bad news. The good news is that AI shifts the paradigm of work and raises the level of what is possible. The bad news is that to…
I migrated a popular health magazine from Next 13 to Next 14. Here’s what I learnt Nivarana had been running on a borrowed version of Next 13. In the javascript ecosystem, if you don’t keep running, you’ll fall behind and die. Also, I didn’t like this codebase (I’ll list down a few of the problems below). So I thought I would just migrate the thing to Next 14. It took…
When you discover a keyboard shortcut for what you’re about to do, cancel doing that and do it with the keyboard shortcut instead. Many pieces of software include a helpful keyboard shortcut next to many menu entries or in the item tooltip. For example, when you open “File” in Firefox Desktop, you see “Save Page As… Ctrl+S”. Often you’ll see these…
Almost two years into the era of AI explosion, here’s how my life has completely changed The biggest loss has been for Google. Then StackOverflow. Here’s exactly what I use LLMs for these days. I predominantly use ChatGPT (in whatever model they provide in the free tier at the time of the day), then Claude, and sometimes Gemini. I use only the free tier in all these. Searching for…
One might think that by the second half of 2024, bluetooth speakers would work on linux seamlessly. There are two things I’m absolutely terrified of connecting to my linux computer. A printer, and a bluetooth device. Today I dared myself and decided to connect my “Resound” football shaped speaker. I started the bluetooth.service with systemd. I could see the device listed in the…
Have you ever had a mailu server keep retrying mails to email addresses that don’t exist? What if you didn’t want to or didn’t have access to stop emails to this address at the source? If you have a setup like this: Application A -> Mailu based mailserver M -> non-existent recipient R And your application keeps sending emails to R (let’s say “notification”…
Verbatim quoting the comment made by CVN I am a practitioenr of modern medicine, actually orthopedics. I’ve been a lifelong critic of alternative medicine. I was never a modi-bhakt. I don’t take my Colles patients to OT also. Most of them, I don’t. That’s just an intro. I am sure that my stand in this topic is going to be a minority opinion. I am also certain that this…
Manoj messaged me the other day saying how he was unable to upload a file to the “FromThePage” instance of Sahya. I started investigating it after 4 days. I couldn’t find any error in the application log. And then Manoj told me that the uploads were indeed complete, but they were stuck in “Processing” in the queue. So I went and looked at the log of one, and it was…
The tragedy of the commons is invoked every time something wrong happens with open-source development. Is that always correct? “I’m giving up — on open source”, that’s the title of a blog post written by a developer announcing why they’re giving up on open-source development because the users of their project(s) demanded free labour. Best summarized in: And if people…
Moderation, CoC, etc are very important. But they’re also very hard. To be a moderator is as difficult a job as it is to be a leader Let’s start with three to four case scenarios. Indian Pirates and Right-wing “Trolls” Indian Pirates had an open discussion forum on matrix. Once a couple of right-wing “trolls” got onto it. I spent hours and hours debating with…
Judah spammed me with a list of courses from OCW (probably related to technology, yes, I asked for it). So I decided to review them. Designing and Sustaining Technology Innovation for Global Health Practice This is a course that’s ideal for someone bringing the hustle culture into healthcare. It talks about the experiences of PATH (HPV Vaccine case study), microfluidics, new systems of drug…
When you already have a super powerful camera and microphone in your phone, why should you struggle with video on your computer? scrcpy (which I read as screen-copy) is one of those tools which you didn’t know you wanted. I forgot who introduced me to it. As per Telegram history Jishnu messaged about it first. I definitely remember Subin giving a talk using it. And I am pretty sure I heard…
Which districts of India do not have a Domino’s Pizza Store in it? Recently a friend told Swathi that those who are studying a district (for their public health project) should study a district which doesn’t have Domino’s pizza (as a proxy for being a difficult district). This made me wonder whether there are any such districts. I had to find out the answer. I did what everyone…
I ran an open relay with Mailu for a few weeks. Here is how I fixed it. Upgraded to https://t.co/SoKasnytTf 2.0. (Switched to roundcube on the way). Dark mode and so on. I love it. pic.twitter.com/KCEfaWhXtE — Akshay S Dinesh (@asdofindia) November 17, 2023 I did this upgrade about a month and a half ago. About two weeks ago I noticed strange “Message delivery failed” emails in…
Is it the best time to be alive as a subtitle-r? This year I’ve been dealing with subtitles in many ways. Yes, I mean, that text which appears under videos writing down what is spoken. It helps in many ways: Those who can’t hear well permanently or temporarily can read it and follow along Those who aren’t good with the language can understand what’s spoken It allows you to…
Open this, open that, open everything. Is anything ever open? Note: This post wasn’t published till 3rd February, 2024 because I lost interest in it. It eventually got published (at the older date) because I didn’t want to just discard them. But it hasn’t been updated or completed. Let me open this post by saying that “open” is a four letter word which has at least 45…
You can download ward maps from OSM by following this NOTE: While the following is technically the way to do it, ward level data is not very accurate in OSM at the time. Unless a local OSM contributor tells you that this data has been verified with the actuals from the local self-governing body, then do not rely on this. You can do the verification/edits yourself and download too. OpenStreetMap…
It is one thing to say social media is bad, it is another thing to understand how social media is affecting our democracy and respond to it It is quite fashionable among certain academic folks to stay away from social media saying “Oh, it is not for me”, “I’m not tech-savvy”, “I find it very toxic”, and various other reasons. While these reasons could all…
I just came to know about Social.Coop and got some useful insights into organizing commons/cooperatives/anarchic/decentralized groups Raghu posted in a group related to Prav a link to social.coop . As I’ve been experimenting within decentralized/self-organized/anarchic/cooperative/commons groups in the past year, it was nice to see one that had evolved a certain level of structure.…
How to get nextcloud kinda working on the local network (on Windows) Things would have been rather easy with Linux I guess. But I had to install Nextcloud on a Windows laptop recently and here’s how I went ahead. https://github.com/nextcloud/all-in-one/ also called as AIO is what is recommended for this. There is a section on how to run it on windows. It is basically a docker based setup. So…
You can theoretically (if all stars align) host a website on your android phone Getting connectivity Firstly you need the ability to bring anyone on the internet to your android device. That means, your ISP should give you a public IP (even dynamic one will do). If you are behind a Carrier-grade NAT, you won’t have a public IP. But I have fortunately been always on ISPs that provide public…