08 September 2025

Organic terrace gardening (OTG): Oota from your Thota (food from your garden)

The Times of India had an article about an Oota from your Thota (OFYT) meetup at St.Johns road on 7th September. I heard of such events happening in Electronic city in 2013, but since this was close enough I decided to attend. Oota is the Kannada word for food and Thota is the word for garden. What surprised me is that as per this article there were more than fifty thousand mini farms on people's terraces in Bangalore in 2020. An initiative that was begun by Dr. B. N. Vishwanath who created an NGO named Garden City Farmers way back in 1995. Unfortunately they seem to have stopped publishing on their website and switched over to Facebook, Whatsapp and Instagram, none of which I use. Particularly after reading this security warning. Anyway, OFYT organizes frequent meets where they even share seeds, so the seeds eventually become a Thota from somebody else's Oota :-) which then grows into an Oota from your Thota.

At the event what surprised me was the drive everyone had. They were very courteous, eager to help and made sure they proactively asked questions to figure out what problems people were facing with their terrace garden and readily offered suggestions and options on how to tackle the problems. There were various types of stalls put up around B.M. English school along the footpath. I heard there was even a workshop held inside the school regarding composting, but I missed it because one of the scouts told me there was no stall inside the school, and because there was no announcement about it other than a tiny sign that pointed to the school saying "workshop".



An encouraging glimpse into the world of various terrace farmers in Bengaluru.

 


These grow bags seemed quite sturdy. The small ones cost Rs.65.


Natural chemical free products from Little Silk (I believe this is different from another brand named The Little Silk)

 


Natural soaps. I felt they could have improved the appeal a bit more by using mounds with smoother edges and they could have also put up a poster explaining exactly how these natural soaps are better than the commercial soaps we use. Also about how the commercial soaps may be affecting health if it does. 

 


Natural lipsticks using beetroot, rose and perhaps natural oils.

 


Chocolate wax to remove tan, natural facials, etc.

 


Various food powders.

 


Organic honey, ghee, nuts, etc.

 


A green kitchen whose people are willing to teach you how to reuse or recycle things in such a way that you reduce waste significantly.


Ananth plate bank provides free steel plates, spoons, tumblers and bowls for any event you organize. You have to collect it from them, use it for your event, wash it and return it at your expense. There's also a security deposit. But otherwise it's free to use and return. Their objective is to reduce waste by allowing you to use the utensils for free.

A mixture of powdered pre-cooked organic millets etc which can be dissolved in water or milk and consumed

Various gardening tools

Decomposting agents 

Compost and manure

Rooting aid



A stall showcasing items which I understand was supported by the ministry of tribal affairs. 

These are lanterns made from actual vegetables. An electric bulb can be placed inside, creating beautiful light patterns. 


Sound tubes used by tribals to communicate during hunting. The bamboo tubes have zig zag channels inside and seeds flow down them when you turn the tubes upside down, creating a unique flowing noise.

 

The rhino on the right is said to be made from Assam tea plant wood




Bows used by fishermen in Andaman. The actual arrows used by fishermen would have metal heads. The arrows are shot through a hole in the middle of the bow so the arrows have no fletching. The arrows are said to be able to fly as far as 100m. The bow costs around Rs.450, and two arrows (with wooden arrow heads) are given with it.

 


Various homemade snacks made with organic oil and organic raw materials, prepared by a brand called "Tasty Crunchy Products" at Kammanahalli. They even make Kerala pappadam and appalam. 

Various organic pickles


Eco urban farms provide elevated garden growing containers on rent. They also help with growing the veggies by coming to your house and doing the work every month. Total cost of the rental and maintenance is Rs.5000 per month. Else, you can purchase these containers. The container slightly larger than what's in the picture cost Rs.6500. It's made of fiberglass (though it looks like aluminum) and they have other types of containers of other materials too. The weight matters, because a roof can only safely support around 200kg per square meter. 


Various saplings, grow bags and garden tools available for reasonably cheap prices. The saplings on the right were just at Rs.5 each.

 


