<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sergisogas.com &#187; Programació</title>
	<atom:link href="http://www.sergisogas.com/category/programacio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sergisogas.com</link>
	<description>just another weblog</description>
	<lastBuildDate>Fri, 09 Jul 2010 08:54:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Introducció al homebrew (3 de 3)</title>
		<link>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-3-de-3/</link>
		<comments>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-3-de-3/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 15:04:12 +0000</pubDate>
		<dc:creator>sogas</dc:creator>
				<category><![CDATA[GNU / Linux]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Programació]]></category>

		<guid isPermaLink="false">http://www.sergisogas.com/?p=835</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>En aquest tercer i darrer tutorial instal·larem un <a href="http://en.wikipedia.org/wiki/Emulator" target="_blank">emulador</a> de Nintendo DS que ens servirà per comprovar els resultats de les nostres aplicacions sense la necessitat de fer servir la consola portàtil.</p>
<p>Tal i com vam comentar en la primera part, el cartutx <a href="http://www.sergisogas.com/2007/05/r4-revolution-for-ds/">R4</a> 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&#8217;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&#8217;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&#8217;haver de gravar el programa a l&#8217;R4 i encendre la DS.</p>
<p>Per acabar també instal·larem i configurarem un <a href="http://en.wikipedia.org/wiki/Integrated_development_environment" target="_blank"><em>IDE</em></a> que enllaçarem amb l&#8217;emulador i que ens ajudarà al moment d&#8217;escriure els nostres programes.</p>
<p><strong>3.1 Instal·lació de l&#8217;emulador</strong></p>
<p>Instal·larem l&#8217;emulador <a href="http://desmume.org/" target="_blank">DeSmuME</a> que per sort es pot instal·lar des dels repositoris d&#8217;Ubuntu escrivint una sola línia en el terminal:</p>
<div class="terminal">
$ sudo aptitude install desmume<br />
&#8230;<br />
$
</div>
<p><strong>3.2 Instal·lació i configuració de l&#8217;<em>IDE</em></strong></p>
<p>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++. </p>
<p>Obrim un navegador i descarreguem en la nostra <em>home</em> l&#8217;eclipse IDE per C/C++ des d&#8217;<a href="http://www.eclipse.org/downloads/" target="_blank">aquesta pàgina</a>. Un cop descarregat obrim una sessió de terminal i el descomprimim:</p>
<div class="terminal">
$ tar -zxvf eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz<br />
$
</div>
<p>Des del navegador d&#8217;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&#8217;executem ens demanarà de crear un directori de treball en la nostra <em>home</em> a on s&#8217;emmagatzemaran els projectes. Podem deixar tranquil·lament el nom el que ens proposa per defecte.</p>
<p>Acte seguit,</p>
<ul>
<li>Tanquem la pestanya de <strong>Welcome</strong></li>
<li>Des del menú anem a <strong>File -> New -> C Project</strong></li>
</ul>
<p><a href="http://www.sergisogas.com/wp-content/uploads/2009/04/screen01.png"><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen01-450.png" alt="Screenshot 01" title="Screenshot 01" width="450" height="264" /></a></p>
<ul>
<li>Li donem un <strong>nom</strong> al projecte (per exemple prova)</li>
<li>A <strong>tipus de projecte</strong> seleccionem <strong>Makefile -> empty project</strong></li>
<li>Cliquem el botó <strong>Finish</strong></li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen02.png" alt="Screenshot 02" title="Screenshot 02" width="450" height="442" /></p>
<ul>
<li>Des del menú anem a <strong>File -> Import&#8230;</strong></li>
<li>Seleccionem <strong>General -> File System</strong></li>
<li>Cliquem el botó <strong>Next</strong></li>
<li>Cliquem el botó <strong>Browse&#8230;</strong></li>
<li>Busquem i seleccionem la carpeta <strong>template</strong> de les PAlib</li>
<li>Cliquem el botó <strong>Finish</strong></li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen03.png" alt="Screenshot 03" title="Screenshot 03" width="450" height="416" /></p>
<ul>
<li>Tornem al menú i cliquem <strong>File -> Properties</strong></li>
<li>Seleccionem la categoria <strong>C/C++ Build</strong></li>
<li>Anem a la pestanya <strong>Behaviour</strong></li>
<li>Substituïm tots els camps <strong>all</strong> per <strong>build</strong></li>
<li>Cliquem el botó <strong>Apply</strong></li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen04.png" alt="Screenshot 04" title="Screenshot 04" width="450" height="387" /></p>
<ul>
<li>Seleccionem la categoria <strong>C/C++ Build -> Build Variables</strong></li>
<li>Cliquem l&#8217;opció <strong>Show system variables</strong></li>
<li>Fem doble clic sobre les variables DEVKITPRO, DEVKITARM i PAPATH</li>
<li>Cliquem el botó <strong>Apply</strong></li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen05.png" alt="Screenshot 05" title="Screenshot 05" width="450" height="387" /></p>
<ul>
<li>Seleccionem la categoria <strong>C/C++ General -> Path and Symbols</strong></li>
<li>Anem a la pestanya <strong>Includes</strong></li>
<li>A <strong>Languages</strong> cliquem l&#8217;opció <strong>GNU C</strong></li>
<li>Cliquem el botó <strong>Add&#8230;</strong></li>
<li>Cliquem el botò d&#8217;<strong>File system&#8230;</strong></li>
<li>Busquem i seleccionem la carepta <strong>lib/include/nds</strong> de les PAlib</li>
<li>Cliquem el botó <strong>Ok</strong></li>
<li>Cliquem el botó <strong>Apply</strong></li>
<li>Repetim el procés per al llenguatge <strong>GNU C++</strong></li>
<li>Cliquem el botó <strong>Ok</strong></li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen06.png" alt="Screenshot 06" title="Screenshot 06" width="450" height="387" /></p>
<p><strong>3.3 Enllaçar l&#8217;eclipse amb l&#8217;emulador</strong></p>
<p>Arribat en aquest punt només ens queda enllaçar l&#8217;entorn de desenvolupament amb l&#8217;emulador que hem instal·lat en l&#8217;apartat 3.1.</p>
<ul>
<li>Des del menú anem a <strong>Run -> External Tools</strong></li>
<li>Seleccionem <strong>External Tools Configurations&#8230;</strong></li>
</ul>
<p><a href="http://www.sergisogas.com/wp-content/uploads/2009/04/screen07.png"><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen07-450.png" alt="Screenshot 07" title="Screenshot 07" width="450" height="264" /></a></p>
<ul>
<li>Seleccionem <strong>Program</strong></li>
<li>Fem clic amb el botó dret sobre <strong>Program</strong></li>
<li>Creem una nova configuració</li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen08.png" alt="Screenshot 08" title="Screenshot 08" width="450" height="360" /></p>
<ul>
<li>A <strong>Name</strong> podem posar <strong>DeSmuME</strong></li>
<li>A <strong>Location</strong> posem <strong>/usr/games/desmume</strong></li>
<li>A <strong>Working Directory</strong> cliquem <strong>Browse Workpsace&#8230;</strong></li>
<li>Seleccionem el projecte i cliquem <strong>OK</strong></li>
<li>A <strong>Arguments</strong> posem <strong>prova.nds</strong> (&#8220;nom_projecte&#8221; + &#8220;.nds&#8221;)</li>
</ul>
<p><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen09.png" alt="Screenshot 09" title="Screenshot 09" width="450" height="360" /></p>
<ul>
<li>Cliquem el botó <strong>Apply</strong></li>
<li>I per últim cliquem el botó <strong>Run</strong></li>
</ul>
<p>Això generarà un fitxer prova.nds (que posaríem a l&#8217;R4) dins la carpeta del projecte del nostre directori de treball, que l&#8217;emulador recuperarà com a paràmetre i executarà:</p>
<p><a href="http://www.sergisogas.com/wp-content/uploads/2009/04/screen10.png"><img src="http://www.sergisogas.com/wp-content/uploads/2009/04/screen10-450.png" alt="Screenshot 10" title="Screenshot 10" width="450" height="263" /></a></p>
<p>Ara només quedaria adquirir uns bons llibres de C, algun altre de videojocs, estudiar la gran varietat d&#8217;exemples que venen amb les PAlib, i començar a programar.  Happy coding!</p>
<p><strong>Enllaços per començar amb les PAlib</strong></p>
<p><a href="http://www.palib.info/wiki/doku.php" target="_blank">PAlib &#8211; Wiki</a><br />
<a href="http://forum.palib.info/index.php?action=forum" target="_blank">PAlib &#8211; Fòrums</a><br />
<a href="http://www.aaronrogers.com/nintendods/PA_Lib/" target="_blank">Nintendo DS Development Tutorial :: PAlib</a></p>
<p><strong>Fonts consultades</strong></p>
<p><a href="http://www.toshen-project.com/2009/03/17/3/" target="_blank">Toshen Project Devblog &#8211; Configurer Eclipse</a><br />
<a href="http://www.playeradvance.org/forum/showthread.php?t=4361" target="_blank">PlayerAdvance.org &#8211; Utiliser Eclipse comme IDE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-3-de-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Introducció al homebrew (2 de 3)</title>
		<link>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-2-de-3/</link>
		<comments>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-2-de-3/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 22:36:18 +0000</pubDate>
		<dc:creator>sogas</dc:creator>
				<category><![CDATA[GNU / Linux]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Programació]]></category>

		<guid isPermaLink="false">http://www.sergisogas.com/?p=748</guid>
		<description><![CDATA[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&#8217;aquesta manera, obrirem una sessió de [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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&#8217;aquesta manera, obrirem una sessió de terminal i executarem les següents comandes:</p>
<div class="terminal">
$ sudo aptitude install build-essentials<br />
&#8230;<br />
$ sudo aptitude install unzip<br />
&#8230;<br />
$
</div>
<p>Una vegada fet això ja podrem instal·lar les llibreries específiques per al desenvolupament de la Nintendo DS: les devkitARM i les PAlib.</p>
<p>Les devkitARM són unes llibreries que formen part del projecte <a href="http://www.devkitpro.org/" target="_blank">devkitPro</a> 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&#8217;hora de crear els nostres programes.</p>
<p>É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&#8217;hora de compilar i els nostres programes no funcionarien.</p>
<p><strong>2.1 Instal·lació de les llibreries devkitARM</strong></p>
<p>Obrirem el navegador i descarregarem <a href="http://sourceforge.net/project/downloading.php?group_id=114505&#038;use_mirror=freefr&#038;filename=devkitARM_r21-linux.tar.bz2" target="_blank">aquest fitxer</a> en la nostra <em>home</em>. Quan s&#8217;hagi descarregat obrirem una altra vegada una sessió de terminal i crearem una carpeta anomenada <em>devkitpro</em> en la nostra <em>home</em>, hi posarem el fitxer que acabem de descarregar i el descomprimirem:</p>
<div class="terminal">
$ mkdir devkitpro<br />
$ mv devkitARM_r21-linux.tar.bz2 devkitpro/<br />
$ cd devkitpro/<br />
devkitpro$ bzip2 -dc devkitARM_r21-linux.tar.bz2 | tar -xv<br />
devkitpro$
</div>
<p>Seguim treballant des del terminal per descarregar un parell de llibreries més, les quals desarem dins d&#8217;una carpeta que anomenarem <em>libnds</em>:</p>
<div class="terminal">
devkitpro$ mkdir libnds<br />
devkitpro$ cd libnds/<br />
devkitpro/libnds$ wget <a href="http://downloads.sourceforge.net/devkitpro/libnds-20071023.tar.bz2?use_mirror=freefr" target="_blank">aquest fitxer</a><br />
devkitpro/libnds$ bzip2 -dc libnds-20071023.tar.bz2 | tar -xv<br />
devkitpro/libnds$ wget <a href="http://downloads.sourceforge.net/devkitpro/dswifi-0.3.4.tar.bz2?use_mirror=freefr" target="_blank">aquest fitxer</a><br />
devkitpro/libnds$ bzip2 -dc dswifi-0.3.4.tar.bz2 | tar -xv<br />
devkitpro/libnds$ wget <a href="http://downloads.sourceforge.net/devkitpro/libfat-nds-20070127.tar.bz2?use_mirror=freefr" target="_blank">aquest fitxer</a><br />
devkitpro/libnds$ bzip2 -dc libfat-nds-20070127.tar.bz2 | tar -xv<br />
devkitpro/libnds$
</div>
<p><strong>2.2 Instal·lació de les llibreries PAlib</strong></p>
<p>Descarreguem les PAlib i les descomprimim dins la carpeta <em>devkitpro</em>:</p>
<div class="terminal">
devkitpro/libnds$ cd ../<br />
devkitpro$ wget <a href="http://www.palib.info/downloads/Stable/PAlib_080823_Archive.zip" target="_blank">aquest fitxer</a><br />
devkitpro$ unzip PAlib_080823_Archive.zip<br />
devkitpro$
</div>
<p>Un cop arribat en aquest punt ja tindrem les llibreries instal·lades en una estructura de directoris semblant a la següent:</p>
<p>/<br />
|__ home<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ <em>la_meva_home</em><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ devkitPro<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ devkitARM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ libnds<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ Other Libs<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__ PAlib</p>
<p><strong>2.3 Variables d&#8217;entorn i prova de compilació</strong></p>
<p>Ara només queda definir unes variables d&#8217;entorn i provar de compilar un dels exemples que venen amb les PAlib per comprovar que tot s&#8217;ha instal·lat satisfactòriament. Per fer-ho obrim el fitxer <em>.bashrc</em> situat a la nostra <em>home</em> (el fitxer és ocult!), i afegim les següents línies al final del fitxer:</p>
<div class="file">
&#8230;<br />
# devkitPro<br />
export DEVKITPRO=$HOME/devkitpro<br />
export DEVKITARM=$DEVKITPRO/devkitARM<br />
export PAPATH=$DEVKITPRO/PAlib/lib
</div>
<p>Per acabar refresquem les variables d&#8217;entorn i provem de compilar un dels exemples des del terminal:</p>
<div class="terminal">
$ source .bashrc<br />
$ cd devkitpro/PAlib/examples/Text/Normal/HelloWorld<br />
devkitpro/PAlib/examples/Text/Normal/HelloWorld$ make<br />
&#8230;<br />
built &#8230; HelloWorld.ds.gba<br />
dsbuild 1.21 &#8211; Oct 23 2007<br />
using default loader<br />
devkitpro/PAlib/examples/Text/Normal/HelloWorld$
</div>
<p>Si veiem que la comanda <em>make</em> no torna ningun error i acaba amb les línies de &#8220;dsbuild 1.21 &#8211; Oct 23 2007&#8243; i &#8220;using default loader&#8221;, voldrà dir que les llibreries s&#8217;han instal·lat correctament. Per contra, si observem algun error o avís, i un resultat diferent a l&#8217;esperat, voldrà dir que alguna cosa s&#8217;ha fet malament i haurem de repassar el procés d&#8217;instal·lació.</p>
<p><strong>Fonts consultades</strong></p>
<p><a href="http://wiki.devkitpro.org/index.php/Getting_Started/devkitARM" target="_blank">Wiki devkitPro:Getting Started/devkitARM</a><br />
<a href="http://www.palib.info/wiki/doku.php?id=day1" target="_blank">Wiki PAlib: Installing Your Dev Environment</a><br />
<a href="http://www.dev-scene.com/DevkitARM" target="_blank">Dev-Scene.com</a><br />
<a href="http://www.elotrolado.net/hilo_k-pasa-con-las-palib_1175613" target="_blank">ElOtroLado.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sergisogas.com/2009/04/introduccio-al-homebrew-2-de-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Introducció al homebrew (1 de 3)</title>
		<link>http://www.sergisogas.com/2009/03/introduccio-al-homebrew-1-de-3/</link>
		<comments>http://www.sergisogas.com/2009/03/introduccio-al-homebrew-1-de-3/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 23:07:28 +0000</pubDate>
		<dc:creator>sogas</dc:creator>
				<category><![CDATA[GNU / Linux]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Programació]]></category>

		<guid isPermaLink="false">http://www.sergisogas.com/?p=661</guid>
		<description><![CDATA[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&#8217;altres. És per això que m&#8217;he engrescat a escriure una sèrie de posts en els quals aprofundirem [...]]]></description>
			<content:encoded><![CDATA[<p>Tant el <a href="http://www.francrodriguez.com/" target="_blank">Franc</a> 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&#8217;altres.</p>
<p>És per això que m&#8217;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.</p>
<p><strong>1.1 Definició</strong></p>
<p>S&#8217;entén per homebrew el conjunt d&#8217;aplicacions i jocs desenvolupats per &#8220;aficionats&#8221; de forma casolana per a un dispositiu en concret, normalment una consola de videojocs.</p>
<p>Teòricament és necessari adquirir llicències i entorns de desenvolupament cars per realitzar aplicacions i/o jocs per als diferents sistemes d&#8217;entreteniment. No obstant, gràcies a l&#8217;esforç de molts usuaris i de comunitats molt ben assentades es pot programar per a gairebé qualsevol dispositiu, sense la necessitat d&#8217;adquirir aquests entorns de desenvolupaments.</p>
<p><strong>1.2 Consoles a considerar</strong></p>
<p>Tal i com acabem de dir és poden desenvolupar aplicacions homebrew per a gairebé qualsevol consola. Per fer-ho, sovint s&#8217;han de manipular aquests dispositius (ja sigui per hardware o per software) per a que acceptin programes no oficials. No obstant, algun d&#8217;aquests dispositius no requereix ninguna modificació i n&#8217;hi ha prou amb un altre producte que permeti introduir els programes casolans de forma còmoda a la consola.</p>
<p><strong>Nintendo DS</strong><br />
<img id="image127" src="http://www.sergisogas.com/wp-content/uploads/2009/03/nintendo_ds.jpg" alt="Nintendo DS Lite" title="Nintendo DS Lite" style="float: right; margin-left: 10px; margin-bottom: 5px;" /><br />
La portàtil de l&#8217;empresa japonesa que es caracteritza per tenir dues pantalles (una d&#8217;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 <em>slot</em> per a targetes SD.</p>
<p>Tot i que Nintendo no dóna suport oficial al homebrew per a aquesta consola (ni per ninguna), n&#8217;hi ha prou amb un cartutx com ara l&#8217;<a href="http://www.sergisogas.com/2007/05/r4-revolution-for-ds/">R4</a> per executar aplicacions i jocs homebrew en aquesta portàtil.</p>
<p><strong>GP2X</strong><br />
<img id="image127" src="http://www.sergisogas.com/wp-content/uploads/2009/03/gp2x.jpg" alt="GP2X" title="GP2X" style="float: right; margin-left: 10px; margin-bottom: 5px;" /><br />
La consola open-source coreana basada en GNU/Linux i pensada per a executar homebrew.</p>
<p>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.</p>
<p>Semblaria lògic, per tant, dedicar els següents posts a muntar l&#8217;entorn per a la GP2X. Tanmateix, ho acabarem fent per a la Nintendo DS ja que:</p>
<ul>
<li>Des del punt de vista de hardware la DS és més interessant (té Wi-Fi, micròfon, acceleració 3D, pantalla tàctil, etc).</li>
<li>La bateria de la DS dura molt més que el que puguin durar unes piles bones en la GP2X.</li>
<li>La DS està molt més estesa que la GP2X.</li>
<li>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.</li>
</ul>
<p><strong>Fonts consultades</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Homebrew_(video_games)" target="_blank">Wikipedia: Definició de homebrew (anglès)</a><br />
<a href="http://es.wikipedia.org/wiki/Homebrew" target="_blank">Wikipedia: Definició de homebrew (castellà)</a><br />
<a href="http://en.wikipedia.org/wiki/Nintendo_ds" target="_blank">Wikipedia: Nintendo DS</a><br />
<a href="http://en.wikipedia.org/wiki/Gp2x" target="_blank">Wikipedia: GP2X</a><br />
<a href="http://www.gp32spain.com/" target="_blank">Comunitat espanyola de GP2X</a><br />
<a href="http://www.altmagazine.net/" target="_blank">Revista digital Alt Magazine</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sergisogas.com/2009/03/introduccio-al-homebrew-1-de-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mozilla Add-Ons Workshop Madrid 08</title>
		<link>http://www.sergisogas.com/2008/12/mozilla-add-ons-workshop-madrid-08/</link>
		<comments>http://www.sergisogas.com/2008/12/mozilla-add-ons-workshop-madrid-08/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 20:53:05 +0000</pubDate>
		<dc:creator>sogas</dc:creator>
				<category><![CDATA[Programació]]></category>

		<guid isPermaLink="false">http://www.sergisogas.com/?p=495</guid>
		<description><![CDATA[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&#8217;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&#8217;estació d&#8217;Atocha de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.spreadfirefox.com/" target="_blank"><img src='http://www.sergisogas.com/wp-content/uploads/2008/12/firefoxlogo.png' alt='Spread Firefox' title='Spread Firefox' style="float: left; margin-right: 10px;" /></a></p>
<p>Aquest cap de setmana vaig assistir al <a href="https://wiki.mozilla.org/MAOW_Madrid_08" target="_blank">Mozilla Add-Ons Workshop Madrid 08</a>, un taller organitzat per <a href="http://www.mozilla-europe.org/" target="_blank">Mozilla Europa</a>, la <a href="http://libresoft.es/" target="_blank">Universitat Rey Juan Carlos</a> i la gent de <a href="http://www.mozilla-hispano.org/" target="_blank">Mozilla Hispano</a>. L&#8217;esdeveniment va tenir lloc al <a href="http://medialab-prado.es/"  target="_blank">Medialab-Prado</a> de Madrid, un <a href="http://es.wikipedia.org/wiki/Hacklab" target="_blank"><em>hacklab</em></a> orientat a la difusió de la cultura digital, situat a dos minuts de l&#8217;estació d&#8217;Atocha de la capital (ideal pels que hi arribàvem amb AVE).</p>
<p>El taller que va anar a càrrec de Paul Rouget (programador de Mozilla i <em>European Technology Evangelist</em>), va servir per introduir les diferents tecnologies que s&#8217;utilitzen en el desenvolupament de les extensions del navegador Firefox.</p>
<p>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&#8217;usuari i per mostrar els resultats per pantalla. Després d&#8217;això va passar a explicar un cas pràctic: una extensió de Firefox per a <a href="http://www.tuenti.com/" target="_blank">Tuenti</a> que en Paul va desenvolupar per a l&#8217;ocasió.</p>
<p>Tot i durar menys de l&#8217;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&#8217;interessant. Sense anar més lluny en Paul va desenvolupar un senzill navegador en tant sols unes deu línies de codi.</p>
<p>Per acabar deixo un parell d&#8217;enllaços per a qui, al igual que jo, vulgui aprofundir més sobre les tecnologies que hi ha darrera d&#8217;aquest navegador:</p>
<p>- <a href="http://www.mozilla.org/developer/" target="_blank">Mozilla Developer Central</a><br />
- <a href="https://developer.mozilla.org/En" target="_blank">Mozilla Developer Center (anglès)</a><br />
- <a href="https://developer.mozilla.org/Es" target="_blank">Mozilla Developer Center (castellà)</a><br />
- <a href="http://www.xulplanet.com/" target="_blank">XUL Planet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sergisogas.com/2008/12/mozilla-add-ons-workshop-madrid-08/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Programant robots</title>
		<link>http://www.sergisogas.com/2007/08/programant-robots/</link>
		<comments>http://www.sergisogas.com/2007/08/programant-robots/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 18:03:12 +0000</pubDate>
		<dc:creator>sogas</dc:creator>
				<category><![CDATA[Aplicacions]]></category>
		<category><![CDATA[Programació]]></category>

		<guid isPermaLink="false">http://www.sergisogas.com/2007/08/programant-robots/</guid>
		<description><![CDATA[Fa temps que vaig descobrir l&#8217;AT-Robots, un joc d&#8217;MS-DOS que consistia en programar un robot de batalla (que no deixava de ser un tanc amb un canó i un radar), i enfrontar-lo amb d&#8217;altres robots dins un simulador de batalles (un joc per a frikis al cap i a la fi). La idea de programar [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.sergisogas.com/wp-content/uploads/2007/08/robot.gif' alt='Anatomy of a Robocode robot' title='Anatomy of a Robocode robot' style="float: right; margin-left: 10px; margin-bottom: 10px;" /></p>
<p>Fa temps que vaig descobrir l&#8217;<a href="http://necrobones.com/atrobots/" target="_blank">AT-Robots</a>, un joc d&#8217;MS-DOS que consistia en programar un robot de batalla (que no deixava de ser un tanc amb un canó i un radar), i enfrontar-lo amb d&#8217;altres robots dins un simulador de batalles (un joc per a frikis al cap i a la fi).</p>
<p>La idea de programar robots  i enfrontar-los en tornejos la trobo molt divertida, així que m&#8217;he posat a buscar algun d&#8217;aquests simuladors per tal de jugar-hi una mica. N&#8217;he trobat dos amb molt bona pinta, amb més bons gràfics que no pas l&#8217;AT-Robots (que ja fa temps que ha quedat obsolet) i més avançats, fins al punt de poder crear equips de robots que col·laboren entre sí per guanyar la batalla:</p>
<p><a href="http://www.robotbattle.com/" target="_blank">Robot Battle</a><br />
- Plataforma: MS Windows.<br />
- Llenguatge en que es programen els robots: RSL.<br />
&nbsp;&nbsp;(o Robot Scripting Language, una barreja de Basic, C i JavaScript)<br />
- Darrera actualització del programa: 21 de novembre de 2004.</p>
<p><a href="http://robocode.sourceforge.net/" target="_blank" title="Build the best - destroy the rest!">Robocode</a><br />
- Plataforma: MS Windows, Mac OS X, GNU/Linux, etc. (és Java).<br />
- Llenguatge en que es programen els robots: Java.<br />
- Darrera actualització del programa: 26 d&#8217;agost de 2007.</p>
<p>D&#8217;entre els dos simuladors el que trobo més interessant és el Robocode. Va ser desenvolupat inicialment per un programador d&#8217;IBM per demostrar que amb Java es podien fer jocs. Actualment és un projecte open source i gaudeix de molt bona activitat (la darrera actualització va ser fa tres dies!). A més, el seu funcionament és independent del sistema operatiu pel que es pot executar en (gairebé) qualsevol plataforma.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td align="left">
<a href='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode1.png' title='Robocode 1' target="_blank"><img src='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode1.thumbnail.png' alt='Robocode 1' title='Robocode 1' /></a>
</td>
<td align="center">
<a href='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode2.png' title='Robocode 2' target="_blank"><img src='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode2.thumbnail.png' alt='Robocode 2' title='Robocode 2' /></a>
</td>
<td align="right">
<a href='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode3.png' title='Robocode 3' target="_blank"><img src='http://www.sergisogas.com/wp-content/uploads/2007/08/robocode3.thumbnail.png' alt='Robocode 3' title='Robocode 3' /></a>
</td>
</tr>
</tbody>
</table>
<p>L&#8217;única pega que hi trobo és que el llenguatge que s&#8217;utilitza per programar els robots és el Java (que no és que m&#8217;agradi massa que diguem). Trobaria més interessant si l&#8217;aplicació utilitzés C, C++ o llenguatge ensamblador (o python) per programar els robots. No obstant, seria qüestió de llegir el manual i les guies de programació que hi ha per la xarxa, i fer un parell de robots de prova per poder començar a jugar amb el simulador. I així de pas aprendria Java <em>in a funny way</em>.</p>
<p>I vet aquí la pregunta: algú s&#8217;anima a programar un (o més d&#8217;un) robot amb el Robocode i quedar un dia per fer un torneig? Que si, que és Java i al principi serà una rotllo, però segur que tampoc és tant complicat i estarem aprenent un llenguatge amb moltes expectatives de futur (ejem, sense comentaris&#8230;).</p>
<p>Sinó, si algú té ganes de buscar i troba un altre simulador de característiques similars i multiplataforma, que ho digui! Totes les propostes per fer aquests tipus de tornejos seran benvingudes :D</p>
<p>Deixo els enllaços que he trobat d&#8217;IBM per si algú es vol acabar de decidir:</p>
<ul>
<li><a href="http://www.ibm.com/developerworks/java/library/j-robocode/?loc=j" target="_blank" title="robot battle simulation engine">Rock &#8216;em, sock &#8216;em Robocode!</a></li>
<li><a href="http://www.ibm.com/developerworks/library/j-robocode2/" target="_blank" title="advanced robot building and team play">Rock &#8216;em, sock &#8216;em Robocode: Round 2</a></li>
<li><a href="http://www.ibm.com/developerworks/library/j-nelson/index.html" target="_blank" title="AlphaBot: An interview with Robocode creator Mat Nelson">Entrevista a Mathew Nelson, creador de Robocode</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sergisogas.com/2007/08/programant-robots/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
