20 May 2026

Contaminants in our food

Chemical contaminants in our food have been a major concern in recent times, and there are a massive number of educated and uneducated people who are blissfully ignorant of it and aren't able to correlate their various pains, rashes, urination issues, inflammation, pimples, fungal infections, kidney pain, intestinal pain, burning sensation, chills, dental issues, ADHD, lethargy, brain fog, cancer, Parkinsons, and various other issues, to the food contaminants. Even when these cause various health issues, many doctors aren't suggesting anything about switching to safer foods. Moreover, the high costs of organic foods are prohibitive enough that even people severely affected are not buying safer foods. I found it even more appalling that not all organic food is actually organic. Whenever I tell people why I cannot eat certain foods at their homes or functions, it became hard to just say "allergy", because it isn't just an allergy, and there is much that they need to understand about how it affects me and others. So I decided to list out various contaminants and how they affect health.

https://nav9.github.io/contaminants/

 

Health effects of various contaminants

Disclaimer: I told an AI to search through research papers and list the contaminants, so there may or may not be errors. 
  • Organophosphates and organochlorines could disrupt the function of the thymus, potentially leading to autoimmune disruption. It could also disrupt the autonomic nervous system which controls heart rate and rhythm, potentially leading to arrhythmias and sudden death. Also linked to hearing loss, the development of atherosclerosis and increased risk of non-fatal myocardial infarction (heart attack). They alter lipid metabolism and increase fibrinogen, which makes blood thicker and more likely to form a 100% blockage (clot) on top of an existing plaque.
  • Aflatoxins being linked to immune suppression and liver cancer. Can weaken vein and artery walls, causing internal hemorrhages and heart failure.
  • 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, gastro intestinal ulceration, promotes thrombosis (clot formation) and inactivates protective enzymes that usually keep arteries healthy.  Foods rich in selenium and zinc (found in organic seeds and nuts) act as natural antagonists to heavy metals like mercury and lead, helping the body slowly process these toxins. Foods high in iron (red meat, beans, iron fortified cereals can compete with lead for absorbtion, calcium can block lead from entering cells, vitamin B1 can accelerate lead removal, vitamin C can help remove free radicals created by lead)
    • Lead (sometimes present in rice) causing CNS injury, lung dysfunction, anemia, liver damage, cardiovascular dysfunction (can impair nitric oxide production, which is essential for blood vessel relaxation). Contaminants like lead and cadmium make plaques "unstable" or "vulnerable." This means a smaller blockage can suddenly "burst" and form a blood clot that completes the 90-100% obstruction, leading to a sudden heart attack in someone who appeared healthy.
    • Chromium causing kidney dysfunction, gastro intestinal (GI) disorders, skin diseases, increasing incidence of various cancers. 
    • Cadmium (found in industrial fertilizers) poisoning causing degenerative bone disease, kidney dysfunction, liver damage, accumulates in arterial walls, promoting atherosclerosis and increasing the risk of heart failure, GI disorders, lung injuries, impacting metabolism of zinc and copper, causing cancer. 
    • Arsenic causing cardiovascular dysfunction (associated with carotid artery thickening in children and peripheral vascular disease), skin and hair changes, CNS injury, GI discomfort and liver damage. There are some precautions to be aware of when considering chelation

Guides: 

  • There's a lot more mentioned in Thankamma Jacob's book: Poisons in our food (which is oddly the exact same title I wanted to write an article with). 
  • More information on tips and tests here.
  • A guide from the Voluntary Health Association of India too. 
  • A guide to plan out nutrition, budgeting and mentions contaminants too. 

