REKLAMA

Programista 7/2020 (94) – grudzień / styczeń 2020/21 – Moc kompilatorów – 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

GUI dla mikrokontrolerów (>>więcej o tym artykule<<)

Na przestrzeni ostatniego dziesięciolecia prawie wszystkie platformy oferujące możliwość projektowania aplikacji z graficznym interfejsem użytkownika rozpieściły nas, programistów, do granic możliwości. Niezależnie od tego, czy piszemy aplikację desktopową, webową czy mobilną, możemy przebierać w różnych frameworkach, które dostarczają bogate zestawy gotowych kontrolek i w wielu przypadkach dają nam prawie nieograniczone możliwości w zakresie ich stylowania. Istnieją jednak środowiska, w których sytuacja nie wygląda wcale tak różowo.

Wojciech Sura

Optymalizacje na wyciągnięcie ręki (>>więcej o tym artykule<<)

Kompilatory już dawno przestały być jedynie translatorami kodu źródłowego na kod maszynowy. Obecnie oferują programiście coraz bardziej wyrafinowane możliwości analizy i optymalizacji. Warto z nich skorzystać, zanim przystąpi się do żmudnego i podatnego na błędy, ręcznego usprawniania napisanego wcześniej kodu.

Dominik Adamski

MPC – mikro-parser na kombinatorach

W serwisach dla programistów z projektami open source można odszukać m.in nieco mniej popularne biblioteki i aplikacje, lecz nadal bardzo wartościowe i przydatne w codziennej pracy. Jednym z takich pakietów jest MPC (Micro Parser Combinators) autorstwa Daniela Holdena, opublikowany na bardzo liberalnej licencji BSD. Pakiet MPC dostarcza nam narzędzia pomagające w tworzeniu m.in. analizatorów wyrażeń tekstowych, tj. stanowi on odpowiednik (również darmowych) programów flex oraz bison. Są jednak pewne różnice, po pierwsze jest to stosunkowo niewielki pakiet – kod źródłowy to zaledwie dwa pliki: mpc.c oraz mpc.h (od razu rzuca się w oczy, że jest to narzędzie napisane w języku C). Również sposób implementacji jest diametralnie odmienny od wspomnianych wyżej flexa i bisona.

Marek Sawerwain

JĘZYKI PROGRAMOWANIA

Nowości w C# 9.0

Microsoft ujawnił informacje o nowej wersji języka C#, która oficjalnie pojawiła się pod koniec listopada br. C# 9.0 będzie domyślnym językiem platformy .NET 5, która jest kolejną wersją dobrze przyjętego .NET Core. Usunięto z nazwy „Core”, aby zaznaczyć, że będzie to nowa sztandarowa wersja platformy .NET, zastępująca .NET Framework 4.8. Mylące może być, że zachowano ciągłość numeracji z .NET Framework, a nie .NET Core. Największą zmianą w C# 9.0 są oczywiście rekordy, czyli nowy metatyp wprowadzony do C#. Rekord to typ referencyjny, jednak z metodą Equals – zaimplementowaną jak w typach wartościowych, tzn. porównującą stan obiektów.

Jacek Matulewski

PROGRAMOWANIE APLIKACJI WEBOWYCH

RxJS, iterator, observable – co się dzieje pod maską?

RxJS definiuje niezwykle stroma krzywa uczenia się – mnóstwo operatorów, implementacja wzorców iteratora i obserwatora, zastosowanie reguł programowania funkcyjnego czy skomplikowane testowanie, co paradoksalnie daje obraz wszechstronnego i niezwykle uniwersalnego narzędzia, wymagającego zaledwie drobnej zmiany myślenia, by aplikacje weszły na wyższy poziom. Aby ułatwić to zadanie, w artykule przybliżono bibliotekę RxJS, kilka z jej metod, a także trzy operatory – concatMap, mergeAll oraz switchLatest.

Przemysław Pędziwiatr

PROGRAMOWANIE GRAFIKI

Rozpoznawanie gestów za pomocą kontrolera Kinect (>>więcej o tym artykule<<)

Gesty są nieodzownym elementem naszej codzienności. Używamy oraz spotykamy je wszędzie – nie tylko podczas interakcji z innymi ludźmi. Słynny „lajk” na znanym portalu społecznościowym od razu mówi nam, że komuś podobają się nasze treści. Jeśli zobaczymy natomiast policjanta z wystawioną dłonią w naszym kierunku, to od razu wiemy, że musimy się zatrzymać. Skoro tak często korzystamy z takiego środka komunikacji, to dlaczego by nie wykorzystać go do komunikacji z maszyną, jak zostało to zrobione z mową oraz prostymi ruchami ręki? Spróbujmy więc w domowym zaciszu nauczyć maszynę lepiej komunikować się z człowiekiem.

Michał Krawczyk

LABORATORIUM EVORUM

Kluczowe działania w projektach opartych o sztuczną inteligencję

W procesie wytwarzania oprogramowania opartego o sztuczną inteligencję (AI) bardzo istotny jest etap przetwarzania danych. W końcu to w oparciu o ich analizę budujemy modele
złożone z algorytmów sztucznej inteligencji. Metody korelacji, posługiwanie się wykresami i wykonanie inżynierii cech to niezwykle ważne kroki w pracy badawczej. Należy również pamiętać o skalowaniu danych i augmentacji danych. W tym artykule zawarte są również m.in wskazówki przy stosowaniu biblioteki Tensorflow 2.3.1.

Piotr Woldan, Jakub Romanowski

PLANETA IT

Alternatywne mobilne systemy operacyjne

Dzisiejszy świat mobilnych systemów operacyjnych można określić mianem duopolu. Zdominowany przez stworzonego w firmie Google Androida i pochodzącego z Apple iOSa, wydaje
się być miejscem, w którym nie ma przestrzeni na nic więcej. Sprawy jednak nie zawsze wyglądały w ten sposób, a dociekliwi użytkownicy mogą przekonać się, że także obecnie w cieniu gigantów wykluwają się alternatywne rozwiązania. Zanim jednak do nich przejdziemy, poświęćmy chwilę, aby sięgnąć w odmęty historii.

Marcin Ławicki

KLUB LIDERA IT

Słowniczek Machine Learning

Machine Learning jest ostatnio bardzo gorącym tematem. Coraz więcej firm i osób zaczyna interesować się tą dziedziną. Początki nie są łatwe, przede wszystkim dlatego, że uczenie
maszynowe wprowadza swoje własne nazewnictwo. W tym artykule poznasz wszystkie najważniejsze pojęcia, dzięki czemu będziesz mógł/mogła samodzielnie zgłębiać temat dalej, a tutoriale, dokumentacja i teksty naukowe nie będą ci już straszne.

Krzysztof Mędrela