PHP vytváří i dnes banda pitomců
Spousta lidí nadává na PHP kvůli naprostému nedostatku koncepce. Někteří lidé říkají, že je to věc minulosti, nedostatečného vzdělání jeho prvotních tvůrců, a že dnes je vše zcela jinak. Nemyslím si to.
Vezměte si třeba základní funkci str_replace(), ta má jako poslední parametr řetězec, v němž se hledají a zaměňují řetězce na první a druhé pozici. Funkce strpos() to má ovšem zcela naopak, první parametr je řetězec, v němž se hledá, a druhý parametr hledaný výsek. Podobný "bordel" (kdy si člověk nikdy není jistý, jaké pořadí parametrů která funkce právě akceptuje) je ve všech starších funkcích PHP, a to nejenom v pořadí parametrů. Problém je i v názvosloví funkcí, onomu str_replace() by daleko více odpovídalo str_pos(), které ovšem neexistuje.
Nekoncepčnost a naprostá zmatenost vývojářů PHP je ovšem vidět i dnes. Například podpora pro MySQL 4.1 a vyšší byla implementována jako zcela nová sada funkcí mysqli(), zcela ignorující existující mysql() řadu funkcí. Nová řada mysqli funkcí je de-facto identická té předchozí, jen má zcela opačné argumenty volání (a také je ji možno volat jako objekt). Takže místo mysql_query($query, $db) píšete nově a úžasně mysqli_query($db, $query).
A to není zdaleka celé. Databázového mišmaše je mnohem více. PHP obsahuje od verze 5.1 vestavěnou podporu pro SQLite, která se volá funkcemi sqlite(). Nicméně, zase to není tak docela pravda, tato podpora je funkční jen pro nestabilní a bugovou SQLite 2.8, takže pokud uvidíte hlášku "DATABASE SCHEMA HAS CHANGED", víte, že musíte použít SQLite 3.x.

Průser je ovšem v tom, že SQLite 3.0 má zase jinou sadu funkcí, přistupuje se k ní jen a pouze přes PDO objekty, tedy například new PDO("sqlite:$db"). Pokud tedy chcete, aby vaše aplikace používající SQLite nepadala až tak často, musíte ji celou zásadně a koncepčně přepsat, zapomenout na sqlite() funkce a používat PDO. Stejně tak musíte zásadně přepsat aplikaci používající MySQL 4.1 namísto MySQL 3.x / 4.0.
Kdyby vývojáři PHP nepostrádali mozek, dávno zavedou alias str_pos() pro funkci strpos(), naprogramují přístup k MySQL 3.x / 4.x / 5.x zcela transparentně, bez zavádění mysqli() funkcí, naprogramují podporu pro SQLite 3.x i pro sqlite() funkce, nikoliv jen pro PDO (ony sqlite funkce mimochodem vyžadují pro svoji funkčnost PDO knihovny!), prostě nebudou zjednodušovat život sobě, ale PHP programátorům.
Bohužel, hlavní cíl vývoje PHP je zřejmě získat jazyk s co možná největším počtem podivných funkcí na každou trivialitu, které nejsou vzájemně kompatibilní. Ať se na to dívám z jakéhokoliv pohledu, musím říci, že nejenom v minulosti, ale i dnes vytváří PHP banda naprostých pitomců.
Microsoft Vista Ultimate x64 a podpora her
Očekávat od 64-bitového operačního systému s DirectX 10.0 100% podporu 32-bitových her pro DirectX 9.0c není samozřejmě možné. Přesto je v obecné rovině kompatibilita Vista zcela klíčová pro jejich akceptování při upgrade z Windows XP, a Microsoft bere toto téma velice vážně.
NVIDIA a Creative ovladače
První zkušenosti s Vista Ultimate x64 jsem již popisoval, tento článek se zaměří na podporu her.
Používám pro testování poslední existující NVIDIA ForceWare 101.41 BETA ovladače určené pro Vista x64 a Creative X-Fi driver verze 2.13.0012 (64-bit).
Kromě ovladačů je potřeba na Windows Vista nainstalovat i poslední verzi DirectX 9.0c Redistributable z února 2007 a rovněž aplikaci Creative ALchemy, která zajistí podporu pro EAX (HD) i pod DirectX, nikoliv jen pod OpenAL (které zatím používá minimum her).
K čemu je Creative ALchemy? Windows Vista již neobsahuje podporu pro EAX prostorové efekty a zvuk pomocí rozhraní DirectSound, přenechává toto na OpenAL rozhraní. Zvuk je u těchto her ve Vista, pokud nepoužívají OpenAL, tvořen jen SW mixerem, a tedy horší než na Windows XP.
Creative
se to naštěstí snaží řešit, a to zmíněnou utilitkou Creative ALchemy. Tato
utilitka obsahuje (uživatelsky editovatelné) profily
aplikací, které používají EAX, těmto aplikacím nakopíruje malou dsound.dll
knihovnu, a tato následně realtime převádí EAX volání na OpenAL, a hra poté
zvukově funguje identicky jako ve Windows XP. Podmínkou pro převod EAX ->
OpenAL je X-Fi zvuková karta, zde to funguje opravdu skvěle, nicméně majitelé starších a ne-Creative karet mají
smůlu, budou mít v EAX hrách horší zvuk než na Windows XP.

