December 14, 2010

Bez testů do vývoje nelez

Parafráza na: Bez peněz do hospody nelez 😉

Príklad z praxe: Finálny výsledok bol zle generovaný. Asi 50 krát som prešiel kód. Prešiel som všetky vrstvy. To proste nebolo možné, výsledok sa musí generovať správne!

Pozorný čitateľ iste poznamenal: Nemusí. 😛

Presne tak. Výsledok sa generoval nesprávne. A to aj napriek mojej utkvelej predstave, že všetko je napísané správne.

Tak som sa zamyslel, napísal som 5 testov, ktoré sa spustili za menej než jednu sekundu. Nad testami som pustil debugger, predebuggoval som chybný test.

Ajhľa. Bug. Miniatúrny. Fakt malý. Chýbajúci jeden riadok v štvrtej vrstve.

Preto nezabudnite písať testy a hlavne nezabudnite na to, že testy sa dajú ľahšie debuggovať než finálna aplikácia. 🙂

Ešte poznamenám, že pre vývoj na Pythonierskom Googliom AppEngine, je Intellj IDEA 10 (s Python pluginom) parádny nástroj. Pri unittestoch je potrebné správne nastaviť PYTHONPATH, a to nie len do google_appengine, ale aj do google_appengine/lib/webob.

December 8, 2010

BlazeDS and Google App Engine

Official version of BlazeDS still does not support Google App Engine.

If you need solution for this problem, check out project s3blazeds.

September 22, 2010

Google App Engine – sporadická garancia dostupnosti?

Pôvodne som chcel tento článok nazvať: Náš Google se Vám co nejsrdečněj omlouvá za toto politováníhodné nedopatření, ke kterému dochází MAXIMÁLNE … třikrát za deset let.

Príhoda z natáčania: deploynete Java aplikáciu na Google obláčik, chcete ukázať ľuďom, ako pekne to funguje a…

Kolečká sa otačajú, procesor si mele-mele-mele…

Timeout error. Pokus môžete opakovať niekoľko krát. Na výsledku nič nezmeníte.

Prezradím, že aplikácia volá veľmi jednoduchú funkciu, ktorá má za úlohu získať údaj z takmer prázdnej databázy.

Počkáte 5 minút a všetko zas ide.

V logu potom objavíte skvelú hlášku:

Request was aborted after waiting too long to attempt to service your request. This may happen sporadically when the App Engine serving cluster is under unexpectedly high or uneven load. If you see this message frequently, please contact the App Engine team.

K svojmu článku: Kde už Google App Enginu nestačí palivo, pridávam túto skutočnosť ako bod 11.

September 16, 2010

Kde už Google App Enginu nestačí palivo

Google App Engine je kus zaujímavej oblačnej technológie. Hlavnou výhodou má byť “škálovateľnosť”. Či už na vašu aplikáciu pristupuje jeden človek alebo 10 000 naraz, App Engine by to mal ustáť.

Google App Engine podporuje Python a pred nejakým časom bola pridaná aj Java.

Nikto príliš nehovorí o cene, ktorú musíte za “škálovateľnosť” a voľný výpočetný výkon zaplatiť.

Veď App Engine je predsa free! Tak o akej cene tu píšem?

Jedná sa o cenu zaplatenú v architektúre aplikácie a možnostiach nasadenia.

Poďme sa pozrieť na jednotlivé obmedzenia.

1. We shall live in America. Aj keď vám to žiadny z oficiálnych zdrojov nepotvrdí, App Engine je hostovaný pravdepodobne zatiaľ len v USA. Doba reakcie a TTL tomu plne zodpovedá. Takže milí Európania, môžete si tak maximálne strúhať mrkvičku. Odozva bude vždy slabšia. Kolumbusovi trvalo predsa niekoľko mesiacov, než sa do Ameriky dostal. Paket to zvládne tam aj späť za veľmi krátky okamih. 🙂

2. Príliš malý traffic. Nepríjemná vec, ktorá sa vám stane pri vyložení Java aplikácie do Google cloudu je,  že na prvú odpoveď od aplikácie si chvíľku počkáte.  Bežne to znamená, že prvý požiadavok na aplikáciu bude obslúžený cca za 10-20 sekúnd. Pokiaľ je aplikácia neaktívna cca 2 minúty, stroje ju odstránia z pamäte. Ďalší návštevník musí čakať znova 10-20 sekúnd na odpoveď. Toto je veľmi nepríjemné hlavne pre tvorbu web aplikácie.

3. Len Google účty. Musíte použiť len Google účty a web API na overenie používateľov. Ostatné mechanizmy, ako napríklad security-constraint z BlazeDS, proste nefungujú. Takže nie je možné vytvoriť si vlastnú databázu používateľov.

