<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Piotr Gabryjeluk po polsku</title>
		<link>http://piotr.gabryjeluk.pl</link>
		<description>Blog, photos and developer notes of Piotr Gabryjeluk, one of Wikidot.com developers.</description>
				<copyright></copyright>
		<lastBuildDate>Fri, 03 Sep 2010 03:33:59 +0000</lastBuildDate>
		
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:nie-wszystko-dobre-co-wiki</guid>
				<title>Nie wszystko dobre co wiki</title>
				<link>http://piotr.gabryjeluk.pl/dev:nie-wszystko-dobre-co-wiki</link>
				<description>

&lt;p&gt;Wikidot jest dobry, Wikipedia jest dobra, wiki z listą aplikacji zgodnych z nowym systemem Apple&#039;a jest dobre (bo oficjalna strona Apple&#039;a jest zła).&lt;/p&gt;
&lt;p&gt;Ale Pizzeria Wiki w Toruniu, pomimo tego, że &quot;Wiki&quot; dobra nie jest.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 14 Aug 2010 16:12:49 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Wikidot jest dobry, Wikipedia jest dobra, wiki z listą aplikacji zgodnych z nowym systemem Apple'a jest dobre (bo oficjalna strona Apple'a jest zła).</p> <p>Ale Pizzeria Wiki w Toruniu, pomimo tego, że "Wiki" dobra nie jest.</p> <div class="content-separator" style="display: none:"></div> <p>Godzina 20:07 — zamawiam pizzę hawajską familijną z sosami czosnkowym i pomidorowym z dowozem do domu. Zapytałem ile będę czekać. Odpowiedź: do czterdziestu minut.<br /> Godzina 21:05 — zorientowawszy się, która godzina i, że umieramy z głodu zastanawiamy czemu jeszcze nie ma pizzy.<br /> Godzina 21:27 — Marta zdesperowana i głodna jak wilk zaczyna robić kanapki z parówką i surówką z Biedronki.<br /> Godzina 21:33 — kanapeczki gotowe, Marta zaczyna rzuć pierwsze kęsy.<br /> Godzina 21:34 — przyjeżdża Pan z pizzą.</p> <p>50 minut spóźnienia skomentowałem krótkim, że już nie potrzebuję tej pizzy, ale po drugim dzwonku musiałem się zmagać z trudnym pytaniem "to po co nam dupę zawracasz jak nie potrzebujesz", na co musiałem odrzec, że "to Wy w chuja ludzi robicie, bo pizza miała być po 40 minutach maksymalnie, a ja już półtorej godziny czekałem"</p> <p>Nie wszystko dobre, co wiki.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:mysz-bluetooth-usb</guid>
				<title>Mysz Bluetooth USB</title>
				<link>http://piotr.gabryjeluk.pl/dev:mysz-bluetooth-usb</link>
				<description>

&lt;p&gt;Grunt to dobre rozeznanie w towarze, który się sprzedaje:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.allegro.pl/item1056342844_mysz_usb_bluetooth_1000_dpi_scroll_na_akumulatorki.html&quot;&gt;Mysz USB Bluetooth 1000 DPI SCROLL na AKUMULATORKI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Thu, 10 Jun 2010 13:13:37 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Grunt to dobre rozeznanie w towarze, który się sprzedaje:</p> <p><a href="http://www.allegro.pl/item1056342844_mysz_usb_bluetooth_1000_dpi_scroll_na_akumulatorki.html">Mysz USB Bluetooth 1000 DPI SCROLL na AKUMULATORKI</a></p> <div class="content-separator" style="display: none:"></div> <p>Oprócz tytułu aukcji nie ma słowa USB. No i nie dziwne, bo ciężko, żeby mysz Bluetooth była USB-owa (no chyba, że ładowana przez USB), stąd moje pytanie:</p> <blockquote> <p>Treść wiadomości:<br /> I co ta mysz na wspólnego z USB?</p> </blockquote> <p>No i odpowiedź:</p> <blockquote> <p>Od: "BE_TECHNOLOGY" &lt;…&gt;<br /> Do: &lt;…&gt;<br /> Temat: Re: Pytanie o przedmiot: Mysz USB Bluetooth 1000 DPI SCROLL na AKUMULATORKI (Numery ofert 1056342844)<br /> Data: Thu, 10 Jun 2010&nbsp;14:35:58 +0200<br /> X-Mailer: Microsoft Outlook Express 6.00.2900.5931</p> <p>to ze jest bezprzewodowa…?? pozdrawiam</p> </blockquote> <p>Pozdrawiam wszystkich bezprzewodowych.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:maj</guid>
				<title>Maj</title>
				<link>http://piotr.gabryjeluk.pl/dev:maj</link>
				<description>

&lt;p&gt;Od lutego nie pisałem nic na blogasku, więc czas przerwać milczenie.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 05 May 2010 18:45:16 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Od lutego nie pisałem nic na blogasku, więc czas przerwać milczenie.</p> <div class="content-separator" style="display: none:"></div> <p>Aktualnie zajmuję się następującymi projektami:</p> <ul> <li>praca magisterska</li> <li>Wikidot</li> <li>kilka pobocznych rzeczy</li> </ul> <h1><span>Praca magisterska</span></h1> <p>Tematem mojej pracy są mobilne przeglądarki internetowe. Celem praktycznym będzie stworzenie używalnej mobilnej przeglądarki internetowej dla Linuksa z serwerem X11. O ile istnieją dobre przeglądarki mobilne na różne inne mobilne platformy (BlackBerry, iPhone, Android), to żadnej dobrze działającej nie udało mi się uruchomić na zwykłym Linuksie.</p> <p>Wyspecyfikujmy wymagania przeglądarki:</p> <ul> <li>obsługa palcem <ul> <li>przewijanie przez przeciąganie po ekranie</li> <li>duże guziki</li> <li>łatwe powiększanie i pomniejszanie</li> </ul> </li> <li>utrzymywanie odpowiedniego poziomu interakcji (czytaj: wyeliminować kilkunastosekundowe zwiechy programu)</li> <li>ma być jak najszybsza (na ile to możliwe) i być zgodna ze standardami W3C (ale możemy poświęcić jakiś mało używany wodotrysk np. z CSS3, jeśli zyskamy sporo na wydajności)</li> </ul> <p>Tworzenie przeglądarki, to trudna rzecz, więc nie będę zaczynał od zera. Wezmę przeglądarkę Arora i dopasuję ją do moich wymagań. Dlaczego Arora:</p> <ul> <li>oparta na silniku WebKit, co daje sporą przewagę wydajności nad choćby Firefoksem</li> <li>w miarę dobrze napisany kod, co sprawia, że się ją łatwo modyfikuje</li> <li>z testów wydajności (które przeprowadzam w swojej pracy) nie jest wprawdzie najszybsza, ale ma bardzo dobre wyniki</li> <li>napisana w Qt, co daje możliwość skompilowania również na Symbiana, QtE, Windows Mobile i być może na Androida.</li> </ul> <h1><span>Wikidot</span></h1> <p>Z racji pracy magisterskiej nie mogę się tak bardzo skupić na Wikidocie jakbym chciał, ale obecnie zajmuję się w wolnych chwilach monitorowaniem Wikidota (wykresiki, alerty mailowe itd), a ostatnio sen z powiek spędzał mi element [[html]], który niedawno wprowadziliśmy (głównie dzięki mnie) a który czasami nieprawidłowo ustawiał swoją wysokość w przeglądarce Firefox. Okazało się to winą Firefoksa, ale udało się to jakoś obejść. W skrócie mówiąc Firefox bardzo agresywnie cache'uje iframe'y (tzn. latające ramki), co sprawia, że nie zawsze wykonuje się zawarty w nich kod JavaScript. Aby temu zapobiec dodałem coś w stylu <tt>'?' + Math.random()</tt> do URL-a ładowanego w ramce. W ten sposób (o ile mamy dobrą funkcję <tt>Math.random</tt> w przeglądarce) za każdym razem generowany jest inny URL, co wymusza ponowne pobranie go z serwera. Skrypt się wykonuje i ramka prawidłowo zmienia swój rozmiar.</p> <h1><span>Inne rzeczy</span></h1> <p>Postanowiłem stworzyć miejsce w sieci, gdzie będę zbierał projekty, które wykonuję (takie portfolio) a także, gdzie będę mógł napisać, co potrafię robić. Powstało ono pod adresem: <a href="http://web9.pl/">web9.pl</a>. Być może kiedyś ten projekt przekształci się w firmę. Póki co, jest to głównie portfolio. Mimo wszystko zapraszam :-).</p> <p>Z racji tworzenia mobilnej przeglądarki internetowej, jestem właścicielem otwartego telefonu OpenMoko Neo FreeRunner (który pracuje pod kontrolą systemu Linux). Jedną z najlepiej na nim działających dystrybucji jest QtMoko, oparte na QtExtended (dawniej Qtopia). Ostatnio testuję nowe testowe wydania tej dystrybucji, głównie pod kątem działania GPRS. Zrobiłem również małego demona, który aplikuje workaround na bug w kernelu i trzyma otwarte urządzenie ALSA-y, a wszystko po to, by umożliwić rozmawianie przez Neo za pomocą zestawu słuchawkowego Bluetooth (niestety rozmawianie bez zestawu jest bardzo trudne, bo mikrofon jest zbyt czuły, a głośnik za cichy).</p> <p>Warto powiedzieć, że dzięki GPRS i GSM oraz fajnej aplikacji o nazwie NeronGPS, można używać Neo jako aplikacji do orientowania się na drogach. Niestety nie ma funkcji nawigacji, więc nie jest absolutnie świetna. Jednak lepiej z mapą i bez nawigacji, niż bez mapy i bez nawigacji.</p> <p>Oprócz napisania pracy magisterskiej muszę powiedzieć, że sporo obowiązków nakładają na mnie studia. Muszę zaliczyć dwa przedmioty do wyboru, z czego na jeden aktualnie chodzę, a co do drugiego, to muszę się umówić na egzamin. Niestety i piąty rok musi czasem coś pozdawać.</p> <p>Tak właśnie upływa mój maj. I szybko się to pewnie nie zmieni ;-)</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:nowa-strona-nowy-temat</guid>
				<title>Nowa Strona -- Nowy Temat</title>
				<link>http://piotr.gabryjeluk.pl/dev:nowa-strona-nowy-temat</link>
				<description>

&lt;p&gt;Stworzyłem dziś nowy temat do Wikidota będący modyfikacją Łukaszowego Orange-Black:&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Thu, 10 Dec 2009 19:09:18 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Stworzyłem dziś nowy temat do Wikidota będący modyfikacją Łukaszowego Orange-Black:</p> <div class="content-separator" style="display: none:"></div> <p style="text-align: center;"><img src="http://thumbnail.s.wdfiles.com/thumbnail/theme/orange-black/240.jpg" alt="240.jpg" class="image" /></p> <p>Oto wynik:</p> <p style="text-align: center;"><img src="http://thumbnail.s.wdfiles.com/thumbnail/theme/orange-black-improved/240.jpg" alt="240.jpg" class="image" /></p> <p>Poza tym co widać, zmiany dotyczą użytego fonta, wyglądu komentarzy i forum, uproszczenia okienka nowego komentarza, ustalenia pozycji tła (żeby przewijanie przewijało samą treść, a nie tło) i dodanie lekkiego prześwitywania tła, żeby było bardziej sexy.</p> <p>Temat jest hostowany pod adresem: <a href="http://themes.wikidot.com/orange-black-improved">http://themes.wikidot.com/orange-black-improved</a>.</p> <p>A wszystko po to, żeby nadać naszej nowej stronce: <a href="http://parapetowa.wikidot.com/">http://parapetowa.wikidot.com/</a> ładnego wyglądu. A na stronce oprócz informacji co można nam kupić z okazji zbliżającej się parapetówy (jeszcze dokładnie nie wiadomo kiedy) uruchomiliśmy też bloga, gdzie pisać będziemy (a przynajmniej ja) o trudzie przystosowania mieszkania do wymagających lokatorów (czyli nas). Link do bloga:</p> <p style="text-align: center;"><a href="http://parapetowa.wikidot.com/blog">http://parapetowa.wikidot.com/blog</a></p> <p>Serdecznie zapraszamy!</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:sobotni-poranek</guid>
				<title>Sobotni Poranek</title>
				<link>http://piotr.gabryjeluk.pl/dev:sobotni-poranek</link>
				<description>

