Základy SQL, část 2.
Tento článek navazuje na Základy SQL, část 1., kde jsem psal především o SELECTech a JOINech na MySQL databázi.
V této části se budu věnovat tvorbě VIEW a TRIGGER. Na uvedenou logiku je potřeba minimálně MySQL 5.0 a vyšší (popřípadě libovolná 15 roků stará Oracle databáze).
CREATE VIEW
Představte si, že pracujete na projektu, který má za úkol sjednotit dva velice rozdílné projekty pod jedním uživatelským účtem a společným přihlášením. Třeba BLOG:CMS pro publikaci článků a IP.Board jako fórum.
BLOG:CMS používá pro autorizaci tabulku members, IP.Board pro stejný účel používá hned 3 tabulky, a to ipb_members (přihlašovací jméno), ipb_member_extra (email) a ipb_member_converge (hash hesla). Naštěstí jsou veškeré údaje, které BLOG:CMS potřebuje, obsažené i v IP.Board tabulkách. Toto celé svádí k tomu zjednodušit si práci tím, že tabulku members v BLOG:CMS dropnu a místo ní udělám pohled (VIEW) na 3 tabulky IP.Boardu.
Například takto:
DROP TABLE `member`; CREATE VIEW `member` AS SELECT `m`.`id` AS `mnumber`, `m`.`name` AS `mname`, `m`.`members_display_name` AS `mrealname`, `m`.`email` AS `memail`, `e`.`website` AS `murl`, `e`.`notes` AS `mnotes`, `c`.`converge_pass_hash` AS `mpassword`, `c`.`converge_pass_salt` AS `mcookiehash`, `m`.`member_login_key` AS `mcookiekey`, `e`.`mcanlogin` AS `mcanlogin`, `e`.`deflang` AS `deflang`, `e`.`madmin` AS `madmin` FROM ( (`ipb_members` `m` JOIN `ipb_member_extra` `e` ON ((`m`.`id` = `e`.`id`))) JOIN `ipb_members_converge` `c` ON ((`m`.`id` = `c`.`converge_id`)));
Pro PHP kód bude celá operace zcela transparentní, nepozná, zda se autorizuje proti TABLE member či nově proti VIEW member. Tímto jednoduchým způsobem je možné docílit toho, že dvě zcela různé aplikace sdílejí během pár sekund jednu databázi uživatelů (a protože IP.Board má skvělé prostředky pro správu uživatelů, byla zvolena jeho databáze).
Podobně je VIEW možné používat kdekoliv, kde jinde použijete tabulku s WHERE podmímkou. V redakčním systému je dobré si vytvořit VIEW, které bude filtrovat zatím nepublikované články (drafts) a články, které jsou určeny k publikaci k pozdějšímu datu. Tvorbou tohoto jednoho VIEW ušetříte programátorský čas a zpřehledníte aplikaci (nehovoře o snazším uzpůsobení), nebudete totiž muset na desítkách míst opakovat ty samé WHERE podmínky. Také je to dobrá prevence chyb, jedno VIEW se ladí lépe než desítky WHERE podmínek v PHP kódu.
Používat VIEW místo natvrdo psaných WHERE podmínek je základ dobrého programátorského stylu. Bohužel, mimořádně primitivní MySQL databáze (nazývám ji spíše filesystém) tuto triviální funkčnost umí až od verze 5.0.
Windows Mobile 6 - další zkušenosti
Před týdnem jsem psal o dostupnosti BETA verze Windows Mobile 6 pro HTC TyTN. Týden jsem ji různě testoval, používal, a to jak Vanilla release, tak XDA 0.10 a XDA 0.20. Příjemné je, že všechno bylo opravdu brutálně rychlé, nicméně, narazil jsem na problém s nemožností příjmu MMS (začnou se stahovat, ale nikdy se nestáhnou) a na občasný problém v konektivitě Wifi s WPA-PSK / TKIP.
MMS klíčové nejsou, ale Wifi ano, takže jsem udělal downgrade na poslední finální ROM 1.35.255.2, která je sice 2x pomalejší, ale zase 100% funkční.
Zatím bych tedy tuto BETA verzi, vyvíjenou přímo HTC a prosáknutou na veřejnost, nedoporučoval k instalaci, a počkal až HTC uvede na svých stránkách finální verzi (bude dostupná zcela zdarma pro veškeré majitele TyTN, podobně jako je dostupná pro Wizarda). Předpokládám, že ve finální verzi budou tyto nedostatky vyřešeny (a doufám, že bude brzy dostupná, protože její rychlost je prostě ohromující).
![]() | ![]() |
Digitální fotoaparát do 10.000 Kč (Kodak P880)
Hledám pro tátu co možná nejvhodnější digitální fotoaparát do 10.000 Kč. Je to fotograf typu pokročilý amatér, před 20 lety vlastnil černou komoru, kde si kompletně dělal svoje černobílé a barevné fotky (Zenith a Practica), později jsem mu koupil semi-profi Canon EOS-50 (Elan II) s pár objektivy (širokoúhlý, standard, a tele) a externím bleskem, nicméně, už pár let toužebně kouká po digitálu.
Digitální fotoaparát a možnost zpracovávat fotky na počítači se právě blíží oné "analogové černé komoře". Táta má zájem o fotoaparát, který nabídne kompletní možnost manuálního ovládání (čas, clona, ostření, vyvážení bílé), plus automatického pro momentky. Také by preferoval "wide" objektiv nad často propagovaným "super-mega-maxi-zoomem", který je v praxi (pro jeho potřeby) téměř k ničemu.
V ceně do 10.000 Kč samozřejmě člověk musí zapomenout na zrcadlovku s výměnným objektivem. Přesto jsem narazil na jeden model, který jeho požadavky splňuje téměř na 100%. Je jím Kodak P880, viz recenze na dpreview.com a steves-digicams.com.
Kodak P880 je rok a půl stará "profi" řada od Kodaku. CCD prvek má naprosto dostatečných 8Mpx, objektiv je ekvivalent 24-140 u kinofilmu (zvláště wide "24" je luxusní hodnota na fotoaparát pod 10.000 Kč), světelnost F2.8 - F4.0 je u wide skvělá, u tele stále dostatečná (na zoom člověk stejně fotí převážně venku, typicky na dovolené, a za dostatečných světelných podmínek), zkreslení objektivu je i v rozích minimální. Výborná je možnost napojit externí blesk, což znatelně zlepší kvalitu fotografií (nejen) v místnosti. Fotoaparát má i velice nízkou latenci při stisku spouště, cca 0.1s, připraven k focení je cca za 2s po zapnutí (dostatečná hodnota).
Jedinou mírnou vadou je počínající šum při ISO 200 a více (to je ale problém většiny digitálních fotoaparátů), při ISO 50-100 je absolutně neznatelný. Váha Kodaku P880 je 500g, což je "tak akorát", menší fotoaparáty se opravdu špatně drží v chlapské ruce. Napájení je pomocí Li-Ion akumulátoru (dle mého názoru podstatně lepší volba než tužkové baterie, elektřina na nabíječku je dnes všude), karty jsou běžného SD formátu. Pro ukládání fotek je podporován RAW formát, nikoliv jen (přesaturovaný a ztrátový) JPEG.
Kasa.cz prodává Kodak P880 za pouhých 8.500 Kč, běžná cena před pár měsíci byla 14.000 Kč (zjevně se chystá nový model, P880 se asi doprodává ze skladů). Na jeho požadavky samozřejmě existují i jiné varianty, zajímavý je například Panasonic DMC-FZ7, nicméně kvalita fotek a výbava Kodaku P880 je dle recenzí vždy lepší než u cenově podobné konkurence. Zdá se mi jako ideální volba.
Pokud máte s tímto fotoaparátem osobní zkušenosti, budu rád, když je uvedete v komentářích. Na fóru jsem udělal celou novou sekci Fotografie.

