Peewee


Escrit per Aaloy a 29 de June , 2012 a les 5:27 p.m.

Peewee és d'aquestes eines que fas servir de tant en tant però que quan les necessites t'alegres de tenir-les al calaix.

Pewee és un ORM (un object relelational mapper) és a dir, una llibreria capaç de transformar tuples de bases de dades en objectes, en aquest cas en objectes Python.

La llibreria està força ben documentada i la instal·lació és trivial amb pip. ORM però, n'hi ha uns quants al món de Python, què em duu a destacar Peewee doncs?

El primer de tot que he de dir és que com tot no és una eina per fer-la servir quan no toca, com a ORM té les seves limitacions, no és tan complet com l'SQLAlchemy per exemple. Pewee però és fantàstic quan has de fer feines d'importació/exportació de dades.

Proporciona una capa molt fina d'ORM que pot connectar amb sqlite, mysql o postresql i té un mòdul d'instrospecció senzill per a permetre connectar-nos a una base de dades ja existent i generar els models que ens serviran per interactuar amb la base de dades.

Tant el model com la sintaxi de l'ORM recorden molt, de fet estan inspirats amb l'ORM de Django, per tant, si ja coneixeu Django, amb Peewee us sentireu com a casa.

No té cap dependència d'un bastiment, per tant pot utilitzar-se per fer scripts, i importacions de dades.

La documentació és simple, suficient, amb exemple i es pot llegir en pocs minuts. Si la comparam amb la d'SQLAlchemy en podrem veure la gran diferència. Peewee té una documentació per a començar a fer feina ràpid, SQLAlchemy la té per a convetir-se en l'ORM de la teva aplicació i que en puguis treure tot el suc a la base de dades.

Però no tot són floretes, fent una importació de dades de Mysql cap a Postgres em vaig trobar amb força problemes a l'hora de tractar relacions m2m on la clau primària era composta. L'ORM no funciona bé amb claus compostes i s'ha de fer feina addicional per a tractar-lo.

I per què volem un ORM us demanareu?

Bé, si us heu fet aquesta pregunta vol dir que no heu llegit el meu apunt Fer servir un ORM o no o que no li heu fet gaire cas :)

Python té el DB-API per fer consultes de base de dades, de la mateixa manera que Java té el JDBC. Però mantenir codi on les referències es fan per columnes i on hi ha una mescladissa d'objectes i codi sql no és una bona idea.

Jo vaig trobar Peewee cercant un orm senzill per a fer una importació de dades des d'un programa fet en PHP i Mysql a una aplicació desenvolupada amb Django y Postgresql.

Aquesta importació implicava obtenir les dades, manipular-les per a que encaixassin en el nou model i guardar-les a la base de dades. Peewee em va permetre fer això mantenint la llegibilitat del codi d'importació. D'aquesta manera és molt més senzill veure què està passant, què estàs fent malament. És molt més senzill treballar amb el camp User.username que fer referència a row[2].

Així doncs, si us trobau amb una situació semblant i necessitau quelcom senzill, bo d'aprendre i que faci la feina Peewee pot ser una bona elecció.


Traducciones/Translations by apertium

0 comentaris, 0 trackbacks (URL) , Tags: Python


Spokenpic ja és al market


Escrit per Aaloy a 22 de June , 2012 a les 12:19 a.m.

Link to Spokenpic ja és al market

Doncs sí, han estat un bon grapat de dies dedicant-hi moltes hores, sobretot a casa i a hores mortes, però finalment avui, o millor dit ahir als voltants de les 19:30 apareixia la versió d'Spokenpic al Google Play.

Ara hem de veure quina acollida té dins un públic més ample que els beta-testers que han estat provant l'aplicació, als que aprofit per donar una vegada més les gràcies.

Ara comença també un procés de millora, de la web, de noves característiques, ... Però abans de res gaudir uns dies de la feina feta i veure les primeres impressions de la gent.

Al final amb una aplicació així són els propis usuaris els que diuen si els interessa o no.

L'aplicació estava enllestida per fer les cridades asíncrones a Twitter i Facebook, però suposàvem que en el llançament no faria falta. Doncs mira per on quin dia ha elegit Twitter per caure. Afectava negativament al rendiment de l'aplicació.

