część pierwsza tutaj

Ciąg dalszy przygody z TAGiem

Polowanie na dawne oprogramowanie to często straszna męka. Na przykład: odnalezienie pierwszej wersji systemu Windows zajęło aż 30 lat. Oryginalny produkt "Microsoft Windows - Premiere Edition (1.00)" był uznawany za zaginiony wkrótce po premierze w 1985, a najstarszą znaną wersją było mało romantyczne 1.01. Problemem był nie tylko brak binariów, ale i brak źródeł historycznych (nie mowa tutaj o kodach źródłowych). Istnienie wersji handlowej 1.00 było domniemywane na podstawie wycofanych materiałów prasowych oraz łatwo podważalnego wywiadu z dawnymi pracownikami Microsoftu. Sprawy nie ułatwiał także brak archiwów internetowych. Dziś łatwo możemy odnaleźć wersję online prasy informatycznej, ale wystarczy rozpocząć poszukiwania artykułów sprzed czasów popularyzacji internetu (to nie było aż tak dawno temu!) i prędko okaże się, że zniknęły nie tylko artykuły, ale i całe tytuły. Cofając się o 20 lat nierzadko możemy polegać wyłącznie na amatorskich skanach gazet.

Gdy chodzi o oprogramowanie o mniejszej, niż ogólnoświatowa sławie, robi się rzecz jasna jeszcze gorzej. Jest to boleśnie widoczne w przypadku TAGa: istnieje literatura fachowa, są dostępne skany podręczników i nawet obrazy dysków instalacyjnych, ale trudno o jakieś opracowanie historyczne i więcej szczegółów dotyczących powstania i rozwoju programu. Wyszukiwanie zasobów internetowych pod kątem TAGa pozwoli natknąć się na ten sam kilkuzdaniowy zlepek, przepisany do niezliczonych mniejszych prezentacji i opracowań na temat edytorów tekstu. Dalsze strony w Google będą skrywać ze dwa wywiady z Info-Service z roku 1992, zarchiwizowane przez Computerworld IDG i skany MikroKlanu ze Świata Owoców. Po drodze pojawi się też mój wpis z dobrychprogramów (36 tysięcy odsłon) z 2015 roku oraz oczywiście lakoniczny artykuł na polskiej Wikipedii. Artykuł niemal pozbawiony not bibliograficznych.

Taki stan materiałów źródłowych oraz zbiór detali odkrywanych podczas mojego poszukiwania i badania TAGa sprawiały, że powstawało coraz więcej pytań bez odpowiedzi. Czy edytor faktycznie był rozwinięciem pracy dyplomowej? Jak promowano go na przełomie lat 80/90? W czym został napisany? Czy najczęściej kupowali go hobbyści, firmy czy urzędy? No i co z wersją dla Windows?

Postanowiłem uzupełnić źródła historyczne i napisać do autorów, aby znaleźć odpowiedzi na choć część z wyżej wymienionych pytań. Udało mi się nawiązać kontakt z literką "A" w pochodzącej od inicjałów nazwie TAG, czyli panem Arturem Duszewskim. Poniżej zamieszczam zapis naszej rozmowy wraz z komentarzem.

2017-11-08T19:30:05 (FLAC)

Dziękuję za przyjęcie zaproszenia. W ramach współpracy ze społecznością stare.pro poszukuję kilku brakujących informacji z historii TAGa oraz ewentualnego potwierdzenia tych przytoczonych bez podania źródeł. Zacznijmy może więc od tego, czy edytor TAG istotnie powstał jako rozszerzenie pracy magisterskiej?

Takie były początki. Wspólnie z kolegą podjęliśmy się zadania zatytułowanego "graficzny edytor tekstu". W roku 1987 efekt prac był broniony jako praca dyplomowa na Politechnice Gdańskiej. Była to wersja "dyplomowa", a więc funkcjonalność była miejscami dość podstawowa. Używałem wtedy komputera Amstrad CPC 6128. To nie był model zgodny z IBM PC, oparto go na układzie Zilog-80 i pracował pod kontrolą zmodyfikowanego CP/M, a nie DOSa. Jego ciekawą cechą był sterownik karty graficznej kompatybilny z IBM-owską kartą CGA. Próby zbadania, jak będzie pracować sterowanie kartą i rysowanie po ekranie wykazały, że zadziała to bardzo dobrze i wydajnie, a sam kod Asemblera będzie wystarczająco łatwy do przeportowania z wykorzystaniem podzbioru instrukcji procesora Intel 8080.

