<?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 dev blog</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>Sat, 11 Feb 2012 22:37:33 +0000</lastBuildDate>
		
					<item>
				<guid>http://piotr.gabryjeluk.pl/dev:reklamacja-wg-htc</guid>
				<title>Reklamacja wg HTC</title>
				<link>http://piotr.gabryjeluk.pl/dev:reklamacja-wg-htc</link>
				<description>

&lt;p&gt;Jak część z moich czytelników już wie, ekran LCD w moim HTC Desire rozlał się, ot tak, bez wyraźnej przyczyny. Rano działał, by po pół godzinie nagle pęknąć i się rozlać. Smutek, ale przecież od tego jest reklamacja, aby takie sprawy rozwiązać. Postanowiłem więc ową usterkę na gwarancji oddać.&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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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, 15 Nov 2011 20:36:00 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Jak część z moich czytelników już wie, ekran LCD w moim HTC Desire rozlał się, ot tak, bez wyraźnej przyczyny. Rano działał, by po pół godzinie nagle pęknąć i się rozlać. Smutek, ale przecież od tego jest reklamacja, aby takie sprawy rozwiązać. Postanowiłem więc ową usterkę na gwarancji oddać.</p> <div class="content-separator" style="display: none:"></div> <p>Na początku się nieco wahałem, bo jak to wynika z mojego doświadczenia związanego z reklamowanymi produktami, producent zawsze stara się winę zrzucić na użytkownika. Jednak pomyślałem, że skoro firma jest niepolska, to pewnie ma wyższe standardy traktowania klienta, co zresztą potwierdził krótki research w internecie dotyczący wymiany pękniętych ekranów LCD w telefonach tejże firmy na gwarancji, z którego wynikało, że o ile faktycznie nie było w usterce winy klienta, to ową wymianę przeprowadzają.</p> <p>Zadzwoniłem na hot-line HTC, gdzie opisałem sprawę. Wpierw zaproponowano mi restart ustawień telefonu, no ale co zrobić &#8212; procedury &#8212; tak samo w Netii zawsze mówili, żeby sprawdzić ustawienia Firewalla Windowsa, nawet jeśli dokładnie opisuję pomiędzy którymi routerami brzegowymi wg traceroute'a giną moje pakiety ;-). No nic, wyjaśniłem, że jestem świadomy, że to usterka mechaniczna, a nie softowa i już się nie upierali przy tym resecie ;-).</p> <p>Potem poproszono mnie o wykonanie zdjęć ekranu, co uznałem za dobry znak &#8212; ktoś faktycznie przejmuje się moim losem i chce się zająć moim smutnym telefonem. Wykonałem zdjęcia, przesłałem i po niedługim czasie dostałem info, że mogą mi załatwić transport do serwisu, gdzie zostanie rozpatrzona gwarancja. Jeśli uszkodzenie wynikło z mojej winy (a wiem najlepiej, że nie), to będę musiał jednak pokryć koszty kuriera. W tym momencie robi się nieco niemiło, bo brzmi to jak typowy zniechęcacz klientów. Na pewno sporo ludzi się wystraszy ewentualnych kosztów, bo przecież nigdy nie wiadomo, czy producent reklamację rozpatrzy pozytywnie, czy nie.</p> <p>No ale w moim przypadku nie ma się czego bać. Uszkodzenie wyraźnie nie było z mojej winy, skoro nawet tego telefonu w czasie gdy nastąpiło nie dotykałem, więc poprosiłem o zamówienie kuriera. Przygotowałem z 6 kartek różnych dokumentów (opis uszkodzenia, kartę zgłoszenia sprawy &#8212; co ciekawe wysłane w formacie TIFF &#8212; i kartę adresową dla kuriera), zawinałem telefon w bąbel folię i zostawiłem Marcie, aby przekazała tę paczuszkę kurierowi.</p> <p>Nie ukrywam, że byłem ciekawy rozwoju sytuacji. Od dzisiaj mam dzięki kumplowi zastępczy telefon, ale jego milczenie podpowiedziało mi, że jeszcze sobie poczekam na jakąś odpowiedź. Jednak po powrocie do domu znalazłem na mailu informację z serwisu. Jednak szybka reakcja. Niestety wiadomość, którą dostałem to ani przyjęcie do serwisu, ani odpowiedź na zgłoszenie gwarancyjne, a kosztorys naprawy! WTF??!?!?!?! Trochę mnie zlewa ile kosztuje naprawa, bo ma za nią zapłacić producent, tak?</p> <p>Dodatkowo proszą o wypełnienie danych do faktury i w przypadku nieodpowiedzenia w ciągu dni zastrzegają prawo do obciążenia kosztami. No i tu się robi chamsko.</p> <p>Postanowiłem zadzwonić do HTC i wyjaśnić sprawę. Mówię o co biega, że wysłałem na gwarancji a dostałem kosztorys naprawy do zaakceptowania zamiast decyzji o rozpatrzeniu gwarancji i, że nie było to najmilsze. W infolinii dostałem informację, że skoro dostałem kosztorys to &quot;na pewno&quot; technicy sprawdzili telefon i &quot;zgodnie z wytycznymi firmy HTC&quot; przebadali telefon i stwierdzili, że uszkodzenie mechaniczne zaistniało z mojej winy. To dość daleko idąca dedukcja.</p> <p>Potem nastąpiła wymiana poglądów na temat pęknięć ekranów LCD (&quot;one NIGDY nie pękają same&quot;, ciekawe, a mój niby to co?), później na temat poinformowania mnie na temat kosztów kuriera. Rozmowa prawie nie miała końca, ale ja swoje, oni swoje.</p> <p>Kilka faktów:</p> <ul> <li>Pan, który pracuje w HTC &quot;od wielu lat&quot; jest pewien, że ekrany LCD &quot;NIGDY nie pękają same&quot;</li> <li>Pani, która pracuje z tamtym Panem, która mi załatwiła kuriera dostała zdjęcia telefonu oraz jednoznaczną informację, że ekran LCD jest pęknięty i rozlany</li> <li>ta sama Pani, miała wyraźną informację, że interesuje mnie wyłącznie wymiana ekranu na gwarancji producenta</li> <li>Pani poinformowała mnie, że JEŚLI zostanie stwierdzone, że uszkodzenie nastąpiło z mojej winy, to będę musiał zapłacić za kuriera</li> </ul> <p>Teraz zgodnie (mam nadzieję) z logiką i zdrowym rozsądkiem:</p> <ol> <li>Telefon ma pęknięty LCD, o czym Państwo HTC wiedzą</li> <li>Skoro ekrany LCD nigdy nie pękają same, to wiadomo, że pęknięcie nastąpiło z mojej winy</li> <li>Chcę telefon oddać na gwarancji, ale skoro usterka jest z mojej winy, to wiadomo, że gwarancja będzie odrzucona</li> <li>Jeśli gwarancja będzie odrzucona, to nie ma sensu proponować kuriera z zastrzeżeniem, że zostanę obciążony kosztami JEŚLI to będzie moja wina. Oni już wiedzą, że jest to moja wina, więc od razu wiedzą, że będę musiał zapłacić za kuriera, czego nie chcę, skoro telefon chcę reklamować, a nie naprawić na swój koszt.</li> </ol> <p>To dlaczego to robią? Naciąganie klienta na koszty? Brak komunikacji w zespole? A może jednak każdy element ma z jakimś prawdopodobieństwem pęknąć, więc faktycznie gwarancja może być rozpatrzona pozytywnie &#8212; ale wtedy mówienie z całą pewnością, że ekrany LCD nie pękają jest bardzo nieprofesjonalne i nierzetelne.</p> <p>Może miałem tylko pecha, ale wkurwienie na firmę zostanie i mój następny smartfon to już nie będzie HTC (którego musiałbym szczerze polecić, gdyby nie ten incydent).</p> <p>Przypomina mi się też jeden raport na temat polskich sprzedawców i kupujących. O ile kupujący w Polsce są jednymi z najuczciwszych na świecie, to sprzedający na każdym kroku kantują kupującego. Ile razy już czytałem o tym, aby omijać polskie oddziały firm z daleka. A ile razy słyszałem o przypadkach dobrego traktowania klienta? Mnóstwo, ale nigdy w Polsce. A mówię o rekompensowaniu wadliwych laptopów PO gwarancji (Sony), wysyłanie baterii do telefonów komórkowych kurierem do domu klienta BEZ konieczności wysyłania dowodu zakupu (chyba Nokia), wymiana sprzętu wyraźnie uszkodzonego przez klienta łącznie z pokryciem kosztów przesyłki (bez konieczności przedstawienia dowodu, że faktycznie tyle to kosztowało) uszkodzonego urządzenia do US czy UK (Amazon).</p> <p>I przypomina mi się jak raz kupiłem sobie laptopa sprowadzonego z US, wiedząc, że w ramach usterki nie mam żadnej gwarancji. Wtedy stwierdziłem, że szansa, że coś się faktycznie stanie jest niewielka, a ta gwarancja w Polsce jest gówno warta, bo w Polsce zawsze wpierają, że usterka jest winą klienta. Dzisiaj się jeszcze bardziej utwierdziłem w tym przekonaniu.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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:wiesci-z-pyrlandii</guid>
				<title>Wieści Z Pyrlandii</title>
				<link>http://piotr.gabryjeluk.pl/dev:wiesci-z-pyrlandii</link>
				<description>

