Blog (92)
Komentarze (104)
Recenzje (0)

Też miałem przyjemność z Mozillą... Nie jest dobrze, moim zdaniem oczywiście.

@marcinw2Też miałem przyjemność z Mozillą... Nie jest dobrze, moim zdaniem oczywiście.17.01.2020 16:18

Tym wpisem nie mam zamiaru się chwalić, tylko na swoim skromnym przykładzie chciałbym potwierdzić, że źle się dzieje w państwie duńskim.

Paradoksalnie zacznę od Google Chrome. To ogromny projekt, a mówiąc dosadniej kobyła.

Znają go wszyscy, a ja przez ostatnie kilka lat zgłaszałem tam trochę uzupełnień głównie do części napisanej w Javie (Android) - były to w większości optymalizacje i tzw. refaktoring kodu (tu uciąć 1000 linijek kodu, tam 1500, takie tam zabawy).

Oprócz kodu dosyć aktywnie podawałem tam wiele informacji o stosunkowo prostych błędach interface użytkownika czy błędach renderowania (dużo ich widziałem niejako przy okazji swoich głównych projektów).

Linki są na mojej stronie, bardzo duże rozczarowanie wzbudziło we mnie chociażby:

  • decyzja o wyłączeniu tzw. buildów Jumbo - tą decyzją Google wydłużyło czas kompilacji projektu o dobre kilkaset procent (np. z godziny do ponad czterech), w zamian jedynie proponując dostęp do swoich serwerów, ale... uwaga! tylko dla części konfiguracji. Nie muszę chyba dodawać, jak podobne działanie wpływa na zużycie energii elektrycznej i środowisko naturalne (w takich dużych projektach kompilacje robi się setki lub tysiące razy dziennie).
  • brak implementacji keydown i keyup - pomimo ogromnego zainteresowania użytkowników nikt wewnątrz firmy nie chce przyjąć żadnej opcji i tego poprawić.
  • wstrzymywanie zmian ulepszających napisane wieki temu elementy interfejsu - np. taka pierdółka czyli zwijanie czy rozwijanie grup w oknie historii wisi do dzisiaj
  • błędy regresji i podstawowe problemy ze zrozumieniem kodu przez osoby sprawdzające moje poprawki

Mógłbym podawać więcej przykładów, zauważyłem, że z czasem tzw. responsywność inżynierów zaczęła maleć, a błędy coraz częściej sprawdzali ludzie z pewnego państwa z Azji (co niestety odbiło się na jakości dyskusji).

Z miesiąca na miesiąc widziałem, że część inżynierów (reagujących naprawdę rewelacyjnie) odchodzi z tego projektu, a niektórzy pozostali stopniowo zaczęli zachowywać się coraz bardziej nazwijmy to zapobiegawczo w akceptowaniu jakiegokolwiek kodu.

Przyszedł grudzień 2019 i pojawił się chociażby błąd, przy którym część użytkowników mogło stracić swoje dan.... Zmiany w Chrome nie są normalnie wprowadzane z dnia na dzień i jeżeli coś takiego przeszło, to albo

  • nie było w ogóle testowane (nie wierzę, że nie przyjęto scenariusza, żeby zaktualizować aplikację z danymi) albo
  • mówiąc kolokwialnie zostało przepchnięte bokiem w ostatniej chwili

Źle, źle i jeszcze raz źle.

Myślę, że stopień skomplikowania kodu przekroczył pewne granice - starsi inżynierowie powoli odchodzą (z CV, gdzie jest wpis o pracy w Google, nie jest to trudne), młodsi mają bardzo dużo do nauki.

Sytuacji nie poprawia fakt, że spora część kodu została napisana w starszej Javie (wiem, wiem, że nie Cobol, ale wszyscy zaczynają cieplej myśleć o Kotlinie niż o utrzymywaniu tysięcy linijek w Javie).

Widzę, że część firm wzięła ten kod i zmienia go u siebie na swoją modłę (np. taki Brave ma repozytorium na GitHub). Jest to tragedia - czasami zajmuje się tym garstka ludzi, którzy oprócz rozwijania nowości muszą się zajmować portowaniem zmian od Google.

Nie lubię tych forków, gdyż każda, ale to każda firma stawia sobie za cel dodanie swoich, czasem bardzo nachalnych, funkcji (tak samo zrobił Microsoft - mamy te wszystkie integracje).

Gdzie jest w tym użytkownik?