Després de tot ha anat bé perquè hem detectat i corregit un error a l'aplicació i també ha servit per a comprovar que la API encara que més lenta, no cau per una caiguda de Twitter.

Demà de totes maneres ja hi haurà posat el Celery amb Redis i així aquest temes estaran molt més controlats i la caiguda de Twitter o Facebook no tindrà efecte en la velocitat de l'aplicació.

També ens queda anar vigilant el Sentry, el sistema de monitorització d'errors que utilitzam, per a controlar les petades no previstes i resoldre els problemes que segur que aniran sortint.

I és que les petades no previstes no ha de passar desapercebudes, això de posar un try/except i caçar-ho tot és molt mala pràctica, és millor tenir un sistema com Sentry que ens informi de tot el que no hem previst.

El primer que hem detectat ha estat un nom de plantilla mal posat. Un typo, que hem pogut resoldre en pocs minuts. Insisteixo, si no feis servir fabric per als desplegaments estau malbaratant el vostre temps. S'ho paga anar creant les funcionalitats per a poder desplegar aplicacions ràpidament.

A veure si puc treure temps per parlar per aquí del Tastypie, dels problemes que m'he trobat fent l'API de l'Spokenpic, i els avantatges i mancances d'aquest bastiment Rest per Django.

Avui també he fer servir una eina, per un altre projecte, de la qual també tenc moltes ganes de parlar, ja que m'ha sorprès per la seva utilitat a l'hora de resoldre un problema com és el de la migració de dades, és un ORM molt lleuger anomenat Peewee.


Traducciones/Translations by apertium

1 comentari, 0 trackbacks (URL) , Tags: Gestió de projectes APSL


Més novetats d'spoken


Escrit per Aaloy a 03 de June , 2012 a les 8:49 p.m.

Tal com em vaig comprometre, avui toca fer cinc cèntims de les butzes d'Spoken i d'allò que estam descobrint i aprenent fent el projecte.

Un dels maldecaps més grans ha estat fer feina amb l'àudio. Cada dispositiu ho tracta un poc d'aquella manera, i arribar a un format que la majoria de dispositius i navegadors es sentís està essent un malson. Amb jplayer la veritat és que va bastant bé, però encara així s'ha de tenir en compte quins formats vols fer servir i després trobar-nos amb que alguns navegadors fan bé l'actualització del player, altres no,... En aquesta versió el més important és que es sentit quan a més llocs millor, després ja hi haurà temps d'anar polint.

Si heu vist la darrera versió des d'un mòbil veureu que es veu força millor. Hem acabat amb un disseny "responsive" que va prou bé per mòbils i sobretaula. Aquest cap de setmana he afegit la compartició amb xarxes socials. Per això he fet servir un plugin anomenat socialite que va força bé per aquestes coses i que no carrega gaire la plana.

Spokenpic és un projecte que pareix senzill però que és força complex, requereix de les habilitats de tots els components de Meneame i APSL. S'ha de coordinar el desenvolupament de l'aplicació mòbil amb la part web, amb el servidor, amb el disseny,... Les noves característiques hem de procurar que no trenquin amb el que hi ha. Ho podríem fer, ja que es tracta d'una alfa i amb gent de confiança, però en el dia a dia ja estam acostumats a trencar poc o gens les aplicacions i no volem que Spokenpic sigui l'aneguet lleig.

Fins ara hem hostejat l'aplicació en un servidor de Hetzner de 7 eur (IVA inclòs), no ho diríeu mai, veritat? El servidor i l'aplicació estan configurat per a treure'n el màxim partit tot i que encara queden optimitzacions a fer, però ara per ara encara no són necessàries.

La setmana passada vàrem encarregar un nou servidor, també a Hetzner, amb 32Gb de RAM i un disc dur RAID 1 de 3TB, en la setmana que comença farem el traspàs de les dades i segurament el servidor actual quedarà com a entorn de preproducció.

No sé la resposta que hi haurà quan alliberem al públic la primera versió d'Spokenpic, però esperam que aquest servidor anirà prou bé i ens permetrà tenir marge de maniobra per, de ser necessari (i ens agradaria que així fos), migrar cap a una arquitectura de cloud, a Amazon.

Fins a la propera!


Traducciones/Translations by apertium

0 comentaris, 0 trackbacks (URL) , Tags: Informàtica APSL spokenpic