Gdzieś między Polską a Niemcami, a szczególnie w NRD

Twit Programmers of the Year (2)

Poprzednia notka spotkała się z żywym odzewem czytelników, więc ponieważ ostatnio temat bardzo mnie zajmuje - zarówno w pracy jak i prywatnie - to może następna.

W pracy ostatnio miałem satysfakcję z gatunku Schadenfreude - od dobrych dwóch lat marudzę przy każdej okazji szefowi działu że tak jak robią to nic z tego nie będzie i trzeba coś zmienić (lista propozycji w załączeniu). Oczywiście, jak to w korpo, nic się nie zmienia. Projekt w którym jestem udało mi się doprowadzić do jako-tako szczęśliwego końca w zasadzie tylko w taki sposób, że co poważniejsze problemy popoprawiałem na własną rękę albo powymuszałem różne rzeczy tworząc fakty dokonane. Ale równolegle idzie projekt pochodny, do innego wariantu, w zasadzie tylko przejąć ten "mój" i trochę pozmieniać. Tego nowego projektu dotąd nawet nie dotknąłem i jest on w stanie tragicznym. No i w czwartek szefu był u klienta na zebraniu kryzysowym, pojawił się tam szef działu testowania (zresztą o polskim nazwisku), stwierdził że jakość tego softu jest katastrofalna (co i ja ciągle szefowi mówię) i zaczął zadawać pytania w stylu "a czy macie development patterny?", "a czy macie continous integration?", "a czy macie automatyczne testy?" - i wszystkie te pytania pokrywały się dokładnie z tym, o czym marudzę. No i już w piątek było "Powiedz nam, co mamy robić żeby ten projekt się nie zawalił?".

Jak źle jest? SOP jest na marzec, to jest do tańszego modelu więc od samego początku ilości będą rzędu 5000 tygodniowo, a na dzień dzisiejszy kompilator daje aż 25.000 warningów. Szybko przejrzałem listę i zauważyłem, że większość z nich musi być z bardzo niewielu miejsc - pół godziny szukania, znalazłem że w dwóch miejscach ktoś zainkludował headery wewnątrz funkcji. Po usunięciu ich, ilość warningów spadła do poniżej 10.000. Rzecz graniczy z sabotażem. Funkcjonalnie to nawet nie przejęli sporej części rzeczy, które od dawna działają u nas. Jedną dość kluczowy moduł infrastrukturalny który opracowałem, zamiast go po prostu przejąć zrobili "lepiej". Poświęcili na to masę czasu, zawracali mi dupę mnóstwo razy, ale oczywiście nie zintegrowali najpierw mojej wersji, tylko od razu zabrali się za poprawianie, czym opóźnili o miesiące włączenie mechanizmów ochrony pamięci - które przecież pozwalają znaleźć sporo błędów. Na koniec jeszcze nie wszystko działa, a nie mają z tego wszystkiego żadnych zalet poza tą abstrakcyjną "lepszością". Za to będzie teraz źle, bo rozwiązania tego samego w obu projektach są różne (a na przykład cały generator kodu jest wspólny, oni poprawiają moje zmiany za każdym razem). Przy pierwszym problemie każę im to wywalić do kosza i wrócić do mojego. Tragedia po prostu, znowu trzeba będzie ratować im dupy, za każdym razem z coraz głębszego szamba.

No dobrze, ale bywa jeszcze gorzej. Wróćmy do naszych ulubionych Twit Programmers z consumer electronics.

Mam w domu zegar ścienny z DCF, produkcji znanej firmy Citizen. Trochę lat już ma. Taki zegar synchronizuje się z nadajnikiem DCF-77 (tu niedaleko, koło Aschaffenburga) w południe i o północy, jeżeli wychodzi mu że się spóźnia to nie ma sprawy - wskazówki pojadą trochę do przodu. Gorzej jest, jak się spieszy - taki zegar do tyłu się nie pokręci. Ja bym zrobił tak, że zegar powinien trochę poczekać aż upływ czasu dogoni czas wskazywany, a potem niech chodzi dalej, w końcu o ile może się pospieszyć przez 12 godzin. Tymczasem tutaj jakiś twit programmer wymyślił, że zegar pokręci się niecałe 24 godziny do przodu. Ponieważ to stara konstrukcja i wszystkie wskazówki są posprzęgane na stałe, to sekundnik musi się w tym celu obrócić 12*60=720 razy dookoła, a trwa to prawie 20 minut. Oczywiście spać się w tym pokoju nie da, jak zegar o północy przez 20 minut warczy. A teraz najlepsze: Zegar przy czasie letnim ZAWSZE stwierdza, że się spieszy - ten twit nie uwzględnił przy porównaniu flagi DST.

