sobota, 12 kwietnia 2008

Graphrator 0.9 - recenzja

Witam wszystkich fanów programowania (i nie tylko). Dziś chciałbym zaprezentować zgoła inny rodzaj notki, niż pozostałe. Otóż przedstawię Wam recenzję jednego z największych projektów SceNtriC'a, który sukcesywnie wprowadził w życie, korzystając z dobrodziejstw języka C++. Mowa oczywiście o Graphratorze (obecnie w wersji 0.9). No cóż, po tym typowym wstępie, od którego powiało sztywnością i nudą przejdźmy do owej recenzji. Zaznaczam, że jest ona zrobiona w sposób "niepoważny", w konwencji skrajnego poczucia humoru (czyt. mojego). Miłego czytania!

I. Salon
Aby zostać posiadaczem najnowszej wersji programu, trzeba znać adres www devBloga SceNtriC'a. A zatem: http://noi... yhym... http://pseudodev.blogspot.com . Po wejściu na bloga, natrafiamy na ostatnią notkę. W czasie testów traktowała ona o wydaniu nowej wersji. Należało jedynie kliknąć w link prowadzący do serwisu hostingowego, jakim jest ch******.pl (ocenzurowano, nie będziemy reklamy robić! Chociaż link do niego i tak znajdziecie na tym blogu). Tam należało odnaleźć odpowiedni plik i go pobrać. Uff... Gotowe. Co dalej?


II. Nadwozie
Na moim twardym dysku znalazł się plik o jakże wspaniałej nazwie Graphrator_0.9.exe . Po podwójnym kliknięciu pojawił się standardowy programik do obsługi archiwów SFX stworzonych przez program WinRAR. Jak na początki - całkiem nieźle, aczkolwiek przy tej wadze (nie chodzi o rozmiar, a o ważność, oczywiście) programu przydałby się już profesjonalny instalator. Póki co, można nawet użyć amatorskiego instalatora, jak chociażby wbudowany w system Windows iexpress. Posiada on wiele ciekawych funkcji, a po dodaniu odpowiedniego pliku *.bat lub *.exe i ustawieniu go jako uruchamianego po zakończeniu instalacji, można w łatwy sposób rozszerzać jego możliwości o uruchomienie programu, czy też utworzenie skrótu na pulpicie. Póki co - za wygląd paczuszki z zewnątrz: 3/5


III. Wnętrze - miejsce kierowcy
No cóż... Graphratora nie można nazwać limuzyną. Nie jest też wielkim rodzinnym combi. Program jest mały, zgrabny i służy tylko i wyłącznie dwóm celom - tworzeniu wykresów i... parzeniu herbaty! Drugą funkcję pozwolę sobie pominąć. Spójrzmy więc do małego wnętrza... jako pierwsze interesuje nas miejsce kierowcy. Fotel oraz kierownica są czarne, dość smutnawe z szarymi napisami. Wszystko w konwencji prostokątnej, ascetycznej, prostej... W skrócie: Wiersz Poleceń. Jak wiadomo, zazwyczaj bawimy się różnymi rzeczami w sposób, w który nie powinniśmy. Tak było i tym razem. Zamiast odchylić oparcie, kręcąc pokrętłem w tył, postanowiłem je poruszać po zupełnie innej osi - poziomo. Wpisanie literek 'lalala' do programu jako parametru skończyło się... ustawieniem fotela w domyślnej pozycji przy jednoczesnym poinformowaniu mnie, że mam... kręcić dalej, chociaż wcale tego nie oczekiwano! Może napisałem to nieco niezgrabnie. W skrócie - program nie wyrzuca błędu po wpisaniu błędnych danych - i tu wielki plus. Włącza domyślną funkcję - no i tutaj jest neutralnie. Ale jest i minus - program wypisuje w wierszu poleceń kolejne prośby o wpisanie zmiennych, chociaż wcale ich nie oczekuje! Pisze by pisać, i tyle. Zatem za miejsce kierowcy - 3/5

IV. Wnętrze - deska rozdzielcza
Program uruchamia się w konwencji niebieskiego tła i kolorowych kreseczek w jasnych odcieniach. Barwami można sterować poprzez odpowiedni skrót klawiszowy. Oprócz zmieniającej kolor deski rozdzielczej, model posiada wiele funkcji. Umie wyświetlać tak wiele różnych rzeczy... Za zawartość deski rozdzielczej - 5/5

V. Obsługa
Aaaa... i tu się pojawia problem. Otóż program jest sterowany w całości poprzez skróty klawiszowe. Owszem, można używać menu prawokliku myszy, jednak jest to dość niewygodne (acz czasem się przydaje). Poza tym, skrótów jest tak wiele, że można się naprawdę pogubić. Plik ReadMe posiadający listę używanych skrótów oraz wbudowany w program system pomocy są minimalnie niedokładne - za łatwość obsługi mogę dać jedynie 3/5

