<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2polishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0"><channel><title>Karbownicki.com</title><link>http://karbownicki.com/</link><description>Wszystkie notki</description><language>en</language><lastBuildDate>Mon, 06 Jul 2009 07:44:29 PDT</lastBuildDate><generator>JoggerPL</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/karbownicki-com" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">karbownicki-com</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkarbownicki-com" src="http://www.netvibes.com/img/add2netvibes.gif">Dodaj do netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkarbownicki-com" src="http://buttons.googlesyndication.com/fusion/add.gif">Dodaj do Google</feedburner:feedFlare><item><title>Django – personalizacja settings.py</title><link>http://karbownicki.com/2009/06/28/django-personalizacja-settings-py/</link><category>Django</category><category>Kodowanie</category><category>Techblog</category><category>Django Python</category><pubDate>Sun, 28 Jun 2009 02:17:04 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/06/28/django-personalizacja-settings-py/</guid><description>&lt;p&gt;Jak każdy djangowic dobrze wie plik &lt;b&gt;settings.py&lt;/b&gt; przechowuje wszelkie ustawienia aplikacji począwszy od nazwy strony a na listach middleware'u czy liście zainstalowanych aplikacji skończywszy. Ponieważ zawiera on wszelkie ustawienia, musi być inny dla developera a inny dla serwera produkcyjnego (np. z powodu tego, że developer ma DEBUG=True).&lt;/p&gt;
&lt;p&gt;Pierwszą możliwością rozwiązania tego problemu jest ignorowanie pliku &lt;b&gt;settings.py&lt;/b&gt; przez repozytorium kodu, tak aby różne zawartości tego pliku nie powodowały konfliktów. Wadą takiego rozwiązania jest potrzeba ręcznego edytowania tego pliku na serwerze kiedy np. dodajemy nową aplikację do &lt;b&gt;INSTALLED_APPS&lt;/b&gt;. Moje repozytorium aktualizuje stronę na serwerze po każdym commicie, więc ręczna edycja &lt;b&gt;settings.py&lt;/b&gt; jest męcząca.&lt;/p&gt;
&lt;p&gt;Drugą możliwością jest stworzenie osobnego ustawień dla serwera i osobnego dla developera. Django umożliwia uruchomienie serwera z podaniem pliku ustawień jako parametr:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;python manage.py runserver --settings=settings-developer.py&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Wszystko wydaje się być ok. Jeżeli coś zmieniamy to dokonujemy zmiany w &lt;b&gt;settings.py&lt;/b&gt;, &lt;b&gt;settings-developer.py&lt;/b&gt; i po commitcie wszystko gra. Czasami jednak przy testowaniu różnych rzeczy w pliku developera można zapomnieć o &lt;b&gt;settings.py&lt;/b&gt; i po commicie znowu strona jest rozwalona. Poza tym nie każdy developer korzysta z tych samych ustawień. Jeden używa &lt;a href="http://github.com/dcramer/django-debug-toolbar/tree/master"&gt;Django Debug Toolbar&lt;/a&gt; inny &lt;a href="http://www.djangosnippets.org/snippets/571/"&gt;ColorSQLMiddleware&lt;/a&gt; więc trzeba by zrobić tyle settings-xxx ilu developerów. A później przy zmianie czegoś globalnego edytować wszystkie...&lt;/p&gt;
&lt;p&gt;Ostatecznym rozwiązaniem okazało się przeciążenie pliku &lt;b&gt;settings.py&lt;/b&gt; przez ponowną deklarację zmiennych lub rozszerzenie lub istniejących wartości. Jak to zrobić?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tworzymy plik, który będzie przetrzymywał nasze lokalne ustawienia, np. &lt;b&gt;settings-local.py&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Na końcu pliku &lt;b&gt;settings.py&lt;/b&gt; dodajemy kod:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;
&lt;code&gt;BASE_DIR = os.path.dirname(os.path.abspath(__file__))
execfile('%s/settings-local.py' % BASE_DIR)&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Teraz w pliku &lt;b&gt;settings-local.py&lt;/b&gt; możemy ponownie zadeklarować zmienne które mają zostać przeciążone lub rozszerzyć zadeklarowane już w &lt;b&gt;settings.py&lt;/b&gt; listy. Np. kiedy jeden z developerów chce użyć &lt;a href="http://github.com/dcramer/django-debug-toolbar/tree/master"&gt;Django Debug Toolbar&lt;/a&gt; dodaje do &lt;b&gt;settings-local.py&lt;/b&gt; taki kod:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;MIDDLEWARE_CLASSES += (
        'debug_toolbar.middleware.DebugToolbarMiddleware',
)

INSTALLED_APPS += (
        'debug_toolbar',
)