&lt;h1&gt;&lt;span&gt;Co łączy hazard i cenzurę Internetu?&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Przede wszystkim, z rana czytając o ostatnio modnej ustawie anty-hazardowej, zauważyłem, że nie tylko hazard (a i to nie wiem po jaką cholerę) próbuje ona ukrócić. Komentarze pod wpisem na blogu vagla.pl zdają się sugerować, że propozycja ustawy jest niezgodna z Konstytucją, regulacjami Unii Europejskiej i Kartą Praw Człowieka, a wszystko przez to, że nakazuje dostawcom internetu blokować ustalane odgórnie strony internetowe. Centralnym miejscem będzie specjalny Rejestr, do którego będą dopisywane strony o wymienionym w propozycji ustawy charakterze. Dopisywanie ma się odbywać na żądanie kilku organów państwa, a egzekucja tego żądania ma się odbywać natychmiastowo. Dostawcy internetu będą musieli blokować strony z tego rejestru swoim klientom.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 21 Nov 2009 12:20:26 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <h1><span>Co łączy hazard i cenzurę Internetu?</span></h1> <p>Przede wszystkim, z rana czytając o ostatnio modnej ustawie anty-hazardowej, zauważyłem, że nie tylko hazard (a i to nie wiem po jaką cholerę) próbuje ona ukrócić. Komentarze pod wpisem na blogu vagla.pl zdają się sugerować, że propozycja ustawy jest niezgodna z Konstytucją, regulacjami Unii Europejskiej i Kartą Praw Człowieka, a wszystko przez to, że nakazuje dostawcom internetu blokować ustalane odgórnie strony internetowe. Centralnym miejscem będzie specjalny Rejestr, do którego będą dopisywane strony o wymienionym w propozycji ustawy charakterze. Dopisywanie ma się odbywać na żądanie kilku organów państwa, a egzekucja tego żądania ma się odbywać natychmiastowo. Dostawcy internetu będą musieli blokować strony z tego rejestru swoim klientom.</p> <div class="content-separator" style="display: none:"></div> <p>Zapraszam do przeczytania komentarzy (zarówno prawników, "techników" jak i nietechnicznych, ale zdrowo myślących ludzi) pod następującym adresem:</p> <p><a href="http://prawo.vagla.pl/node/8752">http://prawo.vagla.pl/node/8752</a></p> <p>Komentarze przedstawiają wątpliwości natury technicznej (techniki blokowania będą albo nieskuteczne albo bardzo drogie) jak i prawnej. Znajdziemy również sugestię, że ten rejestr stanie się pierwszym źródłem informacji wśród szukających w Internecie pornografii dziecięcej.</p> <p>Pomijając jednak te "drobne" aspekty, sprawę należy postawić zupełnie inaczej. Czy uprawnione jest w ogóle myślenie o tym, żeby blokować dostęp do części internetu ludziom przybywającym na terenie Polski? Czy zamiast dodawać mechanizmy mające niby uchronić Polaków przed naciągaczami i pedofilami, nie powinniśmy poprawić tych mechanizmów, które już istnieją? Moim zdaniem zamiast żądać dodania strony do Rejestru, odpowiedni urząd powinien złożyć doniesienie o popełnieniu przestępstwa i zostawić prokuraturze i sądom szybkie załatwienie tej sprawy (włącznie z żądaniem zdjęcia jej z sieci). Prokuratura i sądy działają za wolno? No właśnie to jest problem, który należy rozwiązać zamiast zajmować się jakimiś głupimi pomysłami blokowania Internetu!</p> <p>Inny komentator podaje również jako problem wymuszenie stosowania takiego rejestru. O ile rejestry SPAM-u, malware'u i innych nieporządnych stron internetowych (wliczając w to zawierające "nielegalną" pornografię, np. dziecięcą) istnieją, ich używanie jest zupełnie dobrowolne. Jeśli dbam o swoje bezpieczeństwo w sieci, mogę takiego filtra użyć, będąc świadomym, że może mi to ograniczyć dostęp do niektórych serwisów (do których mogę się dostać "omijając" filtr na własne życzenie). Propozycja ustawy jest bezlitosna, dostawcy internetu mają blokować pod rygorem kary pieniężnej.</p> <h1><span>Chwila rozrywki</span></h1> <p>Korzystając z chwilowego braku cenzury w Internecie chciałbym podzielić się filmikiem zaczerpniętym ze strony failblog.org, która prezentuje wypadek rowerzysty.</p> <p><strong>UWAGA: TREŚĆ DRASTYCZNA</strong> (chociaż wydaje mi się, że uczestnik wypadku nie odniósł dużych obrażeń)</p> <p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/XxGGyVklPHg&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" /> <param name="allowFullScreen" value="true" /> <param name="allowScriptAccess" value="always" /> <embed src="http://www.youtube.com/v/XxGGyVklPHg&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="425" height="344" /></object></p> <p>I jeszcze jedno, a co!</p> <p><iframe src="http://www.viddler.com/player/bc706765/" width="437" height="288" border="0" frameborder="0"></iframe></p> <p>I jeszcze powiększanie biustu po chińsku (trzeba przyznać, że bardzo pomysłowe, od razu przypomniał mi się Abracada Bra Mossa z IT Crowd):</p> <p><iframe src="http://www.viddler.com/player/a492be30/" width="437" height="351" border="0" frameborder="0"></iframe></p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:0x600df00d</guid>
				<title>0x600DF00D</title>
				<link>http://piotr.gabryjeluk.pl/dev:0x600df00d</link>
				<description>

&lt;p&gt;Ta notka powstaje z dwóch powodów.&lt;/p&gt;
&lt;p&gt;Po pierwsze obiecałem, że napiszę coś na blogasku, jeśli będzie mi się dzisiaj podobać.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 07 Oct 2009 19:44:35 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Ta notka powstaje z dwóch powodów.</p> <p>Po pierwsze obiecałem, że napiszę coś na blogasku, jeśli będzie mi się dzisiaj podobać.</p> <div class="content-separator" style="display: none:"></div> <p>Po drugie, muszę oddać hołd mojemu dziewczęciu — Marcie.</p> <p>Marto, jesteś bardzo dobrze przewidującą osobą. Przewidziałaś dwa wydarzenia w Californication (na dwa strzały — 100% skuteczności).</p> <p>Poza tym, lepiej znasz kolekcję moich płyt niż ja. Tak, mam w niej płytę Rapid Eye Movement naszego kochanego Riverside'u.</p> <p>Cieszę się, że jesteśmy razem.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:informacja-pks</guid>
				<title>Informacja PKS</title>
				<link>http://piotr.gabryjeluk.pl/dev:informacja-pks</link>
				<description>

&lt;p&gt;Zgłoszone poprzez: &lt;a href=&quot;http://www.pks.bydgoszcz.pl/kontakt.php?pom=3&quot;&gt;http://www.pks.bydgoszcz.pl/kontakt.php?pom=3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Thu, 01 Oct 2009 11:55:43 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Zgłoszone poprzez: <a href="http://www.pks.bydgoszcz.pl/kontakt.php?pom=3">http://www.pks.bydgoszcz.pl/kontakt.php?pom=3</a></p> <div class="content-separator" style="display: none:"></div> <blockquote> <p>Szanowni Państwo,</p> <p>chciałbym zgłosić reklamację dotyczącą pracy informacji telefonicznej PKS Bydgoszcz.</p> <p>Dnia 30 września 2009 pomiędzy godziną 23:40 a 23:55 znajdując się na dworcu autobusowym w Bydgoszczy, wykonaliśmy z telefonu komórkowego połączenie do informacji — nr *720-84-00. Zapytanie dotyczyło najwcześniejszego połączenia z dworca w Bydgoszczy do Torunia. Mężczyzna poinformował nas, że najbliższe takie połączenie będzie dopiero po godzinie szóstej dnia następnego, co było nieprawdą. Nabliższe połączenie z owego dworca było bowiem o godzinie 23:55 (wykonywane przez PKS Mława, ze stanowiska nr 12 na dworcu autobusowym w Bydgoszczy), a następne o godzinie 01:40 (do Łodzi przez Toruń, ze stanowiska nr 11 na dworcu autobusowym w Bydgoszczy).</p> <p>Połączenie telefoniczne kosztowało 5 złotych, o którym to koszcie nie było żadnej informacji na naklejce na szybie na wejściu do budynku dworca. Takiej informacji nie ma różnież na stronie internetowej PKS Bydgoszcz pod adresem: <a href="http://www.pks.bydgoszcz.pl/kontakt.php">http://www.pks.bydgoszcz.pl/kontakt.php</a> .</p> <p>Koszty poniesione w wyniku wprowadzenia w błąd, to 5 złotych (czyli koszt telefonu na informację), zszargane nerwy i stanie na chłodzie przez ponad godzinę. Koszty mogły być znacznie większe, gdybyśmy na podstawie przekazanych informacji zdecydowali się nocować w Bydgoszczy lub wynająć inny środek transportu.</p> <p>Aby sprawę zakończyć polubownie, proponuję zwrot kosztów poniesionych na wykonanie połączenia, oraz wyciągnięcie konsekwencji co do osoby, która wprowadziła nas, czym wpłynęła na znaczne pogorszenie postrzegania przez nas Firmy.</p> <p>W sprawie zwrotu poniesionych kosztów (podamy numer konta), proszę skontaktować się na podany w formularzu kontaktowym adres e-mail.</p> <p>Treść zażalenia będzie dostępna również pod adresem: <a href="http://piotr.gabryjeluk.pl/dev:informacja-pks">http://piotr.gabryjeluk.pl/dev:informacja-pks</a> do czasu uzyskania odpowiedzi, która będzie objawem zajęcia się tą sprawą.</p> <p>Z góry dziękuję za pozytywne rozpatrzenie wniosku.</p> </blockquote> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:problemy-z-netia</guid>
				<title>Problemy z Netią</title>
				<link>http://piotr.gabryjeluk.pl/dev:problemy-z-netia</link>
				<description>