DirectX 9.0c z února 2007 již počítá i s Windows Vista, a doplňuje do něj toto starší rozhraní (k existujícímu DirectX 10.0).
Situace není extrémně růžová ani v oblasti ovladačů grafických karet, přece jenom špičkové ovladače laděné po 6 let pro Windows XP nelze udělat zcela znovu pro Vista x64 přes noc. NVIDIA tak zatím v Control Panelu vypustila některé volby, které se naštěstí dají získat pomocí externí utilitky nHancer, přesto se stále jen a pouze dotahuje na funkčnost nabízenou pro hráče ve Windows XP.
Internetové společnosti neumí prodávat online
Vždy mě šokuje, když společnosti výrazně zaměřené na internet neumí prodávat svoje produkty online. Dnes jsem se s tím setkal u Microsoftu. Microsoft nabízí opravdu vynikající softwarový balík Expression Web, který je více než zdatným konkurentem pro Macromedia (dnes Adobe) Dreamweaver. Plus má další výborné produkty pro webdesign, jako je Expression Design, konkurent pro Illustrator / Photoshop, a další, ale s podstatně lepší cenou než Adobe.
Stáhnul jsem si Expression Web před pár týdny pro testování, je možné jej používat 60 dní zdarma, a dnes jsem si jej chtěl zakoupit. Normálně jsem zvyklý na to, že jdu na web výrobce, kliknu na purchase, zadám číslo platební / kreditní karty, a na email mi přijde během pár sekund aktivační kód, který z trial verze udělá plnou, popřípadě si stáhnu nový instalační soubor plné verze. Zrealizoval jsem tento postup již minimálně 50x, nakupuji software téměř výhradně online.
Microsoft nic takového ovšem nenabízí, jediný způsob nákupu Expression Web je odkaz na retail balení dostupné na Amazon.com za $262. Nerozumím tomu. Produkt pro web prodávaný jen jako retail?
Hledám tedy české obchody na Google, ale hledání "koupit Microsoft Expression Web" nenabídne také nic. Co to má znamenat? Zkouším tedy Seznam zboží, a hledání toho samého výrazu. Seznam zboží funguje. Cena produktu již ovšem není $260, ale kolem $450 (s DPH).
Budiž, s tím bych se smířil. Zásadní problém je ale zcela jinde, nevím, co si přesně koupit. Veškeré weby odkazují v popisu typu licence jen na www.msemealca.com/currentpurs.htm, kde je DOC dokument, v němž se nevyznám (co to je AE či NL licence, s cenou 3x nižší?), a Expression Web v něm stejně zmíněn není, je tam jen sto jiných produktů Microsoftu.
Microsoft má prodej svých produktů pro koncové uživatele, kromě Windows XP / Vista a Office 2007, mimořádně špatně zvládnutý. Osobně se divím, že vůbec něco prodává. Expression Web je fantastický produkt, ale nemožnost jej snadno koupit musí snižovat (mimo USA) jeho prodeje k nule.
Chtěl jsem si jej koupit, nedozvěděl jsem se jak si jej koupit (a to jsem se snažil cca 60 minut, který klient má takovou trpělivost?), nekoupil jsem si jej… Microsoft zjevně koncovým uživatelům nic prodat nechce.
Správce souborů a textový editor pro Vista x64
Windows Vista x64 obsahují standardně (pro profesionála) zcela nepoužitelný správce souborů, tedy Průzkumník / Explorer, a zcela nepoužitelný textový editor (Notepad). Dodnes nechápu, proč se single-window správce souborů dodává jako standard, neznám téměř jediného člověka, co by s tím pracoval, protože to je extrémně pomalé a neefektivní… Existuje samozřejmě mnoho náhrad, ale jen velice málo z nich je zatím 64-bitových.
Můžete samozřejmě použít Total Commander, celosvětový etalon mezi správci souborů, nicméně, tento v 64-bitech není a jen tak nebude, protože Borland a jeho Delphi prostě 64-bitů nepodporuje (další důvod, proč v Delphi nic nového nedělat).
Důvod pro 64-bitový filemanager je ten, že poté nemusíte instalovat dvě (x64 i x86) verze aplikací, používáte jen 64-bitové aplikace (7-zip, CVS, Subversion, video a audio přehrávače a další).
SpeedCommander 11 pro Vista x64
Výbornou alternativou k Total Commanderu je SpeedCommander 11 x64. Tento správce souborů je dostupný v nativní 64-bitové verzi, a umí toho opravdu hodně. Konfigurovat se dá podobně jako Total Commander, přizpůsobit si můžete klávesové zkratky, menu, toolbar, barvy, zobrazení, cokoliv. Navíc obsahuje špičkový QuickView pro prohlížení stovek druhů souborů, kvalitní hledání, a výborného (S)FTP klienta, který podporuje nejen FTP, ale i FTP přes SSL a SFTP přes SSH (což Total Commander neumí).
Drobnou nevýhodou (pro někoho) je dostupnost pouze v německé a anglické verzi, a nápověda pouze v němčině. Je to škoda, s trošku lepší národní podporou by si jinak skvělý SpeedCommander získal mnohem více pozornosti.
SPAM a podivné praktiky Atlas.cz
Atlas.cz má téměř nulovou návštěvnost a nízké příjmy (každý člověk používá pro hledání Google.cz a pro portál Seznam.cz), a tak se začíná uchylovat k nelegálním praktikám jak s tím něco udělat. Dorazil mi dnes SPAM od Kautský, Richard [kautsky@atlas-as.cz
], který mi nabízí abych zaplatil 7.680,- Kč na jeden rok, a zařadil se do bezcenné databáze Atlasu.
(Český) SPAM nemám rád, a tak jsem na něj následně zareagoval:
Vážený pane Kautský, nesnáším SPAM, a to zvláště, pokud má 200KB přílohy [poznámka: email kromě nevyžádané obchodní nabídky obsahoval i 200KB prezentaci v PowerPointu]. Váš protiprávní skutek bude po zásluze potrestán…
Nic osobního proti Atlas.cz v tom nehledejte, ale lidé posílající SPAM jsou dle mého názoru prasata. A lidé, živící se internetem (nikoliv provozující hotel), prostě internetoví profesionálové, a posílající SPAM jsou podle mého názoru velká prasata.
Kautský na to odpověděl následovně:
Vážený pane Hulán, po prozkoumání všech webů jsem na Vaší osobu nenašel jiný kontakt kromě Skype, MSN, Emailu.(první dva nepoužíváme) Za normálních okolností potencionální klienty obvoláváme, navíc byli údaje z veřejných zdrojů (databáze společnosti Albertina – vychází ze statistik ČSÚ) takže vcelku nechápu Vaší reakci.Každopádně Vám nenabízím Viagru nebo podobné služby, takže doufám že přijmete mojí omluvu jestli Vám to nějakým způsobem vadilo …
S pozdravem a webdesignu zdar J (jsem také z „oboru“) …
Takže protože mi Kautský nenabízí Viagru, ale placený zápis do jakéhosi jejich firemního katalogu, není to vlastně dle něho SPAM, a mám být navíc rád, že mě neobtěžoval ještě telefonicky na mobil či přes Skype.
Úřad pro ochranu osobních údajů asi Atlas.cz nic neříká, každopádně na Atlas.cz a jeho obchodního zástupce p. Kautského byla podána stížnost za nevyžádané obchodní sdělení na www.uoou.cz. Další lidé, kteří se budou chovat jako prasata a budou "od fochu", dopadnou stejně. Použít na nahlášení nevyžádaného obchodního sdělení můžete tento formulář.
Zatraceně dobré SEO
V poslední době, když něco hledám na Google.com, nacházím stále více a více jen a pouze moje vlastní články. Na jednu stranu to je fajn, být na tisíce klíčových slov v první desítce (či vůbec první) ze stovek tisíc výsledků potěší, nicméně, ne když něco hledám já sám.
Svoje články totiž znám.
Bylo by skvělé, kdybych si mohl sám pro sebe upravit Google hledání tak, aby myego.cz, hulan.cz a forum.hulan.cz ignoroval, protože mi neřeknou nic nového. To, co jsem napsal si pamatuji, a nepotřebuji to opakovat znovu.
Včera jsem zrovna hledal informace o PHP a MySQL na Vista x64, řada stránek (751 tisíc) o tom píše řadu měsíců, můj webzine o tom napsal jednou, a přitom je na první a druhé pozici, na třetí pozici je moje fórum, kde se článek diskutuje, na čtvrté pozici je RSS odkaz z cizí čtečky na můj webzine a na šesté pozici je odkaz z Weblogy.cz na můj webzine.
Pět pozic z prvních deseti, mezi 751.000 výsledky, to považuji za zatraceně dobré SEO :-)
48 hodin s Windows Vista Ultimate x64
Přešel jsem z Windows XP Professional na Windows Vista Ultimate CZ x64 a jsem mimořádně spokojen (více o polemice 32 versus 64 bitů zde). Po různých zprávách v médiích o (ne)kompatibilitě aplikací, neexistujících ovladačích, velké spotřebě RAM a dalších jsem si nebyl jistý, zda Windows XP po instalaci Windows Vista navěky smažu z PC či se k nim opět kvapně vrátím, ale po pouhých 48 hodinách používání Vista x64 je rozhodnuto. XP jsou smazány.
Windows Vista Ultimate x64 je tak dobrý systém, že rozhodnutí o konečné migraci bylo nakonec opravdu snadné.
Nejedná se o barvičky. Aero je samozřejmě působivé, rád pracuji s pěkným prostředím, nicméně podobné grafické (i když neakcelerované a bez průhledností) prostředí nabízí s oficiálním tématem Microsoft Zune nakonec i Windows XP. Jedná se o koncepci Vista a o 64-bitů. Zatímco upgrade z Windows 2000 na Windows XP byl spíše o těch barvičkách, zde je vše zcela jinak.
Dokud jsem testoval Windows Vista jen krátkodobě na VMWare, nebyl jsem jejich kvality schopen dost dobře docenit, ale na reálném stroji a při reálné práci je vše zcela jinak.