Wersja handlowa z przełomu lat 80/90 została zbudowana z wykorzystaniem kompilatora Microsoft C Compiler, w plikach binarnych są widoczne łańcuchy tekstowe będące "podpisem" tego oprogramowania. Czy rozwój programu przeznaczonego na rynek od samego początku był zorientowany na język C i kompilator Microsoftu?

Od samego początku decyzją było wykorzystanie języka C ze wstawkami asemblerowymi przeznaczonymi do obsługi kontrolera ekranu i drukarek. Zaczynaliśmy z kompilatorem Lattice C 2.0. Potem przenieśliśmy się na Microsoft C 3.0, a ostatnie wersje był robione w Borlandzie.

Nieco poboczne pytanie: jaka była w owych latach dostępność oprogramowania takiego, jak Microsoft C? Czy łatwo było dostać taki kompilator w roku 1989?

Początek miał miejsce wcześniej. Pierwsza publiczna wersja demo miała swoją premierę w grudniu 1987 roku na targach Komputer Expo w Warszawie, a pierwsza handlowa wersja - na Infosystemie w Poznaniu, w kwietniu 1988 roku. One jeszcze nie używały Microsoft C.

Wiemy, że inny polski produkt, edytor QR-Tekst, był chętnie kupowany przez informatyzowane urzędy. Czy TAG też był sprzedawany do urzędów i przedsiębiorstw państwowych?

Był sprzedawany również do urzędów, w tym do jednego z ministerstw, które złożyło dość duże zamówienie na wiele licencji. Ale był też kupowany niezależnie, przez mniejsze instytucje, bez odgórnej inicjatywy.

Dziś istnieją wytyczne dotyczące formatów zapisu dokumentów dla urzędów i metod utrwalania informacji publicznych. Wtedy nie istniały takie regulacje, ale jak zawsze w takich przypadkach, pojawiają się "standardy de facto". W tym przypadku, takim standardem był chyba nieszczęsny Microsoft Word?

To było już później, w latach 90tych.

Istnieje silny pogląd, że polskie edytory tekstów, jak Unikum, QR-Tekst i TAG odeszły cień właśnie z powodu popularyzacji spolszczonego Worda 6.0. Czy to jest słuszna hipoteza?

Był to efekt przede wszystkim popularyzacji Windowsa. Wtedy Word, nawet mimo agresywnej polityki cenowej Microsoft, pozostawał produktem droższym. W mojej ocenie TAG był w Polsce produktem dość mocno zakorzenionym i jego zabójcą był dopiero Windows 3.1 i pakiet Office. Poprzednia wersja była niedopracowana i niespolszczona. Więc bardziej chodziło o graficznego Windowsa, niż o Worda.

Czy miały może miejsce jakieś przymiarki, próbne wersje TAGa dla Windows? Na ten temat nie da się dziś zdobyć żadnych informacji.

Były prowadzone prace nad zupełnie nową koncepcją TAGa. Powstał silnik procesujący teksty, ale nie doczekał się oprawy w postaci sprawnego graficznego interfejsu użytkownika. Takie wersje nie były nigdzie ogłaszane ani prezentowane. Zapadła jednak decyzja o niekontynuowaniu prac i istotnie w 1996 roku wszystko się rozeszło.

Czy wersja Windowsowa TAGa była konsekwencją obserwacji, że rynek zmierza w stronę w pełni graficznych edytorów, czy też najpierw pojawiły się głosy i dopytywania klientów, oczekujących TAGa dla Windows?

W tę stronę szedł rynek. Widać było, że kolejne programy zmierzają do coraz pełniejszego wykorzystania funkcji Windows. Więc graficzny TAG był próbą ucieczki do przodu.

Czy po latach ostały się jakieś "artefakty historyczne", jak binaria, materiały promocyjne i dokumentacja?