&lt;p&gt;Dzisiaj rano ku mojemu zdziwieniu nie mogłem pobrać poczty z mojego serwera. Pomyślałem, że nie działa internet, ale działa. Druga myśl, serwer padł. O nie! Ale serwer działa (sprawdzone z serwera w firmie). Sprawdziłem jeszcze szybko inny serwer w naszej serwerowni i też nie działał. No to jasna sprawa, szybki tracepath i potencjalnie wadliwy router namierzony.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 04 Sep 2009 09:27:57 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Dzisiaj rano ku mojemu zdziwieniu nie mogłem pobrać poczty z mojego serwera. Pomyślałem, że nie działa internet, ale działa. Druga myśl, serwer padł. O nie! Ale serwer działa (sprawdzone z serwera w firmie). Sprawdziłem jeszcze szybko inny serwer w naszej serwerowni i też nie działał. No to jasna sprawa, szybki tracepath i potencjalnie wadliwy router namierzony.</p> <div class="content-separator" style="display: none:"></div> <p>Dzwonię czym prędzej do Netii, aby zgłosić mój problem, ale wpierw muszę zaktualizować swoje dane (które nie zmieniły się od początku trwania umowy). Więc podaję swój numer komórkowy i e-mail i już, już prawie szczęśliwy, że mogę opowiedzieć na czym polega problem zaczynam, aby dowiedzieć się, że:</p> <ul> <li>działa panu internet, a jakaś strona nie, to nie nasz problem</li> <li>pewnie ma pan wirusy (a może bakterie?)</li> <li>rozmawiam z osobą, która WIE co to jest PING, TRACEPATH i ROUTER, ale nie potrafi odpowiedzieć na prośbę:</li> </ul> <blockquote> <p>Czy mógłbym prosić, aby powiedziała mi Pani do jakiego adresu IP rozwiązuje się nazwa hetzner.de</p> </blockquote> <p>(Odpowiedzią na to pytanie było: ale Pan nie ma stałego IP i dlatego Pana nie widzę)</p> <p>Poprosiłem, aby kobieta zapingowała adres, który mi nie działa i niby jej działa. No to może faktycznie problem u mnie jakiś. Zrestartuję swój router i zobaczymy.</p> <p>Poprosiłem w międzyczasie Slafsa, który jeden z serwerów w firmie ma podpięty do internetu przez Netię, ażeby zapingował dla mnie hetzner.de i również nie dostał odpowiedzi, a tracepath zatrzymał się na tym samym hopie.</p> <p>Zadzwoniłem zatem drugi raz na infolinię. Tym razem odebrał mężczyzna. O niebo wolę rozmawiać o takich rzeczach z przedstawicielami tej samej płci. Przedstawiłem mu problem przekazując jak najmniej szczegółów. Zapytał jaki komunikat otrzymuję gdy próbuję otworzyć tę stronę. Powiedziałem, że próbuję zapingować ten serwer (co działa z internetu TPSA) i nie dostaję odpowiedzi, a gdy uruchamiam tracepath, to pakiet zatrzymuje się na konkretnym routerze. Dodałem, że problem dotyczy również innych serwerów w tej serwerowni i usłyszałem klarowne i oczekiwane:</p> <blockquote> <p>Rozumiem</p> </blockquote> <p>To było mocne. Kwintesencja męskiej komunikacji w jednym słowie. Po chwili dodał, że sprawdzi i pochwili wrócił do telefonu i powiedział, że jest problem (!), że wystawi zgłoszenie i sprawdzą, czy jest to problem masowy. Hurra!</p> <p>Będę mógł się podłączyć do jabberpl.org, żeby zalogować się do jabbera (jednego z kilku kont). Będę mógł sprawdzić pocztę nie korzystając z proxy SOCKS. Będę mógł zobaczyć stronę hetzner.de!</p> <p>Może to nieuczciwe, ale uważam, że kobiety nie powinny rozmawiać z klientami takimi jak ja. Następnym razem jak odbierze kobieta odkładam słuchawkę i próbuję natrafić na faceta :).</p> <p>Jeszcze naszła mnie refleksja, że dobrze byłoby widzieć aktualne problemy, które są znane pracownikom Netii i nad którymi pracują. Dobrym przykładem jest tutaj strona toruńskiego dostawcy internetu:</p> <p><a href="http://www.man.torun.pl/index.php?mod=tickets">http://www.man.torun.pl/index.php?mod=tickets</a></p> <p>Gdyby takie zestawienie było dostępne na stronach Netii, mógłbym śledzić na bieżąco rozwój wydarzeń. Scenariusz wydarzeń od rana mógłby wyglądać wtedy tak:</p> <ul> <li>nie działa mi poczta</li> <li>patrzę na stronach Netii, czy jest jakiś błąd</li> <li>nie ma błędu, to sobie patrzę, czy to mój problem</li> <li>nie jest to mój problem, więc dzwonię do Netii i zgłaszam</li> <li>w Netii aktualizują tę stronę jeśli uznają, że to faktycznie jest ich problem</li> <li>widzę, że to zrobili, czyli pracują nad tym (przynajmniej tak sobie myślę)</li> <li>za jakiś czas jest aktualizacja, że wymienili router gdzieś tam i, że będzie działać za godzinę</li> <li>za godzinę działa, problem na stronie przechodzi do archiwum</li> </ul> <p>Tutaj pojawia się wniosek taki sam jak z naszego ostatniego zepsucia się Wikidota:</p> <ul> <li>Ludzie nie są bardzo wkurzeni, że coś od czasu do czasu nie działa. Awarie się zdarzają</li> <li>Ludzie są wkurzeni, jak nie wiedzą dlaczego coś nie działa</li> <li>Ludzie są wkurzeni, gdy wiedzą, że jest awaria, a nikt nie chce im tego przyznać</li> </ul> <p>Jak poradziliśmy sobie z tym w przypadku Wikidota? Gdy usługa nie działała, uruchomiliśmy statyczną stronę HTML z opisem awarii (dość szczegółowym) i postępów w jej usuwaniu. Po awarii napisaliśmy co zrobimy, gdy zdarzy się coś podobnego w przyszłości. Ludzie szczęśliwi, bo wiedzą, że potrafimy rozwiązywać poważne problemy, więdzą, że nawet jak będzie awaria, to ich dane są bezpieczne, więdzą, że Wikidot nie zniknie ot tak pewnego dnia. Trochę są smutni, że dzisiaj Wikidot nie działa, ale się cieszą, że będzie działał jutro.</p> <p>I jeszcze mała ciekawostka:</p> <p><a href="http://www.wykop.pl/link/231750/sensacja-ipv6-powstaje-w-polsce-rotfl">IPv6 został opracowany w Bydgoszczy</a></p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:dwa-typy</guid>
				<title>Dwa Typy</title>
				<link>http://piotr.gabryjeluk.pl/dev:dwa-typy</link>
				<description>

&lt;p&gt;Wielcy myśliciele potrzebują lat, żeby coś wymyślić. A ja dzisiaj ni z tego, ni z owego, przy zmywaniu naczyń po ostatniej imprezie wymyśliłem aż dwie rzeczy:&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 19 Aug 2009 19:27:35 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Wielcy myśliciele potrzebują lat, żeby coś wymyślić. A ja dzisiaj ni z tego, ni z owego, przy zmywaniu naczyń po ostatniej imprezie wymyśliłem aż dwie rzeczy:</p> <div class="content-separator" style="display: none:"></div> <blockquote> <p>Ludzie są albo niemili, albo nieszczerzy.</p> </blockquote> <p>Oraz:</p> <blockquote> <p>Jedynacy nie czują potrzeby posiadania kont użytkowników na komputerze.</p> </blockquote> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:black-clouds-silver-linings</guid>
				<title>Black Clouds &amp; Silver Linings</title>
				<link>http://piotr.gabryjeluk.pl/dev:black-clouds-silver-linings</link>
				<description>

&lt;p&gt;Dostałem ten krążek niespodziewanie. Chciałem trochę się przygotować na ten moment, ale to było zaskoczenie i miły gest ze strony najbliższej osoby. &quot;Żebyś miał co słuchać w czasie podróży&quot;.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 04 Jul 2009 14:38:53 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Dostałem ten krążek niespodziewanie. Chciałem trochę się przygotować na ten moment, ale to było zaskoczenie i miły gest ze strony najbliższej osoby. "Żebyś miał co słuchać w czasie podróży".</p> <div class="content-separator" style="display: none:"></div> <p>Zgrałem sobie piosenki na komputer i na oggówkę<sup class="footnoteref"><a id="footnoteref-59038-1" href="javascript:;" class="footnoteref" >1</a></sup> i zacząłem słuchać na dzień przed podróżą w łóżku przed snem.</p> <p>Dobre ciężkie riffy, melodyczne fragmenty i nagle, błeee, co to? Jakiś okropny wokal, bez emocji i wyrazu, za chwilę dźwięk klasycznej gitary. Totalne dno. Masakra.</p> <p>Powracam do krążka w czasie podróży. Nie mogę wytrzymać, zmieniam utwory. W końcu słucham innego albumu.</p> <p>W pracy słucham tej muzyki w tle. Wychwytuję ciekawe fragmenty. 5 minut, 10 minut i znowu jakieś dno.</p> <p>Jeśli chodzi o krążek, jego poziom jest równy — każda piosenka jest równie beznadziejna. Jeśli chodzi o piosenki: praktycznie każda jest nierówna. Zaczyna się fajnie, mięsiście, męsko, mocno, metalowo, z wyrazem i potem ni stąd ni zowąd pojawia się jakiś popowy szajs.</p> <p>Żal mi tych dobrych fragmentów porozsiewanych po sześciu piosenkach, bo wciąż Dream Theater to dobry zespół i te powiedzmy 20 minut mogłoby się złożyć na jedną dobrą piosenkę, dla której warto byłoby kupić album (podobnie jak utwór A Change of Seasons sprawia, że warto kupić album A Change of Seasons). A w związku z tym fatalnym przemieszaniem "good shit" with "just shit" ta płyta nie jest warta zakupu.</p> <p>Dream Theater: duży minus dla Was. Mam nadzieję, że na koncercie nie będziecie próbować promować tej płyty, bo to nie ma żadnego sensu.</p> <p>PS: duży minus również dla sekcji wokalnej. Nie odnalazłem na całym albumie ani minuty ciekawego, żywego i ekspresyjnego wokalu, jakiego pełna jest każda inna płyta zespołu.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> <div class="footnotes-footer"> <div class="title">Footnotes</div> <div class="footnote-footer" id="footnote-59038-1"><a href="javascript:;" >1</a>. przenośny odtwarzacz plików Ogg/Vorbis (tak jak empetrójka to przenośny otwarzacz plików MP3)</div> </div> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:to-i-owo</guid>
				<title>To i owo</title>
				<link>http://piotr.gabryjeluk.pl/dev:to-i-owo</link>
				<description>

