<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Notatnik zapisywany wieczorami - Python</title>
    <link>http://notatnik.mekk.waw.pl/</link>
    <description>Blog Marcina Kasperskiego</description>
    <dc:language>pl</dc:language>
    <generator>Serendipity  - http://www.s9y.org/</generator>
    <pubDate>Tue, 19 Jan 2010 22:05:45 GMT</pubDate>

    <image>
        <url>http://notatnik.mekk.waw.pl/templates/mekk/img/rss_banner.png</url>
        <title>RSS: Notatnik zapisywany wieczorami - Python - Blog Marcina Kasperskiego</title>
        <link>http://notatnik.mekk.waw.pl/</link>
        <width></width>
        <height></height>
    </image>

<item>
    <title>iostreams</title>
    <link>http://notatnik.mekk.waw.pl/archives/205-iostreams.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/205-iostreams.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=205</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=205</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Kawałek znalezionego gdzieś w sieci kodu, rzucającego przyjemny pomost
między najstarszym z autentycznie lubianych przeze mnie języków programowania a 
tym, po który najchętniej sięgam dzisiaj.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/205-iostreams.html#extended&quot;&gt;Ciąg dalszy &quot;iostreams&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 19 Jan 2010 23:05:45 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/205-guid.html</guid>
    <category>c++</category>
<category>zabawa</category>

</item>
<item>
    <title>Estetyczny monkey-patching</title>
    <link>http://notatnik.mekk.waw.pl/archives/191-Estetyczny_monkey-patching.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/191-Estetyczny_monkey-patching.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=191</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=191</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Dla osób przesiadających się z C++ czy Javy to jedna z bardziej
szokujących właściwości Pythona (a także Perla i paru innych języków
skryptowych): kod programu można zmienić w locie. Można - w szczególności -
dopisać albo podmienić metody istniejącej klasy czy funkcje zadanego
modułu.&lt;/p&gt;

&lt;p&gt;Technika ryzykowna, łatwo prowadząca do powstawania niezrozumiałego
kodu i trudnych do interpretacji błędów. Ale zarazem bardzo przydatna,
zwłaszcza gdy trzeba zmodyfikować zachowanie jakiejś biblioteki w miejscu,
którego jej autor nie przewidział (np. ostatnio przypomniałem ją sobie
chcąc zmienić &lt;a href=&quot;http://bitbucket.org/Mekk/mercurial_keyring/&quot;&gt;sposób w jaki Mercurial obsługuje hasła HTTP i SMTP&lt;/a&gt;). Monkey-patching bardzo często przydaje
się też przy testach, pozwalając zamienić prawdziwy kod komunikacyjny czy bazodanowy
zaślepkami.&lt;/p&gt;

&lt;p&gt;W tym artykule o kilku możliwych sposobach zapisywania tej operacji.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/191-Estetyczny_monkey-patching.html#extended&quot;&gt;Ciąg dalszy &quot;Estetyczny monkey-patching&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 22 Nov 2009 23:23:55 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/191-guid.html</guid>
    <category>dziedziczenie</category>
<category>klasy</category>
<category>monkeypatching</category>

</item>
<item>
    <title>Virtualenv dla Jythona</title>
    <link>http://notatnik.mekk.waw.pl/archives/185-Virtualenv_dla_Jythona.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/185-Virtualenv_dla_Jythona.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=185</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=185</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html&quot;&gt;Wirtualne środowiska Pythona&lt;/a&gt; bez problemu można wykorzystywać
także przy pracy z &lt;a href=&quot;http://www.jython.org/&quot;&gt;Jythonem&lt;/a&gt; (a także do przełączania się
między Pythonem a Jythonem). Nie wymaga to żadnych
szczególnych działań, wszystko przebiega niemal identycznie jak pod Pythonem.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/185-Virtualenv_dla_Jythona.html#extended&quot;&gt;Ciąg dalszy &quot;Virtualenv dla Jythona&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 28 Oct 2009 00:39:18 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/185-guid.html</guid>
    <category>jython</category>
<category>virtualenv</category>

</item>
<item>
    <title>Pycon 2009 - relacji część czwarta i ostatnia</title>
    <link>http://notatnik.mekk.waw.pl/archives/184-Pycon_2009_-_relacji_czesc_czwarta_i_ostatnia.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/184-Pycon_2009_-_relacji_czesc_czwarta_i_ostatnia.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=184</wfw:comment>

    <slash:comments>9</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=184</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Ostatnia część relacji z &lt;a href=&quot;http://pl.pycon.org&quot;&gt;polskiego Pycona&lt;/a&gt; (pierwsza jest
