REKLAMA

Programista 11/2014 (30) – numer rozszerzony – spis treści

Zapraszamy do zamówienia magazynu w prenumeracie. Magazyn jest dostępny w formie papierowej, .pdf, .ePUB i .mobi.
>>Formularz zamówienia<<

 

 okladka30

Magazyn dostępny jest też w sieci salonów Empik na przełomie grudnia 2014 r. i stycznia 2015 r.i w tym czasie prowadzimy  akcję "Paragon" - rozdajemy wydania archiwalne za skan paragonu, więcej informacji >>tutaj<<.

Lista salonów Empik, gdzie jest dostępny aktualny numer "Programisty": >>pobierz<<

BIBLIOTEKI I NARZĘDZIA

Przegląd narzędzi do reverse engineeringu

Reverse engineering – czyli inżynieria wsteczna – to zbiór technik wykorzystywanych do analizy zamkniętego oprogramowania w celu wydobycia niedostępnych z pozoru informacji jak np. użyte algorytmy, ukryte hasła dostępu (np. do baz danych), informacje o tym, jak szyfrowane są jakieś pliki aplikacji itp.

Bartosz Wójcik

Hystrix − zarządzanie błędami w systemach rozproszonych

Popularna ostatnimi czasy architektura mikrousług (ang. microservices) wystawia na pierwszy plan integrację sieciową między wieloma komponentami. Wszechobecność zewnętrznych usług i API również nie ułatwia zadania. W tak złożonych środowiskach błędy nie są wyjątkiem, a codziennością, którą trzeba zarządzać i testować. Hystrix to biblioteka w Javie zwiększająca stabilność w systemach, nawet w obecności błędów.

Tomasz Nurkiewicz

Projektowanie komponentów wizualnych.
Część 6: Rysowanie

Za sobą mamy już pomysł, architekturę i kilka detali implementacyjnych. Nadszedł wreszcie czas, abyśmy pomyśleli o tym, w jaki sposób narysować naszą kontrolkę na ekranie. Dziś dowiemy się, jakimi narzędziami dysponujemy podczas renderowania kontrolki oraz poznamy kilka sztuczek przydatnych podczas implementowania tego procesu.

Wojciech Sura

PROGRAMOWANIE GIER

Unity3D – robimy grę. Część druga

W drugiej części naszego cyklu zajmiemy się animacją przeciwnika oraz animacją ataku, jaki przeprowadzić może gracz. Atak zostanie przeprowadzony za pomocą broni, którą znajdziemy i umieścimy w ekwipunku.

Marek Sawerwain

 Przewodnik po MonoGame. Część 7: Kontrolery gier

MonoGame, podobnie jak wcześniej XNA, pretenduje do bycia platformą do programowania gier. To oznacza, że poza wsparciem dla tworzenia grafiki 3D musi także umożliwiać interakcję użytkownika z grą, czyli wspierać obsługę kontrolerów gry. W przypadku MonoGame obsługiwane są myszka, klawiatura i gamepad. Tym kontrolerom będzie poświęcona ta część naszego cyklu.

Jacek Matulewski

PROGRAMOWANIE URZĄDZEŃ MOBILNYCH

Swift w praktyce: stwórz swoją pierwszą aplikację pod iOS 8 (Część 1)

Mniej więcej pół roku temu, w magazynie Programista (numer 6/2014), opublikowałem artykuł zatytułowany Swift: rewolucja czy ewolucja?. Celem tego artykułu było przedstawienie nowego języka programowania od Apple, który poczynając od ósmej wersji systemu operacyjnego pod znaku nadgryzionego jabłuszka, miał stać się preferowanym narzędziem do wytwarzania aplikacji na urządzenia mobilne giganta z Cupertino.

Rafał Kocisz

Android Wear. Programowanie urządzeń ubieralnych

Urządzenia ubieralne stanowią nową generację urządzeń mobilnych, które są noszone przez użytkownika na jego ciele. Takie rozwiązanie stwarza nowe możliwości interakcji z użytkownikiem i wymaga dodatkowych interfejsów programistycznych. W jednym z moich poprzednich artykułów (Programista 9/2014(28)) opisałem interfejs Mirror API służący do programowania aplikacji dla Google Glass. Natomiast w tym artykule omówię inną technologię dedykowaną urządzeniom ubieralnym, jaką jest Android Wear.

