czwartek, 25 lutego 2010

2 mini recenzje

Dzisiaj chciałbym podzielić się dwoma opiniami.

Jakiś czas temu, dzięki udziałowi w konkursie organizowanym przez CDA, stałem się posiadaczem gry Burnout Paradise: Ultimate Edition.
Gra na początku robi świetne wrażenie. W menu wita nas utwór Paradise City zespołu Gun'N'Roses. Zaraz na początku natrafiamy na "wyścig" w trybie "Pirat", który można zobaczyć na podlinkowanym filmiku. Co chwila do dyspozycji jest nowy wóz.
I chciałoby się powiedzieć, że później jest tylko lepiej, ale niestety tak nie jest.
Kolejne wozy różnią się dodaniem punktu tu, czy tam do statystyk (prędkość, dopalacz i wytrzymałość) oraz przyczepnością (częścią łatwo jest driftować, a w innych bez ręcznego ani rusz). Gracz nie ma też w tej kwestii żadnego pola do popisu.
Po początkowym zachwycie, przychodzi szara rzeczywistość i część trybów rozgrywki okazuje się nie grywalna.
Paradise City po którym się ścigamy wcale nie jest taką wielką metropolią na jaką początkowo wygląda. Tak naprawdę do dyspozycji dostajemy obszar, który można pokonać w jakieś dwie minuty. Po przekątnej będzie trzy i pół minuty. Zwyczajnie brakuje tras po których się ścigamy.
Muzyka, tutaj chyba nudzimy się najwolniej. Wybór jest faktycznie spory i akurat trafia w mój gust.
Grę "ukończyłem", to jest dotarłem do punktu, w którym pogratulowano mi jej ukończenia. W praktyce mogłem jeszcze całkiem sporo zrobić, ale mi się znudziło. Wolałem w końcu skończyć Supreme Commander: Forged Alliance.

Druga "recenzja" będzie z nieco innej bajki. Otóż miałem wczoraj niezwykłą przyjemność obejrzeć w Teatrze Powszechnym w Łodzi komedii "Kolacja dla głupca". Nie jestem znawcą, więc nie odważę się ocenić przedstawienia pod kątem technicznym. Sama sztuka jest ciekawa, bardzo śmieszna i naprawdę warta obejrzenia. Spektakl trwa dwie i pół godziny w tym jedna przerwa.

czwartek, 18 lutego 2010

Procenty

