• Polish JUG meeting - Distributed Systems and Stream Processing in Java

    We invite you to the next meeting of the Polish Java User Group in cooperation with Hazelcast (https://hazelcast.com/). The meetup will take place on 2nd of March from 18:00 in the Browar Lubicz (Lubicz 17J Street, room "Dojrzewalnia", level +1, https://browar-lubicz.com.pl/galerie/4,dojrzewalnia-wnetrza). This time our speakers will be guests from Hazelcast - Jaromir Hamala (Director of Engineering) and Vladimir Schreiner (Product Manager). The first presentation will concern the bare minimum for building reliable application, the second presentation will be about stream processing in Java. For a detailed description of the presentations see below. Both presentations will be held in English. During the meeting, we will have time for networking, and at the end of the meeting, we will draw prizes: software licenses and a book. Hazelcast (https://hazelcast.com/) delivers the in-memory computing platform that empowers Global 2000 enterprises to deliver low-latency, data-centric applications. Built for ultra-fast processing at any scale, Hazelcast’s cloud-native, in-memory software accelerates business-critical applications. Talk #1 Distributed Systems: The bare minimum for building reliable applications, Jaromir Hamala, Director of Engineering, Hazelcast Distributed systems are hard. They introduce new failure modes, they force us to deal with consistency concerns. Researchers keep throwing scary acronyms such as CRDT, CAP or PACELC and we are forced to think about trade-offs all the time. What's considered to be a bug in one system can be a completely valid design in another system. It's easy to feel lost in all the intricacies. This talk gives you a gentle introduction into consistency models and will help you with reasoning about trade-offs. Talk #2 Stream Processing in Java, Vladimir Schreiner, Product Manager, Hazelcast You want to collect metrics across your infrastructure, aggregate it and trigger an alert if the performance drops. In milliseconds. Which tools would you consider? The ELK stack? A timeseries database? A log aggregator? There is no wrong answer. Fundamentally, what you really need is a query engine tuned to work with an append-only table - a stream processor. Stream processors are building blocks for applications that run computations driven by the streams of data. We're going to discuss three focal points of modern streaming stacks: time, connectivity and scale. The code samples used during the talk are build using Hazelcast Jet framework.

    3
  • Spotkanie PJUG - o tym po co nam RSocket oraz o piramidzie refaktoryzacji

    Serdecznie zapraszamy na pierwsze spotkanie w 2020 roku, które odbędzie się w nowym miejscu - Browarze Lubicz (sala Dojrzewalnia na poziomie +1). We współpracy z firmą Nexocode (https://www.nexocode.com/) zapraszamy na nasze spotkanie, które odbędzie się 18 lutego od godz. 18:00 w Browarze Lubicz (ul. Lubicz 17J, https://browar-lubicz.com.pl/galerie/4,dojrzewalnia-wnetrza). Tym razem naszymi prelegentami będą Piotr Kubowicz (https://pl.linkedin.com/in/pkubowicz) oraz Włodek Krakowski (https://pl.linkedin.com/in/wlodek-krakowski). Pierwsza prezentacja będzie dotyczyć RSocket'a i dowiemy się podczas niej w jaki sposób możemy wycisnąć więcej szybkości z kodu wprowadzając Server-Sent Events, a także o przypadkach użycia, gdzie RSocket faktycznie wprowadza nową jakość. Druga prezentacja będzie dotyczyć piramidy refaktorycacji, która jak mówi jest bliźniakiem dla piramidy testów. Szczegółowe opisy prezentacji poniżej. Obie prezentacje odbędą się w języku polskim. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy nagrody: licencje na oprogramowania, wejściówki na konferencję oraz książkę. Nexocode (https://www.nexocode.com/) to przede wszystkim turkusowy zespół programistów i projektantów tworzących zaawansowane systemy informatyczne. Każdy w Nexocode wnosi do swojej roli prawdziwą kreatywność codziennie decydując o kształcie projektowanych aplikacji, wykorzystywanych technologiach, a nawet kierunku działania i rozwoju firmy. Dzięki takiemu podejściu firma z sukcesami dostarcza dedykowane rozwiązania dla zewnętrznych klientów oraz tworzy własne produkty. Piotr Kubowicz - posiada ponad 10 lat doświadczenia w pracy z Javą. Tworzy programy w wielu językach i działa w społeczności open source. Obserwacja wzlotów i upadków projektów, w których brał udział, nauczyła go, że sukcesu nie przynoszą cudowne technologie, ale zgrani ze sobą ludzie. Zbiera narzędzia i nawyki pozwalające programiście skupić się na istotnych rzeczach oraz bezpiecznie zapomnieć o innych. Walczy z magicznym kodem i szlifuje umiejętność pisania nudnych klas i metod. Temat: Po co nam RSocket? RSocket to reaktywny protokół sieciowy wspierany m.in. przez the Linux Foundation i twórców Springa. W Internecie możecie znaleźć dużo hype’u i aplikacji typu hello world, ta prezentacja ma na celu skupienie się bardziej na tym, jak RSocket może wpłynąć na działanie naszych aplikacji. Porozmawiamy, w jaki sposób możemy wycisnąć więcej szybkości z kodu pozostając przy “tradycyjnym” HTTP, ale wprowadzając Server-Sent Events, a także o przypadkach użycia, gdzie RSocket faktycznie wprowadza nową jakość. Włodek Krakowski - jest niezależnym trenerem technicznym (www.refactoring.pl ) współpracującym z Bottega IT Minds. Czasem także programistą – szczególnie podczas swoich szkoleń z z refaktoryzacji oraz podczas ich przygotowywania. Głównie interesują go zagadnienia związane z tym jak dostarczać oprogramowanie wysokiej jakości. Temat: Piramida Refaktoryzacji O piramidzie testów już wszyscy słyszeliśmy… a piramida refaktoryzacji to jej bliźniak. Za pomocą piramidy testów ustanawiamy poprzez pokrycie testami zakres funkcjonalności / kodu którego strukturę będziemy zmieniać (moduły, pakiety, klasy). Następnie mając taki zakres korzystamy z jego lustrzanego odbicia na piramidzie refaktoryzacji, mając wiedzę jak wiele zmian refaktoryzacyjnych możemy wprowadzić startując od jej podstawy i wspinając się na jej najwyższy poziom który jest pokryty testami. W ten sposób doświadczymy, że refaktoryzacja na wyższych poziomach abstrakcji (np. wprowadzanie wzorców projektowych) może mieć miejsce dopiero kiedy zadbamy o poziomy znajdujące się niżej (mniejsze metody, klasy i wyprowadzone interfejsy). Koncept ten przedstawię na przykładach refaktoryzacji kodu znajdującego się w jednej klasie do wzorca Interpreter, Chain of Responsibility, Template.

    1
  • Spotkanie PJUG - O programowaniu funkcyjnym oraz o krzywych eliptycznych

    Serdecznie zapraszamy na nasze kolejne spotkanie (a zarazem ostatnie w tym roku), które będzie jednocześnie zakończeniem SoftwareMill's JUG tour! We współpracy z firmą SoftwareMill (https://softwaremill.com/) zapraszamy na nasze spotkanie, które odbędzie się 12 grudnia od godz. 18:00 w Pastrami Deli Kraków (ul.Grzegórzecka 21, https://www.facebook.com/pastramidelikrakow/). Tym razem naszymi prelegentami będą Adam Warski oraz Adam Smolarek. Pierwsza prezentacja będzie dotyczyć programowania funkcyjnego. Podczas niej dowiemy się czy sposób ten ma zastosowanie w codziennych zadaniach programistycznych, takich jak dostęp do relacyjnej bazy danych? Czy możliwa jest praca z transakcjami w „funkcjonalny” sposób? Druga prezentacja zabierze nas w przygodę po świecie kryptografii krzywych eliptycznych. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy nagrody: licencje na oprogramowania oraz książki. Adam Warski - FP + relational databases = ? Functional programming is an increasingly popular approach to writing and thinking about code. Is it also applicable to such daily programming tasks as accessing a relational database? Is it possible to work with transactions in a "functional" way? Yes! But what does it mean in practice? And is this any better than using JPA's or Spring's @Transactional? In this live-coding session, we'll try to answer these questions, and demonstrate how the "functional" approach improves over the "traditional" one in three areas: working with multi-thread code, requiring a framework and precisely delimiting transaction boundaries. We'll be focusing on one specific problem area, however the techniques that we'll use have broader applicability, and are often used to solve other problems as well. About Adam Warski I am one of the co-founders of SoftwareMill, where I code mainly using Scala and other interesting technologies. I am involved in open-source projects, such as sttp, tapir, Quicklens, ElasticMQ and others. I have been a speaker at major conferences, such as JavaOne, LambdaConf, Devoxx and ScalaDays. Apart from writing closed- and open-source software, in my free time I try to read the Internet on various (functional) programming-related subjects. Any ideas or insights usually end up with a blog (https://softwaremill.com/blog). Adam Smolarek - Elliptic Curves and where to find them It is an adventure into the world of Elliptic Curves Cryptography. You will know: * What elliptic curves are? * How to use them for cryptography? * How do they compare with RSA? You will also know where to find good EC, and why, in some cases, it is worthwhile to go on an adventure and find one. About Adam Smolarek Language agnostic software engineer, but works mainly in JVM languages. After working hours he is an active rock climber and video games enthusiast.

    1
  • Spotkanie PJUG - biblioteka Daobab oraz testy regresyjne z wykorzystaniem ML

    We współpracy z firmą Infolet (https://infolet.pl/) zapraszamy na nasze kolejne spotkanie, które odbędzie się 19 listopada od godz. 18:00 na Barce (ul. Podgórska 16, https://www.facebook.com/barkakrakow/). Tym razem naszymi prelegentami będą Klaudiusz Wojtkowiak oraz Paweł Dyrek. Klaudiusz, twórca biblioteki Daobab, opowie nam o tym jakie są zalety nowego ORM'a . Paweł natomiast opowie o testach regresyjnych z wykorzystaniem Machine Learning. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy nagrody: licencje na oprogramowanie firmy JetBrains oraz książkę. Poniżej kilka zdań o naszym sponsorze oraz prezentacjach. Infolet (https://infolet.pl/) - od 2005 roku realizujemy projekty IT w różnych modelach outsourcingu (tworzenie oprogramowania „end-to-end”, leasing zespołów IT) dla największych firm technologicznych w Polsce i Europie. Projekty tworzymy przede wszystkim w Java, C embedded, C++, i JavaScript. Oferujemy: • Pakiet prywatnej opieki zdrowotnej (dla siebie i rodziny) • Możliwość przystąpienia do programu ubezpieczenia na życie • Pakiet Multisport Benefit • Pakiet relokacyjny • Szansę udziału w innowacyjnych projektach • Możliwość pracy w międzynarodowych zespołach • Możliwość uczestniczenia w konferencjach i szkoleniach branżowych • Możliwość pracy zdalnej w wybranych projektach Dodatkowo po zatrudnieniu spodziewaj się wdrożenia przy dobrej kawie, wsparcia merytorycznego jeśli zakładasz działalność gospodarczą, imprez integracyjnych. Po zakończeniu Twojego projektu znajdziemy dla Ciebie kolejne wyzwania zawodowe. Klaudiusz Wojtkowiak - Daobab - prezentacja nowej biblioteki do komunikacji z bazą danych Czy koncepcja JPA, która powstała kilkanaście lat temu, nadal wpasowuje się w paradygmaty współczesnego programowania? Czy to możliwe, aby ORM był w pełni relacyjny, a SQL w pełni obiektowy, zintegrowany z Javą i weryfikowalny przez IDE? Jak wykorzystać SQL do egzekucji kwerend na buforach? Jakie niespotykane wcześniej możliwości daje programiście biblioteka Daobab - zalety nowego ORMa prezentuje jego autor. Paweł Dyrek - "Machine Learning powered regression" How can we make a full regression of our platform before each of the releases, to be sure we have not damaged something unexpected when making our changes? Full regression of any web platform is a process which requires tremendous effort and is error-prone. It can be automated in a classical way, covered with test cases and scenarios, but it is extremely hard to cover the application in literal 100%. Doing the full regression manually is not a solution due to the effort needed and spending a few days of work doing so before each release would be an extreme waste of workforce. Our idea? Use a screenshot comparator, with a bit of data science flavour. First of all, we need to store a valid state of an application to assert if there have been any changes. As covering the whole application with test cases is time-consuming, we have thought about a different document covering the whole application - the sitemap. To ensure that we will use the proper version as a model, we should test the application manually, which will take some time, but we plan to do it only once. Afterwards, we can store the state of the application by making screenshots of every page. As we have a sitemap we can go through every subpage and make a screenshot of it displayed on different browsers. When we have a base we can compare to - every time we would like to make a regression, we can make new screenshots of the application, and compare those with the base ones and if we spot a difference, we know that something is happening. This non-standard approach should be the most efficient as the applications tend to change very often and managing and replacing the screenshots is the easiest way to keep the apps up to date.

  • Spotkanie PJUG - Scheduling oraz o drodze programisty

    Codibly - Create. Impact. Innovate.

    We współpracy z firmą Codibly (https://www.codibly.com/) zapraszamy na nasze kolejne spotkanie, które odbędzie się 6 listopada od godz. 18:00 w siedzibie firmy (ul. Długa 72, 2-gie piętro). Tym razem naszymi prelegentami będą Michał Zimnicki oraz Tomasz Borowiec. Michał opowie nam o tym jak działają schedulery, jak ogromny wpływ mają na wydajność naszej aplikacji oraz jak tworzyć rozwiązania dobrze z nimi współpracujące. Tomek opowie natomiast swoją historię jak został menedżerem i dlaczego wrócił do bycia programistą. Podczas spotkania przewidzieliśmy czas na networking (przy napojach i pizzy) a na zakończenie spotkania rozlosujemy nagrody: wejściówkę na SegFault Kraków, licencje na oprogramowanie firmy JetBrains oraz książkę. Poniżej kilka zdań o naszym sponsorze oraz prezentacjach. Codibly (https://www.codibly.com/) Jesteśmy firmą technologiczno-konsultingową koncentrującą się na rozwiązaniach Digital Sustainability w dziedzinie Energy & Utilities, zwłaszcza w zakresie odnawialnych źródeł energii, zielonych i czystych technologii. Od 8 lat współpracujemy z klientami głównie z branży Energy & Utilities. Jesteśmy zespołem ponad sześćdziesięciu talentów i wciąż się rozwijamy. Wspólnie tworzymy inspirujące i przyjazne środowisko, w którym innowacyjna praca wykonywana jest w najnowszych technologiach każdego dnia. Mamy możliwość wpływania na nasz kierunek i decydowania o tym, co budujemy i jak to robimy. Naszym celem jest aktywny udział w tworzeniu pozytywnej przyszłości zarówno dla biznesu klientów, jak i środowiska. Michał Zimnicki - Scheduling – kto zarządza wywołaniem? Uruchomienie nawet idealnego fragmentu wielowątkowego kodu ma wpływ na całą aplikację. Zasoby nie są skończone, a ich przydział nie zawsze jest sprawiedliwy. Jedna nieprzemyślana pula wątków tu, źle skonfigurowana tam i nasza aplikacja dostaje pokaźnych czkawek. Decydują o tym scheduler’y istniejące w wielu warstwach systemu. O tym jak działają, jak ogromny wpływ mają na wydajność naszej aplikacji oraz jak tworzyć rozwiązania dobrze z nimi współpracujące, dowiecie się podczas prelekcji. Tomasz Borowiec - Od programisty do managera… i z powrotem Myślisz o tym, żeby kiedyś zostać team leaderem lub managerem? A może już nim jesteś? Ja byłem managerem. Tak tak, byłem, bo już nie jestem. I chcę opowiedzieć Ci moją historię: Jak to się stało, że zmieniłem rolę? Jakie napotkałem trudności? Jak sobie z nimi poradziłem? Czego się nauczyłem? Czemu wróciłem do bycia programistą? Do opisu historii z mojego życia dokładam odrobinę teorii oraz własnych obserwacji wzbogaconych o garść humoru, który, mam nadzieję, będzie truskawką na torcie. Serdecznie zapraszam! Ponieważ liczba miejsc jest ograniczona bardzo prosimy o zapisy faktycznie osoby zainteresowane :)

    2
  • Spotkanie PJUG - Sketchy Structures oraz testy regresyjne z wykorzystaniem ML

    Po wakacyjnej przerwie zapraszamy wszystkich na kolejne spotkanie Polish Java User Group. Tym razem będziemy mogli usłyszeć o Sketchy Structures jako alternatywie do BigData oraz o testach regresyjnych z wykorzystaniem Machine Learning. Spotkanie odbędzie się w poniedziałek 7 października od godz. 18:00 na Barce (https://www.facebook.com/barkakrakow/). Tym razem naszymi prelegentami będą Miłosz Polak (https://www.linkedin.com/in/milpol/) oraz Paweł Dyrek (https://www.linkedin.com/in/pawe%C5%82-dyrek-09227671/). Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania będzie można wygrać bilet na kolejną edycję konferencji GeeCON w Pradze (http://geecon.cz), która odbędzie się już 17-18 października, a także kilka licencji oraz książkę. Poniżej kilka zdań o prezentacjach. Miłosz Polak - "Probabilistyczne struktury danych w praktyce" W codziennym programowaniu, jeśli dodamy element do kolekcji to, pytając czy się tam znajduje, otrzymamy jednoznaczną odpowiedź, a jak policzymy ile takich elementów jest w zbiorze oczekujemy konkretnej wartości. W trakcie prelekcji chciałbym przedstawić takie struktury danych, które, kosztem wysokiej optymalizacji miejsca, na wcześniejsze pytania odpowiedzą: "być może znajduje się w zbiorze" i "wystąpił około N razy". Dodatkowo pokażę gdzie już z nich korzystamy w Javie, oraz jakie są moje doświadczenia z nimi związane. (Nie będzie matematyki, za to trochę algorytmiki) Paweł Dyrek - "Machine Learning powered regression" How can we make a full regression of our platform before each of the releases, to be sure we have not damaged something unexpected when making our changes? Full regression of any web platform is a process which requires tremendous effort and is error-prone. It can be automated in a classical way, covered with test cases and scenarios, but it is extremely hard to cover the application in literal 100%. Doing the full regression manually is not a solution due to the effort needed and spending a few days of work doing so before each release would be an extreme waste of workforce. Our idea? Use a screenshot comparator, with a bit of data science flavour. First of all, we need to store a valid state of an application to assert if there have been any changes. As covering the whole application with test cases is time-consuming, we have thought about a different document covering the whole application - the sitemap. To ensure that we will use the proper version as a model, we should test the application manually, which will take some time, but we plan to do it only once. Afterwards, we can store the state of the application by making screenshots of every page. As we have a sitemap we can go through every subpage and make a screenshot of it displayed on different browsers. When we have a base we can compare to - every time we would like to make a regression, we can make new screenshots of the application, and compare those with the base ones and if we spot a difference, we know that something is happening. This non-standard approach should be the most efficient as the applications tend to change very often and managing and replacing the screenshots is the easiest way to keep the apps up to date.

    4
  • Ticket raffle: GeeCON Prague 2019

    Online

    This is not a physical meeting. Sign up to participate in a draw of a free tickets for GeeCON Prague 2019 (https://2019.geecon.cz/) (17-18 October 2019 in Prague, Czech Republic). The winner will be picked at random. To enter simply RSVP to this event. If you already have a ticket you can use it in the future or get a refund. Good luck!

    1
  • Spotkanie PJUG - Kafka Streams oraz jOOQ

    HEVRE Bar & Restaurant

    We współpracy z firmą Nexocode (https://www.nexocode.com/) zapraszamy na nasze kolejne (i ostatnie przed wakacjami!) spotkanie, które odbędzie się 13 czerwca od godz. 18:00 w Hevre (poziom -1, Meiselsa 18). Tym razem naszymi prelegentami będą Wojciech Marusarz oraz Łukasz Krauzowicz. Wojtek opowie nam o Kafce jako strumieniu, a Łukasz spróbuje nas przekonać, że nie samym ORM człowiek żyje. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy licencje na oprogramowanie firmy JetBrains oraz książkę. Poniżej kilka zdań o naszym sponsorze oraz prezentacjach. Nexocode (https://www.nexocode.com/) to przede wszystkim zgrany zespół programistów i projektantów tworzących zaawansowane systemy informatyczne. Każdy w Nexocode wnosi do swojej roli prawdziwą kreatywność codziennie decydując o kształcie projektowanych aplikacji, wykorzystywanych technologiach, a nawet kierunku działania i rozwoju firmy. Dzięki takiemu podejściu firma z sukcesami dostarcza dedykowane rozwiązania dla zewnętrznych klientów oraz tworzy własne produkty. Wojciech Marusarz - "Kafka jako strumień i co się z tym wiąże" Stream Processing staje się coraz bardziej popularnym paradygmatem przetwarzania danych. Na przykładzie mobilnej gry w klocki, pokażę Wam na jakie ciekawe problemy ze świata przetwarzania strumieni możemy się natkąć, na czym one polegają i jak je rozwiązać. Opowiem czym jest Apache Kafka i Kafka Streams oraz jak przy ich pomocy tworzyć systemy reaktywne. Wojciech: Jestem programistą Javy z wielką pasją do pisania kodu, dlatego zamieniłem korporację na zgrany zespół gdzie mogę się wyszaleć przy tworzenie aplikacji webowych. Lubię poznawać buzzwordy, staram się jednak zrozumieć skąd wynika ich popularność. Ostatnio zgłębiam świat programowania reaktywnego. Łukasz Krauzowicz - "Nie samym ORMem żyje człowiek - słów kilka o jOOQu" W dobie gdy od wystawienia operacji na bazie danych przy użyciu ORMa przez RESTa dzieli nas tylko jeden interfejs (dzięki Springu za @RepositoryRestResource!) wydawać by się mogło, że pisanie natywnych zapytań SQLowych nie jest specjalnie potrzebne (a przynajmniej nie jest sexy), ale życie każe temu przeczyć - istnieje przecież wiele sytuacji (takich jak tworzenie skomplikowanych raportów, używanie natywnych funkcji naszego silnika RDBMS) gdzie jest to niemalże krytyczne. W takich miejscach zazwyczaj trzeba posiłkować się zapytaniami skleconymi w pięknych i niebezpiecznych literałach tekstowych, o które trzeba dbać bardzo uważnie i je odpowiednio pielęgnować, szczególnie przy jakichkolwiek zmianach na poziomie schematu bazy danych, ale też nie tylko - w dużych systemach, gdzie takowych zapytań robi się dużo jest to niemałe wyzwanie. I w takich sytuacjach wchodzi jOOQ cały na biało - w czasie tej prelekcji zajmiemy się możliwościami, zaletami, ale również ograniczeniami tego jakże ciekawego projektu firmowanego takimi hasłami jak "Database First" czy "Typesafe SQL", który wprowadzi nas w trochę inny, nie-ORMowy świat. Łukasz: Miłośnik niekończącego się eksplorowania GitHuba (ale też nie tylko) z programistycznym zacięciem i doświadczeniem głównie w monolitycznej branży finansowej, szukający porywających wyzwań również w archeologicznych projektach, gdzie nie zawsze można spotkać czysty i piękny kod. Obecnie znajduje radość w kierowaniu pracą małego i zwinnego zespołu w Ailleronie. Ponieważ liczba miejsc jest ograniczona bardzo prosimy o zapisy faktycznie osoby zainteresowane :)

    5
  • Spotkanie PJUG - słów kilka o jOOQu oraz lotny start z testami kontraktowymi

    Przy współpracy z firmą Symphony Solutions (https://www.symphony-solutions.eu/) zapraszamy na nasze kolejne spotkanie, które odbędzie się 11-go kwietnia na Barce (ul. Podgórska 16, https://www.facebook.com/barkakrakow) od godz. 18:00. Tym razem prelegentami będą Łukasz Krauzowicz oraz Piotr Kubowicz. Łukasz opowie nam o jOOQu, czyli że nie samym ORMem żyje człowiek, a następnie Piotr o tym jak to jest z testami kontraktowymi. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy licencje na oprogramowanie firmy JetBrains. Poniżej kilka słów o naszym sponsorze i prezentacjach. Symphony Solutions (https://www.symphony-solutions.eu/) - We are an agile driven company delivering digital solutions to our clients. We are an international organization with our headquarters in Amsterdam and delivery centers in the Netherlands, Ukraine, Macedonia and Poland. Our skilled Symphonians are developing custom software for web and mobile devices, with expertise in human centered UX/UI design. We are offering full cycle solutions starting from ideation, proof of concept and business analysis, to IT solutions engineering, quality assurance, service desk support and digital marketing services. Since 2008, we have helped our clients ranging from SMBs to large corporations from Western Europe, USA, Canada and throughout the world achieve their business and technology goals by providing solutions that are tailored to their needs. Łukasz Krauzowicz- Nie samym ORMem żyje człowiek - słów kilka o jOOQu W dobie gdy od wystawienia operacji na bazie danych przy użyciu ORMa przez RESTa dzieli nas tylko jeden interfejs (dzięki Springu za @RepositoryRestResource!) wydawać by się mogło, że pisanie natywnych zapytań SQLowych nie jest specjalnie potrzebne (a przynajmniej nie jest sexy), ale życie każe temu przeczyć - istnieje przecież wiele sytuacji (takich jak tworzenie skomplikowanych raportów, używanie natywnych funkcji naszego silnika RDBMS) gdzie jest to niemalże krytyczne. W takich miejscach zazwyczaj trzeba posiłkować się zapytaniami skleconymi w pięknych i niebezpiecznych literałach tekstowych, o które trzeba dbać bardzo uważnie i je odpowiednio pielęgnować, szczególnie przy jakichkolwiek zmianach na poziomie schematu bazy danych, ale też nie tylko - w dużych systemach, gdzie takowych zapytań robi się dużo jest to niemałe wyzwanie. I w takich sytuacjach wchodzi jOOQ cały na biało - w czasie tej prelekcji zajmiemy się możliwościami, zaletami, ale również ograniczeniami tego jakże ciekawego projektu firmowanego takimi hasłami jak "Database First" czy "Typesafe SQL", który wprowadzi nas w trochę inny, nie-ORMowy świat. Piotr Kubowicz - Lotny start z testami kontraktowymi Chcąc zapewnić poprawną współpracę mikroserwisów, wpadamy często w pułapkę testów, którym nie ufamy lub które są zbyt trudne w utrzymaniu. Testy kontraktowe to alternatywne podejście oferujące z jednej strony szybką informację zwrotną a z drugiej strony poziom pewności niedostępny dla testów izolowanych. To nie jedyne korzyści: z ich wykorzystaniem możemy przyspieszyć nasz cykl pracy oraz lepiej zrozumieć, jak połączone są nasze systemy. W trakcie prezentacji zobaczymy minimalny działający przykład napisany w Kotlinie przy użyciu frameworku Pact, prześledzimy, co możemy zyskać w zależności od nakładu pracy oraz spojrzymy szerzej na ekosystem testów kontraktowych, porównując Pact z biblioteką Spring Cloud Contract. Piotr is a software engineer with more than 10 years experience in Java, currently helping Ocado Technology grow an online grocery backed up by highly automated warehouses. Being incorrigibly lazy and impatient, he focuses on automating repeatable work and fast feedback loops. Seeing the rise and fall of many projects, he became immune to silver bullets and started valuing human interactions. Likes to learn new ways of thinking through different languages, but prefers modern Java in professional software development.

    4
  • Spotkanie PJUG - doskonała jakość kodu oraz testy wydajnościowe

    Przy współpracy z firmą Infolet (https://infolet.pl/) zapraszamy na nasze kolejne spotkanie, które odbędzie się 20-go marca na Barce (ul. Podgórska 16, https://www.facebook.com/barkakrakow) od godz. 18:00. Tym razem prelegentami będą Michał Kordas oraz Sebastian Korczyk. Michał opowie nam o narzędziach, które pomagają utrzymywać doskonałą jakości kodu, a następnie Sebastian o tym na co zwrócić uwagę przy pisaniu testów wydajnościowych. Podczas spotkania przewidzieliśmy czas na networking, a na zakończenie spotkania rozlosujemy licencje na oprogramowanie firmy JetBrains. Poniżej kilka zdań o naszym sponsorze, a także o prezentacjach. Infolet (https://infolet.pl/) - od 2005 roku świadczymy usługi outsourcingu IT w branżach bankowość i finanse, telekomunikacja, turystyka, nowe media. Nasi Klienci doceniają naszą wiedzę i doświadczenie w branży, czego najlepszym dowodem jest długotrwała i owocna współpraca z wieloma z nich. Do naszych projektów poszukujemy specjalistów Java, C embedded, C++, PHP, specjalistów od mobile, testerów oprogramowania, administratorów sieci i systemów i wielu innych. Michał Kordas - "Baking in superb code quality into the Java World" Undoubtedly, there is one to one correlation between code quality and maintainability of a product. There are many examples of poorly written code causing disasters or bringing down entire companies. Therefore, we all know that we should “always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where we live.” However, writing clean code is really hard and prone to human mistakes… There are two possibilities. Best, would be to have no code at all: “the code easiest to maintain is the code that was never written.” For the rest of the cases there are new tools on the market that can teach and guide us to always improve and make feedback about quality blazingly fast. On my talk you’ll learn about such tools for Java, Groovy, GitHub, Gradle and IntelliJ IDEA environments. Michał: I’m a quality maniac with passion for Java, Groovy, JVM and fancy tools that automatically enforce quality and help test code in smart, fluent, and expressive ways. I love bringing feedback loops to the micro-level, and my main area of interest is agile testing. For last 5 years I have been working for UBS as a fully cross-functional member of a strongly agile team as a “quality guardian” with a particular focus on well-written code, solid requirements, and efficient processes. I believe that being a truly good QA is not only about having testing-related skills. It’s also about being software engineer with all the knowledge necessary to deliver production code of the highest possible quality. Besides day work I’m also a contributor to the open-source tools related to code style and I train people in Java and Agile. Sebastian Korczyk - "Testy wydajnościowe - to proste (*)" Mój wykładowca od Wstępu do Matematyki mówił: jeśli ktoś rozumie czego nie wie i potrafi o to zapytać to już jest dobrze. Podobnie jest z testami wydajnościowymi. Wykonując je o wielu rzeczach nie wiemy lub dowiadujemy się o nich w bolesny sposób. Dlatego opowiem o tym na co warto zwrócić uwagę żeby później nie bolało lub bolało mniej. W końcu lepiej uczyć się na błędach innych bo możemy nie mieć dość czasu by je wszystkie samemu popełnić. Prezentacja techniczna, przekrojowa. Sebastian: Przeżyłem przejście od Atari 2600 i C64 do współczesnych PC i Clouda. Doświadczając po drodze całego spektrum technologii i wielopoziomowych problemów z tym związanych. Pracowałem zarówno jako QA jak i DEV więc wiem już, że trawa ma taki sam kolor po obu stronach. Obecnie łącze te działki zajmując się testami wydajnościowymi i performance tuningiem. Gdy dzieci już śpią bawię się w gamedev lub gram w CTFy. Ponieważ liczba miejsc jest ograniczona bardzo prosimy o zapisy faktycznie osoby zainteresowane :)