Prelekcje

Kocham to co robię i uwielbiam o tym opowiadać. O czym opowiadam? Pełną listę moich prezentacji, czasem również z dodatkowymi materiałami, znajdziesz poniżej. A jeśli bardzo się spieszysz i chcesz tylko slajdy, to najprawdopodobniej znajdziesz je tutaj.

A gdy przescrollujesz jeszcze dalej (lub klikniesz w link), możesz przyjrzeć się kalendarzowi moich przeszłych i planowanych wystąpień.

A może chcesz zaprosić mnie na konferencję, meetup lub inne wydarzenie? Odezwij się a na pewno dogadamy jakiś termin.


Sesje

Anchor Modeling – maintain highly normalized data model that can be changed anytime

Pierwsza, druga i trzecia postać normalna w bazach danych zapewne obiła Ci się o uszy. A co powiesz o szóstej?
Pokażę Ci jak wykorzystać bardzo wysoki poziom normalizacji do modelowania danych tak, by schema mogła być rozwijana i zmieniana w dowolnej chwili bez wpływu na istniejące aplikacje korzystające z Twoich danych za pomocą techniki znanej jako Anchor Modeling.
Ten sposób modelowania zahacza mocno o świat hurtowni danych i wymaga sporo dyscypliny, bywa jednak, że jego wykorzystanie rozwiązuje sporo problemów, a sam proces nie jest wcale taki trudny jak może Ci się wydawać.
Na tej prezentacji dowiesz się czym jest szósta postać normalna i jak Anchor Modeling wykorzystuje ją by pomóc tworzyć modele iteracyjnie, a przy tym nie wpaść w jakieś większe dołki wydajności.

Shit happens – achieve extensibility, modularity and loosely coupled architecture with events

Architektura oparta o zdarzenia nie jest niczym nowym. Już od wielu lat pozwala nam zmniejszyć powiązania między poszczególnymi modułami naszych aplikacji, a najwięksi chwalą się, że dzięki zdarzeniom i mikroserwisom są w stanie szybko i sprawnie skalować swoje aplikacje w reakcji na zwiększone obciążenie.
W swojej prezentacji przedstawię kilka różnych przykładów, które pokażą Ci potęgę i użyteczność zdarzeń. Zaczniemy od najprostszych możliwych zdarzeń w monolicie, przejdziemy przez ich zastosowanie w architekturze mikroserwisowej, aż po kilka sztuczek, które przy wykorzystaniu pewnych usług w chmurze pozwolą Ci na zdefiniowanie zdarzenia i uruchomienie odpowiedniego procesu biznesowego bez najmniejszej nawet ingerencji w istniejącym kodzie lub infrastrukturze.

Essential Security Measures in Web Applications

Mamy XXI wiek. Praktycznie wszystko w naszych codziennych życiach opiera się o przechowywane gdzieś i przetwarzane w jakiś sposób dane.
Jednocześnie nie mogę sobie przypomnieć tygodnia żeby coś nie wyciekło, ktoś się gdzieś nie włamał albo bezpieczeństwo tych lub innych danych nie zostało naruszone w inny sposób.
Żyjemy z tworzenia aplikacji i siłą rzeczy w dużej mierze to my powinniśmy dołożyć jak największych starań, by owoce naszej pracy były bezpieczne, a przynajmniej nie były banalnie łatwe do złamania.
Podczas tej prezentacji opowiem Ci trochę o podstawach bezpieczeństwa aplikacji, najpopularniejszych podatnościach i sposobach na pozbycie się ich ze swojego kodu.
Postaram się, by czas, który wspólnie spędzimy zaowocował Twoją większą świadomością i dbałością o bezpieczeństwo efektów Twojej codziennej pracy.

Azure SQL – more or/and less than SQL Server