Dawid Borycki

PROGRAMOWANIE SYSTEMOWE

10 milionów pakietów na sekundę – poznaj DPDK

Czy zwykły PC może być wydajnym routerem lub switchem? Co różni te urządzenia od „zwykłego” komputera? Okazuje się, że całkiem mało, jeśli tylko postąpimy „nieroztropnie” i postanowimy stworzyć swój własny stos sieciowy… Innych już dawno zmusił do tego wykładniczy wzrost ruchu w sieci i powszechne użycie światłowodów.

Maciej Czekaj

PROGRAMOWANIE SYSTEMÓW OSADZONYCH

Userspace'owy, silnie równoległy stos TCP/IP dla maszyn wielordzeniowych

Utrzymanie aktualnego tempa zwiększania szybkości pracy procesorów wykonanych w technologii krzemowej nie jest możliwe w dłuższej perspektywie. W celu zwiększenia wydajności pracy systemów zaczynają dominować rozwiązania równoległe, składające się z dziesiątek oraz setek rdzeni. Wymaga to nowych podejść co do architektury oraz zasady działania projektowanych systemów. Jednymi z bardziej wymagających wydajnościowo są stosy protokołów sieciowych. Niniejszy artykuł przedstawia pomysł realizacji równoległego, wydajnego oraz skalowalnego stosu TCP/IP.

Michał Dubiel

PYTHON HAS POWER

Ćwiczenie z programowania w Pythonie na przykładzie symulacji gry w pokera

Jak wiadomo – najlepszą formą nauki jest zabawa. Dlatego nasza propozycja ćwiczenia mającego na celu doskonalenie umiejętności programowania w Pythonie polegać będzie na stworzeniu algorytmu podejmującego decyzję podczas gry w pokera. Zachęcamy do stworzenia kilku wersji algorytmu, których skuteczność będzie można następnie skonfrontować poprzez symulację rozgrywki pokerowej.

Radosław Jankiewicz

WYWIAD

Co ma programowanie do smolistego grzęzawiska? Odpowiada Bjarne Stroustrup – twórca języka C++

Wielu z Was zapewne słyszało o nowych możliwościach, jakie otwiera przed programistami standard C++14. Nie każdy jednak wie, jak na dzień dzisiejszy wygląda
proces zarządzania rozwojem tego popularnego języka programowania. Odpowiedzi na to i wiele innych pytań udziela człowiek, który miał gigantyczny wpływ na rozwój nie tylko informatyki, ale i wszystkich gałęzi życia czerpiących z tej dziedziny wiedzy. Tym człowiekiem jest Bjarne Stroustrup: twórca C++.

Update z lutego 2015 r. Bjarne Stroustrup udostępnił wywiad z "Programistą" na swojej stronie: http://www.stroustrup.com/interviews.html

He-Man z uniwersum C++. Rozmowa ze Scott'em Meyers'em

5 listopada br. w Centrum Kongresowym przy wrocławskiej Hali Stulecia odbyła się konferencja CODE::DIVE, na której jako gość honorowy wystąpił Scott Meyers: jeden z czołowych ekspertów na świecie w dziedzinie rozwoju oprogramowania w języku C++, autor znanej serii książek Effective C++. Scott zaprezentował dwa wykłady: jeden na temat pamięci podręcznej procesorów i jej znaczenia w kontekście wytwarzania oprogramowania, drugi zaś dotyczący mechanizmów języka C++11/C++14 wspierających programowanie systemów osadzonych. Obydwie prezentacje zebrały tłumy widzów. Nas też tam nie zabrakło, a co ważne – po jednym z wykładów udało nam się namówić Scott'a na wywiad, który przedstawiamy poniżej.

AexolGL – silnik graficzny made in Poland