Jakiś czas temu Xion na swoim blogu zamieścił wpis Pr0centy, gdzie wyraził nadzieję: "Wszyscy oczywiście wiedzą, co to znaczy, że jedna wielkość stanowi określony procent drugiej - mam nadzieję, że w celu zdobycia tej wiedzy wciąż wystarczy skończyć jedynie podstawówkę.". Ponieważ moja żona aktualnie pracuje w gimnazjum, gdzie uczy języka niemieckiego, to mam informacje z dość wiarygodnego i aktualnego źródła. Procenty są teraz nauczane w drugim semestrze pierwszej klasy gimnazjum :(
Choć do wpisu Xiona pojawiły się komentarze ukazujące znacznie bardziej ponury obraz: "W niektórych gimnazjach to było, w większości - dopiero szkoła średnia.". Osobiście trochę trudno mi uwierzyć, żeby polska oświata, stoczyła się aż tak bardzo, ale nic nie jest wykluczone.

Odnośnie samych procentów nazwa, jak to zwykle bywa, mówi sama za siebie. Po angielsku jest percent, co jest zlepkiem łacińskich per i centum, czyli "na" "sto". Nie wiem jak łacińskie per zamieniło się u nas w pro, ale i to słowo, oznaczające "dla" pasuje całkiem dobrze. Mówiąc "99 procent", mówimy tak naprawdę "99 na/dla 100". Co chyba wyjaśnia wszystko każdemu, kto wie co to jest ułamek.

poniedziałek, 15 lutego 2010

Pozory mylą

W pracy trafiło mi nieco zaskakujące zadanie. Otóż dostałem silnik elektryczny, kontroler do tego silnika, oraz polecenie:


  • Pan zrobi tak, żeby z PC'ta kontrolować ten silnik

  • A dokumentacja gdzie ?

  • Na tej płycie, jest tam też jakiś soft.

  • Ok.


4 godziny później.

  • Na tej płycie nie ma dokumentacji, to jakiś katalog handlowy.

  • Niemożliwe.

  • Na stronie internetowej też nie ma dokumentacji.

  • Niemożliwe.


Po dwóch tygodniach (plus okres świąteczny, w którym ja pracowałem) przysłali dokumentację i dedykowany program komunikacyjny.
Zdobyłem wtyczki, przylutowałem kable, wszystko spiąłem zgodnie z dokumentacją i ostatecznie udało się cały zestaw uruchomić. Kontrolując napięcie na kilku pinach mogę regulować kierunek i prędkość.
Przyszedł czas, aby podłączyć to cudo do PC. Komunikacja ma odbywać się poprzez port szeregowy RS232. I tu zaczęły się schody. Na początku stycznia nie można nigdzie dostać żeńskich wtyczek, panuje globalny brak towaru pod tytułem „Remanent”.
Ostatecznie udało mi się połączyć kontroler z komputerem, dzięki zakupowi ostatniej sztuki dostępnej w okolicach uczelni. Uruchomiłem ten dedykowany program i lipa, nie działa. Po wielu kombinacjach odkryłem przyczynę. Domyślna wartość parametru baud rate nie umożliwia komunikacji. Prawidłowa wartość to powalające 110 bodów na sekundę !?
Potem okazało się, że program się wiesza przy próbie modyfikacji parametrów pracy. Pomyślałem, więc o nowszej wersji. Znalazłem 2.03, miałem 0.06 !? Ta nowsza jest jednak tylko po japońsku i również nie działa !?
Po straceniu mnóstwa czasu, uznałem, że skoro ten soft nie potrafi nawet poprawnie rozpoznać kontrolera (wyświetla złą nazwę) to chyba to po prostu nie ma prawa zadziałać. Został wysłany e-mail do dostawcy z prośbą o pomoc. Po tygodniu odpowiedział mi przedstawiciel niemieckiego oddział, że oczywiście udzielą nam wsparcia, ale on aktualnie jest w Istambule i żebym póki co sprawdził czy wtyczki są dobrze podłączone !?
Minęły już trzy tygodnie od oryginalnego maila i wciąż nie dostałem żadnych informacji. Firma jest japońska, a oddział niemiecki, wydawało mi się, że nasza "współpraca" będzie nieco rzetelniejsza. Ehh.



Z zadań bliższych memu sercu, napisałem program do odbierania danych z portu szeregowego i przekazujący je do nazwanego pipe'a. Przy tej okazji odkryłem kilka ciekawostek:


  • system Windows daje procesowi wyłączny dostęp do portu szeregowego. Ponieważ typowy desktop ma tylko jeden taki port, debugowanie aplikacji jest utrudnione. Wyjść jest kilka:

    • podłączyć inne urządzenie,

    • zdobyć drugi port szeregowy, na przykład taki pod usb,

    • użyć loopback, proces może jednocześnie pisać i czytać z portu.


    Najbardziej polecam drugi port, choć powodował na „moim” komputerze dość regularne restarty :(

  • wszystkie testy jakie wykonałem pozwalają mi sądzić, że pipe'y (wykorzystywane lokalnie) są w zasadzie niezawodne i stosowanie do nich dodatkowych protokołów mija się z celem. Trzeba jedynie zapewnić, że dane będą pobierane w miarę równomiernie do ich zapisywania, aby nie dopuścić do przepełnienia bufora,

  • memcpy nie działa poprawnie, gdy bufor źródłowy i docelowy się pokrywają, lepiej użyć memmove.



I to by było wszystko na dziś.