Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Wiktor Toporek - Znaki mocy dla laików
Programowanie funkcyjne nierzadko postrzegane jest jako dziwna oraz trudna do opanowania technika, tymczasem każdy może korzystać z jej dobrodziejstw.
Analizy Przestrzenne z wykorzystaniem GRASS vol.15WGUG
tom 15 z serii Rozprawy Naukowe Instytutu Geografii i Rozwoju Regionalnego Uniwersytetu Wrocławskiego, zawierający artykuły powstałe na podstawie prezentacje wygłoszonych w trackie XII Warsztatów Naukowych "Analizy przestrzenne z wykorzystaniem GRASS", Wrocław 2010.
Analizy Przestrzenne z wykorzystaniem GRASS vol.15WGUG
tom 15 z serii Rozprawy Naukowe Instytutu Geografii i Rozwoju Regionalnego Uniwersytetu Wrocławskiego, zawierający artykuły powstałe na podstawie prezentacje wygłoszonych w trackie XII Warsztatów Naukowych "Analizy przestrzenne z wykorzystaniem GRASS", Wrocław 2010.
Architektura aplikacji z wykorzystaniem wzorca redux i implementacji angular 2+ oraz ngrx. Prezentacja ze szkolenia przeznaczonego dla programistów angular1.
Przegląd najważniejszych założeń technologii ASP.NET MVC. Omówienie mechanizmów routingu, kontrolerów, widoków, bezpieczeństwa, walidacji danych, AJAX oraz rozszerzalności platformy. Prezentacja obejmuje fundamentalne założenia ASP.NET MVC 1, pozostające w większości nadal aktualne a także wybrane nowe mechanizmy ASP.NET MVC 2 i ASP.NET MVC 3.
Nie wszystko, co ubite, w ziemi zostaje. Wprowadzenie do Event SourcingThe Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Daniel Stokowiec - Nie wszystko, co ubite, w ziemi zostaje
O tym, jak znajomość zdarzeń pomaga w walce ze zmorami i potworami, czyli wprowadzenie do Event Sourcing
Jesteś frontendowcem i masz zamiar pisać w Nodzie? A może wcześniej pisałeś w PHP? Ta prezentacja pomoże ci zrozumieć podstawowe reguły rządzące światem Node'a, jak i nadrobić zaległości. Przygotuj się na pozytywnego kopniaka!
Wiele już powiedziano i napisano o bezpiecznym kodowaniu.
My skupiamy się w prezentacji na bezpiecznym kodowaniu w języku C na podstawie realnych podatności znalezionych w znanych programach i bibliotekach oraz kernelu Linuxa.
Warsztaty: Podstawy PHP
Część 2: Omówienie składni języka PHP (wersja 7)
Prowadzący: Krzysztof Ożóg, CTO Codesushi
Omówienie składni języka PHP (wersja 7):
1) Instalacja interpretera języka PHP
2) Deklaracja zmiennych i stałych
3) Operatory i ich priorytet
4) Struktury kontrolne
5) Definiowanie funkcji
6) Alternatywna składnia, czyli PHP jako system szablonów
7) Model obiektowy
a) Klasy
b) interface -y
c) Dziedziczenie
d) Magic methods
e) Autoloader
f) Obsługa błędów i wyjątków
g) PDO - interface komunikacji z bazami danych
h) Omówienie biblioteki standardowej PHP
i) Omówienie rozszerzenia SPL
j) Standardy PSR
k) Standardy kodowania PSR-1 i PSR-2
l) Composer, standardy PSR-0 i PSR-4 i Packagist
W ostatnich latach TypeScript bez wątpienia coraz częściej staje się standardowym narzędziem w JavaScriptowych środowiskach. Pomaga wyłapać wiele błędów nim aplikacja zostanie uruchomiona, ale niestety samo jego użycie w projekcie nie jest panaceum na wszystkie tego typu błędy. Dlatego też podczas prezentacji przyjrzymy się technikom, które pozwalają zaprojektować kod, który prowadzi programistów za rączkę do świata w którym błędy w trybie runtime są rzadkością.
Introduction to Hadoop Map Reduce, Pig, Hive and HBase technologies.
Workshop deck prepared and presented on May 30th 2015 by Radosław Stankiewicz.
During that day participants had also possibility to go through prepared tutorials and test their analysis on real cluster.
Lexical scope, function vs. block scope, hoisting, scope closuresBrainhub
As presented at DevDuck #1 - JavaScript meetup for developers (www.devduck.pl)
Prezentacja z #1 spotkania DevDuck'a w Gliwicach (www.devduck.pl), spotkania mającego na celu poszerzanie wiedzy i wymianę doświadczeń z zakresu szeroko pojętego JS'a, a w szczególności Node.js/React.js i im pochodnych kończących się na ".js" :).
----
Spotkanie odbyło się w Gliwicach w siedzibie Brainhub (www.brainhub.eu)
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Maciej Mączko - Bestiariusza wpisy wybrane
Czyli o tym, co nieoczekiwanego można spotkać na drodze swojej wędrówki, jeśli masz PecHa ;P
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...The Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Bartosz Tkaczewski - Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów
Praktyczne wykorzystanie narzędzia Ansible do przyjemnego tworzenia własnego środowiska developerskiego - czyli jak uprościć sobie życie i pozbyć się mitycznego - „dziwne a u mnie działało".
Architektura aplikacji z wykorzystaniem wzorca redux i implementacji angular 2+ oraz ngrx. Prezentacja ze szkolenia przeznaczonego dla programistów angular1.
Przegląd najważniejszych założeń technologii ASP.NET MVC. Omówienie mechanizmów routingu, kontrolerów, widoków, bezpieczeństwa, walidacji danych, AJAX oraz rozszerzalności platformy. Prezentacja obejmuje fundamentalne założenia ASP.NET MVC 1, pozostające w większości nadal aktualne a także wybrane nowe mechanizmy ASP.NET MVC 2 i ASP.NET MVC 3.
Nie wszystko, co ubite, w ziemi zostaje. Wprowadzenie do Event SourcingThe Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Daniel Stokowiec - Nie wszystko, co ubite, w ziemi zostaje
O tym, jak znajomość zdarzeń pomaga w walce ze zmorami i potworami, czyli wprowadzenie do Event Sourcing
Jesteś frontendowcem i masz zamiar pisać w Nodzie? A może wcześniej pisałeś w PHP? Ta prezentacja pomoże ci zrozumieć podstawowe reguły rządzące światem Node'a, jak i nadrobić zaległości. Przygotuj się na pozytywnego kopniaka!
Wiele już powiedziano i napisano o bezpiecznym kodowaniu.
My skupiamy się w prezentacji na bezpiecznym kodowaniu w języku C na podstawie realnych podatności znalezionych w znanych programach i bibliotekach oraz kernelu Linuxa.
Warsztaty: Podstawy PHP
Część 2: Omówienie składni języka PHP (wersja 7)
Prowadzący: Krzysztof Ożóg, CTO Codesushi
Omówienie składni języka PHP (wersja 7):
1) Instalacja interpretera języka PHP
2) Deklaracja zmiennych i stałych
3) Operatory i ich priorytet
4) Struktury kontrolne
5) Definiowanie funkcji
6) Alternatywna składnia, czyli PHP jako system szablonów
7) Model obiektowy
a) Klasy
b) interface -y
c) Dziedziczenie
d) Magic methods
e) Autoloader
f) Obsługa błędów i wyjątków
g) PDO - interface komunikacji z bazami danych
h) Omówienie biblioteki standardowej PHP
i) Omówienie rozszerzenia SPL
j) Standardy PSR
k) Standardy kodowania PSR-1 i PSR-2
l) Composer, standardy PSR-0 i PSR-4 i Packagist
W ostatnich latach TypeScript bez wątpienia coraz częściej staje się standardowym narzędziem w JavaScriptowych środowiskach. Pomaga wyłapać wiele błędów nim aplikacja zostanie uruchomiona, ale niestety samo jego użycie w projekcie nie jest panaceum na wszystkie tego typu błędy. Dlatego też podczas prezentacji przyjrzymy się technikom, które pozwalają zaprojektować kod, który prowadzi programistów za rączkę do świata w którym błędy w trybie runtime są rzadkością.
Introduction to Hadoop Map Reduce, Pig, Hive and HBase technologies.
Workshop deck prepared and presented on May 30th 2015 by Radosław Stankiewicz.
During that day participants had also possibility to go through prepared tutorials and test their analysis on real cluster.
Lexical scope, function vs. block scope, hoisting, scope closuresBrainhub
As presented at DevDuck #1 - JavaScript meetup for developers (www.devduck.pl)
Prezentacja z #1 spotkania DevDuck'a w Gliwicach (www.devduck.pl), spotkania mającego na celu poszerzanie wiedzy i wymianę doświadczeń z zakresu szeroko pojętego JS'a, a w szczególności Node.js/React.js i im pochodnych kończących się na ".js" :).
----
Spotkanie odbyło się w Gliwicach w siedzibie Brainhub (www.brainhub.eu)
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Maciej Mączko - Bestiariusza wpisy wybrane
Czyli o tym, co nieoczekiwanego można spotkać na drodze swojej wędrówki, jeśli masz PecHa ;P
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...The Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Bartosz Tkaczewski - Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów
Praktyczne wykorzystanie narzędzia Ansible do przyjemnego tworzenia własnego środowiska developerskiego - czyli jak uprościć sobie życie i pozbyć się mitycznego - „dziwne a u mnie działało".
Zbigniew Cisiński - Deploy appki na iOS’a czyli magia publikacji
www.tsh.io
Krótko o tym, jak wypuścić aplikację na iOS’a, nie tylko do App Store, ale także alternatywnymi metodami bez konieczności zarzynania czarnego kuraka. Jakie mogą być problemy i dlaczego tak często jest to nierozróżnialne od czarnej magii.
Prezentacja z Uszanowanka Programowanka #17 https://www.meetup.com/Uszanowanko-Programowanko/events/235645454/
Tomasz Łopusiewicz - Automatyzacja deploymentu z pomocą ansible
www.tsh.io
Deployment z wykorzystaniem popularnych narzędzi i metodyk.
Prezentacja z Uszanowanka Programowanka #17 https://www.meetup.com/Uszanowanko-Programowanko/events/235645454/
Bartosz Tkaczewski - Przygód z Dockerem ciąg dalszy
http://www.tsh.io
Docker jest zauważalny już niemal wszędzie. Na prezentacji zobaczysz działające środowisko developerskie, poznasz kilka sztuczek, jak sobie z nim dobrze radzić i efektywnie pracować, zobaczysz też, jak szybko można prosty projekt wzbogacić o zaawansowane stacki aplikacji (na przykładzie ELK). Postaram się również opowiedzieć, jak można sobie z tym potworkiem poradzić na produkcji.
Prezentacja z Uszanowanka Programowanka #16 - http://www.meetup.com/Uszanowanko-Programowanko/events/234826115/
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...The Software House
Prezentacja z meetupu grupy "Uszanowanko Programowanko", tematyka AngularJS: http://www.uszanowanko.pl/angular
Autor: Łukasz Bachman
Szybkie prototypowanie aplikacji w AngularJS jest jedną z największych zalet tego narzędzia. Jednakże jako programiści musimy zadbać o to, aby pisane przez nas aplikacje były wydajne zarówno pod względem pamięciowym, jak i czasowym. W mojej krótkiej prezentacji chciałbym przedstawić kilka praktycznych porad, które pomogą to osiągnąć. Całość omówimy na prawdziwym studium przypadku aplikacji przetwarzającej duże zbiory danych.
REvolution, czyli o bardziej obiektowym podejściu w RailsachThe Software House
Prezentacja z meetupu Uszanowanko Programowanko #3 http://www.uszanowanko.pl/rubyonrails
REvolution - czyli o bardziej obiektowym podejściu w rozwiązaniach kolejowych
Framework Ruby on Rails pozwala na szybkie i stosunkowo łatwe tworzenie aplikacji webowych w języku Ruby. Można powiedzieć, że podejście zwane “The Rails Way” w wielu przypadkach zdało swój egzamin. Szybko jednak okazało się, że to podejście nie sprawdza się w przypadku bardziej złożonych systemów. Logika biznesowa w kontrolerach, wypasione modele, logika w szablonach… ogólnie mówiąc chaos. Potrzebna była (r)ewolucja...
Autor: Tomek Jasiulek
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...The Software House
Architektura aplikacji iOS, podstawowe kontrolki i przydatne frameworki.
Kod źródłowy z prezentacji: https://github.com/UszanowankoProgramowanko/swift-intro
Developer mode on, czyli słów kilka o rbenv, rvm i ruby-ng The Software House
Prezentacja z meetupu Uszanowanko Programowanko #3 http://www.uszanowanko.pl/rubyonrails
Dobrze skonfigurowane środowisko pracy jest bardzo ważne dla programisty. Dlatego też rvm i rbenv zna każdy, najczęściej wykorzystując tylko niewielki procent ich potencjału. Przy pracy nad projektem często wykorzystujemy także środowisko wirtualne np. vagranta + ubuntu. W tym przypadku istnieje prosta alternatywa, która dobrze sprawdza się dla developera.
Autor Łukasz Myrda
Prezentacja z meetupu Uszanowanko Programowanko #3 http://www.uszanowanko.pl/rubyonrails
Od zera do ruby-mastera, czyli gdzie szukać inspiracji i wiedzy związanej z Ruby i Rails. Porady i wskazówki dla przyszłych i obecnych programistów Ruby.
Autor: Wojtek Widenka
Red Green Hotfix – złudne poczucie bezpieczeństwa w testachThe Software House
Presentation from Uszanowanko Programowanko meetup - www.meetup.com/Uszanowanko-Programowanko/events/221770025/
Czasami poczucie dobrze spełnionego obowiązku po uruchomieniu wszystkich testów jest złudne. Nawet doświadczonym developerom zdarza się pisać hotfixy. W jaki sposób zapewnić sobie spokój i zminimalizować konieczność pisania kolejnych poprawek? W trakcie prezentacji omówione zostaną przykłady dobrze i źle napisanych testów oraz przedstawione będą sytuacje, w których trudne jest rozpoznanie potencjalnych problemów mogących wyniknąć w przyszłości.
Czas na duże zmiany! PHP 7 wprowadza sporo nowości, które sprawią, że pisanie kodu będzie wygodniejsze, bezpieczniejsze i szybsze. Lepsze typowanie, nowa obsługa błędów czy operatory to tylko niektóre z wielu ulepszeń. Prezentacja będzie prowadzona w formie pokazu na żywo, w trakcie którego przedstawię najważniejsze informacje dotyczące nowej wersji języka.
Presentation from Uszanowanko Programowanko meetup - www.meetup.com/Uszanowanko-Programowanko/events/221770025/
Pewnego pięknego dnia odkryłem ustrojstwo zwane ReactPHP i postanowiłem sprawdzić o co chodzi. Powiem co to jest oraz podzielę się wnioskami.
Marek Gajda - Pi razy drzwi
Prezentacja z Uszanowanka Programowanka #9 - uszanowanko.pl
Każdy programista przynajmniej raz w życiu usłyszy magiczne słowa “Mam taki projekt… Ile to zajmie?”. Jak radzić sobie z odpowiedzią, kiedy nie mamy jeszcze wszystkich szczegółów, a jedynie ogólny zarys tego, co trzeba wykonać? Jak wróżyć z fusów skoro najczęściej pijemy kawę z ekspresu? Podzielę się swoimi doświadczeniami z szacowania projektów.
Wydawałoby się, że w świecie aplikacji mobilnych i webowych nie ma już miejsca na desktopy - jednak tak nie jest. Z pomocą przychodzi nam JavaScript! Celem prezentacji będzie pokazanie jak przy pomocy JS zbudować prostą desktopową aplikację wykorzystującą webowe API.
Wiktor Toporek - Gulp.js
Prezentacja z meetupu Uszanowanko Programowanko #11 - http://www.meetup.com/Uszanowanko-Programowanko/events/228401563/
Istnieje wiele pomocnych narzędzi zasilanych technologią Node.js. Swego czasu najpopularniejszym oraz niezbędnym narzędziem dla każdego frontendowca był Grunt. Jak to jednak w świecie JavaScriptu bywa, szybko powstała konkurencja z odrobinę inną filozofią pracy - Gulp.js
Jerzy Biernacki - HTTP Cache to nie wieczór pensjonarki...
… żeby do czegoś dojść, trzeba PROJEKTOWAĆ! Varnish jest jednym z najpopularniejszych HTTP Cache dostępnych na rynku. Jego konfiguracja nie jest jednak trywialna, lecz wymaga przygotowań nawet na etapie tworzenia aplikacji. Podczas wykładu omówimy sobie podstawy Varnisha, przykładowe zastosowania, a także efekty działania tego narzędzia.
Maciej Mączko - Wielkie protokoły wielkich ludzi
Używany na co dzień, znormalizowany sposób komunikacji w sieci WWW istnieje w prawie niezmiennej formie od wielu lat. HTTP, bo o nim mowa, jest prosty ale skuteczny. Poznamy jego historię, podstawowe metody i wykonamy kilka zapytań. Wstęp do następnego wykładu.
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...The Software House
Często zdarza się, że na testy bezpieczeństwa nie ma czasu lub budżetu. Testy te często są wykonywane na sam koniec, gdy nie ma możliwości na dłuższą analizę. Przez takie myślenie, padają firmy lub zwykli obywatele tracą dostęp do swoich danych czy po prostu te dane wyciekają. Przeanalizujemy kilka ostatnich ataków, zastanowimy się jak można było temu zapobiec.
Ostatnia prezentacja w historii Uszanowanka Programowanka. O przemianach, jakie przechodził meetup, rozwoju i zabawnych sytuacjach opowiada CTO The Software House.
W ciągu ostatnich 7 miesięcy przeszedłem drogę z poziomu Cloud Practitioner do Solutions Architect Professional, zdobywając nie tylko 5 certyfikatów, ale przede wszystkim wiedzę i praktykę, dzięki którym dziś pracuje mi się łatwiej i efektywniej. Na tym spotkaniu opowiem o motywacjach, wyzwaniach, strategiach nauki oraz najbardziej wartościowych źródłach wiedzy, dzięki którym zaplanujesz swoją drogę do certyfikatów. I to bez względu na to, czy dopiero zaczynasz swoją przygodę z AWS, czy masz już za sobą masę doświadczeń, które chcesz potwierdzić “na papierze”.
Dostępność, accessibility, a11y, WCAG… Dla niektórych to tylko dodatkowe tematy do przerobienia w projektach, które pochłaniają więcej czasu i budżetu. Według mnie to jednak ważny element, który zmienia internet w przyjazne miejsce dla wszystkich użytkowników. Jak reaguje twoja mobilna apka w słoneczny dzień? Czy buttony są wystarczająco duże, żeby wszyscy (nawet niedowidzący czy seniorzy) je zauważyli? Czy da się skorzystać z systemu, który tworzysz za pomocą klawiatury? I w końcu czy ta cała dostępność to tylko “hot topic”, a może faktyczna potrzeba? Odpowiem na te pytania głównie z perspektywy biznesu, ale nie zabraknie konkretnych wskazówek technicznych. Będzie o dostępności w pigułce.
Case study naszego wdrożenia rozwiązania czatu tekstowego przy użyciu zestawu Amazon Chime SDK. Moja prezentacja będzie składać się z przeglądu projektu, dlaczego w ogóle potrzebowaliśmy czatu tekstowego, podróży wdrożeniowej i wyzwań, przed którymi stanęliśmy (takich jak ograniczanie żądań i problemy ze skalowalnością). Wspomnę też pokrótce o innych funkcjonalnościach Amazon Chime, z których nie korzystaliśmy.
Pamiętacie jeszcze stare programy lub aplikacje pisane przy użyciu C, Assemblera lub innych bardzo przestarzałych technologii? Ja też nie. Za to jeden z naszych klientów pamięta i przyszedł z prośbą o przeniesienie danych z jego starej aplikacji do nowej. Podczas tej prezentacji będziecie mogli zobaczyć, jak poradziliśmy sobie z problemami wynikającymi z istniejących aplikacji oraz jak stworzyliśmy oprogramowanie migrujące dane na podstawie usług dostępnych w AWS.
Architektura serverless zyskuje na popularności każdego dnia. Większość developerów napotka to na swojej drodze kariery. Jak się z tym zmierzyć, jakich narzędzi użyć aby nie zwariować i uciec w Bieszczady? Jak wdrożyć sprawdzoną strukturę? Porozmawiajmy o tym jak dość płynnie wejść w świat architektury typu serverless.
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSThe Software House
Case study na temat narzędzia, które zestawia analizę artykułów pod kątem płci z danymi o odbiorcach z Google Analytics, co pozwala na optymalizację treści i lepsze przyciąganie rzeszy czytelników. Dzięki wykorzystaniu AWS błyskawicznie przygotowaliśmy działające MVP.
Piątek po południu. Wypuściłeś aktualizację na serwer z nową funkcjonalnością (mimo, że wszyscy ci odradzali). Ale był tam krytyczny fix buga. Nie miałeś innego wyjścia. 5 minut po deployu okazuje się, że system leży – nowa funkcjonalność coś popsuła. Chyba czeka cię długi piątek/weekend. Gdybyś miał Feature Flags w projekcie, to twój piątek wyglądałby zupełnie inaczej. Feature Flags (albo Feature Toggles) pozwalają ukryć funkcjonalność przed użytkownikiem końcowym i wyświetlić ją warunkowo. Dzięki temu można spokojnie merge’ować wszystko do głównej gałęzi. Albo wyłączyć funkcjonalność w ciągu kilku minut, jeśli jest wadliwa. Na prezentacji opowiem, dlaczego w swojej aplikacji JavaScript powinieneś rozważyć Feature Flags. Wady, zalety i praktyczne wskazówki jak sobie z tym radzić. I to wszystko z perspektywy osoby, która korzysta z tego od dłuższego czasu. Po wyjściu z prezentacji będziesz wiedzieć kiedy warto stosować flagi i jak utrzymać je pod kontrolą.
TypeScript na przestrzeni lat udowodnił że da się okiełznać dużą część problemów wynikających z dynamiczności języka JavaScript. Strukturalne typowanie które oferuje potrafi w miarę nieinwazyjnie pomóc w wykrywaniu pułapek, w które wpadlibyśmy, pisząc w czystym JS. Co jednak w przypadku gdy coś kwacze jak kaczka ale nią nie jest? Czy da się zabezpieczyć developera przed pomieszaniem dwóch różnych jednostek, które w historii doprowadziły do nie jednej katastrofy? Na prelekcji przejdziemy przez różne case study i zastanowimy się jak pomóc TypeScriptowi w ostrzeganiu nas przed pułapkami których nie zawsze da się uniknąć w pierwotnym typowaniu strukturalnym.
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
W ramach tej prezentacji pokażę jak efektywnie wykorzystać GraphQL `codegen` do generowania hooków i typów, które pomogą obsłużyć dowolne query i mutation, czyniąc kod nie tylko czytelniejszym, ale również łatwiejszym w utrzymaniu. W tym celu wspólnie postawimy przykładowy projekt, a także poświęcimy kilka minut na skonfigurowanie IDE. Dzięki temu nasza codzienna praca stanie się przyjemniejsza i efektywniejsza.
Kiedy aplikacja napisana w Serverless Frameworku jest mała, można zamieść niektóre rzeczy pod dywan. Ale co, kiedy po kilku miesiącach zaczyna wychodzić spod niego prawdziwy potwór? Co, kiedy musisz przetestować jedną lambdę na środowisku, a deploy całego stacka trwa 20 minut? No i jak przeorganizować aplikację wiedząc, że ciągle będzie rosła? Dowiedz się, jak rozbiliśmy naszą hurtownię danych wykorzystując Serverless Compose. Jakie przyniosło nam to efekty i o czym dowiedzieliśmy się w trakcie.
Testy API: połączenie z bazą danych czy implementacja w pamięciThe Software House
Testy integracyjne wykonują realne żądania na API. Trzeba zatem zadbać o odpowiednie skonfigurowanie środowiska do testów. Kwestia danych to jedno z podstawowych zagadnień z którym należy sobie poradzić. Do tematu można podejść na kilka sposobów, ale sprowadzają się one do dwóch kategorii: baza danych albo implementacja w pamięci. Dowiedz się, które z nich sprawdzi się w twoim projekcie.
Opowieść o tym, jak w projekcie legacy, który już ledwo dychał, udało się zaimplementować read model oparty na ElasticSearch (choć nie bez przeszkód i czasami pod prąd). Podczas prezentacji aplikacja legacy i walka o przyspieszenie zapytań posłuży jako punkt wyjścia do przeanalizowania konceptu “read modeli”. Po co wdrażamy je do aplikacji? Jakie są metody utrzymania ich w spójności? A w końcu – ich wady i zalety. W przypadku wspomnianej aplikacji zapytania które trwały około 8 minut udało się przyspieszyć do poniżej 1s (choć nie obyło się to bez potknięć). Zobacz jak!
Firestore czyli ognista baza od giganta z Doliny KrzemowejThe Software House
Podczas codziennej pracy każdy z nas korzysta z różnych baz danych,
Każda baza ma zachowania typowe dla siebie. Firestore to nierelacyjna baza od Google, która posiada wiele nietypowych funkcjonalności, wiele ciekawych rozwiązań. W tej prezentacji dowiemy się o paru fajnych zastosowań w Firestore i na co warto uważać przy implementacji tego rozwiązania.
AWS, a w szczególności serverless computing, oferuje nam możliwość skalowania naszych systemów out-of-the-box. W większości przypadków jest to nam bardzo na rękę, ale… Co w sytuacji, gdy potrzebujemy z chirurgiczną precyzją kontrolować, ile aktualnie Lambd jest w użytku? Okazuje się, że nie jest to do końca taka prosta sprawa, gdyż AWS uporczywie robi wszystko, co może, aby wyskalować nasz system, niezależnie czy tego chcemy, czy nie. W tej prelekcji zaprezentuję możliwe sposoby rate limitingu naszych funkcji. Za przykład posłuży nam komunikacja z 3-rd party API, gdzie w większości przypadków jesteśmy ograniczeni ilością requestów, jakie możemy wykonać w jednostce czasu, żeby nie otrzymać 429-tki.
AWS oferuje zbiór niezwykle przydatnych narzędzi i rozwiązań. Potrafi też jednak zaskoczyć. W trakcie swojej prezentacji, Karol przedstawi kilka problemów na które natknął się w projektach, a które wzięły jego zespół z zaskoczenia. Skupi się też na tym, jak skutecznie sobie z nimi poradzić.
W trakcie swojej prezentacji Łukasz opowie o tym, czym jest Storyblok i co ma do zaoferowania w porównaniu do innych CMS-ów. Przed Wami przykład prostego komponentu który jest konfigurowalny, przykłady dodawania bardziej skomplikowanych interaktywnych komponentów oraz kilka słów o tym, na co uważać przy okazji pracy z tym CMS-em.
Amazon Step Functions. Sposób na implementację procesów w chmurzeThe Software House
Zmęczony łańcuchowym (i wieloogniwowym) wywoływaniem AWS Lambd przez inne Lambdy? Śledzenie poszczególnych inwokacji od początkowej do końcowej Lambdy to droga przez mękę? I nawet AWS X-Ray tu nie wystarcza? Rozwiązaniem jest Amazon Step Function, czyli usługa AWS umożliwiająca łączenie poszczególnych kroków logicznych w proces, z jasnym dostępem do historii i szczegółów wywołań.
AWS Amplify Studio jest nowością od AWS’a, która pozwala połączyć komponenty Figma z bazą danych i wygenerować gotowy kod React. Czy to oznacza, że frontend deweloperzy przestaną być potrzebni? A może te narzędzie to tylko chwyt reklamowy? I czemu AWS zainteresował się narzędziami low-code/no-code. Na to wszystko Aleksander odpowie w swojej prezentacji. I pokaże na żywo jak przejść od Figmy do gotowej aplikacji.
32. Trochę elastyczniej...
...ale nie do końca
var name = "Doge"
function printIt(name) {
console.log("Hello " + name);
}
printIt(name);
printIt("Bye Doge"); // Hello Bye Doge
33. Osobna funkcja do witania:
function greeting(name) {
return "Hello " + name;
}
Użycie:
var name = "Doge";
printIt(greeting("Doge")); // Hello Doge
34. POŁĄCZMY DWIE FUNKCJE W JEDNĄ
Klasyczną drogą:
var name = "Doge";
function greet(name) {
printIt(greeting(name));
}
greet(name);
Drogą FP:
var name = "Doge";
var greet = compose(printIt, greeting);
greet(name);
36. A co z parametrem innego typu?
var user = {
id: 123,
name: "Doge"
};
To:
greet(user); // Hello [object Object]
37. Dopiszmy kolejną funkcję:
function printIt(name) {
console.log(name);
}
function greeting(name) {
return "Hello " + name;
}
function getName(user) {
return user.name;
}
Skomponujmy nową ze wszystkich trzech:
var greetUser = compose(printIt, greeting, getName);
var user = {
id: 123,
name: "Doge"
};
greetUser(user);
38. Nie musimy ograniczać się do własnych funkcji:
function getFullname(person) {
return [person.firstName, person.lastName].join(' ');
}
var getFullnameFromJson = compose(getFullname, JSON.parse);
56. MONADOWY PLAN:
Value - Bieżemy wartość
[ Value ] - Opakowujemy ją
[ Value ].map(f).map(f)... - Dowiązujemy pewne operacje
[ Value ].getValue() - Odpakowujemy nową wartość
57. Przykład z pomocą Monet.js*:
function getTaskCompanyLogo(task)
{
var maybeCompanyLogoUrl = Maybe.of(task)
.map(getAsignee)
.map(getCompany)
.map(getLogo)
.map(getUrl);
return maybeCompanyLogoUrl.val;
}
* fork vViktorPL/monet.js z drobną zmianą na potrzeby prezentacji
62. Angularowe $q
Źródło: https://docs.angularjs.org/api/ng/service/$q
function asyncGreet(name) {
// perform some asynchronous operation, resolve or reject the promise when
return $q(function(resolve, reject) {
setTimeout(function() {
if (okToGreet(name)) {
resolve('Hello, ' + name + '!');
} else {
reject('Greeting ' + name + ' is not allowed.');
}
}, 1000);
});
}
63. function asyncGreet(name) {
...
}
var promise = asyncGreet('Robin Hood');
promise.then(function(greeting) {
alert('Success: ' + greeting);
}, function(reason) {
alert('Failed: ' + reason);
});
var promise = asyncGreet(name); - Opakowanie wartości
promise.then() - .map()?
greeting - wyłuskana nowa wartość
64. PODSUMOWANIE
Funkcje wyższych rzędów takie jak map czy filter
ułatwiają przetworzenie serii danych
Kompozycja umożliwia w łatwy sposób składanie kilku
funkcji w jedną
Currying może przydać się do funkcji które przyjmują
wiele argumentów
Monada to warstwa abstrakcji która sama decyduje w jaki
sposób wykona przekazane jej operacje
65. MOJE WNIOSKI
Wzorce z FP da się odnaleźć w OO
FP rzuca inne światło na niektóre problemy
Programowanie czysto funkcyjne jest szaleństwem dla
aplikacji z życia wziętych (potrzebujemy stanu prędzej czy
później)
FP jest źle "sprzedawane"
FP można łączyć z OO