VI edycja otwartej, darmowej konferencji
poświęconej zagadnieniom informatycznym
8 września 2018, Katowice

Agenda

Trzy niezależne ścieżki tematyczne, prowadzone w ramach konferencji, umożliwią uczestnikom indywidualny dobór prelekcji. Dostępne będą następujące tematyki:

Software Architecture
GameDev
Software Craftsmanship
Elefant Dziambel Hazok Kokot Szmaterlok
8:00 Rejestracja uczestników
9:00 Rozpoczęcie (Elefant)
09:30
W szponach danych – analiza i uczenie – Big Data
Damian Widera (EUVIC)

W szponach danych – analiza i uczenie – Big Data

Przyjdźcie na wykład aby zobaczyć, z czym trzeba się zmierzyć, aby z otaczających nas danych uzyskać jak najwięcej informacji i wiedzy. Zrobimy sobie przykład praktyczny – end to end. Sami wyciągniecie wnioski, dokąd zmierza świat danych…

  Język: Polski
  Poziom: 
Programowanie rozgrywki, czyli sztuka oszustw i kompromisów, na przykładzie gry Ancestors Legacy
Maciej Pryc (Destructive Creations)

Programowanie rozgrywki, czyli sztuka oszustw i kompromisów, na przykładzie gry Ancestors Legacy

Programując różnorakie mechaniki i systemy rozgrywki w grze chciałoby się stworzyć je tak, żeby były perfekcyjne, pełne, dopracowane w najdrobniejszych szczegółach. Często jednak musimy to pragnienie przezwyciężyć, najczęściej z dwóch powodów. Po pierwsze, musimy pamiętać o wydajności, a przecież gra to nie tylko gameplay. Po drugie, po co tracić czas i zasoby na rzeczy, których gracz i tak nie zauważy. Te dwa zagadnienia często się zazębiają i zmuszają programistę rozgrywki do zejścia z poziomu idealnych, skomplikowanych systemów na poziom uproszczeń, przybliżeń i rozwiązań "good enough". Należy spodziewać się przykładów z gry Ancestors Legacy.

  Język: Polski
  Poziom: 
Profesjonalny Developer - kto to taki?
Mateusz Budzar (Droids On Roids)

Profesjonalny Developer - kto to taki?

Bycie programistą nie sprowadza się już jedynie do programowania. Mało tego, nie dość, że nie piszemy już tylko kodu, to bardzo często to od nas zależy powodzenie całego projektu. Już teraz mamy wiele nowych obowiązków i ciągle wymaga się od nas jeszcze więcej: bezpośredniego kontaktu z klientem, estymowania, ustalania priorytetów, doboru technologii. Oczywiście przez cały czas trwania projektu kod powinien być jak najwyższej jakości. Jak się w tym wszystkim odnaleźć? W jaki sposób podejść do tych nowych obowiązków? Jak lepiej odpowiadać na potrzeby klientów i rynku? Podczas prezentacji spróbujemy odpowiedzieć sobie na te pytania oraz postaramy się zdefiniować profesjonalnego programistę.

  Język: Polski
  Poziom: 
HATEOAS dla ludzi!
Mateusz Stasch (Future Processing)

W swojej prezentacji opowiem o dziwnym stworzeniu, które nazywa się HATEOAS i jest częstym tematem prezentacji, jednak w praktyce widuje się je znacznie rzadziej. Postaram się podzielić doświadczeniami z moich poprzednich projektów, gdzie miałem okazję implementować i konsumować API z HATEOASem. Opowiem, dlaczego warto i dlaczego czasem jednak nie warto, jakie wyzwania stawia(ł) przed nami HATEOAS oraz jak dzięki niemu zmieniło się moje patrzenie na oprogramowanie. Postaram się pokazać praktyczne przykłady.

  Język: Polski
  Poziom: 
SOLIDne zasady dobrego programisty
Mateusz Modelski (3SOFT)

SOLIDne zasady dobrego programisty

W życiu każdej aplikacji przychodzi czas na wprowadzenie modyfikacji, dodanie nowego algorytmu obliczeniowego, dodanie nowego modułu. Na tym etapie mogą pojawić się wątpliwości np:
- Czy moja zmiana czegoś nie zepsuje?
- Czy dodanie dziesiątego if-a będzie dobrym pomysłem?
- O co chodzi w tym kodzie? Kto to pisał? Ja…?
- Przecież zmiana bazy danych będzie wymagała modyfikacji połowy klas.
 

