REKLAMA

Programista 12/2018 (79) – marzec 2019 – Pakiet i karta sieciowa – czyli jak to się programuje – 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.

BIBLIOTEKI I NARZĘDZIA

Generowanie dokumentów w formacie docx

W roku 2006 Microsoft zaproponował jednolity format zapisu dokumentów biurowych – tekstowych, arkuszy oraz prezentacji – o nazwie Office Open XML. Został on przyjęty bardzo ciepło, bo już w grudniu 2006 został ratyfikowany przez stowarzyszenie firm ECMA International, zaś niecałe dwa lata później przegłosowany przez ISO jako norma i od tego czasu przez tę organizację zarządzany. Odejście od zamkniętych, binarnych formatów pakietu Microsoft Office otworzyło drogę do otwierania i generowania dokumentów Microsoft Office przez programy firm trzecich; dziś dowiemy się, w jaki sposób samodzielnie wygenerować dokument tekstowy w formacie docx w języku C#.

Wojciech Sura

JĘZYKI PROGRAMOWANIA

Paradygmat obiektowy a funkcyjny

Przejście ze sposobu myślenia, postrzegania i rozwiązywania zadań z paradygmatu obiektowego na funkcyjny jest trudne, jednak wraz ze zrozumieniem modelu funkcyjnego otrzymujemy nowe wyobrażenie o sposobie rozwiązywania dotychczasowych problemów programistycznych. Uzyskujemy potężne narzędzia pozwalające na wykorzystanie abstrakcji bezpośrednio wynikających z definicji matematycznych – w szczególności z teorii zbiorów. Innymi słowy nasz warsztat programistyczny zyskuje wiele nowych walorów.

Dawid Furman

O niezawodności języków programowania na przykładzie Elixir i Erlang

Na niezawodność systemów informatycznych składa się wiele elementów. Jednym z nich jest sam język programowania, który poprzez swoją architekturę i możliwości bardzo ułatwia tworzenie takich systemów. Takimi językami są Erlang i jego młodszy brat Elixir. Niezmienność stanu, paradygmat funkcyjny i zaimplementowany model wielowątkowości to ich istotne cechy, które wpływają na dużą niezawodność stworzonych w nich programów.

Krzysztof Kempiński

PROGRAMOWANIE SYSTEMÓW OSADZONYCH

Były sobie pakiet i karta sieciowa, czyli jak to się programuje (>>więcej o tym artykule<<)

W dzisiejszym świecie nieustannie słyszymy o pakietach przesyłanych przez sieć. Czym jest taki pakiet? W najprostszym ujęciu jest to odpowiednio sformatowana jednostka informacji. Co to znaczy? Otóż musi mieć w ściśle określony sposób wyszczególniony adres, dokąd ma trafić, a także mieć w odpowiednim miejscu zapisaną zawartość wiadomości. Aby został zrozumiany przez maszynę, musimy go przetłumaczyć z języka ludzkiego (jeśli wiadomość zawiera słowa) na liczby, a z kolei liczby te na ciągi bitów. To jednak nie wszystko: teraz należy pakiet wysłać, a z drugiej strony go odebrać. Za tę część odpowiedzialna jest karta sieciowa, działająca pomiędzy procesorem a fizycznym medium transferującym informacje – to oczywistość, jednak jak to się programuje? Gdzie i jaki software pomoże nam odebrać, odczytać lub wysłać takie pakiety? Odpowiedź brzmi: sterownik sieciowy.

Zyta Szpak

PROGRAMOWANIE GIER

Zadania i jednostki = nowa wydajność w Unity

Środowisko, silnik lub projekt Unity rozwija się nieustannie, minione miesiące przyniosły wiele nowości, w tym chyba najbardziej popularnym (oraz dzięki obecności wersji darmowej łatwo dostępnym) systemie do tworzenia gier. Jedną z większych zmian w API Unity jest wprowadzenie wzorca projektowego ECS – Entity Component System. Choć nadal jest to projekt o statusie beta, to jednak na tyle dojrzały, iż warto sprawdzić jego przydatność oraz zapoznać się z samym wzorcem projektowym ECS.

Marek Sawerwain

WYWIAD

Rozmowy o Soft Skillach w IT ze Sławomirem Sobótką

„Widzimy w ostatnich latach zwiększenie świadomości istnienia ogromnego obszaru wiedzy, który nie dotarł jeszcze do IT. Firmy inwestują w umiejętności miękkie, więc programiści i programistki, widząc efekty, chcą więcej. Mamy również grupę ludzi, którzy potrafią mówić o tematach miękkich w sposób przyswajalny dla branży IT” – mówi Sławomir Sobótka, założyciel Bottega IT Minds. Ze Sławkiem rozmawiamy o Soft Skillach i o tym, czy i dlaczego programiści oraz programistki powinni je rozwijać.

ALGORYTMIKA

Wybrane algorytmy i struktury danych. Część 4

W poprzedniej części artykułu skupiliśmy się na pierwszej „dwuwymiarowej” strukturze danych, czyli na drzewie. Jego dwa podstawowe zastosowania: drzewa binarne i drzewa poszukiwań binarnych są jednak na tyle szerokim tematem, że w artykule udało się opisać tylko te dwa konkretne przypadki użycia wspomnianej struktury danych. Tym razem postaram się więc podać kilka innych przykładów zastosowania drzew.

Wojciech Sura

BEZPIECZEŃSTWO

Ataki na procesory (>>więcej o tym artykule<<)

Czy Twoje oprogramowanie jest bezpieczne? Być może. A czy Twój procesor również jest bezpieczny? Tak? Na pewno?

Wojciech Macek

Praktyczna strona modeli zagrożenia (>>więcej o tym artykule<<)

Jako programista i inżynier bezpieczeństwa koncentrujący się raczej na praktycznej stronie ataków i obrony przed nimi model ataku kojarzy mi się często z różnymi abstrakcyjnymi prezentacjami w PowerPoincie, które – zamiast informować – głównie ładnie wyglądają albo próbują sprzedać jakiś produkt.

Jarosław Jedynak

PLANETA IT

Jak nawigować bez użycia GPS?

Laska Jakuba, astrolabium, sekstant, radioodlogłościomierz czy busola przez wieki służyły ludziom do wyznaczenia kierunku podróży w mniej lub bardziej precyzyjny sposób. Czy ich prosta konstrukcja i genialne działanie to coś nadzwyczajnego? W obecnych czasach niekoniecznie. Więc jak nawigować w XXI w., gdzie horyzont kończy się 100 m dalej na bloku lub galerii handlowej? Jak znaleźć bezbłędnie właściwe okienko w gmachu urzędu albo stoisko na hali targowej liczącej kilka tysięcy metrów kwadratowych? Na te i inne pytania dotyczące nawigacji znamy już odpowiedź dzięki technologii XXI w.

Łukasz Marchewka

KLUB DOBREJ KSIĄŻKI

Kodowanie z Minecraftem®

Mariusz „maryush” Witkowski