Kontynuacja rozpoczętej wczorajszym wpisem relacji z polskiego Pycona. Tym razem o chyba najlepszym fragmencie konferencji czyli o sobotnim popołudniu.
Dalszy ciąg "Pycon 2009 - relacji część druga" »Pycon 2009 - relacji część pierwsza
Wybrałem się na tegoroczny polski Pycon do Ustronia. Oficjalną relację zamieszczą zapewne organizatorzy, poniżej trochę moich - bardzo subiektywnych - notatek.
Istotna uwaga: bardzo dawno nie byłem na żadnej branżowej konferencji, oceniam Pycona zestawiając go z własnymi oczekiwaniami.
Dalszy ciąg "Pycon 2009 - relacji część pierwsza" »Testy obciążeniowe
Najpopularniejszym narzędziem do uruchamiania testów obciążeniowych jest JMeter. Nie potrafię się do niego przekonać - organicznie nie cierpię modelowania struktury kodu (tu - testów) w formie rozwijanego drzewa, gdzie zrozumienie co robią poszczególne elementy wymaga przeklikiwania się przez nie, a niekiedy nawet otwierania okienek właściwości. Prosty kod jest zdecydowanie czytelniejszy. Podobnie, wolę napisać wywołanie funkcji niż przeszukiwać wielopoziomowe prawoklikane menu.
Dlatego opisuję interesującą, lekką alternatywę, ciekawie łączącą testy wydajnościowe z jednostkowymi.
Dalszy ciąg "Testy obciążeniowe" »Układ kodu w modułach pythonowych
Jak właściwie poukładać kod źródłowy przy pisaniu bibliotek i skryptów w Pythonie? Problem wcale nie jest trywialny, stosowanych konwencji jest wiele, modułów utrzymywanych i dystrybuowanych jako chaotyczne paczki plików źródłowych - jeszcze więcej.
Opisuję niżej konwencję dobrze dopasowaną do pracy z użyciem wirtualnych środowisk pythona oraz SetupTools. Pasuje ona także do PyDev, czyli modułu pythonowego dla Eclipse. Zbieram tu techniki podejrzane w różnych cudzych bibliotekach, w sporej części opisane w książce Tereka Ziade.
Dalszy ciąg "Układ kodu w modułach pythonowych" »Wirtualne środowiska Pythona - ułatwienia pod Linuksem
Uzupełnienie do artykułu o wirtualnych środowiskach pythona. Skrypt virtualenvwrapper to miłe ułatwienie ich wykorzystywania - dla użytkowników Linuksa.
Poniżej omówienie funkcjonalności oraz krótka instrukcja.
Dalszy ciąg "Wirtualne środowiska Pythona - ułatwienia pod Linuksem" »Czy jakikolwiek element listy...
Mamy pewną listę. Mamy jakąś funkcję testującą. Chcemy sprawdzić, czy dla jakiegokolwiek elementu
listy funkcja testująca zwraca True
.
To proste zadanko - bardzo częste w realnym kodzie - można wykonać na wiele sposobów.
Dalszy ciąg "Czy jakikolwiek element listy... " »Nietypowe sposoby ładowania kodu pythonowego
Normalną metodą ładowania kodu pythonowego jest polecenie
import
i umieszczanie plików w standardowym drzewie modułów
zarządzanym zmienną PYTHONPATH
. To załatwia 99.9% przypadków.
W tym artykule o pozostałym 0.1% - kilka dziwnych ale czasem użytecznych technik ładowania kodu, od wczytywania pojedynczego pliku z nietypowego katalogu, po pisanie własnych ładowaczy modułów mogących generować kod, ściągać go ze zdalnej maszyny czy pobierać z bazy danych.
Dalszy ciąg "Nietypowe sposoby ładowania kodu pythonowego" »Moje zastosowanie XMinda
Próbuję się ostatnio wdrożyć w GTD (Getting Things Done), czyli modną od paru lat technikę zapisywania i porządkowania rzeczy do zrobienia. Sam pomysł by zapisywać sprawy i pomysły to nihil novi (czego ja już nie używałem - od issue trackera i różnych sieciowych kalendarzy po zbiory papierowych notatek) ale GTD przez swe rytuały i techniki daje pewną nadzieję na większą skuteczność (już mogę powiedzieć, że fajnie pozwala ograniczyć ilość naraz wiszących nad głową spraw).
Przesiadam się między kilkoma komputerami, więc narzuciło się użycie jakiejś aplikacji sieciowej. Pobawiłem się bodaj sześcioma i na razie wybrałem Nozbe - głównie dlatego, że zawiera to co trzeba a nie trzy razy za dużo (to w takiej aplikacji jest ważne), po części zaś w formie uznania dla rodaka (Michała Śliwińskiego), który ten serwis zrobił i promuje (bardzo ładnie i mądrze promuje, jego filmiki prezentujące GTD są zwarte i punktują kluczowe sprawy).
No ale w tym poście nie chcę pisać o GTD, Nozbe i jego konkurentach ani o alternatywnych metodach notowania zadań ale o narzędziu, które sobie przez dwa poprzednie wieczory napisałem.
Dalszy ciąg "Moje zastosowanie XMinda" »Zaawansowane programowanie w Pythonie
Spodobała mi się kupiona niedawno książka o Pythonie. Spodobało mi się też miejsce, w którym ją kupiłem. Niżej o jednym i o drugim (przy czym księgarnia może być interesująca nie tylko dla miłośników Pythona).
Książka
Książka to Expert Python Programming autorstwa Tereka Ziadé.
Dalszy ciąg "Zaawansowane programowanie w Pythonie" »Programowanie zdarzeniowe
Program musi obsłużyć kilka połączeń sieciowych naraz? Albo równocześnie wyświetlać interfejs i wykonywać jakieś przetwarzanie? Albo pośredniczyć w komunikacji między kilkoma klientami a kilkoma serwerami? Albo wysyłać maile. Albo ściągać dane z kilku źródeł. Albo... Oczywiste - trzeba użyć wątków!
To bywa dobre rozwiązanie, ale ma swój koszt. Nie będę się teraz szerzej rozwodził nad problemami synchronizacyjnymi, zakleszczeniami, kosztem przełączeń kontekstu, czy nadmiernym zużyciem pamięci (każdy wątek ma swój stos). Chcę pokazać, że jest inny sposób - nie tylko bardziej wydajny, ale często także łatwiejszy.
Dalszy ciąg "Programowanie zdarzeniowe" »