La Formaggeria Hradec Králové – Kde koupit dobrý, špatně ošetřený sýr

Jedním z našich vpravdě národních pokrmů je smažený sýr. To je nutné si připomínat pokaždé, když se pouštíme do podobných témat, jako je to moje dnešní. Chci se podívat na prodejnu sýrů La Formaggeria v Hradci Králové a zejména na důvody, proč mé prvotní nadšení z jejího otevření vyprchalo do ztracena.Pokračovat ve čtení →

Volím TOP 09

V říjnových volbách do poslanecké sněmovny budu volit TOP 09. Nejsem žádným fanouškem Miloslava Kalouska, jeho občasné hulvátské výstupy mne silně znechucují (až na tu poznámku o šavli, ta sedla). Mám vážné výhrady k většině ministrů, kteří hájili barvy TOP 09 v Nečasově vládě. Nicméně jako pravicově smýšlejícímu proevropskému liberálovi mi nic jiného než TOP 09 nezbývá.

Vlevo se rozhlížet nemá cenu.

Komunisté nemají v demokratickém státě co pohledávat. Kdo volí komunisty, snaží se uvrhnout zemi do nesvobody. Volí kriminalizaci svobodného názoru, omezení pohybu, kádrování, cenzuru, fízlování, postupnou devastaci společnosti.

ČSSD slibuje, že když si vezmeme větší kbelík, dokážeme ze sousedovy krávy vydojit o pár litrů mlíka navíc. Nažrat dostaneme v hospodě zadarmo, hospodskej si pak vždycky někde půjčí.

Nové strany nemají mou důvěru. Je-li problémem českých politických stran úzká členská základna a z toho vyplývající personální podvyživenost, nově vznikající nebo stávající trpaslíci tomu nemohou pomoct.

ANO 2011 Andreje Babiše nemá program a vede ho člověk s estébáckou minulostí, který šel do politiky proto, že ceny za zkorumpování úředníka se ze snesitelných hladin v řádech miliónů zvedly na nestesitelnou hladinu v řádech miliard.

Úsvit Tomio Okamury je klonem Věcí veřejných. Okamura je schopen a ochoten se vyjadřovat ke všemu, kdekoli a kdykoli, přičemž jeho názor je utvářen výsledky průzkumů veřejného mínění. Co se týče jeho názoru na komunisty či rasové nepokoje, už dávno opustil prostor, v němž je možné diskutovat nebo vést spory.

ODS, jak již jsem nedávno uvedl, je pro mne volitelná programově, avšak s několika, bohužel zásadními, výhradami: Evropa, Klaus, prohnilost.

Nevolit mi by mi přišlo nezodpovědné. Levice asi vyhraje a já bych ještě snížil kvórum.

Takže to půjdu hodit Topce a nebude to ani se skřípěním zubů.

A ještě si dovolím si popřát, aby se Zemanovci nedostali do parlamentu a aby dostal Hašek od Sobotky na jižní Moravě přes prsty.

Koho budete volit v parlamentních volbách 2013?

  • TOP 09 (30%, 3 Votes)
  • Křesťanská a demokratická unie - Československá strana lidová (20%, 2 Votes)
  • Koruna Česká (monarchistická strana Čech, Moravy a Slezska) (20%, 2 Votes)
  • Česká pirátská strana (10%, 1 Votes)
  • Strana svobodných občanů (10%, 1 Votes)
  • Hlavu vzhůru (10%, 1 Votes)
  • Aktiv nezávislých občanů (0%, 0 Votes)
  • Strana soukromníků České republiky (0%, 0 Votes)
  • Strana zelených (0%, 0 Votes)
  • Suverenita - Strana zdravého rozumu (0%, 0 Votes)
  • Úsvit přímé demokracie (0%, 0 Votes)
  • Volte Pravý Blok www.cibulka.net (0%, 0 Votes)
  • Strana Práv Občanů ZEMANOVCI (0%, 0 Votes)
  • Romská demokratická strana (0%, 0 Votes)
  • Občanská demokratická strana (0%, 0 Votes)
  • OBČANÉ 2011 (0%, 0 Votes)
  • Národní socialisté - levice 21. století (0%, 0 Votes)
  • Komunistická strana Čech a Moravy (0%, 0 Votes)
  • Klub angažovaných nestraníků (0%, 0 Votes)
  • Dělnická strana sociální spravedlnosti (0%, 0 Votes)
  • Česká strana sociálně demokratická (0%, 0 Votes)
  • ANO 2011 (0%, 0 Votes)
  • Změna (0%, 0 Votes)

