1. Zaawansowane programowania funkcyjne wyjaśnione za pomocą gry wideo 🤯

Jeżeli programowanie miałoby opublikować na Facebooku swój status związku z matematyką, nie wyobrażam sobie zobaczyć tam niczego innego niż “to skomplikowane”. Można by z tego zrobić jedną z tych legendarnych telenoweli: z jednej strony para żyć bez siebie nie może, z drugiej zaś ich relacja jest dosyć toksyczna, a każda ze stron próbuje dominować i pokazać, ile to ona więcej wnosi do związku.

Odbija się to trochę na stosunku który my, praktycy branży która podobno zjada świat, mamy do królowej nauk. Z jednej strony nieraz względem samouków branża lubi stosować gatekeeping “bez matematyki dyskretnej i lambda calulusa do mojego CRUDa nie podchodź, bo popsujesz”. Z drugiej zaś mam wrażenie, że jakbyśmy na rekrutacji kazali policzyć jakąś pochodną (ale błagam, nie trollujcie w ten sposób 🙏) to wielu z samozwańczych wykładowców akademickich dość mocno by się zdziwiło.

Ja, podczas parsowania kolejnego JSONa

Ten nieco przydługi wstęp (dziękuję za uwagę, chciałem to z siebie wyrzucić od pewnego czasu 🥰) prowadzi mnie do postaci Bartosza Milewskiego, człowieka który dał branży legendarny (i niszowy) kurs dotyczący Teorii Kategorii. Jest to ten dział matematyki (ciekawostka – zapoczątkowany przez Polaka, Samuela Eilenberga 🇵🇱), próbujący znaleźć analogie między teoriami matematycznymi, a także stanowiący istotny budulec wszystkich języków funkcyjnych. Dlatego już sam fakt próby stworzenia “JeszczeJednego” artykułu wprowadzającego do FP napisany przez Bartosza byłby interesujący. Co jednak urzeka, to fakt że zamiast jeszcze raz opowiadać o burrito, Milewski postanowił za przykład użyć Factorio.

Czym jest Factorio, zapytacie? Jest to “Minecraft dla inżynierów”, którego założenia są bardzo proste - jako inżynier rozbijasz się na obcej planecie i musisz przeżyć, tworząc linie fabryczne o coraz większej złożoności. Gra jest mieszanką craftingu, survivalu i tower defendera - fenomenem w którą zawsze marzyło mi się zagrać, ale wiecznie brakuje mi na to czasu z powodu pisania dla Was tygodniowych przeglądów - doceńcie proszę 🤓.

W gifach z tej gry jest coś… majestatycznego‌‌

Niech za dowód tego, że gra jest mocno targetowana na inżynierów posłuży fakt, że za jej pomocą Bartosz był w stanie opisać w zasadzie całe FP. I opowiada nie tylko o funkcjach wyższego rzędu, ale też zaawansowanych tworach jak funktory i aplikatywy, a także monady. Aczkolwiek, przy tych ostatnich w wielu miejscach pokazuje on braki produkcji Wube Software (np. fakt że wsparcie factoriowych linii produkcyjnych dla Monad jest dosyć szczątkowe) .

Mam nadzieję, że nabraliście zainteresowania na tekst Milewskiego i/lub Factorio. Ja sam do tego stopnia, że przerwałem pisanie i sam w końcu Factorio nabyłem.

Jeśli w poniedziałek nie będzie Vivedowego Keep-Upa lub we wtorek edycji JVMowej naszego przeglądu - nie wzywajcie policji

Źródła:

  1. Why monads always get compared to burritos?
  2. Wikipedia: Samuel Eilenberg
  3. Category Theory for Programmers (książka)
  4. Category Theory for Programmers (kurs wideo)
  5. factorio.com
  6. Functorio

Nazywając relacje między matematyką a programowaniem telenowelą, wyprztykałem się niestety z porównania, które spokojnie mógłbym użyć teraz w kontekście serialu “TheBigTech vs państwa i obywatele”. Relacjonowanie dla Was tego konfliktu (który ciągnie się już parę lat i dość ciężko prorokować do czego ostatecznie doprowadzi) bywa dosyć zabawne, ale ten cały 🍿, którym się przy tym obżeram odbija mi się czkawką (i nadmiernymi kilogramami).

TLDR: Australia, podobnie jak inne kraje na świecie (w tym Polska), chce wyciągnąć trochę pieniędzy od internetowych graczy. Jej strategia to tak zwany “podatek od linkowania”. Ma on zmusić firmy technologiczne do płacenia za treści informacyjne na ich platformach (aczkolwiek nie tylko, bo np. również do dzielenia się z firmami medialnymi szczegółami swoich algorytmów). Projekt ustawy wprowadzający te opłaty w środę został uchwalony przez Izbę Reprezentantów parlamentu Australii.

Tak jak wspomniałem, mamy tutaj do czynienia z przeciąganiem liny jakich ostatnimi czasy sporo, ale jak zwykle sprawa nie jest taka czysta - nawet w samej Australi nie brakuje głosów, że tak naprawdę jest to tylko korporacjonizacja mediów i oberwie się w zasadzie wszystkim poza paroma koncernami. Za niebezpieczny precedens uznał go też Tim Berners-Lee, twórca World Wide Web.

