Zapraszamy do zamówienia magazynu w prenumeracie. Magazyn jest dostępny w formie papierowej, .pdf, .ePUB i .mobi.
BIBLIOTEKI I NARZĘDZIA
Platforma TestFlight – dystrybucja aplikacji mobilnych dla iOS
TestFlight to dystrybucja wersji prerelease naszych aplikacji do testerów, której celem jest zebranie opinii i odpowiednie przygotowanie aplikacji do finalnego releas'u w AppStore. Nowy TestFlight oferuje wiele wygodnych funkcji, które powinny sprawić, iż developerzy łatwiej będą mogli zebrać pojawiające się sugestie od rzeczywistych użytkowników. Dodatkowo platforma ta zwiększa możliwość wykrycia błędów – jako że umożliwia przesłanie buildów do 1000-a testerów zewnętrznych. Odkryte wady na tym etapie są bardzo istotne, gdyż można je naprawić przed wdrożeniem aplikacji do App Store.
Łukasz Mazur
D3.js: wizualizacja danych w JavaScript
Dzięki bibliotece D3.js stworzymy interaktywne wizualizacje, które z powodzeniem zastąpią wykresy i mapy osadzane na stronach internetowych w postaci plików graficznych
Paweł Wolniewicz
PROGRAMOWANIE SYSTEMOWE
Hierarchia pamięci w systemach komputerowych
Pamięć nie jest płaska. Wręcz przeciwnie – dostęp do pamięci operacyjnej jest nierównomierny, a tworzenie wydajnego oprogramowania polega na umiejętnym wykorzystaniu podsystemu pamięci wraz z całą jego wielopoziomową hierarchią. Szybkie programy korzystają z cache, nie z RAM.
Maciej Czekaj
ZFS – rewolucja w systemach plików
Zapisując lub odczytując dane z dysku twardego, oczekujemy, że dana operacja wykona się prawidłowo i do tego w krótkim czasie. Niezbędnym komponentem systemu operacyjnego, który m.in. dba o integralność danych, jak i krótki czas wykonania zadań, jest system plików. Często nie jesteśmy świadomi problemów, jakie są z nim związane, oraz funkcjonalności, które nam oferuje. W artykule przyjrzymy się ZFSowi, który zrewolucjonizował architekturę systemów plików. Przede wszystkim postaramy się odpowiedzieć na następujące pytania: Co w ZFS jest takiego wyjątkowego? Po co nam kolejny system plików? Jak go używać? I najważniejsze – czy możemy jakoś wykorzystać jego funkcjonalności do własnych celów?
Mariusz Zaborski
PROGRAMOWANIE APLIKACJI WEBOWYCH
ASP.NET 5. Automatyzacja procesu tworzenia aplikacji internetowych
W moim poprzednim artykule dotyczącym technologii ASP.NET 5, omówiłem strukturę nowoczesnych aplikacji internetowych na przykładzie bazodanowej aplikacji Pracownicy. Natomiast w tym artykule, stanowiącym uzupełnienie poprzedniej części, skoncentruję się na pozostałych nowościach ASP.NET vNext, skracających czas wymagany do tworzenia bazodanowych aplikacji internetowych.
Dawid Borycki
PROGRAMOWANIE GIER
Przewodnik po MonoGame. Część 9: skybox i odwzorowywanie otoczenia
Grafika 3D czasu rzeczywistego zmusza nas do wielu kompromisów. Jednym z nich jest liczba werteksów, z których zbudowana jest scena. Stąd duża liczba trików w tej dziedzinie. Dziś poznamy kolejny z nich – skybox, który imituje rozległe otoczenie za pomocą tekstur nałożonych na pudło otaczające scenę. W konsekwencji przedstawię też ideę odwzorowania otoczenia, w którym powierzchnia aktorów odbija otoczenie. A zatem po texture mapping, specular mapping i normal mapping dziś poznamy environment mapping.
Jacek Matulewski
ALGORYTMIKA
Uczenie maszynowe online
Uczenie maszynowe online, czyli w sytuacji, w której dane przychodzą do nas partiami, staje się ostatnimi latami coraz popularniejsze. Naturalnym zastosowaniem jest oczywiście przypadek, w którym cały czas otrzymujemy nowe informacje i nasz model musi się do nich dostosowywać. Na szczęście na tym nie koniec! W poniższym artykule zaprezentujemy techniki i sztuczki, które pozwalają okiełznać uczenie online oraz wykorzystać je do przetwarzania dużych zbiorów danych.
Robert Bogucki
INŻYNIERIA OPROGRAMOWANIA
Promises – asynchroniczny kod JavaScript
Promises to wzorzec projektowy wykorzystywany w wielu językach programowania i bibliotekach, ułatwiający programowanie asynchroniczne. W niniejszym artykule omówię istotę wzorca, podam przykłady jego zastosowania w języku JavaScript oraz przeanalizuję potencjalne błędy, jakie można popełnić, używając promises. Przybliżę także kontrowersje związane z implementacją jQuery w odniesieniu do specyfikacji Promises/A+.
Tomasz Ducin
PYTHON HAS POWER
Pygame – biblioteka do tworzenia prostych gier w Pythonie. Część 2
Zgodnie z zapowiedzią z poprzedniej części, w tym artykule skupimy się na rozbudowaniu rozpoczętego remake’u „Space Invaders”. Dodamy kolejne funkcjonalności, takie jak: możliwość oddawania strzałów przez gracza, dodamy przeciwników oraz wprowadzimy ich w ruch, a także wyświetlimy aktualny wynik gry.
Łukasz Jagodziński
PRAWO
Prawne aspekty ochrony baz danych i ich udostępniania
W tym artykule zajmiemy się kolejnym zagadnieniem związanym z prawem i technologiami IT. Tym razem przedmiotem naszego zainteresowania będą bazy danych.
Kamil Stolarski, Konrad Majewski
LABORATORIUM BOTTEGA
Wzorce silników zdarzeń w C++ Część IV: Wzorzec Half Sync/Half Async – obsługa częściowo synchroniczna (reaktywna) i częściowo asynchroniczna.
W poprzednim artykule przedstawiłem wzorzec Thread Pool („Programista” 10/2014), który jest skalowalną, wielowątkową alternatywą dla wzorca Reactor. To zupełnie asynchroniczne podejście w przypadku TP wymagało oczywiście drobnych zmian w kodzie aplikacyjnym. W niniejszym przedstawię wzorzec będący mieszanką obu podejść omawianych uprzednio.
Roman Ulan
STREFA CTF
Zdobyć flagę… 9447 Security Society CTF 2014 – nosql
Ś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
Technical Leadership: od eksperta do lidera
Większość liderów technicznych zaczyna swoją karierę jako eksperci techniczni – programiści, testerzy, projektanci. Jako eksperci uwielbiamy poznawać nowe narzędzia, biblioteki, rozwiązania, szkielety i pasjami rozwiązywać problemy. Aż pewnego dnia ktoś w organizacji, w której pracujemy, stwierdza, że już czas na to, abyśmy zostali liderami. Dla większości osób jest to trudny czas, bo oto ze świata zerojedynkowego wkraczamy w obszar, w którym reguły są rozmyte, a w szczególności zachowania ludzi są nieprzewidywalne. Czujemy się bezradni, nieprzygotowani do pełnienia tej roli, a do tego mamy jeszcze poczucie, że tracimy swoje kompetencje techniczne. I zastanawiamy się: „Czy to dla mnie? A może ja się do tego nie nadaję?”. Pozostaje otwarte pytanie: jak odnaleźć się w tej sytuacji.
Michał Bartyzel, Mariusz Sireaczkiewicz
KLUB DOBREJ KSIĄŻKI
Specyfikacja oprogramowania. Inżynieria wymagań. Wydanie III
Rafał Kocisz