--- ---
post-image

Czy wiesz, że możesz łatwo udostępnić swojego localhosta innym osobom (ngrok)?

Czasami dochodzi do takiej sytuacji, gdy chcemy komuś pokazać to, co mamy aktualnie odpalone na naszym sprzęcie na localhost. Możemy...

author
post-image

Czy wiesz, czym jest i jak działa npx?

Czym jest npx? npx to przydatne narzędzie CLI (Command Line Interface) pozwalające wykonywać skrypty pochodzące z repozytorium npm bez zbędnej...

author
post-image

Czy język programowania i region mają wpływ na wydajność Google Cloud Functions?

W jakim języku programowania pisać funkcje w Google Cloud? Które środowisko uruchomieniowe jest najszybsze i czy ma na to wpływ region? Czy języki interpretowane mają mniejszy cold start?

author
post-image

Inteligentny dom dla programisty, czyli DIY Smart Home

DIY dla Smart Home, z przykładami automatyzacji, treściwym przeglądem systemów i narzędzi dla inteligentnego domu.

author
post-image

Zarządzanie transakcjami w Java - jak to robić dobrze?

Czy ktokolwiek zamawiając w restauracji kawę i ciastka chciałby zapłacić za oba, a otrzymać tylko jedno? Czy do zaakceptowania byłby...

author
post-image

Czy wiesz, czym jest HTTP idempotency?

Właściwość pewnych operacji, która umożliwia ich wielokrotne stosowanie bez zmiany wyniku, nazywamy trudnym polskim słowem ;) - idempotentność. Częściej spotkaliście...

author
post-image

Frontend Developer

Czy Frontend Developer w Consdata robi stronki? Przeczytaj kim jest, czym się zajmuje i jak doszliśmy do obecnego kształtu tej roli. W bonusie krótki przegląd naszych projektów i opowieść dlaczego...

author
post-image

Czy wiesz czym różnią się json i jsonb w PostgreSQL?

Podstawowe różnice Podstawową różnicą pomiędzy json a jsonb jest sposób ich przechowywania. Typ json jest przechowywany jako tekst, natomiast typ...

author
post-image

Czy wiesz, czym jest Shadow DOM?

Pewnie czytając o Web Componentach dane było Ci słyszeć o Shadow DOM. Pozwala on na przyczepienie się do istniejących elementów...

author
post-image

Czy wiesz, jak działa Bucket Pattern w MongoDB i czemu sprawdził się w implementacji IoT Boscha albo w apkach bankowych?

Największe korzyści z używania odpowiedniego wzorca grupowania danych, czyli Bucket Pattern w MongoDB, to m.in. zwiększenie wydajności indeksów czy uproszczenie zapytań. Przeczytaj jak to wszystko zrealizować.

author
post-image

Zarządzanie stanem aplikacji frontendowej na przykładzie NgRx

W miarę rozwijania złożonych aplikacji webowych ważnym i nieoczywistym zagadnieniem staje się projektowanie przepływu informacji pomiędzy komponentami. W tym artykule poznamy jedną z implementacji architektury Redux wykorzystującej koncepcję globalnego stanu...

author
post-image

Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ

Dlaczego w Kafce nie ma DLQ? Zacznijmy zatem od odpowiedzi na pytanie. Większość popularnych systemów kolejkowych takich jak RabbitMQ czy ActiveMQ ma wbudowane systemy odpowiedzialne za niezawodne dostarczanie komunikatów. Dlaczego...

author
post-image

Event Tracking, czyli jak znaleźć igłę w stogu siana

Event tracking pozwala na prześledzenie oraz wizualizację drogi danego eventu, czy też procesu, przez topiki na Kafce.

author
post-image

Kouncil - nowoczesny frontend do Kafki

Kouncil to nowoczesny frontend do Kafki, wyposażony w wiele niezbędnych programiście funkcjonalności.

author
post-image

Czy wiesz, że WebRTC korzysta z serwera STUN, aby umożliwić połączenie P2P?

