Dzisiejsze wydanie wyjątkowo w niedzielę (świętowałem wczoraj roczek córki 🥳), ale tematów nie brakowało, więc każdy w obecnej edycji znajdzie coś dla siebie. Reddit, Rust, Crystal, Elon Musk i DALL-E 2… sporo tego.
1. Jak Reddit stworzył swój żart na Prima Aprilis?
Pisząc poprzednią edycję – ukazującą się 2 kwietnia – bardzo korciło mnie, żeby w jakiś sposób spróbować podsumować primaaprilisowe żarty, które obiegły świat technologii. O ile bowiem wszelkie “fakeowe” zapowiedzi są bardzo męczące, to akurat branża tech potrafi wyskoczyć czasem z czymś viralowym i zabawnym (vide fizyczny przycisk “Ctrl+c, Ctrl+v” od StackOverflow). Chyba jednak czasy mamy trochę niesprzyjające tego typu żartom, bo było w tym roku ich zaskakująco mało, więc pomysł naturalnie umarł (zwłaszcza, że tydzień temu było o czym pisać).
Co się odwlecze to jednak nie uciecze, zatem temat wraca w tym tygodniu. To wszystko zaś za sprawą /r/Place, jednego z niewielu udanych tegorocznych “pranków”. Jeśli nie jesteście stałymi użytkownikami Reddita (a powinniście być 😅), oryginalnie r/Place został uruchomiony 1 kwietnia 2017 r. i zawierał dużą białą siatkę pikseli, na której zalogowani użytkownicy Reddit mogli umieszczać kolorowe piksele pojedynczo co pięć minut, po prostu dotykając jej. Całość osiągnęła wtedy zawrotne ilości 16 milionów zmian od ponad 1 miliona użytkowników. Pewnie dlatego też w 2022 roku Reddit zdecydował się na powtórkę eksperymentu, i podczas pierwszych czterech dni kwietnia ponownie pozwolił się społeczności wyżyć. Efektem jest takie oto dzieło sztuki.
Jednak gdy wiesz, że możesz spodziewać się ruchu rzędu tego, co pięciu lat temu – a nawet większego, w końcu Reddit cały czas rośnie – sytuacja ta wymusza przygotowania. I właśnie architektury /r/place oraz procesu jej powstawania dotyczy artykuł opublikowany na UpVoted – oficjalnym blogu Reddita. Jako, że służy on raczej promocji nowych funkcjonalności niż prezentowaniu wyników pracy inżynierów, raczej nie przewija się on ani przez nasze przeglądy, ani przez artykuły podsuwane w ramach Vived. Tym razem jednak mówimy o naprawdę solidnej pozycji, która pokazuje, jak tworzy się krótko żyjącą (w końcu cała zabawa trwała tylko 4 dni), ale niezwykle wydajną infrastrukturę. Całość polecamy zwłaszcza chcącym poznać tajniki wdrażania WebSocketów w dużej skali – gro artykułu skupia się na tym aspekcie. Nie brakuje jednak również segmentów dotyczących API czy sposobach skalowania całości. Jest to jeden z moich ulubionych artykułów dotyczących szeroko rozumianego System Designu opublikowanych w tym roku.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Nowy Rust, nowy Crystal (że co?)
Porozmawialiśmy sobie o urokliwym projekcie Reddita, teraz czas na przyglądnięcie się dwóm “dużym wersjom”, które ukazały się w zeszłym tygodniu. Obie dotyczą języków, z którymi pewnie większość z Was nie ma dużego produkcyjnego doświadczenia, ale trochę celem przyświecającym temu przeglądowi jest właśnie poszerzanie horyzontów.
Zacznijmy od tego popularniejszego z dwójki, czyli Rusta (co pokazuje tylko, jak niszowo zejdziemy za chwilę). Wersja 1.6 najukochańszego narzędzia współczesnych programistów zawiera szereg nowości, od nowego sposobu liczenia pokrycia kodu testami (co samo w sobie jest bardzo inżyniersko interesującym tematem, nad którym kiedy mam ochotę się szerzej pochylić) czy zmiany w managerze pakietów, Cargo. Wprowadzono także stabilizację dużej części wcześniej testowych API, a także przywrócono inkrementalną kompilację, zepsutą przez jedno ze wcześniejszych wydań. Jednak to, co przyciąga oczy osobom, które z Rustem mają styczność co najwyżej hobbystyczną (bo powiedzmy sobie prawdę, nikt nie będzie używał Cargo “for fun”) to bardzo interesujący problem z monotonicznością generowania daty.
Otóż okazuje się, że klasa Instant, która dostarcza czas, bazuje na informacjach dostarczanych przez system operacyjny. Wydawałoby się, że jeśli schodzimy tak nisko, to możemy mieć pewność że każda wygenerowana data będzie większa od poprzedniej i nie będziemy mieli do czynienia z cofaniem się w czasie przy generowaniu kolejnych dat (czyli właśnie wspomnianej wyżej ich monotoniczności). Jednak twórcy Rusta twierdzą, że wcale takich gwarancji nie ma, a błędy warstwy sprzętowe, wirtualizacji czy też samego systemu operacyjnego mogą skutecznie doprowadzić do złamania tych gwarancji. Dlatego, aby zapewnić prawidłową kolejność, dość mocno “przeorali” klasę Instant, dodając do niej wewnętrznej checki i synchronizacje już po stronie języka. Przyznaje, zainteresowało mnie jak to jest rozwiązane w ramach innych języków.
Ale w tym tygodniu wyszedł nie tylko nowy Rust, ale także nowy Crystal! Czym jest Crystal, zapytacie? W uproszczeniu (dużym) można go określić jako interesujący mariaż Ruby’ego z silnym typowaniem i “prawdziwym” modelem współbieżności, opartym o tak popularne ostatnio w branży kanały i lekkie wątki, zarządzane nie przez system operacyjny, a poprzez runtime języka. Absolutnie nie sugeruje, że macie rzucać wszystko i się uczyć Crystala, ale język wydaje się być interesującą hybrydą wszystkiego co modne (przynajmniej w głównym nurcie) języków programowania. Widać też, że twórcy całości mocno celują w Ruby’owców, i pod tym względem ich głównym konkurentem jest tu pewnie Elixir. Ostatnio wyszła wersja 1.4, która chwali się lepszą inferencją typów i kolejnymi krokami na drodze do wsparcia WebAssembly.
Źródło
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Awanse w FAANG, Elon Musk i DALL-E 2
Twitter jest miejscem w którym znajdziemy wszystko – newsy, politykę, trolling najgorszego sortu… a także krytykę modelu awansowania w Big Techach w kontekście rozwoju oprogramowania Open-Source. Właśnie taki, bardzo interesujący wątek pokazał się w zeszłym tygodniu.
Całość dotyczy Kubernetesa, ale w stosunkowo prosty sposób można wysnuć analogie do innych projektów. Jak pisze autor wątku, Noah Kantrowitz (choć to jest ogólnie znana wiedza wśród interesujących się tematem) aby dostać awans w którymkolwiek z FAANG, musisz napisać dokument, który mówi, dlaczego powinieneś awansować – tak zwany „pakiet promocyjny”, a następnie poprosić kierownika, aby przedstawił go komisji awansowej. Oczywiście, w dokumencie najważniejsze jest przedstawienie, jak przyczyniłeś się do sukcesu firmy. Dużo łatwiej jest to określić przy projektach komercyjnych, których efekty są policzalne, a znacznie trudniej przy R&D i działaniu w Open-Source, gdzie korelacja jest znacznie bardziej rozmyta. Dodatkowo, gdyby to jeszcze sprowadza się po prostu do braku awansu niektórych ludzi… taki a nie inny sposób premiowania sprawia, że kontrybutorzy wrzucają do projektów nie te funkcjonalności, które są realnie potrzebne społeczności, a takie które pozwalają im jak najłatwiej wykazać wspomnianą wcześniej relacje. Smutno trochę.
A jak już o Twitterze, to chyba nie było w tym tygodniu innego około technicznego newsa niż wyjście na jaw informacji o posiadaniu przez Elona Muska prawie 10% Twittera. Akcje kupowane były przez niego od pewnego czasu, do momentu gdy okazało się, że jest on… największym pojedynczym właścicielem platformy.
Elon dołączy do rady nadzorczej firmy (UPDATE: jednak nie) i bardzo szybko zaczął mącić. Przykładowo, ogłosił Twitter Pool w ramach którego zapytał społeczność, czy ta nie chciałaby jednak mieć przycisku Edycji. Zaraz po opublikowaniu wyników ankiety (której wyniki w przeważającej większości były głosami “Za”) bardzo szybko pojawił się post informujący, że funkcjonalność od dawna była planowana jako część abonamentu Twitter Blue (płatny wariant Twittera z pewnymi udogodnieniami) i zapowiedź nie ma ABSOLUTNIE nic wspólnego z działaniami pana Muska. Tak, wszyscy oczywiście wierzymy.
A jak już o Twitterze mowa, to ukazała się druga wersja modelu DALL-E. DALL-E (miks imion Salvador Dali + WALL-E) potrafi generować złożone obrazy na bazie fragmentu tekstu. I nie mówimy tutaj o “kocie na kanapie” tylko prawdziwie szalonych tworach. Nowa wersja potrafi generować obrazy bardziej zróżnicowane, większe, a dodatkowo potrafi działać znacznie szybciej.
Część tej poprawy wynika z przejścia na model dyfuzyjny. Jest to rodzaj tworzenia obrazu, który zaczyna się od czystego szumu i potem wielokrotnie poprawia obraz, czyniąc go coraz bardziej podobnym do oczekiwanego rezultatu. Całość w przystępny sposób opisuje TechCrunch.
Jak przeskoczyłem z Twittera do DALL-E 2? Jeden z programistów OpenAI postanowił wykorzystać nową wersję modelu do wygenerowania obrazków na bazie opisów jego przyjaciół z Twittera. Efekty są wręcz fascynujące. Sami zobaczcie:
Więcej przykładów znajdziecie w wątku:
Źródła
- Noah Kantrowitz on Twitter: „FAANG promo committees are killing Kubernetes: A Short Thread 🧵” / Twitter
- OpenAI’s new DALL-E model draws anything — but bigger, better and faster than before | TechCrunch
- Not an April Fools’ joke after all: Twitter is really adding an edit button, but only for Blue subscribers – NotebookCheck.net News
- Elon Musk joins the Twitter board – by Casey Newton