17 August 2026

How food contaminants might affect the immune system

 

AI generated image. Not meant to mean anything

When speaking to doctors about how food contaminants might have caused infections or the various other health issues, instead of referring research papers, all they do is say that it is not possible, because it was not a large part of their course, and they have no equipment to do the necessary chemical tests. So they try avoiding the topic or gaslighting the patients. Not just the busy doctors. Even the ones who had sufficient time to discuss the issue, an even when I said I could come everyday to get tests done to do more research into the matter. They flatly refused even at medical colleges. 

My list of contaminants was insufficient, so when I had another discussion with a doctor about urinary diarrhea and infections under the teeth, when the doctor asked for a patho-mechanism to explain the phenomenon, I had no option other than prompting Gemini AI (remember that AI may make mistakes, so do not treat anything written below as a fact. Make sure you cross-check with reliable sources/experts and please let me know if there are corrections) by asking it to compare why certain purchases of chicken caused the  issues but some other brands of chicken did not, it said the problems could probably be due to:

  • Aminoglycosides and Nephrotoxicity: In un-monitored local poultry farms, antibiotics are sometimes misadministered right up until slaughter without observing mandatory drug withdrawal periods. Classes like gentamicin or neomycin are heavily used in animal farming and are explicitly nephrotoxic (toxic to the kidneys). Ingesting meat with highly concentrated residues can cause acute, reversible renal tubular irritation, manifesting as deep, cramping pain near the kidney areas.
  • Fluoroquinolones and Sulfonamides: These common poultry drugs are eliminated directly through the urine. High residual concentrations in poorly processed meat can act as severe chemical irritants to the bladder mucosa, causing chemical cystitis, intense bladder urgency, and pelvic floor cramping.
  • Urea Adulteration: Some low-tier livestock feed manufacturers add industrial urea to boost the apparent nitrogenous/protein content profile. When metabolized by the bird, this leads to an overwhelming surge of uric acid and urates in the meat. Ingesting this can cause transient hyperuricosuria (excess uric acid spikes in human urine), which drastically irritates the urinary tract lining and causes severe renal colic (cramping) even before a physical stone can form.
  • Nephrotoxic Mycotoxins: Poorly stored local chicken feed frequently grows molds that produce Ochratoxin A and Citrinin. These specific toxins accumulate in the bird's muscle tissue, are highly stable during cooking, and directly attack human kidney tubules, causing acute flank aching and frequent urination as the kidneys struggle to clear the chemical.
  • Formalin/Formaldehyde: Unscrupulous local preservation practices sometimes involve washing meat in heavily diluted formalin solutions to prevent decay and mask odors. Formaldehyde is a rapid, intense systemic irritant. Once digested, its metabolites are processed and excreted via the bladder, where they cause immediate chemical inflammation, severe pelvic floor spasms, and a sense of sudden urinary urgency.
  • Uropathogenic E. coli (UPEC) and Extraintestinal Pathogenic E. coli (ExPEC): They target the genitourinary tract.  These bacteria produce toxins (like hemolysins and cytotoxic necrotizing factors) that cause severe acute inflammation of the bladder lining and the ureters. This induces detrusor hyperreflexia: violent, involuntary muscle contractions that forcibly push urine out even when the bladder is empty.

The 2-Week Window: When you completely stop ingesting the specific bacterial reservoir, it takes your body’s localized immune response roughly 10 to 14 days to fully clear the bacterial colonization from the urothelium, explaining the precise 2-week recovery window. If it is not bacteria (if tests were negative for bacteria), when a toxic compound or veterinary drug is ingested, it binds to human tissue proteins, fat stores, or gets trapped in the renal-biliary cycling loop. It takes the liver and kidneys roughly 1 to 2 weeks (5 to 7 metabolic half-lives) to break down, decouple, and completely flush these foreign molecules out of your system, explaining why your symptoms decrease in intensity after 7 days but require a full 14 days to vanish.

Do They Survive Cooking and Frying?

Standard household cooking (boiling, frying, or roasting) kills live bacteria and fungi, but it does not destroy most chemical toxins or veterinary drugs.

  • Veterinary Antibiotics (Highly Heat-Resistant): Common poultry drugs like Tetracyclines, Fluoroquinolones (Ciprofloxacin), and Aminoglycosides (Gentamicin) are molecularly stable. Normal cooking temperatures (100°C to 180°C) only degrade them by 10% to 40%. The remaining active drug residue is fully ingested.
  • Fungal Mycotoxins (Completely Heat-Resistant): Toxins produced by molds in bad poultry feed, such as Ochratoxin A, Citrinin, and Aflatoxins, are virtually indestructible by heat. They easily survive frying or pressure cooking.
  • Chemical Adulterants (Heat-Resistant): Formations like industrial Urea or Formaldehyde do not vanish with cooking. Urea changes form but remains an aggressive irritant to your kidneys.

Chemical Immunosuppression: Why Your Gums and Skin are Attacked