Czy wiesz że WebRTC korzysta z serwera STUN, aby umożliwić połączenie P2P, a w ostateczności z serwera TURN aby przepuścić...

author
post-image

Czy wiesz co się dzieje, kiedy nie stawiasz średników w JS?

Każdemu zdarza się czasem zapomnieć postawić średnika na końcu linijki. Powinny to wyłapywać reguły zawarte w narzędziach takich jak TSLint,...

author
post-image

Zarządzanie dostępem przy użyciu ACL (Access Control List)

Tym artykułem chciałbym zwrócić uwagę na obecność gotowej implementacji Access Control List oraz jaki konkretny problem rozwiązuje. Warto skorzystać z gotowych i dojrzałych rozwiązań, takich jak, Spring Security ACL, gdyż...

author
post-image

Metaprogramowanie w Javie - @Target

@Target określa, w których miejscach konstruowana przez nas adnotacja może zostać użyta. Gdy zadeklarujemy, w których miejscach kodu jest możliwe użycie adnotacji, błędne jej umiejscowienie nie pozwoli na skompilowanie kodu....

author
post-image

Volatile nie należy się bać

Słowo kluczowe volatile wydaje się jednym z najrzadziej stosowanych, ale też najbardziej tajemniczych i najsłabiej poznanych słów kluczowych w Javie. Do czego więc służy i czy jest się czego bać?...

author
post-image

Java darmowa, czy nie? - aktualizacja

Microsoft dołącza do dystrybutorów JDK. To dobry moment żeby sprawdzić, jak rozwinęła się sytuacja z wydawaniem darmowych dystrybucji od czasu, kiedy Oracle zmienił tryb licencjonowania. Pisaliśmy o tym dwa lata...

author
post-image

Micro frontends: czy współdzielić zależności?

Czy współdzielić zależności w microfrontends czy nie? Nie zawsze! Jeżeli nie natrafiłeś na problemy z rozmiarem bundli, to nie rozwiązuj teoretycznych problemów. Zanim zabierzesz się za optymalizację - oceń, co...

author
post-image

Współdzielona biblioteka w Jenkins pipeline

W tym artykule zapoznamy się z mechanizmem bibliotek współdzielonych (Pipeline: Shared Groovy Libraries), które stanowią zależność do szeroko stosowanej wtyczki jenkins pipeline

author
post-image

Standard HTTP i REST - dobre i złe praktyki

Jakie są częste błędy przy doborze metod HTTP? Kiedy trzymać się standardu, a kiedy może to być problemem? O czym pamiętać projektując swoje REST API

author
post-image

Migracja aplikacji do chmury Google Cloud Platform w praktyce

W tym wpisie chciałbym przedstawić jak wygląda migracja do chmury Google Cloud Platform w praktyce. Na warsztat wezmę działającą aplikację demo, która w żaden sposób nie jest przystosowana do uruchomienia...

author
post-image

Wszystko, co chcielibyście wiedzieć o fontach, ale baliście się zapytać

Zacznijmy od początku. Jak poprawnie zdefiniować wielkość fontów? W większości przypadków wyboru dokonujemy pomiędzy PX, EM a REM. Przejdźmy do tego pierwszego.

author
post-image

Domain Driven Design w oparciu o Axon Framework - odpowiedzi na pytania!

Zgodnie z obietnicą, przyszedł czas odpowiedzieć na pytania, które pozostały bez odpowiedzi podczas naszego minionego eventu - Consdata Tech.

author
post-image

Migracja schematów bazy danych

Niemożliwe jest rozwijanie aplikacji bez równoczesnego rozwijania schematu bazy danych. Tak jak podczas rozwijania naszej aplikacji, stosujemy wzorce projektowe przy...

author
post-image

Jak napisać plugin w IntelliJ

IntelliJ IDEA to obecnie jedno z popularniejszych, jeśli nie najpopularniejsze IDE dla Javy. Jedną z jego zalet jest duża baza pluginów, dostarczana przez samo JetBrains, jak i społeczność.

