Programista 7/2018 (74)
Programista 7/2018 (74)
Rust to stosunkowo nowy gracz na rynku systemowych języków programowania. Choć jego historia sięga roku 2006, to o prawdziwej popularności można mówić dopiero w kontekście początku obecnej dekady. Został on wtedy wzięty pod skrzydła organizacji Mozilla, a niedługo później jego kompilator osiągnął poziom pozwalający mu skompilować samego siebie. Przez kolejne kilka lat Rust ulegał burzliwym zmianom, podczas których wiele oferowanych funkcjonalności znacznie się zmieniało, a nawet znikało na zawsze. Okres ten zakończył się 15 maja 2015 roku, kiedy ujrzała światło dzienne jego wersja 1.0. W tym artykule podjęto próbę użycia tego języka przez kompletnego nowicjusza, którego jedynym – w tym momencie – atutem jest całkiem niezła znajomość języka C++.
Niecałe dwa lata od opublikowania wersji 2.0, a jednocześnie zaledwie dwa miesiące od (ostatniego) wydania 2.9, Microsoft wypuszcza nową edycję języka TypeScript. Czy zmiany są aż tak istotne, że należało przekręcić licznik? A może jest to tylko kolejna aktualizacja, a numer wynika jedynie z tego, że nie chciano wydawać wersji 2.10? Przyjrzymy się, co nowego przygotowano dla programistów, i spróbujmy sobie odpowiedzieć na te pytania.
Jednym z założeń projektowych języka Java, przyjętych podczas jego tworzenia, było zwiększenie produktywności programistów, którzy będą z niego korzystać. Efektem takiej decyzji jest zastosowanie w Javie całego wachlarza rozwiązań ułatwiających rozwój oprogramowania. Prawdopodobnie najważniejszym z nich jest zwolnienie developerów z konieczności ręcznego zarządzania pamięcią dzięki zastosowaniu automatycznego odśmiecania pamięci.
W poprzednim artykule (wydanie numer 6/2018 (73)) opisałem podstawowe instrukcje arytmetyczne, logiczne oraz warunkowe realizowane przez rdzeń Cortex-M0. Przedstawiłem także sposób uruchamiania wybranych peryferiów oraz konfigurację środowiska programistycznego. Dzisiaj chciałbym bardziej skupić się na samym rdzeniu i omówić implementację stosu oraz działanie podprogramów i przerwań. Opisane eksperymenty, tak jak poprzednio, mogą być wykonane na platformie Nucleo-F031K6.
Projekt OpenSCAD jest systemem do parametrycznego modelowania brył 3D, a dokładnie tzw. pełnych brył (ang. solid object), które mają zastosowanie w inżynierii czy projektowaniu CAD, a ostatnio także w bardzo popularnej dziedzinie, jaką jest druk przestrzenny (druk 3D). Przy czym projekt OpenSCAD nie jest typowym programem z interfejsem graficznym, np. wzorem programu FreeCAD czy innych komercyjnych aplikacji.
W ostatnich latach mnożą się firmy zajmujące się organizacją szkoleń IT i kursów programistycznych. Niestety obserwuje się tendencję spadku jakości usług. W związku z tym zapytałem ponad stu uczestników szkoleń IT, organizowanych przez różne firmy, o oczekiwania i uwagi odnośne organizacji oraz przeprowadzania szkoleń.
To, że tworzenie gier nie jest domeną wyłącznie wielkich firm z branży, jest oczywiste. Małą grę na PC, telefon czy przeglądarkę napisał niemal każdy. Narzędzia takie jak Unity mogą pochwalić się przenośnością na praktycznie wszystkie platformy, a poradników i videotutoriali jest w sieci tyle, że życia by nie starczyło na zapoznanie się z każdym. Ale… Jak zrobić grę na Nintendo DS?
Wireflows są hybrydą, w której wireframes (szkice ekranów) są włączone w schemat ścieżki użytkownika. Dzięki temu wystarczy rzut oka, by zrozumieć, jak będzie wyglądać każdy ekran oraz jak użytkownik będzie pomiędzy nimi się poruszał.
CTFZone 2018 Quals to kwalifikacje do konkursu CTFZone 2018, który odbędzie się we wrześniu 2018 w Moskwie. Za organizację wydarzenia odpowiadał rosyjski zespół BIZone, opracowując 24 interesujące zadania, na rozwiązanie których było 36 godzin. Jednym z nich jest opisane w tym artykule zadanie z kategorii Forensics, czyli analizy śledczej.
W swojej ostatniej powieści amerykański pisarz Dan Brown przedstawił postać futurysty Edmonda Kirscha, który starał się odpowiedzieć na pytanie nurtujące ludzkość od wieków – „Dokąd zmierzamy?”. W ramach poniższego artykułu postaramy się odpowiedzieć na tak postawione pytanie, jednakże odnosząc je do informatycznych systemów bezpieczeństwa. Przyszłość jest bowiem bardzo ciekawa i proponuje bardzo interesujące rozwiązania.