Už jste to zkoušeli? Myslím že tohle musí být od vývojářů Microsoftu opravdová zlomyslnost.

Pokud se po instalaci Apache pokušíte najít soubor hosts (ve kterém si můžete přejmenovat adresu 127.0.0.1 třeba na test ), čeká vás hned několik nemilých překvapení. Soubor je neviditelný v neviditelném adresáři a ještě ke všemu do něj nelze jednoduše zapisovat.

Ale naštěstí máte váš oblíbený blog Accessdenied.cz, kde se všechno důležité dozvíte :-)

Jdeme na to:

Nejdůležitější věc: soubor musíme otevřít pod administrátorským účtem. Pokud tedy používáme notepad, klikneme na tu velkou kulatou podivnost vlevo dole, co se kdysi jmenovala Start, a hned nad ní do textového pole napíšeme:

notepad c:\Windows\system32\drivers\etc\hosts

Důležité – neodešleme to běžně pomocí klávesy Enter ale použijeme trojhmat Ctrl+Shift+Enter. Pomocí této kombinace spustíme notepad s administrátorskými právy.

Soubor upravíme, uložíme. Podáváme za studena.

Snadné, že?

Více o nastavení v souboru hosts najdete v tomto článku

A tady si můžete přečíst něco o tom, jak nastavit Apache pro více domén na jednom localhostu.

Updated 19.3.2010 : Než se začnete rozčilovat, jak je to přece snadné a každý to zná, další zbytečný příspěvek atd., podívejte se na datum vydání.

Hlasujte pro tento článek:
  • Bookmarky.cz
  • Digg
  • del.icio.us
  • Google
  • Linkuj
  • Vybrali.sme
  • E-mail this story to a friend!
  • Facebook
  • LinkedIn

V nedávném příspěvku jsem psal o velmi důležité funkci – cachování na straně PHP skripu, které je užitečné zejména v případě dlouhých databázových dotazů nebo složitě parsovaných vstupních dat třeba z webové služby.

Někdy je nutné data načíst znovu ještě před expirací cache, např. při ladění skriptu. Občas se něco nepovede i při běžném provozu a uživateli bychom měli umožnit obnovení celé stránky pomocí CTRL+F5 i za cenu, že zpracování stránky bude trvat déle.

Použijeme skript původního příkladu, ale do podmínky pro načtení

  1. <?php
  2. if ( !$cachedText = ctiCache( 'narocnyBlok' , 600 ))
  3. ?>

přidáme ještě testování na parametr HTTP_PRAGMA, kterým nám server naznačuje, že si uživatel nepřeje načítat data z cache.

  1. <?php
  2. if (($_SERVER['HTTP_PRAGMA']=='no-cache')  ||   !$cachedText = ctiCache( 'narocnyBlok' , 600 )) {
  3. }?>

Pokud ještě zaměníme v názvu bloku ‘narocnyblok’ za md5 hashované parametry, máme už dokonalý kešovací skript.

  1. <?php
  2. if (($_SERVER['HTTP_PRAGMA']=='no-cache')  || !$cachedText = ctiCache( 'cblok'.md5($vstupniParametry)) , 600 )) {
  3.         zpracujDlouhySkript($vstupniParametry);
  4. }
  5. ?>
Hlasujte pro tento článek:
  • Bookmarky.cz
  • Digg
  • del.icio.us
  • Google
  • Linkuj
  • Vybrali.sme
  • E-mail this story to a friend!
  • Facebook
  • LinkedIn

Každý javascriptový programátor zřejmě už slyšel tajemnou zkratku JSON. A pokud už předtím měl nepříjemné zkušenosti s XML, má z webových formátů možná posvátný respekt až hrůzu. O tom, že JSON je technologie naopak velmi uživatelsky přívětivá, je následující článek.

JSON je formát dat, který podobně jako XML umožňuje přenášet formátovaná data – pole – z jedné platformy na druhou. Programátory AJAXových aplikací si zkrátka musí získat skvělý způsob, jakým lze poskytovat data z PHP do Javascriptu.

Začínáme

Pro začátek trochu nemilá zpráva pro příznivce konzervativních až zpátečnických hostingů: funkce pro práci s tímto formátem jsou dostupné pouze od verze PHP >= 5.2. Nám ostatním funguje funkce json_encode(). A pokud vás k přechodu na pořádný hosting nepřesvědčí ani to, že váš hoster kašle na bezpečnost, určitě zvládnete tuto funkci implementovat sami na pár řádcích PHP kódu.

Posíláme data z PHP

Funkce json_encode() nedělá než nic jiného, než že vezme jakékoliv (nejlépe asociativní) pole a vytvoří z něj string formátovaný v JSON.

A teď do Javascriptu tím!

Co je na tom nejzajímavější: Protože se jedná o přímou javascriptovou syntaxi zápisu objektu, Javascript už s takto formátovaným stringem umí pracovat, není třeba řetězec složitě parsovat nebo upravovat!

Stačí jeden eval().


var a= '{"jmeno":"Pavel","prijmeni":"Novak","bydliste":"ulice":"Sokolovska","cp":"666","mesto":"Strakonice"}}';
eval('var obj='+a)
//Zobrazení hodnot
alert(obj['bydliste']['mesto']);
//anebo
alert(obj.bydliste.mesto);