How much do our farmers and fishermen 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 are struggling, supposedly from the autoimmune effects and various other effects of chemicals, and doctors aren't doing much to help identify these issues and come up with solutions.

  • There are other chemicals causing bone loss and pyrethroid poisoning which can cause itching, burning, muscle twitching
  • Chlorpyriphos, dimethoate, phosalone, mancozeb and captan causing malignant brain tumors (glioblastoma multiforme, medulloblastomas, astrocytomas, anaplastic oligodendrogliomas, ependymomas, choroid plexus papillomas, etc.).
  • Organophosphates like chlorpyrifos, malathion, acephate, dimethoate, edifenphos, carbendazim and mancozeb potentially being ototoxic (causing hearing loss). Some of these may have been used in sugarcane cultivation.
  • Methyl bromide and perhaps even phosphine being used to fumigate stored grains to kill insects, possibly causing unstable gait, vertigo, polyneuropathy, optic neuropathy, depletion of glutathione (antioxidant which protects cells from damage caused by reactive oxygen species) in several tissues, such as the liver, kidneys, lungs, and brain. 
  • Argemone oil contamination in mustard oil resulting in edema and tenderness of the abdomen, fluid retention (edema) in the upper and lower limbs (dropsy).
  • Microplastics (polyacrylamide, polyacetylene, ethylene vinyl alcohol (EVOH), polyvinyl chloride (PVC) and polyamide (nylon)) in shellfish and other fishes. Toxins leaching from microplastics can percolate into the GI tract and be transported to the edible tissue. Consumption of such seafood could lead to alteration in chromosomes, which can lead to infertility, obesity and cancer. Nanoplastics could cause cardiopulmonary issues, alterations of endogenous metabolites, genotoxicity, inflammatory responses, oxidative stress, effects on nutrient absorption and gut microflora.
  • Trans Fats: Often found in adulterated or low-quality frying oils, trans fats are the most direct cause of arterial "clogging" by simultaneously raising bad cholesterol and lowering good cholesterol.
  • Bisphenol A (BPA): Leached from the linings of metal food cans, BPA is associated with angina (chest pain from blockages) and accelerated atherosclerosis.  
  • Nitrofurans, chloramphenicol, and other antibiotics in aquaculture, heavy metal and insecticide contamination in fish farms. Mercury, zinc, lead, copper, cadmium in large open water fishes. Dried fish from fishing villages showed an accumulation order of Zinc > Lead > Copper > Chromium > Cadmium.
  • Formalin (high risk of stomach, lung, and nasopharyngeal cancers) or sodium benzoate (can cause allergies, oxidative stress in cells, damage the immune system, and increase DNA damage in human cells, interfere with protein digestion in the human gut, hyperactivity, anxiety, and potentially decreased memory) used to extend the shelf life of fish, ammonia added to ice to slow down the melting process (can cause gastric irritation and damage to intestinal tissues).
  • Alum (fitkari) possibly deceptively being used to make herbs look fresher. It's also used in gardening. It could potentially cause kidney and GI damage
  • Soapstone/talc used for polishing dal may contain forms of asbestos (carcinogen) and soapstone can also impair the functioning of the GI system.  
  • Mixed Exposure: Research indicates that "mixtures" of various pesticides (sometimes called a "pesticide cocktail") can have a linear, positive association with a 10-year risk of atherosclerotic cardiovascular disease. 
  • Bacterial Endotoxins (LPS): These can contaminate meat and dairy, triggering systemic inflammation that depresses heart function and increases the risk of heart failure. 
  • Aflatoxins: These can weaken vein and artery walls, causing internal hemorrhages and heart failure. Case studies include a 15-year-old boy whose sudden death was linked to aflatoxin-induced heart failure.
  • Citreoviridin: Found in mouldy rice, it has been historically linked to "cardiac beriberi," causing sudden cardiac arrest.
  • T-2 Toxin: This mold toxin can cause hypertension and damage heart tissue directly through oxidative stress.  
  • Acrolein: Formed during high-heat frying of oils or found as a pollutant in crops near heavy traffic, it is a potent irritant to the endothelium and can trigger myocardial infarction.
  • Acrylamide: Produced in starchy foods (like potato chips or bread) during high-temperature cooking, it is associated with platelet activation and increased cardiovascular risk. It is also a cancer risk.
  • Artificial Sweeteners: Recent studies have linked high intake of erythritol, aspartame, and sucralose to an increased risk of stroke and heart attack by enhancing platelet responsiveness and clot formation.  
  • Metanil Yellow: This food colourant (sometimes used to give jaggery its yellow color) can inhibit gastrointestinal transit, is known to have carcinogenic and mutagenic properties and affecting the Purkinje cells which impairs how the brain perceives sound
  • Sodium benzoate: Used as a preservative in acidic foods and soft drinks, can  trigger acute urticaria and angioneurotic edema. 
  • Tartrazine and Carmine: Used as artificial food colouring can trigger deep tissue swelling, rashes, and even full anaphylaxis.
  • Penicillin residues in milk or meat, can act as haptens which bind to carrier proteins in the body to form a complete antigen, causing chronic or acute IgE-mediated angioedema in highly sensitive individuals.
  • Healthy food is not meant only for the rich. It's a basic necessity of life.   

    I create a little visual graph for my reference. There are many more adulterants and contaminants and various ways of figuring out if they are present. Hopefully devices like Macof would make it easier to detect contaminants. I've been noting down various safe sources of foods, which aren't good and which of them are affordable and trustworthy. Am still struggling to find reliable meat and dairy though. If you have helpful knowledge to share, please do comment.

    08 April 2026

    How to set Google search as the default in Chromium

     

    Somebody either had something against Google or somebody on the Chromium team understood UI/UX so poorly that it left people frustrated at not being able to add Google as the default search engine on Chromium. This is all you need to do:

    Under Search engine > Site Search, you'll find an Add button. Click it and add Google by adding the following in the fields:

    • Name: Google
    • Shortcut: @google
    • URL: https://www.google.com/search?q=%s 

    Then it appears in the Site Search section. Click the overflow menu (the three dots in a vertical line) and click "Make default". 

    That's it. From now on Google will be the default search engine. Try not to just leave it at this. Try convincing the programmers to make the interface simpler. I might have posted a request on some forum long back, but they didn't bother fixing it.

    04 March 2026

    Tool for easily creating an AppImage on Linux for a Flutter app

    When I created my Simple Notes Android app, I not only created APK files for it, I also built it to run on Linux. So it ended up having an executable file which would not run unless there were some extra supporting folders. This was messy, and I wanted a single file. I found that creating an AppImage was a good way to do this. There are a bunch of developer tools for the purpose. I chose the appimage tool to convert app directories to appImages.

    Downloaded the appimagetool-x86_64.AppImage file from here

    Made it executable: 

    chmod +x appimagetool-x86_64.AppImage 

    You can see available options via:

    ./appimagetool-x86_64.AppImage --help 

    Get your application files into a folder. In my case I had to create a `simple_notes` folder and pasted the `simple_notes` linux executable and the `lib` and `data` folders there. I also copied a `note.png` application icon for my Simple Notes application to have a unique icon. In the `simple_notes` folder I also had to create a `SimpleNotes.desktop` file containing:

    [Desktop Entry]
    Type=Application
    Name=Simple Notes 3
    Exec=simple_notes
    Icon=note
    Categories=Utility;

    But it showed errors like .

    So I simply asked Grok to create a Python program which can automatically create the AppImage for me. It worked flawlessly. The code is here.


    I know the GUI does not look too good and has a few flaws like not displaying the flutter executable when browsing for it (thus requiring manually typing the name), but it was not something that I wanted to spend more time on for now. My SimpleNotes AppImage was built and it works on typing ./SimpleNotes.AppImage

    I wonder why the AppImage team did not create this kind of a simple way of building an AppImage. 

    04 February 2026

    Common Flutter commands that can be run from the commandline

    Creating a Flutter project via Android Studio is so cumbersome. The various views of project files that make it difficult to find files, the various buttons and dropdown options that need to be found and clicked for every simple little thing. So I decided to stop using Android Studio and switched to VS Code and the commandline when I realized that even the emulator could be run from the commandline. I'm creating this blog post as a quick reference for myself.

    To disable reporting of telemetry:

    • flutter config --no-analytics; flutter --disable-analytics

    To run various checks on Flutter:

    • flutter doctor
    • flutter doctor -v 
    • flutter doctor --android-licenses 

    Create a new app:

    • flutter create my_new_app_name

    Run a Flutter app to try it out as a Linux application:

    This command enables Linux as a target platform for building Flutter applications.

    • flutter config --enable-linux-desktop  
    • flutter run
    • flutter run --debug 

    This command builds a release version in Linux:

    • flutter build linux --release     

    Clean the build:

    • flutter clean

    Add dependencies to pubspec.yaml:

    • flutter pub add <package_name> 

    Add development dependencies: 

    • flutter pub add <package_name> --dev

    Download all the dependencies specified in pubspec.yaml:

    • flutter pub get

    Build an APK for Android with multiple APK's for different platforms bundled into one APK:

    This command ends up creating a much bigger APK than necessary.

    • flutter build apk

    Build separate APK files for each platform:

    • flutter build apk --split-per-abi --release

    View what emulated devices are available:

    • flutter emulators

    Start an emulated device:

    Search for the names with underscores. Those are the ones you can use to run a specific emulator. For example, a name like Large_Desktop_API_33 or Medium_Tablet_Edited_API_34 or Pixel_3a_API_34 

    • flutter emulators --launch <emulated device name>

    View what emulated devices are running now:

    Search for emulated device id's which look like emulator-5554 as an example. Those are the device id's which you can use to install an APK or shutdown the emulator etc.

    • flutter devices
    • adb devices 

    View which architecture the emulated device has:

    • adb devices -l 

    Install the APK into a device and run:

    This is for installing and running the APK which has multiple APK's bundled into it. This command will uninstall any older APK that was present in the device and 

    • flutter install -d <emulated device id> --release

    This is for installing and running the APK's which were created using the `split-per-abi` command:

    • adb install path/to/file/<filename>.apk
    • adb -s <emulated device id> install path/to/file/<filename>.apk

    Shutdown an emulated device:

    • adb -s <emulated device id> emu kill

     

     

    02 January 2026

    Using ROCm on an AMD APU/GPU in Linux Mint 21 (Ubuntu 22)

    ROCm was originally meant to be the acronym for Radeon Open Compute platform. It's a software stack for GPU programming. Sometimes, GPU's are available along with the CPU on the same chip, and are called APU's (Accelerated Processing Unit). Sadly, AMD does not seem to be providing support for lower end GPU's and APU's now. So one is stuck with the older versions.

    Installation 

    The older versions are available here. Download the appropriate deb file and run:

    sudo dpkg -i amdgpu-install_5.4.50403-1_all.deb

    sudo amdgpu-install --list-usecase
    sudo amdgpu-install --usecase=hiplibsdk,rocm,dkms,graphics
    sudo reboot
    rocm-smi
    sudo rocminfo

    You have to run this after installing:
    sudo usermod -a -G video <username>
    sudo usermod -a -G render <username>

    You can use radeontop to view the GPU utilization. 
    sudo apt-get install -y radeontop
    radeontop -c 

    Check the RoCm version with:
    apt show rocm-libs -a 

    The Maintainers are: ROCm Libs Support <rocm-libs.support@amd.com>.

    Only after installing ROCm should PyTorch be installed.

    pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/rocm5.4.2 

    Test it

    It's named CUDA here, but is basically checking if the program is able to detect the APU/GPU via ROCm.

    import torch.cuda
    print(f'CUDA available? : {torch.cuda.is_available()}')

    If successful, the output should look like this: 

    CUDA available? : True
     

    Also try this program:

    import torch, grp, pwd, os, subprocess
    devices = []
    try:
        print("\n\nChecking ROCM support...")
        result = subprocess.run(['rocminfo'], stdout=subprocess.PIPE)
        cmd_str = result.stdout.decode('utf-8')
        cmd_split = cmd_str.split('Agent ')
        for part in cmd_split:
            item_single = part[0:1]
            item_double = part[0:2]
            if item_single.isnumeric() or item_double.isnumeric():
                new_split = cmd_str.split('Agent '+item_double)
                device = new_split[1].split('Marketing Name:')[0].replace('  Name:                    ', '').replace('\n','').replace('                  ','').split('Uuid:')[0].split('*******')[1]
                devices.append(device)
        if len(devices) > 0:
            print('GOOD: ROCM devices found: ', len(devices))
        else:
            print('BAD: No ROCM devices found.')

        print("Checking PyTorch...")
        x = torch.rand(5, 3)
        has_torch = False
        len_x = len(x)
        if len_x == 5:
            has_torch = True
            for i in x:
                if len(i) == 3:
                    has_torch = True
                else:
                    has_torch = False
        if has_torch:
            print('GOOD: PyTorch is working fine.')
        else:
            print('BAD: PyTorch is NOT working.')


        print("Checking user groups...")
        user = os.getlogin()
        groups = [g.gr_name for g in grp.getgrall() if user in g.gr_mem]
        gid = pwd.getpwnam(user).pw_gid
        groups.append(grp.getgrgid(gid).gr_name)
        if 'render' in groups and 'video' in groups:
            print('GOOD: The user', user, 'is in RENDER and VIDEO groups.')
        else:
            print('BAD: The user', user, 'is NOT in RENDER and VIDEO groups. This is necessary in order to PyTorch use HIP resources')

        if torch.cuda.is_available():
            print("GOOD: PyTorch ROCM support found.")
            t = torch.tensor([5, 5, 5], dtype=torch.int64, device='cuda')
            print('Testing PyTorch ROCM support...')
            if str(t) == "tensor([5, 5, 5], device='cuda:0')":
                print('Everything fine! You can run PyTorch code inside of: ')
                for device in devices:
                    print('---> ', device)
        else:
            print("BAD: PyTorch ROCM support NOT found.")
    except:
        print('Cannot find rocminfo command information. Unable to determine if AMDGPU drivers with ROCM support were installed.')

    The output should look like this:

    Checking ROCM support...
    GOOD: ROCM devices found:  2
    Checking PyTorch...
    GOOD: PyTorch is working fine.
    Checking user groups...
    GOOD: The user nav is in RENDER and VIDEO groups.
    GOOD: PyTorch ROCM support found.
    Testing PyTorch ROCM support...
    Everything fine! You can run PyTorch code inside of: 
    --->  AMD Ryzen 5 5600G with Radeon Graphics  
    --->  gfx90c  

    That's it. All the best with your GPU programming. Also take a look at the Mojo language for GPU programming.