&lt;p&gt;Tracę już powoli pomysły na sensowne tytuły notek, ale pisać coś trzeba. Zatem dzisiaj krótkie podsumowanie ostatnich kilku dni.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 29 Apr 2009 20:34:10 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Tracę już powoli pomysły na sensowne tytuły notek, ale pisać coś trzeba. Zatem dzisiaj krótkie podsumowanie ostatnich kilku dni.</p> <div class="content-separator" style="display: none:"></div> <h1><span>CUDA</span></h1> <p>Zaczynając od początku czyli od wczoraj: rano działy się niezłe CUDA. Konkretnie, chodzi o technologię firmy nVidia stosowaną w kartach graficznych, która nazywa się CUDA. Ogólny zamysł polega na wykorzystaniu jednostki GPU (procesor karty graficznej) do wykonywania napisanych w języku podobnym do C (i odpowiednio skompilowanych).</p> <p>Procesory GPU różnią się znacznie od naszych CPU (centralnych procesorów). W procesorze CPU mamy zwykle 1, 2 lub 4 rdzenie. W procesorach graficznych kart nVidii mamy dziesiątki, czy nawet setki multiprocesorów (bliski procesorowi wielordzeniowemu).</p> <p>Ogólnie, możemy uruchomić około 1000 i więcej "wątków" na jednej karcie graficznej. Daje to spore możliwości wykorzystania takiej architektury w obliczeniach równoległych. Przedtem taka architektura była tylko wykorzystywana przez zamknięte sterowniki karty graficznej w celu renderowania skomplikowanej grafiki 3D w czasie rzeczywistym (i nie tylko). Teraz moc obliczeniowa stoi przed zdolnymi programistami i czeka na wykorzystanie.</p> <p>Oprócz niewątpliwej zalety jaką jest wysoka współbieżność, mamy również garść bardzo szybkiej pamięci do dyspozycji (tak szybka jak rejestry procesora). Po krótkiej analizie jednak okazało się, że konieczność współdzielenia jej przez wiele wątków redukuje nam średnią ilość tej szybkiej pamięci do kilku bajtów na wątek. Należy więc jednak trochę z tym uważać.</p> <p>Odwołania do pamięci RAM karty graficznej są wolne, jednak procesor potrafi w czasie "czekania" na dane z RAM-u wykonywać inny wątek. Jest to również stosowane w zwykłych procesorach. Znane jest pod pojęciem wywłaszczenia procesu (np., gdy proces oczekuje na operację I/O na wolnym dysku na jego miejsce "wskakuje" inny proces). Jednak w odróżnieniu od zwykłego procesora, gdzie wywłaszczenie inicjuje system operacyjny, a samo przełączenie kontekstu jest dość kosztowne, w CUDA-ch wywłaszczenie jest częścią logiki realizowanej sprzętowo i jest bardzo bardzo szybkie. Zatem odpowiednio oprogramowując używanie pamięci globalnej, możemy uzyskać wykonywanie programu (złożonego z wielu — np. 256 — wątków) bez przerw w wykorzystywaniu mocy obliczeniowej GPU.</p> <p>Oprócz zalet mamy oczywiście też wady. Jedną z nich (choć można to uznać za zaletę) jest brak mechanizmów cache'owania i stronicowania, co powoduje konieczność bardzo skrupulatnego zarządzania pamięcią.</p> <p>Np. na moim laptopie nie udało się uruchomić prawie żadnej przykładowej aplikacji dołączonej do SDK CUDA-ów. Powód: za mało pamięci. Pamięci karty graficznej oczywiście. W przypadku tradycyjnego procesora pamięć zwykle nie stanowi problemu, ponieważ tak naprawdę nigdy nią nie zarządzamy. Jako podstawę mamy pamięć RAM. Gdy komórka pamięci jest często używana trafia (automatycznie) do keszu, który jest dużo szybszy. Z drugiej strony, jeśli pamięci brakuje, następuje przeniesienie nieużywanej pamięci do swapa, czyli na dysk, który z kolei jest bardzo wolny w porównaniu do pamięci RAM.</p> <p>Efekt jest taki, że programując nie przejmujemy się gdzie będzie przechowywana zmienna. Na start trafia ona do RAM-u, ale może zostać skopiowana do szybkiego kesza, lub przeniesiona na wolny dysk. W CUDA-ch musimy sami zdecydować gdzie będą przechowywane poszczególne zmienne. Problem, który się pojawia, to nieznana ilość dostępnej pamięci. Każda karta ma inną dostępną pamięć każdego rodzaju, co więcej uruchomienie aplikacji graficznych (np. Compiz) zmniejsza ilość dostępnej pamięci.</p> <p>Są zatem dwa wyjścia — albo programujemy na konkretną kartę grafiki i wymagamy, aby tylko nasz program był na niej uruchomiony (a nie np. jeszcze Quake ;) ), albo inwestujemy w jakiś system zarządzania pamięcią karty graficznej (czyli robimy kawałek systemu operacyjnego, tyle, że na GPU). Oczywiście druga rzecz jest trudna i zmniejsza wydajność całego systemu.</p> <p>W praktyce pozostaje jeszcze jedno rozwiązanie. Zakupienie karty nVidia SPECJALNIE do obliczeń w technologii CUDA. Firma nVidia nie pozostawia nas w trudnej sytuacji i daje nam do dyspozycji kartę Tesla, która ma ze 4&nbsp;GB RAM-u, dużo wszystkiego (wątków, multiprocesorów itd), za to w zasadzie ciężko ją nazwać graficzną, bo nie ma wyjścia wideo. Przewrotnie, co?</p> <h1><span>Android</span></h1> <p>Następny dzień, następna prezentacja. Dzisiaj dotyczyła ona systemu Android opierającego się na jądrze Linux przystosowanego dla telefonów komórkowych (takich jak HTC G1) i innych małych urządzeń. System, pomimo jądra Linuksa jest czymś zupełnie innym niż znane nam z desktopów Ubuntu, a nawet projekty uruchamiania Linuksa na telefonach (np. OpenMoko). Różnica polega na tym, że warstwa narzędzi GNU (shell, podstawowe programy, zarządzanie użytkownikami) zostaje zastąpiona przez warstwę bibliotek w C i w Javie.</p> <p>Należy sobie jednak zdać sprawę z tego, że Java w Androidzie, to rzecz nieco inna niż Java używana na PC-tach, czy nawet w komórkach. Androidowa Java ma swoją implementację maszyny wirtualnej. Jest to DalvikVM, zoptymalizowany na maszyny o małej ilości RAM-u (64MB dla całego systemu) i wolnych procesorach (200-500&nbsp;MHz i ARM). Z tej optymalizacji bierze się inny bytecode, który optymalizuje użycie CPU i RAM. Również w celu zwiększenia wydajności pracy z pakietami zmianie ulega sposób wewnętrznej organizacji pakietu.</p> <p>Jednak wciąż pozostaje to Java i to dość niedaleko leżąca od tej Sunowej. W praktyce bowiem programowanie wygląda tak:</p> <ul> <li>programujemy w Javie (jednak mamy do dyspozycji mniej funkcji bibliotecznych)</li> <li>kompilujemy programy do bytecodu Sunowego (pliki class)</li> <li>tworzymy paczkę JAR</li> <li>korzystając z narzędzia dx konwertujemy plik JAR do pliku JAR, który zawiera bytecode przystosowany do maszyny DalvikVM. Otrzymany JAR jest zwykle ponad 2 razy mniejszy!</li> </ul> <p>Poza zmianą formatu bytecode'u, czeka nas również zmiana w działaniu wszystkich istotnych części systemu. Odpowiednie klasy dostarczone w bibliotece Androida pozwalają nam na tworzenie "okien", zadań działających w tle, komunikowanie się z innymi procesami, dostęp do danych zapewnianych przez inne programy (np. książkę adresową), ustawień telefonu i sprzętu. Wszystko to jest opakowane przez zarządcę uprawnień, który przyznaje danej aplikacji prawa do różnych części systemu po uprzednim uzgodnieniu tego z użytkownikiem telefonu ;). W praktyce, wygląda to tak:</p> <ul> <li>twórca aplikacji definiuje w "opisie" aplikacji (plik AndroidManifest.xml) jakich uprawnień potrzebuje aplikacja (np. uprawnienie do wybierania numeru, uprawnienie do czytania z GPS-u, uprawnienie do uruchamiania aplikacji)</li> <li>użytkownik instalując aplikację przyznaje jej uprawnienia, o które aplikacja prosi. W przeciwnym razie instalacja nie dokonuje się</li> <li>aplikacja może robić cokolwiek zostało jej dozwolone, każde użycie niedozwolonej funkcji kończy się wyjątkiem</li> </ul> <p>Dostęp do ograniczanych zasobów odbywa się przez specjalne Androidowe API. Dostęp w inny sposób nie jest możliwy, ponieważ każda aplikacja jest uruchamiana z innym numerem użytkownika i w zupełnym odizolowaniu (pewnie coś podobnego do chroota) od innych aplikacji.</p> <p>Dostępna jest również komunikacja między aplikacjami. Ogólnie mówiąc jest to koncepcja podobna do D-BUS, jednak implementacja jest nieco inna.</p> <p>Inną ciekawą funkcją aplikacji pracujących w systemie Android jest ich gotowość do bycia zabitym w każdym momencie. Z racji ograniczenia ilości pamięci dostępnej dla systemu i mimo wszystko (pomimo sporego postępu względem Javy Suna) wysokiego zużycia pamięci przez aplikacje Javove, system zawiera mechanizm zabijania procesów w przypadku, gdy zaczyna brakować zasobów (CPU lub RAM).</p> <p>Każda aplikacja jednak może się przygotować na taką sytuację, ponieważ w momencie przykrycia aplikacji przez inną (kiedy to możliwe jest jej zabicie) wywołana jest metoda onStop (lub onPause w przypadku częściowego zakrycia), która umożliwia zrzut stanu aplikacji do systemowej bazy danych. Gdy użytkownik wraca do aplikacji (pomimo, że została w tle zabita, użytkownik wcale tego nie widzi), system ponownie uruchamia aplikację przywracając jej poprzedni stan. To jak aplikacja chce reprezentować swój stan zależy od samej aplikacji.</p> <p>Problemem maszyny Dalvik, podobnie jak i maszyny wirtualnej Javy Suna, to długi czas uruchamiania się (mniej niż sekunda na Twoim Pentium4? Aparat G1 jest ~10 razy wolniejszy). DalvikVM na telefonie HTC G1 uruchamia się około 5 sekund. Jest to problem tym bardziej, że każda aplikacja uruchamiana jest w swojej własnej instancji tej maszyny (w celach zapewnienia wymaganej izolacji).</p> <p>Tutaj do akcji wkracza specjalna usługa systemowa zygote, która jak tylko może przygotowuje proces maszyny wirtualnej Dalvik, który, gdy jest potrzeba zostaje oddany jakiemuś procesowi do natychmiastowego wykorzystania. Przez następne 5 sekund zygote znowu przygotowuje (kolejną) maszynę Dalvik i czeka aż jakiś proces o nią poprosi. Widać, że o ile nie uruchamiamy aplikacji częściej niż co pięć sekund, otrzymujemy złudzenie natychmiastowego uruchamiania aplikacji. Niezły trik.</p> <p>Widać, że inżynierzy pracujący nad systemem Android stawali na głowie, żeby wszystko było naprawdę dopracowane. Nie inaczej jest z dopieszczeniem programistów. Każdy, kto chce napisać swoją aplikację dla systemu Android może sobie ściągnąć Android-SDK, które zawiera emulator (oparty o QEmu) i narzędzia potrzebne do budowania (dx, apkbuild), i debugowania aplikacji.</p> <p>Dostępna jest również wtyczka do Eclipse'a o nazwie ADT (Android Developer Toolkit). Pozwala ona stworzyć aplikację dla Androida jednym kliknięciem, zbudować ją drugim, a uruchomić na wcześniej uruchomionym emulatorze trzecim :). Widziałem to w akcji i wygląda to naprawdę bardzo przyjemnie.</p> <p>Minusem Androida są trudności jakie niesie przeportowanie istniejących nie-androidowych aplikacji:</p> <ul> <li>aplikacje w C trzeba dolinkować do Google'owego bionic — lekka wersja biblioteki standardowej C — coś w stylu uclibc</li> <li>aplikacje w Javie mogą nie działać, bo używają rzeczy niezaimplementowanych w bibliotece Javy Dalvika</li> <li>GUI Androida jest zupełnie inne od każdego innego (oparte o pliki XML - zatem może trochę podobne do XUL-a). Zatem GUI w przypadku każdej aplikacji trzeba przepisać</li> </ul> <p>Naturalnym pytaniem, które się rodzi w czasie rozważań nad Androidem jest jego przyszłość. Choćby w porównaniu z iPhonem, którego w pierwszym miesiącu sprzedaży sprzedało się więcej niż wszystkich telefonów z Androidem na pokładzie. Zatem, co może przeważyć szalę zwycięstwa na stronę Androida? iPhone to jeden telefon (no konkretnie to dwa modele) i jeden software (no konkretnie to chyba trzy wersje). Android to otwarta platforma, która będzie stosowana nie tylko w telefonach firmowanych przez Google (póki co HTC G1 i G2), ale również przez inne telefony, takie jak FreeRunner (port i to całkiem dobrze działąjący na to urządzenie już dawno dostępny).</p> <p>Czołowi producenci tacy jak Samsung, czy Motorola planują wprowadzić do swojej oferty po 2-3 modele z Androidem. Do tego dochodzą netbooki, samochody (ktoś już portuje Androida na samochód), również odtwarzacze MP3, a być może i komputery stacjonarne. Możliwość uruchomienia aplikacji Androidowej na komputerze pracującym pod kontrolą Linuksa byłaby bardzo miła (zwłaszcza, że nie ma żadnych technicznych przeszkód). No i najważniejsze, ogromny wkład w rozwój Androida na platformach innych niż wspierane komercyjnie ma rosnąca społeczność deweloperów i testerów.</p> <p>Wiwat społeczność!</p> <h1><span>Podsumowanie</span></h1> <p>Ostatnie dwa dni w moim życiu pozwoliły na poszerzenie mojej wiedzy na temat technologii, które mogą w ciągu najbliższych 2 lat odmienić życie ludzi na naszej planecie. Oczywiście może się tak nie stać, ale samo poznawanie rzeczy, o których można powiedzieć "dobrze przemyślane, dopracowane, świeże, potrzebne i pomysłowe" przyprawia mnie o dreszczyk emocji.</p> <p>Muszę powiedzieć, że choć początkowo byłem sceptyczny wobec Androida, myślę teraz, że ma spore szanse za szybki rozwój i wielki (również komercyjny) sukces. Jak pamiętamy na samym spodzie architektury, zaraz nad sprzętem znajduje się jądro Linuksa. Niektóre jego modyfikacje dokonane na potrzeby telefonu trafiły do głównej (lub testowej) gałęzi kernela, co świadczy o dobrej jakości tych zmian.</p> <p>Pokazuje również, że praca nad tym systemem powoduje również szereg innych pożytecznych (choć pobocznych) zjawisk, co jest oczywiście bardzo budujące (i zupełnie nie występuje w przypadku zamkniętego oprogramowania).</p> <h1><span>Stop Cenzurze</span></h1> <p>Cały entuzjazm i moją ogólną radość mącą plany UE dotyczące ograniczenia dostępu do Internetu przez zmianę rozporządzeń europejskich, które są lobbowane przez duże firmy telekomunikacyjne, które prawdopodobnie mogą zwiększyć w ten sposób swoje zyski ze świadczenia usług internetowych i wykończyć małych providerów. Już raz Unia Europejska pokazała, że w sprawie informatycznej niezależności, potrafi się zachować w sposób rozsądny odrzucając propozycję wprowadzenia patentów na oprogramowanie. Miejmy nadzieję, że i tym razem nie zostanie ograniczona konkurencja w tym sektorze i kontrowersyjne rozwiązanie zostanie wyśmiane i zapomniane.</p> <p>O szczegółach można przeczytać na specjalnej stronie poświęconej temu zagadnieniu: <a href="http://stopcenzurze.wikidot.com/">http://stopcenzurze.wikidot.com/</a> . Można tam również okazać swoje poparcie dla akcji przez wirtualne podpisanie petycji.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:finally-free</guid>
				<title>Finally Free</title>
				<link>http://piotr.gabryjeluk.pl/dev:finally-free</link>
				<description>