DEBUG_TOOLBAR_PANELS = (
        'debug_toolbar.panels.sql.SQLDebugPanel',
        'debug_toolbar.panels.headers.HeaderDebugPanel',
        'debug_toolbar.panels.cache.CacheDebugPanel',
        'debug_toolbar.panels.profiler.ProfilerDebugPanel',
        'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
        'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
        'debug_toolbar.panels.templates.TemplatesDebugPanel',
        # If you are using the profiler panel you don't need the timer
        # 'debug_toolbar.panels.timer.TimerDebugPanel',
)&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Plik &lt;b&gt;settings-local.py&lt;/b&gt; wywalamy z repozytorium i w ten sposób otrzymujemy elastyczny mechanizm współdzielenia wartości globalnych przy jednoczesnej personalizacji ustawień lokalnych.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=EPECcp_wRDo:TQoJjvhphOs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Narzędzia do pracy grupowej poszukiwane</title><link>http://karbownicki.com/2009/06/04/narzedzia-do-pracy-grupowej-poszukiwane/</link><category>Internet</category><category>Kodowanie</category><category>projectmanagement praca grupowa kod współpraca</category><pubDate>Thu, 04 Jun 2009 06:40:21 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/06/04/narzedzia-do-pracy-grupowej-poszukiwane/</guid><description>&lt;p&gt;Obecnie pracuję jako programista aplikacji internetowych w małym zespole. Realizujemy kilka projektów w miesiącu i dość trudno jest zapanować nad wszystkimi zadaniami, które trzeba wykonać. W przypadku większych projektów korzystamy z &lt;a href="http://trac.edgewall.org/wiki"&gt;Trac'a&lt;/a&gt;, jednak do mniejszych nie nadaje się on za dobrze ponieważ trzeba dla każdego projektu tworzyć nową instancję i nie ma jak zrobić zbiorczego zestawienia. Rozglądałem się więc za jakimś kompleksowym rozwiązaniem, które dawałoby możliwość ogarnięcia kilku projektów wraz ze śledzeniem repozytoriów Subversion.&lt;/p&gt;
&lt;p&gt;Powstało już wiele serwisów oferujących podobną funkcjonalność. Wśród najbardziej znanych wymienić można:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.lighthouseapp.com/"&gt;Lighthouse&lt;/a&gt;&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3415/3594519193_81b19f3ebe.jpg" alt="screen"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.activecollab.com/"&gt;activeCollab&lt;/a&gt;&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3377/3595326840_5d28673c68.jpg" alt="screen"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://goplanapp.com/"&gt;Goplan 2.0&lt;/a&gt;&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3586/3594562805_8d985030fb.jpg" alt="screen"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://collabtive.o-dyn.de/"&gt;Collabtive&lt;/a&gt;&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3589/3595370360_e24e1347b8.jpg" alt="screen"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Główną wadą pierwszych trzech rozwiązań jest to, że nie można ich hostować na własnym serwerze a jedynie wykupuje się konto na serwerze producenta. Collabtive jest co prawda aplikacją na licencji GNU GPL i można postawić to u siebie, ale z kolei zupełnie nie obsługuje repozytoriów kodu.&lt;/p&gt;
&lt;p&gt;I tutaj pytanie do Was. Czego Wy używacie w pracy? Być może jest jakiś fajny projekt który przeoczyłem.&lt;/p&gt;
&lt;p&gt;PS. Swoją drogą to dziwne, że nikt jeszcze czegoś podobnego w Django nie zrobił.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=8BCXsLYGz1I:PipUN0S0DJQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Dziwne struktury na powierzchni Marsa</title><link>http://karbownicki.com/2009/05/26/dziwne-struktury-na-powierzchni-marsa/</link><category>Inne</category><category>mars zdjęcia struktury tajemnice</category><pubDate>Tue, 26 May 2009 11:15:54 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/05/26/dziwne-struktury-na-powierzchni-marsa/</guid><description>&lt;p&gt;Na wstępie zaznaczę, że sprawa nie jest najnowsza, pierwsze wzmianki o dziwnych strukturach opisane były już w 2005 roku. Jednak do tej pory temat jest mało znany choć w mojej opinii szalenie ciekawy, dlatego postanowiłem go opisać.&lt;/p&gt;
&lt;p&gt;Cała historia dotyczy Marsa a dokładnie krateru Hale (150km x 120km)&lt;br&gt;
&lt;a href="http://www.google.com/mars/#lat=-44.465151&amp;amp;lon=-21.445312&amp;amp;zoom=4&amp;amp;q=hale%20crater"&gt;&lt;img src="http://farm4.static.flickr.com/3347/3566543703_93b607252a_o.png" alt="Mapa Marsa"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;W 2005 roku sonda &lt;a href="http://pl.wikipedia.org/wiki/Mars_Express_Orbiter"&gt;Mars Express Orbiter&lt;/a&gt;, wystrzelona 2 lata wcześniej przez &lt;a href="http://www.esa.int/"&gt;Europejską Agencję Kosmiczną ESA&lt;/a&gt;, przesłała na Ziemię swoje pierwsze zdjęcia powierzchni czerwonej planety jakie wykonała za pomocą znajdującej się na pokładzie wysokiej klasy aparatury (dokładność do 10 m).&lt;/p&gt;
&lt;p&gt;Zdjęcia możecie znaleźć sami w galerii ESA szukając pod hasłem &lt;a href="http://www.esa.int/esa-mmg/mmg.pl?topic=&amp;amp;subtopic=&amp;amp;subm1=GO&amp;amp;keyword=hale+crater"&gt;hale crater&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Na pierwszy rzut oka są to zdjęcia jak każde inne, wszędzie tylko pustka i skały. Ale tylko do momentu aż zobaczymy powiększenie. Weźmy na ten przykład zdjęcie zatytułowane &lt;a href="http://esamultimedia.esa.int/images/marsexpress/137-021104-0533-6-3d2-01-HaleCrater_H.jpg"&gt;Crater Hale in perspective, looking west&lt;/a&gt;. Kiedy spojrzymy na środkowy obszar dolnej części zdjęcia bez większego trudu powinniśmy znaleźć tam coś w rodzaju pikseli.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2425/3567462818_12fb07685a_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2425/3567462818_b2b9726eaf.jpg" alt="wstep-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2442/3567466398_d4df2e0630_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2442/3567466398_2105c8e47b.jpg" alt="wstep-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aby polepszyć sobie jakość obrazu wystarczy prosty zabieg przyciemnienia obrazu i zwiększenia kontrastu (ja posłużyłem się Gimpem).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3597/3567475238_67b9b776bf_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3597/3567475238_4ed77943b1.jpg" alt="wstep-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tak, wiem. Na pierwszy rzut oka jest to trudne do przyjęcia. Szukamy szybko w głowach wyjaśnień typu błędy matrycy czy jakieś szumy na zdjęciu. Musimy sobie jednak przypomnieć, że zdjęcia te nie były wykonywane aparatem z promocji w Tesco. Mars Express Orbiter wyposażony był w aparaturę zdolną robić zdjęcia topograficzne z dokładnością do 10 metrów a nawet zdjęcia warstw podpowierzchniowych (co było jednym z głównych celów misji). Natomiast obiekty widoczne na zdjęciu mają rozmiary sięgające kilku kilometrów! O czymś naturalnym nie może być mowy ponieważ jak wiadomo linie proste, kąty proste, czy prostokąty nie występują w naturze, tym bardziej w takiej ilości i obok siebie.&lt;/p&gt;
&lt;p&gt;Ktoś inny może powiedzieć, że są to po prostu piksele powstałe w wyniku stratnej kompresji zdjęcia do formatu JPG. Powiedzmy, że można by się zgodzić z tą teorią jeżeli dysponowalibyśmy wyłącznie pojedynczym zdjęciem. Jednak do dyspozycji mamy kilka zdjęć więc teoria o kompresji jest chybiona co łatwo udowodnić.&lt;/p&gt;
&lt;p&gt;Zdjęcie 1: &lt;a href="http://esamultimedia.esa.int/images/marsexpress/137-021104-0533-6-3d2-01-HaleCrater_H.jpg"&gt;Crater Hale in perspective, looking west&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2439/3566737747_a6938cf2e9_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2439/3566737747_078d1a95b1.jpg" alt="zdjecie-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2482/3567552054_e0a760b205_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2482/3567552054_8d0bf33dd0.jpg" alt="zdjecie-1-powiekszenie"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Na tym zdjęciu zaznaczyłem kilka charakterystycznych obiektów&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3606/3566743959_c97f9ebacb_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3606/3566743959_50a608a3b5.jpg" alt="zdjecie-1-obiekty"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zdjęcie 2: &lt;a href="http://esamultimedia.esa.int/images/marsexpress/136-021104-0533-6-3d1-01-HaleCrater_H.jpg"&gt;Crater Hale in perspective, looking north-west&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3415/3567532930_9101d7360e_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3415/3567532930_603029a1eb.jpg" alt="zdjecie-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2482/3567568502_a63ea18c67_o.png" alt="zdjecie-2-powiekszenie"&gt;&lt;/p&gt;
&lt;p&gt;Jak widać poniżej na zdjęciu wykonanym pod innym kątem obiekty te również widzimy pod innym kątem a więc wszelkie przekłamania pojedynczego zdjęcia są wykluczone. Poza tym dwa obiekty po lewej stronie zdjęcia wykazują perspektywę zgodną z nachyleniem zbocza. A więc to musi być coś na powierzchni!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3297/3567572204_a49a732ca2_o.png" alt="zdjecie-2-obiekty"&gt;&lt;/p&gt;
&lt;p&gt;Zdjęcie 3 &lt;strong&gt;TIFF 9,4 MB&lt;/strong&gt;: &lt;a href="http://esamultimedia.esa.int/images/marsexpress/134-021104-0533-6-co-02-HaleCrater_hires.tif"&gt;Crater Hale in Argyre basin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To zdjęcie dostępne jest w formacie TIFF a więc zostało skompresowane bezstratnie! Co prawda obejmuje o wiele większy obszar jednak i tak wspomniane obiekty możemy odnaleźć&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3657/3566777923_e16132ef9a_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3657/3566777923_217a71bc26.jpg" alt="zdjecie-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2459/3567625246_650b516277_o.png" alt="zdjecie-3-powiekszenie"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2439/3567627598_d95a38e89a_o.png" alt="zdjecie-3-obiekty"&gt;&lt;/p&gt;
&lt;p&gt;To nie jedyne dziwne zdjęcia z Marsa ale na pewno bardzo ciekawe, zwłaszcza że można sprawdzić je samemu. Zainteresowanym polecam również stronę &lt;a href="http://www.marsanomalyresearch.com/"&gt;marsanomalyresearch.com&lt;/a&gt;, gdzie można znaleźć o wiele więcej analiz oraz dziwnych zdjęć typu zamazane obiekty na środku zdjęcia, znikające marsjańskie skały czy bezczelnie przerobione zdjęcia powierzchni na zasadzie kopiuj-wklej.&lt;/p&gt;
&lt;h3&gt;Źródła:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.marsanomalyresearch.com/evidence-reports/2005/084/hale-civ-evidence.htm"&gt;HALE CRATER CIVILIZATION EVIDENCE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=qcR7VX-FwDY"&gt;Mars Civilization:Evidence By European Space Agency&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=TlAToV52QRU:8Hx7FieVW-8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Python i jQuery czyli pyquery</title><link>http://karbownicki.com/2009/05/04/python-i-jquery-czyli-pyquery/</link><category>Kodowanie</category><category>Python</category><category>Techblog</category><category>Python pyquery</category><pubDate>Mon, 04 May 2009 06:51:57 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/05/04/python-i-jquery-czyli-pyquery/</guid><description>&lt;p&gt;Ostatnio wpadł mi w ręce bardzo ciekawy moduł Pythona, który śmiało można określić jako jQuery po stronie serwera. Jeżeli potrzebowaliście kiedyś wyciągnąć jakieś dane z kodu HTML-a i denerwowała was zabawa z parsowaniem kodu za pomocą sgmllib czy innego tego typu wynalazku, to wasze cierpienia właśnie się skończyły.&lt;/p&gt;
&lt;h3&gt;Jak to działa?&lt;/h3&gt;
&lt;p&gt;Na początek pobierzemy zawartość jakieś strony, z której chcemy wyciągnąć dane. Ja posłużę się stroną antyweb.pl, ponieważ jest całkiem przystępnie zakodowana.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;from pyquery import PyQuery as pq
import urllib

html = urllib.urlopen("http://antyweb.pl").read()
html = pq(html)&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Teraz wystarczy już zadecydować co chcemy wyciągnąć i po prostu to zrobić :-) Np. informacje o autorze&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;print  html("#f li.frt").text()&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Wynik:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Witaj, nazywam sie Grzegorz Marczak i&amp;nbsp;jestem autorem tego bloga. Piszę tutaj o&amp;nbsp;serwisach spolecznosciowych, nowych technologiach i&amp;nbsp;nowych trendach w&amp;nbsp;internecie.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wyciągnięcie wszystkich kategorii&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;for a in html("li.categories a"):
        print a.text&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Wynik:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;antytydzień Biała flaga&lt;br&gt;
Ciekawe strony&lt;br&gt;
google&lt;br&gt;
Świat&lt;br&gt;
Miniblog&lt;br&gt;
Mobilnie&lt;br&gt;
Moje przemyślenia&lt;br&gt;
Off topic&lt;br&gt;
polska&lt;br&gt;
Pytamy.pl&lt;br&gt;
Startups&lt;br&gt;
To mnie drażni.&lt;br&gt;
Uncategorized&lt;br&gt;
W trakcie tworzenia&lt;br&gt;
wywiady&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wyszukanie najczęściej komentowanego wpisu ze strony głównej&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;max_comments = 0
title = ''
for a in html("ul.clnn li.l a"):
        try:
                # liczba komentarzy
                comments = int(a.text.split(" ")[1])
                if max_comments &amp;lt; comments:
                        max_comments = comments
                        # nazwa wpisu
                        title = a.values()[1].replace("Komentarze do wpisu ",'')
        except:
                pass
                
