REKLAMA

Programista 9/2018 (76) – listopad/grudzień – Linux i sensory – 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

OpenCV. Śledzenie obiektów z wykorzystaniem dopasowania szablonów (>>więcej o tym artykule<<)

Rozpoznawanie i śledzenie obiektów jest jednym z podstawowych problemów w wizji komputerowej. Śledzenie obiektów umożliwia bowiem estymację prędkości ruchu obserwowanych obiektów, co znajduje zastosowania w wielu systemach, takich jak instrumenty pomiarowe, diagnostyczne urządzenia medyczne, drony czy samochody autonomiczne. W tym artykule pokażę, w jaki sposób zaimplementować śledzenie obiektów z wykorzystaniem dopasowywania szablonów w celu śledzenia wybranego fragmentu obrazu w sekwencji wideo z kamery internetowej. Wykorzystam przy tym bibliotekę OpenCV oraz język Python.

Dawid Borycki

Czym różni się User Flow od User Journey Map?

W świecie projektowania produktu cyfrowego metody User Flow oraz User Journey Map są wymiennie stosowane w trakcie jego tworzenia. Obydwa narzędzia pozwalają na stworzenie usług skoncentrowanych na potrzebach odbiorców, którzy mają różne oczekiwania, doświadczenia oraz sposoby korzystania z usług cyfrowych. Należy pamiętać jednak, że User Flow i User Journey Map różnią się od siebie na wiele sposobów.

Karolina Płaskowicka

JĘZYKI PROGRAMOWANIA

Przypadki użycia std::make_unique

Szablon funkcji std::make_unique jest sztandarową metodą tworzenia obiektów typu std::unique_ptr. Niektórzy posuwają się nawet do kategorycznego stwierdzenia: „jeśli tworzysz std::unique_ptr za pomocą innego sposobu niż std::make_unique, to robisz coś źle”. Autor tego artykułu nie zgadza się z tak rygorystycznym podejściem i postara się przedstawić przypadki, w których uzasadnione jest zastosowanie innych metod tworzenia obiektów std::unique_ptr.

Paweł "KrzaQ" Zakrzewski

PROGRAMOWANIE SYSTEMOWE

Linux i sensory (>>więcej o tym artykule<<)

Sensory czynników środowiskowych, kiedyś drogie i używane tylko w urządzeniach dedykowanych do specjalistycznych zastosowań, obecnie stają się integralną częścią elektronicznych urządzeń konsumenckich. Niska cena, zaskakująco dobre parametry oraz niewielkie rozmiary to główne czynniki decydujące o ich popularności. Nie powinno zatem nikogo zaskakiwać, że Linux w krótkim czasie zaczyna oferować dla nich wsparcie w postaci dedykowanego podsystemu IIO (ang. Industrial Input/Output).

Tomasz Duszyński

PROGRAMOWANIE GRAFIKI

Mały rysownik grafiki trójwymiarowej

W przepastnych zasobach sieci Internet odnajdziemy wiele różnych projektów. Od dużych po małe. I właśnie jednym z tych drugich chcemy się dziś
zająć. Jest nim projekt TinyRenderer, którego autorem jest Dmitry V. Sokolov. A jest to przykładowa implementacja algorytmu tworzącego grafikę 3D, podobnego do stosowanego we współczesnych kartach graficznych. Można oczekiwać, iż implementacja algorytmu tworzącego grafikę 3D wymagać będzie wielu linii kodu, ale, co może zaskoczyć, wspomniany projekt to łącznie tylko około 500 linii kodu w C++. My jednak zrobimy, wzorując się na TinyRenderer, nowy port do języka C i choć potrzebna będzie nam większa liczbą linii, to i tak główna pętla tworząca grafikę będzie zawierać znacznie mniej niż wspomniane 500.

Marek Sawerwain

ALGORYTMIKA

Wybrane algorytmy i struktury danych (>>więcej o tym artykule<<)