W tym momencie wrócę do Mozilli. Zdarza mi się używać jej aplikacji, i owszem czytałem o różnych problemach... ale jakoś mnie nie obchodziły.

Zgłosiłem kilka błędów do zespołu zajmującego się wersją Preview, i wróciłem do nich teraz w styczniu 2020.

Zespół pisze w swoim GitHubie, że jest mały, nie ma zasobów, itp.

Jak tak można? Chcą zdobyć użytkowników czy nie?

Myślę, że powinni zachęcać ludzi do zgłaszania ulepszeń, a nie odstraszać.

Jeden z moich zgłoszonych błędów dotyczył tego, że nie działa JetStream 2. Po prawie trzech miesiącach i moim followup dostałem informację, że w sumie problem jest taki, że Gecko pyta się o to, że wykonywać dalej wolny skrypt, czy nie (i nie dostaje odpowiedzi).

Dodanie tego to w najprostszej wersji trzy linijki kodu, nie muszę chyba dodawać, że nie zadziało się to do dziś (o tym jeszcze poniżej).

Udało mi się przeprocesować jeszcze trzy zmiany, i niestety okazało się, że na tym chyba koniec - problem był nawet w zmianie na dwie linijki kodu (jeśli dobrze zrozumiałem aż trzeba było się zastanawiać, czy URL bar ma mieć tekst w jednej czy dwóch linijkach)

Czy widzieliście kiedyś przeglądarkę, która miałaby element do wpisywania URL w dwóch linijkach?

Myślę, że aplikacja mobilna powinna być priorytetem, tymczasem w mojej ocenie okazuje się, że błędy będące faktycznie podstawą (JetStream2) są na dole listy, a zewnętrzne zmiany często są wręcz niemile widziane.

Powiedziałbym, że to może być zrozumiałe (ludzie z zewnątrz mogą nie znać zasad, pisać niskiej jakości kod, etc.), ale im dalej w las (kod), tym więcej grzybków.

Zacząłem się bawić kodem i już na pierwszy rzut znalazłem miejsce do różnych optymalizacji czy przeróbek na lepsze.

Kilka zrzutów ekranu (widać ekran główny, gdzie obszar jest lepiej rozdysponowany; ustawienia, gdzie wszystko jest logiczne; historię ze zwijalnym obszarem):

[1/2]
[2/2]
[1/2]
[2/2]
[1/2]
[2/2]

Mój plan jest prosty - w wolnym czasie zamierzam popracować trochę na GUI, robiąc go logicznym i prostym do bólu, a potem przejść niżej.

Kilka przykładów:

  • Chcę usunąć kolekcje - zrobić zamiast nich foldery zakładek (po co dwa obiekty?)
  • Chcę dodać zmienialną stronę główną - nie ma już tej wielkiej części z logiem (bądź co bądź użytkownik wie, czego używa), ale jest miejsce na najczęściej otwierane, itp.
  • Chcę usunąć telemetrię, która istotnie może spowalniać całość
  • Chcę usunąć błędy, które są widoczne na pierwszy rzut oka

Na dzień dzisiejszy potwierdzam, że źle się dzieje w państwie duńskim i polityczna poprawność w Mozilli zasłoniła pracę inżynierską - mają niezłą podstawę, ale co najmniej kilka projektów mobilnych (stąd niepotrzebny podział zasobów) i dużo, ale to dużo "misji".

W mojej ocenie to obecnie korporacja, która ma w nazwie "fundacja".

Stąd mój projekt, który jest teraz eksperymentem (ma mi pokazać, czy w krótkim czasie można coś z tego wszystkiego zrobić), ale mógłby przerodzić się w coś większego. Całość planuję umieścić na GitHub. Nie interesuje mnie, czy ktoś tu napisze, że się chwalę, że się chcę dowartościować, itp.

Napisanie przeglądarki to dzisiaj gigantyczna robota, nie zmienia to faktu, że podobne zabawy z kodem dają solidną dawkę wiedzy do innych projektów.

Miałem już w życiu dwie podobne sytuacje:

  1. w 1999 zrobiłem fork projektu Gnokii, potem napisałem swój, który zmieniałem do 2007 (wtedy pojawił się iOS i projekt zaczął tracić rację bytu; kod jest zmieniany i używany do dziś)
  2. ok. 2011 zrobiłem coś lepiej niż inni - pewne rzeczy wtedy zaczęte służą mnie i tysiącom użytkowników do dziś

Jeżeli się teraz uda, to może za jakiś czas będzie seria artykułów.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.