Tak, oczywiście. W swoim prywatnym archiwum mam nawet całość kodów źródłowych TAGa. Gdy swego czasu chciałem zbudować jakąś roboczą wersję, okazało się, że zestawienie środowiska budowania byłoby bardzo pracochłonne. Potrzebna jest bardzo specyficzna i trudna do odtworzenia konfiguracja. Natomiast podczas kolejnych migracji między komputerami zaginęła mi skompilowana, ostatnia wersja robocza. Oczywiście da się ją odtworzyć z nośników instalacyjnych - dyskietek 3.5 calowych. Ale najpierw trzeba znaleźć komputer, który ma taki napęd!

Użyłem napędu 3.5 cala, żeby zainstalować ostatnią wersję TAGa celem wyeksportowania z niego czcionek. Drukując cały zbiór glifów do pliku, a następnie zamykając w kontenerze FON, udało się na końcu otrzymać plik TTF. Wymagało to jednak kilku konwersji, bo czcionki TAGa były rastrowe.

Wtedy używano tylko czcionek rastrowych, nie było czcionek wektorowych.

Czy wiązało się to z zależnością od zamkniętego podzbioru obsługiwanych drukarek? Pliki czcionek miały zapisane kształty dla niskiej i wysokiej częstości punktów.

Nie, to co innego. Przy drukowaniu czcionki były posyłane do drukarki i ona operowała już wektorowo.

Pozwolę sobie wrócić do kwestii nośników. TAG nie zaginął, da się dziś odtworzyć dokumenty zapisane w jego formacie. Nie ma więc gorączkowych poszukiwań wersji instalacyjnych. Ale być może istnieją nośniki lub dokumenty związane z TAGiem, które można by ocenić jako warte zarchiwizowania np. przez Muzeum Historii Komputerów i Informatyki w Katowicach? Na przykład jako rekwizyt lub zrzut binarny?

To trudne pytanie. W zbiorach mam dyskietki instalacyjne kilku wersji, podręczniki użytkownika oraz skany artykułów o TAGu z czasopism takich, jak MikroKlan. Wersji ze składu już nie ma, ale istnieją w internecie skany podręcznika, artykułów i pudełka. Ostatnie wersje były sprzedawane jako pudełko z kompletem TAG-TIG-CDN.

W archiwum stare.pro znajdują się zrzuty binarne dyskietek kilku wersji instalacyjnych, w tym ostatniej. Nie zawsze są to jednak zrzuty świeżych, nieużywanych nośników. Niektóre z nich, co zabawne, są niestety zainfekowane wirusem...

Była taka wpadka. Zdarzyło się nam, że pewna partia dyskietek była zainfekowana, co następnie uległo powieleniu na maszynie kopiującej na całą dostarczoną serię. Zostało to wyłapane przez użytkowników i dość szybko skorygowane. Był to samopowielający się kod, który siedział w bootsectorze. Wtedy takie programy pisano, aby pokazać, że się potrafi, a nie po to, by niszczyć albo szyfrować dane, jak teraz. Rozpowszechniały się też zupełnie inaczej, niż dziś, ze względu na brak internetu.

Serdecznie dziękuję za poświęcony czas i wolę pomocy w uzupełnieniu dostępnych informacji na temat Edytora TAG. Jestem przekonany, że TAG mógł być wielkim powodem do dumy.

Zdecydowanie nie mieliśmy się czego wstydzić :) Uznaję obrót TAGiem za działalność w ramach public domain, minęło już ponad 20 lat. Mam jednak jeszcze pewną dygresję, dla uzupełnienia tła historycznego dla tego tematu. Na początku roku 1987 pojawił się edytor ChiWriter. Naszą reakcją na kontakt z nim było pytanie "Czy jest sens brnąć dalej w rozwój TAGa, skoro jest taki fajny program?". Po burzy mózgów zdecydowaliśmy, że pójdziemy inną drogą, żeby TAG to nie był drugi ChiWriter, tylko coś innego, może coś więcej. Natomiast w roku 1987 w Polsce królował inny program, czyli PL-Tekst.

PL-Tekst to był chyba cały komputer…?

Nie, to nie był komputer. To był program "autorstwa" firmy CSK z Gdyni. Przy czym pierwsze wersje PL-Tekstu to był spolszczony WordStar, nic poza tym. Edytor pracował w trybie tekstowym, nie miał żadnych elementów WYSIWYG, używał poleceń sterujących WordStara i na dobrą sprawę dopiero na drukarce okazywało się, jak dokument będzie naprawdę wyglądał. WordStar był standardem, wywodził się z systemów opartych o CP/M, a PL-Tekst wyglądał tak, jakby pochodził ze spiraconej wersji WordStara, spolszczonej i sprzedawanej pod szyldem firmy CSK.

