<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Kaushitha Silva’s Blog</title><description>Research Engineer working on AI and distributed systems.</description><link>https://kaushitha.xyz/</link><item><title>Artificial Selection</title><link>https://kaushitha.xyz/notes/artificial-selection/</link><guid isPermaLink="true">https://kaushitha.xyz/notes/artificial-selection/</guid><description>Were chickens designed to lay 300 eggs a year?</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’ve always wondered why chickens lay so many eggs, around 300 per year[^6]! Were they designed perfectly just to cater to humans? Is it the sole ‘purpose’ of their lives? Do we eat eggs because chickens lay excess eggs? Or do chickens lay more eggs because we eat them?&lt;/p&gt;
&lt;p&gt;Another question naturally to ask then would be, why do junglefowls who look very similar to a chicken just lay 10-15 eggs per year[^5]? Just considering the phenotypic similarities, we can assume they share a common ancestry, and indeed the red junglefowl is the direct ancestor of the domestic chicken [^2].&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;species-compare-grid&quot;&amp;gt;
&amp;lt;div class=&quot;species-card&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;species-info&quot;&amp;gt;
&amp;lt;div class=&quot;species-name&quot;&amp;gt;Red Junglefowl &amp;lt;em&amp;gt;(Gallus gallus)&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;species-stat&quot;&amp;gt;Wild ancestor • ~10–15 eggs / year&amp;lt;sup&amp;gt;[5]&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;species-credit&quot;&amp;gt;Photo © Dorian Anderson / &amp;lt;a href=&quot;https://macaulaylibrary.org/photo/203671581&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&amp;gt;Macaulay Library (ML 203671581)&amp;lt;/a&amp;gt; via &amp;lt;a href=&quot;https://birdsoftheworld.org/bow/species/redjun/cur/introduction&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&amp;gt;Birds of the World&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;species-card&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;species-info&quot;&amp;gt;
&amp;lt;div class=&quot;species-name&quot;&amp;gt;White Leghorn Chicken &amp;lt;em&amp;gt;(G. gallus domesticus)&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;species-stat&quot;&amp;gt;Domestic breed • ~280–320 eggs / year&amp;lt;sup&amp;gt;[6]&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;species-credit&quot;&amp;gt;Photo © slowmotiongli via &amp;lt;a href=&quot;https://pictureanimal.com/wiki/Gallus_gallus_domesticus__Leghorn_.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&amp;gt;Picture Nature&amp;lt;/a&amp;gt; / iStock&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;But what naturally occurring selective pressures affected a junglefowl to evolve to a chicken laying 300 eggs annually? Was the rate of hatching so small that more eggs meant more hatching? In the wild, laying 300 eggs is biologically useless. A junglefowl can only physically cover and incubate about 10 to 15 eggs at a time. Any egg laid beyond her wingspan simply rots or gets eaten by predators, making it a 100% waste. Then what naturally occurring selective pressure could possibly drive a species to sacrifice bone density, causing osteoporosis, just to produce more eggs? [^4]&lt;/p&gt;
&lt;p&gt;The answer to above isn’t ‘Natural Selection’, it’s ‘Artificial Selection’. Artificial selection is an evolutionary process in which humans consciously select for or against particular features in organisms[^1].&lt;/p&gt;
&lt;p&gt;It’s a bit counter-intuitive to grasp at once due to large time scales needed for an observable change. I cannot take a Junglefowl and turn into a chicken during my lifetime. There are similar examples that are results of artificial selection. Whenever you come across a ‘natural’ organism that looks perfectly designed for a human, more often than not, it’s the result of artificial selection. See the &lt;a href=&quot;#another-example-dogs-and-the-human-bonding-loop&quot;&gt;Dogs and the Human Bonding Loop&lt;/a&gt;, further down for another example.&lt;/p&gt;
&lt;p&gt;Pivoting back to chickens, chicken domestication is now dated to around 3,500 years ago in Southeast Asia [^2]. However, exact figures of eggs laid per year are not known. What we do have is the more recent figures from the 1950s. U.S. layer-performance data shows hens averaging 56.9% hen-day egg production in 1950 (about 208 eggs/year) and 82.0% by 2000 (about 299 eggs/year), a direct signature of sustained artificial selection[^6].&lt;/p&gt;
&lt;p&gt;This is a result of intense breeding programs starting from the 1920s-30s. Before this shift, farmers couldn&apos;t ignore other survival traits entirely, since hens were largely reared outdoors and needed to fend for themselves. The move to indoor battery cages in the 1930s-40s marked a turning point. Since they were insulated from predators, weather, and the need to forage, breeders could focus almost exclusively on egg output. By 1950, this had already pushed egg-laying to multiples of what a wild red junglefowl manages. The following half-century saw a further ~44% increase in egg production. At a typical layer-breeding generation interval of about 14.5 months, that&apos;s roughly only 41 generations to go from 208 to 299 eggs a year[^7].&lt;/p&gt;
&lt;p&gt;With this extreme, single-minded selection pressure on egg yield, industrial breeding has produced chickens that lay around 300 eggs a year while sacrificing other survival traits, including bone density[^4]. A domestic chicken released into the same environment as a junglefowl would likely not survive for long.&lt;/p&gt;
&lt;h2&gt;Simulation&lt;/h2&gt;
&lt;p&gt;Code: &lt;a href=&quot;https://github.com/kaushithamsilva/artificial-selection&quot;&gt;github.com/kaushithamsilva/artificial-selection&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a simulation of the above effect to demonstrate artificial selection. It’s nowhere near to a real world evolution demo, but nevertheless very interesting.&lt;/p&gt;
&lt;p&gt;Let’s assume that in my world the coding unit is a 32-bit long string (instead of DNA), and there are 3 genes: Egg Yield ($E$), Bone Density Capacity ($B$), and Energy Capacity ($N$), each taking 3 bits. The rest of the 23 bits are non-coding, they never touch the phenotype. Each 3-bit block decodes as ordinary MSB-first binary.&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;sim-label&quot;&amp;gt;32-Bit Genome Map&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;genome-bar&quot;&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-e&quot;&amp;gt;
&amp;lt;span&amp;gt;E&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;0–2&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-junk1&quot;&amp;gt;
&amp;lt;span&amp;gt;junk&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;3–9&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-b&quot;&amp;gt;
&amp;lt;span&amp;gt;B&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;10–12&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-junk2&quot;&amp;gt;
&amp;lt;span&amp;gt;junk&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;13–19&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-n&quot;&amp;gt;
&amp;lt;span&amp;gt;N&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;20–22&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;genome-seg genome-seg-junk3&quot;&amp;gt;
&amp;lt;span&amp;gt;junk&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;seg-range&quot;&amp;gt;23–31&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;gene-pill-grid&quot;&amp;gt;
&amp;lt;div class=&quot;gene-pill gene-pill-e&quot;&amp;gt;
&amp;lt;strong&amp;gt;E (egg yield)&amp;lt;/strong&amp;gt;
&amp;lt;span&amp;gt;bits 0, 1, 2&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;gene-pill gene-pill-b&quot;&amp;gt;
&amp;lt;strong&amp;gt;B (bone density capacity)&amp;lt;/strong&amp;gt;
&amp;lt;span&amp;gt;bits 10, 11, 12&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;gene-pill gene-pill-n&quot;&amp;gt;
&amp;lt;strong&amp;gt;N (energy capacity)&amp;lt;/strong&amp;gt;
&amp;lt;span&amp;gt;bits 20, 21, 22&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;A worked example of the representation&lt;/h3&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;bitstring-row&quot;&amp;gt;
&amp;lt;span class=&quot;text-sm font-medium text-neutral-300&quot;&amp;gt;genome:&amp;lt;/span&amp;gt;
&amp;lt;div class=&quot;bitstring-visual&quot;&amp;gt;
&amp;lt;span class=&quot;bit-e&quot;&amp;gt;111&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;bit-junk&quot;&amp;gt;0000000&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;bit-b&quot;&amp;gt;010&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;bit-junk&quot;&amp;gt;1000000&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;bit-n&quot;&amp;gt;100&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;bit-junk&quot;&amp;gt;000000000&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;ul class=&quot;text-sm space-y-1.5 mt-3&quot;&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;span class=&quot;text-amber-400 font-mono font-semibold&quot;&amp;gt;bits[0:3] = 111&amp;lt;/span&amp;gt; → E = 4+2+1 = 7 (maximum egg yield)&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;span class=&quot;text-blue-400 font-mono font-semibold&quot;&amp;gt;bits[10:13] = 010&amp;lt;/span&amp;gt; → B = 0+2+0 = 2 (low bone capacity)&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;span class=&quot;text-emerald-400 font-mono font-semibold&quot;&amp;gt;bits[20:23] = 100&amp;lt;/span&amp;gt; → N = 4+0+0 = 4 (moderate energy capacity)&amp;lt;/li&amp;gt;
&amp;lt;li class=&quot;text-neutral-400 text-xs pt-1&quot;&amp;gt;the other 23 bits are junk, ignored entirely.&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;A mutation in this world is a bit flip (0 → 1, 1 → 0). The mutation rate is set at 0.03 per bit, meaning we expect an average of about one random bit-flip per offspring. The crossover mechanism used is the typical single-point crossover used in Genetic Algorithms. We pick one random pivot position along the 32-bit genome (uniformly in [1, 31]), the child takes all bits up to and including the pivot from parent A, and all remaining bits after the pivot from parent B.&lt;/p&gt;
&lt;h3&gt;A worked example of reproduction&lt;/h3&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;pipeline-mono&quot;&amp;gt;&amp;lt;span class=&quot;text-neutral-500 font-semibold&quot;&amp;gt;          E(0-2)  junk(3-9)  B(10-12)  junk(13-19)  N(20-22)  junk(23-31)&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;parent1-accent font-semibold&quot;&amp;gt;Parent 1:&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;bit-e&quot;&amp;gt;1 1 0&amp;lt;/span&amp;gt;   &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;1111111&amp;lt;/span&amp;gt;    &amp;lt;span class=&quot;bit-b&quot;&amp;gt;1 1 1&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;1111111&amp;lt;/span&amp;gt;      &amp;lt;span class=&quot;bit-n&quot;&amp;gt;1 1 1&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;111111111&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;parent2-accent font-semibold&quot;&amp;gt;Parent 2:&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;bit-e&quot;&amp;gt;1 1 1&amp;lt;/span&amp;gt;   &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;0000000&amp;lt;/span&amp;gt;    &amp;lt;span class=&quot;bit-b&quot;&amp;gt;0 0 0&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;0000000&amp;lt;/span&amp;gt;      &amp;lt;span class=&quot;bit-n&quot;&amp;gt;0 0 1&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;000000000&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h4&gt;Recombination&lt;/h4&gt;
&lt;p&gt;Single-point crossover at bit index 15. Offspring takes bits 0–15 from Parent 1, bits 16–31 from Parent 2.&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;pipeline-mono&quot;&amp;gt;&amp;lt;span class=&quot;parent1-accent&quot;&amp;gt;&amp;lt;--- from Parent 1 (bits 0–15) ---&amp;gt;&amp;lt;/span&amp;gt;|&amp;lt;span class=&quot;parent2-accent&quot;&amp;gt;&amp;lt;--- from Parent 2 (bits 16–31) ---&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;parent1-accent font-semibold&quot;&amp;gt;1 1 0   1111111    1 1 1     111&amp;lt;/span&amp;gt;   |&amp;lt;span class=&quot;parent2-accent font-semibold&quot;&amp;gt;0000      0 0 1     000000000&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h4&gt;Mutation&lt;/h4&gt;
&lt;p&gt;Bit index 2 flips from 0 to 1.&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;pipeline-mono&quot;&amp;gt;&amp;lt;span class=&quot;bit-mutated&quot;&amp;gt;1 1 1*&amp;lt;/span&amp;gt;  &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;1111111&amp;lt;/span&amp;gt;    &amp;lt;span class=&quot;bit-b&quot;&amp;gt;1 1 1&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;1110000&amp;lt;/span&amp;gt;          &amp;lt;span class=&quot;bit-n&quot;&amp;gt;0 0 1&amp;lt;/span&amp;gt;     &amp;lt;span class=&quot;bit-junk&quot;&amp;gt;000000000&amp;lt;/span&amp;gt;
&amp;lt;span class=&quot;text-red-400 font-sans text-xs&quot;&amp;gt;↑ bit[2] flipped from 0 → 1 (E is now 7)&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;Selection and Fitness&lt;/h3&gt;
&lt;p&gt;To decide which individuals reproduce, the simulation uses &lt;strong&gt;roulette wheel selection&lt;/strong&gt; (fitness-proportionate selection). In other words, higher the fitness score, higher the probability of getting selected as a parent.&lt;/p&gt;
&lt;p&gt;To come up with a fitness function, I assumed laying eggs to be an expensive process that costs both energy and calcium, thus reducing both $N$ and $B$.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Eggshells require huge amounts of calcium.&lt;/strong&gt; When a hen lays eggs continuously, her body pulls calcium directly out of her bones.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Producing eggs burns daily energy.&lt;/strong&gt; Every egg laid drains energy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here $B$ and $N$ are genetic capacities decoded straight from the genome. It&apos;s the ceiling the genotype allows, not the actual bone density or energy levels expressed. What the bird actually expresses, $B_{\text{actual}}$ and $N_{\text{actual}}$, is that capacity minus whatever egg-laying has already depleted. There is no separate &quot;expressed&quot; value for $E$.&lt;/p&gt;
&lt;p&gt;I assume that the bird needs at least 2 units of bone density $B_{\text{actual}}$ and energy $N_{\text{actual}}$ to survive. If either drops below this threshold, her fitness score is drastically reduced. To model this, a smooth step function $\sigma(x) = 1 / (1 + e^{-2(x-2)})$ is used.&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;sim-card&quot;&amp;gt;
&amp;lt;div class=&quot;formula-header&quot;&amp;gt;
&amp;lt;div class=&quot;sim-label mb-1&quot;&amp;gt;Physiological Trade-off (Expressed Phenotype)&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
B_{\text{actual}} &amp;amp;= \max(0, B - 0.8E) \
N_{\text{actual}} &amp;amp;= \max(0, N - 0.6E)
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;text-xs text-neutral-400 mt-2&quot;&amp;gt;0.8 and 0.6 are the calcium and energy drain per unit of egg production, floored at 0.&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;selection-grid&quot;&amp;gt;
&amp;lt;div class=&quot;selection-card selection-card-natural&quot;&amp;gt;
&amp;lt;span class=&quot;selection-title-natural&quot;&amp;gt;Natural selection (Wild):&amp;lt;/span&amp;gt;
&amp;lt;div class=&quot;selection-values&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;$$F = E \cdot \sigma(B_{\text{actual}} - 2) \cdot \sigma(N_{\text{actual}} - 2)$$&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;text-xs text-neutral-400 mt-1&quot;&amp;gt;Eggs are discounted if bones or energy drop too low.&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;selection-card selection-card-artificial&quot;&amp;gt;
&amp;lt;span class=&quot;selection-title-artificial&quot;&amp;gt;Artificial selection (Farm):&amp;lt;/span&amp;gt;
&amp;lt;div class=&quot;selection-values&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;$$F = E^2$$&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;text-xs text-neutral-400 mt-1&quot;&amp;gt;The breeder selects purely on egg yield.&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;Because $B_{\text{actual}}$ and $N_{\text{actual}}$ directly drop as $E$ rises, pushing egg production too high under natural selection reduces the bird&apos;s fitness, leading to a smaller slice of the wheel. Under artificial selection, the farmer ignores bones and energy entirely ($F = E^2$), meaning high egg producers always take the largest slice of the wheel regardless of how depleted their bodies become.&lt;/p&gt;
&lt;h2&gt;Results&lt;/h2&gt;
&lt;p&gt;
&amp;lt;figcaption&amp;gt;&amp;lt;strong&amp;gt;Figure 1:&amp;lt;/strong&amp;gt; Trajectory of population-average phenotype values across 100 generations of natural selection followed by 50 generations of artificial selection.&amp;lt;/figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;
&amp;lt;figcaption&amp;gt;&amp;lt;strong&amp;gt;Figure 2:&amp;lt;/strong&amp;gt; Heatmap distribution of population exon values (0–7) over generations for egg yield (E), bone density (B), and energy (N).&amp;lt;/figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;As Figure 1 indicates, 100 generations of natural selection in the wild results in the average $E$, $N$, and $B$ stabilizing at about 4.6, 3.8, and 3.1 units. When the artificial selection phase starts, the average $E$ increases and converges at around 6.6 units, while $N$ and $B$ drop down to ~0.7 and ~0.35 units. Figure 2 shows the population fraction distribution of $E$, $B$, and $N$ across generations; it shows that while there is some residual variation in $N$ and $B$ in the artificially selected population, they remain substantially lower than in the wild population.&lt;/p&gt;
&lt;p&gt;Although the above is a rather simplified simulation of the domestication of chickens, it highlights how artificial selection can drive rapid and dramatic phenotypic divergence compared to natural selection over very short spans of time. To answer the question posed at the start: in simple terms, humans wanted to eat more eggs, and by selectively breeding chickens that laid more eggs over many generations, chickens now lay 300 eggs/year (a figure that industrial breeding may push even higher).&lt;/p&gt;
&lt;h2&gt;Another Example: Dogs and the Human Bonding Loop&lt;/h2&gt;
&lt;p&gt;Dogs have human-like behaviors and facial expressions, almost as if they were designed to be our companions. Recent genomic evidence confirms dogs were the very first domesticated animals[^3]. Over thousands of years of living alongside humans, selection favored traits that tapped directly into our nurturing instincts. Research shows that mutual eye contact between a dog and its human triggers a surge of oxytocin, the same hormone involved in maternal bonding in both species[^8]. Dogs have even evolved specialized facial muscles (like the &lt;em&gt;levator anguli oculi medialis&lt;/em&gt;) that wolves lack, allowing them to raise their inner eyebrows and produce expressive &lt;strong&gt;&quot;puppy dog eyes&quot;&lt;/strong&gt; that us humans instinctively care for[^9]. I&apos;m not entirely sure whether to classify this as artificial selection or interspecies co-evolution, but it&apos;s certain that human preference directly shaped their anatomy and social cognition.&lt;/p&gt;
&lt;p&gt;
&amp;lt;figcaption&amp;gt;A domestic dog gazing upward with expressive eyes. Photo by &amp;lt;a href=&quot;https://unsplash.com/@barkernotbaker&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&amp;gt;James Barker&amp;lt;/a&amp;gt; via Unsplash.&amp;lt;/figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;[^1]: Understanding Evolution, UC Berkeley Museum of Paleontology. &quot;Artificial Selection.&quot; Defines artificial selection as humans &quot;consciously select[ing] for or against particular features in organisms,&quot; using the cauliflower/broccoli/cabbage/kale-from-wild-mustard example and dog breeding as illustrations; note its dog-domestication estimate (20,000–40,000 years ago) is a general-audience figure, distinct from the specific dated evidence in [^3]. &lt;a href=&quot;https://evolution.berkeley.edu/lines-of-evidence/artificial-selection/&quot;&gt;https://evolution.berkeley.edu/lines-of-evidence/artificial-selection/&lt;/a&gt;
[^2]: Peters, J. et al. The biocultural origins and dispersal of domestic chickens. &lt;em&gt;PNAS&lt;/em&gt; 119(24), e2121978119 (2022). A reassessment of chicken remains from &amp;gt;600 archaeological sites in 89 countries, dating unambiguous domestic chickens to ~1650–1250 BCE in Thailand (~3,300–3,700 years ago), and explicitly arguing that older genomic divergence-time estimates (6,200–12,800 years ago) should not be equated with the domestication event itself. &lt;a href=&quot;https://www.pnas.org/doi/10.1073/pnas.2121978119&quot;&gt;https://www.pnas.org/doi/10.1073/pnas.2121978119&lt;/a&gt;
[^3]: Marsh, W. A. et al. Dogs were widely distributed across western Eurasia during the Palaeolithic. &lt;em&gt;Nature&lt;/em&gt; 651, 995–1003 (2026). Nuclear and mitochondrial genomes from canid remains at Pınarbaşı, Türkiye (~15,800 years ago) and Gough&apos;s Cave, UK (~14,300 years ago), analyzed alongside 68 ancient dog and 71 ancient wolf genomes, show a genetically homogeneous dog population already widespread across Europe and Anatolia by the Late Upper Palaeolithic — roughly 4,900 years earlier than the previous confidently-dated evidence (~10,900 years ago), making dogs by far the earliest confirmed domesticated animal. &lt;a href=&quot;https://www.nature.com/articles/s41586-026-10170-x&quot;&gt;https://www.nature.com/articles/s41586-026-10170-x&lt;/a&gt;
[^4]: Rubin, C.-J. et al. Differential gene expression in femoral bone from red junglefowl and domestic chicken, differing for bone phenotypic traits. &lt;em&gt;BMC Genomics&lt;/em&gt; 8, 208 (2007). cDNA-microarray comparison of femoral bone from red junglefowl and White Leghorn hens (intensively selected for egg production) found 779 differentially expressed transcripts, including systematically lower expression of ribosomal-protein and translation-factor genes in the domestic breed. White Leghorns had ~50% higher bone mineral density than junglefowl at peak bone mass (40 weeks), but the paper notes this is followed by the osteoporosis characteristic of egg-laying breeds, driven by medullary bone remodeling during the lay cycle. &lt;a href=&quot;https://link.springer.com/article/10.1186/1471-2164-8-208&quot;&gt;https://link.springer.com/article/10.1186/1471-2164-8-208&lt;/a&gt;
[^5]: Collias, N. E. &amp;amp; Collias, E. C. A field study of the red jungle fowl in North-Central India. &lt;em&gt;The Condor&lt;/em&gt; 69(4), 360–386 (1967). &lt;a href=&quot;https://doi.org/10.2307/1366199&quot;&gt;https://doi.org/10.2307/1366199&lt;/a&gt;
[^6]: Kidd, M. T. &amp;amp; Anderson, K. E. Laying hens in the U.S. market: An appraisal of trends from the beginning of the 20th century to present. &lt;em&gt;Journal of Applied Poultry Research&lt;/em&gt; 28, 771–784 (2019). States domestication occurred &quot;3,500 to 4,000 yr ago in Asia&quot;; Table 4 gives U.S. layer hen-day egg production of 56.9% in 1950 and 82.0% in 2000 (≈208 and ≈299 eggs/year respectively), with age at 50% egg production falling from 182.9 to 138.8 days over the same period. &lt;a href=&quot;https://doi.org/10.3382/japr/pfz043&quot;&gt;https://doi.org/10.3382/japr/pfz043&lt;/a&gt;
[^7]: Büttgen, L., Simianer, H. &amp;amp; Pook, T. Analysis of different genotyping and selection strategies in laying hen breeding programs. &lt;em&gt;Genetics Selection Evolution&lt;/em&gt; 57, 20 (2025). States a conventional layer-breeding generation interval of ~14.5 months (per Sitzenstock et al.), reducible to ~6 months with genomic selection. &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC11974122/&quot;&gt;https://pmc.ncbi.nlm.nih.gov/articles/PMC11974122/&lt;/a&gt;
[^8]: Nagasawa, M. et al. Oxytocin-gaze positive loop and the coevolution of human-dog bonds. &lt;em&gt;Science&lt;/em&gt; 348(6232), 333–336 (2015). Demonstrates that mutual gazing between dogs and their owners increases urinary oxytocin concentrations in both owners and dogs, facilitating interspecies social bonding, a mechanism absent between wolves and hand-raisers. &lt;a href=&quot;https://doi.org/10.1126/science.1261022&quot;&gt;https://doi.org/10.1126/science.1261022&lt;/a&gt;
[^9]: Kaminski, J. et al. Evolution of facial muscle anatomy in dogs. &lt;em&gt;PNAS&lt;/em&gt; 116(29), 14677–14681 (2019). Anatomical comparison showing domestic dogs possess the &lt;em&gt;levator anguli oculi medialis&lt;/em&gt; muscle to raise their inner eyebrows into expressive &quot;puppy dog eyes,&quot; an anatomical feature systematically absent or vestigial in grey wolves. &lt;a href=&quot;https://doi.org/10.1073/pnas.1820653116&quot;&gt;https://doi.org/10.1073/pnas.1820653116&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;style&amp;gt;
.species-compare-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.25rem;
margin: 1.75rem 0 2rem;
}
.species-card {
background: #141416;
border: 1px solid #27272a;
border-radius: 0.75rem;
overflow: hidden;
display: flex;
flex-direction: column;
transition: border-color 0.2s ease;
}
.species-card:hover {
border-color: #3f3f46;
}
.species-card img {
width: 100%;
height: 220px;
object-fit: cover;
display: block;
margin: 0 !important;
border: none !important;
border-radius: 0 !important;
border-bottom: 1px solid #27272a !important;
}
.species-info {
padding: 0.85rem 1rem;
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.species-name {
font-size: 0.95rem;
font-weight: 600;
color: #f4f4f5;
line-height: 1.3;
}
.species-name em {
font-size: 0.825rem;
color: #a1a1aa;
font-style: italic;
font-weight: 400;
}
.species-stat {
font-size: 0.78rem;
font-weight: 500;
color: #fbbf24;
display: inline-flex;
align-items: center;
gap: 0.25rem;
}
.species-credit {
font-size: 0.7rem;
color: #71717a;
line-height: 1.4;
margin-top: 0.2rem;
}
.species-credit a {
color: #a1a1aa !important;
text-decoration: underline !important;
}
.species-credit a:hover {
color: #f4f4f5 !important;
}
.sim-card {
background: #141416;
border: 1px solid #27272a;
border-radius: 0.75rem;
padding: 1.15rem 1.25rem;
margin: 1.25rem 0;
}
.sim-label {
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #a1a1aa;
font-weight: 600;
margin-bottom: 0.5rem;
}
.genome-bar {
display: flex;
width: 100%;
border-radius: 0.45rem;
overflow: hidden;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 0.72rem;
font-weight: 600;
margin: 0.85rem 0 1rem;
border: 1px solid #27272a;
}
.genome-seg {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 0.5rem 0.2rem;
text-align: center;
line-height: 1.2;
}
.seg-range {
font-size: 10px;
opacity: 0.75;
}
.genome-seg-e {
flex: 3;
background: rgba(245, 158, 11, 0.2);
color: #fbbf24;
border-right: 1px solid rgba(245, 158, 11, 0.35);
}
.genome-seg-junk1 {
flex: 7;
background: #18181b;
color: #71717a;
border-right: 1px solid #27272a;
}
.genome-seg-b {
flex: 3;
background: rgba(59, 130, 246, 0.2);
color: #60a5fa;
border-right: 1px solid rgba(59, 130, 246, 0.35);
}
.genome-seg-junk2 {
flex: 7;
background: #18181b;
color: #71717a;
border-right: 1px solid #27272a;
}
.genome-seg-n {
flex: 3;
background: rgba(16, 185, 129, 0.2);
color: #34d399;
border-right: 1px solid rgba(16, 185, 129, 0.35);
}
.genome-seg-junk3 {
flex: 9;
background: #18181b;
color: #71717a;
}
.gene-pill-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 0.65rem;
margin-top: 0.25rem;
}
.gene-pill {
padding: 0.55rem 0.75rem;
border-radius: 0.45rem;
border: 1px solid #27272a;
background: #18181b;
font-size: 0.8rem;
}
.gene-pill strong {
display: block;
margin-bottom: 0.15rem;
font-weight: 600;
}
.gene-pill span {
color: #a1a1aa;
font-size: 0.75rem;
}
.gene-pill-e { border-color: rgba(245, 158, 11, 0.35); background: rgba(245, 158, 11, 0.07); }
.gene-pill-e strong { color: #fbbf24; }
.gene-pill-b { border-color: rgba(59, 130, 246, 0.35); background: rgba(59, 130, 246, 0.07); }
.gene-pill-b strong { color: #60a5fa; }
.gene-pill-n { border-color: rgba(16, 185, 129, 0.35); background: rgba(16, 185, 129, 0.07); }
.gene-pill-n strong { color: #34d399; }
.bitstring-row {
display: flex;
align-items: center;
gap: 0.75rem;
flex-wrap: wrap;
margin: 0.5rem 0;
}
.bitstring-visual {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
letter-spacing: 0.06em;
font-size: 0.88rem;
background: #0d0d0f;
padding: 0.55rem 0.75rem;
border-radius: 0.45rem;
border: 1px solid #27272a;
overflow-x: auto;
white-space: nowrap;
}
.bit-e { color: #fbbf24; font-weight: 700; background: rgba(245, 158, 11, 0.15); padding: 0.1rem 0.25rem; border-radius: 0.2rem; }
.bit-b { color: #60a5fa; font-weight: 700; background: rgba(59, 130, 246, 0.15); padding: 0.1rem 0.25rem; border-radius: 0.2rem; }
.bit-n { color: #34d399; font-weight: 700; background: rgba(16, 185, 129, 0.15); padding: 0.1rem 0.25rem; border-radius: 0.2rem; }
.bit-junk { color: #52525b; }
.bit-mutated { color: #f87171; font-weight: 700; background: rgba(239, 68, 68, 0.25); padding: 0.1rem 0.25rem; border-radius: 0.2rem; }
.pipeline-mono {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 0.76rem;
overflow-x: auto;
white-space: pre;
color: #e4e4e7;
line-height: 1.6;
letter-spacing: -0.01em;
}
.parent1-accent { color: #60a5fa; }
.parent2-accent { color: #c084fc; }
.formula-header {
text-align: center;
padding-bottom: 0.75rem;
border-bottom: 1px solid #27272a;
margin-bottom: 0.75rem;
}
.formula-text {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 1.15rem;
font-weight: 700;
color: #fca5a5;
letter-spacing: 0.03em;
display: block;
margin: 0.25rem 0 0.35rem;
}
.selection-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 0.65rem;
}
.selection-card {
padding: 0.65rem 0.85rem;
border-radius: 0.5rem;
background: #18181b;
border: 1px solid #27272a;
}
.selection-card-natural {
border-left: 3px solid #10b981;
}
.selection-card-artificial {
border-left: 3px solid #f43f5e;
}
.selection-title-natural {
font-size: 0.75rem;
font-weight: 600;
color: #34d399;
display: block;
margin-bottom: 0.25rem;
}
.selection-title-artificial {
font-size: 0.75rem;
font-weight: 600;
color: #fb7185;
display: block;
margin-bottom: 0.25rem;
}
.selection-values {
font-size: 0.85rem;
color: #e4e4e7;
line-height: 1.4;
}
.selection-values p {
margin: 0.15rem 0;
}
.formula-header .katex-display {
margin: 0.5rem 0;
}&lt;/p&gt;
&lt;p&gt;article h4 {
font-size: 0.95rem;
font-weight: 600;
color: #e4e4e7;
margin-top: 1.25rem;
margin-bottom: 0.35rem;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Falsifiability</title><link>https://kaushitha.xyz/notes/falsifiability/</link><guid isPermaLink="true">https://kaushitha.xyz/notes/falsifiability/</guid><description>Why Having &apos;Evidence&apos; Isn&apos;t Enough</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In the information age, the burden of deciding what is true falls entirely on the reader. Search for any topic, and you will instantly find a dozen videos and articles making contradictory claims, all backed by their own version of &apos;evidence.&apos; So, how do we choose?&lt;/p&gt;
&lt;p&gt;Concretely, let’s take a common example: “faith-healing” vs “medicine”. At face value, they start exactly the same way. A faith healer promises, &quot;If you truly believe, I can cure your illness.&quot; A pharmaceutical company essentially makes the same promise, though usually in some clinical jargon like &quot;Patients taking 500mg of Drug X clear the pathogen 40% faster.&quot; By the time the media summarizes the medical study into a catchy headline (&quot;Drug X Cures Illness&quot;), the two claims look identical. Both sides say they have a cure.&lt;/p&gt;
&lt;p&gt;Now we have two claims, naturally we will ask for evidence from both groups. The faith healer provides evidence for the claim, so do the medical scientists. Let’s take a common template of evidence provided by a faith healer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The setup will be an audience member, who is visibly in some pain or has a severe condition that can be noticed by the audience and the viewer.&lt;/li&gt;
&lt;li&gt;The faith healer will then ask some questions from the patient, establishing that yes indeed the person is in some pain or condition.&lt;/li&gt;
&lt;li&gt;Next, the healing process takes place. Either the patient prays in front of the healer, or the healer prays, lays hands on the patient, and declares the patient to be free from the pain or the disease.&lt;/li&gt;
&lt;li&gt;The person says they feel better, cries, or performs an action (like running across the stage). The crowd cheers, validating the event emotionally.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you open YouTube and search for faith healing, you will find thousands of videos presenting the same kind of &apos;evidence&apos; as above[^1][^2][^3]. The medical world, on the other hand, offers a boring alternative. It won’t be as interesting as watching that video, and sadly the burden of analyzing the results is again on the reader which is incredibly time-consuming. Let’s now consider a common template of evidence provided for drug testing for a disease:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The scientists first state the experimental setup.&lt;/li&gt;
&lt;li&gt;N number of patients are chosen for the clinical trial.&lt;/li&gt;
&lt;li&gt;The group is divided into two, the treatment group who actually gets the drug, and the control group who gets a placebo pill.&lt;/li&gt;
&lt;li&gt;To eliminate bias, the doctors aren’t allowed to know who is getting the actual pill and who gets the placebo.&lt;/li&gt;
&lt;li&gt;Then the results from this trial are presented, the treatment group is free from the disease 40% faster than the control group on average.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now we have two competing claims, both armed with evidence. Which is true? Is it possible that both are correct? When people watch a faith healer, a common reaction is, &apos;With all this evidence, there must be some truth to it.&apos; But if we look closely, only one of these groups is actually taking a risk. Only one of them provides a falsifiable experiment. A falsifiable experiment is one which provides a possibility to falsify its hypothesis (or the claims here). This concept of falsifiability was first introduced by philosopher Karl Popper in his 1959 book &lt;em&gt;The Logic of Scientific Discovery&lt;/em&gt;[^4].&lt;/p&gt;
&lt;p&gt;The faith healer&apos;s evidence is not an experiment at all, it is simply a demonstration of an unfalsifiable claim. What happens when a healing doesn’t work? Are the patients being blamed for not having faith? Or was it some other curse? Or was it another spirit that blocked the healing process? Or did they not focus enough when meditating? There will always be a reason for a false case. Typically, the healer themselves will introduce an immunizing stratagem (ad hoc hypotheses) [^4] even before the demonstration is done. There’s no scenario that their claim can be falsified.&lt;/p&gt;
&lt;p&gt;Now, look at the medical trial. This is a truly falsifiable experiment. If the drug fails to beat the placebo, the hypothesis is dead and the scientists must admit they were wrong. Because the claim takes the risk of being proven false, the data it generates is actual scientific evidence. And when a claim survives enough of these brutal, falsifiable tests, it is no longer just a guess. It becomes a scientific theory[^5] which is the absolute highest standard of well substantiated correctness we possess.&lt;/p&gt;
&lt;p&gt;[^1]: Claimed Miracle: Patient Discarding Crutches After Faith Healing. &lt;a href=&quot;https://www.youtube.com/watch?v=BQqCnpUx8o8&quot;&gt;YouTube&lt;/a&gt;
[^2]: Claimed Miracle: Instant Relief from Osteoarthritis. &lt;a href=&quot;https://www.youtube.com/watch?v=7ArdJyeg47g&quot;&gt;YouTube&lt;/a&gt;
[^3]: Alternative Healing Claim: Lymphoma Remission Attributed to Sathara Kamatahan Meditation. &lt;a href=&quot;https://www.youtube.com/watch?v=INc4DoOBJd4&quot;&gt;YouTube&lt;/a&gt;
[^4]: Popper, Karl. (1959). Chapter 4: &quot;Falsifiability&quot; in &lt;em&gt;The Logic of Scientific Discovery&lt;/em&gt;. London: Hutchinson &amp;amp; Co. (Originally published in German as &lt;em&gt;Logik der Forschung&lt;/em&gt;, 1934).
[^5]: National Academy of Sciences. (2008). &lt;em&gt;Science, Evolution, and Creationism&lt;/em&gt;. Washington, DC: The National Academies Press.&lt;/p&gt;
</content:encoded></item><item><title>Old PC as a Server</title><link>https://kaushitha.xyz/notes/old-pc-as-a-server/</link><guid isPermaLink="true">https://kaushitha.xyz/notes/old-pc-as-a-server/</guid><description>Documenting my current home server setup built from older, slightly compromised hardware.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Documenting my current home server setup. I threw this together using some older, slightly compromised hardware, but it’s handling everything surprisingly well for over 1.5 years now. Keeping this log here for my own reference.&lt;/p&gt;
&lt;h2&gt;The Hardware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Motherboard&lt;/strong&gt;: ASUS H81M-C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPU&lt;/strong&gt;: Intel Core i3-4150 @ 3.50GHz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM&lt;/strong&gt;: 8GB DDR3 1600 MHz (Samsung M378B1G73BH0-CK0)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: 3x 4TB Seagate Ironwolf NAS drives&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The constraints&lt;/h3&gt;
&lt;p&gt;One of the DIMM slots on the board is totally dead. This means no dual-channel memory, and I’m hard-capped at an 8GB maximum.&lt;/p&gt;
&lt;p&gt;Power was also an issue. The older PSU only had two SATA power connectors, but I needed to spin up three drives. I had to tap into the available Molex connectors using a Molex-to-SATA adapter. &lt;strong&gt;Note&lt;/strong&gt;: Never buy injection-molded Molex adapters. They are a massive fire hazard. Always buy the crimped ones.&lt;/p&gt;
&lt;h2&gt;OS and File System&lt;/h2&gt;
&lt;p&gt;I&apos;m running &lt;strong&gt;OpenMediaVault (OMV)&lt;/strong&gt; as the base OS.&lt;/p&gt;
&lt;p&gt;For the file system, I went with &lt;strong&gt;BTRFS&lt;/strong&gt;. I initially looked at ZFS, but without ECC RAM, a flipped bit can silently corrupt an entire ZFS pool. Since I&apos;m stuck with standard, non-ECC DDR3 memory. Can&apos;t exactly remember why I went with BTRFS, should have taken a note back then.&lt;/p&gt;
&lt;p&gt;I split the storage logically based on how much I care about the data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;8TB on RAID 1 (Mirroring - 4TB Effective)&lt;/strong&gt;: This holds the critical data, photos, documents. Note: I should backup this to an external drive, but haven&apos;t gotten around to it yet. Only recently I realized that RAID is not a backup, it&apos;s just a redundancy. Also, if one goes out the probability of the other one failing is higher than usual. If one goes out due to a power surge, the other one might go out too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4TB (No RAID)&lt;/strong&gt;: This is purely for media (movies, music streaming). If the drive dies, it’s an annoyance only, probably can redownload everything in about a couple of weeks. But in the long term, need to backup both separately.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Services&lt;/h2&gt;
&lt;p&gt;Surprisingly the setup is comfortably handling a pretty heavy self-hosted stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Jellyfin&lt;/strong&gt;: Handles concurrent media streaming for 3+ users without any hiccups. I had turned off transcoding initially, direct playing works well with modern client devices. Turned it on recently, didn&apos;t really test it well. I&apos;m using streamyfin as the movie/tv client and manet for music on my phone. For the tv, the official jellyfin client works well. Currently, 500+ Movies and 50+ TV shows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jellyseerr&lt;/strong&gt;: Allows users to discover and request media, integrating smoothly with the local media library pipeline.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Immich&lt;/strong&gt;: Photo backup and management. Works great! Stopped using Google Photos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NextCloud&lt;/strong&gt;: Serving as a complete Google Drive replacement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebDAV&lt;/strong&gt;: NextCloud provides the WebDAV backend for my Zotero integration to sync all my research and PDFs. Zotero is now my go to pdf manager. The annotation tool is much better than even dedicated pdf viewers. It keeps the annotations and the original pdf separately, so there&apos;s no need to upload and download large books when you annotate them.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Why Averages are Evolutionary Dead Ends</title><link>https://kaushitha.xyz/notes/why-averages-are-evolutionary-dead-ends/</link><guid isPermaLink="true">https://kaushitha.xyz/notes/why-averages-are-evolutionary-dead-ends/</guid><description>Why blending inheritance and averages collapse variation — notes on genetics and evolutionary algorithms.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A long time ago, we thought that inheritance worked like mixing paints. Crossover took two fit parents and mixed their qualities together to produce a better offspring. That’s a common misconception about evolution, that I too had pictured crossover. It’s like if you mix two paints red and white, you get pink. Now the new color born is pink, and if you mix it again with white we get lighter pink, eventually we get pure white. If crossover worked like this, variation among the population would be lost within a few generations, everyone would look the same. For evolution, everyone looking the same means that process stops entirely. There’s nothing natural selection can filter out. Natural Selection relies on variation among the individuals (diversity). If everyone blends into the average, there’s nothing left to select for or against.&lt;/p&gt;
&lt;p&gt;Modern genetics have proved that inheritance is not blending two qualities. Genes act like a deck of cards, and crossover is just shuffling the cards. The cards will mix, but not blend. Imagine if numbers were blended when crossover, after some generations all the cards would be some around a numerical average (eg: ~7).  So the point is that an offspring will be a combination of discrete genetic units derived from parents and not an average. That’s why in the bit string analogy, I mentioned that the offspring should have discrete 1s or 0s and not a floating point (but a lot of algorithms use floating points with high mutation rates to prevent the effect of averaging).&lt;/p&gt;
&lt;p&gt;An effect of this non-blending crossover is the preservation of variance. A trait can be &quot;hidden&quot; (recessive) in one generation and re-emerge fully formed in the next. A child can have blue eyes like their grandfather, even if both parents have brown eyes. This proves the &quot;blue eye&quot; packet of information was passed down intact, not averaged out by the &quot;brown eye&quot; information. Finally this makes sure that Natural Selection has some variation to work with even when the environmental conditions rapidly change.&lt;/p&gt;
&lt;h2&gt;Note on evolutionary algorithms&lt;/h2&gt;
&lt;p&gt;In Machine Learning terms, &quot;blending&quot; collapses the search space to a single point (the mean). Evolution requires a broad distribution (high variance) to explore the &quot;fitness landscape&quot; effectively. If a population averages out too quickly, the algorithm gets stuck in a &quot;local optimum&quot; and we’ll end up with a sub-optimal solution.&lt;/p&gt;
&lt;h2&gt;Another note on evolutionary algorithms with LLMs&lt;/h2&gt;
&lt;p&gt;A lot of newer approaches use LLMs as a mutation and crossover operators. My hypothesis is that while mutation works well, crossover might converge to an average very quickly. More work should be done to confirm that it does not blend two parents but discretely mix like a deck of cards.&lt;/p&gt;
</content:encoded></item><item><title>Why Evolution Cannot Look Back (or Forward)</title><link>https://kaushitha.xyz/notes/why-evolution-cannot-look-back/</link><guid isPermaLink="true">https://kaushitha.xyz/notes/why-evolution-cannot-look-back/</guid><description>Notes on how evolution is a blind, cumulative process and cannot &apos;undo&apos; prior design decisions.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Think of the genotype as a long bit string (this is oversimplification, but we can assume this for now). Let’s also assume that there is an operator which operates on this string. The fascinating thing about this operator is that it has no idea what happens in the real world (phenotype) once they change a bit on this bit string. The operator has two operations, one which it frequently uses &lt;strong&gt;“crossover”&lt;/strong&gt; or “recombination” operation, and another very rarely used &lt;strong&gt;‘mutation’&lt;/strong&gt; operation. When sexual reproduction occurs in the real world (natural selection, which is not exactly the survival of the fittest for sexually reproducing organisms), it sends two of these ‘fit’ bit strings back to the operator. The operator, completely blind to how they were selected or why they were fit, will just recombine these two strings. (Also note, it cannot recombine with floating numbers, it has to be a bit; TBD later). Sometimes, very rarely, the operator likes to do an experiment: after recombining the strings, it will randomly flip a bit (or bits). This is a mutation. The operator has no explanation for what that flipped bit would produce in the actual world. The operator then sends back this new string, natural selection does its job, returns back two more strings, and the process goes on.&lt;/p&gt;
&lt;p&gt;This feels like a very random process where something like a human being becoming the outcome is almost unfathomable. Clearly, human beings are so complicated; how would a simple crossover or mutation operation result in such a sophisticated design? It looks random in one step, and it still looks somewhat random after ten generations. But with millions of generations and an ever-growing population size, it suddenly becomes intuitive.  Crossover helps to find which qualities of the current population are better and helps preserve it for the future. While mutation explores new qualities (most of which will be pretty bad) natural selection makes sure that if a mutation results in an improvement in survival (or more correctly, higher rates of reproduction), it will be carried on to the next generation. This &lt;strong&gt;Cumulative Selection&lt;/strong&gt; over long time spans with a large, diverse population results in beings that look like the product of intelligent design.&lt;/p&gt;
&lt;p&gt;Another interesting thing to note is how natural selection is not constant, it is just a record of whoever could reproduce given the current environment. There would have been a crazy winter where a lot of fitter beings who survived harsh summers would have died. The natural selection which once favored summer-fit beings now favors winter-fit ones. Because the selection criteria shift alongside changing environments, the &quot;design&quot; is constantly being optimized for the &quot;now,&quot; with no intelligent architect overseeing historical fitness.&lt;/p&gt;
&lt;p&gt;Because evolution is blind and cumulative, it frequently gets stuck with some bad quality over time, and it cannot go back and &quot;refactor&quot; its code. If a design becomes flawed over tens of thousands of generations, there is effectively no going back. Evolution cannot hit &quot;undo&quot; or go back to fix a fundamental “error.” I say error here, but this design in the first place occurred only because those who had this error reproduced more. Take the human eye (the Axial Twist Theory). Our retinas are actually &quot;inside out.&quot; The light-sensitive cells are behind the neural wiring, creating a blind spot where the nerves exit the eye. Evolution can&apos;t go back to &quot;Version 1.0&quot; and re-wire the eye; it can only work with what it has already committed to. (More correctly, there still is a very minute possibility that some mutation can re-wire the eye)&lt;/p&gt;
&lt;p&gt;We’ve seen the diagram of a chimpanzee slowly standing up to become a human. This is somewhat misleading as it implies a straight, intentional line. Where were all the mutations that went wrong? What we don’t see in that image are the massive branches which were pruned. We are simply the branch that was not cut off!&lt;/p&gt;
</content:encoded></item></channel></rss>