dilluns, de maig 24, 2010

Postfesta, PFC i desanim general

Hola, torno als posts més personals estil diari que vaig fer durant un temps, però sembla que em vaig cansar. Necessito redefinir seriosament aquest bloc d'una vegada i no se com... però anem al apunt en sí.

Aquest apunt crec que el faig per desfogar-me més que per un altre cosa.

Començo pel cap de setmana. Aquest cap de setmana l'ha passat a València. Allà es celebrava la Festa Lúcida, la festa de presentació de la nova versió d'Ubuntu, la lucid, per part de la comunitat catalana d'ubuntaires. Era la primera vegada que es feia la festa de presentació fora del principat i tot i que no es pot dir que va ser tot un èxit, per petits detalls, va estar prou bé. Estar rodejat de frikis tot el dia sempre es divertit. Vaig fer un munt de fotos que trobareu al meu flickr, com sempre. A més, aquest matí he canviat la llicencia que li assigna flickr a les meves fotos per defecte. A partir d'ara, incloses aquestes fotos de la festa, les fotos tindran una llicencia menys restrictiva dins de les creative commons. Bàsicament la nova es diferencia de la que utilitzava fins ara en que ara també permeto l'us comercial de les meves fotos.

I acabat el cap de setmana, tornem a la dura realitat del dia a dia. Aquest matí, mentre pujava les fotos, m'he adonat que a tornat a aparèixer un hot pixel al sensor de la càmera... amb aquest... ja he perdut la compta... Estic pensat en vendre-la i comprar-me'n un altra seriosament...

Però això només es un afegit més al causant del meu desamin general. El PFC estreny molt ja... El ien està horriblement car, com mai a la seva història... El volcà, que sembla que ha parat, però jo crec que més aviat està agafant forces per l'agost... I alguna cosa més fa que estigui bastant xafat i que no tingui quasi cap il·lusió pel viatge d'aquest estiu, viatge pel que en molts altres moments estaria donant salts d'alegria...

Bé, doncs trobareu les fotos de la festa al meu flickr i si voleu veure les del crazy, al seu picassa (per no acabar amb aquest ambient tant depressiu).

PD: M'ha arribat la figma de la Marisa, però la meva càmera torna a tenir hot pixels... tampoc hauria de perdre el temps...

Marisa figma arrived :3

dimecres, de maig 05, 2010

Perquè la decoració de les finestres sí s'hauria de fer al client

Aquesta setmana, en Mark ens ha deixat veure al seu bloc quines són les idees que li rondaven pel cap per aprofitar la part de la dreta de la finestra. Sembla que en general és una idea que ha agradat bastant i no ha passat allò tant típic de quan la gent veu una cosa nova, tothom se li tira a sobre del que ho proposa amb un: "però que fas! Com ens pots canviar això que ho hem estat fent així tota la vida encara que sigui la forma més estúpida de fer-ho!".

Entre totes les coses que explica al seu apunt, hi ha una que si que ha aixecat una mica de polèmica, tot i que no és imprescindible per tal d'implementar la seva idea. I aquesta és la proposta de realitzar la decoració de les finestres a la pròpia aplicació i no al gestor de finestres.

Just després d'aparèixer l'apunt d'en Mark, va aparèixer un altre apunt explicant els motius de per què no s'hauria de fer la decoració de les finestres a l'aplicació. Doncs la meva opinió es totalment contraria. Jo crec que la decoració de les finestres sí que s'hauria de fer a la banda del client, de l'aplicació, i no al gestor de finestres.

S'expliquen moltes coses en aquest apunt. Que no hi haurà consistència entre l'aspecte d'aplicacions llavors o que no es podrà canviar de tema fàcilment, que les aplicacions decorades al client donen problemes i que no podran tenir ombres (amb kwin), etc.

Tot això no crec que sigui cert o solucionable fàcilment. Primer de tot, que la decoració de la finestra es faci al client no implica que cada aplicació faci la seva i que no es pugui tenir un tema, fàcilment intercanviable, per l'aspecte d'aquesta que mantingui la consistència entre totes. O es que ara l'aspecte de les aplicacions GTK+ són inconsistents entre elles? No, oi? Totes fan servir el mateix tema. I sí, tot es dibuixa a l'aplicació.

La meva proposta seria la següent: que GTK+ passi a dibuixar la decoració de la finestra també. GTK+ ja estableix comunicació amb el gestor de finestres. Mitjançant aquesta API pots indicar ja si vols iniciar l'aplicació maximitzada o la vols moure a una determinada posició, per exemple. Llavors l'únic que caldria es implementar la part de dibuixat, que que seria? Doncs exactament com fa Metacity o Mutter, o com fa GTK+ amb els seus temes, llegir el tema de decoració de finestres seleccionat al sistema i dibuixar. Vale, però, això implicaria fer modificacions a les aplicacions? La meva resposta: No. Per defecte, si no se li especifica res, GTK+ dibuixa el tema de la finestra tal com ho faria Metacity o Mutter. De fet, a GTK+ ja li pots dir si vols la finestra sense vores, llavors la dibuixaria sense vores.

Fins aquí, on es la inconsistència? On són les dificultats de canvi de tema? On són les grans reimplementacions a les aplicacions? Per defecte tot llegeix del mateix tema, igual que sempre, mantenint la consistència entre l'aspecte de les aplicacions. Però amb grans avantatges. El primer és que tota la finestra es pot dibuixar d'un sol cop. I el segon és que les aplicacions ho tindrien molt més fàcil per accedir a aquests espai molts cops perdut. Això es podria fer estenent l'API GTK+ per a que proporcioni aquesta funcionalitat.

Els altres problemes que es veuen ja semblen més propis d'una implementació deficient de kwin... Si Chrome dona problemes, potser es més aviat per que deu ser bastant peculiar en el seu funcionament, no per que la decoració es faci a l'aplicació. I si kwin no sap dibuixar ombres a les finestres que es decoren al client, que s'ho faci mirar...

D'altra banda, aquesta idea de passar a fer la decoració de les finestres a l'aplicació no és invenció d'en Mark. Ja fa un temps que l'havia vist en un document de referencia sobre el disseny del GNOME Shell. Cito d'aquest document:

This frame was historically not drawn by the application and as a result appeared to be
different from the rest of the window, both in visual appearance and behavior. There are a
few reasons why we may wish to reconsider this approach.

  • Windows may request that they not be provided decorations
  • Allow decorations to be drawn by the application in order to achieve a consistent look across the application
  • Minimize use of decorations so that they don't distract from the focal area
  • Allow the rendering system to draw the entire window at once

És un document molt interessant, que quan l'estava buscant per escriure aquest apunt, he vist que ha crescut considerablement des de el cop que me'l vaig llegir. Altres coses molt interessants que diu i amb les que estic plenament d'acord són que no hi hauria d'haver diferencia clara de color entre la barra de títol de l'aplicació i el cos de l'aplicació. Això donaria més l'aspecte de la finestra de l'aplicació com a bloc i no com a dos parts com és ara. I un altra és que donat que no hi ha diferencia entre la barra de títol i l'aplicació, l'acció de moure la finestra s'hauria de poder fer des de qualsevol punt lliure de l'aplicació. Per mi, molt més intuïtiu que el sistema actual.I així unes quantes coses més. Si teniu temps, no dubteu en llegir-lo.

Edito: Se m'havia oblidat d'enllaçar el document.