<?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>nemediano &#187; c</title>
	<atom:link href="http://www.nemediano.com.mx/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nemediano.com.mx</link>
	<description>Reflexiones de un espiritu curioso</description>
	<lastBuildDate>Fri, 16 Jul 2010 22:07:36 +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>Utilizando Geany para hacer codigo de C y C++</title>
		<link>http://www.nemediano.com.mx/2007/utilizando-geany-para-hacer-codigo-de-c-y-c/</link>
		<comments>http://www.nemediano.com.mx/2007/utilizando-geany-para-hacer-codigo-de-c-y-c/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 01:53:45 +0000</pubDate>
		<dc:creator>nemediano</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Mis demonios]]></category>
		<category><![CDATA[Recetario de Ubuntu]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[geany]]></category>
		<category><![CDATA[Ide]]></category>
		<category><![CDATA[opengl]]></category>

		<guid isPermaLink="false">http://nemediano.wordpress.com/2007/09/22/utilizando-geany-para-hacer-codigo-de-c-y-c/</guid>
		<description><![CDATA[Un editor que a mi me gusta mucho usar para escribir mis programas de C, que comúnmente llevan OpenGL es Geany, se trata de un editor muy ligero y sencillo de usar, esta escrito en GTK, por lo que corre independientemente de cualquier manejador de ventanas que estemos usando (ya sea Gnome, Xfce, o KDE), [...]]]></description>
			<content:encoded><![CDATA[<p>Un editor que a mi me gusta mucho usar para escribir mis programas de C, que comúnmente llevan OpenGL es <a title="Pagina oficial de Geany" href="http://geany.uvena.de/" target="_blank">Geany</a>, se trata de un editor muy ligero y sencillo de usar, esta escrito en GTK, por lo que corre independientemente de cualquier manejador de ventanas que estemos usando (ya sea Gnome, Xfce, o KDE), es un editor, no un IDE, por esto me refiero a que nonos va a hacer proyectos, ni nada de eso, solo nos va a dejar editar el texto.</p>
<p><span id="more-29"></span></p>
<p>Instalar Geany, no debe de dar mayor problema, pues se encuentra en los repositorios oficiales de Ubuntu, lo podemos hacer via apt-get, o synaptic, o incluso se encuentra disponible en agregar o quitar programas bajo la categoría de desarrollo, si su sistema esta en español (el Ubuntu), geany también vendrá en español.</p>
<p>Bueno, por que querría yo usar un editor de texto aparte de gedit? Pues por que geany me da ciertas ventajas que no me da por ejemplo gedit, al escribir código, estoy hablando a que nos da mas ventajas que el simple sintax highlight</p>
<p><a title="Una pantalla de Geany en accion" href="http://www.nemediano.com.mx/wp-content/uploads/2007/09/pantalla_geany.png"><img src="http://nemediano.files.wordpress.com/2007/09/pantalla_geany.thumbnail.png" alt="Una pantalla de Geany en accion" /></a></p>
<p>Pues aquí viene lo bonito del asunto, si queremos usar Geany para escribir código de OpenGL  y glut en Ubuntu, y ya sabemos hacer nuestros propios makefiles, como lo explique en el <a title="El post donde explico como hace makefiles" href="http://nemediano.wordpress.com/2007/09/01/como-hacer-makefiles-para-programar-en-opengl-y-glut/" target="_blank">post anterior</a>.</p>
<p>Ahora podemos usar todo esto a nuestro favor para tener un entorno de desarrollo muy amigable, para empezar guardemos todos nuestros archivos fuentes y makefile en una sola carpeta luego iniciamos geany.</p>
<p>Ahora suponemos que en nuestro makefile, define cierto nombre para el ejecutable por ejemplo &#8220;Modelo3D&#8221;, y que definimos un make all, de defualt, y que también pusimos un &#8220;make destroy&#8221;, que elimina los objetos y el ejecutable.</p>
<p>Pues abrimos Geany, de ahí abrimos todos nuestros archivos fuentes,  Archivo -&gt; abrir y luego nos vamos al menú que dice: <strong>construir</strong></p>
<p>En la ultima opción se encuentra  <strong>Selecciona Inclusiones y Argumentos</strong>, al entrar a esta opción vemos una ventana como esta:</p>
<p><a title="Seleccion de argumentos en Geany" href="http://www.nemediano.com.mx/wp-content/uploads/2007/09/pantallazo-selecciona-incluciones-y-argumentos.png"><img src="http://nemediano.files.wordpress.com/2007/09/pantallazo-selecciona-incluciones-y-argumentos.thumbnail.png" alt="Seleccion de argumentos en Geany" /></a><br />
Ahora vemos que Geany ya ha dado valores de default, pues sabe que estamos escribiendo código en C, por que abrimos un archivo .c, sin embargo como nosotros ya hicimos nuestro propio makefile, la vamos a cambiar esas opciones, para que llame a nuestro make.</p>
<p>Lo que tenga escrito en la primer caja de  de compilar es lo que se va a ejecutar, cuando apretemos el botón de compilar, ahora nosotros queremos que antes de compilar elimine todos los objetos y el ejecutable, y luego intente compilar todo, es decir queremos que ejecute &#8220;make destroy&#8221; y luego &#8220;make all&#8221;, y como esta instrucción se va a mandar al shell tal como la escribimos podemos escribir:<br />
<code>make destroy; make</code><br />
Ahora lo que escribamos en argumentso para el programa, es lo que ejecuta cuando presionamos el boton de ejecutar, así que podemos poner ahi ./nombre_de_ejecutable o para nuestro ejemplo:<br />
<code>./modelo3D</code><br />
<a title="Como queda la configuracion al final" href="http://www.nemediano.com.mx/wp-content/uploads/2007/09/pantallazo-selecciona-incluciones-y-argumentos-1.png"><img src="http://nemediano.files.wordpress.com/2007/09/pantallazo-selecciona-incluciones-y-argumentos-1.thumbnail.png" alt="Como queda la configuracion al final" /></a></p>
<p>Y listo, ahora podemos programar cómodamente en Geany, usando glut y OpenGL, cada que queramos compilar, solo presionamos el botón de compilar y al ejecutar el botón de ejecutar.</p>
<p>Algunas observaciones</p>
<ul>
<li>Geany es muy ligero y tiene la enorme ventaja que no hace archivos de proyecto, o de configuración, esto es una ventaja para programas pequeños.</li>
<li>La ventaja de tener total control de los argumentos con nuestro propio makefile.</li>
<li>También se puede importar código muy fácil, ya que geany, nos da lo mínimo, para poder escribir entre Windows y GNU/Linux, es decir nos deja cambiar el carácter de terminación de linea de los archivos fuentes y la codificación de caracteres, la codificación de GNU/Linux y en particular de Ubuntu es UTF8, la codificación en Windows es depende del idioma en que lo tengamos, pero seguro aparece en el menú de geany. La terminación de linea en Windows es CRLF y en GNU/Linux es LF.</li>
<li>Tenemos las opciones que mas comúnmente se usan al programar en un Editor muy ligero y que no para instalar no necesitamos traer montones de librerías como en los casos de editores mas poderosos.</li>
</ul>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.nemediano.com.mx%2F2007%2Futilizando-geany-para-hacer-codigo-de-c-y-c%2F&amp;t=Utilizando%20Geany%20para%20hacer%20codigo%20de%20C%20y%20C%2B%2B" id="facebook_share_icon_29" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none;"><img src="http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif" alt="Share on Facebook" /></a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_29') || document.getElementById('facebook_share_icon_29') || document.getElementById('facebook_share_both_29') || document.getElementById('facebook_share_button_29');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_29') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.nemediano.com.mx/2007/utilizando-geany-para-hacer-codigo-de-c-y-c/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Como hacer Makefiles para programar en OpenGL y glut</title>
		<link>http://www.nemediano.com.mx/2007/como-hacer-makefiles-para-programar-en-opengl-y-glut/</link>
		<comments>http://www.nemediano.com.mx/2007/como-hacer-makefiles-para-programar-en-opengl-y-glut/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 15:37:22 +0000</pubDate>
		<dc:creator>nemediano</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Mis demonios]]></category>
		<category><![CDATA[Recetario de Ubuntu]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[geany]]></category>
		<category><![CDATA[glut]]></category>
		<category><![CDATA[makefile]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nemediano.wordpress.com/2007/09/01/como-hacer-makefiles-para-programar-en-opengl-y-glut/</guid>
		<description><![CDATA[Bueno en el post pasado aprendimos como instalar el compilador y las librerías(bibliotecas para los puristas del idioma) en Ubuntu, para poder hacer nuestros propios programas de OpeGL y glut. Supongo que si estas leyendo esto es que todavía no sabes muy bien como programar en OpenGL y probablemente quieres un entorno de desarrollo medio [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno en el post pasado aprendimos como instalar el compilador y las librerías(bibliotecas para los puristas del idioma) en Ubuntu, para poder hacer nuestros propios programas de OpeGL y glut. Supongo que si estas leyendo esto es que todavía no sabes muy bien como programar en OpenGL y probablemente quieres un entorno de desarrollo medio amigable para hacer todo el show de codifico, intento compilar, corrijo errores, va de nuevo.Lo mas recomendable para hacer esto es construir un makefile (por eso en el post pasado instalamos el paquete build-essentials).<span id="more-21"></span></p>
<p>El makefile es un archivo de texto plano, que usa la herramienta make, dicho archivo debe ser escrito por el desarrollador y dice como se compila el programa que escribió. Usualmente los makefiles son complejos y contienen un montón de reglas, sin embargo nosotros <strong>nos vamos a limitar a tres</strong>: una para compilar, una para limpiar y otra para reconstruir.</p>
<p>Así que abrimos nuestro editor de texto plano favoritos y construimos un archivo que tenga por nombre makefile (el nombre es muy importante).</p>
<p>Si nuestro programa solo va tener un archivo fuente esta sera nuestra plantilla:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="make" style="font-family:monospace;">LIBDIR <span style="color: #004400;">=</span> <span style="color: #004400;">-</span>L<span style="color: #004400;">/</span>usr<span style="color: #004400;">/</span>X11R6<span style="color: #004400;">/</span>lib
CC <span style="color: #004400;">=</span> gcc
CFLAGS <span style="color: #004400;">=</span> <span style="color: #004400;">-</span>Wall
LIBRARIES <span style="color: #004400;">=</span> <span style="color: #004400;">-</span>lglut <span style="color: #004400;">-</span>lGL <span style="color: #004400;">-</span>lGLU <span style="color: #004400;">-</span>lm
ejecutable<span style="color: #004400;">:</span> fuente<span style="color: #004400;">.</span>c
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>o <span style="color: #000088; font-weight: bold;">$@</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">LIBDIR</span><span style="color: #004400;">&#41;</span> <span style="color: #000088; font-weight: bold;">$?</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">LIBRARIES</span><span style="color: #004400;">&#41;</span>
destroy<span style="color: #004400;">:</span>
	rm <span style="color: #004400;">-</span>f <span style="color: #004400;">*.</span>o ejecutable
clean<span style="color: #004400;">:</span>
	rm <span style="color: #004400;">-</span>f <span style="color: #004400;">*.</span>o</pre></td></tr></table></div>

<p>En donde <em>ejecutable</em> es el nombre que queremos que tenga nuestro archivo ejecutable y <em>fuente</em> es el nombre de nuestro <strong>único</strong> archivo fuente.</p>
<p>Analizando un poco vemos que el makefile define unas variables en las primeras lineas, y luego define unas reglas, las reglas siempre son de la forma:</p>
<p>[objetivo]: [dependencia]<br />
[comandos]</p>
<p>Donde <em>objetivo</em> es el nombre de la operación que queremos hacer, <em>dependencia</em> es todo lo que necesitamos para llevarla a acabo y <em>comandos</em> es lo que debemos hacer para llevar a cabo la operación.</p>
<p>Las reglas que defino son <em>ejecutable</em> que sirve para hacer el ejecutable, <em>clean</em> que sirve para borrar todos los los archivos intermedios que hace el compilador (por ejemplo los .o) y <em>destroy</em> que borra todo lo que hace el compilador y nos deja listos para intentar compilar de nuevo (por ejemplo en nuestro periodo de ensayo error).</p>
<p>Se observa que uso gcc como compilador, por que el lenguaje C es usualmente nuestro default, si piensan programar en c++, cambien gcc por g++. Tambien fijense que entra las librerías mando a GL a GLU y a glut, que es por que queremos hacer un programa de OpenGL con glut, pero además mando un misterioso -lm, estas son as demás librerías de default de C, por ejemplo si en nuestro programa queremos usar funciones definidas en math.h.</p>
<p>Si queremos hacer un programa con mas de un código fuente esta es otra plantilla:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="make" style="font-family:monospace;">LIBDIR <span style="color: #004400;">=</span> <span style="color: #004400;">-</span>L<span style="color: #004400;">/</span>usr<span style="color: #004400;">/</span>X11R6<span style="color: #004400;">/</span>lib
CC <span style="color: #004400;">=</span> gcc
CFLAGS <span style="color: #004400;">=</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">COMPILERFLAGS</span><span style="color: #004400;">&#41;</span>
LIBRARIES <span style="color: #004400;">=</span> <span style="color: #004400;">-</span>lglut <span style="color: #004400;">-</span>lGL <span style="color: #004400;">-</span>lGLU <span style="color: #004400;">-</span>lm
OBJ <span style="color: #004400;">=</span> fuente1<span style="color: #004400;">.</span>o fuente2<span style="color: #004400;">.</span>o fuente3<span style="color: #004400;">.</span>o fuente4<span style="color: #004400;">.</span>o
BIN <span style="color: #004400;">=</span> ejecutable
&nbsp;
all<span style="color: #004400;">:</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">BIN</span><span style="color: #004400;">&#41;</span>
<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">BIN</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">:</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">OBJ</span><span style="color: #004400;">&#41;</span>
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>o <span style="color: #000088; font-weight: bold;">$@</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">LIBDIR</span><span style="color: #004400;">&#41;</span> <span style="color: #000088; font-weight: bold;">$?</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">LIBRARIES</span><span style="color: #004400;">&#41;</span>
&nbsp;
fuente1<span style="color: #004400;">.</span>o<span style="color: #004400;">:</span> fuente1<span style="color: #004400;">.</span>c
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>c fuente1<span style="color: #004400;">.</span>c <span style="color: #004400;">-</span>o fuente1<span style="color: #004400;">.</span>o <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span>
&nbsp;
fuente2<span style="color: #004400;">.</span>o<span style="color: #004400;">:</span> fuente2<span style="color: #004400;">.</span>c
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>c fuente2<span style="color: #004400;">.</span>c <span style="color: #004400;">-</span>o fuente2<span style="color: #004400;">.</span>o <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span>
&nbsp;
fuente3<span style="color: #004400;">.</span>o<span style="color: #004400;">:</span> fuente3<span style="color: #004400;">.</span>c
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>c fuente3<span style="color: #004400;">.</span>c <span style="color: #004400;">-</span>o fuente3<span style="color: #004400;">.</span>o <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span>
&nbsp;
fuente4<span style="color: #004400;">.</span>o<span style="color: #004400;">:</span> fuente4<span style="color: #004400;">.</span>c
	<span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CC</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">-</span>c fuente4<span style="color: #004400;">.</span>c <span style="color: #004400;">-</span>o fuente4<span style="color: #004400;">.</span>o <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">CFLAGS</span><span style="color: #004400;">&#41;</span>
&nbsp;
destroy<span style="color: #004400;">:</span>
	rm <span style="color: #004400;">-</span>f <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">OBJ</span><span style="color: #004400;">&#41;</span> <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">BIN</span><span style="color: #004400;">&#41;</span>
clean<span style="color: #004400;">:</span>
	rm <span style="color: #004400;">-</span>f <span style="color: #004400;">$</span><span style="color: #004400;">&#40;</span><span style="color: #000088;">OBJ</span><span style="color: #004400;">&#41;</span></pre></td></tr></table></div>

<p>En donde <em>fuente1</em>, &#8230; <em>fuentei</em>, son todos los archivos fuentes que componen el programa y <em>ejecutable</em> es el nombre del ejecutable.</p>
<h2><strong>Ahora lo importante:</strong></h2>
<p>Es ampliamente recomendado tener una carpeta donde guardar todo lo referente a nuestro programa y solo eso, es decir mi fuente y mi makefile deben estar en una carpeta para ellos solos (esto para facilitar su transporte) y que no se vayan a volar algo sin querer al escribir una regla mal del make XD<br />
Para compilar nuestro programa simplemente escribimos en la linea de comandos &#8220;make&#8221;: (obviamente debemos estar parados en el directorio donde esta todo):</p>
<pre>$make</pre>
<p>Si nuestro programa compilo correctamente genero el archio ejecutable, <span style="text-decoration: underline;">pero si tuvimos errores, veremos los errores y warnings en la shell</span> y debemos de hacer los siguiente:<br />
ejecutar <strong>make destroy</strong>, para limpiar toda al basura generada por la compilación fallida, corregir nuestro fuente y luego volver a intentar compilar.</p>
<pre>$make destroy<strong> </strong></pre>
<h2>Algunas observaciones:</h2>
<ul>
<li>Estos makefiles son solo recomendaciones y de hecho no siguen las reglas GNU de los makefiles, para aprender mas de eso pueden visitar: http://www.gnu.org/software/make/</li>
<li>Para escribir este post me base en la guia publicada por el area de linux de la fesa, quizas si le dan un ojo les quede mas claro http://www.acatlan.unam.mx/linux/graficacion/compilalinux.html</li>
<li>Si nuestro fuente tiene cabeceras por ejemplo cabecera.h, estas no necesitan ser compiladas y por lo tanto no se ponen en el make, basta que en el fuente sean usadas #include, Siempre que la cabecera no tenga código en C, si no mas bien declaraciones de estructuras y variables globales (que es como debe ser).</li>
</ul>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.nemediano.com.mx%2F2007%2Fcomo-hacer-makefiles-para-programar-en-opengl-y-glut%2F&amp;t=Como%20hacer%20Makefiles%20para%20programar%20en%20OpenGL%20y%20glut" id="facebook_share_icon_21" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none;"><img src="http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif" alt="Share on Facebook" /></a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_21') || document.getElementById('facebook_share_icon_21') || document.getElementById('facebook_share_both_21') || document.getElementById('facebook_share_button_21');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_21') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.nemediano.com.mx/2007/como-hacer-makefiles-para-programar-en-opengl-y-glut/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
