<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java crumbs &#187; Knihovnička SE</title>
	<atom:link href="http://blog.krecan.net/category/knihovnicka-se/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.krecan.net</link>
	<description>Short remarks from Java world</description>
	<lastBuildDate>Tue, 27 Jul 2010 13:56:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debugging</title>
		<link>http://blog.krecan.net/2010/07/27/debugging/</link>
		<comments>http://blog.krecan.net/2010/07/27/debugging/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:56:21 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=671</guid>
		<description><![CDATA[Mám tu pro vás další knihu ze seznamu doporučené literatury. Jedná se o Debugging, kterou napsal David J. Agans. Tato kniha obsahuje několik pravidel, kterými by se měl člověk řídit, pokud hledá chyby jak v software tak i v čemkoliv jiném. Ta pravidla jsou následující:

Pochopte systém – Přečtěte si manuál, zjistěte si jak se to [...]]]></description>
			<content:encoded><![CDATA[<p>Mám tu pro vás další knihu ze <a href="http://blog.krecan.net/2010/06/28/jopenspace-doporucena-literatura/">seznamu doporučené literatury</a>. Jedná se o <a href="http://www.bookdepository.co.uk/book/9780814474570/Debugging">Debugging</a>, kterou napsal David J. Agans. Tato kniha obsahuje několik pravidel, kterými by se měl člověk řídit, pokud hledá chyby jak v software tak i v čemkoliv jiném. Ta pravidla jsou následující:</p>
<ol>
<li>Pochopte systém – Přečtěte si manuál, zjistěte si jak se to má chovat, jak se mají chovat komponenty a podobně.</li>
<li>Nechte to selhat – Pokud chceme odstranit chybu, musíme se ji naučit reprodukovat. Bez toho nemáme moc šanci zjistit co je špatně, a ani to, jestli už jsme to opravili.</li>
<li>Přestaňte přemýšlet a začněte se dívat – Člověku se často stane, že uhodne důvod problému a pak už ignoruje všechny náznaky toho, že je chyba jinde. Tato rada nám připomíná, že máme přestat hádat a začít se pořádně koukat.</li>
<li>Rozděl a panuj – Klasika, prostě si systém rozdělíme a zkusíme zjistit v které části ta chyba je.</li>
<li>Měňte pouze jednu věc – Často se stane, že člověk zkusí udělat jednu opravu, ta nepomůže, tak udělá další a pak ještě další, až problém nakonec možná zmizí. Neúspěšné pokusy o opravu v systému nechá. To je chyba. Pokud oprava nepomohla, vraťte všechno zpět a až pak se pouštějte do dalších pokusů.</li>
<li>Držte si kontrolní záznam – Pokud narazíte na problém, je dobré si napsat všechny okolnosti, které se při něm vyskytovali. Pokud je chyba dost zákeřná, bude se vám to hodit při analýze příčin.  U software se tento bod dobře mapuje na logování.</li>
<li>Zkontroluje zástrčku – Často je chyba v té nejsamozřejmější věci. V autě není benzín, počítač není v zásuvce, aplikace není spuštěna.</li>
<li>Získejte čerstvý pohled – Nevíte si s něčím rady? Zkuste se někoho zeptat. Možná vám to docvakne při vysvětlování, možná něco napadne toho druhého. Důležité je, neříkat mu svoje hypotézy, ať ho nezatáhnete do stejné slepé uličky v které už jste vy.</li>
<li>Pokus jste to neopravili, není to opraveno – Ano, pokud chyba zmizí sama od sebe, je pravděpodobné, že se znovu objeví. A to pravděpodobně v ten nejnevhodnější okamžik.</li>
</ol>
<p>V knize jsou samozřejmě jednotlivé rady rozepsány do hloubky, ale největší přínos vidím právě v tom seznamu. Má potenciál člověka odpoutat od zákysu a donutit ho nezkoušet to samé pořád dokola.  V knize je také hromada „válečných historek“, ale ty jsou většinou hardwarové. Něco ve stylu: „špatně se nám ukládala data v paměti, tak jsme mysleli, že to je způsobeno šumem na vodiči a ono to přitom bylo špatným signálem časovače. Ha ha ha.“ Pro člověka hardwarem nezasaženého jako jsem já zas tak zajímavé nebylo. I když, historku o tom, jak se někomu odmítalo rozjet auto, podle toho jakou si dal zmrzlinu jsem pochopil i já.</p>
<p>Takže abych to shrnul, kniha byla zajímavá, ale řekl bych, že se bez ní obejdete. Nejužitečnější je určitě ten seznam pravidel.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2010/07/27/debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dlouhý ocas</title>
		<link>http://blog.krecan.net/2010/07/16/dlouhy-ocas/</link>
		<comments>http://blog.krecan.net/2010/07/16/dlouhy-ocas/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:01:20 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=659</guid>
		<description><![CDATA[Už jsem tady tu knihu zmiňoval, ale teprve teď jsem se jí prokousal. Ano, mluvím o knize The Long Tail, kterou napsal Chris Anderson. 
Celý obsah knihy se dá vyjádřit jediným obrázkem (ukradeno bez svolení autora).

Zobrazuje počet stažení jednotlivých titulů ze serveru Rhapsody. Samozřejmě kniha není jenom o muzice, tvrdí v ní, že podobné rozložení [...]]]></description>
			<content:encoded><![CDATA[<p>Už jsem tady tu knihu zmiňoval, ale teprve teď jsem se jí prokousal. Ano, mluvím o knize <a href="http://www.bookdepository.co.uk/book/9781847940360/Long-Tail">The Long Tail</a>, kterou napsal Chris Anderson. </p>
<p>Celý obsah knihy se dá vyjádřit jediným obrázkem (ukradeno bez svolení autora).<br />
<img src="/files/long-tail.jpg" alt="Křivka poptávky" /></p>
<p>Zobrazuje počet stažení jednotlivých titulů ze serveru Rhapsody. Samozřejmě kniha není jenom o muzice, tvrdí v ní, že podobné rozložení se týká v podstatě všeho. Od kuchyňských mixérů, přes filmy, knihy, webové stránky, hledané termíny v Google až po příchutě piva. </p>
<p>Jak už název napovídá, kniha se zaměřuje hlavně na ten dlouhý ocas, tzn. na tu část grafu, která se nachází vpravo. Proč? Protože tu část vlevo všichni známe, tam jsou úspěšné hity, věci které se dají koupit v obchodě, věci které uvidíte v kině nebo televizi. Ale kromě nich existuje spousta dalších. Dokonce těch věcí, které nejsou takto středněproudé je mnohem, mnohem víc. (Proč graf vypadá tak jak vypadá  se můžete dočíst v „<a href="http://www.kosmas.cz/knihy/125593/v-pavucine-siti/">V Pavučine Sítí</a>“)</p>
<p>Schválně zkuste hádat. Kolik knih z prvních 100 000 titulů prodávaných na Amazonu se prodá alespoň jednou za čtvrt roku? Troufnete s tipnout? Nebojte, já jsem byl taky úplně mimo. Tak kolik? Prý je to 98%. Jinými slovy, Amazon prodá alespoň jeden výtisk z 98 000 titulů! Odhaduji, že na celém Václaváku mají k dispozici tak čtvrtinu, nemluvě o tom kolik z toho prodají. To je ostatně hlavní ponaučení z toho obrázku. Tam se pohybujeme v pomyslném žebříčku hitů na miliontém místě a přeci nejsme na nule. I tak hluboko se občas něco prodá!</p>
<p>Jiný z pohledů, kterým se na obrázek můžeme dívat je,  že budeme ignorovat konkrétní data a budeme se na něj dívat jako na ideální křivku poptávky. Hodně lidí touží po hitech, proto máme tu špičku vlevo. Každý z nás má ale svoje zvláštní choutky, svoji niku (niche), která je pro něj specifická. Tato vlastnost formuje poptávku vpravo.</p>
<p>V dávné době kamenných o fyzického zboží, ale bylo fyzicky nutné omezit nabídku. Náklady na výrobu, skladování, prodej a dopravu zboží  jednoduše na grafu nakreslí čáru, za kterou se prostě nevyplatí dané zboží prodávat.</p>
<p>Dnes ale žijeme ve století ovocného netopýra a existuje spousta produktů, která se dá vyprodukovat a prodat skoro zadarmo. Dlouhý ocas se nás tedy dotýká mnohem a mnohem více. V zásadě se spojily tři faktory, které umožňují realitě, aby dostihla tuto ideální křivku poptávky. První z nich je demokratizace výrobních prostředků. Ano dávný Marxův sen je konečně tu. V podstatě každý (na té šťastnější polokouli) má prostředky a dost času produkovat svoji hudbu, filmy, knihy, víno, obrazy... prostě (téměř) cokoliv. Tento faktor protahuje ocas doprava. Pak tu máme demokratizaci distribuce. Jinými slovy internet. Ten umožňuje komukoliv své výtvory distribuovat. Tento faktor dlouhý ocas zesiluje.  No a nakonec tu máme propojení poptávky s nabídkou. Je to hlavně Google ale i různá doporučení na internetu od iTunes, přes Amazon až po blogy nebo Facebook. Tento faktor přesouvá lidi od hitů směrem doprava.</p>
<p>Jaké jsou důsledky? Například údajně stále méně lidí kouká na televizi. Proč? Protože mají volbu, můžou koukat na to co chtějí, ne na to co jim někdo vybere. Zeptejte se velkých hráčů zábavního průmyslu jaké to mělo důsledky pro ně. I když vlastně za jejich problémy můžou piráti, já zapomněl. </p>
<p>Samozřejmě jsou tu i pozitivní důsledky. Pokud proti tomuto trendu nebojujete, ale přimete ho za svůj, můžete na něm i vydělat. Protože pokud vás napadne spočítat si plochu toho ocasu, zjistíte, že je skoro stejně velká jako ta část vlevo! Takže pokud se vám ho podaří tuto poptávku nasytit, můžete na ní vydělat stejně nebo i víc než na hitech (ještě se tam projevuje marže, ale do takových detailů zabíhat nebudu). Pokud se vám tedy podaří za podstatě nulových nákladů prodávat velké množství knih, muziky nebo třeba inzerátů, máte na důchod vystaráno.</p>
<p>Tedy pokud jste ve správné části toho kolotoče. V doslovu posledního vydání se totiž dočtete jednu zásadní informaci. Na celé té mašinérii se podílí tři typy hráčů. Spotřebitelé, výrobci a agregátoři (viz. tři faktory výše). Spotřebitelé získávají možnost volby, výrobci si najdou těch svých pár spotřebitelů, ale ti hlavní kdo na tom vydělávají jsou agregátoři. To je ten Google, Apple, Amazon a eBay. Ti nic neprodukují, jenom spojují nabídku s poptávkou. Takže vlastně nic nového.</p>
<p>Ještě si neodpustím povzdechnutí, proč to u nás sakra nefunguje u videa a určité míry i hudby. Proč si nemůžu za rozumný peníz legálně stáhnout z internetu co chci. Proč se těch málo internetových obchodů co tu funguje chová jako kamenný obchod a mají v nabídce hrstku titulů? To se mi nějak nedaří pochopit. Ještě, že alespoň ty pivovary to u nás pochopily.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2010/07/16/dlouhy-ocas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jOpenSpace &#8211; doporučená literatura</title>
		<link>http://blog.krecan.net/2010/06/28/jopenspace-doporucena-literatura/</link>
		<comments>http://blog.krecan.net/2010/06/28/jopenspace-doporucena-literatura/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 13:50:50 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=590</guid>
		<description><![CDATA[Snad se na mě Satai nebude zlobit, ale ocituji jím doporučenou literaturu z letošního jOpenSpace. Pokud mě moje zápisky neklamou byly to:

The Passionate Programmer: Creating a Remarkable Career in Software Development*
Beginning Scala 

Debugging
Rework* 
Prezentace a  zen*
Krajiny vnitřní a vnější
Židovský policejní klub

Petr Hamerník ještě doporučil V pavučině sítí*. Mezi řečí jsem pochytil doporučení na Krach [...]]]></description>
			<content:encoded><![CDATA[<p>Snad se na mě Satai nebude zlobit, ale ocituji jím doporučenou literaturu z letošního jOpenSpace. Pokud mě moje zápisky neklamou byly to:</p>
<ul>
<li><a href="http://www.bookdepository.co.uk/book/9781934356340/The-Passionate-Programmer">The Passionate Programmer: Creating a Remarkable Career in Software Development<strong>*</strong></a></li>
<li><a href="http://www.bookdepository.co.uk/book/9781430219897/Beginning-Scala">Beginning Scala </a>
</li>
<li><a href="http://www.bookdepository.co.uk/book/9780814474570/Debugging">Debugging</a></li>
<li><a href="http://www.bookdepository.co.uk/book/9780091929787/ReWork">Rework<strong>*</strong></a> </li>
<li><a href="http://www.zonerpress.cz/kniha/pro-webdesignery/prezentace-a-zen">Prezentace a  zen<strong>*</strong></a></li>
<li><a href="http://www.dokoran.cz/index.php?p=book.php&#038;id=9">Krajiny vnitřní a vnější</a></li>
<li><a href="http://www.kosmas.cz/detail.asp?cislo=142188">Židovský policejní klub</a></li>
</ul>
<p>Petr Hamerník ještě doporučil <a href="http://www.kosmas.cz/knihy/125593/v-pavucine-siti/">V pavučině sítí<strong>*</strong></a>. Mezi řečí jsem pochytil doporučení na <a href="http://www.kosmas.cz/knihy/151522/krach/">Krach <strong>*</strong></a> a <a href="http://www.bookdepository.co.uk/book/9781847940360/Long-Tail">The Long Tail</a>.</p>
<p>Zatím jsem četl ty z hvězdičkou a všechny mohu jen doporučit.</p>
<p>Když už jsme u knih, ještě doporučuji knihkupectví <a href="http://www.bookdepository.co.uk/">The Book Depository</a>, knihy jsou tam sice dražší než na Amazonu, ale mají dopravu zdarma, takže to ve finále vyjde levněji. Navíc člověk nemusí čekat, až se mu toho nakupí víc.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2010/06/28/jopenspace-doporucena-literatura/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vášnivý programátor</title>
		<link>http://blog.krecan.net/2010/06/28/vasnivy-programator/</link>
		<comments>http://blog.krecan.net/2010/06/28/vasnivy-programator/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 10:41:30 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=586</guid>
		<description><![CDATA[	Zrovna procházím seznam doporučené literatury z jOpenSpacu. Dostal jsem se tedy i ke knize Passionate Programmer, kterou napsal Chad Fowler. Nebojte se, nejde o růžovou knihovnu, to jsem jen neodolal pokušení při překladu. Vhodnější by asi bylo použít slovo náruživý. 
	Kniha má podtitul, který  přesně vyjadřuje její obsah: „vytváříme pozoruhodnou kariéru ve vývoji software“. [...]]]></description>
			<content:encoded><![CDATA[<p>	Zrovna procházím seznam doporučené literatury z <a href="http://blog.novoj.net/2010/06/08/jopenspace-2010/">jOpenSpacu</a>. Dostal jsem se tedy i ke knize <a href="http://www.amazon.co.uk/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1277721571&#038;sr=1-1">Passionate Programmer</a>, kterou napsal Chad Fowler. Nebojte se, nejde o růžovou knihovnu, to jsem jen neodolal pokušení při překladu. Vhodnější by asi bylo použít slovo náruživý. </p>
<p>	Kniha má podtitul, který  přesně vyjadřuje její obsah: „vytváříme pozoruhodnou kariéru ve vývoji software“. Je prostě o tom, jak dělat práci, která člověka baví a jak v tom být dobrý. Jde o druhé, upravené vydání, první se jmenovalo „My Job Went to India: 52 Ways to Save Your Job“. V druhém vydání se změnil nejenom název, kniha prý byla předělána aby kladla důraz právě na tu „pozoruhodnost“ vaší kariéry. </p>
<p>	Jde o takový mix ne příliš navazujících kapitol, které se dívají na práci vývojáře z různých stran. Dočtete se, jak se stát špičkovými programátory, jak o tom dát vědět nadřízeným, jak se neustále zlepšovat, jak si vybrat zaměření a jak se stát slavným. Krása, škoda že už slavný jsem.</p>
<p>	Ani moc nevím co bych víc napsal, je potřeba si tu knížku přečíst. Pokud obsah knihy shrnu, tak bychom si měli správně vybrat obor, stát se v něm nejlepší, dát to všem vědět a zajímavá kariéra nás nemine. Zní to sice samozřejmě, ale snadné to není. V knížce se právě dočtete dost triků a tipů jak toho všeho dosáhnout. Doporučuji.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2010/06/28/vasnivy-programator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RESTované webové služby</title>
		<link>http://blog.krecan.net/2009/12/06/restovane-webove-sluzby/</link>
		<comments>http://blog.krecan.net/2009/12/06/restovane-webove-sluzby/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 15:07:42 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[WS]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=476</guid>
		<description><![CDATA[	Jak je o mě jistě známo, jsem svého druhu dinosaurus. Stále ještě programuji v Javě a dokonce používám takové předpotopní technologie, jakými jsou SOAP webové služby. Ale abych věděl, o čem všichni mluví, občas si přečtu i nějakou tu knihu o novinkách.  Onehdá jsem studoval Scalu (vřele doporučuji) a teď jsem zrovna dočetl knihu [...]]]></description>
			<content:encoded><![CDATA[<p>	Jak je o mě jistě známo, jsem svého druhu dinosaurus. Stále ještě programuji v Javě a dokonce používám takové předpotopní technologie, jakými jsou SOAP webové služby. Ale abych věděl, o čem všichni mluví, občas si přečtu i nějakou tu knihu o novinkách.  Onehdá jsem studoval <a href="http://www.amazon.co.uk/Programming-Scala-Comprehensive-Step-Step/dp/0981531601/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1260111299&#038;sr=1-1">Scalu</a> (vřele doporučuji) a teď jsem zrovna dočetl knihu <a href="http://www.amazon.co.uk/RESTful-Web-Services-Leonard-Richardson/dp/0596529260/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1260111272&#038;sr=8-1">RESTful Web Services</a> od pánů Richardsona a Rubyho. </p>
<p>	Pokud se chcete dozvědět co to vlastně ten REST je, tak je to ta pravá kniha pro vás. Dozvíte se tam hodně o filozofii RESTu, o jeho výhodách, o tom jak takové služby navrhovat a jaké technologie k tomu používat. Většina příkladů je sice napsána v jakémsi obskurním jazyce jménem Ruby, ale pochopí je i Javista.</p>
<p>	Kniha je napsána i docela čtivě, musíte jenom překousnout demagogii typu „REST je nejlepší, RPC je k ničemu“. Co se mi hodně líbilo je to, že jsem snad konečně pochopil principy RESTu. Je to totiž jedna z těch technologií, o kterých všichni mluví, ale málokdo ji plně rozumí. Pokusím se tu shrnout to nejdůležitější.</p>
<p><strong>Dělej to jako Web</strong></p>
<p>	To je asi hlavní krédo RESTovaných aplikací. Web funguje, je snadno použitelný, dobře škáluje, tak proč bychom nemohli dělat webové služby úplně stejně. Je tu veliký rozdíl v tom, že normální web je určen pro lidi a webové služby pro stroje. Ale proč nepoužít stejných osvědčených principů?</p>
<p><strong>Zdrojově orientované</strong> </p>
<p>	Zdrojově orientované je můj geniální překlad pro Resource-Oriented. Znamená to, že se místo na služby, orientujeme na zdroje. Místo na slovesa typu udělej, založ, smaž se soustředíme na podstatná jména typu účet, zákazník a podobně. Je to podobné jako objektové programování, v něm bychom se měli soustředit hlavně na objekty samotné, jejich operace by z nich měli vyplývat.  Stejné princip by měl platit u RESTu. Tady musím dát příznivcům RESTu za pravdu, normální WS jsou silně funkcionální, o objektech tam není ani památky. Na druhou stranu je spousta služeb, které se jako RESTové jenom tváří, ale v podstatě jsou také jen RPC. </p>
<p><strong>Adresovatelnost</strong></p>
<p>	Další důležitý princip je adresovatelnost. Každá věc která je v daném systému důležitá, by měla mít vlastní adresu. To znamená, že každá instance objektu, by měla mít vlastní URI. Hodně to souvisí s  orientací na zdroje. Každý zdroj, má svoji adresu, například takovouto <em>http://www.exaple.com/v1/bank/client/12345</em>. Pokud použijeme přirovnání k objektům, tak URI je podobná referenci. </p>
<p><strong>Propojenost (Connectedness)</strong></p>
<p>	Propojenost hodně souvisí s předchozími body. Znamená to, že jako výsledek operací dostávám odkazy na další zdroje. Pokud se například zeptám na seznam klientů banky, měl bych dostat seznam jejich URI a ne jen jejich ID. Pokud bereme URI jako referenci na instanci, tak to dává smysl.</p>
<p><strong>Idempotentnost</strong></p>
<p>	Krásné české slovo označující, to, že by mělo být možné zavolat jednu službu vícekrát, aniž by hrozilo něco ošklivého. To znamená, že operace by pokud možno neměly mít žádné vedlejší účinky. Pokud mění stav systému, měly by to dělat tak, aby se nic nestalo, pokud ho změní vícekrát. Je překvapivé, že takových operací je valná většina. Nic se nestane, pokud například vícekrát nastavím stejnou hodnotu nebo něco smažu. Jsou tu samozřejmě výjimky, ale i u těch se dá idempotentnost zařídit. </p>
<p><strong>Bezstavovost</strong></p>
<p>	Bezstavovost je často nepochopené téma. A není se čemu divit, je to hodně matoucí. Pokusím se to ale vysvětlit. Bezstavovostí se v tomto případě myslí, že webová služba neukládá stav klienta. Rozhodně tam není žádná session. Klient může navíc volat operace v libovolném pořadí, takže by se nemělo objevovat žádné flow jak ho známe z normálního webu. Ale aplikace samotná samozřejmě stav má. Takže si samosebou pamatuje, kolik kdo má na účtu, kam chce letět na dovolenou nebo kam rád chodí do restaurace. Ale nejedná se o stav klientské aplikace, jedná se o stav zdrojů. V tom je veliký rozdíl. </p>
<p>	Bezstavovost je docela rozumný princip, díky ní se například dobře škáluje. Bohužel často k jejímu dodržení musíme švindlovat. Občas prostě potřebujeme držet stav klientské aplikace. V RESTu proto dělají krok stranou a prohlásí stav klienta za stav systému. Takže když potřebují uložit obsah nákupního košíku, řeknou, že to není stav klienta, ale stav aplikace. Nákupní košík je vlastně takový zdroj, jehož stav aplikace naprosto přirozeně drží. Takový košík má pak svoji URI, své operace a je to prostě normální zdroj. Problém vyřešen. Tedy kromě té škálovatelnosti, s ní jsem na tom úplně stejně jako kdybych používal session. (Kvízová otázka. Jak zajistit, aby přidání položky do nákupního košíku bylo idempotentní?) </p>
<p>	No zbytek z těch asi 400 stránek tu opisovat nebudu. Radši napíšu proč se budu držet dál normálních (tlustých) webových služeb. </p>
<p>	V první řadě se mi nelíbí úzká vazba na HTTP. To je jedna z věcí, která mi ještě nedošla, takže budu rád když mi ji někdo vysvětlí. Na jedné straně čtu, že REST je na HTTP úplně nezávislý. Na druhé straně, je ale REST s HTTP neuvěřitelně úzce spjat. Chcete-li změnit stav zdroje, máte použít HTTP PUT, chcete-li ho smazat, použije HTTP DELETE, chcete zjistit jeho stav, použijte GET. Nastane chyba? Dostanete ten a ten HTTP chybový kód. Tak je to závislé nebo ne? Mě spíš připadá že jo. </p>
<p>	Dalším důvodem, proč zatím zůstanu u klasického ošklivého SOAPu je to, že mi vyhovuje. Já prostě nepíši aplikace, které jsou podobné webovým stránkám. Píši věci, které jsou svoji podstatou spíše procedurální než objektové. Navíc mi vyhovuje to, že existuje něco jako WSDL, které je sice ošklivé jak noc, ale které i přes své mouchy funguje. Ano pro REST máme WADL, ale že by byl široce rozšířen se říci nedá.</p>
<p>	Také mi vyhovuje, že v SOAPu jsou metadata součástí zprávy a ne protokolu, kterým se zpráva posílá. Prostě mi to připadá bezpečnější. Když volám webovou službu tak volání bohužel často přejde přes několik JMS front a pár HTTP připojení. Takže se na to radši dívám tak, že posílám XML dokument, který přes nějaké složitosti snad doputuje k svému adresátu. </p>
<p>	Tím rozhodně nechci říci, že je REST špatný. Pokud bych vystavoval webové služby pro něco, co má svůj ekvivalent ve webové aplikaci, asi bych nad RESTem vážně uvažoval. Protože se ale pohybuji v jiném světě, tak je moje volba jiná. To mi ale nebrání se poučit a pár fint od RESTu okoukat.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2009/12/06/restovane-webove-sluzby/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Vedeme lidské bytosti</title>
		<link>http://blog.krecan.net/2009/06/21/vedeme-lidske-bytosti/</link>
		<comments>http://blog.krecan.net/2009/06/21/vedeme-lidske-bytosti/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 08:49:16 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=396</guid>
		<description><![CDATA[Mítinky jsou boje o moc mezi lidmi, kteří něco chtějí, a těmi, kteří jim to nechtějí dát.
Pravidelnější čtenáři tohoto nepravidelného blogu už jistě tuší, že je čeká další minirecenze. Tentokrát se jedná o knihu „Managing humans“ (na ten odkaz rozhodně klikněte) od Michaela Loopa (Jírovy patří dík za tip). Kniha je to stylem podobná Joel [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Mítinky jsou boje o moc mezi lidmi, kteří něco chtějí, a těmi, kteří jim to nechtějí dát.</p></blockquote>
<p>Pravidelnější čtenáři tohoto nepravidelného blogu už jistě tuší, že je čeká další minirecenze. Tentokrát se jedná o knihu „<a href="http://managinghumans.com/">Managing humans</a>“ (na ten odkaz rozhodně klikněte) od Michaela Loopa (<a href="http://jirablog.blogspot.com/">Jírovy</a> patří dík za tip). Kniha je to stylem podobná <a href="http://blog.krecan.net/2008/06/09/joel-o-software/">Joel on Software</a> a musím přiznat, že se mi líbila skoro stejně. Je sice o hodně méně technická, ale zato mnohem víc o lidech. </p>
<p>Dal bych ji za povinnou literaturu lidem, kteří se snaží vést (nebo nedejbože řídit) bandu <a href="http://cs.wikipedia.org/wiki/Nerd">nerdů</a>. Ale je hodně zajímavá i pro nás nerdy samotné. Hodně užitečná je i pro lidi, kteří pracují v korporaci.</p>
<p>Takže co se v knize dočtete? Hodně mě zaujala kapitola o tom, jak uhodnout, co se děje na pracovní schůzce. Znáte to, sedíte na mítinku a přemýšlíte co tam sakra děláte, co a proč se ti lidé snaží říci. V kapitolách „<a href="http://www.randsinrepose.com/archives/2004/02/08/agenda_detection.html">Agenda detection</a>“ a „<a href="http://www.randsinrepose.com/archives/2006/11/17/meeting_creatures.html">Meeting creatures</a>“ se to dočtete. </p>
<p>Zajímavé jsou i části, které popisují jak se připravit na pohovor, napsat životopis a podobně. To jsem měl sakra vědět před pár měsíci.</p>
<p>No a neméně zajímavé jsou i kapitoly o nerdech samotných. Například <a href="http://www.randsinrepose.com/archives/2003/07/10/nadd.html">NADD</a>. Ale třeba "<a href="http://www.randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html">Přiručka k nerdovi</a>" se do knihy nedostala.</p>
<p>Jak jste si všimli, většina kapitol je volně ke čtení i na autorově blogu, ale mě se kniha čte mnohem lépe. Jenom si dovoluji upozornit, že je to psané pokročilejší angličtinou, takže se docela procvičíte. Například na straně 188 mě dostalo sloveso „<a href="http://en.wikipedia.org/wiki/Grok">to grok</a>“, ale jelikož jsem nerd tak jsem to pochopil i bez slovníku. I když jak tak koukám, tak se to dostalo i do slovníků, zajímavé. Ale zpátky ke knize, ta zaslouženě dostává neuvěřitelných deset hvězdiček z deseti.</p>
<p>No a abych vás neochudil o tradiční ukázku z knihy, uvedu pár položek z vysvětlivek na konci knihy:</p>
<p><strong>Agenda</strong> – Seznam věcí, které se musí na dané schůzce odehrát aby byla kompletní. Pokud všichni účastníci na dané schůzce nejsou seznámeni s agendou, bude docházet ke ztrátě času.</p>
<p><strong>Spolupráce</strong> – Slovo používané k tomu, aby vás přesvědčili pracovat s lidmi, kterým byste se raději vyhnuli.</p>
<p><strong>Milník (Milestone)</strong> – Chabě nadefinované, přehnaně vytrubované datum, které je částí softwarového vývoje. Vývojový tým při něm přemýšlí o tom jak je v pytli.</p>
<p><strong>Proces</strong> – Šestipísmenné slovo začínající na P. Proces není špatná věc. Obzvlášť ve velkých organizacích kde ohromné množství lidí ztrácí velké množství času děláním té samé věci.</p>
<p><strong>Specka (Specifikace)</strong> – Dokument, který říká jak to je. Proces psaní specifikace bývá víc užitečný než výsledný dokument.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2009/06/21/vedeme-lidske-bytosti/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Praktický API Design</title>
		<link>http://blog.krecan.net/2009/04/11/prakticky-api-design/</link>
		<comments>http://blog.krecan.net/2009/04/11/prakticky-api-design/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 12:29:02 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=350</guid>
		<description><![CDATA[Dnes budu psát o knize Practical API Design od Jaroslava Tulacha. Pomiňme její kvalitní zpracování, které se jen tak nevidí, zajímavý je obsah. 
Na začátku je tam na můj vkus docela dost filozofování, ale možná to ke knize podobného zaměření patří. Zabývá se totiž pohledem na návrh API v Javě z trochu vyššího hlediska. To [...]]]></description>
			<content:encoded><![CDATA[<p>Dnes budu psát o knize <a href="http://wiki.apidesign.org/wiki/Main_Page">Practical API Design</a> od Jaroslava Tulacha. Pomiňme její kvalitní zpracování, které se jen tak nevidí, zajímavý je obsah. </p>
<p>Na začátku je tam na můj vkus docela dost filozofování, ale možná to ke knize podobného zaměření patří. Zabývá se totiž pohledem na návrh API v Javě z trochu vyššího hlediska. To znamená, že se nebabrá v detailech, jako například správné pojmenování metod a rozdělení balíků. Kouká se na to víc shora. Tzn, jak dělat API tak, aby přežilo alespoň pár verzí. Dočtete se co dělat a co nedělat, na co si dát pozor. Autor se prostě pokusil o nemožné, zaznamenat na papír  a předat své dlouholeté zkušenosti z návrhu NetBeans API.</p>
<p>Kromě toho je tam také hodně zajímavých myšlenek, které vás donutí se zamyslet. Třeba tvrzení, že krása kódu je věc sice pěkná, ale v podstatě neužitečná. Zní to jako samozřejmost, ale poprvé jsem to takhle natvrdo napsané uviděl až v této knize. </p>
<p>Nejvíc mě zaujala strana 173, která se zabývá tím, co o metodě řeknou její modifikátory. Tzn. věci jako <code>public</code>, <code>final</code>, <code>abstract</code> a podobně. To je věc, která mi do té doby nedošla. Pokud totiž chceme aby měla metoda jeden jediný účel, připadají v úvahu jedině následující kombinace:</p>
<ul>
<li><code>public final</code> – Metoda je tu k tomu aby ji někdo volal</li>
<li><code>protected abstract</code> – metoda je to k tomu, aby ji někdo zastínil (naimplementoval)</li>
<li><code>protected final</code> – metoda má být volaná podtřídami</li>
</ul>
<p>Všechny ostatní kombinace, které obsahují <code>public</code> nebo <code>protected</code> mají víc významů, takže by se jim člověk měl vyhýbat. Například <code>public</code> se dá jak volat tak zastínit, takže není moc jasné, co je její správné použití. Jen pro úplnost upozorňuji, že <code>private</code> a <code>(package)</code> nás u API nezajímá.</p>
<p>A tady s dostáváme k věci, na kterou je třeba u knihy upozornit. Psal ji člověk, který se dlouhá léta zabývá návrhem API pro jiné programátory a to navíc pro Javu na desktopu a to ještě navíc v dynamickém prostředí, kde se moduly za běhu magicky načítají do paměti a zase se z ní vyhazují. Jeho styl myšlení a případy užití jsou tedy o hodně jiné než u mě. Já jsem zvyklý na serverovou Javu, která je zatím dost statická a navíc moji spotřebitelé jsou hlavně koncoví zákazníci. (více viz. v <a href="http://blog.krecan.net/2009/04/11/different-programming-worlds/ ">sesterském článku</a>).  Nejenže řeším úplně jiné problémy, některé rady jsou pro mě dokonce chybné!</p>
<p>Například stránka 221, kde autor řeší vzájemnou závislost listeneru a sledovaného objektu. Objekt v tomto případě drží odkazy na listenery a když se s ním něco stane, dá jim vědět. Autor tvrdí, že by objekt měl na své listenery odkazovat jen slabou (weak) referencí. Tak mohou být listenery uvolněny z paměti, když už nejsou potřeba, ale objekt samotný žije dál.</p>
<p>V případě NetBeans je to asi užitečná rada. K čemu držet v paměti listener, který sleduje změny v editačním okně, když leží v modulu, na který už se nikdo neodkazuje a tedy ho ani nepotřebuje. Tím, že editační okno drží na listener odkaz, znemožňuje odstranění celého modulu z paměti. </p>
<p>Když se ale na danou radu člověk podívá z mé serverové perspektivy, tak je to naprosto zvrhlé. Mám často listener, který na startu aplikace zaregistruji a pak už mě nezajímá. On dělá něco užitečného, může být třeba součástí složitého auditovacího modulu. Často je ten listener jediným pojítkem mezi daným modulem a zbytkem aplikace. Rozhodně nechci aby mi auditovací modul přestal fungovat, jen proto, že garbage collector uvolní listener z paměti. Tady vidíme, že rada která je naprosto legitmní pro NetBeans nemusí být platná pro server. Na to je potřeba dát pozor.</p>
<p>To je jen jeden aspekt. Navíc jsem přesvědčen, že „obyčejní“ programátoři jako já moc API nepíší. Původně jsem to chtěl na tomto místě víc rozebrat, ale věnuji tomu speciální <a href="http://blog.krecan.net/2009/04/11/different-programming-worlds/ ">článek</a>. </p>
<p>Takže podle mého názoru je kniha hodně užitečná buď pro lidi, kteří opravdu píší knihovny, což není můj případ, nebo pro lidi kteří se rádi zamýšlí nad tím jak dělat software, což můj případ je. Je na vás, abyste se rozhodli, jestli do těchto skupin patříte. Pokud ano, rozhodně si ji nenechte ujít. Pokud ne, radši si znovu přečtěte <a href="http://www.linuxzone.cz/index.phtml?idc=475&#038;ids=33">Java Efektivně</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2009/04/11/prakticky-api-design/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Nenuťte mě myslet</title>
		<link>http://blog.krecan.net/2008/10/20/nenutte-me-myslet/</link>
		<comments>http://blog.krecan.net/2008/10/20/nenutte-me-myslet/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 21:26:01 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=121</guid>
		<description><![CDATA[Nenuťte mě myslet (Do not make me think, Steve Krug) je kniha, na kterou často narazíte na stolech nebohých programátorů. A to i přesto, že se převážně zabývá použitelností webových stránek a ne aplikací. A jak tak koukám, tak to dokonce vyšlo i česky, pod názvem Nenuťte uživatele přemýšlet. Hmm, a dokonce jsou na internetu [...]]]></description>
			<content:encoded><![CDATA[<p>Nenuťte mě myslet (<a href="http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1224537837&#038;sr=1-1">Do not make me think, Steve Krug</a>) je kniha, na kterou často narazíte na stolech nebohých programátorů. A to i přesto, že se převážně zabývá použitelností webových stránek a ne aplikací. A jak tak koukám, tak to dokonce vyšlo i česky, pod názvem <a href="http://knihy.cpress.cz/knihy/pocitacova-literatura/webdesign-tvorba-www-stranek/webdesign-nenutte-uzivatele-premyslet-2-aktualizovane-vydani/">Nenuťte uživatele přemýšlet</a>. Hmm, a dokonce jsou na internetu i recenze (<a href="http://interval.cz/clanky/web-design-nenutte-uzivatele-premyslet/">1</a>, <a href="http://www.zive.cz/Clanky/Webdesign--nenutte-uzivatele-premyslet-kniha/sc-3-a-142646/default.aspx">2</a>, <a href="http://www.grafika.cz/art/webdesign/krug.html">3</a>, <a href="http://stribny.name/zapisnik/?clanky/nejdulezitejsi-nenutte-uzivatele-premyslet">4</a>). Tak si říkám, že nemá moc cenu, abych nosil dříví do Atén a přidával další recenzi. </p>
<p>Takže jen krátce: Mě se na knížce nejvíc líbilo, že se dobře čte, je relativně krátká a hlavně, že si při její četbě člověk hodně uvědomí o tom, jak se lidi na internetových stránkách chovají. Z pohledu programátora aplikací je asi nejužitečnější kapitola o uživatelských testech použitelnosti. Prostě o tom, jak zjišťovat, jak se potencionálnímu uživateli bude s naší stránkou a potažmo i aplikací pracovat. To je hodně zajímavé a užitečné. Takže dávám knize osm hvězdiček z deseti. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2008/10/20/nenutte-me-myslet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java puzzlers</title>
		<link>http://blog.krecan.net/2008/10/14/java-puzzlers/</link>
		<comments>http://blog.krecan.net/2008/10/14/java-puzzlers/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 20:07:53 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=111</guid>
		<description><![CDATA[Tušíte správně, dneska vás čeká pidirecenze známé knihy Java Puzzlers od Joshuy Blocha a Neala Gaftera. Kniha obsahuje 95 krátkých hříček, rébusů a hádanek, které pěkně prozkouší vaši pozornost a znalosti temných zákoutí Javy.
Kniha je to zajímavá, člověk si toho hodně připomene, popřípadě naučí. Když má dost trpělivosti a nepřeskakuje rovnou na řešení, tak si [...]]]></description>
			<content:encoded><![CDATA[<p>Tušíte správně, dneska vás čeká pidirecenze známé knihy <a href="http://www.javapuzzlers.com/">Java Puzzlers</a> od Joshuy Blocha a Neala Gaftera. Kniha obsahuje 95 krátkých hříček, rébusů a hádanek, které pěkně prozkouší vaši pozornost a znalosti temných zákoutí Javy.</p>
<p>Kniha je to zajímavá, člověk si toho hodně připomene, popřípadě naučí. Když má dost trpělivosti a nepřeskakuje rovnou na řešení, tak si může pěkně polámat hlavu. Schválně, kdo z vás by uhodl jak nadeklarovat <code>i</code>, tak aby byl následující cyklus nekonečný.<br />
<code><br />
while (i==i+1){}<br />
</code></p>
<p>Řešení nebudu prozrazovat, nechám vám to za domácí úkol.</p>
<p>Nejen že jsem se u knihy pobavil, dokonce jsem se i naučil jeden docela užitečný trik. Je to řešení rébusu číslo 53.</p>
<p>Mějme třídu </p>
<pre name="code" class="java">
public class Thing
{
	public Thing(int t){...}
	...
}
</pre>
<p>Implementujeme jejího potomka, v kterém potřebujeme spočítat nějakou hodnotu, tu si uložit a zároveň ji předat do konstruktoru předka. Tzn. potřebujeme udělat něco takového:</p>
<pre name="code" class="java">
public class MyThing extends Thing
{
	private final int arg;
	public MyThing(){
		super(arg = SomeOtherClass.func());
	}
	...
}
</pre>
<p>Samozřejmě, návratová hodnota dané funkce se často mění a my potřebujeme aby naše řešení sneslo zátěž z více vláken. Zapoměl jsem se zmínit, že předchozí kód nejde zkompilovat, kompilátor vám vynadá, že nemůžete referencovat arg před tím, než zavoláte konstruktor předka.</p>
<p>Já vím, že vám je to naprosto jasné. Vzpomínám si ale, že jsem jednou narazil na podobný problém a nakonec jsem ho nevyřešil. Musel jsem to nějak obejít. A přitom je řešení tak snadné a elegantní. Tak co přijdete na něj sami?</p>
<pre name="code" class="java">
public class MyThing extends Thing
{
	private final int arg;
	public MyThing(){
		this(SomeOtherClass.func());
	}
	private  MyThing(int i)
	{
		super(i);
		arg = i;
	}
	...
}
</pre>
<p>Docela užitečná finta.</p>
<p>Takže abych to shrnul, knížka je to zábavná i poučná. Naučíte se spoustu věcí o různých podivnostech v Javě. Na můj vkus je v knize trochu moc hádanek týkajících se různých celočíselných přetečení, zaokrouhlovacích chyb a podobně. To jsou podle mého názoru věci, s kterými se setkáte opravdu výjimečně. Ale i tak si myslím, že si kniha zaslouží sedm hvězdiček z deseti. Tomu kdo si chce počkat až to zfilmujou, doporučuji následující <a href="http://www.parleys.com/display/PARLEYS/Home#title=The%20Java%20Puzzlers;talk=13467713;slide=1">trailer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2008/10/14/java-puzzlers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Géniové a mrzáci</title>
		<link>http://blog.krecan.net/2008/09/17/geniove-a-mrzaci/</link>
		<comments>http://blog.krecan.net/2008/09/17/geniove-a-mrzaci/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 20:00:21 +0000</pubDate>
		<dc:creator>Lukáš Křečan</dc:creator>
				<category><![CDATA[Knihovnička SE]]></category>

		<guid isPermaLink="false">http://blog.krecan.net/?p=103</guid>
		<description><![CDATA[Zrovna čtu knížku, jejíž název zní tak ezotericky, že se až stydím ho prozradit. O nic nepřijdete, knížka je poněkud suchopárná a moc dobře se mi nečte. Jedna kapitola mě ale zaujala. Začíná historkou o geniálním krejčím Levinovi.
Levin byl krejčí. Dokázal ušít oblek lacino. Nicméně když si ho zákazník přišel vyzkoušet, zjistil, že je mu [...]]]></description>
			<content:encoded><![CDATA[<p>Zrovna čtu knížku, jejíž název zní tak ezotericky, že se až stydím ho prozradit. O nic nepřijdete, knížka je poněkud suchopárná a moc dobře se mi nečte. Jedna kapitola mě ale zaujala. Začíná historkou o geniálním krejčím Levinovi.</p>
<blockquote><p>Levin byl krejčí. Dokázal ušít oblek lacino. Nicméně když si ho zákazník přišel vyzkoušet, zjistil, že je mu velký v zádech. Nevadí, řekl Levin a ukázal mu jak se nahrbit, aby to tak nevypadalo. Ale co pravý rukáv, vždyť je o tři palce delší. Nevadí, řekl Levin a ukázal mu jak se nahnout na stranu a natáhnout ruku, tak aby byl rukáv akorát. A co kalhoty, vždyť je levá nohavice moc krátká. Nevadí, řekl Levin a ukázal zákazníkovi jak vytáhnout nohu v boku tak, že pak kulhal. Ale oblek mu dokonale sednul.  Zákazník si to tak kulhá domů a cítí se trochu podveden. Když v tom ho potká neznámý muž a ptá se ho, jestli je to nový oblek. Jistě proč se ptáte. Ále sháním také oblek. U koho šijete? U Levina. Díky zajdu k němu, musí to být génius, když dokáže ušít padnoucí oblek na mrzáka jako jste vy.
</p></blockquote>
<p>Ptáte se proč píšu takovouto historku na blogu, který se normálně zabývá programováním? Musím ocitovat autora, pana Geralda M. Weinberga.</p>
<blockquote><p>Nevíme jestli jsou designéři programovacích jazyků géniové nebo jsou obyčejní programátoři mrzáci. Obecně řečeno, to jak je náš současný programovací jazyk špatný zjistíme, až když konečně překonáme psychologickou bariéru a naučíme se nový.</p></blockquote>
<p>Doba se hodně změnila od roku 1969, kdy autor knihu psal, ale připadá mi, že tvrzení stále platí. Rozhodně se to vztahuje na frameworky. Hrozně neradi se učíme nové, ale když překonáme tu bariéru, a naučíme se nový, zjistíme, jak byl ten starý špatný. Že jste museli dělat spoustu podivných věcí, jen abyste mu vyhověli, aby váš kód fungoval. Schválně se zkuste vrátit ke starším technologiím. </p>
<p>No a možná to dokonce stále platí i u programovacích jazyků. Nedám na Javu dopustit, ale Rubisti možná zrovna teď kývou hlavou. Což mi připomíná, že už jsem se dlouho nenaučil žádný nový programovací jazyk a nevyzkoušel nový framework. Samozřejmě vím, že je Java dokonalá a Sping bez chyby. Finta je v tom, že jedině tím, že se naučím něco nového, můžu přijít na to, že se možná pletu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krecan.net/2008/09/17/geniove-a-mrzaci/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
