Tomaszewski, Jacekrocznik 1994 · REKIN Warszawa · Swimrankings ID 4806409
- Memorandum
- Rekonstrukcja startów 2005–2010
- Do
- Jacek Tomaszewski
- Od
- Claude · praca na folderze
swimrankings-dane-sesja - Stan
- 15 września 2026 · z stron wyścigów na dysku
Każda liczba na tej stronie pochodzi z zapisanych stron Swimrankings: parser czyta surowy HTML, a walidacja porównuje go ze starym JSON-em ( wierszy, międzyczasów, rozbieżności). Poniżej silnik, który odtwarza dowolny start z tych danych — na wejściu 800 m dowolnym z Dębicy 2006.
Silnik wyścigu
Wyścig z międzyczasów
Jeden silnik dla wszystkich startów. Wybierz start na osi — basen, kolejność, wykres straty i protokół budują się z tabeli źródłowej.
Odtworzenie: pozycja między międzyczasami jest wyliczona ze średniego tempa na odcinku — płynny ruch nie jest pomiarem. Tylko punkty pomiarowe: zawodnik stoi na ostatnim zmierzonym punkcie i przeskakuje dalej dopiero w chwili, którą podaje źródło. Pulsujący pierścień (widok z góry) i rozbłysk płyty dotykowej na ścianie (basen 3D) oznaczają dokładny moment pomiaru ze źródła.
Co pokazują międzyczasy
Granice tych danych
Różnica czasu względem Jacka na punktach pomiarowych
Protokół z międzyczasami
Inwentaryzacja
Co jest na dysku
- Pliki w
raw_html/w tym kopie o identycznej sumie MD5 - · kopie
- Strony zawodów przetworzonestrony-blokady (limit, Cloudflare) wykrywane automatycznie
- · blokad
- Tabele wyników na tych stronachkanoniczne wyścigi + listy międzyczasów dłuższych dystansów
- = +
- Wiersze Jackastarty indywidualne · zmiany sztafet · międzyczasy pod krótszym dystansem
- = + +
- Starty poza konkursem (PK)płynięte, ale bez miejsca w klasyfikacji
- Basen 25 m / 50 m
- /
- Serie na czas / eliminacje / finały / bez oznaczenia
- / / /
- Wiersze zawodników w tabelach startów Jackaz międzyczasami
- ·
Strony wyścigów wg roku — pobrane i brakujące
Lista stron pochodzi z brakujace_wyscigi.json. Plik profilu na dysku to ranking osobisty na ( wyników), więc tej listy nie da się jeszcze sprawdzić lokalnie.
Walidacja
Luki i anomalie
Czego dane nie mówią
- blokada
stron wyścigów nie ma na dysku
Głównie 2009 i 2010. Swimrankings chroni strony weryfikacją Cloudflare i dziennym limitem; nie obchodzę tych zabezpieczeń. Strony trzeba zapisać we własnej przeglądarce — skrypt budujący sam je wykryje.
Lista brakujących stron z linkami
- źródło
Brak numerów serii i torów
Strony meetDetail podają miejsce, czas, punkty i międzyczasy, ale nie serię ani tor. Przy seriach na czas i eliminacjach silnik zestawia wszystkich z tabeli jak jeden wyścig i mówi to wprost.
- źródło
Puste pola międzyczasów
brakujących czasów odcinka i brakujący czas narastający (w źródle „--.--”); wierszy nie ma części punktów pomiarowych, które mają inni. Silnik pokazuje je jako brak, bez uzupełniania.
- parser
Stary
races_jsonmiał błędy struktury, nie wartościdistance= 0 i pustestylewe wszystkich plikach, punkty sklejone z miejscem („3.427”), kilka konkurencji pod jednymstyleId. Czasy i międzyczasy zgadzają się co do setnej z nowym parserem. - rejestr
„111 startów” to 111 wierszy
Zmiany sztafet i międzyczasy 800/1500 m powtórzone pod krótszymi dystansami są osobno. Ich listę pokazuje tabela poniżej.
Wiersze Jacka, które nie są osobnymi startami indywidualnymi
- pliki
Kopie plików i daty z nagłówka zawodów
pliki
debica_2006_*to bajt w bajt kopie stronmeet_514120_*. startów ma datę z nagłówka zawodów jednodniowych, bo tabela jej nie podaje.
Zasada wierności
Pomiar i wyliczenie
Pomiar ze źródła
- Czas końcowy, miejsce, punkty, rocznik, klub.
- Czas narastający i czas odcinka na każdym punkcie pomiarowym.
- Kolejność zawodników na punkcie pomiarowym.
- Różnice czasu na punkcie — zwykłe odejmowanie dwóch pomiarów.
Wyliczenie w silniku
- Pozycja w metrach między punktami (średnie tempo odcinka).
- Kilwater, płynny ruch i odległość w metrach w panelu kolejności.
- Ułożenie torów według czasu końcowego.
- Sylwetki w basenie 3D to znaczniki — bez rekonstrukcji pracy rąk i nóg; kilwater skaluje się wyliczoną prędkością.
- Wybór „rywali Jacka”: zmiany kolejności i najmniejsze różnice na punktach.
Dalsze kroki
Plan
Dograć brakujące strony wyścigów
Otwórz linki z listy powyżej we własnej przeglądarce, w tempie, na które pozwala dzienny limit, i zapisz je jako
raw_html/meet_{meetId}_style_{styleId}.html. Potempython3 rekonstrukcja/tools/build_dataset.py && python3 rekonstrukcja/tools/validate.py— strona odświeży się sama.Zapisać źródło listy startów
Strony „Wszystkie wyniki” z profilu dla lat 2005–2010 (6 stron). Dopiero wtedy liczbę da się sprawdzić z plikiem, a nie z pamięcią poprzedniej sesji.
Porównać 1500 m z profilu z pełnymi tabelami
Profil ma międzyczasy 1500 m z lat 2008–2010. Po pobraniu stron zawodów z 2009 i 2010 walidator powinien porównać je tak samo jak dziś stary JSON.
Rozstrzygnąć serie i tory — osobną warstwą
Jeśli istnieją protokoły organizatorów z podziałem na serie, trzymać je jako oddzielne, oznaczone źródło, nigdy nie mieszać po cichu ze Swimrankings. Wtedy „Serie na czas” mogą stać się prawdziwym wyścigiem jednej serii.
Rozbudować silnik
Porównanie dwóch startów Jacka na tym samym dystansie (np. 400 m w 2006 i 2008) jako wyścig z samym sobą oraz progresja rekordów liczona z tabel — bez nowych danych, na tym samym formacie.
Źródła projektowe
Skąd ruch i szkło
- narracja wyściguAuthoring Narrative Visualization in Motion: Visual Storytelling in Swimming Videos
Warstwy „na żywo” (pozycja, strata) i warstwy momentów (pościg, prowadzenie) — stąd panel kolejności i karty „Co pokazują międzyczasy”.
- przejściaView Transitions API and CSS Scroll-Driven Animations
Zmiana startu to przejście widoku: tablica wyników i zegar przechodzą z rozmyciem zamiast twardej podmiany.
- przewijanieJosh W. Comeau — Scroll-Driven Animations
Pasek postępu czytania i łagodne wejście sekcji na osi przewijania, bez JavaScriptu i z wyłączeniem przy ograniczonym ruchu.
- szkłoJosh W. Comeau — Next-level frosted glass with backdrop-filter
Panel kolejności leży na wodzie z refleksami, więc rozmycie ma co rozmywać.
- progresywne rozmycieCSSWG — progressive blur via linear-blur()
Do czasu natywnej funkcji: trzy warstwy backdrop-filter z maskami gradientu dają głębię ostrości w perspektywie 3D.
- wykres okrążeńNYT Olympics swimming lap charts
Pozycja na końcu każdego odcinka jako główna forma — tu w wersji różnicy czasu względem jednego zawodnika.
- wzorzec odtworzeniaFlourish — Sports race
Tor o stałej długości i tryb całego toru; tu z nawrotami na basenie 25 i 50 m zamiast rozwiniętej prostej.
- wzorce CSScss-scroll-driven — patterns and accessible motion
Zakresy animacji i dostępny ruch dla animacji na osi przewijania.