&lt;p&gt;Blog prawie umarł, więc czas tchnąć weń nieco życia.&lt;/p&gt;
&lt;p&gt;Pomimo różnych plotek, wciąż pracuję w Grupie Allegro, ale już nie nad samym serwisem Allegro.pl (te ostatnie przerwy w działaniu, to więc wyraźnie nie moja robota), tylko nad ciekawym nowym tajnym sajtem, o którym opowiem może tochę więcej jak tylko wystartuje. Na razie nie chcemy go zbytnio rozgłaszać.&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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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, 08 Nov 2011 19:10:32 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Blog prawie umarł, więc czas tchnąć weń nieco życia.</p> <p>Pomimo różnych plotek, wciąż pracuję w Grupie Allegro, ale już nie nad samym serwisem Allegro.pl (te ostatnie przerwy w działaniu, to więc wyraźnie nie moja robota), tylko nad ciekawym nowym tajnym sajtem, o którym opowiem może tochę więcej jak tylko wystartuje. Na razie nie chcemy go zbytnio rozgłaszać.</p> <div class="content-separator" style="display: none:"></div> <p>Obecnie jestem trochę chory, więc będę pewnie kilka dni siedział/leżał w łóżku, co powinno mi dać trochę czasu na zapoznanie się z ciekawymi rzeczami dziejącymi się wokół frameworka Symfony, który jest ostatnio obiektem moich fascynacji. Wychodzi na to, że wszystko co pochodzi od Fabiena Potenciera jest świetne i przenosi to co dotychczas było zarezerwowane dla &quot;fajnych&quot; języków programowania wprost do PHP. Czasem nawet jest to zrobione fajniej niż w oryginale.</p> <p>Weźmy taki microframework Silex. Pozwala stworzyć aplikację WWW w jednym pliku (jeśli w PHP 5.4 faktycznie znajdziemy wbudowany serwer HTTP, to już w ogóle będzie super wygodne rozwiązanie). Silex jednak jest bardzo rozszerzalny i modularny, co sprawia, że może być ciekawym rozwiązaniem nie tylko na malutkie projekty ale i te trochę większe, a może i całkiem duże. Taki framework nie narzucający zbyt wiele konwencji może być fajny dla nowego nietypowego projektu.</p> <p>Kolejna moja ostatnia fascynacja to MongoDB. Jest to fajna rzecz w czasach, gdzie duże projekty oparte o bazy SQL-owe shardują dane na kilka różnych baz danych i celowo rezygnują z kluczy obcych i transakcji, żeby zyskać na wydajności. Ponadto często w pracy z relacyjną bazą danych denerwująca jest konieczność ustalania z góry kolumn, które mają się znaleźć w tabelach. Często po prostu chcemy w bazie danych zachować obiekty, które mają różne właściwości, których nawet nie znamy na początku rozwoju projektu. Dodawanie kolumn do tabel zwykle nie jest szybką operacją, a może być wręcz operacją blokująca, co jest najgorszą możliwą sytuacją, gdy mamy już całkiem sporo danych w tabeli.</p> <p>MongoDB zostało owrapowane w całkiem fajny mechanizm (DocumentManger) we wtyczce dla Doctrine. Podejście do obiektów jest tam podobne jak w Javowym db4o. Dla projektów w Symfonowy wsparcie Doctrine dla MongoDB jest dostępne jako bundle &#8212; jedną z paczek, z których składa się aplikacja (kod który piszemy w ramach aplikacji &#8212; kontrolery, widoki itd. też jest bundlem).</p> <p>Generalnie trzeba powiedzieć, że w PHP i okolicach zrobiło się ostatnio całkiem ciekawie. Numerki 5.3 i 5.4 wniosły podobny powiew świeżości do tego języka co zmiana 4-ki na 5-kę. Coraz częściej spotyka się różne biblioteki działające tylko z wersją 5.3+, np. świetna biblioteka Imagine do obsługi obrazków wzorowana na Pythonowym PIL.</p> <p>To chyba na tyle przynudzania. Jak coś jeszcze ciekawego wymyślę, to napiszę :P. Pozdro.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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:carrefour-i-ceny-za-litr</guid>
				<title>Carrefour a ceny za litr</title>
				<link>http://piotr.gabryjeluk.pl/dev:carrefour-i-ceny-za-litr</link>
				<description>

