Archives for May, 2006
Už jednou jsem zmínil o knize, za kterou jsem de facto vyhodil peníze a o jejím “skvělém” překladu, několik týdnů jsem na ni však nesáhl – neměl jsem chuť ani čas. Dneska mě to ale popadlo a říkal jsem si, že když už jsem ji koupil, tak ji i dočtu. Během čtení jsem již otupěl na běžné “velmi vyladěné” české překlady, ale narazil jsem opět na jedno velmi pěkné – mrtvé uzamčení – v první chvíli mi samozřejmě nedošlo o co jde, ale pak mi cvaklo. To je přece velmi brilantně přeloženo slovo deadlock.
No myslím, že kařdý by mohl přihodit svou vlastní zkušenost, ja však doufám, že od této knihy nic sem nepřidám (a že ji konečně dočtu, abych neměl tak velký pocit vyhozených peněz).
Zaslechl jsem zajímavou úvahu: “Pizza je kulatá, popelnice je kulatá, tak proč není krabice od pizzy kulatá?”. Velmi inspirativní…
V C# je zajímavý operátor. Jedná se o ‘??’. Každý asi zná (nebo aspoň slyšel o) ‘?:’, ale co ‘??’.
Operátor ?? může pomoci při používání nullable typů. Často totiž potřebujete do jiné proměnné přiřadit buď hodnotu nebo vlastní “chybovou”. Samozřejmě vše lze ošetřit pomocí ifu (jako vždy), ale proč si věc neusnadnit.
int? x = null;
int y = x ?? -1;
Tato kontrukce nám zajistí, že pokud je x nenullové, bude do y přiřazena jeho hodnota. Jinak bude přiřazeno ‘-1′. Dobré, že?
Pozn.: ‘??’ funguje samozřejmě i s referenčními typy.
A čtete je od začátku? Pravděpodobně ano.
To jsem si zase jednou naběhl. Vydloubal jsem ze sítě data, která mi jiná moje aplikace poslala a chtěl jsem je deserializovat a pracovat s nimi dál. Neustále jsem ale dostával výjimku s tím, že byl dosažen konec streamu před koncem parsování. A jak mi to teď k večeru nemyslí, začal jsem prapodivně hledat chybu. Nejprve jsem oveřil, že data jsou všechna – byla. Pak jsem začal laborovat s nějakými identifikátory na konci, abych si byl opravdu jistý (samozřejmě jsem na nic nepřisel). No a nakonec mě musel nakopnout google (viva google).
Jak jsem totiž zapsal data do streamu pro deserializaci, zapomněl jsem přesunout pozici na začátek.
Ach jo. Deset minut jsem se hrabal v kódu (a samozřejmě jsem ho trochu rozvrtal, takže jsem to musel dávat zpět) a ona to byla takováhle prkotina.
>End of Stream encountered before parsing was completed.<
Tento čtvrtek (11.5.) se na Fakultě Informatiky, MU Brno uskuteční workshop (přednáška) na téma ADO.NET a použití ve WinForms.
Máte-li zájem napište.
Místo a čas: učebna B117, 18:00
Ed: Aktuálně (bohužel) můžeme přijmout pouze studenty MU.
Zítra (4.5.) se na Fakultě Informatiky, MU Brno uskuteční přednáška či spíše workshop na téma ADO.NET a použití ve WinForms. Každý kdo má zájem se přijít podívat, nechť mi napíše, kapacita zatím je.
Místo a čas: učebna B117, 18:00
Pozn.: Jedná se o cyklus více přednášek, takže pokud bude zájem, uskuteční se i další.
Dnes se v Brně uskutečnila akce s názvem MS Academic Developer Roadshow. Nechci zde popisovat, co jsem se dozvěděl nebo nedozvěděl, každý si všeho všudy může stáhnout pro omrknutí slajdy, které byly používány.
Jediné co snad řeknu, je to, že akce byla dobrá a rozhodně to nebyl ztracený čas.
Co mě však velice (a nejen mě) pobavilo byl výrok Dalibora Kačmáře v přednášce o VS Team Suite. Přepínal se zrovna z Virtual PC zpět na slajdy a jeho notebook poněkud “pozastavil” při překreslování (člověk by to běžně ignoroval). Slovy, “… mám tam jen 2GB RAM, tak je to občas pomalejší…”, dostal do kolen téměř všechny posluchače (avšak na jeho obranu musím dodat i jeho vysvětlení, že vše co mu teď běží vezme asi 1,5GB RAM a že též CPU není nejlepší).
Ale i tak představa “pouze” 2GB RAM v notebooku není úplně k zahození, že?
Potřeboval jsem dnes vytvořit položky menu a skrýt ty které nejsou pro daného uživatele viditelné. V jednom videu na msdn jsem toto viděl, takže jsem “našel” řešení (resp. našel to video a v něm řešení) v podobě atributu securityTrimmingEnabled, který stačí přidat do web.config do siteMap sekce k danému providerovi.
Jenže jak to tak bývá nefungovalo to (překvapivě). Začal jsem tedy zuřivě hledat články a popisy všeho možného, co jen trochu souviselo. Po asi hodine neustálého zkoušení různých variací mi to docvaklo.
Já jsem pro řízení přístupu do složek používal location sekci ve web.configu v kořenu webu. Stačilo tyto věci přeházet přímo do složek do vlastních web.config a problém byl vyřešen.
Jak jednoduché (jako vždy).