Bleeding gums, jawbone erosion (periodontitis), large skin pimples, body rashes, fatigue, and a post-urination feverish feeling indicate that these specific food choices have induced severe systemic immunosuppression and mucosal barrier breakdown. Certain toxic compounds directly impair your immune system, leaving your body completely vulnerable to the bacteria naturally living in your mouth and on your skin: 

Chemical Ingestion
       │
       ▼
Gut Microbiome Disruption + Bone Marrow Suppression
       │
       ├─► Loss of Neutrophils ──► Normal Mouth Bacteria Attack Jawbone/Gums
       └─► Toxic Skin Flushing ──► Deep Sebaceous Rashes & Severe Pimples

  • Bone Marrow & White Blood Cell Suppression: High residual levels of antibiotics (like Chloramphenicol or Sulfonamides) and fungal mycotoxins (Ochratoxin A) cause temporary bone marrow suppression. This drops your circulating neutrophils which are the first-responder white blood cells. Without neutrophils, the standard bacteria always present in your mouth suddenly run rampant, aggressively attacking your gum tissue and the underlying bone supporting your teeth.
  • Severe Gut Microbiome Disruption: Even if a brand is free of illegal chemicals, it may still use legal, broad-spectrum preservation washes or have a specific protein profile that alters your gut microbiome. When the gut microbiome is severely altered, it compromises the mucosal immunity of the entire body. Your oral mucosa (gums) and skin lose their defense shields, triggering bleeding gums, deep painful pimples, and generalized rashes.
  • Heavy Metal Contamination (Lead/Cadmium in Feed): In local crops, lentils, and vegetables grown near industrial zones or watered with polluted runoff in India, heavy metals accumulate. Cadmium and lead directly damage the mucosal lining of your mouth, reduce collagen synthesis (causing structural gum recession), and cause severe chronic tiredness and low motivation by interfering with cellular ATP (energy) production.

Itching sensation at the gums and under the teeth

The intense itching sensation at the gums and deep under the teeth, combined with a craving for more nutrition, points to a distinct biological phenomenon: 

Systemic Toxin Ingestion ──► Lowers circulating Neutrophils (White Blood Cells) ──►Gums & Jawbone Attack (Localized Periodontal Infection Flares Up)
       │
       ├─► Cellular Inflammation & Tissue Destruction ──► Intricate Nerve "Itching"
       └─► Massive Local Energy & Protein Consumption  ──► Nutrient Craving (Brain Signal)

Your body's immune system is burning through immense amounts of energy trying to hold back the bacteria under your teeth. The brain interprets this massive local drain on glucose and amino acids as a full-body shortage, inducing intense hunger and nutritional cravings. 

 

Diagnostic Action Plan: Specialized Tests to Confirm the Cause

To find out exactly what chemical is causing this, standard blood counts are insufficient. You need to consult a Clinical Toxicologist or an Immunologist and request these highly specific panels:

To Identify the Toxic Chemical / Drug Residue

  • Blood & Urine Toxicology Screen (LC-MS/MS): Liquid Chromatography-Tandem Mass Spectrometry is the gold standard. It can detect parts-per-billion traces of specific poultry antibiotics, formalin, or chemical adulterants in your system.
  • Serum Mycotoxin Panel: A specialized blood test that checks for human exposure to Ochratoxin A, Citrinin, and Aflatoxin.
  • Heavy Metals Blood & Urine Panel: Tests for Arsenic, Cadmium, Lead, and Mercury to see if the issue is rooted in contaminated lentils, vegetables, or feed.

To Check Your Immune & Bone Health

  • Complete Blood Count (CBC) with Differential: Look closely at your Absolute Neutrophil Count (ANC) and Eosinophils. A drop in neutrophils confirms bone marrow suppression; an increase in eosinophils points to a chemical allergy/rash.
  • High-Sensitivity C-Reactive Protein (hs-CRP) & ESR: To measure the depth of your systemic tissue inflammation.

Immediate Next Steps for Recovery

  • See a Periodontist Immediately: The bacteria attacking the bone supporting your teeth requires urgent localized treatment (like deep scaling or localized antimicrobial gels) before permanent bone loss and tooth mobility occur.
  • Adopt a Strict Elimination Diet: Switch to a fully organic, simple vegetarian diet (sourcing verified organic grains and vegetables) for 3 weeks. Avoid all chicken completely (including corporate brands) to let your mucosal barriers and bone marrow fully recover.
  • Rebuild Mucosal Immunity: Ask your doctor about starting a high-grade probiotic to repair your gut, alongside Vitamin C, Coenzyme Q10, and Zinc to support gum healing and neutrophil function.

Toxin and Medication Profiles in Beef, Fish, and Dairy

