SQL Server 2008 - dotaz pro vypsání parametrů tabulky
Jedna ze základních funkcí každého redakčního systému je editor číselníků. V každé aplikaci jich existuje spousta, a mají mezi sebou různé relace. Máme jej napsaný pro různé databáze, od MySQL, přes Oracle po SQL Server 2008.
V praxi to funguje tak, že se skript napojí na INFORMATION_SCHEME, načte si automaticky strukturu tabulky, datové typy, délky polí, autoincrementy, komentář k polím, přidá k tomu případné odkazy na jiné číselníky (třeba tabulka měst se odkazuje na tabulku krajů), a tyto umožní pohodlně editovat. Textová pole jsou samozřejmě zpracovávána WYSIWYG editorem. Je to prostě komfortní možnost jak rychle upravit parametry aplikace pro běžné uživatele.
V případě MySQL existuje INFORMATION_SCHEME.COLUMNS
tabulka, v níž je vše potřebné. Na SQL Server 2008 musíte použít poněkud složitější dotaz, a to třeba takovýto:
CREATE VIEW [dbo].[dbscheme] AS
SELECT t.name AS TabulkaNazev, c.colid AS SloupecPozice, c.name AS SloupecNazev, ISNULL(i.CHARACTER_MAXIMUM_LENGTH, i.NUMERIC_PRECISION) AS SloupecDelka, i.DATA_TYPE AS SloupecTyp, i.COLUMN_DEFAULT AS SloupecDefault, CAST(cd.value AS varchar(255)) AS SloupecPopis,
COLUMNPROPERTY(OBJECT_ID(i.TABLE_NAME), i.COLUMN_NAME, 'IsIdentity') AS IsIdentity
FROM sys.sysobjects AS t JOIN sys.syscolumns AS c ON c.id = t.id JOIN INFORMATION_SCHEMA.COLUMNS AS i ON i.TABLE_CATALOG = 'databáze' AND i.TABLE_SCHEMA = 'dbo' AND i.TABLE_NAME = t.name AND i.COLUMN_NAME = c.name LEFT JOIN sys.extended_properties AS cd ON cd.major_id = c.id AND cd.minor_id = c.colid AND cd.name = 'MS_Description'
WHERE t.type = 'u'
Výsledkem bude pohled, který vám nabídne název tabulky, jméno a datový typ sloupce, jeho defaultní hodnotu, velikost datového pole a description ke sloupci (SloupecPopis
), který následně můžete zobrazit uživateli jako textový popis (takže namísto technického itemid
aplikace vypisuje automaticky sloupec jako Číslo článku).
Nestabilita: ovladače nebo hardware?
Poslední dva měsíce jsem měl občasné problémy se stabilitou NVIDIA GTX280 karty na Windows 7 x64. Asi třikrát jsem viděl BSOD při běžné práci (předtím dva roky vůbec) a zcela pravidelně (během jednotek minut) kolabovala zapnutá OpenGL akcelerace ve Photoshopu CS4. Zkoušel jsem odinstalovat ovladače, použít v Safe Mode aplikaci Driver Sweeper a instalovat poté ovladače znovu, a nic.
Nakonec jsem zkusil mírně změnit konfiguraci PC - Adaptec RAID řadič jsem přehodil na základní desce ze čtvrtého PCIe slotu do třetího (tak jsem to na desce Asus P5Q Premium provozoval dříve). V původní konfiguraci grafika jela na PCIe 8x v2.0 a řadič na PCIe 8x v1.0. Teď jede grafika v PCIe 16x 2.0 a řadič "jen" na PCIe 4x, což ovšem stále dává 4 x 250Mb/s, tedy více než dostatečné přenosové pásmo i pro to nejrychlejší diskové pole.
Pointa?
Photoshop CS4 už nepadá, BSOD nenastává a vše je zase dokonale stabilní. V dnešním světě extrémně složitého hardware a miliónů možných kombinací PC a komponent se prostě občas dá narazit na něco, co dosud nikdo netestoval, v jiných konfiguracích to funguje, a jediná možnost, jak z toho ven, je cosi náhodně změnit.
Cosi jsem tedy změnil a spokojenost. :)
Mrzne vám Internet Explorer 8? Pravděpodobně za to může Apple...
Internetový prohlížeč je aplikace, která neexistuje téměř nikdy samostatně a v té podobě, jakou ji tvůrce naprogramoval. Většinou je vylepšována desítkami dalších rozšření třetích stran. V případě Internet Exploreru 8 má uživatel těchto rozšíření často instalovaných desítky, aniž o tom něco tuší.
Tyto rozšíření můžete snadno spravovat, zakazovat a povolovat v menu Nástroje / Spravovat doplňky, poté si vlevo dole zvolte Všechny doplňky.
Internet Explorer 8 mi občas zamrzal. To je fakt. Zkoumal jsem proč, a na vině je Apple. Přesněji řečeno, jeho neuvěřitelně bugový, pomalý a nestabilní software QuickTime / iTunes, který se bez ptaní nacpe i do takové činnosti jako je zobrazování PNG obrázků v IE8. Proč, proboha? Zobrazování PNG je poté extrémně pomalé a občas QuickTime "sekne" celý IE8.
Odinstalujte či zakažte QuickTime / iTunes, prostě vyhoďte to nestabilní Apple smetí, a prohlížeč od Microsoftu bude zase v nejlepší kondici :-)
Související: QuickTime stealing file associations a Quicktime is a whore
Potřebujete HTC HD2? Pravděpodobně ne, ale přesto si jej kupte...
HTC HD2 telefon používám 2 týdny. Je to skvělý, zábavný, výborně ovladatelný, extrémně výkonný a prudce inteligentní high-tech nástroj.
Potřebujete jej? Pravděpodobně ne. Máte si jej koupit? Rozhodně ano!
S HTC HD2 je to jako s rychlým počítačem s quadcore procesorem a hromadou paměti. Takový počítač vlastně nepotřebujete. Většinu práce samozřejmě uděláte i na jednojádrovém procesoru s 1GB RAM. Problém je v tom, že na takovém pomalém počítači budete neustále na něco čekat, do spousty věcí se vůbec nepustíte (protože by to zabralo moc času), a neustále budete muset myslet na to, že už 2 aplikace jsou moc, a co všechno máte pozavírat před spuštěním aplikace nové. Práce na takovém PC je sice teoreticky možná, ale velice nepříjemná.
Oproti tomu, na výkonném PC s quadcore procesorem a onou hromadou RAM spustíte 10 či 20 aplikací, a ani to nepoznáte. Takový hardware vám dává svobodu v rozhodování a vyšší produktivitu. Přesahuje vaše potřeby.
A přesně tak je to s HTC HD2. Prohlížení internetu už nebude dělat "jen v nouzi", ale "kdykoliv a radostně", protože brilantní 4.3" LCD s rozlišením 800x480 bodů a úžasně výkonný 1GHz procesor přesahují vaše mobilní potřeby, stejně tak jako je přesahuje ten quadcore procesor na PC.
Hardwarové parametry HTC HD2 jsou výrazně lepší než u konkurence (cokoliv jiného je pomalejší a s mnohem horším displejem - ať už je to iPhone 3GS, Nokia N97, Nokia N900, Motorola Droid, Palm Pre nebo HTC Hero) a díky tomu je HD2 telefon, který budete skutečně používat rádi, a nikoliv proto, že vám zrovna nic jiného nezbývá. Výbornému výkonu navíc odpovídá i skvělé ovládání a software, HTC Sense je povedené prostředí plus spousta nových aplikací.
HTC HD2 je telefon, který nepotřebujete. Alespoň do té doby, dokud si jej nekoupíte a nepochopíte, jak jste bez něj vůbec mohli existovat.