print "Najwiecej komentarzy: %s" % max_comments
print "Wpis: %s" % title&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Wynik:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Najwiecej komentarzy: 32&lt;br&gt;
Wpis: Interia mówi, tak kupujemy ruch (bo inni też tak robią)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Więcej&lt;/h3&gt;
&lt;p&gt;To oczywiście tylko mała próbka możliwości. pyquery pozwala również na manipulację stylami (addClass, toggleClass, removeClass, attr, css) czy samą strukturą danych (append, prepend, prependTo, insertAfter, remove, replaceWith itd.). Jeżeli posiadamy moduł &lt;a href="http://pythonpaste.org/webob/"&gt;WebOb&lt;/a&gt; możemy też zaprzęgnąć do pracy Ajax.&lt;/p&gt;
&lt;p&gt;Po więcej informacji zapraszam na &lt;a href="http://pypi.python.org/pypi/pyquery"&gt;stronę projektu pyquery&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=e1bNSorHfv0:HTU_E37xSbo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Studia - podsumowanie</title><link>http://karbownicki.com/2009/04/24/studia-podsumowanie/</link><category>Inne</category><category>studia politechnika opolska opole informatyka</category><pubDate>Fri, 24 Apr 2009 13:55:53 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/04/24/studia-podsumowanie/</guid><description>&lt;p&gt;Dzisiejszego ranka udało mi się przedwcześnie obronić swoją pracę magisterską i tym samy zakończyć 5-letni proces studiowania na Politechnice Opolskiej. W tym wpisie postaram się zawrzeć moje krótkie przemyślenia na temat studiów, z którego wyłoni się krótkie HOWTO studiowania na kierunkach informatycznych ;-)&lt;/p&gt;
&lt;h3&gt;Wybierz uczelnię&lt;/h3&gt;
&lt;p&gt;Pierwsze pytanie brzmi: idę na studia żeby się czegoś nauczyć czy pożyć życiem studenckim? Jeżeli chcesz się zabawić wyjedź gdzieś do dużego miasta typu Wrocław, Kraków czy Poznań, gdzie o każdej porze znajdzie się jakiś otwarty klub i ludzie chętni na imprezę. Jeżeli natomiast chcesz się czegoś nauczyć idź tam gdzie jest Ci najbliżej aby oszczędzić sobie &lt;em&gt;uroków&lt;/em&gt; życia w akademiku czy na stancji. Nie trzeba będzie zastanawiać się co jutro zjesz na kolację, za co opłacisz akademik czy skąd weźmiesz czystą bieliznę ;-) Dzięki temu zdobędziesz mnóstwo czasu do zagospodarowania pomiędzy studia i swoje zainteresowania (a do klubu też można zawsze wyskoczyć).&lt;/p&gt;
&lt;h3&gt;Nie ucz się&lt;/h3&gt;
&lt;p&gt;Nie ucz się wszystkiego co Ci każą. W większości są to oderwane od rzeczywistości bzdury, rzeczy mniej lub bardziej przedawnione lub informacje, które po prostu leżą poza twoim kręgiem zainteresować. &lt;b&gt;Najlepiej już na początku studiów wytyczyć sobie kierunek w jakim chcemy się rozwijać i drążyć go do końca.&lt;/b&gt; Trzeba powiedzieć sobie chcę być grafikiem, programistą C++, webmasterem czy specjalistą od sztucznej inteligencji. Studia potraktować trzeba jako 5-letni przegląd rzeczy, którymi zajmuję się informatyka. Uczenie się wszystkiego nie ma sensu, specjalistą od wszystkiego nie będziesz. Ważne jest natomiast poznanie wszystkich obszarów informatyki razem z narzędziami jakimi się posługują, aby w razie czego wiedzieć, w którym kierunku po wiedzę sięgnąć i co z czym się je. Po ukierunkowaniu się na daną dziedzinę wystarczy jedynie z tego 5-letniego przeglądu informatyki wyłapywać narzędzia i techniki powiązane z obszarem naszych zainteresować i przyjrzeć się im z bliska.&lt;/p&gt;
&lt;h3&gt;Nikt Cię niczego nie nauczy&lt;/h3&gt;
&lt;p&gt;Nie można zakładać, że ktoś na studiach nas czegoś nauczy. Studia w tej chwili są tak powszechne jak komunikacja miejska. Uczenie mas to uczenie wszystkich czyli nikogo. &lt;b&gt;Jeżeli sam się czegoś nie nauczysz to nikt za ciebie tego nie zrobi.&lt;/b&gt; Nie chodzi mi jedynie o uczenie się rzeczy objętych programem nauczania. Większości rzeczy tak naprawdę przydatnych w pracy nikt nam na studiach nie pokaże. Nie liczcie na to, że ktoś wam opowie jak dobrze skonfigurować Linuksa, zbudować stronę używając Django czy nauczy używać narzędzi kontroli wersji. Dlatego ważne jest olanie mniej ważnych rzeczy aby mieć czas zagłębić się w inne, czyli te rzeczywiście przydatne.&lt;/p&gt;
&lt;h3&gt;Zakręć się&lt;/h3&gt;
&lt;p&gt;Zakręć się w jakimś informatycznym kole naukowym czy innym &lt;abbr title="Linux Users Group"&gt;LUG&lt;/abbr&gt;-u. Nawet jeżeli nie będzie to coś bardzo interesującego to zdobędziesz nowe kontakty, które prędzej czy później zaowocują jakimś zleceniem, fajną praktyką czy może nawet ofertą pracy. Dodatkowo na pewno znajdziesz tam osoby, od których będziesz mógł się nauczyć wielu ciekawych rzeczy.&lt;/p&gt;
&lt;h3&gt;Nie zbieraj ocen, pracuj&lt;/h3&gt;
&lt;p&gt;Olej wszelkie średnie. Nie szykuj się na stypendium. Dobra średnia wymaga uczenia się bzdurnych i nieprzydatnych rzeczy a czasami i to nie wystarcza bo akurat egzaminator miał zły dzień. &lt;b&gt;Jeżeli oceny olejesz już na początku studiów zyskasz czas na uczenie się przydatnych rzeczy no i zaoszczędzisz sobie mnóstwo nerwów&lt;/b&gt; (a kto wie ile to lat życia dłużej). Ucz się przedmiotów, które leżą w obrębie Twoich zainteresowań. Tu staraj się o jak najlepszą ocenę, ale wyłącznie jako miernik swojego poziomu wiedzy, bo i tutaj może się zdarzyć, że przedmiot prowadzi ktoś kto dość często ma złe dni lub po prostu sam nie zna się na tym co wykłada (prowadzący z łapanki). &lt;b&gt;Czas zaoszczędzony na zaliczeniu po najmniejszej linii oporu nieprzydatnych przedmiotów przeznacz na własne projekty lub komercyjne zlecenia&lt;/b&gt;. Wykonuj jak najwięcej takich projektów/zleceń czasami nawet za pół darmo czy wręcz za darmo. Na chwilę obecną nie jest to ważne póki masz co jeść i dach nad głową. Zaprocentuje to jednak po skończeniu studiów bo zamiast chwalić się piątką z inżynierii oprogramowania pochwalisz się projektem X, zleceniem Y, czy pracą w firmie Z. Nikogo wówczas nie będzie obchodziło ile kasy z tego wyciągnąłeś ale wyłącznie ile doświadczenia z tego wyniosłeś. Często będzie też tak że projekt A wykonany za darmo za rok otworzy nam drogę do projektu B wykonanego za małe pieniądze a ten za pół roku da nam wejście do projektu C, za który dostaniemy już dobre wynagrodzenie (dalej już z górki).&lt;/p&gt;
&lt;p&gt;To by chyba było na tyle moich złotych myśli. Jak coś jeszcze mi się przypomni to zedytuję. Teraz czas na odpoczynek bo jutro pierwszy dzień reszty mojego życia :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=jy46zYqf7S8:6NFZNItTYyY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Pacnet &lt;span class="caps"&gt;API&lt;/span&gt; czyli gPacnet</title><link>http://karbownicki.com/2009/04/10/pacnet-api-czyli-gpacnet/</link><category>ArchLinux</category><category>Linux</category><category>Pacnet</category><category>Projekty</category><category>Python Django Pacnet PyGTK</category><pubDate>Fri, 10 Apr 2009 08:22:50 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/04/10/pacnet-api-czyli-gpacnet/</guid><description>&lt;p&gt;Przerzuciłem właśnie &lt;a href="http://karbownicki.com/2008/06/25/pacnet-api/"&gt;stare API&lt;/a&gt; na Django. Nie obyło się bez małych zmian. Zrezygnowałem z wyboru formatów text/json/xml i zostawiłem wyłącznie JSON-a. Z formatami jednak za dużo jest zabawy, bo co prawda Django samo potrafi przerzucić QuerySet do XML-a czy JSON-a jednak robi to strasznie dziwnie, ponieważ do wyjściowego formatu dokłada takie rzeczy jak klucz obiektu czy nazwę modelu z jakiego pochodzi. Nie bardzo wiem komu takie coś jest potrzebne no a wywalić nie ma jak. O czym mówię? Weźmy np. listę kategorii.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;def api_categories(request):
data = Category.objects.all().order_by('name')
json = serializers.serialize("json", data)
return HttpResponse(json, mimetype="text/javascript")
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Logiczne wydawałoby się, że na wyjściu zobaczymy:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[
{"name": "No"}, 
{"name": "app-accessibility"},
...
]
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Ale pojawia się:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[
{"pk": 107, "model": "packages.category", "fields": {"name": "No"}}, 
{"pk": 1, "model": "packages.category", "fields": {"name": "app-accessibility"}},
...
]
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;I po co to komu?&lt;/p&gt;
&lt;p&gt;Wracając do Pacnetu… Przy okazji wdrożenia &lt;span class="caps"&gt;API&lt;/span&gt; odgrzebałem moje nieudolne próby napisania menadżera pakietów (Python+PyGTK) operującego na &lt;span class="caps"&gt;API&lt;/span&gt; Pacnetu.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3416/3428413499_c68e6893b3_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3416/3428413499_f1c5cae946.jpg" title="" alt="" width="500" height="337"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/gpacnet/"&gt;code.google.com/p/gpacnet/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Podstawowa funkcjonalność, czyli przeglądanie i instalowanie pakietów podzielonych wg. kategorii działa. Więcej na chwilę obecną (np. wyświetlenia screenów) nie potrafię :-P Jednak systemowe &lt;span class="caps"&gt;GUI&lt;/span&gt; pozostają daleko w tyle za łatwością elastycznością HTML-a. Instalacja pakietów odbywa się przez wywołanie Terminala z odpowiednią komendą, więc jeżeli nie macie Terminala trzeba &lt;a href="http://code.google.com/p/gpacnet/source/browse/trunk/gpacnet.py#126"&gt;zastąpić go&lt;/a&gt; jakimś innym emulatorem konsoli.&lt;/p&gt;
&lt;p&gt;Gdyby ktoś chciał napisać coś takiego pod QT lub cokolwiek lepszego dla &lt;span class="caps"&gt;GTK&lt;/span&gt; to serdecznie zapraszam. &lt;span class="caps"&gt;API&lt;/span&gt; stoi otworem.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pacnet.karbownicki.com/api/"&gt;pacnet.karbownicki.com/api/&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=fb8ZUlvercM:_U-sH6E-f64:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Pacnet na Django</title><link>http://karbownicki.com/2009/03/27/pacnet-na-django/</link><category>ArchLinux</category><category>Linux</category><category>Pacnet</category><category>Projekty</category><category>pacnet archlinux gentoo</category><pubDate>Fri, 27 Mar 2009 05:43:54 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/03/27/pacnet-na-django/</guid><description>&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3436/3389833862_c16b03402a_o.png" alt="" width="500" height="243"&gt;&lt;/p&gt;
&lt;p&gt;Wreszcie wczoraj znalazłem trochę czasu aby ruszyć &lt;a href="http://pacnet.karbownicki.com/"&gt;Pacnet&lt;/a&gt;. Po tym jak ostatnio &lt;a href="http://karbownicki.com/2008/12/14/hosting-django-poszukiwany/"&gt;szukałem hostingu&lt;/a&gt; napisała do mnie pani &lt;a href="http://www.goldenline.pl/magda-zarych"&gt;Magda Zarych&lt;/a&gt; i zaoferowała darmowy hosting w &lt;a href="http://megiteam.pl/"&gt;MegiTeam&lt;/a&gt;. Jakość oferty bardzo pozytywnie mnie zaskoczyła, wystarczy spojrzeć &lt;a href="https://www.megiteam.pl/Oferta"&gt;tutaj&lt;/a&gt;, żeby się przekonać co dobrego siedzi na serwerach.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3568/3389059881_86bdf68607_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3568/3389059881_8955c4dd53.jpg" title="" alt="" width="500" height="178"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tak więc od kilku dni Pacnet działa sprawnie pod kontrolą duetu Django &amp;amp; PostgreSQL. Zalet Django chyba przedstawiać nie trzeba więc powiem tylko, że brama do dalszego rozwoju została szeroko otwarta. Co nowego oprócz zmiany &lt;span class="caps"&gt;PHP&lt;/span&gt; na Pythona?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System komentarzy&lt;/li&gt;
&lt;li&gt;Internacjonalizacja (obecnie polski i angielski)&lt;/li&gt;
&lt;li&gt;Nowa wyszukiwarka z podświetlaniem znalezionych fraz&lt;/li&gt;
&lt;li&gt;Log zmian kategorii pakietów&lt;/li&gt;
&lt;li&gt;Link do zmiany kategorii pakietu z poziomu listy pakietów&lt;/li&gt;
&lt;li&gt;Poprawiony skrypt aktualizacyjny wyszukujący screeny oraz changelog&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://pacnet.karbownicki.com"&gt;pacnet.karbownicki.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
&lt;p&gt;Na koniec chciałem bardzo serdecznie podziękować Arturowi Bednarkowi (&lt;a href="http://unix.net.pl/"&gt;unix.net.pl&lt;/a&gt;) oraz Krzysztofowi Rygwelskiemu, którzy również zaproponowali hosting na swoich serwerach.&lt;/p&gt;
&lt;p&gt;PS. Chętnie przyjmę subdomenę pacnet.archlinux.pl&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=gNN1-zk5M0s:iTiJ2aomF5E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Xfce 4.6 oficjalnie wydane</title><link>http://karbownicki.com/2009/02/27/xfce-4-6-oficjalnie-wydane/</link><category>Linux</category><category>Software</category><category>Techblog</category><category>Linux Gtk Xfce Desktop Thunar</category><pubDate>Thu, 26 Feb 2009 20:39:37 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/02/27/xfce-4-6-oficjalnie-wydane/</guid><description>&lt;p&gt;Poniższy tekst jest tłumaczeniem &lt;a href="http://www.xfce.org/about/tour"&gt;oficjalnego przewodnika&lt;/a&gt; po nowej wersji Xfce 4.6:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Wizualny przewodnik po Xfce 4.6.0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Długo wyczekiwana wersja 4.6.0 środowiska graficznego Xfce wreszcie została wydana. Postaramy się wyszczególnić niektóre z nowych funkcji, które zostały dodane od czasu ostatniego stabilnego wydania.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ulepszone użytkowanie pulpitu z Xfdesktop&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Od czasu kiedy w wersji Xfce 4.4 pojawiły się ikony na pulpicie, ludzie chcieli mieć możliwość jednoczesnego zaznaczania wielu ikon. W Xfce 4.6 Xfdesktop wreszcie posiada tą funkcję: można zaznaczać wiele ikon, przesuwać je, usuwać itp.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfdesktop-rubberbanding.png" alt="" width="243" height="233"&gt;&lt;/p&gt;
&lt;p&gt;Xfce 4.6 wprowadza całkiem nowe menu pulpitu, które pozwala zarówno na manipulowanie plikami tak samo jak menu kontekstowe Thunara, jak również na otwieranie aplikacji, zakończenie sesji czy dostęp do dokumentacji.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfdesktop-menu.png" alt="" width="272" height="477"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Panel&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Wiele znanych od dawna błędów zostało naprawionych w panelu Xfce4, zwłaszcza wsparcie dla wielu monitorów. Nowe wydanie przynosi też wiele ulepszeń panelowych wtyczek.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-panel-clock.png" alt="" width="443" height="408"&gt;&lt;/p&gt;
&lt;p&gt;Wtyczka zegara została całkowicie przepisana, aby zużywać jak najmniej zasobów systemowych oraz pozbycia się kilku błędów wyświetlania. Wprowadzony został również nowy tryb zegara dla geeków: zegar binarny! Nowa wtyczka obszaru powiadomień pozwala na ukrywanie wybranych ikon, aby zachować porządek i przejrzystość.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowy mikser dźwięku&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mikser Xfce4 został przepisany od zera aby używał Gstreamer-a. Umożliwia to łatwiejsze wsparcie dla wielu systemów dźwięku, interfejs użytkownika jest bardziej dopracowany oraz można zarządzać kilkoma różnymi kartami dźwiękowymi. Dodatkowo wtyczka panelu pozwana na szybką zmianę poziomu dźwięku przy użyciu rolki myszy.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-mixer.png" alt="" width="542" height="429"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Udoskonalony menadżer sesji&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Xfce 4.6 posiada udoskonalony menadżer sesji: sesje powinny startować szybciej a okno dialogowe ustawień sesji zostało przerobione aby umożliwić łatwiejsze zarządzanie uruchamianymi aplikacjami. Dodatkowo menadżer sesji automatycznie zrestartuje sesyjne aplikacje, które się „wysypały”, tak aby w przypadku wystąpienia błędu nie pozostawić użytkownika bez pulpitu, paneli czy menadżera okien.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-session-settings.png" alt="" width="516" height="507"&gt;&lt;/p&gt;
&lt;p&gt;Nowy menadżer sesji zawiera również długo wyczekiwane funkcje: wsparcie dla uśpienia i hibernacji „out of the box”. Dialog zamykania sesji posiada teraz dwa dodatkowe przyciski umożliwiające uśpienie i hibernację komputera.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-session-logout.png" alt="" width="226" height="210"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Menadżer okien&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Jak zwykle Xfwm4 dojrzał nieco podczas tego cyklu dystrybucyjnego: wiele błędów zostało poprawionych, dodano wsparcie dla wielu monitorów oraz ogólne osiągi zostały poprawione.&lt;/p&gt;
&lt;p&gt;W nawiązaniu do kilku innych nowych funkcji, Xfwm4 potrafi teraz wykryć okna, które nie odpowiadają i zaoferować zabicie ich.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfwm4-net-ping.png" alt="" width="401" height="152"&gt;&lt;/p&gt;
&lt;p&gt;Pojawiło się również nowe menu, które pozawala na szybkie przesuwanie i zmianę rozmiaru okien, przemieszczenia ich na wierzch czy pod spód względem innych okien oraz przełączenie ich w tryb pełnoekranowy.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfwm4-new-menu.png" alt="" width="494" height="362"&gt;&lt;/p&gt;
&lt;p&gt;Zaimplementowana została nowa funkcja wypełniania: powiększa ona wybrane okno tak, aby zajmowało jak największą przestrzeń lecz bez przysłaniania sąsiednich okien.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfwm4-fill-operation.png" alt="" width="493" height="477"&gt;&lt;/p&gt;
&lt;p&gt;Kompozytor został zoptymalizowany tak, aby zredukować miganie okien podczas zmiany ich rozmiaru.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfwm4-resize.png" alt="" width="338" height="213"&gt;&lt;/p&gt;
&lt;p&gt;Rozszerzono również niektóre opcje: np. można wyłączyć miganie okien gdy te otrzymują jakieś zdarzenie.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfwm4-new-tweaks.png" alt="" width="388" height="412"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Menadżer plików&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Naprawiono wiele błędów oraz poprawiono osiągi Thunar-a. Można teraz używać przycisków „naprzód” i „wstecz” na myszce (o ile są włączone) aby nawigować. Dołączono też nową wtyczkę, która pozwala na ustawienie tapety pulpitu z menu kontekstowego obrazka.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/thunar-wallpaper-plugin.png" alt="" width="492" height="375"&gt;&lt;/p&gt;
&lt;p&gt;Thunar korzysta teraz ze słownika specyfikacji użytkowników – &lt;span class="caps"&gt;XDG&lt;/span&gt;. Pozwala to na wskazanie i oznaczenie folderów użytkownika tj. muzyka, dokumenty, wideo, szablony itd.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/thunar-xdg-user-dirs.png" alt="" width="515" height="375"&gt;&lt;/p&gt;
&lt;p&gt;Thunar potrafi teraz wyświetlać półprzezroczyste ikony dla dysków i woluminów, które nie są zamontowane, więc można je teraz łatwo odróżnić od pozostałych.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/thunar-mounting.png" alt="" width="515" height="375"&gt;&lt;/p&gt;
&lt;p&gt;Thunar obsługuje teraz szyfrowane urządzenia!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/thunar-encrypted.png" alt="" width="600" height="438"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowe okno konfiguracji&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Xfce 4.6 wprowadza nowe okno konfiguracji interfejsu – Xfce Settings Manager – które umożliwia konfigurację środowiska graficznego dużo łatwiej niż poprzednio. Nowe okno konfiguracji dostępne jest poprzez pojedyncze kliknięcie na ikonkę ustawień i zaprojektowane zostało jako bardziej jednolite, pozwalające szybciej oraz bardziej intuicyjnie konfigurować środowisko.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-settings-manager.png" alt="" width="464" height="407"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ustawienia dostępności&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-accessibility-settings.png" alt="" width="386" height="386"&gt;&lt;/p&gt;
&lt;p&gt;Okno ustawień dostępności pozwala na konfigurację opcji związanych z klawiaturą i myszą tj. modyfikacja zachowania klawiszy funkcyjnych, czas powtarzania klawiszy, minimalny czas przytrzymania klawiszy, odstęp pomiędzy kolejnymi powtórzeniami czy emulacja myszy.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-appearance-settings.png" alt="" width="255" height="366"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ustawienia wyglądu&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Okno ustawień wyglądu pozwala na dobór styli elementów sterujących, wyglądu ikon i czcionek, pasków narzędzi oraz wyglądu menu.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-display-settings.png" alt="" width="353" height="310"&gt;&lt;/p&gt;
&lt;p&gt;Okno ustawień wyświetlania pozwala na dobór rozdzielczości ekranu, częstotliwości odświeżania oraz rotacji każdego podłączonego ekranu.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ustawienia klawiatury&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-keyboard-settings-layout.png" alt="" width="418" height="488"&gt;&lt;/p&gt;
&lt;p&gt;Ustawienia klawiatury pozwalają na dorób opcji związanych z powtarzalnością klawiszy, skrótami klawiaturowymi oraz układem klawiatury.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-keyboard-settings-shortcuts.png" alt="" width="655" height="470"&gt;&lt;/p&gt;
&lt;p&gt;Konfiguracja skrótów klawiszowych odbywa się teraz o wiele łatwiej a wszelkie konflikty skrótów są natychmiast wykrywane.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ustawienia myszy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-mouse-settings.png" alt="" width="440" height="364"&gt;&lt;/p&gt;
&lt;p&gt;Okno ustawień myszy pozwala na konfigurację myszy podłączonej do komputera: kolejność klawiszy, akcelerację, prędkość podwójnego kliknięcia, wygląd kursora itp.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ustawienia pulpitu&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfdesktop-settings.png" alt="" width="435" height="434"&gt;&lt;/p&gt;
&lt;p&gt;Okno ustawień pulpitu jest obecnie znacznie bardziej ujednolicone. Pozwala ono na konfigurację dla każdego ekranu: tapety, jasności, menu pulpitu, wyświetlanych ikon itp.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowy wyszukiwacz aplikacji&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Xfce 4.6 posiada również całkiem nowy wyszukiwacz aplikacji odznaczający się przejrzystym interfejsem. Posiada również ulepszenie wyszukiwania aplikacji przy użyciu klawiatury oraz na bieżąco monitoruje zainstalowane aplikacje, dzięki czemu potrafi „w locie” uaktualnić listę aplikacji. Pozwala również na łatwiejsze tworzenie aktywatorów w panelu poprzez przeciągnięcie ikony aplikacji do okna kreatora aktywatorów.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.xfce.org/images/about/tour/4.6/xfce4-appfinder.png" alt="" width="504" height="426"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Linki&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.xfce.org/"&gt;strona Xfce&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://thunar.xfce.org/"&gt;strona Thunar-a&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.xfce.org/documentation/changelogs/4.6.0"&gt;pełen opis zmian&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Zasługi&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tekst: Jérôme Guelfucci (luty 2009),&lt;/li&gt;
&lt;li&gt;zrzuty ekranu: Jannis Pohlmann,&lt;/li&gt;
&lt;li&gt;tłumaczenie metodą chałupniczą: – trójkąt.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=7zaCl4tvCmM:4ZnEnb00CyM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Geany 0.16</title><link>http://karbownicki.com/2009/02/26/geany-0-16/</link><category>Linux</category><category>Software</category><category>Techblog</category><category>geany linux gtk</category><pubDate>Thu, 26 Feb 2009 05:20:58 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/02/26/geany-0-16/</guid><description>&lt;p&gt;Kronikarskim obowiązkiem melduję pojawienie się nowej wersji mojego ulubionego edytora Geany.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3518/3311629338_343d2b1e0d_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3518/3311629338_856811eda3.jpg" title="" alt="" width="500" height="292"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ważniejsze zmiany:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cała konfiguracja została przeniesiona do ~/.config/geany. Pliki zostaną przeniesione automatycznie przy pierwszym uruchomieniu nowej wersji,&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;boczna lista symboli jest teraz drzewem,&lt;/li&gt;
&lt;li style="list-style: none"&gt;&lt;img src="http://farm4.static.flickr.com/3644/3310775411_85ea0f51e2_o.png" alt="" width="224" height="263"&gt;&lt;/li&gt;
&lt;li&gt;minimalne wymagania zostały podwyższone do &lt;span class="caps"&gt;GTK&lt;/span&gt; w wersji 2.8&lt;/li&gt;
&lt;li&gt;nowy pasek narzędzi jest teraz bardziej elastyczny i spersonalizowany. (Narzędzia &amp;gt; Configuration Files &amp;gt; ui_toolbar.xml),&lt;/li&gt;
&lt;li&gt;dodano opcję automatycznego zamykania nawiasów i cydzysłowów (Guillaume de Rorthais),&lt;/li&gt;
&lt;li&gt;wsparcie dla kilkukrotnego występowania znaku %cursor% w snippetach, dzięki czemu przy wstawianiu snippeta możemy tabulatorem przechodzić w kolejne miejsca przeznaczone do wypełnienia tekstem (Thomas Martitz),&lt;/li&gt;
&lt;li&gt;wsparcie dla nowych typów plików Ada, CMake, Matlab, &lt;span class="caps"&gt;NSIS&lt;/span&gt;, Vala and &lt;span class="caps"&gt;YAML&lt;/span&gt;,&lt;/li&gt;
&lt;li&gt;możliwość dzielenia okna również w poziomie (thanks to Moritz Barsnick),&lt;/li&gt;
&lt;li&gt;udoskonalony instalator dla Windowsów&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;aktualizacje tłumaczeń: bg, ca, cs, de, en_GB, fr, hu, it, ja, pt_BR, sv, ru, tr, vi, zh_CN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pełną listę zmian znajdziecie w &lt;a href="http://www.geany.org/Documentation/ReleaseNotes"&gt;Release Notes&lt;/a&gt; (nie mam pomysłu jak to przetłumaczyć :-P)&lt;/p&gt;
&lt;p&gt;Zachęcam również do zaglądnięcia w sekcję &lt;a href="http://www.geany.org/Download/Extras"&gt;Extras&lt;/a&gt; na stronie projektu, gdzie znajdziecie między innymi snippety &lt;span class="caps"&gt;PHP&lt;/span&gt;, &lt;span class="caps"&gt;HTML&lt;/span&gt; oraz Pythona. Jest tam również mój ulubiony schemat ciemnych kolorów…&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3159/3051864453_6ccb16f355_m.jpg" alt="" width="240" height="144"&gt;&lt;br&gt;
...czy inne ciekawe wynalazki typu edytor schematów kolorowania składni on-line.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=UKB4SOIJBBk:uHKHrrbSlJw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Awaria Google</title><link>http://karbownicki.com/2009/01/31/google-zwariowalo/</link><category>Funny</category><category>Internet</category><pubDate>Sat, 31 Jan 2009 06:50:19 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/01/31/google-zwariowalo/</guid><description>&lt;p&gt;31 stycznia 2009 – Dzień w którym Google zwariowało.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3521/3240654937_b7883ec15d_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3521/3240654937_e683982939.jpg" alt="Awaria Google" title="Awaria Google"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Awaria szybko zauważona na blipie :-) &lt;a href="http://blip.pl/tags/google"&gt;blip.pl/tags/google&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=Xx8EgzymEwQ:9mZO_HIEKIY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>The Disclosure Project</title><link>http://karbownicki.com/2009/01/28/the-disclosure-project/</link><category>Nauka</category><category>ufo disclosure project usa</category><pubDate>Wed, 28 Jan 2009 08:23:49 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2009/01/28/the-disclosure-project/</guid><description>&lt;p&gt;Czyli wracając do moich zaintersowań :-)&lt;/p&gt;
&lt;p&gt;Poniżej znajduje się zapis konferencji prasowej, która odbyła się 9 maja 2001 roku w Waszyngtonie. Była ona medialnym początkiem projektu Ujawnienie, którego celem jest uświadomienie ludziom, że problem &lt;span class="caps"&gt;UFO&lt;/span&gt; istnieje oraz zaangażowane w niego są wojsko oraz główne amerykańskie agencje rządowe. Ludzie wypowiadający się na konferencji są to właśnie byli pracownicy wojska i różnych agencji rządowych oraz pozarządowych, w tym osoby posiadające bardzo wysokie uprawnienia dotyczące pracy z tajnymi dokumentami. Niestety echa konferencji wkrótce zostały całkowicie zagłuszone przez wydarzenia z 11 września.&lt;/p&gt;
&lt;p&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=808393514949778004&amp;amp;hl=pl&amp;amp;fs=true" style="width:400px;height:326px" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/p&gt;
&lt;p&gt;Jeszcze powiązany z konferencją kawałek z CNN:&lt;br&gt;
&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oPtl5D62ysk&amp;amp;hl=pl&amp;amp;fs=1"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;embed src="http://www.youtube.com/v/oPtl5D62ysk&amp;amp;hl=pl&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.disclosureproject.org/"&gt;Strona projektu Disclosure&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Jeżeli dodamy do tego inforamcję, że angielski rząd, który oczywiście zawsze utrzymywał, że &lt;span class="caps"&gt;UFO&lt;/span&gt; nie istnieje, oraz iż nie zajmują się sprawami z nim związanymi, ostatnio odtajnił pierwszą porcję akt dotyczących &lt;span class="caps"&gt;UFO&lt;/span&gt;, to cała sprawa nabiera rumieńców.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nationalarchives.gov.uk/ufos/"&gt;nationalarchives.gov.uk/ufos&lt;/a&gt; (nie wiem o co chodzi z tą opłatą za PDF-y, ale bez opłat możecie pobrać &lt;a href="http://22050hz.blogspot.com/2008/11/read-ufo-files-released-from-uk.html"&gt;tutaj&lt;/a&gt;)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=gQt52d0Gupo:ji9dcUVM6dE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Design (the klient way)</title><link>http://karbownicki.com/2008/12/19/design-the-klient-way/</link><category>Design</category><category>Portfolio</category><pubDate>Fri, 19 Dec 2008 04:47:21 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/12/19/design-the-klient-way/</guid><description>&lt;p&gt;Niedawno miałem okazję wdrożyć kilka layoutów. Jednak im więcej ich robię, tym bardziej zdaję sobie sprawę, że zupełnie się na tym nie znam. Dość często zdarza się tak, że layout jaki zaproponuję nie odpowiada zapotrzebowaniom klienta. Wtedy muszę brać skalpel i przerabiać wszystko tak, że na wynik końcowy nie chce mi się patrzeć :-/ Przykłady? Ostatnio trafiła mi się do zrobienia strona przedszkola.&lt;/p&gt;
&lt;p&gt;Co zaprojektowałem ja:&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3240/3120485914_efea9b90d5_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3240/3120485914_7d1d287666.jpg" title="" alt="" width="500" height="384"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Co zamówił klient:&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3286/3119659811_33452e2244_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3286/3119659811_085269456f.jpg" title="" alt="" width="500" height="253"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Od kilku lat współpracuje z telewizjami internetowymi &lt;b&gt;lesznotv.pl&lt;/b&gt;, &lt;b&gt;ostrowtv.pl&lt;/b&gt;, &lt;b&gt;sremtv.pl&lt;/b&gt;, &lt;b&gt;tvkalisz.pl&lt;/b&gt; i jeszcze kilkoma innymi. Już kiedyś &lt;a href="http://karbownicki.com/2007/07/11/design-ankieta/"&gt;zastanawiałem się&lt;/a&gt; czy na pewno nie mam jakiegoś skrzywionego gustu. Wyszło że nie, ale klient postawił na swoim i musiałem usunąć trawę. W poniedziałek dostałem szkic nowego designu, który musiałem wprowadzić.&lt;/p&gt;
&lt;p&gt;Stary design (zależny od pory dnia):&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3200/3120503474_e74357e85c_b.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3200/3120503474_e74357e85c.jpg" title="" alt="" width="300" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3078/3120504762_698fd543e7_b.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3078/3120504762_698fd543e7.jpg" title="" alt="" width="300" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nowy design:&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3288/3120506024_b3c5b01cfc_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3288/3120506024_caa704266b.jpg" title="" alt="" width="500" height="475"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3288/3119679661_380d173955_b.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3288/3119679661_380d173955.jpg" title="" alt="" width="379" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Trochę mi się to kojarzy z rysunkiem o powstawaniu projektu:&lt;br&gt;
&lt;a href="http://farm4.static.flickr.com/3232/3119682571_500f9fc4f0_o.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3232/3119682571_9b43ebcd25.jpg" title="" alt="" width="500" height="375"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Więc jeżeli kiedyś będziecie przeglądali czyjeś portfolio, to pamiętajcie, że jest tam raczej coś innego niż to &lt;em&gt;How the Programmer wrote it&lt;/em&gt; ;-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=wgWMoWSqsqY:J2krnB1wCaA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Hosting Django poszukiwany</title><link>http://karbownicki.com/2008/12/14/hosting-django-poszukiwany/</link><category>ArchLinux</category><category>Linux</category><category>Pacnet</category><category>Projekty</category><category>Pacnet Archlinux</category><pubDate>Sun, 14 Dec 2008 03:05:26 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/12/14/hosting-django-poszukiwany/</guid><description>&lt;p&gt;Ostatnio w ramach projektu z zarządzania informacją w internecie napisałem nową wersję &lt;a href="http://pacnet.karbownicki.com/"&gt;Pacnetu&lt;/a&gt;. Nowa wersja napisana jest w &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;, co bez wątpienia zapewni dobrą platformę dla przyszłego rozwoju. Niestety w związku z pozbyciem się &lt;span class="caps"&gt;PHP&lt;/span&gt; pojawiły się problemy hostingowe, ponieważ teraz muszę mieć serwer z Pythonem, np. Apache+mod_python oraz bazę MySQL/PostgreSQL.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3170/3107236876_a47fe596da_b.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3170/3107236876_a47fe596da.jpg" title="" alt="" width="273" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Jeżeli dysponujecie takim serwerem i nie macie nic przeciwko przygarnięciu niewielkiego projektu to proszę o komentarz z namiarami kontaktowymi. Co prawda Pacnet stworzony został na potrzeby kategoryzacji pakietów Archlinuksa, ale system jest na tyle elastyczny, że równie dobrze można by kategoryzować pakiety z dowolnej dystrybucji. Więc jeżeli chcielibyście odpalić coś takiego dla Waszej ulubionej dystrybucji nie powinno być z tym problemów. Potrzebny tylko hosting.&lt;/p&gt;
&lt;p&gt;Dodam, że Pacnet nie potrzebuje dużej przestrzeni plikowej, ponieważ poza Django wszystkie inne informacje przechowywany są w bazie. Np. zrzuty ekranów to w rzeczywistości linki do zewnętrznych plików na innych serwerach (by Google Search).&lt;/p&gt;
&lt;p&gt;Anyone ?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=VHqBnU3UYtw:dGfJo0hYFHA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Rippowanie muzyki z Last.fm</title><link>http://karbownicki.com/2008/11/29/rippowanie-muzyki-z-last-fm/</link><category>ArchLinux</category><category>Linux</category><category>Software</category><category>Techblog</category><pubDate>Sat, 29 Nov 2008 02:57:19 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/11/29/rippowanie-muzyki-z-last-fm/</guid><description>&lt;p&gt;Aktualnie w polskim prawie nie ma przepisu zabraniającego nagrywania audycji radiowych. Oznacza to, że całkowicie legalnie możemy wejść w posiadanie sporych zbiorów muzyki. Nie każde radio jednak gra to czego chcielibyśmy słuchać. I tu pojawia się Last.fm – radio, które zna nasz gust i gra to co lubimy. Tylko jak teraz dobrać się do tej muzyki?&lt;/p&gt;
&lt;p&gt;Odpowiedzią jest program &lt;a href="http://code.google.com/p/thelastripper/"&gt;TheLastRipper&lt;/a&gt;. Małe ale skuteczne narzędzie, pożerające adresy typu &lt;b&gt;lastfm://&lt;/b&gt;. Wystarczy wskazać mu katalog, do jakiego ma rippować muzykę oraz stację.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3280/3067188709_0848bc7037_o.png" alt="" width="406" height="379"&gt;&lt;/p&gt;
&lt;p&gt;Rezultatem działania TheLastRippera będą utwory znajdujące się w ładnie nazwanych katalogach (wg. schematu wykonawca &amp;gt; album &amp;gt; utwór) oraz pobrane okładki albumów w trzech rozmiarach.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3070/3068026956_97c38880c5_o.png" alt="" width="480" height="398"&gt;&lt;/p&gt;
&lt;p&gt;Trzy rozmiary okładek mogą przeszkadzać. Np. mój &lt;a href="http://code.google.com/p/quodlibet/"&gt;QuodLibet&lt;/a&gt; przy odtwarzaniu utworu wybiera akurat najmniejszą okładkę co nie wygląda najlepiej. Ale łatwo można temu zaradzić. Wystarczy w katalogu z muzyką utworzyć skrypt zawierający:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;find ./ -type f \( -name "SmallCover.jpg" -o -name "MediumCover.jpg" \) -delete
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;który usunie małe i średnie okładki z wszystkich podkatalogów.&lt;/p&gt;
&lt;p&gt;Użytkownicy Archa aby pobrać pogram mogą skorzystać z aktualnego PKGBUILDa, który zamieszczam poniżej, ponieważ ten obecnie znajdujący się w &lt;span class="caps"&gt;AUR&lt;/span&gt; jest przestarzały.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;PKGBUILD for version 1.1.1
pkgname=thelastripper
pkgver=1.1.1
pkgrel=1
pkgdesc="A Last.FM Ripper"
arch=('i686')
url="http://thelastripper.com/"
license=('GPL')
depends=('gnome-desktop-sharp' 'gnome-icon-theme')
makedepends=('pkgconfig')
source=("http://thelastripper.googlecode.com/files/$pkgname-$pkgver.tar.gz")
md5sums=('9a8653cc0cf450077b599cb8988ba8a3')
build() {
export RSVG_SHARP_20_CFLAGS="/usr/share/rsvg2-sharp/2.0/rsvg2-api.xml"
export RSVG_SHARP_20_LIBS="/usr/lib/mono/rsvg2-sharp-2.0/rsvg2-sharp.dll"
cd $startdir/src/$pkgname-$pkgver
# Bypass GMCS and fakeroot bug
mkdir -p $startdir/src/$pkgname/.wabi
export MONO_SHARED_DIR="$startdir/src/$pkgname/"
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
}
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;Załącznik 1 - lista adresów last.fm&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;lastfm://user/$username/personal&lt;/li&gt;
&lt;li&gt;lastfm://user/$username/playlist&lt;/li&gt;
&lt;li&gt;lastfm://artist/$artistname or lastfm://artist/$artistname/similarartists&lt;/li&gt;
&lt;li&gt;lastfm://globaltags/$tag&lt;/li&gt;
&lt;li&gt;lastfm://group/$groupname&lt;/li&gt;
&lt;li&gt;lastfm://user/$username/neighbours&lt;/li&gt;
&lt;li&gt;lastfm://user/$username/recommended/100&lt;/li&gt;
&lt;li&gt;lastfm://play/tracks/$trackid,$trackid,$trackid&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=vrC6e3mBlf4:rjkm40jG3Ww:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Kolorowanie terminala</title><link>http://karbownicki.com/2008/11/28/kolorowanie-terminala/</link><category>Linux</category><pubDate>Fri, 28 Nov 2008 09:02:10 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/11/28/kolorowanie-terminala/</guid><description>&lt;p&gt;Jeżeli Twój terminal wygląda tak:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3283/3066185484_1c7cf71dda_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3283/3066185484_17bbb26e8d.jpg" title="" alt="" width="500" height="319"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To raczej nie macie pojęcia gdzie kończy się jedna komenda a zaczyna następna. Ale jest na to prosty sposób. Wystarczy w katalogu domowy wyedytować plik &lt;b&gt;.bashrc&lt;/b&gt; (o ile używacie tej powłoki) i zmienić (lub dopisać) linię:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;PS1='[\[\033[32m\]\u@\h \[\033[33m\]\W\[\033[0m\]]\$ '
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Rezultat:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3283/3066191920_34bec14858_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3283/3066191920_2963ff0866.jpg" title="" alt="" width="500" height="321"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Odpowiednio dla roota edytujemy &lt;b&gt;/root/.bashrc&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;PS1='[\[\033[31m\]\u@\h \[\033[33m\]\W\[\033[0m\]]\$  '&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3074/3066194636_df4af302d8_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3074/3066194636_f0b9c52d91.jpg" title="" alt="" width="500" height="321"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gdyby ktoś chciał poeksperymentować z kolorami to może zajrzeć w &lt;a href="http://soc.if.usp.br/~kazuo/colortheme"&gt;ten skrypt&lt;/a&gt; (wygrzebane na &lt;a href="http://bbs.archlinux.org/viewtopic.php?id=59253"&gt;forum archa&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3149/3065368387_2dfba45465_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3149/3065368387_f10e592859.jpg" title="" alt="" width="500" height="387"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=B04VinTMuDo:yPI-hixJj3E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Nowe projekty: noku.pl</title><link>http://karbownicki.com/2008/11/15/nowe-projekty-noku-pl/</link><category>Internet</category><category>Portfolio</category><category>Projekty</category><category>noku uczelnia student</category><pubDate>Sat, 15 Nov 2008 13:30:17 PST</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/11/15/nowe-projekty-noku-pl/</guid><description>&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3044/2741296398_2d367017ba.jpg" width="500" height="353" alt="logo5"&gt;&lt;/p&gt;
&lt;p&gt;Nic ostatnio nie pisałem ponieważ cały wolny czas zabrał mi nowy projekt, a właściwie to praca magisterska ;-) Nowy twór to &lt;a href="http://noku.pl"&gt;noku.pl&lt;/a&gt;, co w zamierzeniu ma być narzędziem do komunikacji student-student oraz student-wykładowca.&lt;/p&gt;
&lt;p&gt;Cały pomysł opiera się na tym, żeby odgonić studentów od zakładania (w byle jakich miejscach) for/stron swoich „roków” i zgromadzić ich w jednym miejscu, dostarczając narzędzie skrojone na miarę i przystosowane do warunków studenckich. Następnie przyciągnąć w to miejsce nauczycieli akademickich, tak żeby mieli w jednym miejscu wszystkich swoich studentów, dzięki czemu wymiana materiałów czy informacja typu „nie ma mnie jutro na uczelni” trafiała natychmiastowo tam gdzie trzeba. Do tego dochodzą strony kół naukowych i mamy już małą e-uczelnię. Każdy wie co i gdzie piszczy.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3199/3001162214_e534034565_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3199/3001162214_b11fd2c6ce.jpg" title="" alt="" width="500" height="313"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Oczywiście co większe uczelnie mają już podobne systemy wymiany informacji/materiałów ale:&lt;br&gt;
a) nie wszystkie, np. Politechnika Opolska nie ma i nie zanosi się żeby miała&lt;br&gt;
b) inwigilacja studentów (w systemie hostowanym przez uczelnię) i tak sprawi, że do nieskrępowanej komunikacji pomiędzy sobą studenci założą gdzieś własne forum&lt;/p&gt;
&lt;p&gt;Dlatego całym pomysłem na serwis jest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;wyprowadzenie systemu poza uczelnię&lt;/li&gt;
&lt;li&gt;bezpieczna i zamknięta wymiana informacji/materiałów pomiędzy studentami&lt;/li&gt;
&lt;li&gt;zapewnienie nauczycielom łatwego kontaktu ze studentami przez to, że będą mieli wszystkich w jednym miejscu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;Od strony technicznej system jest przewidziany na N uczelni. Ograniczeni jesteśmy jedynie zasobami serwerowymi dlatego, póki co jesteśmy w stanie hostować tylko studentów z obszaru Politechniki Opolskiej.&lt;/p&gt;
&lt;p&gt;Całość napisana jest w Django i działa na konfiguracji Ubuntu server, Nginx, PostgreSQL. Co najważniejsze kod serwisu jest dostępny na licencji &lt;a href="http://pl.wikipedia.org/wiki/Affero_General_Public_License"&gt;AGPL&lt;/a&gt; !! Jesteśmy chyba jednym z niewielu polskich serwisów Django-wych, które zdecydowały się opublikować kod. Miejmy nadzieję, że wywołamy nową tendencję wśród aplikacji webowych dzięki czemu będziemy mogli się wzajemnie od siebie uczyć.&lt;/p&gt;
&lt;p&gt;Linki:&lt;br&gt;
&lt;a href="http://noku.pl"&gt;noku.pl&lt;/a&gt;&lt;br&gt;
&lt;a href="http://blog.noku.pl"&gt;blog.noku.pl&lt;/a&gt; (oczywiście jogger)&lt;br&gt;
&lt;a href="http://bugs.noku.pl"&gt;bugs.noku.pl&lt;/a&gt; (kod źródłowy oraz błędy)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=V9E9UNimGZ8:OERuUIJr4tk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Geany 0.15</title><link>http://karbownicki.com/2008/10/20/geany-0-15/</link><category>Linux</category><category>Software</category><category>geany linux gtk</category><pubDate>Mon, 20 Oct 2008 03:14:17 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/10/20/geany-0-15/</guid><description>&lt;p&gt;Po półrocznym okresie kodowania, nie dalej jak wczoraj pojawiła się nowa wersja mojego ulubionego edytora Geany. Nowa wersja oznaczona numerkiem 0.15 przynosi wiele zmian. Ważniejsze z nich to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Dodanie opcji ‘Close Other Documents’ do menu Pliki.&lt;/b&gt; &lt;i&gt;(zamknięcie wszystkich kart poza obecnie aktywną)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Obsługa własnych szablonów kolorowania składni plików&lt;/b&gt; &lt;i&gt;(katalog ~/.geany/templates/files)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dodanie mechanizmu „soft tabs”&lt;/b&gt; &lt;i&gt;(teraz możemy tworzyć wcięcia oparte na tabulacjach lub spacjach)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Aktualizacja Scintilli do wersji 1.77&lt;/b&gt; &lt;i&gt;(Scintilla to komponent odpowiadający za wyświetlanie kodu, czyli rozwijanie/zwijanie sekcji kodu, podpowiadanie składni itp.)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Obsługa nowych typów plików: OpenGL Shader Language (&lt;span class="caps"&gt;GLSL&lt;/span&gt;), R, gettext files (.po)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Możliwość pionowego dzielenia okna&lt;/b&gt; &lt;i&gt;(wtyczka Split Window)&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3060/2957275673_1d839bc61b_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3060/2957275673_f7379329b7.jpg" title="" alt="" width="500" height="313"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Scalenie wtyczek InstantSave, AutoSave i BackupCopy w nową wtyczkę ‘Save Actions’&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Wiele zmian w &lt;span class="caps"&gt;API&lt;/span&gt; dla wtyczek&lt;/b&gt; &lt;i&gt;(patrz dokumentacja)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Usunięcie wielu błędów i dodanie ulepszeń&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Nowe języki: Koreańskie i Tureckie oraz aktualizacja pozostałych tłumaczeń&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Więcej szczegółów w znajdziecie w &lt;a href="http://www.geany.org/Documentation/ReleaseNotes"&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dzięki sprawnym developerom Arch Linuksa paczka z Geany 0.15 jest już w repozytorium community.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=86rU8zR2ZFE:beqYuhBZPCE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>RPSy w OVH.pl</title><link>http://karbownicki.com/2008/10/19/rpsy-w-ovh/</link><category>Inne</category><category>Internet</category><category>Techblog</category><category>ovh hosting nfs</category><pubDate>Sun, 19 Oct 2008 05:53:18 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/10/19/rpsy-w-ovh/</guid><description>&lt;p&gt;W ostatni czwartek zdarzyło mi się wynająć w &lt;a href="http://ovh.pl"&gt;ovh.pl&lt;/a&gt; prywatny serwer &lt;a href="http://www.ovh.pl/prywatne/produkty/oferty_rps.xml"&gt;&lt;span class="caps"&gt;RPS&lt;/span&gt; I&lt;/a&gt;. Miał on służyć testom nowego startupa. Docelowa grupa testerów (około 80 osób), Celeron 1,2 GHz, 512 &lt;span class="caps"&gt;RAM&lt;/span&gt;, Łącze 100 Mbps bez limitu transferu, dysk 10 GB i 50 zł miesięcznie. Dobry serwer do testów można by rzec. Można by… ale:&lt;/p&gt;
&lt;p&gt;Prywatne RPSy to rozwiązanie „ekologiczne” i tanie. Aby takim było żadna z maszyn nie posiada fizycznego dysku. Dane przechowywane są na wielkiej, wspólnej macierzy dyskowej dostępnej przez sieć za pomocą NFSa lub iSCSI.&lt;/p&gt;
&lt;p&gt;Z grubsza powinno to działać tak:&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3206/2953792067_5083aa451a.jpg" alt="" width="500" height="122"&gt;&lt;/p&gt;
&lt;p&gt;Ale działa niestety tak:&lt;br&gt;
&lt;img src="http://farm4.static.flickr.com/3017/2953791941_9013d3f690.jpg" alt="" width="500" height="68"&gt;&lt;/p&gt;
&lt;p&gt;Mały dowód:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$ time ls /sbin/
real   0m41.424s
user   0m0.008s
sys   0m0.004s
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;dla porównania mój laptop&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$ time ls /sbin/
real   0m0.071s
user   0m0.000s
sys0   m0.003s
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Dysk praktycznie nie istnieje a serwer staje się przez to zupełnie nieużyteczny. Nie żeby był to odosobniony przypadek. Wystarczy poczytać &lt;a href="http://forum.ovh.pl/showthread.php?t=7973"&gt;ten wątek&lt;/a&gt; na forum aby się o tym przekonać.&lt;/p&gt;
&lt;p&gt;Na RPSa zdecydowałem się, bo słyszałem, że problemy z dyskami już ustały. Otóż nic podobnego! Od następnego miesiąca przesiadam się na serwer dedykowany z własnym dyskiem. Pewnie skończy się na &lt;a href="http://www.kimsufi.pl/"&gt;Kimsufi w opcji L&lt;/a&gt;. Chyba, że polecacie coś lepszego w podobnej cenie.&lt;/p&gt;
&lt;p&gt;Podsumowując:&lt;/p&gt;
&lt;h3&gt;&lt;span class="caps"&gt;RPS&lt;/span&gt; w &lt;span class="caps"&gt;OVH&lt;/span&gt;.pl – nie polecam!&lt;/h3&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=Sfm0daGd-jk:NDhm-e-BKXQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Software Freedom Day - Opole</title><link>http://karbownicki.com/2008/09/17/software-freedom-day-opole/</link><category>Inne</category><category>Linux</category><category>OpLUG Linux Opole Open Source Free Software</category><pubDate>Wed, 17 Sep 2008 08:30:07 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/09/17/software-freedom-day-opole/</guid><description>&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3133/2865733760_83d1132d0d_o.png" alt="" width="300" height="124"&gt;&lt;/p&gt;
&lt;p&gt;Zapraszamy wszystkich miłośników otwartego oprogramowania a także takich, którzy chcieliby się z nim zapoznać na prelekcje z okazji Dnia Wolności Oprogramowania, które odbędą się w &lt;b&gt;sobotę 20 września&lt;/b&gt; o godzinie &lt;b&gt;17:30&lt;/b&gt; w budynku &lt;b&gt;Łącznika&lt;/b&gt; Politechniki Opolskiej, przy ulicy &lt;b&gt;Mikołajczyka 5&lt;/b&gt;. Dla uczestników przewidzieliśmy drobne &lt;a href="http://karbownicki.com/2008/08/26/pakiet-software-freedom-day/"&gt;upominki&lt;/a&gt; :-)&lt;/p&gt;
&lt;p&gt;Mapka:&lt;br&gt;
&lt;a href="http://maps.google.com/maps/ms?hl=en&amp;amp;ptab=2&amp;amp;ie=UTF8&amp;amp;msa=0&amp;amp;msid=116643051695528486889.00043dd200fdded9052d9&amp;amp;om=1&amp;amp;ll=50.682673,17.943034&amp;amp;spn=0.006404,0.019956&amp;amp;z=16"&gt;&lt;img src="http://farm4.static.flickr.com/3103/2865743106_62a62af1c5_o.png" title="" alt="" width="244" height="180"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Patroni medialni:&lt;br&gt;
&lt;a href="http://7thguard.net/"&gt;&lt;img src="http://farm4.static.flickr.com/3090/2864939691_3b4d57e035_o.png" title="" alt="" width="199" height="110"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://osnews.pl/"&gt;&lt;img src="http://farm3.static.flickr.com/2218/2865772606_ea52572d61_o.png" title="" alt="" width="300" height="59"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://dobreprogramy.pl/"&gt;&lt;img src="http://farm4.static.flickr.com/3174/2864960633_372eb67161_o.jpg" title="" alt="" width="300" height="87"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zaprasza:&lt;br&gt;
Opolska Grupa Użytkowników Linuksa (OpLUG)&lt;br&gt;
&lt;a href="http://linux.opole.pl"&gt;linux.opole.pl&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS. Gdybyście chcieli gdzieś rozwiesić plakat to proszę bardzo&lt;br&gt;
&lt;a href="http://linux.opole.pl/tmp/plakat.pdf"&gt;&lt;img src="http://farm4.static.flickr.com/3057/2864922883_9a5c003f9b_m.jpg" title="" alt="" width="167" height="240"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=LdiGivU_FOU:URRq-vDfQ6M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Joggerowy gadżet na pulpit</title><link>http://karbownicki.com/2008/09/05/joggerowy-gadzet-na-pulpit/</link><category>ArchLinux</category><category>Kodowanie</category><category>Linux</category><category>Python</category><category>Techblog</category><category>Linux Jogger Gażdżet</category><pubDate>Thu, 04 Sep 2008 15:38:40 PDT</pubDate><guid isPermaLink="true">http://karbownicki.com/2008/09/05/joggerowy-gadzet-na-pulpit/</guid><description>&lt;p&gt;Ostatnio rozglądałem się za tutorialem do budowy prostego gadżetu w Pythonie, który siedział by sobie na przezroczystym tle na moim pulpicie. Gadżety Screenlets czy gDesklets działają różnie, zazwyczaj niestabilnie albo, któryś (akurat przydatny) całkowicie się nie odpala. Poza tym potrzebowałem coś maksymalnie prostego a nie całej platformy dla gadżetów.&lt;/p&gt;
&lt;p&gt;Wpadłem więc dziś na pomysł wykorzystania &lt;a href="http://karbownicki.com/2006/04/04/tilda-drop-down-candy/"&gt;Tildy&lt;/a&gt; jako ładnego kontenera. W zasadzie to do pełni szczęścia potrzebne były dwie paczki: tilda i python-feedparser. Znajdziecie je w każdej dystrybucji. Dla archowców:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;# pacman -S tilda python-feedparser
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Tildę najlepiej skonfigurować następująco:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3254/2828364335_cb6af96ecb_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3254/2828364335_e1ba4384e7.jpg" title="" alt="" width="500" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;W sekcji &lt;strong&gt;Command&lt;/strong&gt; w polu &lt;strong&gt;Custom Command&lt;/strong&gt; umieszczamy adres skryptu, ale o tym za chwilę.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3273/2829203892_688276ec8b_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3273/2829203892_73623f1575.jpg" title="" alt="" width="500" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3290/2828366425_09db0749c9_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3290/2828366425_1486899771.jpg" title="" alt="" width="500" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3182/2828367383_90d9910d75_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3182/2828367383_dbb7899a99.jpg" title="" alt="" width="500" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3097/2829206388_489a19747a_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3097/2829206388_3722716f7d.jpg" title="" alt="" width="500" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Teraz czas na Pythona. Wystarczy sworzyć malutki skrypt o takiej treści:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;#! /usr/bin/env python

