Tajemnicze *args i **kwargs

Tajemnicze *args i **kwargs

Tajemnicze *args i **kwargs

Jak w każdym języku programowania także w Pythonie znajdziemy ciekawe i zastanawiające konstrukcje składni. Na przykład dziwnie wyglądające *args i **kwargs w języku Python. Dziś pokażę Ci w jaki sposób poradzić sobie w sytuacji, gdy wywołujemy funkcję, ale nie wiemy ile argumentów do niej zostanie przekazanych. Z taką sytuacją w świecie automatyzacji infrastruktury mamy do czynienia dość często. Rozwiązanie w tym przypadku jest banalnie proste.

Czytaj dalej
Skrypt Python w Jenkins

Uruchamiamy skypt Python w Jenkins

Skrypt Python w Jenkins

Jenkins to elastyczne narzędzie do tworzenia i wykonywania scenariuszy w modelu CI/CD. Scenariusz taki może składać się z przeróżnych kroków, w trakcie których wykorzystujemy zewnętrzne narzędzia takie jak skrypty Pythona. W dzisiejszym artykule zaprezentuję Ci trzy sposoby wywoływania skryptów Python w Jenkins w projektach opisywanych za pomocą zdefiniowanych akcji jak i jako pipeline.

Czytaj dalej
Numery telefonów

Numery telefonów

Numery telefonów

Gdy programujemy skrypty związaną z contact center, czy innymi aplikacjami z rodziny telefonii IP, bardzo szybko spotkamy się zadaniami, w których musimy przetworzyć numery telefonów. Z produktów związanych z telefonią numer uzyskujemy zazwyczaj w formacie E.164. Dane zapisane w różnego rodzaju bazach danych czy plikach tekstowych, które nasze skrypty będą przetwarzać, prawie na pewno nie będą zawsze zgodne z tym międzynarodowym standardem. Z takim problemem miałem do czynienia niedawno, gdy w projekcie dla mojego klienta pisałem dodatkowe skrypty do Amazon Connect, czyli call center w chmurze Amazona. W operowaniu różnego rodzaju formatami numerów telefonicznych pomogła mi biblioteka phonenumbers.

Czytaj dalej
Jak oszukuję inventory w Ansible

Jak “oszukuję” inventory w Ansible

Jak oszukuję inventory w Ansible

Inventory, czyli zbiór urządzeń, na których ma zostać wykonany playbook Ansible, co do zasady definiujemy jako statyczny plik, lub w sposób dynamiczny korzystając z wtyczek z grupy Inventory Plugins. Ja czasami jednak uciekam się do drobnej sztuczki, która jest dla mnie niezwykle wygodna, gdy uruchamiam proste playbooki, w których wykorzystuję moduły do Dockera. Jaka to sztuczka?

Czytaj dalej
Jak oceniam egzamin DEVASC 200-901?

Jak oceniam egzamin DEVASC 200-901

Jak oceniam egzamin DEVASC 200-901?

23 grudnia podszedłem do egzaminu Cisco DevNet Associate (DEVASC 200-901) i zdałem go uzyskując certyfikat. Długo się przed tym broniłem, ale powiedzmy, że presja otoczenia mnie zmusiła – kilku znajomych zdało ten egzamin też ostatnio. Poza tym skoro mam już “odznakę” DevNet Code Contributor, której oni nie mają, to mogę dołożyć do kolekcji DevNet Associate oraz DevNet Class of 2020. W dzisiejszym artykule podzielę się swoimi wrażeniami z samego egzaminu i przygotowań do niego.

Czytaj dalej
O automatyzacji sieciach - wywiad z Przemkiem Rogalą

O automatyzacji w sieciach – wywiad z Przemkiem Rogalą (część II)

O automatyzacji sieciach - wywiad z Przemkiem Rogalą

W pierwszej części mojej rozmowy z Przemkiem Rogalą, twórcą bloga TTL255, rozmawialiśmy o egzaminie DEVASC i certyfikacji Cisco DevNet. Certyfikaty byłby jednak zbędne, gdyby nie rzeczywiste projekty, w których wiedzę i doświadczenie zamienia się na konkretne rozwiązania. Zarówno Przemek jak i ja realizujemy tego typu projekty, choć na innych rynkach. W drugiej części mojej rozmowy skupimy się właśnie na rzeczywistym wykorzystaniu automatyzacji, projektach, programowaniu i narzędziach, które wykorzystujemy.

Czytaj dalej
O egzaminie DEVASC - wywiad z Przemkiem Rogalą

O egzaminie DEVASC – wywiad z Przemkiem Rogalą (część I)

O egzaminie DEVASC - wywiad z Przemkiem Rogalą

Certyfikacja DevNet ma już parę miesięcy, i sporo osób, które zdało egzaminy z poziomu Associate czy Professional. Świat IT zmienia się i z kolejnymi miesiącami wydaje się, że kto nie programuje, kto nie automatyzuje, ten tak na nie idzie z duchem czasu i zmianami. Jakie są wrażenia po zdaniu egzaminu DEVASC (200-901)? Jak się do niego przygotować? Czy jest on trudny? O to zapytałem mojego gościa – Przemka Rogalę, założyciela i prowadzącego bloga TTL255. Zapraszam na pierwszą część rozmowy z Przemkiem, która dotyczy samego egzaminu i certyfikacji DevNet.

Czytaj dalej
Podkreślenia w nazwach zmiennych i funkcji

Podkreślenia w nazwach zmiennych i funkcji

Podkreślenia w nazwach zmiennych i funkcji

Na pewno nie umknęło Twojej uwadze, że w języku Python nazwy niektórych obiektów, zmiennych czy funkcji składają się z podkreśleń umieszczanych na początku, na końcu lub po obu stronach. Jest to celowy zabieg, konwencja i standard, który ma na celu uporządkowanie kodu zarówno pod względem semantycznym, funkcjonalnym jak i optycznym, czyli ułatwić jego czytanie. W dzisiejszym artykule wyjaśnię Ci jakie znaczenie mają podkreślenia w tych konkretnych przypadkach.

Czytaj dalej
Docker Configs czyli jak umieszczam pliki wewnątrz kontenera

Jak umieszczam pliki wewnątrz konterena

Docker Configs czyli jak umieszczam pliki wewnątrz kontenera

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 na to, w jaki sposób możesz przekazać podłączyć dowolny plik do kontenera. Zdradzę Ci, że drugi jest moim ulubionym.

Czytaj dalej