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