Projektowanie Graficznych Interfejsów Użytkownika
Transkrypt
Projektowanie Graficznych Interfejsów Użytkownika
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło 1 Różnorodność interfejsów użytkownika Kategorie interfejsów użytkownika Internet: Aplikacje – strony domowe, – biurowe, – sklepy internetowe, – inżynierskie / naukowe, – serwisy korporacyjne, intranet, – grafika komputerowa, – programiści, – przemysłowe (magazyny, sterowanie itp.), – systemy ogólnego przeznaczenia. – serwisy bankowe, – serwisy informacyjne, – wyszukiwarki, – blogi. Urządzenia: – multimedialne, – pda / telefony komórkowe, – bankomaty. 2 Ograniczenia Techniczne ● Aplikacje internetowe: – protokół bezstanowy (tzw. cienki klient), – bezpieczeństwo, – ograniczone możliwości dostępu do danych, (problem okienek dialogowych) – problem z nawigacją (wygodne do formularzy, ale trudne wypełnianie danych w tabelach, dwuklik myszką), – kontrola przycisku Wstecz, – ograniczone możliwości współpracy z urządzeniami interfejsu użytkownika, – kompatybilność przeglądarek, – itd. 3 Ograniczenia Techniczne ● ● Aplikacje biurowe: – prostota obsługi, – szablony, automatyzacja zadań biurowych, – skróty klawiaturowe, – ergonomia interfejsu, – adaptacyjność dostosowanie do preferencji i zmieniających się potrzeb użytkownika użytkownika Systemy inżynierskie: – duże możliwości, – dopuszczalny skomplikowany interfejs. 4 Ograniczenia Techniczne ● ● Urządzenia (PDA, GSM, przemysłowe): – udostępniają tylko niezbędne funkcje, – brak myszki, – często brak klawiatury, – niestandardowe klawisze – brak możliwości dostosowania interfejsu przez użytkownika Systemy przemysłowe (SCADA): – ograniczona i bardzo specjalistyczna funkcjonalność, – bezawaryjność, – obserwowalność: czyli widoczność wszelkich usterek i awarii, wizualizacja procesów – BEZPIECZEŃSTWO - Spies 'infiltrate US power grid' By Maggie Shiels, Technology reporter, BBC News, Silicon Valley (http://news.bbc.co.uk/2/hi/technology/7990997.stm) 5 O czym będziemy mówić na kursie? ● ● ● ● Na niniejszym kursie skoncentrujemy się na interfejsach biznesowych, które stanowią znakomitą większość powstających aplikacji. Większość aplikacji pisanych na zamówieni dotyczy udostępnienia mechanizmów manipulacji danymi w bazie oraz wyświetlania raportów wynikowych. W przypadku takich aplikacji najłatwiej jest sformalizować pewne standardowe metodyki projektowania i wytwarzania. Aplikacje specjalistyczne wymagają zazwyczaj innych metodyk. Na przykład trudno sobie wyobrazić wzorzec projektowy MVC zastosowany do symulatora lotu. 6 Dlaczego graficzne interfejsy? 7 Interfejs Użytkownika Jest Ważny Interfejs wpływa na odbiór programu/strony przez użytkowników. – Użyteczne oprogramowanie lepiej się sprzedaje. – Nieużyteczne strony są szybko porzucane. – Do estetycznego / użytecznego programu z większą przyjemnością się wraca (np. z przerwy na kawę :-). GUI JEST WAŻNY Interfejs jest często niedoceniany, traktowany powierzchownie, bezkrytycznie, zwłaszcza przez programistów, dla których ważne są algorytmy i struktury danych. – Użytkownicy często obwiniają siebie za błędy w projekcie interfejsu. („Argh, znowu zapomniałem, że muszę wcisnąć Zapisz. Muszę jeść mniej masła!”) – Osoby decydujące o zakupie/projekcie systemu zazwyczaj nie są końcowymi użytkownikami, dlatego często nie dbają o ważne szczegóły. 8 Słaby projekt dużo kosztuje... To truizmy, ale należy o nich wspomnieć: – Czas użytkownika! Koszt czasu użytkownika wcale się nie zmniejsza zgodnie z prawem Moore'a. (natomiast: "moc obliczeniowa komputerów podwaja się co 18 miesięcy", czyli należy automatyzować jak najwięcej czynności) – Utrzymanie systemu! Należy poświęcić więcej czasu na projekt, bo zapłaci się za niedokładność później, podczas utrzymania systemu. Zły projekt i podział na komponenty wizualne potrafi utrudnić rozwój. – Bezpieczeństwo! Błędny interfejs powoduje wypadki! ● ● Therac-25 (http://en.wikipedia.org/wiki/Therac, Nancy Leveson, “Medical Devices: the Therac-25”, 1995, http://sunnyday.mit.edu/therac-25.html) System radarowy USS Vincennes (Peter Neumann, “Aegis, Vincennes, and the Iranian Airbus“, Risks v8 n74, May 1989). 9 Interfejs Użytkownika – Za mało poświęcamy mu uwagi Coś na pocieszenie: Nie jest łatwo... – Nie jesteś użytkownikiem. ● ● – Większa część inżynierii oprogramowania zajmuje się komunikacją między programistami (specyfikacje, modele obiektowe, biblioteki, etc.). UI (Interfejs Użytkownika) zajmuje się 'tylko' komunikacją z użytkownikiem. Użytkownik ma zawsze rację... ● ● Jeśli użytkownik ciągle popełnia błędy podczas używania programu, to najprawdopodobniej winny jest projekt. ... ale niestety użytkownik czasem nie ma racji, ponieważ ma zbyt małe doświadczenie i wiedzę! Nie traktujmy każdego użytkownika jak 'eskperta'. 10 Dobry interfejs też kosztuje Szacuje się, że wytworzenie UI stanowi 50%: – czasu poświęconego na projekt – czasu na implementację – kosztów / czasu utrzymania systemu – rozmiaru całkowitego kodu systemu Redukcja nakładów tworzenia UI: – Komponenty (kontrolki, databinding, itp.) – Ponowne wykorzystanie (widoki obiektów, itp.) – Maksymalnie uniwersalne komponenty (DBGrid) – Automatyzacja generowania interfejsów (MS Access, Delphi ECO) – DOBRY PROJEKT 11 Interfejs Użytkownika – Na zwraca się uwagę? Funkcjonalność – ergonomia, prostota obsługi, czytelność prezentowanej informacji, realizacja określonych zadań itp. Odporność na błędy – stabilność, powtarzalność, konsekwencja, zgodność... Estetyka – odbiór aplikacji przez użytkowników, czy danej aplikacji używa się z przyjemnością i chętnie do niej wraca, – odpowiedni dobór kolorów i wyróżnień tak aby nie utrudniały odbioru przedstawionej informacji. Dostępność – czy nasza aplikacja może być wykorzystywana przez osoby z ograniczonymi możliwościami fizycznymi. 12 HCI – Komunikacja Człowiek-Komputer ● ● Dyscyplina zajmująca się badaniem i ogólnymi zasadami projektowania metod interakcji człowieka z komputerem – głównym zadaniem HCI jest udoskonalenie użyteczności produktów informatycznych – dobór funkcjonalności dopasowanej do potrzeb użytkownika – organizacja pracy z komputerem (np. zespołowej) – wpływ technologii informatycznych na życie codzienne użytkowników HCI wykorzystuje narzędzia badawcze z: – ● nauki techniczne i psychologia, marketing, socjologia, antropologia, neurolingwistyka Ten wykład będzie nawiązywał do HCI, ale będzie skoncentrowany na aspektach praktycznych i technicznych. 13 Powiedz Kolory Czcionki Na Głos Na początek mały test. Proszę głośno powiedzieć kolory w jakich napisane są słowa. Książka Ołówek Slajd Okno Samochód Kapelusz 14 Powiedz Kolory Na Głos Ponownie Proszę ponownie głośno powiedzieć kolory w jakich napisane są słowa. Niebieski Zielony Pomarańczowy Czarny Czerwony Żółty Jest to efekt Stroopa demonstrujący wielokanałowe przesyłanie informacji. Wniosek: Dodatkowe bodźce powinny wzmacniać podstawowe, a nie konkurować z nimi. Nie jesteśmy w stanie łatwo skoncentrować się na pojedynczym bodźcu. Automatycznie działają na nas wszystkie. 15 Koszmarki Cel: – wprowadzenie w problematykę – wytworzenie wrażliwości na typowe błędy i niekonsekwencje – przedstawienie błędów w komercyjnych produktach 16 Interfejs Użytkownika - Galeria Niesławy (ang. hall of shame) W pełni graficzny. Myszka. WYSIWYG. Długi komunikat pomocy. Dziwaczny interfejs. Scrollbar - Suwak 17 Poprawiony Interfejs Lista wyboru (Listbox) udostępnia zmianę stylu dla sporadycznych jak i stałych użytkowników. Swobodny wybór dla stałych użytkowników. Niepotrzebny jest żaden komunikat pomocy. 18 Więcej Galerii Niesławy powiększ A najgorsze jest to, że programista napracował się bez sensu... :-( 19 Galeria Sławy czy Niesławy Brak menu. Dynamiczne klawisze Skrótów. Czy użytkownik zawsze potrzebuje dostosowywać aplikację? Gdzie jest granica rozsądku? 20 Przykłady OzWin II – program do czytania wiadomości offline (Compuserve Information Service) SimCity 2000 firmy Maxis. Przyciski, które mają podmenu dostępne po długim wciśnięciu przycisku myszki. 21 Przykład Nawigacja za pomocą klawisza Tab. – (Unisyn's Automate Pro – program do automatyzacji zadań dla Windows NT.) 22 Przykłady Pomoc kontekstowa jest bardzo potrzebna, ale przesada, a zwłaszcza długie komunikaty mogą doprowadzić do frustracji. 23 Przykłady Wybór kontrolki jak najbardziej właściwy, ale jednostki pozostawiają wiele do życzenia. (Internet Explorer 3.0 – Rozmiar Cache) Instalacja programu PowerSearch. Nie ma problemu, gdy użytkownik wybierze katalog domyślny? A co gdy będzie chciał zainstalować gdzie indziej? A tak w ogóle, czy nie dałoby się sprawdzić gdzie jest zainstalowany Word? 24 Przykłady Użytkownicy zdecydowanie szybciej przeglądają listy w kierunku od góry do dołu (heurystyka). Tutaj Microsoft jednak zmusił ich do przeglądania dodatkowo od lewej do prawej. (Internet Explorer 3.0) 25 Przykłady Program: HTML Transit Poświęcanie 25% powierzchni okna na przyciski komend? – Staraj się nigdy nie mieć dwóch przycisków o takim samym znaczeniu. 26 Przykłady PowerBuilder – udostępniał pomoc kontekstową i pomoc w Pasku Statusu. – Problem: pomoc kontekstowa była pokazywana z opóźnieniem ok 2s, ale również pomoc w pasku status była pokazywana z opóźnieniem. – Skutek: po zmianie pozycji myszy, w pasku statusu była nieaktualna informacja. 27 Przykłady Przyciski powinny być nieaktywne! Możemy być pewni, że programiści Microsoft potrafią dynamicznie zmieniać kolory ikon. Czy zatem wpływ na wyeliminowanie 'szarych', nieaktywnych ikon mieli graficy Microsoft? 28 Przykłady Microsoft Excel – Wytnij i Wklej Po wciśnięciu wytnij, fragment pozostaje nienaruszony do momentu aż go nie wkleimy w nowym miejscu. Ponieważ 'wszyscy' znają Excela więc spodziewam się gorącej dyskusji. :-) 29 Przykłady Okna z suwakami! Horror Accessa? „Unfortunately, visit any programming support forum, and you'll see an ever-increasing number of new programmers asking how to create scrollable forms. The only appropriate answer is, "You don't."” PeopleSoft 30 Przykłady Chyba ktoś nie przeczytał o kontrolce listy wyboru? (Listbox?) 31 Przykłady Znajdź użytkownika w rozwijalnej liście zawierającej kilka tysięcy nazwisk? Są lepsze sposoby walidacji, czy użytkownik wpisał rzeczywiście cyfry! (np.: InputMask) 32 Przykłady MS Word: Wykluczające się opcje. Dlaczego nie zostały użyte komponenty RadioButton. Należy zaznaczyć, że bardzo nam to nie przeszkadza i szybko jesteśmy się w stanie tego nauczyć, ale jest to jednak niespójność. Sierpień 1999 edition of the Visual Basic Programmer's Journal 101 Tech Tips for VB Developers Niewielki fragment kodu może ograniczyć wybór użytkownika do jednej pozycji w danym momencie. Taka zmiana jest użyteczna gdy chcesz użyć checkboxów zamiast radiobutton. Ostatnie zdanie powinno brzmieć: Ta zmiana jest użyteczna gdy chcesz zmylić użytkownika. 33 Przykład Użytkownicy są przyzwyczajeni do okienek potwierdzeń! Większość wciska ENTER bez czytania. Tym bardziej, że poniższe okno ma więcej niż dwie linijki tekstu :-). ENTER? ESCAPE? A w oknie są przyciski OK i Cancel? MacOS rozwiązał to inaczej: często klawisze nie są obsługiwane. Tylko kliknięcie myszką zamyka okno. 34 Przykłady Internet Explorer, Visual Studio. Czy kontrolka Checkbox jest niezbędna? Przecież i tak nie mamy żadnego wyboru? No tak. Projektant chciał abyśmy uniknęli automatycznego wciśnięcia klawisza enter, enter, enter... 35 Przykłady Quiz: Ilu użytkowników wciśnie Enter? Ilu Next? A ilu Finish? Oracle's SQL*Net Easy Configuration Quiz 1: Jak wyjść z aplikacji? Quiz 2: Po co ten komunikat jeśli nie można anulować decyzji? 36 Przykłady Windows Help Designer. Programista zapomniał zaznaczyć opcji automatycznego sortowania. Instalacja modemu U.S. Robotics: W dodatku tylko opcje direct dial i postal mail powinny być aktywne. 37 Przykłady Kontynuuj używanie, czy proces zamykania? Czym różni się Abort od Cancel? Proces tworzenia tabeli w MS Access dla nowego użytkownika może stać się nie lada wyzwaniem? 38 Przykłady Xblock – gra. Kto chciałby zająć miejsce numer 0? IBM's Audiostation Quiz: Co się stanie gdy wciśniemy Power? 39 Przykłady Rozmieszczenie przycisków. Ok czy OK? Po co używać ALT+O i ALT+C, przecież i tak większość będzie wciskać ENTER i ESC. 40 Przykłady Idiotyczne komunikaty: ClearCase, a source-code control system from Rational Software: NT workstation Quicken's Turbo Tax – anulowanie niemalże każdej czynności: 41 Przykłady Odpowiedni dobór kolorów... (Easy CD Creator) Błąd. Sukces. Zbyt mały kontrast utrudnia używanie aplikacji dla niepełnosprawnych. (Accessibility) (Apple's QuickTime 4.0 Player) 42 Przykłady Nieprawidłowe użycie kontrolek: – (uninstalling „Freeloader”, an off-line internet browser) „Classified”, a shareware diary program: – nie można wprowadzać daty za pomocą klawiatury – zmienić rok można tylko za pomocą paska 43 Przykłady Microsoft's NT Operating System: – Od kiedy sukces jest błędem? Microsoft's Access 95: – Komunikat pojawia się przy próbie uruchomienia kwerendy, która w wyniku nie modyfikuje żadnych wierszy. 44 Przykłady Pretty Good Privacy: 45 Przykłady Nie istniejący obiekt... – nie, to tylko brak uprawnień do odczytu – Nie wprowadzaj użytkownika w błąd. 46 Przykłady ● Moodle – system do tworzenia serwisów dydaktycznych ● Spróbuj zmienić opis dotyczący zajęć... ● Nie ukrywaj funkcjonalności przed użytkownikiem. 47 DEMO 48 Bruce "Tog" Tognazzini is a principal with the Nielsen Norman Group, the "dream team" firm specializing in human-computer interaction. Tog was lead designer at WebMD, the supervertical start-up founded in February, 1996 by Jim Clark, founder of Silicon Graphics and Netscape. Before that, Tog was Distinguished Engineer for Strategic Technology at Sun Microsystems. During his 14 years at Apple Computer, he founded the Apple Human Interface Group and acted as Apple's Human Interface Evangelist. Tog has published two books, Tog on Interface and Tog on Software Design, both from Addison Wesley, and is currently publishing the free webzine, "AskTog." Bruce Tognazinni Podstawy projektowania interakcji 49 Wytyczne Bruce'a Tognazziniego Na podstawie tłumaczenia: http://www.eioba.pl/a2186/podstawy_projektowania_interakcji (Eryk 'eof' Orłowski) ● ● ● ● ● ● ● ● 1. Oczekiwania 2. Autonomia 3. Nierozpoznawanie kolorów 4. Spójność 5. Wartości domyślne 6. Efektywność użytkownika 7. Interfejsy dla odkrywców 8. Prawo Fitts’ów ● ● ● ● ● ● ● ● 9. Obiekty interfejsu użytkownika 10. Redukcja opóźnienia 11. Łatwość uczenia 12. Użycie metafor 13. Ochrona pracy użytkowników 14. Czytelność 15. Śledzenie użytkownika 16. Widoczna nawigacja 50 Oczekiwania, Autonomia Oczekiwania – zaspokojenie potrzeb użytkownika Autonomia – swoboda = szybka nauka – paradoks braku ograniczeń – autonomia nie istnieje bez poczucia kontroli, a kontrola bez aktualnej informacji – przez wiele lat system operacyjny Macintosh pokazywał użytkownikom ikonę kosza, którego stan napełnienia wskazywał na nadchodzącą eksplozję, nawet po skasowaniu pojedynczego pliku... 51 Nierozpoznawanie kolorów, Spójność Nierozpoznawanie kolorów – nie wszyscy użytkownicy widzą kolory, – lub nie widzą jednego ze składników: czerwonego, niebieskiego lub zielonego Spójność – Poziomy spójności: ● ● ● ● ● ● ● 1. interpretacja zachowań użytkowników, 2. niewidoczne struktury, 3. niewielkie widoczne struktury, 4. ogólny wygląd aplikacji bądź usługi - ekrany powitalne (splash screens), 5. gama produktów, 6. spójność wewnętrzna, 7. spójność ogólna. 52 Niespójność, Niespójność – wyróżnienie obiektów, które zachowują się odmiennie – należy unikać uniformizacji obiektów odpowiedzialnych za różne zadania Najważniejsza jest spójność z oczekiwaniami użytkowników. – Można ją zapewnić wyłącznie w drodze testów z udziałem użytkowników. 53 Wartości domyślne, Efektywność użytkownika Wartości domyślne – powinny być łatwe do zmodyfikowania – wartości domyślne powinny być adekwatne do oczekiwanych danych - unikaj sformułowań typu "domyślna wartość" w polach wartości Efektywność użytkownika – ludzie kosztują znacznie więcej niż maszyny – czas z punktu widzenia użytkownika, a nie maszyny (prędkość podgrzewania wody 1:10 czy 1:11) – ankieta na dyskietkach czy papierowych formularzach 54 Efektywność użytkownika cd. – Etykiety poleceń, menu etc. poprzedzaj słowami kluczowymi. Dobrze: Wstaw Źle: Wstaw podział strony Dodaj stopkę Zaktualizuj spis treści – podział strony stopkę spis treści Dodatkowa informacja (dodaj, zaktualizuj) z lewego przykładu nie równoważy zalety szybkiego skanowania słów kluczowych. 55 Interfejsy dla odkrywców Interfejsy dla odkrywców – Daj użytkownikom dobrze oznakowane drogi i pozwól włączyć napęd na cztery koła. Staraj się nie więzić użytkowników w zamkniętej ścieżce danej usługi - oferuj raczej linię najmniejszego oporu. – Czasami konieczne jest dostarczanie rutynowych rozwiązań – Wskazuj użytkownikom wyraźnie i w sposób dla nich intuicyjny, gdzie znajduje się punkt wejścia ("start"). – Pozwalaj na odwracalność wykonywanych poleceń. – Zawsze udostępniaj możliwość cofnięcia wydanych wcześniej poleceń. (zamiast: Czy na 100% chcesz usunąć dokument?) – Badania dowiodły, że ludzie pracujący w "niebezpiecznym" środowisku popełniają dokładnie tyle samo błędów, ile popełniają w wyposażonym w odpowiednie zabezpieczenia. 56 Prawo Fittsa, Obiekty interfejsu użytkownika Prawo Fittsa – Czas potrzebny do osiągnięcia celu jest funkcją odległości i rozmiaru celu. Koncepcja pokazywania wyśrodkowanych w pionie podmenu: Źródło obrazka: http://www.asktog.com/columns/022DesignedToGiveFitts.html Obiekty interfejsu użytkownika – Obiekty użytkownika to foldery, dokumenty, kosz. – Pojawiają się w środowisku użytkownika i mogą, ale nie muszą 57 Redukcja opóźnienia Redukcja opóźnienia - Kiedy to możliwe, używaj wielu wątków w celu uniknięcia latencji. ● ● ● ● ● ● ● ● potwierdzaj kliknięcia wszystkich przycisków wizualnie bądź dźwiękowo w ciągu 50 milisekund wyświetlaj klepsydrę dla zadań wykonujących się w czasie pomiędzy 50 milisekund do 1 sekundy animuj klepsydrę, pokazując, że system pracuje (nie zawiesił się) wyświetlaj informację o szacunkowym czasie wykonywania zadania trwającego dłużej niż 2 sekundy informuj o postępach procesu absorbuj uwagę użytkowników oczekujących na wykonanie dłużej trwających procesów, na przykład wyświetlając informację o aktualnie wykonywanej czynności bądź czasie pozostałym do zakończenia informuj użytkownika dźwiękowo o zakończeniu procesów trwających dłużej niż 10 sekund, aby mogli wykonywać inne zadania poza aplikacją i powrócić do niej w odpowiedniej chwili uniemożliwiaj wielokrotne naciśnięcia przycisków. Ponieważ interfejsy stron www reagują z opóźnieniem, użytkownicy często klikają wielokrotnie w celu wymuszenia reakcji, co powoduje dalsze opóźnienia. 58 Łatwość uczenia Łatwość uczenia – W idealnej sytuacji produkty nie miałyby krzywej uczenia użytkownicy korzystając z nich po raz pierwszy osiągaliby poziom eksperta natychmiast. W praktyce nawet najprostsze aplikacje charakteryzują się krzywą uczenia. – Unikaj kompromisów. Użyteczność nie musi wykluczać łatwości uczenia i odwrotnie. Na początek zdecyduj, która wartość jest w danym przypadku istotniejsza i próbuj osiągnąć obie. Wzrost łatwości uczenia nie przychodzi jednak automatycznie wraz z łatwością użycia. 59 Użycie metafor, Ochrona pracy użytkowników Użycie metafor – Rozważnie wybieraj metafory, powinny one umożliwić użytkownikowi szybkie pojęcie szczegółów modelu koncepcyjnego aplikacji. Dobre metafory są historiami, tworzącymi obrazy w wyobraźni użytkowników. http://www.doradztwofinansowe.pl/ Microsoft Bob (rok 1995) 60 Ochrona pracy użytkowników Ochrona pracy użytkowników – Upewnij się, że użytkownicy nie mogą utracić efektów swojej pracy w wyniku: ● własnych błędów, ● błędów transmisji przez sieć, ● bądź z jakiegokolwiek innego powodu, który można przewidzieć bądź go uniknąć. 61 Czytelność, Śledzenie użytkownika Czytelność – Zapewniaj czytelność tekstu poprzez wysoki kontrast, najlepiej czarnego fontu na jasnym tle. Unikaj szarego tła. – Używaj wielkości fontów wystarczającej do swobodnego czytania tekstu na standardowych monitorach. – Zwracaj szczególną uwagę na potrzeby osób starszych. Śledzenie użytkownika – czy jest to pierwszy raz, kiedy użytkownik korzysta z aplikacji – gdzie znajduje się użytkownik – dokąd zmierza użytkownik – gdzie użytkownik był w czasie sesji pracy z systemem – gdzie był użytkownik przed opuszczeniem systemu 62 Widoczna nawigacja Widoczna nawigacja – Unikaj niewidocznej nawigacji. – Sieć www pełna jest serwisów wypełnionych wymyślnymi systemami menu, w efekcie niewidocznymi dla użytkownika. – Użytkownicy często nie mają możliwości dowiedzieć się więcej ponad to, na jakiej stronie się znaleźli. – Nawigacja powinna być maksymalnie uproszczona, przejrzysta i naturalna dla użytkownika. http://www.brillpublications.com/ 63 Interakcja Dziękuję za uwagę. Chcemy być coraz lepsi! Jeżeli coś cię zainteresowało napisz e-maila: – [email protected] Jeżeli coś cię bardzo znudziło napisz e-maila: – [email protected] Jeżeli zauważyłeś błąd napisz e-maila: – [email protected] 64