Aexol specjalizuje się w tworzeniu aplikacji mobilnych. Firma została założona w 2011 roku przez Artura Czemiela, absolwenta DRIMAGINE 3D Animation & VFX Academy, od zawsze zainteresowanego technologią 3D. Swoją pasję początkowo rozwijał w branży filmowej. Artur jest współautorem efektów specjalnych do filmu Cezarego Pazury pod tytułem „Weekend”, filmu „Hexaemeron” nagrodzonego Finest Art award Fokus Festiwal oraz nominowanego do nagrody dla najlepszego filmu krótkometrażowego animowanego flEXiff 2010 Australia. Doświadczenie zdobyte w branży postprodukcji filmowej oraz na rynku aplikacji mobilnych stanowiło podłoże dla pomysłu stworzenia silnika AexolGL – narzędzia mającego ułatwić pracę firmie Aexol oraz innym programistom na całym świecie.

>>Pobierz silnik AexolGL<<

LABORATORIUM BOTTEGA

Oblicza testów jednostkowych

Testy jednostkowe mogą bardzo pozytywnie wpłynąć na jakość tworzonego systemu. Napisano o nich wiele książek i artykułów, wygłoszono setki prelekcji i nagrano niezliczoną liczbę kursów. Przez wiele lat zgłębiałem ten temat i z czasem stał się on moją pasją, najbardziej fascynującym aspektem zawodu programisty. Ze zdumieniem obserwowałem, jak z nabieraniem doświadczenia, z każdym kolejnym projektem, wszystkie części układanki zaczynały powoli układać się w logiczną całość. Postaram się w przystępny sposób podzielić wiedzą zdobytą na placu boju.

Maciej Aniserowicz

TESTOWANIE I ZARZĄDZANIE JAKOŚCIĄ

MBT – Model Based Testing. Idea, metody

MBT – Model Based Testing – jest metodą testowania oprogramowania w oparciu o model SUT (System Under Test) – tzn. model testowanego oprogramowania. W niniejszym artykule przedstawiona zostanie idea testowania opartego o model testowanego oprogramowania.

Sylwia Bartman

PRAWO

Autorskie prawa osobiste a autorskie prawa majątkowe. Wprowadzenie do tematyki prawa autorskiego

Trudno o bardziej istotne dla programistów i innych osób związanych z branżą IT normy prawne niż te regulujące tzw. własność intelektualną. Wśród nich najbardziej podstawowe są przepisy normujące ochronę praw autorskich i utworów wytworzonych przez twórców.

Kamil Stolarski, Konrad Majewski

STREFA CTF

Zdobyć flagę… Hack.lu 2014 CTF – Get your gatling at Garrettling!

Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag – zawody, podczas których kilku lub kilkunastoosobowe drużyny starają się rozwiązać jak najwięcej technicznych zadań z różnych dziedzin informatyki: kryptografii, steganografii, programowania, informatyki śledczej, bezpieczeństwa aplikacji internetowych itd. W serii „Zdobyć flagę…” co miesiąc publikujemy wybrane zadanie pochodzące z jednego z minionych CTFów wraz z jego rozwiązaniem.

Michał "Redford" Kowalczyk

KLUB LIDERA IT

Po pierwsze nie demotywuj. Czyli o motywacji wewnętrznej

Każdy lider chciałby mieć zmotywowane osoby w zespole – takie, które same się rozwijają, które chętnie biorą odpowiedzialność, a następnie robią wszystko, żeby się wywiązać ze swoich zadań. Nie zniechęcają się, nawet kiedy wykonują żmudne, powtarzalne zadania, pracując przez kilka lat z przestarzałymi technologiami, i nie poddają się mimo tego, że organizacja mocno ogranicza możliwości ich działania. Do tego jeszcze cały czas szukają sposobów, jak udoskonalić proces, którego są częścią, i popychają innych do rozwoju. Któżby nie chciał mieć takich ludzi.

Michał Bartyzel, Mariusz Sieraczkiewicz

KLUB DOBREJ KSIĄŻKI

Badanie danych. Raport z pierwszej linii działań

Rafał Kocisz

Python. Receptury. Wydanie III

Rafał Kocisz