Webové aplikace jsou obrovský krok zpět
Webové aplikace jsou hitem posledních dvou let. Google nabízí email, spreadsheet, editor a jabber klienta jako online "aplikace", jiné firmy nabízí grafické editory, icq a yahoo klienty, a mraky dalších věcí. Nic z toho se ovšem nehodí rutinně používat. Stále je to jen "nouzovka". A osobně opravdu nechápu, proč jsou lidé z těchto služeb nadšení.
Vezměme si třeba GMail, nejlepší online emailovou službu s obrovskou kapacitou. Ve své třídě nemá konkurenci. Velký problém ovšem začne mít, pokud ji srovnáme na běžné aplikace na PC, ať už je to Microsoft Outlook, TheBat! či další. Ať se Google snaží sebevíc, přes pouhé XHTML a JavaScript není nikdy schopen nabídnout ani setinu zážitku a komfortu, co umožňuje nativní lokální aplikace.
GMail má samozřejmě pro někoho výhodu v tom, že máte svá data kdykoliv a kdekoliv (jste online), nicméně, kolik lidí, co pracuje s velkým množstvím dat, to skutečně potřebuje? Pokud potřebujete svá data kdykoliv a kdekoliv, pravděpodobně máte notebook a na něm napojení na firemní Exchange server, popřípadě emaily stažené lokálně, a na něm Windows Desktop Search pro jejich prohledávání.
Tyto aplikace jsou funkčností a komfortem ovládání na absolutním vrcholu, a libovolná JavaScriptové hříčka se jim nikdy nemůže ani přiblížit.
Snad jen pár chudých studentů bez notebooku a online připojení pobíhajících po internetových kavárnách potřebuje data "kdykoliv a kdekoliv" (míměno, kdykoliv jsou v internetové kavárně u pronajatého PC). Ostatní lidé mohou nosit na notebooku onen Outlook, a mít na něm data dostupná vždy, ať už jsou online či offline.
I pokud migrujete mezi více počítači, bývá prostě snazší nainstalovat si Outlook a v něm přistupovat na onen GMail pomocí POP3 a SMTP, takže jej vlastně nikdy neuvidíte, jen budete benefitovat z toho, že na dovolené, bez notebooku, se na Gmail můžete podívat, a patřičný přijatý či odeslaný email si dohledat. Používat GMail jen jako záložní skladiště dat, ale zpracovávat je lokálně.
Představa, že bych měl denně místo luxusního Wordu, Excelu a Outlooku používat nic neumějící, pomalé, s vysokou latencí, a principiálně nespolehlivé, online aplikace, mít data jen a pouze u nějakého vzdáleného providera, a nemoci si offline dohledat všechny soubory, emaily a dokumenty jednoho projektu, je zcela nepředstavitelná.
Online aplikace jsou synonymen pro nízkou produktivitu práce a postrádání klíčových dat.
Tipoval bych si, že hlavní klientelou online služeb jsou pubescenti, tedy "nezakotvení", pobíhající sem a tam, pro které je mobilita hlavní prioritou, a použitelnost aplikace jde nutně stranou. Člověk pracující, ten většinou již sedí v nějaké kanceláři na jedné židli, a jeho hlavní prioritou bývá použitelnost, komfort obsluhy a efektivita, což online JavaScript prostě neumí a nikdy umět nebude.
Webové aplikace jsou obrovský krok zpět a rozruch kolem nich je pouze hype neurotických analytiků. Nedokážu si představit, že by skupina mimořádně nenáročných uživatelů, kterým online aplikace mohou stačit, byla nějak významná…
GMail | Microsoft Outlook |
---|---|
![]() | ![]() |
bCompiler - kompilace a ochrana PHP kódu zdarma
PHP kód je ve standardní konfiguraci v jedné věci poměrně nepříjemný pro vývojářské firmy - kdokoliv má přístup k serveru, má přístup i ke zdrojovým kódům, navíc se při každém spuštění PHP skriptu všechno musí znovu a znovu kompilovat, tisíckrát denně, což drasticky snižuje výkon aplikace a zbytečně zatěžuje server.
Kompilace PHP do bytecode (podobně jako v Javě) může být kromě zrychlení aplikace použita i jako určitý (samozřejmě nikoliv stoprocentní) způsob ochrany.
Pokud si například klient chce vyzkoušet redakční systém na své síti, nahrávat mu tam desítky MB vašich zdrojových PHP kódů není zcela určitě to pravé. Kompilace do bytecode tuto situaci v praxi uspokojivě řeší, pokud tedy neexistuje pro daný kompiler volně dostupný decode proces (dekompiler).
bCompiler - zdarma dostupný kompiler PHP
Pro komerčně dostupný Zend Encoder dekompiler bohužel existuje, pro Ioncube rovněž, pro bCompiler, dodávaný v PHP licenci (tedy zdarma, navíc je zde možnost modifikace bez nutnosti zveřejnění zdrojových kódů a tím kompromitace případného uživatelského šifrování) a zdokumentovaný na webu PHP ovšem zřejmě nikoliv (Google hledání: (bcompiler decompiler, bcompiler decode).
Začal jsem bCompiler používat a jsem velice spokojen.
Výsledek je 100% kompatibilní s originálem, soubor je menší, a celá aplikace je (i při použití BZ2) podstatně rychlejší, zvláště pokud používáte rozsáhlé třídy.
Na Windows si můžete bCompiler.dll stáhnout pro různé verze PHP na pecl4win.php.net. Následně již jen povolíte v php.ini
bCompiler a případně i bz2 a můžete kompilovat do bytecode:
extension=php_bcompiler.dll extension=php_bz2.dll
Ukládání stránek do webových archívů (MHT)
Některé věci, pro jiné naprosto samozřejmé a velice užitečné, jsou občas pro jiné lidi úžasným objevem. Osobně jsem nikdy nepoužíval možnost ukládat stránky do webového archívu, protože Opera to do nedávné doby neuměla (verze 9.20 a možná i starší to už umí, Firefox nikoliv), a MSIE jsem si často nespouštěl.
Webový archív je jeden soubor s příponou MHT, který obsahuje vlastní XHTML kód, JavaScript, obrázky, CSS a další součásti webové prezentace. Prostě jeden soubor znamená kompletní a realistický pohled na web. Opera i MSIE umí v posledních verzích vytvářet MHT pomocí Soubor / Uložit jako.
Dosud jsem klientům posílal screenshoty, které ukazují jen pár procent reality. Jsou statické. Před pár dny jsem konečně "objevil ameriku", a začal posílat webové archívy / MHT. A jsem z nich nadšený a klienti také :-)
Příklad webového archívu (MHT)
- Infosport1.mht (217KB)
- Infosport2.mht (234KB)
(jedná se o BETA verzi nového, velice rozsáhlého, sportovního portálu; jen MySQL tabulek je v něm 176 a PHP kód má kolem 50MB)
Statický screenshot