&lt;p&gt;Grałem dzisiaj trochę w Frets On Fire. Najpierw mierząc się z piosenką Root Of All Evil Dream Theater, następne Finally Free. W tej drugiej w końcu osiągnąłem mój &lt;a href=&quot;http://piotr.gabryjeluk.pl/dev:frets-on-fire-personal-record&quot;&gt;zamierzony dawno cel&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Mon, 20 Apr 2009 22:03:25 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Grałem dzisiaj trochę w Frets On Fire. Najpierw mierząc się z piosenką Root Of All Evil Dream Theater, następne Finally Free. W tej drugiej w końcu osiągnąłem mój <a href="http://piotr.gabryjeluk.pl/dev:frets-on-fire-personal-record">zamierzony dawno cel</a>:</p> <div class="content-separator" style="display: none:"></div> <ul> <li>200 dźwięków pod rząd dobrze zagranych</li> <li>&gt; 200.000 punktów</li> <li>5 gwiazdek dokładności (&gt; 95%)</li> </ul> <p>Najtrudniej było zawsze z tym pierwszym punktem (chociaż zdarzyło mi się go kilka razy zrealizować osobno). Dzisiaj w końcu udało się! Załączam zdjęcie na dowód:</p> <p style="text-align: center;"><a href="http://www.flickr.com/photos/16520924@N07/3460117869/"><img src="http://farm4.static.flickr.com/3516/3460117869_9e9d8d234e.jpg" alt="flickr:3460117869" class="image" /></a></p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:prezentacja-o-x11</guid>
				<title>Prezentacja o X11</title>
				<link>http://piotr.gabryjeluk.pl/dev:prezentacja-o-x11</link>
				<description>

&lt;p&gt;Dzisiaj wygłosiłem w ramach Seminarium Informatycznego u mnie na wydziale referat o X11. Prezentacja, która była tłem mojej wypowiedzi zamieściłem w serwisie SlideShare. Zapraszam do obejrzenia!&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Thu, 26 Mar 2009 18:37:58 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Dzisiaj wygłosiłem w ramach Seminarium Informatycznego u mnie na wydziale referat o X11. Prezentacja, która była tłem mojej wypowiedzi zamieściłem w serwisie SlideShare. Zapraszam do obejrzenia!</p> <div class="content-separator" style="display: none:"></div> <p style="text-align: center;"><iframe src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=x11-090326130844-phpapp01&amp;stripped_title=prezentacja-o-x11" border="0" frameborder="0" style="border: 0; width: 425px; height: 355px"></iframe></p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:koncert-opetha-w-warszawie</guid>
				<title>Koncert Opetha W Warszawie</title>
				<link>http://piotr.gabryjeluk.pl/dev:koncert-opetha-w-warszawie</link>
				<description>

&lt;p&gt;21 marca 2009 byłem z moją narzeczoną na koncercie skandynawskiej progresywno-ciężko-metalowej formacji Opeth. Opiszę tutaj moje wrażenia z koncertu.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 24 Mar 2009 15:01:43 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>21 marca 2009 byłem z moją narzeczoną na koncercie skandynawskiej progresywno-ciężko-metalowej formacji Opeth. Opiszę tutaj moje wrażenia z koncertu.</p> <div class="content-separator" style="display: none:"></div> <p><strong>Opeth</strong> — zespół popisywał się ciekawymi solówkami, choć nie zawsze zgodnymi z wersjami "oryginalnymi". Wokal — zarówno czysty jak i growl — w porządku. Frontman rozmawiał z publicznością, cieszył się, że jesteśmy świetną publicznością (śpiewaliśmy Sto Lat, Happy Birthday i skandowaliśmy "Opeth, Opeth").</p> <p>Te wszystkie sprawy niestety nie są w stanie zatuszować niemiłego wrażenia po tym jak zespół skończył. Granie <strong>poniżej 2 godzin</strong> chyba nie należy do miłego tonu, prawda?</p> <p><strong>Miejsce</strong> — warszawski klub studencki Stodoła. To chyba nie najlepszy wybór dla tego koncertu. Chętnych do posłuchania było sporo — o wiele więcej niż miejsca. Wynikiem była niesłychana ciasnota, która nie sprzyja miłym wrażeniom wizualnym, czy zapachowym. Dość powiedzieć, że niektórzy przysłuchiwali się koncertowi spoza głównej sali.</p> <p><strong>Oprawa świetlna</strong> — dające po oczach stroboskopy nie należą do moich ulubionych "przypraw" koncertów. Poza kilkoma światełkami w różnych kolorach nic ciekawego się nie działo.</p> <p><strong>Dźwięk</strong> — podejrzewam, że jak na klub studencki, jakość odbioru dźwięku była całkiem niezła. Można jednak było oczekiwać dużo więcej.</p> <p><strong>Cena</strong> — wszystkie mankamenty, które wymieniłem były całkowicie do zaakceptowania, w przypadku zwykłego lokalnego koncertu takiej czy innej grupy muzycznej związanego z wykorzystywaniem dostępnych zasobów (takich jak sala, sprzęt) bez szukania szczególnych warunków.</p> <p>Jednak przy cenie <strong>125 złotych</strong> za osobę, spodziewać by się można większego przyłożenia organizatorów. Za pomysł sprzedawania większej ilości biletów niż dostępnych miejsc mam serdeczną ochotę <strong>nakopać do dupy tym, którzy są za to odpowiedzialni</strong>.</p> <p>Podsumowując zatem, uważam pieniądze wydane na koncert za stracone.</p> <p>Ile mógłbym zatem wydać na koncert takiego pokroju? 25, 40 złotych, noo, 50 złotych powiedzmy, może 55. Przy czym przy tej ostatniej cenie bym się bardzo mocno zastanawiał.</p> <p>Całe szczęście, że poza koncertem, wyjazd do Warszawy obejmował również spotkanie Narliego, wizytę w parku Wilanowskim, a również w centrum handlowym. Tam widzieliśmy superaśną sukienkę.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:ewolucja-przegladarek</guid>
				<title>Ewolucja przeglądarek, czyli o tabach</title>
				<link>http://piotr.gabryjeluk.pl/dev:ewolucja-przegladarek</link>
				<description>

&lt;p&gt;Nie będzie dzisiaj o żadnych standardach, wsparciach dla CSS-ów i innych bzdurach, tylko o rzeczy najważniejszej dla użytkownika. Czyli o interfejsie użytkownika. Konkretnie o kartach (tabach). W reszcie posta będę używać słowa tab.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 14 Mar 2009 10:30:57 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Nie będzie dzisiaj o żadnych standardach, wsparciach dla CSS-ów i innych bzdurach, tylko o rzeczy najważniejszej dla użytkownika. Czyli o interfejsie użytkownika. Konkretnie o kartach (tabach). W reszcie posta będę używać słowa tab.</p> <div class="content-separator" style="display: none:"></div> <h1><span>Historia</span></h1> <p>Kiedyś nie było kart. Przeglądarki miały swoje okno, w którym wyświetlały jedną stronę. Jeśli chciałeś otworzyć dwie strony, musiałeś otworzyć dwie przeglądarki. (Nie będę się zagłębiał w różnice pomiędzy dwoma <strong>oknami</strong> przeglądarki, a dwoma przeglądarkami.)</p> <p>Miało to swoje plusy. Można było otworzyć sobie dwie strony "side by side", czyli jedna obok drugiej i np. porównywać dwa teksty.</p> <p>Potem, pewnego magicznego dnia, pojawiła się przeglądarka, która otwierała strony w tabach! Zaraz pod wszystkimi paskami narzędziowymi, a nad wyrenderowaną treścią strony pojawił się (czasami znikający) <strong>pasek tabów</strong>. Niczym klon paska okienek z systemu okienkowego, pokazywał otworzone w przeglądarce strony, pomiędzy którymi można się przełączać.</p> <p>Technologia wnosi takie ciekawe i ważne opcje jak:</p> <ul> <li>otwieranie linków w nowym tabie zamiast w nowym oknie</li> <li>otwieranie nowych tabów w tle — niech się załadują, zanim skończę czytać aktualną stronę — bardzo sprytne i przydatne</li> <li>minimalizuje chaos na pasku zadań — po co osobny kwadracik dla każdej otworzonej strony</li> </ul> <h1><span>Teraźniejszość</span></h1> <p>Każda ważna przeglądarka posiada taby. Nawet Internet Explorer w wersji 7 ma taby. Ale ewolucja tabów idzie krok naprzód. Przeglądarki Chrome i Safari 4 posiadają taby na samej górze okna:</p> <p style="text-align: center;"><img src="http://piotr.gabryjeluk.pl/local--files/dev:ewolucja-przegladarek/google-chrome-tabs.png" alt="google-chrome-tabs.png" class="image" /></p> <div style="text-align: right;"> <p><a href="http://www.phoboslab.org/files/images/google-chrome-tabs.png">źródło obrazka</a></p> </div> <p>Czy powinno to kogoś dziwić? Według mnie nie, ponieważ taby zmieniają nie tylko wyświetlaną stronę, ale również adres wyświetlany w pasku adresu (URL) oraz znaczenie przycisków wstecz i dalej (bo cofamy się tylko w danym tabie). Oznacza to, że taby przełączają nam kontekst prawie całej przeglądarki.</p> <h1><span>Przyszłość</span></h1> <p>Skoro taby przełączają kontekst całej przeglądarki, to co byśmy powiedzieli na wyodrębnienie tabów do osobnych okien?</p> <p>Ups! Przecież od tego wyszliśmy i myśleliśmy, że taby to krok naprzód, więc dlaczego mielibyśmy się cofać?</p> <p>Taby odegrały ważną (jeśli nie bardzo ważną) rolę w systemach operacyjnych. Dziś znajdujemy je nie tylko w przeglądarkach, ale również w edytorach tekstu (GEdit, Kate), narzędziach developerskich (Eclipse), terminalach (Konsole, Gnome Terminal) oraz w innych programach.</p> <p>Czy rola tabów w różnych aplikacjach jest inna? Według mnie nie. Zawsze chodzi o to, żeby (podobnie jak w przeglądarkach):</p> <ul> <li>grupować podobne zadania</li> <li>oszczędzić chaosu na pasku aplikacji</li> <li>pozwolić na szybkie przełączanie pomiędzy tabami (w odróżnieniu od przełączania między aplikacjami)</li> <li>pozwolić na otwieranie czegoś w tle (bez otwierania wkurzających okienek)</li> </ul> <p>Tylko dlaczego w każdej z wymienionych przeze mnie aplikacji taby realizowane są inaczej? Firefox ma taby nad stroną, Chrome zupełnie na górze, Safari jako fragment paska tytułowego aplikacji, Konsole na dole strony, Kate jako listę plików po lewej stronie…</p> <p>Proponuję, aby istotnie przenieść ideę taba na poziom zarządzania okienkami, a nie poszczególnych aplikacji.</p> <p>Moje postulaty dla menedżerów okien:</p> <ul> <li>wyróżnienie aplikacji (czyli to, co teraz jest oknem) i jej okien (czyli to co teraz jest tabem)</li> <li>mechanizm otwierania nowego okna w tle</li> <li>możliwość prostego przełączania się między oknami jednej aplikacji w odróżnieniu od przełączania się między aplikacjami</li> </ul> <p>W tym miejscu przychodzi mi do głowy jeszcze jedna funkcjonalność tabów, która bywa różnie implementowana w różnych aplikacjach: możliwość odrywania tabów do osobnych okien i późniejszego ich łączenia.</p> <p>W Firefoksie jeśli dobrze się rozeznałem takiej możliwości nie ma, w Konsole możemy odrywać taby, ale nie możemy ich z powrotem łączyć, czyli nie ma pełnego mechanizmu przenoszenia tabów pomiędzy oknami danego typu.</p> <p>Zamiast kazać się wysilać twórcom aplikacji, zróbmy to raz a dobrze! Dodajmy do listy postulatów dla menedżerów okien następujący punkt:</p> <ul> <li>swobodne przenoszenie okien pomiędzy aplikacjami tego samego typu</li> </ul> <h1><span>Implementacja</span></h1> <p>Z ciekawością obserwowałem możliwość grupowania okien i późniejszego przełączania się między nimi na zasadzie tabów w <a href="http://en.wikipedia.org/wiki/Compiz" >Compizie</a>.</p> <p style="text-align: center;"><object width="320" height="265"><param name="movie" value="http://www.youtube.com/v/1nK4_cH5sbM&amp;hl=pl&amp;fs=1" /> <param name="allowFullScreen" value="true" /> <param name="allowscriptaccess" value="always" /> <embed src="http://www.youtube.com/v/1nK4_cH5sbM&amp;hl=pl&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265" /></object></p> <p>Brakuje natomiast jednej bardzo istotnej rzeczy, która pozwala <strong>zastąpić</strong> poszczególne mechanizmy tabów w aplikacjach jednym mechanizmem z Compiza wyjętym.</p> <p>Otworzenie nowego okna przez okno z danej grupy okien powinno powodować automatyczne przejęcie tego okna przez tę grupę. Musimy sami "doklejać" nowo-otwarte okna do grupy. I to jest główny ból tego rozwiązania. Ciekaw jestem jak z punktu widzenia protokołów i bibliotek można zaimplementować moje postulaty oraz jak daleko posunięte zmiany musiałyby nastąpić, żeby to dało się zrealizować.</p> <h1><span>Czy warto?</span></h1> <p>No i pozostaje pytanie, czy warto. Zacznę od wad:</p> <ul> <li>prawdopodobnie potrzeba przebudowy (lub rozbudowy) kilku elementów systemu okienkowego (takich jak menedżery okien i API do nich)</li> <li>konieczność aktualizacji aplikacji, żeby korzystały z natywnych tabów, zamiast ze swoich implementacji</li> <li>być może utrata pewnych możliwości (takich jak "podczepienie" swojego menu do zakładek) przez aplikacje</li> </ul> <p>Zalety:</p> <ul> <li>zunifikowanie tabów w całym systemie (!)</li> <li>możliwość przebudowy mechanizmu "grupowania podobnych zadań" na pasku zadań — teraz wiemy dokładnie jakie zadania są powiązane — być może będzie ktoś odważny, kto wprowadzi dwupoziomowy pasek aplikacji</li> <li>znaczne uproszczenie kodu aplikacji</li> <li>łatwiejsze pisanie nowych aplikacji (mechanizm tabów mamy od razu za darmo, nie musimy się tym przejmować, ani zastanawiać się czy będzie kiedyś potrzebny)</li> <li>możliwość połączenia zmiany okien danej aplikacji z pewnym efektem graficznym</li> <li>możliwość prezentowania wszystkich okien danej aplikacji naraz tak jak to robi Safari dla tabów (tylko, że u nas to będzie za friko i dla każdej aplikacji):</li> </ul> <p style="text-align: center;"><img src="http://piotr.gabryjeluk.pl/local--files/dev:ewolucja-przegladarek/safari4.png" alt="safari4.png" class="image" /></p> <div style="text-align: right;"> <p><a href="http://afinedram.files.wordpress.com/2009/02/safari4.png?w=300&amp;h=271">źródło obrazka</a></p> </div> <p>Czekam na Wasze opinie!</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:o-zend-framework</guid>
				<title>O Zend Framework</title>
				<link>http://piotr.gabryjeluk.pl/dev:o-zend-framework</link>
				<description>

