<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Blog</title><link>http://husio.homelinux.com/blog/</link><description>Piotr Husiatyński - Blog.</description><language>pl</language><lastBuildDate>Thu, 13 Jan 2011 07:59:26 +0100</lastBuildDate><item><title>Koniec działalności
</title><link>http://husio.homelinux.com/blog/post/koniec-dzialalnosci/</link><description>

&lt;p&gt;&lt;img alt="" src="http://farm1.static.flickr.com/58/191393602_3d9b643ab0.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Z powodu kiepskiej jakości łącza jaką dysponuje serwer na którym znajduje się strona, a także dlatego, że nie mam już nic ciekawego do napisania &lt;em&gt;zamykam&lt;/em&gt; ten blog. Ponieważ jednak od czasu do czasu ktoś tu zagląda, zrobię dump całej strony do statycznych plików, tak aby treść wciąż była dostępna pod tymi samymi adresami. Nie będzie jednak możliwości komentowania i nie pojawi się już nowa treść.&lt;/p&gt;
&lt;p&gt;Możliwe, że znajdę sobie inne miejsce gdzie okresowo dodam jakąś treść.&lt;/p&gt;
</description><pubDate>Thu, 13 Jan 2011 07:59:26 +0100</pubDate><guid>http://husio.homelinux.com/blog/post/koniec-dzialalnosci/</guid></item><item><title>Debugowanie &amp;quot;wiszącego&amp;quot; skryptu
</title><link>http://husio.homelinux.com/blog/post/debugowanie-wiszacego-skryptu/</link><description>

&lt;p&gt;Jednym ze skryptów jaki ostatnio pisałem by &lt;a href="http://en.wikipedia.org/wiki/Web_crawler"&gt;crawler&lt;/a&gt; zbierający informacje o jednej z usług udostępnianej przez amazon. Skrypt napisałem z wykorzystaniem &lt;a href="http://www.gevent.org/"&gt;gevent&lt;/a&gt;, parsując źródło strony przy użyciu wyrażeń regularnych (moduł re ze standardowej biblioteki) oraz &lt;a href="http://initd.org/psycopg/"&gt;psycopg2&lt;/a&gt; działające w asynchronicznym trybie.&lt;/p&gt;
&lt;p&gt;Skrypt nie był duży - nie przekraczał łącznie paru tysięcy linii kodu. W miejscach w którzych działo się coś ważnego umieszczałem zapisywanie istotnych informacji do logów. Dla funkcji parsujących strony napisałem testy. Nie wiedzieć dlaczego w losowych momentach działania skrypt zawieszał się, używając 100% CPU. Dodawanie kolejnych logowań i użycie &lt;a href="http://pypi.python.org/pypi/ipdb"&gt;ipdb&lt;/a&gt; nie pomogło.&lt;/p&gt;
&lt;p&gt;Rozwiązanie okazało się jednak bardzo proste - zarejestrowałem &lt;a href="https://github.com/husio/python-utils/blob/master/utils/debug/sigbreak.py"&gt;handler dla sygnału &lt;code&gt;SIGUSR1&lt;/code&gt;&lt;/a&gt;, który uruchomia debugger. W trakcie wykonywania się skryptu czekam, aż się zawiesi i wtedy wysyłam do procesu &lt;code&gt;SIGUSR1&lt;/code&gt;. W efekcie, mam uruchomiony debbuger dokładnie w miejscu w którym zatrzymywała się aplikacja.&lt;/p&gt;
&lt;p&gt;Tą samą metodę, po dodaniu paru wrapperów można wykorzystać do stworzenia "bezpiecznych" wyrażeń regularnych (dodanie parametru timeout), lub pilnowania, aby funkcja nie wywoływała się zbyt długo.&lt;/p&gt;
</description><pubDate>Sun, 21 Nov 2010 13:13:40 +0100</pubDate><guid>http://husio.homelinux.com/blog/post/debugowanie-wiszacego-skryptu/</guid></item><item><title>Luakit
</title><link>http://husio.homelinux.com/blog/post/luakit/</link><description>

