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

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Wirtualne Zacisze utak3ra - Komputerologia stosowana</title>
    <link>http://utak3r.pl/</link>
    <description>utak3r's virtual shelter</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 01 Jul 2010 15:50:16 GMT</pubDate>

    <image>
        <url>http://utak3r.pl/templates/utak3r/img/s9y_banner_small.png</url>
        <title>RSS: Wirtualne Zacisze utak3ra - Komputerologia stosowana - utak3r's virtual shelter</title>
        <link>http://utak3r.pl/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Stalker SoC: Podłączanie nowego poziomu do gry.</title>
    <link>http://utak3r.pl/index.php?/archives/120-Stalker-SoC-Podczanie-nowego-poziomu-do-gry..html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/120-Stalker-SoC-Podczanie-nowego-poziomu-do-gry..html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=120</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=120</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Na &lt;b&gt;&lt;a href=&quot;http://forum.stalker.pl/viewtopic.php?f=68&amp;t=9455&quot;&gt;forum Stalker.pl&lt;/a&gt;&lt;/b&gt; zamieściłem &lt;i&gt;tutorial&lt;/i&gt; traktujący o tym, jak dołączyć nowo utworzony przez nas (lub i nie przez nas...) poziom (&lt;i&gt;level&lt;/i&gt;) do grafu gry (&lt;i&gt;game graph&lt;/i&gt;), wraz z utworzeniem odpowiednich przejść pomiędzy poziomami (&lt;i&gt;level changers&lt;/i&gt;) dla gry &lt;b&gt;S.T.A.L.K.E.R. - Cień Czarnobyla&lt;/b&gt;. Poradnik zakłada podstawową znajomość narzędzia &lt;i&gt;Level Editor&lt;/i&gt; oraz pakietu &lt;i&gt;X-Ray SDK&lt;/i&gt;.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Artykuł można znaleźć &lt;b&gt;&lt;a href=&quot;http://forum.stalker.pl/viewtopic.php?f=68&amp;t=9455&quot;&gt;tutaj&lt;/a&gt;&lt;/b&gt;, natomiast poniżej można obejrzeć krótki filmik obrazujący efekt przejścia przez poradnik.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Miłego moddowania!&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot; /&gt;&lt;center&gt;&lt;br /&gt;
&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/365T26FNa9Y&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=pl_PL&amp;feature=player_embedded&amp;fs=1&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://www.youtube.com/v/365T26FNa9Y&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=pl_PL&amp;feature=player_embedded&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;640&quot; height=&quot;385&quot; /&gt;&lt;/object&gt;&lt;br /&gt;
&lt;/center&gt;&lt;p /&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 29 Jun 2010 08:41:11 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/120-guid.html</guid>
    
</item>
<item>
    <title>Instalacja niepodpisanych sterowników pod Windows 7 x64</title>
    <link>http://utak3r.pl/index.php?/archives/119-Instalacja-niepodpisanych-sterownikow-pod-Windows-7-x64.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/119-Instalacja-niepodpisanych-sterownikow-pod-Windows-7-x64.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=119</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=119</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Microsoft w jądrze Windows 7 wprowadził kilka bardzo fajnych nowości, &amp;quot;zapomniał&amp;quot; jednak o pozostawieniu jakiejś furtki końcowym użytkownikom, jeśli chodzi o zasady bezpieczeństwa. Mianowicie problemem stały się sterowniki do urządzeń, które nie są podpisane żadnym zaufanym certyfikatem. Można co prawda po jednej korekcie w opcjach systemu takowe sterowniki zainstalować, jednak urządzenie nadal działać nie będzie. &lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
W związku z taką sytuacją, jedynym wyjściem do tej pory było wchodzenie w tryb awaryjny systemu. Nie jest to jednak ani wygodne, ani bezpieczne. Dlatego też, poniżej opiszę sposób, jak krok po kroku, pozbyć się tej uciążliwości.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://utak3r.pl/varia/unsigned_drivers_01.png&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/unsigned_drivers_01.png&quot; width=&quot;594&quot; height=&quot;376&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Zaczniemy od włączenia możliwości instalacji niepodpisanych sterowników. Z poziomu &lt;i&gt;Panelu Sterowania&lt;/i&gt; uruchamiamy &lt;i&gt;Edytor lokalnych zasad grupy&lt;/i&gt; i w lewym panelu nawigujemy do pozycji &lt;i&gt;Konfiguracja użytkownika -&amp;gt; Szablony administracyjne -&amp;gt; System -&amp;gt; Instalacja sterowników&lt;/i&gt;. Otwieramy pozycję o nazwie &lt;i&gt;Podpisywanie kodu dla sterowników urządzeń&lt;/i&gt;:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://utak3r.pl/varia/unsigned_drivers_02.png&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/unsigned_drivers_02.png&quot; width=&quot;490&quot; height=&quot;449&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Zmieniamy ustawienie wg powyższego screena i zatwierdzamy. Następnie, pozbywamy się kolejnego ograniczenia. Uruchamiamy &lt;i&gt;Ustawienia kontroli konta użytkownika&lt;/i&gt; i wyłączamy cały podsystem kontroli:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://utak3r.pl/varia/unsigned_drivers_03.png&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/unsigned_drivers_03.png&quot; width=&quot;532&quot; height=&quot;392&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
W tym momencie sterowniki można już instalować, ale... nie można ich nadal używać - co stawia pod znakiem zapytania inteligencję projektantów systemu... po co zezwalać na instalację, skoro to i tak nic nie daje? Restartujemy komputer i pobieramy program &lt;b&gt;&lt;a href=&quot;http://www.ngohq.com/home.php?page=dseo&quot; target=&quot;_blank&quot;&gt;Driver Signature Enforcement Overrider&lt;/a&gt;&lt;/b&gt;, który pozwoli nam na uruchomienie naszych sterowników.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/unsigned_drivers_04.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Wybieramy opcję &lt;i&gt;Enable test mode&lt;/i&gt;, następnie &lt;i&gt;Exit&lt;/i&gt; i ponownie restartujemy system. Po ponownym uruchomieniu, nasz system jest gotowy na przyjęcie wielu nowych urządzeń &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;   Jako dowód poniżej zrzut ekranowy z &lt;i&gt;Menadżera urządzeń&lt;/i&gt; z zazanczonymi urządzeniami, które zostały zainstalowane wyżej opisaną metodą. Powodzenia!&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/unsigned_drivers_05.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 20 Jun 2010 17:13:42 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/119-guid.html</guid>
    