VI. Dokładniejsze spojrzenie na deskę rozdzielczą
Jakby się przyjrzeć desce rozdzielczej, zdaje się ona być minimalnie krzywa. I co ciekawe, nie jest to złudzenie. Wyświetlane w okienku dane są wyświetlane krzywo. Jest to efekt podobno zamierzony, jednak można mu przecież było zapobiec. Jak wiadomo, wszystkie ekrany są zbudowane na bazie prostokąta, niebędącego kwadratem. Może być to ekran 4:3, 16:9, 16:10... Za wygląd deski rozdzielczej mogę dać 4/5. Ot - nie dopracowana, zgrzyta, strzela i puka w czasie jazdy.

VII. Ogólna ocena
Ogólnie, Graphrator jest bardzo przyjemnym i użytecznym programem. Zatem szybko, pozostałe punkty w zestawieniu:
  • Pomysł: 6/5 jeden punkt bonusowy,
  • Wykonanie: 5/5 chodzi tutaj o bezawaryjność oraz stopień zaawansowania. SceNtriC pobił samego siebie jeśli chodzi o zaawansowanie, a bezawaryjność jest niezaprzeczalna - w porównaniu do jednej z poprzednich wersji, nie powoduje już wyskakiwania BSOD'a na notebookach,
  • Możliwości: 5/5 czego chcieć więcej?,
  • Jakość: 3,6/5 zawsze mogło być lepiej; ta ocena to średnia ważona z punktów II. - VI.,
  • Idiotoodporność: 3/5 jest równa punktowi III.,
  • Poprawność działania: 2/5 program ma swoje za ekranem, ale o tym w następnym punkcie.
W sumie, Graphrator 0.9 zasłużył na 24,6/30 punktów. Jest to wynik całkiem przyzwoity - 82% punktów, czyli w szkole ocena byłaby na granicy 4 i 5, zależnie od nauczyciela. Ja wystawiam 4+.

VIII. Zauważone błędy
Oj jest ich troszkę. A przynajmniej było w testowanej wersji - podobno część z nich została już wyeliminowana. A co takiego źle działa?
  • Funkcja wyświetlania siatki działa nieprawidłowo - siatka zamiast w tle, jest nakładana "na wierzch", powodując częściowe przycinanie napisów (ale co ciekawe, wykresu nie narusza),
  • Tryb pełnoekranowy to całkiem przydatna funkcja... do momentu, gdy chcemy go wyłączyć - jest to niemożliwe!,
  • Program potrafi wyszukiwać dane tylko dla obszaru wyświetlanego aktualnie na ekranie - jeżeli funkcja ma przykładowo miejsce zerowe choćby o piksel poza ekranem - nie uwzględni go (co można zaobserwować tutaj),
  • Użycie opcji "wartość bezwzględna Y" powoduje "upośledzenie" opcji określania monotoniczności funkcji (można to zobaczyć tutaj; mysz jest po lewej stronie pod napisem, PrintScreen ją ukrył),
  • Opcja obliczająca pole między osią a linią wykresu poprzez całkowanie jest minimalnie uszkodzona - przy przedłużaniu pola w lewo, "linie" pola poruszają się płynnie, piksel po pikselu, zatrzymując się w rzeczywistym miejscu granicznym obliczanego pola, natomiast w kierunku przeciwnym, pojawiają się one co kilka pikseli, co powoduje niewielką niedokładność między zapisanymi danymi, a oznaczeniami na wykresie.
To tyle jeżeli chodzi o moje pochwały i narzekania (głównie narzekania, bo od tego są krytycy!) na temat Graphratora. Ogólne wrażenie jest pozytywne, taka jest także ocena - 4+. Mogę jedynie dodać, że program ma olbrzymi potencjał i mógłby nawet wejść do użycia w szkołach, jednak najpierw musi zostać wydana wersja 1.0 z naprawionymi wszystkimi błędami (tymi opisanymi i nieopisanymi przeze mnie, zauważalnymi i niezauważalnymi).

Jeszcze tylko jedna informacja - recenzja ta podzielona jest na 8 części. Jest to zabieg zamierzony. Osoba, która zgadnie, dlaczego tak zrobiłem dostanie... moje szczere gratulacje i dedykację w jednej z notek (och tak! Tłum szaleje! Nagrody są niesamowite, nie sądzicie?).

Pozdrawiam - Shirou Noir

3 komentarze:

Anonimowy pisze...

"przy tej wadze programu przydałby się już profesjonalny instalator"
nie, nie i jeszcze raz nie - ja bym tutaj dał 5/5, osobiście nie toleruję instalatorów w tego typu programach, przez to jest tylko mnóstwo śmieci w folderach systemowych, na pulpicie itp., a skrót samemu zrobić zawsze można.