Various kinds of rice and millets from JivaBhumi. There is actually something different about these food items. Although I was skeptical at first, I found it to be somewhat reliable (though I need to consume a bit more to confirm). There are specific instructions on how long to cook these rice varieties and how much extra water to use. Some can even be soaked for long to germinate them, which increases nutritional value. I had a conversation with the co-founder who seemed to be a genuine person.


Organic sugar, jaggery, dal, ancient variety of wheat.

Cold pressed oils

Various other snacks and pickles created from organic produce...


 

Products from Quantum Leap (they have a vertical named Quantum Leaf) for terrace gardening.




Various seeds available at reasonable rates. They'll send it to you via speedpost when you order.







Various products from Akshayakalpa. It's worth watching their Good Food Movement videos https://www.youtube.com/@goodfoodmovement

 

Products from Biological Research Innovation Centre and Solutions  (BRICS)

 

MycoDim is a broad spectrum, contact foliar fungicide that prevents a variety of diseases on ornamentals, trees, potted plants, fruits, vegetables and turfs. SasyaRakshak is a water-soluble plant protectant, carefully designed to contain all good constituents derived from select botanicals of known pesticidal properties. The combination of active ingredients from these plant sources provides excellent protection to the crop plants against sucking (Aphids, thrips, mites, mealybugs, hoppers, and bugs) as well as biting ( leafminers, caterpillars, beetles, weevils) insects.

 


Natural shampoos, hand wash and face wash

 

The stalls were put up on an actual footpath

Oota from my thota

In around 2014, I purchased a few grow bags and tried growing some veggies on my terrace. 


Tomato, curry leaf, coriander, pudina, mustard, green chillies and even an apple sapling grew.

The first tomato harvest had a worm/caterpillar enter one of the tomatoes. I soon found that a butterfly or moth was laying tiny yellow eggs on the leaf and those were becoming the caterpillars that ate the tomato. Removing the eggs early helped avoid that issue. I didn't purchase any seeds. I used the seeds from whatever veggies I purchased  from stores. I did face issues of the soil getting very soggy during rains, the water at the base of the grow bag accumulating at the bottom without draining off sufficiently from the drainage holes, earthworms slithering away during rains, fungus at the roots and those white flies infesting the green chilly plants. I was pleasantly surprised to see small honeybees visiting the plants, preying mantis, lady bugs and even dragonflies. There were also times I saw some plants squashed, which I assumed was because a feral cat either walked over it or used the place as a bed. I have some reason to believe it even used the soil as its private restroom. 

I mentioned some of these issues I faced, to the people at OFYT and they gave me some nice solutions like collecting the leachate using a container below the grow bag and reusing it for watering the plants after diluting it. 

There are things that can be improved with such initiatives in terms of being able to make people aware of what is available, visualizing where organic farms are nearby on a map, using tools like what3words or digipin, a trained LLM that can explain things for people instead of them having to connect with a person and worrying if one would be disturbing them, using a website or a dedicated organic farming app instead of third party tools like WhatsApp, Facebook and Instagram. Since organic food is expensive, there is much to be done to ensure that people have better access to organic food from reliable sources. 

How can we trust the organic produce? 

As for the organic produce, one of my main concerns has always been whether the farmers were honest. I was told that Aditi organic certification and India Organic certification ensures that farmers are compliant, but there is also the fact that those whose turnover does not exceed Rs.12 lakh do not have to go through the verification of compliance. Even for those who comply, there are residual limits of insecticides, other contaminants, heavy metals and toxins measured by the certification agency. This makes me worried about whether at least some farmers may use diluted insecticides etc thinking that nobody would find out. Whether the certification agencies are honest/thorough. Whether adulteration happens. Whether PFAS contamination from rain could be an issue even in remote areas. These contaminants can apparently cause kidney cancer, testicular cancer and thyroid issues and remain in the bloodstream for long. 

