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. Wydanie dostępne jest też w salonach Empik do końca listopada 2017 r.
BIBLIOTEKI I NARZĘDZIA
Filtr Blooma – niepozorny strażnik wydajności
Nikt nie lubi czekać. Miło jest móc dostawać informacje, które nas interesują tak szybko jak to tylko możliwe. W tym artykule opowiem, co sprawia, że filtr Blooma jest tak użyteczny oraz dlaczego firmy między innymi takie jak Google, Facebook czy LinkedIn zdecydowały się na jego użycie. Mimo swoich niewątpliwych zalet ma również kaprysy, zdarza się mu czasem oszukiwać. Postaramy się pokazać, jak te błędy można zniwelować.
Damian Stygar
Lemon oraz re2c – duet do analizy gramatyczno-leksykalnej
Analiza gramatyczno-leksykalna to zadanie powszechnie wykonywane w wielu typach programów. Głównym przykładem programów, gdzie tego typu analiza jest stosowna, są kompilatory, jednak wiele innych programów posiada pliki tekstowe opisujące konfigurację, zatem i tam taka analiza zawartości pliku jest wykonywana.
Marek Sawerwain
JĘZYKI PROGRAMOWANIA
Modernizacja kodu w C++
We wrześniu tego roku standard C++17 został formalnie zaakceptowany przez komitet ISO, co oznacza, że można uznać go za zamknięty. W najbliższych miesiącach wsparcie dla tego standardu zdecydowanie poprawi się i bez większych problemów będziemy mogli używać go w swoich projektach.
Michał Papierski
PROGRAMOWANIE GIER
Przygoda z wokselowym silnikiem gry. Część 1 (>>więcej o tym artykule<<)
Na rynku można znaleźć bardzo dużo zaawansowanych silników gier, które pozwalają na szybkie stworzenie gry bez zbytniego zastanawiania się: „jak to działa pod spodem?”. Czasami twórcy gier decydują się na stworzenie własnego silnika, ponieważ te dostępne na rynku nie nadają się do gry, jaką sobie wymarzyli. Często też napisanie własnego silnika lepiej doszlifować finalny produkt, poprzez rezygnację z komponentów, które są dla nas zbędne. Ogólnodostępne silniki posiadają ich wiele, ponieważ muszą objąć swoimi możliwościami jak najwięcej gier, które potencjalni developerzy będą tworzyć za ich pomocą. Jednym z takich przypadków, gdzie warto spróbować napisać własny silnik gry, może być gra opierająca się na wokselach. A na pewno będzie to świetny pretekst, by spróbować napisać własny silnik dla celów edukacyjnych i dowiedzieć się więcej „jak to działa pod spodem?”.
Michał Krawczyk
INŻYNIERIA OPROGAMOWANIA
SonarQube – kod mojszy niż twojszy (>>więcej o tym artykule<<)
Napisaliśmy kod. Ktoś go zazwyczaj sprawdza. Nietrudno tu o różnicę zdań, który wariant lepszy, czytelniejszy itp. Jak również o wykrycie oczywistych defektów. Dobrze, gdyby pod ręką znajdował się jakiś automat, a najlepiej pozwalający na przekrojowe analizy, również w dziedzinie czasu. To nasz nowy kolega – SonarQube. Wykonuje te i kilka innych czynności, a jak się postaramy, to dla każdego pull-request'u. Artykuł pozwala nam go lepiej poznać, a zwłaszcza jak pracuje nad kodem .NET samego Jon'a Skeet'a.
Marcin Wachulski
64 sposoby na crash ( >>więcej o tym artykule<<)
Czy zastanawialiście się kiedyś, jak bardzo kruche są podstawy, na których budujemy oprogramowanie, i jak niewiele trzeba, aby zachęcić system operacyjny do nieplanowanego zamknięcia procesu? W tym artykule przedstawione zostaną okrągłe 64 wybrane metody na uzyskanie takiego rezultatu.
Paweł "KrzaQ" Zakrzewski
ZARZĄDZANIE PROJEKTAMI
Niekończąca się praca w toku, czyli zmora Product Ownera
Praca rozpoczęta i niezakończona w ustalonym terminie to coś, co często zdarza się przy pracy z niejednym produktem. Często winą obarczamy zespoły. Jednak powodów porażki możemy doszukiwać się także w działaniach PO. W dalszej części artykułu przedstawię Ci kilka przyczyn niezakończonej pracy oraz kilka rozwiązań, które pomogą lepiej sobie z nimi radzić.
Michał Cichy
BEZPIECZEŃSTWO
Praktyczna kryptografia: Hashowanie, podpisy cyfrowe i wyprowadzanie klucza
W dzisiejszych czasach bezpieczeństwo każdej istniejącej aplikacji internetowej silnie polega na skrótach kryptograficznych. Co więcej, znalezienie praktycznej metody ich odwracania wywołałoby globalny kryzys w całej informatyce. To argument, który sprawia, że warto się z nimi zapoznać. W tym artykule pokażemy, jak poprawnie używać hashy oraz jak skonstruowane są algorytmy HMAC i PBKDF2.
Michał Leszczyński, Jarosław Jedynak
STREFA CTF
EKOPARTY CTF 2017 – OldPC
W połowie września miała miejsce trzecia edycja zawodów EKOPARTY CTF organizowanych przez drużynę Null Life (zawodnicy pochodzą z Ameryki Południowej i Środkowej). Ja w EKOPARTY brałem udział po raz drugi i nie mogę się doczekać kolejnej edycji. Zadań zawsze jest dużo, są różnorodne i ciekawe. A ponieważ większość z nich jest raczej prosta, nawet osoby rozpoczynające przygodę z CTFami mają szansę zdobyć kilka flag, a przy okazji czegoś nowego się nauczyć.
Jarosław Górny
WSPOMNIENIA ZGREDA
Jak ciekawość nas napędzała
Jakiś czas temu pojawił się na łamach naszego pisma nowy dział „Wspomnienia zgreda”. Jego istnienie zainicjowane zostało przytoczoną pewną kontrowersyjną historią, lekko podkolorowaną, tego, co działo się ponad piętnaście lat temu na scenie. Może współcześnie wyglądać to troszkę dziwnie. Jednak wtedy nie było to aż tak nietypowe, jak może się wydawać autorowi tamtego tekstu.
Mariusz „ maryush” Witkowski
PLANETA IT
Kurs angielskiego dla programistów. Lekcja 9
Przedstawiam dziewiątą lekcję minikursu angielskiego dla programistów. Tym razem tematem przewodnim jest bezpieczeństwo. Zachęcam do wielokrotnego wykonywania ćwiczeń, aby dobrze utrwalić sobie przyswojony materiał.
Łukasz Piwko
Czy programista musi być pasjonatem?
Uwaga, uwaga! Oto ON! Wybraniec! Zbawca! Czysty, płonący, zapamiętały. W ognistym rydwanie, z seledynowymi, zero-jedynkowymi lejcami. Programista pasjonat. Poświęcony programowaniu. Prawdziwie.
Maciej Aniserowicz
KLUB DOBREJ KSIĄŻKI
Game Engine Black Book. Wolfenstein 3D
Rafał Kocisz