Najnowsze artykuły

Czym jest DevNet Code Exchange

Czym jest DevNet Code Exchange

Wśród wielu serwisów udostępniających skrypty automatyzacji warto zwrócić uwagę na Cisco DevNet Code Exchange. Jest to platforma, na której zebrane są stworzone przez Cisco oraz niezależnych developerów i entuzjastów skrypty ułatwiające automatyzację produktów z ekosystemu Cisco.

Czytaj więcej »
AdminDays - skrypt z warsztatów

AdminDays – skrypt z warsztatów

W zeszłym tygodniu, 25 marca, w ramach eventu AdminDays miałem przyjemność poprowadzić warsztaty/prezentację związaną z automatyzacją w środowisku sieciowym. W czasie spotkania pokazałem proces tworzenia skryptu w języku Python, który wykonuje proste czynności administracyjne związane

Czytaj więcej »

Artykuły i porady

Recenzja podręcznika do DEVCOR Study Guide

Recenzja podręcznika DEVCOR Study Guide

Korzystając z letniej promocji na CiscoPress zaopatrzyłem się w dwa tytuły związane z automatyzacją. Jedną z tych książek jest świeża, bo wydana ledwo 19 lipca, pozycja „Cisco DevNet Professional DEVCOR 350-901 Study Guide„. Jej autorem

Czytaj więcej »
Pierwsza styczność z API na Fortigate

Pierwsza styczność z API na Fortigate

Trafił do mnie na jakiś czas firewall Fortigate 60E, więc postanowiłem skorzystać z okazji i zobaczyć co oferuje platforma od strony programowalnego zarządzania. Z urządzeniami Fortigate mam styczność co jakiś czas, wielu mniejszych klientów z

Czytaj więcej »
Łączymy Terraform i Ansible ze sobą

Łączymy Terraform i Ansible ze sobą

Wczoraj miałem przyjemność gościć jako prelegent na kolejnym webinarze w ramach cyklu Władcy Sieci. Tym razem opowiadałem i pokazywałem w jaki sposób połączyć ze sobą dwa narzędzia do automatyzacji – Terraform oraz Ansible. To jedne

Czytaj więcej »
Tworzenie Azure vWAN za pomocą Terraform

Tworzenie Azure vWAN za pomocą Terraform

Prowadziłem wczoraj webinar, w trakcie którego pokazywałem jak działa usługa Azure Virtual WAN (Azure vWAN). Laboratorium do tego webinaru przygotowałem korzystając z Terraforma. To chyba ostatnio moje ulubione narzędzie do budowania usług w chmurze publicznej

Czytaj więcej »

Wtorki z Pythonem

Skaner podatności CodeQL na GitHub

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

Czytaj więcej »
Diagram as a Code

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ż

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

„(„+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

Czytaj więcej »
Konstruktor klasy w Python

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

Czytaj więcej »
Tabele w ASCII

Tabele w ASCII

Gdy piszę różnego rodzaju skrypty w języku Python nie raz spotkam się z koniecznością wyświetlenia informacji na konsoli. Zazwyczaj wykorzystuję do tego systemową funkcję print(), lub bibliotekę pprint. Duża ilość informacji najlepiej zaprezentować w formie

Czytaj więcej »
Listy część 2

Listy w Python, cz. 2

W pierwszej części pokazałem jak definiować listę oraz w jaki sposób odczytywać pojedyncze, lub całe grupy elementów listy. Operacji na listach i jej elementach jest nieco więcej. Raz utworzona lista nie jest obiektem stałym i

Czytaj więcej »