Zapraszamy do zamówienia magazynu w prenumeracie. Magazyn jest dostępny w formie papierowej, .pdf, .ePUB i .mobi. Cyfrowe wersje też występują w wersji cięższej i lżejszej, by wszystkie czytniki mogły sobie poradzić z tymi plikami : formularz zamówienia
BIBLIOTEKI I NARZĘDZIA
Interface a implementacja
W każdym programie okienkowym prędzej czy później programista staje przed zadaniem powiązania wizualnych kontrolek z kodem źródłowym, który realizuje za ich sprawą różne zadania. Najprostszym i często stosowanym sposobem jest napisanie kodu bezpośrednio w handlerach zdarzeń. Sposób ten oczywiście zadziała, ale to jest chyba wszystko dobre, co można o nim powiedzieć. W niniejszym artykule chciałbym zaproponować nieco inne podejście do rozwiązywania tego problemu.
Wojciech Sura
Wstęp do WPF – część 2: Stylowanie kontrolek w WPF
Po jakimś czasie pracy z dowolnym frameworkiem graficznym programista zaczyna odkrywać, że standardowy zestaw kontrolek to zbyt mało, aby napisać wygodną, dynamiczną i estetyczną aplikację. Na ratunek przychodzą wówczas różne darmowe i płatne internetowe repozytoria udostępniające multum dodatkowych komponentów. W przypadku WPF nie zawsze konieczne jest jednak korzystanie z zewnętrznych bibliotek, ponieważ we framework ten wbudowany jest bardzo elastyczny mechanizm pozwalający na stylowanie kontrolek – umożliwiając tym samym łatwą zmianę ich wyglądu, a także – w pewnym zakresie – również zachowania.
Wojciech Sura
ASP.NET SignalR – czyli aplikacje czasu bardzo rzeczywistego. Część 2
Artykuł ten jest drugą, i zarazem ostatnią, częścią omawiania rozwiązania, jakim jest SignalR. W pierwszej części przeprowadziliśmy wprowadzenie do tej technologii, jak również stworzyliśmy własny Hub, który będzie pełnił rolę swoistego serwera. W tym artykule napiszemy klienta, który to będzie pozwalał nam na prowadzenie rozmowy. Oczywiście w czasie rzeczywistym.
Karol Rogowski
JĘZYKI PROGRAMOWANIA
Java 8 – najbardziej rewolucyjna wersja w historii
Częstotliwość wydawania nowych wersji języka Java pozostawia wiele do życzenia. JDK 6 oraz 7 były też pewnym rozczarowaniem ze względu na małą innowacyjność i opóźnienia. Java 8, spodziewana już w połowie marca, ma szansę radykalnie odmienić dotychczasowe postrzeganie tej dość leciwej platformy. Wyrażenia lambda, współbieżne kolekcje czy zupełnie nowe API do obsługi czasu przybliżają ten jeden z najpopularniejszych języków programowania do konkurencji.
Tomasz Nurkiewicz
Początki z językiem Fortran
Niniejszy artykuł opisuje, jak zacząć pisanie programów w języku Fortran. Do tego celu wykorzystamy środowisko Eclipse z wtyczką Photran. Narzędzia te są całkowicie darmowe, dostępne do pobrania z Internetu.
Radosław Suduł
Concepts Lite. Rozszerzenie standardu C++14
Szablony języka C++ to mechanizm umożliwiający pisanie uogólnionego kodu, który kompilator może przystosować do dowolnego typu danych. Dzięki niemu programiści mogą wykorzystywać struktury danych zdefiniowane w bibliotece STL oraz pisać własny, generyczny kod. Powszechnie znanym ograniczeniem szablonów jest brak czytelnego sposobu informowania programisty, jakie cechy powinien spełniać typ, z którym szablon może zostać wykorzystany. Celem artykułu jest omówienie tego problemu, zademonstrowanie istniejących rozwiązań, a następnie przedstawienie mechanizmu Concepts Lite, który zostanie wprowadzony jako rozszerzenie języka C++ w 2014 roku.
Robert Matusewicz
PROGRAMOWANIE SYSTEMOWE
Jak napisać własny debugger w systemie Windows – część 1
Jedną z rzadziej używanych funkcjonalności będącej częścią WinAPI jest tzw. Debug API, a więc zestaw wszystkich narzędzi niezbędnych do zbudowania własnego, w pełni sprawnego debuggera. Zadaniem niniejszego artykułu jest zapoznanie czytelnika z możliwościami oferowanymi przez ów interfejs, oraz zachęcenie do spróbowania swoich sił na polu tworzenia narzędzi, które monitorują i kontrolują przebieg działania innych aplikacji w systemie. Zachęcam do dalszej lektury!
Mateusz “j00ru” Jurczyk
TESTOWANIE I ZARZĄDZANIE JAKOŚCIĄ
Badanie jakości kodu C++
Artykuł opisuje narzędzia, dzięki którym możliwa jest ocena jakości kodu napisanego w języku C++, aczkolwiek inne języki programowania powinny posiadać zbiór odpowiadających im narzędzi, które adresują podobne problemy. Artykuł zakłada, że czytelnik posiada ogólną wiedzę z języka C++ oraz środowiska GNU/Linux. Większość opisanych programów lub ich alternatywy można użyć w innych środowiskach niewielkim kosztem.
Sławomir Zborowski
LABORATORIUM BOTTEGA
Refaktoryzacja testów legacy w kierunku wykonywalnych specyfikacji. Część II: Techniki ułatwiające utrzymanie testów
W artykule przedstawiam techniki, które pomogą w pracy z testami w projekcie legacy (i nie tylko), a które profesjonalny programista powinien mieć w swojej „skrzynce z narzędziami”, czyli m.in. Test Data Builder i Assert Object. Mimo to należy pamiętać, że zrozumienie problemu, nad którym pracujemy, jest znacznie ważniejsze niż stosowane techniki i powoduje, że testy posiadają jeszcze większą wartość.
Rafał Jamróz
Brakujący element Agile Część 1: Feedback
W serii „Brakujący element Agile” opowiem o konkretnych i praktycznych technikach miękkich stosowanych przez dojrzałe zespoły Agile. Opisywane techniki są brakującym ogniwem, bez których Agile po prostu nie działa. Dowiesz się o modelu interakcji Satir, modelu NVC Rosenberga, frameworku środowiska myślenia (Thinking Environment®), procesie GROW i innych. Ich zrozumienie pozwala budować zespoły, które rozwiązują napotkane wyzwania, prowadzą zdrową komunikację w ramach zespołu oraz z klientem, w ciągły sposób rozwijają się i ulepszają metody pracy.
Paweł Badeński
PLANETA IT
Szczyt za szczytem
W skrócie: - Moja babcia powiedziała kiedyś, cytując swojego nauczyciela historii, że powinienem iść na studia z dziedziny, w której jestem najgorszy. Kiedyś zupełnie się z tym nie zgadzałem. Podczas pracy jako programista zrozumiałem, jak mądrą radę mi dała – wspomina Paweł Badeński, który podzielił się z nami swoimi przemyśleniami na temat rozwoju w branży IT.
Łukasz Sobótka
STREFA CTF
Ghost in the Shellcode 2014 – Pwn Adventure 2
Ś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.
Michał "Redford" Kowalczyk
KLUB LIDERA IT
Jak całkowicie odmienić sposób programowania, używając refaktoryzacji (część 6)
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.
Mariusz Sieraczkiewicz
KLUB DOBREJ KSIĄŻKi
"Scala od podszewki"
Marek Sawerwain