</item>
<item>
    <title>ufp - utak3r Flash Player</title>
    <link>http://utak3r.pl/index.php?/archives/118-ufp-utak3r-Flash-Player.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/118-ufp-utak3r-Flash-Player.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=118</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=118</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;a href=&quot;http://www.brothersoft.com/utak3r-flash-player-299467.html&quot;&gt;&lt;img src=&quot;http://author.brothersoft.com/softimg/pick_100.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://utak3r.pl/flaga_pl.png&quot; /&gt;&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Już grubo od ponad pół roku z serwisu &lt;b&gt;&lt;a href=&quot;http://www.brothersoft.com/&quot;&gt;BrotherSoft&lt;/a&gt;&lt;/b&gt; można pobrać moją aplikację zwaną &lt;b&gt;&lt;a href=&quot;http://www.brothersoft.com/utak3r-flash-player-299467.html&quot;&gt;ufp&lt;/a&gt;&lt;/b&gt;, która właśnie uzyskała status &lt;i&gt;Editor&#039;s Pick&lt;/i&gt;. Cóż to jest? &lt;br /&gt;
&lt;br /&gt;
Jest to aplikacja stworzona głównie z myślą o wysterowaniu paneli LEDowych, używanych powszechnie w reklamie (tzw. &lt;i&gt;LED walls&lt;/i&gt;). Można ją jednak wykorzystać również do odtwarzania prezentacji w ogólnym pojęciu (np. projektor podpięty do laptopa). Pozwala ona zdefiniować obszar na ekranie, który będzie przeznaczony do odtwarzania, a następnie umożliwia ułożenie playlisty, która cyklicznie będzie odtwarzana. Obsługiwane formaty plików to przede wszystkim animacje Flash w formacie SWF, a także obrazy JPEG i PNG. Ważną cechą, wyróżniającą ten program wśród innych, jest brak tzw. &lt;i&gt;sandboksa&lt;/i&gt;, co umożliwia uruchamianie animacji flashowych korzystających z internetu (np. w celu pobrania przez sieć danych do wyświetlenia).&lt;br /&gt;
&lt;br /&gt;
Aplikację pisałem dla siebie i jej używałem z powodzeniem na wielkich imprezach - i się sprawdza &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Zapraszam do pobierania i testowania aplikacji.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://img.brothersoft.com/screenshots/softimage/u/utak3r_flash_player-299467-1256737452.jpeg&quot; /&gt;&lt;/p&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://utak3r.pl/flaga_uk.png&quot; /&gt;&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;
Since last fall on the &lt;b&gt;&lt;a href=&quot;http://www.brothersoft.com/&quot;&gt;BrotherSoft&lt;/a&gt;&lt;/b&gt; you can find my apllication, called &lt;b&gt;&lt;a href=&quot;http://www.brothersoft.com/utak3r-flash-player-299467.html&quot;&gt;ufp&lt;/a&gt;&lt;/b&gt;, which just got the &lt;i&gt;Editor&#039;s Pick&lt;/i&gt; status. What&#039;s that?&lt;br /&gt;
&lt;br /&gt;
It&#039;s the application designed for driving LED walls, commonly used in advertisement market - but you can also use it for general purposes, too - let&#039;s say with the projector attached to a notebook. First, you can define the area on the screen, which will be used for playing the files, and then you can plan your playlist. In the playlist you can use Flash animations (in SWF format) and PNG or JPEG images. What is the power of this little application is the Flash player isn&#039;t closed in the sandbox. What that means? It means you can play animations which are using the internet (ie. for downloading some data to be displayed).&lt;br /&gt;
&lt;br /&gt;
I wrote this application for myself and I was using it with the success on really big events &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Just go, download and test it.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 09 Jun 2010 10:07:37 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/118-guid.html</guid>
    
</item>
<item>
    <title>Intel® Concurrent Collections for C++  - proste i przejrzyste programowanie równoległe.</title>
    <link>http://utak3r.pl/index.php?/archives/117-Intel-Concurrent-Collections-for-C++-proste-i-przejrzyste-programowanie-rownolege..html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/117-Intel-Concurrent-Collections-for-C++-proste-i-przejrzyste-programowanie-rownolege..html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=117</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=117</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