author
post-image

Testy e2e z Cypress

W kwestii testów e2e, czyli takich, które sprawdzają funkcjonalność od początku do końca wezmę na warsztat całkiem młody framework - Cypress mimo że nadal dominuje Selenium.

author
post-image

Java Stream - przetwarzanie elementów

Java Stream API definiuje dwa rodzaje operacji, jakie możemy wykonać w trakcie przetwarzania strumieni, operacje pośrednie – intermediate, oraz operacje końcowe - terminal.

author
post-image

Consdata Tech Webinar - rozmowa z Marcinem Mergo o nowej formie meetupu

Consdata Tech to inicjatywa, której założeniem od początku było dzielenie się wiedzą i doświadczeniem w formie cyklicznych meetupów oraz integracja lokalnej społeczności zafascynoweanej światem Java.

author
post-image

Migracja do chmury - czyli od czego zacząć?

Pierwszym z etapów migracji do chmury Google jest etap szacowania, na którym przeprowadzona zostaje dokładna analiza istniejącego systemu oraz infrastruktury.

author
post-image

W chmurze czyli jak? O możliwych kierunkach rozwoju aplikacji chmurowych

Co to znaczy być w chmurze? Co to właściwie jest IaaS, PaaS, CaaS, FaaS? Jak przenieść się do chmury? Czy jestem już wystarczająco zachmurzony? Jeżeli nie znasz odpowiedzi na którekolwiek...

author
post-image

Axon - Kompleksowe testowanie aplikacji

Niniejszy artykuł jest poświęcony w pełni testom aplikacji opartej o Axona. Powszechnie wiadomo, że kod dobrze pokryty testami jest dużo bardziej podatny na rozwój - wszak nie musimy obawiać się,...

author
post-image

Ansible - jak uporządkować chaos?

Już od wczesnych lat studiów programistom wpaja się, aby dążyć do utrzymania eleganckiej i czytelnej struktury swoich aplikacji (KISS – Keep it simple, stupid). Doskonale w ten trend wpasowuje się...

author
post-image

Mikroserwisy na Axonie

Axon to framework, który czerpie garściami z Domain Driven Design (które jest poza zakresem tego wpisu), wykorzystując również nomenklaturę panującą w tym podejściu, którą także będę się posługiwał w tym...

author
post-image

Na co nam ta chmura?

W ostatnich latach bardzo dużo się dzieje w świecie Cloud Computing. Coraz częściej rezygnujemy z rozwiązań on-premise na rzecz platform chmurowych, migrujemy swoje infrastruktury do takich gigantów jak AWS, Microsoft...

author
post-image

Tworzenie i usuwanie indeksów w bazie MongoDB na produkcji

Tworzenie oraz usuwanie indeksów, nie jest operacją trudną. MongoDB jest dokumentową bazą danych oferującą bogatą funkcjonalność i jednocześnie na tyle elastyczną, że pozwala przeprowadzać zadania administracyjne bez przerwy w działaniu....

author
post-image

Tomcat - model przetwarzania żądań

Tomcat jest jednym z najpopularniejszych serwerów webowych dla aplikacji pisanych w Javie. Jest podstawowym kontenerem aplikacji springbootowych. Tworząc nowy projekt często polegamy na jego domyślnej konfiguracji.

author
post-image

O OpenID Connect słów kilka

Najpopularniejszymi standardami wykorzystywanymi do uwierzytelniania/autoryzacji są OAuth 2.0, OpenID Connect oraz SAML. O OAuth 2.0 zostało już napisanych wiele artykułów, których nie ma sensu powielać. Jednak aby przedstawić OpenID Connect,...

author
post-image

Angular APP_INITIALIZER

APP_INITIALIZER to wbudowany w Angulara InjectionToken. Pod InjectionToken można zarejestrować wartość, funkcję albo serwis. Token ten można wstrzyknąć do komponentu lub serwisu.

author
post-image

Keycloak - uwierzytelnianie i autoryzacja użytkownika w aplikacji Angular/Spring Boot