&lt;p&gt;Pewien czas temu, mówiłem ciepłe słowa o Zend Framework. Okazuje się, że nie jest tak różowo jak się wydaje. A wyrażeniem kluczowym jest tutaj:&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 11 Mar 2009 19:34:06 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Pewien czas temu, mówiłem ciepłe słowa o Zend Framework. Okazuje się, że nie jest tak różowo jak się wydaje. A wyrażeniem kluczowym jest tutaj:</p> <div class="content-separator" style="display: none:"></div> <div style="text-align: center;"> <p><span style="font-size:large;"><strong>64 bit</strong></span></p> </div> <p>Na 64 bitowym systemie, z Zend Framework jest wiele problemów. Wymienię ich kilka:</p> <h1><span>Zend_Search_Lucene</span></h1> <p>Już taki prosty kod, uruchamiany na 64-bitowym systemie powoduje nieskończone pętle i przekraczanie limitu pamięci:</p> <div class="code"> <div class="hl-main"> <pre> <span class="hl-inlinetags">&lt;?php</span><span class="hl-code"> </span><span class="hl-reserved">require_once</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">Zend/Search/Lucene.php</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$index</span><span class="hl-code"> = </span><span class="hl-identifier">Zend_Search_Lucene</span><span class="hl-code">::</span><span class="hl-identifier">open</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">/path/to/index</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span> </pre></div> </div> <p>Oczywiście pierwsze co robimy, żeby korzystać z indeksu, to go otwieramy, więc ten moduł (Zend_Search_Lucene) staje się zupełnie niezdatny do użytku.</p> <p>Co ciekawe, <a href="http://framework.zend.com/issues/browse/ZF-4071">problem jest zgłoszony</a> na bug-trackerze ZF. Doszedłem co trzeba zrobić, żeby rozwiązać problem, wrzuciłem na bug-trackera gotowego (mniej lub bardziej) diffa, ale nikt się nie przejął ani błędem, ani rozwiązaniem.</p> <h1><span>Zend_Db</span></h1> <p>Jednym z ważniejszych elementów zawartych w Zend Framework, jest warstwa dostępu do bazy danych. Niestety na 64 bitowym systemie, framework ma jakieś problemy z ograniczaniem wyników przy użyciu metody limit. Nakazanie wyświetlenia rekordów począwszy od rekordu 0, wygenerowało mi zapytanie, które kończyło się na:</p> <div class="code"> <div class="hl-main"> <pre> <span class="hl-reserved">LIMIT</span><span class="hl-code"> </span><span class="hl-number">98382101</span><span class="hl-code">, </span><span class="hl-number">20</span><span class="hl-code">;</span> </pre></div> </div> <p>Powinno być:</p> <div class="code"> <div class="hl-main"> <pre> <span class="hl-reserved">LIMIT</span><span class="hl-code"> </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">20</span><span class="hl-code">;</span> </pre></div> </div> <p>Głupia sprawa. Może to poprawili w nowszej wersji, może nie. Nie zgłębiałem tego.</p> <h1><span>Zend_XmlRpc_Server</span></h1> <p>Ostatnio pracując nad <a href="http://piotr.gabryjeluk.pl/dev:wikidot-api">Wikidot API</a> natrafiłem na paskudny i ukryty błąd w komponencie serwera XML-RPC Zend Framework.</p> <p>Wszystko niby działa, ale wołanie przez klienta XML-RPC funkcji <tt>system.methodHelp</tt>, czy <tt>system.methodSignature</tt> kończy się błędem niedopasowania rządanej metody to sygnatur znanych metod. Na 32 bitach wszystko działa.</p> <h1><span>Podsumowanie</span></h1> <p>Zend Framework może się wydawać fajny (mi się wydawał), ale uważajcie mocno przy przenoszeniu kodu z 32 bitów (np. na laptopie) na 64 bity (np. na serwer). Jest SPORO bugów w tym naprawdę dokuczliwe, związane z Zend_Db.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:wikidot-jako-hosting-dla-stron</guid>
				<title>Wikidot Jako Hosting Dla Stron</title>
				<link>http://piotr.gabryjeluk.pl/dev:wikidot-jako-hosting-dla-stron</link>
				<description>

&lt;p&gt;Wikidot stał się przez ostatnie kilka miesięcy idealnym środowiskiem do tworzenia i utrzymywania małych, średnich i dużych witryn internetowych takich jak:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;blogi&lt;/li&gt;
&lt;li&gt;wizytówki firm&lt;/li&gt;
&lt;li&gt;prezentacje wyrobów i produktów&lt;/li&gt;
&lt;li&gt;bazy wiedzy (najbardziej naturalne dotąd zastosowanie technologii wiki)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 27 Feb 2009 21:09:55 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Wikidot stał się przez ostatnie kilka miesięcy idealnym środowiskiem do tworzenia i utrzymywania małych, średnich i dużych witryn internetowych takich jak:</p> <ul> <li>blogi</li> <li>wizytówki firm</li> <li>prezentacje wyrobów i produktów</li> <li>bazy wiedzy (najbardziej naturalne dotąd zastosowanie technologii wiki)</li> </ul> <div class="content-separator" style="display: none:"></div> <h1><span>Od szczegółu do ogółu</span></h1> <p>Korzystając z Wikidota skupiamy się na tworzeniu pojedynczych treści, takich jak:</p> <ul> <li>aktualność</li> <li>wpis na blogu</li> <li>opis produktu</li> </ul> <p>Każda taka treść otrzymuje swój adres (URL) i możemy do niej przypisać takie właściwości jak:</p> <ul> <li>kategoria</li> <li>etykiety (tagi)</li> <li>dodatkowe pliki (np. zdjęcia)</li> </ul> <p>Strony wyświetlające podsumowanie generują się automatycznie dzięki użyciu modułu ListPages. Przykłady użycia modułu:</p> <ul> <li>wyświetlenie ostatnich 3 aktualności</li> <li>wyświetlenie wpisów z bloga z ostatnich 30 dni</li> <li>wyświetlenie stron z kategorii blog z etykietą osobiste</li> </ul> <h1><span>Kategorie</span></h1> <p>Kategorie grupują strony. Każda kategoria może mieć następujące własności:</p> <ul> <li>własny temat graficzny</li> <li>własny szablon (np. wyświetlający datę i autora wpisu nad treścią strony a pod nią moduł komentarzy i oceniania)</li> <li>własne uprawnienia (np. możliwość dodawania plików przez niezalogowanych użytkowników plików do stron)</li> <li>własne elementy nawigacyjne (menu górne i boczne)</li> </ul> <h1><span>Galerie zdjęć</span></h1> <p>Wystarczy dodać pliki graficzne do strony a w jej treści wpisać <tt>[[gallery]]</tt>, aby stworzyć estetyczny pokaz zdjęć.</p> <h1><span>Automatyczna mapa witryny</span></h1> <p>Wikidot pozwala ustalić dla każdej strony jej stronę nadrzędną. Sprawia to, że łatwo jest wyświetlić drzewo stron obrazujące ich hierarchię np.</p> <ul> <li>Strona główna <ul> <li>O firmie</li> <li>Aktualności</li> <li>Nagrody i historia firmy</li> </ul> </li> <li>Produkty <ul> <li>Rośliny doniczkowe <ul> <li>Paprocie</li> <li>Kaktusy</li> </ul> </li> <li>Sadzonki <ul> <li>Zioła</li> <li>Krzewy owocowe</li> </ul> </li> </ul> </li> <li>Kontakt <ul> <li>Biuro w Szczecinie</li> <li>Oddział w Gdańsku</li> </ul> </li> </ul> <p>Umożliwia to łatwą nawigację nie tylko użytkownikom ale i wyszukiwarkom internetowym, dzięki którym łatwo będzie można odnaleźć witrynę w Internecie.</p> <h1><span>Standardy sieciowe i nowoczesne technologie</span></h1> <p>Wikidot generuje bardzo dobry kod XHTML oraz kanały RSS dla wszystkich istotnych treści prezentowanych na stronie co zapewnia idealny kanał komunikacji z zewnętrznymi serwisami, które mogą wyświetlać aktualności z witryny w innym serwisie.</p> <h1><span>Zaawansowane statystyki</span></h1> <p>Dla użytkowników konta Pro+ dostępne są statystyki witryny, które działając w oparciu o program <a href="http://awstats.sourceforce.net/">awstats</a> pokazują ilość odwiedzin o danej porze czy w danych dniach tygodnia. Dostajemy również listę najczęściej odwiedzanych w ramach witryny adresów, używanych przeglądarek internetowych i wykres szacowanego czasu spędzonego w witrynie.</p> <p>Można uzyskać jeszcze bardziej szczegółowe statystyki podłączając usługę <a href="http://www.google.com/analytics/">Google Analytics</a> w panelu administracyjnym strony.</p> <h1><span>Własna domena i stopka</span></h1> <p>W pewnych zastosowaniach przydatna może być opcja ustawienia własnej stopki (i usunięcie odwołań do Wikidota) oraz domeny, która nie kończy się na wikidot.com.</p> <h1><span>Wygląd</span></h1> <p>To co dla niektórych jest najważniejsze, to nadanie odpowiedniego wyglądu stronie, ponieważ w przeglądaniu stron internetowych wzrok jest najczęściej wykorzystywanym zmysłem.</p> <p>Wygląd stron na Wikidocie można w ogromnej mierze dostosować dzięki użyciu arkuszy CSS, które są standardowym sposobem opisywania wyglądu treści w sieci Web (więc potrafi je przygotować każdy grafik internetowy).</p> <p>Co więcej wygląd może się zmieniać z kategorii na kategorię, co pozwala na tematycznie wyróżnienie pewnych sekcji w obrębie całej witryny.</p> <h1><span>Przykłady</span></h1> <p>Przykładowe strony umiesczone w Wikidot.com:</p> <ul> <li><a href="http://imatix.com/">strona belgijskiej firmy iMatix</a></li> <li><a href="http://fretsonfire.wikidot.com/">wiki gry Frets On Fire</a></li> <li><a href="http://chaber.art.pl/">prezentacja biżuterii</a></li> <li><a href="http://piotr.gabryjeluk.pl/">mój blog</a></li> </ul> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:najprawdziwsza-prawda-o-prawdziwych-informatykach</guid>
				<title>Najprawdziwsza Prawda O Prawdziwych Informatykach</title>
				<link>http://piotr.gabryjeluk.pl/dev:najprawdziwsza-prawda-o-prawdziwych-informatykach</link>
				<description>