Just like poultry, other animal farming sectors heavily utilize chemicals and medications that can survive cooking and compromise your immune system.

  • Beef: May contain beta-agonists (e.g., Ractopamine), tetracyclines & sulfonamides, heavy metals from grazing near industrial zones. High antibiotic residues trigger bone marrow suppression, lowering neutrophils. Destroys beneficial oral and gut bacteria, allowing pathogens to attack the jawbone.
  • Fish / Aquaculture: Formalin (used extensively as a preservative), Malachite Green (antifungal chemical), Heavy Metals (Mercury, Cadmium, Lead). Formalin directly destroys the mucosal lining of the mouth and gut.• Heavy metals accumulate in tissues, block immune cell production, and cause severe fatigue.
  • Dairy: Oxytocin (hormone to increase milk yield). Aflatoxin M1 (from moldy cattle feed). Systemic Antibiotic residues. Aflatoxin M1 is highly immunosuppressive and cytotoxic to mucosal tissue. Chronic antibiotic ingestion causes leaky gut syndrome, triggering full-body inflammation and skin rashes.

Complications for people with "Leaky gut" 

If you already have a Leaky Gut (Increased Intestinal Permeability), your body's primary firewall against the outside world is completely broken down. A healthy gut lining acts like a fine sieve, allowing only fully digested nutrients into your bloodstream while blocking toxins, chemicals, and bacteria. The "tight junctions" holding your intestinal cells together are damaged, leaving open gaps. When a person with a leaky gut is exposed to the poultry antibiotics, mycotoxins, pesticide-laden lentils, or heavy metals discussed earlier, the negative effects are multiplied by a factor of ten. Raw milk consumed on a leaky gut can allow bacterial translocation (Campylobacter, Salmonella, Listeria, Staphylococcus aureus, and various strains of E. coli), leading to systemic low-grade blood infections, sudden spikes in fatigue, body rashes, and a feverish feeling during or after urination. Raw milk contains large, complex proteins like casein and whey in their native, unheated states. Your immune system does not recognise them as food; it views them as dangerous foreign invaders (molecular mimicry) and creates antibodies to attack them. Your immune system does not recognise them as food; it views them as dangerous foreign invaders and creates antibodies to attack them. Bovine Immunoglobulins and Hormones: Raw milk is rich in active bovine hormones (like IGF-1) and animal immunoglobulins. In a healthy gut, these are safely broken down by digestive enzymes. In a leaky gut, they leak into the bloodstream intact, severely disrupting your endocrine (hormone) system and triggering the deep, cystic sebaceous pimples on your skin.

Incoming toxins & drug residues ──► Leaky gut lining pathway  ──► Massive Toxin Flood to Liver  (Liver Overloaded & Sluggish)   ──► Urine: Bladder Spasms & Leakage and Tissue: Deep Fat Store Backups.

Incoming toxins & drug residues ──► Leaky gut lining pathway  ──► Systemic Immune Hyper-Drive (Autoimmune Attack on Body)  ──►  Mouth: Bone-Erodong Periodontitis and Skin: Deep Rashes & Giant Pimples.

Everything that breaches the gut wall goes directly to the liver via the portal vein. A leaky gut continuously floods your liver with toxins, completely overwhelming its Phase I and Phase II detoxification pathways. Because your liver is working overtime just to handle the basic toxic spill from your gut, it clears the poultry chemicals much slower.

There is a direct medical axis known as the Gut-O-Dental Axis (Gut-Mouth Connection). A leaky gut triggers your oral symptoms through two distinct mechanisms:

  • Systemic Neutrophil Exhaustion: When toxins and undigested food particles leak into your blood, your immune system views them as an invading army. It deploys your white blood cells (neutrophils) to fight this blood pollution. Because your white blood cells are completely exhausted fighting toxins in your abdomen, there are no defenses left to guard your mouth. The bacteria naturally living under your teeth take advantage of this vulnerability, aggressively attacking your gums and eroding the supporting jawbone.
  • The Cytokine Firestorm: The constant leaking of toxins into your blood causes chronic, systemic inflammation. Your body releases inflammatory chemicals called cytokines. These cytokines circulate in the blood and attach to the bones of your body - specifically the jawbone, which is highly vascular. This causes localized bone destruction, bleeding gums, and that persistent, deep itching sensation you feel under your teeth. 

When the gut is leaky and the liver is overwhelmed, your body desperately looks for an alternative exit route to dump toxins.

  • The Skin as a Third Kidney: Your body uses your skin to sweat out the chemicals it cannot process through the liver or kidneys. As these poultry antibiotics, preservatives, or pesticides are pushed out through your skin pores, they cause severe local tissue irritation, resulting in large, painful, deep sebaceous pimples and generalized body rashes.
  • Mitochondrial Shut-Down (The Feeling of Total Tiredness): A leaky gut allows bacterial components called Lipopolysaccharides (LPS) into the blood. LPS is a profound metabolic toxin. It travels to your cells and completely parlayzes your mitochondria (energy generators). This causes the profound tiredness, lack of motivation, and the feeling of not wanting to do anything.