&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html&quot;&gt;tutaj&lt;/a&gt;, druga &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/182-Pycon_2009_-_relacji_czesc_druga.html&quot;&gt;tutaj&lt;/a&gt; a trzecia &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/183-Pycon_2009_-_relacji_czesc_trzecia.html&quot;&gt;tutaj&lt;/a&gt;). Słowo się
rzekło, kobyłka u płotu, rozpoczęte dzieło trzeba zakończyć a
&lt;a href=&quot;http://pl.pycon.org&quot;&gt;Pycon&lt;/a&gt; z to-do, blogerowi lżej.&lt;/p&gt;

&lt;p&gt;Do omówienia zostały wykłady niedzielne, opisuję też co uważam
za najważniejsze własne wnioski z konferencji.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/184-Pycon_2009_-_relacji_czesc_czwarta_i_ostatnia.html#extended&quot;&gt;Ciąg dalszy &quot;Pycon 2009 - relacji część czwarta i ostatnia&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 23 Oct 2009 02:14:00 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/184-guid.html</guid>
    <category>prezentacje</category>
<category>pycon</category>
<category>python</category>
<category>reportaż</category>

</item>
<item>
    <title>Pycon 2009 - relacji część trzecia</title>
    <link>http://notatnik.mekk.waw.pl/archives/183-Pycon_2009_-_relacji_czesc_trzecia.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/183-Pycon_2009_-_relacji_czesc_trzecia.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=183</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=183</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Kolejna część relacji z &lt;a href=&quot;http://pl.pycon.org&quot;&gt;polskiego Pycona&lt;/a&gt;
(jeśli ktoś nie czytał - pierwsza jest &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html&quot;&gt;tutaj&lt;/a&gt;
a druga &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/182-Pycon_2009_-_relacji_czesc_druga.html&quot;&gt;tutaj&lt;/a&gt;). Sobotni wieczór.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/183-Pycon_2009_-_relacji_czesc_trzecia.html#extended&quot;&gt;Ciąg dalszy &quot;Pycon 2009 - relacji część trzecia&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 22 Oct 2009 02:38:42 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/183-guid.html</guid>
    <category>konferencja</category>
<category>pycon</category>

</item>
<item>
    <title>Pycon 2009 - relacji część druga</title>
    <link>http://notatnik.mekk.waw.pl/archives/182-Pycon_2009_-_relacji_czesc_druga.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/182-Pycon_2009_-_relacji_czesc_druga.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=182</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=182</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Kontynuacja rozpoczętej &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html&quot;&gt;wczorajszym wpisem&lt;/a&gt; relacji z
&lt;a href=&quot;http://liwo.polsl.pl/pycon-pl/&quot;&gt;polskiego Pycona&lt;/a&gt;.  Tym razem o chyba najlepszym
fragmencie konferencji czyli o sobotnim popołudniu.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/182-Pycon_2009_-_relacji_czesc_druga.html#extended&quot;&gt;Ciąg dalszy &quot;Pycon 2009 - relacji część druga&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 21 Oct 2009 16:26:49 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/182-guid.html</guid>
    <category>filmaster</category>
<category>orange</category>
<category>pycon</category>
<category>zope</category>

</item>
<item>
    <title>Pycon 2009 - relacji część pierwsza</title>
    <link>http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=181</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=181</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Wybrałem się na &lt;a href=&quot;http://liwo.polsl.pl/pycon-pl/&quot;&gt;tegoroczny polski Pycon&lt;/a&gt; do Ustronia.
Oficjalną relację zamieszczą zapewne organizatorzy, poniżej trochę
moich - bardzo subiektywnych - notatek.&lt;/p&gt;

&lt;p&gt;Istotna uwaga: bardzo dawno nie byłem na żadnej &lt;em&gt;branżowej&lt;/em&gt;
konferencji, oceniam &lt;a href=&quot;http://liwo.polsl.pl/pycon-pl/&quot;&gt;Pycona&lt;/a&gt; zestawiając go z własnymi
oczekiwaniami.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/181-Pycon_2009_-_relacji_czesc_pierwsza.html#extended&quot;&gt;Ciąg dalszy &quot;Pycon 2009 - relacji część pierwsza&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 20 Oct 2009 02:31:56 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/181-guid.html</guid>
    <category>konferencja</category>
<category>pycon</category>
<category>python</category>
<category>relacja</category>
<category>ustroń</category>

</item>
<item>
    <title>Testy obciążeniowe</title>
    <link>http://notatnik.mekk.waw.pl/archives/172-Testy_obciazeniowe.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/172-Testy_obciazeniowe.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=172</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=172</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Najpopularniejszym narzędziem do uruchamiania testów obciążeniowych