&lt;p&gt;Pewien czas temu, na JoeMonsterze pojawiła się lista 25-ciu powodów dla których warto się umówić z informatykiem:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.joemonster.org/art/10916/25_powodow_dla_ktorych_warto_umowic_sie_z_informatykiem&quot;&gt;http://www.joemonster.org/art/10916/25_powodow_dla_ktorych_warto_umowic_sie_z_informatykiem&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Polecam kliknięcie, bo tekst uważam za ciekawy, żartobliwy i w pewnym sensie intrygujący. O czym za moment.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 20 Feb 2009 17:51:40 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Pewien czas temu, na JoeMonsterze pojawiła się lista 25-ciu powodów dla których warto się umówić z informatykiem:</p> <p><a href="http://www.joemonster.org/art/10916/25_powodow_dla_ktorych_warto_umowic_sie_z_informatykiem">http://www.joemonster.org/art/10916/25_powodow_dla_ktorych_warto_umowic_sie_z_informatykiem</a></p> <p>Polecam kliknięcie, bo tekst uważam za ciekawy, żartobliwy i w pewnym sensie intrygujący. O czym za moment.</p> <div class="content-separator" style="display: none:"></div> <p>Następnie w Internecie pojawiła się odpowiedź na ten tekst, z perspektywy żony informatyka:</p> <p><a href="http://od-rana-do-wieczora.blog.pl/archiwum/index.php?nid=14039422">http://od-rana-do-wieczora.blog.pl/archiwum/index.php?nid=14039422</a></p> <p>Znowu dość ciekawe, bo z ogólnych wniosków dotyczących tak naprawdę całego zastępu ludzi, którzy z pewnych powodów zdecydowali się na używanie komputera do celów zarobkowych, wyłania się konkretny przykład konkretnego informatyka i jego konkretnej żony, która decyduje się odpowiedzieć na każdy z 25 powodów i poddać go weryfikacji.</p> <p>Kilka ciekawych punktów:</p> <blockquote> <p><strong>5. Informatyk Cię nie zdradzi (a przynajmniej nie inaczej niż wirtualnie. Poza tym - czy widziałaś kiedyś rozchwytywanego przez kobiety informatyka???)</strong></p> <p>Informatykowi kochanka jest potrzebna tylko w jednym celu: żeby myślała, że on jest u żony, wtedy żona myśli, że jest u kochanki, a on myk, myk, do pracy i siedzi sobie w kątku i klik-klik-klik w błoooooogim spokoju.</p> <hr /> <p>Natomiast ubieranie Informatyka jest bardzo proste: wystarczy raz na rok kupić mu 10 nowych czarnych podkoszulków, a te kupione poprzednio wynieść do śmietnika.</p> <p><strong>14. Informatyk będzie wdzięczny za to że się z Tobą umawia (informatyk nie ma wielu okazji do randek, każdą przyjmuje więc z wdzięcznością i atencją)</strong></p> <hr /> <p>Pod warunkiem, że dasz mu dobrze zjeść albo zaproponujesz seks. Jak się informatyk odrywa od kompa, to musi być warto, jasne?</p> </blockquote> <p>Była również mowa o "zajebistym" programie do oglądania filmów, słuchania muzyki i innych multimediów: MythTV i jego dotyczył jeden ze świetnych komentarzy:</p> <blockquote> <p>Ana: wszyscy wiedza, ze myth tv to bagno…</p> </blockquote> <p>Poniekąd zgadzam się, a z opisu:</p> <blockquote> <p>Owszem, na przykład media center, czyli myth tv pod Linuksem. Wypas, odlot, ekstaza. Tyle że po każdym apdejcie systemu tudzież po każdej kompilacji jądra działać przestaje i słyszę “muszę tam tylko jedną rzecz poprawić”. I poprawia. Godziniami. Dniami. Tygodniami.</p> </blockquote> <p>wnioskuję, że mąż jest użytkownikiem Gentoo :]. Choć mogę się mylić. Niektórzy lubią sobie przekompilować jajko również na innych systemach.</p> <p>Autorka <strong>wpisu</strong> nie omieszkała się pochwalić również zdolnościami łóżkowymi swojego informatyka:</p> <blockquote> <p><strong>12. Informatyk gwarantuje dobry seks (ma go tak rzadko, że w zastępstwie przeczytał w Internecie wszystkie porady na ten temat i jest prawdziwym ekspertem. Poza tym, po długiej przerwie będzie naprawdę zaangażowany)</strong></p> <p>TAK. Do tego punktu nie mogę się przyczepić :)</p> </blockquote> <p>Generalnie oceniam samą listę jako ciekawe zestawienie, a odpowiedzi żony za swoistą ripostę, choć również dość zabawną i ciekawą. Można powiedzieć, że jest to pewnego rodzaju dialog, zwłaszcza, że odpowiedź na listę doczekała się również odpowiedzi, czy komentarza:</p> <p><a href="http://navsw.blogspot.com/2009/02/dot-pracy-informatyk.html">http://navsw.blogspot.com/2009/02/dot-pracy-informatyk.html</a></p> <p>Z tym panem niestety ciężko mi się zgodzić, gdyż zdaje się, że nie do końca rozumie kontekst obu wpisów. W zasadzie przedstawiłem już jak ja oba odbieram, ale podsumuję jeszcze:</p> <p>Wpierw mamy listę pewnych zdań (powodów), które mówią o zaletach informatyków w relacjach międzypłciowych. Co do słuszności tej listy, należy podejść dość ogólnikowo.</p> <p>Jasne jest, że informatycy są <strong>różni</strong>, ale pewne cechy są dla sporej ich części wspólne. Są one potrzebne, żeby np. przejść przez studia informatyczne, czy dostać pracę jako informatyk, bądź po prostu czuć się dobrze w tematach komputerowo-informatycznych.</p> <p>Jedną z głównych cech, którą należy wymienić jest szybkie przyswajanie pewnej wiedzy o rzeczach, które mają dobrą strukturę, czy systematykę. Wszyscy informatycy, których znam nie mieli w szkole problemów z gramatyką (języka polskiego i obcych, matematyką czy fizyką). Nie chcę mówić, że <strong>każdy</strong> informatyk <strong>musi</strong> posiadać tę cechę, ale wśród informatyków taka cecha jest częsta.</p> <p>Nie będzie zatem przełomowym stwierdzenie, że zawód informatyka ma pewien "idealny profil" osób, które do niego pasują. Nawet jeśli nikt nie potrafi dokładnie go opisać, to takie coś istnieje. Podobnie dla każdego innego zawodu. Tutaj oczywiście idealne profile będą trochę się różnić pomiędzy administratorem, programistą, pracownikiem supportu i innymi wariantami informatyków, ale wciąż oscylujemy wśród podobnych osobowości i charakterów.</p> <p>Z tego co napisałem, wynika, że można przybliżyć każdego informatyka przez pewien idealny profil (który z kolei jest zbliżony do stereotypu) i w ten sposób wysnuć ogólne twierdzenia w stylu:</p> <blockquote> <p>Informatyk nie rzuci Cię jak przytyjesz (informatyk nie dba o status społeczny i wizerunek - inaczej spaliłby kraciaste koszule)</p> </blockquote> <p>Tak naprawdę stwierdzeń jest tu kilku i każde nawiązuje do stereotypu:</p> <ul> <li>informatyk nie dba o status społeczny</li> <li>informatyk nie dba o wizerunek [… i nosi…] kraciaste koszule</li> <li>informatyk [… nie dba również o Twój wizerunek, więc…] nie rzuci Cię jak przytyjesz</li> </ul> <p>Mowa oczywiście o stereotypowym informatyku, ale stereotyp skądś się bierze. A stereotyp jest bliski do "idealnego typu" informatyka, który z kolei w pewnym stopniu przybliża każdego informatyka.</p> <p>Nie widzę więc sensu w tym, żeby się obrażać na kogoś, kto takie teksty pisze. Ja jestem informatykiem i pomimo, że nie noszę kraciastych koszul, nie staram się na każdym kroku tego podkreślać, bo w zasadzie czuję się jakbym je nosił (rozumiem skąd się bierze ten stereotyp). Dla mnie główną wartością noszonych przeze mnie rzeczy jest to, czy są ciepłe, czyste i czy na mnie pasują. A nie czy są modne.</p> <p>Owszem, Interesują mnie wartości estetyczne, ale nie jest to bardzo esencjonalne. Zauważając podobną tendencję u kolegów, wnioskuję, że z jakiegoś powodu, wszyscy myślimy podobnie i jest to w jakimś stopniu potrzebne do tego, żeby być dobrym informatykiem.</p> <p>Ślepy strzał: informatyk musi szybko znajdować problem i go rozwiązywać, musi więc przypisywać cele do rzeczy i określać "skale" dobrości danego typu rzeczy. Mówiąc bardziej dosadnie "nie przejmować się pierdołami". Dla jednych będzie to widoczne jako: "jest dobry w tym czym się zajmuje", dla innych: "nie przywiązuje wagi do *" (za * wstaw cokolwiek, czym się nie zajmuje, np. ubiór).</p> <p>Kolejny raz podkreślę, dla tych, którzy nie zrozumieli wywodu, że <strong>nie jest</strong> wśród informatyków regułą, że nie potrafią (czy raczej nie chcą) się ładnie ubierać. Jest to jednak cecha występująca <strong>częściej</strong>, niż u innych grup społecznych.</p> <p>Podoba mi się zestawienie przedstawione na JoeMonsterze, ponieważ w zasadzie stawia informatyków w dobrym świetle. Podoba mi się również zderzenie tego zestawienia z praktyką. Pierwszy tekst ma charakter ogólny, drugi szczegółowy. Natomiast trzecia wypowiedź jest według mnie totalnym nieporozumieniem.</p> <p>Z jednej strony autor nie rozumie ogólnikowego (i żartobliwego) charakteru tekstu z JoeMonstera:</p> <blockquote> <p><strong>6. Informatyk zniesie Twoje najgorsze fochy (czy osoba która godzinami patrzy na mrówki cyferek przemykające przez ekran, bądź obsługuje klientów Neostrady, nie może nie mieć anielskiej cierpliwości i być super ZEN? )</strong></p> <p>Tutaj bardziej nawiąże to punktu niż do twojej odpowiedzi. Stroisz fochy? Nie widzę sensu utrudniania sobie życia, z tobą się żegnam. Cierpliwość nie jest zależna od zawodu tylko od człowieka. Zenek, który wywozi śmieci co wtorek i wdycha ten smród musi być cierpliwym człowiekiem, pani, która sprzedaje raty 60 letnim babcią też jest cierpliwa, ekspedientka w mcdonaldzie ta dopiero musi być szczęśliwa. Kurwa cały świat to informatycy nie licząc wrestlingu.</p> </blockquote> <p>Przecież oczywiste jest, że nie każdy informatyk jest cierpliwy, ale jest to cecha sprzyjająca temu zawodowi przynajmniej według autora zestawienia (z przyczyn podanych w nawiasie).</p> <p>Z drugiej stony autor tego wpisu nie rozumie, że odpowiedź żony informatyka ma charakter szczegółowy, czyli traktujący wyłącznie o jej mężu w świetle artykułu ogólnikowego:</p> <blockquote> <p><strong>7. Informatyk będzie nosił Cię na rękach (w końcu jak Cię straci jak szybko trafi mu się następna dziewczyna?)</strong></p> <p>Na rękach mój Informatyk nosi dwoje dzieci naprzemiennie z laptopem, żeby go odłożyć w miejsce niedostępne dla dzieci.</p> <p>Od 3 lat pracuje jako informatyk, nigdy nie miałem laptopa mimo że chcieli mi wcisnąć w pracy. Ten twój mąż to nie pracownik informatyczny tylko maniak komputerowy a to dwie różne rzeczy bo sam znam kilku takich maniaków a na co dzień pracują na stacji benzynowej.</p> </blockquote> <p>Czy ta Pani napisała "każdy informatyk nosi…"? Nie, napisała: <strong>mój informatyk</strong>… I wcale się nie upiera, że to co napisała odnosi się do każdego informatyka.</p> <p>Podsumowując, wygląda na to, że autor <a href="http://navsw.blogspot.com/2009/02/dot-pracy-informatyk.html">tego wpisu</a> (który nawet się nie podpisał i nie umożliwił komentowania wpisu):</p> <ul> <li>nie rozumie treści artykułów</li> <li>nie jest stereotypowym informatykiem <ul> <li>wg jego samego: na szczęście, bo stereotyp jest zły</li> <li>wg mnie: na jego nieszczęście, bo akurat powody, dla których stereotypowy informatyk jest atrakcyjny dla kobiet uważam za sensowne</li> </ul> </li> </ul> <p>Zapraszam do wypowiadania się na ten temat i tym samym kontynuowanie tej dyskusji.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:co-tam-u-pana-panie-piotrze</guid>
				<title>Co Tam U Pana, Panie Piotrze</title>
				<link>http://piotr.gabryjeluk.pl/dev:co-tam-u-pana-panie-piotrze</link>
				<description>

