REKLAMA

Programista 07/2016 (50) – Zaprogramuj robota z okładki – spis treści

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. 

Nakład wydań drukowanych "Programisty" nr 50 się wyczerpał. Numer dostępny jest tylko w postaci elektronicznej.

Magazyn programistów i liderów zespołów IT

Magazyn "Programista" nr 50 jest do 25 września w sieci salonów Empik.

KONKURS

Zaprogramuj robota z okładki (>>więcej o tym artykule<<)

Na okładce 50. wydania magazynu „Programista” znalazł się robot wraz z grą „Wieże Hanoi”. Robot poza tym, że wygląda fenomenalnie (a przynajmniej mam nadzieje, że tak jest i tak właśnie będę sobie to powtarzał), posiada jeszcze jedną ważną właściwość: w wersji elektronicznej okładki jest programowalny. W związku z tym ogłaszamy jubileuszowy konkurs, gdzie to właśnie Wy – Czytelnicy – możecie zaprogramować ruchy robota w taki sposób, by ułożył on znajdującą się przed nim Wieżę Hanoi.

Sebastian Rosik

BIBLIOTEKI I NARZĘDZIA

Docker. Wprowadzenie do technologii lekkich Linuksowych kontenerów

Technologie kontenerowe w ostatnich latach szybko zyskują na popularności. Ich zastosowanie z dnia na dzień staje się coraz szersze – począwszy od automatyzacji i testowania w małych aplikacjach, a skończywszy na ogromnych usługach online dostarczanych przez takich gigantów jak Google, Facebook czy Netflix. Niniejszy artykuł jest wprowadzeniem do zagadnienia kontenerów na przykładzie Dockera – popularnej i ogólnodostępnej implementacji.

Sławomir Zborowski

PROGRAMOWANIE SYSTEMOWE

Nowy gracz, czyli ARMv8 z lotu ptaka

W ciągu ostatnich kilku lat dokonał się olbrzymi postęp w dziedzinie procesorów z rodziny ARM. Do istniejących obszarów zastosowań, takich jak urządzenia NAS, telefony komórkowe, tablety, routery, doszedł zupełnie nowy – serwery. Tak! Po raz pierwszy dotychczas 32-bitowa rodzina procesorów rozrosła się o nową, 64-bitową architekturę ARMv8. Jakie zatem są korzyści?

Wojciech Macek

Zaciemnianie kodu, czyli jak eing6atya9zcću$indź@urtu (>>więcej o artykule<< )

Pani w szkole zawsze powtarzała, że kod musi być ładny i prosty do zrozumienia, bo to ułatwia pracę nam i innym. Nie myślała jednak o tym, że „inni” nie ograniczają się tylko do ludzi z naszego zespołu, ale obejmują także wszystkich próbujących sprawdzić, w jaki sposób działa nasz algorytm wyboru najlepszego kapelusza na podstawie zawartości naszej szafy i ostatnich wpisów na blogach modowych, lub też w jaki sposób sprawdzamy, czy wprowadzony klucz licencyjny jest poprawny. W niniejszym artykule chcielibyśmy zaprezentować metody obfuskacji, które sprawią, że analiza naszego kodu nie sprowadzi się do prostego użycia deasemblera/dekompilatora, ale pochłonie znacznie więcej czasu, pieniędzy, krwi i potu atakującego. >>pobierz fragment<<

Ariel "ariel" Wasteskeen, Michał "Z" Żuberek

PROGRAMOWANIE APLIKACJI WEBOWYCH

Responsywne szablony e-mail. Dlaczego warto zadbać o szablony naszych maili

„Era mobile” zrewolucjonizowała podejście do wielu technologii używanych w Internecie. Niektóre z nich nie sprostały wyzwaniu, a w przypadku innych dokonała się mniejsza lub większa rewolucja. E-mail jako jedna z najstarszych form przekazywania informacji nie stanowi w tym wypadku wyjątku. Oczywiście wiadomości tekstowe zawsze pozostaną takie, jakie były – jednak wysłanie bardziej złożonej treści w HTML wcale nie jest już takie proste, jak kiedyś. Oczywiście poprawnie skonstruowany szablon e-mail dzisiaj działa nadal, jednak musimy mieć świadomość tego, że z coraz większym prawdopodobieństwem wiadomość tekstowa zostanie odczytana nie na dużym ekranie komputera, a na kilkucalowym wyświetlaczu telefonu.

Paweł Kosiński

PROGRAMOWANIE BAZ DANYCH

ETL w środowisku SAS Data Integration Studio – poziom zaawansowany

Dane w systemach informatycznych często przechowywane są w odrębnych zasobach, co wynika z ich architektury lub modelu danych. Uzyskanie pełnego i zrozumiałego opisu rzeczywistości wymaga ich zintegrowania do postaci dystrybuowanej do miejsc docelowych. W artykule zaprezentowano techniki pobierania danych z wielu źródeł, podziału tabeli na podzbiory oraz łączenia tabel z wykorzystaniem narzędzia SAS Data Integration Studio (DIS) firmy SAS Institute. Dodatkowo rozszerzono opis zarządzania kontentem zadań o techniki sterowania strumieniem przetwarzania.

Piotr Muryjas