import feedparser
import time
import os, sys

# nieskonczona petla
while 1:
        # pobierz RSS
        feed = feedparser.parse("http://jogger.pl/rss/")
        # wyczysc ekran
        sys.stdout.write(os.popen('clear').read())
        # dla kazdego wpisu
        for note in feed['entries']:
                # wypisz tytul
                print "- %s" % note['title']
        print "\nhttp://jogger.pl/"
        # odczekaj 60 sekund
        time.sleep(60)
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Skrypt wystarczy zapisać np. jako &lt;strong&gt;jogger.py&lt;/strong&gt; i wpisać ścieżkę do niego w polu &lt;strong&gt;Custom Command&lt;/strong&gt;. W moim przypadku jest to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;python /home/tomek/go/python/jogger.py&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I to by było na tyle. Po ponownym uruchomieniu Tildy powinniśmy mieć ładny przegląd wydarzeń na joggerze odświeżany co 60 sekund. Gdy coś nas zainteresuje wystarczy przytrzymać ctrl i kliknąć link do joggera.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3187/2829264260_02dfde7f9f_o.png" title="" alt="" width="490" height="310"&gt;&lt;/p&gt;
&lt;p&gt;Oczywiście może to być dowolny kanał RSS/Atom czy coś zupełnie innego np. statystyki obciążenia naszego serwera. Żadnych tam Googlowych gadżetów z tysiącem funkcji. Prosto łatwo i przyjemnie.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/karbownicki-com?a=B7-qGCOKv7s:uodec4_asCc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/karbownicki-com?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item></channel></rss>