&lt;p&gt;Carrefour ma duże problemy z arytmetyką. Rzućcie okiem na ceny za litr:&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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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>Sun, 21 Aug 2011 17:38:23 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Carrefour ma duże problemy z arytmetyką. Rzućcie okiem na ceny za litr:</p> <div class="content-separator" style="display: none:"></div> <div class="gallery-box" id="gallery-box-24505"> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0332.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0332.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0333.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0333.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0334.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0334.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0335.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0335.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0336.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0336.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0337.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0337.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0338.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0338.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0339.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0339.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> <div class="gallery-item thumbnail"> <table> <tr> <td><a href="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0340.jpg/medium.jpg"><img src="http://piotr.gabryjeluk.pl/local--resized-images/dev:carrefour-i-ceny-za-litr/IMAG0340.jpg/thumbnail.jpg" alt="" /></a></td> </tr> </table> </div> </div> <p>Zdjęcia zrobione w Poznańskim Carrefourze w Centrum Handlowym Pestka. List elektroniczny do PIH wysłany, bo niestety obsługa wolała mi zwracać uwagę, że nie można robić zdjęć w sklepie zamiast mnie normalnie wysłuchać.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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:pierwsze-dni-w-poznaniu</guid>
				<title>Pierwsze Dni W Poznaniu</title>
				<link>http://piotr.gabryjeluk.pl/dev:pierwsze-dni-w-poznaniu</link>
				<description>