Czas procesora i pamięć w przeciągu ostatnich lat stały się zasobami tak tanimi, że często bardziej opłacalne jest skorzystanie z rozwiązania nieoptymalnego, ale łatwego w użyciu, niż poświęcenie czasu na projektowanie wydajnych algorytmów i staranne dobieranie struktur danych. Kod taki oczywiście działa wolniej, ale faktyczne straty czasowe są przeważnie tak małe, że często praktycznie pomijalne. Weźmy choćby narzędzia ORM: radykalnie upraszczają wykonywanie zapytań do bazy danych, ale za cenę produkowania nieczytelnych i często bardzo nieoptymalnych zapytań. W nadchodzącej serii artykułów chciałbym wrócić trochę do korzeni i przypomnieć czytelnikom wady i zalety stosowania różnych struktur danych oraz ogólnie znane, operujące na nich algorytmy. Artykuły z założenia przeznaczone są dla programistów u początku swojej kariery, ale być może i bardziej zaawansowani też znajdą tu coś dla siebie.

Wojciech Sura

ZARZĄDZANIE PROJEKTAMI

Onboarding, czyli rzecz o pączkowaniu

W dynamicznym środowisku pracy w branży IT zespoły tworzące oprogramowanie muszą często mierzyć się z wyzwaniem, jakim jest wdrażanie nowych osób do codziennej pracy tak, aby jak najszybciej stanowiły wartość dodaną dla zespołu. Prawidłowo przebiegający proces wdrażania jest równie ważny dla samopoczucia nowoprzyjętej osoby oraz jej planów związania się z firmą na dłużej. Problem zagubienia w nowym środowisku dotyczy zarówno studentów podejmujących pierwszą pracę, jak i doświadczonych osób zmieniających firmę lub stanowisko. Proces wdrażania musi być dobrze zaplanowany i przeprowadzony, aby nowego pracownika nie pozostawić na dłuższy czas bez obowiązków, ani też nimi nie przytłoczyć. Celem zatrudniania pracownika powinno być zwiększenie produktywności i jakości pracy zespołu w możliwie jak najkrótszym czasie. Realizacja tego celu możliwa jest dzięki dobrze przeprowadzonemu procesowi onboardingu.

Paweł Miry

LABORATORIUM TEINA

Eye tracking, czyli ciekawy pomysł na badania UX

Podczas testów użyteczności warto wziąć pod uwagę eye tracker. Jest to rozwiązanie dla tych badaczy, którzy chcą pogłębić wiedzę o zachowaniach użytkowników w kontekście użycia danego produktu.

Katarzyna Małecka

STREFA CTF

Hackover CTF 2018 – holy graal, STBM

Hackover CTF został zorganizowany przez lokalny oddział Chaos Computer Club i odbywał się w trakcie konferencji Hackover w Hamburgu. Zadania nie są już niestety dostępne, jednak kopie plików można pobrać z bloga autora pod adresem https://d0vine.github.io/.

Krzysztof "_0kami" Marciniak

PLANETA IT

Jaki język polecić początkującemu?

Rozpoczęcie dzisiaj przygody z programowaniem nie jest wcale prostą sprawą. Kiedyś, u początku rozwoju komputerów osobistych, do wyboru była tylko garstka języków programowania, z których większość stanowiła czwórka: Basic, Fortran, C i Forth, a początkujący zaczynali zazwyczaj od pierwszego z nich. Decydowała zwykle jego wyjątkowa prostota, a także powszechna dostępność: bodaj każdy ówczesny komputer osobisty udostępniał interpreter Basica. Jednak z czasem, gdy pojawiły się, a potem spopularyzowały pecety, liczba języków zaczęła gwałtownie rosnąć, a popularność zyskiwały często nawet takie, które powstawały jako domowe, hobbystyczne projekty. Który z nich nadaje się najlepiej do tego, by rozpocząć programistyczną przygodę?

Wojciech Sura

KLUB DOBREJ KSIĄŻKI

Zastosowania technologii blockchain

Rafał Kocisz