Symulator pożaru lasu – założenia i pierwsze kroki

Na studiach spotkasz się z wieloma typami zajęć. Są laboratoria, są ćwiczenia i wiele innych. Spośród wszystkich najbardziej lubię projekty. Mam wyznaczone zadanie, które muszę wykonać do określonego dnia. I nikt mnie nie zmusza do tego aby użyć konkretnego sposobu rozwiązania problemu. Kłopotem nie jest także czas. Co prawda istnieją odgórnie …

Uniform Initialization – prostota wypełniania struktur danych

Programując w C++, z pewnością wiesz jak inicjuje się zmienne. Nie jest to czynność skomplikowana. Trochę więcej problemów zachodzi kiedy musisz zainicjować tablicę lub jakiś kontener. Stosujesz wtedy pewnie pętlę for. Jeśli musisz dodać kilka lub kilkanaście elementów do kontenera vector, stosujesz metodę push_back, wywołując ją ręcznie albo w pętli. …

Dodajemy szyfrowanie – Apache, Let’s Encrypt Certbot i SSL

Lwia część stron internetowych posiada już certyfikat. „Zielona kłódeczka”, która zapewnia nas o bezpieczeństwie staje się coraz bardziej istotnym punktem witryny. Wg raportu Google w 2016 roku prawie 25% witryn korzystało z protokołu HTTPS. Google i inne firmy już od dawna informują, że nieszyfrowane strony będą miały gorsze pozycjonowanie. W rezultacie dotrze do nich …

weak_ptr – inteligentne wskaźniki

Omówiliśmy unique_ptr i shared_ptr. Jesteśmy bardzo blisko końca naszej fascynującej wędrówki przez świat inteligentnych wskaźników. Został nam do omówienia ostatni gatunek. Weak_ptr. W tłumaczeniu na polski byłby to „słaby wskaźnik”. Czym może się charakteryzować? Czy potrzeba nam w programowaniu słabeuszy? Tytułowa „słabość” weak_ptr polega na tym, że nie posiada on …

shared_ptr – Inteligentne wskaźniki

W poprzednim artykule zajmowaliśmy się pierwszym z „inteligentnych” wskaźników – wskaźnikiem unikalnym (unique_ptr). Unique_ptr jest bardzo fajnym wskaźnikiem, ale nie w każdej sytuacji możemy skorzystać z jego dobrodziejstw. Czasami potrzebujemy „współdzielić” obiekt i jego własności między dwoma lub więcej miejscami w programie. Załóżmy, że tworzymy aplikację obsługującą przychodnię. Mamy trzy rodzaje …

unique_ptr – inteligentne wskaźniki

Wielokrotnie tworząc jakąś aplikację w C/C++ miałeś pewnie problem ze wskaźnikami. To jest jedna z największych zalet C++, a jednocześnie najgorsze przekleństwo. Wskaźniki pozwalają na bezpośrednią kontrolę nad przydziałem pamięci, a jednocześnie ich użycie może spowodować powstanie trudnych do wykrycia błędów. Osoby rozwijające standard C++ wiedziały o tym problemie. Po …

Ukrywanie plików w systemie Windows – cz I

Komputer jest bardzo ciekawą maszyną. Wszystkie informacje, które przetwarza nasz cyfrowy pomocnik, są przechowywane w formie bitów, zer i jedynek. W tej formie zapisywana jest każda informacja – zdjęcie, obraz czy plik wykonywalny. Czym jest zdjęcie dla procesora? Ciągiem bitów. Czym jest muzyka dla procesora? Takim samym ciągiem bitów, tylko nieco inaczej …

Czarna kropka, która zawiesi każdego Androida

Przeglądając dzisiaj naszą globalną sieć, trafiłem na ciekawostkę. Przyzwyczailiśmy się już do tego, że jakość dzisiejszego oprogramowania stoi na dosyć niskim poziomie. Niedawno pojawiły się informacje o kolejnych lukach w procesorach Intela. Jabłuszkowe Iphone i Macbooki potrafią zawiesić się od jednego znaku. Okazuje się, że podobne problemy posiada także Android. …

Stos generyczny w języku C

W jednym z poprzednich artykułów opisałem, jak można w języku C zaprogramować stos. Z pewnością przy tworzeniu bardziej zaawansowanego projektu napotkasz na pewien problem: Co zrobić, jeśli chcesz posiadać kilka stosów, przechowujących różne rodzaje danych? W C++, Javie, C# i innych tego typu językach rozwiązanie tego problemu jest dosyć proste. …