Tworzysz właśnie aplikację w C++ pod linuksa lub Windows, której zadaniem są m.in. długie obliczenia? Myślałeś o zrównolegleniu tych obliczeń?&lt;br /&gt;
Jeśli tak - Intel udostępnia swój zestaw &lt;b&gt;&lt;a href=&quot;http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/&quot;&gt;Intel® Concurrent Collections for C++&lt;/a&gt;&lt;/b&gt;. Cóż to takiego?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Concurrent Collections for C++&lt;/b&gt; to zestaw kolekcji (&amp;quot;steps&amp;quot; dla obliczeń, &amp;quot;tags&amp;quot; dla kontroli oraz &amp;quot;items&amp;quot; dla danych), które umożliwiają przejrzystą implementację algorytmów równoległych. Zadania przedstawia się w formie grafu w specjalnie przygotowanej do tego celu notacji. Co więcej - Intel udostępnił również specjalne narzędzie wizualne do tworzenia owych grafów - GraphBuilder. Biblioteka łatwo integruje się z Microsoft Visual Studio.&lt;br /&gt;
Autorką technologii jest &lt;b&gt;Kath Knobe&lt;/b&gt;, która wiele lat spędziła przy programowaniu superkomputerów, obecnie jest zatrudniona w Intelu.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://software.intel.com/en-us/forums/intel-concurrent-collections-for-cc/&quot;&gt;Dostępne jest również forum&lt;/a&gt;&lt;/b&gt; poświęcone tej technologii.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;p align=&quot;center&quot;&gt;&lt;br /&gt;
&lt;object width=&quot;640&quot; height=&quot;360&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; name=&quot;v_1900_279&quot; id=&quot;v_1900_279&quot;&gt;&lt;param value=&quot;file=http://software.intel.com/media/videos/d/3/9/5/7/7/1/Intel_SW-OverviewOfIntelConcurrentCollectionsForCCByKathKnobePA762.flv&amp;image=http://software.intel.com/media/videos/d/3/9/5/7/7/1/d395771085aab05244a4fb8fd91bf4ee_player.jpg&amp;autostart=false&amp;bufferlength=5&amp;allowfullscreen=true&amp;plugins=http://software.intel.com/common/swf/listen&amp;title=Overview+of+Intel%C2%AE+Concurrent+Collections+for+C%2FC%2B%2B+by+Kath+Knobe+Part+1&quot; name=&quot;flashvars&quot; /&gt;&lt;param value=&quot;http://software.intel.com/common/swf/mediaplayer.swf&quot; name=&quot;movie&quot; /&gt;&lt;param value=&quot;true&quot; name=&quot;allowfullscreen&quot; /&gt;&lt;embed width=&quot;640&quot; height=&quot;360&quot; allowfullscreen=&quot;true&quot; flashvars=&quot;file=http://software.intel.com/media/videos/d/3/9/5/7/7/1/Intel_SW-OverviewOfIntelConcurrentCollectionsForCCByKathKnobePA762.flv&amp;image=http://software.intel.com/media/videos/d/3/9/5/7/7/1/d395771085aab05244a4fb8fd91bf4ee_player.jpg&amp;autostart=false&amp;bufferlength=5&amp;allowfullscreen=true&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; bgcolor=&quot;#FFFFFF&quot; src=&quot;http://software.intel.com/common/swf/mediaplayer.swf&quot; /&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;640&quot; height=&quot;360&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; name=&quot;v_3023_280&quot; id=&quot;v_3023_280&quot;&gt;&lt;param value=&quot;file=http://software.intel.com/media/videos/9/2/c/8/c/9/6/Intel_SW-OverviewOfIntelConcurrentCollectionsForCCByKathKnobePa785.flv&amp;image=http://software.intel.com/media/videos/9/2/c/8/c/9/6/92c8c96e4c37100777c7190b76d28233_player.jpg&amp;autostart=false&amp;bufferlength=5&amp;allowfullscreen=true&amp;plugins=http://software.intel.com/common/swf/listen&amp;title=Overview+of+Intel%C2%AE+Concurrent+Collections+for+C%2FC%2B%2B+by+Kath+Knobe+Part+2&quot; name=&quot;flashvars&quot; /&gt;&lt;param value=&quot;http://software.intel.com/common/swf/mediaplayer.swf&quot; name=&quot;movie&quot; /&gt;&lt;param value=&quot;true&quot; name=&quot;allowfullscreen&quot; /&gt;&lt;embed width=&quot;640&quot; height=&quot;360&quot; allowfullscreen=&quot;true&quot; flashvars=&quot;file=http://software.intel.com/media/videos/9/2/c/8/c/9/6/Intel_SW-OverviewOfIntelConcurrentCollectionsForCCByKathKnobePa785.flv&amp;image=http://software.intel.com/media/videos/9/2/c/8/c/9/6/92c8c96e4c37100777c7190b76d28233_player.jpg&amp;autostart=false&amp;bufferlength=5&amp;allowfullscreen=true&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; bgcolor=&quot;#FFFFFF&quot; src=&quot;http://software.intel.com/common/swf/mediaplayer.swf&quot; /&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
Przy okazji tematu, polecam gorąco odwiedzenie portalu &lt;b&gt;&lt;a href=&quot;http://software.intel.com/en-us/parallel/&quot;&gt;Parallel Commuinity&lt;/a&gt;&lt;/b&gt;, również prowadzonego przez Intel. 
    </content:encoded>

    <pubDate>Tue, 08 Jun 2010 11:44:12 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/117-guid.html</guid>
    
</item>
<item>
    <title>BeeWinDiff - uaktualnienie</title>
    <link>http://utak3r.pl/index.php?/archives/112-BeeWinDiff-uaktualnienie.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/112-BeeWinDiff-uaktualnienie.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=112</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=112</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Zaktualizowałem i przebudowałem program &lt;b&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://utak3r.pl/index.php?/archives/79-BeeWinDiff_1.9.html&quot;&gt;BeeWinDiff&lt;/a&gt;&lt;/b&gt;. W tej chwili oparty jest o świeżą wersję &lt;i&gt;Qt 4.6.2&lt;/i&gt;. Dołączyłem również natywny windowsowy plik &lt;i&gt;diff.exe&lt;/i&gt;, ze znalezieniem którego niektórzy mieli problemy.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/BeeWinDiff.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Przypominam, że program można pobrać &lt;b&gt;&lt;a href=&quot;http://utak3r.pl/varia/BeeWinDiff-1.9.zip&quot;&gt;tutaj&lt;/a&gt;&lt;/b&gt;, natomiast wymagane do uruchomienia programu biblioteki - &lt;b&gt;&lt;a href=&quot;http://utak3r.pl/varia/Qt462rt.zip&quot;&gt;tutaj&lt;/a&gt;&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 23 Mar 2010 14:52:36 +0100</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/112-guid.html</guid>
    
