Docker Configs czyli jak umieszczam pliki wewnątrz kontenera
Docker

Jak umieszczam pliki wewnątrz konterena

Projektując mikrosegmentację usług i ich konteneryzację powinniśmy pamiętać, by nie zapisywać wewnątrz kontenerów informacji, które zmieniają się w zależności od instancji. Umieszczanie plików konfiguracyjnych aplikacji uruchamianej w kontenerze „na sztywno” w obrazie kontenera nie jest zbyt dobrym pomysłem. Podobnie rzecz ma się choćby z certyfikatami SSL. Pokażę Ci dwa sposoby

Czytaj więcej »
Która wersja Pythona jest najlepsza?
Wtorki z Pythonem

Która wersja Pythona jest najlepsza?

Ostatnio opisywałem kilka nowości, które weszły do języka Python wraz z wersją 3.9. Następstwem tego wpisu były pytania o to, która wersja Pythona jest najlepsza. Której wersji języka zalecam używać. Czy najnowsza jest najlepsza? A może stosować, którąś ze starszych? Odpowiedź na te i inne pytania znajdziecie w dzisiejszym artykule.

Czytaj więcej »
Spojrzenie na oficjalny podręcznik DEVASC
Recenzja

Spojrzenie na oficjalny podręcznik DEVASC

Na początku października nakładem wydawnictwa CiscoPress została wydana książka Cisco Certified DevNet Associate DEVASC 200-901 Official Certification Guide. Na tą książkę czeka wiele osób, które mają w planach przystąpienie do egzaminu. Zainteresowane nią są też osoby, które po prostu chcą poznać świat DevNet. Pożyczyłem książkę na kilka godzin od znajomego,

Czytaj więcej »
Łączenie zmiennych słownikowych
Wtorki z Pythonem

Łączenie zmiennych słownikowych

W krótkim artykule opisującym nowości w języku Python w wydaniu 3.9 zwróciłem uwagę na dwa operatory pozwalające na operowanie na zmiennych typu słownikowego (dict). W dzisiejszym wpisie w ramach Wtorków z Pythonem pokażę Ci kilka sposobów na łączenie dwóch lub więcej zmiennych słownikowych ze sobą. Pisząc swoje programy do automatyzacji

Czytaj więcej »
Python 3.9 - stabilizacja i mało nowości
Narzędzia

Python 3.9 – stabilizacja i mało nowości

We wtorek oficjalnie wydano Python 3.9. Nowa wersja nie jest niczym przełomowym, mam wrażenie, że autorzy skupili się na bardziej na stabilizacji i uporządkowaniu kodu języka niż na wprowadzaniu nowych funkcjonalności. Poniżej krótka lista najważniejszych moim zdaniem zmian patrząc z perspektywy osoby zajmującej się automatyzacją infrastruktury IT. Zmiany i nowości

Czytaj więcej »
Skaner podatności CodeQL na GitHub
Narzędzia

Skaner podatności CodeQL na GitHub

Błędy w oprogramowaniu wynikają bardzo często z błędów programistów. Z naszego niedopatrzenia, z tego, że nie przewidzieliśmy pewnych sytuacji czy zachowania użytkowników. Mogliśmy też zaniechać poprawnego sprawdzenia poprawności danych wejściowych. Przyczyn jest wiele. Dlatego ważne jest, abyśmy skanowali kod źródłowy naszego programu niezależnie od tego czy jest on kompilowany czy

Czytaj więcej »
Diagram as a Code
Wtorki z Pythonem

Diagram as a Code

Znalazłem ostatnio ciekawą bibliotekę języka Python, która w pewien sposób dopełnia ideę Everything as a Code. Biblioteka ta pozwala na stosunkowo proste rysowanie graficznych diagramów za pomocą kodu języka Python. Możemy zatem śmiało mówić już o modelu Diagram as a Code. Biblioteka, o której mówię, nazywa się diagrams, a jej

Czytaj więcej »
Formatowanie ciągu znaków w Python
Wtorki z Pythonem

„(„+str(x)+”)” czy f'({x})’ ?

Po opublikowaniu poprzedniego artykułu z cyklu „Wtorki z Pythonem” dostałem od jednego z czytelników pytanie, dlaczego tak dziwnie skonstruowałem wywołanie funkcji print(). Chodziło o zapis print(„(%s,%s)” % (self.x, self.y)). W dzisiejszym artykule wyjaśnię, dlaczego taka konstrukcja była konieczna, oraz jak można ten sam wynik osiągnąć innymi sposobami. Odpowiednie formatowanie zmiennych

Czytaj więcej »
Alpine Linux najlepszym przyjacielem kontenerów
Porady

Alpine Linux najlepszym przyjacielem kontenerów

Czy ma znaczenie, jaki obraz wyjściowy użyjemy do budowy naszego kontenera? Mało kto zaczyna od pustego kontenera. Zazwyczaj jako bazę bierzemy taki, który zawiera jedną z popularnych dystrybucji Linuksa. Czy ma znaczenie jaka to będzie dystrybucja? Jak się okazuje ogromne. Dlatego ja staram się budować swoje kontenery przy pomocy obrazów,

Czytaj więcej »
Konstruktor klasy w Python
Wtorki z Pythonem

Konstruktor klasy

Współczesne języki programowania, zarówno te kompilowane jak i interpretowane, wykorzystują koncepcję programowania obiektowego. Polega ona na modularyzowaniu kodu programu na małe funkcjonalne części zwane obiektami. Są to swego rodzaju „klocki”, z których następnie składamy cały program. Są one na tyle uniwersalne, że używamy je w różnych programach. Obiekty te nazywane

Czytaj więcej »