Jak wykorzystać serwer Keycloak do logowania w aplikacji? Omówimy to na przykładzie gotowego projektu, który umożliwia użytkownikowi zalogowanie się do aplikacji z poziomu przeglądarki internetowej.

author
post-image

Moje własne zadania i jak się w nich odnaleźć

Większość z nas ma coś do zrobienia. Na początku owe coś jest dość ogólnie zdefiniowane, np.: “napisać wpis na bloga” czy “zaprojektować mechanizm ładowania modułów aplikacji”. Dość szybko zaczynamy rozbijać...

author
post-image

SameSite=Lax by default coraz bliżej - czy jesteś gotowy?

Same site cookies (First-Part-Only) to stworzony kilka lat temu mechanizm, który pozwala na zmniejszenie ryzyka ataków typu CSRF. Zapewnia on, że dane ciasteczko może być wysyłane wyłącznie z żądaniami zainicjowanymi...

author
post-image

RxJS z Angularem - programowanie reaktywne aplikacji frontendowej

Czy wiesz jak efektywniej wykorzystać bibliotekę RxJS? Pisząc aplikacje z wykorzystaniem Angulara mamy styczność z obiektami typu Observable. Na pewno zdarzyło Ci się użyć serwisu HttpClient do pobierania danych z...

author
post-image

Testowanie frontendu - Cz. 4 Testy jednostkowe kodu działającego asynchronicznie

Testy jednostkowe asynchronicznych aplikacji frontendowych często wydają się być zagadką dla developerów. Na szczęście twórcy narzędzi pomyśleli również o tym i dostarczyli nam narzędzia, które zdecydowanie ułatwiają pracę z testowaniem...

author
post-image

Testowanie frontendu - Cz. 3. Testowanie komponentów angularowych z inputami i outputami

Czas na dawkę informacji dotyczących testowania przy użyciu Jasmine. Pora skupić się na testowaniu komponentów angularowych, a w szczególności ich wejść i wyjść. Przykłady oprzemy o aplikację, która będzie składała...

author
post-image

Automat dodający joby do Jenkinsa

W ogarniającym nas świecie mikroserwisów skala projektów do utrzymania staje się ogromna. Każdy z tych projektów musimy przecież: zbudować, przetesować,...

author
post-image

Testowanie frontendu - Cz. 2. Testowanie komponentów i serwisów

Jeśli zastanawialiście się, jak rozpocząć testy komponentów i serwisu w przypadku kwestii dotyczącej testowania frontendu, to znak że ten wpis jest dla Was.

author
post-image

Testowanie frontendu - Cz. 1. Wprowadzenie do Jasmine - konfiguracja i przykładowe testy

Framework Jasmine jest frameworkiem służącym do testowania napisanym w duchu behaviour-driven development, nie ma dodatkowych zależności oraz, jak twierdzą twórcy, dostajemy go z bateriami, czyli powinien zawierać wszystko, co jest...

author
post-image

Batchowe inserty w Hibernate - droga ku szybkości

W tym poście powiemy o przykładowej ścieżce optymalizacji wstawiania grup rekordów do bazy danych za pomocą Hibernate’a i SpringBoota z założeniem użycia spring-boot-starter-data-jpa. Skupimy się na aspektach konfiguracyjnym i diagnostycznym...

author
post-image

Wprowadzenie do Zed Attack Proxy

ZAP (Zed Attack Proxy) jest opensourcowym narzędziem tworzonym przez organizację OWASP wspomagającym testy penetracyjne, które służy do znajdowania podatności bezpieczeństwa w aplikacjach webowych. Działa na zasadzie proxy, dzięki czemu pozwala...

author
post-image

Kafka Companion

Stalo się standardem, że współczesne narzędzia i biblioteki dystrybuowane są z mniej lub bardziej zaawansowanym interfejsem graficznym. RabbitMQ, będący najpopularniejszym obecnie systemem kolejkowym, wita nas po zainstalowaniu przejrzystym i funkcjonalnym...