</item>
<item>
    <title>Bash: Backup bazy Firebird i upload przez FTP</title>
    <link>http://utak3r.pl/index.php?/archives/110-Bash-Backup-bazy-Firebird-i-upload-przez-FTP.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/110-Bash-Backup-bazy-Firebird-i-upload-przez-FTP.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=110</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=110</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;W trakcie pisania prostego skryptu, odpalanego z &lt;i&gt;crona&lt;/i&gt;, który na serwerze ma za zadanie wykonać backup bazy firebird i wysłać plik na wyznaczony serwer FTP, napotkałem się na jeden mały niuans, który może komuś sprawić pewien problem.&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;W zasadzie, wydawało by się, skrypt powinien wyglądać tak:&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;data=`date +%Y%m%d`&lt;br /&gt;plik_baza=/home/utak3r/bazy/baza.gdb&lt;br /&gt;plik_backup=/home/utak3r/backup/backup_$data.gbk&lt;br /&gt;&lt;br /&gt;# backup bazy&lt;br /&gt;if [ -e &amp;quot;$plik_backup&amp;quot; ]&lt;br /&gt;then&lt;br /&gt;	rm -f $plik_backup&lt;br /&gt;fi&lt;br /&gt;/opt/firebird/bin/gbak -b -g -l $plik_baza $plik_backup&lt;br /&gt;if [ ! -e &amp;quot;$plik_backup&amp;quot; ]&lt;br /&gt;then&lt;br /&gt;	echo &amp;quot;Przerywam operacje.&amp;quot;&lt;br /&gt;	exit&lt;br /&gt;fi&lt;br /&gt;echo &amp;quot;Backup poprawny.&amp;quot;&lt;br /&gt;&lt;br /&gt;# pakowanie backupu&lt;br /&gt;if [ -e &amp;quot;$plik_backup.bz2&amp;quot; ]&lt;br /&gt;then&lt;br /&gt;
	rm -f &amp;quot;$plik_backup.bz2&amp;quot;&lt;br /&gt;fi&lt;br /&gt;/bin/bzip2 $plik_backup&lt;br /&gt;if [ ! -e &amp;quot;$plik_backup.bz2&amp;quot; ]&lt;br /&gt;then&lt;br /&gt;	echo &amp;quot;Przerywam operacje.&amp;quot;&lt;br /&gt;	exit&lt;br /&gt;fi&lt;br /&gt;echo &amp;quot;Backup spakowany poprawnie.&amp;quot;&lt;br /&gt;&lt;br /&gt;# ftpujemy plik na serwer&lt;br /&gt;plik_backup_bz2=$plik_backup.bz2&lt;br /&gt;&lt;br /&gt;ftp -n utak3r.pl &amp;lt;&amp;lt;EOC&lt;br /&gt;user login haslo&lt;br /&gt;passive&lt;br /&gt;binary&lt;br /&gt;cd backupy_bazy&lt;br /&gt;put ${plik_backup_bz2}&lt;br /&gt;bye&lt;br /&gt;EOC&lt;br /&gt;&lt;br /&gt;echo &amp;quot;Plik skopiowany na FTP.&amp;quot;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Jednak, okazuje się, że wszystko działa - poza wysyłaniem pliku na serwer. Dlaczego? Problem w tym, że wspaniały klient ftp potrafi wysyłać pliki &lt;b&gt;tylko i wyłącznie z bieżącego katalogu&lt;/b&gt;. Dlatego też, fragment skryptu odpowiedzialny za tę operację, powinien wyglądać następująco:&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# ftpujemy plik na serwer&lt;br /&gt;plik_backup_bz2=$plik_backup.bz2&lt;br /&gt;akt_sciezka=`pwd`&lt;br /&gt;backup_sciezka=${plik_backup_bz2%/*}&lt;br /&gt;backup_basename=${plik_backup_bz2##*/}&lt;br /&gt;&lt;br /&gt;# ftp może uploadowac pliki TYLKO z AKTUALNEGO katalogu !!!&lt;br /&gt;cd $backup_sciezka&lt;br /&gt;&lt;br /&gt;ftp -n utak3r.pl &amp;lt;&amp;lt;EOC&lt;br /&gt;user login haslo&lt;br /&gt;passive&lt;br /&gt;binary&lt;br /&gt;cd backupy_bazy&lt;br /&gt;put ${backup_basename}&lt;br /&gt;bye&lt;br /&gt;EOC&lt;br /&gt;&lt;br /&gt;cd $akt_sciezka&lt;br /&gt;echo &amp;quot;Plik skopiowany na FTP.&amp;quot;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Miłego zbierania backupów &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/wink.gif&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Wed, 03 Mar 2010 10:20:40 +0100</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/110-guid.html</guid>
    
</item>
<item>
    <title>Otwieranie tunelu SSH</title>
    <link>http://utak3r.pl/index.php?/archives/108-Otwieranie-tunelu-SSH.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/108-Otwieranie-tunelu-SSH.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=108</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=108</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;Jak szybko i prosto otworzyć tunel po SSH? Okazuje się, że do prostych zadań wystarczy... znany wszystkim (chyba) programik PuTTY. Proces otwierania tunelu pokażę na przykładzie przekierowania portu 2401, czyli podpięciu się do serwera cvs. Po co tak? Załóżmy, że mamy w firmie serwer cvs, który nie jest wystawiony publicznie i jest dostępny jedynie w ramach sieci LAN firmy. Jeden warunek: musimy mieć konto shellowe na serwerze, z którym się będziemy tunelować.&lt;/p&gt;&lt;br /&gt;