Jeśli chcesz uniknąć powyższych problemów zapraszam na prezentację, dzięki której dowiesz jak tworzyć czysty kod, łatwo reagować na nadchodzące zmiany oraz wyróżniać się na rynku pracy.

  Język: Polski
  Poziom: 
10:20 Przerwa kawowa
10:30
Mikroserwisy, wszędzie mikroserwisy
Jakub Marchwicki (DAC)

Mikroserwisy, wszędzie mikroserwisy

Micro Service Architecture is an architectural concept that aims to decouple a solution by decomposing functionality into discrete services. Think of it as applying many of the principles of SOLID at an architectural level, instead of classes you’ve got services” – teraz wszyscy to znamy, wszyscy o tym mówią, niektórzy z powodzeniem stosują.

Ale… od teorii do praktyki jest długa i zawiła droga, wiele podejść, mnóstwo kroków pośrednich. W tej prezentacji, chciałbym pokazać kilka scenariuszy w których “mikroserwisowy sposób myślenia” pozwolił nam wyjść z problemów w systemach legacy: duplikując istniejące funkcjonalności, budując proxy do istniejących systemów, zarządzając szeregiem systemów typu embedded,  stopniowo migrując aplikację z jednej technologii na inną, z jednego języka na inny, tworząc nowe usługi obok istniejących, klasycznych big ball of mud. Bowiem mikro serwis to nie tylko szereg małych aplikacji w Spring Boot gadających ze sobą po HTTP – to sposób myślenia o problemach w skali mikro i platforma do dyskusji o rozwiązaniach tam gdzie one przynależą: w biznesie, w infrastrukturze itd.

  Język: Polski
  Poziom: 
ECSy, Job Systemy i inne rzeczowniki, czyli nowości w Unity 2018.1 i wyżej
Grzegorz Wątroba (Xara / Wayward Preacher)

ECSy, Job Systemy i inne rzeczowniki, czyli nowości w Unity 2018.1 i wyżej

Silnik Unity w ciągu ostatnich miesięcy wprowadził szereg zmian ułatwiających przetwarzanie wielowątkowe oraz wsparcie dla bardziej złożonych systemów rozgrywki.

W ninejszej prelekcji zostaną zaprezentowane nowości związane z Entity Component System, Job System, Raycast Command i pokrewne im rozwiązania.

  Język: Polski
  Poziom: 
UX dla nie-projektanta: jak to działa i jak efektywnie współpracować z designerem?
Kamelia Niemczyk (Making Waves) / Agata Jankowska (ANIXE)

UX dla nie-projektanta: jak to działa i jak efektywnie współpracować z designerem?

Na czym polega projektowanie zorientowane na użytkowników? Dlaczego to tak istotne i jak właściwie odbywa się przekuwanie potrzeb w funkcjonalności? Dlaczego do zadbania o użyteczność produktu nie wystarczy UX Designer?

Omówimy fundamenty UX, aby pokazać, jakie jest zadanie projektanta w projekcie, czym dokładnie się zajmuje i dlaczego wsparcie developmentu jest tak istotne.

Przede wszystkim jednak skupimy się na tym, jak dobrze współpracować. Pod lupę weźmiemy proces, narzędzia dla projektantów i developerów oraz komunikację między tymi grupami.

  Język: Polski
  Poziom: 
Data Science jest dla ludzi - uważaj, co jesz! Rzecz o grzybach
Damian Widera (EUVIC)

Data Science jest dla ludzi - uważaj, co jesz! Rzecz o grzybach

Sesja o praktycznym podejściu do analizy danych. Nie znam się na grzybach dobrze, ale wiem, że tych czerwonych w kropki się nie je. Co z pozostałymi? Mogę je zjeść czy nie? Pokazę Wam, jak wiedza daleka od nauk biologicznych pozwala przeżyć specjalistom IT.

  Język: Polski
  Poziom: 
Dlaczego warto zaczynać od środka, czyli walka z blokadą twórczą na przykładzie designu Ancestors Legacy
Filip Szeląg (Destructive Creations)

Dlaczego warto zaczynać od środka, czyli walka z blokadą twórczą na przykładzie designu Ancestors Legacy

Pusta strona, która nie chce się zapełnić, to przekleństwo, które spędzało sen z powiek niejednemu twórcy. I chociaż trudno jest podać uniwersalne rozwiązanie, które raz na zawsze umożliwi nam pozbycie się tej przypadłości, to istnieją rozmaite techniki i sugestie, które mają na celu zwalczenie blokady twórczej. Postaram się przedstawić jak najwięcej z nich, a za przykład posłużą mi nasze doświadczenia, które uzyskaliśmy podczas tworzenia najnowszej gry studia Destructive Creations, czyli Ancestors Legacy.

  Język: Polski
  Poziom: 
