2013/05/16
Zirko baten karpan gaude, Varsoviako parke batean. DjangoCon Europa 2013 konferentzia Poloniako hiriburuan da asteburura arte, eta hemen gaude bi programatzaile. Python programazio lengoaiarekin funtzionatzen duen framework indartsua da Django, CodeSyntax-en darabilgun tresna eta software librea, eta komunitate honetan zer dabilen gertutik ezagutzea inportantea iruditzen zaigu. Atzo, biltzarraren lehen egunean ikusi genituen gauza batzuk, jarraian azalduta.

[Nire izenpea (Jatsurena) daraman arren post honek, apunteetako batzuk nireak dira, eta besteak nire lankide Aitzol Naberanenak]

Advanced POSTGRESQL – DJANGO – Christopher Petoff

Nola lotu merkatuan dagoen datubase libre inportanteenetako bat, Postgresql, eta Django. Interesgarria batez ere JSONak gordetzeko alorrak eta atributuak gehitzeko aukera. Hau da, erregistro jakin bati atributuak izeneko alorrak ditu eta gako/balio moduan jaso ditzakezu: azkenean, erregistro bakoitzak 'alor ezberdinak' izateko modu bat.

Horrez gain errendimenduaz aritu da geroago,  indizeak sortzea, indize partzialak eta baita kondizio jakin bati erantzuten dioten indizeak, hau da adibidez erosketa zerrenda baten ordainduta daudenak bakarrik indexatzea. Errendimendu onak lortzeko beste pista batzuk ere eman dizkigu. Postgresql zein kustomizablea den ere azpimarratu du, DB honen aldeko propaganda ona egin du.

Getting recommendations – Ania Warzecha

Amazon, Facebook eta holakoak ematen dizkizuten produktu, edo lagun gomendioak nola kudeatu azaldu digu Warzechak, Django oinarri gisa duen sistema bat erakutsiz. Hiru motatakoak omen dira sistema hauek: User based / Content based / Hybrid (erabiltzaileetan edo edukian oinarrituak, eta hibridoak)

Erabiltzaileak puntuatzeko modu bat, adibidez: 0 ez du erosi, 1 nabigatu soilik egin du, 2 erosi du.

Azaldu digu halaber Login egin gabeko erabiltzaileak jarraitu eta behin logeatzen direnean datu horiek erabiltzailearen perfilera lotu eta ez galdu sekula informazioa. Gero, erabiltzaileen arteko erlazioak lotzeko geografikoki gertu/urrun daude kalkulatu, eta amankomunean izan ditzaketen beste parametro batzuen arabera. Kalkulu hauek painless (minik hartu barik) egiteko, Redis datubasea erabiltzen omen dute.

Eta konklusioa eta hizlariaren gomendioa, jaso ahalik eta datu gehien erabiltzailengandik.

Circus process and socket manager, Tarek Ziade

Aplikazioen osagai guztien egoera txekeatzeko beharrezkoa da superbisore bat (gainbegirale agian hobeto??) erabiltzea, ohikoena Python munduan Supervisord erabiltzea da, baina badauzka bere mugak: flapping-a (behin eta berriro prozesu bat martxan jartzen saiatu eta huts egitea), ez du ematen denbora errealeko estatiskarik. Web interfazean Supervisord ez da oso ona, sarrera eta errore estandarraren egoera ezin da denbora errealean txekeatu...

Honek bultzatu zuen Tarek Ziade bere superbisore propioa sortzera, goian aipatzen diren ezaugarriak gehituz. Circus deitu dio superbisore horri, eta gaur aurkeztu du DjangoCon-eko zirkoan (!!). Aplikazioak finean socket bidezko komunikazioa bideratzen du, horrela elementu desberdinen egoera denbora errealean kontsulta daiteke.

Processing payment for paranoids: Andy Mackay

