pnytko.pl


o programowaniu, technologii i nauce

Multiprocessing w Pythonie

Wstęp Czym jest GIL? Global Interpreter Lock jest mechanizmem którego używa interpreter Pythona w celu wykonywania procesów. Wykonuje on tylko jeden proces na raz nawet gdy procesor jest wielordzeniowy. Moduły oparte na języku C typu NumPy pozwalają na ominięcie ograniczeń GIL’a. Konkurencja i paralelizm Konkurencja oznacza, że wykonywane są dwa lub więcej obliczeń w jednym okresie czasowym (time frame). Paralelizm … Read More


Wielki przewodnik po module NumPy

Instalacja NumPy Instalacja odbywa się najprościej za pośrednictwem środowiska Anaconda przy pomocy polecenia pip install numpy lub conda install numpy w zależności od repozytorium z którego chcemy skorzystać. Cechy Numpy Jądro biblioteki NumPy jest stworzone w języku C wobec tego wydajność tablic (list) jest duża. Również wymuszony jeden typ danych dla całej tablicy warunkuje większą prędkość względem klasycznych Pythonowych list. … Read More


Wczytywanie pliku tekstowego/csv jako tablicy w C++

Wymagane biblioteki Aby wykonać wczytanie pliku tekstowego lub csv jako tablicy wymagane są w tym przypadku 3 biblioteki: iostream – podstawowa biblioteka obsługi wejścia/wyjścia fstream – podstawowa biblioteka do obsługi plików zewnętrznych (filestream) string – podstawowa biblioteka do formatowania stringów Rozbicie kodu źródłowego Poprzez użycie using namespace std używamy przestrzeni nazw. Kolejnym krokiem jest zdefiniowanie funkcji typu void, czyli takiej, … Read More


Obsługa bibliotek C++ przy pomocy pakietu vcpkg

Co to jest vcpkg? Jest to udostępnione na Githubie narzędzie służące do instalacji i zarządzania bibliotekami w języku C++, które powiązane jest z IDE Visual Studio od Microsoftu. Można zobaczyć w tym narzędziu analogię do Pythonowej Anacondy. Wymagania dla vcpg Aby zainstalować pakiet vcpkg wymagane są: System operacyjny >=Windows 7 IDE >Visual Studio 2015 update 3 Git Instalacja przez git … Read More


Przekierowania interpretera

Strumienie komunikacyjne i ich deskryptory standardowe wejście (standard input – stdin) – deskryptor 0 standardowe wyjście (standart output – stdout) – deskryptor 1 standardowe wyjście błędu (standard error output – stderr) – deskryptor 2 Operator przekierowania stanowi znak „>„. Przekierowania na strumień wyjścia Na potrzeby przykładu stwórzmy prosty program w Pythonie, opierający się o pętlę liczącą od 0 do 1000 … Read More


Kontrola wersji w Pythonie ze środowiskiem Anaconda

Wstęp Python nie posiada kompatybilności wstecznej wobec tego pojawia się wiele niesnasek na płaszczyźnie zgodności między wersjami. Język ten obfituje w przeróżne moduły, których wersja musi być zgodna z wersją Pythona. Mało tego same moduły często muszą być zgodne między sobą. Z pomocą przychodzi nam środowisko Anaconda. Instalacja środowiska Pobieramy Anaconda Individual Edition z https://www.anaconda.com/products/individual, przeklikujemy wszystko jak leci, włączamy … Read More


Digitalizacja i kalibracja map historycznych

Jak można ratować mapy historyczne? Wiele map historycznych ulega zniszczeniu lub nadniszczeniu w wyniku degradacji ich nośnika – czyli na ogół papieru. Papier jest mało odporny na zniszczenia mechaniczne i łatwo chłonie wilgoć wobec tego z czasem wiele danych jest utracanych bezpowrotnie. Sposobem na uwiecznienie danych mapowych jest digitalizacja i kalibracja map historycznych. Zniszczone lub nadniszczone mapy można poprawić przy … Read More


Kompromis wydajnościowo-czasowy w językach wysoko i niskopoziomowych

Wstęp Rzeczą oczywistą jest fakt, iż języki niskopoziomowe oferują lepszą wydajność obliczeniową względem języków wysokopoziomowych. Wynika to z możliwości definiowania typu danych na poziomie bajtowym, implementacja wskaźników i ich charakter kompilowany. Jednakże należy zwrócić uwagę na czynnik, którym jest czas. Teoretycznie pisanie programu np. obliczeniowego powinno odbywać się w niskopoziomowym języku takim jak C albo Fortran. Skomplikowana składnia, sprawia jednak, … Read More


Co to jest LiDAR?

Wstępnie o LiDARZe Coraz gorętszym tematem staję się w ostatnim czasie LiDAR. Swego czasu głośno było o negatywnej opinii Elona Muska o tej technologii, jednak po pewnym czasie wyciekły informacje mówiące o tym, że Tesla testuje sensory LiDARowe. Odpowiadając na pytanie o definicję, warto najpierw rozszyfrować skrót, który stoi za tą technologią. Po jego rozwinięciu otrzymujemy nazwę: Light Detection and … Read More


Technologia Łańcucha Bloków – Co to jest Blockchain?

Co to jest Blockchain? Artykuł ten ma za zadanie choć w nikłym stopniu usystematyzować medialny szum i przedstawić użytkownikowi „Jak działa Blockchain?”, zwany również łańcuchem bloków – w sposób możliwie prosty. Technologia Łańcucha Bloków wymaga szerszego spojrzenia na wiele problemów, aby móc ją zrozumieć, dlatego cały poniższy artykuł to zbiór pojęć, które na końcu połączą się w logiczną całość. Podstawowa … Read More