Apunts sobre Clutter
Reading time: < 1 minute Acabo d'obrir una secció al wiki on aniré posant els meus apunts personals sobre Clutter, així doncs, si a algú l'interessa el tema pot seguir-los des d'allà.
Reading time: < 1 minute Acabo d'obrir una secció al wiki on aniré posant els meus apunts personals sobre Clutter, així doncs, si a algú l'interessa el tema pot seguir-los des d'allà.
Reading time: 6 – 9 minutes
Des de fa uns mesos m’he posat a fons amb Clutter, es tracta d’una API més una ABI programada en C per crear interficies d’usuari. Malgrat tractar-se en escència d’una API per crear espais 3D amb objectes 2D, té la capacitat de poder moure els objectes en la coordenada Z. Així doncs, és pot aprofitar la potència d’OpenGL de forma transparent i senzilla i sense haver-se de preocupar de com representar objectes 2D en espais 3D, cosa gens senzilla per un neofit en el món dels gràfics com jo.
Clutter usa el seu propi reactor d’events, però en certs casos pot usar Gobject, Glib i Gtk també. És fàcilment integrable amb DBUS i amb GStreamer. En escència m’ofereix tot el que em cal per un projecte que porto entre mans. Pels que encara no ho tingueu clar, l’interficie gràfica que usa Moblin esta programada amb Clutter com a llibreria gràfica. De fet, és aquest projecte el que li ha donat molta força a Clutter que disposa de 29 programadors a temps complet, dels quals 14 no són d’intel (intel és qui promociona amb més força ‘moblin’).
Bé doncs, aquest impuls que ha patit moblin l’han portat a la versió 0.9.8 que és realment potent i ja gairebé igual que la versió 1.0 que hauria de sortir en breu. Tot i que fins ara Clutter s’ha caracteritzat pel retard en la sortida de les noves versions esperem que aquest cop no sigui així.
Abans d’entrar a definir quins són els elements que té aquesta llibreria, comentar que també disposa de binding de python cosa que pels ‘no-programadors’, com jo, és tota una alegria. També s’ha de dir que a dia d’avui, no hi ha bindings oficials per la branca 0.9 de Clutter que és l’experimental, o futura 1.0. Així doncs, jo només he provat el Clutter fins a la seva versió 0.8, malgrat la segueixo amb lupa la versió 0.9.x; a l’espera de poder començar a fer coses amb ella quan tingui els bindings de python.
Anem al motiu central de l’article, repassar els conceptes que usa Clutter fins a la verió 0.8:
Per fer aquesta referència m’he basat amb la informació de la guia ‘Programming with Clutter‘ escrita per Murray Cumming.
Reading time: 2 – 3 minutes
La idea que es persegueix al usar múltiples esquemes en un sol projecte és la de poder usar múltiples bases de dades en un sol projecte. La idea sembla molt senzilla, però a través de la documentació oficial del projecte Symfony la veritat és que no he sabut trobar la solució. En l’explicació per portar a terme aquesta funcionalitat hem referiré tota l’estona als fitxers .yml i no als .xml equivalents, però suposo que la idea és totalment exportable.
Es tracta de deixar d’usar el fitxer schemal.yml i passar a usar diferents fitxers anomentats nomarbitrari_schema.yml, si encomptes d’un nom voleu usar un número tampoc hi ha problemes per fer-ho, per exemple, 1_schema.yml i successius.
Pel que fa al contingut d’aquests fitxers és el de sempre, tot i que jo ús recomanaria usar petites ajudes com aquesta:
nombasededades: _attributes: package: lib.model.nombasededades
Aquest nombasededades l’usarem després per especificar les dades de connexió al fitxer databases.yml, però potser el més interessant és fixar-se en el paràmetre package que ens permet que tot el model de dades quedi guardat dins de lib/model/nombasedades. O sigui, que tot queda molt més ben organitzat i fàcil d’accedir.
Cal que vigileu si dues bases de dades tenen dues taules que s’anomenen igual, ja que si això passa llavors hi haurà un conflicte en els models de dades que es generen, perquè aquestes tindran el mateix nom. Això és fàcilment solucionable simplement a l’schema heu de dir-li que el nom de la classe que representa les dades d’aquella taula de la base de dades és un nom diferent al de la taula, o sigui, el nom escollit per defecte.
Pel que fa al fitxer databases.yml el seu contingut és el de sempre, simplement cal que penseu que cal descriure la connexió de cada una de les bases de dades que heu anat declarant als diferents fitxers d’schema.yml, un exemple:
all: nombasededades1: class: sfPropelDatabase param: ... nombasededades2: class: sfPropelDatabase param: ...
Un cop ben configurat tot això ja podem fer un típic symfony propel-build-model i llestos.
Reading time: 2 – 3 minutes
Per fi he trobat un plugin de highlighting que m’agrada, l’he trobat avui a través del blog del François Zaninotto. Llàstima que el plugin és força antic, no hi ha actualitzacions des de l’any 2006. Quan l’he instal·lat al WordPress 2.5.1 m’ha donat un problema amb els permisos malgrat estava com a administrador. Així doncs en un moment li he fet un workaround, o sigui, com que el blog només l’uso jo ara mateix i no uso els usuaris m’he saltat la validació que fa de si tinc permisos. D’aquesta manera l’he pogut configurar com pertoca.
Per si algú vol fer el mateix, al fitxer syntax_hilite.php li he comentat les línies que podem veure a continuació:
[php num=268]
//function for the Admin GUI
function igSynHilite_GUI() {
global $user_level, $igWpVersion;
get_currentuserinfo();
//if user is not an admin equalling/above level 8, then don’t give any GUI
/*
if ($user_level < 8) {
?>
You are not a LEVEL 8 or above USER &
hence you cannot configure iG:Syntax Hiliter. If you are a LEVEL 8 or above USER,
then please Logout & Login again.
“); ?>
BLOG_HOME/wp-content/plugins.
Per cert, el look’&’feel del plugin és el que podeu veure en el codi que hi ha aquí dalt.
Reading time: 4 – 6 minutes
Aquest matí l’Alfredo m’ha informat que reddit ha obert el seu codi. Doncs bé després de mirar-me cada un dels components que ha explicat que esta usant m’ha faltat temps per passar-me per cada una de les pàgines web de les aplicacions per mirar-me a veure què tal. A continuació ús faig una llista del que més destaco, obviament són les aplicacions més inusuals i menys conegudes.
S’ha de reconeixer que han fet molt bones eleccions aquesta colla, a més s’ha demostrat que són realment escalables i que la seva disponibilitat és envejable. Un bon exemple de com fer les coses bé i senzilles des del principi. La gent de twitter en podrien prendre bona nota. Si ús fa il·lusió un dia d’aquests ús explicaré les meves idees de com fer que twitter sigui molt escalable i no s’enfosi amb els 2M d’usuaris que té diariament, la qual cosa no em sembla cap exageració amb un bon disseny darrera segur que en Pau pateix molt més amb els seus milions de megues a indexar diarimant.
Reading time: 4 – 6 minutes
gSOAP, després de perdre-li la pista durant molt de temps aquesta llibreria de C i C++ crec que és la millor de codi obert i GPL que he trobat. Així doncs, ús la vull recomenar. El nom ve de “SOAP generator” i el va fer un professor, la versió 1.0 va sortir l’any 1999, per tant, podriem dir que l’eina esta més que provada si tenim en compte que va per la versió 2.7.1 que va sortir al gener del 2008.
Per entendre una mica que ofereix aquest toolkit esta molt bé fixar-se en aquest parell de gràfics que donen una visió de l’eina quan l’usem com a servidor SOAP:
i com a client SOAP:
Si haguessim de fer una llista de funcionalitats més detallada i tècnica em quedaria amb la que ofereix la pàgina de l’aplicació:
Reading time: 4 – 6 minutes
Aquest cap de setmana en Marc i jo varem ser al Citilab de Cornellà de Llobgregat, no massa lluny de les oficines de movilpoint al primer Barcelona phpWorkShop. S’ha de reconeixer que les instal·lacions del recinte del Citilab estan molt bé i que jo diria que és un d’aquells llocs que et fan sentir orgullós de veure com evoluciona el ‘submón’ que representa, de fet, diria que aquest mural del Citilab té un bon recull de ‘parauletes’ que descriuen on transcorren moltes hores de la meva vida:
Pel que fa les conferencies del phpWorkshop durant el matí varem assistir a la:
i a la tarda a:
L’última conferència sobre XSS es realitzava a la mateixa sala i com que ja portavem tot el dia al Citilab varem decidir marxar. Ja que era molt difícil disfrutar-la en aquelles condicions. Tot i així he de posar una molt bona nota a l’organització de l’event. Malgrat l’ensurt que em van donar el dijous amb un email dient que no havia fet l’ingrés dels diners de l’event quan això no era així. Però finalment tot va acabar en això, un ensurt. A veure si l’any que ve podem repetir l’experiència i si a partir d’ara m’animo a disfrtuar més d’aquest gran espai que és el Citilab.
Reading time: 1 – 2 minutes
Després de molt de temps usant Trac, des de movilpoint hem hagut de deixar-lo d’usar per les seves limitacions i l’hem substituit per les eines que descric en aquest podcast:
Després dels enllaços demanar-vos disculpes per l’allargada d’aquest podcast però crec que valia la pena repassar el perquè de tot plegat i les avantatges i inconvenients. Sobretot si voleu aclarir qualsevol concepte o resoldre dubte deixeu comentaris i els respondré en molt de gust.
[display_podcast]
Reading time: < 1 minute
Aquest post va dedica al Marc. Finalment i quan ja no ho buscava he trobat el que buscava aquest matí. Com en un sol apt-get puc instal·lar el indispensable per poder compilar coses en una ubuntu recent instal·lada:
apt-get install linux-headers-`uname -r` build-essential
Reading time: 1 – 2 minutes
Malgrat fa molt de temps que no programo amb PHP ‘a pel’, és a dir, sense passar per Symfony ahir l’Albert em va fer saber que s’ha currat una llibreria en PHP que permet mostrar dades de forma paginada amb la usabilitat que ens dona AJAX i que és senzillíssima d’usar. Si no disposeu d’un framework que ús ofereixi una solució decent a aquest problema la solució de l’Albert és molt elegant i decent, ús la recomano.
accTable Project: lliberia PHP amb suport d’AJAX per mostrar dades paginades, feta per l’Albert Coronado.
Albert, la meva recomanació seria que li donessis la forma de plugin i l’elavoressis per diferents frameworks, per exemple, per Symfony.
IMPORTANT correcció: perdoneu l’errada però la llibreria és purament AJAX, o sigui, JavaScript obviament es pot usar igual en PHP que en qualsevol altre llenguatge. Demano disculpes per l’errada.