WinCache - výborný PHP akcelerátor od Microsoftu
Microsoft vydal finální verzi WinCache rozšíření pro PHP, což je akcelerátor podobné funkčnosti jako eAccelerator, XCache, Zend Optimizer+ či APC, jen dokonale optimalizovaný pro Windows, IIS7.x a PHP 5.2/5.3 provozované jako FastCGI modul.
Podle prvních reakcí na fóru to vypadá, že se WinCache rychlostně dostal před konkurenci, a kombinace PHP + IIS + WinCache by tak mohla být top platforma i pro hostování open-source PHP aplikací, nejen pro .NET. Dokumentace k WinCache je dostupná přímo na PHP.net.
Osobně vyzkouším nasadit WinCache na MyEgo.cz a dalších webech, a udělat srovnání na Zend Server CE.
Související: Hostujeme PHP aplikace na Windows (namísto Linuxu)
CoPilot Live 8 - povedená navigace pro Windows Mobile, iPhone i Android
CoPilot Live 8 je navigace, kterou si můžete s cenou zhruba 1800 Kč za mapy celé Evropy (té východní i západní) pořídit na téměř libovolný operační systém. Běží totiž nativně na Windows Mobile 6.x, iPhone i Androidu.
Osobně jsem tuto navigaci vůbec neznal, dokud jsem ji nedostal před deseti dny předinstalovanou na HTC HD2 telefonu. A protože HTC HD2 je současný nejlepší chytrý telefon - má obrovský 4.3" displej s rozlišením 800x480 bodů a neuvěřitelně výkonný 1GHz Snapdragon procesor - tak těžko najdete lepší hardware pro testování této navigace.
Základní popis
CoPilot Live 8 je offline navigace, používá tedy mapy nahrané na paměťové kartě a nepotřebuje přístup k internetu. Pokud ale přístup k internetu máte, je schopna z něj na vyžádání stahovat dopravní situaci, aktuální počasí, nebo třeba zasílat vaši aktuální polohu přátelům.