Najgorzej oceniłbym wygodę korzystania z programu, w szczególności obecność wiersza poleceń. Gdyby były graficzne przyciski i textboxy służące do wpisywania danych to program byłby znacznie wygodniejszy w użyciu, jednak jak wiadomo nie to było tutaj głównym celem :)

Poza tym w większości zgadzam się z Twoimi opiniami i gratuluję SceNtriC'owi (prawie) ukończenia programiku i oceny ;)

SceNtriC pisze...

Po pierwsze, dziękuję za recenzję i za to, że kogokolwiek ten projekt zainteresował. Wprawdzie Shirou Noir dał mi już wskazówki podczas przywatnej rozmowy, ale i tak miło poczytać coś na ogólnym widoku.

"Póki co, można nawet użyć amatorskiego instalatora, jak chociażby wbudowany w system Windows iexpress" - w sumie zgadzam się z Masklem, ale i tak wypróbuję ten program. Najwyżej się do tego nie zastosuję, a zawsze można coś poprawić. Na pierwszym miejscu będzie wygoda.

"Ale jest i minus - program wypisuje w wierszu poleceń kolejne prośby o wpisanie zmiennych, chociaż wcale ich nie oczekuje!" - powinno być poprawione, aczkolwiek jeszcze w kod nie patrzyłem. Matura czeka.

" Umie wyświetlać tak wiele różnych rzeczy" - i tak jeszcze za mało.

Co do klawiszologii to rzeczywiście - mea culpa, źle zaprojektowałem od samego początku. Trudno jednak całkowicie się od tego odwrócić, ale postaram się to choć trochę ułatwić.

Jeśli chodzi o nieproporcjonalność osi, to istotnie - jest to efekt zamierzony. Mimo dziwnego wyglądu (szczególnie to widać na kwadracie), nie zamierzam tutaj nic zmieniać.

"SceNtriC pobił samego siebie jeśli chodzi o zaawansowanie" - dziękuję, faktycznie pobiłem - już dwa tygodnie nie spojrzałem w kod i nie pamiętam, co gdzie się zmieniało.

"Możliwości: 5/5 czego chcieć więcej" - gołych pań i różnych śmiesznych rzeczy jak prawidłowo działającej funkcji ułamkowej.

"Ja wystawiam 4+." - a ja bym sobie postawił mocne 3.

"Funkcja wyświetlania siatki działa nieprawidłowo - siatka zamiast w tle, jest nakładana "na wierzch", powodując częściowe przycinanie napisów (ale co ciekawe, wykresu nie narusza)" - wykresu nie rusza, bo jest wyświetlana przed wykresem - nie zwróciłem na to uwagi, postaram się coś z tym zrobić.

"Tryb pełnoekranowy to całkiem przydatna funkcja... do momentu, gdy chcemy go wyłączyć - jest to niemożliwe!" - racja, ale tutaj ciężko będzie cokolwiek zmienić. OpenGL jest oporny na moje wezwania.

Co do miejsc zerowych, to niedawno doszedłem do wniosku, że to faktycznie można zmienić. Wszystko w przyszłości.

"przy przedłużaniu pola w lewo, "linie" pola poruszają się płynnie, piksel po pikselu, zatrzymując się w rzeczywistym miejscu granicznym obliczanego pola, natomiast w kierunku przeciwnym, pojawiają się one co kilka pikseli, co powoduje niewielką niedokładność między zapisanymi danymi, a oznaczeniami na wykresie" - tutaj raczej kiepsko widzę poprawę. Z punktu widzenia kodu i logiki jest wszystko w porządku.

"mógłby nawet wejść do użycia w szkołach, jednak najpierw musi zostać wydana wersja 1.0 z naprawionymi wszystkimi błędami (tymi opisanymi i nieopisanymi przeze mnie, zauważalnymi i niezauważalnymi)." - były takie plany, ale będzie ciężko z tymi błędami. Szczególnie funkcje cyklometryczne sprawiają ogromne problemy, a także funkcje ułamkowe.

8 części notki nie tyczy się czasem jakiegoś filmu? Może to coś związanego z anime, w końcu je lubisz.

Dziękuję jeszcze raz za recenzję i serdecznie wszystkich pozdrawiam. Kiedy dziesiąta wersja? Nie wiadomo - śledzcie mego devbloga (choć mało się tam na razie dzieje).

Noir Shirou pisze...

Znając życie, poza Wami dwoma nikt więcej tutaj nie napisze ;] No więc niestety, nikt nie odpowiedział poprawnie na pytanie o 8 części. A chodziło oczywiście o...

Adresy IP składają się binarnie z oktetów. Oktet - 8 xD I tyle :D