Programista 1/2021 (95)
Programista 1/2021 (95)
Kiedyś ktoś nieco przekornie stwierdził, że lenistwo jest motorem wszelkiego postępu. Oczywiście jest w tym stwierdzeniu sporo przesady, ale też można w nim znaleźć ziarno prawdy. Otóż istnieje pewna kategoria lenistwa, którą ja nazywam „lenistwem pragmatycznym”. Podstawową zasadą pragmatycznego lenia jest słynna reguła DRY (skrót od angielskich słów „don’t repeat yourself”, czyli: „nie powtarzaj się”). I tutaj należy uczciwie przyznać: ten rodzaj lenistwa często prowadzi do zwiększenia efektywności pracy i do powstawania ciekawych rozwiązań. Dziś chciałbym zaprezentować czytelnikowi Dear ImGui: bibliotekę służącą do tworzenia interfejsów użytkownika, która powstała w duchu tak właśnie postrzeganego lenistwa. Jeśli chcesz się przekonać, co z tego wynikło, to zapraszam do lektury!
Co sprawia, że jesteś zainteresowany ofertą pracy? Czy wystarczą elastyczne godziny pracy, prywatna opieka medyczna w pakiecie premium lub słynne owocowe czwartki, by dana propozycja wydawała się warta uwagi? A może decydują perspektywy zawodowe i wizja realnego udziału w tworzeniu rozwiązań, które rewolucjonizują świat?
Instrumentacja dynamiczna procesów jest zbiorem technik i narzędzi służących do analizy zachowania programów wykonujących się w określonym środowisku. Narzędziem, któremu przyjrzymy się bliżej w tym artykule, jest debugger. Wiedza na temat podstaw jego działania pozwoli czytelnikowi na lepsze zrozumienie pewnych zależności, które z pewnością umożliwią w pełni wykorzystanie jego potencjału. Wykorzystując m.in. narzędzie ptrace, przyjrzymy się budowie debuggera działającego w środowisku linuksowym pod architekturą x86_64.
Aplikacje tworzone dla systemu Ubuntu Touch można podzielić na dwa rodzaje – webowe i natywne. Pierwsze to strony internetowe renderowane przy pomocy webview Oxide uruchamianego wewnątrz kontenera aplikacji internetowych. Drugie to aplikacje zdolne do pełnego wykorzystania zasobów i możliwości urządzenia, tworzone przy pomocy Qt QML w połączeniu z innymi językami programowania, np. C++, JavaScript czy Python. W poniższym tekście skupimy się na aplikacjach natywnych budowanych za pomocą QML i C++.
BPF to technologia, która pozwala na uruchamianie niewielkich programów w odpowiedzi na zdarzenia, na przykład szeroko pojęte operacje wejścia/wyjścia (I/O), nieustannie zachodzące podczas pracy systemu operacyjnego. To coś przypominającego JavaScript, znany osobom zajmującym się programowaniem aplikacji webowych, aczkolwiek to daleko idące uproszczenie.
Sztuczna inteligencja jest obszerną dziedziną, w której sieci neuronowe odgrywają niezwykle istotną rolę. Wiedza na temat ich podstaw pozwoli inaczej spojrzeć na rozwiązanie dotychczas nierozwiązywalnych problemów. W tym artykule przedstawione zostaną również wybrane struktury głębokiego uczenia (ang. deep learning) – dziedziny, która zrewolucjonizowała obszar sieci neuronowych. Deep learning otwiera się na wykorzystanie nowych możliwości inteligentnego przetwarzania danych w sposób równoległy.
Podpis pieczętuje umowę czy ustalenie. Kojarzy się z rytuałem, ceremonią. Równocześnie jest zobowiązaniem, którego niedopełnienie może wiązać się z konsekwencjami. Moment podpisu jest ważny, gdyż niesie znaczenie. Dlatego też zaprojektowanie elektronicznej wersji jest tak dużym wyzwaniem. Czy w ogóle jest możliwe odwzorowanie tradycyjnego podpisu w wersji cyfrowej? A może zupełnie nie tędy droga i e-podpis powinien być czymś innym, nowym? Dołóżmy do tego kwestie bezpieczeństwa i mamy interesujący temat!
Układy FPGA zyskują coraz większą popularność. W poniższym artykule zapoznamy się z ich wewnętrzną budową, a także zastanowimy, do jakich zastosowań mogą być przydatne. Ponadto przyjrzymy się przykładowemu urządzeniu, w których układy te zostały wykorzystane.