If you have a leaky gut, you cannot fix your teeth, skin, or bladder without treating your digestive tract first. You must heal the barrier. Bone Broth or Plant-Based Collagen Builders: Consume foods rich in the amino acids L-Glutamine, Proline, and Glycine. L-Glutamine acts like "cement" that physically repairs and closes the open gaps in your intestinal walls. (If staying strictly vegetarian, seek pure L-Glutamine supplements sourced cleanly). Bone Broth or Plant-Based Collagen Builders: Consume foods rich in the amino acids L-Glutamine, Proline, and Glycine. L-Glutamine acts like "cement" that physically repairs and closes the open gaps in your intestinal walls. (If staying strictly vegetarian, seek pure L-Glutamine supplements sourced cleanly). Soften the Liver Burden: Drink warm water with squeezed lemon or consume organic Milk Thistle or Bhumyamalaki (Phyllanthus niruri), traditional Indian herbs highly researched for protecting liver cells and boosting chemical clearance. Do Not Ignore the Local Dental Infection: Remember, while you are healing your gut, the bacteria under your gums are currently active. Continue your daily virgin coconut oil pulling and raw garlic application to suppress the local pathogens in the mouth until you can see a Periodontist for a professional deep scaling to protect your jawbone. Know how grains need to be prepared to prevent leaky gut.


Why Do Only Some People Face These Issues? 

It is incredibly common for two people to eat the exact same meal, yet only one experiences severe illness. This divergence is driven by three distinct physiological factors:

  • Factor A: "The Bucket Effect" (Heavy Metal & Pesticide Accumulation). Think of your body’s detox capacity as a bucket. If a person has lived in an environment with low toxin exposure, their bucket is empty; they can eat contaminated meat, process the toxins, and feel fine. However, if your body has already accumulated high levels of pesticides (like Organophosphates) or heavy metals (like Lead or Cadmium) from groundwater, vegetables, or environmental pollution, your "bucket" is already full. Ingesting even a tiny micro-dose of a veterinary drug or a fungal mycotoxin causes the bucket to overflow, triggering an immediate, violent toxic reaction, skin rashes, and sudden immune failure.
  • Factor B: Cellular Energy Depletion (Mitochondrial Toxicity). Toxins like mycotoxins and heavy metals directly paralyze your mitochondria (the powerhouses of your cells). When mitochondria fail, your body cannot produce enough ATP (energy). This directly causes the severe tiredness and lack of motivation you are feeling. Because immune cells require massive amounts of ATP to fight off bacteria, a drop in mitochondrial energy means the bacteria under your gums can attack your jawbone completely unopposed.
  • Factor C: Genetic Polymorphisms (Not Mutations, but Variations). You have likely not undergone a sudden genetic mutation, but you may have inherited specific, slight genetic variations known as Single Nucleotide Polymorphisms (SNPs). These variations alter how your body metabolizes chemicals:

Ingested Toxin  ──► Phase 1 Liver Pathway  ──► Creates highly toxic intermediate molecules (If you have inherited a slow GST, NAT2, or CYP450 gene variation).

Slow clearance blockage ──► Toxins back up into bloodstream ──► Targets Bone Marrow, Gut Lining, Gums, and Skin Gut Lining, Gums, and Skin.

  • Slow Phase II Liver Detoxification: Your liver uses enzymes (like Glutathione S-transferases or CYP450) to turn dangerous chemicals into harmless, water-soluble waste. If your genetics dictate that these enzymes run slowly, toxic intermediate molecules back up into your bloodstream instead of being cleared out.
  • HLA Gene Variations: Certain Human Leukocyte Antigen (HLA) genes make a person's immune system hyper-reactive to specific chemical structures, turning a mild chemical exposure into a massive autoimmune flare-up (causing deep skin pimples and body rashes). 

Clearing out the toxins 

If you switch exclusively to organic food, pure filtered water, and do not opt for medical chelation, it typically takes 6 months to 2 years for the body to significantly lower its deep toxic burden. 

Natural Clearance Timelines by Toxin Type

Bloodstream ──► Liver Filters ──► Excreted via Bile/Urine

Water-Soluble (Pesticides, Formalin) ──► Fast Clearance (Weeks)

Fat/Bone-Soluble (Mycotoxins, Lead)  ──► Slow Tissue Leaching (Months to Years) 

  • Fungal Mycotoxins (Ochratoxin A, Citrinin):  They bind tightly to serum proteins in the blood and accumulate in kidney and fat tissues. Natural clearance time: 3 to 6 months. Mycotoxins undergo enterohepatic recirculation. This means your liver filters them into your bile, but as the bile travels through your intestines, your colon accidentally reabsorbs the toxins back into the bloodstream. Eating a high-fiber organic diet breaks this loop by trapping the toxins in the stool.
  • Chemical Pesticides and Formalin: Most modern agricultural pesticides are water-soluble or break down into water-soluble metabolites. Natural clearance time: 2 to 8 weeks. Because they clear relatively quickly through the kidneys, switching to an organic diet yields very rapid improvements in your skin rashes, energy levels, and bladder irritation within the first two months.
  • Heavy Metals (Lead, Cadmium, Arsenic): Lead mimics calcium and stores itself deep inside your bones. Cadmium binds to the tissue of your kidneys and liver. Natural clearance time: 1 to 2+ years (for cellular levels to drop noticeably). Lead has a half-life in bones of up to 20–30 years. Without chelation, your body cannot dump all this metal at once without damaging your kidneys. Instead, it slowly leaks out of the bones into the blood in tiny, micro-doses, which a healthy liver and kidney can then safely excrete over many months.