jest &lt;a href=&quot;http://jakarta.apache.org/jmeter/&quot;&gt;JMeter&lt;/a&gt;.  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.&lt;/p&gt;

&lt;p&gt;Dlatego opisuję interesującą, lekką alternatywę, ciekawie łączącą
testy wydajnościowe z jednostkowymi.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/172-Testy_obciazeniowe.html#extended&quot;&gt;Ciąg dalszy &quot;Testy obciążeniowe&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 19 Sep 2009 19:40:10 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/172-guid.html</guid>
    <category>benchmark</category>
<category>funkload</category>
<category>test</category>
<category>wydajność</category>

</item>
<item>
    <title>Układ kodu w modułach pythonowych</title>
    <link>http://notatnik.mekk.waw.pl/archives/133-Uklad_kodu_w_modulach_pythonowych.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/133-Uklad_kodu_w_modulach_pythonowych.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=133</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=133</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Opisuję niżej konwencję dobrze dopasowaną do pracy z użyciem
&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html&quot;&gt;wirtualnych środowisk pythona&lt;/a&gt; oraz &lt;a href=&quot;http://peak.telecommunity.com/DevCenter/setuptools&quot;&gt;SetupTools&lt;/a&gt;.
Pasuje ona także do &lt;a href=&quot;http://pydev.sourceforge.net/&quot;&gt;PyDev&lt;/a&gt;, czyli modułu pythonowego dla Eclipse.
Zbieram tu techniki podejrzane w różnych cudzych bibliotekach,
w sporej części opisane w &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/94-Zaawansowane_programowanie_w_Pythonie.html&quot;&gt;książce Tereka Ziade&lt;/a&gt;.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/133-Uklad_kodu_w_modulach_pythonowych.html#extended&quot;&gt;Ciąg dalszy &quot;Układ kodu w modułach pythonowych&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 12 Feb 2009 20:39:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/133-guid.html</guid>
    <category>easy_install</category>
<category>egg</category>
<category>setup.py</category>
<category>setuptools</category>
<category>układ katalogów</category>
<category>virtualenv</category>

</item>
<item>
    <title>Wirtualne środowiska Pythona - ułatwienia pod Linuksem</title>
    <link>http://notatnik.mekk.waw.pl/archives/123-Wirtualne_srodowiska_Pythona_-_ulatwienia_pod_Linuksem.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/123-Wirtualne_srodowiska_Pythona_-_ulatwienia_pod_Linuksem.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=123</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=123</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Uzupełnienie do artykułu o &lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html&quot;&gt;wirtualnych środowiskach
pythona&lt;/a&gt;.  Skrypt &lt;a href=&quot;http://www.doughellmann.com/projects/virtualenvwrapper/&quot;&gt;virtualenvwrapper&lt;/a&gt;
to miłe ułatwienie ich wykorzystywania - dla
użytkowników Linuksa.&lt;/p&gt;

&lt;p&gt;Poniżej omówienie funkcjonalności oraz krótka instrukcja.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/123-Wirtualne_srodowiska_Pythona_-_ulatwienia_pod_Linuksem.html#extended&quot;&gt;Ciąg dalszy &quot;Wirtualne środowiska Pythona - ułatwienia pod Linuksem&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 25 Dec 2008 20:49:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/123-guid.html</guid>
    <category>bash</category>
<category>python</category>
<category>virtualenv</category>

</item>
<item>
    <title>Czy jakikolwiek element listy... </title>
    <link>http://notatnik.mekk.waw.pl/archives/113-Czy_jakikolwiek_element_listy..._.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/113-Czy_jakikolwiek_element_listy..._.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=113</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=113</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Mamy pewną listę. Mamy jakąś funkcję testującą. Chcemy sprawdzić, czy dla jakiegokolwiek elementu
listy funkcja testująca zwraca &lt;code&gt;True&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To proste zadanko - bardzo częste w realnym kodzie - można wykonać na wiele sposobów.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/113-Czy_jakikolwiek_element_listy..._.html#extended&quot;&gt;Ciąg dalszy &quot;Czy jakikolwiek element listy... &quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 11 Dec 2008 22:52:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/113-guid.html</guid>
    
</item>
<item>
    <title>Nietypowe sposoby ładowania kodu pythonowego</title>
    <link>http://notatnik.mekk.waw.pl/archives/107-Nietypowe_sposoby_ladowania_kodu_pythonowego.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/107-Nietypowe_sposoby_ladowania_kodu_pythonowego.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;&lt;em&gt;Normalną&lt;/em&gt; metodą ładowania kodu pythonowego jest polecenie