11:20 Prezentacja firmy - EUVIC
11:30 Przerwa kawowa
11:40
I jeszcze jeden język
Jarosław Ratajski (Engenius GmbH)

Nieważne jaki język znasz i w jakim frameworku piszesz, pewnie za rok dwa, może pięć  będziesz musiał się czegoś nowego nauczyć. To piękno, ale i przekleństwo pracy programisty.

Dlaczego tak jest? Dlaczego nie można po prostu nauczyć się jednej technologii, zrobić certyfikat i dojechać tak do emerytury? Może lepiej poświęcić czas na hobby i rodzinę zamiast na ciągłe dokształcanie?

A może nie trzeba się męczyć?

O ewolucji języków programowania. Czemu raczej nie piszemy w FORTRANIE? Komu przeszkadzał ALGOL? Dlaczego programowanie funkcyjne jest starsze niż assembler? I jak przy wszystkim wygląda krótka historia C++, Javy i  C#? Gdzie to zmierza? - i dlaczego nie do Scali :-) ? - o tym będzie ta opowieść.

  Język: Polski
  Poziom: 
Wszystko jest danymi
Leszek Godlewski (EA DICE)

CPU w Twojej maszynie skrywa prawdopodobnie 2-8x więcej mocy obliczeniowej, niż sądzisz, lecz powszechne modele programowania utrudniają korzystanie z tego potencjału. I mimo, że o programowaniu zorientowanym na dane, czy też o wzorcu Entity-Component-System powiedziano już wiele, to nadal zmagamy się z ich stosowaniem. Są postrzegane są jako dziwna, niskopoziomowa fanaberia, na którą tylko studia AAA mogą sobie pozwolić. Tą prelekcją mam nadzieję wykazać, że przy odpowiednim modelu programowania, spojrzenie na program jako na transformację danych jest nie tylko łatwe, ale - co najważniejsze - frapujące i nieograniczone tylko do gier AAA i kompilatora Burst w Unity.

  Język: Polski
  Poziom: 
Jak rozwalić* dowolny projekt w 10 prostych krokach
Paweł Lewtak (GOG.com)

Jak rozwalić* dowolny projekt w 10 prostych krokach

*może nie rozwalić w sensie unicestwienia i anihiliacji, a bardziej doprowadzić do stanu w którym ludzie będą się męczyć, tracić zapał i wypalać pracując nad danym projektem.

Jako programista pracowałem przy wystarczająco dużej liczbie projektów by zauważyć pewne powtarzające się schematy/wymówki: "od dziś robimy agile", "to nie potrzebuje testów", "dziwne, u mnie działa", "zrobimy to po swojemu".

Niby siedzimy i robimy te taski w Jirze, ale po co i dlatego? ¯\\_(ツ)_/¯ 

Opowiem co w przeszłości nie działało, dlaczego i jak to się skończyło w projektach przy których pracowałem. Nie mam idealnego sposobu na radzenie sobie ze wszystkimi problemami w projektach, ale wiem jak z wielu z nich unikać i tym chciałbym się podzielić. Będę mówił o tym jak nie rozpoczynać projektów, jakich złych praktyk nie stosować i jak oduczyć się stosowania wymówek, by nie skończyć ze słabej jakości projektem legacy.

  Język: Polski
  Poziom: 
Event Driven Architecture - zalety i zagrożenia oraz sposoby radzenia sobie z nimi
Adam Krosny (fireup.pro)

Event Driven Architecture - zalety i zagrożenia oraz sposoby radzenia sobie z nimi

Większość słyszała o architekturze zdarzeniowej, ale czy faktycznie wiemy jak ją dobrze zaimplementować, aby system działał sprawnie i było możliwe prześledzenie i rozwiązanie problemu, jeżeli już wystąpi? Na podstawie doświadczeń z wysokowydajnymi, skalowalnymi systemami zbudowanymi w oparciu o mikrousługi i szynę zdarzeń chciałbym zwrócić uwagę na istotne szczegóły o których czasem się zapomina i są trudne do wychwycenia w trakcie testów funkcjonalnych, a które skutkują bolesnymi (kosztownymi) problemami po uruchomieniu. 

  Język: Polski
  Poziom: 
Neural Networks and Deep Reinforcement Learning -- platforms, architectures and approaches review
Tomasz Sikora (Solid Software Solutions)

Neural Networks and Deep Reinforcement Learning -- platforms, architectures and approaches review