How to Speed Up Natural Elimination (Without Chelation) 

  • Consume Natural "Binders": To stop the reabsorption of mycotoxins and heavy metals in your gut, consume foods rich in soluble fiber (like oats, chia seeds, and psyllium husk). Eating cilantro (coriander) and chlorella (a green algae supplement) helps naturally bind to heavy metals in the digestive tract so they are excreted in your stool rather than reabsorbed.
  • Boost Natural Glutathione Production: Glutathione is your liver's primary weapon for neutralizing toxic chemicals. You can naturally boost it by eating sulfur-rich organic vegetables like garlic, onions, broccoli, cabbage, and Brussels sprouts, provided your digestive system tolerates them.
  • Sweat Safely: Many heavy metals and chemicals are excreted directly through the skin. If your energy permits, light exercise or using a sauna accelerates the removal of toxins stored in fat tissue.
  • Flourish the Gut Microbiome: Take a high-quality, multi-strain probiotic or consume organic fermented foods (like home-made curd, if tolerated, or non-dairy ferments). A robust gut microbiome acts as a physical barrier, actively neutralizing toxins before they can ever cross into your bloodstream.

While your liver and kidneys can patiently clear blood toxins over the next several months, your jawbone and gums cannot wait that long. The chemical toxins may have initiated the immune drop, but the bacteria currently eating away at the bone supporting your teeth are living, active pathogens. Even if you eat 100% organic food starting today, that localized bone infection will continue to advance until a dental professional physically intervenes. 

The Reality of Veterinary Checks 

In India, veterinary checks at standard municipal slaughterhouses and local wet markets are prone to system failures, laxity, and a lack of farm-to-table traceability. There is no reliable guarantee that unbranded open-market meat is free of chemicals. By law, if an animal is given antibiotics, the farmer must wait several days (the withdrawal period) before slaughter so the drug can clear the animal's body. Due to poor training or financial pressure, many small-scale local farmers ignore these periods. Standard veterinary checks in local markets usually only consist of an ante-mortem visual test—a inspector looking at the live animal to ensure it isn’t visibly crippled or actively dying of an obvious disease. They do not run chemical mass-spectrometry tests on-site to check for hidden blood toxins or antibiotic residues. Corporate cold-chain brands bypass local market channels entirely, controlling the feed and testing the meat in dedicated laboratories.

Chemical Contamination in Water Supply

Water is a major vector for toxic accumulation in both livestock and humans. Untreated groundwater in these high-risk areas contains toxic levels of Nickel, Chromium, Cadmium, and Lead, alongside high chemical salinity. Peri-urban farmers frequently use this contaminated lake or borewell water to grow animal fodder (like hybrid napier grass and corn). The cattle and poultry drink the water and eat the contaminated fodder. The heavy metals do not leave the animal; they accumulate inside the cow’s milk or the chicken’s muscle tissue, which humans then ingest. A research paper even examined heavy metals in Rajajinagar groundwater.

Vegetarian Sources of Food That Cause Immune Suppression

If plants are grown under poor agricultural practices, they can cause the exact same mucosal breakdown and immune suppression:

  • High-Pesticide Lentils and Pulses: Conventional lentils, pulses, and green leafy vegetables (like spinach) grown with aggressive quantities of Organophosphates or Carbamates act as direct neurotoxins and gut mutagens. They alter human bone marrow function and suppress white blood cell counts over time.
  • Sewage-Irrigated Urban Vegetables: A significant portion of the cheap, local vegetables sold in Bengaluru's open markets are grown in outskirts irrigated directly with polluted lake water. These vegetables test exceptionally high for Lead and Cadmium, which block cellular energy (ATP) production and cause systemic fatigue.
  • Aflatoxins in Stored Grains: Poorly dried and improperly stored lentils, peanuts, corn, and wheat generate Aspergillus molds. These produce Aflatoxins, which are highly immunosuppressive and directly damage the liver, lowering your body's overall ability to clear out foreign chemicals. 

The points above were mentioned by an AI, so remember that there may be mistakes. These are only meant to be used as a guide to help understand the possible causes of problems that even doctors don't seem to know about, so that people can consult relevant doctors and figure out what tests to do and what treatment methodology to adopt.

Always consult a reputed, experienced doctor. Do not jump to conclusions based on what an AI says. 

09 August 2026

A Gradle line that helps avoid massive Flutter downloads during builds

When building Flutter projects I noticed that sometimes, Gradle task 'assembleDebug' would run even if I had already build the project successfully earlier, and it downloads upto 500MB or almost 1GB of downloads. If I make changes to the code and try to run it again, the Gradle task 'assembleDebug' does some 200MB or 300MB of downloads again just to be able to build the APK.

