Programista 12/2018 (79)
Programista 12/2018 (79)
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#.
12/2018 (79)
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.
12/2018 (79)
Branża rozwija się bardzo intensywnie, a pracownicy mogą liczyć na coraz lepsze propozycje pracy. Dotyczy to głównie seniorów, których zarobki w 2018 roku wzrosły aż o 8,8%1. Kompetencje programistów muszą podążać za pojawiającymi się stale innowacjami, a to z kolei duże pole możliwości dla rozwoju zawodowego. Czy trzeba dopasowywać się do nowych sytuacji w życiu zawodowym? Czy pracodawca zatrudniający tysiące pracowników potrafi podejść indywidualnie do każdego z nich? Ścieżki karier opartych na dużych zmianach prześledziliśmy na przykładzie globalnej firmy Luxoft, zajmującej się doradztwem w zakresie rozwiązań cyfrowych. Podobne mechanizmy można zauważyć u wielu pracodawców branży IT w Polsce.
12/2018 (79)
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.
12/2018 (79)
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.
12/2018 (79)
Ś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.
12/2018 (79)
„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ć.
12/2018 (79)
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.
12/2018 (79)
Czy Twoje oprogramowanie jest bezpieczne? Być może. A czy Twój procesor również jest bezpieczny? Tak? Na pewno?
12/2018 (79)
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.
12/2018 (79)
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 m2? Na te i inne pytania dotyczące nawigacji znamy już odpowiedź dzięki technologii XXI w.
12/2018 (79)