Samarreta 2009

June 17th, 2009

Una vegada més a TECOB hem volgut preparar una nova tongada de samarretes per a l’estiu. Aquesta vegada però, el procés de disseny i elaboració no s’ha allargat tant com l’any passat (per sort!).

Enguany hem volgut partir de tres premisses ben diferents: samarreta negra, i logotip blanc i petit. Això ens ha permès anar per feina, quedant-nos només amb les següents propostes:

T-Shirt 1 T-Shirt 2 T-Shirt 3

Finalment, i després d’una llarga deliberació del consell de savis de TECOB, hem decidit per unanimitat tirar endavant la tercera proposta:

T-Shirt 3

Hem tornat a fer una tirada ben llarga, amb la novetat que també hem fet talles per noies. Així que qui en vulgui alguna (o dues ;) només ha de passar-se per les oficines centrals i agafar-les. I si us vau despistar l’any passat, podeu endur-vos la d’enguany i la de l’anterior, que segur que encara ens en queda alguna.

Introducció al homebrew (3 de 3)

April 5th, 2009

En aquest tercer i darrer tutorial instal·larem un emulador de Nintendo DS que ens servirà per comprovar els resultats de les nostres aplicacions sense la necessitat de fer servir la consola portàtil.

Tal i com vam comentar en la primera part, el cartutx R4 ens servirà per carregar el nostre homebrew a la DS. No obstant, això només és pràctic una vegada els programes estan acabats i no pas pels que encara s’estan desenvolupant. Més que res per que cada vegada que volguéssim provar el programa en la consola hauríem de compilar, gravar el programa a l’R4, encendre la DS i observar els resultats. Per això instal·larem un emulador, el qual ens permetrà veure els resultats en el nostre ordinador de forma immediata, sense la necessitat d’haver de gravar el programa a l’R4 i encendre la DS.

Per acabar també instal·larem i configurarem un IDE que enllaçarem amb l’emulador i que ens ajudarà al moment d’escriure els nostres programes.

3.1 Instal·lació de l’emulador

Instal·larem l’emulador DeSmuME que per sort es pot instal·lar des dels repositoris d’Ubuntu escrivint una sola línia en el terminal:

$ sudo aptitude install desmume

$

3.2 Instal·lació i configuració de l’IDE

Com a entorn de desenvolupament instal·larem un eclipse, que tot i que en un principi està pensat per a desenvolupar projectes en Java, podem trobar versions preparades per a programar projectes en C i C++.

Obrim un navegador i descarreguem en la nostra home l’eclipse IDE per C/C++ des d’aquesta pàgina. Un cop descarregat obrim una sessió de terminal i el descomprimim:

$ tar -zxvf eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz
$

Des del navegador d’arxius anem a la carpeta eclipse i executem el programa (és necessita tenir la màquina virtual de Java per fer-ho!). Al ser la primera vegada que l’executem ens demanarà de crear un directori de treball en la nostra home a on s’emmagatzemaran els projectes. Podem deixar tranquil·lament el nom el que ens proposa per defecte.

Acte seguit,

  • Tanquem la pestanya de Welcome
  • Des del menú anem a File -> New -> C Project

Screenshot 01

  • Li donem un nom al projecte (per exemple prova)
  • A tipus de projecte seleccionem Makefile -> empty project
  • Cliquem el botó Finish

Screenshot 02

  • Des del menú anem a File -> Import…
  • Seleccionem General -> File System
  • Cliquem el botó Next
  • Cliquem el botó Browse…
  • Busquem i seleccionem la carpeta template de les PAlib
  • Cliquem el botó Finish

Screenshot 03

  • Tornem al menú i cliquem File -> Properties
  • Seleccionem la categoria C/C++ Build
  • Anem a la pestanya Behaviour
  • Substituïm tots els camps all per build
  • Cliquem el botó Apply

Screenshot 04

  • Seleccionem la categoria C/C++ Build -> Build Variables
  • Cliquem l’opció Show system variables
  • Fem doble clic sobre les variables DEVKITPRO, DEVKITARM i PAPATH
  • Cliquem el botó Apply