Vint Cerf, recognized as one of "the fathers of the Internet" as co-inventor of TCP/IP, said "And programming computers was so fascinating.  You create your own little universe, and then it does what you tell it to do.". Now when computers are learning these words give different ground to debate on developer context here.  So what can we do from old good Software Craftsmanship perspective?  I, as a developer, how can I tackle problems requiring deeper models?  On this session Tomasz will try to answer those, opening 100s more questions ;).  He will explain basics, run and configure a few models trying to explore the field from as practical perspective as possible.

During the session Tomasz will explain: 
- the current directions of progress; from programming to building a ML model,
- why this concept is so general and reasons it is being applied to the business problems, 
- the engineering perspective ; why developer (human) with use of AI can help the business (human),
- why it is possible to be used now with real-life examples, 
- how to code and build a model,
- run training, test it, and evaluate reinforcement learning method,
- review patters of deployment to the enterprise systems via monolithic or microservice architecture,
- discuss categories of machine learning, supervised, unsupervised and reinforcement learning,
- review available ML platforms, libraries and approaches,
- speak about shallow and deep neural networks architectures,
- discuss the pursuit of good generalisation -- train error vs model complexity and available data scale,
- show code of simple models, and discuss test and evaluation approaches.

Level of knowledge required from the audience -- Basic, interest in ML, no working experience or limited experience working with Neural Networks.

BTW, to meet requirement of more general audience this is a refactored version of version of "Yes, Machine Learning is present in Java, but is Deep Learning too?" -- see https://www.meetup.com/Silesia-JUG/events/248429752/ 

  Język: Polski
  Poziom: 
12:30 Przerwa obiadowa
13:30
Cztery choroby
Piotr Przybył

Cztery choroby

"Po ich owocach ich poznacie", powiada Pismo. Natomiast kod powiada: "po ich danych ich poznacie". Jedną ze szkół zapoznawania się z systemem jest długie i namiętne czytanie dokumentacji, przerywane rzucaniem okiem do kodu. Inną szkołą jest zanurkowanie w model danych (często w bazie) i posurfowanie po interfejsie użyszkodnika. Są to dwa naturalne końce systemu, legendarne wejście i wyjście. Poprzez oglądanie stanu tychże końców można sprawdzić, czy w środku jest zdrowe trawienie, czy niezdrowy proces gnilny. Wnikliwa egzaminacja pozwala stwierdzić obecność "DDDozy pospolitej", "stringozy złośliwej", "biegunki regexowej" czy też "syndromu nie-zrobione-u-nas". Niestety, czasem do infekcji dochodzi już na etapie życia płodowego programisty (czytaj: w szkole). Zapraszam na kurację. Przeczyszczającą. (Czyli naturalny ciąg dalszy "Passwords. Do you keep them safe?")

  Język: Polski
  Poziom: 
Od This War of Mine do Frostpunk - Ewolucja kodu gry
Aleksander Kauch (11 bit studios)

Od This War of Mine do Frostpunk - Ewolucja kodu gry

Czy zrobienie o wiele większej gry na tej samej, własnej technologii jest trudne? Czy poza powiększeniem zespołu wymagane są jeszcze jakieś kroki? Jak bardzo trzeba poszerzyć możliwości techniczne silnika żeby poradzić sobie z o wiele większym projektem? Odpowiedzi na te pytania musiało poznać 11 bit studios tworząc grę Frostpunk korzystając z posiadanej technologii wcześniej użytej do stworzenia This War of Mine. W prelekcji zostanie przedstawiona ewolucja architektury silnika, systemów sztucznej inteligencji oraz rozwinięcie idei sterowania logiką przy pomocy danych (data-driven programming).

  Język: Polski
  Poziom: 
Monitoring aplikacyjny, czyli ostatni element DevOpsowej układanki.
Mateusz Beczek (ING Bank Śląski)

Monitoring aplikacyjny, czyli ostatni element DevOpsowej układanki.

Byłoby doskonale, gdyby nasze aplikacje zawsze działały tak, jak chcemy. Niestety, systemy są przewrotne i potrafią zadziałać nieoczekiwanie w najmniej spodziewanym momencie. Bez dopracowanego monitoringu i jednoznacznych wskaźników trudno wskazać źródło problemu. Dlaczego dobry monitoring ostrzeże nas szybciej niż klient i czego unikać, żeby klientowi nie odpowiedzieć "u mnie działa" - opowiem na prelekcji :) 

  Język: Polski
  Poziom: 
Domain Driven Design i reactive persistence
Szymon Homa (Pragmatic Coders)

Domain Driven Design i reactive persistence

 Jak zaprojektować model domeny by był on w stanie udźwignąć nie tylko realizację funkcjonalności, ale także komercyjny sukces naszego systemu?
     
