- HTML 67.1%
- Python 23.6%
- CSS 6.6%
- JavaScript 2.4%
- Shell 0.3%
- calc/i18n.py: formatowanie liczb/dat per jezyk + katalog napisow wykresow,
etykiet rol i nazw znanych afer; jednostki tlumaczone z zapisu polskiego
- calc/figures.py: wykresy rysowane przez obiekt Locale, marginesy liczone
z dlugosci najdluzszej etykiety (ml_for) — inaczej DE/FR wychodzily poza plotno
- calc/build.py: petla po 4 jezykach, PL w katalogu glownym, reszta w /en /de /fr,
hreflang + przelacznik jezykow, sciezki statyczne przez {{base}}
- data/sources.json: opisy zrodel w 4 jezykach (DOI bez zmian)
- site/templates/<lang>/: pelne tlumaczenia trzech stron
- functions/api/hits.js + wrangler.toml: licznik odslon na Pages Function + KV,
bez zewnetrznych trackerow i ciasteczek, w darmowym planie
- usuniete wszystkie odnosniki do repozytorium ze strony
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CDi7kMUKYJ7ooYC2gRtXXw
|
||
|---|---|---|
| calc | ||
| data | ||
| dist | ||
| docs | ||
| functions/api | ||
| site | ||
| .gitignore | ||
| deploy.sh | ||
| LICENSE | ||
| README.md | ||
| wrangler.toml | ||
Chemtrails-project
Analiza ilościowa twierdzeń o „chemtrails” — celowym rozpylaniu substancji z samolotów pasażerskich. Nie polemika ze zdjęciami nieba, tylko rachunek: fizyka powstawania smug, chemia spalin, bilans masowy hipotetycznego programu i matematyka utrzymania go w tajemnicy.
Strona: https://chemtrails-project.pages.dev — w czterech językach: PL · EN · DE · FR
Strona celowo nie linkuje do tego repozytorium — jest samodzielna, a metodologia opisuje model bez odsyłania czytelnika do kodu.
Zasada projektu
Żadna liczba na stronie nie jest wpisana ręcznie w HTML. Wszystkie pochodzą z calc/model.py,
a każdy parametr wejściowy ma klucz źródła rozwiązywany do pozycji w data/sources.json.
Build przerywa się błędem, jeśli w szablonie zostanie nierozwiązane pole — strona nie może
wyjść z dziurą w liczbach.
Wszędzie, gdzie trzeba było coś założyć, przyjęto wariant korzystny dla teorii, którą analizujemy: najniższe prawdopodobieństwo przecieku z trzech kalibracji Grimesa, najdłuższy sensowny czas życia aerozolu w troposferze, najniższe wskaźniki obsadowe w lotnictwie, pominięcie całych grup zawodowych. Wnioski nie zależą od tych wyborów — margines jest rzędów wielkości, nie procentów.
Wyniki w skrócie
| Wielkość | Wynik |
|---|---|
| Temperatura progowa powstania smugi (kryterium Schmidta–Applemana) | −41,8 °C przy powietrzu nasyconym |
| Para wodna z rocznego spalania paliwa przez światową flotę | 348 Mt |
| Kontrola bilansu: CO₂ policzone / raportowane | zgodność 100,5 % |
| Masa, którą program musiałby rozpylać z pułapu rejsowego | 66 Mt/rok |
| To samo jako część całej antropogenicznej emisji SO₂ świata | 90 % |
| Zapotrzebowanie na stront wobec produkcji światowej | 129× |
| Ilu ludzi musiałoby wiedzieć | 835 165 |
| Ilu krewnych byłoby trutych przez własną rodzinę | 6,7 mln (12,3 mln z personelem pokładowym) |
| Oczekiwany czas do pierwszego przecieku | 107 dni |
| Szansa utrzymania tajemnicy przez 30 lat | 10⁻⁴⁵ |
| Ilu ludzi mogłoby wiedzieć, żeby dać temu 5 % szans | 24 415 |
Rozdział o tajemnicy — pełne wyprowadzenie i dyskusja ograniczeń modelu: docs/TAJEMNICA.md.
Struktura
calc/model.py parametry + cała arytmetyka; `python3 calc/model.py` = raport tekstowy
calc/i18n.py formatowanie liczb/dat per język + napisy wchodzące do wykresów
calc/figures.py wykresy generowane jako czysty SVG (bez bibliotek wykresowych)
calc/build.py renderuje dist/ dla 4 języków z szablonów + wyników modelu
data/sources.json bibliografia; klucze = pola `src` w model.py, opisy w 4 językach
data/computed.json pełny zrzut wyników (generowany)
site/templates/<lg>/ szablony HTML z polami {{klucz}} — pl, en, de, fr
site/static/ style, skrypt kalkulatora, self-hostowane fonty
functions/api/hits.js licznik odsłon (Cloudflare Pages Function + KV)
wrangler.toml binding KV dla licznika
docs/TAJEMNICA.md analiza wykonalności utrzymania programu w tajemnicy
dist/ strona gotowa do wgrania (generowana)
deploy.sh build + publikacja na Cloudflare Pages
Wielojęzyczność
Polski jest w katalogu głównym, pozostałe języki w /en/, /de/, /fr/. Prosa siedzi
w osobnych szablonach per język; wszystko, co generowane — liczby, etykiety wykresów,
nazwy ról, opisy źródeł — przechodzi przez calc/i18n.py, więc separatory tysięcy,
przecinki dziesiętne i formaty dat są zgodne z konwencją każdego języka. Build przerywa
się, jeśli w którymkolwiek języku zostanie nierozwiązane pole.
Marginesy wykresów liczą się z długości najdłuższej etykiety (ml_for), bo niemiecka
i francuska wersja tego samego napisu bywa o połowę dłuższa od polskiej.
Licznik odsłon
Własna funkcja na Cloudflare Pages (functions/api/hits.js) trzymająca jedną liczbę
w Workers KV. Bez zewnętrznych usług analitycznych, bez ciasteczek, bez zapisywania
adresów IP. Odświeżenie w tej samej sesji woła ?peek=1 i nie zwiększa licznika.
Jeśli KV odmówi (np. wyczerpany darmowy limit zapisów), blok w stopce po prostu znika.
Wszystko mieści się w darmowym planie Cloudflare: statyka bez limitu, 100 tys. wywołań funkcji dziennie, 1 000 zapisów KV dziennie.
Uruchomienie
python3 calc/model.py # raport liczbowy w konsoli
python3 calc/model.py --json
python3 calc/build.py # przebudowa dist/
./deploy.sh # build + wrangler pages deploy
Bez zależności zewnętrznych — sam Python 3.11+ ze standardowej biblioteki.
Do publikacji potrzebny npx i klucz Cloudflare czytany z ~/AI-Brain/.secrets
(nigdy nie trafia do repozytorium ani do logów).
Czego ten projekt nie robi
Nie ocenia intencji ludzi, którzy w tę teorię wierzą, i nie zajmuje się psychologią. Nie powołuje się na blogi ani filmy — z żadnej strony sporu. Nie twierdzi też, że lotnictwo jest nieszkodliwe: cirrus powstający ze smug ma wymuszanie radiacyjne większe niż całe lotnicze CO₂ (Lee i in. 2021), co jest ustaleniem publicznym i recenzowanym.
Rozdział 10 strony jest listą wyników, które obaliłyby tę analizę. Jeśli któryś z nich się pojawi — repozytorium przyjmuje zgłoszenia.
Licencja
Treść: CC BY 4.0. Kod: MIT.