Programista 1/2015 (32)
Programista 1/2015 (32)
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.
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
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.
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?
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.
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.
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.
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+.
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.
W tym artykule zajmiemy się kolejnym zagadnieniem związanym z prawem i technologiami IT. Tym razem przedmiotem naszego zainteresowania będą bazy danych.
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.
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.
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.