Windows Mobile 6 pro HTC TyTN
HTC TyTN je současný bezkonkurenčně nejlepší telefon / komunikátor. Na XDA-Developers.com je pro něj dostupný upgrade na Windows Mobile 6. Jedná se zatím o beta verzi od HTC, oficiální verze bude vydána za několik týdnů, nicméně stabilita je skvělá, a rychlost úžasná.
Windows Mobile 6 se od "pětky" na první pohled příliš neliší, nicméně, vnitřek musí být celý přepsaný, protože celý systém funguje několikanásobně rychleji. Telefon se 400MHz CPU náhle připomíná velice výkonné PC.
![]() | ![]() |
RockBox na iPodu - rychlejší a lepší než originál
O RockBoxu, open-source firmware pro Apple iPod, jsem už psal několikrát. Jedná se o špičkový software, který vytvoří z nepoužitelného iPodu vynikající záležitost, která přehraje MP3, FLAC, OGG, APE, MP4 a další formáty. Rovněž obsahuje skvělou knihovnu médií, dle ID3 tagů, která se dá luxusně uživatelsky procházet a konfigurovat, a podporu pro pluginy a témata.
Dosud byl jedinou (malou) nevýhodou RockBox firmware oproti originálnímu jeho nižší výkon při provádění více operací naráz (například přehrávání MP3 a zároveň procházení adresářů). Jinak řečeno, při přehrávání to chtělo nedělat nic jiného…
Již nějaký ten měsíc je ovšem známo, že iPod obsahuje dva procesory, respektive jeden hlavní procesor a druhý audio koprocesor. RockBox tento druhý koprocesor dosud na iPodu nepoužíval, ale to se změnilo. Od Juliuse si můžete stáhnout COP build RockBoxu, který používá hlavní procesor i koprocesor, a iPod je s ním rychlejší na libovolné operace než s oficiálním Apple firmware.
Před nahráním COP buildu si budete muset ovšem aktualizovat BooLoader, podle tohoto návodu.
Dalším pikantním zlepšením je tip na drastické zrychlení startu RockBoxu, z 10 sekund na zhruba 2 sekundy. Postačí nadobro se zbavit špatného Apple firmware a naflashovat RockBox přímo do hlavní partition, tedy bez použití bootloaderu, pomocí příkazu ipodpatcher [device] -wf rockbox.ipod
.
Používám tuto konfiguraci již déle než měsíc, a jsem s ní mimořádně spokojen.