Total Voters: 10

Nahrávání ... Nahrávání ...

Náborování

Poslední dobou je tak trochu IN vyjadřovat se k náborům a pohovorům. Protože jsem se v posledních letech také zůčastnil pár náborových pohovorů, protože jsem byl adresátem několika pracovních nabídek a protože jsem znám pocit hladu po kvalitních lidech na projekt, cítím se být fundován přihodit na tu hromadu odpadků vlastní lopatku smetí. A sestavím ji tak, že se zmíním o několika článcích s touto tematikou, které mi přišly podnětné.

Jeff Atwood: How to Hire a Programmer

Skvělý článek spoluzakladatele Stack Overflow blogujícího na Coding Horror. Text jsem poprvé nalezl v knize Effective Programming: More Than Writing Code, kterou mám právě to potěšení číst.

Stať pojednává o oťukávání adepta na vývojářskou pozici. Popisovaný proces se vůbec nepodobá klasickému schématu, že si jdu na hodinu sednout s HR specialistkou a člověkem, o kterém vím jenom to, co jsem se dočetl v jeho životopise den nebo hodinu předem.

Přibližovací jednání má podle Jeffa Atwooda několik fází. Cílem je ztratit co nejméně času, nemá-li vztah budoucnost, a vědět o kandidátovi co nejvíce, jestliže vztah budoucnost má. Jeff doporučuje požádat uchazeče, bez ohledu na jeho senioritu, hned na začátku řízení o vyřešení nějaké banální úlohy typu vypsání sudých čísel od jedné do sta. Argumentuje statistikou, kolik potenciálních seniorních vývojářů není schopno takové problémy řešit.

Zajímavá je myšlenka nechat kandidáta vytvořit v nějakém krátkém, byť rozumném termínu nějaký vlastní malý projekt podle zadání. Ať se pak při osobním setkání máme nad čím plácat po ramenou. Tohle mi přijde jako zajímavá alternativa k požadavku přinést nějaký vlastní stávající kód, který většina kandidátů prohlásí za nerealizovatelný z několika seriózních důvodů.

Poslední fází je osobní setkání, při kterém bychom si měli být téměř jisti, že kandidáta chceme vzít. Je chvílí pro soft skills. Odprezentování dosavadních úspěchů a vychválení svého technického backgroundu. A tak.

No, stejně si to přečtěte.

Vit Kotačka: Jak dělám Java pohovor

S Víťou jsem měl tu čest krátce si zaspolupracovat v létě 2012 a musím říct, že to pro mě byla spolupráce velmi inspirativní.

Víťův článek se věnuje tomu, čemu slibuje ve svém nadpisu. Zajímavá mi přišla zvláště debata nad kódem, který uchazeč nezná, s cílem prověřit, jak se v něm dokáže zorientovat, na co se bude soustředit a co ho napadne. Ještě před tím se ovšem diskutuje nad kandidátovým vlastním kódem, takže i v této stati se doporučuje vyžádat si vlastní kód. A samozřejmě předem; projít si ho, udělat TODO, připravit otázky.

Podnětný je výčet relevancí, které autor přikládá jednotlivým položkám v CV uchazeče.

Riki FridrichAko korporácie lákajú zamestnancov (a prečo im to nejde)