&lt;p align=&quot;baseline&quot;&gt;Otwieramy PuTTY i wprowadzamy adres serwera i port SSH, po którym zazwyczaj się z nim łączymy, aby dojść do konsoli:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/putty_tunel_01.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;baseline&quot;&gt;Przechodzimy teraz do zakładki &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;Connection -&amp;gt; SSH -&amp;gt; Tunnels&lt;/font&gt;&lt;/b&gt; i definiujemy elementy tunelu.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/putty_tunel_02.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;baseline&quot;&gt;Wybieramy opcję &amp;quot;local&amp;quot; i podajemy w &amp;quot;source port&amp;quot; port, który otworzymy na naszym komputerze, po czym w &amp;quot;destination&amp;quot; adres IP i port docelowy.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://utak3r.pl/varia/putty_tunel_03.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;Klikamy przycisk &amp;quot;Add&amp;quot; i jesteśmy gotowi. Zapisujemy sesję na przyszły użytek (z poziomu zakładki &amp;quot;Sessions&amp;quot;) i łączymy się i logujemy. Od tej pory mamy otwarty tunel na podany port. W podanym tutaj przykładzie, klientowi cvs podajemy, że serwer cvs znajduje się pod adresem 127.0.0.1:2401. Działa! &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;&lt;img width=&quot;24&quot; height=&quot;24&quot; id=&quot;myFxSearchImg&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADsElEQVR4nK2VTW9VVRSGn33OPgWpYLARbKWhQlCHTogoSkjEkQwclEQcNJEwlfgD/AM6NBo1xjhx5LyJ0cYEDHGkJqhtBGKUpm3SFii3vb2956wPB/t+9raEgSs52fuus89613rftdcNH8/c9q9++oe/Vzb5P+3McyNcfm2CcPj9af9w6gwjTwzvethx3Bx3x8xwd1wNM8dMcTNUHTfFLPnX6nVmZpeIYwf3cWD/PhbrvlPkblAzVFurKS6GmmGqqComaS+qmBoTI0Ncu3mXuGvWnrJ+ZSxweDgnkHf8ndVTdbiT3M7cQp2Z31dRTecHAfqydp4ejhwazh6Zezfnu98E1WIQwB3crEuJ2Y45PBTAQUVR9X4At66AppoEVO1Q8sgAOKJJjw6Am6OquDmvHskZ3R87gW+vlHz98zpmiqphkkRVbQtsfPTOC30lJKFbFTgp83bWh7Zx/uX1B6w3hI3NkkZTqEpBRDBRzG2AQHcwcYwEkOGkTERREbLQ/8HxJwuW7zdYrzfZ2iopy4qqEspKaDYravVm33k1R91Q69FA1VBRzFIVvXbx5AgXT44A8MWP81yfu0utIR2aVK3vfCnGrcUNxp8a7gKYKiLCvY2SUvo/aNtnM3e49ucK9S3p0aDdaT0UAVsKi2tVi6IWwNL9JvdqTdihaz79/l+u/rHMxmaJVMLkS2OoKKLWacdeE3IsSxctc2D5Qcl6vUlVVgNt+fkPPcFFmTw1xruvT7SCd7nuVhDQvECzJH90h0azRKoKFRkAmP5lKTWAGRdefoZL554FQNUxB92WvYeA5UN4PtSqwB2phKqsqMpBgAunRhFR3j49zuU3jnX8k6fHEQKXzh1jbmGDuYU6s4t1rt6socUeLLZHhYO2AHSHmzt19ihTZ48O8Hzl/AmunD/BjTvrvPfNX3hWsNpwJCvwYm+ngug4UilSCSq6k8YPtxDwfA+WRawIWFbgscDiULcCEaWqBFOlrLazurupOSHLqGnEKJAY8TwBEHumqUirAjNm52vEPPRV4p01XXMPAQhUBjcWm9QZwijwokgAeYHlHYA06KR1cT6ZvoV56pDUJQEjw0KeaMgj1hPEY4vz2A4eW0/e1qA7KtQdsxTYAG0H3iG4xyK1Y+xm7XmEPOJZDiENzLi2WZHngeOjj2Pe+sMg4GRYyLAsx7ME4FnsyTD9pr0PEc8zPGRAwKXBkYOPEd96cZRvf11g9MDe7e3R4Z4Q+vyEnn3P4t0XzK/W+ODN5/kPfRLewAJVEQ0AAAAASUVORK5CYII%3D&quot; style=&quot;border: medium none ; position: absolute; z-index: 2147483647; opacity: 0.6; display: none;&quot; hidden=&quot;true&quot; /&gt; 
    </content:encoded>

    <pubDate>Wed, 04 Nov 2009 14:41:23 +0100</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/108-guid.html</guid>
    
</item>
<item>
    <title>MSSQL - podpięcie istniejącego pliku *.mdf</title>
    <link>http://utak3r.pl/index.php?/archives/106-MSSQL-podpicie-istniejcego-pliku-.mdf.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/106-MSSQL-podpicie-istniejcego-pliku-.mdf.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=106</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=106</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Jeżeli zdarzy wam się, że ktoś w swojej bezkresnej mądrości i błyskotliwości, na prośbę przysłania wam bazy danych z serwera MS SQL Server, przyśle sam goły plik &lt;i&gt;baza.mdf&lt;/i&gt;, nie popadajmy w panikę ;)  Postaramy się podpiąć taki plik jako nową bazę - choć nie zawsze, niestety, się to uda. W grę wchodzi tutaj kompatybilność plików bazy i zainstalowanego serwera.&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Najpierw odnajdujemy katalog, w którym trzymane są pliki baz docelowej instancji serwera MSSQL (pamiętaj! Może być ich kilka na jednym komputerze!) - zazwyczaj &lt;i&gt;C:\Program Files\Microsoft SQL Server\MSSQL$NAZWA_INSTANCJI\Data&lt;/i&gt;. Następnie dowolnym narzędziem logujemy się na ten serwer i wchodzimy do bazy master (&lt;i&gt;USE master&lt;/i&gt;). Następnie wydajemy polecenie:&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre&gt;EXEC sp_attach_single_file_db &lt;br /&gt;@dbname = &#039;nowa_baza&#039;, &lt;br /&gt;@physname = &#039;c:\Program Files\Microsoft SQL Server\MSSQL$NAZWA_INSTANCJI\Data\przyslany_plik_bazy.mdf&#039;&lt;br /&gt;GO&lt;/pre&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;System poinformuje nas o utworzeniu nowego pliku historii &lt;i&gt;*.LDF&lt;/i&gt;, ewentualnie dokona aktualizacji struktury fizycznej pliku do obowiązującej wersji serwera MSSQL i już możemy cieszyć się z nowo podpiętej bazy danych &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Mon, 07 Sep 2009 11:07:54 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/106-guid.html</guid>
    
