Wyrażenia lambda – użyteczna nowość C++11.

Nowsze standardy C++ wprowadzają wiele udogodnień, które sprawiają że nam – programistom – żyje się wygodniej. Musimy pisać coraz mniej kodu, otrzymując tę samą funkcjonalność. Sprawia to, że uzyskujemy większą wydajność. Poza tym, mniejsza ilość lepiej i zwięźlej napisanego kodu zwiększa jego czytelność. Dzięki temu ludzie, którzy obejmą projekt po …

Symulator pożaru lasu – tworzymy okienko

W poprzedniej części stworzyliśmy „podstawy podstaw” dla naszego symulatora pożaru lasu. Napisaliśmy podstawowe klasy – Tree, który przechowuje właściwości pojedynczego drzewa/pożaru, ForestMap odpowiedzialny za przechowywanie informacji o stanie całej planszy oraz szereg klas pomocniczych takich jak Coordinates czy SingleCell. Postawimy kolejny mały krok. Stworzymy klasę, która będzie obsługiwała wyświetlanie drzew/pożarów …

SSH – autoryzacja za pomocą klucza/certyfikatu

Zabezpieczenie zdalnego dostępu do serwera jest niezmiernie ważne. Atakujący, hackerzy i crackerzy tylko czekają na to, aż zrobisz jeden malutki błąd, który pozwoli im na dołączenie twojego VPS-a czy dedyka do botnetu. Wektory ataku mogą być bardzo różne. Zaczynając od luk w CMS-ie, kończąc na błędach w konfiguracji serwera i słabych hasłach. …

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 …