Usługa o pełnej nazwie Microsoft Azure SQL Database jest bazą relacyjną udostępnioną nam w modelu PaaS przez Microsoft w swojej chmurze. Wiele osób oczekuje, że jest to przeniesiony do chmury jeden do jednego SQL Server, w którym po prostu nie musimy się martwić różnymi “pierdołami” charakterystycznymi dla IaaS czy OnPremów. Rzeczywistość jest jednak nieco inna i okazuje się, że są to dwa oddzielne produkty o pewnych cechach charakterystycznych, które mogą Ci się spodobać lub nie.
Podczas tej prezentacji opowiem Ci nieco o Azure SQLu, o różnicach między nim, a SQLem postawionym na VMce czy własnych fizycznych maszynach, o przewagach bazy danych w modelu PaaS nad tradycyjnym oraz o elementach silnika, za którymi Twój DBA może zatęsknić. Mam nadzieję, że po wspólnie spędzonych trzech kwadransach będziesz w stanie odpowiedzieć sobie na pytanie – “Czy Azure SQL jest dobrym rozwiązaniem dla mnie i/lub mojego klienta?”.

Internet is made of cats, porn and stuff you shouldn’t put there.

Lubisz gdy ktoś Cię obserwuje? A może marzy Ci się główna rola w amatorskim filmie porno? Może udostępnij wszystkim kamerę we własnym mieszkaniu.
Uważasz, że nawiedzone domy są fajne i zastanawiasz się jakie to uczucie mieszkać w czymś takim? Najlepszym pomysłem będzie wyłączenie uwierzytelniania w systemie automatyki domowej.
A może urządzenia Twojego klienta potrzebują zaawansowanego panelu sterowania, który będzie dostępny zdalnie? Może nie zabezpieczajmy go hasłem, bo kto niby będzie je pamiętał, a przecież i tak nikt nie wie jak się do niego podłączyć.
Od jakiegoś czasu eksploruję niezabezpieczone i widoczne publicznie urządzenia ze zdalnym dostępem do podglądu z kamer i rozmaitymi panelami do sterowania. Podzielę się z Wami kilkoma znaleziskami, które znalazłem ja lub inny użytkownicy. Niektóre z nich są zabawne, niektóre przerażające, wszystkie są lub były dostępne publicznie.


ORM – the tip of an iceberg.

Chyba już w każdym języku programowania możemy dobierać się do naszych cennych danych za pomocą różnego rodzaju ORMów. Faktem jest, że narzędzia te znacznie przyśpieszają wytwarzanie oprogramowania. Jednocześnie pozwalają na myślenie o zawartości naszych baz danych i operacjach na nich przez pryzmat obiektowego paradygmatu programowania, co jest o wiele łatwiejsze do przełknięcia dla osób początkujących.
ORMy mają mnóstwo zalet. Często jednak idziemy na łatwiznę i nie schodzimy do warstwy bazy danych jeśli nie jest to absolutnie koniecznie, a nawet jeżeli przyjdzie co do czego, to tylko szturchamy ją odpowiednio długim kijem z bezpiecznej odległości i uciekamy czym prędzej do ciepłego, bezpiecznego światka programowania obietowego.
Na tej sesji pokażę Wam, kilka różnych funkcji i ciekawostek, które oferuje nam baza danych SQL Server, a które są często pomijane przez ich brak w popularnych ORMach. Pokażę Wam również jak stosunkowo łatwo można skorzystać z części z nich w starym dobrym Entity Frameworku.


Meet Gremlin – your guide through graphs in Cosmos DB

Czy jest ktokolwiek, kto choć raz w życiu nie zastanawiał się czy jesteśmy sami w kosmosie? Niestety nie odpowiem Wam na to pytanie. Ale jeśli przyjdzie Wam kiedyś do głowy przemierzać obszerne grafy w jednym z dostępnym modeli Cosmos DB, to przyda Wam się ktoś, kto niczym burza mknie między między danymi nie zważając na nawet najbardziej skomplikowane i poplątane relacje między danymi.
Dlatego też przedstawię Wam Gremlina, API przeznaczone specjalnie do przemierzania i przeszukiwania danych przechowywanych w formie rozbudowanych grafów z mnóstwem wzajemnych powiązań.


