Translate to:

 

Marec 2010
P U S Š P S N
« Feb    
1234567
891011121314
15161718192021
22232425262728
293031  

Odznaky

Pixmac pictures
Opencaching.cz - Statistika - georgik


Add to Technorati Favorites

PageRank - hodnotenie tejto webstranky
  • 03Nov

    PHP aplikácii, pluginov, rozšírení a iných skriptov, sa nám dnes po svete potuluje viac než dosť. Autor dostane nápad, napíše kód a hurá. Pekne mu funguje na jeho notebooku s 1 GB RAM a php.ini memory limitom zdvihnutým na 128 MB.

    Milý autor si ani nevšimne, ako mu aplikácia rastie, kysne a žerie drahocenné kilobajty pamäte. Problém nastane, keď sa jeho Otesánok vyberie do sveta. Najskôr ho autor veľmi jemne a decentne zavestí na nejaký webhosting.

    Lenže tu nastane problém. Server má povolených len 25 MB na skript. Otesánok dostane bolesti brucha a odmieta spustiť čokoľvek. Ešte horší prípad však nastane, keď sa takýchto Otesánkov zíde viac. Systémový administrátor rozverne povolil 128 MB RAM a Otesánkovia chrochtajú blahom. Vždy sa jeden zobudí, vygeneruje stránku a ide spať.

    Lenže tu nastane druhý problém. Do serveru sa oprú roboti. Google, Yahoo, Microsoft a im podobná robotická zberba. Treba predsa zvyšovať SEO. Neštastníci. Oni zobudia všetkých Otesánkov naraz. Začne vojna o zdroje. Apache nestíha Otesánkov upratovať na swap. Zo swapu sa mu neustále vracajú a dožadujú sa ďalšej a ďalšej pamäte. Hrôza, des, zmar a load average 78.

    Veď je to tak jednoduché zístiť, koľko vaša aplikácia spotrebuje pamäte:

    echo memory_get_usage() . "\n";

    Dokonca PHP prináša so sebou sledovanie celého priebehu vykonávania skriptu a môžete si vypísať, aké bolo maximum v spotrebe bajtov počas behu skriptu:

    echo memory_get_peak_usage() . "\n";

    Jednoduché, účinné. Monitorujte stav pamäte a nenechajte, aby sa vaša aplikácia zmenila na Otesánka.

    Dokumentácia memory_get_usage, memory_get_peak_usage

    Tags: , , ,

  • 26Aug

    Keď Guido začal dávať dohromady nový jazyk Python, mal už za sebou skúsenosti z návrhu jazyka ABC. Najdôležitejšim kritériom pre vývoj tohoto jazyka bola čitateľnosť. Guido potreboval jazyk, ktorý by bol jednoducho pochopiteľný aj pre bežných ľudí. O Pythone prehlasujú autority, že je to multi-paradigmový programovací jazyk a majú veru pravdu.

    Python je objektový. V čase keď Python začínal, objektové programovanie už malo za sebou nejaký ten rok, ale stále bolo odsúvané na okraj záujmu. Dôkazom toho sú napríklad jazyky ako Perl a PHP, ktoré odsunuli objektovosť naneskôr a potom ju pracne doháňali. V Pythone je proste všetko objekt a hotovo.

    Python obsahuje prvky funkcionálneho programovania. Môj osobný pocit z funkcionálneho programovania je, že vlastne myslíte naruby. Človek musí úplne prevrátiť myslenie, pokiaľ sa chce dostať z procedurálnej paradigmy na funkcionálnu. A oplatí sa to. Získate kratší, účinnejší a čitateľnejší kód. Je síce pravda, že čitateľ musí trochu rozumieť princípom funkcionálneho programovania, ale aj bežný používateľ počítača viacmenej pochopí význam. Dobrá lambda abstrakcia môže výrazne skrátiť kód.

    Python umožňuje použiť Aspektovo orientované programovanie – AOP. Pokiaľ vám táto téma nie je ešte známa, odporúčam si vypočuť diel podcastu z Software Engineering Radio – Úvod do AOP. Podstatnou vlastnosťou AOP je lepšia modularizácia kódu, čo má za dôsledok lepšiu znovupoužíteľnosť kódu.

    Python umožňuje lietať.

    A kde teda začať? Určite treba navštíviť stránky venované Pythonu. A pre začiatočníkov rozhodne odporúčam nainštalovať si IPython shell, ktorý vám môže ušetriť množstvo času. Pre priaznivcov Eclipse odporúčam PyDev s nádherným debuggerom. Pre nepriaznivcov Eclipse odporúčam prostredie Eric, ale mali by ste zvážiť, či sa náhodou nestanete radšej priaznivcami Eclipse ;)

    Nezabudnite si po spustení Python shellu zadať príkaz: import this

    Tags: , , , , , ,

  • 21Aug

    V dobách, keď sa rozdeľovali sféry vplyvu medzi web technológiami, prišlo PHP s niečím, čo ostatným technológia zobralo vietor z plachiet. Viete, čo to bolo? Nie, nebol to dobrý návrh jazyka a dátových štruktúr. Nebola to ani obsesia v dolároch. A nebolo to ani množstvo modulov, ktoré umožňovali všetko od generovania obrázkov, až po generovanie zisku. To s čím PHP prerazilo, bola jednoduchosť nasadenia a rýchlosť. Tu dostali CGI aplikácie postavené na Perle, Pythone, Bashi a Haskelli poriadne na frak. Stačí si porovnať energetickú náročnosť Zope/Plone portálov, ktoré zožerú server so zdrojom aj so sieťovým káblom, verzus PHP portály.

    Pythonieri sa bez boja nevzdávali a tak začali vymýšľať riešenie. CGI. Nie, nie. To nebola správna cesta. Overhead bol skutočne veľký. FastCGI? Trošku rýchlejšia voľba. Aj Trabant môžete vytuniť. Ale pokiaľ nepoužiteje prístup Pána Tragáčika a nevymeníte motor z Trabantu za dvanásť valec, tak máte stále Trabant. Mod_python bol už krok trošku správnejším smerom. Zrýchlenie bolo zhruba 10 násobné. PHP však rýchlostné limity zvyšovalo ďalej. Tu sa niekto z Pythonierov zhrozil. “Chlapi! Baby! Veď mi sme postavili parnú lokomitívu. Musíme vymeniť paradigmu.” Tak sa po mnohých rokoch objavil nový koncept WSGI.

    Tentokrát sa podaril husársky kúsok. Nie len zvýšiť rýchlosť, ale dostať sa tam, kam sa PHP ešte nedostalo. Okrem rýchlosti sa totiž objavila nová požiadavka webových obláčikov: škálovateľnosť.

    Je WSGI až taký zázrak. Áno je. A dokonca o trošku väčší.

    WSGI je skratka od Web Server Gateway Interface. WSGI definuje rozhranie, pomocou ktorého napojíte vašu aplikáciu na web server. To, čo WSGI prináša je unifikácia pripojenia rôznych web frameworkov. Toto zároveň umožňuje podstatne lepšiu optimalizáciu rýchlosti. A ako bonus dostane vývojár škálovateľnosť. Vynikajúcim príkladom je Google App Engine.

    Hurá, zahodím PHP a idem na Python. Hou, hou, zadrž! Škálovateľnosť nie je zadarmo. Python je objektový jazyk a tak sa je k nemu potrebné aj správať. Prechod vyžaduje trochu učenia a skúmania. Niektoré z konceptov sa v PHP vôbec nevyskytujú. Niektoré sú naopak pre PHP vývojárov používajúcich dobrý framework veľmi známe.

    Tu pripájam video z Google Tech Talks venované popisu WSGI.

    Kde Python aplikácie hostovať? Napríklad mi môžete napísať a nejaký ten serverový výkon sa pre vás určite nájde. Alebo si môžete objednať za pár bubáčikov virtuálny server od Web4U. Alebo ísť rovno na Google App Engine a vaša aplikácia bude v obláčkoch cestovať medzi kontinentami a hostingovými centrami.

    Tags: , , , , , ,

  • 09Aug

    Eclipse je výborné IDE, ktoré môže ušetriť veľa času. Napríklad v prípade, že pracujete súčasne na projektoch vo viacerých jazykoch ako Java, Python, Perl, či nebodaj PHP. S konfiguráciou Eclipse a PDT pluginom som dlho nemal úspech. Vždy došlo k nejakej neočakávanej chybe. Problémy boli rôzne, nedostupný server, halušky v Eclipse. Ale to už bolo dávno. Tak som sa pustil do zisťovania, či sa v tomto smere niečo nezmenilo. Milé deti, zmenilo a k lepšiemu. ;-)

    Lokálne ladenie PHP aplikácie v Eclipse je brnkačka, nepotrebujete ani nainštalovaného Apache, či inú web potvoru. Postup je jednoduchý, ale zradný. Ak šliapnete mimo vyznačenej cesty, hrozí vám prepad do bažiny, kde vás zožerie nejaká chyba.

    1. stiahnite Eclipse for PHP developer (návod je písany na Eclipse 3.5)
    2. rozbaľte ho, vytvorí sa adresár eclipse (pre Windows odporúčam použiť na rozbaľovanie 7zip, natívny rozzipátor akosi nefunguje správne, aspoň mne nerozbalil všetko)
    3. doinštalujte Zend Debugger, EclipseHelpInstall new softwareAdd
    4. Name: PDT, URL: http://downloads.zend.com/pdt, Ok, vyberte Zend Debugger a pokračujte v inštalácii
    5. presvedčte sa, že po reštarte Eclipse máte zvolený správny debugger, EclipseWindowPreferencesPHPPHP Executables, mali by ste mať zvolené niečo ako PHP 5.2.9 CGI z adresára, kde je Eclipse

    A hurá debuggovať. EclipseNewPHP Project – zadať Project name – Finish. Pozor! Ak dáte Next namiesto Finish, je možné, že skončíte s chybovým hlásením duplicated entry. Pravdepodobne chyba vo workflow.

    Vytvorte si nový PHP súbor, napríklad pozdrav.php:

    <?php
    echo “Ahoj Georgik!”;
    ?>

    Dvojkliknite na pásik panelu vľavo na riadku 2, čím nastavíte break point.

    eclipse-php-break-poing

    A môžeme s chuťou debuggovat. Pravý klik v editovacom okne – Debug asPHP script. Eclipse sa prepne do PHP Debug perspektívy a zastaví sa na break pointe. Ovládanie debuggera som už popisoval :-) .

    Takto nastavený Eclipse môžete použiť na lokálne ladenie. Nezabudnite používať vhodný framework na písanie PHP aplikácii. Skupina zubných lekárov odporúča framework Nette. ;-)

    Tags: , , , ,

  • 23Jún

    Ano, je to tu! Vyšla nová proprietárna verzia PHP. Prvé veľké enterprise nasadenie spravili České Dráhy. Tu je príklad nasadenia novej verzie PHP v praxi.

    PHP v praxi

    Tags: ,