Tabele w ASCII
Programowanie

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 tabelarycznej. W repozytorium PiPy znajduje wiele bibliotek obsługujących tabele w ASCII pozwalających na wyświetlanie sformatowanych

Czytaj więcej »
GitLab - aktualizacja kontenera bazy danych
Docker

GitLab – aktualizacja kontenera bazy danych

Ostatnio chciałem dokonać aktualizacji GitLab-a w moim domowym labie. Nie wyszło. Podnosząc wersję oprogramowania GitLab-a, od dwóch lat nie aktualizowałem wersji bazy danych, która jest niezbędna do prawidłowego działania. O ile wersja GitLab 13.1.4 nadal działała z PostgreSQL 9.6.2 (mimo że w dokumentacji jest zapisane, że to od dawna wersja

Czytaj więcej »
Listy część 2
DevNet Associate

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 można zarówno modyfikować wartość każdego z jej elementów jak i dodawać oraz usuwać poszczególne elementy.

Czytaj więcej »
Enumerate i przeglądanie elementów listy
DevNet Associate

Enumerate() i przeglądanie elementów listy

Wykonując operacje na listach musimy jasno sprecyzować, do którego je elementu chcemy uzyskać dostęp. Dokonujemy tego za pomocą indeksów wskazując wprost interesujący nas element listy. Często jednak dane zapisane na liście przetwarzamy w pętli. Pokażę Ci w jaki sposób najprościej w pętli odczytać kolejne wartości elementów listy oraz ekstremalnie przydatny

Czytaj więcej »
Przestał budować się obraz kontenera
DevNet Associate

Przestał budować się obraz kontenera

Częścią obrazów kontenerów, które używam w swoich środowiskach sieciowych zarządzam samodzielnie. Ich cykliczną budową zajmuje się Jenkins. Także kontenery z obrazem samego Jenkinsa są budowane w ten sposób. 10 sierpnia coś się jednak stało. Mój skrypt przestał działać. W efekcie tego przestał budować się obraz kontenera. Wszystko ze względu na

Czytaj więcej »
Listy w Python, część 1
Programowanie

Listy w Python, cz. 1

Są takie umiejętności, które każdy programujący w dowolnym języku programowania musi umieć posiadać. Nie inaczej jest w Pythonie. W serii „wtorki z Pythonem” będę poruszał także bardziej podstawowe zagadnienia związane z programowaniem, które nie tylko dla osób początkujących mogą stanowić przydatne kompendium wiedzy. W tym tygodniu zajmę się typem danych,

Czytaj więcej »
Słownik z funkcjami
Programowanie

Słownik z funkcjami

W zeszłym tygodniu pokazałem Ci w jaki sposób możesz uprościć swój kod. Wiesz już, że zamiast tworzyć duże konstrukcje warunkowe możesz generować nazwę wywoływanej metody „w locie” wykorzystując do tego zmienne. W tym tygodniu kontynuujemy ten temat. Pokażę Ci jak wykorzystać takie dynamicznie generowane odwołanie wraz z własnym słownikiem funkcji

Czytaj więcej »
Pull Request w Git
Programowanie

Pull Request w Git

Dzisiaj słowo o tym, jak pracuje się wspólnie nad projektami i wprowadzaniem zmian do kodu. Z oczywistych względów do kodu programu nie mogą być wprowadzone żadne zmiany dokonane przez dowolną osobę. Zmiany takie muszą być zatwierdzone przez właściciela projektu lub osoby przez niego wyznaczone. Niemniej ważnym aspektem jest to, aby

Czytaj więcej »
Dynamiczne wywołanie funkcji
Programowanie

Dynamiczne wywołanie funkcji

Język Python ma sporo ukrytych ciekawych funkcjonalności. Wiele z nich odpowiednio wykorzystane mogą uprościć kod naszej aplikacji, eliminując skomplikowane konstrukcje warunków. Jedną z moich ulubionych jest możliwość wywoływania metod poprzez dynamiczne tworzenie ich nazwy w wywołaniu z zastosowaniem zmiennych. Ta technika nie ma swojej unikalnej nazwy. Dla mnie jest to

Czytaj więcej »
Programowanie

Pierwszy etap pracy nad moją aplikacją zakończony

Pamiętacie zapewne, że byłem bardzo rozczarowany Cisco Modeling Labs 2.0. Brakowało mi fantastycznej funkcjonalności z Cisco VIRL pozwalającej w prosty sposób prekonfigurować urządzenia. Pozwalało to inżynierom zaoszczędzić sporo czasu na adresowaniu interfejsów czy konfigurowaniu protokołów. Funkcja ta ma miała nazwę AutoNetKit. Jakiś miesiąc temu postanowiłem, że napiszę własny program wypełniający,

Czytaj więcej »