Programista 4/2024 (114)
Programista 4/2024 (114)
Jest to pierwszy z serii artykułów, w których chciałbym wprowadzić czytelnika w podstawy działania „Internetu”. Zaczniemy od omówienia modelu OSI, opisując pobieżnie warstwę fizyczną połączeń w sieciach, adresów MAC oraz IP (w obecnym artykule), dojdziemy kolejno do bardziej szczegółowego opisu protokołu TCP, systemu DNS, a skończymy na witrynach internetowych oraz API korzystających z HTTP. Przy okazji poznamy program Wireshark do analizy ruchu sieciowego. Zaczynajmy!
Własna dystrybucja Linuxa zbudowana od podstaw – brzmi bardzo ambitnie. W końcu to, co potocznie rozumiemy przez „Linuxa”, to w rzeczywistości połączenie kilku różnych komponentów, takich jak np. kernel, główny system plików (rootfs), bootloader czy init system (np. systemd). W tym artykule poznamy narzędzie Buildroot oraz krok po kroku stworzymy funkcjonalny obraz systemu na platformę Raspberry Pi 4. Następnie dodamy dodatkowe programy i sprawimy, by WiFi łączyło się automatycznie po starcie systemu.
Artykuł przedstawia ogólne spojrzenie na kluczowe zagadnienia związane z konteneryzacją, orkiestracją oraz automatyzacją wdrażania aplikacji. Omawiam w nim, jak narzędzia takie jak Docker, Kubernetes, Helm i Terraform umożliwiają efektywne zarządzanie złożonymi środowiskami aplikacyjnymi, automatyzując procesy, które wcześniej wymagały znacznego nakładu pracy. Zastosowanie tych technologii pozwala na elastyczne skalowanie aplikacji, aktualizacje oraz utrzymanie wysokiej dostępności usług. Stanowi to fundament nowoczesnych praktyk DevOps, zwiększając efektywność i elastyczność procesów tworzenia oraz wdrażania oprogramowania.
W świecie technologii rządzą dane. To dzięki nim wszystko funkcjonuje w oczekiwany sposób, powodując, że życie staje się wygodne. Miejscem, gdzie wszystkie dane są pokazywane, jest świat frontendu, który jest uzbrojony w niezliczoną ilość różnorodnych widgetów, specjalnie zaprojektowanych, by w efektywny sposób te dane ukazywać. Zarządzanie tymi danymi wydaje się jedną z bardziej poplątanych rzeczy, ale czy na pewno? Specjalnie do tego został stworzony RTK Query od twórców Reduxa, który w mistrzowski sposób rozwiązuje ten problem.
Wydarzenia ostatnich lat drastycznie przyspieszyły przejście na pracę zdalną w branży IT. Wiele firm wprowadziło ten model współpracy, jednak niewiele z nich podeszło do tego w sposób uporządkowany i długoterminowy, tak aby w pełni wykorzystać obustronne korzyści płynące z tego rozwiązania. W tym artykule podzielę się radami, dzięki którym skutecznie uporządkujesz swoją pracę zdalną i osiągniesz w niej pełną efektywność.
Formularze są kluczowym elementem wielu aplikacji webowych, a Angular oferuje potężne narzędzia do ich tworzenia. Integracja niestandardowych web komponentów z formularzami może jednak okazać się wyzwaniem. W tym artykule przedstawimy Control Value Accessor(CVA), mechanizm Angulara, który ułatwia integrację web komponentów z formularzami.
Rysowanie diagramów architektonicznych (ang. architectural diagramming) jest kluczową częścią procesu rozwoju oprogramowania. Celem jest dostarczenie ogólnego obrazu systemu, wizualnej reprezentacji składników oprogramowania, ich różnych funkcji, implementacji i interakcji. Takie „obrazki” mają dać jasne zrozumienie struktury systemu, wspierać efektywną wymianę i udoskonalanie pomysłów, ułatwiać komunikację, planowanie, podejmowanie decyzji i wykonanie. W artykule zajrzymy w świat diagramów architektonicznych, eksplorując ich historię, typy, cele i znaczenie w inżynierii oprogramowania.
„Ignore all previous instructions” – te cztery słowa są kluczem otwierającym możliwości w wielu systemach AI. Często tylko tyle wystarczy, żeby przekonać LLM lub chatbota do wykonania naszych poleceń, niezależnie od celu przewidzianego przez twórców. Jakie konsekwencję za sobą niesie uzyskanie kontroli nad LLM? Czym jest Prompt Injection i jak się przed nim bronić? Na te pytania postaram się odpowiedzieć w tym artykule.
Przywykliśmy, że specjaliści od bezpieczeństwa rekomendują aktualizację wykorzystywanego oprogramowania jako jedną z żelaznych zasad utrzymania systemów. Sytuacji nie zmienia nawet fakt, że czasami przy instalacji poprawek, zawierających również łaty bezpieczeństwa, dochodzi do nieodwracalnych uszkodzeń systemu. Jest to na tyle rzadka (incydent klasy CrowdStrike nie zdarza się co tydzień) i łatwa w zapobieganiu sytuacja (np. poprzez canary deployment – testowe wgrywanie aktualizacji na specjalnie przygotowanym do tego celu systemie, aby wstrzymać wgrywanie aktualizacji w całej organizacji do czasu rozwiązania wykrytych problemów), że nie warto ryzykować pozostawiania niezaktualizowanego środowiska.
Dlaczego bardziej wierzymy swoim myślom niż rzeczywistości?
Większość moich sukcesów to przypadek. Swoją pozycję najwyraźniej osiągnąłem dzięki łutowi szczęścia. Inni ewidentnie mają lepsze kwalifikacje niż ja. Innym może się wydawać, że jestem bardziej kompetentna niż naprawdę jestem. Zrobiłem coś dobrze? Przestań. Przecież każdy to potrafi. Inni zrobili to znacznie lepiej. Mam się wypowiedzieć na jakiś temat? W pracy? Przed klientem? Absolutnie nie! Tylko się skompromituję. Awans? Nie no, co ty. Może za klika czy kilkanaście lat. Jeszcze się wszyscy dowiedzą, jak niewiele potrafię. Dzielenie się wiedzą? O czym niby miałbym mówić? Przecież to, co ja wiem, wiedzą wszyscy. Zdarza ci się myśleć i czuć w ten sposób? Możliwe, że masz do czynienia z syndromem oszusta.