author
post-image

Haproxy - mała rzecz, a cieszy

HAProxy to pakiet wolnego oprogramowania, który najczęściej pełni rolę reverse-proxy, zapewniając load-balancing i high-availability serwerów aplikacji.

author
post-image

Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ

Dlaczego w Kafce nie ma DLQ? Zacznijmy zatem od odpowiedzi na pytanie. Większość popularnych systemów kolejkowych takich jak RabbitMQ czy ActiveMQ ma wbudowane systemy odpowiedzialne za niezawodne dostarczanie komunikatów. Dlaczego...

author
post-image

View Encapsulation w Angularze - czyli o kapsułkowaniu słów kilka

Tworząc komponenty w Angularze mamy możliwość zarządzania kapsułkowaniem (enkapsulacją) stylów - czyli tym jak style z jednego komponentu wpływają na inne komponenty. Zanim omówimy kapsułkowanie, wyjaśnijmy w kilku słowach czym...

author
post-image

Angular - detekcja zmian strategią onPush

Każda aplikacja rozwijana odpowiednio długi czas może rozrosnąć się do ogromnych rozmiarów, a konkretniej do sporej liczby komponentów, jeżeli mówimy o aplikacji frontendowej pisanej z wykorzystaniem Angulara. Z czasem przyrost...

author
post-image

Testy jednostkowe frontendu okiem programisty full stack

Co testować na frontendzie? Niezależnie od tego jaki framework został użyty w danym projekcie, zawsze możemy z niego wydzielić komponenty. W tym artykule jako przykład użyty został Angular.

author
post-image

10 praw użytecznego designu

W latach 80. Dieter Rams zagubiony w chaosie form i kolorów postanowił coś z tym zrobić i opracował 10 reguł dobrego designu, które w branży zdążyły urosnąć do rangi dziesięciu...

author
post-image

Korzyści wynikające z użycia Node Version Manager

JavaScript i cały ekosystem z nim związany jest bardzo rozbudowany i wydaje się, że wcale nie zamierza przestać się rozrastać. Można czasem usłyszeć, że tydzień, w którym nie powstał nowy...

post-image

Przykłady refaktoryzacji na podstawie książki Martina Fowlera i Kenta Becka 'Refactoring'

Książka 'Refactoring' Martina Fowlera i Kenta Becka została po raz pierwszy wydana w 1999 roku i często określana jest jako pozycja wybitna, ponadczasowa, jako must read każdego programisty. Dodatkowo w...

author
post-image

Krótkie wprowadzenie do Custom Elements

Custom element, co to takiego? Custom Elements to jedna z zestawu czterech specyfikacji występujących pod wspólną nazwą Web Components - wspólnie pozwalają one na tworzenie własnych typów elementów DOM.

author
post-image

Java darmowa, czy nie?

End of Public Updates for Oracle JDK 8 Oracle will not post further updates of Java SE 8 to its public download sites for commercial use after January 2019. Customers...

author
post-image

Pozycjonowanie zależne od scrolla

Custom Elements to jedna z zestawu czterech specyfikacji występujących pod wspólną nazwą Web Components - wspólnie pozwalają one na tworzenie własnych typów elementów DOM.

author
post-image

Podsumowanie Consdata Tech - odpowiedzi na pytania

Czy używacie platformy Kafka Connect? Jeśli tak, czy pozwalacie connectorowi na sterowanie schematem bazy danych? Jeśli nie, jakie macie podejście do ewolucji schematów?

author
post-image

Czy Apache Kafka nadaje się do Event Sourcingu?

Nietrudno jest natknąć się na głosy mówiące, że Apache Kafka nie nadaje się do implementacji wzorca, jakim jest Event Sourcing. Czy jest tak w istocie? W artykule tym postaram się...

author
post-image

Algorytmy rekomendacyjne - przykład implementacji w Pythonie

Systemy rekomendacyjne widzimy wszędzie tam, gdzie użytkownik ma styczność z ogromnymi katalogami danych, np. Amazon podpowiada nam, jakie produkty powinniśmy kupić, Netflix - jakie filmy oglądać, a Spotify - które...

