Commenter

Commenter jest programem do zakomentowywania i odkomentowywania sekcji plików tekstowych, w zależności od ustawionych słów kluczowych (definicji). Lista definicji jest podawana przy uruchomieniu programu.

Commenter powstał na moje potrzeby jako narzędzie ułatwiające zarządzanie jednym repozytorium konfiguracji dzielonym między kilka komputerów1. Program działa podobnie do preprocesora analizującego dyrektywy #ifdef, z tą różnicą, że Commenter po przefiltrowaniu pliku pozostawia zarówno dyrektywy, jak i zakomentowany (lub odkomentowany) tekst.

More

Deployment aplikacji internetowych

Zamiast przydługiego wstępu przejdę od razu do meritum. Dzięki webhookom jesteśmy w stanie wykonywać w prosty i przyjemny sposób automatyczny deployment aplikacji internetowych na serwery produkcyjne. Są wprawdzie możliwe inne metody, ale nie zawsze są one możliwe bądź stosowne do zaimplementowania. Tylko webhooki nas zadowolą, a i to nie wszystkie. Przyjrzyjmy się im zatem.

More

Tworzenie list w Pythonie

W Pythonie listy możemy utworzyć na kilka sposobów: używając nawiasów kwadratowych [] lub konstruktora list(). Jeśli z tyłu głowy mamy sposób działania nawiasów kwadratowych, użycie konstruktora może prowadzić do poważnych błędów. Spodziewać by się bowiem można, że poniższe dwa wywołania zwrócą to samo: >>> s = "element_listy" >>> l1 = [s] >>> l2 = list(s) Nic bardziej mylnego… >>> print(l1) ['element_listy'] >>> print(l2) ['e', 'l', 'e', 'm', 'e', 'n', 't', '_', 'l', 'i', 's', 't', 'y'] Warto pamiętać, że list() przyjmuje obiekt, po którym się iteruje, umieszczając w liście jego kolejne elementy. More

Zamykanie aplikacji PyQt

Wsparcie dla Qt4.8 kończy się za pół roku, więc czas najwyższy przesiąść się w starszych aplikacjach na nowszą wersję. Portowanie Subconverta do PyQt5 nie nastręczyło większych kłopotów poza jednym, drobnym crashem, którego w Qt 4.8 nie doświadczyłem…

More

Niegrzeczny Python

Ciekawostka, względnie nieintuicyjna:

$ python --version
Python 2.7.2+
$ python --version | sed "s/7/2/"
Python 2.7.2+
$ python --version 2>&1 | sed "s/7/2/"
Python 2.2.2+

Dlaczego cPython swój numer wersji drukuje na stderr, zrozumieć nie potrafię. Warto o tym jednak pamiętać, jeśli chce się na przykład przeprowadzać kontrolę jego wersji w skryptach instalacyjnych.

SubConvert 0.8.2

Pomysł na stworzenie własnego programu do konwersji napisów do filmów pojawił się w mojej głowie już jakiś czas temu i był spowodowany problemami z synchronizacją napisów w formacie klatkowym (w tym w bodaj najpopularniejszym formacie Micro DVD) do filmów odtwarzanych na kupionym przeze mnie jakiś czas temu telewizorze. Tak się bowiem złożyło, że mój Samsung akceptuje bez bólu jedynie napisy w formacie czasowym, konkretnie zaś SubRip. OK, konwersja między tymi formatami jest możliwa, ale co gdybym miał do przerobienia np. 6 sezonów jakiegoś serialu, i to pod Linuksem (chociaż pod Windowsem również nie znam żadnego narzędzia, które umożliwiałoby szybkie i stosunkowo bezbolesne przeprowadzenie takiej operacji)?

More

Kupfer

xkcd: rule 34

Do powyższego dodałbym jeszcze jeden paragraf: jeśli jakieś oprogramowanie istnieje, jest również jego odpowiednik w Pythonie.

More