Programátorův mozek
Každý pořádný programátor se občas cítí jako naprostý pitomec. Když člověk pracuje na velkém projektu, má v hlavě celý ten propletený diagram a toky dat, následně rozpracované až do posledních podrobností, je to pozoruhodný výkon. Skutečně pouze málo lidí musí někdy v životě promyslet věci tak důkladně jako to dnes a denně dělají programátoři.
Občas se ale člověk zasekne, a kouká 60 minut na jedno místo do zdrojáku, jako tupá ovce, debuguje a ladí, a pořád nechápe, proč to nefunguje a proč je výsledek pořád "nula". Nakonec přijde na to, že v jedné uložené (dávno zapomenuté) proceduře napsal v SQL dotazu UNIX_TIMESTAMP('datum')
místo správného UNIX_TIMESTAMP(`datum`)
, ozve se malé zabučení, a jde si dát kafe.
Je to běžná věc, pokud je v jedné místnosti 10 programátorů, a jeden se nad něčím "zasekne", druhý co jde kolem mu zcela běžně ukáže na jednu řádku zdrojáku a řekne: "hele, tady máš chybu", napsal jsi "=" místo "==". Podobné pitomé chyby se strašně těžko hledají, když člověk sám prochází zdroják, tak v něm občas vidí to, co tam má být, a ne to, co tam skutečně je.
Když mi bylo 18 let, pracoval jsem 15 hodin denně na nějakém projektu (7 dní v týdnu), poté si dal sprchu, vlezl do postele, a následně se probudil ze spaní, protože odpočatý mozek vymyslel geniálně jednoduché řešení dosud "neřešitelného" problému. Mozek je úžasný v tom, že přemýšlí, i když o tom vědomě "nevíte". Následně si na to dokonce zvyknete, a věci neřešíte vědomě vůbec, protože on to mozek nějak zvládne sám. Jen mu dodáte podklady, zadání, a on se v tom poté začne nějak hrabat. Skoro potají. Funguje to. Věci není potřeba dělat násilně.
Každopádně jisté "intelektuální vzrušení" z programátorského výkonu člověka jen tak neomrzí. Není to zdaleka tak dobré jako sex, ale zase se to nestává tak opakujícím se a mírně stereotypním jako sex.
Nedávno jsem se bavil s jednou kamarádkou o tom, že (dle Borata) mají ženy mozek velký jako veverka. Velikost mozku sice přímo neudává inteligenci, nicméně, jeho rýhování už ano, a protože hustota rýh není nekonečná, ale naráží na jistá fyzikální omezení, dá se usoudit, že větší mozek znamená vyšší inteligenci (mužů).
Moc jsem se nasmál, když následně dlouho (a zcela vážně) přemýšlela o tom, zda je to pravda… Veverka. :-)

