Programista 4/2020 (91)
Programista 4/2020 (91)
Czyli jak poradzić sobie z podatnościami w obrazach
Od zaprezentowania światu Dockera minęło już kilka lat. W ciągu tego czasu stał się narzędziem, bez którego wiele osób nie wyobraża sobie codziennej pracy. Z drugiej strony – osobom, które dopiero zaczynają swoją przygodę z konteneryzacją, może wydawać się, że Docker jest rozwiązaniem wszystkich ich dotychczasowych problemów – w tym również bezpieczeństwa aplikacji. Czy zatem aplikacja uruchomiona w kontenerze dockerowym jest bezpieczna?
4/2020 (91)
Wsteczna kompatybilność jest kluczową cechą języka C++. Programistom cecha ta z reguły kojarzy się negatywnie, ale należy pamiętać, że to ona przyczyniła się do tak wysokiej popularności języka. W tym artykule przyjrzymy się szczególnemu rodzajowi wstecznej kompatybilności – kompatybilności na poziomie ABI – oraz zobaczymy, jak wpływa ona na konstrukcję języka oraz biblioteki standardowej.
4/2020 (91)
Czy maszyna może odczuwać emocje? Wielu z nas odrzuca taką możliwość, uznając, że pozbawione duszy roboty nigdy nie będą w stanie poznać radości, strachu czy smutku. Taką wizję wkładamy między bajki, dopuszczając podobny scenariusz tylko w filmach i animacjach w rodzaju „Wall-E” czy „Krótkiego spięcia”. Tymczasem świadome i empatyczne roboty są już wokół nas i stanowią jeden z najważniejszych trendów technologicznych 2020 roku.
4/2020 (91)
Wraz z rozwojem IT coraz więcej danych jest wymienianych pomiędzy aplikacjami, a dodatkowo coraz większa część tych danych jest przesyłana bez udziału użytkowników. Urządzenia komunikują się między sobą wtedy, kiedy same zdiagnozują taką potrzebę – nie czekając na interakcję z użytkownikiem. Taki sposób korzystania z infrastruktury komputerowej rzuca nowe wyzwania twórcom oprogramowania. Po pierwsze, ilość danych w skali świata jest coraz większa, a po drugie – koszt związany z ich przetwarzaniem powinien być jak najmniejszy.
4/2020 (91)
Sieć Ethernet stanowi obecnie jeden z najbardziej popularnych sposobów przesyłania danych. W tym artykule przyjrzymy się połączeniu pomiędzy warstwą fizyczną a warstwą łącza danych, wykorzystując do eksperymentów układ FPGA. Najpierw za pomocą wbudowanego w środowisko programistyczne analizatora stanów logicznych zaobserwujemy przebiegi na magistrali RMII, a następnie, korzystając z wcześniejszych obserwacji, zaimplementujemy własną obsługę połączenia z prędkością 100 Mb/s.
4/2020 (91)
Podróż po algorytmach tekstowych, którą odbyliśmy w poprzedniej części serii, była dla mnie naprawdę fascynująca. Kto by pomyślał, że takie proste – wydawałoby się – zagadnienie, jakim jest przetwarzanie tekstu, może być takie ciekawe? Ostatnio zainteresowałem się więc kolejnym algorytmem, który dziś weźmiemy na warsztat, a jest nim poszukiwanie najdłuższego wspólnego podciągu albo, mówiąc prościej, wyznaczanie różnic edycyjnych pomiędzy dwoma ciągami.
4/2020 (91)
Testy binarne są istotnym obszarem analizy danych. Istnieje wiele sposobów opisu jakości takich testów. Celem tego artykułu jest przedstawienie najważniejszych z nich, czyli macierzy pomyłek, krzywych ROC, PR i krzywych kosztu.
4/2020 (91)
W swojej kilkudziesięcioletniej historii testowanie oprogramowania mocno ewoluowało. Na przestrzeni lat zmieniały się nie tylko definicje czy podejście, ale przede wszystkim postrzeganie i rola testowania w procesie wytwarzania oprogramowania. Dziś nie wypada wątpić ani w zasadność, ani zalety testowania, a firmy coraz śmielej traktują testerów jako pełnoprawnych członków zespołów projektowych.
4/2020 (91)
Machine Learning (uczenie maszynowe) to dzisiaj bardzo modny temat. Zarówno korporacje, jak i mniejsze firmy prowadzą coraz więcej projektów badawczych z wykorzystaniem uczenia maszynowego. Menedżerowie, tech leadowie i inni liderzy cieszą się, że są angażowani do tego typu przedsięwzięć. Czyhają jednak na nich trudne do przewidzenia pułapki. Pułapki unikalne, nieznane z innych projektów. W tym artykule dowiesz się o jednej z nich i poznasz pewien scenariusz, który mógłby wydarzyć się naprawdę.
4/2020 (91)
Wprowadzenie mikroprocesorów na rynek komercyjny na początku lat 70-tych XX wieku zaowocowało powstaniem najrozmaitszych systemów komputerowych, oferowanych przez wielkie firmy, jak i „garażowych”, niszowych hobbystów. Szczególnie konstrukcje 8-bitowe, jako stosunkowo proste i tanie, wyzwoliły twórczy potencjał konstruktorów. Rozgrzały także rywalizację o rynek wśród producentów mikroprocesorów.
4/2020 (91)