When I raised this as an issue, the Flutter developers asked for details and tried to dismiss it as an environment issue on my computer. But I kept investigating and found that adding `org.gradle.caching=true` to `<my_flutter_app_folder>/android/gradle.properties` solved the problem. I did a bit more digging and added two more lines. This is all you need to add to the `gradle.properties` file:

org.gradle.caching=true

org.gradle.parallel=true 

org.gradle.daemon=true 

10 July 2026

Short tutorial on SIR (Special Intensive Revision) form filling

The Special Intensive Revision is conducted to verify and revise electoral rolls to ensure that the data is accurate. It was conducted in 2002 in Karnataka, and voters of 2026 are expected to find their 2002 data or their relative's 2002 data and mention it in the 2026 form. I decided to create a short tutorial. This is primarily to resolve confusion of how to fill the form.

Disclaimer: I'm not an expert on this topic. I'm not writing this in any official capacity. Make sure you verify the information provided here and consult your BLO (Booth Level Officer) or ERO (Electoral Registration Officer) for accurate and updated info. 

The short version

1. Find your existing voter details: Search for your voter id number on the electoralsearch.eci.gov.in website or from the voter helpline app, and your detailed voter information page will show you who your BLO and ERO is. Or you can call the helpline or see this page to find out. Save their phone numbers and also note down your "Part serial number" and "Part number".

2. Get your form from BLO: Tell your BLO your Part number to confirm if it is the correct BLO. Ask your BLO when and where you can get your enumeration form. When you meet your BLO, mention your Part serial number and take both copies of your enumeration form from your BLO. Also ask the BLO for a blue/purple sticker which you need to stick on/near your house door. Sign on the BLO's register to confirm you got your form (you can collect your family member's forms on their behalf).

3. Find the 2002 data: Use the ECINET app or the voters.eci.gov.in website to search for your 2002 SIR data and your relative's 2002 SIR data. It's easier to search via the website on a laptop/desktop computer than on a phone. Select the state, district and assembly constituency you are most likely to find your data (you can ask an AI which district and assembly constituency your address might have been under in 2002). Type your name or your relative's name in "Elector full name in last SIR in 2002" and try variations of the name and surname. Type the captcha and search. If any list of names is shown, notice that at the top of the table there's a search bar and a translate button you can use. Once you find the relevant data, take a screenshot of it and copy the exact text of the Elector full name, Relative full name, Relative type, District, State, AC Name (AC is Assembly Constituency), AC Number, Part No. (Polling station No.), Part Sr No. It is important that you copy all this data exactly as it is given in the 2002 data even if there are spelling mistakes. Do not make changes to it.

4. Fill the forms: In the enumeration form, fill the "Details of the Elector in the Electoral Roll of the last SIR" section only if you found your data in the 2002 SIR data. You are supposed to enter the data exactly as it was in the 2002 data. The section for "Details of the relative whose name is given in the previous column in the last SIR" is to enter the data of your blood-relative (father, mother, grandfather, grandmother regardless of where they registered for the 2002 SIR in India), and even in this section you should enter the data exactly as it is in the 2002 list. Then fill the compulsory section where you type your date of birth, mobile number, parent's name, etc. Fill both forms. Then if you want to update your photo, stick a passport size photo in one form and sign it.

5. Submit forms: Show both forms to the BLO. Take a photo of both forms for your reference. Submit one form to the BLO. Make sure you get the BLO's signature as an acknowledgement on the second form. You can keep the second form with you as proof of what you submitted.

More details

The English version of the form is provided here and here's a video tutorial.

Top column

Option to update your photo
Here even if your name and address is printed wrong, you cannot immediately correct it. I remember reading somewhere that the BLO can correct it for you. The other option might be to submit the SIR form and later submit form 8 for corrections. You should ask your BLO for how to proceed. For now you can at least update your photo by pasting a new passport size photo in the "Paste Current Photo" column (I remember reading somewhere that the background of the photo should be white).

Your 2002 data section 

