<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Stifflog PL</title>
	<atom:link href="http://www.stifflog.com/pl/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stifflog.com/pl</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Fri, 27 Aug 2010 14:21:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Prezentacja z WRUG - WebSockets i WebGL</title>
		<link>http://www.stifflog.com/pl/index.php/2010/03/02/prezentacja-z-wrug/</link>
		<comments>http://www.stifflog.com/pl/index.php/2010/03/02/prezentacja-z-wrug/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 20:10:07 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Programowanie]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/?p=110</guid>
		<description><![CDATA[Drugiego marca 2010 miałem przyjemność dać krótką prezentacją na spotkaniu WRUG (Warsaw Ruby Users Group) dotyczącą technologii WebSockets i WebGL. Dzięki uprzejmości Czaka jest dostępne wideo z prezentacji:

Zamieszczam tu także slajdy i użyte przykłady:

Plik PDF
Plik zip (zawierający PDF i przykłady)

]]></description>
			<content:encoded><![CDATA[<p>Drugiego marca 2010 miałem przyjemność dać krótką prezentacją na spotkaniu <a href="http://www.wrug.eu">WRUG (Warsaw Ruby Users Group)</a> dotyczącą technologii WebSockets i WebGL. Dzięki uprzejmości <a href="http://czak.pl/">Czaka</a> jest dostępne wideo z prezentacji:</p>
<p><object width="530" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9906526&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9906526&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="530" height="300"></embed></object></p>
<p>Zamieszczam tu także slajdy i użyte przykłady:</p>
<ul>
<li><a href="/pl/websockets.pdf">Plik PDF</a></li>
<li><a href="/pl/websockets.zip">Plik zip (zawierający PDF i przykłady)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2010/03/02/prezentacja-z-wrug/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O edukacji w Polsce</title>
		<link>http://www.stifflog.com/pl/index.php/2010/02/03/o-edukacji-w-polsce/</link>
		<comments>http://www.stifflog.com/pl/index.php/2010/02/03/o-edukacji-w-polsce/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 08:03:25 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Inne]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/?p=100</guid>
		<description><![CDATA[
Nietypowy będzie to tekst, raz, że pierwszy po polsku od ponad dwóch lat, dwa, że dotyczący innej niż zwykle tematyki - mianowicie poziomu kształcenia w Polsce. Sporo na ten temat dumałem w ciągu ostatnich kilku lat, nieustannie będąc rozczarowanym sposobem, w jaki traktowane są w toku nauki moje ulubione dziedziny, jak informatyka, matematyka czy elektronika, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/edukacja.jpg" alt="klasa" /></p>
<p>Nietypowy będzie to tekst, raz, że pierwszy po polsku od ponad dwóch lat, dwa, że dotyczący innej niż zwykle tematyki - mianowicie poziomu kształcenia w Polsce. Sporo na ten temat dumałem w ciągu ostatnich kilku lat, nieustannie będąc rozczarowanym sposobem, w jaki traktowane są w toku nauki moje ulubione dziedziny, jak informatyka, matematyka czy elektronika, a także nauka wogóle. Jakiś czas temu widziałem trochę dyskusji na ten temat w związku z opublikowanym <a href="http://www.usnews.com/articles/education/worlds-best-universities/2009/10/20/worlds-best-universities-top-200.html">rankingiem najlepszych na świecie uczelni</a> (nie zawierającym żadnej polskiej uczelni), może więc jest to więc dobry moment, żeby wyrazić swoje zdanie, które nabrało z czasem dosyć rozbudowanej i precyzyjnej formy. Oto więc 10 problemów, które moim zdaniem najbardziej dotykają edukację w Polsce:</p>
<ol class="main">
<li>Pomieszanie priorytetów</li>
<p>
Trudno jest optymalizować jakikolwiek proces, nie mając skali, według której można by ocenić jego skuteczność. Patrząc na to, co się dzieje w polskiej szkole czy uczelni, trudno oprzeć się wrażeniu, że ani nauczyciele ani uczniowie nie do końca wiedzą jaki jest cel ich wspólnej pracy. Moim zdaniem uczymy sie przede wszystkim po to, żeby rosnąć jako ludzie i móc wnieść jakąś dodatkową wartość w społeczeństwo. Nauka jednak nie wydaję się być skoncentrowana wokół tego celu. Raczej, w typowym scenariuszu, uczniów interesuje uzyskanie jak najlepszej oceny jak najmniejszym wysiłkiem, a nauczycieli po prostu przetrwanie zajęć, szczególnie że niskie zarobki zmuszają ich do pracy na kilku etatach lub życia na relatywnie bardzo niskiej stopie. <a href="http://pl.wikipedia.org/wiki/Hierarchia_potrzeb">Jak wiemy dzięki Masłowowi</a>, trudno myśleć o pochodnych i granicach, gdy nie ma się zapewnionego godziwego bytu, np. własnego kąta do spania (proszę policzyć, ile lat musi oszczędzać nauczyciel szkolny, żeby kupić sobie na własność małe mieszkanie w średniej wielkości mieście).
</p>
</ol>
<p><span id="more-100"></span></p>
<ol start="2" class="main">
<li>Brak odgórnej kontroli</li>
<p>
Czytając wypowiedzi na temat edukacji rozmaitych ekspertów i osób odpowiedzialnych za szkolnictwo w Polsce, wydaję się, że nie mają oni pojęcia o tym, jak sprawa wygląda w praktyce. Jaki inny mółgby być powód tego, że umykają im problemy, które są oczywiste dla każdego, kto z tymże szkolnictwem ma na codzień doczynienia?
</p>
<p>
Znajduję to pewne potwierdzenie w fakcie, że przez ponad 15 lat mojej nauki, nie pamiętam ani jednego razu, żeby na lekcji czy zajęciach poza prowadzącym i uczniami znalazła się jakakolwiek osoba z zewnątrz obserwująca co właściwie dzieje się na zajęciach. Trudno jest ulepszyć system edukacji, jeśli nie ma się żadnej wiedzy na temat jego funkcjonowania.
</p>
<p>
Tymczasem w wielu sytuacjach nauczyciele zwyczajnie nie wypełniają swoich obowiązków, tak długo jednak jak pojawiają się na zajęciach, stawiają rozsądne oceny i są trzeźwi, nikt ich nie rozlicza. Nie jest to bynajmniej żadna złośliwość w kierunku nauczycieli, którzy są zazwyczaj raczej nawet bardziej &#8220;porządnymi&#8221; ludżmi od przeciętnego obywatela. Chodzi o to, że alkoholizm jest chyba jedyną przyczyną, z powodu której słyszałem, aby zwolniono nauczyciela - prowadzenie zajęć z których nikt nic nie wynosi nie jest wystarczającym kryterium. A że uczniowie a) rzadko traktują naukę jako wartość samą w sobie, b) raczej nie mają możliwości zgłoszenia jakichkolwiek zastrzeżeń co do sposobu kształcenia, sytuacja taka często pozostaje niezmieniona przez lata.
</p>
<p>
Kłody pod nogi rzuca się też nauczycielom, studentom, uczniom i ich rodzicom przy załatwianiu spraw formalnych. Panie z dziekanatu prestiżowego wydziału rzekomo najlepszego uniwersytetu w Polsce słyną wręcz z rozmaitych absurdalnych utrudnień, o czym miałem smutną okazję osobiście się przekonać, a jednocześnie od lat &#8220;piastują&#8221; swoją urzędy. Wydawałoby się, że w demokratycznym państwie jednostki dozorganizujące w bezsensowny sposób życie znacznie większej ilości osób nie mają racji bytu, tymczasem dzieje się inaczej. Czy władze uczelni nie słyszą rozmów studentów na korytarzach? To że wszyscy wiedzą, a nic się nie zmienia, mówi tez co nieco na temat poziomu takzwanego &#8220;społeczeństwa obywatelskiego&#8221; w Polsce.
</p>
<li>Póżna specjalizacja</li>
<p>
Biada temu, kto ma jakąkolwiek silnie wykształconą pasję której chcę się oddawać, biada właśnie tym, którzy za granicą powodują największe postępy w nauce i technice. W Polscę będą najpewniej musieli przez długie lata rozpraszać uwagę rzeczami zupełenie ich nie interesującymi, nie będącymi jednocześnie częścią niezbędnego wykształcenia każdego człowieka. &#8220;Z niewolnika nie ma pracownika&#8221; mówi przysłowie, a mimo to zdolnych matematyków przez lata katuję się historią i na odwrót, tylko po to by mogli oni całą zdobytą w ten sposób &#8220;wiedzę&#8221; skutecznie wyprzeć od razu po zakończeniu nauki. Nie żeby zaliczanie nielubianych przedmiotów było przesadnie często oparte na ich realnej nauce, co prowadzi nas do następnego punktu.
</p>
<li>Powszechna nieuczciwość</li>
<p>
To chyba w tym wszystkim najsmutniejsze. Ściąganie, oddawanie nie swoich prac i tym podobne zachowania są &#8220;u nas&#8221; pozbawione jakiegokolwiek społecznego piętna i poważniejszych konsekwencji formalnych. Nie traktuje się ściągającego ucznia jak skorumpowanego lekarza, mimo że moralnie jest to w zasadzie to samo zachowanie. Najbardziej tracą jak zwykle osoby uczciwe, które faktycznie usiłują się uczyć i rozumieć materiał, kiedy konkurencja stosuje swoisty &#8220;doping&#8221;, który nie jest dostatecznie tępiony. Jest to powszechny problem, o którym prawie wogóle się nie mówi. Nie chcę może koniecznie stawiać tego typu inciatyw za przykład, ale warto zauważyć różnice w mentalności bardziej rozwiniętych państw w tym względzie - zdając egzaminy SAT, będące podstawą kwalifikacji na wyższą uczelnię w USA, zostałem zapoznany z telefonem, pod którym po egzaminie miałem prawo zgłosić jakiekolwiek podejrzenia co do ucziwości przeprowadzonego egzaminu. W procesie rekrutacji, uczeń jest dla ucznia konkurentem, a obowiązkiem egzaminatorów jest zapewnienie uczciwych warunków rywalizacji.
</p>
<li>Brak zrozumienia sytuacji ucznia</li>
<p>
Osoba ucząca się w Polsce nie jest wogóle rozpatrywana w ludzkich kategoriach. Jak bowiem tłumaczyć fakt, że cała dalsza edukacyjna kariera ucznia szkoły średniej zależeć może od jednego dnia w roku, w którym odbywa sie egzamin maturalny z danego przedmiotu, a jedyną alternatywą jest zmarnowanie roku czasu? Wspomnianie już egzaminy SAT, prowadzone są co miesiąc przez kilka miesięcy w roku. Egzamin taki można więc napisać na przykład 5 razy w ciągu roku, a przez pewien okres po napisaniu go, uczeń ma prawo w oparciu o własną ocenę swojej pracy, anulować egzamin, tak że nie pozostanie po nim nawet ślad w dokumentacji. Nikt nie traci więc roku przez to, że kluczowego dnia roku zestresował się, nie wyspał, czy po prostu &#8220;nie podeszły&#8221; mu zadania. Każdy może bardzo dobrze oswoić się z samą formą egzaminu i rodzajem zadań, zanim finalnie zaprezentuje pełnie swoich możliwości.
</p>
<li>Niespójność programów nauczania</li>
<p>
Poszczególne przedmioty w toku studiów wyższych są prezentowane tak, jakby nie miały ze sobą żadnego związku. Uczący nie porozumiewają się ze sobą nawzajem, często nie znają wogóle programu nauczania, bywa tak, że jakaś prosta rzecz jest przerabiana raz po raz do znudzenia, a kluczowy trudny temat wogóle nie jest wyjaśniony, jest za to chętnie wykorzystywany, pozostawiając ucznia w niewiedzy i skazując na płytkie i niekompletene zrozumienie danej dziedziny. W dodatku prowadzący często wogóle nie mają pojęcia o dziedzinie, w ramach której naucza danego przedmiotu, uczy więc studenta zupełnie abstrakcyjnych technik i pojęc w oderwaniu od potrzeb studiowanej przez niego dyscypliny.
</p>
<li>Uczenie bez zrozumienia</li>
<p>
Często studenci nawet zaawansowanego materiału z danej dziedziny, mają problem z rozwiązaniem najprostszych problemów czy ze zrozumieniem podstawowych zagadnień. Jest to związane z tym, że opanowana wiedza nie jest wiarygodnie sprawdzana w toku nauki, gdyż kolokwia czy klasówki dają się napisać w oparciu o &#8220;wykute&#8221; fakty czy wzory, a na prywatnej uczelni często można nawet korzystać z notatek z wykładu czy z podręcznika, gdzie identyczne zadania zostały już rozwiązanie z innymi tylko danymi. W ten absolutnie chory sposób próba zrozumienia przedmiotu jest penalizowana - mniejsza jest szansa samodzielnego poprawnego rozwiązania danego zadania, niż przepisania go według notatek. Polecam świetny wykład profesora fizyki na Harvardzie poruszający temat <a href="http://www.youtube.com/watch?v=WwslBPj8GgI">realnego rozumienia zdobywanej wiedzy przez studentów</a> - jak widać nawet najbardziej prestiżowe uczelnie na świecie nie są całkowicie wolne od problemów z tym związanych.</p>
<li>Podręczniki</li>
<p>
Podręczniki wydawane po polsku są najczęściej znakomicie dopasowane do omówionego powyżej stylu uczenia bez zrozumienia, co widać szczególnie w trudnych dziedzinach, jak analiza matematyczna, czy elektronika, gdzie nie ma wogóle po polsku wydanych podręczników na poziomie tych drukowanych na Zachodzie. Owszem, trafiają się merytorycznie bardzo dobre pozycje, ale dydaktycznie są reliktami i absolutnymi katastrofami w porównaniu z analogicznymi pozycjami z Zachodu. Brakuje dobrej jakości ilustracji, przykładów, omówienia zastosowań, odpowiednio wystopniowanego rozwinięcia kolejnych tematów itp.
</p>
<p>
By wyrobić sobie zdanie na ten temat, można wziąść do ręki praktycznie dowolny wydany w ostatnich latach po polsku podręcznik z analizy matematycznej i porównać go z modnym w USA <a href="http://www.amazon.com/Calculus-Stewarts-James-Stewart/dp/0495011606/ref=ntt_at_ep_dpt_4">podręcznikiem Stewarta</a>. Jest to zupełnie inny styl prezentacji materiału, na Zachodzie zupełnie już powszechny, a w Polsce praktycznie nieznany. Co więcej, prawie nikt w Polsce nie tłumaczy i nie wydaję nawet najpopularniejszych opracowanych za granicą podręczników głównych dziedzin nauki i techniki.
</p>
<li>Słabe wykorzystanie postępu cywilizacyjnego</li>
<p>
Sposób, w jaki komputery są obecnie wykorzystywane w edukacji w Polsce, o ile wogóle są wykorzystywane, jest tragiczny. Modne wydają się być wykłady prowadzone ze slajdów PowerPointa, którę sprawiają że uczeń bierze w wykładzie całkowicie pasywny udział, co jest opłakane w skutkach, w szczególności na przykład w matematyce, gdzie nie ma możliwości prześledzenia toku rozumowania prowadzącego do danego wzoru, wniosku czy twierdzenia, sprawdzenia czy rozumię się poszczególne kroki - zamiast tego prezentuję się uczniowi sam rezultat końcowy, co uniemożliwia zrozumienie. Najlepsze uczelnie na świecie jakoś wciąż prowadzą wykłady z matematyki czy teoretycznych części elektroniki lub informatyki głównie w oparciu o tablicę i kredę.
</p>
<p>
Z drugiej strony nauczyciele zdają się kompletnie ignorować bogactwo wysokiej jakości materiałów edukacyjnych dostępnych za darmo w Internecie, w szczególności materiałów pochodzących z najlepszych uczelni na świecie - jak <a href="http://ocw.mit.edu/">MIT</a>, <a href="http://athome.harvard.edu/">Harvard</a> czy <a href="http://www.youtube.com/user/StanfordUniversity">Stanford</a>. Bardzo często mając dany przedmiot na uczelni, sięgam po wykłady na video z analogicznego przedmiotu prowadzonego za granicą i najczęsciej okazuje się, że zarówno sposób prowadzenia jak i prezentowany materiał, są dobre 10 czy 20 lat za trendami obecnie panującymi w danej dziedzinie.
</p>
<li>Finanse</li>
<p>
Jeśli ktokolwiek łudzi się jeszcze, że tak niskie miejsca polskich uczelni w rankingach są nieuzasadnione, niech się przyjrzy jak wyglądają centra naukowe u naszych zachodnich sąsiadów, a jak w Polsce. Najlepsze polskie uczelnie w większości posiadają gmachy którę się sypią i średnio nadają się wogóle do prowadzenia w nich zajęć, co tu więc mówić o zaawansowanych laboratoriach.
</p>
</ol>
<hr />
<p>
Powyższe spostrzeżenia te są oczywiście oparte głównie na moich własnych, niezbyt może typowych doświadczeniach - nauce w technikum elektronicznym w małym mieście, a potem na wieczorowych studiach informatycznych na prywatnej uczelni (wiodącej często w rankingach uczelni niepaństwowych), ale też rekrutacji na uczelnię zagraniczną, przeglądaniu anglojęzycznych podręczników, masie obejrzanych wykładów na przykład z OpenCourseware, wreszcie licznym nauczycielom w rodzinie (w tym także akademickim). Oczywiście, można się zastanawiać, na ile kompetentnie ktoś taki jak ja może wypowiedzieć się na temat edukacji, mam więc nadzieje że merytoryczne argumenty przemówią same za siebie.
</p>
<p>
Być może ten tekst pomoże komuś w ewaluacji szkoły czy uczelni do której chcę uczęszczać, w zastanowieniu się nad formą, w jaką uczymy się w ogóle, a przedewszystkim, największą satysfakcje sprawiłoby mi przeczytanie tego artykułu przez kogoś, kto ma możliwość podjęcia realnych działań w kierunku poprawy sytuacji.
</p>
<p>
Na koniec, bardziej optymistycznym tonem, artykuł chciałbym zadedykować najlepszemu nauczycielowi, jakiego kiedykolwiek miałem, Romualdowi Pawlukowi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2010/02/03/o-edukacji-w-polsce/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Londyn 2009 - zdjęcia</title>
		<link>http://www.stifflog.com/pl/index.php/2009/02/28/londyn-2009-zdjecia/</link>
		<comments>http://www.stifflog.com/pl/index.php/2009/02/28/londyn-2009-zdjecia/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 19:36:26 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Inne]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2009/02/28/londyn-2009-zdjecia/</guid>
		<description><![CDATA[































































































































































]]></description>
			<content:encoded><![CDATA[<p><a href="/pl/london/DSCF1354-big.jpg"><img src="/pl/london/thumbs/DSCF1354-small.jpg" /></a><br />
<a href="/pl/london/DSCF1356-big.jpg"><img src="/pl/london/thumbs/DSCF1356-small.jpg" /></a><br />
<a href="/pl/london/DSCF1358-big.jpg"><img src="/pl/london/thumbs/DSCF1358-small.jpg" /></a><br />
<span id="more-99"></span><br />
<a href="/pl/london/DSCF1359-big.jpg"><img src="/pl/london/thumbs/DSCF1359-small.jpg" /></a><br />
<a href="/pl/london/DSCF1360-big.jpg"><img src="/pl/london/thumbs/DSCF1360-small.jpg" /></a><br />
<a href="/pl/london/DSCF1363-big.jpg"><img src="/pl/london/thumbs/DSCF1363-small.jpg" /></a><br />
<a href="/pl/london/DSCF1364-big.jpg"><img src="/pl/london/thumbs/DSCF1364-small.jpg" /></a><br />
<a href="/pl/london/DSCF1366-big.jpg"><img src="/pl/london/thumbs/DSCF1366-small.jpg" /></a><br />
<a href="/pl/london/DSCF1367-big.jpg"><img src="/pl/london/thumbs/DSCF1367-small.jpg" /></a><br />
<a href="/pl/london/DSCF1369-big.jpg"><img src="/pl/london/thumbs/DSCF1369-small.jpg" /></a><br />
<a href="/pl/london/DSCF1370-big.jpg"><img src="/pl/london/thumbs/DSCF1370-small.jpg" /></a><br />
<a href="/pl/london/DSCF1371-big.jpg"><img src="/pl/london/thumbs/DSCF1371-small.jpg" /></a><br />
<a href="/pl/london/DSCF1373-big.jpg"><img src="/pl/london/thumbs/DSCF1373-small.jpg" /></a><br />
<a href="/pl/london/DSCF1374-big.jpg"><img src="/pl/london/thumbs/DSCF1374-small.jpg" /></a><br />
<a href="/pl/london/DSCF1378-big.jpg"><img src="/pl/london/thumbs/DSCF1378-small.jpg" /></a><br />
<a href="/pl/london/DSCF1380-big.jpg"><img src="/pl/london/thumbs/DSCF1380-small.jpg" /></a><br />
<a href="/pl/london/DSCF1381-big.jpg"><img src="/pl/london/thumbs/DSCF1381-small.jpg" /></a><br />
<a href="/pl/london/DSCF1383-big.jpg"><img src="/pl/london/thumbs/DSCF1383-small.jpg" /></a><br />
<a href="/pl/london/DSCF1384-big.jpg"><img src="/pl/london/thumbs/DSCF1384-small.jpg" /></a><br />
<a href="/pl/london/DSCF1385-big.jpg"><img src="/pl/london/thumbs/DSCF1385-small.jpg" /></a><br />
<a href="/pl/london/DSCF1390-big.jpg"><img src="/pl/london/thumbs/DSCF1390-small.jpg" /></a><br />
<a href="/pl/london/DSCF1403-big.jpg"><img src="/pl/london/thumbs/DSCF1403-small.jpg" /></a><br />
<a href="/pl/london/DSCF1408-big.jpg"><img src="/pl/london/thumbs/DSCF1408-small.jpg" /></a><br />
<a href="/pl/london/DSCF1411-big.jpg"><img src="/pl/london/thumbs/DSCF1411-small.jpg" /></a><br />
<a href="/pl/london/DSCF1423-big.jpg"><img src="/pl/london/thumbs/DSCF1423-small.jpg" /></a><br />
<a href="/pl/london/DSCF1429-big.jpg"><img src="/pl/london/thumbs/DSCF1429-small.jpg" /></a><br />
<a href="/pl/london/DSCF1433-big.jpg"><img src="/pl/london/thumbs/DSCF1433-small.jpg" /></a><br />
<a href="/pl/london/DSCF1434-big.jpg"><img src="/pl/london/thumbs/DSCF1434-small.jpg" /></a><br />
<a href="/pl/london/DSCF1436-big.jpg"><img src="/pl/london/thumbs/DSCF1436-small.jpg" /></a><br />
<a href="/pl/london/DSCF1440-big.jpg"><img src="/pl/london/thumbs/DSCF1440-small.jpg" /></a><br />
<a href="/pl/london/DSCF1444-big.jpg"><img src="/pl/london/thumbs/DSCF1444-small.jpg" /></a><br />
<a href="/pl/london/DSCF1449-big.jpg"><img src="/pl/london/thumbs/DSCF1449-small.jpg" /></a><br />
<a href="/pl/london/DSCF1452-big.jpg"><img src="/pl/london/thumbs/DSCF1452-small.jpg" /></a><br />
<a href="/pl/london/DSCF1460-big.jpg"><img src="/pl/london/thumbs/DSCF1460-small.jpg" /></a><br />
<a href="/pl/london/DSCF1461-big.jpg"><img src="/pl/london/thumbs/DSCF1461-small.jpg" /></a><br />
<a href="/pl/london/DSCF1464-big.jpg"><img src="/pl/london/thumbs/DSCF1464-small.jpg" /></a><br />
<a href="/pl/london/DSCF1466-big.jpg"><img src="/pl/london/thumbs/DSCF1466-small.jpg" /></a><br />
<a href="/pl/london/DSCF1467-big.jpg"><img src="/pl/london/thumbs/DSCF1467-small.jpg" /></a><br />
<a href="/pl/london/DSCF1483-big.jpg"><img src="/pl/london/thumbs/DSCF1483-small.jpg" /></a><br />
<a href="/pl/london/DSCF1486-big.jpg"><img src="/pl/london/thumbs/DSCF1486-small.jpg" /></a><br />
<a href="/pl/london/DSCF1487-big.jpg"><img src="/pl/london/thumbs/DSCF1487-small.jpg" /></a><br />
<a href="/pl/london/DSCF1504-big.jpg"><img src="/pl/london/thumbs/DSCF1504-small.jpg" /></a><br />
<a href="/pl/london/DSCF1508-big.jpg"><img src="/pl/london/thumbs/DSCF1508-small.jpg" /></a><br />
<a href="/pl/london/DSCF1509-big.jpg"><img src="/pl/london/thumbs/DSCF1509-small.jpg" /></a><br />
<a href="/pl/london/DSCF1512-big.jpg"><img src="/pl/london/thumbs/DSCF1512-small.jpg" /></a><br />
<a href="/pl/london/DSCF1525-big.jpg"><img src="/pl/london/thumbs/DSCF1525-small.jpg" /></a><br />
<a href="/pl/london/DSCF1532-big.jpg"><img src="/pl/london/thumbs/DSCF1532-small.jpg" /></a><br />
<a href="/pl/london/DSCF1536-big.jpg"><img src="/pl/london/thumbs/DSCF1536-small.jpg" /></a><br />
<a href="/pl/london/DSCF1556-big.jpg"><img src="/pl/london/thumbs/DSCF1556-small.jpg" /></a><br />
<a href="/pl/london/DSCF1560-big.jpg"><img src="/pl/london/thumbs/DSCF1560-small.jpg" /></a><br />
<a href="/pl/london/DSCF1565-big.jpg"><img src="/pl/london/thumbs/DSCF1565-small.jpg" /></a><br />
<a href="/pl/london/DSCF1571-big.jpg"><img src="/pl/london/thumbs/DSCF1571-small.jpg" /></a><br />
<a href="/pl/london/DSCF1579-big.jpg"><img src="/pl/london/thumbs/DSCF1579-small.jpg" /></a><br />
<a href="/pl/london/DSCF1580-big.jpg"><img src="/pl/london/thumbs/DSCF1580-small.jpg" /></a><br />
<a href="/pl/london/DSCF1583-big.jpg"><img src="/pl/london/thumbs/DSCF1583-small.jpg" /></a><br />
<a href="/pl/london/DSCF1584-big.jpg"><img src="/pl/london/thumbs/DSCF1584-small.jpg" /></a><br />
<a href="/pl/london/DSCF1591-big.jpg"><img src="/pl/london/thumbs/DSCF1591-small.jpg" /></a><br />
<a href="/pl/london/DSCF1593-big.jpg"><img src="/pl/london/thumbs/DSCF1593-small.jpg" /></a><br />
<a href="/pl/london/DSCF1596-big.jpg"><img src="/pl/london/thumbs/DSCF1596-small.jpg" /></a><br />
<a href="/pl/london/DSCF1598-big.jpg"><img src="/pl/london/thumbs/DSCF1598-small.jpg" /></a><br />
<a href="/pl/london/DSCF1602-big.jpg"><img src="/pl/london/thumbs/DSCF1602-small.jpg" /></a><br />
<a href="/pl/london/DSCF1604-big.jpg"><img src="/pl/london/thumbs/DSCF1604-small.jpg" /></a><br />
<a href="/pl/london/DSCF1610-big.jpg"><img src="/pl/london/thumbs/DSCF1610-small.jpg" /></a><br />
<a href="/pl/london/DSCF1611-big.jpg"><img src="/pl/london/thumbs/DSCF1611-small.jpg" /></a><br />
<a href="/pl/london/DSCF1614-big.jpg"><img src="/pl/london/thumbs/DSCF1614-small.jpg" /></a><br />
<a href="/pl/london/DSCF1621-big.jpg"><img src="/pl/london/thumbs/DSCF1621-small.jpg" /></a><br />
<a href="/pl/london/DSCF1623-big.jpg"><img src="/pl/london/thumbs/DSCF1623-small.jpg" /></a><br />
<a href="/pl/london/DSCF1627-big.jpg"><img src="/pl/london/thumbs/DSCF1627-small.jpg" /></a><br />
<a href="/pl/london/DSCF1628-big.jpg"><img src="/pl/london/thumbs/DSCF1628-small.jpg" /></a><br />
<a href="/pl/london/DSCF1631-big.jpg"><img src="/pl/london/thumbs/DSCF1631-small.jpg" /></a><br />
<a href="/pl/london/DSCF1632-big.jpg"><img src="/pl/london/thumbs/DSCF1632-small.jpg" /></a><br />
<a href="/pl/london/DSCF1634-big.jpg"><img src="/pl/london/thumbs/DSCF1634-small.jpg" /></a><br />
<a href="/pl/london/DSCF1635-big.jpg"><img src="/pl/london/thumbs/DSCF1635-small.jpg" /></a><br />
<a href="/pl/london/DSCF1636-big.jpg"><img src="/pl/london/thumbs/DSCF1636-small.jpg" /></a><br />
<a href="/pl/london/DSCF1637-big.jpg"><img src="/pl/london/thumbs/DSCF1637-small.jpg" /></a><br />
<a href="/pl/london/DSCF1639-big.jpg"><img src="/pl/london/thumbs/DSCF1639-small.jpg" /></a><br />
<a href="/pl/london/DSCF1641-big.jpg"><img src="/pl/london/thumbs/DSCF1641-small.jpg" /></a><br />
<a href="/pl/london/DSCF1642-big.jpg"><img src="/pl/london/thumbs/DSCF1642-small.jpg" /></a><br />
<a href="/pl/london/DSCF1643-big.jpg"><img src="/pl/london/thumbs/DSCF1643-small.jpg" /></a><br />
<a href="/pl/london/DSCF1645-big.jpg"><img src="/pl/london/thumbs/DSCF1645-small.jpg" /></a><br />
<a href="/pl/london/DSCF1646-big.jpg"><img src="/pl/london/thumbs/DSCF1646-small.jpg" /></a><br />
<a href="/pl/london/DSCF1647-big.jpg"><img src="/pl/london/thumbs/DSCF1647-small.jpg" /></a><br />
<a href="/pl/london/DSCF1648-big.jpg"><img src="/pl/london/thumbs/DSCF1648-small.jpg" /></a><br />
<a href="/pl/london/DSCF1650-big.jpg"><img src="/pl/london/thumbs/DSCF1650-small.jpg" /></a><br />
<a href="/pl/london/DSCF1651-big.jpg"><img src="/pl/london/thumbs/DSCF1651-small.jpg" /></a><br />
<a href="/pl/london/DSCF1653-big.jpg"><img src="/pl/london/thumbs/DSCF1653-small.jpg" /></a><br />
<a href="/pl/london/DSCF1655-big.jpg"><img src="/pl/london/thumbs/DSCF1655-small.jpg" /></a><br />
<a href="/pl/london/DSCF1656-big.jpg"><img src="/pl/london/thumbs/DSCF1656-small.jpg" /></a><br />
<a href="/pl/london/DSCF1658-big.jpg"><img src="/pl/london/thumbs/DSCF1658-small.jpg" /></a><br />
<a href="/pl/london/DSCF1663-big.jpg"><img src="/pl/london/thumbs/DSCF1663-small.jpg" /></a><br />
<a href="/pl/london/DSCF1666-big.jpg"><img src="/pl/london/thumbs/DSCF1666-small.jpg" /></a><br />
<a href="/pl/london/DSCF1670-big.jpg"><img src="/pl/london/thumbs/DSCF1670-small.jpg" /></a><br />
<a href="/pl/london/DSCF1671-big.jpg"><img src="/pl/london/thumbs/DSCF1671-small.jpg" /></a><br />
<a href="/pl/london/DSCF1674-big.jpg"><img src="/pl/london/thumbs/DSCF1674-small.jpg" /></a><br />
<a href="/pl/london/DSCF1679-big.jpg"><img src="/pl/london/thumbs/DSCF1679-small.jpg" /></a><br />
<a href="/pl/london/DSCF1681-big.jpg"><img src="/pl/london/thumbs/DSCF1681-small.jpg" /></a><br />
<a href="/pl/london/DSCF1684-big.jpg"><img src="/pl/london/thumbs/DSCF1684-small.jpg" /></a><br />
<a href="/pl/london/DSCF1687-big.jpg"><img src="/pl/london/thumbs/DSCF1687-small.jpg" /></a><br />
<a href="/pl/london/DSCF1691-big.jpg"><img src="/pl/london/thumbs/DSCF1691-small.jpg" /></a><br />
<a href="/pl/london/DSCF1693-big.jpg"><img src="/pl/london/thumbs/DSCF1693-small.jpg" /></a><br />
<a href="/pl/london/DSCF1700-big.jpg"><img src="/pl/london/thumbs/DSCF1700-small.jpg" /></a><br />
<a href="/pl/london/DSCF1704-big.jpg"><img src="/pl/london/thumbs/DSCF1704-small.jpg" /></a><br />
<a href="/pl/london/DSCF1705-big.jpg"><img src="/pl/london/thumbs/DSCF1705-small.jpg" /></a><br />
<a href="/pl/london/DSCF1707-big.jpg"><img src="/pl/london/thumbs/DSCF1707-small.jpg" /></a><br />
<a href="/pl/london/DSCF1714-big.jpg"><img src="/pl/london/thumbs/DSCF1714-small.jpg" /></a><br />
<a href="/pl/london/DSCF1716-big.jpg"><img src="/pl/london/thumbs/DSCF1716-small.jpg" /></a><br />
<a href="/pl/london/DSCF1717-big.jpg"><img src="/pl/london/thumbs/DSCF1717-small.jpg" /></a><br />
<a href="/pl/london/DSCF1721-big.jpg"><img src="/pl/london/thumbs/DSCF1721-small.jpg" /></a><br />
<a href="/pl/london/DSCF1723-big.jpg"><img src="/pl/london/thumbs/DSCF1723-small.jpg" /></a><br />
<a href="/pl/london/DSCF1729-big.jpg"><img src="/pl/london/thumbs/DSCF1729-small.jpg" /></a><br />
<a href="/pl/london/DSCF1731-big.jpg"><img src="/pl/london/thumbs/DSCF1731-small.jpg" /></a><br />
<a href="/pl/london/DSCF1734-big.jpg"><img src="/pl/london/thumbs/DSCF1734-small.jpg" /></a><br />
<a href="/pl/london/DSCF1736-big.jpg"><img src="/pl/london/thumbs/DSCF1736-small.jpg" /></a><br />
<a href="/pl/london/DSCF1742-big.jpg"><img src="/pl/london/thumbs/DSCF1742-small.jpg" /></a><br />
<a href="/pl/london/DSCF1744-big.jpg"><img src="/pl/london/thumbs/DSCF1744-small.jpg" /></a><br />
<a href="/pl/london/DSCF1748-big.jpg"><img src="/pl/london/thumbs/DSCF1748-small.jpg" /></a><br />
<a href="/pl/london/DSCF1749-big.jpg"><img src="/pl/london/thumbs/DSCF1749-small.jpg" /></a><br />
<a href="/pl/london/DSCF1752-big.jpg"><img src="/pl/london/thumbs/DSCF1752-small.jpg" /></a><br />
<a href="/pl/london/DSCF1755-big.jpg"><img src="/pl/london/thumbs/DSCF1755-small.jpg" /></a><br />
<a href="/pl/london/DSCF1761-big.jpg"><img src="/pl/london/thumbs/DSCF1761-small.jpg" /></a><br />
<a href="/pl/london/DSCF1762-big.jpg"><img src="/pl/london/thumbs/DSCF1762-small.jpg" /></a><br />
<a href="/pl/london/DSCF1766-big.jpg"><img src="/pl/london/thumbs/DSCF1766-small.jpg" /></a><br />
<a href="/pl/london/DSCF1769-big.jpg"><img src="/pl/london/thumbs/DSCF1769-small.jpg" /></a><br />
<a href="/pl/london/DSCF1772-big.jpg"><img src="/pl/london/thumbs/DSCF1772-small.jpg" /></a><br />
<a href="/pl/london/DSCF1773-big.jpg"><img src="/pl/london/thumbs/DSCF1773-small.jpg" /></a><br />
<a href="/pl/london/DSCF1777-big.jpg"><img src="/pl/london/thumbs/DSCF1777-small.jpg" /></a><br />
<a href="/pl/london/DSCF1780-big.jpg"><img src="/pl/london/thumbs/DSCF1780-small.jpg" /></a><br />
<a href="/pl/london/DSCF1793-big.jpg"><img src="/pl/london/thumbs/DSCF1793-small.jpg" /></a><br />
<a href="/pl/london/DSCF1796-big.jpg"><img src="/pl/london/thumbs/DSCF1796-small.jpg" /></a><br />
<a href="/pl/london/DSCF1803-big.jpg"><img src="/pl/london/thumbs/DSCF1803-small.jpg" /></a><br />
<a href="/pl/london/DSCF1805-big.jpg"><img src="/pl/london/thumbs/DSCF1805-small.jpg" /></a><br />
<a href="/pl/london/DSCF1811-big.jpg"><img src="/pl/london/thumbs/DSCF1811-small.jpg" /></a><br />
<a href="/pl/london/DSCF1821-big.jpg"><img src="/pl/london/thumbs/DSCF1821-small.jpg" /></a><br />
<a href="/pl/london/DSCF1823-big.jpg"><img src="/pl/london/thumbs/DSCF1823-small.jpg" /></a><br />
<a href="/pl/london/DSCF1832-big.jpg"><img src="/pl/london/thumbs/DSCF1832-small.jpg" /></a><br />
<a href="/pl/london/DSCF1837-big.jpg"><img src="/pl/london/thumbs/DSCF1837-small.jpg" /></a><br />
<a href="/pl/london/DSCF1838-big.jpg"><img src="/pl/london/thumbs/DSCF1838-small.jpg" /></a><br />
<a href="/pl/london/DSCF1840-big.jpg"><img src="/pl/london/thumbs/DSCF1840-small.jpg" /></a><br />
<a href="/pl/london/DSCF1846-big.jpg"><img src="/pl/london/thumbs/DSCF1846-small.jpg" /></a><br />
<a href="/pl/london/DSCF1851-big.jpg"><img src="/pl/london/thumbs/DSCF1851-small.jpg" /></a><br />
<a href="/pl/london/DSCF1853-big.jpg"><img src="/pl/london/thumbs/DSCF1853-small.jpg" /></a><br />
<a href="/pl/london/DSCF1856-big.jpg"><img src="/pl/london/thumbs/DSCF1856-small.jpg" /></a><br />
<a href="/pl/london/DSCF1857-big.jpg"><img src="/pl/london/thumbs/DSCF1857-small.jpg" /></a><br />
<a href="/pl/london/DSCF1866-big.jpg"><img src="/pl/london/thumbs/DSCF1866-small.jpg" /></a><br />
<a href="/pl/london/DSCF1870-big.jpg"><img src="/pl/london/thumbs/DSCF1870-small.jpg" /></a><br />
<a href="/pl/london/DSCF1872-big.jpg"><img src="/pl/london/thumbs/DSCF1872-small.jpg" /></a><br />
<a href="/pl/london/DSCF1873-big.jpg"><img src="/pl/london/thumbs/DSCF1873-small.jpg" /></a><br />
<a href="/pl/london/DSCF1878-big.jpg"><img src="/pl/london/thumbs/DSCF1878-small.jpg" /></a><br />
<a href="/pl/london/DSCF1879-big.jpg"><img src="/pl/london/thumbs/DSCF1879-small.jpg" /></a><br />
<a href="/pl/london/DSCF1881-big.jpg"><img src="/pl/london/thumbs/DSCF1881-small.jpg" /></a><br />
<a href="/pl/london/DSCF1883-big.jpg"><img src="/pl/london/thumbs/DSCF1883-small.jpg" /></a><br />
<a href="/pl/london/DSCF1886-big.jpg"><img src="/pl/london/thumbs/DSCF1886-small.jpg" /></a><br />
<a href="/pl/london/DSCF1889-big.jpg"><img src="/pl/london/thumbs/DSCF1889-small.jpg" /></a><br />
<a href="/pl/london/DSCF1891-big.jpg"><img src="/pl/london/thumbs/DSCF1891-small.jpg" /></a><br />
<a href="/pl/london/DSCF1897-big.jpg"><img src="/pl/london/thumbs/DSCF1897-small.jpg" /></a><br />
<a href="/pl/london/DSCF1907-big.jpg"><img src="/pl/london/thumbs/DSCF1907-small.jpg" /></a><br />
<a href="/pl/london/DSCF1919-big.jpg"><img src="/pl/london/thumbs/DSCF1919-small.jpg" /></a><br />
<a href="/pl/london/DSCF1921-big.jpg"><img src="/pl/london/thumbs/DSCF1921-small.jpg" /></a><br />
<a href="/pl/london/DSCF1926-big.jpg"><img src="/pl/london/thumbs/DSCF1926-small.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2009/02/28/londyn-2009-zdjecia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lifehacks, self-help - 5 książek, które sprostały próbie czasu</title>
		<link>http://www.stifflog.com/pl/index.php/2007/09/26/lifehacks-self-help-5-ksiazek-ktore-sprostaly-probie-czasu/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/09/26/lifehacks-self-help-5-ksiazek-ktore-sprostaly-probie-czasu/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 20:54:22 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Getting Things Done]]></category>

		<category><![CDATA[Lifehacks]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/09/26/lifehacks-self-help-5-ksiazek-ktore-sprostaly-probie-czasu/</guid>
		<description><![CDATA[1. The Magic Of Thinking Big
Ta książka adresuje problem, który faktycznie wydaję się poważnie ograniczać wiele osób. Najprościej mówiąc, jest to pozycja na temat &#8220;wiary w siebie&#8221;. Autor stara się wyrobić w czytelniku odpowiednie nawyki myślowe - zaprzestanie narzekania, robienia wymówek samemu sobie, czy wymyślania powodów dla których coś nie może się udać, na rzecz [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. <a href="http://www.amazon.com/Magic-Thinking-Big-David-Schwartz/dp/0671646788">The Magic Of Thinking Big</a></strong></p>
<p>Ta książka adresuje problem, który faktycznie wydaję się poważnie ograniczać wiele osób. Najprościej mówiąc, jest to pozycja na temat &#8220;wiary w siebie&#8221;. Autor stara się wyrobić w czytelniku odpowiednie nawyki myślowe - zaprzestanie narzekania, robienia wymówek samemu sobie, czy wymyślania powodów dla których coś nie może się udać, na rzecz aktywnego szukania rozwiązań z pozytywnym nastawieniem. Pierwszy raz słuchałem &#8220;The Magic Of Thinking Big&#8221; w postaci audiobooka pare lat temu, wiele fragmentów pamiętam i często przychodzą mi do głowy do dziś. &#8220;Man belongs, where man wants to go&#8221;.<span id="more-98"></span></p>
<p><strong>2. <a href="http://www.merlin.com.pl/frontend/browse/product/1,347359.html">Psychocybernetyka</a> / <a href="http://www.amazon.com/Psycho-Cybernetics-New-More-Living-Life/dp/0671700758">Psycho-cybernetics</a></strong></p>
<p>Z tego dość już leciwego podręcznika &#8220;psychocybernetyki&#8221;, wręcz bije optymizm. Czytając ma się wrażenie, jakoby autor podchodził do czytelników z ogromną empatią, podobnie jak do ludzi, których przypadki opisane są w książce. Jest tu po trochu wszystkiego - omawiane jest działanie podświadomości, wizualizacja, radzenie sobie z lękami i wyimaginowanymi ograniczeniami, relaksacja, swoista terapia kognitywna (racjonalizowanie własnych poglądów na otoczenie), itp. itd. Przez całość przewija się motyw &#8220;Automatycznego Mechanizmu Sukcesu&#8221;, w który mamy jako ludzie być wyposażeni. Można sceptycznie podchodzić do takich terminów, jednak nie da się zaprzeczyć że nasz mózg posiada ogromnę możliwości, z których wielu nie jesteśmy świadomi i/lub nie potrafimy wykorzystać. Wszystkie techniki omówione są na przykładach z praktyki autora, chirurga plastycznego, który w trakcie praktyki zaobserwował, iż część jego pacjentów potrzebuje nie zmiany swojego fizycznego wyglądu, a raczej plastyki sposobu myślenia. &#8220;Psychocybernetyka&#8221; nie ma durnych kontynuacji, nie da się posądzać autora o jakiekolwiek próby wyłudzenia kasy, duży nacisk położony jest na wdrażanie omawianych porad w życie i praktyczne ćwiczenia - prawdziwa perełka. Przekaz jest na tyle uniwersalny, że książkę łatwo stracić na rzecz kolegi/koleżanki albo kogoś z rodziny. Sam chyba nie wykorzystałem jeszcze nawet małej części potencjału tej książki, a już została przechwycona :)</p>
<p><strong>3. <a href="http://www.merlin.com.pl/frontend/browse/product/1,475530.html">Sztuka Efektywności</a> / <a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280">Getting Things Done</a></strong></p>
<p>Klasyk w dziedzinie zarządzania czasem. Główny problem z tą książką polega na tym, że uczy ona jak wykonać jak największą ilosć zadań w jak najkrótszym czasie, nie zwraca natomiast uwagi na przykład na to, jak tą ilość zredukować i na jakiej zasadzie ustalać priorytety. Taki &#8220;low-level&#8221;, posługując się terminologią informatyczną. Tak czy inaczej, książka z pewnością warta przeczytania, najlepiej w kompanii z &#8220;The Four Hour Work Week&#8221;. Jeszcze lepsze są seminaria Allena w postaci audio, obecnie niestety trudno dostępne. GTD poświęciłem serie wpisów, OnePress oferuje polskie wydanie orginalnego tomu, do tego tonę informacji można znaleźć na innych blogach, nie będe się więc tu rozpisywał. GTD było swego czasu niezłym szokiem dla mojego chaotycznego życia. Niestety, cała sztuka jak zwykle polega na długoterminowym utrzymaniu efektów.</p>
<p><strong>4. <a href="http://www.amazon.com/Mastery-Keys-Success-Long-Term-Fulfillment/dp/0452267560">Mastery</a></strong></p>
<p>Tą pozycje podłapałem z <a href="http://personalmba.com/">&#8220;Personal MBA&#8221;</a>. To taki &#8220;Flow&#8221; + &#8220;The Dip&#8221; w jednym - książka podkreśla przyjemność i spełnienie płynące z ciągłego doskonalenia się w ukochanej dziedzinie. Jest tu co nieco o różnych podejściach do osiągania mistrzostwa, o tym dlaczego większości ludzi nie udaję się go zdobyć i co można zrobić, żeby stan ten poprawić. Skrytykowana jest tu amerykańska kultura konsumpcyjna, oferująca &#8220;łatwe rozwiązania&#8221; wszelkich możliwych problemów, co powinno dać do myślenia każdemu spędzającemu zbyt wiele czasu na czytaniu self-helpu&#8230; Wspominam o &#8220;Flow&#8221;, ponieważ ścieżka opisana w &#8220;Mastery&#8221;, jest chyba najprostszą drogą do regularnego osiągania tego stanu. Jest tu zresztą trochę odwołań do zen, sztuk walki i ogólnie myśli wschodniej, która właściwie jest pewnie jednym z najlepszych źródeł &#8220;lifehacków&#8221; i która chyba jako pierwsza zaczeła opisywać i niejako prowokować takie pół-transowe stany w czasie pracy czy własnie walki. Wschodni duch i ścieżke Mastery można streścić cytatem z <a href="http://academic.brooklyn.cuny.edu/core9/phalsall/texts/taote-v3.html">Tao Te Ching</a>:</p>
<pre>
     A truly good man is unaware
    of the good deeds he performs.
  Conversely, a foolish man must try
        continuously to be good.

A good man seems to do little or nought,
     yet he leaves nothing undone.
   A foolish man must always strive,
     whilst leaving much undone.
</pre>
<p><strong>5. <a href="http://www.amazon.com/TBK-Fitness-Program-Tamir-Katz/dp/1403392595">TBK Fitness</a></strong></p>
<p>To jedyna chyba pozycja na rynku sensownie prezentująca optymalizację życia od strony najbardziej podstawowej - fizycznej. Tania, niezbyt gruba książka przedstawia dietę niskowęglowodanową, opartą głównie na mięsie, orzechach, warzywach i owocach, program ćwiczeń z użyciem obciążenia własnego ciała, możliwy do wykonania praktycznie dla każdego (dla kolejnych poziomów zaawansowania opisana jest progresja od podstawowego planu) i trochę ogólnych porad na temat higieny życia. Autor jest lekarzem medycyny, wywody nie są wzięte Bóg wie skąd, a poparte badaniami naukowymi, więc całość nie budzi merytorycznych wątpliwości. Dieta + sen + oddychanie + ćwiczenie potrafi zdziałać prawdziwe cuda, toteż zastosowanie treści tej książki może być dla wielu gigantycznym lifehackiem.</p>
<p><strong>Scum</strong></p>
<p>Czytałem lub przeglądałem jeszcze (z tego co pamiętam): &#8220;Think and grow rich&#8221;, &#8220;7 habits of highly effective people&#8221;, &#8220;Now, discover your strenghts&#8221; (tu pewnie posypią się gromy), &#8220;Ready for anything&#8221;, &#8220;Games people play&#8221;, &#8220;Never eat alone&#8221;, książki telemarketerów (Anthony Robbins, Brian Tracy, Zig Ziglar czy inny Og Mandino), &#8220;Feel the fear and do it anyway&#8221;, &#8220;Rich dad, poor dad&#8221;, &#8220;The 80/20 principle&#8221;, &#8220;The power of your subconscious mind&#8221;, &#8220;8th habit&#8221;, książki o hunie, o inteligencji emocjonalnej, o nlp (mam odruch wymiotny na samą myśl o) i pewnie sporo o których zapomniałem. Niestety, z perspektywy czasu, była to w większości strata cennego czasu i pieniędzy. Często pare stron w jednej z najlepszych książek oddaje wyraźniej to, na co inny autor poświęcił cały, sporych rozmiarów tom. Nie wspominając już o absolutnych dyrdymałach na jakie można się naciąć, często w wychwalanych &#8220;na Internecie&#8221; pozycjach.</p>
<p>Zachęcam więc do ostrożnego selekcjonowania i kupowania książek, szczególnie tego typu. Tym bardziej, że wdrożenie w życie ww. 5 pozycji + nowego faworyta w postaci <a href="http://www.fourhourworkweek.com/">4HWW</a>, to zabawa w zasadzie na całe życie, nawet gdyby miało trwać 120 lat. Brakuje mi może jedynie jakiejś dobrej pozycji na temat kreatywności.</p>
<p>Dziękuje za uwagę i życzę miłej lektury.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/09/26/lifehacks-self-help-5-ksiazek-ktore-sprostaly-probie-czasu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Czterogodzinny tydzień pracy</title>
		<link>http://www.stifflog.com/pl/index.php/2007/09/24/czterogodzinny-tydzien-pracy/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/09/24/czterogodzinny-tydzien-pracy/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 19:13:20 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Inne]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/09/24/czterogodzinny-tydzien-pracy/</guid>
		<description><![CDATA[Tematyka self-helpu, organizacji czasu, &#8220;lifehacków&#8221; kawałek czasu temu mi się przejadła. Niestety, większość opracowań tego rodzaju opiera się głównie na wykorzystywaniu wad naszej (tj. ludzkiej) osobowości, a przede wszystkim naiwności. Wystarczy naobiecywać używająć odpowiedniego tonu, dodać trochę sprawdzonych truizmów i &#8220;produkt informacyjny&#8221; gotowy. Mistrzem tego rodzaju wydawnictw jest Anthony Robbins, który powinien raczej tworzyć seminaria [...]]]></description>
			<content:encoded><![CDATA[<p>Tematyka self-helpu, organizacji czasu, &#8220;lifehacków&#8221; kawałek czasu temu mi się przejadła. Niestety, większość opracowań tego rodzaju opiera się głównie na wykorzystywaniu wad naszej (tj. ludzkiej) osobowości, a przede wszystkim naiwności. Wystarczy naobiecywać używająć odpowiedniego tonu, dodać trochę sprawdzonych truizmów i &#8220;produkt informacyjny&#8221; gotowy. Mistrzem tego rodzaju wydawnictw jest Anthony Robbins, który powinien raczej tworzyć seminaria na temat manipulacji ludźmi lub sztuki skutecznej prezentacji, jego audiobooki lepiej prezentują się bowiem pod tym względem, nie urzekając zawartością. Nawet co lepsze książki / podcasty / audiobooki / filmy rzadko kiedy są w stanie przynieść zauważalne i __pernamentne__ efekty. Pozatym, czytając dziesięty raz tą samą oklepaną, chcę się zakrzyknąć - &#8220;bullsh*t!&#8221;, podobnie jak czytając opowieści niejakiego Stefka na temat telekinezy.<span id="more-97"></span></p>
<p>Niedawno jednak zakupiłem pozycję, o której grzechem byłoby tu nie napisać - &#8220;The 4-Hour Work Week&#8221;, którą to napisał Timothy Ferriss. Książka jest dobra wręcz zaskakująco, pierwszy raz odkąd siedzę trochę w &#8220;branży&#8221; pozycji tego rodzaju zdarzyło mi się studiować nie-aż-tak-grubą książkę (300 stron) przez miesiąc, wielokrotnie wracając do tych samych fragmentów. </p>
<p>Już sam tytuł wiele wyjaśnia - m. in. to, dlaczego wolę rady Ferrissa od &#8220;Getting Things Done&#8221;. GTD w najprostszej definicji to bowiem sztuka &#8220;upychania&#8221; jak największej ilości zadań w pewnej skończonej ilości czasu (przy okazji warto zauważyć, ze &#8220;skończona ilość czasu&#8221;, to tutaj cały główny problem) . Cały jednak trik polega na tym, że to, do czego większość ludzi naprawdę dąży, to nareszcie trochę spokoju i oddechu, a kiedy sam oddech już się znudzi realizowanie się w swoich pasjach i wraz ze swoimi bliskimi. W GTD to właśnie założenie napomniane jest jako cel, ale techniki i treść samej książki wydają się niespecjalnie dążyć w tym kierunku czy drążyć temat. Nie chodzi mi tu o krytykę systemu, wciąż uważam że jest to jedna z najważniejszych wypracowanych metod radzenia sobie z wypełnionym zajęciami żywotem, nie mniej jednak obecnie uważam 4HWW za dużo lepszą pozycję/system.</p>
<p>Wiem, powyższe może zabrzmieć identycznie jak wyżej wymieniony bullshit. Różnica polega na tym, że ta książka nie marnuje stron na przynudzanie i obiecywanie, jest za to wypełniona technikami pozwalającymi zrealizować te podstawowe, objaśnione na początku założenia. Materiał jest obszerny - autor przerabia m. in. tworzenie w miarę dochodowego biznesu którym nie trzeba będzie zarządać, podróżowanie po świecie, pracę zdalną, &#8220;zarządzanie&#8221; informacjami, naukę języków i wypełnianie pustki powstałej poprzez zwolnienie całego czasu. Nie jest to więc ani książka o zarządzaniu czasem, ani pozycja typowo biznesowa, to jest coś jak plan na życie, lub patrząc inaczej raport z ucieczki od &#8220;wyścigu szczurów&#8221;, omawiający wszystkie detale i doświadczenia jakie uzyskał autor.</p>
<p>Co więcej, techniki te są bardzo często skuteczne (wiele zdążyłem już przetestować), a także odważne + kreatywne, co bardzo sobie cenię. Autor radzi na przykład radykalnie obniżyć ilość przetwarzanych informacji poprzez ograniczenie sprawdzania maili do jednej sesji tygodniowo, zaprzestania czytania jakichkolwiek gazet codziennych czy typu tzw. &#8220;informacyjnego&#8221;, rezygnację z czytania książek specjalistycznych bez natychmiastowego zastosowania dla opisywanej technologii (czy czego tam), gdyż i tak wiedza taka bardzo szybko ulatuje z głowy, i tak dalej. Ferriss pokazuję też jak kulturalnie &#8220;spławiać&#8221; ciągle przerywających pracę petentów czy jak obronić się przed piekłem &#8220;spotkań biznesowych&#8221;. Triki są sprytne, i raczej trudno się z nimi spotkać gdzie indziej. Nawet znane mi już wcześniej pojęcia, jak zasada 80/20 (alias zasada Pareto), znajdują to oryginalne zastosowanie. Całkiem ciekawe techniki szybkiego czytania opisane są na jednej stronie, co daje pojęcie na temat upakowania kontentu w książce (normalnie pewnie powstałaby z tego osobna pozycja).</p>
<p>Sprytny jest też sam Tim. Z książki można się dowiedzieć jak wykorzystując lukę w przepisach został mistrzem kraju w kick boxingu po miesiącu treningu czy jak szlifował oceny na studiach zadręczając profesorów. Bardzo ciekawy jest też <a href="http://fourhourworkweek.com/blog/">blog</a> książki, zawierający jeszcze więcej świetnych hacków.  Polecam szczególnie <a href="http://www.fourhourworkweek.com/blog/2007/08/25/the-creativity-elixir-is-genius-on-demand-possible/">wpis</a> o kreatywności, chociaż np. relacja ze zbudowania 15kg mięśni w łącznie 4 godziny treningu daję pojęcie na temat tego, jak wiele autorowi udało się zopytmalizować.</p>
<p>Gdybym miał przeczytać w tym roku tylko jedną książke, chciałbym żeby to była ta. A już na pewno jest to moje najlepiej wydane 20$ w roku 2007. Polecam, chociaż nie, nikt mi za to nie zapłacił ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/09/24/czterogodzinny-tydzien-pracy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Palm T&#124;X, a GTD i nie tylko</title>
		<link>http://www.stifflog.com/pl/index.php/2007/04/06/palm-tx-a-gtd-i-nie-tylko/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/04/06/palm-tx-a-gtd-i-nie-tylko/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 11:24:20 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Getting Things Done]]></category>

		<category><![CDATA[Inne]]></category>

		<category><![CDATA[Lifehacks]]></category>

		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/04/06/palm-tx-a-gtd-i-nie-tylko/</guid>
		<description><![CDATA[Natchniony jakąś dziwną weną wyłożyłem niedawno nieco gotówki i zakupiłem sobie palmtopa, a konkretnie model Palm T&#124;X wraz z dwugigabajtową kartą SD. Może to po prostu była mi potrzebna jakaś nowa &#8220;zabawka&#8221;, a że nie posiadałem dotąd nigdy tego typu komputera, ani nawet nie używałem takowego dłużej niż 2 minuty, T&#124;X spełnia to kryterium doskonale.
Piszę [...]]]></description>
			<content:encoded><![CDATA[<p>Natchniony jakąś dziwną weną wyłożyłem niedawno nieco gotówki i zakupiłem sobie palmtopa, a konkretnie model <a href="http://www.palm.com/us/products/handhelds/tx/">Palm T|X</a> wraz z dwugigabajtową kartą SD. Może to po prostu była mi potrzebna jakaś nowa &#8220;zabawka&#8221;, a że nie posiadałem dotąd nigdy tego typu komputera, ani nawet nie używałem takowego dłużej niż 2 minuty, T|X spełnia to kryterium doskonale.</p>
<p>Piszę &#8220;zabawka&#8221;, ponieważ Palm okazał się także solidnym narzędziem. W ładnym szarym pudełku otrzymujemy naszą maszynkę, do tego ładowarkę z zestawem wymiennych wtyków (dopasowanych do różnych standardów &#8220;elektrycznych&#8221;), kabel USB, doczepianą &#8220;okładkę&#8221; na palma z czegoś skóropodobnego, płyte z rozmaitym softwarem i bonusami (np. garść ebooków w palmowym formacie pdb) plus bajery w rodzaju naklejek objaśniających sposób wprowadzania tekstu do Palma.</p>
<p>Sam komputer jest bardzo dobry. Ładnie wygląda, przy czym nie jest to typowy obecnie gadżetowy design, mamy tu doczynienia bardziej z &#8220;biznesową&#8221; elegancją. W środku kryje się ponad 300-megaherzowy procesor Intel, 128 mb pamięci, wbudowane WiFi i Bluetooth, ekran o rozdzielczości 320&#215;480 pikseli i gniazdo pamięci SD/MMC. Pod wyświetlaczem mamy 4-kierunkowy kontroler z przyciskiem oraz cztery dodatkowe guziki, które domyślnie umożliwiają szybki dostęp do ulubionych aplikacji.</p>
<p><span id="more-96"></span></p>
<p><a href="http://img375.imageshack.us/my.php?image=palmhh9.jpg" target="_blank"><img src="http://img375.imageshack.us/img375/6416/palmhh9.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" align="left" style="margin: 5px;"/></a>Właściwie pierwszą rzeczą jaką zrobiłem z Palmem było podłączenie go do komputera żeby co nieco poeksperymentować i tu przyszła pora na pierwsze minusy - Palmowe połączenie z PC przez USB ssie pod wieloma względami. Po pierwsze, wetkniety kabel ciężko jest wytknąć, mocowanie jest zrobione jakoś wybitnie idiotycznie. Do tego w domyślnym zestawie oprogramowania nie ma nic, czego możnaby użyć żeby karta SD w Palmie została rozpoznana jak &#8220;pamięć masowa USB&#8221; w komputerze, możliwy jest tylko dostęp do wbudowanej, 128 megabajtowej pamięci Palma za pomocą specjalizowanych aplikacji. Kiedy uda się już przez to przebrnąć (kupując/ściągając odpowiedni program), połączenie jest dość ślamazarne. Problem rozwiązuje wprawdzie czytnik kart Flash pod USB 2.0 który można dość tanio kupić, niemniej jednak ssanie pozostaje ssaniem. Wolałbym też jakieś sensowne pudełko zamiast kawałka skóry doczepionego za pomocą czegoś przypominającego taśme, ale jak rozumiem wynika to z cięcia kosztów - maszynka jak na swoje parametry dostępna jest w stosunkowo niskiej cenie.</p>
<p>Pracą na komputerku steruje Palm OS 5. Rzuca się w oczy najbardziej jedna nietypowa cecha - aplikacje nie posiadają nigdzie guzika &#8220;exit&#8221;. System niby nie jest prawdziwie wielezadaniowy, ale sprytnie to udaje. Kiedy chcemy przejść z jednej aplikacji do innej wciskamy po prostu guzik &#8220;home&#8221; i wybieramy odpowiednią kolorową ikonkę. Kiedy jednak wybierzemy taki program, którego już wcześniej używaliśmy, nie uruchomi się on od nowa, lecz od razu w stanie w jakim go zostawiliśmy. Część programów ma też &#8220;background mode&#8221;, dzięki czemu można np. słuchać muzyki podczas używania dowolnego programu.</p>
<p>Dołączony zestaw oprogramowania jest całkiem niezły i tak naprawdę część różnych sharewareowych &#8220;usprawnień&#8221; które testowałem wnosiła więcej zamieszania niż rozwiązywała problemów. Na tym zresztą polega filozofia <a href="http://www.access-company.com/developers/documents/docs/zenofpalm/ZenTOC.html">&#8220;zen of palm&#8221;</a>, dokument który opisuje tworzenie aplikacji na tą platformę, kładąc nacisk na nieprzeładowywanie oprogramowania zbędnymi funkcjami. Jest to tutaj sensownie realizowane, w przeciwieństwie np. do Gnome, gdzie podobna filozofia skutkuje kalekimi aplikacjami.</p>
<p>Bardzo spodobał mi się wbudowany kalendarz, można zastosować kilka trików które nie przechodzą z wersja papierową - np. ustawić sobie powtarzający się co tydzień task pod tytułem &#8220;Weekly review&#8221; i dołączyć doń notatkę z listą rzeczy do przejrzenia podczas takiego przeglądu. Po komputer sięga się chętniej niż po nudny kalendarz i nawyk sprawdzenia co też jest zaplanowane na dzisiaj dużo łatwiej się utrwala.</p>
<p>Drugie podstawowe narzędzie to Memo, czyli powiedzmy menadżer notatek. Tu przydałoby się coś bardziej ambitnego, choćby outliner z podstawowymi funkcjami. Czcionki są duże, przez co na ekranie mieści sie mało, a odrobinę dłuższa nazwa kategorii typu &#8220;Someday/maybe&#8221; już jest przycinana. Dobrze, że jest darmowy i trochę bardziej sensowny <a href="http://www.jove21.com/palm/palmware/psmemo/?ex-lang=en">PsMemo</a>, z mniejszymi fontami, wyszukiwaniem, linkowaniem i kilkoma innymi przyjemnymi dodatkami. Wypada tu wspomnieć nieco więcej o samym wprowadzaniu tekstu do Palma - nie ma on rzeczywistej klawiatury, możemy jedynie korzystać z takiej wyświetlonej na dotykowym ekranie bądź wpisywać tekst literka po literce za pomocą alfabetu &#8220;Grafitti 2&#8243;. Obiegowa opinia mówi, że Grafitti 2 jest dużo gorsza niż pierwotna wersja, zmieniona z powodu problemów z patentami. Ja sam nie miałem jeszcze okazji sprawdzić jak działa oryginał (można go z pomocą jakiegoś drobnego hacka przywrócić), miałem natomiast wątpliwą przyjemność sprawdzić że dwójka faktycznie jest mocno średnia. Nie ma nic bardziej frustrującego niż wprowadzania jednego zdania przez dobrą minutę czy więcej&#8230; Tu też zostaje mi wciąż najwięcej do zbadania, mnóstwo jest aplikacji mających to wprowadzanie danych usprawnić. Są też składane, bezprzewodowe klawiatury, ale po rozłożeniu są one na tyle duże, że chyba wolałbym już otworzyć laptopa.</p>
<p>Z reszty oprogramowania dostajemy przeglądarkę grafiki/filmów, odsłuchiwarkę do muzyki, przeglądarkę WWW, przeglądarke palmowych ebooków (trzeba ją doinstalować z dołączonej płyty CD), klienta poczty, menadżer wydatków oraz przenośne wersje Worda/Excela/PowerPointa. Wszystko raczej niezbyt rozbudowane, ale dobrze spełniające swoje funkcje i często bardziej użyteczne niż wskazywałaby na to zawartość menu. Warto tu też wspomnieć, że odpowiedni guzik w pasku statusu PalmOS przełącza wyświetlacz z trybu &#8220;portretowego&#8221; w &#8220;panoramiczny&#8221; - dzięki temu oglądanie filmów czy czytanie pdfów (z <a href="http://www.metaviewsoft.de/en/Software/PalmOS/Freeware/PalmPDF/index.html">PalmPDF</a>) nawet w formacie a4 ma sens (choć dobry wzrok mocno wskazany). W warstwie dźwiękowej Palm posiada z tyłu głośnik, całkiem niezły jak na coś zintegrowanego w takim małym urządzonku. Jest też standardowe wyjście typu mały jacek, wyprowadzające sygnał o całkiem sensownej mocy, można więc spokojnie delektować się muzyką w słuchawkach przy ustawieniu sporo poniźej maksymalnej głośności.</p>
<p>Niestety, większość ciekawego dodatkowego oprogramowania kosztuje USD. Nie potrzebuje wiele do szczęścia, niemniej jednak przyzwyczajony do szerokiego wyboru darmowego i legalnego softu trochę się zawiodłem. Tak czy siak, <a href="http://www.codejedi.com/">Shadow Plan</a> i <a href="http://www.pimlicosoftware.com/">DateBk</a> wyglądają na bardzo fajne aplikacje, więc może się kiedyś skuszę i kupię. Pozatym kilka dobrych programów za darmo udało mi się mimo wszystko znaleźć. Do niezbędników należy <a href="http://sourceforge.net/project/showfiles.php?group_id=92189">NVBackup</a>, który pozwala sporządzić kopie naszej konfiguracji zawartej w pamięci Palma na karcie pamięci. Bardzo ciekawy jest też <a href="http://www.ggaub.com/hs/">HandyShopper</a>, teoretycznie zbudowany jako lista zakupów, w praktyce całkiem nieźle się sprawdza jako menadżer wszelkiego rodzaju list, także tych GTDowych.</p>
<p>No właśnie, GTD a Palm. David Allen napomina nieraz w swoich ksiażkach i nagraniach o Palmach, w sumie był to zresztą główny impuls do wypróbowania tego sprzętu (fakt, że nie mam empetrójki ani telefonu z bajerami też miał swój spory udział). Nie testowałem jakiejś wielkiej ilości systemów, nie o to zresztą przecież chodzi w GTD, ale mam porównanie z trzymaniem wszystkiego w pliku tekstowym Emacsie, w postaci papierowej w Moleskinie lub Hipsterze + w papierowym kalendarzu i teraz wreszcie w Palmie. Wnioski? Palm plasuje się dla mnie gdzieś pomiędzy papierem, a komputerem - rysik budzi skojarzenia z długopisem, urządzenie jest małe, można wszędzie zabrać itp., ale do swobody przetwarzania &#8220;prawdziwego&#8221; komputera (z zestawem programów dobieranym i dopracowywanym przez lata) jednak trochę daleko. Łatwo też wpaść w pułapkę niekończącego bawienia się z konfiguracją, zamiast właściwego używania. Dlatego chętnym do podążenia tym szlakiem radzę skupić się na wbudowanym oprogramowaniu i minimalnej liczbie niezbędnych dodatków.</p>
<p>A kiedy już zmęczy nas bycie ultraproduktywnymi, możemy też się z Palmem rozerwać. Dzięki <a href="http://picard.exceed.hu/tcpmp/">TCPMP</a> możemy odtworzyć na Palmie sporo szerszą gamę formatów audio/video niż przy użyciu wbudownego oprogramowania, a w chwilach nudy możemy też użyć <a href="http://yoyofr92.free.fr/ljp/">LJP</a>, emulatora m. in. SNESa czy NeoGeo, żeby poszarpać w jakąś fajną gierkę.</p>
<p>Bateria przy normalnym zastowaniu, z wyłączonym WiFi i Bluetoothem trzyma kilka godzin, w wersji ze wszystkim włączonym ponoć trzy godziny. Nie ma sensu w to za bardzo wnikać, baterie różnią się między sobą i zmieniają swoje parametry z czasem - w każdym razie w moim przypadku czas działania jest na razie przyzwoity, szkoda tylko że bateria jest wbudowana na stałe i w razie czego nie idzie jej wymienić.</p>
<p>Co do działania pod Linuxem, cóż, trzeba trochę pocierpieć - konfiguracja jak zwykle zajęła chwilę. Nie udało mi się też zmusić KDEowego kpilota do całkowicie poprawnej synchronizacji Palma z Kontactem, ograniczyłem się więc koniec końców do używania <a href="http://www.jpilot.org/">JPilota</a>, który służy mi i tak jedynie do instalacji oprogramowania.</p>
<p>Jeśli miałbym wystawić jakąś końcową notę, byłoby to 7/10. Maszyna jest fajna, denerwujące są głównie szczegóły i dodatki, kilka rzeczy z którymi trzeba sobie poradzić / pogodzić się.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/04/06/palm-tx-a-gtd-i-nie-tylko/feed/</wfw:commentRss>
		</item>
		<item>
		<title>5 rzeczy</title>
		<link>http://www.stifflog.com/pl/index.php/2007/03/17/5-rzeczy/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/03/17/5-rzeczy/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 16:51:01 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Inne]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/03/17/5-rzeczy/</guid>
		<description><![CDATA[Miałem unikać wpisów osobistych, ale że naliczyłem już 4 osoby (Rodrigo, Tomash, RavBaker i Ludwik Siadlak) które mnie taggneły, zapodaje co następuje (w końcu):
1. Zdecydowanie jestem dzieckiem PC/Internetu. Komputer miałem w domu odkąd skończyłem 5 lat i od razu była to maszyna bodaj klasy XT. Grać się na tym bardzo nie dało, ale zawsze to [...]]]></description>
			<content:encoded><![CDATA[<p>Miałem unikać wpisów osobistych, ale że naliczyłem już 4 osoby (<a href="http://rrrodrigo.jogger.pl/">Rodrigo</a>, <a href="http://tomash.jogger.pl/">Tomash</a>, <a href="http://blog.ravbaker.net/">RavBaker</a> i <a href="http://www.siadlak.eu/">Ludwik Siadlak</a>) które mnie taggneły, zapodaje co następuje (w końcu):</p>
<p>1. Zdecydowanie jestem dzieckiem PC/Internetu. Komputer miałem w domu odkąd skończyłem 5 lat i od razu była to maszyna bodaj klasy XT. Grać się na tym bardzo nie dało, ale zawsze to PC, z żadnymi Commodore ani Amigami nie miałem wogóle doczynienia, na Atari grałem trochę u najlepszego kumpla w grę pt. Hamurabi. Na Internet przyszło mi poczekać dłużej (śmigałem na modemie w podstawówce, ale dokładnej daty nie jestem w stanie podać), ale i tak odegrał on w moim życiu bardzo wielką rolę - za pośrednictwem Internetu dostałem pierwszą poważną pracą (do której przyuczyłem się najpierw za pośrednictwem sieci), dziewczynę na studniówkę poznałem za pośrednictwem soszal netłorkingu, krawat nauczyłem się wiązać przez YouTube, itp. Kiedy mam jakiś problem, instynktownie pierwsze co robie to zarzucam Google. Trochę mnie to czasem przeraża, ale już chyba taka moja karma.</p>
<p>2. Lubie eleganckie gadżety. <a href="http://www.moleskine.co.uk/">Moleskine</a> nie jest dla mnie zwykłym notatnikiem, nie zamieniłbym <a href="http://www.leatherman.com/products/tools/juice.asp">Leathermana Juice</a> na zwykły scyzoryk, swoje <a href="http://www.sennheiser.co.uk/uk/icm.nsf/root/products_sennheiser_headphones_dj_500155">słuchawki</a> darzę prawie romantycznym uczuciem. Czy muszę dodawać, że nie jestem zbyt oszczędny? Obecnie marzy mi się bądź MacBook, bądź Sony Vaio - jednak na kanapie pracuje się dużo wygodniej&#8230; Tylko szkoda przeznaczać te pleny na zaspokojenie podłych żądzy konsumpcyjnych :D</p>
<p>3. Mój mózg wykazuje wyjątkową zdolność do kolekcjonowania losowych wycinków informacji. Kawałki przeczytanych artykułów, rzeczy przez kogoś mówione potrafią przyjść mi do głowy w miesiące po ich pierwszym przyswojeniu, chociaż nie przywiązywałem do nich wtedy jakiejś szczególnej wagi. Nie zwracałem specjalnej uwagi na tą cechę, zauważenie jej to jedna z korzyści z lektury książki pt. <a href="http://www.amazon.com/Discover-Your-Strengths-Marcus-Buckingham/dp/tags-on-product/0743201140">&#8220;Now, discover your strengths&#8221;</a> i test w niej zawartego.</p>
<p>4. Łatwo dostosowuje się do otoczenia, w którym przebywam, może nawet zbyt łatwo. W pewnym zakresie zachowuje się zupełnie inaczej w zależności od grona osób z którymi akurat przebywam. W innym towarzystwie mogę się wydawać kimś zupełnie innym. Ma to taki plus, że ponoć ludzie lubią ludzi podobnych do siebie, minusem jest natomiast zatracenie nieco własnej unikalności, cokolwiek by to miało znaczyć.</p>
<p>5. Właśnie nie dostałem się na MIT :D</p>
<p>Prawie nie czytam polskich blogów, a autorzy tych które czytam zostali już trafieni, dlatego nie zapodaje dalszych ofiar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/03/17/5-rzeczy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zdolni programiści Rails znowu poszukiwani</title>
		<link>http://www.stifflog.com/pl/index.php/2007/03/02/zdolni-programisci-rails-znowu-poszukiwani/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/03/02/zdolni-programisci-rails-znowu-poszukiwani/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 18:23:44 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Programowanie]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/03/02/zdolni-programisci-rails-znowu-poszukiwani/</guid>
		<description><![CDATA[Może to się robi już trochę nudne, ale znowu poszukujemy rąk (a przede wszystkim &#8220;ostrych&#8221; umysłów) do pracy. Wymagania są takie same jak zawsze: biegła znajomość Ruby i Ruby On Rails + solidne przygotowanie z zakresu SQL (pracujemy na Postgresie), XHTMLa i JavaScriptu. Do koordynacji pracy używamy Traca, Subversion i Jabbera, a więc dość powszechnego [...]]]></description>
			<content:encoded><![CDATA[<p>Może to się robi już trochę nudne, ale znowu poszukujemy rąk (a przede wszystkim &#8220;ostrych&#8221; umysłów) do pracy. Wymagania są takie same jak zawsze: biegła znajomość Ruby i Ruby On Rails + solidne przygotowanie z zakresu SQL (pracujemy na Postgresie), XHTMLa i JavaScriptu. Do koordynacji pracy używamy Traca, Subversion i Jabbera, a więc dość powszechnego zestawu.</p>
<p>Praca jest zdalna, zespół młody i sympatyczny, a wynagrodzenie atrakcyjne :) Mile widzani studenci, możliwe zatrudnienie w wymiarze 20 lub 40 godzin tygodniowo. Zainteresowanych proszę o przesłanie CV w języku angielskim na adres: &lt;sztywny (at)gmail.com&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/03/02/zdolni-programisci-rails-znowu-poszukiwani/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linuxowo</title>
		<link>http://www.stifflog.com/pl/index.php/2007/02/02/linuxowo/</link>
		<comments>http://www.stifflog.com/pl/index.php/2007/02/02/linuxowo/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 14:25:01 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Emacs]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Programowanie]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2007/02/02/linuxowo/</guid>
		<description><![CDATA[Jakiś czas temu poświęciłem parę postów na anglojęzycznym stifflogu swojej konfiguracji środowiska pracy. Nie miałem jakoś wtedy wielkiej chęci żeby przełożyć te wpisy na polski, a jako że teraz potrzebuje czegoś niezbyt wyszukanego na ponowne blogowe rozruszanie, czas na zbiorcze wydanie opisujące dość dogłębnie zestaw oprogramowania, jakiego używam, podobne do wpisów ze StarychDobrychCzasów[tm]. Nie jest [...]]]></description>
			<content:encoded><![CDATA[<p>Jakiś czas temu poświęciłem parę postów na anglojęzycznym stifflogu swojej konfiguracji środowiska pracy. Nie miałem jakoś wtedy wielkiej chęci żeby przełożyć te wpisy na polski, a jako że teraz potrzebuje czegoś niezbyt wyszukanego na ponowne blogowe rozruszanie, czas na zbiorcze wydanie opisujące dość dogłębnie zestaw oprogramowania, jakiego używam, podobne do wpisów ze StarychDobrychCzasów[tm]. Nie jest to dosłowne tłumaczenie, minęło dość czasu żebym kilka rzeczy w swoim ustawieniu pozmieniał, dodał i porobił nowe screeny pokazujące całość w akcji. Trąci niezdrowym lansem i genciarstwem, ale cóż, może kogoś jednak zainteresuje :)</p>
<p><a href="http://www.gentoo.org/">Gentoo GNU/Linux</a></p>
<p>Tak, kompiluje wszystkie pakiety ze źródeł. Nie interesuje mnie zbytnio szlifowanie flag do uzyskania 2% przyrostu wydajności, cenie sobie natomiast możliwość dokładnego dostosowania oprogramowania do swoich potrzeb (flagi USE), a przede wszystkim ilość wysokiej jakości i świeżości pakietów w Portage. Z innych dystrybucji, bardzo spodobał mi się <a href="http://www.zenwalk.org/">Zenwalk</a>, którego mam na laptopie. Całkiem możliwe, że gdyby np. padło mi teraz Gentoo, to zainstalowałbym właśnie Zenwalka , zamiast znowu kompilować system przez tydzień. Wprawdzie bogactwo pakietów jest dużo mniejsze, a właściwie to nie ma ich prawie wcale, ale za to całość jest prosta, domyślny zestaw programów bardzo sensowny, system jest gotowy do pracy praktycznie z marszu, działa WiFi, wszystko jest ładnie zintegrowane i w pewnym sensie &#8220;przystrojone&#8221;. Faktycznie jest w tej dystrybucji pewien powiew zen&#8230; Od bardziej pragmatycznej strony jest tym, czym powinien był stać się Slackware pewien czas temu (Zenwalk jest zreszta na nim oparty).</p>
<p><span id="more-93"></span></p>
<p><a href="http://members.optusnet.com.au/ckolivas/kernel/">Kernel z łatami Con Kolivasa</a></p>
<p>Jestem wiernym &#8220;wyznawcą&#8221; serii -ck - różnica w responsywności między zwykłym jądrem a -ck jest wyraźnie odczuwalna, w przeciwieństwie do wielu innych &#8220;optymalizacji&#8221; polecanych przez lokalnych guru, szczególnie np. w co większych aplikacjach Javowych. Problemów ze stabilnością - nie stwierdzono.</p>
<p><a href="http://www.xfce.org/">XFCE 4.4</a></p>
<p>Wraz z wersją 4.4 nareszcie mogłem pozbyć się z czystym sumieniem przerośniętego, a niezbyt funkcjonalnego Gnome, które w pewnym momencie zaczęło cofać się w rozwoju (Sawfish to był menadżer okien, Metacity to żart jakiś chyba)&#8230; Nigdy nie miałem zbyt wielu wymagań w stosunku do środowiska graficznego, ale te istniejące były na tyle kiepskie, albo na tyle brzydkie, że i tak nigdy nie dawało rady znaleźć czegoś sensownego. XFCE też może nie wymiata jakoś szczególnie, ale nie pożera zasobów i ma garść potrzebnych rzeczy - menadżer okien, konfigurowalne panele, skróty klawiaturowe, garść potrzebnych apletów, konfigurator do Gtk, szybki menadżer plików&#8230; Do tego garść dodatków - Devils Pie, o którym za chwile, odrobina własnych malutkich haczyków, temat Zenith dla gtk+, jakiś Milk dla Xfwm (chyba sam go rzeźbiłem, nie jestem pewien) oraz troche ikon pozbieranych z różnych miejsc. Tapeta przeważnie z DeviantArta albo rzadziej z Flickra. Przed użyciem wstrząsnać :> Wygląda i działa tak jak tego oczekuje, a jedyną alternatywą jest żmudne dłubanie w .fvwm2rc, a tego chciałbym uniknąć, za stary jestem&#8230;</p>
<p><a href="http://www.burtonini.com/blog/computers/devilspie">Devils Pie</a></p>
<p>Niestety wirtualne pulpity zarówno w XFCE jak i w Gnome sens mają mizerny. Żadną bowiem przyjemnością jest ręczne przeciąganie za każdym razem nowo odpalonej aplikacji na &#8220;swój&#8221; pulpit. Devils Pie pozwala kontrolować zachowanie nowo pojawiających się okien w dość wyrafinowany sposób - mamy dostępny mały język (dobry przykład <a href="http://en.wikipedia.org/wiki/Domain-specific_language">DSLa</a>) wzorowany na Lispowych sexp&#8217;ach, z zestawem &#8220;predykatów&#8221; pozwalających określić które okna chcemy &#8220;zmanipulować&#8221; i &#8220;poleceń&#8221;, zajmujących się samym aktem manipulacji :) Do tego dopisałem sobie malutki programik w C + parę shell scriptów które realizują np. takie coś - kiedy wciskam Ctrl+Alt+t pierwszy raz, otwiera mi się nowy terminal z nową sesją screena. Odpalam coś, potem zapominam o tym terminalu, robię 15 różnych innych rzeczy. Kiedy teraz wcisnę ponownie Ctrl+Alt+t nie otworzy mi się nowe okno terminala, tylko nowa sesja screena, a istniejący terminal dostatnie focus. Jest kilka istniejących programów pozwalających manipulować Xowymi okienkami z poziomu konsoli czy skryptów, ale mimo szczytnych idei, okazały się nie działać wcale, albo działać tylko czasami (próbowałem m. in. <a href="http://sweb.cz/tripie/utils/wmctrl/">wmctrl</a> i xwit, napisanie tego co chciałem w C/Xlib zajęło mi 3 podejścia, dobrych kilka godzin, było absolutnie poniżające i skończyło się w 100 liniach kodu).</p>
<p><a href="http://www.gnu.org/software/emacs">GNU Emacs</a></p>
<p>Jestem programistą, spędzam codziennie przynajmniej pare godzin przed edytorem tekstu. Komfort pracy z nim jest dość krytyczny dla mojej produktywności - trudno się skupić na pracy koncepcyjnej kiedy trzeba spędzić 30 minut szukając definicji jakiejś funkcji, czy zajmując się ręcznym &#8220;znajdź i zastąp&#8221;. Trudno jest nie tylko wymienić wszystkie funkcje które Emacs posiada (jest to wręcz niemożliwe, przez lata snipplettów ELispa które ludzie napisali nazbierała się olbrzymia ilość), ale nawet trudno jest mi ogarnąć wszystkie te możliwości, których sam używam. Brak okien dialogowych, wymyślnych file chooserów i innych tym podobnych może początkowo odstraszać, ale potem okazuje się, że ma to też dobre strony - wszystko da się zrobić szybko i sprawnie z klawiatury. Krótki rzut oka na to, co mi się podoba w Emacsie: podświetlanie składni dla wielu języków i w pełni customizowalne, poprawnie działający auto indent, snippletty podobne do tych modnych ostatnio za sprawą TextMate, integracja z systemami kontroli wersji, rozbudowany znajdź i zastąp (z użyciem wyrażeń regularnych, takżę w kombinacji z odpalaniem fragmentów Elispa na znalezionych matchach, w wielu plikach, we wszystkich otwartych buforach itp. itd.), interfejs do grepa, zaznaczenia prostokątne, osadzenie konsoli SQL / Ruby&#8217;ego / Lisp&#8217;a / shella / czegokolwiek, śledzenie zmian w pliku na bierząco (tail), świetny wbudowany diff, sprawdzanie pisowni, edytowanie plików przez ftp/sftp/ssh, a takżę jako inny użytkownik przez sudo. Skróty klawiaturowe, które początkowo wydają się dziwaczne, także mają swój sens - bez notacji prefixowej nie da się po prostu przyporządkować całej tej funkcjonalności odpowiednim skrótom. Złożone są one jednak z dość logicznych części, pozatym Emacs to edytor samodokumentujący się, w razie czego wiele rzeczy można bardzo łatwo sprawdzić w dokumentacji, albo np. zwyczajnie kliknąć w menu. A najważniejsze jest to, że Emacsowy język programownia w przeciwieństwie do systemów rozbudowy większości innych edytorów jest dość potężny, plus ma pod sobą sporaśne API, dzięki czemu rozszerzenia faktycznie pisze się całkiem znośnie.</p>
<p><strong>Początek Emacsowania</strong></p>
<p>Jak szaleć to szaleć, opisze także zestaw pakietów Emacsa które używam, nazbierało się trochę tego przez czas użytkowania (liczony w latach, ale dokładnej daty iniciacji nie pamiętam ;)) (Jeśli nie pasjonuję Cię temat, przeskroluj od razu do &#8220;Końca Emacsowania&#8221;) Część z tych pakietów wchodzi w skład zwykłego Emacsa, a część tylko Emacsa umiarkowanie CVS-owego (takiego używam, obecnie 22.0.93.1, jeśli ktoś jest gotów na eksperymenty może też ściągnąć 23 wreszcie z Xftowymi wygładzonymi czcionkami).</p>
<p><a href="http://www.xsteve.at/prg/vc_svn/">Psvn</a> - dodaje rozbudowane wsparcie dla Subversion do Emacsa. Nie korzystam z pełnego zestawu poleceń svn, ale myśle że większość z nich jest pokryta. Ręcze za to osobiście, że cykl commit/update przebiega zawsze poprawnie i bez zarzutu, koniec z rzucaniem się do konsoli w tym celu.</p>
<p><a href="http://www.todesschaf.org/projects/bkr.html">Browse-kill-ring</a> - &#8220;Wieloschowek&#8221;, czyli coś co pamięta poprzednie zawartości schowka i pozwala je ponownie wkleić.</p>
<p><a href="http://rubyforge.org/frs/?group_id=1484">Rails</a> - Dla RoRowców prawdziwe zbawienie. Pozwala generować migracje, modele, kontrollere, oglądać logi, sterować serwerem, odpalać konsolę Railsową i SQLowa do Railsowej bazy, odpalać taski rake&#8217;a, przełączać się między kontrolerem i pasującym testem funkcjonalnym itp. Brakuje tylko trybu z prawdziwego zdarzenia dla plików rhtml&#8230; Chociaż widzę, że chłopaki poszli ostatnio jeszcze bardziej do przodu z tym pakietem, więc moje informacje nie są już najświeższe.</p>
<p><a href="http://www.bloomington.in.us/~brutt/msf-abbrev.html">Msf-abbrev</a> - słynne &#8220;snippety&#8221; w wydaniu dla Emacsa. Nieco przereklamowana funkcjonalość skąd inąd, miła, ale nie aż tak jak można by sądzić po zachwytach blogosfery</p>
<p>Nxml-mode - Podstawa jeśli chodzi o edycje jakiejkolwiek formy dokumentów XML, w tym także XHTML. Domyka, dopełnia, waliduje itp. </p>
<p>Tramp - To właśnie Tramp pozwala na wyżej wspomnianą edycję zdalnych plików.</p>
<p>Ido-mode, <a href="http://homepage1.nifty.com/bmonkey/emacs/elisp/mcomplete.el">mcomplete</a> - bardzo sprytne formy dopełniania, pierwsza super-przydatna przy otwieraniu plików, druga przy wszelkich innych poleceniach.</p>
<p>Ibuffer - przeglądarka otwartych buforów. Zanim rozlegną się błagania o zwykły tabbar, chciałbym powiedzieć, że bufory można np. zaznaczać i wykonać na nich określone polecenia, można je grupować, filtrować, sortować itp.</p>
<p>Dired/wdired - edycja katalogów w Emacsie. Komuś może się to wydać idiotycznym pomysłem, ale nie jest to takie głupie. Pomyśl, co by było, gdybyś mógł np. wziąść wyjście ls, przejechać je znajdź/zastąp, a następnie zmiany te zostałyby zastosowane do nazw plików&#8230; Tak właśnie działa Wdired i ze wszystkich form zmieniania nazw wielu plików ta jest jedną z lepszych (zmv z zsh też daje radę, nieco też tęsknię za Total Commanderem, najlepszym programem pod Windows ewer moim skromnym zdaniem). Zwykły dired potrafi też milion różnych rzeczy których jeszcze nie zdążyłem się nawet nauczyć, zawsze można też go użyć po prostu jako wybieraczki do plików. </p>
<p><a href="http://eigenclass.org/hiki.rb?rcodetools">Rcodetools</a> - zestaw tooli z eigenclass.org, z interfejsem do Emacsa. Pozwalają one m. in. na prawdziwe, inteligentne (context-sensitive) dopełnianie nazw metod w Rubym (sprawdziłem, działa, nie miałem za to cierpliwości zawalczyć z Rails, ale i tu powinno to być możliwe). Eigenclass wypuścił też <a href="http://rubyforge.org/projects/fastri/">FastRI</a>, czyli przyśpieszony interfejs do doków Ruby&#8217;ego, chyba nawet wraz z interfejsem Emacsowym doń, ale tu zaszalałem i napisałem sobie własny. Ruby&#8217;owcy powinni się też zainteresować <a href="http://sciruby.codeforpeople.com/sr.cgi/UsingRTagsTutorial">RTags</a>, jedynym programem który sensownie generuje pliki TAGS dla kodu w Rubym.</p>
<p><a href="http://homepages.cs.ncl.ac.uk/phillip.lord/download/emacs/pabbrev.el">Pabbrev</a> - to coś trochę ciężko wytłumaczyć, ale przyśpiesza pisanie całkiem nieźle. W czasie kiedy emacs jest bezczynnny, pabbrev indeksuje zawartość wszystkich buforów, a potem w czasie pisania, kiedy rozpoczyna się słowo, podpowiada w czymś w rodzaju, hm, tooltipu? możliwe dopełnienie. Interfejs jest taki, że w niczym nie przeszkadza, a potrafi pomóc. Identycznie wygląda Predictive, tylko działa ze słownikiem zamiast indeksować.</p>
<p><a href="http://www.emacswiki.org/cgi-bin/wiki/emacs-w3m">W3m</a> - przeglądarka WWW do Emacsa. Nie zamierzam rezygnować z Firefoxa, ale dokumentacje zupełnie fajnie jest mieć wewnątrz prostej tekstowej przeglądarki w edytorze.</p>
<p><a href="http://www.emacswiki.org/cgi-bin/wiki/HideLines">Hidelines</a> - potrafi ukryć/pokazać tylko liniie pasujące do danego regexpa, zrobić coś z nimi, a potem z powrotem pokazać cały bufor.</p>
<p>Hideshow - folding, jedyny jaki udało mi sie zmusić do działania</p>
<p>Recentf - Lista ostatnio otwartych plików.</p>
<p>Winner-mode - pamięta poprzednią konfigurację ramki emacsa i potrafi robić na niej undo/redo. Możliwość podzielenia jednego okna Emacsa na wiele częśći jest jednym z najprostszych i najlepszych jego funkcji i trudno mi sobie teraz wyobrazić używanie edytora jej pozbawionego - przez prawie cały czas mam otwartą jednocześnie np. definicję struktury bazy danych i Railsowy model, kontroler i jego test funkcjonalny albo jeden z widoków itp.</p>
<p>Po więcej informacji odsyłam zwyczajowo do <a href="http://www.emacswiki.org/">EmacsWiki</a> oraz do <a href="http://marcin.af.gliwice.pl/emacs-w-odcinkach">tutoriala Martineza</a>.</p>
<p><strong>Koniec Emacsowania</strong></p>
<p>Uff, starczy tego dobrego, czas na resztę programów:</p>
<p><a href="http://www.mozilla.com/firefox/">Mozilla Firefox</a></p>
<p>Jeśli nie używam akurat Emacsa, to pewnie używam Firefoxa. Poza zjadaniem pamięci jestem z niego w 100% zadowolony. Absolutnym killer featurem są zdecydowanie rozszerzenia - przede wszystkim totalnie genialny <a href="http://getfirebug.com">FireBug</a> (<a href="http://soylentfoo.jnewland.com/articles/2006/12/08/firebug-10-screencast">screencast</a>&#8220;), ale też Sage do RSSów, wtyczka do del.icio.us, Tab Mix Plus do podrasowania tabów, viewer do Googlowego pageranku i kjustomizator do fullscreenu czyli rozszerzenie o nazwie Autohide. Do tego skórka &#8220;macfoxII graphite&#8221; i mój &#8220;browsing experience&#8221; jest radosny i produktywny :)</p>
<p><a href="http://sylpheed.sraoss.jp/en/">Sylpheed</a></p>
<p>Nie prowadzę jakiejś przytłaczającej ilości korespondencji w setkach maili na dzień, ale coś tam jednak codziennie dostaje i piszę. Potrzebuje podstawowych funkcji - folderów, filtrowania spamu, filtrów na temacie czy nadawcy wiadomości itp. Mam dwa konta pocztowe, a jak ostatni raz sprawdzałem Thunderbirda to skonfigurowanie takiej zastraszającej ich ilości bolało strasznie, nie wspominając u zużyciu pamięci. Ramu mam gigabajt, ale wolałbym przeznaczyć go na coś użytecznego, szczególnie że kiedyś do podobnych zastosowań wystarczało mi z powodzeniem 64mb&#8230; Jasne, trochę się rozbestwiłem od tego czasu, ale programy też się roztyły niemiłosiernie. Dlatego zostałem z małym i szybkim Sylpheedem, który mimo to funkcjami jest całkiem nieźle naładowany. </p>
<p><a href="http://gaim.sourceforge.net">Gaim (wersja z SVNu)</a></p>
<p>Gaim zbliżając się do wersji 2.0.0 osiągnął perfekcje - zachowuje się pod każdym względem tak jak tego chcę i mimo że do releasu zostało jeszcze trochę czasu, jest stabilny jak skała. Nie do pogardzenia jest przede wszystkim jednoczesne, natywne wsparcie zarówno dla Gadu-Gadu i dla Jabbera, czym żaden inny IM pochwalić się chyba nie może. Przeglądarka historii dla odmiany działa, są taby, powiadamianie o nowych wiadomościach można ustawić na 100 sposobów, jest mnóstwo pluginów, roster, emoty i interfejs ogólnie wyglądają ładnie itp. Nie bardzo wiem czego więcej mógłbym chcieć od programu tego typu.</p>
<p><a href="http://software.schmorp.de/pkg/rxvt-unicode">URxvt</a> + <a href="http://www.zsh.org/">Zsh</a> + <a href="http://www.gnu.org/software/screen/">Screen</a></p>
<p>Linux bez shella to jak Windows bez blue screenów ;) Zsh oferuje przede wszystkim świetnie, inteligentne dopełnianie dla najróżniejszych poleceń, znacząco ułatwiajać żmudne wklepywanie długich linii. O masowym zmienianiu nazw plików za pomocą zmv już wspominałem, do tego kilka <a href="http://www.grml.org/zsh/zsh-lovers.html">trików</a> i można pracować. GNU Screen po prostu wybija z głowy korzystanie z jakichś multi-terminali, dużo wygodniej to działa i da się wygodnie obsługiwać z klawiatury.</p>
<p><a href="http://audacious-media-player.org/Main_Page">Audacious</a></p>
<p>Ekhem, trudno Audacious&#8217;a nazwać dobrym programem&#8230; Nie bardzo widzę w który miejscu autorzy zrobili postęp od czasów Beep Media Player&#8217;a, zdarzały się za to jakieś okropne babole. Teraz jest już jako tako, a że Beepa nie ma już w Portage, to nie bardzo mam inne wyjście. Z innych playerów interesujący był Listen i Songbird, ale oba żrą zasoby, a pierwszy do tego ma jakieś dziwne gnomowe zależności&#8230;</p>
<p><a href="http://www.mplayerhq.hu/design7/news.html">Mplayer</a> / <a href="http://www.videolan.org/vlc/">VLC</a> / <a href="http://xinehq.de">Xine</a></p>
<p>Trudno się zdecydować na jeden odtwarzacz do filmów, a posiadanie trzech ma tą zaletę, że w razie posiadania czegoś w egzotycznym formacie któryś zawsze sobie poradzi. Interfejsowo niestety wszystkie trzy ssą po całości&#8230; Dlatego przez większość czasu używam mplayera wołanego z konsoli. Xine za to dobrze radzi sobie z DVD, a szczególnie z obsługą menu. VLC byłoby z tego wszystkiego może i najlepszym odtwarzaczem, gdyby tylko ktoś powalczył z bugami i usunął z 80% interfejsu.</p>
<p><a href="http://gqview.sourceforge.net/">GQView</a></p>
<p>Wyświetla obrazki, robi to szybko i nie ma setki zależności. Niestety jeden z programów wybranych na zasadzie negatywnej selekcji. Taki IrfanView jednak działa trochę lepiej i trochę więcej potrafi&#8230;</p>
<p><a href="http://www.gimp.org">GIMP</a></p>
<p>Jak na człowieka plastycznie ograniczonego, używam GIMPa bardzo dużo. Retusz fotek, jakieś drobne sprawy dyzajnowe, malutkie projekty w rodzaju jakichś zaproszeń, okładek itp. Sprawdza się bardzo dobrze, choć niektóre rozwiązania interfejsu są/były denerwujące.</p>
<p><a href="http://www.openoffice.org/">OpenOffice.org</a></p>
<p>Niestety pod względem biurowym wybór pod Linuxem jest zerowy. KOffice i AbiWord częśćiej działają niż nie działają, więc do pisania sprawozdań z pracowni zostaje OpenOffice. Boleje głównie nad słabo gtkowym interfejsem, sama edycja dokumentów przebiega całkiem sprawnie i rezultaty są nienajgorsze. Bardzo sobie chwalę także eksport do PDF.</p>
<p>aMule (ze stroną coś dziwnego się dzieje chyba) i <a href="http://azureus.sourceforge.net/">Azureus</a></p>
<p>Przydatne w chwilach wyjątkowego pożądania jakiejś mp3. aMule ma duży wybór plików i przeważnie wystarcza do znalezienia dowolnego materiału. W trudniejszych przypadkach przydaję się Azureus, który ma tą genialną możliwość ściągnięcie wybranych plików, np. 10mb z 2gb torrenta, co kompensuje jego własną kobyłowatość. </p>
<p><a href="http://www.ruby-lang.org/">Ruby</a> / <a href="http://www.rubyonrails.org">Rails</a> / <a href="http://www.postgresql.org/postgresql">PostgreSQL</a> / <a href="http://www.exim.org">Exim</a> / <a href="http://www.lighttpd.net/">lighttpd</a> / <a href="http://nginx.net/">Nginx</a> / <a href="http://www.gcc.org/">Gcc</a> / <a href="http://www.sbcl.org/">SBCL</a></p>
<p>Na koniec został stosik developerski, który wielkich tłumaczeń raczej nie wymaga. Ciekawy, acz mało znany jest tu głównie Nginx, bardzo szybki serwerek rodem z Rosji. SBCL służy mi od paru lat do pisania kolejnych &#8220;Hello World!&#8221; w Lispie ;)</p>
<p>Z takiego oto zestawu jestem generalnie bardzo zadowolony. Nigdy, pod żadnym systemem, nie miałem nic lepszego. Miałbym natomiast kilka życzeń:</p>
<p>* OpenOffice działający w 100% jak normalna aplikacja gtk+, albo AbiWord rozbudowany do poziomu edytora tekstu (raczej mało prawdopodobne)</p>
<p>* Menadżer plików na poziomie Total Commandera dla Linuxa</p>
<p>* Evince mogłoby pamiętać miejsce w którym skończyło się czytać pdfa, jak to robi taki np. KPDF (Szkoda dla jednego czy dwóch programów instalować Qt i całe KDE)</p>
<p>* Odtwarzacz muzyki z działająca kolekcją. Żeby był w Portage, napisany w C++ i nie segfaultował. Bmpx rodzi jakieś tam nadzieje, ale na razie skromne.</p>
<p>* Podstawowy, ale działający edytor filmów&#8230; To już nawet nie życzenie, raczej marzenie. Z <a href="http://www.kinodv.org/">Kino</a> coś tam się jeszcze da zrobić,   może w pryszłości będzie się nadawało do prostej edycji. </p>
<p>Na koniec konieczne screeny:</p>
<p><a href="http://img184.imageshack.us/my.php?image=screenblankjr5.jpg" target="_blank"><img src="http://img184.imageshack.us/img184/8932/screenblankjr5.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p><a href="http://img390.imageshack.us/my.php?image=screenemacszg7.jpg" target="_blank"><img src="http://img390.imageshack.us/img390/4994/screenemacszg7.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p><a href="http://img455.imageshack.us/my.php?image=screenfirefoxcg7.jpg" target="_blank"><img src="http://img455.imageshack.us/img455/7775/screenfirefoxcg7.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p><a href="http://img123.imageshack.us/my.php?image=screensylpheedwh6.jpg" target="_blank"><img src="http://img123.imageshack.us/img123/8332/screensylpheedwh6.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p><a href="http://img462.imageshack.us/my.php?image=screenterminalkx9.jpg" target="_blank"><img src="http://img462.imageshack.us/img462/1113/screenterminalkx9.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p><strong>Wpis funkowo sponsoruje Gnarls Barkley i &#8220;Crazy&#8221;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2007/02/02/linuxowo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Behaviour Driven Development</title>
		<link>http://www.stifflog.com/pl/index.php/2006/11/27/behaviour-driven-development/</link>
		<comments>http://www.stifflog.com/pl/index.php/2006/11/27/behaviour-driven-development/#comments</comments>
		<pubDate>Mon, 27 Nov 2006 17:04:26 +0000</pubDate>
		<dc:creator>sztywny</dc:creator>
		
		<category><![CDATA[Programowanie]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.stifflog.com/pl/index.php/2006/11/27/behaviour-driven-development/</guid>
		<description><![CDATA[Podczas wczorajszego spotkania KRUG-u wygłosiłem króciutką prezentacje na temat wyżej wspomnianego BDD. Dla tych którzy nie mogli się stawić w zastępstwie naszykowałem krótki artykuł pokrywający się mniej więcej z jej treścią. Reszta może od razu przejść na koniec, pobrać &#8220;slajdy&#8221; które nie są slajdami, obejrzeć przykłady i przejrzeć dalsze zasoby. Może, ale nie musi, bo [...]]]></description>
			<content:encoded><![CDATA[<p>Podczas wczorajszego spotkania <a href="http://groups.google.pl/group/krakowrug?hl=pl">KRUG-u</a> wygłosiłem króciutką prezentacje na temat wyżej wspomnianego BDD. Dla tych którzy nie mogli się stawić w zastępstwie naszykowałem krótki artykuł pokrywający się mniej więcej z jej treścią. Reszta może od razu przejść na <a href="#resources">koniec</a>, pobrać &#8220;slajdy&#8221; które nie są slajdami, obejrzeć <a href="http://www.stifflog.com/bdd.zip">przykłady</a> i przejrzeć <a href="#resources">dalsze zasoby</a>. Może, ale nie musi, bo w artykule napisałem kilka rzeczy o których zapomniałem powiedzieć w prezentacji.</p>
<p>A więc cofnijmy się na chwilę do lat cirka abałt powiedzmy 1995-2000. OOP przeżywa prawdziwy boom (chociaż Smalltalk jest od kilkunastu lat na rynku), Sun ładuje kase w marketing Javy, powstają pierwsze design patterns, a dookoła kręcą się adwokaci Extreme Programming którzy też chcą zarobić trochę kasy - przy okazji jednak mają też kilka naprawdę niezłych pomysłow.<span id="more-92"></span></p>
<p>W tym samym okresie i częściowo Ci sami ludzie - Kent Beck twórca XP i Erich Gamma od patternów - piszą JUnit - pierwszy popularny framework do testowania modułowego. I tak to się wszystko zaczeło&#8230; Kogo ominął ten moment, może się cofnąć w czasie i poczytać <a href="http://junit.sourceforge.net/doc/testinfected/testing.htm">artykuł</a> od którego wielu zaczynało.</p>
<p>Okazało się, że takie &#8220;niewinne&#8221; testowanie niesie ze sobą całkiem spory szereg zalet:</p>
<ul>
<li>Mniej czasu spędzonego w debuggerze i na dopisywaniu &#8220;pomocniczego&#8221; kodu, o ile testy są dobrze napisane rzeczy typu błędne wartości zmiennych są podane na tacy przez framework testujący</li>
<li>Pewność że raz poprawiony bug nie wkradnie się do systemu ponownie - pierwsza rzecz po znalezieniu buga to napisanie nie przechodzącego testu, dopiero potem naprawienie buga i upewnienie się że test przechodzi. Gdyby z jakichś przyczyn podobny błąd miałby wystąpić w tym samym miejscu ponownie, dowiemy się tego z testów.</li>
<li>Dokumentacja i przykłady użycia &#8220;gratis&#8221; - testy stanowią pewną formę bardzo technicznej dokumentacji, pokazując w praktyczny sposób do czego służy nasz kod i jak powinniśmy go używać.</li>
<li>Ułatwiają refactoring, czyli zmienianie struktury kodu bez zmieniania jego działania celem zwiększenia jego &#8220;czystości&#8221;. W trakcie takich &#8220;porządków&#8221; łatwo coś uszkodzić, a testy pozwalają nam upewnić się że pamiętaliśmy o wszystkich kawałkach kodu zależnych od tego, co w danej chwili refactorujemy</li>
<li>Redukują czas potrzebny na ręczne na testowanie</li>
</ul>
<p>Ludzie którzy ochoczo wdrożyli testowanie szybko dostrzegli kilka istotnych rzeczy. Okazało się na przykład że testowanie potrafi w znacznym stopniu wpłynąć na sposób w jaki projektujemy nasze oprogramowanie - kod który jest bardzo ściśle powiązany z innymi modułami jest dużo ciężej testować niż taki który jest &#8220;ortogonalny&#8221; - czyli w którym poszczególne części działają możliwe niezależnie od siebie. Niektórzy polubili to do tego stopnia, że pomyśleli dlaczegoby właściwie nie zacząć od pisania testów, a dopiero potem przystąpić do właściwego tworzenia oprogramowania.</p>
<p>Tak dochodzimy do Test Driven Development. Podstawowym pomysłem jest podzielenie procesu programowania na malutkie &#8220;cykle&#8221; - &#8220;test, code, refactor&#8221;. Zaczynamy od napisania malutkiego kawałku testu, który koniecznie musi <strong>nie działać</strong>. Następnie dopisujemy funkcjonalność, tak żeby dojść do momentu w którym test działa możliwie jak najmniejszym wysiłkiem. Na koniec &#8220;sprzątamy&#8221;, czyli od kodu który działa przechodzimy do kodu który działa i jakoś wygląda, cały czas po drodze upewniając się że test przechodzi. Potem następny taki cykl, i tak w kółko.</p>
<p>Jakie są zalety takiego podejścia? Po pierwsze, relaks. Pracujemy w małych kroczkach, cały czas robiąc widoczne postępy. To ważne nie tylko z technicznego punktu widzenia, ale także z psychologicznego - przejście z &#8220;czerwonego&#8221; paska do &#8220;zielonego&#8221; zawsze stanowi jakąś motywacje do dalszej pracy. W dodatku cały czas otrzymujemy &#8220;feedback&#8221; (brak mi tu dobrego polskiego odpowiednika tego słowa) na temat tego co nasz kod robi - docenia się to szczególnie przy tych co trudniejszych i bardziej orginalnych zadaniach programistycznych w których nie czujemy się zbyt pewnie. Dodatkowo zmuszeni jesteśmy do przemyślenia interfejsu tego czegoś co chcemy zaprogramować, warunków początkowych i końcowych jakie zakładamy itp. W rezultacie otrzymujemy dużo lepszy kod.</p>
<p>Z tradycyjnym TDD jest również pare problemów. Po pierwsze, tradycyjne architektury do testów modułowych pozostawiają dużą swobodę podejścia i wielu początkujących i średniozaawansowanych testerów nie rozumie na czym testowanie powinno polegać - wiele osób ogranicza się do pisania po jednym teście na metodę i to wszystko (co i ja na początku zresztą robiłem). Doświadczeni testerzy robią zupełnie co innego - testują poszczególne zachowania i grupy zachowań programu, nie skupiając się na korespondencji pomiędzy testami a wewnętrzną strukturą kodu.</p>
<p>Mamy tu też pewien paradoks - skoro &#8220;testujemy&#8221; kod jeszcze przed jego napisaniem to co właściwie &#8220;testujemy&#8221;? Próżnie? Kod który dopiero powstanie? Tradycyjny język jakim się posługujemy przy opisywaniu tych praktyk stał się nieaktualny wraz z ich rozwojem - testy z czasem przestały być testami.</p>
<p>Para naukowców Sapir-Whorf sformułowała kiedyś stosunkowo znaną hipotezę, jakoby język naturalny (polski, angielski, niemiecki itp.) którego używamy w naszej głowie do myślenia miał wpływ na to co myślimy i w jaki sposób. To bardzo ciekawe - czy pewne myśli da się wyrazić w jednych językach, a w innych nie? W końcu skoro pewne polskie słowa nie mają odpowiedników angielskim i vice versa, to samo pewnie można odnieść np. do konstrukcji gramatycznych. Mamy przecież także programowanie neurolingwistyczne które zajmuje się wpływem używanego języka na ludzi. Podbudowa naukowa NLP jest co prawda chybotliwa i kontrowersyjna, ale wielu ludzi jest w stanie przysiąc, że to działa. Szczególnie sprzedawcy książek o NLP i <a href="http://www.fastseduction.com/">kolesie</a> którzy neurolingwistycznie wyrywają laski :D</p>
<p>Analogiczne rozważania mają też sens przeniesione w świat języków programowania. To, że dobór języka programowania pasującego do domeny problemu ma olbrzymi wpływ na wydajność programisty stało się już mam nadzieje oczywiste. Tak samo zmiana języka w którym mówimy o tym, co zwykło nazywać się &#8220;testami&#8221; mogłaby przynieść nam sporo korzyści, albo przynajmniej w pewien sposób wymusić na początkujących podobne podejście, jak teraz stosują zaawansowani &#8220;testerzy&#8221;.</p>
<p>I tak dochodzimy do tego czym BDD jest - nowym sposobem opisywania i myślenia o &#8220;testach&#8221;, które teraz nazywają się bardziej zgodnie z prawdą specyfikacjami. Nie mamy już testów, mamy specyfikacje, a zamiast asercji stosujemy oczekiwania. Jako bonus zyskujemy możliwość łatwego zrozumienia tego co robimy także przez nietechniczną kadrę. Zmniejsza się zapotrzebowanie na narzędzia tego agiledox, bo specyfikacje same w sobie są łatwe do zrozumienia, jak za chwilę się przekonamy. </p>
<p>Zobaczmy o co chodzi na dość prostym przykładzie:</p>
<pre>
require 'net/http'
require 'uri'
require 'rexml/document'
require 'rexml/xpath'

class News
  attr_accessor :title, :description
end

class NewsList
  attr_accessor :newses, :feed_xml

  def initialize
    @newses = []
  end

  def fetch(url)
    url = URI.parse(url)
    res = Net::HTTP.start(url.host, url.port) do |http|
      http.get(url.path)
    end

    @feed_xml = res.body
  end

  def parse
   document = REXML::Document.new(@feed_xml)

    REXML::XPath.each(document, "/rdf:RDF/item") do |element|
     news = News.new
     news.title = element.text("title")
     news.description = element.text("description")
     @newses << news
   end
  end
end
</pre>
<p>Mamy tu dość prostą klasę (trudno żeby była skomplikowana, pisałem ją w dzień prezentacji po średnio przespanej, za to rozrywkowej nocy)  - chodzi generalnie o to żeby ściągnąć feed RSS z Internetu i dokonać podstawowego parsownia, aby zamiast dokumentu XML mieć tablicę obiektów News z tytułem i treścią zagregowanej wiadomości. Przykład testu modułowego wygląda tak (zakładam że snippet wyżej rezyduje w pliku example.rb w tym samym katalogu):</p>
<pre>
require 'example'
require 'test/unit'

class NewsListTest < Test::Unit::TestCase
  def setup
    @news_list = NewsList.new
  end

  def test_fetch_document
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    assert_not_nil @news_list.feed_xml
  end

  def test_parse_xml_feed
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    @news_list.parse
    assert_not_equal [], @news_list.newses
  end

  def test_build_news_array_when_parsing
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    @news_list.parse
    assert_not_equal nil, @news_list.newses[0].title
    assert_not_equal nil, @news_list.newses[0].description
    assert_not_equal "", @news_list.newses[0].title
    assert_not_equal "", @news_list.newses[0].description
  end
end
</pre>
<p>Klasa jest zbyt prosta żeby dokładnie pokazać różnicę pomiędzy testami np. pisanymi per metodę, a takimi nastawionymi na zachowania, ale widać przynajmniej pewną konwencję - nazwy testów nie pochodzą od nazw metod, ale od tego co powinna robić klasa, którą testujemy. </p>
<p>Analogiczny test w rSpec, frameworku do BDD dla Ruby&#8217;ego wygląda tak:</p>
<pre>
require 'example'

context "The RSS news list" do
  setup do
    @news_list = NewsList.new
  end

  specify "should fetch document" do
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    @news_list.feed_xml.should.not.be.equal nil
    @news_list.feed_xml.should.not.be.equal ""
  end

  specify "should parse XML feed" do
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    @news_list.parse
    @news_list.newses.should.not.be.equal []
  end

  specify "should build news array when parsing" do
    @news_list.fetch("http://rss.slashdot.org/Slashdot/slashdot")
    @news_list.parse
    @news_list.newses[0].title.should.not.be.equal nil
    @news_list.newses[0].description.should.not.be.equal nil
    @news_list.newses[0].title.should.not.be.equal ""
    @news_list.newses[0].description.should.not.be.equal ""
  end
end
</pre>
<p>Różnica pomiędzy &#8220;naturalnojęzykowym&#8221; opisem, a kodem Ruby się tu w pewien sposób zaciera. Jeśli uruchomimy taki kod za pomocą &#8220;spec example_test_rspec.rb -f s&#8221; otrzymamy taki oto dokument:</p>
<pre>
The RSS news list
- should fetch document
- should parse XML feed
- build news array when parsing
</pre>
<p>Pomijając tu nawet zyski z samego BDD, jest to interesujący przykład tego co możemy zrobić w Rubym za pomocą technik metaprogramowania i pisania DSLi, czyli małych języków dla specyficznych zastosowań. Jeśli nad tym dobrze zastanowić, to nawet Rails jest w pewnym stopniu i między innymi takim właśnie językiem opisu aplikacji sieciowych stworzonym w Ruby. Ciężko byłoby przenieść takie rzeczy do innych języków programowania. Jak na razie broni się tylko Smalltalk, w którym sSpec jest dość podobny do wersji Ruby&#8217;owej. jBehave czyli BDD dla Javy dalekie jest już od takiej naturalności. </p>
<p>Nasz test ma jedną zasadniczą wadę - polega na zewnętrznym feedzie Slashdota. Z użyciem wbudowanego w BDD rozbudowanego &#8220;mockowania&#8221; obiektów móżemy przepisać naszą specyfikacje aby działała nawet bez połączenia z Internetem:</p>
<pre>
require 'example'

@@feed =&lt;&lt;END
&lt;rdf:RDF&gt;
  &lt;item&gt;
    &lt;title&gt;News one&lt;/title&gt;
    &lt;description&gt;Description one&lt;/description&gt;
  &lt;/item&gt;
  &lt;item&gt;
    &lt;title&gt;News two&lt;/title&gt;
    &lt;description&gt;Description two&lt;/description&gt;
  &lt;/item&gt;
  &lt;item&gt;
    &lt;title&gt;News two&lt;/title&gt;
    &lt;description&gt;Description three&lt;/description&gt;
  &lt;/item&gt;
&lt;/rdf:RDF&gt;
END

context "The RSS news list" do
  setup do
    @news_list = NewsList.new
    @res = mock("response")
    @res.should_receive(:body).and_return(@@feed)
    Net::HTTP.stub!(:start).and_return(@res)
  end

  specify "should fetch document" do
    Net::HTTP.should_receive(:start).with("rssurl.com", 80).and_return @res
    @news_list.fetch("http://rssurl.com/feed.xml")
    @news_list.feed_xml.should.be.equal @@feed
  end

  specify "should parse XML feed" do
    @news_list.fetch("http://rssurl.com/feed.xml")
    @news_list.parse
    @news_list.should.have(3).newses
  end

  specify "build news array when parsing" do
    @news_list.fetch("http://rssurl.com/feed.xml")
    @news_list.parse

    @news_list.newses[0].title.should == "News one"
    @news_list.newses[0].description.should == "Description one"

    @news_list.newses[1].title.should == "News two"
    @news_list.newses[1].description.should == "Description two"

    @news_list.newses[2].title.should == "News three"
    @news_list.newses[2].description.should == "Description three"
  end
end
</pre>
<p>Adnotacje:</p>
<ul style="margin-bottom: 10px;">
<li>Pułapka czyha na chcących użyć &#8220;should.equal&#8221; do porównania dwóch stringów. Od wersji 0.7 rSpec używa w takim wypadku &#8220;equal?&#8221;, a nie &#8220;==&#8221;, co porównuje niejako referencje, a nie samą treść napisu. Trzeba więc pisać jak w przykładzie - &#8220;should ==&#8221;.</li>
<li>Dziękuje mojemu bratu ciotecznemu i <a href="http://ragnarson.blogspot.com">Bragiemu</a> za znamienny wkład w moją testową edukację.</li>
<li>Wpis sponsoruje gniazdko 230V w pociągu Intercity Kraków - Gdynia.</li>
<li>Następnym razem będą prawdziwe, politycznie poprawne slajdy, obiecuje ;)</li>
</ul>
<p><a name="resources"></a><br />
<strong>Zasoby:</strong><br />
<br />
Pseudoslajdy + przykłady z KRUGowej prezentacji są <a href="http://www.stifflog.com/bdd.zip">tutaj</a><br />
Główna strona BDD: <a href="http://behaviour-driven.org/">http://behaviour-driven.org/</a><br />
Anglojęzyczna prezentacja Dave&#8217;a Astelsa o BDD z GoogleVideo: <a href="http://video.google.com/videoplay?docid=8135690990081075324">http://video.google.com/videoplay?docid=8135690990081075324</a><br />
rSpec: <a href="http://rspec.rubyforge.org/">http://rspec.rubyforge.org/</a><br />
rSpec i Rails: <a href="http://rspec.rubyforge.org/tools/rails.html">http://rspec.rubyforge.org/tools/rails.html</a><br />
rSpec i ZenTest: <a href="http://blog.nicksieger.com/articles/2006/09/13/auto-rspec">http://blog.nicksieger.com/articles/2006/09/13/auto-rspec</a><br />
rSpec i rcov: <a href="http://rspec.rubyforge.org/tools/rcov.html">http://rspec.rubyforge.org/tools/rcov.html</a><br />
jBehave: <a href="http://jbehave.codehaus.org/">http://jbehave.codehaus.org/</a><br />
sSpec: <a href="http://www.squeaksource.com/SSpec/">http://www.squeaksource.com/SSpec/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stifflog.com/pl/index.php/2006/11/27/behaviour-driven-development/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