Then one wonders how many farmers in India know of the effects of the herbicides they use. Shockingly, even after a ban on glyphosate in 2022, there is a 2023 article that says farmers are allowed to use it, and is probably still being used in tea plantations (I wonder if that's what gave me immediate stomach discomfort on consuming green tea). Glyphosate is said to be one of the reasons for non hodgkins lymphoma as per the video below.

Effects of various other contaminants

  • Organophosphates and organochlorines could disrupt the function of the thymus, potentially leading to autoimmune disruption. 
  • Aflatoxins being linked to immune suppression and liver cancer.
  • Dioxins causing skin lesions, patchy darkening of the skin, reproductive issues, interference with hormones and damage to the immune system.
  • Aminoglycosides which can cause hearing loss, gaze instability (oscillopsia) and balance impairments.
  • Tetracyclines which can cause skin photosensitivity, fatty liver, tinnitus, abdominal pain, breathing issues, and cause drug-induced lupus
  • Heavy metal poisoning: Mercury causing central nervous system (CNS) injury, renal dysfunction, GI ulceration, liver toxicity, Lead causing CNS injury, lung dysfunction, anemia, liver damage, cardiovascular dysfunction, chromium causing kidney dysfunciton, gastro intestinal (GI) disorders, skin diseases, increasing incidence of various cancers, cadmium poisoning causing degenerative bone disease, kidney dysfunction, liver damage, GI disorders, lung injuries, impacting metabolism of zinc and copper, causing cancer, arsenic causing cardiovascular dysfunction, skin and hair changes, CNS injury, GI discomfort and liver damage. There are some precautions to be aware of when considering chelation
  • There are other chemicals causing bone loss and pyrethroid poisoning which can cause itching, burning, muscle twitching
  • Chlor-pyriphos, dimethoate, phosalone, mancozeb and captan causing malignant brain tumors (glioblastoma multiforme, medulloblastomas, astrocytomas, anaplastic oligodendrogliomas, ependymomas, choroid plexus papillomas, etc.).

How much do our farmers know about all this, and how much do they care about safe food. Even if they do care, how many of these chemicals are finding their way into fields via various environmental effects and even via companies run by educated people? A survey by the government found that even some organic veggies had heavy metal contamination at some places. The bodies of various people (including mine) are wasting away, supposedly from the effects of these chemicals, and doctors aren't doing much to help identify these issues and come up with solutions.

Then there's the issue of price. Most of the organic produce is priced at double the market rate or more. An organic farmer named Naveen in Mysore says that organic food could be priced 10% or 15% higher than other food. This seemed reasonable to me. However, I need to find out the realities of organic farming to understand the actual costs involved. Whether they get subsidies, what their actual costs are with respect to getting the soil ready for safe farming, what the FPO's (farmer producer organization) or investors take as their share, and any other realities.

Healthy food is not meant only for the rich. It's a basic necessity of life.  

I also noticed that there is a National Centre for Organic and Natural Farming (NCOF) and a Participatory Guarantee System for India (PGSI). Ideally such organizations would not be required if safe farming was made mandatory across the country/world and technology was utilized well to match demand and supply.

 

09 August 2025

A poem narrated by a poem: Poem Speak

In October 2006 during a boring train ride I realized it had been long since I wrote poetry (previously written for my school and college magazines and a few poems written during a poetry duel with my uncle). So I considered writing a poem, but it took a while to get that spark of inspiration.

Poem Speak 

I wandered alone, not knowing why.
Walking the thick jungle, looking out for the sky.
He knows I'm here, I assured my heart.
All he needs is a little head-start.
For months together have I been.
A thought, a wish, in this jungle unseen.
He set my heart beating. Now it shall not cease.
For my departure shall put this jungle at ease.
I ask him, I plead him, to set me free.
For I am a poem, yearning to be read by thee.

Written on: 27/10/2006 

 

What the poem means: 

The jungle is my mind, in which the thought of writing a poem has been going on for a long time. It remained a thought for a long time. Couldn't get started with it because I didn't find myself in a mood for writing poetry. Although once the poem found it's way out of my mind, onto paper, my mind is once again at ease and the poem is happy that I set it free. 

How it's relevant to poets

Poem Speak is essentially a poem writing itself. During the literature survey for my MTech in Artificial Intelligence, I came across the fact that neurons go through the jungle of the brain and are guided to other neurons via guidance proteins. Neurons even tend to seek out connections. Poem Speak poetically personifies (if I could use the term liberally) the thought process of every writer or poet who is stuck with writers block and eventually figures out what to write. The process of thinking of what to write perhaps being physically manifested by the neurons in their brain seeking out connections and building a pathway of prose which takes shape and finds its way to becoming alive in the minds of everyone who reads it.

I submitted the poem to a weekly magazine for speculative fiction. Although it wasn't accepted, the reviewer wrote back appreciating it, saying that since the poem had a fun twist at the end, it worked well and caused him to re-read the poem.

 

07 August 2025

How to use Github SSH when working with more than one Github account?

I had earlier written about how to use an SSH key to clone, push and pull from Github.When working with more than one Github account, Git automatically considers only the first key even if you add a second key file in the ~/.ssh folder. To make Git recognize the right file, you need to add a new config file in that folder.


First add a new ed25519 file (like how it's normally done) for the second account and give it a new name like id2_ed25519.
Then create a new file named config.

Now add this exact text into the config file:

# First GitHub account
Host github.com
    HostName
github.com
    User git
    IdentityFile ~/.ssh/
id_ed25519

# Second GitHub account
Host
github-second
    HostName github.com
    User git
    IdentityFile ~/.ssh/
id2_ed25519

If there are any errors related to file permissions, change the permission using chmod 600 ~/.ssh/id2_ed25519 but it's unlikely there would be such issues.

That's it. Now to clone from the first account you can use the equivalent of:

git clone git@github.com:username1/gitRepository1.git

To clone from the second account you can use the equivalent of:

git clone git@github-second:username2/gitRepository2.git


09 July 2025

Installing PyEnv on Raspberry Pi

Earlier I detailed the steps for installing PyEnv on Linux, but there are some small changes for doing the same on Raspberry Pi, so for my reference and the reference of anyone else, I thought I'd mention it the way Sam Westby did, but thought I'd automate the process by creating a script which even adds the necessary lines to bashrc.

#!/usr/bin/env bash

echo "Proceeding with installing PyEnv"

curl https://pyenv.run | bash

#Add environment variables to bashrc

echo "export PYENV_ROOT='$HOME/.pyenv'" >> ~/.bashrc

echo "[[ -d $PYENV_ROOT/bin ]] && export PATH='$PYENV_ROOT/bin:$PATH'" >> ~/.bashrc

echo "eval '$(pyenv init - bash)'" >> ~/.bashrc

#Restart the terminal to make bashrc changes effective

exec $SHELL

#Install other required packages

sudo apt-get install -y libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libgdbm-dev lzma lzma-dev tcl-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev wget curl make build-essential openssl

pyenv update

pyenv install --list

pyenv install 3.12.10

pyenv global 3.12.10



05 July 2025

Imager: Evolving image enhancement settings instead of manually tweaking them

This was an idea I got during the first year of my MTech in AI. There was an image with poor contrast which I wanted to enhance, but given the various ways of enhancing images and it being difficult to narrow down on the right settings, I created a Python program which used Differential Evolution to explore various values of various combinations of settings, and narrow down on the kind of image quality I wanted. My professor was happy to see the program working, but because the "fittest" individuals of the population had to be manually selected by the User (subjective technique), my professor suggested trying to find an objective technique of doing it. Since what a person is looking to enhance in an image would be subjective, perhaps one objective way of doing it would be to prompt an AI and the AI could come up with an objective score. Anyway, since my Python program was not very accessible, I decided to create the program in JavaScript and make it available on GitHub.io as Imager: https://nav9.github.io/Imager/image-filters.html.


All you have to do is upload an image, and Imager will use Particle Swarm Optimization to randomly apply a chain of image processing steps to copies of the image. You can click images you like, and the "swarm" of settings would slowly converge to variations that are closer to the kind of settings that give you the kind of enhanced image you want. If you don't like any image, simply avoid clicking any of them and continue clicking Evolve, which will generate more random settings and values.

Since Imager runs on the browser as a fully client-side app, it's advisable to not use very large images. If your objective is to apply selected settings to a large image, you can always use the "Manual" button which allows applying settings to more than one image you choose to upload. 

Imager is merely a demo app. It can be made far more powerful as a desktop app or with server-side functionality. Do have a look at the other image resizing and cropping options in the navigation bar of Imager. 

28 June 2025

Access internet on Raspberry Pi when connected to two network interfaces

I had a Raspberry Pi 3B connected via LAN cable to a Wifi router which wasn't connected to the internet. Through the router I could connect to the RPi via my desktop PC's Wifi. So VNC and SSH worked nicely in terms of being able to view the RPi desktop and being able to exchange files via scp. However, when I activated my phone's hotspot and the RPi's Wifi connected to the hotspot, I could not access internet.

I soon found out that this happened because the RPi gave a higher priority to the LAN connection than to the Wifi hotspot. So it was just a matter of changing the priority in a few simple steps.

Type `ip route show` to see the existing connections. You may see something like this:

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.2 metric 100

default via 192.168.42.1 dev wlan0 proto dhcp src 192.168.42.125 metric 600

What this means is that the gateway for the LAN connection (eth0) is 192.168.1.1 and the IP is 192.168.1.2. The gateway for the wireless connection (wlan0) is 192.168.42.1 and the IP is 192.168.42.125. Since the LAN is listed first, it has the higher priority. So you simply need to add the route to the wireless IP address:

sudo ip route add default via 192.168.42.125 dev wlan0 

You can confirm it got added to the top of the list by typing `ip route show`.

Then simply restart the network service. If `sudo systemctl restart networking` or `service networking restart` gives this error: `Failed to restart networking.service: Unit networking.service not found`, then you can simply type (it didn't disrupt my VNC connection):

sudo ifconfig eth0 down && sudo ifconfig eth0 up &

This will restart eth0 and you'll be able to connect to the internet. You can check by typing:

ping 8.8.8.8 

04 June 2025

Accessing an Android phone via ADB using a Linux desktop PC

It turns out, one way to reduce the size of a Flutter app, is by splitting it into builds for each specific device architecture you want. So if you type:

flutter clean; flutter build apk --split-per-abi 

It'll give an output like:

✓ Built build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk (6.9MB)
✓ Built build/app/outputs/flutter-apk/app-arm64-v8a-release.apk (7.4MB)
✓ Built build/app/outputs/flutter-apk/app-x86_64-release.apk (7.6MB) 

Now I needed to know which one I could use on my phone, and realized that in all these years, I didn't bother finding out what architecture my phone was running. 

So I activated Developer Options and USB Debugging on my phone and did the following:

sudo apt update; sudo apt install adb

Now ADB (Android Debug Bridge) should be installed. To see which devices you can connect to via ADB, type:

adb devices

You'll be asked on your phone for permission to do USB debugging. Grant it.

Now either type: 

adb shell uname -m

Or, just:

adb shell

And then type:

uname -m

And now I know the phone is armv7l, which is an ARM 32 bit architecture.

So now I know I could have also tried:

flutter build apk --target-platform android-arm --analyze-size


There are many other ADB commands:

To copy files: 

adb pull /path/to/phone/file /path/to/desktop/folder

Mount the phone onto the Linux filesystem:

sudo apt install adbfs
mkdir ~/android
adbfs ~/android

Now you can access the files via your desktop computer at ~/android

To get elevated permissions with ADB:

adb kill-server
sudo adb start-server
adb devices

For more commands, simply type:

man adb

15 May 2025

Adding lockscreen functionality to Raspbian OS

When you install an older version of Raspbian, there is no lock screen option. To add it, instead of going to `/etc/xdg/lxpanel/LXDE-pi/panels/panel` and adding any extra lockscreen lines, simply do this instead:

Technique 1: Screen locks but does not go blank

  • Click the RPi start menu and select Preferences > Main Menu Editor
  • In the editor click New Item and enter the following in the respective fields:
  • Name: Lock
  • Command: /usr/bin/dm-tool lock (don't use dm-tool lock because it is unsafe. The password can be bypassed with Ctrl Alt F7)
  • Command: swaylock
  • Comment: Lock screen
  • Click "Ok" and reboot.

You can also press Ctrl Alt L to lock the screen. 

Technique 2: Screen goes blank, then locks and stays blank

The script below is meant to put the monitor into power saving mode just before swaylock is used to lock the screen (without swayidle, the monitor remains switched on even after the screen is locked). Make sure screen blanking is switched on before using this script by going to Raspberry Pi Preferences > Raspberry Pi Configuration > Display > Screen Blanking.
This script assumes that the screen gets locked only when the User manually selects lock.To make this script runnable on lock, go to Preferences > Main Menu Editor and create a new item with the path and name of this script's file as the "command". For example: /home/<your username>/lock_screen.sh
The default swayidle command would be preconfigured in /home/<your username>/.config/labwc/autostart as swayidle -w timeout 600 'wlopm --off \*' resume 'wlopm --on \*' . The script below would override the default swayidle by killing the swayidle process.


Create the following script in your Raspberry Pi home directory with the name lock_screen.sh (or whatever name you prefer).

#!/bin/bash

# Kill existing swayidle processes
pkill -f swayidle

# Run swayidle with timeout 1. Screen blanking will happen after 1 second
# wlopm is Wayland output power management. See its man page
swayidle -w timeout 1 'wlopm --off \* ; swaylock &' resume 'wlopm --on \* ; pkill -f swayidle' 

# Set screen blanking to 5 minutes (300 seconds)
swayidle -w timeout 300 'wlopm --off \*' resume 'wlopm --on \*' &


To detect if the screen is blanked

You can run `wlopm -j`, and the power mode being on or off will tell you if the screen is blanked or not.

To detect if the screen is locked

#!/bin/bash

#PROCESS_PATH="/usr/sbin/pi-greeter"
PROCESS_PATH="swaylock"

while sleep 2
    do
        if pgrep -f "$PROCESS_PATH" > /dev/null
        then
            echo "$PROCESS_PATH is running. Screen is locked"
        else
            echo "$PROCESS_PATH is not running. Screen is not locked"
        fi
done
 

Some bonus info: If you don't like the bright white wallpaper of the login screen, you can change it in /etc/lightdm/pi-greeter.conf
 
There really needs to be a better, standardized way to detect screen locks across operating systems.

06 May 2025

DeepWiki offers a free repository explanation powered by Devin

I've always wanted a software that would explain everything about a repository and the code. I even considered building one, when I came across explanations that even SourceTrail was unsuccessful since people were unwilling to purchase it at scale. Even employers didn't see the value in buying one. Did you know that Grappl shows code like buildings? There are a bunch of other tools like Sourcery and SourceGraph, but today I came across a clever website named DeepWiki, created by Cognition.ai (the creators of Devin).


If you have a public GitHub repository, you can simply replace the "github.com" with "deepwiki.com", and it'll offer you a full repository analysis and description in a few minutes. They'll email you to notify.

https://github.com/nav9/splitVideoQualityViewer 

https://deepwiki.com/nav9/splitVideoQualityViewer  

I tried it, and was quite impressed at the flowcharts it created. The visualizations even showed me flows that I didn't remember existed. It also shows and explains the code structure and every class. At the bottom of the screen it provides a textfield using which you can ask it questions about the codebase

To test it out initially, I tried asking it about "who first discovered India", to see if it'd respond without thinking, similar to how many GPT's do. It however responded well by saying that "I notice that your query "who first discovered India" doesn't appear to be related to the Split Video Quality Viewer codebase that I'm currently analyzing. The codebase you're viewing is a tool for comparing multiple videos side-by-side in a split-screen layout, not a historical database or information system about the discovery of India...". I was impressed again. It actually scans the code to generate a response. 

I tried submitting simple programs too, created in GW-BASIC:

  • Jump-up: The first game I created. DeepWiki created an impressive analysis and visualization of the game character and flow of the game. Didn't expect it to be this good.
  • Digger:  It actually analyzed and visualized how my Digger games improved over time and created nice flowcharts of the monster's AI thinking.

 I even submitted iRest, and again, it created a useful visualization.

Since the website is named DeepWiki, I don't think they would be using it only for code. It seems general purpose enough to be used as a deep search for any website. Perhaps even the entire Internet.  

I highly recommend DeepWiki.