Write your 2002 SIR details only if you could find it
If you could find your data in the 2002 SIR list and if you are alive, only then you should enter this data. Otherwise do not guess or assume any info and write it. It could very likely be a punishable offence. It does not matter which part of India you were in for the 2002 SIR. If you can find that data, you can enter it in this section. This is called "Self mapping", where you are mapping your old data to your new data. 

  • Elector Name: Your name exactly as it is written in the 2002 list. Even if there is a spelling mistake do not make any corrections to the spelling. No need to write the correct spelling in brackets either because this data is only for connecting to old data. Name corrections are to be done via form 8 later.
  • EPIC No.: If the EPIC number is available in your 2002 data, write it exactly as it is in the 2002 data. I have seen cases where the EPIC number is mentioned wrong, so in such cases I think it might be better to avoid writing it since it is optional. Ask your BLO for clarifications.
  • Relative's name: If you had mentioned your relative's name in 2002, enter it exactly as it is in the 2002 list even if the spelling or initials are wrong.
  • Relationship: Even if the relationship is written as "Other" in the 2002 list, write it exactly as it is.
  • District: The name of the district mentioned in the 2002 list. 
  • State: The name of the state mentioned in the 2002 list.
  • AC name: The Assembly Constituency name as mentioned in the 2002 list. You'll have to sometimes provide an AI like Gemini or ChatGPT a list of the Districts and the AC's of each district (as mentioned in the 2002 search tool) and ask it which district your current location might have been part of in 2002, because sometimes AC's or districts are split into new AC's or districts. For example, Uttarahalli (Famous for being the largest constituency in India prior to 2008), later split into 8 separate segments like Padmanabhanagar, RR Nagar, and Bangalore South.
  • AC number: Each assembly constituency has a number mentioned near its name. Write that number as it was in 2002.
  • Part No: Enter your part number as shown in your 2002 data. It's unfortunately shown as "Polling station No." in the search tool. "Part" refers to a specific geographic area or neighborhood within an Assembly Constituency that is mapped directly to a single polling station. It's different from a polling booth which is simply a building where people go to vote, but in this case it'd be the polling station number. 
  • Part Serial No.: This is your personal serial number (voter number) inside that specific Part's voter list. For example, if you are the 45th person listed in your neighborhood's roll, your Part Serial No. is 45.

Your relative's 2002 data section

Write your relative's 2002 details only if you could find it

This section is called "Progeny mapping", to link you to your blood relatives. If you could find your relative's data in the 2002 list (no matter where in India they were) and if you are alive, fill up this section. Else, leave it blank. Do not try to guess or assume any data. Your relative cannot be your in-laws. It has to be either your grandparent (maternal or paternal) or parent (there are websites like this, this and this which say uncle/aunt or sibling could be mentioned, but I don't know how far this is feasible because the software has options only for parents and grandparents). For adopted children, I think they need to enter their adoptive parent's details, but I'm not sure, so please ask your BLO.

  • Name: The name of your relative exactly as given in the 2002 list. Do not add "Late" or "Deceased" or "Expired" in brackets if they died.
  • EPIC No: If mentioned in the 2002 list, and if wrongly mentioned, then perhaps skip it (ask your BLO for confirmation)
  • Relative's name: The relative's name which your relative mentioned in the 2002 list. Do not add "Late" or "Deceased" or "Expired" in brackets if they died.
  • Relationship: This is not about your relationship to that relative. It's the "Relative type" as mentioned in the 2002 list. If they've written "other" instead of "Father" etc., you are supposed to write "other". It has to match the 2002 data exactly.
  • District, State, AC Name, AC Number, Part No., Sr.No: As written in the 2002 list, and as I explained in the section above. 

Your correct data section 

This section is necessary to fill with accurate data
 

This is simple enough to fill in. Mention your correct date of birth, correct Aadhaar number (optional), correct mobile number, name of the father, mother, spouse and the EPIC id's (as mentioned in their voter id because this enumeration stage is to map data correctly to family members). If it is a pre-printed form of a person who already died, I don't think you need to fill the form. There's a separate form for that. Speak to the BLO or an SIR helpline about what needs to be done, and especially ask about what if the parent's or spouse name spellings are wrong in their voter id.

When filling parent's names into this section, if they have already passed away I think their names can be prefixed with "Late" or mention "(expired)" after their name. Ask your BLO for clarifications. As for spouse, if you are a widow or widower, I think you are supposed to omit the spouse name. Again, ask the BLO to be sure.

Resources

Questions people usually have

What are the consequences of missing SIR? 

I think your name may not be included in the updated electoral rolls. I think you would need to go to the voter services portal and submit form 6 so that you are re-included into the electoral roll. I'm not sure of this. You need to consult your BLO or ERO.

What if you could not find your 2002 data or entered it wrong?

As per this post you might be marked "unmapped" and be considered a new voter. From August 5th 2026 onward (in Karnataka) the ERO may issue a notice for you to submit documents to establish your eligibility to vote. The list of documents is given in the back side of the form. It is important to not guess any of the 2002 data and instead, write the 2002 data only if you could find it. 

Fill form 8 to make corrections to pre-printed name before submitting the enumeration form?

Probably not. The form 8 submission and SIR submission follow different workflows, and it's probably only after the draft electoral rolls are published that the officers might take a look at the form 8 submissions. There's a guide for how to fill form 8. When I asked my BLO if she could approve a correction via form 8, she said she didn't receive instructions to process form 8, so it seems like it won't be done during the enumeration form filling phase.

Corrections to the form in whitener or strike out?

First, compulsorily fill the form in pencil. Only after you are 100% sure of the information and ready to submit, you can write with pen. After writing with pen if there are still corrections, my BLO said that whitener needs to be used and after it dries the person can write on top of it, but this article says there's no clarity on whitener use but you can strike out what was written and write the correct info next to it and sign perhaps at the side of the form, to indicate that you did the strike out.

Why is the SIR being done?

This post says it's a comprehensive update of the electoral roll which is different from the SSR (Special Summary Revision) which updates fewer details. The SSR helps remove duplicate entries too (people registered in multiple places). It helps the electoral roll remain accurate.