Funkce Copilotu jsou podobně pokročilé jako na iGo, od vyhledávání bodů kolem nějakého místa (ideální pro hotel X ve městě Y), změny a přidávání průjezdních bodů, přidávání vlastních POI (dají se načítat ve formátu TomTom - OV2), až po upozornění na radary a podrobnou konfiguraci.
Celkově je Copilot Live 8 příjemná a velice dobře použitelná navigace. Výborná je zejména její rychlost, naplánoval jsem si cca 450km dlouhou trasu a při přejezdu odbočky se přepočítala nová trasa během desetin sekundy (!). To je až neuvěřitelné.
Český hlas v navigaci je jen jeden, ženský a poměrně příjemný. Samotný český překlad je ok. Přes celkovou spokojenost nedosahuje Copilot Live 8 zatím některých "fajnovostí" iGo 8, ale o tom později.
Kultoseroš

Málokterá věc tak pomalu a nenápadně (ale přitom dlouhodobě zcela zřetelně) ovlivňuje naše životy, jako je český dabing zahraničních filmů. Nemluvím teď o jeho legendární (ne)kvalitě, která záleží na osobním pojetí a nastavení laťky kvality, ale o jeho nechutně všeobjímajícím rozsahu.
ČT1, NOVA TV, TV PRIMA, všichni všechno dabují. Nevím proč, ale asi předpokládají, že Češi jsou analfabeti a tupci, co neumí a nestíhají číst titulky. Dabing je cesta do izolacionismu. Dabování je vždy zlé (pokud se nejedná o pohádku pro tříleté děti). Dabing jednak zhorší kvalitu prožitku, a za druhé, divák se při něm nic nového nenaučí.
Všudupřítomný dabing může z velké části za to, že zájezdy českých turistů za hranice naší pidizemičky vypadají jako přesun podivných tlup mimozemšťanů, kteří mají neřešitelný problém byť jen objednat si oběd v restauraci.
V takovém Nizozemí dabing neexistuje. Veškeré filmy běží v originálním znění, jsou k nim pouze doplněny titulky. Výsledek je ten, že i 17-letá vyučená prodavačka v potravinách v malé holandské vesničce mluví podstatně lépe anglicky než většina českých vysokoškoláků v 25 letech, nehovoře o skvělém přízvuku.
Angličtina je nejdůležitějším jazykem, pokud zapomenu na pocit "národní hrdosti" (stejně za posledních 100 let není být na co hrdý), tak by se ve škole mohla klidně drasticky omezit výuka neužitečné a zbytečně složité češtiny a její úmorné biflování, a místo toho ponechat jen matematiku, angličtinu a "obecný rozhled". Domluvit se (anglicky) v celé Evropské unii je mnohem důležitější dovednost než mít dokonale nabiflovaná vyjmenovaná slova po "B".
Doufal jsem, že alespoň DVB-T přinese svěží vítr, kdy jako druhá zvuková stopa se bude ponechávat původní zvuk, zatímco první stopa bude zprasená dabingem. Bohužel, nestalo se, i na DVB-T zeje druhá stopa prázdnotou a slyšíme jen český dabing. Kdy někoho napadne, že lidé potřebují levné titulky a nikoliv drahý dabing?
Dabing škodí vašemu zdraví a dělá z vás tupce!
Nedívejte se na Primu a její šílený dabing. Nikdy. Místo toho se podívejte sem.
HTC HD2 oficiální video představení
Telefon, který vás dostane:
Jak detekovat aktivní AdBlock na Google AdSense?
Úvodem bych chtěl poděkovat všem čtenářům, kteří si na MyEgo.cz nechávají zobrazovat Google AdSense reklamu. Investujeme do tohoto webu energii a čas, protože doufáme, že vás pobaví nebo že v něm najdete informace, které pro vás mohou být nějakým přínosem. Odměnou je nám skutečnost, že nám občas někdo z vás napíše, že mu MyEgo.cz pomohlo vyřešit problém nebo nalézt řešení. Náklady na provoz tohoto webu platíme z reklamy a proto vás žádáme, abyste ji neblokovali.
Někteří lidé nám říkají následující: „autorova práce mě nezajímá a nemíním za její využívání platit ani zlámanou grešli, poněvadž jsou to stejně jen bláboly, blokovat budu jak se mi bude chtít!“. O takovéto lidi, kteří umí jen brát a připadá jim normální nevracet, nemáme zájem. Běžte pryč, teď hned.
Nakonec, pokud má naše práce pro ně „cenu zlámané grešle“, tak budou zřejmě navíc i idioti, protože jen idioti by ztráceli čas někde, kde jim prý nic nenabízí.
Nabízí se tedy otázka jak tyto lidi vyselektovat? Samozřejmě, blokování reklam je vždy boj s větrnými mlýny, XHTML se zpracovává na klientovi, a to žádný PHP skript na serveru či JavaScript na klientovi nemůže 100% ovlivnit, jen mírně ztížit.
Jednou z možností jak samozřejmě nevidět žádnou Google AdSense reklamu a "krást" je vypnout si JavaScript, to ovšem není dobré řešení, protože MyEgo.cz je bez něj výrazně méně funkčnější (události pověšené na komentáře, zvýraznění relací komentářů, navigace v kategoriích, přehledný archív a jiné).
Jak na detekci blokace Google AdSense
Možností, jak napsat detekci blokace Google AdSense je mnoho, jedna z nich je (převzato z webtemp.org) následující:
<script type="text/javascript"> setTimeout('check_ads()', 1000); function check_ads() { var blocked = false; var e = document.getElementsByTagName("iframe"); for (var i = 0; i < e.length; i++) if ((e[i].src.indexOf("googlesyndication.com") > -1) && (e[i].setAttribute && (e[i].style.visibility == "hidden" || e[i].style.display == "none"))) blocked = true; if (!window.opera && (!window.google_last_modified_time || !google_last_modified_time)) blocked = true; if ((e.length == 0) || blocked) alert("AdBlock je aktivní!"); } </script>
Tento skript bere do úvahy jak úplnou blokaci AdSense skriptu, tak možnost nastavení vlastnosti visibility
na nevididelné. Je to poměrně dobrý skript a relativně špatně se obchází.
Šifrování disku, BitLocker, TPM a Microsoft
Šifrování disků je jeden ze základních stavebních kamenů pro bezpečné PC. Nedávno jsem narazil na článek Optimizing Client Security by Using Windows Vista (to samé platí dnes i pro Win 7), kde Microsoft popisuje zabezpečení svých klientských stanic - klíčovou součástí je právě BitLocker, chráněný režim IE, UAC, phishing filtr v IE, Defender a Windows 7 firewall. Obecně, sám Microsoft používá na maximum nových technologií ve Windows 7 (a i proto bych mohutně doporučil upgrade z Windows XP, Windows 7 je jednoznačně současný nejbezpečnější OS).
BitLocker je řešení, které je úžasně rychlé, bezpečné (používá se AES-256 s difusorem) a dokonale integrované v jádru operačního systému. Zásadní nevýhoda je v tom, že BitLocker bohužel není obsažen v Home Premium a Professional edicích Windows 7, jen v nejvyšších Ultimate a Enterprise.
Pro vlastní uložení klíčů máte několik možností. Na business noteboocích a lepších desktopových základních deskách máte k dispozici TPM chipset ve verzi 1.2, většinou od Infineonu či od Sinosunu.
TPM se používá pro dvě základní činnosti - uložení privátních šifrovacích klíčů a pro kontrolu, že systém jako celek nebyl změněn. TPM se při startu podívá na konfiguraci počítače (sleduje cca 20 ukazatelů, můžete je nastavit v gpedit.msc
- Šablony pro správu) a pokud je hardware odlišný, TPM chipset klíč odmítne vydat.
