Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.
PROGRAMOWANIE SYSTEMÓW OSADZONYCH
FPGA programowanie w języku C (>>więcej o tym artykule<<)
C oraz C++ to nadal jedne z najczęściej stosowanych języków programowania. Ich popularność jest tak duża, iż mimo rozwoju nowych technologii nadal są one powszechnie wykorzystywane do tworzenia programów dla nowych rozwiązań sprzętowo-programowych. Takim rozwiązaniem, istotnie różniącym się od typowego procesora, z jakim stykamy się w codziennej pracy, jest technologia FPGA.
Marek Sawerwain
PROGRAMOWANIE SYSTEMOWE
radare2 – środowisko do inżynierii wstecznej
Capstone: fundament do deasemblacji (>>więcej o tym artykule<<)
Środowisko narzędzi składających się na radare2 (w skrócie zwane r2) może służyć niemal do wszystkiego: od przeglądu plików i katalogów do służenia za kalkulator. Jednakże zasadniczym celem r2 jest zdefiniowanie zbioru gotowych bibliotek i programów do reverse engineeringu. Od początku projektowi przyświecała idea systemu UNIX, a więc modelowania minimalistycznych programów o jasno zdefiniowanym i jednym zadaniu do wykonania w sposób poprawny. Dzięki otwartości środowiska developerów na przenośność kodu na wszystkie popularne platformy (BSD, Haiku, Linux, Mac OS X, Solaris, Windows itp.) i szeroki wachlarz obsługiwanych formatów danych framework ten znajduje liczne zastosowanie wśród szerokiej rzeszy programistów. W niniejszym artykule przyjrzymy się programowi w wersji 0.9.9. Rzucimy również okiem na Capstone – framework do deasemblacji kodu maszynowego.
Kamil Rytarowski
PROGRAMOWANIE APLIKACJI WEBOWYCH
Umbraco. System zarządzania treścią dla aplikacji ASP.NET
Technologia ASP.NET to jedno z najpopularniejszych narzędzi do implementacji dynamicznych witryn internetowych. Jest to wygodne narzędzie dla programistów. Aczkolwiek ręczna edycja widoków w oparciu o składnię Razor może być wymagająca dla redaktorów witryny. Z tego powodu tworzone są systemy zarządzania treścią (CMS). Jednym z nich jest Umbraco. Implementuje on funkcjonalności CMS, oferując stosunkowo funkcjonalny sposób edycji zawartości witryny dla redaktorów i jednocześnie nie powoduje utraty elastyczności programistycznej dostarczanej przez technologię ASP.NET MVC.
Dawid Borycki
PROGRAMOWANIE W CHMURZE
Algorytmy w chmurach. Część 1: Gossip (>>więcej o tym artykule<<)
Coraz więcej aplikacji, gier oraz usług w Internecie dostarczanych jest do klientów z wykorzystaniem tzw. technologii chmurowych. Istnieje ku temu wiele powodów. Niniejszy artykuł jest pierwszym z serii wprowadzenia do algorytmów stosowanych w chmurach, bez których ich istnienie byłoby technicznie niemożliwe. W każdym kolejnym odcinku serii przedstawiony będzie wybrany algorytm lub struktura danych. Nie będą to jednak wyczerpujące artykuły, lecz wprowadzające w temat, na podstawie których czytelnik będzie w stanie na własną rękę pogłębić wiedzę. Ponieważ jest to pierwszy odcinek, przedstawienie problemu poprzedzimy krótką notką historyczną.
Sławomir Zborowski
PYTHON HAS POWER
RequireJS – asynchroniczne ładowanie zależności w JavaScript
Na współczesne aplikacje sieciowe składa się całe multum kodu JavaScript, który wypadałoby zorganizować w taki sposób, by mieć nad nim kontrolę zarówno w początkowej fazie rozwoju aplikacji, jak i dużo później, kiedy aplikacja już hula pełną parą. Mądre głowy wpadły na pomysł, aby kod rozbić na odrębne moduły, z kolei jakiś czas później następne mądre głowy przygotowały narzędzia, dzięki którym proces ten staje się intuicyjny i nieskomplikowany. Poznajmy jedno z nich – RequireJS.
Damian Czapiewski
BEZPIECZEŃSTWO
Mechanizm Service Workers – czym jest i dlaczego jest niebezpieczny
Mechanizm Service Workers został wprowadzony w najnowszych wersjach przeglądarek internetowych, by rozwiązać problem, z którym świat aplikacji webowych boryka się od dawna. Mianowicie: jak aplikacja powinna się zachowywać w przypadku utraty połączenia z Internetem. W tym artykule omówimy ogólnie zasadę działania tego mechanizmu i pokażemy główne zagrożenia, które czyhają na twórców stron internetowych.
Michał Bentkowski
LABORATORIUM BOTTEGA
Biznes i IT żyją w tym samym miejscu, ale w innym czasie – jak dopasować protokół komunikacyjny?
Prawdopodobnie to wrodzona dociekliwość oraz zamiłowanie do poszukiwania modeli, struktur i wzorców spowodowały, że zajmujesz się projektowaniem i programowaniem systemów. Chcemy zaprosić Cię do podróży po kolejnym systemie, który jest znacznie bardziej złożony niż te, z którymi spotykasz się na co dzień. To twój mózg. Na podstawie tej „technicznej” wiedzy opracowano wiele skutecznych technik, które rozwiązują konkretne problemy polegające na niedopasowaniu „protokołów komunikacyjnych” w zespole lub pomiędzy biznesem a IT.
Sławomir Sobótka, Dorota Pawelec-Sobótka
FELIETION
Niedoskonały C++
Jestem wielkim fanem języka C++. Był to pierwszy język programowania, którego uczyłem się na poważnie. Wracanie do C++ sprawia mi zawsze przyjemność. Daje możliwość pisania ładnie, wydajnie i na wiele sposobów, co zaspokaja moje dążenie do twórczej pracy. Możliwości są niemal nieograniczone. Język ten posiada jednak również wady. Właściwie mnóstwo wad. Być może będzie to pewnego rodzaju świętokradztwo, jednak chciałbym poruszyć tematy bolesne dla każdego zwolennika tego języka. Niestety, ale uwielbienie nie może powodować traktowania C++ jako ideału, którym nie jest.
Grzegorz Kokot
Code Review – strata czasu czy zysk?
Jako programiści codziennie poświęcamy swój czas na dostarczanie nowych rozwiązań i rozwijanie już istniejących. Przekłada się to na kolejne linie kodu w już i tak często rozbudowanym projekcie. O ile wersjonowanie pozwala na komfortowe wprowadzanie zmian bez obawy o utratę tego, co już udało się stworzyć, zagwarantowanie przejrzystości kodu pozwala na dalszy sprawny rozwój projektu. Jak jednak dostarczać kod zrozumiały dla całego zespołu? Czy warto poświęcić dodatkowy czas na jego korektę? Co tak naprawdę można zyskać, stosując praktykę przeglądu kodu? Odpowiedzi na te i inne pytania związane z omawianą techniką w dalszej części artykułu.
Piotr Wesołowski
STREFA CTF
Insomni'hack teaser 2016 – GreenBox
Trzeci rok z rzędu odbywający się w Genewie CTF Insomni'hack został poprzedzony krótkim teaserem rozgrywanym przez Internet. Również trzeci rok z rzędu nasza drużyna zakończyła go na pierwszym miejscu, choć trzeba przyznać, iż z roku na rok jest coraz trudniej, zarówno z uwagi na siłę konkurencji, jak i również przez stale rosnący poziom zadań serwowanych uczestnikom.
Gynvael Coldwind
KLUB LIDERA IT
Konteksty lidera technicznego
W jaki sposób powinien lider współpracować z zespołem? Ingerować, określać sposób działania, czy być z boku i pomagać tylko wtedy, kiedy to jest potrzebne? Powinien rozliczać z realizacji zadań, czy tylko z osiągniętego celu? Jak dużo należy planować wcześniej, a jak dużo zostawić na później? Na te pytania nie ma jednej odpowiedzi, gdyż zależy ona od kontekstu. W tym artykule przyjrzymy się różnym narzędziom, które pozwolą zidentyfikować kontekst, w którym znajduje się lider, i określimy strategie, które mają szansę być efektywne.
Mariusz Sieraczkiewicz
PLANETA IT
Humor z zeszytów
Jest takie przekleństwo: „Obyś cudze dzieci uczył”. Wprawdzie nie uczę dzieci, a osoby dorosłe i niekoniecznie jest to przekleństwem, tylko dobrą zabawą, niemniej jednak jakoś tak mi się to powiedzenie nasunęło w odniesieniu do dzisiejszego tematu. W tym artykule dzielę się najzabawniejszymi tłumaczeniami, jakimi obdarzyli mnie w tym roku studenci uczęszczający na tłumaczenia informatyczne, oraz publikuję ciekawy list pewnego czytelnika magazynu „Programista”.
Łukasz Piwko