&lt;p&gt;Nowe miasto, nowi ludzie, nowa praca, nowe wyzwania&amp;#8230;&lt;/p&gt;
&lt;p&gt;Zacznę od idiotycznych rzeczy. Po godzinie 20-ej w mieście zapada zmrok. A latarnie uliczne nie świecą. Dlaczego? Cholera wie.&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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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, 06 Jul 2011 19:13:24 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Nowe miasto, nowi ludzie, nowa praca, nowe wyzwania&#8230;</p> <p>Zacznę od idiotycznych rzeczy. Po godzinie 20-ej w mieście zapada zmrok. A latarnie uliczne nie świecą. Dlaczego? Cholera wie.</p> <div class="content-separator" style="display: none:"></div> <p>Druga rzecz &#8212; przejazdy tramwajowe &#8212; niektóre są tak fatalne, że przejeżdżając przez nie z prędkością 30&#160;km/h wybijamy sobie zęby (a przez skrzyżowanie można teoretycznie przejechać z prędkością 70&#160;km/h, bo większość dwupasmówek w Poznaniu ma podniesioną dozwoloną prędkość).</p> <p>Następnie, egoistyczni kierowcy &#8212; ostatnio byłem świadkiem przejazdu karetki pogotowia typu S na sygnale przez skrzyżowanie. Światło dla karetki: czerwone. W poprzek przejechały przed karetką dwa samochody &#8212; powiedzmy, że niebezpiecznie byłoby im się zatrzymywać, więc przejechały, po tych dwóch jakiś kierowca z zacięciem rajdowca, pseudosportową Renówką Clio docisnął gaz do dechy i opuścił skrzyżowanie (pomimo początkowo sporego dystansu do pierwszej pary aut) zaraz po tych feralnych dwóch. Myślałem, że karetka już przejedzie, ale nie, z dynamiką wozu z węglem przez skrzyżowanie w poprzek drogi karetki przetacza się jeszcze duże czarne BMW. Karetka przejeżdża dopiero za nim. O ile dobrze kojarzę karetka S jest pierwszą wysyłaną w razie nagłego wypadku, jeśli nie ma dostępnej karetki R. Ta konkretna karetka mogła więc jechać w celu ratowania życia. Gratulacje dla Poznańskich kierowców (dodam, że karetki SĄ słyszalne z daleka, nie wyskakują nie wiadomo skąd). Podobna sytuacja ostatnio ze strażą pożarną. Korek przez który przeciska się straż pożarna. Kierowcy starają się zjechać &quot;w jodełkę&quot; na boki oprócz autobusu wycieczkowego (bo po co) i Renault Clio (jakaś zła passa?) stojącego przede mną (no bo krawężnik był wysoki, więc po co się kłopotać). Pojazd straży ruszył dopiero po włączeniu się zielonego światła i lekkim rozluźnieniu się pasów.</p> <p>Do grupy kierowców kieruję także następne zażalenie: nieużywanie kierunkowskazów. Rozumiem, że nie zawsze ma się ochotę przesunąć palcem manetkę o te parę centymetrów, ale jeśli zamierzasz przejechać mi 20&#160;cm przed maską zmieniając pas ze skrajnie lewego na skrajnie prawy, to chociaż mignij mi kierunkiem, żebym miał chociaż jakąkolwiek szansę przewidzieć Twój manewr.</p> <p>I jeszcze jedno, na ogół kierowcy są życzliwi, zmiana pasa nie stanowi żadnego problemu, włączenie kierunkowskazu powoduje niemal natychmiastowe wytworzenie się luki, którą dla zachowania płynności ruchu od razu zajmuję, jednak ostatnio pomimo prawie dojechania do końca kończącego się pasa i trzymania włączonego kierunkowskazu przez cały ten odcinek musiałem dosłownie się wpychać na sąsiedni pas i jeszcze zostałem strąbiony. Ech.</p> <p>Teraz trochę przyjemniej. Budynek, w którym aktualnie pracuję jest całkiem przyjemny, miejsce jest fajnie i naturalnie oświetlone, praca z dużym projektem całkiem dużym wyzwaniem (podobnie jak praca w Wikidocie). Dostałem już uprawnienia do prawie wszystkich usług, które muszę wykorzystywać w pracy, komputer również pojawił się na moim biurku i poza drobnostkami, które są w trakcie załatwiania wszystko jest fajnie. Podoba mi się, że w moim dziale mogę swobodnie korzystać z narzędzi, dzięki którym praca jest przyjemna i owocna.</p> <p>Czekam na założenie porządnego Internetu i kablówki. 30 czerwca zacząłem to załatwiać, a dopiero 8 lipca będę miał podłączenie (jak dobrze pójdzie). Trochę sobie lecą w kulki z terminami, no ale co mogę zrobić (dla porównania w Toruniu czas założenia Internetu z Multimediów na starówce to maksymalnie 3 dni robocze). No ale po zasięgnięciu opinii pracowników i Poznaniaków na temat ociągającego się dostawcy, jak również po porównaniu innych ofert, postanowiłem uzbroić się w cierpliwość i poczekać na podłączenie&#8230;</p> <p>W międzyczasie korzystam z Internetu Heyowego (9,08 za &quot;nielimitowany dostęp do Internetu&quot;). Po miłym wspomnieniu wykorzystaniu 1086561666% przyznanego limitu (25&#160;MB/7 dni na próbę za darmo) podczas przeprowadzki do biura na starówce, po przekroczeniu którego prędkość miała spaść do &quot;mniej niż można sobie wyobrazić&quot; kbit/s a nie spadła, zdecydowałem tym razem zakupić pakiet 30-dniowy za te niecałe 10 złotych licząc, że znowu nie przytną przepustowości. Niestety tym razem system obcinania zadziałał już po 120&#160;MB (czyli około 1 dniu korzysztania z netu) i prędkość spadła nawet poniżej tego co przytoczyłem wcześniej. Dodatkowo (co według mnie jest zwykłym chamstwem) Internet przestał być nie tylko szybki ale również polegalny-na (reliable). Połączenia zaczęły się zrywać, nowe połączenia odrzucać a stare stopować na minuty (zamiast po prostu działać baaaaaardzo powoli, co byłoby zgodne z regulaminem i zwykłą kulturą). Na szczęście znalazłem również sposób na poradzenie sobie z tym problemem i zamiast niestabilnego, długo myślącego by potem tylko stimeoutować połączenia, mamy połączenia, które się zrywają dość często, za to już po sekundzie-dwóch od zepsucia. Ponadto łączność jest odzyskiwana w ciągu około sekundy, więc oprócz 2000% większego zużycia klawisza F5 i konieczności wczytywania niektórych stronek po 40 razy, Internet jest w miarę używalny. Tęsknię za stabilnym połączeniem.</p> <p>Kolejna nieciekawa rzecz: jakiś chuj ukradł mi rower z piwnicy starego mieszkania. Mamy pewne podejrzenia z Martą, bo jest niemal pewne, że zrobił to ktoś, kto wiedział o naszej przeprowadzce (oraz wiedział, którą piwnicę okupowaliśmy). Niech mu się jaja wkręcą w łańcuch za świństwo, które zrobił!</p> <p>Pozdro dla ekipy z Torunia!</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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:test-na-redundancje-kodu</guid>
				<title>Test na redundancję kodu</title>
				<link>http://piotr.gabryjeluk.pl/dev:test-na-redundancje-kodu</link>
				<description>

