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