Dlatego też bardzo interesującą sprawą jest reakcja FANGa, w którego ustawa jest bezpośrednio wycelowana. Google, mimo początkowej “napinki”, że wycofa się z Australii, ostatecznie podwinęło ogon i dogadało się z rządem australijskim. Sporo pewnie w tym zasługi Microsoftu, który stwierdził, że on nie ma z ustawą problemu i chętnie wejdzie w lukę po konkurencie.

Ciekawsza jest jednak decyzja Facebooka - pokazał on “cojones” i zdecydował się zablokować w Australii wszystkie newsy, zarówno te krajowe, jak i z reszty świata. Decyzja wywołała olbrzymie kontrowersje, pojawiły się głosy że jest to próba monopolistycznego wpłynięcia na politykę krajową przez wielkie konsorcjum na niespotykaną wcześniej skalę - aczkolwiek pojawiają się też komentarze, że tak naprawdę Facebook kieruje się biznesowym interesem - nie są mu newsy do niczego potrzebne.

Co ciekawe, Facebook był na tyle konsekwentny, że “zbanował” na swojej platformie też newsa o samym banie (nie żartuje)

Naprawdę chciałbym mieć tutaj jakąś silną opinie, ale jestem skonfundowany jak nigdy. Z jednej strony pryncypialnie chciałbym być po stronie Australii, ale widząc co dzieje się w temacie na naszym własnym podwórku, zdaje sobie sprawę jak śliski jest to grunt. Pozwólcie zatem, że drugi raz w tym krótkim tekście użyje facebookowego terminu “to skomplikowane”

Stan na sobotę jest taki, że według doniesień negocjacje rząd-facebooku zostały wznowione.

W międzyczasie, podatek podobny do australijskiego chce wprowadzić Kanada.

PS: Jeśli ktoś ma 50 minut, nowy odcinek Exponent.fm (jak już pewnie wiecie, jeden z moich ulubionych podcastów ♥️) dotyczy właśnie tego tematu i zawiera punkt widzenia mieszkańca Australii.

Źródła:

  1. Australia’s Proposed “Fox News Tax”
  2. Australia's ‘Link Tax’: A path to total corporate dominance?
  3. Australian law could make internet ‘unworkable’, says World Wide Web inventor Tim Berners-Lee
  4. In Australia, Google makes publisher deals, Facebook walks
  5. Microsoft says it would willingly participate in Australia's media code with Bing search engine
  6. Facebook says it doesn’t need news stories for its business and won’t pay to share them in Australia
  7. Changes to Sharing and Viewing News on Facebook in Australia
  8. Facebook has 'tentatively friended' us again, Australia says
  9. ‘Highly irresponsible’: Canada condemns Facebook over Australian news ban
  10. Exponent: Episode 192 — The Australian Perspective

3. Jak kiepski UX doprowadził do pomyłki na 500 milionów 💸

A na koniec odrobina humoru, bo trochę ponuro się nam zrobiło.

TLDR sprawy jest taki: w zeszłym roku Citibank dokonał pomyłki - w wyniku błędu przy wysyłaniu przelewu do kredytodawców (tak, banki też czasem pożyczają kapitał). Zamiast przelać tylko i wyłącznie odsetki w wysokości $7.8 miliona dolarów, dokonał on zwrotu konta całej bazowej sumy ~$500 milionów. Szybko zauważono tam pomyłkę (ktoś się podejrzewam nieźle spocił) i poproszono kredytodawców o zwrot błędnie przelanej sumy. Ci jednak stwierdzili, że nie mają takiego obowiązku i sprawa trafiła do sądu (w sprawie jest trochę ciekawych detali, dlatego odsyłam też  do oryginalnego linku).

W zeszłym tygodniu zapadł wyrok i jest on dość unikalny. O ile zwykle w takich sprawach zwykle pieniądze są zwracane, to w wypadku tej sędzia stwierdził, że bank dopuścił się rażącego niedbalstwa w przygotowaniu UI dla operatora płatności. Był on po prostu tak nieczytelny, że mimo trzech poziomów zatwierdzania operacji nikt nie spostrzegł problemu. Wina więc leży po stronie banku i pieniędzy nie trzeba zwracać.  Jako materiał dowodowy załączony został screen:

Ja się sędziemu nie dziwie, za taki UI to powinni dodatkowo kogoś wsadzić do więzienia żeby dać dobry przykład.

Musicie przyznać, że rozwiązanie całej sytuacji jest niezwykle interesujące. Ciekawią mnie bardzo reperkusje tej dość jednak przełomowej sprawy (zwłaszcza w USA gdzie działa prawo kazusu). Czy oznacza to, że tooling internalowy zacznie wreszcie spełniać jakieś standardy przyzwoitości?


I pamiętajcie, żeby spróbować Vived, jeśli chcesz otrzymywać tego typu treści spersonalizowane pod Ciebie!