4. Maily len pod identitou admina. Chcete v aplikácii rozosielať e-maily? Tak to je možné jedine tak, že ako odosielateľ je špecifikovaný e-mail administrátora aplikácie. Prípadne je ešte možné odoslať e-mail s identitou prihláseného používateľa.

5. Máme tvoj Google účet, máme všetky dáta. Na prácu na App Engine sa bežne používa Google účet. Čo inými slovami znamená, že pokiaľ niekto získa prístup k tomuto účtu, tak má prístup k údajom zo všetkých aplikácií.

6. Aj App Engine občas vypadne. S dostupnosťou App Enginu to nie je úplne slávne. Už niekoľko krát došlo k rozsiahlejším výpadkom App Enginu. Niekedy aj v rozsahu hodín. Dokonca pri jednom incidente došlo k strate “malého” objemu klientských dát. Prípady sú väčšinou zdokumentované v mailinglistoch k App Enginu.

7. Vlastný server? Zabudni. App Engine SDK obsahuje server, ktorý je možné spustiť lokálne. Je určený pre developerov, nie je možné ho nasadiť v produkčnom prostredí, hlavne pre nízke zabezpečenie a otvorené funkcie ako _ah/admin.

8. Vyloženie aplikácie môže trvať aj 15 minút. Občas sa proste App Enginu nechce pracovať. Niekedy trvá vyloženie aplikácie veľmi dlho. Tento prípad sa dá občas ošetriť pomocou použitia funkcie roll-back, ktorá odvolá aktuálne vykladanú verziu a skúsiť to znova.

9. Session ťa zožerie. Používanie session je proste veľmi zaujímavé a pokiaľ sa tomu nedokážete vyhnúť, zvážte použitie inej infraštruktúry, než je App Engine.

10. Až tak lacné to nie je. Výhodou App Enginu je to, že na začiatku nemusíte platiť nič za hosting a všetko funguje. Odporúčam si dopredu prepočítať cenu, ktorú zaplatíte za prekročenie “free” limitov aplikácie.

Inak je App Engine skvelý kus technológie. Pokiaľ vašej aplikácii nevadia predchádzajúce body, tak odporúčam App Engine a jeho komfortné prostredie.

August 11, 2010

Google App Engine – prístup k lokálnemu datastore

Ako sa dostať k obsahu dátového úložiska pri vývoji aplikácie pre Google App Engine?

Jednoducho:

http://localhost:8080/_ah/admin

Zobrazí sa vám lokálna verzia vývojárskej konzoly.

Zdroj: http://stackoverflow.com

Júl 30, 2010

Video záznam z prednášky Zváračský kurz na GAE – z Brnenského Barcampu

Na Youtube je už k dispozácii záznam z mojej prednášky Zváračský kurz na Google App Engine a BlazeDS. 🙂

Taktiež sú k dispozícii materiály k prednáške.

Pokiaľ vás detailnejšie zaujíma problematika Google App Enginu a BlazeDS, odporúčam si pozrieť videá v článku: Ako vytvoriť klientskú aplikáciu pre Google App Engine s podporou Remote Development Services .

Jún 26, 2010

Materiály zo zváračského kurzu z BarCampu

K dispozícii sú materiály z prednášky Zváračský kurz pre web – BlazeDS a Google App Engine vo formáte PDF.

V prednáške je spomínaných niekoľko zaujímavých odkazov:

Jún 22, 2010

Ako zastaviť Google App Engine vo Windows na príkazovom riadku?

Testovací Google App engine server je možné naštartovať pomocou:

dev_appserver adresár

Ako ho ale zastaviť?

CTRL+C nefunguje, aplikácia zostane bežať.

Je potrebné použiť kombináciu CTRL+Break (Pause).

Jún 4, 2010

Materiály z prvého dielu Zváračského kurzu na BlazeDS

Ako som sľúbil, materiály nájdete v sekcii Prednášky. 😉

December 17, 2009

Materiály z prednášky o Web 2.0 v Žiline

Dnes som prednášal na Žilinskej univerzite. Prednáška bola venovaná téme Web 2.0. Spomínal som rôzne technológie, ktoré môže vývojárom a firmám zjednodušiť prácu. Testovanie, Selenium, Netcat, Adobe AIR/Flex, Google App Engine, Amazon Web Services. Materiál je vo forme PDF k dispozícii na stiahnutie. Video záznam bude k dispozícii pre študentov Žilinskej univerzity.

Ak by vás niečo z prednášky zaujalo a chceli by ste o tom vedieť viac, napíšte. Prípadne, ak by ste mali záujem o školenie pre vašu firmu, kontaktujte Institute of Next Generation Network, ktorý má školiace priestory v Žiline.

Update: Keď som odchádzal zo Žiliny, kúpil som si výborný trdelník. Môžem odporučiť.