PROGRAMOWANIE APLIKACJI DESKTOPOWYCH

Electron. Programowanie wieloplatformowych aplikacji desktopowych przy użyciu technologii webowych

Zróżnicowany rynek urządzeń mobilnych wymusił powstanie szeregu narzędzi do tworzenia wieloplatformowych aplikacji mobilnych i webowych. Chociaż tego typu biblioteki i narzędzia programistyczne powstają głównie z myślą o aplikacjach mobilnych i internetowych, to analogiczny problem braku uniwersalności występuje również dla platform desktopowych. W tym przypadku jedno z możliwych rozwiązań polega na zastosowaniu środowiska Electron, które dostarcza pliku wykonywalnego dynamicznie interpretującego kod HTML/CSS oraz Java- Script na konkretnej platformie desktopowej wraz z zestawem bibliotek umożliwiających spójny dostęp do systemowych interfejsów programistycznych.

Dawid Borycki

BEZPIECZEŃSTWO

Fuzzing (>>więcej o tym artykule<< | >>pobierz fragment<<)

Fuzzing jest z zasady prostą metodą testowania oprogramowania, polegającą na przekazywaniu programowi nieprawidłowych danych, a następnie sprawdzaniu, czy aplikacja poprawnie na nie zareagowała. Technika ta przeżywa obecnie drugą młodość jako niezwykle skuteczny sposób na odkrywanie błędów bezpieczeństwa, a my w tym artykule postaramy się omówić, co leży u jej podstaw.

Gynvael Coldwind, Mateusz ''j00ru'' Jurczyk

Skarbiec w obłokach. Bezpieczne przechowywanie kluczy w Microsoft Azure

Chmura obliczeniowa na pierwszy rzut oka wydaje się być środowiskiem, w którym nikomu i niczemu nie można ufać. Czy implementacja zabezpieczeń opartych o kryptografię jest w takim środowisku z góry skazana na niepowodzenie? Na szczęście z pomocą mogą nam przyjść sprzętowe moduły kryptograficzne (HSM) oferowane od niedawna w środowisku Microsoft Azure.

Marcin Hoppe

Jak w prosty sposób zwiększyć bezpieczeństwo aplikacji webowej

W niniejszym artykule przedstawiamy kilka podstawowych zasad, których stosowanie pozwala niskim kosztem zwiększyć ogólny poziom bezpieczeństwa aplikacji webowej.

Michał Bentkowski

LABORATORIUM BOTTEGA

MySQL pod obstrzałem

Historia bazy danych MySQL sięga wczesnych lat 90., gdy dość popularnym rozwiązaniem była oferowana przez Hughes Technologies baza miniSQL. W tamtym czasie mySQL, gdyż także pod taką nazwą znany jest produkt HT, nie był demonem prędkości, a brak wsparcia dla indeksów czy trudności z obsługą wielu połączeń klienckich jednocześnie odbijały się czkawką w bardziej zaawansowanych aplikacjach. Rozwiązanie tych problemów miał Michael „Monty” Widenius, autor interfejsu do niskopoziomowego łączenia się z ISAM storage i indeksowania danych, który szybko skontaktował się z Davidem Hughesem, aby wspólnie zaoferować rynkowi nowy produkt…

Mariusz Gil

FELIETON

Jaka jest twoja estymata?

Rozwijając oprogramowanie, często działamy w projektach jak w systemie naczyń połączonych. Czas wykonania pojedynczego zadania wpływa na przebieg planowania całości. W związku z tym programista proszony jest o podanie estymacji złożoności zadania. Idealnie byłoby podać dokładną wartość czasu, jaki potrzebny jest na wykonanie prac tak, aby wycena kosztów i zysków była jak najbardziej precyzyjna. Dzięki temu decyzja „go” lub „no-go” dla projektu byłaby prosta. Ale w rzeczywistości estymacja czasu pracy z założenia musi być obarczona błędem. Jakie są tego konsekwencje? Jak ustrzec się błędnych decyzji? Przyjrzyjmy się, jakie mamy możliwości.

Grzegorz Kokot

STREFA CTF

Confidence CTF 2016 – Blackbox

CONFidence CTF to zawody organizowane przez Dragon Sector – najlepszą polską drużynę według rankingu CTFime.org, która zdobyła mistrzostwo świata w 2014 roku. Finały, jak co roku, odbyły się na konferencji CONFidence w Krakowie i były poprzedzone internetowymi kwalifikacjami. Również jak co roku przybyły drużyny z całego świata, by zmierzyć się ze sobą. W trakcie zawodów trafiliśmy na nietypowe zadanie, które udało nam się po długiej walce rozwiązać. Tak nam się spodobało, że postanowiliśmy je opisać w ramach Strefy CTF.

Jarosław Jedynak, Adam Krasuski

PLANETA IT

Loadery, launchery i inne niesforne słowa

Niektóre angielskie określenia sprawiają w tłumaczeniu na język polski wyjątkowe problemy. Do grupy tej zaliczają się m.in. słowa „loader” i „launcher”. W artykule tym analizuję kilka tego typu przypadków.

Łukasz Piwko

KLUB DOBREJ KSIĄŻKI

Język Go. Poznaj i programuj

Rafał Kocisz