Mogło to łatwo ujść na sucho. Wtedy nie obowiązywały przecież w Polsce żadne przepisy dotyczące własności intelektualnej oprogramowania.

Zgadza się. Również TAG, w początkowych wersjach, był budowany przy użyciu kompilatora Lattice C bez licencji. Potem już dbaliśmy o to i kolejne wersje kompilatorów Microsoft C i Borland Turbo C miały kupione odpowiednie licencje. Sprzedając własne oprogramowanie pamiętaliśmy, by respektować licencje firm trzecich.

Świadomość informatyczna panująca w owym czasie była dość ograniczona. Chyba trudno w takich realiach sprzedawać oprogramowanie.

To jest bardzo złożony problem. Proszę mieć na uwadze, że w połowie lat 80-tych, gdy najpopularniejsze komputery domowe to ZX-Spectrum i Commodore 64, nocą w radiu były nadawane programy: kod wykonywalny do nagrania na taśmę magnetofonową. Więc świadomości dotyczącej praw autorskich nie było żadnych. Ta świadomość zaczęła się rodzić, gdy rozpoczęto sprzedaż polskich programów: ktoś włożył swoją pracę i musi na tym zarobić. Jednocześnie zaczęły powstawać różnorakie zabezpieczenia. U TAGa był to identyfikator produktu, zdarzały się też zabezpieczenia przed kopiowaniem dyskietek.

Z tego, co widzę TAG modyfikuje komplet dyskietek instalacyjnych, oznaczając je jako wykorzystane.

Nie, nie było nigdy takiego mechanizmu. Absolutnie można było wielokrotnie wykorzystywać nośniki instalacyjne, jedynym zabezpieczeniem był klucz produktu. Być może dyskietki zmodyfikował emulator. Zastanawialiśmy się też nad kluczami sprzętowymi albo nad koniecznością trzymania dyskietki z programem w napędzie podczas pracy. Miałaby być specjalnie sformatowana i mieć niestandardowe sektory, których obecność umykałaby kopiarkom. Ostatecznie nie wprowadziliśmy tego rozwiązania. Przy skali wykorzystania TAGa, takie podejście szybko by się zemściło.

W imieniu polskiej społeczności abandonware ponownie dziękuję za poświęcony czas i cenne informacje.

Również dziękuję. Cieszy mnie zainteresowanie tematem.

Komentarz

Niewątpliwie udało się uzupełnić kilka brakujących puzzli w historii TAGa, poznać jego początki i losy tajemniczej wersji dla Windows. Jednak dla pełniejszego obrazu, warto o kilka słów uzupełnienia.

Lattice C

Zapomniany dziś zupełnie kompilator Lattice C to tak naprawdę oryginalna wersja kompilatora… Microsoft C. Program firmy Lattice został przeportowany na wiele maszyn i architektur, a Microsoft potrzebował wariantu dla PC, więc kupił jeden z wariantów i przemianował na własny. Dopiero wersja 3.0 Microsoft C była stworzona w ośrodku Microsoftu w Bellevue. Spokrewnienie Lattice C i Microsoft C tłumaczy przejście na narzędzia MS wraz z wydaniem wersji handlowej TAGa.

Targi Komputerowe

Przełom lat osiemdziesiątych obfitował w wiele różnorakich targów komputerowych, o których w większości zupełnie już zapomniano. Na przykład targi Infosystem odbywały się w hali Międzynarodowych Targów Poznańskich, ostatni raz w 2008 roku. W latach 90tych były to prywatne imprezy za prywatne pieniądze, stąd też trudno o skonsolidowany dokument opisujący owe wydarzenia. Opracowanie albumu polskich targów informatycznych brzmi jednak jak kuszący pomysł!

TAG dla Windows