</item>
<item>
    <title>Linux: robimy watchdoga</title>
    <link>http://utak3r.pl/index.php?/archives/105-Linux-robimy-watchdoga.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/105-Linux-robimy-watchdoga.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Załóżmy, że mamy na naszym serwerze jakiś bardzo ważny, kluczowy wręcz proces. Jego &amp;quot;kluczowość&amp;quot; sprowadza się do tego, że musi działać, nie dopuszczamy możliwości, że padnie. Jak tego przypilnować?&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Oczywiście, padu nie unikniemy, ale... możemy zadbać o to, żeby po takim padzie natychmiast ponownie wstał. Zrobimy &lt;i&gt;strażnika procesu&lt;/i&gt;, &lt;i&gt;watchdoga&lt;/i&gt;. Zrobimy go w zwykłym bashu...&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/bin/bash&lt;br /&gt;while [ 1 -eq 1 ] ; do&lt;br /&gt;plikcmdline=&amp;quot;&amp;quot;&lt;br /&gt;for file in `find /proc -maxdepth 2 -wholename &amp;quot;/proc/*/cmdline&amp;quot; `&lt;br /&gt;do&lt;br /&gt;        if [[ -a $file ]]&lt;br /&gt;        then&lt;br /&gt;                result=`cat $file`&lt;br /&gt;                if [[ $result = &amp;quot;nazwa_bardzo_waznego_procesu&amp;quot; ]]&lt;br /&gt;                then&lt;br /&gt;                        plikcmdline=$file&lt;br /&gt;                fi&lt;br /&gt;        fi&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;if [[ $plikcmdline = &amp;quot;&amp;quot; ]]&lt;br /&gt;then&lt;br /&gt;        nazwa_bardzo_waznego_procesu&lt;br /&gt;fi&lt;br /&gt;sleep 10s&lt;br /&gt;done&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;W miejscu &amp;quot;nazwa_bardzo_waznego_procesu&amp;quot; podstawiamy nazwę naszego procesu i tyle &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Wed, 26 Aug 2009 21:37:11 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/105-guid.html</guid>
    
</item>
<item>
    <title>HAL PolicyKit a podłączanie pendrive'a</title>
    <link>http://utak3r.pl/index.php?/archives/102-HAL-PolicyKit-a-podczanie-pendrivea.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/102-HAL-PolicyKit-a-podczanie-pendrivea.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=102</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=102</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
Jeżeli w waszym linuksie po włożeniu pendrive&#039;a (lub podłączeniu innego zewnętrznego dysku) ukaże się komunikat błędu, mówiący, że polityka bezpieczeństwa HAL (hardware abstract layer) nie pozwala zwykłym użytkownikom montować dysków zewnętrznych, należy wyedytować plik /etc/PolicyKit/PolicyKit.conf i w ramach sekcji &amp;lt;config&amp;gt; dodać:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&amp;lt;config version=&amp;quot;0.1&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;match action=&amp;quot;org.freedesktop.hal.storage.*&amp;quot;&amp;gt;&lt;br /&gt;
                       &amp;lt;return result=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
               &amp;lt;/match&amp;gt;&lt;br /&gt;
               &amp;lt;match action=&amp;quot;hal-storage-mount-fixed-extra-options&amp;quot;&amp;gt;&lt;br /&gt;
                       &amp;lt;return result=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;lt;/match&amp;gt;&lt;br /&gt;
               &amp;lt;match action=&amp;quot;hal-storage-mount-removable-extra-options&amp;quot;&amp;gt;&lt;br /&gt;
                       &amp;lt;return result=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Po restarcie sesji użytkownika, podłączenie dysku zewnętrznego od tej pory zaowocuje poprawnym zamontowaniem dysku &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Tue, 02 Jun 2009 12:25:27 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/102-guid.html</guid>
    
</item>
<item>
    <title>GCC: statycznie linkowana biblioteka standardowa C++</title>
    <link>http://utak3r.pl/index.php?/archives/101-GCC-statycznie-linkowana-biblioteka-standardowa-C++.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/101-GCC-statycznie-linkowana-biblioteka-standardowa-C++.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=101</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=101</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