Článek, který jednu dobu koloval po sociálních sítích, je reakcí na dělostřeleckou palbu head-hunterů, kteří vesměs nabízejí nadstandardně honorovanou práci na velice zajímavém projektu na nejmodernějších technologiích pro nadnárodního zaměstnavatele světového věhlasu v neformálním prostředí a mladém kolektivu. Podpořeno nesmírně grandiózními benefity. Což je věru neodolatelně lákavá nabídka.

No a příklad takového inzerátu, ze kterého je hned každému jasné, jestli ten job pro něj je nebo není, je inzerát z produkce již zmiňovaného Víti Kotačky.

Testy z Javy – oblíbený příklad

Nemám rád takové ty testové otázky, které se skládají z výpisu kódu přibližně o dvaceti řádcích následovaného otázkou, co program po spuštění vypíše na konzoli, s možnostmi odpovědí, z nichž ty první v pořadí jsou kompilační chyba, chyba za běhu a nic se nestane. O respondentovi se dozvíte nejspíše jenom to, jak si dokáže všímat detailů. Což se může hodit, ale není to všechno. Navíc například mě osobně takové testy urážejí, protože si s nimi někdo nedal žádnou práci, prostě je opsal z příkladů k certifikaci, a opravování si chce také maximálně ulehčit.

Já mám raději příklady, ze kterých jsem schopen odhadnout, kolik toho má ten člověk za sebou. Jeden z mých oblíbených spočívá v tom, že chci implementovat následující metodu:


/**

* Removes from collection all items that contain given text.

* Supposes  parameters are not null and  the collection doesn't contain null.

*/

public void filter(Collection<String> collection, String text) {

// TODO: implement

}

Když se ti, kteří neumějí procházet kolekce, odebéřou zjišťovat, jak udělají z kolekce pole, které si pak proběhnou přes indexy, dostaneme první skupinu, která napíše toto:


for (String item : collection) {

  if (item.contains(text)) {

    collection.remove(item);

  }

}

Což skončí výjimkou ConcurrentModificationException. Autor kódu tedy něco o Javě ví, ale moc toho nenaprogramoval. Zkušenější, ale stále ještě junior, si zkusí poradit nějak takto:


Collection<String> toBeRemoved = new ArrayList<>();

for (String item : collection) {

  if (item.contains(text)) {

    toBeRemoved .add(item);

  }

}

collection.removeAll(toBeRemoved);

Což už výjimky generovat nebude. Autor má něco za sebou, ale spokojí se s prvním řešením, které ho napadlo nebo ho někde opsal. Kód, který chci vidět, vypadá takto:


for (Iterator<String> iterator = collection.iterator(); iterator.hasNext();) {

  String item = iterator.next();

  if (item.contains(text)) {

    iterator.remove();

  }

}

A je to. Iterátor umí použít kdekdo. Ale dost lidí zná dvě metody toho rozhraní. Tu třetí ignoruje.

Edit: Obdržel jsem rozumnou připomínku, že mé nejlepší řešení nemusí fungovat pro všechny typy kolekcí, ano, z metody může vyletět UnsupportedOperationException. Ale myslím si, že se dá považovat za zodpovědnost volajícího, že chce modifikovat kolekci, která modifikaci umožní.

O relevantních návratových hodnotách

Jednou ze šikovných byť trochu nefér pastí programátorských testů je dotaz, co vypíše do konzole následující kód:

String text = "Ahoj, Honzo!";
text.replaceAll("Ahoj", "Styď se");
System.out.println(text);

Podraz je v tom, že metoda replaceAll nemodifikuje objekt, na němž je zavolána, ale namísto toho vrací nový řetězec. V případě třídy java.lang.String se tak chovají všechny metody, protože tato třída je immutable. Takže spousta respondentů odpoví, že na konzoli se vypíše řetězec „Styď se, Honzo!“ Což je sice odvážné, ale je to špatně.

Přibližně před rokem a půl jsem itenzivně řešil problém s komponentou, která měla nějakým způsobem filtrovat url požadavku, a nechtěla se to naučit. Chyba nakonec byla právě v zahození návatové hodnoty metody třídy String.