Udało mi się znaleźć pudełkową wersję TAGa w wersji 3.16, z roku 1996. Pochodzi z asortymentu likwidowanego antykwariatu. Dziś to wymarły zwyczaj, ale wtedy do oprogramowania były dołączane kompletne papierowe podręczniki. Na tylnej okładce widnieje informacja, że rozpoczęto prace nad edytorem TAG w wersji dla środowiska Windows. Miała być ona dostępna "wkrótce". Czy ten plan uległ materializacji? Okazuje się, że rozpoczęto prace! Tył okładki ostatniego podręcznika był w dodatku jedyną wzmianką o nich. Długo szukałem właśnie tej informacji. Przyznaję, że miałem nadzieję, że coś powstało. Program QR-Tekst miał swój wariant dla Windows, wyglądający zaskakująco dobrze. Wierne odtworzenie interfejsu użytkownika TAGa w wersji dla systemu Windows to myśl na odległą przyszłość, w której będę miał więcej czasu i siły, niż obecnie. Staram się wierzyć, że taka właśnie przyszłość wkrótce nadejdzie.

Rekwizyty historyczne

Na wzór brytyjskiego portalu BetaArchive, który dysponuje gigantycznym archiwum FTP zrzutów binarnych nośników dawnego oprogramowania, społeczność Stare.pro stara się archiwizować zapomniany software. Od czasu do czasu skądś dochodzi głos jakiejś instytucji, firmy, czy też osób prywatnych, które usiłują otworzyć dawne dane, zapisane w starych programach. Nierzadko wraz z możliwością odtworzenia plików sprzed lat, znika zakulisowa wiedza praktyczna dotycząca tajników rozwoju oprogramowania. Archiwizacji software'u poświęcę część kolejnego, ostatniego odcinka opracowania o TAGu.

Dawne środowiska budowania

Dziś o wiele trudniej spotkać się z problemem martwego kodu źródłowego. Kod programu napisanego w .NET będzie wymagał .NET i ewentualnie Visual Studio. Jeżeli nie zbuduje się i nie uruchomi na domyślnej wersji najnowszych Windowsów, zajdzie najwyżej potrzeba doinstalowania Visual Studio lub brakującej wersji .NET. W razie niezgodności starego .NET z systemem, w ostateczności można wycofać się do poprzedniej wersji Windows. Ale na pewno nie będzie trzeba uciekać dalej, niż do Windows XP. A więc najbardziej pesymistyczny wariant oznaczałby około pół godziny na przygotowanie maszyny wirtualnej. Kod Pythona uruchomi się wszędzie, gdzie jest Python (czyli wszędzie), a menedżer pip, jeżeli o to zadbano, doinstaluje zależności. Java też nie będzie pracochłonna.
Schody zaczynają się przy językach natywnych. Takich, jak niedostandaryzowany, stary C, budowany pod konkretny system. Wrzucenie kodu TAGa do Visual Studio 2017 zakończyłoby się niepowodzeniem budowania już na pierwszych liniach. Konieczne jest użycie Microsoft C 3.0. Który jest 16-bitowy i nie uruchamia się na dzisiejszych Windowsach. Potrzebny jest więc MS-DOS lub Windows 95 i kompatybilne. Ponadto, wiele elementów TAGa celuje w konkretny sprzęt, czyli specyficzną listę drukarek, kart wideo i kontrolerów dyskietek. Odtworzenie takiego "toolchainu" celem przygotowania środowiska budowania może się okazać horrendalnie skomplikowane i czasochłonne, nawet w przypadku posiadania kompletnego, opatrzonego obfitymi komentarzami, kodu źródłowego.
Przychodzą tu do głowy skojarzenia z bardzo głośnym skowytem społeczności, który następował regularnie po uwalnianiu źródeł kolejnych programów: Netscape, StarOffice, Blender, Java.

Dyskietkowe wirusy