Azure Front Door

Do tej sesji nie mam opisu, jest to krótkie 30-40 minutowe omówienie stosunkowo świeżej usługi w Azure.


Let’s kill JavaScript!

JS jaki jest każdy widzi. Jedni go kochają, inni go nienawidzą. Daleko mi do front-endowca, więc gdy nie mam pod ręką silnego typowania to zaczynam dygotać i majaczyć. Ale czasem jednak trzeba jakiś widoczek wyklepać.
Ale zaraz – mamy przecież WebAssembly i od niedawna w moim ukochanym .NET dzięki eksperymentalnemu frameworkowi Blazor. Ha! No to NaN Ci w undefined ECMAScripcie! Od teraz wszyscy będą robić front bez znienawidzonego JSa!
Czy rzeczywistość wygląda tak różowo? Czy to marzenia które mają prawo spełnić się jedynie w pijackim widzie? Przyjdź, posłuchaj i poznaj odpowiedzi na te pytania.


.NET, Alexa and me

W dzieciństwie uwielbiałem science fiction. Wciąż pamiętam niektóre z mniej lub bardziej futurystycznych wizji przyszłości – komputery w każdym domu, a nawet mieszczące się w kieszeni, roboty czy domy sterowane naszym głosem. Wtedy niektóre z tych rzeczy wydawały się nierealne.
Jakieś dwadzieścia lat później stanąłem przed wyborem wirtualnego asystenta do swojego domu i miałem całkiem spory wybór. Jako, że na co dzień piszę w .NET i jestem miłośnikiem chmury, mój wybór padł na Amazon Echo. Podstawą tej platformy jest AWS Lambda, a jednym z języków jakimi możemy się posługiwać w celu rozszerzania umiejętności Alexy jest C#.
Opowiem Wam o tym dlaczego dokonałem takiego, a nie innego wyboru i jakie miałem alternatywy. Pokażę Wam również jak stosunkowo szybko możemy tworzyć własne, proste rozwiązania na tę platformę bez ponoszenia żadnych kosztów. Następnie przejdziemy do rozbudowy naszych rozwiązań, porozmawiamy nieco o możliwości wyjścia z nimi poza chmurę Amazonu i integracji z istniejącymi aplikacjami. Sesję zakończymy opisem modelu biznesowego i możliwości dla osób chcących pisać rozwiązania tylko dla siebie, dla szerszej publiki oraz dla swoich klientów.


Essential security measures in ASP.NET MVC

Na jak długo możesz spuścić z oka kartę płatniczą, będącą w rękach obcej osoby? Kto może i powinien znać hasło do Twojego maila? Czy po kradzieży Twojego laptopa bałbyś się o informacje, które mógłby z niego wyciągnąć złodziej?
I najważniejsze pytanie – czy powierzyłbyś bezpieczeństwo swoich danych aplikacjom, które tworzysz?
W dzisiejszych czasach coraz częściej musimy korzystać z odpowiednio skomplikowanych haseł, tokenów i innych środków ostrożności. Coraz częściej musimy zadawać takie pytania jak powyżej.
Skoro więc taką uwagę przykładamy do własnych danych i prywatności, to dlaczego jako deweloperzy często pomijamy kwestie bezpieczeństwa pisząc kod? Skąd tyle różnych luk w zabezpieczeniach i czy deweloper w ogóle powinien zaprzątać sobie nimi głowę? Jeśli tworzymy rozwiązanie operujace na danych klienta, to musimy liczyć się z tym, że często są one warte ogromne kwoty.
Nie da się zostać ekspertem security w godzinę. Jednak przekażę Ci trochę informacji, które sprawią, że bez większych problemów będziesz w stanie załatać najpopularniejsze luki w zabezpieczeniach swojej aplikacji (OWASP + kilka innych), a audyt bezpieczeństwa u klienta nie będzie się u Ciebie odbijał siwizną i nieprzespanymi nocami.
Po czym poznać, że ten materiał jest dla Ciebie? Jeśli wydaje Ci się, że SSL jest bezpieczny sam z siebie. Jeśli nigdy nie zdarzyło Ci się myśleć o bezpieczeństwie aplikacji, bo przecież .NET jest bezpieczny out of the box. Jeśli pierwszy raz słyszysz o czymś takim jak OWASP. Lub jeśli najzwyczajniej w świecie nie masz pewności, że to co tworzysz odpowiednio dba o bezpieczeństwo danych Twoich klientów.