Stworzenie aplikacji która spełnia wszystkie, nawet najbardziej pokręcone wymagania funkcjonalne jest trudne. Stworzenie aplikacji która ma wystarczającą przepustowość, zadawalający czas odpowiedzi i nie traci danych bywa równie wymagające. Domain Driven Design jest sprawdzonym narzędziem do rozwiązywania problemów w nawet najbardziej złożonych domenach. Do rozwiązywania problemów z techniczą stroną naszych systemów, trendy ostatnich lat wskazują nam na takie techniki jak: event driven systems, event sourcing, reactive programing, non-blocking io, actor model, CQRS i tak dalej.
     
Jeżeli łamiesz sobie głowę nad tym jak sprawić by dobre wzorce DDD mogły działać w kontekście reaktywnych systemów i technik (głównie persistence), wpadnij koniecznie. Pokażę jak interpretować wzorce DDD z nieco innej perspektywy, tak by oddzielić ich esencję od naleciałości najczęstszych implementacji oraz jak stopniowo eliminować kolejne blokady.

  Język: Polski
  Poziom: 
Unity Code & Project Guidelines
Mateusz Osuch (Vile Monarch)

Unity Code & Project Guidelines

Kilka porad dotyczących efektywnego prowadzenia projektu od strony technicznej oraz pisania czystego, zrozumiałego kodu. 
Code guidelines: 

  • Podstawy optymalizacji
  • Obsługa zmiennych klasowych
  • Mechanizm refleksji oraz eventy
  • Extension methods

Project guidelines: 

  • Zalety stosowania multiscen
  • Bezbolesna obsługa singletonów
  • Higiena hierarchii obiektów na scenie
  • Obsługa dużej ilości danych w grze
  • Wzorce dla twojej gry
  • Warstwowa architektura gry
  • Działanie “out of the box”
  Język: Polski
  Poziom: 
14:20 Prezentacja firmy - ING
14:30 Przerwa kawowa
14:40
Wszystkich nas czeka zagłada, czyli dlaczego to co robimy nie można nazwać programowaniem
Jarosław Pałka (allegro.tech / Symentis)

Wszystkich nas czeka zagłada, czyli dlaczego to co robimy nie można nazwać programowaniem

Programista, to przecież brzmi tak dumnie.

Tyle lat ciężkiej pracy, studia, kursy. W końcu zaczęło się zwracać. Społeczeństwo nie ma pojęcia co robisz. Twoja mama i tato, tym bardziej.

Wiedzą tylko, że to coś wspólnego z internetem, komputerem i tym przedmiotem, którego wszyscy nienawidzą w rodzinie, matematyką.

Codziennie budzisz się z rano poczuciem wyższości nad mugolami, którzy nie ogarniają zawiłości OOP i FP.

Jak długo chcesz się okłamywać? W swojej pracy kleisz RESTy z resztek JSONów, które ktoś porozrzucał po biurze, w języku, którego nie rozumiesz, na platformie o której nie masz pojęcia i modlisz się, żeby naprawdę tam w środku nie biegały skrzaty przesuwające bit'y.

Wkurzyłem Cię? To dobrze.

Przyjdź i posłuchaj czym są "managed runtime", dlaczego większość języków kompilowanych jest do IR i wykonywanych przez maszyny wirtualne.

Na przykładzie EgoVM, opowiem o podstawach konstrukcji maszyn wirtualnych, o zarządzaniu pamięcią, systemach typów, static vs dynamic linking, single vs multiple dispatch. O tym wszystkich co napędza JVM, CLR, Beam czy V8.

Co napędza nasze systemy. Bez czego nie potrafilibyśmy dziś dostarczyć żadnego z naszych systemów czy też produktów.

Będzie dużo opowieści o decyzjach, które musieli podjąć twórcy maszyn wirtualnych i rozważań nad źródłem sukcesu tych platform.

Wszystko w zawiesistym sosie vanilla C.

  Język: Polski
  Poziom: 
To zależy – czyli oczywistość rozwiązania a wiek programisty
Grzegorz Mazur (Vile Monarch) / Maciej Pryc (Destructive Creations) / Leszek Godlewski (EA DICE) / Łukasz Hacura (Anshar Studios)

W rozwoju programisty w gamedevie, jak u każdego specjalisty w każdej dziedzinie, można zaobserwować Efekt Krugera – Dunninga, czyli spadek pewności siebie wraz z nabieraniem kompetencji w czasie, by dopiero po wielu latach tę pewność siebie odzyskać. Dyskutować będziemy o tym jak wpływa on na współpracę różnych pokoleń programistów w obrębie projektu.

  Język: Polski
  Poziom: 
