REKLAMA

Programista 01/2016 (44) – Algorytmy w chmurach – spis treści

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.

44stol

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