Kalendarz wystąpień

Planowane wystąpienia:

  • 5 VI 2019 – Microsoft User Group Poland w Białymstoku – Shit happens – achieve extensibility, modularity and loosely coupled architecture with events
  • 12 VI 2019– Microsoft User Group Poland w Warszawie – Meet Gremlin – your guide through graphs in Cosmos DB
  • 17 VIII 2019 – dynamIT – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 17 IX 2019 – Wrocławska Grupa .NET – ???
  • 20 IX 2019 – Bydgoszcz IT Conference 2019 – ???

Wystąpiłem:

  • 29 V 2019 – Meet.JS – Essential Security Measures in Web Applications
  • 27 IV 2019 – Global Azure Bootcamp Łódź – Azure SQL – more or/and less than SQL Server
  • 8 IV 2019 – 4 Developers Warszawa – Azure SQL – more or/and less than SQL Server
  • 27 II 2019 – C_Tech Warszawa – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 2 II 2019 – Microsoft User Group Poland w Białymstoku – Azure SQL – more or/and less than SQL Server
  • 24 XI 2018 – HackYeah – ORM – the tip of an iceberg
  • 21 XI 2018 – Białostocka Grupa .NET – Let’s kill Java Script!
  • 15 XI 2018 – Olsztyn Microsoft User Group – ORM – the tip of an iceberg
  • 7 XI 2018 – Microsoft User Group Poland w Białymstoku – Azure Front Door
  • 26 IX 2018 – C_Tech Warszawa – ORM – the tip of an iceberg
  • 13 IX 2018 – Śląska Grupa Microsoft – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 5 IX 2018 – Microsoft User Group Poland w Białymstoku – Meet Gremlin – your guide through graphs in Cosmos DB
  • 18 VII 2018 – Białostocka Grupa .NET – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 5 VI 2018 – Dni Wydziału Informatyki Politechniki Białostockiej – ORM – the tip of an iceberg
  • 16 V 2018 – Białostocka Grupa .NET – .NET, Alexa and me
  • 15 V 2018  – Wrocławska Grupa .NET – .NET, Alexa and me
  • 18 IV 2018 – Białostocka Grupa .NET – ORM – the tip of an iceberg
  • 9 IV 2018 – 4 Developers Warszawa  – ORM – the tip of an iceberg
  • 25 X 2017 – Microsoft User Group Poland w Białymstoku – Meet Gremlin – your guide through graphs in Cosmos DB
  • 20 IX 2017 – Białostocka Grupa .NET – Quick trip around the Cosmos – Things every astronaut supposed to know
  • 8 VI 2017 – Dni Wydziału Informatyki Politechniki Białostockiej – LINQ – don’t hurt yourself, it’s #
  • 15 III 2017 – Białostocka Grupa .NET – LINQ – don’t hurt yourself, it’s  #
  • 7 XII 2016 – IT Academic Days Białystok – SignalR – R is for realtime
  • 19 X 2016 – Białostocka Grupa .NET – SignalR – R is for realtime
  • 6 X 2016 – Meet.JS Białystok – SignalR – R is for realtime
  • 18 VI 2016 – Gala Finałowa Daj Się Poznać 2016 – SignalR – R is for realtime