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
Dialogflow
Wprowadzenie do budowania inteligentnych chatbotów
Sztuczna inteligencja, chmury obliczeniowe oraz rozpoznawanie ludzkiej mowy to jedne z najgorętszych tematów ostatnich lat. Najwięksi gracze z sektora IT nieustannie próbują nam dostarczyć coraz to nowszych osobistych asystentów (Alexa, Siri czy też Cortana). Czy rozwiązania tego typu rzeczywiście są zarezerwowane tylko dla gigantów? Czy może jednak mniejsze zespoły również mogą zaoferować swoim klientom własnego wirtualnego doradcę? Stworzenie własnego chatbota może być łatwiejsze niż się wydaje.
Kamil Jędrkiewicz
JĘZYKI PROGRAMOWANIA
Wspieranie asynchroniczności w języku Python (>>więcej o tym artykule<<)
Asynchroniczne programowanie w ostatnich latach jest coraz bardziej popularne. Zmiany w języku, które były sukcesywnie wprowadzane, spowodowały, że pisanie kodu asynchronicznego jest teraz prostsze niż kiedykolwiek wcześniej. W tym artykule postaram się wyjaśnić, czym jest asynchroniczność, kiedy warto z niej skorzystać oraz jak jej użyć w języku Python.
Mateusz Kuziemko
Ranges w C++ 20 (>>więcej o tym artykule<<)
10 listopada 2018 roku w San Diego (California, USA) zakończyło się największe posiedzenie komisji standaryzacyjnej C++ w jej 29-letniej historii. Uczestniczyło w nim 180 osób z 12 krajów. Poza rekordową frekwencją znaczącym osiągnięciem było zakończone sukcesem głosowanie w sprawie dodania do standardu biblioteki zakresów – ranges (a konkretniej: Ranges TS).
Paweł "KrzaQ" Zakrzewski
PROGRAMOWANIE URZĄDZEŃ MOBILNYCH
NativeScript
Tworzenie natywnych aplikacji mobilnych z wykorzystaniem NativeScript
Aktualne trendy wytwarzania aplikacji wskazują architekturę opartą o REST API jako lek na całe zło branży IT. Coraz częściej potrzebą biznesową jest posiadanie oprócz strony WWW również aplikacji mobilnej, a przy tym firmy szukają oszczędności w postaci aplikacji wieloplatformowych, w ten sposób redukując koszty. Jak wyjść naprzeciw potrzebom klientów i wykorzystać w pełni potencjał dostępnych technologii oraz architektury? Odpowiedzią są biblioteki, które pozwalają pisać z wykorzystaniem jednego języka, a aplikacja kompiluje się na różne środowiska docelowe. Jednym z takich rozwiązań jest NativeScript, pozwalający pisać w pełni natywne aplikacje z wykorzystaniem TypeScript oraz takich frameworków jak Angular czy Vue.
Michał Dwornicki
PROGRAMOWANIE URZĄDZEŃ OSADZONYCH
EtherCAT – deterministyczny Ethernet (>>więcej o tym artykule<<)
EtherCAT nie pochodzi od angielskiej nazwy bardzo popularnego w sieci stworzenia, czyli kota domowego (łac. felis catus), ale jest rozwinięciem angielskiego skrótu Ethernet for Control Automation Technology, co można przetłumaczyć jako „Ethernet dla technologii sterowania i automatyzacji”. Jest to sprytna modyfikacja protokołu Ethernet dostosowująca go do potrzeb sieci przemysłowych. Chciałbym przedstawić kilka eksperymentów, które pozwolą czytelnikom zapoznać się z podstawowymi zasadami jego działania.
Rafał Kozik
Techniki czystego kodu dla programistów systemów wbudowanych
Przyjęło się, że techniki „czystego kodu” ilustruje się przykładami z języków Java, C# lub pseudokodu nawiązującego do najmodniejszych języków. Jeśli więc jesteś programistą embedded C, wiele koncepcji będzie nieadekwatnych w Twoim środowisku pracy. W tym artykule znajdziesz interpretację technik „czystego kodu” dostosowanych do specyficznych wymagań programistów systemów wbudowanych.
Michał Bartyzel
ALGORYTMIKA
Wybrane algorytmy i struktury danych. Część 3
Wraz z poprzednią częścią artykułu zakończyliśmy rozważania o strukturach będących wariacjami na temat tablic oraz list. Tym razem skupimy się na takiej strukturze danych, która w wygodny sposób pozwala na przechowywanie danych ze swojej natury hierarchicznych, czyli na drzewie.
Wojciech Sura
INŻYNIERIA OPROGRAMOWANIA
Zastosowanie podejścia Consumer-Driven Contracts w architekturze mikroserwisów
Architektura oparta na mikroserwisach jest aktualnie bardzo popularna i z pewnością oferuje liczne korzyści. Jednak jej zalety idą w parze z szeregiem wyzwań. Ewolucja istniejących oraz implementacja kolejnych mikroserwisów sprawia, że testowanie integracji i utrzymywanie kontraktów pomiędzy nimi staje się wyzwaniem. Jeżeli odbywa się to w projekcie, który ma wiele ścieżek rozwoju i wiele zespołów pracujących jednocześnie nad rozwojem usług, to wydawać by się mogło, że mamy gotowy przepis na porażkę. Czy jednak na pewno tak musi być?
Łukasz Parczewski
KLUB LIDERA IT
Gra o motywację zespołu
Zupełnie naturalne jest to, że członkowie zespołu bywają zmotywowani w różnym stopniu. Jako Agile Coachowie czy Scrum Masterzy często pracujemy z każdym z nich indywidualnie, próbując dociec, czego jeszcze brakuje w naszej firmie lub projekcie, by motywacja członków zespołu była optymalna. Co w sytuacji, gdy cały zespół sygnalizuje, że ma z nią problem? Jak zabrać się za poprawę motywacji całego zespołu, skoro składa się on z różnych osobowości?
Katarzyna Suska
KLUB DOBREJ KSIĄŻKI
C++17 STL. Receptury
Rafał Kocisz