author
post-image

Praktyczne zastosowanie webhook

Każdy programista prędzej czy później ma do czynienia z jakąś formą API (ang. application programming interface). API to określony interfejs, którym dwie niezależne aplikacje mogą porozumiewać się między sobą. W...

author
post-image

Terraform - czyli o tym, jak okiełznać chmurę od Amazona

W przypadku pracy z kodem, potrzebujemy narzędzi automatyzujących proces tworzenia a także niszczenia zasobów AWS. Wykorzystam zatem Terraform, aby pokazać, jak można to zrobić.

author
post-image

Monitorowanie zespołowych trendów jakości kodu

W jednym z wcześniejszych wpisów omawialiśmy już zalety i zasadność statycznej analizy kodu z pomocą SonarQube

author
post-image

AWS - serverless programming

W kwestii AWS architektura serverless przenosi nas jeszcze poziom wyżej - przestajemy myśleć o maszynach wirtualnych, skupiamy się na kodzie rozwiązującym konkretne potrzeby biznesowe.

author
post-image

Jak szybko stworzyć system monitoringu serwerów i usług

Połączenie Grafany, jako warstwy prezentacji i ostrzegania, oraz Icingi, jako narzędzia do zbierania metryk, jest dosyć łatwym i szybkim w zestawieniu systemem do monitorowania serwerów.

author
post-image

Gatling! “Odłamkowym ładuj!”, czyli jak strzelać do aplikacji

Gatling zawiera masę pomocniczych poleceń. Na stronie http://gatling.io/ dostępna jest użyteczna dokumentacja, w której w przejrzysty sposób wyjaśniono dostępne funkcje.

author
post-image

Absolutne importowanie zależności w Angular CLI

Odpowiedzialny programista tworząc aplikacje przestrzega powszechnie uznanych zasad tworzenia oprogramowania. Jedną z takich zasad jest Single Responsibility Principle, która uczy nas, że każdy moduł powinien mieć jedno, jasno zdefiniowane zadanie....

author
post-image

Dynamiczne dodawanie komponentów w Angular 2

Od pewnego czasu pracuję nad świeżym projektem opartym o Angular 2. Częścią projektu jest prezentowanie użytkownikowi dynamicznie generowanych elementów interfejsu. Nie jesteśmy w stanie zaprojektować z wyprzedzeniem ekranów, nie znając...

author
post-image

Wireshark - czy to gryzie?

Z programem Wireshark pierwszy raz zetknąłem się w czasie studiów na zajęciach z sieci komputerowych (dla niewtajemniczonych: Wireshark to aplikacja która umożliwia przechwytywanie i nagrywanie pakietów danych, a także ich...

author
post-image

Budowanie aplikacji Angular CLI + Spring Boot

Każda nietrywialna aplikacja potrzebuje backendu. O ile obecnie to nie jest prawda, to na potrzeby tego artykułu przyjmijmy, że tak jest. A jak backend współpracujący z aplikacją webową to REST,...

author
post-image

Hystrix - praktyczne użycie circuit breaker'a

Aby dodać circuit breakera do naszej aplikacji należy dodać klasę opakowującą klienta serwisu zewnętrznego komendą hystrixową (adnotacje dostarczane są przez bibliotekę javanica).

author
post-image

Sonarqube - wprowadzenie do statycznej analizy kodu

SonarQube, powstał jako system do integracji raportów z różnych bibliotek i wizualizacji wyników. Twórcy byli rozczarowani tempem zmian w popularnych bibliotekach statycznej analizy kodu, dlatego zaczęli na własną rękę przygotowywać...

author
post-image

Szybki start z Angular CLI

Wydanie stabilnej wersji Angular 2 to idealny moment, żeby zacząć swoją przygodę z tym frameworkiem. Nie ma lepszego sposobu na poznanie nowej technologii niż skok na głęboką wodę i rozpoczęcie...

author