Programista 4/2023 (109)
Programista 4/2023 (109)
GDB, czyli GNU Debugger [0], to potężne narzędzie do debugowania aplikacji. Pozwala ono na dynamiczną analizę kodu źródłowego i natywnego; procesów użytkownika, jak i jądra systemów. GDB jest jednak nieco „toporny”: niektóre z jego komend są niewygodne w użyciu, a tekstowy interfejs (TUI) mógłby wyświetlać więcej informacji. Sytuację tę poprawia tytułowe Pwndbg – plugin do GDB, z którym zapoznamy się w tym artykule.
„AI zastąpi programistów". „Sztuczna inteligencja zwolni programistów". Takie i podobne tytuły artykułów i wpisów blogowych mogliśmy przeczytać, gdy ChatGPT zyskiwał popularność i po raz pierwszy zobaczyliśmy jego możliwości w dziedzinie tworzenia kodu i stron internetowych. I choć obecnie głosy wyrażające podobne tezy są już trochę bardziej stonowane(w tytułach wpisów dodano słowo „Czy"), a także pojawiają się coraz głośniejsze opinie krytyczne, nadszedł czas na zmierzenie się z tematem pracy z takim asystentem AI. Czy faktycznie jest się czego obawiać?
W chwili pisania tego artykułu jest niemal pewne, że C++23 będzie czwartym wydaniem C++ z rzędu, które zostanie opublikowane bez opóźnień. Wedle przewidywań będzie to grudzień br. C++23 ma obecnie status feature freeze, co oznacza, że jego obecna wersja będzie zasadniczo tożsama z ostateczną. W tym artykule opiszę co ciekawsze nowości z nadchodzącego standardu.
Przed nami premiera Javy LTS 21, której stabilna wersja ukaże się 19 września br. Planowanych jest 15 nowych zmian, choć część z nich możemy już znać z poprzednich wersji. W tym artykule przyjrzyjmy się ośmiu najważniejszym moim zdaniem funkcjonalnościom.
Od ponad dekady Electronic Engineering Times publikuje „Embedded Market Study” [1] – prawdopodobnie największą i najbardziej miarodajną analizę rynku systemów wbudowanych. Od samego początku na pierwszym-drugim miejscu wśród używanych systemów operacyjnych jest FreeRTOS – twór praktycznie nieznany poza światkiem embedded. W tym artykule opiszę, czym jest FreeRTOS, jaką ma architekturę, jakie oferuje funkcjonalności i jak był rozwijany w ciągu 20 lat swojego istnienia.
Według ekspertów prężny rozwój sztucznej inteligencji, którego jesteśmy w ostatnich miesiącach świadkami, to technologiczny przełom, który już chyba na zawsze zmieni postrzeganie świata. Dlatego podążając za trendami, w poniższym artykule postaram się przybliżyć temat danocentrycznej sztucznej inteligencji (ang. Data-centric AI) – dziedziny nauki skupiającej się na ulepszanie danych, a nie modelu.
Monolit przez wiele osób utożsamiany jest z takimi określeniami, jak „nieuporządkowany”, „stary” czy „trudny w utrzymaniu”. Uważam, że jest to błędne myślenie, ponieważ powinien on być rozpatrywany w kategorii wdrożeniowej, jako pojedyncza jednostka wdrożeniowa. Nie ma on nic wspólnego z bałaganem w kodzie czy użytą technologią.
Nie ulega wątpliwości, że testowanie interakcji między usługami odgrywa kluczową rolę z perspektywy procesów biznesowych. Jak jednak upewnić się, że jesteśmy odporni na zmiany, które nie zależą od nas? W dynamicznie zmieniających się systemach, gdzie różne jego składowe są ciągle aktualizowane, ryzyko niezgodności staje się coraz większe. Właściwe strategie i narzędzia do testowania interakcji mogą stać się naszymi sprzymierzeńcami w dążeniu do ciągłości i niezawodności działania aplikacji.
Wymagania wobec wytwarzanego oprogramowania stale ewoluują. Objętość kodu źródłowego zaczyna wzrastać, a mnogość funkcji powoduje, że złożoność logiki, którą musi rozumieć programista, stale się powiększa. Do tego dochodzi komunikacja z usługami zewnętrznymi, takimi jak bazy danych czy też różnorodne API. Nie zawsze są to powszechnie dostępne funkcjonalności i mogą one wymagać od użytkownika uwierzytelnienia się przy pomocy różnego rodzaju poświadczeń. To z kolei zaczyna komplikować sytuację. Nieprawidłowe przechowywanie sekretów, które z definicji nie powinny być przecież jawne, prowadzić może do nadużyć, takich jak nieautoryzowany dostęp do systemów czy naruszenie poufności informacji.