[SOLVED] Wszystkim działa a mi nie

Zawsze powtarzam, że uchodzenie za nieprzeklinającego ma właściwe same zalety (jedynym minusem jest ryzyko, że nikt nie będzie uważać nas za cool, ale to przecież żaden problem). A właściwie tylko jedną, ale za to przeważająca wszystko inne: kiedy się rzuci soczystą „kurwą”, czy „chujem” z głębi trzewi, to wszyscy zwracają uwagę.

Więc kiedy dzisiaj w robocie wyrzekłem słówko na K, to się wszyscy w okolicy zwrócili w moją stronę.

„Wyrzekłem” oczywiście nie oddaje tej mieszanki ulgi, zażenowania i wkurwa na autorów programu, nad którym pracowałem, która zawarła się w przekazie niewerbalnym. Trzeba mi więc wierzyć na słowo.

Przez ostatnie jakieś dwa tygodnie usiłowałem uruchomić pewien program, za pomocą którego miałbym przetestować zmiany, o zrobienie których zostałem poproszony. Program jest aplikacją kliencką, zmiany miały być w gigantycznym monolicie działającym gdzieś w serwerowni. Aplikacja ma pobrać dane z monolitu i mi je przedstawić w atrakcyjnej postaci interfejsu użytkownika zaprojektowanego przez programistów (czyli chujowego).

Od dwóch tygodni się nie udaje.

Sprawdziliśmy różne rzeczy: czy mam wszystkie uprawnienia, czy wersje się zgadzają, czy usunięcie aplikacji i ponowna instalacja coś da i tym podobne elementarne rzeczy. Udało się ustalić, że klient wykłada się na interpretacji komunikatu przychodzącego w odpowiedzi na zaptanie, ale nie udało się ustalić czemu u mnie się wykłada, ale działa u każdego innego, kto próbował.

Aż w końcu, kiedy po raz kolejny tępo wgapiałem się w logi i zastanawiałem się co takiego może być u mnie innego niż u innych, coś mnie tknęło, że błąd jest w funkcji która przerabia tekst na liczbę zmiennoprzecinkową.

Czy już wiadomo w czym rzecz?

Co takiego jest u mnie innego niż u innych?

Szybko więc otworzyłem ustawienia systemowe, znalazłem preferencje regionalne, a konkretnie formatowanie liczb, i przestawiłem opcję znaku kropki dziesiątej, żeby faktycznie była kropką.

Aplikacja poprawnie pobrała dane.

Dawno nie zaliczyłem takiego gigantycznego facepalmu.

Protokół, za pomocą którego aplikacja komunikuje się z monolitem, jest, krótko mówiąc, koszmarny i nikt go nie lubi. Zazwyczaj największym problemem jest że gdzieś się trochę zmieni schemat danych i od razu wszystko się sypie, ale tu mamy coś innego: tekstową reprezentację danych w połączeniu z amerykańską ignorancją. Wiadomo że cały świat używa ASCII i kropki jako kropki dziesiętnej; użyjemy więc funkcji z biblioteki standardowej, której zachowanie jest sterowane przez właściwości środowiska, mimo że protokół de facto wymusza pewne konkretne zachowanie (bo chyba jest oczywiste, że to nie jest udokumentowane).

W ramach odreagowywania napisałem niniejszą notkę. W czasie pracy. Ha!

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s