Produktywność - frameworki to nie wszystko
Andrzej Leśkiewicz (Snapshot)

Produktywność - frameworki to nie wszystko

Wszyscy staramy się być produktywni. Szukamy kolejnych bibliotek, frameworków i narzędzi, które pozwolą nam zaoszczędzić czas przy wykonywaniu codziennych zadań. Niestety w pogoni za biegłością techniczną, często zaniedbujemy wiedzę o środowisku, z którego korzystamy na co dzień. Chciałbym przedstawić krótką prelekcję o możliwościach współczesnych IDE, które wspierają produktywność programisty, na przykładzie języka Java oraz Eclipse Photon. Od podstawowych skrótów klawiszowych, przez możliwości oraz konfigurację samego IDE do codziennej pracy (refactoring, cleanup actions), po polecane przeze mnie wtyczki i rozszerzenia, które usprawniają pracę z nowym i starym kodem. Ponadto prelekcja zawiera kilka ogólnych uwag na temat produktywności i tego jak jej nie mierzyć oraz sposobów jej wzmacniania, przydatnych nie tylko na stanowiskach technicznych (e.g Eisenhower matrix, Pomodoro). Ta prelekcja nie sprawi, że w magiczny sposób staniemy się bardziej produktywni. Liczę, że skłoni uczestników do spojrzenia na swoje codzienne zadania z nieco innej perspektywy i zachęci ich do poszukiwania usprawnień zgodnie z własnymi potrzebami.

  Język: Polski
  Poziom: 
Riders On The Storm: API Gateways for developers
Tomasz Skowroński (Clurgo)

Riders On The Storm: API Gateways for developers

Web services development, no matter SOAP, REST, or RPC, is today as easy as adding an annotation to a method. Little more is required to create API using OAS (Swagger). But how to create the complex yet simple interfaces and provide reliable and consistent access to a wide variety of APIs, e.g. microservices? How to make a friendly system for both developers and consumers (web, mobile, fridge)? And how to prevent duplication of cross-cutting concerns (security, network, and others)? I will acquaint you with the possibilities, strengths and drawbacks of open source solutions. I will also show how to adjust them to own needs, what to take into consideration, and how to develop own API Gateway.

  Język: Polski
  Poziom: 
Architektura z bliska i z daleka
Paweł Janusz (Onwelo)

Architektura z bliska i z daleka

Czy też macie czasami wrażenie, że “Architektura oprogramowania” to termin często przedyskutowany technicznie? Dużo mówimy o architekturze, ale czy faktycznie skupiamy się na tym co jest ważne? Zapraszam do wycieczki, która z jednej strony wróci do podstaw, z drugiej spróbuje zasugerować, co z ta architekturą można zrobić. Opowieść dotknie moich doświadczeń z różnymi architekturami - tymi bardziej i mniej lubianymi i pożądanymi. W ramach prezentacji postaram się też przekazać moje podejście i dobre praktyki w trakcie budowania i zmian architektury w projekcie.

  Język: Polski
  Poziom: 
15:30 Prezentacja firmy - Anshar Studios
15:40 Przerwa kawowa
15:50
Enkapsulacja, którą znamy i unikamy
Sebastian Malaca (UBS)

Enkapsulacja, którą znamy i unikamy

Enkapsulacja jest jednym z tych enigmatycznych terminów, z którym każdy przyszły programista dość szybko się zapoznaje. Większość z nas jest w stanie w kilku słowach ją opisać. Większość jest w stanie wytłumaczyć korzyści, które wynikają z jej przestrzegania. Główny problem związany z enkapsulacją polega na tym, że ta szeroko rozpowszechniona wiedza nie zawsze przekłada się na pisany przez nas kod.

Enkapsulacja nie sprowadza się do unikania implementacji getów oraz setów za wszelką cenę. Enkapsulacja nie kończy się na klasach i ich instancjach. Umiejętnie wykorzystana przekłada się na łatwiejszy w zrozumieniu oraz w modyfikacji kod. Sprawia, że w strukturze kodu można się szybko odnaleźć, a architektura naszej aplikacji jest w końcu możliwa do identyfikacji.

Podczas prezentacji porozmawiamy o tym dlaczego pomimo licznych korzyści często wybieramy drogę na skróty, i o tym gdzie ta droga nas zazwyczaj prowadzi. Następnie omówimy sobie sposoby jak z tej złej ścieżki zejść.

Pokażę Wam jak z enkapsulacją zacząć, gdy pracujemy z żyjącą aplikacją, która już niejednego programistę ma za sobą.

