Programista 10/2014 (29)
Programista 10/2014 (29)
Czasami istnieją rozwiązania, które uproszczają życie. Humanizer jest zdecydowanie jednym z nich. Jak można było zgadnąć po tytule, pozwala on na przedstawienie danych w bardziej czytelnej formie. Nie będę w tym momencie rozpisywał się, co to oznacza, ponieważ w każdym przypadku może to oznaczać coś zupełnie innego.
Część 5: Komponenty wirtualne i cache
Stosunkowo częstym scenariuszem jest konieczność obsługi przez kontrolkę bardzo dużych ilości danych. Ponieważ w takiej sytuacji rozwiązanie bezpośrednie rzadko kiedy się sprawdza, trzeba niestety ruszyć głową i opracować mechanizmy, które pomogą oszukać użytkownika, że widzi więcej niż w rzeczywistości wyświetlamy…
Mamy nową odsłonę języka C++! Standard C++14, pomimo iż nie przynosi rewolucyjnych zmian, zdecydowanie wart jest uwagi. Poniższy tekst podpowiada, na które nowe dodane elementy warto zwrócić szczególną uwagę.
Język C# domyślnie nie umożliwia deklarowania i wykorzystania zmiennych wskaźnikowych. Operacje na wskaźnikach są jednak możliwe z wykorzystaniem kontekstu nienadzorowanego, który opiszę w tym artykule.
Tworzenie gier komputerowych to niewątpliwie przykład projektów należących do trudniejszych zadań, jakie się obecnie realizuje. Realizacja większego projektu gry komputerowej wymaga wytężonej pracy całego zespołu. Jednakże postęp w rozwoju różnego rodzaju środowisk do tworzenia gier pozwala na realizację ambitnych przedsięwzięć w ramach małych zespołów, a nawet przez pojedynczych programistów.
Grafika 3D odniosła sukces w znacznym stopniu dzięki technice teksturowania. To właśnie tekstury powodują, że trójwymiarowi aktorzy tak dobrze imitują rzeczywiste obiekty. To również dzięki teksturom na wirtualnym niebie są chmury, a w oddali latają samoloty. Tekstury używane są także jako nośnik danych, choćby w technice mapowania nierówności. W tej części cyklu poznamy jednak ich podstawowe zastosowanie do nadawania powierzchniom obiektów koloru.
Budując aplikacje serwerowe, musimy pamiętać o zasobach maszyny, na której uruchomiona jest nasza aplikacja. W celu poprawy wydajności naszej aplikacji, w przypadku operacji na dużych ilościach danych, możemy wykorzystać olbrzymi atut, jaki daje nam Node.js - strumienie.
W trakcie prac nad Linuksem w wersji 3.16 oraz 3.17 zostało dodane pełne wsparcie dla nowoczesnego układu typu System-on-Chip Armada 375 firmy Marvell. Jednym z jego istotnych części było uruchomienie w systemie operacyjnym zupełnie nowego gigabitowego kontrolera sieci Ethernet – warto zatem przyjrzeć się procesowi powstawania jego sterownika. Bliskie spotkanie ze sprzętem czas zacząć!
Przesiadając się z PHP na Pythona, do czego Cię usilnie namawiam, jedną z pierwszych rzeczy, jaką stworzysz, będzie pewnie aplikacja webowa. Aby ułatwić start w tym nowym dla Ciebie środowisku, postaram się przedstawić ekosystem frameworków Pythonowych. Dzięki temu artykułowi będziesz mógł łatwiej wybrać framework, w którym stworzysz swój pierwszy projekt.
Każdy, kto choć trochę interesował się tematem testowania oprogramowania, słyszał o takich pojęciach jak przypadek testowy, warunek testowy czy scenariusz testowy. Co właściwie kryje się pod tymi pojęciami? W tym artykule postaram się jak najprecyzyjniej opisać wymienione zagadnienia.
Część III: ThreadPool – wielowątkowa alternatywa
W poprzednim artykule przedstawiłem wzorzec Reactor w wersji reużywalnej, na bazie której pokażę wielowątkowe podejście do obsługi zdarzeń z wzorcem ThreadPool.
Hack.lu 2014 CTF – ImageUpload
Ś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.
Jeśli kiedykolwiek miałeś wrażenie, że oczekiwania wyrażone przez ludzi z biznesu są niekonkretne, to ta część serii jest właśnie dla Ciebie. Skupimy się na technikach pozyskiwania konkretów w trakcie rozmowy na temat funkcjonalności systemu, rozbijaniu ogólnych informacji na elementarne składowe oraz formułowaniu kryteriów akceptacji.
Kiedyś na rozmowie rekrutacyjnej kandydat na lidera zespołu stwierdził, że udaje mu się pełnić swoją rolę bez konfliktów. To wyznanie wzbudziło nasze podejrzenia. Brak konfliktów to symptom, który wymaga szczególnej uwagi. Życie projektowe jest pełne konfliktów i należy im pozwolić zaistnieć, aby w efekcie móc znaleźć rozwiązanie, które będzie satysfakcjonować obydwie strony. Jak to robić, przeczytasz w tym artykule.