&lt;p&gt;Czas na nieco żartobliwy eksperyment&amp;#8230;&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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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, 19 May 2011 10:25:21 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>Czas na nieco żartobliwy eksperyment&#8230;</p> <div class="content-separator" style="display: none:"></div> <p>Wpierw liczymy ile jest niepustych i nietrywialnych linii kodu, np.:</p> <div class="code"> <pre> <code>find katalog1 katalog2 -name '*.php' -exec cat '{}' ';' | sed 's/^\s\+//' | sed 's/\s\+$//' | grep -v '^$' | grep -v '^function\|^public\|^protected\|^private\|^class\|static\|^}\|^{\|^?&gt;\|^&lt;?php\|^//\|^\*\|^/\*' | wc</code> </pre></div> <p>Potem liczymy ile jest unikalnych linii w tym co znaleźliśmy:</p> <div class="code"> <pre> <code>find katalog1 katalog2 -name '*.php' -exec cat '{}' ';' | sed 's/^\s\+//' | grep -v '^$' | grep -v '^function\|^public\|^protected\|^private\|^class\|static\|^}\|^{\|^?&gt;\|^&lt;?php\|^//\|^\*\|^/\*' | sort | uniq | wc</code> </pre></div> <p>Dzielimy jedną liczbę przez drugą i uzyskujemy współczynnik redundancji kodu.</p> <p>Należy dostosować kod do danego języka, aby lepiej matchować trywialne linie, które są potrzebne, ale przecież nie świadczą o redundancji kodu.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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: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 &amp;quot;Wiki&amp;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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 &quot;Wiki&quot; dobra nie jest.</p> <div class="content-separator" style="display: none:"></div> <p>Godzina 20:07 &#8212; 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 &#8212; zorientowawszy się, która godzina i, że umieramy z głodu zastanawiamy czemu jeszcze nie ma pizzy.<br /> Godzina 21:27 &#8212; Marta zdesperowana i głodna jak wilk zaczyna robić kanapki z parówką i surówką z Biedronki.<br /> Godzina 21:33 &#8212; kanapeczki gotowe, Marta zaczyna rzuć pierwsze kęsy.<br /> Godzina 21:34 &#8212; 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 &quot;to po co nam dupę zawracasz jak nie potrzebujesz&quot;, na co musiałem odrzec, że &quot;to Wy w chuja ludzi robicie, bo pizza miała być po 40 minutach maksymalnie, a ja już półtorej godziny czekałem&quot;</p> <p>Nie wszystko dobre, co wiki.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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: &quot;BE_TECHNOLOGY&quot; &lt;&#8230;&gt;<br /> Do: &lt;&#8230;&gt;<br /> Temat: Re: Pytanie o przedmiot: Mysz USB Bluetooth 1000 DPI SCROLL na AKUMULATORKI (Numery ofert 1056342844)<br /> Data: Thu, 10 Jun 2010&#160;14:35:58 +0200<br /> X-Mailer: Microsoft Outlook Express 6.00.2900.5931</p> <p>to ze jest bezprzewodowa&#8230;?? pozdrawiam</p> </blockquote> <p>Pozdrawiam wszystkich bezprzewodowych.</p> <p>by <span class="printuser avatarhover"><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 <span style="white-space: pre-wrap;">[[html]]</span>, 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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, &quot;techników&quot; 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 &quot;drobne&quot; 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 &quot;nielegalną&quot; 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ć &quot;omijając&quot; 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&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1" /> <param name="allowFullScreen" value="true" /> <param name="allowScriptAccess" value="always" /> <embed src="http://www.youtube.com/v/XxGGyVklPHg&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 &#8212; Marcie.</p> <p>Marto, jesteś bardzo dobrze przewidującą osobą. Przewidziałaś dwa wydarzenia w Californication (na dwa strzały &#8212; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 &#8212; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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. &amp;quot;Żebyś miał co słuchać w czasie podróży&amp;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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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. &quot;Żebyś miał co słuchać w czasie podróży&quot;.</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-236058-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 &#8212; 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 &quot;good shit&quot; with &quot;just shit&quot; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999852" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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-236058-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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999852&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 &quot;wątków&quot; 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 &quot;czekania&quot; 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 &quot;wskakuje&quot; 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 &#8212; np. 256 &#8212; 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 &#8212; 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&#160;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&#160;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 &quot;okien&quot;, 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 &quot;opisie&quot; 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 &#8212; lekka wersja biblioteki standardowej C &#8212; 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ć &quot;dobrze przemyślane, dopracowane, świeże, potrzebne i pomysłowe&quot; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999853" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999853&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999853" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999853&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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&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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999853" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999853&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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> &#8212; zespół popisywał się ciekawymi solówkami, choć nie zawsze zgodnymi z wersjami &quot;oryginalnymi&quot;. Wokal &#8212; zarówno czysty jak i growl &#8212; 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 &quot;Opeth, Opeth&quot;).</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> &#8212; warszawski klub studencki Stodoła. To chyba nie najlepszy wybór dla tego koncertu. Chętnych do posłuchania było sporo &#8212; 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> &#8212; dające po oczach stroboskopy nie należą do moich ulubionych &quot;przypraw&quot; koncertów. Poza kilkoma światełkami w różnych kolorach nic ciekawego się nie działo.</p> <p><strong>Dźwięk</strong> &#8212; 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> &#8212; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999853" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></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;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=2462&amp;amp;size=small&amp;amp;timestamp=1328999853&quot; alt=&quot;Gabrys&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=2462)&quot; /&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 &quot;side by side&quot;, 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 &#8212; niech się załadują, zanim skończę czytać aktualną stronę &#8212; bardzo sprytne i przydatne</li> <li>minimalizuje chaos na pasku zadań &#8212; 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&#8230;</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&hl=pl&fs=1" /> <param name="allowFullScreen" value="true" /> <param name="allowscriptaccess" value="always" /> <embed src="http://www.youtube.com/v/1nK4_cH5sbM&hl=pl&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 &quot;doklejać&quot; 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 &quot;podczepienie&quot; 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 &quot;grupowania podobnych zadań&quot; na pasku zadań &#8212; teraz wiemy dokładnie jakie zadania są powiązane &#8212; 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"><img class="small" src="http://www.wikidot.com/avatar.php?userid=2462&amp;size=small&amp;timestamp=1328999853" alt="Gabrys" style="background-image:url(http://www.wikidot.com/userkarma.php?u=2462)" /></a><a href="http://piotr.gabryjeluk.pl/profile2:2462" target="_blank">Gabrys</a></span></p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>