&lt;p&gt;Jedną z najważniejszych aplikacji na każdym komuterze jest obecnie
przeglądarka. Coraz więcej dostępnych usług, coraz większe możliwości.
Prawie same zalety. Do tej pory używałem Firefoxa z
&lt;a href="http://vimperator.org/vimperator"&gt;vimperatorem&lt;/a&gt;, co wystarczało mi do momentu
kiedy odkryłem coś lepszego (i nie było to chromium).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://luakit.org/projects/luakit/"&gt;Luakit&lt;/a&gt; to przeglądarka napisana z
wykorzystaniem webkit i gtk+, skryptowana w Lua, zbudowana w znacznej mierze na kodzie
&lt;a href="http://surf.suckless.org/"&gt;surf&lt;/a&gt; i &lt;a href="http://awesome.naquadah.org/"&gt;awesome&lt;/a&gt;.
Projekt jest jeszcze stosunkowo młody, ale bardzo szybko pojawiają się nowe
funkcjonalności i poprawiane są błędy.&lt;/p&gt;
&lt;p&gt;Co takiego wyjątkowego posiada Luakit, czego nie mogłem osiągnąć w
&lt;a href="http://vimperator.org/vimperator"&gt;vimperatorze&lt;/a&gt;? Przede wszystkim szybkość.
Luakit uruchamia się w mniej niż 1 sekundę. W przypadku firefoxa jest to
czasami nawet ponad 10 sekund (słownie: &lt;strong&gt;dziesięć&lt;/strong&gt;!). Nie muszę czekać aż
będę mógł przeczytać artukuł, bo przeglądarka nie chce się uruchomoć. Spadło
też zużycie pamięci i okazjonalne zwiechy.&lt;/p&gt;
&lt;p&gt;Parę funkcjonalności o których warto wiedzieć gdy zaczynie się używać luakit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://luakit.org/projects/luakit/wiki/Quickmarks"&gt;quickmarks&lt;/a&gt; pozwalają
   zdefiniować skróty dla najpopularniejszych adresów&lt;/li&gt;
&lt;li&gt;&lt;code&gt;formfiller&lt;/code&gt; (skróty &lt;code&gt;za&lt;/code&gt;, &lt;code&gt;zn&lt;/code&gt;, &lt;code&gt;ze&lt;/code&gt;, &lt;code&gt;zl&lt;/code&gt;) umożliwia automatyczne
   wypełnianie formularzy. Bardzo przydatne jeśli uruchamia się naprzemian
   różne kompilacje, bo ciasteczka nie lubią takich zmian&lt;/li&gt;
&lt;li&gt;na merge czeka mój branch w kŧórym dodałem wsparcie dla dbus, dzięki czemu
   będzie można komunikować się z procesami Luakit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dodatkowo działa większość skrótów znanych z vimperatora, a jeśli czegoś brakuje, to bardzo łatwo można to dopisać w konfiguracji.&lt;/p&gt;
&lt;p&gt;Na liście brakujących funkcjonalności wciąż znajduje się jednak parę ważnych
pozycji:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;adblock - można używać proxy (na przykład privoxy), ale to nie zawsze
   działa tak jak trzeba&lt;/li&gt;
&lt;li&gt;noscript&lt;/li&gt;
&lt;li&gt;pobieranie plików - uruchamianie wgeta w tle to chyba jakis bug&lt;/li&gt;
&lt;li&gt;firebug - webkit posiada jakiś debugger, ale nie można go porównywać z
   firebugiem&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Mon, 04 Oct 2010 21:28:22 +0100</pubDate><guid>http://husio.homelinux.com/blog/post/luakit/</guid></item><item><title>Vim: making those arrow keys work with you
</title><link>http://husio.homelinux.com/blog/post/vim-making-those-arrow-keys-work-you/</link><description>

