Wykorzystaj możliwości nftables i zabezpiecz swoją sieć! Zapora sieciowa (ang. firewall) to ostatni bastion chroniący Twój komputer przed atakiem. Dzięki odpowiedniej konfiguracji jesteś w stanie decydować, jakie pakiety mogą trafić do wnętrza sieci, a jakie nie. Możesz przesądzić o dostępie do określonych usług, zezwolić lub zabronić aplikacjom korzystać z dostępu do sieci Internet oraz ustalić limity na prędkość albo ilość przesłanych danych. Duże możliwości konfigur...
Wykorzystaj w pełni potencjał wątków! Jeżeli chcesz tworzyć aplikacje dostarczające użytkownikom doskonałych wrażeń, jeżeli chcesz wykonywać skomplikowane zadania szybciej lub po prostu musisz jednocześnie wykonywać różne działania — naucz się korzystać z wątków. Tworzenie programów wielowątkowych jest trudne, ale opanowanie tej sztuki pozwoli Ci osiągnąć wymierne korzyści! Ta książka w całości poświęcona jest korzystaniu z wątków na...
To zaskakujące, ale wielu inżynierów oprogramowania wciąż nie czuje się dobrze w pracy z systemami uniksowymi. A przecież są one wszechobecne: od środowiska pracy (macOS), przez procesy tworzenia oprogramowania (kontenery Dockera), po narzędzia kompilacji i automatyzacji (potoki ciągłej integracji, GitHub), a także środowiska produkcyjne (serwery Linuksa, kontenery). Owszem, opanowanie pracy z Linuksem wymaga nieco wysiłku i czasu, szybko się jednak przekonasz, jak wie...
Rust świetnie się sprawdza na poziomie systemowym, czyli z niskopoziomowymi szczegółami zarządzania pamięcią, reprezentacji danych i współbieżności. Jest zaprojektowany tak, aby naturalnie pisać niezawodny i wydajny kod. Język ten jest również wystarczająco ekspresyjny i ergonomiczny, aby umożliwiać tworzenie aplikacji CLI czy serwerów WWW. Łatwo dostrzec, że praca z Rustem pozwala budować umiejętności, które przydają się w wielu dziedzinach...
Aby napisać dobry kod, programiści muszą wybrać optymalny sposób rozwiązania danego problemu. Java jest znana ze skutecznego i przetestowanego podejścia obiektowego (OOP), jednak ten paradygmat nie zawsze okazuje się wystarczający. Zamiast wymuszać OOP w każdym wypadku, warto wdrożyć w swoim kodzie zasady programowania funkcyjnego (FP), aby zapewnić sobie najlepsze korzyści płynące ze stosowania obydwóch paradygmatów. Dzięki tej książce zrozumiesz bazowe...
Przyśpieszenie transformacji cyfrowej oznacza również uelastycznienie zasad pracy zdalnej. W takim środowisku zapewnienie cyberbezpieczeństwa jest trudniejsze, a złośliwe operacje stają się częstsze. Standardowy zestaw zabezpieczeń już nie wystarcza. Organizacje muszą przemyśleć swoje polityki bezpieczeństwa i dostosować je do nowych warunków. Na tym polu przewagę zyskuje się dzięki łączeniu taktyk defensywnych z ofensywnymi. Ta książka jest skierowana do specj...
Kubernetes jest ważnym narzędziem do tworzenia, wdrażania i utrzymywania aplikacji w chmurze. Obecnie pozwala na uzyskiwanie prędkości, zwinności, niezawodności i wydajności na wysokim poziomie, a samo tworzenie i utrzymywanie systemów rozproszonych jest proste, efektywne i satysfakcjonujące. Trzeba tylko zrozumieć, na czym polega abstrakcja kontenerów i interfejsów API orkiestracji kontenerów i poświęcić trochę czasu na zapoznanie się z samym Kube...
Google Analytics 4 wyznacza nowe zasady marketingu cyfrowego: obecnie chodzi nie tyle o raportowanie zdarzeń z przeszłości, ile o aktywację danych przez łączenie danych online i offline ze wszystkich strumieni, aby zapewnić kompleksowe informacje marketingowe. Taka analityka cyfrowa umożliwia szybsze podejmowanie decyzji. Umiejętność korzystania z GA4 staje się więc nieodzowna. Oto zwięzły i praktyczny przewodnik po usłudze GA4 i jej integracji z chmurą. Szczególnie s...
Dostęp do danych jest warunkiem rozwoju niejednej organizacji. Aby w pełni skorzystać z ich potencjału i uzyskać dzięki nim konkretną wartość, konieczne jest odpowiednie zarządzanie danymi. Obecnie stosowane rozwiązania w tym zakresie nie nadążają już za złożonością dzisiejszych organizacji, rozprzestrzenianiem się źródeł danych i rosnącymi aspiracjami inżynierów, którzy rozwijają techniki sztucznej inteligencji i analizy danych. Odpowiedzią na te potrzeb...
Nawet bardzo doświadczony zespół niekiedy popełnia błędy, które mogą przesądzić o porażce obiecującego projektu. Aby uniknąć takich sytuacji, trzeba zadbać o odpowiednie testowanie kodu. To jednak bywa prawdziwym wyzwaniem dla frontendowców, którzy na co dzień skupiają się na innych aspektach pracy aplikacji. Obecnie deweloperzy mogą wybierać spośród rozlicznych narzędzi do testowania i wielu nowych metodyk. Na uwagę zasługują zwłaszcza fram...
Każda aplikacja korporacyjna tworzy dane. Ich przenoszenie i przetwarzanie jest równie ważne jak same dane. Platforma Apache Kafka została zbudowana właśnie w tym celu: aby umożliwić płynną obsługę strumieni zdarzeń czasu rzeczywistego. Umożliwia to architektom nie tylko łączenie aplikacji z systemami danych, ale również budowanie niestandardowych aplikacji, które same w sobie wyzwalają strumienie danych. Okazuje się, że architektura skupiona wokół...
Kubernetes zmienił podejście do budowy i wdrażania oprogramowania korporacyjnego. Przedsiębiorstwa szybko zrozumiały, że dzięki tej potężnej technologii mogą korzystać z zalet wysoce dostępnych, samonaprawiających się i autoskalujących wdrożeń oprogramowania. Systemy są zdolne do automatycznego zapewniania pożądanych reakcji na podstawie zadanych warunków, a przy tym są szybsze i bardziej niezawodne od jakichkolwiek operacji wykonywanych ręcznie. Jednak ceną za ten pos...
Wyśledzenie luki w zabezpieczeniach aplikacji i przejęcie kontroli nad chronionym zasobem jest wyjątkowo ekscytującym doświadczeniem: oto dzięki własnym umiejętnościom można pokonywać kolejne ograniczenia i osiągać cele, które na pozór wydają się nierealne. Od pewnego czasu takie eksperymenty z hakowaniem można prowadzić całkowicie legalnie, a nawet nieźle na tym zarabiać. Wiele firm uruchamia programy bug bounty, w ramach których nagradza hakerów ...
Od oprogramowania wymaga się solidności i poprawności, a równocześnie oczekuje wydajnego działania i skalowalności. Jako programista odpowiadasz za zapewnienie aplikacjom tych właśnie cech. Niezależnie od tego, jakiego języka programowania używasz, praca zgodnie z paradygmatem TDD umożliwi Ci otrzymanie testowalnego kodu o wysokiej jakości. Choć te korzyści przeważają nad niedogodnościami podejścia TDD, wielu programistów narzeka na czasochłonność, pracochłonnoś...
TypeScript szybko stał się ulubionym językiem programowania zawodowców. Pozwala na tworzenie czystego, efektywnego i łatwego w utrzymaniu kodu, a także zastosowanie zaawansowanych konstrukcji programistycznych. Co więcej, pracę w tym języku uprzyjemniają liczne frameworki i biblioteki, które pozwalają na sprawną budowę dojrzałych aplikacji. Jednak z punktu widzenia początkującego programisty TypeScript ma inną ogromną zaletę: jest świetnym punktem startu dla każ...
Mikrousługi oparte na zdarzeniach mogły powstać dzięki rozwojowi konteneryzacji i łatwiejszemu pozyskiwaniu zasobów obliczeniowych. Szczególnie ciekawą propozycją są rozproszone, odporne na błędy, wysokowydajne i szybkie brokery zdarzeń. Te rozwiązania technologiczne pozwalają na korzystanie z wielkich zbiorów danych i zapewniają przetwarzanie zdarzeń w czasie zbliżonym do rzeczywistego. Taka architektura ma znaczenie nie tylko dla inżynierów syste...
Twórcy Javy od początku historii tego języka śmiało wprowadzali kolejne awangardowe innowacje, a pisane w niej aplikacje miały swój udział w napędzaniu internetowego postępu. Obecnie Java jest uważana za najpopularniejszy język programowania na świecie, a miliony deweloperów wciąż tworzą za jej pomocą oprogramowanie dla niemal każdego urządzenia wyposażonego w procesor. Java jest wyjątkowo wszechstronnym narzędziem: pozwala napisać zarówno prostą a...
Kubernetes to system, który uruchamia aplikacje w kontenerach i nimi zarządza. Jest obsługiwany przez wszystkie ważne platformy chmurowe i znakomicie się sprawdza jako centrum danych. Został zbudowany w 2014 roku przez Google i do teraz prężnie się rozwija. Słynie ze skalowalności, z elastyczności, wszechstronności i potężnego zestawu funkcjonalności. Biegłość w posługiwaniu się Kubernetesem jest dziś receptą na sukces. Aby ją zdobyć, musisz zainwestować trochę zaangaż...
Zapewnienie bezpieczeństwa IT jest wyjątkowo ważne. Organizacja musi pozostawać w ciągłej gotowości do wykrywania zagrożeń i reagowania na incydenty bezpieczeństwa. Przeciwnicy nieustannie się doskonalą i standardowy zestaw zabezpieczeń jakiś czas temu przestał wystarczać. Konieczne jest zbudowanie i wdrożenie kompleksowego systemu zapobiegania zagrożeniom, ich wykrywania i reagowania na nie. Podobnie jak na polu bitwy, tak i w planowaniu bezpieczeństwa IT zyskuje się przewag...
Wdrożenie zasad projektowania dziedzinowego (DDD) jest szansą na uzyskanie doskonałych wyników projektowania oprogramowania dla złożonych wymagań biznesowych. Aby podejście DDD ujawniło swoje zalety, konieczne jest zrozumienie potrzeb użytkowników i zidentyfikowanie właściwych problemów do rozwiązania. Dopiero potem można przystąpić do budowania modeli. Zaangażowanie zainteresowanych stron biznesowych w ten proces nie zawsze jednak przebiega efektywnie. K...
Kubernetes jest czymś więcej niż platformą do orkiestracji kontenerów. W ciągu zaledwie kilku lat stał się najpopularniejszym i najbogatszym narzędziem do tworzenia, wdrażania i utrzymywania aplikacji w chmurze. Tak radykalna zmiana sposobu funkcjonowania systemów informatycznych wymaga przemodelowania podejścia i stylu pracy zespołów programistycznych. Jeśli jednak wypróbujesz Kubernetesa, przekonasz się, że bardzo upraszcza on tworzenie, wdrażani...
Termin wirtualizacja od jakiegoś czasu jest bardzo modny. Oznacza abstrakcję zasobów obliczeniowych opartą na innych zasobach, jednak specjaliści IT słowo to kojarzą z abstrakcją sprzętu (serwerów), czyli oddzieleniem systemu operacyjnego od sprzętu, na którym jest uruchomiony. Dzięki temu na jednym fizycznym serwerze można jednocześnie uruchamiać wiele systemów operacyjnych. W takiej właśnie technologii działa rodzina produktów VMware vSphe...
Pierwsze kroki w programowaniu bywają frustrujące. Wszystko wydaje się jasne i proste, ale tylko do pierwszych prób skompilowania kodu. Półki księgarń uginają się pod ciężarem podręczników programowania w różnych językach, jednak większość nie ułatwia nauki podstaw, które są absolutnie niezbędne każdemu koderowi. Spośród licznych języków programowania C# jest wart szczególnej uwagi. To dojrzały język, wyjątkowo wszechstr...
Angular jest znakomitym frameworkiem wybieranym przez programistów, którym zależy na szybkiej, wydajnej i satysfakcjonującej pracy. Umożliwia sprawne tworzenie zarówno lekkich klientów internetowych, jak i w pełni funkcjonalnych aplikacji. Angular pozwala na wykorzystywanie TypeScriptu, który w porównaniu z JavaScriptem o wiele lepiej spisuje się jako język programowania profesjonalnych aplikacji internetowych. Ten framework zapewnia ...