&lt;code&gt;import&lt;/code&gt; i umieszczanie plików w standardowym drzewie modułów
zarządzanym zmienną &lt;code&gt;PYTHONPATH&lt;/code&gt;. To załatwia 99.9% przypadków.&lt;/p&gt;

&lt;p&gt;W tym artykule o pozostałym 0.1% - kilka &lt;em&gt;dziwnych&lt;/em&gt; ale czasem
użytecznych technik ładowania kodu, od wczytywania pojedynczego
pliku z nietypowego katalogu, po pisanie własnych &lt;em&gt;ładowaczy&lt;/em&gt; 
modułów mogących generować kod, ściągać go ze zdalnej
maszyny czy pobierać z bazy danych.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/107-Nietypowe_sposoby_ladowania_kodu_pythonowego.html#extended&quot;&gt;Ciąg dalszy &quot;Nietypowe sposoby ładowania kodu pythonowego&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 02 Dec 2008 19:26:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/107-guid.html</guid>
    <category>import exec dynamiczne</category>

</item>
<item>
    <title>Moje zastosowanie XMinda</title>
    <link>http://notatnik.mekk.waw.pl/archives/106-Moje_zastosowanie_XMinda.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/106-Moje_zastosowanie_XMinda.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=106</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=106</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Próbuję się ostatnio wdrożyć w GTD (&lt;em&gt;Getting Things Done&lt;/em&gt;), czyli 
modną od paru lat technikę zapisywania i porządkowania rzeczy do zrobienia.
Sam pomysł by zapisywać sprawy i pomysły to &lt;em&gt;nihil novi&lt;/em&gt; (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).&lt;/p&gt;

&lt;p&gt;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
&lt;a href=&quot;http://www.nozbe.com/a-5B4863BD&quot;&gt;Nozbe&lt;/a&gt; - głównie dlatego, że zawiera to co trzeba a nie trzy razy za dużo
(to w takiej aplikacji &lt;em&gt;jest ważne&lt;/em&gt;), 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).&lt;/p&gt;

&lt;p&gt;No ale w tym poście nie chcę pisać o GTD, &lt;a href=&quot;http://www.nozbe.com/a-5B4863BD&quot;&gt;Nozbe&lt;/a&gt; i jego konkurentach ani o
alternatywnych metodach notowania zadań ale o narzędziu, które sobie przez
dwa poprzednie wieczory napisałem.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/106-Moje_zastosowanie_XMinda.html#extended&quot;&gt;Ciąg dalszy &quot;Moje zastosowanie XMinda&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 27 Nov 2008 23:56:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/106-guid.html</guid>
    <category>gtd</category>
<category>nozbe</category>
<category>xmind</category>
<category>zadania</category>

</item>
<item>
    <title>Zaawansowane programowanie w Pythonie</title>
    <link>http://notatnik.mekk.waw.pl/archives/94-Zaawansowane_programowanie_w_Pythonie.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/94-Zaawansowane_programowanie_w_Pythonie.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=94</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=94</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;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).&lt;/p&gt;

&lt;h2&gt;Książka&lt;/h2&gt;

&lt;p&gt;Książka to &lt;a href=&quot;http://www.packtpub.com/expert-python-programming/book/mid/3110082dhqqo&quot;&gt;Expert Python Programming&lt;/a&gt; autorstwa Tereka Ziadé.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/94-Zaawansowane_programowanie_w_Pythonie.html#extended&quot;&gt;Ciąg dalszy &quot;Zaawansowane programowanie w Pythonie&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 02 Nov 2008 00:57:00 +0100</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/94-guid.html</guid>
    <category>książki</category>
<category>python</category>
<category>recenzja</category>

</item>
<item>
    <title>Programowanie zdarzeniowe</title>
    <link>http://notatnik.mekk.waw.pl/archives/44-Programowanie_zdarzeniowe.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/44-Programowanie_zdarzeniowe.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=44</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=44</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;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 - &lt;em&gt;trzeba użyć wątków&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/44-Programowanie_zdarzeniowe.html#extended&quot;&gt;Ciąg dalszy &quot;Programowanie zdarzeniowe&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 14 Aug 2008 00:53:00 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/44-guid.html</guid>
    <category>programowanie</category>
<category>python</category>
<category>twisted</category>