Screenshot 05

  • Seleccionem la categoria C/C++ General -> Path and Symbols
  • Anem a la pestanya Includes
  • A Languages cliquem l’opció GNU C
  • Cliquem el botó Add…
  • Cliquem el botò d’File system…
  • Busquem i seleccionem la carepta lib/include/nds de les PAlib
  • Cliquem el botó Ok
  • Cliquem el botó Apply
  • Repetim el procés per al llenguatge GNU C++
  • Cliquem el botó Ok

Screenshot 06

3.3 Enllaçar l’eclipse amb l’emulador

Arribat en aquest punt només ens queda enllaçar l’entorn de desenvolupament amb l’emulador que hem instal·lat en l’apartat 3.1.

  • Des del menú anem a Run -> External Tools
  • Seleccionem External Tools Configurations…

Screenshot 07

  • Seleccionem Program
  • Fem clic amb el botó dret sobre Program
  • Creem una nova configuració

Screenshot 08

  • A Name podem posar DeSmuME
  • A Location posem /usr/games/desmume
  • A Working Directory cliquem Browse Workpsace…
  • Seleccionem el projecte i cliquem OK
  • A Arguments posem prova.nds (”nom_projecte” + “.nds”)

Screenshot 09

  • Cliquem el botó Apply
  • I per últim cliquem el botó Run

Això generarà un fitxer prova.nds (que posaríem a l’R4) dins la carpeta del projecte del nostre directori de treball, que l’emulador recuperarà com a paràmetre i executarà:

Screenshot 10

Ara només quedaria adquirir uns bons llibres de C, algun altre de videojocs, estudiar la gran varietat d’exemples que venen amb les PAlib, i començar a programar. Happy coding!

Enllaços per començar amb les PAlib

PAlib - Wiki
PAlib - Fòrums
Nintendo DS Development Tutorial :: PAlib

Fonts consultades

Toshen Project Devblog - Configurer Eclipse
PlayerAdvance.org - Utiliser Eclipse comme IDE

Introducció al homebrew (2 de 3)

April 1st, 2009

En aquest segon tutorial instal·larem en el nostre sistema les llibreries necessàries per poder desenvolupar aplicacions i jocs per a la nostra Nintendo DS.

Abans però, caldrà que tinguem instal·lats un parell de paquets els quals ens permetran compilar programes i descomprimir algun dels fitxers que descarregarem més endavant. D’aquesta manera, obrirem una sessió de terminal i executarem les següents comandes:

$ sudo aptitude install build-essentials

$ sudo aptitude install unzip

$

Una vegada fet això ja podrem instal·lar les llibreries específiques per al desenvolupament de la Nintendo DS: les devkitARM i les PAlib.

Les devkitARM són unes llibreries que formen part del projecte devkitPro i que han estat pensades per compilar programes per a dispositius amb processadors ARM (com ara la Nintendo DS, la Game Boy Advance o la GP2X). Treballen a un nivell baix de hardware, pel que escriure un joc des de zero fent servir aquestes llibreries pot ser força tediós. Es per això que també instal·larem les PAlib, unes segones llibreries que estan just per sobre les devkitARM (no treballen a un nivell tant baix de hardware) i que ens facilitaran la feina a l’hora de crear els nostres programes.

És important comentar que les PAlib són una mica antigues i només funcionen amb les versions del devkitARM que descarregarem a continuació. Si instal·léssim versions més noves podríem trobar-nos amb problemes a l’hora de compilar i els nostres programes no funcionarien.

2.1 Instal·lació de les llibreries devkitARM

Obrirem el navegador i descarregarem aquest fitxer en la nostra home. Quan s’hagi descarregat obrirem una altra vegada una sessió de terminal i crearem una carpeta anomenada devkitpro en la nostra home, hi posarem el fitxer que acabem de descarregar i el descomprimirem:

$ mkdir devkitpro
$ mv devkitARM_r21-linux.tar.bz2 devkitpro/
$ cd devkitpro/
devkitpro$ bzip2 -dc devkitARM_r21-linux.tar.bz2 | tar -xv
devkitpro$