Porozmawiamy o enkapsulacji w kontekście pojedynczych obiektów po to aby płynnie przejść do architektur oraz tego, w jaki sposób starają się nam one pomóc w jej przestrzeganiu.

  Język: Polski
  Poziom: 
Customowy networking w Unity3D
Filip Zieliński (Artifex Mundi)

Customowy networking w Unity3D

Na przykładzie Unity3D omówimy podstawy architektury serwerowo klienckiej. Odpowiemy na pytanie dlaczego pisać własny networking. Porozmawiamy o implementacji komunikacji po TCP oraz UDP.

Wyjaśnimy znaczenie chunków i konieczności ich implementacji. Wszystko to podsumujemy omówieniem serwera w kontekście architektury wielowątkowej także w kontekście Entity Component Systemu w Unity3D.

  Język: Polski
  Poziom: 
Liderem być
Anita Przybył

Zostałeś liderem lub w najbliższej przyszłości nim zostaniesz?

A może masz taki cel by kiedyś się nim stać?

Wczoraj byłeś kolegą, dziś jesteś szefem?

Wchodzisz do zupełnie nowego zespołu jako lider?

Masz za zadanie zarządzać, a Ty nie wiesz co to właściwie znaczy?

Jak poradzić sobie z grupą indywidualistów?

Jak zrobić z grupy ludzi zgrany zespół?

Jak zbudować autorytet?

Jak sprawić, żeby byli zmotywowani i zaangażowani?

Chcesz się dowiedzieć co Ty możesz zrobić, na co masz wpływ? Od czego zacząć? 

Dam Ci krótką instrukcję obsługi, starter z którym zaczniesz swoją przygodę z przywództwem.  Pokażę Ci jakie do przywództwa mają podejście najlepsi oraz powiem jaki będzie Twój pierwszy krok.

  Język: Polski
  Poziom: 
Chcę oglądać twoje logi
Arkadiusz Migała (Perform Media Poland)

“Nie chcę badać błędów znów w kodzie
Nie chce zgadywać, która to maszyna
Nie chcę uruchamiać znowu tam VIMa

Nawet nie wiem, jaka jest ich przyczyna 
Ale jedno czego chce, i ty dobrze o tym wiesz
Chciałbym mieć tą cudowną rzecz, która wspomogłaby mnie…”

Logi to narzędzie, które powinno nam pomagać w zarządzaniu i monitorowaniu naszych systemów i aplikacji. Często jednak złe podejście do nich sprawia, że są one raczej bolączką niżeli pomocą dla developera. Porozmawiajmy zatem o właściwym podejściu do logów, które ułatwi nam jej monitorowanie, szybkie reagowanie, ale także nie utrudni pracy nam oraz naszej aplikacji.

  Język: Polski
  Poziom: 
Interakcja jako fundament gier VR
Piotr Cieślak (Carbon Studio)

Interakcja jako fundament gier VR

Gry wideo to fascynujący przykład interaktywnego medium. Wpływanie na świat gry, jego systemy i postacie stale się rozwijało, ale to dopiero VR przyniósł rewolucję w dziedzinie interaktywności. Dzięki kontrolerom ruchowym, VR oferuje pełną immersję, a interakcje, nawet tak proste jak poruszanie dźwignią, zyskują kluczowy wpływ na poczucie przebywania wewnątrz wirtualnego świata. Przyjrzyjmy się dobrym praktykom projektowania interakcji w VR.

  Język: Polski
  Poziom: 
16:40 Przerwa kawowa
16:50
Bottom Navigation Headache
Piotr Ślesarew (Grand Parade a part of William Hill)

Most modern Android applications use single Activity strategy as a core of an architecture. Building such solution can be really difficult in terms of clean and bulletproof navigation. What type of a component should be used to represent individual screen? How to define eye-candy animations to provide the best look and feel for the user? Support for deep links? Saving states and sending data between screens? All of those things can give a huge headache, and that is why I would like to present my journey from navigation madness to navigation happiness. Live coding included!

  Język: Angielski
  Poziom: 
Proceduralne generowanie w skali galaktycznej
Adrian Chlubek (The Software House)

Proceduralne generowanie w skali galaktycznej

Proceduralne renderowanie w wielkiej skali. Pokażę jak sprawnie zbudować system umożliwiający proceduralne renderowanie galaktyki gwiazd wraz z planetami i księżycami. Zapoznasz się z problemami, jakie spotyka się podczas budowy wielkich światów, rozwiążemy kłopoty związane z precyzją obliczeń 3D. Zaprezentuję różne techniki proceduralnego generowania potrzebnych danych takie jak value noise czy fractal brownian noise oraz jak za ich pomocą stworzyć wymagane dane. Wszystko oparte o Vulkan i GLSL.

  Język: Polski
  Poziom: 