Marketing versus realita (růžová versus hniloba)
Marketing a realita nemají nic společného. Jako člověk, který má slušné zkušenosti s marketingem, jsem se pokusil o překlad jednoho tiskového prohlášení:
AMD (ATI) marketingové oddělení píše: To better align our strategy with current market opportunities, we’ve changed the launch plan for R600. We are going to deliver a competitive configuration to market with an extremely attractive combination of performance, features and pricing, targeting a broader market segment in Q2. With the revised strategy, AMD will be better able to capitalize on the broad appeal of 3D graphics and DirectX 10, being driven in part by the growing popularity of Windows Vista™.
Doslovný překlad: "Pro lepší přizpůsobení naší strategie současným tržním podmínkám jsme změnili plán na vydání R600. Dodáme na trh konkurenčně schopnou kombinaci s mimořádně atraktivním mixem výkonu, funkcí a ceny, zaměřujíce se přitom na širší tržní segment, a to ve druhém kvartále. S touto revidovanou strategií bude AMD schopno lépe kapitalizovat širší zájem o DirectX 10 a 3D grafiku, částečně způsobenou popularitou Windows Vista."
Co tím AMD (ATI) doopravdy myslí: "NVIDIA nám vydáním 8800GTX natrhla prdel tak, že nám z toho spadla čelist. Nevíme co máme dělat, ale současnou R600, už tak půl roku zpožděnou, vydat nemůžeme, nikdo by si ji nekoupil. Zkusíme na tom ještě zapracovat, a za pár měsíců se uvidí… Šíření F.U.D.u (strachu, nejistoty a pochyb) už také nezabírá. Snad nám to ti kokoti dále uvěří, a nezačnou ještě více kupovat 8800GTX."
Windows Desktop Search - opravdu skvělé hledání
Před pár lety jsem používal Google Desktop Search (to, že instaluje lokální Apache server se mi opravdu nelíbilo) a Copernic Desktop Search (solidní produkt), a nakonec jsem skončil u Lookout hledání integrovaného do Microsoft Outlooku. Lookout mi ale přestal stačit, tak jsem hledal něco lepšího.
Onou (nej)lepší současnou aplikací je Windows Desktop Search 3.0 (dále jen WDS). WDS je vynikající program, který běží na pozadí, a prohledává specifikované adresáře, soubory, emaily, kontakty, a další. Počáteční indexace 35.000 souborů a emailů zabrala pouhé 4 minuty, a dále program indexuje "on-the-fly", takže neprochází neustále disk, ale jen pokud vám přijde nový email, či pokud uložíte nový soubour, projde tento jednotlivý soubor během milisekund a zaindexuje jej.
WDS zabírá v paměti jen kolem 30MB, a kromě rychlosti mě překvapila (velice pozitivně) i jeho velice rozsáhlá funkčnost. Podívejte se na dokumentaci k pokročilému hledání (PDF, 35KB), takové možnosti nemá ani Google Desktop Search či Copernic Desktop Search. Narazil jsem i na jeden "bug", nějaký snaživý překladatel přeložil v CZ verzi i hledací termíny v nápovědě, které ovšem i česká verze WDS programu používá anglicky (takže musíte hledat from:email
a nikoliv odesilatel:email
), nicméně tento "bug" jsem spíše uvítal, anglické termíny jsou kratší. Výše uvedená dokumentace je tedy záměrně z anglické mutace hledání.