Do tej pory wszystkie moje programy dla urządzeń wbudowanych (ang. &lt;i&gt;embedded systems&lt;/i&gt;) pisałem w C - po pierwsze dlatego, że były raczej małe, a po drugie, łatwo jest skonstruować odpowiedni zestaw narzędzi do kros-kompilacji (ang. &lt;i&gt;toolchain&lt;/i&gt;). Tym razem jednak pracuję nad projektem dość mocno rozbudowanym i stwierdziłem, że warto napisać to w C++, którego kod jest znacznie łatwiej zarządzalny (a planuję dość długi jego cykl życia, z kolejnymi wersjami). Zbudowałem więc cały nowy toolchain (innym razem opiszę, jak to samemu zrobić) GCC z przeznaczeniem dla procesora ARM9, działającym z zestawem instrukcji armv4t, z systemem Linux z jądrem 2.6.x, &lt;i&gt;BusyBox&lt;/i&gt; i biblioteką &lt;i&gt;uClibc&lt;/i&gt;. Na marginesie, powiem wam, że bardzo mi się ta platforma spodobała, umożliwia przeprowadzenie naprawdę bardzo ciekawych projektów za rozsądne pieniądze.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
Wszystko byłoby pięknie, gdyby nie to, że okazało się, iż zlinkowanie statyczne biblioteki standardowej C++ (&lt;font face=&quot;courier new,courier,monospace&quot;&gt;libstdc++&lt;/font&gt;) jest zadaniem wcale nietrywialnym… Biblioteka ta w zasadzie w normalnym, codziennym użytkowaniu powinna być linkowana dynamicznie, ale w przypadku dystrybuowania programu na system o całkiem innej specyfikacji, niż maszyna, na której przeprowadza się budowanie aplikacji, najlepszym i najbezpieczniejszym wyjściem jest właśnie linkowanie statyczne. Okazuje się jednak, że używając normalnych metod, to się nie udaje… Wszelkie normalne metody sprowadzały się do dwóch efektów: albo używaliśmy &lt;font face=&quot;courier new,courier,monospace&quot;&gt;g++&lt;/font&gt; i wtedy okazywało się, że tak naprawdę &lt;font face=&quot;courier new,courier,monospace&quot;&gt;libstdc++&lt;/font&gt; było nadal zlinkowane dynamicznie, pomimo usilnych starań, albo używaliśmy &lt;font face=&quot;courier new,courier,monospace&quot;&gt;gcc&lt;/font&gt; i wtedy owszem, biblioteka była poprawnie zlinkowana, ale kod wynikowy na maszynie docelowej powodował jedynie komunikat “&lt;i&gt;Illegal instruction&lt;/i&gt;”. Dziesiątki dziwnych kombinacji opcji i flag dla linkera, zero pozytywnych efektów. Po dwóch dniach walki byłem gotów na przepisanie w połowie gotowego programu w C i zarzucenie idei z C++.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
Aż w końcu… ostatnia próba, po niej miałem zamiar już przepisać kod od nowa w C. Skoro &lt;font face=&quot;courier new,courier,monospace&quot;&gt;gcc&lt;/font&gt; generował niepoprawny kod C++ dla platformy ARM, należało użyć &lt;font face=&quot;courier new,courier,monospace&quot;&gt;g++&lt;/font&gt;, jednak pozostawał problem, jak tego zmusić do statycznego linkowania - wciąż ignorował wszelkie moje próby w tym kierunku.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
Stworzyłem w katalogu ze źródłami symlink do statycznej wersji biblioteki standardowej, prawidłowy plik wskazał mi sam &lt;font face=&quot;courier new,courier,monospace&quot;&gt;gcc&lt;/font&gt;:&lt;/p&gt;&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;pre&gt;ln -s `arm-unknown-linux-uclibcgnueabi-g++ -print-file-name=libstdc++.a`&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;teraz, mając w katalogu źródeł taki symlink, w Makefile dałem:&lt;/p&gt;&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;pre&gt;LDFLAGS = -v -static-libgcc -L.&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;make clean; make; make install (kiedyś też napiszę wam, jaką mam metodę na prostą instalację programu wynikowego na urządzeniu docelowym) - niemożliwe! Działa!! &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; wszystko pięknie i gładko - wymuszenie statycznego linkowania biblioteki pomocniczej &lt;font face=&quot;courier new,courier,monospace&quot;&gt;libgcc&lt;/font&gt; spowodowało wymuszenie statycznego linkowania &lt;font face=&quot;courier new,courier,monospace&quot;&gt;libstdc++&lt;/font&gt;, a że w ścieżce bibliotek (opcja &lt;font face=&quot;courier new,courier,monospace&quot;&gt;-L.&lt;/font&gt;) była tylko statyczna wersja tej biblioteki, nie dołączył dodatkowo wersji dynamicznej, co do tej pory uparcie czynił. Rozwiązanie banalne, ale jakże nieintuicyjne i nieudokumentowane… cóż, życie &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/wink.gif&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; Ważne, że działa.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Życzę wszystkim udanych projektów wbudowanych &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 27 May 2009 16:25:18 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/101-guid.html</guid>
    
</item>
<item>
    <title>Bash i Crontab: codzienna operacja na pliku</title>
    <link>http://utak3r.pl/index.php?/archives/100-Bash-i-Crontab-codzienna-operacja-na-pliku.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/100-Bash-i-Crontab-codzienna-operacja-na-pliku.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=100</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=100</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;Załóżmy, że w crontabie chcemy uruchamiać program, który w wyniku tworzy jakiś plik o nazwie zawierającej m.in. datę (dla urozmaicenia: wczorajszą...). Załóżmy również, że w momencie uruchomienia takiego programu pliku docelowego nie powinno być w katalogu docelowym... Jak złożyć skrypt startowy?&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;PLIK=/home/eksport/SA&amp;quot;`date --date=&#039;1 day ago&#039; +%y%m%d`&amp;quot;.txt&lt;br /&gt;[ -f $PLIK ] &amp;amp;&amp;amp; /bin/rm -f $PLIK&lt;br /&gt;/usr/bin/DataCollector&lt;br /&gt;chown eksport:users /home/eksport/*&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align=&quot;justify&quot;&gt;Powodzenia! &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 22 Apr 2009 16:50:28 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/100-guid.html</guid>
    
</item>
<item>
    <title>Naprawa uszkodzonej bazy danych Firebird</title>
    <link>http://utak3r.pl/index.php?/archives/99-Naprawa-uszkodzonej-bazy-danych-Firebird.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/99-Naprawa-uszkodzonej-bazy-danych-Firebird.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=99</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=99</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div style=&quot;text-align: justify; &quot;&gt;Jeżeli twoja baza danych firebird została uszkodzona i program gfix zwraca błąd typu:&lt;/div&gt;&lt;br /&gt;
&lt;font face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;Summary of validation errors&lt;br /&gt;
&lt;br /&gt;
        Number of record level errors   : 1&lt;br /&gt;
        Number of index page errors     : 2&lt;br /&gt;
        Number of database page errors  : 801&lt;/font&gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify; &quot;&gt;to zamiast wpadać w panikę i stosować jakieś dziwne metody na przepompowanie danych, które kończy się utratą części z nich, wystarczy skorzystać z narzędzi wbudowanych w firebirda.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;Najpierw użyjemy opcji &lt;font class=&quot;Apple-style-span&quot; face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;-mend&lt;/font&gt;, która przygotowuje bazę do wykonania poprawnego backupu.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;gfix -mend -full -ignore -user sysdba -password masterkey baza.fdb&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;i wykonujemy backup bazy przy wyłączonym Garbage Collectorze, który na takiej uszkodzonej bazie najczęściej się wywraca:&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;gbak -b -v -ignore -garbage -user sysdba -password masterkey baza.fdb kopia.fbk&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;uzyskaną kopię ponownie przywracamy:&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;gbak -c -user sysdba -password masterkey kopia.fbk test.fdb&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;i sprawdzamy wynik:&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;gfix -v -full -user sysdba -password masterkey test.fdb&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;Jeśli gfix nie zwróci żadnego błędu (nie powinien), możemy uznać pracę za zakończoną. Opisana metoda jest po pierwsze szybka, a po drugie jest bezbolesna, gdyż najczęściej nie tracimy żadnych danych z bazy.&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;Oczywiście, wszystkie operacje wykonujemy po wyłączeniu programu, restarcie firebirda i skopiowaniu naszej bazy do pliku zapasowego (nie pracujemy na bazie produkcyjnej!)&lt;/p&gt;&lt;br /&gt;
