Programista 5/2014 (24)
Programista 5/2014 (24)
Nowoczesny OpenGL uruchamiany w profilu rdzennym zmusza programistę do rzeczy, o których mógł wcześniej nie myśleć: pisania shaderów, tworzenia buforów werteksów i definiowania macierzy. Oczywiście, że nadal można korzystać z bibliotek czy gotowych rozwiązań pobranych z Internetu. Można to jednak wykorzystać jako impuls do nauki GLSL lub rachunku macierzy. Poniższy artykuł ma być pomocą w realizacji drugiego z tych impulsów. Nie rozpocznę jednak od wyjaśniania, czym są macierze – skupię się na zagadnieniach, których często brak w typowych podręcznikach algebry, a charakterystycznych dla grafiki 3D. Artykuł wymaga od czytelnika pewnej wiedzy o grafice 3D, choćby obycia ze współrzędnymi jednorodnymi.
Witam w kolejnej, drugiej odsłonie cyklu Wzorce Programowania Gier. Napisanie tego artykułu zajęło mi z różnych przyczyn o wiele więcej czasu niż się spodziewałem, więc w tym miejscu chciałbym przeprosić wszystkich zainteresowanych czytelników za zwłokę i podziękować im jednocześnie za cierpliwość. Dziś na warsztat weźmiemy jedno z fundamentalnych zagadnień w dziedzinie programowania gier, jakim jest zarządzanie zasobami (ang. resource management).
To, że Linuxa można znaleźć w urządzeniach wielkości paczki papierosów, już nikogo nie dziwi. Systemy osadzone lub jak kto woli systemy wbudowane coraz częściej sięgają po rozwiązania wywodzące się ze świata komputerów osobistych. Decydując się na zastosowanie Linuxa, należy mieć na uwadze, że określa pewne mechanizmy działania, które są szczególnie istotne, pisząc sterownik urządzenia. W artykule opiszę działanie linuxowego sterownika buforu ramki na platformie Raspberry Pi.
W poprzednim artykule omówiliśmy, w jaki sposób poznane dotąd mechanizmy debuggera na architekturze Intel x86 mogą pomóc programiście w zabezpieczeniu aplikacji przed wykonaniem analizy struktury i działania programu poprzez zastosowanie inżynierii wstecznej. Dziś natomiast weźmiemy pod lupę zaawansowane techniki i narzędzia służące do monitorowania i kontrolowania przebiegu wykonania danego programu.
Robot (Nokia) to open source'owe narzędzie do testowania aplikacji; został napisany w Pythonie, umożliwia pisanie scenariuszy testowych w języku naturalnym i wspiera Data Driven Tests. Test składa się z tzw. keywordów, z których każdy jest odpowiedzialny za wykonanie jakiejś akcji testowej. Celem artykułu jest opisanie Robot Frameworka oraz przedstawienie sposobu pisania testów za pomocą tego narzędzia.
Czy twój program zjada pamięć i CPU? Czy jest to wina języka, czy może kodu? Co można zrobić zanim sięgniemy po język C, jeśli nasza aplikacja w Pythonie wykazuje objawy „otyłości”?
Część I: Wzorzec Reaktor i podstawowa implementacja
Wzorzec Reaktor to podstawowy, jeden z najprostszych, ale zarazem stosunkowo efektywny wzorzec obsługi zdarzeń. Z tego artykułu dowiesz się, jakie ma własności oraz czy i kiedy go wykorzystać już na etapie projektowania rozwiązania problemu w danej aplikacji.
Część 4: Emocje w komunikacji
W poprzednich artykułach pisałem o modelach komunikacji, feedbacku oraz coachingu. W tym artykule rozwinę szerzej temat komunikacji. Skupię się na objaśnieniu mechanizmu wpływu emocji na komunikację – znajomość tego tematu jest niesłychanie ważna do zapewnienia wysokiej efektywności w zespołach wykorzystujących Agile. Jednym z celów artykułu jest również przedstawienie frameworka użytecznego podczas tzw. „trudnych rozmów”. Framework ten, nazywany PBP (Porozumienie Bez Przemocy), wydawał się bardzo tajemniczy, kiedy pierwszy raz się z nim zetknąłem. Ten artykuł odziera PBP z magii oraz pokazuje podstawy teoretyczne stojące za tą wysoce efektywną techniką.
W skrócie: – Podczas zagranicznych konferencji widziałem, że ludzie się spotykają, coś się między nimi dzieje. Programowanie było dla nich czymś więcej niż tylko pracą od 9 do 17 – wspomina swoje pierwsze konferencje Grzegorz Duda. Postanowił zatem sprowadzić podobne relacje między programistami do Polski. Twórca konferencji 33rd Degree for Java Masters wspomina na łamach Planety IT swoje początki.
ASIS CTF Quals 2014 – Random Image
Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag – zawody, podczas których kilku-, 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ść programistów wie, co to refaktoryzacja, zna zalety wynikające z jej stosowania, zna również konsekwencje zaniedbywania refaktoryzacji. Jednocześnie wielu programistów uważa, że refaktoryzacja to bardzo kosztowny proces, wymaga wysiłku i brak na nią czasu w szybko zmieniających się warunkach biznesowych. Zapraszam do kolejnej części artykułu poswięconego zagadnieniu refaktoryzacji.