Programista 2/2024 (112)
Programista 2/2024 (112)
Czy pisząc program w języku C++ miałeś/aś kiedyś dylemat, jakiej biblioteki użyć do formatowania tekstu? Czy spoglądałeś/aś zazdrośnie na inne języki programowania oferujące bardziej nowoczesne narzędzia służące do realizacji tego zadania? W niniejszym artykule znajdziesz opis mechanizmu std::format, który stanowi bardzo ciekawą alternatywę dla nieco przestarzałych, standardowych rozwiązań służących do formatowania tekstu w C++: biblioteki IOStreams oraz funkcji printf().
2/2024 (112)
Przez ponad 10 lat od chwili powstania język Go nie wspierał bezpośrednio paradygmatu programowania generycznego [1]. Nie powstrzymało to nikogo od pisania dobrego, produkcyjnego kodu i nie przeszkadzało w powstaniu takich użytecznych i powszechnie stosowanych narzędzi, jak (napisane w całości w Go) Docker, Kubernetes, Terraform, Vault, Consul, Podman, age czy SOPS. Generyki pojawiły się dopiero w wersji 1.18 języka i spotkały się z mieszanymi reakcjami społeczności – od „dlaczego tak późno?” do „dlaczego w ogóle?” Artykuł, skierowany do obecnych i przyszłych programistów Go, omawia, jak zrealizowano wsparcie dla generyków w tym języku, pokazując typowe przypadki użycia, problemy i pułapki, z którymi można się spotkać w codziennej praktyce developerskiej.
2/2024 (112)
Robienie dobrych code review to umiejętność, którą warto opanować. W artykule omówimy, jakie są zalety i wady tego procesu i w jakich projektach warto go stosować. Zastanowimy się, jakie podejście warto przyjąć, robiąc review kodu, w jaki sposób najlepiej to robić, na jakich aspektach kodu możemy się skupić i wreszcie – w jakiej formie pisać komentarze z naszymi uwagami do kodu, aby służyły one dla dobra projektu, a cały ten proces był okazją do owocnej komunikacji między członkami zespołu, a nie źródłem konfliktów.
2/2024 (112)
W dzisiejszych czasach coraz więcej entuzjastów elektroniki i programowania znajduje fascynujące wyzwanie w eksperymentowaniu z układami FPGA (Field-Programmable Gate Array). Choć początkowo kojarzone głównie z zastosowaniami przemysłowymi i projektami o dużym budżecie, FPGA stają się coraz bardziej dostępne również dla hobbystów. To niesamowite narzędzie, które otwiera przed nami nieograniczone wręcz możliwości tworzenia własnych układów cyfrowych. W tym artykule dowiemy się, dlaczego te programowalne układy są tak ekscytujące dla pasjonatów elektroniki i jak można zacząć z nimi przygodę.
2/2024 (112)
Jak pomóc osobie, która nie wie, czego szuka? Z pomocą przychodzi sztuczna inteligencja, która pozwala „czytać między wierszami i synonimami”. Na przykładzie chatbota MindMatch, pomagającego znaleźć odpowiedniego psychoterapeutę i styl terapii, pokazujemy, jak można wykorzystać AI do chatbotów pełniących rolę wyszukiwarek dla niepewnych swoich potrzeb użytkowników.
2/2024 (112)
Bezpieczeństwo firmy i niezakłócona płynność finansowa to fundamenty niezbędne do budowania jeszcze silniejszej pozycji na rynku. Czynniki te są wypadkową decyzji podejmowanych przez członków zarządu. Decyzji, które nie zawsze są efektem pogłębionej analizy.
2/2024 (112)
Mogłoby się wydawać, że przygotowanie danych do testów funkcjonalnych to banalna sprawa. Przecież jedyne, co musimy zrobić, to zasilić bazę danych odpowiednimi rekordami, prawda? W tym artykule opowiem o tym, dlaczego nie zawsze będzie to proste zadanie oraz jakie techniki pozwolą na zachowanie możliwie wysokiej spójności danych testowych.
2/2024 (112)
Popularne rozwiązania oparte na AI, takie jak ChatGPT czy Google Gemini (do niedawna Bard), bardzo zmieniły codzienną pracę programistów. Podczas procesu kodowania korzysta się z nich przy sprawdzaniu i poprawianiu błędów czy tworzeniu testów. Automatyzacja pracy przy użyciu AI zaostrzyła jednak apetyt na coraz bardziej zaawansowane sposoby jej wykorzystania. Projekt CodeAI, realizowany przez Capgemini Polska, pozwala wykorzystywać sztuczną inteligencję w bezpieczny i efektywny sposób.
2/2024 (112)
Tytuł artykułu może budzić zrozumiałe wątpliwości czytelnika. Po co emulować malware? Czy nie wystarczy, że uruchamia się on na naszych komputerach? W dodatku po co to właściwie robić? I co można w ten sposób uzyskać? W tym artykule skoncentrujemy się na odpowiedziach na te pytania, a także zarysujemy szkic systemu, który będzie w stanie automatyzować te działania w większej skali.
2/2024 (112)
Prawdopodobnie spotkaliście się z wyciekiem danych lub włamaniem do systemu komputerowego. Być może nie zdarzyło się to bezpośrednio w projektach, nad którymi pracujecie, ale chociażby w jednej ze znanych wam firm. Jeśli nie macie najmniejszego pojęcia o tym, w jaki sposób dochodzi do tego rodzaju wycieków, ten artykuł jest zdecydowanie dla was! Dowiecie się w nim na konkretnych przykładach, w jaki sposób pisać programy, aby nie otwierać niepotrzebnie furtek do ataku na waszą aplikację. Zacznijmy od tego, co moim zdaniem jest najważniejsze podczas pisania aplikacji, czyli…
2/2024 (112)
W serii „Z archiwum CVE” prezentujemy ciekawe, a czasami wręcz legendarne podatności i tłumaczymy, w jaki sposób atakujący może wykorzystać niedopatrzenia i błędy w oprogramowaniu lub konfiguracji, aby osiągnąć niezamierzony przez autora stan wyjściowy programu lub całego systemu. Do tej pory królowały głównie podatności występujące w systemach z rodziny GNU/Linux oraz Unix. Często były to błędy z dość długą historią. W ostatnim numerze omówiony został przykład innego, sławnego edytora – VIM Tym razem postaram się przybliżyć czytelnikowi podatność skatalogowaną pod numerem CVE-2024-20656, która została naprawiona przez Microsoft na początku roku 2024. Umożliwia ona podniesienie uprawnień użytkownika do NT AUTHORITY\SYSTEM poprzez wykorzystanie jednej z usług pomocniczych w środowisku developerskim Microsoft Visual Studio.
2/2024 (112)