CityJS London 2022 - online

Dzień dobry! Ostatnio miałam okazję uczestniczyć w CityJS London 2022 i chciałabym podzielić się z Wami wrażeniami oraz wiedzą. Wpis jest lekko kontrowersyjny i nie ma na celu nikogo urazić, zawiera moje odczucia.

TL;DR: To była przeciętna konferencja, która miała wiele problemów zarówno z treścią jak i organizacyjnych.

Musimy zacząć od tego, że lubię konferencje. Jest to magiczny czas, kiedy mam okazję na programistyczne wybudzenie się z zimowego snu i nadrobienie nowości. W tamtym roku część wykładowa CityJS trwała trzy dni a w tym tylko jeden. Nie miałam nic przeciwko, wprost przeciwnie: wydawało mi się, że poprawi to jakość.

Niestety całość była dla mnie bardzo męcząca:

  • ogromna ilość powtarzających się reklam
Rozumiem, że konferencje nie są organizowane za darmo a sponsorzy wymagają sporej ekspozycji, ale połowa konferencji wydawała się jednym wielkim blokiem reklamowym.
  • dużo wykładów nietechnicznych
Liczyłam, że na CityJS będzie więcej o programowaniu. Tak po prostu.
  • krótkie wykłady, które były i tak za długie
Czas który mieli prelegenci był za krótki na dokładne wyjaśnienie technicznych detali, więc część zdecydowała się na prezentacje nietechniczne a druga przyśpieszała i pomijała slajdy. Często czułam spory niedostatek pomiędzy postawionymi problemami a przedstawionymi rozwiązaniami.

Najciekawsze prezentacje i wykłady

Niemniej jednak kilka prezentacji mnie zainteresowało i chciałabym skrócić części, które uznałam za wartościowe :)

Pomysł Maggie Appleton - komunikacja przez wizualizacje

Maggie zawodowo zajmuje się designem i wyjaśniła, że skomplikowane pojęcia oraz koncepcje najłatwiej zrozumieć przez wizualizacje, obrazy oraz diagramy.

Najciekawszą częścią było wyjaśnienie metafor kognitywnych. Metafora często kojarzy nam się z literaturą i nie zauważamy jak podświadomie używamy jej w programowaniu. Czym innym jest 'kontener' jak nie metaforą zamknięcia i izolacji? Co mówią nam pojęcia 'zmienna' i 'stała'? Z czym kojarzy się nam 'front' (czyli pierwsze co widzimy) a z czym 'backend'?

Zupełnie pominę część o programowaniu wizualnym, bo mam mieszane uczucia wobec konceptu. Istnieją wizualizacje skryptów w Game Devie (na przykład w Unity), które pozwalają na programowanie poprzez interakcje z interfejsem graficznym i jest to sprawdzone rozwiązanie, jednak - jak zauważyła prelegentka - kod w formie wizualnej fatalnie się skaluje do dużych rozmiarów.

Web Monetization API

Jak można zarabiać na swojej twórczości? Jakie opcje mają twórcy internetowi? Alex Lakatos opowiadał o pracach nad Web Monetization API.

Koncepcja Web Monetization API jest prosta: bezpośredni, bezpieczny przepływ pieniędzy pomiędzy twórcą a odbiorcą.

Wydaje się to proste, ale po drodze istnieje wiele problemów.

Portale pośredniczące takie jak Patronite czy inne odpowiedniki pobierają procent od zarobków, banki pobierają prowizje za transakcje a paypal nie jest dostępny wszędzie. Obecny układ sił na rynku finansów sprawia, że drobne datki (na przykład jednodolarowe) są zupełnie nieopłacalne, gdyż koszt takiej transakcji to 30% darowizny.

Koncepcja w której każdy może wpłacić drobną kwotę bez opłat wydaje się idealna.

A teraz zobaczcie interfejs w... HTMLu!

Obecnie jest wspierany przez Chrome, Firefoxa, Edge oraz w przyszłości Safari.

<meta
  name="monetization"
  content="zewnetrznylinkdoportfela.com/kontokamili">

Podejrzanie proste? Tak, płatności będą obsługiwały zewnętrzne firmy korzystające z protokołu stworzonego przez Alexa.

Trzymajcie kciuki!

WebXR - rozszerzona rzeczywistość dla każdego

Rozszerzona rzeczywistość (ang. augmented reality) to gorący temat, szczególnie jeśli podejrzewamy ile zainwestuje w to Facebook z powodu Metaverse. W prezentacji został przedstawiony bardzo przyjazny interfejs webowy, który pozwala tworzyć wirtualne światy mieszające się z naszym przy użyciu np. kamerki z telefonu komórkowego. Pomimo problemów technicznych prelegentce udało się pokazać część możliwości API.

Najbardziej zaskoczyły mnie dwie rzeczy:

  • mnogość interfejsów - można tworzyć wirtualną rzeczywistość zarówno przez Javascript jak i... "HTML": AFrame niewiarygodnie łączy znaczniki i VR.
  • bardzo dobrze uproszczone koncepcje oświetlenia czy cieni: props tu, props tam i mamy światłocień :)

