Programista 2/2019 (81)
Programista 2/2019 (81)
Część 2 – implementacja
W poprzednim numerze opisałem podstawowe dostosowanie środowiska developerskiego oraz wymaganą konfigurację, która umożliwi dodanie wsparcia dla nowej architektury. W drugiej części artykułu przyjrzymy się praktycznej implementacji przykładowej architektury GynVM jako wtyczki projektu radare2. Kod zaprezentowany w niniejszym artykule znajduje się w repozytorium Github [1].
„Nie można załadować modułu XYZ.DLL lub jego zależności” – to błąd, który może doprowadzić człowieka do szału. Wszystko wydaje się być na swoim miejscu, nieszczęsny XYZ.DLL ewidentnie znajduje się w katalogu aplikacji, a jednak system protestuje. Za chwilę dowiemy się, z czego wynika ten błąd, w jakich sytuacjach może się pojawić, jak diagnozować jego przyczyny i w jaki sposób można go naprawić.
Vuforia to platforma rzeczywistości rozszerzonej (AR), która umożliwia szybkie uzupełnianie aplikacji AR o tak zwane doświadczenia AR. W praktyce oznacza to, że Vuforia udostępnia silnik wizji komputerowej, który rozpoznaje i śledzi wybrane obiekty (cele, ang. targets) w obrazie z kamery. Odnalezione cele mogą być następnie uzupełnione o elementy cyfrowe, które podążają za celami śledzenia. Dzięki temu Vuforia ułatwia szybkie tworzenie aplikacji AR.
Prototypowanie języków programowania
Projektowanie nowych języków programowania nie jest zadaniem łatwym. Można też od razu zadać pytanie, czy jest potrzebne, skoro obecnie ich liczbę szacuje się na ponad 10 tyś. Odpowiedź nie jest jednoznaczna, zawsze jednak warto mieć pod ręką nowe narzędzia do tworzenia prototypów, bo w dziedzinie języków programowania, jak się wydaje np. w obszarze języków programowania równoległego, nadal można rozważać kreowanie nowych idei. Tworzenie prototypu języka programowania to trudne przedsięwzięcie, zatem rozwiązania wspomagające to zadanie stanowią duże ułatwienie.
Pod koniec lutego 2019 roku, w dystrykcie Kona na Hawajach, odbyło się kolejne posiedzenie komisji standaryzacyjnej C++. Do robiącej już wrażenie listy nowości takich jak koncepty, kontrakty czy zakresy (ang. ranges) dodano kolejne: od dawna wyczekiwane moduły oraz korutyny (ang. coroutines). Już samo to wystarczy, aby uznać C++20 za rewolucję na miarę C++11, a to tylko niektóre ze zmian, które nas czekają.
Najnowszy standard języka C++ to C++17 opublikowany w grudniu 2017 roku. Wkrótce możemy spodziewać się kolejnego wydania standardu tego języka – C++ 20, w którym mają pojawić się między innymi korutyny, moduły oraz koncepty. Są to trzy zupełnie nowe funkcjonalności. W tym artykule uwagę skoncentrujemy na korutynach i opowiemy sobie o tym, dlaczego ich potrzebujemy oraz jak je implementować.
Pamięć typu NAND flash jest obecnie szeroko stosowana w sprzęcie elektronicznym. Można ją znaleźć w przenośnych kartach pamięci MMC, pamięci USB, dyskach SSD, jak również w telefonach komórkowych, laptopach i komputerach klasy PC. Jak jest zbudowana i jakie mechanizmy są stosowane, aby zapewnić jej efektywne i niezawodne działanie? Odpowiedź na to pytanie można znaleźć w poniższym artykule.
Choć pierwsze informacje dotyczące Web Components pojawiły się kilka lat temu, to dopiero od niedawna zaczęło się robić o nich naprawdę głośno. Zaczęły być brakującym puzzlem w układance technologii frontend. Dzięki nim możemy zdefiniować własny tag HTML oraz określić, jak ma wyglądać i jak się zachowywać, a następnie używać wszędzie, gdzie tylko chcemy, niezależnie od frameworka, w którym aktualnie piszemy aplikację. Web Components pozwalają również na osadzenie funkcjonalności, napisanej w nowoczesnej technologii (np. Angular) na stronach, które są napisane w starszych technologiach. Czym są i jakie problemy rozwiązują? Odpowiedź w artykule.
Czy chcemy, by obecne aplikacje webowe mogły działać szybciej bez ponoszenia nakładów na lepsze łącza sieciowe czy infrastrukturę serwerową? Oczywiście, że tak – i taki właśnie główny cel przyświecał twórcom protokołu HTTP/2 (https://tools.ietf.org/html/rfc7540).