&lt;p&gt;Za jakieś 38 godzin mam najgorszy egzamin w tej sesji: podstawy przetwarzania sygnałów. To oczywiście czas, żeby robić wszystko inne, tylko nie uczyć się. No może poza sprzątaniem.&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 10 Feb 2009 18:16:41 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Za jakieś 38 godzin mam najgorszy egzamin w tej sesji: podstawy przetwarzania sygnałów. To oczywiście czas, żeby robić wszystko inne, tylko nie uczyć się. No może poza sprzątaniem.</p> <div class="content-separator" style="display: none:"></div> <p><strong>UPDATE:</strong> Ten filmik jest świetny: <a href="http://www.zdnet.com.au/insight/software/soa/Is-it-Windows-7-or-KDE-4-/0,139023769,339294810,00.htm">http://www.zdnet.com.au/insight/software/soa/Is-it-Windows-7-or-KDE-4-/0,139023769,339294810,00.htm</a></p> <p>Odnośnie egzaminu z podstaw przetwarzania sygnałów. Przejrzałem stare egzaminy, wyszło, że muszę się nauczyć rzeczu dość niewielu, czyli:</p> <ul> <li>dyskretnej transformaty Fouriera</li> <li>kilku twierdzeń dotyczątych ciągłej transformaty Fouriera</li> <li>kilku twierdzeń dotyczątych odwrotnej transformaty Fouriera</li> <li>działań na transformatach (odwracanie, skalowanie, przesuwanie)</li> </ul> <p>Nie wydaje się, żeby to było jakoś bardzo dużo. Na szczęście, koledzy donoszą, że jednak nie będzie egzaminu ustnego z tego przedmiotu.</p> <p>Jak już wspominałem zamiast uczyć się robiłem kilka innych fajnych rzeczy, między innymi wymyśliłem jak dopasować wygląd <a href="http://chaber-bizuteria.wikidot.com">strony z biżuterią mojej Ukochanej</a> do pionowych (zamiast zakładanych do tej pory poziomych) zdjęć jej arcydzieł.</p> <p>Szkic tego, co chcę zrobić:</p> <p style="text-align: center;"><a href="http://piotr.gabryjeluk.pl/local--files/dev:co-tam-u-pana-panie-piotrze/cr2.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:co-tam-u-pana-panie-piotrze/cr2.jpg/small.jpg" alt="cr2.jpg" class="image" /></a></p> <p>Ponadto odbyłem ciekawą rozmowę z Adamem Czachorowskim na temat potencjalnych tematów pracy magisterskiej oraz ogólnie tematów interesujących, czyli:</p> <ul> <li>Jythona (ogólnie Pythona) na Androidzie</li> <li>event-machine w kernelu (coś na podobieństwo dbusa może) lekarstwem na całe zło obecnego oprogramowania</li> <li>CouchDB i implementacji podobnej bazy danych w Pythonie</li> </ul> <p>Ponadto wymieniliśmy się poglądami na temat dobrej muzy. Padły stwierdzenia o wysokim poziomie sprawdzalności:</p> <ul> <li>dobre kawałki to te dłuższe niż 10 minut</li> <li>dobre kawałki we FLAC-u osiągają bitrate ponad 1000 kbit/s</li> </ul> <p>Do tego dochodzi, że piszę tę notkę. Wczoraj pisałem dłuższą, ale Firefox mi wysiadł i efekt około godzinnej pisaniny poszedł do <tt>/dev/null</tt>. Miało być o Viscie pod VirtualBoksem, systemie plików tagfs i innych pierdołach.</p> <p>Dzisiaj jeszcze czytałem trochę o wirtualizacji urządzeń OpenGL oraz co ciekawe DirectX (D3D).</p> <p>Co ciekawe implementacja Wine'a, która polega na tłumaczeniu żądań D3D na OpenGL została skompilowana pod Windowsa (!) i <a href="http://wiki.winehq.org/Parallels">używana jest w produkcie Paralels</a> (taki komercyjny VirtualBox pod Maca) jako dodatek do zainstalowego "w środku" Windowsa.</p> <p>Podobną technikę <a href="http://www.virtualbox.org/ticket/2940">zamierzają zastosować programiści VirtualBoksa</a>, którzy jak dotąd nie próżnowali, bo udostępnili działąjącą wirtualną kartę z obsługą OpenGL do odpalonego wirtualnego Windowsa, czym zasłużyli na gromkie brawa.</p> <p>Instrukcje OpenGL idą w tym przypadku w jakiś magiczny sposób do karty graficznej hosta, więc system jest dość wydajny, bo nie występuje do końca "emulowanie" tylko raczej "przekazywanie". Gdyby dołożyć do tego biblioteki emulujące DirectX przez OpenGL od Wine'a, które też ponoć są dość wydaje, to wydaje się możliwe odpalanie gierek Windowsowych bez restartowania kompa (wielkie brawa!).</p> <p>To na razie tyle, bo naprawdę (co mnie przeraża) trzeba się tego przedmiotu kiedyś nauczyć :(.</p> <p>Trzymajcie kciuki!</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:na-wydziale</guid>
				<title>Na Wydziale</title>
				<link>http://piotr.gabryjeluk.pl/dev:na-wydziale</link>
				<description>

&lt;p&gt;Jakich przedmiotów powinno się uczyć na informatyce:&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;&lt;!--[if gte IE 7]&gt;&lt;!--&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common--images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&gt;&lt;!--&lt;![endif]--&gt;&lt;!--[if lt IE 7]&gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/common&amp;#45;&amp;#45;images/avatars/2/2462/a16.png&quot; alt=&quot;Gabrys&quot; style=&quot;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod=&#039;scale&#039;)&quot;/&gt;&lt;![endif]--&gt;&lt;/a&gt;&lt;a href=&quot;http://piotr.gabryjeluk.pl/profile2:2462&quot; target=&quot;_blank&quot;&gt;Gabrys&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Wed, 07 Jan 2009 19:52:29 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Jakich przedmiotów powinno się uczyć na informatyce:</p> <div class="content-separator" style="display: none:"></div> <h2><span>Powinny być</span></h2> <ul> <li>projektowanie i tworzenie serwisów internetowych</li> <li>język Python (1 semestr?)</li> <li>programowanie urządzeń mobilnych</li> <li>systemy autoryzacji, szyfrowania i bezpiecznej transmisji danych</li> <li>nowoczesne bazy danych (czyli nierelacyjne)</li> </ul> <h2><span>Dodatkowe pomysły:</span></h2> <ul> <li>TRZEBA zrewidować programowanie równoległe i rozproszone. Bazowanie na MPI jest nieludzkie. Należy przedstawić język Erlang oraz biblioteki do równoległego przetwarzania w Javie (tematyka seminarium Bały)</li> <li>zwrócenie uwagi na styl programowania — główny problem z kodem, który produkują studenci <ul> <li>zadanie dla inżynierii oprogramowania — w praktyce jest ona równie ważna (a może i ważniejsza) już w trakcie realizowania projektu, co przed</li> <li>zadanie dla każdego przedmiotu "programowanie *" — zwrócić uwagę na elegancję kodu, ale również pokazywać jak elegancko programować</li> </ul> </li> <li>tworzenie przydatnych rzeczy na zajęciach</li> <li>rozwijanie projektów open-source, posiadanie specjalistów nie tylko w systemach komercyjnych typu Oracle, ale również (przede wszystkim!) w dziedzinach otwartego oprogramowania — uczmy się na cudzych błędach i ogarnijmy cały ten darmowy kod, gdyż można z niego sporo wykorzystać (ale i poprawić)</li> <li>szukanie optymalnych rozwiązań — jeśli można coś zrobić w języku X, ale w języku Y jest to rozwiązanie, które ma jedną linię, to jaki jest sens zadawanie studentowi napisanie tego w języku X</li> <li>lepsze motywowanie do działania — np. przez robienie rzeczy, które nie są trywialne, realizują pomysły studentów, lub rzeczy przydatnych/potrzebnych</li> </ul> <h2><span>Nie powinny być obowiązkowe</span></h2> <ul> <li>analiza matematyczna 2, równania różniczkowe</li> <li>podstawy przetwarzania sygnałów</li> <li>rachunek prawdopodobieństwa i statystyka matematyczna — wstęp do statystycznej analizy danych wystarcza, aby ogarnąć temat statystyki (laboratoria są OK, choć mogłyby pokazać również inne środowiska niż SPSS)</li> </ul> <h2><span>Potrzebne matematyczne przedmioty</span></h2> <p>Wydaje się, że przydatne są następujące przedmioty matematyczne:</p> <ul> <li>algebra — głównie macierze</li> <li>analiza matematyczna — pochodne, całki, być może transformata Fouriera</li> <li>matematyka dyskretna — bardzo przydatne, można nawet pójść dalej w kierunku kryptografii</li> <li>logika matematyczna i teoria mnogości — dość sensowne, można iść troszeczkę dalej (ale niezbyt głęboko): logika trójwartościowa (występuje w systemach bazodanowych)</li> </ul> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><!--[if gte IE 7]><!--><img class="small" src="http://www.wikidot.com/common--images/avatars/2/2462/a16.png" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /><!--<![endif]--><!--[if lt IE 7]><img class="small" src="http://www.wikidot.com/common&#45;&#45;images/avatars/2/2462/a16.png" alt="Gabrys" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.wikidot.com/userkarma.php?u=2462,sizingMethod='scale')"/><![endif]--></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>