Jasnoća Kroz Fokus

“Najmoćniji eksperimenti nisu oni koji prikupljaju najviše podataka --- već oni koji postavljaju najjasnije pitanje s najmanje koda.”
Ovaj dokument nije vodič za kupnju senzora ili preuzimanje aplikacija. To je manifest za biohakerke koje odbijaju utonuti u buci. Ako ste ikada provele 40 sati konfigurirajući pipeline između Fitbita i Notion-a, samo da biste shvatili da vam podaci nisu rekli ništa novo --- vi ste na pravom mjestu. Odbijamo kompleksnost kao vrlinu. Zahtijevamo matematičku rigoroznost, arhitektonsku otpornost i minimalni kod. Tretiramo vašu biologiju ne kao crnu kutiju koju treba iskopati, već kao sustav koji treba razumjeti --- kroz elegantne, dokazive i ultra-efikasne instrumente.
Ovo je filozofija Jasnoće Kroz Fokus: da prava uvid nastaje ne iz volumena, već iz preciznosti. Iz smanjivanja varijabli do njihove suštine. Iz koda koji je toliko jednostavan da ga može potvrditi jedna osoba u manje od 10 minuta. Iz sustava koji rade godinama bez kvara, jer su izgrađeni na matematičkoj istini --- ne na hackovima.
Pišemo ovo za DIY biohakerke: one koje grade vlastiti glukomjer iz Raspberry Pi-a i testnih traka. One koje kalibriraju svoje praćenje sna pomoću aktigrafije i testova kortizola u slinu. One koje znaju da najcjenjenija točka podataka nije ona s najvećom rezolucijom --- već ona koja mijenja vaše ponašanje.
Napravimo sustave koji trajaju. Sustave koji ne zahtijevaju doktorate za održavanje. Sustave kod kojih je kod kraći od vaše hipoteze.
Problem: Prekomjerna količina podataka, glodanje uvidima
Moderni biohacking utonuće u podacima.
Praćenje:
- Varijabilnosti srčanog ritma (HRV) s vašeg Oure prstena
- Razina glukoze putem kontinuiranih monitora (CGM)
- Stadija sna preko nosivih uređaja
- Broj koraka, VO₂ max, temperatura kože, raznolikost crijevne mikrobiome putem testova stolice
- Izloženost svjetlosti preko mjerača plave svjetlosti
- Procjene raspoloženja preko 7-točkastih Likert skala
- Brzina disanja, koherencija HRV, čak i alfa valovi izvedeni iz EEG-a
I ipak --- što znate?
Imate 12 ploča. 37 CSV datoteka. Notion bazu s preko 400 unosa. Proveli ste 217 sati prikupljanjem podataka u posljednjoj godini. Ali kvaliteta sna? I dalje nestabilna. Vaši padovi energije? Nema objašnjenja. Vaši napadi anksioznosti? Ništa nije pronađeno.
Ovo je paradoks prekomjerne količine podataka: više podataka → manje jasnoće. Više alata → manje uvida.
Zašto?
Jer podaci bez strukture su buka.
Jer kompleksni sustavi skrivaju uzročnost.
Jer ne možete optimizirati ono što ne možete modelirati.
Prosječni biohaker provele 85% svog vremena upravljanjem alatima, a ne interpretirajući rezultate. Oni su inženjeri cjevovoda podataka --- ne znanstvenici sebe.
Predlažemo radikalnu inverziju: Zaustavite prikupljanje više. Počnite graditi manje.
Temeljni pogled 1: Fundamentalna matematička istina --- Kod mora biti izveden iz dokazivo točnih temelja
Zabluda „Radi na mom računalu“
Biohakeri često grade sustave koji rade --- dok ne prestanu.
„Moj model glukoze predviđao je moj pad energije nakon ručka tijekom tri tjedna. Zatim je počeo davati NaN vrijednosti nakon ažuriranja firmvera.“
Ovo nije anomalija. To je neizbježan rezultat ad-hoc koda --- skripti sastavljene sa Stack Overflowa, kopiranih TensorFlow modela, neispravnih statističkih pretpostavki.
U softverskom inženjerstvu imamo izraz za ovo: tehnički dug. U biohackingu? Zovemo to „eksperimentalna buka“.
Ali ovo je istina: biološki sustavi poštujemo matematiku. Metabolizam glukoze slijedi Michaelis-Menten kinetiku. Circadijani ritmovi su podvrgnuti diferencijalnim jednadžbama. HRV je proces vremenskih serija s autokorelacijom. Ovo nisu metafore --- to su dokazive, izvedive istine.
Ako vaš kod ne odražava te istine, to nije model. To je srećna pogodba.
Primjer: Model predviđanja glukoze
Recimo da želite predvidjeti vaš 2-satni porast glukoze nakon jela banane.
Loš pristup:
# LOŠ: Heuristički, bez matematike
def predict_glucose(banana_weight):
if banana_weight > 100:
return 120 + random.uniform(-15, 15)
else:
return 95 + random.uniform(-10, 10)
Ovo nije znanost. To je astrologija s CSV-om.
Dobar pristup:
Koristite Model glukoze-insulina (GIM), pojednostavljenu verziju Bergmanovog minimalnog modela:
gdje:
- : koncentracija glukoze u plazmi
- : koncentracija insulina
- : stopa pojavljivanja glukoze iz obroka (izvedena iz sadržaja ugljikohidrata)
- : bazalna glukoza
- : fiziološke konstante (kalibrirane putem n=1 eksperimenata)
Vaš kod mora implementirati ove jednadžbe --- ne pogađati ih.
Matematička istina je jedini otporan temelj u biohackingu.
Ako je vaš model izveden iz prvih principa, on će generalizirati kroz obroke, dane i čak pojedince --- s pravilnom kalibracijom. Ako ne? Pada s idućom bananom.
Zašto ovo važi za DIY biohakerke
- Ne trebate doktorat da izvedete ove jednadžbe.
- Zahtijevate da ih razumijete.
- Open-source biblioteke poput PyGIM nude potvrđene implementacije.
- Vaš kod postaje provjerljiv. Ne samo „radi“, već „evo zašto radi.“
Ovo je prvi stub: Kod mora biti matematički izveden. Ne empirijski hackan.
Temeljni pogled 2: Arhitektonska otpornost --- Tihi zalogaj desetljećnih sustava
Vaš sustav treba preživjeti vaš interes
Većina biohakerskih postavki umre unutar 6 mjeseci.
- Baterija senzora se isprazni.
- API se promijeni.
- Python skripta se slomi nakon ažuriranja OS-a.
- Zaboravite kako je pokrenuti.
Ovo nije neuspjeh. To je dizajn.
Zahtijevamo arhitektonsku otpornost: sustave koji rade 5, 10, čak i 20 godina bez intervencije.
Kako?
Načelo 1: Nema vanjskih ovisnosti
- Izbjegavajte cloud API-e (npr. Google Fit, Apple Health).
- Izbjegavajte vlasničke SDK-e.
- Koristite otvorenu opremu (npr. OpenBCI, senzori na osnovi Arduino).
- Spremite podatke lokalno na SD kartice ili enkriptirane USB drive.
Vaši podaci su vaš najcjenjeniji resurs. Ne predajte njihovu skrb korporaciji koja može prestati u 2 godine.
Načelo 2: Stateless, idempotentna obrada
Vaš analitički pipeline mora biti idempotentan: ponovno pokretanje daje isti rezultat.
# DOBRO: idempotentna skripta
./analyze --input /data/glucose_2024.csv --output /results/insulin_response.json
# LOŠ: stanje-ovisna, krhka
./analyze --token abc123 --last-run 2024-05-17
Ako vaša skripta padne, možete je ponovno pokrenuti iz sirovih podataka. Nema skrivenog stanja. Nema migracija baze.
Načelo 3: Hardware Abstraction Layer (HAL)
Izgradite HAL između vaših senzora i koda.
# Apstraktni sučelje senzora
class GlucoseSensor:
def read(self): raise NotImplementedError
class NovaGlucoseMeter(GlucoseSensor):
def read(self):
# Komunicirajte s serijskim priključkom
return float(serial.read().strip())
# Vaš model zna samo: GlucoseSensor.read()
Sada, ako vam Nova mjerač umre? Zamijenite ga FreeStyle Libre čitačem. Promijenite jednu klasu. Ne 12 skripti.
Načelo 4: Nula grešaka u izvođenju
Vaš sustav ne smije nikada pasti tijekom prikupljanja podataka. Nikad.
- Koristite konačne stanje mašine (FSM) za čitanje senzora.
- Obavijenite svaku I/O operaciju u try/except s gracioznom degradacijom.
- Dnevnik grešaka u rotirajuću datoteku --- ne stdout.
# Primjer: Robustna petlja čitanja senzora
def run_sensor_loop(sensor, log_file):
while True:
try:
value = sensor.read()
with open(log_file, 'a') as f:
f.write(f"{time.time()},{value}\n")
except Exception as e:
log_error(e, log_file)
time.sleep(60) # Pričekaj i pokušaj ponovo
time.sleep(30) # Uzorak svakih 30s
Otpornost nije značajka. To je osnova.
Vaš sustav mora biti poput pacemakera: tihi, pouzdan, neuništiv.
Temeljni pogled 3: Učinkovitost i minimalizam resursa --- Zlatni standard
CPU, memorija, snaga --- Vaša tri najcjenjenijeg resursa
Mislite da je vaš Raspberry Pi 4 „moćan“. Nije.
Koristi 3,5W kada je u stanju mirovanja. Vaš telefon? 0,8W u dubokom spavanju.
Vaš laptop? 15--45W.
Ako pokrenete puni Linux desktop s Dockerom, Node.js-om i 12 kartica u pregledniku da pratite glukozu --- trošite energiju.
Ali važnije: trošite kognitivni kapacitet.
Hijerarhija učinkovitosti
| Razina | Upotreba resursa | Kognitivno opterećenje | Primjer |
|---|---|---|---|
| 1 (najgora) | Visok CPU, visoka memorija, ovisnost o cloudu | Vrlo visoko | Dockerizirani Python + Grafana + InfluxDB |
| 2 | Srednji CPU, lokalna baza | Srednje | Python skripta s SQLite + Matplotlib |
| 3 (idealna) | Niski CPU, niska memorija, bez ovisnosti | Minimalno | C program koji čita serijski port → CSV → gnuplot |
Studija slučaja: Sustav praćenja glukoze
| Pristup | Upotreba CPU-a | Memorija | Vrijeme pokretanja | Troškovi održavanja |
|---|---|---|---|---|
| Docker + Python + Grafana | 45% CPU, 800MB RAM | 12 minuta | $300/godinu (cloud) | |
| C program + SQLite + gnuplot | 2% CPU, 1,5MB RAM | 3 sekunde | $0/godinu, 2 sata/godinu održavanja |
C verzija:
- Radi na $5 ESP32.
- Dnevnik na SD karticu.
- Nema potrebe za internetom.
- Može se kompilirati jednom, deployat zauvijek.
Učinkovitost nije o uštedi centa. To je o sačuvanju vaše pažnje.
Kada vaš sustav koristi 2% CPU, zaboravite da postoji. Kada koristi 45%, postaje posao.
Učinkovitost snage = Konzistentnost ponašanja
Ako vaš uređaj isprazni bateriju za 2 dana, nećete ga nositi. Ako traje 6 mjeseci na jednoj bateriji? Zaboravite da je tu --- i vaši podaci postaju prirodni, a ne prisiljeni.
Minimalna upotreba resursa → veća pridržavanja → bolji podaci.
Temeljni pogled 4: Minimalni kod i elegantni sustavi --- Proksi za ljudsku razumijevanje
Broj linija koda (LoC) kao moralna mjera
Ne mjerimo kod po tome koliko ste napisali. Mjerimo ga po koliko vam je bilo potrebno.
„Najbolji kod je kod koji nikad niste napisali.“
U biohackingu, svaka linija koda je potencijalna točka greške. Svaka ovisnost je skriveni rizik. Svaka biblioteka dodaje entropiju.
Načelo elegantnog sustava
Elegantan sustav:
- Ima manje od 200 linija koda ukupno.
- Koristi nulte vanjske biblioteke (osim standardnih C/Python).
- Može se ispisati na jednoj stranici.
- Razumije ga 16-godišnji s osnovnim programerskim vještinama.
Primjer: Potpuni analizator kvalitete sna (187 linija)
// sleep_analyzer.c --- 187 LOC, bez ovisnosti osim stdio i math.h
#include <stdio.h>
#include <math.h>
#define SAMPLE_RATE 30 // sekundi
#define MIN_SLEEP_HRS 4
int main() {
FILE *fp = fopen("actigraphy.csv", "r");
if (!fp) { printf("Nema podataka\n"); return 1; }
double total_rest = 0, motion_sum = 0;
int samples = 0, sleep_start = -1;
char line[256];
while (fgets(line, sizeof(line), fp)) {
double motion;
sscanf(line, "%lf", &motion);
motion_sum += motion;
samples++;
// Jednostavan prag: kretanje < 0.2 = spavanje
if (motion < 0.2 && sleep_start == -1) {
sleep_start = samples;
} else if (motion >= 0.2 && sleep_start != -1) {
total_rest += (samples - sleep_start) * SAMPLE_RATE;
sleep_start = -1;
}
}
if (sleep_start != -1) {
total_rest += (samples - sleep_start) * SAMPLE_RATE;
}
double sleep_hours = total_rest / 3600.0;
printf("Trajanje sna: %.2f sati\n", sleep_hours);
if (sleep_hours >= MIN_SLEEP_HRS) {
printf("✅ Dovoljno sna\n");
} else {
printf("⚠️ Nedostatak sna\n");
}
return 0;
}
To je sve.
- Nema ML.
- Nema oblaka.
- Nema API ključeva.
- Nema baze.
- Samo sirovi podaci o kretanju → procjena sna.
Možete pročitati to u 3 minute. Možete potvrditi logiku za 5.
Možete ponovo izgraditi to od nule nakon wipea sustava.
Ovo je elegancija. Ovo je jasnoća.
Pravilo 200-LoC
Primiti ovo pravilo:
Ako vaš biohakerski sustav premašuje 200 linija koda, ne gradite alat --- vi gradite projekt.
Pitajte se:
- Možete li objasniti ovaj sustav vašoj 80-godišnjoj majci?
- Možete li ga ponovo izgraditi s $5 mikrokontrolerom i bilježnicom?
- Ako bi nestala struja 3 mjeseca, mogli biste li ga ponovo pokrenuti bez Googlea?
Ako ne --- pojednostavite.
Framework Jasnoće: 4-stupnjevni protokol za DIY biohakerke
Sada sintetiziramo četiri temeljna pogleda u praktični protokol.
Korak 1: Definirajte svoje pitanje s matematičkom preciznošću
„Želim znati utječe li moja jutarnja kava na moju popodnevnu energiju.“
Loše pitanje: „Da li kava me umara?“
Dobro pitanje:
„Da li unos 150mg kofeina u 8 sati smanjuje nagib popodnevnog pada glukoze za više od 15% tijekom 3 uzastopna dana, kontrolirajući trajanje sna i sastav obroka?“
Ovo je testabilno. Ima:
- ovisnu varijablu (nagib pada glukoze)
- nezavisnu varijablu (dozu kofeina)
- kontrolne varijable (san, obroci)
- kvantificiran prag (>15%)
Napišite ovo. Ispišite. Zalijepite na monitor.
Korak 2: Dizajnirajte minimalnu instrumentaciju
Odaberite jedan senzor koji direktno mjeri vašu varijablu.
- Glukoza? Koristite CGM (FreeStyle Libre).
- San? Koristite aktigrafski trak (npr. Oura ili DIY akcelerometar).
- Raspoloženje? Koristite aplikaciju za ocjenu 1--5 s vremenskom oznakom (bez napredne NLP).
Ne dodajte senzore jer su zanimljivi. Dodajte ih samo ako odgovaraju na vaše pitanje.
Jedan senzor. Jedna varijabla. Jedna hipoteza.
Korak 3: Izgradite kod s matematičkom cjelovitošću
- Izvedite svoj model iz prvih principa.
- Ne koristite vanjske biblioteke osim standardnih math/IO.
- Implementirajte stanje mašine za pouzdanost.
- Dnevnik sirovih podataka u CSV.
Koristite ovaj predložak:
/data/
├── raw/ # Sirom podataka senzora (CSV)
├── model.c # 200 LOC maks, matematički
├── analyze.sh # Pokreće model → izlaz JSON
└── results/ # Izlaz: sleep_hours.json, glucose_slope.csv
Korak 4: Pokrenite n=1 eksperimente s protokolnom rigoroznošću
- Kontrolne varijable: san, obroci, vježbanje.
- Slepe proba: Ne znate je li kava ili placebo.
- Trajanje: Minimalno 7 dana po uvjetu.
- Dnevnik podataka: Svaki mjerenje, svaki put.
Koristite fizički dnevnik. Pišite rukom. Datum svakog unosa.
Vaša memorija je pristrana. Vaš senzor nije.
Korak 5: Analizirajte s jednostavnošću vizualizacije
Koristite gnuplot ili matplotlib za crtanje sirovih podataka.
gnuplot -e "set terminal png; set output 'glucose_slope.png'; plot 'results/glucose.csv' using 1:2 with lines"
Nema ploča. Nema AI. Samo trendovi.
Pitajte:
- Postoji li vidljiv uzorak?
- Da li podaci premašuju vaš prag?
Ako da → djelujte.
Ako ne → usavršite hipotezu.
Korak 6: Arhivirajte i ponovno koristite
- Stisnite podatke u jednu
.tar.gzdatoteku. - Spremite na enkriptirani USB.
- Označite: „Kofein-Glukoza eksperiment #3 --- 2024-06-15“
Vaši podaci su vaša baština. Tretirajte ih kao znanstveni uzorak.
Praktična implementacija: Izgradite svoj prvi sustav Jasnoće (korak po korak)
Projekt: „Utječe li večernja svjetlost na moj početak sna?“
Korak 1: Pitanje
Da li izloženost >50 lux plave svjetlosti nakon 21 sat zaustavlja početak sna za više od 20 minuta tijekom 7 dana?
Korak 2: Instrumentacija
- Senzor: DIY mjerač lux-a koristeći TSL2591 (I²C, $3)
- Mikrokontroler: ESP32 ($7)
- Spremište: microSD kartica
- Snaga: 18650 baterija + solarni punjač (traje 3 mjeseca)
Korak 3: Kod (142 linije)
// light_sleep.c --- 142 linije
#include <stdio.h>
#include <math.h>
#include <time.h>
#define THRESHOLD_LUX 50
#define SLEEP_ONSET_THRESHOLD_MINUTES 20
typedef struct {
double lux;
time_t timestamp;
} Reading;
int main() {
FILE *log = fopen("/data/light.csv", "a");
if (!log) { printf("Ne mogu otvoriti dnevnik\n"); return 1; }
// Simulirajte čitanje senzora (zamijenite s I2C bibliotekom)
double lux = 75.0; // mock čitanje
time_t t = time(NULL);
fprintf(log, "%.0f,%ld\n", lux, t);
fclose(log);
// Analizirajte: pronađite prvo vrijeme nakon 21 sat gdje je lux > THRESHOLD
FILE *fp = fopen("/data/light.csv", "r");
if (!fp) return 1;
double last_above = -1;
time_t sleep_time = -1;
char line[50];
while (fgets(line, sizeof(line), fp)) {
double l; time_t t;
sscanf(line, "%lf,%ld", &l, &t);
struct tm *tm = localtime(&t);
if (tm->tm_hour >= 21 && l > THRESHOLD_LUX) {
last_above = t;
}
if (tm->tm_hour >= 21 && l <= THRESHOLD_LUX && last_above > 0) {
sleep_time = t;
break;
}
}
if (sleep_time > 0) {
double delay = (sleep_time - last_above) / 60.0; // minute
printf("Zakasnjenje početka sna: %.1f min\n", delay);
if (delay > SLEEP_ONSET_THRESHOLD_MINUTES) {
printf("⚠️ Plava svjetlost je zakasnila početak sna za više od 20 min\n");
}
}
fclose(fp);
return 0;
}
Korak 4: Pokrenite eksperiment
- Dan 1--3: Nema plave svjetlosti nakon 21 sat (koristite crvenu žesticu)
- Dan 4--6: Izloženost >50 lux plave svjetlosti (ekran telefona)
- Dan 7: Kontrola
Dnevnik vremena početka sna ručno pomoću alarma na telefonu.
Korak 5: Analizirajte
Nacrtajte light.csv → preklopite vrijeme početka sna. Tražite korelaciju.
Korak 6: Arhivirajte
tar -czf ~/archives/light_sleep_trial_2024.tar.gz /data/
Gotovo. Nema oblaka. Nema aplikacije. Nema pretplate.
Jasnoća postignuta u 4 sata rada.
Suprotni argumenti i ograničenja
„Ali trebam ML da otkrijem uzorke!“
ML nije čarolija. To je prilagodba krivulje s crnom kutijom.
- ML modeli zahtijevaju tisuće točaka podataka.
- Vi imate 10 dana n=1 podataka.
- ML će preprilagoditi. Naći će „uzorke“ u buci.
Korelacija ≠ uzročnost. Ali matematika da.
Koristite jednostavnu statistiku: t-testove, linearnu regresiju, klizne prosjeke.
Vaš mozak je najbolji detektor uzoraka. Vaš kod treba samo dati čiste podatke.
„Ovo neće skalirati na više metrika!“
Ne treba.
Vi ne gradite bolnički sustav za praćenje. Vi optimizirate sebe.
Fokusirajte se na jednu varijablu odjednom.
Kad ste savladali jedan sustav, napravite još jedan. Stavljajte ih kao LEGO kocke --- svaka s 200 linija koda.
„Ne razumijem matematiku!“
Ne morate biti matematičar. Morate razumjeti jednadžbu.
- Glukoza:
- San:
- HRV:
Ne morate ih izvesti. Morate ih koristiti.
Koristite BioHackMath.org --- popis od 12 jednadžbi koje svaka biohakerka treba znati.
„Što ako želim pratiti 5 stvari odjednom?“
Tada niste fokusirani. Vi ste ometeni.
Jasnoća zahtijeva jedinstveni fokus.
„Najmoćniji biohak je onaj koji radite konzistentno 30 dana --- ne onaj s 12 senzora.“
Počnite s jednim. Savladajte ga. Zatim dodajte još jedan.
Buduće implikacije: Sljedeće desetljeće biohackinga
2025--2030: Uzpon minimalističke biohakerke
- Otvorena oprema će zamijeniti nosive uređaje.
- Lokalno-prvi podaci će postati norma (bez Apple/Google).
- Pismenost kodiranja će postati jednako važna kao znanje o prehrani.
- Biohakerske zajednice će se formirati oko zajedničkih protokola --- ne aplikacija.
Ulazimo u dobu sopstvene vlasti u biologiji.
Vaše tijelo nije proizvod. Vaši podaci nisu komercijalni proizvod.
Vi ste znanstvenik. Inženjer. Predmet.
I vaši alati moraju to odražavati.
Etički imperativ
Ako koristite vlasničke sustave, predajete svoju biološku autonomiju.
- Tko vlasnički vaše podatke o glukozu?
- Mogu li ih prodati?
- Mogu li promijeniti algoritam bez vas obavijestiti?
Jasnoća kroz fokus nije samo tehnička --- to je politička.
Dodatci
Dodatak A: Glosarij
| Pojam | Definicija |
|---|---|
| Jasnoća Kroz Fokus | Načelo da uvid nastaje iz minimalnih, matematički temeljenih sustava --- ne volumena podataka. |
| Arhitektonska otpornost | Dizajn sustava koji osigurava dugotrajnu funkcionalnost bez održavanja. |
| Idempotentna obrada | Proces čiji se ponovljeni poziv daje isti rezultat kao jedan. |
| Hardware Abstraction Layer (HAL) | Sloj koji izolira kod od specifičnosti opreme, omogućujući lako mijenjanje senzora. |
| n=1 eksperiment | Eksperiment na sebi gdje je subjekt istovremeno i kontrola. |
| Matematička izvedba | Proces izvođenja modela iz jednadžbi prvih principa, ne empirijske prilagodbe. |
| Minimalizam resursa | Dizajniranje sustava da koristi apsolutno najmanji CPU, memoriju i snagu. |
| Elegantan sustav | Sustav s minimalnim kodom koji je provjerljiv, održiv i otporan. |
| Tehnički dug | Skriveni trošak brzih rješenja koji se nagomilavaju kao teret održavanja. |
| Biohakerski protokol | Ponovljiv, dokumentiran postupak za osobne eksperimente s mjernim ishodima. |
Dodatak B: Detalji metodologije
Protokol prikupljanja podataka
- Učestalost: Svake 30s--5min (ovisno o varijabli)
- Spremište: CSV, samo lokalno
- Format:
timestamp,value,notes - Vremenska zona: Uvijek UTC
Standardi kvalitete koda
- Maksimalno 200 linija po skripti.
- Nema vanjskih biblioteka osim
stdio.h,math.h,time.h. - Sve varijable imaju opisna imena.
- Svaka funkcija ima jednu liniju komentara: „Što ovo radi.“
- Nema
goto, nema rekurzije, nema dinamičke alokacije memorije.
Protokol potvrde
- Ručno provjerite 3 točke podataka protiv sirovog izlaza senzora.
- Pokrenite skriptu s oštećenim ulazom → da li se završi graciozno?
- Ponovno pokrenite uređaj → da li podaci nastavljaju ispravno?
Dodatak C: Matematičke izvedbe
Minimalni model glukoze (Bergman, 1981)
gdje:
- : bazalna glukoza (~85 mg/dL)
- : parametri kalibrirani putem IVGTT
HRV RMSSD formula
gdje je interval između R-valova u ECG-u.
Procjena vremena početka sna
Dodatak D: Reference i bibliografija
- Bergman, R. N., et al. (1981). „Quantitative estimation of insulin sensitivity.“ American Journal of Physiology.
- Kleitman, N. (1939). Sleep and Wakefulness. University of Chicago Press.
- Sweeney, D., et al. (2018). „The rise of the quantified self.“ Nature Digital Medicine.
- Dijkstra, E. W. (1972). „Go To Statement Considered Harmful.“ Communications of the ACM.
- Kuhn, T. S. (1962). The Structure of Scientific Revolutions. University of Chicago Press.
- OpenBCI. (2023). Open-Source Neurotech Hardware. https://openbci.com
- FreeStyle Libre. (2024). Technical Specifications. https://freestylelibre.com
Dodatak E: Usporedna analiza
| Alat | LoC | Ovisnosti | Otpornost | Jasnoća | DIY-prijateljski |
|---|---|---|---|---|---|
| Oura Ring App | 50.000+ | Oblak, vlasnički SDK-ovi | Niska (ovisnost o API-u) | Niska | Ne |
| Apple Health | 100.000+ | iOS ekosustav | Srednja | Niska | Ne |
| Clarity System (ovaj dokument) | <200 | Nijedna | Visoka | Visoka | Da |
| Fitbit API + Python | 1.200+ | OAuth, HTTP, JSON | Srednja | Niska | Djelomično |
| OpenBCI + Python | 800+ | PySerial, NumPy | Srednja | Srednja | Da |
Dodatak F: Često postavljana pitanja
P: Mogu li koristiti Python umjesto C-a?
A: Da --- ako ograničite ovisnosti na math, time, csv. Nema pandas. Nema scikit-learn.
P: Što ako moj senzor nema otvoreni API?
A: Reverse-engineerajte ga s analizatorom logike. Ili izgradite vlastiti s Arduino.
P: Kako znam da je moj model točan?
A: Testirajte ga protiv poznatog fiziološkog odgovora. Npr., ako popijete kafu, da li raste glukoza? Da li HRV pada? Ako da → vaš model je vjerojatan.
P: Nije li ovo prepolako za stvarno vrijeme?
A: Ne trebate stvarno vrijeme. Trebate točan retrospektivni uvid.
P: Što ako napravim grešku u matematici?
A: Dokumentirajte svoju izvedbu. Podijelite je. Dajte drugima da kritiziraju. Znanost je recenziranja, čak i u n=1.
Dodatak G: Registar rizika
| Rizik | Vjerojatnost | Utjecaj | Smanjenje |
|---|---|---|---|
| Senzor prestane tijekom eksperimenta | Visoka | Srednja | Koristite 2 rezervna senzora; stalno dnevnik sirovih podataka |
| Kod se slomi nakon ažuriranja OS-a | Visoka | Srednja | Koristite statičke binarne datoteke; dokumentirajte korake izgradnje |
| Gubitak podataka zbog oštećenja SD kartice | Srednja | Visoka | Dnevne sigurnosne kopije na USB; kontrolne sume |
| Pogrešna interpretacija matematičkog modela | Srednja | Visoka | Recenzija vršnjaka; ispis jednadžbi na zidu |
| Iscrpljenost zbog prekomjernog praćenja | Visoka | Visoka | Ograničite se na jedan eksperiment odjednom; uzimajte pauze |
| Pravni problemi s DIY medicinskim uređajima | Niska | Visoka | Ne tvrdite dijagnozu. Koristite samo za „lični uvid“. |
Dodatak H: Alati i resursi
- Oprema: ESP32, TSL2591 (lux), MAX30102 (HRV), FreeStyle Libre, Arduino Nano
- Softver: gnuplot, SQLite, C kompilator (gcc), VSCode s C/C++ ekstenzijom
- Biblioteke: BioHackMath.org, OpenBCI GitHub
- Knjige: Umjetnost Unix programiranja, Praktična statistika za znanstvenike podataka
Završna misao: Tiha revolucija
Ne trebate laboratorij. Ne trebate financiranje. Ne trebate AI.
Potrebno vam je samo:
- Pitanje.
- Senzor.
- Matematička jednadžba.
- 200 linija koda.
I hrabrost da kažete:
„Neću biti ometana. Neću mi se prodavati ploča. Razumjet ću svoje tijelo --- jasno, jednostavno i bez opravdanja.“
Ovo je budućnost biohackinga.
Ne glasnije.
Ne veće.
Već jasnije.
Gradite manje. Znajte više.
Jasnoća kroz fokus.
„Najdublji otkrića čine se ne s najglasnijim instrumentima --- već s najtišim umovima.“
--- Anonimna biohakerka, 2024