Hlasujte pro tento článek:
  • Bookmarky.cz
  • Digg
  • del.icio.us
  • Google
  • Linkuj
  • Vybrali.sme
  • E-mail this story to a friend!
  • Facebook
  • LinkedIn

(Napsáno v prohlížeči Google Chrome)

Tak jsem tu novinku taky prozkoumal, když už to bylo i na Nově.

A … jsem mile překvapen. Všechno funguje jak má. Bookmarky.cz taky.

Ale co jsem opravdu nečekal: rychlost. Prohlížeč se otvírá i zavírá bez dlouhého škrábání na disku, všechny stránky fungují vůbec velmi (!) svižně – proti Firefoxu i bez výrazných paměťových nároků.

Pár postřehů a první dojmy

  1. Google se snaží oslovit zapřísáhlé uživatele Internet Exploreru minimalistickým designem a podobným rozmístěním ovládacích prvků.
  2. Všechno funguje. Bookmarky.cz, TinyMce, JQuery, WordPress, Ajax, content-editable, vše bez problémů, ale mnohem rychleji.
  3. Excelentní rychlost vykreslování stránky.
  4. Ještě excelentnější :-) rychlost Javascriptu
  5. Na nové kartě se zobrazí nejnavštěvovanější weby ve stylu SpeedDial ve Firefoxu.
  6. Menší paměťové požadavky než Firefox3.
  7. Trochu nezvyklé – není žádné vyhledávací pole. Takto sice umí fungovat i Firefox a IE, ale stejně…
  8. Trochu mě vyděsilo, že si prohlížeč naimportoval i uložená hesla z Firefoxu.
  9. Vývojářská konzole – možná bude chtít delší zkoumání, uvidíme. Taky je tam nějaký profiler. Ale na FireBug stejně nemá.
  10. Každá Textarea má růžek pro změnu velikosti. Moc pěkné. Škoda že není taky v dolním rohu prohlížeče.
  11. V adresním řádku je zvýrazněna doména tmavým písmem. Detail, ale celkem fajn.
  12. Dialog pro upload souboru neumožňuje pastnout název souboru, stejně jako ve Firefoxu3. Místo toho je trochu nevzhledný nápis.
  13. Chrome nemá stejně jako IE7 hlavní menu. Pokud jste geek, pak znáte klávesové zkratky. Pokud používáte IE7, je na vás příliš i to, co máte na liště.
  14. Animovaná šipka při downloadu souboru určitě ozvláštní nudné hodiny surfování po netu.
  15. Hodily by se na liště buttonky Historie a Záložky, snad by tolik místa nezabraly. Aspoň že tlačítko Home lze zapnout, i když zrovna to bych oželel.
  16. Sidebar je asi přežitek. K ničemu, pryč s ním.
  17. Moc pěkné je naopak vytvoření nového okna prohlížeče pouhým přetažením mimo hlavní okno a vrátit zpět do původního okna. Zajímavé, funguje i v Opeře. A ve Firefoxu ne. Můžete také měnit pořadí karet na panelu.
  18. Důležité může být i Anonymní okno (zlé či jinak vášnivé jazyky používají termín porn mode), kde se zřejmě dlouhodobě neukládají přihlašovací údaje a historie prohlížených stránek.
  19. Výpis navštívených stránek lze zobrazit Ctrl+H

Shrnutí

Při vývoji webových aplikací potřebuju hlavně rychlé načítání stránek a rychlý start prohlížeče. Další “vylepšení” jsou víceméně jenom kosmetická. Lidi stejně zajímá jenom obsah webu. Ale pokud by se vývojářům Google Chrome podařilo odlákat lidi od Internet Exploreru (a možná také vymyslet vlastní pořádný název), pak si zasloužil své místo na slunci.

P.S.: Pro zastánce konspiračních teorií:  Podle tohoto článku byla opravena licenční smlouva, kde si firma Google údajně osobuje právo na cokoliv projde oknem prohlížeče,  která byla zjevně pouze okopírovaná z jiných služeb Google.

Hlasujte pro tento článek:
  • Bookmarky.cz
  • Digg
  • del.icio.us
  • Google
  • Linkuj
  • Vybrali.sme
  • E-mail this story to a friend!
  • Facebook
  • LinkedIn

Pokud máte projekt v PHP, kterému se věnujete už několik let, zřejmě se nevyhnete také “nánosům minulosti”.

Tohle je jedno z nejčastějších a nejčastěji porušovaných pravidel při programování v PHP a je třeba je tesat do kamene:

OPRAVDU INICIALIZUJTE VŠECHNY PROMĚNNÉ.



A co je na tom špatně?
Pokud nemám inicializovanou proměnnou $i, nebude mít $i počáteční hodnotu “0”, ale jenom “”, což platí i pro asociativní pole. Tudíž počáteční prvek pole není uložen v $vystup[0], ale $vystup[”].

Nojo, jednoduché. Pokud víte, co a kde hledat.

Hlasujte pro tento článek:
  • Bookmarky.cz
  • Digg
  • del.icio.us
  • Google
  • Linkuj
  • Vybrali.sme
  • E-mail this story to a friend!
  • Facebook
  • LinkedIn

« novější článkydalší články »