What if the BLO does not visit the house?

You don't have to wait. You can fill the form online (the BLO may still conduct a physical verification if required) or visit the BLO or ERO or local election office or call the election helpline for help. 

What if there are mistakes in the current voter id or the pre-printed part of the enumeration form?

After the draft electoral roll is published, fill form 8 to make corrections. 

How to prove that the relative in the 2002 electoral roll is a relative?

Normally if the data is found in the 2002 list that itself would be sufficient to link you to the relative. If the BLO/ERO is not convinced they'll ask for documents during the verification phase. You don't have to submit any supporting documents while submitting the enumeration form.

What if it's difficult to find a relative's details due to estrangement, death or other family issues?

You can search the 2002 list or explain the situation to the BLO/ERO and they should help you find the relevant data. 

What if a person has moved to a different address?

SIR helps in verifying address changes too, so submitting form 6 or form 8 as appropriate would help fix the issue. You could ask your BLO/ERO.

What if a person's name is missing in the electoral record now?

Contact the BLO/ERO. They can help trace the historical record. 

Some people are writing "Late" or "Expired" in brackets near the name of their father/mother. Is it ok?

For the non-2002 section it's ok.

If any part of the form is not to be filled, should it be left blank or should a horizontal line be drawn there or should the person write "Not applicable"?

Nothing wrong with leaving it blank, but an AI told me there's nothing wrong with drawing the horizontal line, but it's better not to write "Not applicable". 

If self or relative's details like name or age or relationship of the 2002 details are wrong in the 2002 data?

Multiple sources say there might be an opportunity in the corrections phase to correct the data after submitting proof, but I'm not sure. 

Will the BLO require signing a register on submitting the paper form?

My BLO made me sign a register when accepting the form and when returning the form too. Although as long as you have the BLO's signature on your second form, I think that should be sufficient proof of submission. 

What if self or relative's EPIC number is not available in the 2002 data or is listed wrong? 

It's optional to write it.

In the portion where we write our father and mother's name, is it ok to write the name in English and then write the name in brackets in the regional language?

I've been told by an SIR helpline that it's ok. But don't do the same thing for the 2002 data. 

Who can help if I have questions?

There are various SIR helpline numbers and email id's online. You can also meet your BLO and ask (at least in my place they gather at the BBMP office in the evening).

What if I lost my paper form?

Not sure what the process is, but you could approach your BLO or ERO to print it again. The other option is to submit it online. I wrote to the election commissioner to request making pre-printed PDF forms available online so that we could take a printout ourselves, but got no reply.

What precautions can I take?

Fill the form using pencil first, confirm all the details and then write in pen.

My form is in Kannada. Can I fill the form in English?

Yes 

What if a person had a different spouse in 2002 and what about children born to different spouses in 2002 and 2026?

For 2002 the details of the 2002 time need to be retained. For the child, whatever is mentioned in the child's document as the parent's name is to be mentioned. Again, please ask your BLO to confirm.

30 June 2026

OCR program to transliterate PDF pages from regional languages to English

With the Special Intensive Revision of voter lists being done in Karnataka, and the 2002 voter lists being primarily in Kannada, I needed a way to transliterate the PDF files to English. 


So I vibecoded this Python application which can be used either from the GUI or via the commandline. Since some pages may be scanned, and hence the text may not be digitized, or even if it is digitized it may not be in a format that can easily be converted to the desired Unicode format, I decided to process the PDF using Optical Character Recognition (OCR).

The program writes the recognized regional language words into a text file and writes the transliterated text in brackets right next to it.

This is a very basic version of the program. There is much more that can be done to improve it. I considered many other libraries, but there seemed to be too much of a download requirement to use many of them. These are the approximate size requirements info an AI gathered:

  • PyMuPDF (PDF parsing): ~40 MB to 90 MB
  • PaddleOCR (OCR): ~800 MB – 1.2 GB
  • Tesseract (OCR): ~5 MB (+ ~15 MB per language pack)
  • PP-Structure / LayoutParser (page layout detection): ~150 MB to 500 MB
  • fastText (language detection): ~1 MB (or ~120 MB for full fastText model)
  • indic-transliteration / Aksharamukha (transliteration): ~5 MB – 15 MB
  • IndicTrans2 (translation): ~2 GB (Distilled) to ~12 GB (Full 1B)
  • PyMuPDF or ReportLab (PDF creation): ~3 MB | Lightweight 

So for this project I've used PyMuPDF, Tesseract, Pillow, OpenCV, Numpy and Indic-transliteration. If the need arises, I'll add more functionality, but you are welcome to submit PR's too.

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.
  • Antimicrobial washes: Commercial slaughterhouses may wash meat with chlorine dilutions or organic acids which could trigger contact dermatitis or eczema flares (eczema and cytokine triggers may also happen from histamines produced when bacteria break down amino acids in meat).
  • 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 the Chromium team could have benefited from some training on UI/UX, because 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.