Programista 6/2018 (73)
Programista 6/2018 (73)
W jakim kierunku rozwijać się będą języki programowania? Pytanie wbrew pozorom jest dość trudne i możemy wskazać raczej tylko tendencje, jak np. wzrastającą popularność języków funkcyjnych lub dalsze zwiększanie roli języków skryptowych czy interpretowanych. Jednakże powinniśmy też wziąć pod uwagę fakt, iż od dłuższego czasu rozwijają się nowe podejścia do obliczeń, a takim nowym modelem obliczeniowym, jaki warto wymienić, są obliczenia kwantowe.
Pierwszy i dotychczas jedyny artykuł o języku D pojawił się w „Programiście” w wydaniu 6/2012, czyli niemal sześć lat temu. Od tego czasu trochę się pozmieniało: referencyjny kompilator dmd doczekał się ponad dwudziestu nowych wersji, a jego frontend został przepisany z C++ do D. Ponadto pojawiła się coroczna konferencja DConf (ostatnia edycja odbyła się w maju 2018 w Monachium), a pieczę nad samym językiem przejęła fundacja non-profit: The D Language Foundation. Celem poniższego artykułu jest przedstawienie wybranych funkcjonalności oferowanych przez ten język.
ARM Cortex-M0 jest najmniejszym mikrokontrolerem z rodziny ARM. Jego główne obszary zastosowania to drobna elektronika użytkowa oraz czujniki dla internetu rzeczy. Postaram się przedstawić trzy przykładowe programy, które powinny pomóc rozpocząć zabawą z tym sprzętem. Aby poznać go bliżej, programy przygotowano w języku asembler. Z tego powodu tekst może okazać się także interesujący dla osób, które chciałyby przyjrzeć się trochę dokładniej, jak działają współczesne mikrokontrolery.
Zaglądamy do disassembly programów w C++
Wiele współczesnych języków programowania to języki bardzo wysokopoziomowe. Operujemy w nich na takich pojęciach, jak klasa, dziedziczenie, metody wirtualne czy LINQ. Tymczasem procesor komputera nie ma pojęcia o żadnej z tych konstrukcji, będąc na dobrą sprawę takim bardziej zaawansowanym kalkulatorem. Czy zastanawialiście się kiedyś, w jaki sposób taki wysokopoziomowy kod jest wykonywany później przez procesor?
Przetwarzanie obrazów jest jedną z najbardziej interesujących gałęzi informatyki. W ogólnym rozrachunku jest to dziedzina przetwarzania sygnałów. Zauważmy bowiem, że obraz jest dyskretnym sygnałem dwuwymiarowym. Operacje, które jesteśmy w stanie zrealizować na nim, mają na celu na przykład poprawienie jego jakości czy też uwypuklenie pewnych detali. Nierzadko jednak czas, który jest niezbędny do zrealizowania takich algorytmów, jest bardzo długi. Rozwiązaniem tego problemu może być zrównoleglenie obliczeń w przetwarzaniu obrazów.
Przykład wykorzystania metody brute force
Algorytm wyszukiwania elementów spełniających pewien warunek, spośród danej ilości elementów, przy użyciu komputera kwantowego znajduje rozwiązanie z dużo mniejszą ilością kroków niż komputer klasyczny.
W trakcie tego lata odbyły się kwalifikacje do CTFa przygotowanego przez korporację Google. Chcielibyśmy przedstawić naszym czytelnikom rozwiązanie jednego z najtrudniejszych zadań z kategorii pwn o nazwie Sandbox Compat.
4 edycje, setki ekspertów i tysiące uczestników z całego świata – tak podsumować można dotychczasowe konferencje .NET DeveloperDays. W tym roku we wrześniu odbędzie się piąta odsłona popularnej konferencji skierowanej do programistów, architektów i specjalistów wykorzystujących do swej pracy platformę .NET. Sprawdźcie, kogo będzie można spotkać w warszawskim EXPO XXI w drugiej połowie września.
16 czerwca tego roku odbyła się pierwsza edycja konkursu Midnight Sun CTF1, w którym uczestniczyliśmy razem z kilkoma innymi członkami p4. Został on zorganizowany wspólnie przez KTH (Królewski Instytut Technologiczny w Sztokholmie), szwedzki zespół HackingForSoju oraz firmę SaaB. Termin oraz nazwa CTFa nie jest przypadkowa. Midnight Sun2 to zjawisko naturalne, które można zaobserwować w letnich miesiącach w krajach leżących blisko koła podbiegunowego. Jak można się domyślić, polega ono na tym, że o północy słońce zamiast być za horyzontem znajduje się ciągle na niebie. I faktycznie, dokładnie to stało się podczas trwania CTFa – w teorii. W praktyce rzeczywiście noc była bardzo krótka, a północ jasna, co znacznie ułatwiło nam wytrwanie całej nocy pełnej łamania zadań.