&lt;p style=&quot;text-align: justify; &quot;&gt;Powodzenia!&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 21 Apr 2009 14:52:55 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/99-guid.html</guid>
    
</item>
<item>
    <title>Prowadzenie księgowości przez internet?</title>
    <link>http://utak3r.pl/index.php?/archives/96-Prowadzenie-ksigowoci-przez-internet.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/96-Prowadzenie-ksigowoci-przez-internet.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=96</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=96</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
Producent oprogramowania Media IT posiada w swojej ofercie m.in. pakiet oprogramowania do prowadzenia księgowości w małej firmie - faktury, katalog towarów i usług, rejestr VAT, CRM, zbiorowe faktury, wersja mobilna, obsługa central Slican, ewidencje wyposażenia i środków trwałych, podatki itp. Co w tym dziwnego? Generalnie nic &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/wink.gif&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; ale na uwagę zasługuje fakt, iż z programu korzysta się w formie miesięcznego abonamentu, a dostępne są trzy poziomy: &lt;i&gt;Księgowość Premium&lt;/i&gt;, &lt;i&gt;Faktura Premium&lt;/i&gt; i bonus: &lt;i&gt;Faktura Podstawowy&lt;/i&gt;, który jest programem dostępnym &lt;b&gt;za darmo&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Warto przyjrzeć się tej ofercie (&lt;a href=&quot;http://wfirma.pl/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;klik!&lt;/b&gt;&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 14 Apr 2009 13:21:02 +0200</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/96-guid.html</guid>
    
</item>
<item>
    <title>GCC: podawanie daty jako parametr programu</title>
    <link>http://utak3r.pl/index.php?/archives/91-GCC-podawanie-daty-jako-parametr-programu.html</link>
            <category>Komputerologia stosowana</category>
    
    <comments>http://utak3r.pl/index.php?/archives/91-GCC-podawanie-daty-jako-parametr-programu.html#comments</comments>
    <wfw:comment>http://utak3r.pl/wfwcomment.php?cid=91</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://utak3r.pl/rss.php?version=2.0&amp;type=comments&amp;cid=91</wfw:commentRss>
    

    <author>nospam@example.com (Piotr Borys)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;Pisząc program operujący na datach, przydaje się możliwość podania tej daty jako parametr przekazywany podczas uruchamiania. W pierwszym odruchu zrobimy to tak:&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre&gt;&lt;font face=&quot;courier new,courier,monospace&quot; color=&quot;#003399&quot;&gt;time_t data;&lt;br /&gt;time(&amp;amp;data);&lt;br /&gt;int c;&lt;br /&gt;while ((c = getopt(argc, argv, &amp;quot;d:&amp;quot;)) != -1)&lt;br /&gt;    switch (c)&lt;br /&gt;    {&lt;br /&gt;        case &#039;d&#039;:&lt;br /&gt;            struct tm tmdata;&lt;br /&gt;            strptime(optarg, &amp;quot;%Y-%m-%d&amp;quot;, &amp;amp;tmdata);&lt;br /&gt;            data = mktime(&amp;amp;tmdata);&lt;br /&gt;            break;&lt;br /&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Czyli ustawiamy datę domyślnie jako dzisiejszą, po czym obrabiamy parametry wejściowe i ewentualnie zastępujemy tą przekazaną przez użytkownika. Jednak... po uruchomieniu okazuje się, że ta metoda nie działa! Problemem jest funkcja &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;mktime&lt;/font&gt;&lt;/b&gt;, która zwraca wartość &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;-1&lt;/font&gt;&lt;/b&gt;, zamiast pożądanej daty. Dlaczego? Należy uzupełnić wartości dotyczące godziny, inaczej funkcja nie zadziała poprawnie. Dlatego inicjujemy pola &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;tm_hour&lt;/font&gt;&lt;/b&gt;, &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;tm_min&lt;/font&gt;&lt;/b&gt; i &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;tm_sec&lt;/font&gt;&lt;/b&gt; wartością na przykład &lt;b&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;0&lt;/font&gt;&lt;/b&gt;:&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre&gt;&lt;font face=&quot;courier new,courier,monospace&quot; color=&quot;#003399&quot;&gt;time_t data;&lt;br /&gt;time(&amp;amp;data);&lt;br /&gt;int c;&lt;br /&gt;while ((c = getopt(argc, argv, &amp;quot;d:&amp;quot;)) != -1)&lt;br /&gt;    switch (c)&lt;br /&gt;    {&lt;br /&gt;        case &#039;d&#039;:&lt;br /&gt;            struct tm tmdata;&lt;br /&gt;            strptime(optarg, &amp;quot;%Y-%m-%d&amp;quot;, &amp;amp;tmdata);&lt;br /&gt;            tmdata.tm_hour = 0; tmdata.tm_min = 0; tmdata.tm_sec = 0;&lt;br /&gt;            data = mktime(&amp;amp;tmdata);&lt;br /&gt;            break;&lt;br /&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;i... już wszystko jest w porządku, program działa, jak należy &lt;img src=&quot;http://utak3r.pl/templates/default/img/emoticons/smile.gif&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Miłego kodowania!&lt;/div&gt; 
    </content:encoded>

    <pubDate>Tue, 03 Mar 2009 09:08:02 +0100</pubDate>
    <guid isPermaLink="false">http://utak3r.pl/index.php?/archives/91-guid.html</guid>
    
</item>

</channel>
</rss>