Seguim treballant des del terminal per descarregar un parell de llibreries més, les quals desarem dins d’una carpeta que anomenarem libnds:

devkitpro$ mkdir libnds
devkitpro$ cd libnds/
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc libnds-20071023.tar.bz2 | tar -xv
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc dswifi-0.3.4.tar.bz2 | tar -xv
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc libfat-nds-20070127.tar.bz2 | tar -xv
devkitpro/libnds$

2.2 Instal·lació de les llibreries PAlib

Descarreguem les PAlib i les descomprimim dins la carpeta devkitpro:

devkitpro/libnds$ cd ../
devkitpro$ wget aquest fitxer
devkitpro$ unzip PAlib_080823_Archive.zip
devkitpro$

Un cop arribat en aquest punt ja tindrem les llibreries instal·lades en una estructura de directoris semblant a la següent:

/
|__ home
     |__ la_meva_home
          |__ devkitPro
               |__ devkitARM
               |__ libnds
               |__ Other Libs
               |__ PAlib

2.3 Variables d’entorn i prova de compilació

Ara només queda definir unes variables d’entorn i provar de compilar un dels exemples que venen amb les PAlib per comprovar que tot s’ha instal·lat satisfactòriament. Per fer-ho obrim el fitxer .bashrc situat a la nostra home (el fitxer és ocult!), i afegim les següents línies al final del fitxer:


# devkitPro
export DEVKITPRO=$HOME/devkitpro
export DEVKITARM=$DEVKITPRO/devkitARM
export PAPATH=$DEVKITPRO/PAlib/lib

Per acabar refresquem les variables d’entorn i provem de compilar un dels exemples des del terminal:

$ source .bashrc
$ cd devkitpro/PAlib/examples/Text/Normal/HelloWorld
devkitpro/PAlib/examples/Text/Normal/HelloWorld$ make

built … HelloWorld.ds.gba
dsbuild 1.21 - Oct 23 2007
using default loader
devkitpro/PAlib/examples/Text/Normal/HelloWorld$

Si veiem que la comanda make no torna ningun error i acaba amb les línies de “dsbuild 1.21 - Oct 23 2007″ i “using default loader”, voldrà dir que les llibreries s’han instal·lat correctament. Per contra, si observem algun error o avís, i un resultat diferent a l’esperat, voldrà dir que alguna cosa s’ha fet malament i haurem de repassar el procés d’instal·lació.

Fonts consultades

Wiki devkitPro:Getting Started/devkitARM
Wiki PAlib: Installing Your Dev Environment
Dev-Scene.com
ElOtroLado.net

Introducció al homebrew (1 de 3)

March 31st, 2009

Tant el Franc com jo hem parlat vàries vegades en els nostres blogs sobre aplicacions homebrew, les quals permetien ampliar les funcionalitats de les nostres Nintendo DSs amb programes de VeuIP, de missatgeria instantània i navegadors d’Internet, entre d’altres.

És per això que m’he engrescat a escriure una sèrie de posts en els quals aprofundirem més en això del homebrew, començant per definir-lo i acabant per muntar un entorn desenvolupament per a la distribució basada en GNU/Linux, Ubuntu.

1.1 Definició

S’entén per homebrew el conjunt d’aplicacions i jocs desenvolupats per “aficionats” de forma casolana per a un dispositiu en concret, normalment una consola de videojocs.

Teòricament és necessari adquirir llicències i entorns de desenvolupament cars per realitzar aplicacions i/o jocs per als diferents sistemes d’entreteniment. No obstant, gràcies a l’esforç de molts usuaris i de comunitats molt ben assentades es pot programar per a gairebé qualsevol dispositiu, sense la necessitat d’adquirir aquests entorns de desenvolupaments.

1.2 Consoles a considerar

Tal i com acabem de dir és poden desenvolupar aplicacions homebrew per a gairebé qualsevol consola. Per fer-ho, sovint s’han de manipular aquests dispositius (ja sigui per hardware o per software) per a que acceptin programes no oficials. No obstant, algun d’aquests dispositius no requereix ninguna modificació i n’hi ha prou amb un altre producte que permeti introduir els programes casolans de forma còmoda a la consola.

