<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>http://blog.pasternacki.net/</title><link>http://blog.pasternacki.net/</link><description>Wpisy z dziennika internetowego Jogger, wspomaganego przez Jabbera</description><lastBuildDate>Sat, 10 May 2008 11:11:28 +0200</lastBuildDate><generator>JoggerPL</generator><item><title>Statuetka idioty roku wędruje do...</title><link>http://blog.pasternacki.net/2008/01/31/statuetka-idioty-roku-wedruje-do/</link><description>&lt;p&gt;Ku pamięci na przyszłość:&lt;/p&gt;
&lt;pre&gt;
[japhy@trinitrotoluen japhy]$ cd leeloo.moo.pl/
[japhy@trinitrotoluen leeloo.moo.pl]$ ls 
~japhy  ~zombiwock
[japhy@trinitrotoluen leeloo.moo.pl]$ rm -rf ~japhy/
rm: cannot remove directory `/home/users/japhy/': Permission denied
[japhy@trinitrotoluen leeloo.moo.pl]$ rm -rf \~japhy/
[japhy@trinitrotoluen leeloo.moo.pl]$ 
&lt;/pre&gt;</description><pubDate>Thu, 31 Jan 2008 12:19:39 +0100</pubDate><guid>http://blog.pasternacki.net/2008/01/31/statuetka-idioty-roku-wedruje-do/</guid><category>Fortunki</category><category>Maszyny</category><category>Techblog</category></item><item><title>Kryzys? Jaki kryzys?</title><link>http://blog.pasternacki.net/2008/01/27/kryzys-jaki-kryzys/</link><description>&lt;p&gt;Brytyjski punkt widzenia na obecną sytuację finansową. &lt;q lang=&quot;en&quot;&gt;But we are exaggerating, aren't we?&lt;/q&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;373&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/SJ_qK4g6ntM&amp;amp;rel=0&amp;amp;color1=0x402061&amp;amp;color2=0x9461ca&amp;amp;border=1&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;
&lt;embed src=&quot;http://www.youtube.com/v/SJ_qK4g6ntM&amp;amp;rel=0&amp;amp;color1=0x402061&amp;amp;color2=0x9461ca&amp;amp;border=1&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;373&quot;&gt;&lt;/object&gt; &lt;object width=&quot;425&quot; height=&quot;373&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/axAjb6fDsPY&amp;amp;rel=0&amp;amp;color1=0x402061&amp;amp;color2=0x9461ca&amp;amp;border=1&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;
&lt;embed src=&quot;http://www.youtube.com/v/axAjb6fDsPY&amp;amp;rel=0&amp;amp;color1=0x402061&amp;amp;color2=0x9461ca&amp;amp;border=1&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;373&quot;&gt;&lt;/object&gt;&lt;/div&gt;
&lt;p&gt;Bez dodatkowego komentarza.&lt;/p&gt;
</description><pubDate>Sun, 27 Jan 2008 19:21:05 +0100</pubDate><guid>http://blog.pasternacki.net/2008/01/27/kryzys-jaki-kryzys/</guid><category>Rodzynki</category></item><item><title>Note to self: statyczny backup RESTowego serwisu WWW</title><link>http://blog.pasternacki.net/2008/01/20/note-to-self-statyczny-backup-restowego-serwisu-www/</link><description>&lt;p&gt;Właśnie (jakoś od czternastej rano) przygotowuję raport na projekt zespołowy dla mojej kochanej uczelni. Od paru dni zastanawiałem się, jak do tego raportu dołączyć statyczną kopię &lt;a href=&quot;http://trac.edgewall.org/&quot;&gt;Trac&lt;/a&gt;, którego używaliśmy do organizacji pracy. I nie żeby taka kopia to była moja nadgorliwość, prowadzący przedmiot sobie tego zażyczył.&lt;/p&gt;
&lt;p&gt;Problem z tym jest podwójny. Po pierwsze, trac ma miłe RESTowe adresy nie kończące się na &lt;kbd&gt;.html&lt;/kbd&gt;. Z tego powodu mirror strony ściągnięty bezpośrednio na dysk (&lt;code&gt;wget -m adres&lt;/code&gt;) będzie później trudno otworzyć lokalnie. Z pomocą przychodzą dwie opcje wgeta:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;-E&lt;/dt&gt;
&lt;dd&gt;dodaje końcówkę &lt;kbd&gt;.html&lt;/kbd&gt; do ściągniętych plików typu text/html, które tej końcówki nie mają w adresie&lt;/dd&gt;
&lt;dt&gt;-k&lt;/dt&gt;
&lt;dd&gt;Zamienia linki w ściągniętych plikach HTML tak, żeby lokalna kopia działała&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Ale to tylko połowa problemów. Druga polega na tym, że oprócz ładnych RESTowych adresów strona rozgałęzia się w tysiące różnych zapytań GET, które zawierają różne warianty widoku. Jak zapuściłem ściąganie z tymi dwoma parametrami, po trzech godzinach działania i ponad 250 przeciągniętych megabajtach prawie samego tekstu dałem sobie spokój. Tylko jak powiedzieć wgetowi, żeby nie ściągał wszystkiego, co ma jakikolwiek znak zapytania?&lt;/p&gt;
&lt;p&gt;Samemu wgetowi się nie da. Po prostu nie da. Tak czy inaczej będzie ściągał cały HTML, może go później skasuje (nie miałem na tyle cierpliwości, żeby sprawdzić). Odpada. Może z drugiej strony... ale nie tylko nie da się wgetowi podać lokalnego pliku robots.txt, ale też i w samym robots.txt nie da się zabronić dostępu do samych ścieżek z łańcuchem zapytania.&lt;/p&gt;
&lt;p&gt;Nie byłoby jednak sensu pisać o tym publicznie, gdybym nie miał jakiejś formy rozwiązania. Do tego jest to rozwiązanie na tyle od dupy strony, że stwierdziłem, że warto je umieścić tutaj. Otóż, na serwerze, na którym działa ów trac, działa też &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&quot;&gt;mod_rewrite&lt;/a&gt;. Dopisałem szybko do &lt;kbd&gt;.htaccess&lt;/kbd&gt;:&lt;/p&gt;
&lt;pre style=&quot;font-size: 66%;&quot;&gt;
RewriteCond %{HTTP_USER_AGENT} ^Wget/ # Tylko dla naszego ściągania kopii, przeglądarki niech mają dostęp do wszystkiego
RewriteCond %{QUERY_STRING} !=&quot;&quot; # Dla niepustego łańcucha zapytania
RewriteRule .* /drzewo [G] # Kierujemy na drzewo (G oznacza kod 410 Gone)
&lt;/pre&gt;
&lt;p&gt;Wydaje się działać, co ku pamięci niniejszem odnotowuję.&lt;/p&gt;
</description><pubDate>Sun, 20 Jan 2008 21:09:14 +0100</pubDate><guid>http://blog.pasternacki.net/2008/01/20/note-to-self-statyczny-backup-restowego-serwisu-www/</guid><category>Maszyny</category><category>Techblog</category></item><item><title>Idealna licencja OSS</title><link>http://blog.pasternacki.net/2008/01/19/idealna-licencja-oss/</link><description>&lt;p&gt;&lt;a href=&quot;http://sam.zoy.org/wtfpl/&quot;&gt;WTFPL&lt;/a&gt;. Open Source/Free Software w czystej postaci.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre style=&quot;font-size:66%&quot;&gt;
           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                   Version 2, December 2004 

Copyright© 2004 Sam Hocevar 
 14 rue de Plaisance, 75014 Paris, France 
Everyone is permitted to copy and distribute verbatim or modified 
copies of this license document, and changing it is allowed as long 
as the name is changed. 

           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

 0. You just DO WHAT THE FUCK YOU WANT TO.
&lt;/pre&gt;
&lt;p&gt;Aż mnie kusi, żeby napisać jakąś biblioteczkę, tylko po to, żeby była na powyższej licencji…&lt;/p&gt;
</description><pubDate>Sat, 19 Jan 2008 00:23:49 +0100</pubDate><guid>http://blog.pasternacki.net/2008/01/19/idealna-licencja-oss/</guid><category>Fortunki</category><category>Maszyny</category><category>Techblog</category></item><item><title>Nix – czysto funkcyjny menedżer pakietów</title><link>http://blog.pasternacki.net/2008/01/11/nix-czysto-funkcyjny-menedzer-pakietow/</link><description>&lt;p&gt;Wieki temu został mi podrzucony adres takiego cudaka jak &lt;a href=&quot;http://nix.cs.uu.nl/&quot;&gt;Nix&lt;/a&gt;. Kliknąłem, przejrzałem, rzecz ogólnie olałem. Ładne, ale średnio przydatne. Ostatnio wróciłem… i muszę przyznać, że tym razem trafiło do mnie bardziej. Może dlatego, że w międzyczasie nauczyłem się paru bardziej teoretycznych rzeczy na temat komputerów i systemów, a może dlatego, że na roku poszła plotka, jakobyśmy powinni wybrać sobie temat magisterki, więc na mijane w sieci ciekawostki patrzę ostatnio pod nieco innym kątem.&lt;/p&gt;
&lt;p&gt;Ale o co właściwie chodzi? Trudno rzecz zwięźle opisać, nie czyniąc przy tym nadmiernych uproszczeń. Autorzy projektu stwierdzili, że przestrzeń dyskowa jest rodzajem pamięci (co samo w sobie jest mało odkrywcze), więc do zarządzania nią można użyć mechanizmów od lat już używanych do zarządzania pamięcią operacyjną – co jest już ciekawsze. Istnieją języki programowania, które nie wspierają nadpisywalnych danych; zamiast nadpisywalnych zmiennych są niemutowalne wartości przypisywane etykietom. Takie języki nazywamy &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Purely_functional&quot;&gt;funkcyjnymi&lt;/a&gt;&lt;/em&gt;. Nix jest &lt;strong&gt;czysto funkcyjnym systemem pakietów&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Przestrzeń składowa&lt;/h2&gt;
&lt;p&gt;Pakiety są opisywane funkcjami nieposiadającymi efektów ubocznych, zapisywane w unikalnych katalogach przestrzeni składowej (&lt;em&gt;store&lt;/em&gt;) i opisywane oprócz nazwy i numeru wersji haszem całej znanej konfiguracji. W jednym systemie może być więc zapisanych jednocześnie wiele wersji i wariantów tego samego pakietu. Każdy pakiet zależy od konkretnej wersji i wariantu pakietów, dla których został przebudowany (i te pakiety też są częścią konfiguracji – równie dobrze jak mieć Firefoksa 1.x, 2.x i 3.x na jednym systemie, nie mamy problemów ze skompilowaniem tego samego programu w tej samej wersji, ale z różnymi wersjami jakiejś biblioteki). Ponieważ w ścieżce występuje hasz jednoznacznie określający wariant pakietu, mamy łatwy dostęp do całego grafu zależności przy użyciu zwykłego polecenia &lt;em&gt;grep&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Co więcej, pełny opis zależności jest tutaj &lt;em&gt;wymuszony&lt;/em&gt; przez system. W tradycyjnych systemach zarządzania pakietami (rpm, dpkg, slackowe tarballe…) jeśli nie podałem w opisie pakietu któregoś z pakietów wymaganych do jej kompilacji, to jeśli posiadam ten pakiet w systemie, paczka skompiluje się i tak. U mnie. U kogo innego – niekoniecznie się skompiluje, tym bardziej niekoniecznie skompiluje się tak samo jak u mnie; zależy to od pakietów obecnych na kompilujących systemie. W Nix taki myk jest po prostu niemożliwy. Paczka, która nie jest określona w opisie budowanego pakietu, jest dla niego po prostu niewidoczna.&lt;/p&gt;
&lt;h2&gt;Domknięcia i widoki&lt;/h2&gt;
&lt;p&gt;Dobra, no to opisaliśmy w skrócie własności składowania pakietów w Nix. Podejrzewam, że u tych z Was, którzy dotarli do tego miejsca z wyłączoną już lampką &lt;q&gt;Ale o co w tym chodzi?&lt;/q&gt;, zapaliła się w jej miejsce lampka &lt;q&gt;&lt;strong&gt;Ale jak się w tym połapać??&lt;/strong&gt;&lt;/q&gt;. Dobre pytanie. I tutaj przychodzą na myśl dwa kolejne pojęcia pochodzące z języków funkcyjnych i zarządzania pamięcią operacyjną: &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Closure_(computer_science)&quot;&gt;domknięcia&lt;/a&gt;&lt;/em&gt; i &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/View_(database)&quot;&gt;widoki&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Nie chcę teraz omawiać pierwotnego znaczenia tych pojęć; zainteresowani mogą zerknąć choćby w Wikipedię. Skupię się za to na opisaniu znaczenia tych pojęć w Nix. Do rzeczy: &lt;em&gt;domknięcie&lt;/em&gt; pakietu to jest pakiet plus wszystkie pakiety, od których zależy, plus wszystkie pakiety, od których one zależą, itd. – słowem, komplet pakietów koniecznych do używania danego pakietu. Skoro znamy pełne zależności każdego z pakietów, nietrudno jest dla każdego używanego pakietu wyznaczyć domknięcie.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Widok&lt;/em&gt; jest to zestaw pakietów widocznych na raz. Używane są do kompilacji (aby kompilowany pakiet widział wszystkie potrzebne do kompilacji narzędzia i biblioteki), a także – co chyba istotniejsze – do implementacji &lt;em&gt;środowisk użytkownika&lt;/em&gt;. Użytkownik widzi w swoim środowisku tylko wybrane przez siebie pakiety w wybranych wersjach – i może zmieniać środowiska wedle potrzeb czy zachcianek.&lt;/p&gt;
&lt;h2&gt;Przebieg instalacji i deinstalacji pakietu&lt;/h2&gt;
&lt;p&gt;W ramach optymalizacji implementacji, wszystko, co się da, jest robione na symlinkach (lub, na systemach nie obsługujących symlinków, skryptach odnoszących się do innych katalogów). W efekcie, używane jest minimum miejsca, a instalacja przebiega następująco:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System upewnia się, że w przestrzeni składowej znajduje się całe domknięcie pakietu. Instalowany pakiet i brakujące zależności są dodawane do składu.&lt;/li&gt;
&lt;li&gt;Raz zapisany do składu komponent pozostaje niezmienny i tylko do odczytu. Zatem, na podstawie bieżącego środowiska użytkownika, tworzone jest w składzie nowe środowisko, zawierające dotychczas widoczne komponenty i zainstalowany właśnie komponent.&lt;/li&gt;
&lt;li&gt;Symlink „bieżące środowisko” jest przenoszony na właśnie utworzone środowisko zawierające nowy program.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Podobnie przebiega aktualizacja i usuwanie pakietu. W efekcie użytkownik zawsze widzi spójny system i nie jest narażony na nieprzyjemności podczas instalacji czy uaktualnienia. Do tego, jeśli zmiana pójdzie nie tak, zawsze może jakby nigdy nic wrócić do wcześniejszego środowiska.&lt;/p&gt;
&lt;p&gt;Do tego, każdy użytkownik może mieć osobne środowisko. Administratorzy zapewne od razu widzą zastosowanie tego systemu: użytkownik nie musi być człowiekiem, może to być serwer o ściśle określonych wymaganiach w kwestii bibliotek i programów. Każdy &lt;em&gt;webapp&lt;/em&gt; uruchomiony na maszynie może mieć swoje ulubione środowisko (i nic ponad to), nie tworząc konfliktów z resztą systemu! Więcej, możemy w jednym systemie mieć bez bólu głowy środowisko rozwojowe i produkcyjne czy też &lt;em&gt;staging&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Śmieciarka&lt;/h2&gt;
&lt;p&gt;Pytanie, co z nieużywanymi już komponentami po deinstalacji czy uaktualnieniu pakietu? Albo z komponentami potrzebnymi do zainstalowania pakietu, ale po instalacji już zbędnymi? Przy takim podejściu, składowisko w mgnieniu oka napuchnie ponad wyraz!&lt;/p&gt;
&lt;p&gt;Na pomoc przychodzi kolejne (spokojnie, to już ostatnie) pojęcie z zakresu zarządzania pamięcią: &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29&quot;&gt;odśmiecanie&lt;/a&gt;&lt;/em&gt;. W każdej chwili możemy składowisko odśmiecić, czyli usunąć niewidoczne z żadnego środowiska użytkownika (i, jeśli chcemy, paru wersji tego środowiska wstecz) komponenty. Przy takim mechanizmie to jest proste: śmieciarka bierze wszystkie środowiska, które chcemy zachować, oznacza komponenty w domknięciach każdego komponentu tych środowisk jako potrzebne, po czym usuwa całą resztę.&lt;/p&gt;
&lt;h2&gt;NixOS i Nix na PLD&lt;/h2&gt;
&lt;p&gt;Na zakończenie, dla sceptyków twierdzących, że w praktyce żadne nietrywialne oprogramowanie nie zniesie takiej dyscypliny: &lt;a href=&quot;http://nix.cs.uu.nl/nixos/&quot;&gt;NixOS&lt;/a&gt; – dystrybucja Linuksa oparta w pełni o Nix. Używa Niksa nie tylko do zarządzania pakietami oprogramowania, ale też do zarządzania konfiguracją. Poza katalogiem &lt;code&gt;/nix&lt;/code&gt;, system praktycznie nie istnieje. Nie ma &lt;code&gt;/bin&lt;/code&gt; (poza linkiem &lt;code&gt;/bin/sh&lt;/code&gt; do odpowiedniego komponentu Nix), &lt;code&gt;/lib&lt;/code&gt;, &lt;code&gt;/usr&lt;/code&gt;… można zobaczyć to na &lt;a href=&quot;http://nix.cs.uu.nl/nixos/screenshots/nixos-terminals.png&quot;&gt;screenshocie&lt;/a&gt; ze strony projektu.&lt;/p&gt;
&lt;p&gt;Sam sprawdziłem, system instaluje się i wstaje. Wiele więcej na razie nie zdziałałem, obecnie bawię się Niksem raczej na własnej workstacji na &lt;a href=&quot;http://www.pld-linux.org/&quot;&gt;PLD&lt;/a&gt;. Komputer i instalacja &lt;span class=&quot;caps&quot;&gt;PLD&lt;/span&gt; jest 64-bitowa, a Niksa zaczynam używać do zarządzania potrzebnym mi 32-bitowym oprogramowaniem (głównie Opera i inne binarki). Poldek niby obsługuje multiliba, ale słabawo – tą metodą mam dodatkową zabawkę ;)&lt;/p&gt;
&lt;h3&gt;Nix na PLD&lt;/h3&gt;
&lt;p&gt;Bardziej jako notka do siebie, bo wątpię, czy ktoś z Czytelników wytrwał do tego miejsca. Żeby korzystać sobie z Niksa w &lt;span class=&quot;caps&quot;&gt;PLD&lt;/span&gt;, trzeba:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skompilować i zainstalować paczkę&lt;em&gt;nix&lt;/em&gt;: &lt;code&gt;./builder nix&lt;/code&gt; (jeśli nie wiesz, o co chodzi: &lt;a href=&quot;http://developer-doc.pld-linux.org/baseciq/slack2pld.html&quot;&gt;http://developer-doc.pld-linux.org/baseciq/slack2pld.html&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;W moim przypadku (inna architektura Nix niż systemu), polecenia &lt;code&gt;nix-env&lt;/code&gt; należy poprzedzać &lt;code&gt;setarch i686&lt;/code&gt;, a w &lt;code&gt;/etc/nix/nix.conf&lt;/code&gt; ustawić odpowiednio zmienną &lt;code&gt;system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Dodać i zaciągnąć kanały, poinstalować paczki… jak w &lt;a href=&quot;http://nix.cs.uu.nl/dist/nix/nix-0.11/manual/&quot;&gt;manualu Niksa&lt;/a&gt; Wszystko działa zasadniczo &lt;span class=&quot;caps&quot;&gt;OOTB&lt;/span&gt;. Powinno działać nawet uaktualnienie Niksa w Nix (wtedy można z macierzystego &lt;span class=&quot;caps&quot;&gt;PLD&lt;/span&gt; usunąć spokojnie paczkę z Niksem), ale tego nie próbowałem.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nie próbowałem też jeszcze stwarzać różnych środowisk, opisywać i budować własnych paczek, za to ten artykuł dodaję z:&lt;/p&gt;
&lt;pre&gt;
japhy@lizard:~/rpm/SPECS % which opera            
~/.nix-profile/bin/opera
japhy@lizard:~/rpm/SPECS % ps awux |grep '[o]pera' 
japhy     1223 22.8 25.6 405148 378256 pts/15  S    21:40  23:07 /nix/store/bayygjghpz8mcbcwbccp0mgj8gcgv006-opera-9.24-20071015.5/lib/opera/9.50-20071024.5/opera
japhy     1233  0.0 25.6 405148 378256 pts/15  S    21:40   0:00 /nix/store/bayygjghpz8mcbcwbccp0mgj8gcgv006-opera-9.24-20071015.5/lib/opera/9.50-20071024.5/opera
japhy@lizard:~/rpm/SPECS % 
&lt;/pre&gt;
&lt;p&gt;W miarę zabawy pewnie dotrę do ciekawszych zastosowań i ficzerów, których z pewnością nie omieszkam opisać. Na razie to byłoby wszytko – i tak wpis wyszedł potwornie długi… dobranoc.&lt;/p&gt;
</description><pubDate>Fri, 11 Jan 2008 23:21:50 +0100</pubDate><guid>http://blog.pasternacki.net/2008/01/11/nix-czysto-funkcyjny-menedzer-pakietow/</guid><category>Maszyny</category><category>Techblog</category><category>nix pld cs</category></item><item><title>Zarazki!!!1</title><link>http://blog.pasternacki.net/2007/12/08/zarazki-1/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.justsayhi.com/bb/keyboard&quot; style=&quot;color: #99CC00; text-decoration: none; display: block; width: 303px; height: 128px; padding-top: 50px; background: url(http://assets.justsayhi.com/badges/558/241/keyboard.7s9xqb8nbd.jpg) no-repeat; font-family: Arial, sans-serif; font-size: 33px; text-align: center;&quot;&gt;&lt;strong&gt;2,561,580&lt;/strong&gt;&lt;span style=&quot;display: none;&quot;&gt;How Many Germs Live On Your Keyboard?&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;q&gt;That’s equivalent to the number of germs on 512 toilet seats.&lt;/q&gt;&lt;/p&gt;
</description><pubDate>Sat, 08 Dec 2007 18:01:06 +0100</pubDate><guid>http://blog.pasternacki.net/2007/12/08/zarazki-1/</guid><category>Cała reszta</category></item><item><title>I po remoncie</title><link>http://blog.pasternacki.net/2007/11/02/i-po-remoncie/</link><description>&lt;p&gt;Uff. Wreszcie wziąłem się do roboty i zrobiłem temu blogu layout na kształt i podobieństwo nowego layoutu strony domowej. Chyba jest lepiej. Nie wygląda już (mam nadzieję) jak &lt;q&gt;coś szare, zaczęte i porzucone (tak wygląda) i generalnie brzydkie,&lt;/q&gt; jak został swojego czasu oceniony stary wygląd strony. Teraz jest spójnie i tak samo.&lt;/p&gt;
&lt;p&gt;I oby to było początkiem częstszej aktualizacji bloga. Przyznam, że mam już parę pomysłów na artykuły…&lt;/p&gt;
</description><pubDate>Fri, 02 Nov 2007 05:10:06 +0100</pubDate><guid>http://blog.pasternacki.net/2007/11/02/i-po-remoncie/</guid><category>Cała reszta</category></item><item><title>Polskie fundusze i akcje w gnucash</title><link>http://blog.pasternacki.net/2007/09/15/polskie-fundusze-i-akcje-w-gnucash/</link><description>&lt;p&gt;Od paru miesięcy używam do zarządzania swoimi pieniędzmi otwartego programu księgowego &lt;a href=&quot;http://www.gnucash.org/&quot;&gt;GnuCash&lt;/a&gt;. Stworzony z myślą o finansach osobistych i małych firmach, prosty w obsłudze, a jednocześnie względnie poważny — oparty na &lt;a href=&quot;http://en.wikipedia.org/wiki/Double-entry_accounting&quot;&gt;podwójnym zapisie&lt;/a&gt;, co na pierwszy rzut oka jest dziwne i niewygodne, ale daje duże możliwości śledzenia przychodów i wydatków, jak i kontroli wprowadzonych zapisów.&lt;/p&gt;
&lt;p&gt;Potrafi też śledzić inwestycje pieniężne — akcje, obligacje, fundusze inwestycyjne — oraz obsługuje bez problemów konta w różnych walutach. Teoretycznie, umie ściągać z Interneta kursy walut, akcji, czy jednostek udziału funduszy. Dla walut działa to całkiem ładnie (z pewną dokładnością — mimo wszystko kurs banku oparty na kursie &lt;span class=&quot;caps&quot;&gt;NBP&lt;/span&gt; będzie nieco inny niż kurs ściągnięty z Yahoo — ale przy wpisywaniu transakcji w różnych walutach nie ma problemu z ręcznym określeniem kursu wymiany, a automatycznie ściągany kurs służy przeważnie do przeliczania Wielkiej Sumy Wszystkiego). Z funduszami, którymi się ostatnio poważniej zainteresowałem, jest gorzej — wykorzystywana przez program perlowa biblioteka &lt;a href=&quot;http://finance-quote.sourceforge.net/&quot;&gt;Finance::Quote&lt;/a&gt; po prostu nie zna polskich akcji i funduszy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clickety click&lt;/strong&gt;, pół godziny, kilkadziesiąt linijek kodu, i już widzimy, co trzeba. Moduł &lt;a href=&quot;http://www.pasternacki.net/files/Bossa.pm&quot;&gt;&lt;code&gt;Bossa.pm&lt;/code&gt;&lt;/a&gt;, po umieszczeniu w katalogu Finance::Quote, ściąga &lt;a href=&quot;http://bossa.pl/pub/fundinwest/omega/fun/ndohlcv.txt&quot;&gt;spis kursów w formacie CSV&lt;/a&gt; z serwisu &lt;a href=&quot;http://bossa.pl/&quot;&gt;http://bossa.pl/&lt;/a&gt; (dokładniej, &lt;a href=&quot;http://bossa.pl/notowania/daneatech/omegasupercharts/&quot;&gt;http://bossa.pl/notowania/daneatech/omegasupercharts/&lt;/a&gt;). Symboli funduszy nie znalazłem na Bossie, ale są np. na &lt;a href=&quot;http://www.fundi.pl/&quot;&gt;http://www.fundi.pl/&lt;/a&gt; — po wybraniu z rankingu funduszy szczegółów lub wykresu, symbol widoczny jest w pasku adresu jako „id.” Jako że z akcjami jeszcze nie mam do czynienia, nie wiem, jak znaleźć symbole akcji, ale pewnie jest to proste ;)&lt;/p&gt;
&lt;p&gt;Żeby GnuCash widział nowy moduł, trzeba dodać go jeszcze do listy domyślnie ładowanych modułów w pliku &lt;code&gt;Quote.pm&lt;/code&gt;. Jeszcze trochę rzecz potestuję i zgłoszę deweloperom Finance::Quote — być może niedługo wystarczające będzie po prostu zainstalowanie nowej wersji bibliotek. Na razie — wersja alfa dla chętnych.&lt;/p&gt;
</description><pubDate>Sat, 15 Sep 2007 21:34:00 +0200</pubDate><guid>http://blog.pasternacki.net/2007/09/15/polskie-fundusze-i-akcje-w-gnucash/</guid><category>Techblog</category><category>gnucash perl kod finanse</category></item><item><title>Nowa zabawka…</title><link>http://blog.pasternacki.net/2007/08/10/nowa-zabawka/</link><description>&lt;p&gt;Taki sobie notatnik: &lt;a href=&quot;http://kuchnia.tasak.gda.pl/&quot;&gt;http://kuchnia.tasak.gda.pl/&lt;/a&gt;. Na przepisy. Karteluszki są niepraktyczne.&lt;/p&gt;
&lt;p&gt;Jeśli ktoś chce dołączyć się do akcji i podopisywać swoje rzeczy zanim karteczki się pogubią, proszę o kontakt :)&lt;/p&gt;
</description><pubDate>Fri, 10 Aug 2007 16:19:22 +0200</pubDate><guid>http://blog.pasternacki.net/2007/08/10/nowa-zabawka/</guid><category>Cała reszta</category></item><item><title>R.I.P. R.A.W. [`]</title><link>http://blog.pasternacki.net/2007/01/12/rip-raw/</link><description>&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Robert_Anton_Wilson&quot;&gt;Robert Anton Wilson&lt;/a&gt;. Papież, pisarz, filozof, jeden z najbardziej otwartych umysłów XX, &lt;span class=&quot;caps&quot;&gt;XXI&lt;/span&gt; i &lt;span class=&quot;caps&quot;&gt;XXIII&lt;/span&gt; wieku.&lt;/p&gt;
&lt;p&gt;Jemu, jego dziełom, jestem dłużny ogromną część tego, kim stałem się teraz i kim stanę się w przyszłości.&lt;/p&gt;
&lt;p&gt;Poprzedni &lt;a href=&quot;http://robertantonwilson.blogspot.com/2007/01/do-not-go-gently-into-that-good-night.html&quot;&gt;wpis na blogu Roberta&lt;/a&gt;, pisany ze szpitala, sześć dni temu:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Kręcą się tutaj różne autorytety medyczne, przewidując, że mam od dwóch dni do dwóch miesięcy życia. Myślę, że zgadują. Nie robi to na mnie wrażenia, pozostaję w dobrym humorze. Patrzę w przyszłość bez narzuconego optymizmu, ale też bez strachu. [...] Wybaczcie moją lekkość, ale nie umiem brać śmierci na poważnie. Wydaje się absurdalna.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeżeli lekarze zgadywali, zgadli dobrze. Wczoraj, o 4.50 czasu lokalnego, &lt;a href=&quot;http://robertantonwilson.blogspot.com/2007/01/raw-essence.html&quot;&gt;Robert Anton Wilson odszedł z tego świata&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gdziekolwiek się znalazłeś, tutaj nie zostaniesz zapomniany.&lt;/p&gt;
&lt;p&gt;Hail Eris. French Canadian Bean Soup. FNORD!&lt;/p&gt;
</description><pubDate>Fri, 12 Jan 2007 14:06:30 +0100</pubDate><guid>http://blog.pasternacki.net/2007/01/12/rip-raw/</guid><category>Cała reszta</category></item></channel></rss>