<?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>Boozox &#187; C</title>
	<atom:link href="http://boozox.net/category/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://boozox.net</link>
	<description>Blog de informática, programación, software libre, linux, y mucho más</description>
	<lastBuildDate>Fri, 16 Mar 2012 20:28:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Ejecuta código C, Perl, Python&#8230; via web</title>
		<link>http://boozox.net/aplicaciones/ejecuta-codigo-c-perl-python-via-web/</link>
		<comments>http://boozox.net/aplicaciones/ejecuta-codigo-c-perl-python-via-web/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 11:08:19 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Código]]></category>

		<guid isPermaLink="false">http://boozox.net/aplicaciones/ejecuta-codigo-c-perl-python-via-web/</guid>
		<description><![CDATA[Una vez más se demuestra mi teoría de que TODO puede hacerse via web, sólo se necesitan programadores dispuestos a crear el servicio. Esta vez es el caso de un compilador/intérprete de lenguajes via web. Se llama CodePad, y admite lenguajes tan conocidos como C, C++, D, Perl, Python, Ruby y algunos más. He hecho [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://boozox.net/wp-content/code.jpg" alt="code.jpg2" style="float:right"/> Una vez más se demuestra mi teoría de que <strong>TODO puede hacerse via web</strong>, sólo se necesitan programadores dispuestos a crear el servicio.</p>
<p>Esta vez es el caso de un compilador/intérprete de lenguajes via web. Se llama <a href="http://codepad.org/">CodePad</a>, y admite lenguajes tan conocidos como <strong>C, C++, D, Perl, Python, Ruby</strong> <em>y algunos más</em>.</p>
<p>He hecho unas cuantas pruebas con código C rebuscado y efectivamente compila y ejecuta de forma correcta, incluso <strong>te explica los errores de código</strong> si los hay.</p>
<p>Una idea similar tube hace algún tiempo, pero no fructificó el proyecto, ahora me quito el sombrero ante lo que ha hecho <strong><a href="http://www.hackerdashery.com/">Steven Hazel</a></strong> (el desarrollador). Parece ser que ha sido desarrollado en <strong>Python</strong>, y que ha puesto énfasis en la <strong>seguridad</strong>. Aún así insta a <em>hackers</em> que comuniquen sus éxitos.</p>
<p>A partir del buen servicio que ha conseguido CodePad, se podría explotar ahí una <strong>comunidad de desarrolladores</strong> muy guapa, o crear toda una plataforma web para programadores, para que cuelguen sus proyectos de Software Libre, los promocionen, interactúen, y tengan a mano <strong>herramientas</strong> tan interesantes como el compilador, o un editor de código que esté bien. Sería una idea nada despreciable.</p>
<p>via <a href="http://wwwhatsnew.com/2008/04/13/codepad-prueba-tu-codigo-online/">wwWhat&#8217;s New</a></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/aplicaciones/ejecuta-codigo-c-perl-python-via-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Funciones recurrentes: Bloodtraining Lógico</title>
		<link>http://boozox.net/software-libre/funciones-recurrentes-bloodtraining-logico/</link>
		<comments>http://boozox.net/software-libre/funciones-recurrentes-bloodtraining-logico/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 17:54:04 +0000</pubDate>
		<dc:creator>José Cabo</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Multiplataforma]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://boozox.net/software-libre/funciones-recurrentes-bloodtraining-logico/</guid>
		<description><![CDATA[Explicados los lenguajes esotéricos, quizás en clave de humor o quizás algo serio. Quisiera aportar algo sobre lenguajes algo más útiles. En este caso del lenguaje C aunque posiblemente aplicable a muchos otros. No voy a expandirme pues no pienso profundizar demasiado, pero espero que la mayoría lo conozcáis o al menos sepáis en que [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://boozox.net/codigo/lenguajes-esotericos/">Explicados los lenguajes esotéricos</a>, quizás en clave de humor o quizás algo serio. Quisiera aportar algo sobre lenguajes algo más útiles. En este caso del <strong>lenguaje C</strong> aunque posiblemente aplicable a muchos otros.</p>
<p>No voy a expandirme pues no pienso profundizar demasiado, pero espero que la mayoría lo conozcáis o al menos sepáis en que consiste. Tenéis <a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C">más información al respecto en la Wikipedia</a> sobre la historia de este lenguaje.<br />
<img style="float:right;" src='http://boozox.net/wp-content/funcionesrecurrentes2.png' alt='funcionesrecurrentes2.png' /><br />
Recientemente en clase de Programación de mi Universidad nos han enseñado un método de programación que hace uso de la recurrencia y de las funciones. Es decir, nos han enseñado las llamadas <strong>funciones recurrentes</strong>. Estas funciones son aquellas que <strong>se llaman a sí mismas</strong> hasta llegar a resolver la forma más simple de un problema. Un ejemplo de código sería:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*Factorial de un número*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> func <span class="br0">&#40;</span><span class="kw4">int</span> var<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>var==<span class="nu0">1</span><span class="br0">&#41;</span> <span class="kw1">return</span> <span class="nu0">1</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">return</span> func<span class="br0">&#40;</span>var<span class="nu0">-1</span><span class="br0">&#41;</span>*var;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Este método es fácil de entender, es más, no tiene mayor complicación que el hecho de entender la propia recurrencia. Pero me gustaría compartir con vosotros que fue gracias a este método que estoy desarrollando un programa capaz de calcular las tablas de verdad de un circuito lógico. <strong>Hablo de Bloodtraining Lógico</strong> (nombre todavía pendiente&#8230;). ¿Tablas de verdad?, ¿circuito lógico? Bueno&#8230;  <a href="http://es.wikipedia.org/wiki/Puerta_l%C3%B3gica">es la unión de varias <em>cosas</em> de estas</a>.</p>
<p>Ahora, llegando al punto de hacer publicidad de mi programa relativamente útil y, después de que comprendáis <a href="http://bloodblog.coconia.net/?p=283">el porqué de su comienzo</a>&#8230;</p>
<p style="text-align:center;" ><img src='http://boozox.net/wp-content/screenshotbloodtrainiglogico10beta1.png' alt='screenshotbloodtrainiglogico10beta1.png' /></p>
<p>El programa más que por su utilidad me sirvió para entender las funciones recurrentes y, además, para echar una mano a mis compañeros de clase que usan un sistema diferente a Windows (Bloodtraining también es compatible con Windows). Podéis acceder a Bloodtraining Lógico <a href="http://codis.boozox.net/proyecto/Bloodtraining+L%C3%B3gico">desde Codis</a>, <a href="http://codis.boozox.net/bin/btl_1-0rc1.rar">descargarlo</a> y comprobar todas sus últimas <em>features</em> (Y decirme como solucionar los errores que encontréis <em>que los hay</em>):</p>
<ul>
<li>Actualmente soporta cualquier entrada de datos de tipo: (variable1,&#038;,variable2) en donde variable1 es a y variable2 es b.</li>
<li>Soporte de puertas: AND &#038;; OR |; NAND /&#038;; NOR /|</li>
<li>Además, pueden negarse las salidas tanto de las variables (variables negadas) como de las salidas (puertas NAND y NOR) escribiendo el carácter / delante de la correspondiente variable o puerta. Ejemplo: (a,/&#038;,/b) &#8211;> Es una puerta NAND de dos entradas con la variable b negada.</li>
<li>Se permite la composición de circuitos. Ejemplo: ((a,&#038;,b),/|,((/a,&#038;,b),|,b)).</li>
<p></lu></p>
<p>Actualmente es una rc1 pero en breve sacaré la 1.0 cuando corrija los bugs que han quedado por ahí sueltos.</p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/software-libre/funciones-recurrentes-bloodtraining-logico/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

