Projecte Android – preparar l’entorn
Amb un amic, ens hem proposat entrar en el món del desenvolupament d’aplicacions per a mòbils. La idea és començar fent una aplicació per a telèfons mòbils Android, però tenint al cap altres plataformes com iPhone/iPad (perdó, iOS).
Ens han parlat de les llibreries phonegap, que permeten fer aplicacions que posteriorment es puguin executar en diferents plataformes. Així és com ho expliquen ells:
Build apps in HTML and JavaScript and still take advantage of core features in iPhone/iPod touch, iPad, Google Android, Palm, Symbian and Blackberry SDKs
De tota manera, aquestes llibreries només ens ajuden a crear una aplicació per una plataforma concreta. L’avantatge és que després podrem re-utilitzar bona part de l’aplicació en una altra plataforma si fem servir la mateixa llibreria.
Per començar, doncs, ens centrarem en desenvolupar una aplicació per la plataforma Android utilitzant la llibreria phonegap. Què cal fer?
- Instal·lar l’entorn de desenvolupament eclipse. En el cas d’Ubuntu, està al repositori.
- Descarregar les eines de desenvolupament d’Android (Android SDK) seguint aquestes instruccions. Inclouen la instal·lació del ADT Plugin for Eclipse. I també la descàrrega de la documentació i la plataforma Android 2.1 (Adding SDK components).
- Començar a desenvolupar amb phonegap utilitzant aquestes instruccions.
Altres punts interessants que haurem d’analitzar són:
- com compartir el codi font de l’aplicació que anem desenvolupant. Per exemple, amb una eina com CVS.
- com publicar una aplicació a l’App Market.
Canviar la paleta d’OpenOffice
La selecció de colors a OpenOffice és clarament pitjor a la de M$ Office, però es tracta d’un simple tema de configuració. En aquesta pàgina expliquen com adequar la paleta de colors i en faciliten una de prou útil.
The colors included are too basic so they are not too useful (at least for the things I do). Evenmore, the colors don’t seem to be ordered at all so it’s not easy to find an specific color sometimes. That’s why I decided to change the default color palette and started using another more useful one.
Change default color palette in OpenOffice « i.uve.a.ene.
Una curiositat: el canvi de paleta s’ha de fer des d’OpenOffice Draw, i després ja afecta als altres programes de la suite.
Projecte Festes – siluetes amb transparències (4)
En aquest apunt hi podeu trobar com convertir un vídeo en un grapat d’imatges (els seus frames), i després de modificar aquests frames, tornar a muntar el vídeo.
L’eina principal per dur a terme aquestes operacions és ffmpeg. Principalment permet convertir entre formats d’aquesta manera (ja interpreta les extensions):
ffmpeg -i in.avi out.mpg
Per convertir un vídeo en un grapat d’imatges, d’una mida determinada, es pot utilitzar la següent comanda, que genera dins la carpeta img els fitxers img-001.png, img-002.png, img-003.png, etc. (un per cada frame)
ffmpeg -i play.mov -s 800×600 img/img-%03d.png
Per convertir un grapat d’imatges en un vídeo, es pot utilitzar la següent comanda (on l’opció r permet establir el frame rate o número d’imatges per segon):
ffmpeg -r 10 -i img/img-%03d.png play.avi
I amb això, ja tenim tots els ingredients! Demà, el vídeo resultant…
Projecte Festes – silueta amb transparències (3)
En aquest apunt, hi podeu trobar com posar totes les siluetes anteriors sobre una imatge de fons.
L’eina bàsica per dur a terme aquesta tasca és la comanda composite disponible en Ubuntu. Aquesta comanda també pertany al paquet imagemagick.
La comanda composite ens permet combinar dues imatges en una.En aquest cas, és clau haver definit la transparència del fons per poder superposar les siluetes.
composite sil029.png fons2.png comp1.png
Addicionalment, l’opció geometry ens permet canviar la mida de la imatge que estem superposant, i la seva posició:
composite -geometry 320×240+500+380 sil029.png fons2.png comp2.png
I per executar aquesta comanda sobre totes les imatges, només cal recórrer al mecanisme preferit per cadascú per executar una mateixa comanda sobre diferents fitxers. En el meu cas:
ls sil*.png | xargs -n1 sh -c ‘composite -geometry 1536×1152+0+300 $0 fons.png comp$0′
Projecte Festes – siluetes amb transparències (2)
En aquest apunt hi podeu trobar com automatitzar el pas anterior per fer-ho a moltes imatges alhora. Per resoldre aquest repte, m’he inspirat únicament d’aquest apunt de The Pasadena Ruby Brigade.
L’eina bàsica per al tractament massiu d’imatges és la comanda convert disponible en Ubuntu. Aquesta comanda pertany al paquet imagemagick.
La comanda convert ens permet definir un color com a transparent. Podem utilitzar tant els components RGB del color, com una sèrie de colors predefinits:
convert -transparent grey57 img1.png sil-simple.png
convert -transparent “rgb(145,145,145)” img1.png sil-simple.png
Podem obtenir la llista de colors predefinits amb la següent comanda:
convert -list color
I podem obtenir els components rgb del color de fons amb l’eina comptagotes de GIMP.
Si bé seria fàcil executar aquesta comanda sobre un munt d’imatges, la veritat és que els resultats no són tan bons com es podria esperar.
Afortunadament, la comanda convert ens proporciona el paràmetre fuzz per donar un cert marge d’error o de tolerància al filtre anterior. Podem, per exemple, executar les següents comandes amb els resultats que es veuen a continuació:
convert -fuzz 3% -transparent grey57 img1.png sil-fuzz3.png
convert -fuzz 11% -transparent grey57 img1.png sil-fuzz11.png
Una altra opció és utilitzar la directiva floodfill, que va convertint a transparent totes les zones connexes i de colors més o menys similars. cosa que en alguns casos dona millors resultats.
convert img1.png -bordercolor grey57 -border 1×1 -matte -fill none -fuzz 11% -draw ‘matte 1,1 floodfill’ -shave 1×1 sil-floodfill.png
Aquestes comandes es poden executar fàcilment sobre un munt d’imatges, per aplicar-los la mateixa transformació alhora:
convert img%03d.png -bordercolor grey57 -border 1×1 -matte -fill none -fuzz 11% -draw ‘matte 1,1 floodfill’ -shave 1×1 sil%03d.png
Projecte Festes – siluetes amb transparències (1)
En aquest apunt, hi podeu trobar com definir un color transparent en una imatge (el color de fons), de manera que la imatge només sigui la silueta de la figura (l’home del temps)
L’eina que tinc més a mà per fer aquesta tasca és el GIMP. I la foto per la qual m’agradaria obtenir només la silueta del playmobil és la següent:
En aquest enllaç s’expliquen els passos a seguir per definir una transparència en aquesta imatge. I inclou captures de pantalla dels diferents passos a seguir.
En aquest enllaç, també s’expliquen els passos de manera més resumida.
(…) hay que ir al dialogo de las capas (boton derecho sobre la imagen -> dialogos -> capas). En principio solo existirá una capa, damos con el botón derecho sobre esta y seleccionamos “Añadir canal alfa”, a continuación podemos seleccionar la herramienta goma de borrar y arrastrar el raton por cualquier zona de la imagen, se mostrarán unos cuadrados que corresponden al color transparente.
Jo només hi afegiria que, per facilitar la feina, es pot fer servir l’eina de seleccionar per color.
El resultat que podem obtenir d’aquest procés és el següent:
Malauradament, aquest procés manual que dona resultats molt bons és inabordable per tots els frames d’un vídeo i, per tant, haurem de buscar una manera automàtica de fer-ho.
Projecte Festes – siluetes amb transparències (0)
A més a més de fer una animació amb la tècnica stop motion i playmobils, també voldria aprofitar aquest projecte per aprendre algunes tècniques d’edició de vídeo, efectes especials, etc.
L’efecte especial escollit ha estat el que podríem anomenar de l’home del temps: aquella tècnica segons la qual els homes del temps parlaven davant d’un fons verd i els tècnics podien posar-los qualsevol imatge al darrera.
Per aconseguir aquest efecte, els passos que he seguit són els següents:
- aprendre com definir un color transparent en una imatge (el color de fons), de manera que la imatge només sigui la silueta de la figura (l’home del temps)
- aprendre com automatitzar el pas anterior per fer-ho a moltes imatges alhora
- aprendre com posar totes les siluetes anteriors sobre una imatge de fons.
- aprendre a convertir un vídeo en un grapat d’imatges (els seus frames), i després de modificar aquests frames, tornar a muntar el vídeo.
FreeNX
FreeNX
NX és una tecnologia que permet accedir a escriptoris gràfics X11 (el fonament dels escriptoris gràfics de Linux) remotament. Està dissenyat per funcionar còmodament amb un ample de banda reduït i comunicacions lentes.
Per treballar amb la tecnologia NX, el primer que s’ha de fer és instal·lar el servei a l’ordinador que actuarà com a servidor. En aquest cas, una màquina amb Ubuntu Linux. Els passos a seguir:
- Afegir un repositori on hi podem trobar aquest programa:
- deb http://free.linux.hp.com/~brett/seveas/freenx feisty-seveas freenx
- deb-src http://free.linux.hp.com/~brett/seveas/freenx feisty-seveas freenx
- Instal·lar el paquet freenx, que ja ens apareix al repositori.
Fonts:
Canvi periòdic del fons de pantalla amb Ubuntu
He muntat un petit script que em permet canviar aleatòriament el fons de pantalla amb Ubuntu. El què fa és el següent:
n=`find /usr/share/backgrounds/ -name \*.* | wc -l`
((n=RANDOM%n))
((n=n+1))
gconftool -t str -s /desktop/gnome/background/picture_filename “`find /usr/share/backgrounds/ -name \*.* | sed -n ${n}p`”
Aquí hi teniu el codi sencer.
n=`find /usr/share/backgrounds/ -name \*.* | wc -l`
((n=RANDOM%n))
((n=n+1))
gconftool -t str -s /desktop/gnome/background/picture_filename “`find /usr/share/backgrounds/ -name \*.* | sed -n ${n}p`”
He guardat aquest codi en un fitxer anomenat wallpaper.sh i he afegit la comanda al planificador (cron):
$ crontab -l
# m h dom mon dow command
0 8,20 * * * ~/bin/wallpaper.sh










1 comentari