Startup czy korpo - jak pokierować swoją karierą w IT
Michał Sędzielewski (Rspective / Voucherify)

Startup czy korpo - jak pokierować swoją karierą w IT

Na codzień wraz z zespołem zajmuję się rozwijaniem platformy Voucherify. W ciągu 2 lat udało nam się zebrać 200 klientów z całego świata i obsługiwać miliony użytkowników końcowych miesięcznie. Ciągle rośniemy, a skala stawia przed nami coraz trudniejsze ale i ciekawsze wymagania projektowe. Ale mój dzień w pracy nie zawsze tak wyglądał. Pierwsze kroki w świecie IT były zupełnie przypadkowe. Będąc po drugim roku studiów nie miałem pojęcia, w którym kierunku pchnąć swoją karierę. Ostatecznie za namową kolegów trafiłem do leciwego korpo. Czas pokazał, że nie to była najlepsza decyzja. Przez ostatnie 10 lat miałem okazję poznać branżę od różnych stron. Tym samym udało mi się zrozumieć zalety i wady pracy w przeciwstawnych środowiskach: korporacja vs startup, praca w Polsce vs praca za granicą, outsourcing vs rozwijanie produktu, programowanie vs wsparcie sprzedaży/marketingu, pracownik vs pracodawca. I tym właśnie chciałbym się z Wami podzielić. Jeśli tak jak ja 10 lat temu, nie wiesz, jak zrobić pierwszy (i kolejny) krok, zapraszam do wysłuchania prelekcji i udziału w dyskusji.

  Język: Polski
  Poziom: 
CQRS, ES i DDD w praktyce
Konrad Kosowski (i-systems)

CQRS, ES i DDD w praktyce

Prezentacja podzielona na dwie części - teoretyczną, podczas której przedstawimy jak to się stało naszym zdaniem, że dożyliśmy czasów DDD oraz CQRS/ES, czym jest domena, jak zacząć stosować CQRS/ES, wyjaśnimy podstawowe pojęcia oraz przedstawimy flow aplikacji. Druga część będzie czysto praktyczna. Na podstawie przygotowanego fragmentu kodu zaprezentujemy to o czym wcześniej teorię z pierwszej części w praktyce.

  Język: Polski
  Poziom: 
Jak uratowałem projekt za pomocą wzorców projektowych
Dawid Mazur (Clearcode)

Jak uratowałem projekt za pomocą wzorców projektowych

Ekspresowy przegląd najważniejszych wzorców projektowych. Oparty na faktach i z humorem ;)

Wielu programistów próbowało uczyć się wzorców projektowych z różnym skutkiem. Dostępne źródła często są dość niezrozumiałe dla początkujących, a przykłady są sztuczne, wymuszone, a czasem wręcznie nieodpowiednie. Podczas prelekcji opowiem jak poprawnie używać wzorców do rozwiązywania problemów, które sam napotkałem w mojej pracy zawodowej. Języki, frameworki i biblioteki przychodzą i odchodzą, ale wiedza na temat dobrych praktyk pozostaje cenna od lat i zostanie z wami na długo.
 

  Język: Polski
  Poziom: 
17:40 Przerwa
17:50 Zakończenie
18:20 Zamknięcie konferencji

Szanowny internauto

SpreadIT szanuje dane osobowe Użytkowników i spełnia wymogi ich ochrony wynikające z powszechnie obowiązujących przepisów prawa, a w szczególności z Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE.

Dane osobowe podane w obrębie Serwisu i podczas kontaktu z organizatorami konferencji SpreadIT wykorzystywane są jedynie w celu umożliwienia uczestnikowi wzięcia udziału w konferencji w roli uczestnika lub/ oraz prelegenta.

Administratorem danych osobowych podawanych podczas rejestracji Konta w Serwisie, zapisu na Newsletter oraz przy wypełnianiu formularzy zgłoszeniowych są organizatorzy konferencji SpreadIT.

Dane Użytkownika są dostępne tylko dla organizatorów konferencji SpreadIT

Więcej informacji w naszej polityce prywatności.

Patronat honorowy

Patronat honorowy

Sponsor Ścieżki Software Craftsmanship

Sponsor Ścieżki Software Architecture

Sponsor Ścieżki GameDev

Sponsor złoty

Sponsor złoty

Sponsor złoty

Sponsor złoty

Sponsor złoty

Sponsor złoty