&lt;p&gt;Po przeczytaniu &lt;a href="http://jeetworks.org/node/89"&gt;Vim: Making those Arrow Keys Work With
You&lt;/a&gt;, dodałem do &lt;a href="http://github.com/husio/vim-configuration/commit/54c75a614b287df94f8215942c7b63c76655afa9"&gt;swojej konfiguracji
Vima&lt;/a&gt;
blokadę strzałek:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;inoremap&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;Up&amp;gt;&lt;/span&gt;     &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;inoremap&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;Down&amp;gt;&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;inoremap&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;Left&amp;gt;&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;inoremap&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;Right&amp;gt;&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;noremap&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;Up&amp;gt;&lt;/span&gt;     &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;noremap&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;Down&amp;gt;&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;noremap&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;Left&amp;gt;&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;noremap&lt;/span&gt;   &lt;span class="s-Regexp"&gt;&amp;lt;Right&amp;gt;&lt;/span&gt;  &lt;span class="s-Regexp"&gt;&amp;lt;NOP&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Minął pierwszy dzień pracy na nowych ustawieniach. Pisze się trochę wolniej,
ale dokładnie tak jak napisał autor artykułu - nie ma odruchu wciskania
strzałek, przez co używam o wiele więcej skrótów niż tylko &lt;code&gt;h&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;k&lt;/code&gt;,
&lt;code&gt;l&lt;/code&gt; i dokładniej "celuję" w miejsca do których chcę przenieść kursor.&lt;/p&gt;
</description><pubDate>Tue, 14 Sep 2010 18:50:03 +0100</pubDate><guid>http://husio.homelinux.com/blog/post/vim-making-those-arrow-keys-work-you/</guid></item><item><title>Database high scalability
</title><link>http://husio.homelinux.com/blog/post/database-high-scalability/</link><description>

&lt;p&gt;Jakiś czas temu, ja również przeżywałem chwilowy zachwyt nad bazami noSQL.&lt;/p&gt;
&lt;div id="" class="embedded"&gt;
&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.xtranormal.com/site_media/players/jwplayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="flashvars" value="height=390&amp;amp;width=480&amp;amp;file=http://newvideos.xtranormal.com/web_final_lo/574b3910-afc9-11df-914b-003048d69c21_27_web_final_lo_web_finallo-flv.flv&amp;amp;image=http://newvideos.xtranormal.com/web_final_lo/574b3910-afc9-11df-914b-003048d69c21_27_web_final_lo_poster.jpg&amp;amp;link=http://www.xtranormal.com/watch/6995033&amp;amp;searchbar=false&amp;amp;autostart=false"&gt;&lt;embed src="http://www.xtranormal.com/site_media/players/jwplayer.swf" width="480" height="390" allowscriptaccess="always" allowfullscreen="true" flashvars="height=390&amp;amp;width=480&amp;amp;file=http://newvideos.xtranormal.com/web_final_lo/574b3910-afc9-11df-914b-003048d69c21_27_web_final_lo_web_finallo-flv.flv&amp;amp;image=http://newvideos.xtranormal.com/web_final_lo/574b3910-afc9-11df-914b-003048d69c21_27_web_final_lo_poster.jpg&amp;amp;link=http://www.xtranormal.com/watch/6995033&amp;amp;searchbar=false&amp;amp;autostart=false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.xtranormal.com/site_media/players/embedded-xnl-stats.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.xtranormal.com/site_media/players/embedded-xnl-stats.swf" width="1" height="1" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;

&lt;p&gt;Znalezione na &lt;a href="http://highscalability.com/blog/2010/9/5/hilarious-video-relational-database-vs-nosql-fanbois.html"&gt;highscalability.com&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Mon, 06 Sep 2010 07:57:57 +0100</pubDate><guid>http://husio.homelinux.com/blog/post/database-high-scalability/</guid></item></channel></rss>