Programista 5/2025 (120)
Programista 5/2025 (120)
W tym artykule zaprojektujemy własny format pliku, który pozwala spakować i skompresować wiele plików do jednego archiwum, podobnie jak format ZIP czy 7Z. Używając języka C++ i środowiska Visual Studio pod Windows, napiszemy następnie wtyczkę do managera plików Total Commander, który pozwoli na tworzenie i manipulowanie takim archiwum, w tym swobodne dodawanie i usuwanie plików w jego wnętrzu.
5/2025 (120)
Charakterystyka rozwiązania NVIDIA NeMo Guardrails
Duże modele językowe zaskakują swoimi zdolnościami konwersacyjnymi i coraz częściej stają się integralną częścią systemów sztucznej inteligencji. Jednak wraz z ich rosnącą popularnością pojawia się pytanie: jak nad nimi zapanować? Modele te potrafią generować fałszywe informacje, a użytkownicy nierzadko ufają im bezkrytycznie. W niniejszym artykule przedstawiamy jedno z narzędzi, które pozwala skutecznie kontrolować ich działanie – NVIDIA NeMo Guardrails.
5/2025 (120)
Ostatnia część tego cyklu skupia się na dwóch aspektach aplikacji samochodowych: dostępie do informacji o pojeździe oraz sterowaniu głosowym. Mimo podkreślania, jak ważne w projektowaniu tego typu aplikacji jest uwzględnienie sterowania głosowego, biblioteka Car App nie ma gotowego rozwiązania. Stąd propozycja implementacji tej funkcjonalności, korzystająca ze standardowej biblioteki Androida i funkcji nagrywania dźwięku z mikrofonu pojazdu.
5/2025 (120)
Czyli piszemy programy na zegarki firmy Garmin
Miniaturyzacja komputerów jest procesem, który postępuje nieubłaganie od momentu powstania pierwszych cyfrowych maszyn. Te mechaniczne monstra, pierwotnie zajmujące jedno lub nawet kilka pomieszczeń, najpierw zmalały do poziomu pudełka, które można było ustawić na biurku, a potem udało się przekształcić je w zgrabne urządzenie, które można było swobodnie przenosić. Niedługo potem w pełni funkcjonalny komputer zamknięto w urządzeniu mieszczącym się w kieszeni, by wreszcie procesor, płyta główna, pamięć oraz układ graficzny i dźwiękowy zmalały do tego stopnia, że zmieściły się nawet w zegarku.
5/2025 (120)
Testowanie systemów wbudowanych różni się znacząco od testowania „tradycyjnego” oprogramowania. Weryfikacja funkcjonalności i niezawodności urządzenia o ograniczonych zasobach, działającego w realnych, często ekstremalnych warunkach stanowi dla programistów i testerów unikalne wyzwanie. W niniejszym artykule przyjrzymy się kluczowym problemom wynikającym z ograniczeń sprzętowych, możliwości debugowania, wymagań czasu rzeczywistego, złożoności integracji różnorodnych komponentów sprzętowych i programowych, współzależności między hardware i software oraz technikom stosowanym, by radzić sobie z tymi trudnościami.
5/2025 (120)
O tym, że historia pisze się na naszych oczach, chyba nie trzeba nikogo przekonywać. Również ta „teleinformatyczna”, a w szczególności z zakresu cyberbezpieczeństwa. Bezpardonowe ataki APT na dużą skalę, podatności, które mogą dotknąć wielu systemów naraz (jak chociażby najświeższe podatności określone mianem ToolShell w SharePoint), i dostawcy, którzy usiłują nadążyć z wydawaniem łatek. Są takie elementy infrastruktury IT lub systemów operacyjnych, które rzutują w stopniu znacznym na bezpieczeństwo całego systemu. Jednym z nich jest program sudo (czytane su-du), który wykorzystywany jest w systemach z rodziny GNU/Linux, Unix czy macOS. Dzisiaj przyjrzymy się dwóm nowym, można powiedzieć „historycznym” (ze względu na skutki), podatnościom dotykającym sudo, które zostały określone identyfiakatorami CVE-2025-32462/CVE-2025-32463.
5/2025 (120)
Minikomputer K-202 był pionierską konstrukcją, zwłaszcza biorąc pod uwagę realia PRL-u, w którym powstawał, oraz burzliwe czasy komputeryzacji tuż przed wprowadzeniem pierwszych mikroprocesorów. Pod wieloma względami był konstrukcją udaną, lecz jednocześnie zbyt ambitną, wymagającą zbyt wiele od mało dynamicznej, centralnie sterowanej gospodarki państwowej. Jego następca, MERA-400, był już znacznie lepiej dostosowany do istniejących realiów. Czerpiąc garściami z doświadczeń projektu K-202, stanowił jego twórcze rozwinięcie, pozbawione większości błędów poprzednika. Miał przy tym ulepszoną i jednocześnie zoptymalizowaną architekturę.
5/2025 (120)