Myszy, balistyka, michałki i polityka

W związku z rosnącą liczbą afer i wpadek naszej rządowej administracji tudzież kompromitacją wielu osób z politycznych sfer ostatnio udzielił mi się pesymistyczny nastrój. Gdy po raz kolejny usłyszałem w mediach, że sąd ukarał Sejm za ustawę, która niezgodna była z Konstytucją, przez co zagroziła zdrowiu, życiu i żywotnym interesom, przekonany, że w naszym kochanym kraju uczciwy obywatel nie ma już racji bytu, popadłem w melancholię. Siedząc w fotelu, wpatrywałem się w monitor i niemrawo trącałem myszkę, błądząc bez ładu i składu po stronach serwisów internetowych. I trwałbym w takim marazmie nie wiadomo jak długo, gdyby uwagi mojej nie przykuł nagle sam kursor, a w zasadzie jego ruch i trajektoria, po jakiej ten się poruszał.

– Dlaczego rzeczy się mają tak, jak się mają? – zadałem sobie filozoficzne, choć niezbyt precyzyjne i zdrowe dla psychiki pytanie. – A konkretniej: dlaczego tenże kursor porusza się tak, a nie inaczej? Dlaczego przyspiesza wtedy, kiedy jeszcze tego nie chcę, albo zgoła zbyt późno, albo czemuż robi to tak ślamazarnie, choć suwak we właściwościach myszy ustawiłem na maksimum? I dlaczego jest to tylko suwak zmieniający prędkość? Gdzie zniknęły przyciski ustawiania akceleracji, znane z poprzednich systemów? Nurtujące pytanie zmusiło mnie do poszukiwań. Grzebiąc długo, acz wytrwale w nieprzebranych-zasobach-wiadomo-czego, dotarłem do podstaw, czyli źródeł, czyli dokumentu opisującego ruch myszki w Windows XP. Okazało się, że za tym, co robi sterownik, kryją się potężne przemyślenia, ba, może i badania nawet łączące w sobie kilka dziedzin – fizykę, ergonomię, psychologię, a być może również testy na inteligencję.

Jak myszka działa – to wiadomo. Ale jak działa sterownik? O, to wiedzą tylko spece od marketingu. Tak, spece od marketingu! To oni bowiem naciskają swoich kolesi projektantów, aby wprowadzili coś innowacyjnego. Ci z kolei męczą gości od ergonomii, żeby wymyślili coś nowego tam, gdzie niczego nowego wymyślić się już nie da. Ci ostatni wymyślają więc coś, nad czym mistrzowie programiści głowią się później miesiącami. W omawianym wypadku u podstaw ich działań leżała myśl prosta: sterownik poprzedni był “za trudny”: nikt nie rozumiał, po co jest tak wiele ustawień (akceleracja, suwaki dla dwóch osi osobno itd.). Użytkownicy nie są tak rozgarnięci, by to pojąć (badania nad inteligencją), odwzorowanie ruchu kursora na ekranie wymaga zbyt gwałtownych ruchów ręką (fizyka), a nikt nie chce się męczyć (psychologia). Trzeba więc zaimplementować rozwiązanie prostsze, ale nieustępujące poprzedniemu funkcjonalnością (ergonomia). I tak w Windows XP wprowadzono nowy sterownik, który zastąpił stary.

Tańcowały dwa Mickeje

Błądząc po Sieci, dotarłem do… Michałka. Ile wspólnego ma Michałek z myszką? Coż, zapewne tyle, ile Mickey z Mouse. Michaś bowiem (czyli z angielskiego Mickey) to nazwa jednostki, którą Microsoft określa impuls zmiany położenia myszy odpowiadający przebyciu określonej odległości. Tak na marginesie, określenie dpi (dots per inch, czyli punkty na cal), jakie podaje się często w odniesieniu do rozdzielczości myszek, jest błędne. Powinniśmy operować “michałkami”, no, ewentualnie impulsami.

Każdy ruch myszy generuje mniej lub więcej impulsów, które następnie w określonych interwałach czasowych są zliczane i służą na przykład do obliczenia przesunięcia kursora. Na ich podstawie można wyliczyć prędkość poruszania się myszy według wzoru:

V myszki = mickey x (częst. raportowania / rozdzielczość myszy)

Dla urządzeń wskazujących z magistralą USB typowa częstotliwość raportowania wynosi 125 Hz, typowa rozdzielczość myszy wynosi natomiast 400 impulsów (michałków) na cal (operujemy na calach, bo wszyscy na nich operują). W większości myszy dane opisujące ich ruch operują na ośmiu bitach, stąd w jednym pakiecie można przekazać informację o przesunięciu na odległość odpowiadającą maksymalnie 127 impulsom (typowo – od 0 do 50). Przykładowo: jeżeli urządzenie zgłasza pakiety ze stałą liczbą 3 michałków, wówczas prędkość fizyczna myszki wynosi 3x(125/400)=0.9375, czyli około 1 cala na sekundę. I odwrotnie – jeżeli poruszamy myszą z prędkością ok. 1 m/s, wówczas urządzenie zgłosi 127 impulsów (39,5 calax400/125=c.a.127). I taka maksymalnie może być prędkość myszy o rozdzielczości 400 mpi. Wszelkie wartości powyżej powodować mogą błędne działanie, w tym zjawisko określane mianem wstecznej akceleracji, czyli pozostawania kursora w miejscu tudzież cofania się tegoż w efekcie zbyt gwałtownych ruchów. Tylko Logitech MX510 i nowy Razer Diamondback operują na większej liczbie bitów, pozwalając na prawidłową pracę przy większej szybkości ruchu.

Więcej:bezcatnews