Z resztą słowa tutaj nie wiele zdziałają, zobaczcie przykłady na oficjalnej stronie WebXR oraz tutaj.

Jak wybierać biblioteki w npm?

Jeden z wykładów opowiadał o tym jak wybiera się biblioteki open source do użycia w większych firmach i do większych projektów. Dlaczego express.js a nie nest.js?

W wielkim skrócie jest to suma poniższych aspektów:

  • wsparcie społeczności (dokumentacja, odpowiadanie na pytania)
  • ilość użytkowników (gwiazdki, pobrania)
  • rozwiązywalność bugów oraz aktualizacje (jak szybko, jak często)
  • ilość kontrybutorów (paczki posiadające jednego głównego kontrybutora są ryzykowane)
  • możliwość kontrybucji do biblioteki z zewnątrz

GraphQL schema-stiching

Było kilka wykładów o GraphQL. W pracy korzystam z federacji (Apollo Federation), która łączy serwisy różnych zespołów i jest powszechnie preferowanym rozwiązaniem. Niemniej jednak z ciekawością słuchałam o schema-stichingu. Jest to opcja dla zespołu zajmującego się wieloma serwisami z małym budżetem, chcącego uniknąć zarządzania federacją.

Mateo Collina - GraphQL caching demystified

Bezsprzecznie najlepsza prezentacja, którą widziałam na CityJS 2022 London. Wciąż jestem zafascynowana opowieścią Mateo Collina, który rozwija bibliotekę GraphQL do Fastify. Liczby świadczące o wydajności Fastify i Mercuriusa względem konkurencji i natywnych rozwiązań powalają. Mercurius Cache wyraźnie podnosi wydajność zapytań out-of-the-box, nie mówiąc o tym gdy jest dobrze połączony z Redisem. A to jak go dobrze połączyć z Redisem to najlepsza część wykładu, której nie chcę wam opowiadać: zobaczcie to w Internecie koniecznie.

Mateo polecił kilka tooli i bibliotek, którymi warto się zainteresować:

Wybitny wykład i szkoda, że tak szybko się skończył.

PWAs: the new frontier by Diego Gonzalez

PWA to genialna koncepcja - aplikacja webowa która działa również jako desktopowa czy mobilna. Jest to dosłownie marzenie web developera. Chociaż Google - moim zdaniem - przestało stawiać na to rozwiązanie, Microsoft wciąż inwestuje w rozwój PWA. I to nie bez przyczyny: duże korporacje takie jak Spotify z powodzeniem go stosują.

Jednak moja ekscytacja nie jest szczera, od dawna mam problem z prezentacjami Microsoftu. Prowadzą je świetni, inteligentni i zbyt spokojni ludzie, którzy zabijają mój entuzjazm. To jest pomysł, którego nie trzeba nawet sprzedawać - potrzebujemy PWA i absolutnie nie wiem skąd moje mieszane uczucia.

Zanim zaczniemy się rzucać na PWA patrząc tylko na pozytywny: szybkość developmentu, możliwość aktualizacji, działanie offline to musimy zdać sobie sprawę, że jest jeszcze wiele do zrobienia.

Głównie dotyczy to integracji z innymi platformami niż Microsoft. Chciałabym zakupić apkę PWA w Google Play tak jak w Microsoft Store, użyć funkcji mojego telefonu takich jak NFC czy czujniki, których PWA obecnie nie obsługuje. Rynek iOSa jest bardzo silnie chroniony przez producenta urządzeń, więc nie zapowiada się na jakąkolwiek integrację z ekosystemem Apple. Warto dodać, że PWA może wysyłać notyfikacje tylko desktopowo na windowsie oraz mobilnie na androidzie.

Musimy zadać sobie pytanie co jest potrzebne, spisać wymagania i sprawdzić na https://aka.ms/pwa.

Inne ciekawostki

Powstał nowy, bardzo ciekawy logger Pino. Jest kilkukrotnie szybszy niż konkurencja, twórcy mają na to dowody i radzą się mu przyjrzeć uważnie.

Podsumowanie

Konferencja to też dzieło, może trafić na bardziej lub mniej dopasowanego odbiorcę. Tym razem byłam tym mniej dopasowanym. Nie oglądałam również wszystkich wykładów, więc najlepsze mogło mnie ominąć :) Sądzę, że moje i CityJS drogi na jakiś czas się rozstaną, ale nie zamykam się na konferencje i nie taki ma być wydźwięk tego wpisu.

Fakt, że mi coś nie odpowiadało nic nie znaczy.

Jeśli byliście na CityJS London 2022 i chcecie się podzielić wrażeniami to zapraszam. Kilku innych uczestników bardzo sobie ją chwaliło, szczególnie offline. Jeśli byliście na jakiś fajnych konferencjach to podzielcie się proszę, szukam wydarzenia które dobije do jakości SphereIT.

Pozdrawiam serdecznie i dziękuję za uwagę. Mam nadzieje, że dowiedzieliście się fajnych rzeczy :)

Kamila

Dziękuję za poświęcony czas, będzie mi bardzo miło jak zostawisz komentarz :)