FirefoxOS-ek inplementatuko duen MarketPlace-aren ordainketa plataforma aurkeztu du Andy Mackay-k (Djangon egina baita). Segurtasuna da helburu nagusia, eta hau lortzeko behar den guztia egin behar da. Beraien kodea publikoki atzigarri dago, eta dirusaria eskaintzen diote segurtasun zuloren bat aurkitzen duen edonori. FirefoxOSren ordainketa sistema hainbat zerbitzaritan zehar barreiatu dute, eta informazio sensible guztia beti zifratuta gordetzen dute. Garapenean jarraitzeko datuak behar dituztenean, datubasea 'anonimatzaile' batetik pasatzen dute datu ihesik izan ez dadin.

Beraien garapen prozesuaz gain, tresnak ere garatu dituzte funtzionamentu errealean eskarien zilegitasauna bermatzeko, adibidez django-paranoia izeneko Django produktua, zeinak hainbat test egiten dituen, hala nola, prozesu osoan zehar jatorri IP helbidea ez aldatzen, edo User Agent-a mantentzen dela.

The Imaginative programmer - Zed Shaw

Dudarik gabe eguneko hitzaldi desberdinena, ez da zentratu ez kode, ez framework ez beste horrelako gaietan. Nabarmen adierazi du nola aspertuta dagoen jendeak bera era batera ikusteaz, jende horrek espero duena egiten ez duelako. Nazkatuta dago diseinatzaileez aurpegiratzen baitiote ez dela artista naiz eta bera pintatzeko gai den, eta programazio prozesua bera sormen handikoa izan; musikariekin era nazkatuta, talde batean jo beharrean berarentzako musika egiten duelako; programatzaileekin ere, hauen proeiktuetarako koderik idazten ez duenez programatzailea ez dela esaten diotelako, nahiz eta Pythoni buruzko liburu bat idatzia izan (Learning Python The Hard Way). Benetan hitzaldi dibertigarria.

Thread profiling - Amjith Ramanujam

Aplikazioetan denbora non joaten den aztertzea eta neurtzea da 'Profiling'a egitea, eta bere helburua da, arazo edo hobekuntza puntuak aurkitzea. Python-ek badauka profiler bat cProfile deiturikoa, baina proiektu handi batean erabiltzeko ez da egokia, exekutatzen den funtzio dei bakoitzeko cProfile dei bat exekutatzen delako, eta hau proiektu handietan (funtzio dei asko tarteko), ez da bideragarria, sortzen duen gainkarga eta denbora gehikuntzagatik. Horregatik funtzio guztiak testeatu beharrean, hobe litzateke aplikazioarentzako kritikoak (edo arazoak sortu ditzazketenak) aurkitu eta beraietan bakarrik exekutatzea profiling-a. Dena dela, hau honela eginda, denbora asko tardatzen duten funtzioak aurkituko genituzke, baina denbora gutxi tardatu bai, baina behar baino gehitagotan exekutatuko liratekeen funtzioak ez genituzke aurkituko.

Aplikazioaren argazki guztia izateko, profiling estatistikoa deitu duen teknika aurkeztu du Amjith-ek, finean denbora tarte finkoetan aplikazioa gelditu, exekutatzen ari diren funtzioen traza atera eta hori tratatu bai, absolutuan kontatuz, zein funtzio zuhaitz bat eraikiz. Teknika honekin, luze exekutatzen diren funtzioak agertuko zaizkigu gure trazetan, baina baita ere denbora gutxiz exekutatu arren oso sarritan exekutatzen direnak agertzeko probabilitatea asko handitzen da.

Amaitzeko, JS eta Django apur bat

Beste hizlari batengandik, Javascript eta Django nola konbinatu erakitsi digute. Nahiko hitzaldi pobrea iruditu zaigu, baina behintzat Coffee script aurkeztu digu, kodea javascriptera konpilatzeko tresna, kode erabilterrazago bat idatzita. Tresna interesgarria dirudi.

Gaur gehiago, asteburura arte irauten baitu DjangoCon honek.

Erantzuna gehitu

Erantzuna formulario hau betez utzi dezakezu. Formatua testu arruntarena da. Web eta e-posta helbideak automatikoki klikagarri agertuko dira. Erantzunak moderatuta daude.

Agian interesatuko zaizkizu beste artikulu hauek