REKLAMA

Programista 1/2015 (32) – Hierarchia pamięci w systemach komputerowych – spis treści

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

SEDLAK_PROGRAMISTABANNER

 

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