Jak Mevo pozwalało na obserwowanie przejazdów na żywo

W poprzednim wpisie bardzo nakręcałem się na Mevo po mojej pierwszej przejażdżce. Techniczne założenia sieci rowerów elektrycznych są dla mnie nadal świetną sprawą, ale widać, że to wyzwanie logistyczne już przy ograniczonej formie działania systemu, z jaką mamy do czynienia dzisiaj. W poprzednią niedzielę Mevo miało dzień wolny, dorwanie roweru w mieście to pewnego rodzaju sztuka, którą Bartosz Cicharski na Twitterze porównał do grania w Pokemon GO.

Dzisiaj z kolei na stronie Mevo pojawił się komunikat o zawieszeniu przyjmowania wpłat od użytkowników i weryfikowaniu nowych użytkowników, co oznacza w praktyce zamknięcie dostępu dla nowych (lub takich, którym skończyły się środki) chcących używać systemu rowerów miejskich. Korzystając z tego, że API Mevo jest całkiem łatwe do przeanalizowania, pojawiły się w sieci strony takie jak GdzieJestMevo.pl, które w czasie rzeczywistym informuje o tym, ile rowerów jest aktualnie dostępnych w poszczególnych miastach (spoiler alert: za mało) i o stanie naładowania ich baterii, czy Mevo Watchdog, który podaje też dane historyczne.

Cofnijmy się jednak do poprzedniego piątku. Po przyjechaniu rowerem do pracy odkryłem, że tym razem w mojej historii przejazdów pojawił się link do trasy, którą przemierzyłem.

BTW, ten „zwrot roweru poza stacją” był na samym środku stojaków do tej stacji należących. Jeden z błędów wieku dziecięcego – źle wyznaczone obręby niektórych stacji.

Nie namyślając się wiele, otworzyłem link w nowej karcie i nieco się zdziwiłem.

Gdy kliknie się na link z trasą po prostu w kontekście strony, wyświetla się ładna mapa pokazująca te dane. Wystarczy jednak otworzyć link w nowej karcie, by mieć dostęp do ładnego jsona z danymi o przejeździe. Nie było w nich jednak danych o tym, kto jechał ani znaczników czasu, które pozwoliłyby na zidentyfikowanie, kiedy dokładnie ten przejazd miał miejsce.

Wszystko byłoby w sumie nieszkodliwe i nawet fajne, gdyby nie to, że wystarczyło zmienić w URL zawartość pola rental_id, by dostać cudze przejazdy – niezależnie od tego, czy było się zalogowanym, czy nie. Nie wiedziałem co prawda, czyj to przejazd, ale możliwe było zebranie całkiem sporej liczby statystyk o użytkowaniu Mevo. Do tego, możliwa była sytuacja, w której wynajmowało się rower w mniej więcej tym samym czasie, co ktoś inny na tej stacji. Wartości id wypożyczeń są generowane na zasadzie inkrementacji – każde kolejne wypożyczenie ma id większe o jeden. Nie było szczególnie trudną sprawą przeszukanie pobliskich przejazdów, by znaleźć, dokąd jechała ta osoba. A być może, podobnie jak ja, jechała do pracy albo z pracy do domu?

Napisałem na Facebooku do strony Mevo, aby zgłosić błąd, po czym podzieliłem się znaleziskiem z kilkoma kolegami. Jeden zainteresował się tematem bardziej i zapytał: A co, jeśli znajdziemy id trwającego wypożyczenia? Znaleźliśmy. A następnie odświeżyliśmy stronę raz, drugi… i obserwowaliśmy, jak do trasy dochodzą kolejne punkty ze współrzędnymi. Bliżej nieokreślony ktoś podjął rower w pobliżu skrzyżowania Alei Żołnierzy Wyklętych z Partyzantów, mijał Galerię Bałtycką, a następnie biurowiec Neptun. To już było znacznie grubsze.

Kolega wysłał wiadomość do Niebezpiecznika, który publicznie tematu nie podjął, ale trzeba przyznać, że wcześniej napisali artykuł o innym ciekawym problemie związanym z Mevo. Ze strony Mevo kontaktu nie było (podejrzewam zresztą, że nie byliśmy jedynymi osobami, które zainteresowały się wystawianymi przez Mevo danymi ;)), ale błąd został naprawiony:

Nie jest to pierwszy raz, gdy w niespecjalnie skomplikowany sposób znalazłem ciekawe dane wystawiane przez serwisy związane z współdzieleniem środków transportu. Pod koniec 2017 roku zainteresowałem się mapą dostępnych Traficarów – okazało się, że wszystkie dostępne w danej chwili w Trójmieście pojazdy są zwracane z jednego endpointu API, który zawierał całkiem sporo ciekawych danych:

Wtedy jeszcze jedna informacja była dostępna – pola distanceAccumulated i distanceCounter zawierały wyliczony (najwyraźniej w dwa różne sposoby) dystans, jaki dany samochód jak dotąd w barwach Traficara przejechał. Wystarczyło napisać skrypt, który odpytywałby to API regularnie i przechowywał dane, by oszacować całkiem dokładnie wykorzystanie, flotę pojazdów i przychody Traficara z wynajmu. Na zgłoszenie ode mnie Traficar nie odpisał, ale jak widać, po pewnym czasie wszystkie pojazdy zaczęły pokazywać przejechany dystans o wartości tysiąca kilometrów, a mapa z dostępnością pojazdów jest teraz tylko dla zalogowanych (sam endpoint API już nie…).

Jeśli potrzebujecie fajnych danych, warto zawsze obserwować nowe serwisy, które Was interesują. Duże szanse, że mają całkiem sporo luk w API 😉

Mevo ruszyło – i dla mnie jest super

Dzisiaj o 13:30 oficjalnie ruszył system wypożyczania rowerów miejskich w aglomeracji trójmiejskiej i okolicach – Mevo. Od razu wykupiłem abonament roczny w cenie 100 zł i choć dostępnych jest dopiero 900 z docelowych 4000 rowerów, po pracy udało mi się znaleźć w pobliżu dostępną maszynę.

Na początku jednak musiałem założyć konto na rowermevo.pl, podając swoje dane i doładować konto za kwotę, na którą chciałem wykupić abonament plus co najmniej jeden złoty, aby możliwe było wypożyczenie roweru. O konieczności posiadania środków na koncie dowiedziałem się dopiero z maila od Mevo, informującego mnie, że konto zostało zablokowane i aby je odblokować, muszę na konto wpłacić przynajmniej 10 zł. Jak donoszą inni, była to błędna informacja, bo wystarczy złotówka, ale na wszelki wypadek doładowałem za 11 zł. W ramach abonamentu mam dostępne 90 darmowych minut dziennie, za kolejne muszę płacić 5 groszy za minutę.

Najbliższy dostępny rower z mojej pracy znajdował się w odległości trochę ponad 500 metrów. Można zarezerwować rower na 15 minut, nie ma jednak w aplikacji w tej chwili sensownej informacji, ile czasu rezerwacji zostało, przy której stacji rower właściwie jest i mogłaby też przydać się ścieżka do tej stacji na wzór Traficara (który też sobie ostatnio skonfigurowałem).

Gdy dotarłem na miejsce, zarezerwowany przeze mnie rower czekał jako jedyny na stacji. Zeskanowałem kod QR, zdjąłem stopkę, odblokowałem blokadę za tylnym kołem i mogłem ruszać. Co mnie najbardziej zaskoczyło? Rower jest dość ciężki, tak jak się spodziewałem (ma w końcu silnik elektryczny), ale mimo tego tylko pierwszy nacisk na pedały przy ruszaniu wymaga odrobinę więcej siły, niż przy normalnym rowerze. Po chwili włącza się wspomaganie elektryczne, które dla człowieka, który na rowerze jak dotąd najwięcej naraz przejechał 22 kilometry i jego średnia prędkość normalnie wynosiła około 10-12 kilometrów na godzinę, było wręcz idealne.

Odcinek Przymorze – Morena zrobiłem w 26 minut, a podjazd pod Rakoczego, którego najbardziej się obawiałem, okazał się niemal bezproblemowy – tętno skoczyło mi zaledwie do 150 uderzeń na minutę (dla porównania, moja średnia przy bieganiu wynosi 180 – 150 to u mnie raczej w miarę lekki trucht). Do domu dotarłem praktycznie zupełnie bez spocenia się, co jest dużą zaletą w przypadku dojazdów na trasie dom – praca.

Oddanie roweru w moim przypadku przeszło bezproblemowo – wiem jednak, że na niektórych stacjach w okolicy ulicy Myśliwskiej rowery oddane na stację były traktowane jako zaparkowane poza nią i obarczone karą w wysokości 3 zł. To jednak dosyć normalne przy rozruchu systemu i mam nadzieję, że reklamacje tych osób zostaną szybko rozpatrzone.

Z mojej perspektywy wszystko wskazuje na to, że system Mevo jest dokładnie tym, czego oczekiwałem – abonament jest tani, rowery pozwalają na przemieszczenie się z miejsca na miejsce bez nadmiernego wysiłku, a do tego Mevo działa też w Tczewie. Pierwsze wrażenie bardzo dobre, choć są też negatywne opinie, zwłaszcza wśród osób, które jeżdżą na rowerze w nieco mniej amatorski sposób, niż ja.

Rodzina, ojczyzna i ukochany klub

Sosnowiec robi znacznie lepsze wrażenie, gdy już zapalą się latarnie, niż o zmroku w szary dzień. Gdy szedłem przez Stary Sosnowiec na stadion Zagłębia, na początku odczucia były dość piorunujące. Szare bloki, ciemne tunele pod rondami co większe skrzyżowanie, w bocznej uliczce dwóch starszych panów siedzących na chodniku z piwerkiem i mnóstwo grafitti Zagłębia razem budowały klimat. Jeszcze na parkingu Lidla niedaleko stadionu jakiś chłopak w szaliku Zagłębia dość wprost i bezczelnie się na mnie gapił.