</item>
<item>
    <title>Zbiorowa inteligencja</title>
    <link>http://notatnik.mekk.waw.pl/archives/13-Zbiorowa_inteligencja.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/13-Zbiorowa_inteligencja.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=13</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Książki informatyczne dzielą się z grubsza na dwie grupy.&lt;/p&gt;

&lt;p&gt;Pozycje &lt;em&gt;inżynierskie&lt;/em&gt; to opisy składni języków programowania, podręczniki administrowania systemami czy aplikacjami, wskazówki dotyczące korzystania z programów użytkowych. Trafiają się tu rzeczy wybitne (powiedzmy -
&lt;a href=&quot;http://www.mentis.pl/2742-wyjatkowy-jezyk-c-47?p=2819&quot;&gt;Wyjątkowy język C++&lt;/a&gt;)
trafia chłam (zlituję się), ale czy chodzi o zaawansowane strojenie wydajności baz Oracle, czy o naukę Excela w 21 dni, zawsze ostatecznie mamy do czynienia z specjalizowaną instrukcją użytkownika jakiegoś programu.&lt;/p&gt;

&lt;p&gt;Pozycje &lt;em&gt;uniwersyteckie&lt;/em&gt; to drugi biegun. Drobiazgowe formalizmy matematyczne, teoretyczne modele  poprawności i wydajności, twierdzenia z dowodami, klasyfikacje i hierarchie. Bardzo często odkrywcze, wybitne pomysły i algorytmy ale - całkowity brak kontekstu realnego zastosowania.&lt;br /&gt;
Można je czytać z dużym zaciekawieniem, ale od - powiedzmy - książki o geometrii obliczeniowej do oprogramowywania wizualizacji, droga niesłychanie daleka.&lt;/p&gt;

&lt;p&gt;Książki próbujące połączyć te dwa światy są bardzo rzadkie i cenne. Dlatego postanowiłem napisać kilka słów o 
&lt;a href=&quot;http://www.amazon.com/gp/product/0596529325?ie=UTF8&amp;tag=meksblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596529325&quot;&gt;Programming Collective Intelligence&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=meksblo-20&amp;l=as2&amp;o=1&amp;a=0596529325&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/13-Zbiorowa_inteligencja.html#extended&quot;&gt;Ciąg dalszy &quot;Zbiorowa inteligencja&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 28 Jul 2008 10:50:56 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/13-guid.html</guid>
    <category>algorytmy</category>
<category>optymalizacja</category>
<category>programowanie</category>
<category>python</category>

</item>
<item>
    <title>Wirtualne środowiska Pythona</title>
    <link>http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html</link>
            <category>Python</category>
    
    <comments>http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html#comments</comments>
    <wfw:comment>http://notatnik.mekk.waw.pl/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://notatnik.mekk.waw.pl/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Kasperski)</author>
    <content:encoded>
    &lt;p&gt;Piszę aplikację opartą na &lt;a href=&quot;http://twistedmatrix.com&quot;&gt;Twisted&lt;/a&gt;. Niestety, w standardowej dystrybucji jest dość stara wersja. Zainstalowanie nowszej nie stanowi problemu, bądź co bądź to tylko &lt;code&gt;easy_install&lt;/code&gt;. Podobnie łatwo mogę pociągnąć najnowsze &lt;a href=&quot;http://pylonshq.com&quot;&gt;Pylons&lt;/a&gt;-y, &lt;a href=&quot;http://makotemplates.org&quot;&gt;Mako&lt;/a&gt; czy &lt;a href=&quot;http://sqlalchemy.org&quot;&gt;SQLAlchemy&lt;/a&gt;. I tak dalej.&lt;/p&gt;

&lt;p&gt;Stop następuje po paru miesiącach, gdy okazuje się, że sam już nie wiem jakie wersje i czego mam poinstalowane, jakiś program użytkowy z standardowej dystrybucji nie chce działać, bo najnowsza wersja którejś z bibliotek zmieniła API, do tego mam dwie aplikacje, z których jedna powinna działać na &lt;a href=&quot;http://pylonshq.com/WebHelpers/&quot;&gt;WebHelpers&lt;/a&gt; 0.3.2 a druga na 0.6.&lt;/p&gt;

&lt;p&gt;Co z tym zrobić?&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://notatnik.mekk.waw.pl/archives/7-Wirtualne_srodowiska_Pythona.html#extended&quot;&gt;Ciąg dalszy &quot;Wirtualne środowiska Pythona&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 25 Jul 2008 21:05:24 +0200</pubDate>
    <guid isPermaLink="false">http://notatnik.mekk.waw.pl/archives/7-guid.html</guid>
    <category>python</category>
<category>virtualenv</category>

</item>

</channel>
</rss>