Wirus, którego znalazłem na dyskach wersji 3.16 należał do tej samej rodziny, co ten rozpowszechniony na oficjalnych dyskach 3.12. Był nią genus "Spirit". To bardzo ciekawie działający wirus: sam z siebie nie jest zapisany w żadnym pliku wykonywalnym EXE ani COM. Znajduje się w całości w sektorze rozruchowym dyskietki. Gdy zainfekowana dyskietka jest pozostawiona w napędzie, to następne uruchomienie komputera wystartuje właśnie z tej dyskietki. Należy tu wiedzieć, że zapominanie o dyskietkach było masowe i kończyło się dobrze znanym problemem "Non-system disk or disk error", ponieważ komputer próbował ładować system operacyjny z dyskietki, na której znajdowały się zwykłe dane.
Gdy komputer rozpocznie uruchamianie z zainfekowanej dyskietki, kod rozruchowy spróbuje uruchomić DOSa z regularnego twardego dysku - ale z jednym wyjątkiem. Do pamięci zostanie załadowany dodatkowy sterownik, który przy każdej próbie odczytu dyskietki (kolejnej) będzie nanosił na nią kod wirusa. Użytkownik nawet nie zauważy: system wszak uruchomił się poprawnie. Co więcej, żaden plik na dysku nie został zmodyfikowany! Na dyskietkach nie znajduje się z kolei żaden dodatkowy plik. A wirus się rozprzestrzenia… Rodzina wirusów Spirit była tak popularna, że w 1994 roku Seagate sprzedało kilkaset fabrycznie nowych, zafoliowanych dysków zarażonych wariantem Spirita, stworzonym w Zielonej Górze.

PL-Tekst - cały komputer…?

Skąd mi się wzięło, że PL-Tekst to nazwa całego komputera? Czytałem przecież tekst Jakuba Tatarkiewicza o tym programie i pada tam jasne stwierdzenie, że PL-Tekst to nic ponad (zabezpieczony przed kopiowaniem, o ironio) edytor tekstu, stworzony przez firmę Computer Studio Kajkowski (CSK).
Otóż pomyliłem PL-Tekst ze stacją Mazovia - polskim klonem IBM PC/XT, zbudowanym z użyciem odpowiedników technicznych dostępnych w ramach wymiany handlowej RWPG. Od owej stacji bierze swoją nazwę kodowanie znaków "Mazovia", gdzieniegdzie stosowane na prawdziwych pecetach, z powodu początkowego braku implementacji polskich stron kodowych przez IBM. Kodowanie Mazovia znacząco przebiło swoją popularnością stację Mazovia i uzyskało miano normy zakładowej (ZN) w roku 1992 (czyli dość późno i w mocno zaskakującym okresie). Mazovię wyparł nieszczęsny CP-1250 i obraźliwie podobny Latin-2, który stał się polską normą (PN) dla zapisu jednobajtowego. Dziś (choć można się mocno rozczarować!) króluje Unicode i dawne problemy z kodowaniem są coraz bardziej egzotyczne.

Komputerowe piractwo

Słuszną opinią jest, że świadomość dotycząca praw autorskich była zerowa. Przykład programów komputerowych nadawanych przez radio jest bardzo trafnym (i proszę przyznać - genialnym), ale mnie przychodzi do głowy inna kwestia, związana bezpośrednio z TAGiem. Edytor TAG uchodził za pierwszy program pozwalający na wprowadzanie tekstów w języku kaszubskim: w 1993 miała się pojawić wersja wzbogacona właśnie o taką funkcję. Sęk w tym, że nie był to produkt Info-Service. Była to niezależna przeróbka wersji 2.04 programu, wydanej rok wcześniej. Jednakże skala "drugiego obiegu" oprogramowania była tak wysoka, że wiele osób uznało zmodyfikowane 2.04 za po prostu kolejną wersję TAGa, najwyraźniej rozprowadzaną równolegle z "prawdziwym" wydaniem 2.07 i 3.1.

Zabezpieczenia przed kopiowaniem

Klucz produktu był bardzo liberalną metodą zabezpieczenia. W latach 80tych firmy Lotus i Microsoft stosowały bardzo agresywne metody zabezpieczenia przed kopiowaniem, rozprowadzając celowo błędnie sformatowane dyskietki, uniemożliwiając ich kopiowanie zwykłymi sposobami. Ponadto, poprawne działanie programu (np. Word 1.15) zależało od danych obecnych na nieprawidłowo sformatowanym obszarze. Jego brak lub niewłaściwe skopiowanie kończyło się… sformatowaniem dyskietki. Nośniki magnetyczne były przy tym szalenie zawodne, więc przy braku możliwości samodzielnego wykonania kopii zapasowej robiło się nerwowo. O technikach przełamywania zabezpieczeń w starym oprogramowaniu pisałem na dobrychprogramach w 2015.
Zatem stosowanie kluczy produktu nie wynikało z tego, że techniki zabezpieczeń nie były wystarczająco rozwinięte. Przeciwnie - były szalenie skomplikowane, ale ich użycie kończyło się serią problemów i buntem użytkowników.