Nintendo DS
Nintendo DS Lite
La portàtil de l’empresa japonesa que es caracteritza per tenir dues pantalles (una d’elles tàctil), micròfon i Wi-Fi. Va ser llençada al mercat a principis de 2004 i en breu sortirà una tercera versió amb pantalles una mica més grans, dues càmeres de vídeo i un slot per a targetes SD.

Tot i que Nintendo no dóna suport oficial al homebrew per a aquesta consola (ni per ninguna), n’hi ha prou amb un cartutx com ara l’R4 per executar aplicacions i jocs homebrew en aquesta portàtil.

GP2X
GP2X
La consola open-source coreana basada en GNU/Linux i pensada per a executar homebrew.

Funciona amb targetes SD i malgrat que a nivell de hardware es inferior que la DS, té un aspecte molt positiu per al homebrew: el mateix fabricant facilita diversos entorns de desenvolupament per tal que els programadors hi facin les seves aplicacions i/o jocs sense cap tipus de restriccions.

Semblaria lògic, per tant, dedicar els següents posts a muntar l’entorn per a la GP2X. Tanmateix, ho acabarem fent per a la Nintendo DS ja que:

  • Des del punt de vista de hardware la DS és més interessant (té Wi-Fi, micròfon, acceleració 3D, pantalla tàctil, etc).
  • La bateria de la DS dura molt més que el que puguin durar unes piles bones en la GP2X.
  • La DS està molt més estesa que la GP2X.
  • Muntar un entorn de desenvolupament per a la DS en Ubuntu és, si fa no fa, igual de costós que per a la GP2X.

Fonts consultades

Wikipedia: Definició de homebrew (anglès)
Wikipedia: Definició de homebrew (castellà)
Wikipedia: Nintendo DS
Wikipedia: GP2X
Comunitat espanyola de GP2X
Revista digital Alt Magazine

Easy Peasy vs. Eeebuntu

February 6th, 2009

L’altre dia vaig descobrir per casualitat l’Eeebuntu, una distribució GNU/Linux que a l’igual que l’Easy Peasy està pensada per al portàtil d’ASUS EeePC. Em va atraure l’atenció veure que hi ha tres versions d’Eeebuntu: la base (instal·lació lleugera amb un mínim de programes), l’estàndard (instal·lació completa) i la netbook (semblant a l’estàndard però amb el Netbook Launcher).

El fet de veure que hi havia una distribució que de base no porta el Netbook Launcher em va agradar, així que vaig decidir provar-la i donar-li una oportunitat.

Porto ja uns dies provant les dues distribucions (l’Easy Peasy i l’Eeebuntu Standard), i tot i que ambdues es basen en una Ubuntu 8.10, hi ha algunes diferències significatives:

Easy Peasy

Easy Peasy

Nucli del sistema: 2.6.27-8-eeepc
Escriptori: Gnome 2.24.1
Suite ofimàtica: OpenOffice 3.0
Client de correu: Evolution 2.24.3
Missatgeria instantània: Pidgin 2.5.2
Navegador web: Firefox 3.0.5
Gestió d’imatges: Picassa
Reproductor de vídeos: Totem

Skype isntal·lat: sí
Compiz instal·lat: no
Webcam detectada: sí
Espai de disc ocupat per la instal·lació: 2,7G

Eeebuntu Standard

Easy Peasy

Nucli del sistema: 2.6.27-8-eeepc
Escriptori: Gnome 2.24.1
Suite ofimàtica: OpenOffice 2.4.1
Client de correu: Thunderbird 2.0.0.19
Missatgeria instantània: Pidgin 2.5.2
Navegador web: Firefox 3.0.5
Gestió d’imatges: F-Spot
Reproductor de vídeos: VLC

Skype isntal·lat: no
Compiz instal·lat: sí
Webcam detectada: sí
Espai de disc ocupat per la instal·lació: 2,5G