Ten problém by šel zobecnit. Máme metodu, jejíž volání je irelevantní, jestliže nepřiřadíme její výsledek. Metoda nic nemodifikuje a nemá ani žádné vedlejší účinky. Napadlo mne, že by se nebezpečí dalo odvrátit, kdyby byla k dispozici anotace, která by překladač informovala o tom, že návratová hodnota nesmí být ignorována. Překladač by pak druhý řádek mého příkladu považoval za chybu a odmítl třídu přeložit.

@MustAssign
public <T> T createCopy(T original) {
...

Možná by někoho napadlo automaticky tuto anotaci používat například u getterů, ale nemyslím si, že zrovna to by byl šťastný nápad. Vezměme si například toto:

Person person = entityManager.find(Person.class, id);
person.getChildren();
return person;

Volání metody getChildren() může vypadat jako chyba a metoda sama se může stát kandidátem pro naši novou skvělou anotaci. Ale spíš to vypadá jako zajištění inicializace fetch-type lazy atributu před odpojením entity.

Neuvážené plýtvání anotací by mohlo přinést i komplikace, ale jsem toho názoru, že bychom našli spoustu příkladů, kde by přínosy převážily. Jak jsem naznačil, mohlo by tomu tak být v případě metod immutable třít nebo v případě utility metod, které nemodifikují parametry.
Takže jestli znáte u oráklů někoho, kdo tam dělá víc než kafe, zkuste mu, prosím, navrhout, ať to prosadí do devítky Javy.

Java jokes

Uvědomil jsem si před časem, že na rozdíl od optiky (Cyrano s brýlemi) či chemie (H2SO5) nemá Java žádné odborné anekdoty. Rozhodl jsem se s tímto nedostatkem vypořádat s nasazením sobě vlastním a ve zbytku života nějaké složit. Předkládám tedy národu první vlaštovky.

Anekdota první:

if (this == null);
 

Anekdota druhá:


this++;

Anekdota třetí:


public void getName();

Zatím jich víc nemám, ale ještě jsem neskončil.

No, alespoň připojím jeden, který je sice obecnější, ale také se mi poved:

Nepříjemné je, když vám na záchodě po akci zůstane v ruce splachovadlo a vy si uvědomíte, že jste v transakci.

Appendix 1: Návrhový vzor Drbna

Jednu dobu jsem se zabýval nalézáním nových návrhových vzorů. Nejlépe rozpracovaný jsem měl vzor, který jsem po určitou dobou nazýval vzorem Tchýně, ale později mne napadl o něco vhodnější název Drbna. Tímto se omlouvám těm ze svých dosavadních sousedek a kamarádek, jichž se dále uvedené schéma netýká. Pojďme tedy k definici. Návrhovému vzoru Drbna odpovídá vnitřní třída, která publikuje veškeré soukromé členy své vnější třídy. Je samozřejmě nutné, aby vnitřní třída měla jiný modifikátor přístupu než private.

package cz.lender.java.jokes;

public class Victim {	
	private int braSize;	
	// give me more secrets
	public class Gossip {
		public int getVictimsBraSize() {
			return braSize;
		}
		// do not omit anything!
	}
}
package cz.lender.java.jokes;

import cz.lender.java.jokes.Victim.Gossip;

public class Nosy {	
	public void getInformationAboutVictim(Victim victim) {
		Gossip gossip = victim.new Gossip();
		int victimsBraSize = gossip.getVictimsBraSize();
		System.out.println(victimsBraSize > 5 ? "busty" : "flat");
	}
}

Appendix 2: Fronta typu Kečup

Fronta typu Kečup se chová divně. Ti, kdo se setkali s kečupem v jeho přírozeném prostředí, tedy ve skleněné láhvi, to budou znát.

Prvních n volání metody poll fronty typu Kečup totiž většinou vrátí null. Další volání pak vrátí celý obsah fronty. Z toho nutně plyne, že frontu typu Kečup není možné implementovat genericky, a použití fronty tohoto typu postrádá od Javy 5 smyslu. Ostatně kečup se dnes také vyskytuje většinou v plastových obalech.

Železářství

Celé dětsví, mládí a ranou dospělost disponoval jsem poměrně bohatou zásobou rozličného spojovacího materiálu, pečlivě roztříděného podlě těžko identifikovatelného klíče do několika objemných sklenic. No dobrá, měl jsem v tom binec, ale většinou jsem našel, co jsem potřeboval. Před několika lety jsem se stal vlastní vinou obětí několika navzájem souvisejících a do sebe zapadajících změn, jež mimo jiné vyústily i v to, že jsem o uvedenou zásobu přišel. A stalo se to, čemu bych těžko někdy věřil, celkem dlouho se dalo přežít bez ní.

Přesněji řečeno do minulého týdne, kdy jsme během víkendové cyklistiky ztratili poblíž Kuksu šroubek od blatníku. Jsa dobrým Čechem poradil jsem si na místě za pomoci několika gumiček. Po cestě domů uvědomil jsem si tu strašnou pravdu, že nemám zbloudilou součástku čím nahradit.

Na dnešek jsem naplánoval návštěvu železářství v Hořické ulici. Mým plánem bylo obnovit alespoň základní sestavu šroubků a matiček pro vykrytí chvil aktuální nouze, jako byla ta před chvílí naznačená, takže pár kousků o dvou velikostech, k tomu podložky a matky. Zavrhl jsem hobby markety, které právě v tomto sortimentu mají snahu sedřít kutily z kůže. Ne, že bych ty prachy neměl, ale prostě jim je nehodlám dát.

Teď bych rád vysvětlil, proč s tím dělám takový tyátr. Odjakživa vím, že přistoupit k pultu v železářství vyžaduje odvahu. Nebýt připraven znamená být potupen, ztrapněn a znemožněn. Jednu dobu jsem přípravu na ten výkon prováděl právě v hobby marketech, kde jsem piloval terminologii a výslovnost, učil se zpaměti velikosti v trubek v coulech nebo typy hlaviček vrutů. Přesto jsem poté v boji o čest málokdy zabodoval.
„Potřeboval bych redukci půl coulu na pět čtvrtin coulu.“
„Ano?“
„S vnějším závitem…“
„Takže ne redukci. Vsuvku.“
Sakra.

Prostě to není jednoduché, přesvědčit toho chlapa, že nejsem naprostej mamlas. To všechno jsem si uvědomoval, když jsem se blížil k pultu v hromadách blejskavých kovů a závitů, za nímž číhal ten dravej examinátor.
„Co to bude?“ No, to není tak zlý.
„Nějaký šrouby bych si vzal.“
„Šrouby nebo vruty?“ Hezkej pokus.
„Šrouby.“
„Velikost?“ nenechal se zlý železář vyhodit z tempa.
„Čtyřky a šestky.“
„Hlavička?“ přitvrdil.
„Šestihran.“
„NE!“ Tak. A jsem v loji.
„Jako že neexistuje?“ opatrně zkouším led pod nohama.
„Jako že nemám.“ Uf. Ale už jsem v defenzívě. Je to holt fachman.
„Nojo. Tak…“
„Půlkulatou, křížovou?“ Když se myš nehejbe, kočka povolí.
„Třeba.“
„Kolik?“ Pak už to pokračuje v rychlém sledu. Nenechá mě vychladnout. Dál? Velikost? Kolik? Dál?

Netrvalo to ani pět minut, tep mám pouze v anaerobní zóně, takže asi přežiju, a stojím s umně smotaným papírovým kornoutem popsaným číslicemi. Sedmnáct korun.

Kindle DX

Po delším váhání, jestli něco takového potřebuju, jsem si pořídil čtečku. Mám běžně ke čtení několik pdf dokumentů, takže jsem se po konzultaci se zkušenějšími kolegy rozhodl pro větší kus, konkrétně pro Kindle DX, jehož prodej nedávno Amazon obnovil, a který má úhlopříčku 9,7 palce.

Čtečka kupodivu z Whitestownu v Indianě do Hradce Králové dorazila za dva dny, takže jsem ji mohl přibalit na dovolenou. Měl jsem malý problém s 3G připojením, musel jsem mu trochu pomoct, ale nakonec jsem vyhrál. Přes USB jsem do přístroje nahrnul svou sbírku pdf knih a na Amazonu nakoupil dva tituly k Oracle SOA Suitě, čistě z cvičných důvodů. Nadchlo mě a zároveň vyděsilo, jak snadno to lze provést.

Teď ta slabší část. Funkčnost Mail to Kindle mi přijde docela nahlouple pojatá. Pošlu si mailem na do Kindle schránky knihu. Přijde mi potvrzující mail s informací, že kniha dorazila, tady že je na ni link, odkud si ji mohu stáhnout, a přes USB zkopírovat do přístroje. To mi přijde opravdu ujeté. Naštěstí je tu další možnost. Webové rozhraní My Kindle Library má u jednotlivých položek pod tlačítkem Actions… odkaz Deliver to my… , který umožní pushnout titul do zařízení. A následuje nejistota, u kterých položek už jsem tuto akci provedl a u kterých ne. V My Kindle Library se to nepozná. Navíc celé tohle workflow má docela nepříjemné latence, zvlášť nepříjemná mi připadá ta mezi obdržením potvrzovacího mailu a okamžikem, kdy se titlu objeví v My Kindle Library. Docela bych uvítal možnost nastavit, že tituly, které přijdou do mailu, se pushnou do zařízení automaticky, takže bych si prostě poslal mail, na Amazon vůbec nemusel lézt a knihu našel na svém Kindlu.

No a proč mě tahle funkčnost vlastně zajímala? Chtěl jsem prověřit potenciální přínos čtečky pro své ne-tak-ajtý příbuzné. Ona je totiž na Amazonu dost hubená nabídka českých titulů, které je budou primárně zajímat, takže jsem hledal jiné zdroje. Nakoupil jsem na eReading.cz. Zakoupené tituly se dají stáhnout v různých formátech a mimo to i odeslat do zařízení (neboli na mail nastavený někde v zákaznickém profilu). A to je přesně to, co by bylo strašně krásné. Nakoupím u třetí strany, pošlu na Kindle mail a najdu to ve své čtečce. Proč ještě nastavovat něco v nějaké Library na Amazonu?

 

Oběd v Penzionu pod Boubínem

Na cestě z Boubína stavili jsme se na oběd v Penzionu pod Boubínem v Kubově Huti. Už to víckrát neudělám a nikomu bych to neradil.

Posadili jsme se v zahrádce ke kulatému stolu u takového kiosku, v němž jakýsi mladý člověk obsluhoval bar, tedy pípu a ledničku. Dvě mladé číšnice střídavě vylétaly z hlavní budovy honosně se tvářícího podniku. Již  během příchodu jsme byli obšťastňováni jakýmsi zatuchlým hitem Michala Davida. Usedli jsme plni naděje, že je to snad jen chvilkové selhání. Nebylo. Pecky Michala Davida střídaly pecky Dalibora Jandy. Pan majitel či snad provozní evidentně trpí nostalgií po veksláckých časech.

Jídelní lístek byl sympaticky stručný, přibližně o šesti položkách, z nichž jedna, svíčková, jak jsme byli upozorněni, již byla sežrána. Dámská část výpravy si objednala holandský řízek, já jsem zvolil vepřo-knedlo-zelo klasiku. Jídelní lístek sliboval houskový knedlík, nečekal jsem tedy zázraky, přesto mne dokázali překvapit. Bylo to studené a bylo to hnusné.  Dotazem jsem ověřil, že holandský řízek nebyl hnusný o nic méně.

Místo brambor jsme k jedné dětské porci dostali hranolky, což nebyl jediný renonc obsluhy.

Už mě tam neuvidí.

Ještě připojím link na Google Location s recenzemi.