Teraz honourable mention dla elektroników którzy projektowali mojego notebooka marki Acer. To jest 18'' desktop replacement i ma dwie karty graficzne. Jedna (Intel) jest wolna, ale bierze mało prądu, druga (ATI Radeon HD4670) odwrotnie. Tyle że jakiś twit wymyślił, że ta szybka będzie niestandardowa i będzie wymagała specjalnego drivera. Notebook był zaprojektowany do Windowsów Vista, ja kupiłem go z Windows 7 i na początku ta szybka karta jeszcze działała. Potem, po jakiejś aktualizacji systemu przestała, w Windows 10 też nie działa. Aktualizacji drivera już nie ma i nie będzie, szlag by ich trafił. Pod Linuxem też nie chodzi, bo tam specjalnego drivera też nie ma.

Problem jest taki, że załamany twitami piszącymi soft na Androida wymyśliłem, że sam sobie napiszę rzeczy które potrzebuję. Zainstalowałem Eclipse z developmentem do Androida, on ma emulację urządzenia z Androidem. Tyle że na moim notebooku ta emulacja startuje się 11 minut. Popatrzyłem co się da zrobić i radykalne przyspieszenie dałoby włączenie hardwarowej wirtualizacji, ale do tego potrzebne jest Intel Virtualisation Technology w procesorze, a w moim tego nie ma. Następna możliwość to włączenie opcji użycia hardware karty graficznej, a tutaj ta szybka nie działa, a do wolnej nie ma już aktualnych driverów. No to może Linux? Partycję z Linuxem miałem, zainstalowałem tam takiego samego Eclipsa, Linux ma driver do tej karty od Intela i emulacja startuje w minut pięć. No to może nie ideał, ale zawsze znacznie lepiej. Na razie zorganizuję sobie to wszystko, a jak dojdę do poważnej roboty to kupię nowego notebooka.

Tak więc przeszedłem na Linuxa na notebooku. Poinstalowałem na moim serwerze Linuxowym trochę serwerowych narzędzi żeby robić development porządnie, i tu też zaraz wykryłem paru twitów. Na przykład u Epsona. Linuxowy driver drukarki od Epsona występuje w dwóch wersjach: Jedna drukuje wszystkie kolory poprzesuwane o parę milimetrów, druga trafia z kolorami we właściwe miejsca, ale wcale nie drukuje koloru żółtego. Wybór należy do Ciebie.

Następny twit jest od projektów do Eclipse. Zainstalowałem na serwerze CDO Repository Server żeby trzymać moje modele w czymś porządnym. A tu jakiś twit nie upilnował, żeby nazwy tabel w bazie danych były pisane zawsze tak samo. Na Windowsach nie ma problemu - tabele lądują w plikach a Windowsom jest scheissegal czy piszemy nazwy plików dużymi czy małymi literami. Ale Linuxowi nie jest to obojętne i od razu wychodzi błąd że nie można znaleźć tabel. Jako workaround podają żeby włączyć w MySQL-u opcję konwertującą nazwy tabel do małych liter, ale ta opcja jest globalna dla całej instancji serwera bazodanowego i wtedy zaczynają mi się wywalać wcześniej utworzone bazy, w których nazwy tabel zawierają duże litery. Wygląda na to, że na początek będę musiał poprawić na własną rękę CDO Server Project (na szczęście jest w źródłach).

I tak dalej, i tak dalej. Teraz na pociechę: Nie każdy problem z softem/hardwarem jest wywołany przez twitów. Typowy przykład to "na początku mój WiFi stick/WiFi router/urządzenie z WiFi chodziło dobrze, a teraz coraz wolniej, na pewno to przez jakiegoś twita od driverów". Otóż nie. Jak kupowałeś tego sticka, WiFi miało tylko trzech sąsiadów i to nie w Twojej klatce. Teraz WiFi mają wszyscy, a kanały mają poustawiane całkiem randomowo. Tak wygląda to u mnie w paśmie 2,4 GHz.

WiFi-2-4-GHz

WiFi w paśmie 2,4GHz

WiFi jest o tyle źle zrobione, że komunikacja na kanale n zakłóca komunikację na kanałach od n-2 do n+2. Jakby poprzydzielać kanały jakoś centralnie to jeszcze może dałoby się to jakoś opanować, ale tak w realnych warunkach sieci jest tyle i poustawiane są na tyle źle że całość się ślimaczy. U mnie było jeszcze gorzej, bo pojawiał się jakiś nieprawdopodobnie mocny sygnał (chyba z biurowca naprzeciwko) zagłuszający wszystko dookoła. Jest na to tylko jeden sposób - przejść na pasmo 5GHz. Tak wygląda u mnie pasmo 5GHz:

WiFi-5-GHz

WiFi w paśmie 5GHz

Czego i czytelnikom życzę.

-----------------------------------------------------------------------------------------------------------------------

Dotyczy: ,

Kategorie:Ciekawostki, Pomyślmy

Sledz donosy: RSS 2.0

Wasz znak: trackback

-----------------------------------------------------------------------------------------------------------------------