Bàsicament l’ús que li faig a l’EeePC és per navegar, per consultar el correu (a través del navegador), per missatgeria instantània, i puntualment per veure algun vídeo i xerrar per l’skype. Suposadament m’aniria bé tant una distribució com l’altra (l’Eeeubuntu no porta l’skype de sèrie però aquest es pot instal·lar molt fàcilment afegint els repositoris de medibuntu). No obstant, de moment m’estimo més utilitzar l’Eeeubuntu ja que no porta instal·lat el Netbook Launcher (no m’acaba d’agradar), i els programes no es maximitzen al moment d’executar-los (amb Easy Peasy sí es maximitzen i no m’hi acabo d’acostumar).

Ara que segurament la pròxima vegada que reinstal·li el sistema utilitzaré la base i no l’estàndard. D’aquesta manera estalviaré espai en disc, i evitaré desinstal·lar programes que porta l’estàndard i que difícilment utilitzaré.

Dissenyant un logo

January 30th, 2009

No fa gaire la distribució Ubuntu Eee (una distribució de GNU/Linux pensada per al portàtil Asus Eee), va decidir fer un canvi d’imatge i passar-se a dir Easy Peasy. El bo de l’assumpte va ser que el canvi d’imatge el van deixar a mans de la comunitat, permetent que la gent presentés els seus dissenys i les seves idees, amb l’al·licient de que el guanyador seria obsequiat amb un ultraportàtil de la marca taiwanesa.

El NaN em va animar a que presentés alguna cosa, i com que no acostumo a fer aquest tipus de tasques vaig pensar que seria interessant participar-hi. Així que basant-me en que el nom de la nova distribució seria Easy Peasy Lemon Squeezy, vaig fer alguns corquis abans de treballar el logo definitiu.

Sketch 1

Sketch 2

No obstant, vaig veure que alguns dels logos que ja s’havien presentat s’assemblaven lleugerament a alguns que havia pensat, pel que no vaig poder desenvolupar la idea que més m’agradava. Així que finalment vaig agafar el darrer disseny i després de perfilar-lo i aplicar-hi 4 colors vaig presentar la següent proposta:

Easy Peasy Logo

No es que n’estigui molt content de la proposta (la llimona em recorda més a una bola d’arbre de nadal) però tampoc va haver-hi temps per presentar res més. Tanmateix l’experiència va ser divertida i va servir per fer uns tipus de dissenys diferents als que acostumo a fer normalment.

Mozilla Add-Ons Workshop Madrid 08

December 17th, 2008

Spread Firefox

Aquest cap de setmana vaig assistir al Mozilla Add-Ons Workshop Madrid 08, un taller organitzat per Mozilla Europa, la Universitat Rey Juan Carlos i la gent de Mozilla Hispano. L’esdeveniment va tenir lloc al Medialab-Prado de Madrid, un hacklab orientat a la difusió de la cultura digital, situat a dos minuts de l’estació d’Atocha de la capital (ideal pels que hi arribàvem amb AVE).

El taller que va anar a càrrec de Paul Rouget (programador de Mozilla i European Technology Evangelist), va servir per introduir les diferents tecnologies que s’utilitzen en el desenvolupament de les extensions del navegador Firefox.

En Paul va començar explicant com funciona el navegador de Mozilla, així com els diferents llenguatges que utilitza el seu motor per interaccionar amb l’usuari i per mostrar els resultats per pantalla. Després d’això va passar a explicar un cas pràctic: una extensió de Firefox per a Tuenti que en Paul va desenvolupar per a l’ocasió.

Tot i durar menys de l’esperat la xerrada la vaig trobar força interessant i amena. No sembla massa complicat desenvolupar extensions per a Firefox, amb uns pocs coneixements de programació (una mica de JavaScript, CSS i XUL) ja es pot arribar a fer quelcom d’interessant. Sense anar més lluny en Paul va desenvolupar un senzill navegador en tant sols unes deu línies de codi.

Per acabar deixo un parell d’enllaços per a qui, al igual que jo, vulgui aprofundir més sobre les tecnologies que hi ha darrera d’aquest navegador:

- Mozilla Developer Central
- Mozilla Developer Center (anglès)
- Mozilla Developer Center (castellà)
- XUL Planet

Bomberman DS (Nintendo DS)

December 8th, 2008

Bomberman DS

Un altre joc de Nintendo DS que he acabat no fa gaire. No és que sigui un must have d’aquesta consola, però és que el vaig trobar a un preu molt econòmic i em va fer il·lusió comprar-lo per recordar l’època en què jugava al Dynablaster de PC.

Bàsicament hi ha dos modes de joc: història i batalla. El mode història és força senzill i no fa falta utilitzar totes les armes i poders per arribar al final. A més, hi ha moments on els enemics i els monstres finals es repeteixen al llarg dels diferents nivells, donant la sensació de que els de Hudson Soft no s’hi han esforçat gaire. Per contra el mode batalla es força més divertit, ja sigui jugant contra la CPU o contra d’altres jugadors.

Resumint: entretingut però amb poques novetats respecte al clàssic original.

Mario Kart DS (Nintendo DS)

December 7th, 2008

Mario Kart DS

No fa gaire que vaig arribar al final del Mario Kart DS, el joc de curses esbojarrades protagonitzat pels personatges insígnia de Nintendo. Força entretingut la veritat. No havia jugat abans a ningun altre joc d’aquesta mateixa saga i l’he trobat molt divertit, fent-me recordar per moments als dibuixos animats de les curses dels Autos Locos de Hanna-Barbera.

La mecànica és senzilla: anar guanyant campionats en diferents categories i anar descobrint personatges i vehicles nous al llarg de tots els circuits. Al final el nombre total de personatges (fins a 16) i vehicles que s’acaben obtenint és força correcte. Tanmateix, els circuits són sempre els mateixos per a totes les categories i acaba per cansar una mica. Per sort hi ha una altra modalitat de joc que consisteix en anar completant missions (proves contra-rellotge) que trenquen la dinàmica de les curses i fan que el joc sigui més entretingut.

Però el que més gràcia m’ha fet ha estat jugar contra d’altres oponents via Internet mitjançant la connexió WiFi de la consola. Està genial això de poder jugar contra gent d’altres indrets del món (déu n’hi do amb els japonesos!). Llàstima que només hi puguin jugar fins a 4 contrincants en aquesta modalitat (en “local” hi poden jugar fins a 8), que si no encara seria molt més divertit!

Sortida a Mont-roig del Camp

August 14th, 2008

Aquesta cap de setmana vam fer una sortida en BTT amb la Gisi i el Raulo fins a l’Ermita de la Mare de Déu de la Roca, una capella situada al cim d’un turó que queda prop de Tarragona.

L’itinerari va ser sortint des de Cambrils, passant per Mont-roig del Camp i arribant fins a l’ermita en qüestió. En total poc menys de 30 km (anar i tornar) que vam completar en unes tres hores tranquil·lament passejant, parant de tant en tant per beure o per fer alguna que altra fotografia.

El camí fins a Mont-roig és força entretingut. Un passeig per camins, barrancs i carreteres secundàries envoltades d’arbres que ajuden a que no castigui tant el sol mentre es recórrer al trajecte. Una vegada arribat al poble només queda creuar-lo i agafar una altra carretera secundaria que porta fins a l’ermita.

Un passeig molt “xulo” de fer que al ser tot per camins amb prou feines et pots arribar a creuar amb un parell de cotxes. A més és força senzill i l’únic tram difícil són els 4 últims quilòmetres que porten fins a l’ermita (sobretot l’últim tros on el pendent és brutal!). Per sort la panoràmica que ens trobem al final de l’excursió compensa la gran suada.

La veritat és que feia molt de temps que no m’ho passava tant bé anant en bici… tot i que val a dir que també feia molt de temps que no suava tant la samarreta per arribar a un lloc. Suposo que serà qüestió de fer més sortides i anar descobrint d’altres indrets del Baix Camp.

D'anada Mont-roig del Camp Centre BTT de Mont-roig del Camp

Mare de Déu de la Roca Vista panoràmica De tornada