Park zaraz za Lidlem był zresztą miejscem, gdzie kibice dość masowo zaprawiali się na nadchodzący mecz. Tuż przed bramą wejściową rozstawiono małe stoisko ze słonecznikiem, kupowanym i później spożywanym na trybunach w sporych ilościach.

Jeden ze starszych fanów, stojący w kolejce do bramek wejściowych, pieklił się, że musiał zapłacić aż 25 zł za bilet na mecz tak słabującej drużyny. Zaraz obok ochroniarze przy dość szczegółówej kontroli osobistej kazali mi nawet zdjąć czapkę, by zobaczyć, czy niczego pod nią nie przemycam. Nie przeszkodziło to niektórym z kibiców mieć ze sobą małpek czy piersiówek.

Stadion Zagłębia jest jednym z najbardziej oldschoolowych w obecnym sezonie Ekstraklasy. Typowy obiekt ziemny, z trybunami o niewielkim nachyleniu z kilometr od płyty boiska. Na odkrytej części prawie wszyscy oglądali mecz na stojąco.

Moją uwagę już przed pierwszym gwizdkiem zwrócił jeden ze starszych kibiców, który mocno zachrypniętym głosem przemawiał w kierunku na oko siedmioletniej dziewczynki, która w ręce trzymała otrzymaną wlepkę z herbem Zagłębia i krzyżem celtyckim. Tłumaczył, że przed chwilą przykleił inną wlepkę na swoje krzesełko, bo jest fanatykiem Zagłębia i Legii Warszawa, i że jak już będzie duża, to żeby pamiętała, że w życiu trzy wartości są najważniejsze – rodzina, ojczyzna i ukochany klub. Zapamiętaj, rodzina, ojczyzna i ukochany klub.

Ten sam fan przez cały mecz bardzo żywiołowo i dosadnie reagował na wszystkie zagrania swojego klubu i przeciwników, bardzo chętnie i w różnych, głównie wulgarnych, słowach wyrzucając sz siebie epitety w kierunku sędziów i piłkarzy. Zwykle były to różnorakie porównania do protstytutek. W pewnym momencie jego kolega się schylił, więc oczywiście, nie zastanawiając się ani chwili, złapał go za biodra i zaczął symulować stosunek płciowy, zaraz obok kilkuletniego dziecka, które najprawdopodobniej było synem kolegi.

Pozostali kibice może nie byli aż tak malowniczy, ale wszystkie z najczęściej słyszanych wokół słów były niecenzuralne. Nasłuchałem się też nieco o układzie w PZPN, mającym na celu spuszczenie Zagłębia z Ekstraklasy (dziwnym trafem dyskusje na ten temat skończyły się po tym, jak sędzia unieważnił drugą bramkę dla Lechii po konsultacji z VAR). Całkiem sporo usłyszałem też o niejakiej kurwie kieleckiej , gdzie z kontekstu wydawało się, że może chodzić o trenera Zagłębia, ale w sumie nie pasuje mi to do faktów. Według internetu, chodziło o Koronę Kielce.

Po samym wyniku (0:1 dla Lechii Gdańsk, która gościła w Sosnowcu) można stwierdzić, że był to nudny mecz. Nic z tych rzeczy – aż 4 razy piłka trafiała w poprzeczkę, a obie drużyny miały znacznie lepszy atak, niż obronę. Zagłębiu jednak brakowało a to szczęścia, a to umiejętności wykończenia dobrej okazji w rzęsistym deszczu.

Gdy wracałem z meczu, w pobliskim Lidlu dziwnym trafem akurat doszło do awarii zasilania. Jak zawsze, skomentował jeden z przechodzących w pobliżu kibiców. Za tramwajami i autobusami, które odjeżdżały z najbliższego przystanku, ruszały radiowozy na sygnale. Niektórzy z wracających z meczu zaopatrywali się po drodze w okolicznych sklepach z alkoholem, gdzie szyld często informował o tym, że sklep jest całodobowy, lecz na drzwiach znajdowała się karteczka czynne w godzinach 6:00 – 23:50. W sierpniu w mieście wprowadzono nocny zakaz sprzedaży alkoholu, więc dla całodobowych sklepów zniknął powód, by utrzymywać załogę w nocy.

Sosnowiec w kilku miejscach zrobił na mnie wrażenie, jakbym cofnął się w czasie do mniej więcej 2005 roku. Nieco zbyt krzykliwe witryny sklepowe, policja sprawdzająca dokumenty jakichś typków w bramach, na oko mniej sklepów i knajp wielkich sieci, a w barze mlecznym na Patelni o 10 rano kibice w szalikach, dyskutujący wczorajszy mecz nad piwem. Na dworcu znalazł się nawet sklepik z przeterminowanymi czasopismami za pół ceny na dokładnie takiej samej zasadzie, jak kupowane przeze mnie numery Angory na tczewskim Manhattanie w okresie gimnazjalno-licealnym. Nic dziwnego więc, że mi się podobało – lata dwutysięczne to dla mnie mniej więcej ten sam klimat, co dla Olgi Drendy czas, który opisuje jej Duchologia.

Ekstraklasa 2019 tour – 3/18.