Když je jeden monitor málo...
Když je vám jeden monitor málo, připravte si několik tisíc dolarů a zavítejte na web digitaltigers. To je takový můj programátorský sen :)
Není slogan jako slogan
Nikdy jsem moc nechápal, co chce Microsoft říct sloganem „Your Potential. Our Passion.“ Asi že jeho technologie jsou mým potenciálem a vášní pro vývojáře Microsoftu. Jsem rád, že to vím, ale že by se to mělo stát hlavním sloganem firmy na tak dlouhou dobu? Já mám být ten, kdo je nadšený používáním Microsoftích produktů, ne jeho interní pracovníci. Slogan se navíc evidentně příliš nezamlouval české pobočce, protože překlad „vaše možnosti, naše inspirace“ tak úplně nekoresponduje s původním vyzněním (a navíc mi připadá ještě horší než anglický originál).
Mozart
Jelikož se Hančiny narozeniny (už je to stará žaba) sešly s Mozartovými dny v Pardubicích, udělali jsme si příjemnou pauzu od učení (v jejím případě) a od psaní nekonečných seminárek (v případě mém) a vyrazili jsme na Requiem. Vždycky jsem chtěl toto dílo slyšet, zvlášť když ho Miloš Forman opředl takovou dramatickou legendou (ve skutečnosti je sice taky dramatická, ale ne tolik) a stálo to za to. Stálo to i za dnešní noc, kdy moc nepospím, protože zkouškové končí za 5 dní minus 2 hodiny a ty ****** **** ******** seminárky se ne a ne udělat sam
ZIP a komprese v .NETu
.NET Framework 2.0 obsahuje nový jmenný prostor System.IO.Compression a v něm třídy DeflateStream a GZipStream. To je na první pohled skvělá novinka, ale implementace bohužel až tak skvělá není. Při pokusech s náhodně generovaným obsahem souborů došlo až k 50% nárůstu velikosti souboru a také při kompresi „běžných“ souborů vestavěné třídy silně pokulhávají za různými kompresními utilitami (viz diskuze na MSDN Forums a odpovídající bug report). Druhou zásadní vadou na kráse je absence podpory ZIP souborů.
Jak zrychlit libovolnou .NET aplikaci
Pokud chcete zrychlit libovolnou .NET aplikaci na svém počítači (a kdo by nechtěl), můžete zkusit do souboru NázevProgramu.exe.config do sekce <configuration> vložit
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
To donutí aplikaci použít .NET Framework 2.0, který přináší uričtá výkonnostní zlepšení. Na druhou stranu se může stát, že aplikace není pro .NET 2.0 testována a některé věci mohou zlobit. Všechno má své pro a proti…
Validace cesty k souboru
Dělám aplikaci, kde uživatel zadává cestu k jednomu nebo více souborům a současně může v názvu použít * jako wildcard character. Potřeboval jsem nějakým způsobem validovat, že uživatel zadává smysluplný řetězec ve formátu „C:\cesta\k\souboru.txt;C:\jina\cesta\s*maskou.txt“. Jak na to?
.NET žádné extra metody na validaci cest nemá. File.Exists() vrátí false nejen při neplatné cestě, ale i tehdy, když je cesta syntakticky zcela v pořádku, jen neexistuje cílový soubor. Tudy proto cesta nevede.
Pro validaci jednoho souboru lze úspěšně použít malou fintu využívající mechanismus výjimek:
Databinding u ovládacího prvku ListView
ListView je komponentou, která je známá třeba z průzkumníka Windows. Umožňuje zobrazit obsah v podobě ikon nebo seznamu a poměrně dobře se hodí na zobrazení read-only tabulkových dat (asi lépe než DataGrid nebo DataGridView). Nepříjemností je, že ListView neobsahuje podporu databindingu, takže je pro zobrazení dat potřeba napsat trochu kódu, na což my, zhýčkaní vývojáři .NETu, nejsme zvyklí :) .
Pokud s ListView pracujete pouze občas, asi bude nejrychlejší splodit pár řádků kódu a data naplnit ručně nějakou iterací přes řádky datového zdroje. Pokud jste však nadšenými příznivci prvku ListView a plánujete ho používat často, doporučuji přečíst článek Creating a Data Bound ListView Control. Ten obsahuje postup, kterak pomocí dědičnosti vytvořit vlastní prvek obsahující všechny vymoženosti ListView rozšířené o možnost velmi jednoduchého navázání na datový zdroj.
Re: Jak blogovat a přežít
Na ILblogu vyšel článek Jak blogovat a přežít, který mě donutil k malému zamyšlení nad rolí autora blogu ve vztahu ke svým čtenářům.
Ivo Lukačovič doporučuje autokrativní přístup, kdy má autor být neomezeným pánem svého blogu, nemá se stydět za mazání komentářů z jakéhokoliv důvodu apod. Typickým příkladem je Hulánův blog WELL.DONE (i když vlastně není jasné, zda články vůbec od pana Hulána pocházejí).
QueryADataSet - SQL dotazy pro DataSet
DataSet je zajímavým objektem technologie ADO.NET. Jedná se o in-memory databázi, která může obsahovat tabulky, relace, omezení, pohledy apod. Řádky v tabulce je možno třídit a filtrovat, lze vyhledávat řádky podle hodnoty primárního klíče nebo provádět další kousky pomocí metody Compute(), plnohodnotý SQL jazyk však k dispozici není. Není tak snadné provádět subdotazy, různé joiny apod.
Alespoň částečným řešením je knihovna QueryADataSet, která přináší implementaci podmnožiny jazyka SQL ke snadnému použití v DataSetech. Zde je příklad z domovské stránky produktu:
Proč Google strká tolik věcí do query stringu?
Pokud chci někomu poslat odkaz na výsledek hledání v Googlu, rád bych jen zkopíroval URL, které by vypadalo následovně: http://www.google.com/search?q=stahnete+si+listicku. Z nějakého záhadného důvodu však Google do URL nacpe i kupu dalších věcí, takže odkaz ve výsledku vypadá takto: http://www.google.com/search?hs=Zto &hl=cs&safe=off&c2coff=1 &client=firefox-a &rls=org.mozilla%3Aen-US%3Aofficial &q=stahnete+si+listicku &btnG=Hledat &lr=.
před 5 let 42 týdny
před 5 let 42 týdny
před 6 let 12 týdnů
před 6 let 26 týdnů
před 6 let 39 týdnů
před 6 let 48 týdnů
před 6 let 49 týdnů
před 7 let 1 den
před 7 let 6 týdnů
před 7 let 15 týdnů