Nagranie, które przestało być „wszystko albo nic”
Moonlight Animate potrafi nagrać, jak powstawał obraz — nie jako film z ekranu, tylko jako zapis samych zmian pikseli i śladu pióra. Dzięki temu nagranie jest kilkadziesiąt razy mniejsze od wideo, zachowuje pełną rozdzielczość i odtwarza rytm ręki: powolna kreska odsłania się powoli, zamiast wyskoczyć w całości.
Miało to jednak wadę, o której lepiej mówić wprost: nagranie stawało się plikiem dopiero w chwili, gdy nacisnąłeś „Zatrzymaj”. Do tego momentu żyło jako rozsypane pliki robocze, których nic nie potrafiło odczytać. Dwie godziny pracy i jedna awaria zasilania oznaczały dwie godziny w niebycie.
To się właśnie zmieniło.
Nagranie jest plikiem od pierwszej sekundy
Nagranie zapisuje się teraz na bieżąco, małymi porcjami, do jednego pliku — tej samej sprawdzonej technologii bazodanowej, na którą niedawno przeszedł format projektu. Konsekwencje są proste i wszystkie widać w pracy:
Awaria nie kasuje sesji. Jeśli program albo komputer padnie w trakcie nagrywania, przy następnym uruchomieniu zobaczysz pytanie: „Znaleziono nagranie z 6 sierpnia, które nie zostało zapisane (długość 47 min 12 s). Zapisać je teraz?” — z opcjami Zapisz jako…, Później i Odrzuć. Nagranie jest kompletne aż do sekundy, w której program przestał istnieć.
Zatrzymanie jest natychmiastowe. Wcześniej zakończenie nagrania oznaczało wczytanie całej sesji z powrotem do pamięci i spakowanie jej od zera — przy dłuższym nagraniu setki megabajtów, dokładnie w tej chwili, gdy stoisz i czekasz. Teraz to dopisanie podsumowania i przeniesienie gotowego pliku. Trwa tyle samo dla pięciu minut i dla dwóch godzin.
Przewijanie nie ładuje całości. Podgląd dobiera z pliku tylko te fragmenty obrazu, które akurat są potrzebne. Długie nagranie nie musi już zmieścić się w pamięci, żeby dało się je obejrzeć.
Nie ma tysięcy plików tymczasowych. Każde zdarzenie było wcześniej osobnym otwarciem pliku, a każdy fragment obrazu — osobnym plikiem na dysku.
Dlaczego akurat baza danych
Bo nagranie to z natury rosnąca lista zdarzeń, a nie paczka, którą zamyka się na końcu. Baza danych umie dopisywać w sposób, po którym plik nigdy nie jest „w połowie” — albo porcja zmian jest w środku w całości, albo nie ma jej wcale. Nie ma stanu pośredniego, w którym plik istnieje, ale jest nie do odczytania. To dokładnie ta właściwość, której brakowało.
Drobiazg, który dobrze to ilustruje: identyczne fragmenty obrazu (ten sam obszar przemalowany kilka razy, cofnięcie wracające do poprzedniego stanu) zapisują się raz. Wcześniej pilnowała tego lista trzymana w pamięci — i ginęła razem z programem. Teraz pilnuje tego sam plik, więc oszczędność przeżywa awarię tak samo jak reszta nagrania.
Stare nagrania działają
Nagrania zrobione wcześniej otwierają się bez żadnych zmian i bez konwersji — program rozpoznaje format po zawartości pliku, nie po rozszerzeniu. Nie musisz nic robić ze swoim archiwum.
Co dalej
Dokładanie odporności tam, gdzie strata jest nieodwracalna, jest ciekawsze niż dokładanie funkcji. Projekt można odtworzyć z pamięci; sesji, w której go rysowałeś — nie. Dlatego akurat nagrania dostały tę robotę zaraz po formacie projektu.