8 komentarzy do “Twit Programmers of the Year (2)”

  1. Avatar photo red1grzeg pisze:

    Zacznę od tego że ja też używam „pirx” 😉

    Pasmo 5 GHz za chwilę będzie wyglądać podobnie jak u 2.4 GHz.

    @Zegar DCF, hmm też chciałem takie kupić, teraz to już nie wiem 😀 Właściwie to dlaczego nie zgłosiłeś usterki na gwarancji?

    @”Tragedia po prostu, znowu trzeba będzie ratować im dupy, za każdym razem z coraz głębszego szamba.”

    Przez takie działanie jak Twoje, WSZYSCY mają pod górkę, a Twoje pisanie, jak w poprzednim wpisie: „Za odpowiednią opłatą zorganizuję wam to bez porównania lepiej. Tylko poważne propozycje.” idzie w próźnię. Po co się starać, skoro zawsze się znajdzie ktoś kto uratuje sytuację.

    Nie myślałeś, żeby powiedzieć: „teraz już się nic nie da zrobić, za późno, trzeba przepisać od nowa, jak zostanę decyzyjnym za odpowiednią kasę to następny projekt będzie OK” ? Jedyny komunikat na który reaguje biznes, to jest strata kasy.

    Dla urozmaicenia, w Krakowie jest taka firma specjalizują się mocno w projektach dla banków, chodzi po niej od zawsze następujący dowcip: „konsultant jedzie do pierwszego banku, wraca przerażony – tam jest totalny chaos, cud że działa, zabierajcie stamtąd swoje pieniądze; następnie realizuje projekt w kolejnym banku i znowu wraca przerażony, chaos, katastrofa, nie wiedzieć czemu się nie wysypało wszystko, ale w każdym momencie może się wysypać; z tego banku to już w ogóle uciekajcie. W kolejnym kwartale wraca z następnego, tym razem wyraźnie wyluzowany i radosny życiem, koledzy pytają: co, tam jest lepiej? Nie, nie, bajzel jest tak samo, po prostu zrozumiałem że wszędzie tak jest i przestałem się przejmować.

    • cmos pisze:

      Pasmo 5 GHz za chwilę będzie wyglądać podobnie jak u 2.4 GHz.

      Jest szersze, więc potrwa dłużej niż przy 2,4.

      @Zegar DCF, hmm też chciałem takie kupić, teraz to już nie wiem

      Nowe są już OK

      Właściwie to dlaczego nie zgłosiłeś usterki na gwarancji?

      Bo zanim załapałem o co chodzi sporo czasu minęło, a w tamtych czasach gwarancja była tylko rok.

      Przez takie działanie jak Twoje, WSZYSCY mają pod górkę

      Spoko, przecież nie będę pisał publicznie wszystkiego, co z nimi ustalam.

      teraz już się nic nie da zrobić, za późno, trzeba przepisać od nowa

      Tyle że na razie to co mówię to dla nich tylko teoria, zwłaszcza dla wysokiego managementu, a poopowiadać to oni też potrafią. Zrobię im początek a potem porozmawiamy poważnie o kontynuacji, to tylko połowa jednego działu, a w innych nie jest lepiej. Mi tam pasuje ze względu na bliskość domu, ale nie muszę robić akurat u nich i mam tylko 30 dni wypowiedzenia.

      Nie, nie, bajzel jest tak samo, po prostu zrozumiałem że wszędzie tak jest i przestałem się przejmować.

      Ależ ja doskonale wiem że gdzie indziej jest tak samo, ale widzę to jako szansę, nie jako zagrożenie.

    • krwawykrolik pisze:

      „Dla urozmaicenia, w Krakowie jest taka firma specjalizują się mocno w projektach dla banków, chodzi po niej od zawsze następujący dowcip: „konsultant jedzie do pierwszego banku, wraca przerażony – tam jest totalny chaos, cud że działa, zabierajcie stamtąd swoje pieniądze;”

      Banki zawsze maja chaos, a to ze sie nie wywracaja zawdzieczaja temu, ze placa dosc zdolnym ludziom niezle pieniadze za troskliwa opieke nad systemami.

      Nawet tak mocno zaawansowany technologicznie bank jak Goldman Sachs ma mnostwo starych, pospinanych na sznurowki systemow IT, ale jak mi powiedzial kolega ktory tam szefuje zespolowi programistow „oni placa dobrym ludziom konkretne pieniadze zeby to dzialalo”.

      Wiec albo potrzebujesz dobrej architektury, albo wiecej zdolnych ludzi do ciaglego latania dziur i gaszenia pozarow.

  2. krwawykrolik pisze:

    Eeeej, a jakim programem / narzedziem mozna zrobic takie fajne wykresy pasm WiFi?

Skomentuj i Ty

Komentowanie tylko dla zarejestrowanych i zalogowanych użytkowników. Podziękowania proszę kierować do spamerów