Luxusní je integrace hledání do Windows. Pokud stisknete Win+F
, otevře se vám velké okno hledání, malé políčko hledání na dolní liště se aktivuje přes Win+Shift+F
. Následně již jen začnete psát, WDS po každém napsaném písmenku bleskurychle hledá, a pomocí Enter
se můžete přepnout na velké okno.
Okno hledání je velice přehledné a inteligentní, pokud najdete například hudební soubor, nabídne vám to k přehrání rovnou celé album, pokud se díváte na email, schůzku, či dokument ve Wordu, Excelu nebo PDF, zobrazí vám to automaticky jejich obsah.
Produktivnější to prostě být nemůže.
Navíc to není vše. Kromě samozřejmé specifikace adresářů a profilů pošty Outlooku či Outlook Expressu pro hledání, a stovky klíčových slov pro hledání, si můžete vytvářet i vlastní klíčová slova, a to pomocí editace souboru Data aplikace / Windows Desktop Search / WindowsDesktopShortcuts.ini.
Windows Desktop Search je úžasná aplikace. Nabízí více funkcí, než by očekával i velice pokročilý uživatel, zabere málo paměti, funguje velice rychle a je perfektně integrovaná do Windows. WDS se Microsoftu opravdu povedlo a doporučuji je všem k instalaci.
Gnome je fakt děsná podivnost
Včera večer jsem na svém domácím serveru s Fedora Core 4 (pod VMWare) dělal upgrade na Fedora Core 6. Probíhalo to rychle, /home
je na vlastním oddílu, a potřebuji tam vlastně jen kernel, smb a mc. Nicméně, grafické prostředí se občas hodí, tak jsem instaloval i základ Gnome. Následně jsem v instalaci odebral cups a audio, tisknout a přehrávat hudbu na serveru nepotřebuji.
Jaké bylo mé překvapení, když po dalším přihlášení nabíhal jen generický X desktop s Firefoxem a Gnome se odmítal spustit. Zkoumal jsem čím to je, a odstranění cups znamená nefunčnost gnome-session. Ach jo. Je to neuvěřitelné, ale gnome-session potřebuje toto:
ghostscript ghostscript-fonts cups libgnomecups libgnomeprint gthumb gnome-media gnome-volume-manager
Já vím, proč Gnome opravdu nemám rád… Bez instalované podpory tisku a aplikace "CD přehrávač" nechce Gnome (gnome-session
) naběhnout. To je přece logické, ne?
Jakou linuxovou distribuci si zvolit?
Na základě mých dvou kritik Linuxu jste určitě dostali chuť nějakou tu linuxovou distribuci vyzkoušet. Zásadní otázka je jakou. Dle názoru Linuse Torvaldse si musíte vybrat distribuci s KDE, protože vývojáři Gnome považují své uživatele za naprosté idioty, brání se novotám, a dělají tedy idiotský systém.
Linus Torvalds má samozřejmě pravdu. KDE je prostě mnohem lepší.
Gnome - pro "idioty"
Gnome je na tom z pohledu funkčnosti zhruba jako Windows 95, celých dvanáct let starý operační systém od Microsoftu. Vývojáři Gnome zásadně odmítají nové funkce, nové verze Gnome naopak některé starší možnosti odstraňují. Gnome je tak vhodný systém zejména pro naprosté začátečníky (aka BFU). Gnome, jako hlavní prostředí, obsahuje například všeobecně oblíbená (0.05% uživatelů PC) distribuce Ubuntu.
Pokud hledáte desktopový systém pro vaši babičku, mohl bych Ubuntu 6.10 doporučit.
KDE - pro normální a pokročilé uživatele
Na druhém konci spektra stojí například OpenSUSE, otevřená distrubuce od giganta Novellu. OpenSUSE sází na KDE, což je mnohonásobně pokročilejší prostředí, které připomíná spíše Windows Vista. Pokud máte byť jen mírné znalosti IT, chcete KDE, v případě OpenSUSE doplněné o skvělý "klikací" konfigurační program YAST.
KDE obsahuje dnes desítky aplikací, které jsou opravdu velice dobře použitelné, s hezkým GUI, vzájemně integrované, mají stejné ovládání a podobné menu. Nabídka Start je členěna do Oblíbených položek, Hledání, Aplikací, Nastavení (Tento počítač) a Vypnutí systému, trochu to připomíná zmíněné Windows Vista.
Dříve bylo KDE synonymem pro pomalost, dnes je to ovšem mimořádně rychlé (dokonce rychlejší než triviální Gnome) a hlavně propracované prostředí, které se velice snadno používá, a neodbourává přitom pokročilejší možnosti práce.
Pokud hledáte funkční desktopový systém a snadno spravovatelný Linux, mohu vřele doporučit OpenSUSE 10.2.
Příkazová řádka - pro server
Tak trošku mezi stojí Fedora Core 6. Otevřená distribuce od giganta RedHatu je zaměřená převážně na servery, dá se instalovat i s KDE, nicméně, řadu ovládacích aplikací má psaných s pomocí GTK+, tedy Gnome. Pokud potřebujete převážně kernel, SE Linux, a stabilitu pro server, je Fedora Core perfektní volba, na serveru stejně Gnome / KDE nepotřebujete (budete na něj přistupovat vzdáleně, či lokálně přes Sambu)…
Pokud hledáte stabilní server (ať už standalone či pod VMWare), mohu doporučit Fedora Core 6.
Existuje i spousta dalších distribucí, zajímavý (a tradičně poněkud bugový) je Mandrake, aka Mandriva 2007 (vhodný pro desktop), někteří lidé preferují i na desktop Debian (stable větev je mimořádně vhodná zejména pro servery), Gentoo a další.
Pokud si nechcete stahovat z internetu desítky GB dat, doporučuji si třeba na LinuxSoft.cz objednat po stokoruně DVD Ubuntu 6.10, OpenSUSE 10.2 a Fedora Core 6 a jednotlivě je otestovat. Tipoval bych si, že nakonec stejně zůstanete u OpenSUSE. Rovněž doporučuji spíše 32-bitové distrubuce, i pokud máte 64-bitové procesory, je s nimi v praxi (nejen pro začátečníky) méně problémů.