REKLAMA

Programista 3/2023 (108) – lipiec/sierpień 2023 – Wywoływanie kodu natywnego w C++ z języka Ruby – SPIS TREŚCI

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.

BIBLIOTEKI I NARZĘDZIA

MySQL Shell plugin dla Visual Studio Code (>>fragment tego artykułu do pobrania<<)

Pracujesz jako programista backend lub baz danych? Korzystasz na co dzień z baz danych MySQL? Uważasz za niewygodne i nieefektywne ciągłe przełączanie się pomiędzy edytorem kodu a narzędziem do edycji bazy danych? Poznaj plugin MySQL Shell dla VS Code, który rozwiązuje ten problem, umożliwiając wygodną pracę z pełnym wsparciem dla uzupełniania składni SQL w jednym zintegrowanym środowisku.

Miłosz Bodzek

Jak AutoML zmienia sposób postrzegania uczenia maszynowego? (>>więcej o tym artykule<<)

Uczenie maszynowe to obszar sztucznej inteligencji dotyczący algorytmów dopasowujących swoje wewnętrzne parametry do danych. Duży w tym udział ma czysta matematyka, dzięki której powstają modele, które po procedurze trenowania osiągają wcześniej określony cel. Aby skutecznie korzystać z dobrodziejstw metod uczenia maszynowego, należy nie tylko być obeznanym z królową nauk, która kryje się u podstaw, ale także z programowaniem i algorytmiką. Od pewnego czasu na salony wkraczają narzędzia z rodziny AutoML, które umożliwiają stosowanie uczenia maszynowego w sposób automatyczny, także dla osób niezwiązanych z rozwojem sztucznej inteligencji. W tym artykule weźmiemy pod lupę dostępne rozwiązania AutoML i przyjrzymy się, jak z nich sprawnie korzystać

Tomasz Krzywicki

JĘZYKI PROGRAMOWANIA

Wywoływanie kodu natywnego w Ruby (>>więcej o tym artykule<<)

Ruby to wysokopoziomowy język programowania, który znany jest przede wszystkim z tego, że pozwala na tworzenie eleganckiego i zwięzłego kodu. Niemniej jednak nie jest on powszechnie uznawany za język o wysokiej wydajności. Dlatego też czasem może zaistnieć potrzeba przeniesienia części obliczeń do kodu natywnego, aby zwiększyć szybkość działania programu. W tym artykule opiszę kilka sposobów, które umożliwią osiągnięcie tego celu.

Paweł "Krzaq" Zakrzewski

PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH

Gdzie te dane? O zachowaniu spójności z Transactional Outbox Pattern

Czy tworzyliście system korzystający z komunikacji sieciowej i sprawdzaliście, jak zachowuje się podczas awarii? Może z niejasnych powodów w którymś serwisie brakowało danych związanych z waszym systemem? Takie problemy często wynikają z nieprzemyślanego podejścia do zachowania spójności w systemach rozproszonych. W artykule omówię jeden ze sposobów, jak zabezpieczyć się przed tym problemem.

Tomasz Kowalski

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE

GPU Audio – od teorii do praktyki

Procesory GPU (Graphics Processing Unit) są szeroko wykorzystywane w przetwarzaniu i generowaniu obrazów trójwymiarowych. Ich zalety mogą zostać także wykorzystane w dziedzinie audio, ale czy zawsze procesor GPU okaże się lepszym rozwiązaniem niż tradycyjnie wykorzystywany procesor DSP?

Wit Zieliński, Tomasz Twardowski, Marta Twardowska, Łukasz Pollak

ALGORYTMIKA

Krzywe Béziera (>>więcej o tym artykule<<)

Czas porozmawiać o genialnym w swojej prostocie matematycznym konstrukcie, obecnym bodaj w każdym obszarze informatyki związanym w jakikolwiek sposób z grafiką komputerową.

Wojciech Sura

INŻYNIERIA OPROGRAMOWANIA

Historia jednego refaktora

Refaktoryzacja jest jedną z umiejętności, bez których dobry programista po prostu nie może się obyć. Przekształcenie źle napisanego kodu na taki, który jest czytelny, modularny i łatwy w rozwoju, niesie ze sobą praktycznie same zalety. Refaktoryzacji najłatwiej jest jednak uczyć się na przykładzie, więc przyjrzymy się dziś, w jaki sposób został zrefaktoryzowany fragment mojego starego projektu.

Wojciech Sura

Z ARCHIWUM CVE

Deserializacja w PHP

Na niektóre błędy bezpieczeństwa natrafimy we frameworkach dostarczonych do danego języka. Innym razem podatności można znaleźć w samej aplikacji. Zdarza się również, że błąd znajduje się w implementacji interpretera języka. Dziś przyjrzymy się właśnie takiemu przypadkowi.

Mariusz Zaborski

We wstępie: ChatGPT okiem lingwisty

Mirosław Koziarski